gpt4 book ai didi

flutter - 如何将国际化添加到 Flutter 插件

转载 作者:行者123 更新时间:2023-12-05 03:47:15 30 4
gpt4 key购买 nike

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

但是使用 Flutter 插件时没有 MaterialApp,所以我无法添加:

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

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

Translations.of(context).title;

最佳答案

所以我找到了一个答案,以防有人需要这个:您需要在您的应用中导入生成的 .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 IssueWorking Plugin Example with I18n

关于flutter - 如何将国际化添加到 Flutter 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64910056/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com