2013-11-21 25 views
8

我想弄清楚Xamarin.iOS上的本地化。我一般對本地化很陌生,但我們想要做的第一種語言是冰島語。如果你看看iOS設備本身的設置,冰島不是一種選擇。所以這是一個兩部分問題。Xamarin.iOS上的本地化

  1. 如何在我的應用程序中設置本地化?我是否像其他.net應用程序一樣進行本地化?或者,我需要iOS/Xamarin特有的東西。

  2. 一旦我實現了這個功能,我怎麼才能讓它選擇Icelandic作爲語言,因爲iOS沒有它作爲可用語言?

文檔似乎對這個主題很少見。

回答

16

How can I set up localization within my app?

的iOS都有自己的方法來處理本地化。對於每種語言,您需要在項目中創建一個名爲language.lproj的文件夾,其中language是ISO 639-1或ISO 639-2語言代碼。兩個字符ISO 639-1代碼是優選的(例如,en,de,fr,it,...)。您可以找到ISO 639-1和ISO 639-2代碼here的表格。

在新創建的文件夾,你需要創建一個名爲Localizable.strings文件,在這裏你可以添加你要本地化您的字符串:

"stringToLocalize" = "This is the translation";

並指定一個本地化的字符串,例如一個UILabel

UILabel label = new UILabel(); 
... 
label.Text = NSBundle.MainBundle.LocalizedString("stringToLocalize", null); 

你甚至可以創建一個擴展方法(信貸anotherlab):

public static class LocalizationExtensions 
{ 
    public static string t(this string translate) 
    { 
     return NSBundle.MainBundle.LocalizedString(translate, "", ""); 
    } 
} 

How do I get it to choose Icelandic as the language since iOS does not have it as an available language?

我不認爲有一種方法可以選擇冰島作爲iOS的語言。我們的一個應用程序使用德語,意大利語和法語本地化。由於我們不需要英語,因此我們創建了en.lproj文件夾,其中包含德語本地化。這種方式即使設備的語言設置爲英語,德語文本也會出現。也許你可以在你的應用中做這樣的事情。