GitHub Demo 地址:https://github.com/LINGLemon/lxf_flutter_demo
1、安装Flutter intl插件
菜单点击 Android Studio -》 Preferences
搜索安装后重启。
2、yaml文件添加flutter_localizations依赖
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
3、菜单点击Tools -》 Flutter Intl -》 Initialize for the Project
点击后生成如下文件
4、执行flutter pub get
5、添加多语言文件arb
菜单点击Tools -》 Flutter Intl -》 Add Locale -》 设置arb语言名
英语使用en,简体中文使用zh,繁体中文使用tc,韩语使用ko
6、编辑I10n文件,添加多语言到arb文件
intl_en.arb添加英语:
{
"hello": "hello",
"confirm": "confirm",
"cancel": "cancel"
}
intl_zh.arb添加简体中文:
{
"hello": "你好",
"confirm": "确认",
"cancel": "取消"
}
编辑完成后,在arb文件界面中,使用cmd+s保存(底层执行flutter --no-color pub global run intl_utils:generate 命令),保存后以下文件内容会更新多语言的获取方法
7、在APP入口处添加代码:
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
locale: const Locale('zh'),
supportedLocales: const [
Locale('en', 'US'), // English
Locale('zh', 'CH'), // Chinese
],
localizationsDelegates: const [
// ... app-specific localization delegate[s] here
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
8、调用多语言
Text(S.of(context).hello),
Text(S.of(context).confirm),
Text(S.current.cancel), // 没有context的时候使用这个