使用Moodle API更改活动插件中的字符串

使用Moodle API更改活动插件中的字符串,moodle,moodle-api,Moodle,Moodle Api,在我的Moodle活动插件中,我试图允许管理员更改插件设置中的字符串。应该可以改变的字符串是:教师、班级和学生。这些在我的插件中使用。 . 我目前正在尝试使用php常量,这是可行的 我不确定这是否是最好的方法,因为我正在转换一个旧插件,不确定我可以为Moodle 3.5使用什么样的字符串API 我是否应该继续当前方法的工作?如果您对语言字符串使用标准的Moodle处理(即,将它们存储在[plugin]/lang/en/[nameofplugin].php中,并使用get_string()检索它们

在我的Moodle活动插件中,我试图允许管理员更改插件设置中的字符串。应该可以改变的字符串是:教师、班级和学生。这些在我的插件中使用。 . 我目前正在尝试使用php常量,这是可行的

我不确定这是否是最好的方法,因为我正在转换一个旧插件,不确定我可以为Moodle 3.5使用什么样的字符串API


我是否应该继续当前方法的工作?

如果您对语言字符串使用标准的Moodle处理(即,将它们存储在[plugin]/lang/en/[nameofplugin].php中,并使用get_string()检索它们),那么管理员可以通过访问站点admin>language>Customize language pack来覆盖它们


这是允许管理员修改字符串的正常方式(这也允许在上下文中正确处理单词,例如显示语言的正确性别、处理复数等)

但这些字符串是静态的。如何使plugin]/lang/en/[nameofplugin].php中的字符串发生变化?您可以通过访问网站admin>language>customize language packYes来覆盖任何语言字符串,这会起作用,但我希望在插件中实现同样的效果。我需要什么API调用来实现这一点?我想要更改的字段是:如果您的语言字符串是参数化的,那么您可以这样做-例如$string['ident']='Hello{$a}';获取字符串('ident','myplugin',$nametoinsert)。