专栏名称: xiangzhihong
前端跨平台工程师、客户端工程师
目录
相关文章推荐
网购投诉平台  ·  【315报告】“中安建培”2024电诉宝用户 ... ·  昨天  
网购投诉平台  ·  【315报告】“58同城”2024电诉宝用户 ... ·  2 天前  
网购投诉平台  ·  315曝光“啄木鸟”揭开家庭维修行业暴利陷阱 ... ·  2 天前  
电子商务研究中心  ·  【315报告】“58同城”2024电诉宝用户 ... ·  2 天前  
51好读  ›  专栏  ›  xiangzhihong

Flutter 国际化适配实战

xiangzhihong  · 掘金  ·  · 2020-03-09 03:30

正文

阅读 46

Flutter 国际化适配实战

借助App Store与Google Play,全世界任何一个国家的使用者都可以使用我们开发的应用,不过由于应用的使用者来自不同国家,所以在应用正式上架之前需要让应用能够支持多种语言,即应用的国际化。 在Flutter开发中,应用的国际化主要涉及语言和地区差异性配置两个方面,它们是应用程序的组成部分之一。关于语言的国际化比较好理解,而地区差异性配置指的是根据国家风俗的不同进行的差异性配置。按照Flutter官方的适配方案,要在Flutter应用中实现语言的国际化,需要经过以下几步。

  1. 首先,实现一个翻译代理LocalizationsDelegate,将所有需要翻译的文案全部声明为它的属性。
  2. 然后,依次为需要支持的语言添加翻译适配文件。
  3. 最后,在应用程序的MaterialApp中初始化,将这个代理类设置为应用程序的翻译回调。 可以发现,如果直接按照官方提供的国际化方案来进行应用适配,不仅工作量大而且极易出错。为了达到快速适配,减少代码编写造成的错误,可以使用Android Studio提供的Flutter i18n国际化插件。如果还没有安装Flutter i18n插件,可以打开Android Studio,然后依次选择【Preference】→【Plugins】→【Marketplace】搜索Flutter i18n插件进行安装,如下图所示。
    在这里插入图片描述

安装完成之后,重启Android Studio就可以使用它进行Flutter的国际化适配了。需要说明的是,由于最新版的Android Studio已经不支持使用应用市场的方式来安装Flutter i18n插件,所以需要先从Jetbrains官网下载后再从本地进行安装,如下图所示。

在这里插入图片描述
由于Flutter i18n插件需要依赖flutter_localizations插件包,所以执行国际化适配之前,还需要在pubspec.yaml文件中添加flutter_localizations依赖,如下所示。

dependencies:
  flutter_localizations:
    sdk: flutter

复制代码

在命令行中使用flutter packages get命令拉取依赖。然后,在项目的根目录下会自动生成一个res文件夹,该文件夹默认会包含一个strings_en.arb文件,arb文件的格式如下。

{
  "app_name": "Flutter App internationalization",
  "main_title": "Flutter i18n",
  "main_content" : "You have click the button many times"
}

复制代码

arb文件是JSON格式的配置文件,可以用来存放文案标识符和文案翻译的键值对。事实上,这种将字符串文本分离成单独文件的做法,可以方便开发人员和翻译人员分工协作,从而提高适配效率。 默认情况下,系统只会生成英文资源配置strings_en.arb文件,如果要支持中文,则需要使用手动的方式在values目录下增加一个strings_zh.arb文件。在res/values文件夹上右键,然后依次选择【New】→【Arb File】→【Choose language】创建一个名为strings_zh.arb的arb文件,并添加如下内容。

{
  "app_name": "Flutter应用国际化",
  "main_title": "Flutter国际化",
  "main_content" : "点击按钮次数: $count"
}

复制代码

实际使用时,只需要修改res/values目录下的arb文件内容,i18n插件就会自动生成对应的Dart转换代码,如下图所示。







请到「今天看啥」查看全文