IOS中的國際化 一

2022-05-12 03:14:08 字數 3040 閱讀 4268

開啟這個工程你可以當看到如下的乙個介面:

然後點開storyboard,你會發現裡面的控制項都非常簡單。為了國際話,我們需要往專案中再新增一門語言。新增語言的方式是,project--->info--->localizations點選"+"來新增相應語言,這裡我們選擇chinese(simplified)簡體中文。然後將彈出的對話方塊中的launchscreen.strings和main.storyboard都勾選了。這樣我們的基本工作就完成了,下面正式開始

建立.strings檔案,點選command + n 新建檔案,在resouce中選擇strings file檔案,命名為localizable

,這樣系統就會在不同語言環境下選擇不同的.strings檔案進行載入,顯示不同的語言。

點選localizable.strings檔案,點選右側的localization按鈕,然後選擇需要本地化的語言,選擇漢語,然後再次點選localizable.strings,你會發現右側的localizattion下面多了幾個選擇語言的選項,base,english,chinese(simplified)選中english,然後就會發現又多了乙個.strings檔案。

對不同的.string檔案配置不同的value值,在.string中配置的格式是"key" = "value";,  注意最後的分號。我們在localizable.strings(english)中加上

1

"i write %@ lines every day.

" = "

i write %@ lines every day.";

2"do you like coding ?

" = "

do you like coding ?

";

在localizable.strings(chinese simplified)中新增

"

i write %@ lines every day.

" = "

我每天寫%@行**。";

"do you like coding ?

" = "

你喜歡程式設計嗎?

";

在viewcontroller.m中改寫相應的載入方法將原來的

1  _viewcontrollernumlabel.text = @"

i write 1000000000 lines every day.";

2 [_viewcontrollerlikebutotn settitle:@"

do you like coding ?

" forstate:uicontrolstatenormal];

替換為:

1     _viewcontrollernumlabel.text = [nsstring stringwithformat:nslocalizedstring(@"

i write %@ lines every day.

", nil),@1000000000

];2 [_viewcontrollerlikebutotn settitle:nslocalizedstring(@"

do you like coding ?

", nil) forstate:uicontrolstatenormal];

修改不同的。這時你會發現,有些時候,我們的上會有文字,這些文字是不能用**改變的,所以這時要載入不同的,利用步驟4中的方法,我們給名用乙個key來表示,然後將不同的名作為value寫在不同的.strings檔案中,我們在english中加入:

1

"imagename

" = "

english

";

我們在chinese中加入:

1

"imagename

" = "

chinese

";

其中english和chinese都是的文字,然後在viewcontrolelr中新增如下**

1     _viewcontrollerimageview.image = [uiimage imagenamed:nslocalizedstring(@"

imagename

",nil)];

這時,修改相應的語言就將會出現不同的。

修改沒有被引出的控制項的顯示。點選main.storyboard,你會發現下面有乙個main.strings(chinese simplified)檔案,這時將裡面有關lable的**:

1

/*class = "uilabel"; text = "hello i am a lable"; objectid = "zki-n6-dit"; */2

"zki-n6-dit.text

" = "

hello i am a lable

";

修改為:

/*

class = "uilabel"; text = "hello i am a lable"; objectid = "zki-n6-dit"; */"

zki-n6-dit.text

" = "

您好,我是乙個label

";

再次執行**,你會發現這個時候沒有用**修改的lable顯示的內容也變了。

1     nsnumberformatter *numberformatter = [nsnumberformatter new

];2 numberformatter.numberstyle =nsnumberformatterdecimalstyle;

3 nsstring *numberstring = [numberformatter stringfromnumber:@1000000000];4

5 _viewcontrollernumlabel.text = [nsstring stringwithformat:nslocalizedstring(@"

i write %@ lines every day.

", nil),numberstring];

IOS程式國際化

1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...

IOS程式國際化

1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...

iOS語言國際化

參考 語言國際化 根據系統不同的語言自動切換 xcode6.2 一.在不同語言下工程名會變成對應的語言名 步驟 新建乙個singleview工程 再新建infoplist檔案 注意檔名不能改變還有大小寫 然後新增語言 經過以上,會出現 在各自的語言資料夾中分別新增 cfbundledisplayna...