【问题标题】:Multilingual iApp in a difficult/special environment困难/特殊环境中的多语言 iApp
【发布时间】:2011-05-29 20:11:12
【问题描述】:

有大量教程告诉您如何为 iPhone 编写多语言应用程序。虽然我还没有找到一个可以解决我的特殊问题的...

如果用户使用应用程序不支持的两种语言运行 iPhone,那么 iPhone 应用程序必须有一种方法可以强制使用某种默认语言吗?

在瑞士,我们说德语、法语和意大利语(在该国的不同地区)。德语可以被认为是“默认”语言,因为它的份额接近 65%。因此,任何国家的零售商都有这三种语言的产品描述。我们构建了一个支持这三种语言的 iApp。

到目前为止一切顺利...只要用户在其 iPhone 设置中选择了三种语言中的任何一种,一切都会按预期工作。对于以英语使用 iPhone 的用户来说,这似乎是一个很大的数字,这会出错,因为应用程序以法语而不是德语(假定的默认语言)显示。

为什么?因为默认情况下,法语在 iPhone 设置中的可用语言列表中高于德语。用户的解决方法是将 iPhone 从英语切换到德语,然后再切换回来。 iPhone 在可用语言列表中将德语排在第二位。

应用应该如何最好地处理这个问题?啊,我们当然可以支持英文的 UI 元素,但我们客户的产品描述根本没有英文版本。因此,这不是一个真正的选择。

【问题讨论】:

  • 对于英文本地化(是的,制作一个),请使用德文名称...或任何您想要的默认名称。享受吧。
  • +1 好吧,这是对您问题的非常雄辩的描述。这很有意义。但我不知道如何解决它!

标签: iphone ios multilingual


【解决方案1】:

您可以让用户选择在应用中使用哪种语言并设置如下:

NSArray *lang = [NSArray arrayWithObjects:@"de", nil];
[[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"];

【讨论】:

    【解决方案2】:

    前段时间我也遇到过同样的问题。我解决它的方法是以编程方式设置所有可本地化的元素,而根本不依赖 iOS 本地化。我实现了自己的语言管理器来处理本地化字符串(从自定义资源文件中读取)并尝试为当前设备选择最佳语言(使用自定义首选项文件中提供的规则)。当然,如果设备的当前首选语言在本地化中可用,则它具有最高优先级。我还留了机会更改设置中的语言。

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      相关资源
      最近更新 更多