x

主要章节

  1. LimeSurvey Cloud 与 LimeSurvey CE 对比
  2. 快速入门指南 - LimeSurvey 3.0+
  3. 软件安装
  4. 如何设计一个不错的调查(向导)
  5. 入门指南
  6. 管理 LimeSurvey
  7. 调查 - 说明
  8. 调查设置
  9. 问卷调查菜单
  10. 调查问卷结构
  11. 问题 - 简介
  12. 题组 - 简介
  13. 调查 - 管理
  14. 调查工具栏选项
  15. 多语言调查
  16. ExpressionScript 引擎 - 快速入门指南
  17. 其他和高级功能
  18. 常规问答
  19. 故障排除
  20. 变通方法
  21. 许可证
  22. 版本更改日志
  23. 插件
 Actions

自定义翻译

From LimeSurvey Manual

本页面可能为机器翻译,可能包含错误。 查看英文原文 · 改进此翻译
This page is a translated version of the page Custom translation and the translation is 100% complete.

简介

自 LimeSurvey 5.4.0 起,您可以通过直接访问数据库,为所有已包含语言中的所有字符串设置自己的翻译。

如果现有翻译不符合您的业务需求,可以使用此系统。

此方法应仅用于特定情况,因为对 LimeSurvey 核心文本的修改在日后仍需要您再次修改数据库。

此外,您还可以使用此方法翻译问卷主题特有的字符串。

数据库翻译的工作原理

对于数据库翻译,LimeSurvey 使用的方法受 Yii 框架中的 CDbMessageSource 启发。

  1. 在 SourceMessage 表 lime_source_message->message 中查找该字符串,获取其 id:lime_source_message->id
  2. 如果存在,则在 Message 表 lime_message->translation 中,按当前语言 lime_message->language 和当前 id lime_message->id 查找相关翻译

LimeSurvey 会从 po 文件创建翻译数组(有关如何更新该文件的信息,请参见 翻译 LimeSurvey),然后将其与数据库中的所有翻译合并。

如果数据库中存在翻译,则始终返回数据库中的翻译。

英语和法语“提交”按钮示例

假设您希望在所有问卷(使用特定主题)中,让提交按钮显示 _Validate_ 而不是 _Submit_。如果您只是更新主题,将 gT('Submit') 替换为 gT('Validate'),则所有语言下都会显示 _Validate_。

适用于所有主题下的所有问卷

  1. 创建源消息 INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit');
  2. 查看 ID(如果是第一条,则 ID 为 1),并在下一步中使用它
  3. 创建相关翻译:INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');

请勿将字符串替换为空字符串,否则翻译将回退为原始英文句子。您必须至少包含一个空格。

使用您自己的主题(推荐方案)

此方法使用您自己的模板,同时也会更新所有其他语言的默认字符串。

  1. 在主题编辑器中选择 Navigation 部分
  2. 搜索 Template:GT("Submit")(位于 navigator.twig 中)
  3. 替换为 Template:GT("Validate")
  4. 创建源消息 INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate');
  5. 查看 ID(如果是第一条,则 ID 为 1),并在下一步中使用它
  6. 创建相关翻译:INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');

请注意

lime_source_message 中的 category 字段必须是空字符串(''),而不是 NULL。如果类别不完全匹配,gT() 将无法找到源消息,您的翻译也不会生效。在为主题特有的字符串添加翻译时,这一点尤为重要。