1、ios程式名稱國際化
1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。
1.3 新增完成後開啟對應語言檔案,比如english的新增
cfbundledisplayname="china";
chinese檔案新增
cfbundledisplayname="
中國";
執行,如果此時你的模擬器是中文,你會看到你的程式名稱變成了 中國:
來到設定裡把語言設定成 english。此時程式名稱變成了:china
這時,程式名稱的國際化完成了。那裡面內容呢?
2、內容國際化
2.1新建localization.strings檔案
2.2 新增語言和1.1環節一樣。
2.3 新增語言內容
新增"key"="value"; 然後使用時用nslocalizedstring(@"key", @""); 讀取內容.
localization.strings english檔案新增
"key"= "english value";
localization.strings english檔案新增
"key"= "中文內容";
在viewcontroller.m 中新增uilabel實驗一下
- (void)viewdidload
執行
設定項裡切換英文
如果你的strings檔案名字不是localizable而是自定義的話,如wang.strings,那麼你就得使用nslocalizedstringfromtable()來讀取本地化字串:
[cpp]view plain
copy
nslocalizedstringfromtable(@
"welcome"
,@"wang"
, nil)
3、本地化
這裡又分兩種方法,第一種和本地化字串方法類似,把中英文的名字分別存到中英文對應的strings檔案,然後通過nslocalizedstring)來獲取名稱,如:
localizable.strings(english)檔案中加入:
[cpp]view plain
copy
"btncancel"
="btncancelen.png"
;
localizable.strings(chinese)檔案中加入:
[cpp]view plain
copy
"btncancel"
="btncancelcn.png"
;
然後在**中使用nslocalizedstring)來獲取名稱:
[cpp]view plain
copy
ccsprite *btncancel = [ccsprite spritewithspriteframename:nslocalizedstring(@
"btncancel"
, nil)];
btncancel.position=ccp(s.width/2,s.height/2-40);
[self addchild:btncancel z:2 tag:104];
第二種就比較正規化了:點中你要本地化的,如「icon.png」,然後xcode-> view-> utilities -> file inspector,在localization中點「+」新增chinese (zh-hans);在左邊就會出現乙個倒三角,點開就會出現(english)和(chinese)的2張圖,並且在專案資料夾中會出現en.lproj檔案和zh-hans.lproj檔案;en.lproj檔案存放的是英文版,zh-hans.lproj存放的是中文版,中英文名字一樣,我們在資料夾中直接替換就可以了,最後使用時直接使用正常名字就行了,如:「icon.png」。
4、本地化其他檔案
本地化其他檔案和本地化第二種方法類似,先在localization中新增語言,然後把對應版本拷貝到en.lproj和zh-hans.lproj資料夾中,最後引用就行了。
5、如何在執行的時候判斷現在執行環境是哪個語言?
5.1 獲得所支援的語言
nsuserdefaults *defaults = [ nsuserdefaults standarduserdefaults ];
// 取得 iphone 支援的所有語言設定
nslog ( @"%@" , languages);
執行,列印結果:(
en,"zh-hant",
"zh-hans",
fr,de,
ja,nl,
it,es,
pt,"pt-pt",
da,fi,
nb,sv,
ko,ru,
pl,tr,
uk,ar,
hr,cs,
el,he,
ro,sk,
th,id,
"en-gb",
ca,hu,
vi )
"zh-hant" 正體中文
"zh-hans", 簡體中文
這段**獲取當前系統支援的語言。
5.2 獲取當前使用語言
nsarray *languages = [nslocale preferredlanguages];
nsstring *currentlanguage = [languages objectatindex:0];
nslog ( @"%@" , currentlanguage);
列印結果:en
用獲取到的當前語言,和支援的語言做字串對比,就可以知道是那種語言了。
if([currentlanguage isequaltostring:@"en"])
iOS 內容和名稱國際化
1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...
ios 本地化應用程式名稱
1.本地化應用程式名稱 1 點選 new file 然後在彈出視窗左側選擇ios的resource項,在右側就可以看到 string file 的圖示。建立這個檔案,命名為 infoplist 一定是這個檔名 就生成乙個infoplist.strings檔案 2 選中infoplist.string...
IOS程式國際化
1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...