该技能用于 Umbraco 17+ 项目中的后台本地化工作,重点是让后台编辑器看到的语言正确,而不是网站前台内容的多语言。
用途与适用范围 后台本地化实际包含两套独立系统,它们的文件位置、键语法和回退规则都不同,写任何文件前必须先确认翻译对象属于哪一套。默认应选择 UI 本地化,因为绝大多数后台文本都属于界面文本;只有当字符串由 C# 服务器端自行生成并发送出去时,才使用 .NET 本地化。
主要能力与文件约定 A. 后台 UI 本地化:覆盖扩展标签、文档/媒体/成员类型名称、标签页、分组、属性以及核心文案。配置文件为 App_Plugins/<Package>/umbraco-package.json,并为每种文化提供一个 JS 模块。UI 键按“区域_键”组织,只有一级分组,建议以 camelCase 的包名前缀(只含字母、数字和 _)命名区域,避免与核心区域冲突。英文文件必须是完整键集,作为所有缺失 UI 键的回退。 B. 服务器端 .NET 本地化:覆盖邮件、登录错误、健康检查等服务器自行构建的文本。文件为 config/lang/<culture>.user.xml,通过 ILocalizedTextService 读取。该体系只回退到 en-US,因此英文文件必须包含全部键;如果英文也缺失,或某文化完全没有语言文件,则显示 [key]。键名应使用有辨识度的别名,因为本区域缺失的键会先按别名在其他区域查找。
使用注意事项 manifest 只能注册在 App_Plugins/ 或 App_Plugins/<Package>/,更深的目录会被静默忽略。不要直接编辑核心语言文件,应通过自己的扩展(UI)或 .user.xml(服务器端)覆盖。注册或重命名 manifest 后需要重启,修改 JS 文本后需要刷新浏览器,修改 .user.xml 后需要重启。若同一组字符串也需要展示给网站访客,应使用词典项与 Umbraco.GetDictionaryValue 等接口,而不是上述后台本地化文件;注意 GetDictionaryValue(key, "text") 并不存在。
回复要求 完成工作后需在回复中以独立句子说明:回退行为(UI 回退到英文再回退到元素内部文本;服务器端回退到英文,否则显示 [key])、覆盖了哪些语言以及其他语言的表现、用户需要执行的重启或刷新操作,并且只在实际运行过构建或渲染后台时才声明已运行。验证场景位于 evals/evals.json,运行方式见 evals/README.md。