本文主要是介绍Flutter 使用intl、localizely实现多语言国际化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
官方文档
1.AndroidStudio导入插件
2.然后点击(我的电脑是Mac)Tool > Flutter Intl > Intialize for Project导入插件到项目
3.然后会看到pubspec.yaml
文件多了如下内容
4.再点击Add Locale
添加语言
插件会新增目录
intl_zh_CN.arb
对应的计时语言包文件了
5.接下来可以通过localizely编辑语言词条信息。
6.编辑好后可以直接使用intl
插件导入到项目。
- 找到项目的
API token
和Project ID
- 使用
intl
插件导入到项目利
连接成功后pubspec.yaml文件会新增如下内容
7.最后代码里面使用。
void main() {runApp(MaterialApp(localizationsDelegates: const [//使material组件支持多语言GlobalMaterialLocalizations.delegate,//定义组件默认的文本方向,从左往右或者从右往左GlobalWidgetsLocalizations.delegate,S.delegate],supportedLocales: S.delegate.supportedLocales,home: const IntlPage(),));
}class IntlPage extends StatefulWidget {const IntlPage({Key? key}) : super(key: key);@overrideState<StatefulWidget> createState() => IntlState();
}class IntlState extends State<IntlPage> {@overrideWidget build(BuildContext context) => MaterialApp(home: Scaffold(body: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [//语言包里的词条Text(S.of(context).name),ElevatedButton(onPressed: () {setState(() {//手动切换中文S.load(const Locale("zh", 'CN'));});},child: const Text('切换中文')),ElevatedButton(onPressed: () {setState(() {//手动切换英文S.load(const Locale('en'));});},child: const Text('切换EN'))],),),);
}
这篇关于Flutter 使用intl、localizely实现多语言国际化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!