【问题标题】:How to add Internationalization to a Flutter Plugin如何向 Flutter 插件添加国际化
【发布时间】:2021-03-02 17:21:33
【问题描述】:

我做了一个 Flutter 插件,我需要添加 Internationalization。 我已经像通常为我的 Flutter 应用程序所做的那样遵循本教程:Internationalization in Flutter 1.22+

但是对于 Flutter 插件,没有 MaterialApp 所以我不能添加这个:

MaterialApp(
   localizationsDelegates: Translations.localizationsDelegates,
   supportedLocales: Translations.supportedLocales
)

那么,有没有办法将国际化添加到我的 Flutter 插件中,以便我可以在我的插件中使用它?

Translations.of(context).title;

【问题讨论】:

    标签: flutter dart flutter-plugin flutter-intl


    【解决方案1】:

    所以我找到了一个答案,以防有人需要这个: 您需要将生成的 .dart 文件导入您的应用中才能使用。

    在l10n.yaml 插件文件中我有output-localization-file=translations.dart,所以我需要将此文件导入example/main.dart(或在任何使用该插件的Flutter 应用程序中):

    import 'package:MinimalExampleInternationalization/l10n/translationsUpdate.dart'; 这就是我需要添加此代码的地方:

     MaterialApp(
       localizationsDelegates: Translations.localizationsDelegates,
       supportedLocales: Translations.supportedLocales
     )
    

    如果您导入此插件的 Flutter 应用已经具有国际化功能,那么您可以像这样添加多个 localizationsDelegates: 和 supportedLocales::

     MaterialApp(
              localizationsDelegates: Translations.localizationsDelegates+TranslationsPlugin.localizationsDelegates,
              supportedLocales: Translations.supportedLocales+TranslationsPlugin.supportedLocales,
     )
    

    Translations 是您的应用生成的类,TranslationsPlugin 是您的插件生成的类。

    另外请注意,现在使用插件生成国际化文件时存在一个错误,因此您可以删除 l10n.yaml 文件并改用此命令:flutter gen-l10n --arb-dir=assets/l10n --template-arb-file=string_en.arb --output-localization-file=translations.dart --output-class=Translations --output-dir=lib/l10n --no-synthetic-package

    更多信息:Flutter Issue 和 Working Plugin Example with I18n

    【讨论】:

      【解决方案2】:

      这不是什么大事......只要按照here或here或here的步骤操作即可

      或者,如果您愿意,您可以使用谷歌翻译服务。在这里,您s=不必做任何事情,但您必须为每种语言付费。如果您有开发者帐户,则可以在 Play 控制台中找到它。

      【讨论】:

      • 这基本上是一个仅链接的答案。如果这些链接失效,那么答案就没有任何价值了。此外,这些链接都没有真正回答这个问题。当您没有应用程序时,如何处理代表?当您拥有一个应用程序时,所有三个链接都描述了默认方案。如果您对那个问题有答案,请在此处发布。
      • 是的,所有这些链接都是针对 Flutter 应用程序的,而不是针对 Flutter 插件的,所以它们和我的一样,对插件没有帮助 ...
      • 哦,对不起,我刚刚看过插件这个词...让我找出插件,然后我会告诉你
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 2020-06-21
      相关资源
      最近更新 更多