我正在开发一款几乎专门针对日本用户的 iOS 应用,其中可能有一小部分说英语的用户。
所有 Storyboard和 xib 都使用日文字符串设计,并且应在稍后阶段将其本地化为英文。
从一开始,Xcode 中 Project 的 Info/Localizations 部分如下:
(这两个文件当然是“Main.storyboard”和“LaunchScreen.xib”)
因为已经添加了“English”(作为开发语言),所以我无法点击“+”按钮并将其添加为本地化。我可以添加“日语”,但我希望它成为开发语言,而不仅仅是一些(辅助)本地化。
此外,与上述明显矛盾的是,Target 的 Info.plist 文件内容如下:
当我在项目导航器中选择任一本地化文件(Main.storyboard 和 LaunchScreen.xib ),并检查文件检查器时,“本地化”部分阅读:
...这似乎表明现有的日语文件(.xib 和 .storyboard)是“基础”,检查“英语”也将增加对该语言的支持(下拉菜单似乎表明我可以选择使用字符串文件或 Storyboard的专用副本。我倾向于相信字符串方法更好)。
...那么,我应该怎么做呢?
A.检查文件检查器/本地化部分中的“英语”框?
这会创建一个 en.lproj 文件夹,并在其中添加一个字符串文件,我猜我应该稍后再翻译。这似乎有效地将我现有的 Interface Builder 文件(填充有日语标签)视为“基础”,并通过创建的字符串文件(如果我理解正确的话)提供英语本地化。然而,在项目设置中作为开发语言的英语仍然令人不安......
B.在 Project/Info/Localizations Pane 中删除英语并改为添加日语?
这将使日语成为开发语言,之后我可以将英语重新添加为本地化。但由于某种原因,如果我这样做,日语将 不 被视为“基本”语言,并且还会为日语添加(不必要的)字符串文件,而不仅仅是英语。
编辑:我找到了 this question ,它以某种方式为上述选项 B 提供了“修复”。
Best Answer-推荐答案 strong>
好的,这就是我所接受的(但我仍然会接受更好/更聪明的答案):
我按照 the question I mentioned before 的建议做了,并编辑 Xcode 项目文件以强制将日语作为“开发语言”:
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
变成:
developmentRegion = Japanese;
hasScannedForEncodings = 0;
knownRegions = (
en,
ja,
Base,
接下来,对于我想要本地化的 Storyboard/xib,我将选中文件检查器/本地化中的“英语”复选框:
...这将为英语本地化创建我的字符串文件(注意“英语”下方的“日语”复选框。我宁愿它根本不存在,因为基本 xibs/storyboards 已经有日语文本标签默认情况下,但我可以不选中它)。
现在,项目的信息 Pane 中的“本地化”部分如下所示:
附录: 现在我想起来了,像这样设置,如果有人在(比如说)设置为法语的 iPhone 上启动这个应用程序,应用程序将回退到日语(不是英语)。这可能并不理想,因为非日语使用者的默认语言应该是英语,而不是相反。
但是,我无法用英文设计我的 xib,然后再将它们翻译成日文。
关于ios - 用日语开发应用程序,将本地化添加到英语,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31043913/
|