什么时候使用Base.lproj?

时间:2014-07-28 14:37:03

标签: ios xcode swift

我正在尝试了解Base.lproj但我仍然不了解它。如果我在XCode 6 beta 4中使用视图控制器和Swift + Storyboard创建一个新的简单项目,我会得到一个包含故事板文件的开箱即用的Base.lproj文件夹。

然后我在视图控制器中添加了一个simpel NSLocalizedString(...)用于测试目的。这需要Localizable.strings文件。当我创建一个时,我应该将它添加到Base.lproj中,还是应该将它添加到特定的语言文件夹中?

如果我将Info.plist中的Localization native development region键更改为de德语,而de文件夹中的de.lproj没有Localizable.strings文件,则可能会回退如果在那里找到Localizable.strings文件,则在Base.lproj上。但是,如果我在de.lproj文件夹中添加Localizable.strings文件但不添加属性(键+值),则应用程序在运行时会失败。好像Base.lproj似乎没有被搜索过。

我不明白Base是哪种语言以及何时使用?它只适用于Storyboard文件吗?

1 个答案:

答案 0 :(得分:0)

我的印象是base.lproj用于当前语言/本地化文件没有属性键的情况。例如,如果我有Main_Title =“Title Text”;在base.lproj和en.lproj中缺席,而当前语言是英语,我假设iOS会在base.lproj中找到它,但事实并非如此。

您的初步结论是正确的:

  
      
  1. Base仅在localizable.strings
  2. 中不支持该语言时使用   
  3. 当设备/应用程序使用该语言时,将使用特定语言localizable.strings文件夹
  4.   
  5. 如果您不支持某种语言的特定文件/字符串键,并且您有该语言的文件夹,则会抛出运行时警告
  6.   

如果你只有包含你的观点的base.lproj文件夹的故事板文件和xibs,尽管你支持多少种语言,它也不会失败(这也是我正在做的事情)。