ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MoeList多语言本地化揭秘:开源安卓应用Crowdin工作流与新语言翻译贡献指南

MoeList多语言本地化揭秘:开源安卓应用Crowdin工作流与新语言翻译贡献指南 MoeList多语言本地化揭秘开源安卓应用Crowdin工作流与新语言翻译贡献指南【免费下载链接】MoeListAnother unofficial Android MAL client项目地址: https://gitcode.com/gh_mirrors/mo/MoeListMoeList 是一款开源的非官方 Android MyAnimeList 客户端通过 Crowdin 平台实现了 19 种语言的多语言本地化。本文带你快速看懂 MoeList 的本地化架构、Crowdin 翻译工作流并手把手教你如何贡献新语言翻译。无论你是想切换界面语言的新手还是想参与开源翻译的爱好者都能在这里找到答案 ✨一、MoeList 支持哪些语言MoeList 的语言列表由 app/src/main/java/com/axiel7/moelist/ui/base/AppLanguage.kt 中的AppLanguage枚举统一管理并同步声明在 app/src/main/res/xml/locales_config.xml 中。目前已上线的语言包括语言代码语言代码英语en俄语ru-RU简体中文 / 繁体中文zh-Hans / zh-Hant乌克兰语uk-UA日语ja土耳其语tr德语 / 法语 / 西班牙语de / fr / es波兰语 / 斯洛伐克语pl-PL / sk葡萄牙语巴西/欧洲pt-BR / pt-PT阿拉伯语 / 保加利亚语 / 捷克语 / 印尼语 / 意大利语ar-SA 等 语言切换入口在「设置 → 语言」默认跟随系统FOLLOW_SYSTEM。选择日语时还会自动把作品标题切换为日显语言这个细节写在 SettingsViewModel.kt 的setLanguage()里。二、本地化资源是如何组织的Android 应用的多语言本地化遵循资源目录按语言分文件夹的经典结构源语言英文app/src/main/res/values/strings.xml各语言译文app/src/main/res/values-语言代码/strings.xml例如中文 →app/src/main/res/values-zh/strings.xml日语 →app/src/main/res/values-ja/strings.xml俄语 →app/src/main/res/values-ru-rRU/strings.xml源文件里有一些值得注意的细节translatablefalse标记像app_nameMoeList、各语言名称如arabic_native、数字 1~10 这类条目被标记为不可翻译避免被 Crowdin 重复翻译 复数形式plurals例如num_episodes按单数/复数提供%d episode / %d episodes不同语言的复数规则由翻译者按当地习惯处理占位符如Airing in %sairing_in翻译时必须保留%s否则界面会显示异常上图为 MoeList 追番小组件界面其文本同样来自本地化字符串资源三、Crowdin 工作流揭秘译文如何进入仓库MoeList 根目录下的 crowdin.yml 只有两行核心配置却定义了整个本地化管线files: - source: /app/src/main/res/values/strings.xml translation: /app/src/main/res/values-%android_code%/%original_file_name%它的含义是源文件以values/strings.xml为唯一翻译源%android_code%占位符Crowdin 会自动把每种语言的代码如zh、ru-rRU填入路径与 Android 资源目录规范天然对齐同步机制开发者在仓库更新英文文案后Crowdin 自动拉取新条目推给译者译者完成并提交后译文再同步回仓库对应目录随下一次发版触达所有用户也就是说翻译者全程不碰代码只需在 Crowdin 网页上翻译工作流闭环如下英文 strings.xml仓库→ Crowdin 同步 → 译者翻译 审核 → 同步回values-语言/strings.xml→ 打包发布README 顶部的 Crowdin 徽章badges.crowdin.net/moelist/localized.svg会实时显示各语言的翻译进度方便大家认领缺口语言。四、新语言翻译贡献指南 想为 MoeList 添加自己母语按下面 4 步走第 1 步在 Crowdin 上申请语言前往 MoeList 的 Crowdin 项目页如果目标语言不在列表中联系项目维护者添加语言或申请为该语言的翻译者/审阅者。第 2 步开始翻译以英文源文为基准注意术语统一如 Airing连载中、Seasonal Chart季度榜单保留所有%s、%d等占位符专有名词如 MoeList、Discord、Doujinshi 标记了translatablefalse请勿改动第 3 步提交并等待审核Crowdin 支持多人协作与投票机制你的译案会经过社区审阅后合并。第 4 步同步进应用语言上线后还需在代码中登记两处可提 PR 完成在AppLanguage.kt枚举中新增语言项在locales_config.xml中声明locale在strings.xml中添加对应的*_native语言名条目标记translatablefalse这样设置页的语言下拉框SettingsView.kt 中AppLanguage.entriesLocalized就会自动展示新语言。五、小结要点说明本地化架构Android 标准values-*资源目录 locales_config.xml声明协作平台Crowdin配置见crowdin.yml译文自动同步仓库语言数量19 种语言含简繁中文贡献门槛无需代码基础网页端即可翻译MoeList 的多语言本地化是标准 Android 资源规范 Crowdin 自动化同步的典型范例。如果你正在使用这款开源安卓应用不妨把界面切到母语如果你会翻译欢迎加入 Crowdin 社区让 MoeList 出现在更多人的语言里 【免费下载链接】MoeListAnother unofficial Android MAL client项目地址: https://gitcode.com/gh_mirrors/mo/MoeList创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表