ListItemFormatter 0.2.0

ListItemFormatter 0.2.0

Liam Nichols 维护。



ListItemFormatter

Build Status

ListItemFormatter 是一个 NSFormatter 子类,它支持将列表项格式化为 Unicode CLDR 规范

用法

基本格式化

let formatter = ListItemFormatter()
formatter.string(from: ["Liam", "Jack", "John"]) // "Liam, Jack and John"

模式 & 样式

一个 样式模式 属性允许针对不同类型的数据(如单位)以及不同长度的变化进行格式化

let formatter = ListItemFormatter()
formatter.mode = .standard
formatter.string(from: ["Liam", "Jack", "John"]) // "Liam, Jack and John"

formatter.mode = .or
formatter.string(from: ["Liam", "Jack"]) // "Liam or Jack"

formatter.mode = .unit
formatter.style = .narrow
formatter.string(from: ["5ft", "6in"]) // "5ft 6in"

formatter.mode = .unit
formatter.style = .default
formatter.string(from: ["5 feet", "6 inch"]) // "5 feet, 6 inch"

本地化

格式化器由 Unicode CLDR 数据(版本 35)的导出支持,就像任何其他标准 NSFormatter 一样,您可以简单地设置 locale 属性来利用提供的超过 200 种语言和区域格式配置。

let formatter = ListItemFormatter()
formatter.locale = Locale(identifier: "ar_LB")
formatter.string(from: ["ليام", "ليندا", "كوكباد"])
// "ليام، ليندا، وكوكباد"

以下是支持的语言、地区和脚本代码变体列表

阿非利堪斯语、阿赫姆语、阿坎语、阿尔巴尼亚语、阿姆哈拉语、阿拉伯语、亚美尼亚语、阿萨姆语、阿斯图里亚斯语、阿苏语、阿塞拜疆语、巴法语、巴马语、孟加拉语、巴萨语、巴斯克语、白俄罗斯语、奔巴语、本巴语、博多语、波斯尼亚语、波斯尼亚(西里尔文)、布列塔尼语、保加利亚语、缅甸语、粤语、粤语(简体汉字)、加泰罗尼亚语、加泰罗尼亚(西班牙)、中阿托拉斯塔马齐格语、中库尔德语、察卡玛语、车臣语、切罗基语、基加语、汉语、香港(中国)的汉语、繁体中文、东正教斯拉夫语、科隆尼亚语、康瓦尔语、克罗地亚语、捷克语、丹麦语、杜阿拉语、荷兰语、东孜东亚拉语、恩布语、英语、澳大利亚英语、英国英语、美国英语、世界语、爱沙尼亚语、埃魏语、埃文多语、法罗语、菲律宾语、芬兰语、法语、弗留利语、富拉语、加利西亚语、刚果语、格鲁吉亚语、德语、希腊语、古吉拉特语、古西语、豪萨语、夏威夷语、希伯来语、印地语、匈牙利语、冰岛语、伊博语、因奈里萨米语、印度尼西亚语、国际语、爱尔兰语、意大利语、日语、爪哇语、约拉-丰语、佛得角克里奥尔语、卡比列语、卡翟语、卡豁语、格陵兰语、卡尔金语、坎巴语、坎纳达语、克什米尔语、哈萨克语、柬埔寨语、基库尤语、基尼亚鲁旺达语、贡坎尼语、朝鲜语、科伊拉查尼语、科约拉博罗森尼语、库尔德语、夸西奥语、吉尔吉斯语、拉科塔语、兰gi语、老挝语、拉脱维亚语、林加拉语、立陶宛语、低地德语、下 Sorbian、卢巴-卡坦加、鲁奥、卢森堡语、卢尤亚、马其顿语、马查梅语、马库瓦-梅托语、马科德语、马达加斯加语、马来语、马拉雅拉姆语、马耳他语、马恩语、毛利语、马拉地语、马萨伊语、马赞德兰尼语、梅鲁语、梅塔语、蒙古语、毛里求斯语、芒达南语、纳马语、尼泊尔语、涅姆博恩语、恩贡巴语、北恩德贝莱语、北卢里语、北萨米语、挪威 bokmål、挪威 nyorsk、努尔语、恩扬科莱语、奥里亚语、奥塞梯语、普什图语、波斯语、波兰语、葡萄牙语、普鲁士语、旁遮普语、克丘亚语、罗马尼亚语、罗曼什语、罗姆波语、伦迪语、俄语、卢瓦语、萨哈语、萨姆布鲁语、桑戈语、桑格语、苏格兰盖尔语、塞纳语、塞尔维亚语、塞尔维亚(拉丁语)、尚巴拉语、绍纳语、四川彝语、信德语、僧伽罗语、斯洛伐克语、斯洛文尼亚语、索加语、索马里语、西班牙语、西班牙(多米尼加共和国)、西班牙(巴拉圭)、标准摩洛哥塔马齐格语、斯瓦希里语、瑞典语、瑞士德语、塔梅希特语、塔伊塔语、塔吉克语、泰米尔语、塔萨瓦格语、鞑靼语、泰卢固语、泰索语、泰语、藏语、提格里尼亚语、汤加语、土耳其语、土库曼语、乌克兰语、上 Sorbian、乌尔都语、乌尔都(印度)、维吾尔语、乌兹别克语、瓦伊语、越南语、沃拉普克语、万约语、瓦塞尔语、威尔士语、西方弗里西亚语、沃洛夫语、苏阿语、茨瓦纳语、扬贝语、意第绪语、约鲁巴语、扎尔马语、祖鲁语

归因字符串

defaultAttributesitemAttributes 允许自定义由 attributedString(from:) 返回的对象,以便添加特殊文本效果,如突出显示列表项

let formatter = ListItemFormatter()
formatter.mode = .or
formatter.defaultAttributes = [.font: UIFont.systemFont(ofSize: 12, weight: .regular)]
formatter.itemAttributes = [.font: UIFont.systemFont(ofSize: 12, weight: .semibold)]
formatter.attributedString(from: ["Swift", "Objective-C"]) // NSAttributedString

/*
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <title></title>
    <meta name="Generator" content="Cocoa HTML Writer">
    <style type="text/css">
      p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.SF UI Text'}
      span.s1 {font-family: '.SFUIText-Semibold'; font-weight: bold; font-style: normal; font-size: 12.00pt}
      span.s2 {font-family: '.SFUIText'; font-weight: normal; font-style: normal; font-size: 12.00pt}
    </style>
  </head>
  <body>
    <p class="p1"><span class="s1">Swift</span><span class="s2"> or </span><span class="s1">Objective-C</span></p>
  </body>
</html>
*/

安装

Carthage

要使用 Carthage 将 ListItemFormatter 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "liamnichols/ListItemFormatter"

按照 说明 将 ListItemFormatter.framework 添加到您的项目中。