前言
項目開發(fā)中不同語言環(huán)境需要進行多語言適配
- 純代碼界面開發(fā)時颊埃,直接添加本地化語言文件班利,并針對鍵值對獲取即可
- xib界面開發(fā)時榨呆,你也可以通過拖拽UI控件积蜻,間接的調(diào)用本地化語言文件,但這顯然不是最優(yōu)的解決方案纽谒,實際上蘋果已兼容了這種情況如输,可以直接針對對應的xib文件進行本地化語言處理
首先為項目添加國際化語言
全局添加需要適配的多語言
純代碼本地化
1.創(chuàng)建本地化文件澳化,推薦使用localizable命名
創(chuàng)建本地化文件
選擇對應的本地化語言
勾選需要添加的本地化語言
2.在Strings文件中設置Key-Value
/* Localizable.string */
// Localizable (English)
"title" = "title";
// Localizable (Chinese simplified)
"title" = "標題"
// Localizable (Chinese HongKong)
"title" = "標題"
3.調(diào)用本地化方法
// 為String添加轉換擴展缎谷,便于快捷調(diào)用
extension String {
func localized() {
return Bundle.main.localizedString(forKey: self, value: nil, table: nil)
}
}
// 調(diào)用字符串對應的本地化字符
let title = "title".localized()
XIB本地化
1.針對控制器.xib文件添加國際化擴展
為xib添加本地化文件
勾選需要添加的本地化語言
針對勾選的本地化語言會自動生成對應的strings文件
/* Class = "UILabel"; text = "國際化語言"; ObjectID = "kFe-or-R4m"; */
"kFe-or-R4m.text" = "國際化語言";
ObjectID對應位置
2.設置不同的語言對應的文字
此時針對不同語言的strings文件進行文本設置就能達到多語言適配了
/* Class = "UILabel"; text = "國際化語言"; ObjectID = "kFe-or-R4m"; */
// xxxx(English).strings文件
"kFe-or-R4m.text" = "international language";
// xxxx(Chinese (HongKong)).strings文件
"kFe-or-R4m.text" = "國際化語言";
// xxxx(Chinese (Simplified)).strings文件
"kFe-or-R4m.text" = "國際化語言";
3.注意事項
針對新生成的strings酪惭,會自動關聯(lián)相關的UI控件,但后續(xù)添加的UI控件并不會自動加入到strings中春感,此時需要在xib中將對應的語言勾選取消掉后再重新插入,注意對strings文件進行備檔處理