Xamarin构成多语言应用程序

时间:2017-01-29 19:40:29

标签: visual-studio xamarin localization cross-platform multilingual

使用xamarin表单编写应用程序 我希望它支持3种语言英语freinch和阿拉伯语 我怎么能这样做? 我可以实现它,但仅限于安装应用程序的设备语言,例如,如果模拟器使用阿拉伯语,应用程序将显示阿拉伯语如何让用户选择他想要的语言,如按钮或任何人都可以帮助我请

我希望它像语言中的运行时更改一样 像facebook一样,你可以在登录页面上选择语言而不关心设备语言

提前致谢

1 个答案:

答案 0 :(得分:1)

我想你可以看看这个Xamarin Forms Sample。 它使用RESX文件。

TodoLocalized

在您的代码中,您可以使用语言描述创建一个选择器。例如

    List<string> _language = new List<string>();
    List<string> _languageDescription = new List<string> ();

    // Strings used to identify RESX
    _language.Add ("it");
    _language.Add ("en");

    // Strings visualized in picker
    _languageDescription.Add (AppResources.Italian);
    _languageDescription.Add (AppResources.English);

    // Fill the picker with _languageDescription values
    Picker _pickerLanguage = new Picker ();
    _pickerLanguage.Items.Clear ();
    foreach (string language in _languageDescription)
        _pickerLanguage.Items.Add (language);

    // When I select a language, I change the AppResource.Culture value
    _pickerLanguage.SelectedIndexChanged += async (object sender, EventArgs e) => {
            if(_pickerLanguage.SelectedIndex >= 0){

                // Search the "_language" value that has the same index of selected _languageDescription value
                string myLanguage = _language [_languageDescription.FindIndex (o => o == _pickerLanguage.Items [_pickerLanguage.SelectedIndex])];

                // Modify the culture
                AppResources.Culture = new CultureInfo (myLanguage);

            }
        };

现在您应该刷新页面以查看使用新语言的字符串

希望这个帮助