Localize-Swift 3.2.0

Localize-Swift 3.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2020年9月
SPM支持 SPM

Roy MarmelsteinKristaps Grinbergs 维护。



Platform Version Build Status Carthage compatible

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+ 开始

  1. 选择 文件 > Swift 包 > 添加包依赖。在“选择包仓库”对话框中输入 https://github.com/marmelroy/Localize-Swift.git
  2. 在下一页,将版本解析规则指定为“向上到下一个主要版本”,版本为“3.2.0”。
  3. 在 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'