本地化CFBundleDisplayName& InfoPlist.strings中的CFBundleName
当我更改整个设备的语言时,它可以正常工作。它会更改我的应用程序的名称。
我使用NSUserDefaults语言设置从应用程序内部手动更改应用程序语言。每当我从应用程序内部更改语言时,应用程序内的所有内容都完全本地化。 (需要重新启动应用程序)
但应用名称不会改变这种方式,改变它的唯一方法是更改设备语言。
我错过了什么吗?有没有办法在语言改变时更改应用名称?
答案 0 :(得分:2)
不幸的是,我认为你不能。
iOS无法分辨每个应用程序中设置的语言首选项(嗯,它可以,但不是这样做的)。
相反,它使用系统范围的设置来查找并显示每个应用程序的相应CFBundleDisplayName
。
在app中开发自定义语言首选项也不是推荐的方法。 Apple希望用户在设备的首选项中设置他们选择的语言,而不是从个人应用程序内部设置(请参阅此处:https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPInternational/Articles/InternatSupport.html#//apple_ref/doc/uid/20000278-SW1)。例如,没有办法从应用程序内部更改Facebook的语言,但只要您更改设备的全局语言设置,Facebook应用程序就会反映这一变化。