一、引入国际化库
在pubspec.yaml文件配置,引入国际化库
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.17.0 # Add this line
二、启用国家化生成标志
此外,在 pubspec.yaml 文件中,启用生成标志。 这被添加到特定于 Flutter 的 pubspec 部分中,并且通常在 pubspec 文件的后面部分出现。
# The following section is specific to Flutter.
flutter:
generate: true # Add this line
三、增加国家化架包,创建l10n.yaml并输入下列文字
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
四、在${FLUTTER_PROJECT}/lib/l10n,目录下增加对应的文件 app_en.arb和app_es.arb 并输入中英文对应的字符如
app_en.arb
{
"helloWorld": "Hello World!",
"@helloWorld": {
"description": "The conventional newborn programmer greeting"
}
}
app_es.arb
{
"helloWorld": "¡Hola Mundo!"
}
五、查看配置是否成功
重新跑一遍
查看${FLUTTER_PROJECT}/.dart_tool/flutter_gen/gen_l10n目录下是否有对应的本地文件,若有则成功
六、设置支持国际化
return const MaterialApp(
title: 'Localizations Sample App',
localizationsDelegates: DeerLocalizations.localizationsDelegates,
supportedLocales: DeerLocalizations.supportedLocales,
home: MyHomePage(),
);
七、使用国家化
Text(AppLocalizations.of(context)!.helloWorld);
八、iOS配置
在info文件中增加以下权限
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>ch</string>
<key>CFBundleLocalizations</key>
<array>
<string>zh_CN</string>
<string>en</string>
</array>