flutter国际化

一、引入国际化库

在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文件中增加以下权限

    CFBundleAllowMixedLocalizations
    
    CFBundleDevelopmentRegion
    ch
    CFBundleLocalizations
    
        zh_CN
        en
    

你可能感兴趣的:(flutter国际化)