在Xcode 6中弓千,國際化時需要注意以下幾個方面
1兵扬、先讓工程支持國際化
在項目管理界面中指蚜,在 Localization 中乞巧,添加對 Chinese 的支持,這個時候姚炕,通常會提示你摊欠,需要國際化的文件丢烘,通常是 xib 文件和 plist 文件,如果你需要為你的 XIB 文件增加國際化的支持些椒,那就選中他們播瞳,默認是全選的,這個時候免糕,你會發(fā)現(xiàn)赢乓,沒有找到你的?.String 文件。
對的石窑,因為你這個時候你還沒有添加 .String 文件牌芋,好的,去添加它
2松逊、添加 Localizable.String 文件
是的躺屁,沒錯,就這樣命名经宏,先不要調皮犀暑,過會告訴你如何調皮。創(chuàng)建文件之后烁兰,在 Xcode 的右側點擊 Localization 耐亏,會默認的提示你,需要把當前的 Localizable.String 文件放到哪個國際化文件夾中沪斟。
這個地方說一下广辰,國際化,其實也沒那么智能主之,就是根據(jù)當前的語言環(huán)境更改加載的文件夾罷了择吊,當然 App 的語言環(huán)境是不是需要根據(jù)系統(tǒng)變動而變動,還需要在 scheme 中設置槽奕,默認的設置干发,是跟隨系統(tǒng)的語言環(huán)境,這個也是開發(fā)者認為模擬器不能調試國際化的原因史翘,只要在 Scheme 中設置不跟隨系統(tǒng),而是選擇我們需要調試的語言環(huán)境冀续。一會兒再說琼讽,賣個關子,嘻嘻洪唐。
通常會添加到一個叫 Base 的文件夾中钻蹬,但是,需要國際化好幾個文件凭需,我的選擇只想支持漢語和英語问欠,那我就默認的丟到 English 里了肝匆。添加好之后文件的屬性可以看到發(fā)生了變化。
好的顺献,創(chuàng)建成功了旗国。繼續(xù)我們第一個問題,再次到之前的界面注整,繼續(xù)給我們的工程添加一個語種的支持能曾。同樣的操作,你會看到你的 Localizable.String 文件肿轨,我們只為其添加國際化寿冕,所以,只選擇它椒袍,取消其他的選擇驼唱,點擊確定。
點擊確定之后驹暑,再看一下文件的屬性
這樣玫恳,你就成功的為你的工程添加了一個國際化文件,
我們?yōu)閲H化文件添加一個字符串 Hello, world岗钩,使用
NSLog(@"%@",NSLocalizedString(@"Hello, world",nil));
就可以得到你國際化的字符串了纽窟。
3、解決之前的關子
為什么需要使用 Localizable.String 去命名國際化文件呢兼吓?
原因很簡單臂港,只用使用這個名字,NSLocalizedString這個宏才能找到正確的國際化文件视搏,否則审孽,是找不到的,不信浑娜,你試一下佑力。。筋遭。
我如果還是想用別的文件打颤,怎么辦?
簡單漓滔,使用另一個宏NSLocalizedStringFromTable
這個宏编饺,可以讓你指定國際化文件的名稱,自動去你的bundle中去搜索响驴,搜到了透且,就使用它。
我們創(chuàng)建一個 Localization.String 文件
4豁鲤、怎么在模擬器中調試國際化呢秽誊?
不要改動你的 scheme 鲸沮,只是Duplicate Scheme就可以了。你也可以在調試完了之后刪掉锅论,都無所謂的讼溺。
重命名它,或者直接不用管它棍厌,然后點擊 Run
看到了嗎肾胯,選擇簡體中文,就可以了耘纱,還可以繼續(xù)的選擇敬肚,把區(qū)域也設置一下
點擊Close
你就會看到你的Scheme里多了一個Copy of XXX,就是你剛創(chuàng)建的 Scheme束析,選中它艳馒,運行,你就會看到中文版的App啦员寇。