IOS程式名稱及內容國際化(本地化)

2021-06-21 08:27:38 字數 3783 閱讀 2412

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...