翻译 LimeSurvey
From LimeSurvey Manual
翻译 LimeSurvey
如果 LimeSurvey 能够被完整翻译成您的母语,岂不是很棒?LimeSurvey 团队一直在寻找新的翻译,也欢迎帮助更新现有翻译的人员。请阅读以下说明;如果您有任何疑问,请随时发送电子邮件至 translations@limesurvey.org。
如何翻译——分步说明
更新现有翻译
- 在 LimeSurvey 网站注册,然后登录您的账户。
- 访问 https://translate.limesurvey.org,并使用相同的用户名和密码登录。
- 选择您要翻译的 LimeSurvey版本,然后直接开始翻译。您的翻译获得批准后,将自动包含在每周的稳定版本中,并且您的用户名将被记入更改日志。
- 如果您有兴趣成为所在语言的主要翻译者(可以批准新翻译的字符串),请通过 translations@limesurvey.org 联系我们。这个职位每周最多需要大约一小时的工作时间——对我们来说,您能够可靠地完成这项工作很重要。
自定义现有翻译
有时您可能希望修改现有翻译,使其更适合您特定的调查场景。在这种情况下,请执行以下操作:
- 访问 https://translate.limesurvey.org,选择您要翻译的 LimeSurvey版本以及要修改的语言。
- 在翻译页面底部,您会找到将所有字符串导出为 *.po 文件的选项。点击导出,并将其作为 *.po 文件保存到本地硬盘:

- 下载并安装 Poedit。
- 启动 Poedit 并编辑下载的 *.po 文件——修改相应的翻译。
- 保存 *.po 文件时,会自动创建一个 *.mo 文件。LimeSurvey 将读取后者。
- 最后一步是将该 *.mo 文件放入 /locale 中对应的语言文件夹,替换现有文件。
注意:如果您使用的是 LimeSurvey Pro(仅适用于 Cooperate 和 Enterprise 用户),团队很乐意为您放置该文件。只需创建一个支持工单并附上 *.po 文件(不是 .*mo 文件)。
创建新翻译
- 首先,获取 LimeSurvey 开发版本的访问权限。有关详细说明,请参阅源代码。
- 下载并安装 Poedit。
- 现在您需要找到您所用语言的语言编码——您可以在 IANA Language Subtag Registry 中搜索您的语言编码。
- 进入 /locale 目录(位于 LimeSurvey 根目录中),创建一个以您的语言编码命名的目录。
- 通过以下链接下载您的语言模板:[1]。选择项目,然后选择任意语言(例如选择英语条目),并滚动到底部。在那里您可以将语言文件导出为 <your_language_code>.po 文件。
- 将 <your_language_code>.po 文件复制到 /locale 目录中新创建的文件夹。
- 使用 Poedit 打开该文件,并翻译所有需要翻译的内容。
- 为了让 LimeSurvey 识别您的语言,您必须在 application/helpers/surveytranslator_helper.php(位于 LimeSurvey 根目录中)中添加它。使用文本编辑器打开该文件,并按照该文件中其他语言的定义方式添加您的语言。
- 保存——为了让 LimeSurvey 识别新添加的语言,请保存修改后的 *.po 文件。这将在同一文件夹中自动生成 *.mo 文件,LimeSurvey 将读取该文件。
- 将新的 *.po 文件和更新后的 surveytranslator_helper.php 文件发送至 translations@limesurvey.org。
添加新语言的示例代码
$supportedLanguages['code']['description'] = gT('Language'); // Your language name in English
$supportedLanguages['code']['nativedescription'] = 'Language in native'; // The native name of your language
$supportedLanguages['code']['rtl'] = (true|false); // RTL
$supportedLanguages['code']['dateformat'] = integer; // See getDateFormatData function
$supportedLanguages['code']['radixpoint'] = (0|1); // 0 : ., 1 : , for radix point
$supportedLanguages['code']['cldr'] = 'code'; // If the related Yii language code differs you can here map your language to a new code
$supportedLanguages['code']['momentjs'] = 'code'; // Used by moment.js
其他需要翻译的部分
- LimeSurvey 使用 moment.js。向 translations@limesurvey.org 发送邮件时,请确认须使用哪个语言编码。
- moment.js:有关如何为 moment.js 翻译做出贡献的方法,请参阅 moment.js 文档。