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);