为本地化格式化的APNS字符串指定基本本地化

时间:2016-02-26 17:19:34

标签: ios localization apple-push-notifications xliff

我的基本本地化在故事板中,但也在这样的结构中:

run_one()

这非常有效,因为它将它们保存在一个位置,定义了一个与基本翻译值分开的键,并在我使用它时自动完成:struct Strings { struct Restaurant { static let makeCall = NSLocalizedString("Restaurant-makeCall", value: "Call %@", comment: "Restaurant-makeCall: title for button that allows you to call a place") } //...many more }

要输入翻译,请使用xliff import/export processStrings.Restaurant.makeCall。我发现genstrings在editor > export for localization的缩写形式上遇到了麻烦。

这一切都很顺利,直到我到达Localized APNS Messages。给定NSLocalizedString和可选loc-key,他们会搜索匹配的本地化密钥。

对于翻译,这是有效的,因为当我导入翻译的xliff文件时,每个翻译都有一个Localizable.strings。

我的基本翻译没有Localizable.strings文件。我尝试制作一个,但xliff导出没有注意到要添加到其他翻译的那些字段,所以我认为这不是正确的方法。

如何以适合APNS的方式添加基本翻译?

1 个答案:

答案 0 :(得分:0)

一种功能性但重复的方法是在两个地方定义它们:

  • Strings结构中定义键(和未使用的值)。 xliff导出会注意到这些,这允许其他语言提供翻译
  • 在为基本翻译创建的Localizable.strings文件中定义键和值。这允许APNS在您使用基本语言时查找值,但xliff导出无法查看这些值。

这样做有效,但是如果有人在不保持其他文件最新的情况下进行更改,则会发生难以检测的翻译差异,所以我不太喜欢它。