| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Flutter Intl的使用 -> 正文阅读 |
|
[移动开发]Flutter Intl的使用 |
前言Intl是flutter中用于支持多语言操作的一个库,方便开发者通过arb文件来进行本地化操作,省去一些既定步骤的操作。 Flutter Intl则是针对Intl库开发的插件,主要功能为自动生成代码,简化前置操作,让开发者能更专注arb的编写; Flutter Intl插件目前有VSCode版和IDEA/Android Studio版,使用步骤大致相同。 arb文件全称Application Resource Bundle(abbr. ARB)是一种本地化资源格式,遵循json规范,arb文件可以提供给翻译人员翻译完毕后,再另行导入。 Intl使用的是l10n标准(l10n即localization的缩写),库的目前版本为0.17.0,操作步骤可能与之前版本有所差异,注意鉴别。 本文就VSCode环境中演示一下Flutter Intl插件的使用,Flutter SDK版本为3.0.3,Dart版本为2.17.5。 插件的启用安装插件在扩展应用市场搜索"Intl",选择“Flutter Intl"安装: 启用插件安装完成后,Ctrl+Shift+P打开包命令窗口,选择“Flutter Intl:初始化”: 自动生成相关文件插件会在flutter工程目录下自动生成以下目录及文件:
intl_en.arb即对应的英文翻译文档; 可以简单把调用链理解为:
除了生成对应文件以外,插件也会在pubspec.yaml文件末尾自动添加intl的启用标识:
本地化配置添加依赖本地化的依赖需要自行在pubspec.yaml中添加:
添加在dependencies节点或dev_dependencies节点视情况而定,dependencies意为项目依赖,dev_dependencies意为开发环境依赖; Intl库的依赖在插件的作用下已经添加到pubspec.lock文件中:
但考虑到pubspec.lock官方不建议作为项目提交文件,因此在pubspec.yaml文件再进行直接依赖也是极好的,最终依赖是这样的:
(添加依赖后理应执行pub get packages命令远程导入相关库,不过大多智能IDE都自行执行了这一过程) 添加中文支持Ctrl+Shift+P打开包命令,选择"Add Locale":
arb文件操作在intl_en.arb文件中添加需要映射的字段,如下:
并在intl_zh.arb添加对应的字段,如下:
普通的字段就相当于【资源引用符】,而以"@”符号开头的字段代表着规则与注释; 本地化入口配置要在程序入口或者说UI顶层,一般是MaterialApp或WidgetsApp的入口处配置本地化的字段; 上文提到过l10n.dart中生成的默认本地化相关类S,就是在这里使用的:
关于ios的本地化配置,同样可以参考官方文档的Flutter本地化应用中iOS 本地化:更新 iOS app bundle一小节的介绍。 使用不同语言环境的输出最终调用S.current或S.of(context)的对应arb字段即可:
中文环境下输出:
英文环境下输出:
当然,以上输出中的“确定”“取消”等字段最好也在arb文件中提前定义。 以上例举的均是对应着Intl库中message方法的使用,更多其他用法可以参考Intl API。 手动指定语言环境程序会根据系统的设置选择Locale,也可以自行指定;
然后在程序入口处包裹:
Intl.defaultLocale可能在某些平台下无法生效,可以尝试localeResolutionCallback强行指定默认的语言环境(这种方法相较稳定一些);
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 2:52:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |