Flutter国际化|利用Android studio lntl插件国际化超简单自动化[最新教程]
-
下载 flutter lntl插件
在Tools中找到Flutter intl
一次点击 initial project
Add locae 【操作2次分别添加en ,zh]
完成上面操作后将在lib目录下分别生成l10n文件夹
generated文件夹generated文件夹 l10n.dart intl文件夹 messages_en.dart [修改,保存arb后自动生成] messages_zh.dart[修改,保存arb后自动生成] l10n文件夹 intl_en.arb intl_zh.arb
编写代码
分别在两个arb写入如下代码
intl_en.arb
{
"app_name": "lozn techlogy",
}
intl_zh.arb
{
"app_name": "Lozn 科技",
}
配置代码
说明 intl只需要在pubspec.yaml
flutter
下
flutter_intl:
enabled: true
保存后输入flutter pub get
自动生成l10n.dart
但是这个工具已经帮我们自动添加好了,没有自动添加的话自己添加,
顺便提一下flutter_localizations国际化
flutter_localizations
- 配置插件 pubspec.yaml 的dev_dependencies节点添加
flutter_localizations:
sdk: flutter
# intl: 0.17.0
S是intl生成的
GlobalCupertinoLocalizations.delegate等是package:flutter_localizations里面的,是使用flutter_localizations:生成的
-
配置入口代码
在入口dart导入import 'package:flutter_localizations/flutter_localizations.dart';
在build节点添加如下字段localizationsDelegates: const [ S.delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate ], // 设置中文为首选项 supportedLocales: [const Locale('zh', ''), ...S.delegate.supportedLocales],
-
使用国际化键名
S.of(context).app_name
children: <Widget>[
Text(
S.of(context).app_name ,
),
不 要加常量修饰符哦
值得注意的是这自动添加操作会在yaml最下面添加
flutter_intl:
enabled: true
网上的教程比较老,我这个还是比较简单的。
备注:markdown语法
https://www.jianshu.com/p/ebe52d2d468f