用日语开发应用程序,添加本地化到英语

Develop app in Japanese, add localization into English

我正在开发一个 iOS 应用程序,几乎专门针对日本受众,可能还有一小部分说英语的用户。

所有的故事板和 xibs 都是用日语字符串设计的,英语本地化应该在稍后阶段进行。

从头开始,项目在Xcode中的Info/Localizations部分如下:

(这两个文件当然是"Main.storyboard""LaunchScreen.xib" )

因为已经添加了"English"(作为开发语言),我不能点击“+”按钮将其添加为本地化。我可以改为添加 'Japanese',但我希望它成为开发语言,而不仅仅是一些(次要的)本地化。

此外,TargetInfo.plist 文件与上述内容明显矛盾:

当我在项目导航器中 select 任一本地化文件(Main.storyboardLaunchScreen.xib)并检查文件检查器时,'Localization' 部分显示为:

...这似乎表明现有的日文文件(.xib 和 .storyboard)是 'Base' 并且检查 'English' 也会添加对该语言的支持(拉-下拉菜单似乎表明我可以在使用字符串文件或故事板的专用副本之间进行选择。我倾向于认为字符串方法更好)。

...那么,我该如何进行呢?

一个。检查文件检查器/本地化部分中的 'English' 框? 这将创建一个 en.lproj 文件夹并在其中添加一个字符串文件,我想我应该稍后翻译它。这似乎有效地将我现有的 Interface Builder 文件(填充有日语标签)视为 'Base',并通过创建的字符串文件(如果我理解正确的话)提供英语本地化。但是,在项目设置中将英语作为开发语言仍然令人不安...

乙。在项目/Info/Localizations 窗格中删除英语并添加日语? 这将使日语成为开发语言,之后我可以将英语重新添加为 localization。但出于某种原因,如果我这样做,日语将 not 视为 'Base' 语言,并且(不必要的)字符串文件将被还添加了日语,而不仅仅是英语。

编辑: 我找到了 this question,它以某种方式为上面的选项 B 提供了 'fix'。

好的,这就是我的解决方案(但我仍然会接受 better/smarter 个答案):

我按照 the question I mentioned before 的建议做了,并编辑了 Xcode 项目文件以将日语强制为 "Development Language":

developmentRegion = English;
            hasScannedForEncodings = 0;
            knownRegions = (
                en,
                Base,
            );

变成:

developmentRegion = Japanese;
            hasScannedForEncodings = 0;
            knownRegions = (
                en,
                ja,
                Base,

接下来,对于我要本地化的 storyboards/xibs,我将选中文件 inspector/Localization:

中的 'English' 复选框

...这将为我的英语本地化创建字符串文件(请注意 'English' 下面的 'Japanese' 复选框。我宁愿它根本不存在,因为 Base xibs/storyboards默认情况下已经有日语文本标签,但我可以不选中它。

现在,项目 的信息窗格,'Localizations' 部分如下所示:

附录: 现在我想起来了,设置成这样,如果有人在(比如说)iPhone 设置为法语时启动这个应用程序,该应用程序将退回到日语(不是英语)。这可能并不理想,因为非日语使用者的默认语言应该是英语,而不是相反。

但是,我不能用英文设计我的 xib,然后再将它们翻译成日文。