iOS本地化更改,原生地区

时间:2016-05-17 09:36:16

标签: ios objective-c swift

我开发了一个应用程序,其中包含一些输入plist文件,以及此应用程序的输入数据。 此输入数据现在是俄语。

在开发过程中,我打算仅在俄语AppStore上为俄语用户分发此应用程序。现在我的应用程序在AppStore中。但现在我也想为英语客户分发我的应用程序。 我知道我必须用英语输入数据准备翻译输入词。

我的问题涉及应用中的更多本地化..

在开发过程中,我更改了info.plist文件,将“Localization native development region”设置为“ru”。

解决我案件的最正确方法是什么? 我应该将“本地化本地开发区域”设置为“ru”并添加英语本地化吗? 或者我应该将“本地化原生开发区域”设置回“en”并添加俄语本地化? 或许我应该添加两个本地化 - 英语和俄语?在这种情况下,我应该将哪个选项设置为“本地化本地开发区域”?

顺便说一句,如何根据当前的本地化以编程方式选择哪一个输入数据plist文件?

1 个答案:

答案 0 :(得分:2)

我认为您应该从documentation

将Localization本机开发区域更改为en区域
  

CFBundleDevelopmentRegion(String - iOS,OS X)指定默认值   捆绑的语言和区域,作为语言ID。例如,   英国英语的语言ID为en-UK。系统   如果无法为用户找到资源,则使用此值   首选语言

世界上更多的说英语的人数,然后是俄语人士。如果位置系统找不到所需的本地化,它将使用您的本地语言文件。 但是如果您使用method的NSBundle来加载本机资源(例如plist):

- (NSURL *)URLForResource:(NSString *)name
            withExtension:(NSString *)extension
             subdirectory:(NSString *)subpath
             localization:(NSString *)localizationName
//The file URL for the resource file or nil if the file could not be located.

您应该添加非本地化的plist文件,以避免从此方法返回nil URL以获得不受支持的本地化(具有相同名称但不在lang目录中的文件)。

Here您可以阅读NSBundle如果请求资源,如何找到资源。