monoTouch開發軟體在多語言運用中的執行個體

來源:互聯網
上載者:User

      本文主要介紹monoTouch中實現軟體支援多國語言,在不同的環境中本地化,即面向國際使用者進行本地化。

      在monodevelop中建立項目,C#--MomoTouch--iphone--Single View Application ,命名為Localization01,在根目錄添加建立檔案夾en.lproj,在裡面建立檔案命名為Localizable.strings,這是添加的英語語種,類似添加法語和西班牙語,即將檔案夾命名為fr.lproj和es.lproj ,檔案夾裡分別添加新檔案命名為Localizable.strings。命名必須和上述保持一致,這樣軟體才能根據蘋果裝置設定裡面的語言,尋找到相應本地資源。

      務必要保證的是Localizable.strings的檔案,選中檔案--右鍵Build Action要設定為content。不然的話你是無法實現本地化效果的,切記。剛開始我就在這上面摔跟頭了,調試好長時間。

      實現本地化主要用到了LocalizedStrings()方法和PathForResource()方法。 前者是從.strings檔案中載入本地化字串。 後者是載入本地化檔案夾中對應的映像(或其他檔案類型)的路徑。

      具體代碼如下:

      1、在xcode中設計表單如下:

      

 

     

     2、後台代碼實現如下:

     

View Code

 1  public override void ViewDidLoad() { 2                                 base.ViewDidLoad(); 3                                  4             LocaleLabel.Text=NSLocale.CurrentLocale.LocaleIdentifier; 5             LanguageLabel.Text=NSLocale.PreferredLanguages[0]+"Lan"; 6  7             GoodbyeLabel.Text=NSBundle.MainBundle.LocalizedString("Hello","a greeting"); 8             Segments.SetTitle(NSBundle.MainBundle.LocalizedString("One","Number one"),0); 9             Segments.SetTitle(NSBundle.MainBundle.LocalizedString("Two","Number two"),1);10             Segments.SetTitle(NSBundle.MainBundle.LocalizedString("Three","Number three"),2);11 12             OkButton.SetTitle(NSBundle.MainBundle.LocalizedString("OK","affirmative"),UIControlState.Normal);13         //    OkButton.SetTitle(NSBundle.MainBundle.LocalizedString("OK (unavailable)","affirmative disabled"),UIControlState.Disabled);14             CancelButton.SetTitle(NSBundle.MainBundle.LocalizedString("Cancel","cancle button"),UIControlState.Normal);15             16 }

      3、在三個Localizable.strings檔案中代碼如下:

       1)en.lproj中:

       

View Code

1 "Hello" = "Hello";2 "Goodbye" = "Good-bye";3 "OK" = "OK";4 "Cancel" = "Cancel";5 "One" = "One";6 "Two" = "Two";7 "Three" = "Three";

       2)es.lproj中:

   

View Code

1 /* A greeting */2 "Hello" = "Hola";3 "Goodbye" = "Adiós";4 "OK" = "Si";5 "Cancel" = "Cancelar";6 "One" = "Uno";7 "Two" = "Dos";8 "Three" = "Tres";

      3)fr.lproj中

View Code

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 <plist version="1.0"> 4 <dict> 5     <key>Hello</key> 6     <string>Bonjour</string> 7     <key>Goodbye</key> 8     <string>Au revoir</string> 9     <key>OK</key>10     <string>Oui</string>11     <key>Cancel</key>12     <string>Annuler</string>13     <key>One</key>14     <string>un</string>15     <key>Two</key>16     <string>deux</string>17     <key>Three</key>18     <string>trois</string>19 </dict>20 </plist>

      從上面可以看出,有兩種方式來解釋本地化語言。

      

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.