flutter_i18n

让 Flutter 的国际化变得简单!

  • 否则

    basePath/{languageCode}.json

当然,你必须在 pubspec.yaml 中将子目录声明为资源

flutter:
  assets:
    - {basePath}

下一步是配置 localizationsDelegates;要使用 flutter_i18n,你应该按如下方式配置

localizationsDelegates: [
        FlutterI18nDelegate(useCountryCode, [fallbackFile, basePath]),
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate
],

useCountryCode 参数取决于 json 的配置

  • 如果你使用了 {languageCode}_{countryCode} 模式,useCountryCode 必须是 true
  • 如果你使用了 {languageCode} 模式,useCountryCode 必须是 false

fallbackFile 参数是在版本 0.1.0 中引入的,它提供了一个默认语言,当当前运行系统的翻译不可用时使用。它应该包含 assets 文件夹中一个有效 json 文件的名称。

basePath 参数是可选的,用于设置翻译的基路径。如果未设置此选项,则默认路径为 assets/flutter_i18n。此路径必须与 pubspec.yaml 中定义的路径相同。

如果找不到所需键的任何可用翻译,则返回相同的键。

flutter_i18n 实际应用

完成配置步骤后,唯一要做的是调用以下方法

FlutterI18n.translate(buildContext, "your.key")

其中

  • buildContext 是小部件的 BuildContext 实例
  • your.key 是要翻译的键

其他使用示例

await FlutterI18n.refresh(buildContext, languageCode, {countryCode});
FlutterI18n.plural(buildContext, "your.key", pluralValue);

GitHub

https://github.com/ilteoood/flutter_i18n