为本地化格式的 APNS 字符串指定基本本地化
Specify base localization for Localized formatted APNS strings
我的基本本地化在故事板中,但也在这样的结构中:
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
}
这很好用,因为它将它们放在一个地方,定义了一个与基本翻译值分开的键,并在我使用它们时给我自动完成:Strings.Restaurant.makeCall
要输入翻译,我使用 xliff import/export process: editor > export for localization
。我发现 genstrings 对 NSLocalizedString
.
的普通形式有问题
这一切都很好,直到我到达 Localized APNS Messages。给定 loc-key
和可选的 loc-args
,他们搜索匹配的本地化密钥。
对于翻译,这行得通,因为当我导入翻译后的 xliff 文件时,为每个翻译构建了一个 Localizable.strings。
我的基本翻译没有 Localizable.strings 文件。我试图制作一个,但 xliff 导出没有注意到这些字段添加到其他翻译中,所以我认为这不是正确的方法。
如何以适用于 APNS 的方式添加基本翻译?
一种实用但重复的方法是在两个地方定义它们:
- 在
Strings
结构中定义键(和未使用的值)。 xliff 导出会注意到这些,这允许其他语言提供翻译
- 在您为基本翻译创建的
Localizable.strings
文件中定义键和值。这允许 APNS 在您使用基本语言时找到值,但 xliff 导出看不到这些值。
这行得通,但是如果有人更改了一个文件而没有保持另一个文件为最新,翻译中就会出现难以察觉的差异,所以我不太喜欢它。
我的基本本地化在故事板中,但也在这样的结构中:
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
}
这很好用,因为它将它们放在一个地方,定义了一个与基本翻译值分开的键,并在我使用它们时给我自动完成:Strings.Restaurant.makeCall
要输入翻译,我使用 xliff import/export process: editor > export for localization
。我发现 genstrings 对 NSLocalizedString
.
这一切都很好,直到我到达 Localized APNS Messages。给定 loc-key
和可选的 loc-args
,他们搜索匹配的本地化密钥。
对于翻译,这行得通,因为当我导入翻译后的 xliff 文件时,为每个翻译构建了一个 Localizable.strings。
我的基本翻译没有 Localizable.strings 文件。我试图制作一个,但 xliff 导出没有注意到这些字段添加到其他翻译中,所以我认为这不是正确的方法。
如何以适用于 APNS 的方式添加基本翻译?
一种实用但重复的方法是在两个地方定义它们:
- 在
Strings
结构中定义键(和未使用的值)。 xliff 导出会注意到这些,这允许其他语言提供翻译 - 在您为基本翻译创建的
Localizable.strings
文件中定义键和值。这允许 APNS 在您使用基本语言时找到值,但 xliff 导出看不到这些值。
这行得通,但是如果有人更改了一个文件而没有保持另一个文件为最新,翻译中就会出现难以察觉的差异,所以我不太喜欢它。