一些简单的 Swift 扩展来支持本地化。
传统上,本地化系统假定主要语言的字符串将嵌入到源代码中。稍后,这些字符串将被提取到本地化文件中供翻译人员使用。 为了帮助翻译过程,可以在源代码中包含解释该字符串的注释。
我使用本地化系统的方式是,嵌入的字符串始终只是一个简短的键。
我希望即使在主要语言中运行,这个键也能被翻译后的值替换。
我发现将完整的字符串放在源代码中没有帮助,并且将注释嵌入代码中帮助更少(因为在许多情况下,没有明显的注释可以给出)。
因此,我确实使用提取工具,并手动制作主要语言的 localization
文件。
这些实用程序是考虑到上述情况编写的。 如果您不以我使用系统的方式使用它,它们可能对您价值有限。
我们向 String
添加了一个只读的 localized
属性。调用它将为您提供字符串的本地化版本(如果存在)。
我们还向 String
添加了一个 localized
函数,该函数允许在本地化字符串中进行简单的参数替换。
传入一个键和替换的字典,本地化文本中任何 {key}
的实例都将被替换为替换值。
当查找本地化值时,此 localized
函数的变体使用源字符串的三个变体之一作为键。 使用哪个变体由计数的值决定
key.none
key.singular
key.plural
这对于所有情况来说可能不够复杂,但足以应付我遇到的大多数情况。