基于Moodle进行多语言教学与汉化方法的研究
贾国祥 王俊颖 李蕾
摘要:Moodle教学平台是由澳大利亚教师Martin Dougiamas基于建构主义理论开发的一套开源、免费的教学系统,支持多语言的特性使其已成为国内外运用最为广泛的在线教学平台。本文详细介绍了基于Moodle进行多语言教学的方法,同时针对其中文版中存在字面直译、翻译不准确及未翻译的问题,介绍了可自行汉化的方法,期望能为从事Moodle教学的人员提供有益的帮助。
关键词:Moodle;教学平台;学习平台;多语言教学;本地化
中图分类号:G434 ?文献标识码:A ?论文编号:1674-2117(2019)22-0082-05
Moodle教学平台是由澳大利亚教师Martin Dougiamas基于建构主义理论于2002年开始开发的一套开源、免费的教学系统,并且在不断发展中,截至2019年5月已正式發布3.7版,并形成了每年(5月、11月)进行两次较大版本升级的规律。Moodle是Modular Object-Oriented Dynamic Learning Environment的简写,意即模块化面向对象的动态学习环境,它以其独特的网络教育原理,开放性、灵活性、互动性、共享性等优势,成为国际上越来越流行的网络学习平台开发的基础。[1]截至2019年5月已有228个国家在Moodle官网注册了107010个Moodle站点,其中中国大陆有422个。[2]
Moodle目前支持120多种语言,并且在不断增加中。[3]教学中我们可以根据教学的需要安装不同的语言包,以达到使用同一平台进行多种语言或本地化语言教学的目的。由于Moodle是一款开源软件,它的默认语言为英语,其他语言版本(如中文版)的翻译工作是通过Moodle社区由各个国家的志愿者进行的,而进入Moodle社区的人员基本上都是技术人员,以中文版为例,受翻译人员英语水平、专业知识的限制,其中存在字面直译、翻译不准确甚至未翻译的情况,使得平台的功能不便于理解,从而不利于教学的正常开展。同时,由于Moodle的开源性,在Moodle官网上还提供了大量的第三方功能插件,而这些功能插件只提供英语版,也存在需要翻译(汉化)的问题。当然对于其他非英语版本而言,也存在同样需要本地化的问题。
结合相关的文献分析,笔者以“Moodle”和“语言”为关键词在CNKI上进行检索,没有检索到如何利用Moodle进行多种语言教学的论文,又以“Moodle”和“汉化”、“Moodle”和“本地化”为关键词在CNKI上进行检索,没有检索到Moodle如何汉化或本地化的有效论文。而一个便于理解、汉化良好的界面将有利于发挥Moodle的教学优势,因此笔者希望通过此研究,能为利用Moodle平台进行多语言教学的人员,以及为优化Moodle语言环境的人员提供有益的帮助。
语言包的安装与更新
1.语言包的安装
Moodle在初始安装时默认为英文,但可以选择安装教学所需要的其他语言。安装后也可以随时安装其他语言,以达到使用同一平台进行多种语言同时教学的目的,具体方法为:以管理员身份登录平台,通过“网站管理→语言→语言包”导航进入安装语言包页面(如图1)。
在图1中,分别列表显示了系统中已安装和未安装的语言包列表(注:英语为默认安装)。在右侧列表框中选择所要安装的语言包(通过按“CTRL+鼠标左键”的方式可进行多选)后,点击“安装选择的语言包”按钮,系统将自动下载并安装所选择的语言包。在左侧已安装的语言列表中,选择不再需要的语言后,点击“卸载选择的语言包”按钮,系统将自动卸载所选择的语言包。
2.语言包的更新
Moodle官方会根据Moodle社区中语言包的本地化(翻译)更新情况定期进行相应语言包的更新工作,因此,为了保证已安装语言包为最新,可采用两种方法进行语言包的更新:一种方法是通过图1中“更新所有已安装的语言包”按钮进行手动更新,其缺点是更新不及时;另一种方法是通过Moodle的定时作业功能(通过系统命令定时执行Moodle提供的cron.php程序)进行自动更新,这种方法可以保证语言包及时更新。但无论用哪种方法进行语言包的更新,以中文版为例,同样存在前述的字面直译、汉化不准确或未汉化的问题。
使用多种语言教学的方法
1.多语言教学环境的设置方法
首先按照“语言包的安装”中的讲述安装所需要的语言包,然后以管理员身份登录,通过“网站管理→语言→语言设置”导航进入到语言设置页面(如图2)。
在此页面中,通过“缺省语言”下拉菜单(包含所有已安装的语言选项)设置整个网站默认使用的语言,即使用者第一次进入网站时显示的语言。通过“语言菜单中的语言”输入所要使用的各语言代码(“缺省语言”下拉菜单项括弧中的英文部分),代码间以英文逗号分隔,如输入en,zh_cn,zh_tw时则语言下拉菜单选项为:英文、简体中文和繁体中文。此页面中的其他参数采用默认设置。点击“保存更改”按钮后,即在网站页面左上角显示“选择语言”下拉菜单,使用者通过此菜单可以随时进行使用语言的切换。
2.课程使用不同语言教学的设置方法
在Moodle中安装了多种语言包后,可以为不同的课程设置不同的语言进行教学,也可以为同一课程设置多种语言进行教学。具有课程管理权限的人员进入课程后,从“课程管理”菜单中点击“更改设置”链接,则进入课程设置页面,在课程设置页面中找到“外观”部分(如上页图3)。
在图3中,通过“指定课程语言类型”下拉菜单进行课程使用语言的设置(下拉菜单中将显示所有已安装语言包的列表)。若设置为“不强制”,则保存后在课程的左上角将显示所有可使用语言的选择菜单,使用者可自由选择课程使用的语言;若指定为某一种语言则课程只能使用这一种语言。因此通过“指定课程语言类型”选项,为课程的多语言教学提供了灵活性。
Moodle的汉化方法
Moodle除了定期提供更新语言包的方法外,还为使用者提供了更加灵活、个性化的汉化方法(其他语言的本地化方法与汉化方法相同,下文不再提及),这种方法不仅可以弥补Moodle本身提供的字面直译、汉化不准确或未汉化的不足,而且满足了更加个性化教学的需要。
1.Moodle多语言版本的实现机制
在Moodle网站的所有页面中,显示的所有信息都是通过调用不同的语言包实现的,并且第三方开发的功能插件也遵循同样的规则。系统中安装的所有语言包都以“语言代码”为子目录名的方式存放在moodledata下的lang子目录中。在语言包中,所有页面的显示信息都以定义“字符串标识符”(以下简称“标识符”)的方式并根据实现的功能存入相应的PHP文件中,如在简体中文语言包(zh_cn)中,与“测验”活动有关的标识符定义信息存放在lang\zh_cn子目录下的quiz.php文件中,相应的标识符定义格式如下:
$string[‘addquestion] = ‘添加试题;
$string[‘addrandom] = ‘添加 {$a} 道随机试题;
$string[‘add randomquestion] = ‘随机添加试题;
为了保证系统的性能,在默认设置情况下(在“网站管理→语言→语言设置”功能中),Moodle自动将可用的语言包进行缓存。当使用者进入页面时,系统将自动从缓存中调用相应PHP文件中的标识符进行页面信息的显示。
通过上述分析,如果存在汉化不合理或不准确的信息,只需通过修改相应PHP文件中的标识符即可。但是,如果直接修改相应的PHP文件,会存在以下问题:一是需要汉化人员具有一定的技术能力;二是在同一个PHP文件中可能存在大量的标识符定义,查找起来会有一定的难度;三是如果语言包进行了自动更新,将会覆盖修改过的文件;四是不能解决未汉化的问题。显然这种方式是不可取的。
通过分析Moodle的官方文档以及研究Moodle的功能,发现Moodle已提供了“定制语言”功能(即个性化的汉化方法),通过此功能,不需要技术人员就可以很好地解决上述汉化存在的问题。在系统管理员进行相应的设置后,具有“定制语言”权限的人员可以通过“网站管理→语言→定制语言”功能进行特定PHP文件或标识符的汉化操作,当然为了便于统一管理,汉化工作最好由指定人员进行。
2.启用显示标识符来源设置
为了能够快速定位页面显示信息所在的PHP文件及对应的标识符,需要系统管理员在“网站管理→开发→调试”功能中,勾选“显示语言字符串来源”设置以启用显示标识符来源信息(默认为不启用)。
3.定位标识符来源
在启用了“显示语言字符串来源”设置后,如果在显示的页面中存在上述的汉化问题,可以在页面的url地址上添加“strings=1”参数再次进入页面,则会在页面中显示所有显示内容对应的标识符及其所在的PHP文件信息。在页面url地址添加“strings=1”参数的方法为:
①如果在网页的url地址中没有其他参数,则在url地址最后的.php后面添加“?strings=1”参数,如url地址为http://127.0.0.1/admin/search.php,则url添加为http://127.0.0.1/admin/search.php?strings=1。
②如果url地址中带有其他参数,则在url的最后添加“&strings=1”参数,如url为http://127.0.0.1/admin/settings.php?section=debugging,则url添加为http://127.0.0.1/admin/settings.php?section=debugging&strings=1。
添加“strings=1”参数再次进入页面后,页面显示如图4所示。
图4为使用“简体中文”时显示的页面,标识①②③部分的意义分别为:①为当前语言包中标识符定义的显示信息,如个人主頁;②为显示信息对应的标识符,即在相应的PHP文件中定义的标识符,如myhome对应PHP文件中的$string[‘myhome]标识符;③为标识符所在的PHP文件名,如果此处为空,则标识符定义存放在moodle.php文件中,如myhome的定义;如果不为空则其为定义所在的PHP文件名,此例中development的定义即存放在admin.php文件中。
根据上述的三部分信息,我们就可以找到显示信息所对应的标识符和其所在的PHP文件,如此例中显示的“个人主页”信息对应的标识符myhome在moodle.php文件中定义为:$string[‘myhome] = ‘个人主页;。
4.汉化标识符信息
Moodle提供了灵活的汉化方法,具有“定制语言”权限的人员通过“网站管理→语言→定制语言”功能就可以进行所需的汉化处理。在“定制语言”下拉菜单中选择要定制的语言(如简体中文:zh_cn),然后按照提示点击链接即进入定制语言页面(如图5)。
(1)汉化特定PHP文件中的标识符信息
在图5中,选择“显示这些组件的字符串”列表中指定的PHP文件,点击“显示字符串”将分页显示此文件中所有的标识符定义信息,如moodle.php,显示如下页图6所示,此方式适合重新汉化或汉化指定PHP中多个标识符的情况。
在下页图6所示的标识符定义列表中,“字符串”列对应的是“定位字符串来源”中第②部分的标识符信息,如myhome;“标准文本”列对应的是“定位字符串来源”中第①部分的显示信息,其中包含已汉化信息和对应的英文信息,如个人主页。如果在“标准文本”中的信息未汉化或需要重新汉化,则在“本地自定义”框中输入新的汉化文本。需要注意的是,如果在“标准文本”中包含类似“{$a}”“{$a->what}”这样的标识,则在“本地自定义”的内容中应保留在适当的位置,这样在显示页面时系统将自动带入相应的显示信息。
(2)汉化特定的标识符信息
通过上述“定位字符串来源”的方法找到特定的标识符信息后,根据第③部分的PHP文件信息,在图5中的“显示这些组件的字符串”菜单中选择相应的PHP文件,如moodle.php,在“字符串标识符”中输入第②部分的标识符,如myhome,点击“显示字符串”则会直接显示在moodle.php文件中定义的myhome标识符信息(如图7)。
在“本地自定义”中输入新的文本,如将“个人主页”重新汉化为“我的主页”。若标准文本中包含类似“{$a}”“{$a->what}”这样的标识也应保留。
当然,在图5所示的页面中,通过“勾选”或输入其他条件则直接显示符合查询条件的标识符定义信息列表,然后可以进行汉化或取消汉化的操作。
(3)生效汉化的标识符信息
通过上述两种方法进行汉化后,如果还需要继续汉化其他标识符,则点击“生效变化并继续编辑”按钮,然后继续采用同样的方法进行汉化操作。如果不再需要汉化其他标识符则点击“将更改保存到语言包”按钮,这样汉化的标识符信息则将永久地保留在系统中,否则一旦系统管理员进行“清空所有缓存”操作,或者系统出现故障重启服务器或服务时,所有汉化的标识符将会丢失,所以在汉化操作完成后一定要点击“将更改保存到语言包”按钮进行保存。
参考文献:
[1]贾国祥,孙月亚,李继先.北京开放大学学习平台的设计理念和特征[J].北京广播电视大学学报,2012(04):14-17.
[2]https://moodle.net/stats/.
[3]About Moodle[EB/OL].https://docs.moodle.org/37/en/About_Moodle.
作者简介:贾国祥(1966.9—),男,汉族,北京人,硕士,副研究员,研究方向为远程教育、教育信息化、计算机软件开发与应用。