Flutter国际化资源文件转换插件translate_arb_cli的使用
Flutter国际化资源文件转换插件translate_arb_cli的使用
translate_arb_cli
是一个用于将 Flutter 的 .arb
文件翻译成其他语言的命令行工具。它利用了强大的大型语言模型(LLMs)来完成翻译任务。
支持的API包括:
- OpenAI
- Google Gemini
- Ollama
使用方法
单个文件翻译
要将一个 .arb
文件翻译成另一种语言,可以使用以下命令:
translate_arb_cli.dart ollama -f app_en.arb -t fr
上述命令会将 app_en.arb
文件翻译成法语(fr
),并将结果输出到终端。如果你想将结果保存到一个新的文件中,可以将输出重定向到目标文件:
translate_arb_cli.dart ollama -f app_en.arb -t fr > app_fr.arb
批量翻译
如果你有多个语言需要翻译,并且希望一次性处理所有文件,可以使用以下脚本:
export GOOGLEAI_API_KEY=<YOUR_API_KEY>
for lang in {fr,es,de}; do
translate_arb_cli gemini -f app_en.arb -t ${lang} > app_${lang}.arb
done
示例说明:
-
export GOOGLEAI_API_KEY=<YOUR_API_KEY>
设置你的 Google Gemini API 密钥,以便工具能够调用 API 进行翻译。 -
for lang in {fr,es,de}
定义需要翻译的语言列表,这里分别是法语(fr
)、西班牙语(es
)和德语(de
)。 -
translate_arb_cli gemini -f app_en.arb -t ${lang}
调用translate_arb_cli
工具,使用 Google Gemini API 将app_en.arb
翻译为目标语言。 -
> app_${lang}.arb
将翻译后的.arb
文件保存为app_${lang}.arb
。
示例代码演示
假设我们有一个英语的 .arb
文件 app_en.arb
,内容如下:
{
"@[@locale](/user/locale)": "en",
"helloWorld": "Hello World",
"welcomeMessage": "Welcome to our application"
}
运行以下命令将其翻译成法语:
translate_arb_cli.dart ollama -f app_en.arb -t fr > app_fr.arb
翻译后生成的 app_fr.arb
文件内容如下:
{
"@[@locale](/user/locale)": "fr",
"helloWorld": "Bonjour le monde",
"welcomeMessage": "Bienvenue dans notre application"
}
更多关于Flutter国际化资源文件转换插件translate_arb_cli的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter国际化资源文件转换插件translate_arb_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
translate_arb_cli
是一个用于 Flutter 国际化的工具,它可以帮助开发者将 ARB (Application Resource Bundle) 文件转换为 Flutter 可用的国际化资源文件。ARB 文件是 JSON 格式的文件,通常用于存储应用的本地化字符串。
使用步骤
-
安装
translate_arb_cli
插件首先,你需要在你的开发环境中安装
translate_arb_cli
插件。你可以通过 Dart 的包管理工具pub
来安装:pub global activate translate_arb_cli
-
创建或准备 ARB 文件
在你的 Flutter 项目目录下,创建一个
l10n
目录,并在其中创建 ARB 文件。例如,app_en.arb
和app_zh.arb
分别用于存储英文和中文的本地化字符串。app_en.arb
示例内容:{ "helloWorld": "Hello, World!", "@helloWorld": { "description": "The conventional newborn programmer greeting" } }
app_zh.arb
示例内容:{ "helloWorld": "你好,世界!", "@helloWorld": { "description": "传统的程序员问候语" } }
-
生成 Flutter 国际化文件
使用
translate_arb_cli
将 ARB 文件转换为 Flutter 可用的 Dart 文件。在终端中运行以下命令:translate_arb_cli --input=l10n --output=lib/l10n
这个命令会将
l10n
目录下的所有 ARB 文件转换为 Dart 文件,并输出到lib/l10n
目录中。 -
在 Flutter 项目中使用生成的国际化文件
生成的 Dart 文件会自动生成一个
AppLocalizations
类,你可以在 Flutter 项目中使用它来访问本地化字符串。import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.helloWorld), ), body: Center( child: Text(AppLocalizations.of(context)!.helloWorld), ), ); } }
-
配置 Flutter 项目的国际化支持
在
pubspec.yaml
文件中添加flutter_localizations
依赖,并配置generate: true
以启用自动生成国际化文件的功能。dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter flutter: generate: true