使用:
flutter pub add intl
还需要添加:
flutter_localizations: # Add this line
sdk: flutter # Add this line
-
使用vscode插件 Flutter Intl
1669106290349.jpg -
Ctrl+Shift+p (windows)打开控制台 选择输出化,成功后会生成。这里默认只能生成英文库
image.png - Ctrl+Shift+p (windows)打开控制台 选择添加中文库,输入 zh。会自动生成I10n的arb文件
-
修改对应arb文件添加字符串,保存会自动生成相应文件无需手动操作
image.png - 使用
return MaterialApp(
builder: EasyLoading.init(),
routes: AppRouter.routeMaps,
title: 'TOUR_GUIDE',
theme: ThemeData(
primarySwatch: Colors.blue,
),
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
//设置初始语言
locale: const Locale('en', ''),
supportedLocales: const [
Locale('en', ''), // English, no country code
Locale('zh', ''), // Chinese, no country code
],
);
//需要使用的地方调用S().home,
TabIconModel(
title: S().home,
image: 'assets/images/home.png',
selectImage: 'assets/images/home_sd.png'),
每次保存会自动在S类生成对应get方法
image.png
- 切换语言
///通过S load方法修改语言
S.load(const Locale('zh', ''));
- 注意的地方
貌似不支持嵌套,不知道是打开的方式不对,还是不支持。有知道的可以交流一波
网友评论