2013-06-21 23:41 247人閱讀 評論(0) 收藏 舉報函數
最近在忙着一個國外項目,每天加班,沒時間更新博客。就簡單講講國際化的知識。spa
首先,咱們使用字符串,必須用NSLocalizedString(key,comment),這樣咱們在不一樣的Localizable.strings對key指定不一樣的值,系統會根據當前系統語言,去不一樣的lproj找不一樣的字符串。用個圖顯示吧:.net
咱們應用只支持中文,英文,因此只建了zh-Hans.lproj和en.lproj,而後在Localizable.strings指定了不一樣的值。舉例以下:orm
這樣程序就能根據系統語言,去選擇「登陸」仍是「Log In」。blog
可是若是每次加了一個本地化字符串,就得手動去Localizable.strings添加對應的key,那就太麻煩了,幸虧蘋果提供了快捷生成本地化key的命令。下面以en.lproj的生成爲例:字符串
首先,咱們進入程序工程所在的目錄,用命令創建en.lproj get
mkdir en.lproj博客
而後咱們遍歷全部的子目錄文件,去生成Localizable.strings,命令以下:string
find ./ -name *.m -print0 | xargs -0 genstrings -o en.lprojit
(基本都說genstrings -o en.lproj *.m就能夠生成Localizable.strings,可是這個命令只能生成當前目錄的,並無遍歷子目錄,因此基本沒用)
這樣系統就會把子目錄用到NSLocalizedString函數的key值都寫到文件裏。
須要注意的是,NSLocalizedString(key,comment),用這個函數時,key不能是宏定義或者一些動態字符串,不然用上面的命令會報錯。