Flutter - 本地化语言
Posted hupo376787
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter - 本地化语言相关的知识,希望对你有一定的参考价值。
Flutter有很多本地化的packages使用,我现在用的是 flutter_i18n
项目主页:https://pub.dartlang.org/packages/flutter_i18n
1、安装
在pubspec.yaml中添加
dependencies: flutter_i18n:
Ctrl+S保存后,自动获取最新的包。
2、引用
import ‘package:flutter_i18n/flutter_i18n.dart‘;
3、配置
项目下新建一个文件夹,下面站识几个例子,用任意一个即可
/assets/flutter_i18n (默认) /assets/i18n /assets/locales
以 assets/i18n 为例
在刚才新建的文件夹下,新建json文件,包含需要翻译的关键字,这儿分两种情况。
需要指定国家代码
/assets/i18n/{languageCode}_{countryCode}.json
其他
/assets/i18n/{languageCode}.json
然后在pubspec.yaml中声明
flutter:
assets:
- /assets/i18n
然后为了使用flutter_i18n,需要在MaterialApp中添加.
true或者false根据情况自己确定。
return new MaterialApp( localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, FlutterI18nDelegate(true, ‘en_us‘, ‘assets/i18n‘), ], home: new HomePage(), }, );
4、翻译
在使用的时候,直接添加代码
FlutterI18n.translate(buildContext, "your.key")
更多请参考项目主页介绍https://pub.dartlang.org/packages/flutter_i18n
以上是关于Flutter - 本地化语言的主要内容,如果未能解决你的问题,请参考以下文章
错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段
在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]
Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段
flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段