關(guān)于iOS 的多語(yǔ)言適配問(wèn)題

關(guān)于iOS 的國(guó)際化適配,主要有以下幾點(diǎn):

一、語(yǔ)言適配 ?Localizable.strings文件

該文件主要用于字符串的多語(yǔ)言版本,包括Localizable.strings(English), Localizable.strings(Chinese(Simplified)), Localizable.strings(Chinese(Traditional))等多個(gè)版本,使用不同的文件名稱,內(nèi)容取相同的key名稱,對(duì)應(yīng)不同的值。文件中具體內(nèi)容格式如下:

//Localizable.string(English)

"TEXT_CANCEL"="Cancel";//取消

"TEXT_BACK"="Back";//返回

"TEXT_SEND"="Send";//發(fā)送

// Localizable.strings(Chinese(Simplified))

"TEXT_CANCEL"="取消";//取消

"TEXT_BACK"="返回";//返回

"TEXT_SEND"="發(fā)送";//發(fā)送

// Localizable.strings(Chinese(Traditional))

"TEXT_CANCEL"="取消";//取消

"TEXT_BACK"="返回";//返回

"TEXT_SEND"="發(fā)送";//發(fā)送

二、圖片適配

有兩種方式:

(1)在不同語(yǔ)言的Localizable.strings中指定不同的圖片名稱,通過(guò)NSLocalizedString()獲取不同的圖片名稱后進(jìn)行顯示不同的圖片

(2)參照國(guó)際化應(yīng)用名和文字的方式給圖片標(biāo)記兩種不同的語(yǔ)言顯示 ,要注意命名帶上各國(guó)家的對(duì)應(yīng)的編碼表示


一般涉及到多語(yǔ)言適配問(wèn)題,我們會(huì)先判斷當(dāng)前使用的語(yǔ)言類型。

獲取iOS系統(tǒng)的語(yǔ)言類型可使用:

NSArray*languages = [NSLocale preferredLanguages];// 獲取語(yǔ)言字段NSString*curLanguage = [languages firstObject];// 獲取當(dāng)前使用語(yǔ)言

對(duì)于curLanguage的值,iOS9在其中增加了地區(qū)代碼。如簡(jiǎn)體中文,在iOS9之前為@”zh-Hans”,而在iOS9中為@”zh-Hans-CN”。所以iOS9之前的一些判斷如

[curLanguage isEqualToString:@"zh-Hans"]

在iOS9之后就會(huì)有問(wèn)題,可使用

[curLanguage hasPrefix:@"zh-Hans"]

來(lái)代替。如下:

//? 當(dāng)前語(yǔ)言是否中文簡(jiǎn)體

-#defineisZhHans [[[NSLocale preferredLanguages] firstObject] isEqualToString:@"zh-Hans"]

+#defineisZhHans [[[NSLocale preferredLanguages] firstObject] hasPrefix:@"zh-Hans"]

// 當(dāng)前語(yǔ)言是否為中文繁體

-#defineisZhHant [[[NSLocale preferredLanguages] firstObject] isEqualToString:@"zh-Hant"]

+#defineisZhHant [[[NSLocale preferredLanguages] firstObject] hasPrefix:@"zh-Hant"]

// 當(dāng)前語(yǔ)言是否為中文繁體香港

-#defineisZhHK [[[NSLocale preferredLanguages] firstObject] isEqualToString:@"zh-HK"]

+#defineisZhHK [[[NSLocale preferredLanguages] firstObject] hasPrefix:@"zh-HK"]

獲取地區(qū)代碼

NSLocale *locale=[NSLocale currentLocale];

[locale localeIdentifier];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容