我查看了苹果开发者的一些国际化文档和视频,但我从未找到过该问题的明确答案。在Apple的教程中,我看到Base.lproj
和en.lproj
旁边的zh.lproj
文件夹 - 示例翻译(本地化)是从英文到中文。但他们告诉我有一个文件en.lproj/myStoryboard.strings
,这令人困惑。我无法看到为故事板创建英语本地化的重点(已经是英文版)。
Base.lproj/myStoryboard.storyboard
中的字符串? Base.lproj/myStoryboard.storyboard
,总是回到en.lproj/myStoryboard.strings
”吗?换句话说:
假设我希望我的应用在用户的语言不可用时以英语显示,但我的Base.lproj/myStoryboard.storyboard
是瑞典语。我是否 将基本故事板本地化为sv.lproj/myStoryboard.strings
并将Base故事板中的所有字符串翻译为英语以实现此目的?
答案 0 :(得分:3)
就我而言,XCode 5没有创建en.lproj/myStoryboard.strings
,只有Base.lproj
文件夹中的原始故事板。也许这是一个旧的XCode问题?
尝试删除该文件,看看您的应用是否与Base.lproj一起使用默认的英文字符串。
您的Info.plist文件应该有一个条目Localization native development region
,它指向要在首选语言中不存在所需字符串的情况下使用的lproj文件夹。
我不确定这一点,但我认为您必须使用en
,而Base.lproj
的用户界面会自动回退到Base.lproj
。
这对你有什么帮助吗?
答案 1 :(得分:3)
- 所以我的问题是用户是否会在Base.lproj / myStoryboard.storyboard中看到字符串?
醇>
默认情况下,将这些字符串用于开发区域本地化,通常是英语。如果有一个匹配的英文字符串文件,它将取代故事板中的字符串。这通常是多余的,因此通常不会使用。如果你真的想要以相同的方式处理所有语言,你可以这样做。
如果系统在我的捆绑包中找不到用户的首选语言文件夹,那么该文件中的字符串是否必须是向用户显示的默认字符串?
这些是无关的概念。嵌入在故事板中的字符串等同于en.lproj中的字符串。之后,语言回退与没有Base.lproj的情况相同。
我可以明确说“永远不要使用Base.lproj / myStoryboard.storyboard,总是依赖于en.lproj / myStoryboard.strings”吗?
如果你有en.lproj / myStoryboard.strings,并且english是开发语言,他们将总是取代Base.lproj / myStoryboard.storyboard中嵌入的英文字符串。包括英语不是首选语言,但最终被选为后备语言。