Localize-Swift
Localize-Swift 是一个简化的框架,它提高 Swift iOS apps 的 i18n 和本地化 - 提供更简洁的语法和在应用中切换语言。
特性
- 保留您应用已使用的 Localizable.strings 文件。
- 允许用户在不更改设备语言的情况下更改应用的语言。
- 使用 .localized() 替代 NSLocalizedString(key,comment) - 更为 Swift 风格的语法。
- 使用新的 genstrings swift/python 脚本生成您的字符串,该脚本可识别 .localized()。
用法
在包含本地化文本的每个 Swift 文件的顶部导入 Localize。
如果 CocoaPods -
import Localize_Swift
在您希望翻译的任何 String
对象后面添加 .localized()
textLabel.text = "Hello World".localized()
获取可用的本地化数组
Localize.availableLanguages()
更改当前的语言
Localize.setCurrentLanguage("fr")
要更新语言变更可能发生的视图控制器中的 UI,请观察 LCLLanguageChangeNotification
NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
将应用语言重置为默认值
Localize.resetCurrentLanguageToDefault()
genstrings
为了支持这项新的国际化语法,Localize-Swift 包含自定义的 genstrings Swift 脚本。
将 genstrings.swift 文件复制到项目的根目录中,并使用以下方式运行:
./genstrings.swift
这将在终端中打印收集到的字符串。选择并复制到默认的 Localizable.strings。
脚本包括了指定要排除的目录和文件的功能(通过编辑脚本)。
Swift Package Manager 设置
[首选] 使用现在将 Swift Package Manager 作为分发 Localize-Swift 的首选工具。
从 Xcode 11+ 开始
- 选择 文件 > Swift 包 > 添加包依赖。在“选择包仓库”对话框中输入
https://github.com/marmelroy/Localize-Swift.git
。 - 在下一页,将版本解析规则指定为“向上到下一个主要版本”,版本为“3.2.0”。
- 在 Xcode 检出源和解析版本之后,您可以选择“Localize-Swift”库并将其添加到您的应用程序目标中。
有关更多信息,请参阅 Apple 的 将包依赖项添加到应用程序。
或者,您也可以将 Localize-Swift 添加到您的 Package.swift
文件中
dependencies: [
.package(url: "https://github.com/marmelroy/Localize-Swift.git", .upToNextMajor(from: "3.2.0"))
]
使用 Carthage 设置
Carthage 是一个去中心化的依赖管理器,用于自动向您的 Cocoa 应用程序添加框架。
您可以使用以下命令通过 Homebrew 安装 Carthage:
$ brew update
$ brew install carthage
要使用 Carthage 将 Localize-Swift 集成到您的 Xcode 项目中,请在其 Cartfile
中指定它。
github "marmelroy/Localize-Swift"
CocoaPods 设置
使用source 'https://github.com/CocoaPods/Specs.git'
pod 'Localize-Swift', '~> 3.2'