我的问题是:
我的 iPhone 应用程序如何告诉 iOS,用户确实在应用程序首选项中选择了一种语言,这种语言不同于一般设置中设置的语言?
同一问题的其他表述:
我如何告诉系统,NSLocalizedString (@"text", @"comment");
不应该访问系统范围内选择的语言,而是应用程序内选择的语言?
背景,例子:
请以这种情况为例: 一个德国移民的儿子住在法国东北部,毗邻卢森堡和德国。他的母语是法语,所以他把 iPhone 的用户界面语言设置为法语(设置→通用→国际→语言→法语)。但是由于他的文化背景和他所居住的地区是双语的,他的德语也讲得很好。但他连十个英语单词都不会说。在 iPhone (以及 iPad)上,他没有机会选择第二语言,所以手机只知道他说法语。它不了解其他语言的用户技能。
现在是我的应用程序: 我确实用英语和德语开发了它(德语是我的母语,英语是 IT 的标准语言)。我的确是根据多语言 iOS 应用程序的所有规则和最佳实践来开发它的。我的应用程序的“第一”语言(默认语言)是英语。
这意味着:
如果有人在他的设置中选择了英语或德语,应用程序用户界面将自动使用选定的语言。用户甚至不会注意到还有其他语言可用。
但是,如果他在一般设置中选择了任何其他语言(如汉语、波兰语或法语) ,他将得到应用程序的默认语言,在我的情况下,就是英语。但是对我的法国-德国朋友来说,这不是最好的选择。他想使用现有的德语版本,但似乎没有办法让用户选择这个版本。
添加一个法语翻译将为我们的法德朋友解决问题,但不是为人们讲两种其他语言(如意大利语和德语) ,我不能支持我的应用程序与所有语言在这个星球上。 将默认语言设置为德语也不是最佳选择,因为这会给讲法语(作为母语)和英语(作为第二语言)的人带来同样的问题。
因此,我认为我的应用程序必须有可能手动选择一种语言,这是不同于预先选定的语言。给应用程序设置添加语言选择面板不是问题。但是我如何告诉系统,NSLocalizedString (@"text", @"comment");
不应该访问系统范围内选择的语言,而是应用程序内选择的语言?