【发布时间】:2021-04-25 00:29:51
【问题描述】:
我的问题:
我的 iPhone 应用程序如何告诉 iOS 用户确实在应用程序偏好设置中选择了一种与常规设置中设置的语言不同的语言?
同一问题的其他表述:
我如何告诉系统,NSLocalizedString (@"text", @"comment"); 不应该访问系统范围内选择的语言,而是应用内选择的语言?
背景,示例:
请以这种情况为例: 一个德国移民的儿子住在法国东北部,毗邻卢森堡和德国。他的母语是法语,所以他确实将 iPhone 的用户界面语言设置为法语(设置 → 通用 → 国际 → 语言 → 法语)。但由于他的文化背景和他居住的地区是双语的,他的德语也说得很好。但是他不会说十个单词的英语。在 iPhone(和 iPad)上,他没有机会选择第二语言,所以手机只知道他说法语。它不了解其他语言的用户技能。
现在是我的应用程序:我确实用英语和德语开发了它(德语是我的母语,英语是 IT 的标准语言)。我确实根据多语言 iOS 应用程序的所有规则和最佳实践来开发它。我的应用程序的“第一”语言(默认语言)是英语。
这意味着:
如果有人在其设置中选择了英语或德语,则应用程序用户界面将自动使用所选语言。用户甚至不会注意到还有其他语言可用。
但如果他确实在常规设置中选择了任何其他语言(如中文、波兰语或法语),他将获得应用程序的默认语言,在我的例子中是英语。但对于我的法德朋友来说,这不是最好的选择。他想使用现有的德语版本,但似乎没有办法让用户选择这个版本。
添加法语翻译可以解决我们的法德朋友的问题,但不能解决说其他两种语言(例如意大利语和德语)的人的问题,而且我无法支持我的应用程序支持这个星球上使用的所有语言。 将默认语言设置为德语也不是最佳选择,因为这对于说法语(作为母语)和英语(作为第二语言)的人来说会产生同样的问题。
所以我认为我的应用必须能够手动选择与预选语言不同的语言。向应用程序设置面板添加语言选择不是问题。但是我如何告诉系统,NSLocalizedString (@"text", @"comment"); 不应该访问系统范围内选择的语言,而是应用内选择的语言?
【问题讨论】:
-
这不是一个广为人知的功能,但实际上可以在“设置”应用中设置多种首选语言。您必须以相反的顺序选择它们,例如您的朋友需要将他的 iPhone 切换为德语,然后切换为法语。这将使法语成为首选语言,如果不可用则回退到德语,然后再使用应用程序基础本地化。
-
FIRST:这不仅没有广为人知,而且完全没有记录。第二:作为应用程序的开发者,我没有能力将这个功能告诉所有 8 亿 iOS 用户。即使我可以:每个用户都不太可能这样做。所以这是十几个高级用户可能会做的一个很好的解决方法,但这不是我作为开发人员可以写入我的应用程序的解决方案。
-
没问题的人,很高兴我能帮上忙!
-
啊。出色地。我不知道该怎么说才不会伤害你,但是:你没有帮助。这就是我想用“它完全没有记录”和“这不是解决方案”之类的短语来表达的意思。
标签: ios localization selection appsettings