#translation #localization #flutter #deep-l #apps #command #language

应用程序 arb

使用 DeepL AI 翻译本地化 Flutter 应用

1 个不稳定版本

0.1.0 2024 年 5 月 9 日

#2#deep-l

MIT/Apache

20KB
393

ARB

使用 DeepL 翻译 API 本地化 Flutter 应用程序的命令行工具。

安装

cargo install arb

配置

配置您的 Flutter l10n.yaml 文件,包括人类翻译的 name-prefixoverrides-dir,例如

arb-dir: i10n/translations
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
nullable-getter: false
untranslated-messages-file: untranslated.txt
overrides-dir: i10n/overrides
name-prefix: app

用法

将模板语言中的所有字符串转换为法语,并将翻译写入 app_fr.arb

export DEEPL_API_KEY="<api key>"
arb translate --lang fr --apply l10n.yaml

要查看将要进行的更改,请省略 --apply 选项,这将跳过对 DeepL API 的调用并不会写入文件到磁盘

arb translate --lang fr l10n.yaml

在修改模板资源包后,运行 update 命令以同步翻译

arb update l10n.yaml

有关更多命令和选项,请运行 arb help

注意

缓存

一旦创建了翻译,程序将使用模板键的 diff 只在必要时进行翻译并删除已删除的翻译。为了检测字符串的变化,将在应用程序资源包目录中保留一个名为 .cache.json 的缓存文件。

覆盖

如果您对机器生成的翻译有改进或更正,可以使用 --overrides 选项来优先使用人类提供的翻译。

占位符

为了防止占位符被翻译,它们被转换为 XML 标签 (<ph>),并且 API 请求被配置为忽略这些标签的翻译。

测试

设置 API 密钥以运行测试

export DEEPL_API_KEY="<api key>"
cargo test

许可证

根据您的喜好,使用 MIT 或 Apache-2.0。

© 版权所有 Save Our Secrets Pte Ltd 2024;保留所有权利。

依赖项

~15–32MB
~471K SLoC