2

我正在使用 Flutter 在 android 上创建一个多屏幕应用程序。我正在使用 intl 对其进行本地化,但我不明白如何创建 arb 文件。flutter pub pub run intl_translation:extract_to_arb --output-dir=lib\l10n lib\main.dart 我应该为我的应用程序的每个“页面/活动/片段”运行以下 命令吗?

4

3 回答 3

3

您是否正在尝试实施应用内本地化?即只是更改应用程序的区域设置而不受手机区域设置的影响?那么可以参考这篇博客:https ://blog.geekyants.com/flutter-in-app-localization-438289682f0c

结果看起来像这样:

应用内本地化

于 2018-09-05T04:58:27.310 回答
1

要通过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 文件),样板代码就会自动生成。

希望能帮助到你!

于 2020-07-07T21:46:03.480 回答
0

首先生成字符串文件: 1. 将所有消息提取为 arb 文件格式,这是翻译的模板(您可以指定多个文件作为输入。

> flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/first_file.dart lib/second_file.dart
  1. 以 intl_messages_.arb 格式为每种语言生成 arb 格式的翻译文件
  2. 为翻译生成 .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

于 2018-08-01T11:29:52.117 回答