2020-07-15 整理
- App 名称国际化
- 图片、文字国际化
- 强制默认显示某种语言
- 启动图国际化
- iOS10 所需的权限配置国际化
- xib/storyboard 国际化
- 总结
1. App 名称国际化
PROJECT -- Info -- Localizations 中点击下方的 “ + ”,
添加需要添加的语言,本文中以简体中文和英文为例 。
国际化的所有操作,都需要这一步作为前提 。
1.2 向程序中的 Info.plist 中添加 "Bundle display name" 字段,并且命名为 "啊泼泼",
大家都知道这里的 display name 就是 app 显示在 iphone 手机上面的名字
1.3 添加以 InfoPlist.string 为名称的 string 文件
查到的资料 "都" 说需要名称一模一样才能使用
1.4 创建后选中 InfoPlist.strings ,然后点击 Localize… 添加语言
1.4.1 完成后,在 InfoPlist.strings 自动生成的两个文件
1.5 分别在对应的 string 文件中填写 App 名称 就可以了。
"CFBundleDisplayName" = "啊泼泼";
"CFBundleDisplayName" = "Apopo";
1.5.1模拟器的设置页面修改语言
关于 Bundle name 和 Bundle display name 苹果的文档 :
CFBundleName (String-IOS,MacOSX) 标识包的短名称。
此名称应小于16个字符,适合在菜单栏和应用程序的Info窗口中显示。
您可以将此键包含在适当的 .lproj 子目录的 InfoPlist.string 文件中,
以便为其提供本地化的值。
如果您本地化了这个键,您还应该包括键“CFBundleDisplayName”。
CFBundleDisplayName (String-IOS,MacOSX) 指定包的显示名称。
如果您支持包的本地化名称,
请将此键包括在您的信息属性列表文件和语言子目录的 InfoPlist.string 文件中。
如果本地化此键,还应包括 CFBundleName 键的本地化版本。
如果您不打算本地化您的包,请不要在 Info.plist 文件中包含此键。
包含此键不会影响包名的显示,但在搜索此键的本地化版本时会导致性能损失。
在显示包的本地化名称之前,
Finder 将此键的值与文件系统中包的实际名称进行比较。
如果两个名称匹配 ,
则 Finder 将继续显示包的适当 InfoPlist.string 文件中的本地化名称。
如果名称不匹配,则查找程序将显示文件系统名称。
文档似乎表明,只有在有本地化的情况下,包显示名称才是有用的,
如果在没有本地化的情况下指定绑定显示名称,则可能会影响性能。
用以上方法修改App名称的一个问题:
如果系统为有对应 string 文件的语言时,可以正常显示。
如果系统为无对应 string 文件的语言时,删除 App 重装后 会跟随设定的开发语言显示;直接修改系统语言时会跟随上一次有对应 string 文件时的语言显示。
设定开发语言
将系统自带 UI 的语言从英文改为中文 ?
比较常见的地方
有 UITextView 或者 UIWebView 中长按弹出的复制、选择菜单,
还有调用摄像头的一些文字,
还有 AVPlayerViewController 种的完成,及拖动状态条下的文字提示等等.
大部分更改语言设置的建议都是在 info.plist 文件(即项目的info选项)中设置 Localization native development region 的字段
如果 无效,看下是否在项目的 PROJECT -- Info -- Localizations 中添加语言包
网友评论