Xamarin.iOS的本地化

我想弄清楚Xamarin.iOS上的本地化。 我不熟悉本地化,但我们想做的第一语言是冰岛语。 如果您查看iOS设备本身的设置,则不支持Icelandic。 所以这是一个两部分的问题。

  1. 如何在我的应用程序中设置本地化? 我是否只是以与其他.net应用程序相同的方式进行本地化。或者我需要做一些特定于iOS / Xamarin的内容。

  2. 一旦我实现了这个,我如何选择Icelandic作为语言,因为iOS没有它作为可用的语言?

关于这个主题的文档似乎很少。

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规范的表格。

在新创建的文件夹中,您需要创建一个名为Localizable.strings的文件,在这里您可以添加要本地化的字符串:

"stringToLocalize" = "This is the translation";

并将本地化字符串分配给UILabel

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

你甚至可以创建一个扩展方法(贷记给另一个 ):

 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文件夹。 这样即使设备的语言设置为英语,也会出现德语文本。 也许你可以在你的应用程序中做这样的事情。