当iOS应用的Xcode项目是新建的,在项目(非目标)的设置,我们可以看到,它Use Base internationalization在默认情况下启用,并有2个文件进行了本地化Development Language这是English在默认情况下(一个用于Main.storyboard和一个LaunchScreen.storyboard,两个它位于Base.lproj目录中).见下面的截图:
(为简单起见,我只会Main.storyboard从现在开始提及.)
在Main.storyboard右侧面板的本地化部分,我们可以看到Base默认情况下会检查本地化,并且还有一个English默认情况下未选中的本地化.见下面的截图:
在目标中Info.plist,有一个名为Localization native development region(ie CFBundleDevelopmentRegion)的键,其默认值为en.见下面的截图:
如果我理解正确,使用这些默认设置,开发人员只需在Base本地化中编写英语,Main.storyboard并保持English本地化未经检查.如果应用程序需要适应其他语言,开发人员可以在项目本地化设置中添加本地化,并Main.storyboard在弹出的对话框中选择.见下面的截图:
以Chinese (Simplified)为例,这将导致一个新创建的目录zh-Hans.lproj与Main.strings里面的文件.(为简单起见,我将把它作为Chinese代替Chinese (Simplified).)开发者只需要这个文件里面的英文字符串翻译成中国(新创建Main.strings的zh-Hans.lproj目录默认拥有所有从重复的英文文本Main.storyboard中Base.lproj).通过这些设置,LanguageAppStore上此应用程序描述中的字段将列出英语(来自Base本地化,因为英语是development language)和中文(来自Chinese本地化).在最终用户的设备上,如果系统语言是英语/中文(或英语/中文是首选语言),应用程序将使用相应的语言资源(对于英语,使用Base本地化;对于中文,使用Chinese …