Xcode 6 關(guān)于 iOS App 國(guó)際化問(wèn)題

在Xcode 6中,國(guó)際化時(shí)需要注意以下幾個(gè)方面

1、先讓工程支持國(guó)際化

在項(xiàng)目管理界面中,在 Localization 中,添加對(duì) Chinese 的支持,這個(gè)時(shí)候,通常會(huì)提示你,需要國(guó)際化的文件,通常是 xib 文件和 plist 文件,如果你需要為你的 XIB 文件增加國(guó)際化的支持,那就選中他們,默認(rèn)是全選的,這個(gè)時(shí)候,你會(huì)發(fā)現(xiàn),沒(méi)有找到你的?.String 文件。

讓工程支持國(guó)際化

對(duì)的,因?yàn)槟氵@個(gè)時(shí)候你還沒(méi)有添加 .String 文件,好的,去添加它

2、添加 Localizable.String 文件

是的,沒(méi)錯(cuò),就這樣命名,先不要調(diào)皮,過(guò)會(huì)告訴你如何調(diào)皮。創(chuàng)建文件之后,在 Xcode 的右側(cè)點(diǎn)擊 Localization ,會(huì)默認(rèn)的提示你,需要把當(dāng)前的 Localizable.String 文件放到哪個(gè)國(guó)際化文件夾中。

添加 Localizable.String 文件

這個(gè)地方說(shuō)一下,國(guó)際化,其實(shí)也沒(méi)那么智能,就是根據(jù)當(dāng)前的語(yǔ)言環(huán)境更改加載的文件夾罷了,當(dāng)然 App 的語(yǔ)言環(huán)境是不是需要根據(jù)系統(tǒng)變動(dòng)而變動(dòng),還需要在 scheme 中設(shè)置,默認(rèn)的設(shè)置,是跟隨系統(tǒng)的語(yǔ)言環(huán)境,這個(gè)也是開(kāi)發(fā)者認(rèn)為模擬器不能調(diào)試國(guó)際化的原因,只要在 Scheme 中設(shè)置不跟隨系統(tǒng),而是選擇我們需要調(diào)試的語(yǔ)言環(huán)境。一會(huì)兒再說(shuō),賣(mài)個(gè)關(guān)子,嘻嘻。

通常會(huì)添加到一個(gè)叫 Base 的文件夾中,但是,需要國(guó)際化好幾個(gè)文件,我的選擇只想支持漢語(yǔ)和英語(yǔ),那我就默認(rèn)的丟到 English 里了。添加好之后文件的屬性可以看到發(fā)生了變化。

查看 Localizable.String 的屬性

好的,創(chuàng)建成功了。繼續(xù)我們第一個(gè)問(wèn)題,再次到之前的界面,繼續(xù)給我們的工程添加一個(gè)語(yǔ)種的支持。同樣的操作,你會(huì)看到你的 Localizable.String 文件,我們只為其添加國(guó)際化,所以,只選擇它,取消其他的選擇,點(diǎn)擊確定。

為 Localizable.String 國(guó)際化(簡(jiǎn)體中文)
只選擇 Localizable.String 文件

點(diǎn)擊確定之后,再看一下文件的屬性

再次查看 Localizable.String 屬性

這樣,你就成功的為你的工程添加了一個(gè)國(guó)際化文件,

我們?yōu)閲?guó)際化文件添加一個(gè)字符串 Hello, world,使用

NSLog(@"%@",NSLocalizedString(@"Hello, world",nil));

就可以得到你國(guó)際化的字符串了。

3、解決之前的關(guān)子

為什么需要使用 Localizable.String 去命名國(guó)際化文件呢?

原因很簡(jiǎn)單,只用使用這個(gè)名字,NSLocalizedString這個(gè)宏才能找到正確的國(guó)際化文件,否則,是找不到的,不信,你試一下。。。

我如果還是想用別的文件,怎么辦?

簡(jiǎn)單,使用另一個(gè)宏NSLocalizedStringFromTable

這個(gè)宏,可以讓你指定國(guó)際化文件的名稱(chēng),自動(dòng)去你的bundle中去搜索,搜到了,就使用它。

我們創(chuàng)建一個(gè) Localization.String 文件

在新的國(guó)際化文件 Localization.String 文件中添加字符串
使用 NSLocalizedStringFromTable 宏

4、怎么在模擬器中調(diào)試國(guó)際化呢?

不要改動(dòng)你的 scheme ,只是Duplicate Scheme就可以了。你也可以在調(diào)試完了之后刪掉,都無(wú)所謂的。

編輯現(xiàn)有的Scheme


復(fù)制現(xiàn)有的 scheme


為新的 Scheme 命名

重命名它,或者直接不用管它,然后點(diǎn)擊 Run

更改新的 Scheme 的語(yǔ)言(簡(jiǎn)體中文)

看到了嗎,選擇簡(jiǎn)體中文,就可以了,還可以繼續(xù)的選擇,把區(qū)域也設(shè)置一下

更改 App 的區(qū)域

點(diǎn)擊Close

你就會(huì)看到你的Scheme里多了一個(gè)Copy of XXX,就是你剛創(chuàng)建的 Scheme,選中它,運(yùn)行,你就會(huì)看到中文版的App啦。

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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