Lingo.dev + .xml(Android)

Lingo.dev CLI 翻译 Android XML 资源文件,同时保留原生结构、属性和 Android 特定的约定。CLI 无缝集成到现有的 Android 构建流程中,维护资源链接系统,支持 Gradle 和 Android Studio,并遵循平台本地化标准,无需格式转换。

快速设置

通过基于语言环境的文件夹模式指向您的 Android 资源文件:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "android": {
      "include": ["res/values-[locale]/strings.xml"]
    }
  }
}

提醒[locale] 是一个占位符,在 CLI 运行期间会被实际的语言环境替换,因此应在配置中保持原样。

处理默认资源

Android 需要一个默认的 values/ 文件夹。创建一个符号链接以确保兼容性:

cd res
ln -s values-en values

这满足了 Android 的要求,同时支持正确的语言环境处理。

翻译资源

npx lingo.dev@latest i18n

处理所有 Android 资源类型,同时保留 XML 格式、属性和特殊的 Android 语法。

完整的 Android 资源支持

字符串数组

<string-array name="planets">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
</string-array>

带数量的复数

<plurals name="songs_found">
    <item quantity="one">%d 首歌曲已找到</item>
    <item quantity="other">%d 首歌曲已找到</item>
</plurals>

格式保留

  • HTML 标记:保留 <b><i><u> 标签
  • 格式说明符:保留 %1$s%2$d 占位符
  • CDATA 区块:正确处理 <![CDATA[]]> 内容
  • 字符串引用:保留 @string/app_name 链接
  • 特殊字符:保留 \@\?\# 转义

高级配置

多个资源文件

"android": {
  "include": [
    "res/values-[locale]/strings.xml",
    "res/values-[locale]/plurals.xml"
  ]
}

跳过不可翻译的字符串

自动遵循 translatable="false" 属性。