2011-03-16 83 views
5

在下面的文档: http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html了解iOS本地化

它提到

在iOS中,捆绑接口不找 本地化资源时要方言或脚本信息 考虑;只考虑指定代码 。 因此,如果您的项目包含 特定于语言的项目目录 同时包含语言和区域 指示符,则忽略那些目录 。 Mac 中的软件包接口支持 语言特定的项目 目录中的区域指示符。

我不太明白这一点。这是否意味着.lproj目录的名称不能包含任何区域代码?
但至少我知道iOS接受zh_TW.lproj,zh_CN.lproj。那么en_GB.lproj和en-GB_GB.lproj呢?或者它只知道en.lproj?

回答

1

我认为这些信息已经过时了。当iOS发生更改时,他们不得更新Mac开发文档。

当您创建Localizable.strings或Project.plist文件时,您将为每种语言或语言方言创建一个。只需创建你需要的。

如果您使用的是Xcode 4,请确保在选择Localizable.strings或Project.plist文件时显示“实用程序”(查看 - >实用程序 - >显示实用程序)。它将有一个本地化部分,使这些添加这些很容易。

+2

不幸的是,我不认为这些信息是完全过时的。尝试使用Xcode 4创建一种方言,例如葡萄牙语 - 巴西语,在pt-BR下生成Localizable.strings文件,但将其更改为Settings-> General-> International-> Language-> Portuguese AND International-> Region-> Brazil不起作用,导致字符串默认为英文或纯葡萄牙语。 – 2011-07-21 22:37:03

2

这仅仅意味着iOS只支持两位数字的语言代码(例如en.lproj,es.lproj等)。而Mac OS X将支持格式Language_Region(例如en_GB,en_US等)。

1

更新:从iOS 8开始,您现在可以在iOS中使用任何语言或区域。

Apophenia是正确的。尽管iOS有30种语言可识别为.lproj文件夹,但它不会接受任何区域代码,因此告诉它不会让你加拿大法语,而是简单地使用你的法语或英语字符串。这个规则的唯一例外是中文,对于简体中文应该是zh-Hans,对于繁体中文应该是zh-Hant

您应该始终对语言使用双字母代码(en.lproj,fr.lproj,es.lproj,de.lproj等)。

没有为iOS和iTunes的这里目前支持的语言和语言代码的完整(和更新的)名单:

http://www.ibabbleon.com/iOS-Language-Codes-ISO-639.html

注意,iTunes的应用程序商店已支持语言的不同列表,这使得图表链接到上面非常方便!

+0

这是否意味着您*无法*在iOS中为法语(法国)和法语(加拿大)提供不同的本地化版本?这在iOS 7+中仍然如此? – pkamb 2014-07-08 19:38:17

+0

从iOS 8和Xcode 6开始,Apple允许iOS应用程序使用任何语言和地区。 http://ibabbleon.com/copywriter-translator/2014/06/new-xcode-6-localization-ios-y... – Localizer 2014-09-30 15:20:21