【问题标题】:iOS: Localization / German language for Germany, English language for the rest of the worldiOS:本地化/德国的德语,世界其他地区的英语
【发布时间】:2012-08-20 11:42:56
【问题描述】:

场景:

我正在开发一个 iOS 应用,它应该上传到世界各地的所有应用商店。

应用程序应支持 2 种语言,德语和英语。德国的德语,世界其他地方的英语。

我做了什么:

当我开始开发应用程序时,我在 Info.plist 文件中选择德语作为“本地化本地开发区域”,并在项目设置中添加了英语本地化...

我使用了 NSLocalizedString 并用德语编写了所有的文本字符串。 然后我将 Localization.string 文件提交给客户进行翻译...

问题: 当我想将应用提交到应用商店时,我是否正确地实现了上述场景?

我要在 iTunesConnect 中做什么来存档这个场景...?

问候..

【问题讨论】:

    标签: ios ipad localization


    【解决方案1】:

    反之,使用英语作为“本地化原生开发区域”,然后添加德语本地化。

    kCFBundleDevelopmentRegionKey 包的开发语言的名称。当 CFBundle 查找资源时,回退是查找名称由 Info.plist 文件中的 kCFBundleDevelopmentRegionKey 给出的 lproj。因此,您必须确保一个包包含一个具有该确切名称的 lproj,其中包含每个本地化资源的副本,否则 CFBundle 不能保证回退机制将起作用。在 iOS 2.0 及更高版本中可用。在 CFBundle.h 中声明。

    【讨论】:

      【解决方案2】:

      thvanarkel 可能是对的,但我实际上使用了另一个技巧:

      当你匹配你的一对 - Localizable.strings 中的键时,我用它们的英文翻译命名每个键,例如

      "Delete the current shopping list?" = "Delete the current shopping list?";
      
      "Delete the current shopping list?" = "Löschen Sie die aktuelle Einkaufsliste?"
      

      如果您的 Localizable.string 中的键匹配,它将被翻译,否则,将使用该键。

      也许不是最佳做法,但它对我有用。

      【讨论】:

      • 我非常喜欢在源代码中使用键并为它们提供翻译。在很多情况下,一种语言的同一个术语需要另一种语言的两种完全不同的翻译。也意味着您可以在不更改应用程序的情况下更改英文文本。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多