Flutter 国际化多语言支持

① 第一种方式 官方
② 第一种方式 Flutter Intl

下面介绍 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)相关推荐

  1. Flutter开发之搭建Flutter开发环境(三)

    回首demo.之前的工程突然,无法iOS上运行了.重装了最新的Xcode.然后VS Code 终端运行 flutter packages get 再打开Xcode 设置开发证书.再在iOS真机或者模拟 ...

  2. flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持

    鉴于Flutter高性能渲染和跨平台的优势,闪点清单在移动端APP上,使用了完整的Flutter框架来开发.既然是完整APP,架构搭建完全不受历史Native APP的影响,没有历史包袱的沉淀,设计也 ...

  3. windows 仍在设置此设备的类配置。 (代码 56)_谷歌发布Flutter Alpha:支持Windows

    老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...

  4. github windows系统监控_谷歌发布Flutter Alpha:支持Windows

    老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...

  5. 即构音视频 Express Flutter SDK 全面支持空安全

    Flutter 是一套移动 UI 框架,可以快速在 iOS.Android 上构建高质量的原生用户界面.作为其官方语言 Dart 是类型安全的,当开发者获取变量的时候,编译器可以保证变量的类型,但类型 ...

  6. 谷歌发布Flutter Alpha:支持Windows

    老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...

  7. 高仿书旗小说 Flutter版,支持iOS、Android

    高仿书旗小说 Flutter版,支持iOS/Android Github地址 github.com/huanxsd/flu- screen shot for iOS screen shot for A ...

  8. 高仿书旗小说 Flutter 版,支持 iOS、Android

    flutter_shuqi 项目地址:huanxsd/flutter_shuqi  简介:高仿书旗小说 Flutter 版,支持 iOS.Android 更多:作者   提 Bug 标签: 简书 sc ...

  9. Flutter开发之认识Flutter(二)

    在第一篇大概了解到Flutter是干什么的,属于跨平台开发,跟之前的RN 属于同一类.下面继续了解Flutter的起源.Flutter和其他平台的对比.Flutter开发语言Dart. 1.Flutt ...

最新文章

  1. format控制输出 python_【Python】之format奇技淫巧的输出控制
  2. Logstash 父子关系 配置
  3. sscanf,sprintf,fscanf,fprintf 系列函数
  4. JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列
  5. RabbitMQ(六) Routing路由模式
  6. linux 定时任务 crontab
  7. keystone系列二:HTTP协议
  8. 一层循环时间复杂度_数据结构与算法:算法的时间复杂度
  9. VSTT Rosario CTP
  10. 程序猿最喜欢哪一个浏览器?
  11. 【Pytorch with fastai】第 1 章:你的深度学习之旅
  12. Excel工作表保护在哪里撤销?
  13. 【CASS精品教程】CASS9.1查询功能大全(坐标、长度、面积、方位角)
  14. 计算机右键管理快捷键,鼠标右键菜单管理
  15. java运维工程师简历模板_系统运维工程师个人个人简历模板.doc
  16. 服务器被ddos攻击?分析如何防止DDOS攻击?
  17. matlab求系统根轨迹代码_怎么学习经典控制(结合MATLAB)
  18. Win11玩红警2突然就卡住不动?
  19. agc013e Placing Squares(模型转化+dp+矩阵优化)
  20. Python 3,4行代码实现去除图片背景色,从此告别PS!!

热门文章

  1. 开工大吉| “卯”足干劲,大展宏“兔”!
  2. Web安全原理剖析(一)——SQL注入原理
  3. @JsonProperty,@NotNull,@JsonIgnore的具体使用
  4. 出国申请PS注意事项
  5. 接入第三方SDK初始化失败原因
  6. android 键盘顶起dialog,Android dialog软键盘弹出顶起View
  7. thinking in java 学习笔记 14 类型信息
  8. 【中秋第一弹】别具一格的短信祝福
  9. 浅谈软件开发中的假设条件
  10. MFC tabcontrol切换界面