Frappe LMS 多语言配置指南:3步跑通国际化
【免费下载链接】lmsEasy to Use, 100% Open Source Learning Management System项目地址: https://gitcode.com/GitHub_Trending/lms1/lms
给学员上线一门课,界面却全是英文,海外用户基本留不住。Frappe LMS 自带多语言支持,从翻译文件到前端取词都是现成的,你要做的只是挑好语言、把文案填进去。
🌍 什么时候会用到多语言
- 企业给不同国家团队开同一个培训站点,希望每人按母语看界面
- 你把课程输出到海外机构,对方要求界面至少支持本地语言
- 学员没登录直接看课程页,希望看到系统默认语言,而不是全英文
📚 机制速览:翻译是怎么生效的
- 翻译文件:所有文案存在 lms/locale/ 目录。
main.pot是文案源文件,每种语言一个.po文件,如zh.po对应简体中文,目前内置 39 种语言。 - 后端下发:lms/lms/api.py 里的
get_translations()负责取词,登录用户读个人语言偏好,访客则回退到 System Settings 里配置的站点默认语言。
def get_translations(): if frappe.session.user != "Guest": language = frappe.db.get_value("User", frappe.session.user, "language") else: language = frappe.db.get_single_value("System Settings", "language") return get_all_translations(language)- 前端取词:frontend/src/translation.js 里的 Vue 插件把
__()挂到全局,页面组件统一用__('Save')这样的写法取词;首次加载时前端自动拉取翻译字典,没匹配到的文案直接显示原文。
🛠️ 3步跑通多语言配置
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/lms1/lms,装好 Frappe 环境再启动站点。 - 管理员进 Settings → Preferences,把 System Language 设成站点默认语言,访客看到的界面就跟随它。
- 学员在个人资料里选择个人语言,登录后整站界面按该语言显示。
- 界面出现新文案没翻译?在 Frappe 项目目录跑
bench --site your-site extract-message,新文案会写进main.pot和各语言.po文件。 - 把
.po文件交给译者填好翻译,再跑bench --site your-site translate编译,刷新页面即可生效。
⚠️ 进阶与边界
.po 文件怎么维护
各.po文件由 Crowdin 协作翻译,文件头带有语言标识,比如zh.po里是Language: zh_CN。你本地直接改翻译时,保持msgid/msgstr的对应关系即可,别动文件头。
空翻译回退原文
msgstr为空的条目,界面直接显示英文原文,不会报空白。翻译没做完也能上线,缺哪条就回退哪条。
占位符要原样保留
前端支持__('Row {0}', [7])这种带占位符的文案,翻译时把{0}完整保留,否则数字、用户名填不进去。
✅ 收尾
多语言配置的核心就三件事:.po文件管翻译、get_translations按语言下发、前端__()统一取词。下一步:先在 Settings 里把 System Language 设成你的目标语言,再把课程名、章节这些高频文案翻译出来,效果立竿见影。
【免费下载链接】lmsEasy to Use, 100% Open Source Learning Management System项目地址: https://gitcode.com/GitHub_Trending/lms1/lms
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考