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

时间:2015-06-25 07:29:20

标签: ios xcode localization interface-builder

我正在开发一款几乎专门针对日本观众的iOS应用,可能会有一小部分说英语的用户。

所有故事板和xib都采用日语字符串设计,并且应在稍后阶段进行英语本地化。

从一开始,Xcode中的项目的信息/本地化部分就是:

enter image description here

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

因为"英语"已添加(作为开发语言),我无法点击" +"按钮并将其添加为本地化。我可以添加日语'相反,但我希望它是开发语言,而不仅仅是一些(二级)本地化。

此外,与上述明显矛盾的是,目标Info.plist文件显示为:

enter image description here

当我在Project Navigator中选择任一本地化文件(Main.storyboardLaunchScreen.xib),并检查文件检查器时,本地化'部分内容如下:

enter image description here

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

......那么,我该怎么办?

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

B中。删除英语,而是在项目/信息/本地化窗格中添加日语? 这将使日语成为开发语言,之后我可以重新添加英语作为本地化。但出于某种原因,如果我这样做,日语 将被视为' Base'还将为日语添加语言和(不必要的)字符串文件,而不仅仅是英语。

编辑:我找到了this question,它以某种方式提供了一个“修复”功能。对于上面的选项B.

1 个答案:

答案 0 :(得分:1)

好的,这就是我的目标(但我仍会接受更好/更聪明的答案):

我按照the question I mentioned before的建议做了,并编辑了Xcode项目文件以强制日语作为“开发语言”:

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

变为:

for( int k = 0; k < aL[i].size() ; k++ ) {
  newArray[a++] = aL[i].remove(0);
}

接下来,对于我想要本地化的storyboards / xibs,我将检查文件检查器/本地化中的“英语”复选框:

enter image description here

...这将创建我的英文字典文件(请注意'英文'下方的'日语'复选框。我宁愿它根本不存在,因为Base xibs / storyboards已经有日文文本标签默认情况下,但我可以不加控制地保留它。)

现在,项目的信息窗格,“本地化”部分如下所示:

enter image description here

ADDENDUM:现在我想起来了,如果有人设置这样的东西,如果有人在(例如)设置为法语的iPhone上启动此应用程序,该应用程序将回归日语(不是英语)。这可能不太理想,因为非日语使用者的默认语言应该是英语,而不是相反。

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