ZenText 3.0.0

ZenText 3.0.0

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

JP McGlone 维护。



ZenText 3.0.0

ZenText

ZenText 是管理您 iOS 应用文本的最简单方式。使用 ZenText,您可以

  • 轻松地为 NSAttributedStrings 样式添加或移除样式,带或不带正则表达式匹配(只需一行!)
  • 本地化样式化的 NSAttributedStrings
  • 将所有字符串存储在一个地方(而不是多个文件中)

安装

ZenText 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "ZenText"

用法

要运行示例项目,请克隆代码库,并首先从 Example 目录运行 pod install

复制

配置复制

您会注意到复制可以包含参数。您只需使用 $0, $1, … 来设置您的参数。在文本中的顺序并不重要。

// english chat copy. prefix is for establishing context (optional)
ZenText.manager.config.addCopy("en", prefix: "chat") {
  return [
    "dance": ["@$0 dances with themself"], // note: this is chat.dance
  ]
}

// spanish chat copy
ZenText.manager.config.addCopy("sp", prefix: "chat") {
  return [
    "dance": ["@$0 baila con sí mismos"], // note: this is chat.dance
  ]
}

使用复制

NSAttributedString

myLabel.attributedText = ZenText.manager.attributedString(key: "global.fun", args: [sender, other])

样式

配置样式

ZenText.manager.config.setStyles {
    return [
        "action": Style(
            color: .lightGrayColor()
        ),
        "token": Style(
            color: .blueColor(),
            fontSize: 14
        ),
        "hulk": Style (
            color: .greenColor(),
            fontSize: 40
        )
    ]
}

使用正则表达式在 NSAttributedString 上设置样式

let atUserRegex = "(@[A-Za-z0-9_]*)"
mutableAttributedString.regexFind(atUserRegex, addStyle: "token")

样式在复制中

在这个例子中,chat.poke 有 $0 和 $1 作为“token”样式的参数

ZenText.manager.config.addCopy("en", prefix: "chat") {
  return [
    ...
    "poke": ["@$0 ".style("token"), "pokes ", "@$1".style("token")] // note: this is chat.poke
  ]
}

附加说明

我建议在您项目中的一个名为 Copy.swift 的文件(您可以将它命名为任何您喜欢的名字)中存储所有字符串。我还建议使用复制前缀来根据上下文分离您的键(例如,“global”,“profile”,“chat”等)

如果您有任何问题,请告诉我!请提交反馈、问题和拉取请求 :)

即将推出

  • 可以自动从设备本地化设置 ZenText 本地化。目前这是手动的。
  • 帮助您使用或迁移 NSLocalizedStrings 的脚本
  • 与其他有用的 NSAttributedString 库的干净集成

作者

JP McGlone, [email protected]

许可证

ZenText 在 MIT 许可证下可用。更多请参阅 LICENSE 文件。