我正在使用 Flutter 在 android 上创建一个多屏幕应用程序。我正在使用 intl 对其进行本地化,但我不明白如何创建 arb 文件。flutter pub pub run intl_translation:extract_to_arb --output-dir=lib\l10n lib\main.dart
我应该为我的应用程序的每个“页面/活动/片段”运行以下
命令吗?
3 回答
您是否正在尝试实施应用内本地化?即只是更改应用程序的区域设置而不受手机区域设置的影响?那么可以参考这篇博客:https ://blog.geekyants.com/flutter-in-app-localization-438289682f0c
结果看起来像这样:
要通过intl_translation将intl消息提取到 .arb 文件中,您只需使用包含这些消息的文件的相对路径调用一次命令。extract_to_arb
pub run intl_translation:extract_to_arb --output-dir=target/directory my_program.dart more_of_my_program.dart
翻译提取的消息后,您需要通过generate_from_arb
命令生成 .dart 本地化文件。
很快,您会注意到这变得乏味,因此更好的解决方案是使用VS Code 的Flutter Intl扩展或 Android Studio 的Flutter Intl插件。使用它们,您只需要更新本地化文件(.arb 文件),样板代码就会自动生成。
希望能帮助到你!
首先生成字符串文件: 1. 将所有消息提取为 arb 文件格式,这是翻译的模板(您可以指定多个文件作为输入。
> flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/first_file.dart lib/second_file.dart
- 以 intl_messages_.arb 格式为每种语言生成 arb 格式的翻译文件
为翻译生成 .dart 文件(为每个翻译指定一个输出):
flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n \ --no-use-deferred-loading lib/first_file.dart lib/second_file.dart lib/l10n/intl_messages_en.arb lib/l10n/intl_messages_.arb