没有情节提要的Swift中的字符串本地化

不久前,我迅速发表了一篇有关字符串本地化的类似文章。 该博客文章将对其进行改进。

  • 创建一个.strings文件以在其中存储本地化的字符串。 在我们的例子中,它们是KZ.strings,EN.strings。
  • 下一步,我们创建名为LocalizationLanguage的枚举,以便在进行本地化操作时更加类型安全。 它的原始值将为String类型。
  • 实际上,要存储我们应用程序的当前语言,我们应该可以将其存储在某个地方。 如果是iOS,则为UserDefaults 。 它是我们应用程序中一些初始用户数据的本地存储。 我们可以轻松地存储String,Date,Data等类型的值。但是我们需要存储一个枚举,这里需要一些解决方法。
  • 如上所示,我们的枚举具有类型为Int的属性索引 。 为了将语言存储在UserDefaults中,我们将存储其rawValue ,因为在UserDefaults中可以保存String类型。
  • 使LocalizationLanguage枚举符合Codable(Decodable&Encodable)协议。
  • 因此,在这里,我们只有一个名为LanguageManager的类,可以分隔应用程序内的职责。
  • 最后,使用称为localized()的本地化方法扩展String类型。 而已! 谢谢!