2016-07-14 1 views
-1

Возможно ли реализовать другой язык в приложении UWP из кода, используемого с помощью многоязычного инструментария &, не путем установки нужного языка из настроек, а вместо него из выпадающего списка языка в пределах applicationреализовать другой язык в приложении UWP из кода позади, используя многоязычный интерфейс

ответ

1

На самом деле вам не нужно многоязычный Инструментарий приложений, чтобы изменить язык вашего приложения. По умолчанию приложение будет настраиваться на основе настроек на компьютере, но вы можете переопределить это, установив CurrentCulture и/или CurrentUICulture.

Скажите, например, что у вас есть Combobox, который содержит «английский», «испанский» и «французский» ... и ваше желаемое поведение - переключить свой язык на любое значение, которое выбирает пользователь. Все, что вам нужно сделать, это подключить событие SelectionChanged. Вот то, что код может выглядеть следующим образом:

private void ChangeLanguage(object sender, SelectionChangedEventArgs e) 
    { 
     var newlySelected = e.AddedItems[0] as ComboBoxItem; 
     string newLanguage = newlySelected.Content.ToString(); 
     switch (newLanguage) 
     { 
      case "English": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("en"); 
        CultureInfo.CurrentUICulture = new CultureInfo("en"); 
        break; 
       } 
      case "Spanish": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("es"); 
        CultureInfo.CurrentUICulture = new CultureInfo("es"); 
        break; 
       } 
      case "French": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("fr"); 
        CultureInfo.CurrentUICulture = new CultureInfo("fr"); 
        break; 
       } 
      default: 
       { 
        throw new NotImplementedException("Unidentified Language"); 
       } 
     } 
    } 

Естественно, я призываю вас сделать все соответствующие проверки ошибок (Убедитесь, что приведение к ComboBoxItem работает, и т.д ...).

Кроме того, помните, что вам нужно установить CurrentCulture, если вы хотите, чтобы такие вещи, как Dates and Times, отображались в соответствующей локали и использовали CurrentUICulture, если вы хотите изменить ресурсы, которые использует ResourceLoader для заполнения пользовательского интерфейса.

Надеюсь, это должно вас поднять!

- Dante

Смежные вопросы