LanguageKit
LanguageKit是一个iOS库,用于轻松切换不同的语言。它使用CSV文件轻松编辑和共享字符串。
正在进行中,可能无法按预期工作。
特性
- 基于CSV的字符串文件
- 程序性或Storyboard
- 在切换UIViewControllers之间自动更新
示例
要运行示例项目,首先将仓库克隆,然后在“Example”目录中运行pod install
。
安装
LanguageKit可通过CocoaPods获取。安装它,只需将以下行添加到Podfile中
pod 'LanguageKit'
它是如何工作的
准备字符串文件
你需要一个CSV格式的字符串文件,如下所示。
示例项目包含一个示例。(Localizable.csv)
|键|en|zh-Hant|zh-Hans|ja||-------------|-------------|-----||language.name|English|繁體中文|简体中文|日本語||button|Button|按鍵|按键|ボタン|
语言键
区域名称(en-US/zh-Hant)实际上并不重要,只是供你自己参考。你可以任意指定,包括en-US的两个不同版本。
单词键
建议为每个字符串使用一个键,但也可以在字符串之间进行翻译。
使用字符串文件配置
在你的AppDelegate中
LanguageKit.shared.setup(filename: "Localizable.csv") //or your own strings file
LanguageKit.shared.setLanguage(language: "en-US") //setup language
获取本地化字符串
使用方法
"button".localized
切换语言
LanguageKit.shared.setLanguage(language: "ja")
LanguageKit会查找您提供的字符串并返回翻译版本。
从Storyboard/XIB自动翻译字符串
如果你正在使用UIViewController或UITableViewController,或者从它们继承。为你创建了一个自定义IBOutlet - languageComponent。只需将控件与其关联即可。
支持的UI控件
- UILabel
- UIButton
- UISearchBar (占位符)
- UITextField (占位符)
- UISegmentControl
- UITabBar
- UINavigationBar的titleItem
语言系统
库中包含两种语言系统
运行时语言切换器(默认)
你可以随时切换语言,
系统语言切换器(需要重启)
在应用中,有许多组件是运行时不可更改的(例如,默认的UINavigationController返回按钮,SafariWebViewController,权限对话框等。)
如果你需要对它们进行本地化,你需要使用
LanguageKit.shared.setLanguage(language: "ja", asSystemLanguage: true)
这将弹出一个对话框,通知应用重启。
作者
Gary Law, [email protected], @garyworks
许可协议
LanguageKit 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。