SwiftLocalize 2.0.0

SwiftLocalize 2.0.0

dankinsoid维护。



  • 作者
  • voidilov

SwiftLocalize

CI Status Version License

描述

用于您项目原生Swift本地化的库。

示例

import Foundation
import SwiftLocalize

public enum Strings {

	public static let ok = Word("Ok", [.ru: "Да"]).localized
	public static let never = Word("Never", [.ru: "Никогда"]).localized
	public static let later = Word("Later", [.ru: "Позже"]).localized
	public static let error = Word("Error",  [.ru: "Ошибка"]).localized

	public static let coins = Word(
	"coins", [
	.ru: [
		.cases(NumberCase.accusative): "монеты",
		.cases(NumberCase.singular): "монета",
		.cases(NumberCase.genitive): "монет"
		]
	])
	//Strings.coins.string(.cases(NumberCase(for: someInt)))
	
	public static let errors: Word.Dictionary = [
		"unknown": [.ru: "Неизвестная ошибка", .en: "Unknown error"],
		"server": [.ru: "Ошибка сервера", .en: "Server error"]
	]

}

用法

要获取本地化字符串,创建一个Word对象

let word = Word(string, formsDictionary)

其中string: String - 默认值,formsDictionary: [Language: Word.Forms] - 形式的字典

要获取当前语言的字符串,使用word.localized,要获取自定义语言或形式的字符串,则调用

word.string(language, form)

其中language: Language - 语言,默认值为Language.current,form: FormType - 单词形式 (OptionSet)

支持的形式:无,单数,复数,阳性,阴性,中性,通性和它们的任何组合。

您可以通过LanguageCaseProtocol创建自己的形式类型(例如,用于语言环境),然后使用它

let formType = Word.FormType.cases(customFormEnum)

该仓库包含一个自定义的LanguageCaseProtocol类型 NumberCase,作为俄罗斯语言使用的示例。

具有多个形式的单词示例

let manWord = Word("man", [
	.ru: [.singular: "человек", .plural: "люди"],
	.en: [
		[.singular, .masculine]: "man", 
		[.plural, .masculine]: "men",
		[.singular, .feminine]: "woman", 
		[.plural, .feminine]: "women"
	     ],
	 .ja: ""
])

您可以将单词组合起来以获得短语

let tree = Word("tree", [
    .ru: [
        [.neuter, .singular]: "дерево",
        .plural: "деревья"
    ]
])
       
let beautiful = Word("beautiful", [
    .ru: [
        .plural: "красивые",
        .singular: [.masculine: "красивый", .feminine: "красивая", .neuter: "красивое"]
    ]
])
       
let phrase = beautiful + " " + tree

print(phrase.string(language: .ru, .plural))
    //prints "красивые деревья"
print(phrase.string(language: .ru, .singular))
    //prints "красивое дерево"

安装

  1. CocoaPods

将以下行添加到您的Podfile中

pod 'SwiftLocalize'

然后首先从Podfile目录运行pod update

  1. Swift 包管理器

创建一个Package.swift文件。

// swift-tools-version:5.0
import PackageDescription

let package = Package(
  name: "SomeProject",
  dependencies: [
    .package(url: "https://github.com/dankinsoid/SwiftLocalize.git", from: "1.9.0")
  ],
  targets: [
    .target(name: "SomeProject", dependencies: ["SwiftLocalize"])
  ]
)
$ swift build

作者

Voidilov, [email protected]

许可协议

SwiftLocalize 根据 MIT 许可协议提供。有关更多信息,请参阅 LICENSE 文件。