Flutter 多语言支持(Flutter Intl Plugin)
Flutter 国际化多语言支持
① 第一种方式 官方
② 第一种方式 Flutter Intl
1.安装插件
在vscode 或者idea 中 搜索并安装 Flutter Intl 插件
2.添加依赖
在 pubspec.yaml 中添加 flutter_localizations 依赖并执行packages get
如下:
dependencies:# 国际化flutter_localizations:sdk: flutter
3.初始化Intl
选择Tools -> Flutter Intl -> Initialize for the Project 会对项目进行初始化
初始化结束会自动在 pubspec.yaml 后新增
# 已开启国际化
flutter_intl:enabled: true
同时,lib目录下会新增generated和l10n两个目录。
- l10n目录下为arb文件
- generated目录下为根据arb文件自动生成以下dart代码
- intl_en.arb 为英文 默认缺省语言
3.新增语言
ARB文件扩展名为:Application Resource Bundle 意为应用程序资源包,并得到Google的支持,每个.arb文件都包含一个JSON表,该表从资源ID映射到本地化值,文件名包含已为其转换值的语言环境。
新增 中文 'zh_CN’语言
然后会在I10n 文件夹下生成 itnl_zh_CN.arb文件
4.添加需要的语言json配置
简单 的arb文件 内包含如下字段
前面为 ‘@’ 符号的可不添加,供开发适配人员阅读
- @@last_modified 为该json 编辑时间
- @@locale 表示该json 配置的语言
- “title”: “Flutter应用” 为添加的语言字符串
- “@title”: {
“description”: “Title for the Demo application”,
“type”: “text”,
“placeholders”: {}
} 对添加的title 字符串的注释等
{"@@last_modified": "2018-12-10T15:46:20.897228","@@locale":"zh_CH","title": "Flutter应用","@title": {"description": "Title for the Demo application","type": "text","placeholders": {}}
}
5.配置及使用语言
配置
import ‘package:flutter_localizations/flutter_localizations.dart’;
MaterialApp(localizationsDelegates: const [GlobalCupertinoLocalizations.delegate,GlobalMaterialLocalizations.delegate,GlobalWidgetsLocalizations.delegate,S.delegate],supportedLocales: S.delegate.supportedLocales,……)
使用
将 Text("Flutter应用") 替换
Text(S.of(context).title)
6.切换语言
S.load(Locale.fromSubtags(languageCode: "zh"));
//或
S.load(Locale('zh', 'CN');
然后SharedPreference保存,再每次App启动时切换保存的语言即可
Flutter 多语言支持(Flutter Intl Plugin)相关推荐
- Flutter开发之搭建Flutter开发环境(三)
回首demo.之前的工程突然,无法iOS上运行了.重装了最新的Xcode.然后VS Code 终端运行 flutter packages get 再打开Xcode 设置开发证书.再在iOS真机或者模拟 ...
- flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持
鉴于Flutter高性能渲染和跨平台的优势,闪点清单在移动端APP上,使用了完整的Flutter框架来开发.既然是完整APP,架构搭建完全不受历史Native APP的影响,没有历史包袱的沉淀,设计也 ...
- windows 仍在设置此设备的类配置。 (代码 56)_谷歌发布Flutter Alpha:支持Windows
老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...
- github windows系统监控_谷歌发布Flutter Alpha:支持Windows
老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...
- 即构音视频 Express Flutter SDK 全面支持空安全
Flutter 是一套移动 UI 框架,可以快速在 iOS.Android 上构建高质量的原生用户界面.作为其官方语言 Dart 是类型安全的,当开发者获取变量的时候,编译器可以保证变量的类型,但类型 ...
- 谷歌发布Flutter Alpha:支持Windows
老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...
- 高仿书旗小说 Flutter版,支持iOS、Android
高仿书旗小说 Flutter版,支持iOS/Android Github地址 github.com/huanxsd/flu- screen shot for iOS screen shot for A ...
- 高仿书旗小说 Flutter 版,支持 iOS、Android
flutter_shuqi 项目地址:huanxsd/flutter_shuqi 简介:高仿书旗小说 Flutter 版,支持 iOS.Android 更多:作者 提 Bug 标签: 简书 sc ...
- Flutter开发之认识Flutter(二)
在第一篇大概了解到Flutter是干什么的,属于跨平台开发,跟之前的RN 属于同一类.下面继续了解Flutter的起源.Flutter和其他平台的对比.Flutter开发语言Dart. 1.Flutt ...
最新文章
- format控制输出 python_【Python】之format奇技淫巧的输出控制
- Logstash 父子关系 配置
- sscanf,sprintf,fscanf,fprintf 系列函数
- JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列
- RabbitMQ(六) Routing路由模式
- linux 定时任务 crontab
- keystone系列二:HTTP协议
- 一层循环时间复杂度_数据结构与算法:算法的时间复杂度
- VSTT Rosario CTP
- 程序猿最喜欢哪一个浏览器?
- 【Pytorch with fastai】第 1 章:你的深度学习之旅
- Excel工作表保护在哪里撤销?
- 【CASS精品教程】CASS9.1查询功能大全(坐标、长度、面积、方位角)
- 计算机右键管理快捷键,鼠标右键菜单管理
- java运维工程师简历模板_系统运维工程师个人个人简历模板.doc
- 服务器被ddos攻击?分析如何防止DDOS攻击?
- matlab求系统根轨迹代码_怎么学习经典控制(结合MATLAB)
- Win11玩红警2突然就卡住不动?
- agc013e Placing Squares(模型转化+dp+矩阵优化)
- Python 3,4行代码实现去除图片背景色,从此告别PS!!
热门文章
- 开工大吉| “卯”足干劲,大展宏“兔”!
- Web安全原理剖析(一)——SQL注入原理
- @JsonProperty,@NotNull,@JsonIgnore的具体使用
- 出国申请PS注意事项
- 接入第三方SDK初始化失败原因
- android 键盘顶起dialog,Android dialog软键盘弹出顶起View
- thinking in java 学习笔记 14 类型信息
- 【中秋第一弹】别具一格的短信祝福
- 浅谈软件开发中的假设条件
- MFC tabcontrol切换界面