Xamarin.iOS的本地化

Chr*_*ken 9 c# localization xamarin.ios ios xamarin

我正试图找出Xamarin.iOS的本地化.我是一般的本地化新手,但我们想做的第一语言是冰岛语.如果您查看iOS设备本身的设置,则不支持Icelandic.所以这是一个两部分问题.

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

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

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

Nor*_*asi 18

How can I set up localization within my app?

iOS有自己的方式来处理本地化.对于每种语言,您需要在项目中创建一个名为language.lprojwhere languageISO 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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

我不认为有一种方法可以选择冰岛语作为iOS语言.我们的一个应用程序使用德语,意大利语和法语本地化.由于我们不需要英语,因此我们创建了en.lproj包含德语本地化的文件夹.这样即使设备的语言设置为英语,也会出现德语文本.也许你可以在你的应用中做同样的事情.