32 | 适配国际化,除了多语言我们还需要注意什么?
陈航
该思维导图由 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
《Flutter 核心技术与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(20)
- 最新
- 精选
- Geek_keyi图片显示是靠图片名称路径,不同语言环境返回对应图片资源的文件路径即可
作者回复: 赞
2019-09-263 - zzz why老师,图片资源的国际化适配,可以在assets下创建不同语言的目录,然后利用i18n的翻译功能,在values下对应的arb文件中分别添加不同的图片路径,使用的时候使用S.of(context).images这种方式,完成国际化的图片资源使用。不知道这么做是不是合适
作者回复: 可以的👍
2019-09-253 - JustinLiu教师节快乐
作者回复: 谢谢
2019-09-102 - YJ教师节到了,老师辛苦了!
作者回复: 谢谢
2019-09-101 - 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 requested2020-01-0852
- 洋洋老师,如果想要在应用内部切换语言我们要怎么是怎么实现呢?2021-05-14
- iHTC感谢航哥!文章写的很清晰! 欢迎大家follow 开源的番茄钟倒计时App,有多语言功能。https://github.com/iHTCboy/iPomodoro-Flutter 🥳2021-03-07
收起评论