iOS實現語言本地化

來源:互聯網
上載者:User
簡介

iOS實現語言的本地化很簡單,這裡只是為了簡單的記錄一下過程。 一、本地化storyboard上的字串

1.建立應用(如項目名為:LocalizationDemo)
2.添加本地化檔案


3.往Main.storyboard上添加一個label並設定內容為Setting
這時,我們查看Main.strings(Chinese(Simplified))檔案,裡面是空。
4.為了讓檔案自動填滿內容,有個小技巧:選擇Main.storyboard,然後在右邊的 Utilities 中選擇 Show the file inspector ,然後在Localization項將Localizable Strings切換到 Interface Builder Storyboard,之後再重新切換回去。


再次查看檔案,這時已經有如下內容了

/* Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP"; */"cWa-zv-jKP.text" = "Setting";

5.將Setting修改為設定

/* Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP"; */"cWa-zv-jKP.text" = "設定";

6.完成了,運行程式將預設語言改為中文即可看到設定字樣 二、本地化代碼中的字串 熟悉 NSLocalizedString的用法:參數一為key,參數二為注釋; 在代碼中,任何需要本地化的字串都用NSLocalizedString包裹起來,如輸出Test字串:NSLog(NSLocalizedString("Test", "輸出Test字串"));

匯出需要本地化的字串,有兩種方法:
a. 通過 genstrings 命令來組建檔案:開啟終端;用 cd 命令進入到項目目錄中;執行 genstrings 命令 genstrings *.swift (如果使用的語言是Objective-C,則將 .swift 改為 .m 即可)。需要注意的是genstrings命令不會遍曆子檔案夾,換句話說,如果swift檔案放在多重檔案夾當中,那這些檔案將不會被訪問到,所以最好的方法是使用find命令先將需要的檔案找到,然後再使用genstrings命令來組建檔案。如:
find ./ -name '*.swift' -print0 | xargs -0 genstrings -o ./zh-Hans.lproj/
說明:-print0 和 xargs的作用可以參考find命令的說明, -o 後面參數指定目標路徑

b. 選擇Xcode上左邊的Navigator選擇項目,然後在功能表列上選擇 Editor -> Export For Localization…,然後指定檔案目錄(暫時指定到案頭吧)。

從案頭路徑可以看到產生的檔案夾,開啟檔案夾,裡面有個尾碼名為xliff的檔案,該檔案使用的是 xml 格式。開啟檔案,我們可以看到所有需要本地化的字串:

...<body>      <trans-unit id="cWa-zv-jKP.text">        <source>Setting</source>        <target>Setting</target>        <note>Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP";</note>      </trans-unit>    </body>...<body>      <trans-unit id="CFBundleName">        <source>$(PRODUCT_NAME)</source>      </trans-unit>      <trans-unit id="CFBundleShortVersionString">        <source>1.0</source>      </trans-unit>    </body>...<body>      <trans-unit id="GOOD">        <source>GOOD</source>        <note>輸出GOOD字串</note>      </trans-unit>      <trans-unit id="Setting">        <source>Setting</source>        <note>No comment provided by engineer.</note>      </trans-unit>      <trans-unit id="Test">        <source>Test</source>        <note>測試</note>      </trans-unit>    </body>

在source標籤下的內容就是要本地化的字串,taget標籤就是本地化後的字串,note標籤即是注釋。我們發現有些source下沒有taget標籤,我們可以自己加上去,並寫上本地化後的字串,其他taget標籤的內容也修改成我們需要的字串。
修改後進行儲存。然後跟上面同樣的步驟,我們選擇import Localization...匯入檔案。

然後會看到剛才修改的內容和之前檔案內容的對比,點擊import即可。

匯入成功後,即可看到我們本地化的檔案,運行程式,一切順利:


這就完成了本地化了。

參考文章:
[http://blog.chinaunix.net/uid-20082146-id-83489.html]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.