【问题标题】:Issues with Dart Intl library for translationsDart Intl 库的翻译问题
【发布时间】:2014-10-31 14:40:28
【问题描述】:

在我的 Dart 应用程序中为本地化设置翻译功能时遇到了一些问题。 我目前有 1 个名为 basics.dart 的类,所有类都可以访问它的功能。 这是我要翻译的功能:

basics.dart

String loadingMessage() {
  return  Intl.message(
    "Tickets are currently loading",
    name: "loadingMessage",
    args: [],
    desc: "Tickets are currently loading");
}

ticket_list.dart

  _p.text = loadingMessage();//'Currently loading the tickets';

这将正确返回英文消息。现在我要如何设置它才能获得法语翻译?

【问题讨论】:

    标签: localization dart translation dart-html


    【解决方案1】:

    请参阅doc of the intl package

    基本上你需要提取要翻译的消息:

    pub run intl:extract_to_arb --output-dir=target/directory
      my_program.dart more_of_my_program.dart
    

    然后翻译 arb 文件,最后为翻译的消息生成 .dart 文件:

     pub run intl:generate_from_arb --generated_file_prefix=<prefix> 
      <my_dart_files> <translated_ARB_files>
    

    【讨论】:

    • 谢谢!我能够生成包含我的消息的 .arb 文件,但是我应该为第二个命令中的 放置什么?它如何知道我希望我的翻译适用于法语语言环境?
    • 一旦你翻译了content.arb并创建content_fr.arbcontent_en.arb ...然后如果你使用--generated-file-prefix=content_,脚本将生成content_messages_all.dartcontent_messages_fr.dartcontent_messages_en.dart .
    • 效果很好,并且生成了 content_messages_fr.dart。但是,我的程序仍然调用了英文函数。这些 .dart 文件应该放在任何特定的地方吗?它们目前位于我的项目文件夹的根目录中。
    • 你必须导入content_messages_all.dart并调用initializeMessages('fr')
    • 并注意它返回一个未来,所以翻译的消息在完成之前不可用
    猜你喜欢
    • 2022-11-30
    • 2020-10-28
    • 2020-08-19
    • 2013-05-03
    • 2021-06-26
    • 2012-10-27
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多