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),仅供参考
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),仅供参考