Flutter 核心技术与实战
陈航
前美团点评高级技术专家
42432 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
Flutter 核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

32 | 适配国际化,除了多语言我们还需要注意什么?

如何实现图片类资源的国际化
Flutter国际化能力的不足
国际化的核心
Flutter i18n插件的使用
Flutter应用国际化的解决方案
iOS工程中应用名称的配置
Android工程中应用名称的配置
在原生的iOS工程中进行额外的配置
S.of(context)方法获取翻译文案
localizationsDelegates与supportedLocales的配置
自动生成代码
安装与依赖
在应用程序MaterialApp初始化时设置翻译回调
为需要支持的语言地区进行手动翻译适配
实现一个LocalizationsDelegate
涉及语言及地区差异的适配改造过程
思考题
总结
原生工程配置
iOS应用程序的国际化配置
Flutter官方工程模板中的国际化实现
Flutter i18n插件
国际化的具体过程
国际化的定义
Flutter应用的国际化
适配国际化,除了多语言我们还需要注意什么?
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是陈航。今天,我们来聊聊 Flutter 应用的国际化。
借助于 App Store 与 Google Play,我们能够把应用发布到全世界的任何一个应用商店里。应用的(潜在)使用者可能来自于不同国家、说着不同的语言。如果我们想为全世界的使用者提供统一而标准的体验,那么首先就需要让 App 能够支持多种语言。而这一过程,一般被称为“国际化”。
提起国际化,你可能会认为这等同于翻译 App 内所有用户可见的文本。其实,这个观点不够精确。更为准确地描述国际化的工作职责,应该是“涉及语言及地区差异的适配改造过程”。
比如,如果我们要显示金额,同样的面值,在中国会显示为¥100,而在美国则会显示为 $100;又比如,App 的引导图,在中国我们可能会选用长城作为背景,而在美国我们则可能会选择金门大桥作为背景。
因此,对一款 App 做国际化的具体过程,除了翻译文案之外,还需要将货币单位和背景图等资源也设计成可根据不同地区自适应的变量。这也就意味着,我们在设计 App 架构时,需要提前将语言与地区的差异部分独立出来。
其实,这也是在 Flutter 中进行国际化的整体思路,即语言差异配置抽取 + 国际化代码生成。而在语言差异配置抽取的过程中,文案、货币单位,以及背景图资源的处理,其实并没有本质区别。所以在今天的分享中,我会以多语言文案为主,为你讲述在 Flutter 中如何实现语言与地区差异的独立化,相信在学习完这部分的知识之后,对于其他类型的语言差异你也能够轻松搞定国际化了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Flutter应用国际化是一项重要的技术,本文详细介绍了在Flutter应用中实现国际化的方法。文章强调了国际化不仅仅是简单的文本翻译,还需要考虑货币单位、背景图等资源的适配。具体介绍了在Flutter中实现国际化的步骤,包括实现LocalizationsDelegate、手动翻译适配以及初始化时设置翻译回调等。作者还介绍了Flutter i18n插件的安装和使用,以及arb文件的格式和自动生成的代码。在示例中演示了如何在Flutter中实现国际化,包括在应用程序入口设置支持国际化的参数、获取翻译文案以及在iOS应用中进行额外的配置。此外,还介绍了在原生Android和iOS系统中进行国际化适配的方法。总的来说,本文详细介绍了Flutter应用的国际化实现方法,对于开发者来说是一份有价值的技术指南。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Flutter 核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(20)

  • 最新
  • 精选
  • Geek_keyi
    图片显示是靠图片名称路径,不同语言环境返回对应图片资源的文件路径即可

    作者回复: 赞

    2019-09-26
    3
  • zzz why
    老师,图片资源的国际化适配,可以在assets下创建不同语言的目录,然后利用i18n的翻译功能,在values下对应的arb文件中分别添加不同的图片路径,使用的时候使用S.of(context).images这种方式,完成国际化的图片资源使用。不知道这么做是不是合适

    作者回复: 可以的👍

    2019-09-25
    3
  • JustinLiu
    教师节快乐

    作者回复: 谢谢

    2019-09-10
    2
  • YJ
    教师节到了,老师辛苦了!

    作者回复: 谢谢

    2019-09-10
    1
  • hopkin
    其实还是没太懂GlobalMaterialLocalizations.delegate 与 GlobalWidgetsLocalizations.delegate是干嘛的

    作者回复: 官方Widget(比如日历组件,弹窗组件等)的翻译回调

    2019-11-07
  • 毛哥来了
    老师,我把翻译加到Provider那个例子里面报错了,请看看是怎么回事呢 body: Consumer2<CounterModel, double>( //builder函数可以直接获取到counter参数 builder: (context, CounterModel counter, double textSize, _) => Text(S.of(context).message_tip(counter.counter.toString()), style: TextStyle(fontSize: textSize))), 错误信息是:The method 'message_tip' was called on null.

    作者回复: builder里是没法用的,因为context得要找到_localizationsScope,你换一个实现方式

    2019-10-29
  • 和小胖
    图片资源的国际化,本质上还是文本资源的国际化。

    作者回复: 是的

    2019-10-16
  • 迷茫的2月27
    现在的android studio已经无法搜索到这个插件了 http://plugins.jetbrains.com/plugin/10128-flutter-i18n Plugin removal has been requested
    2020-01-08
    5
    2
  • 洋洋
    老师,如果想要在应用内部切换语言我们要怎么是怎么实现呢?
    2021-05-14
  • iHTC
    感谢航哥!文章写的很清晰! 欢迎大家follow 开源的番茄钟倒计时App,有多语言功能。https://github.com/iHTCboy/iPomodoro-Flutter 🥳
    2021-03-07
收起评论
显示
设置
留言
20
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部