一、解决问题
-
flutter
相机使用的是image_picker
插件,打开中文的问题跟原生开发解决思路是一样的。 -
在开发相机、相册功能时,默认调起展示的英文,可以通过原生工程修改
info
配置,添加:Localization native development region
->String
->zh_CN
Localized resources can be mixed
->Boolean
->YES
注意:推荐从原工程
Target
中进入修改,直接修改info.plist
文件有概率不生效,可能是同步问题,理论上来说都可以,如果遇上了这个问题了可以尝试下。下面也提供了info.plist
配置方式。 -
配置细节了解:
通常配置
Localization native development region
配置后就生效了,而Localized resources can be mixed
属于可选,可以加一个尝试一下再追加。如果两个配置都设置了,还没有生效,那么就还需要添加一下资源包:
加了资源包后,重新运行看下有没有问题,按理论上基本就不会存在问题了,如果还有还可以强制设置一下默认:
扫描二维码关注公众号,回复: 17584736 查看本文章到这还不行,重新找文档吧。
二、info.plist
配置与介绍总结
1. Localization native development region
- 作用:这个键指定了应用的默认区域设置。如果你将其设置为某个特定的区域(例如
zh_CN
),并且没有设置其他区域相关的资源,它将会使你的应用在默认情况下使用该区域的语言和格式。 - 效果:即使没有在应用中本地化所有资源文件,系统也会根据这个设置提供默认的区域语言。
示例
<key>Localization native development region</key>
<string>zh_CN</string>
2. Localized resources can be mixed
-
作用:这个设置允许混合使用不同区域的资源。如果启用了它,资源文件(例如
strings
、图片等)可以不严格依赖于区域设置,这意味着可以在多个区域中共享资源,而不需要为每个区域单独维护一组资源。 -
效果:即使没有明确为每个区域提供本地化资源,这个设置也会让应用根据开发设置的默认语言进行显示。
示例
<key>Localized resources can be mixed</key>
<true/>
结论
- 只要
Localization native development region
设置正确,应用会优先使用该区域的语言。例如,zh_CN
会让系统默认使用简体中文。 - 如果希望更灵活地使用资源,并且不强制按地区创建多个资源文件,可以启用
Localized resources can be mixed
,这样即使没有为所有地区提供资源,应用也可以正常运行。
实际应用中
- 如果希望应用强制使用中文,并且不需要其他语言的支持,那么只配置
Localization native development region
为zh_CN
就足够了。 - 如果需要更灵活地处理不同语言和地区的资源,可以同时启用
Localized resources can be mixed
。