我想了解Base.lproj,但我还没有理解它.如果我在XCode 6 beta 4中使用视图控制器和Swift + Storyboard创建一个新的简单项目,我会得到一个包含storyboard文件的开箱即用的Base.lproj文件夹.
然后NSLocalizedString(...)我在视图控制器中添加一个simpel 用于测试目的.这需要Localizable.strings文件.当我创建一个时,我应该在Base.lproj中添加它还是应该将它添加到特定的语言文件夹中?
如果我将Localization native development regionInfo.plist中的密钥更改de为德语,并且我de在de.lproj文件夹中没有Localizable.strings文件,Base.lproj如果在那里找到Localizable.strings文件,它似乎会回退.但是,如果我在de.lproj文件夹中添加Localizable.strings文件但不添加属性(键+值),则应用程序在运行时会失败.好像Base.lproj没有被搜查过.
我不明白使用哪种语言Base以及何时使用?它只适用于Storyboard文件吗?
我的印象是,在当前语言/本地化文件没有属性键的情况下使用 base.lproj。例如,如果我确实有 Main_Title = "Title Text"; 在 base.lproj 中并且在 en.lproj 中不存在,而当前语言是英语,我假设 iOS 会在 base.lproj 中找到它,但事实并非如此。
你的初步结论是正确的:
- 仅当您在 localized.strings 中不支持该语言时才使用 Base
- 当设备/应用程序使用该语言时,将使用特定语言的 localized.strings 文件夹
- 如果您不提供对某种语言中特定文件/字符串键的支持,并且您有该语言的文件夹,它将引发运行时警告
对于故事板文件和 xibs,如果您只有包含视图的 base.lproj 文件夹,无论您支持多少种语言,它都不会失败(这也是我正在做的事情)。
| 归档时间: |
|
| 查看次数: |
4115 次 |
| 最近记录: |