天天看點

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

1.首先添加需要适配的語言

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串
iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

選擇要添加的語言:

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

選擇要國際化的storyboard:

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串
iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串
iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

2.xib國際化

如果照上圖已勾選需要國際化的storyboard,那麼就已經出現簡體中文的國際化檔案,勾選english就會出現英文的國際化檔案,如圖

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串
iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

如果添加語言的時候沒有勾選storyboard,或者有新添加的storyboard或xib,則需要手動開啟國際化,如圖

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

圖檔、應用名稱等需要國際化的都是如此開啟;

3.圖檔

圖檔開啟國際化之後會有兩張相同的圖檔存放在不同的位置,隻需要将對應的圖檔替換掉就可以了。

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

Assets.xcassets還不支援國際化功能。

4.應用名稱

建立檔案,檔案名必須為 InfoPlist

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

然後在檔案裡添加

CFBundleDisplayName = "國際化";
           

然後開啟國際化,修改新生成的對應語言的檔案中的應用名稱,例如

CFBundleDisplayName = "language";
           

5.字元串

1.替換代碼中的字元串

接下來就該工程中的字元串了,字元串的國際化需要用到

NSLocalizedString(@"", @"")
           

參數為兩個字元串,第一個字元串是查找對應語言的key值,第二個字元串是注釋(可有可無), 還有幾個其他方法,可用于指定檔案

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

好多應用是即将完工或已經完工之後才進行國際化适配,是以需要從工程中找到自己想要的字元串。 例如中文:

[button setTitle:@"語言切換" forState:UIControlStateNormal];
           

需要替換為

[button setTitle:NSLocalizedString(@"語言切換", nil) forState:UIControlStateNormal];
           

當然如果項目一開始的時候就考慮到國際化的問題,使用了 NSLocalizedString那就不用了。 這就需要使用正規表達式查找替換了,

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

選擇這個, 中文的正規表達式為:(@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?") 替換時使用$1代替()内正規表達式比對到的内容,如果有兩個()時第二個用$2代替。。。 如圖

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

選擇需要替換的内容替換即可。

2.生成字元串的國際化檔案

使用genstrings工具生成.string檔案 打開終端,進入到工程目錄下執行指令:

find ./ -name *.m | xargs genstrings -o en.lproj
           

*.m就是工程裡的所有.m檔案,如果.h檔案有需要也可以寫*.h en.lproj是生成檔案存放的位址,可以自己指定 生成的檔案如下:

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

如果工程一開始就做國際化,代碼中還沒有 NSLocalizedString,就不能生成此檔案,要自行建立此檔案名的檔案。

将此檔案加入到工程内,然後開啟國際化,找專業人士翻譯即可。

iOS 國際化(多語言)1.首先添加需要适配的語言2.xib國際化3.圖檔4.應用名稱5.字元串

如果沒有相應語言的Localizable.string檔案,或相對key值的value值,則會顯示key值。

未完待續