LocalizationKit 5.0.3

LocalizationKit 5.0.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年10月
SPM支持SPM

Will Powell 维护。



alt text

LocalizationKit

Version License Platform

Localization kit是一个强大的本地化和翻译管理工具。作为一名开发人员,我总是收到这样的问题:“你能改一下这个文本吗?”或者“你能添加另一种语言吗?”我设计这个框架,使您可以在不重新编译、重新提交或不需要使用开发人员的情况下管理这些翻译和文本。本质上消除所有痛苦。

alt text

它是如何工作的

Localization Kit可以快速简单地通过Cocoapods集成到您的应用程序中。然后它连接到LocalizationKit.com提供的服务,这些服务免费使用和管理。然后当您在iOS应用程序中创建项目时,文本键会立即在在线Web UI中可用。从那里您可以更改文本,并且它将在应用中实时反映(在您键入任何键时)。

安装

使用CocoaPods

LocalizationKit可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile文件中

pod "LocalizationKit" "~>4.0.3" # Swift 4
pod "LocalizationKit" "~>3.0.12" # Swift 3.2

使用Carthage

github "willpowell8/LocalizationKit_iOS" ~> 4.0.3 // Swift 4
github "willpowell8/LocalizationKit_iOS" ~> 3.0.13 // Swift 3.2

设置

接着访问https://www.localizationkit.com/app/并在左侧创建一个新的应用,使用您的名字。然后将当前URL中 after #/app/...KEY HERE... 生成的代码复制下来。

然后将以下内容放入您的AppDelegate中

在顶部

import LocalizationKit

将以下内容放入didFinishLaunchingWithOptions方法中,同时使用您自己的key

Localization.start(appKey: "[[KEY]]")

启用实时更新

LocalizationKit最强大的功能之一是能够在设备上实时编辑文本。您可以通过以下几种方式启动实时服务

在初始化时

Localization.start(appKey: "bed920eb-9802-4a2c-a8c0-69194729d69d", live: true)

从Settings Bundle内部

确保您创建了一个包含命名为live_localization的布尔对象的settings bundle。

Localization.start(appKey: "bed920eb-9802-4a2c-a8c0-69194729d69d", useSettings: true)

在应用程序内部切换

Localization.liveEnabled = true

启用内联编辑

作为应用程序的一部分,您可以通过长按字段来启用本地化的内联编辑。 替代文本支持内联编辑的元素:UILabel,UIButton

在应用程序内部切换

Localization.allowInlineEdit = true

使用界面构建器

本地化工具包支持Xcode UI开发。该过程非常简单

  • 安装cocoapod
  • 打开Storyboard或Xib文件
  • 选择组件,例如UILabel或拖动标准组件UILabel
  • 打开属性选择器
  • 设置本地化键
  • 运行应用程序,键将在线可用

alt text

支持的组件

  • UILabel
  • UINavigatioNitem
  • String
  • UIBarItem
  • UIBarButtonItem
  • UITextField
  • UIButton
  • DateFormatter

代码中使用

从代码使用本地化系统的方法有几种,而不使用故事板或界面构建器。第一种是从任何字符串中你可以调用 .localize 来调用其本地化字符串。这不会给你文本的实时更新,但会在你调用时提供文本。

let localizedGreeting = "Hello".localize

这将创建一个本地化键 String.您的字符串(其中替换空格的点),例如 '选择语言' 将成为 String.Select.Languages。这些文本将类似地在你的 Web UI 内部本地化。

let resultText = Localization.get("Localization.Key", alternate: "default label text")

本地化键

本地化键是允许你为应用中的正确部分分配本地化的唯一标识符。你可以使用任何字符串作为设备标识符,但如果你使用点分隔方法,应用程序有一些使事情更简单的特性:例如 Product.Details.Label

缓存

LocalizationKit 内部会缓存你已经翻译的本地化和翻译。当前情况下,一旦从服务器加载了语言,它就会在本地存储以供离线和后续使用。每次应用重新打开时,都会更新它,首先加载本地版本,然后替换为服务器版本。

待办事项:添加一个构建阶段脚本,可以拉取 ... 的第一个版本

其他功能

设置语言

Localization.setLanguage("de")

获取可用语言

Localization.availableLanguages { (languages) in
// Languages is an array of [Language] which has properties localizedName and key
}

重置为设备语言

Localization.resetToDeviceLanguage()

显示调试字符串

Localization.ifEmptyShowKey = true

设置默认语言

默认语言是您构建应用程序时使用的语言,并用于将字符串和数据传递到后端进行显示。

Localization.defaultLanguageCode = "en"

事件

如果您启用实时更新过程,则可以监听本地化事件。这些事件包括

  • LocalizationEvent - 当文本更新时发生。
Localization.localizationEvent(localizationKey: String)
  • 高亮事件 - 当用户在Web UI中点击高亮按钮时发生。
Localization.highlightEvent(localizationKey: String)

监听事件的示例

NotificationCenter.default.addObserver(self, selector: #selector(localizationHighlight), name: Localization.highlightEvent(localizationKey: LocalizeKey!), object: nil)

示例日期格式化器

日期格式化是一个单独的调用,它遵循实时更新。注意日期格式字符串必须在本地化键之前设置。

let d = DateFormatter()
d.dateFormat = "dd MMM yyyy"
d.LocalizeKey = "General.DateFormatter"
let dStr = d.string(from: Date())
print(dStr)

示例

要运行示例项目,请先克隆存储库,然后从示例目录运行 pod install 命令。

作者

Will Powell - LinkedIn | Blog

许可

LocalizationKit 在MIT许可下可用。有关更多信息,请参阅LICENSE文件。