我的Base Internationalization storyboard是否必须对应所有非本地化语言和string的后备语言?

我已经浏览了苹果开发者的一些国际化文档和video,但是我从来没有find明确的答案。 在Apple的教程中,我看到了与en.lprojzh.lproj一起的Base.lproj文件夹 – 示例翻译(本地化)是从英文到中文。 但他们告诉我,有一个文件en.lproj/myStoryboard.strings ,这是令人困惑的。 我无法看到为故事板创build英文本地化(已经是英文版)。

  1. 所以我的问题是,如果用户会看到Base.lproj/myStoryboard.storyboard的string?
  2. 如果系统在我的包中找不到用户的首选语言文件夹,那么该文件中的string是否必须是显示给用户的默认string?
  3. 我可以明确地说“永远不要使用Base.lproj/myStoryboard.storyboard ,总是回落在en.lproj/myStoryboard.strings ”?

换一种说法:
比方说,我希望我的应用程序用英文显示,只要用户的语言不可用,但我的Base.lproj/myStoryboard.storyboard是瑞典语。 然后,我必须将基础情节提要板本地化为sv.lproj/myStoryboard.strings ,并将基础情节提要中的所有string翻译为英语来完成此任务?

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

尝试删除该文件,看看您的应用程序是否与默认的英文stringBase.lproj一起。

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

我不知道这一点,但我认为你必须使用en和UI与Base.lproj会自动回Base.lproj

这是否以任何方式帮助你?

  1. 所以我的问题是,如果用户会看到Base.lproj / myStoryboard.storyboard中的string?

开发区域本地化(通常是英文)使用这些string是默认设置。 如果有英文匹配的string文件,它将取代故事板中的string。 这通常是多余的,所以通常不被使用。 如果你真的希望所有的语言都得到相同的处理,你可以这样做。

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

这些是不相关的概念。 embedded到故事板中的string相当于en.lproj中的string。 之后,语言回退的工作原理与没有Base.lproj的情况相同。

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

如果您有en.lproj / myStoryboard.strings,并且english是开发语言,则他们将始终取代embedded在Base.lproj / myStoryboard.storyboard中的英文string。 包括英文不是首选语言,但最终被选为备用语言。