10

我浏览了有关苹果开发者的一些国际化文档和视频,但我从未找到该问题的明确答案。在 Apple 的教程中,我看到Base.lproj旁边的文件夹en.lproj-zh.lproj示例翻译(本地化)是从英文到中文。但是他们告诉我有一个文件en.lproj/myStoryboard.strings,这很令人困惑。我看不出为情节提要(已经是英文)创建英文本地化的意义。

  1. 所以我的问题是用户是否会看到Base.lproj/myStoryboard.storyboard?
  2. 如果系统在我的包中找不到用户的首选语言文件夹,该文件中的字符串是否必须是向用户显示的默认字符串?
  3. 我可以明确地说“从不使用Base.lproj/myStoryboard.storyboard,总是依靠en.lproj/myStoryboard.strings”吗?

换句话说:
假设我希望我的应用程序在用户的语言不可用时以英语显示,但我的应用程序Base.lproj/myStoryboard.storyboard是瑞典语。然后我是否必须将 Base Storyboard 本地化并将 Base Storyboard 中sv.lproj/myStoryboard.strings的所有字符串翻译成英文才能完成此操作?

4

2 回答 2

3
  1. 所以我的问题是用户是否会看到 Base.lproj/myStoryboard.storyboard 中的字符串?

默认情况下使用这些字符串进行开发区域本地化,通常是英语。如果有匹配的英语字符串文件,它将取代情节提要中的字符串。这通常是多余的,因此通常不使用。如果您真的希望以相同方式处理所有语言,则可以这样做。

如果系统在我的包中找不到用户的首选语言文件夹,该文件中的字符串是否必须是向用户显示的默认字符串?

这些是不相关的概念。故事板中嵌入的字符串等同于 en.lproj 中的字符串。之后,语言回退的工作方式与没有 Base.lproj 的情况相同。

我可以明确地说“永远不要使用 Base.lproj/myStoryboard.storyboard,总是使用 en.lproj/myStoryboard.strings”吗?

如果您有 en.lproj/myStoryboard.strings,并且英语是开发语言,它们将始终取代嵌入在 Base.lproj/myStoryboard.storyboard 中的英语字符串。包括英语不是首选语言,但最终被选为后备语言的情况。

于 2013-10-07T16:49:09.163 回答
3

在我的例子中,XCode 5 没有创建,文件夹en.lproj/myStoryboard.strings中只有原始的故事板。Base.lproj也许这是一个旧的 XCode 问题?

尝试删除该文件并查看您的应用程序是否与 Base.lproj 配合使用默认的英文字符串。

您的 Info.plist 文件应该有一个 entry Localization native development region,它指向要使用的 lproj 文件夹,以防所需的字符串在首选语言中不存在。

我不确定这一点,但我认为你必须使用en带有 a 的 UIBase.lproj会自动回退到Base.lproj.

这对你有任何帮助吗?

于 2013-10-07T14:55:54.033 回答