Может быть, установка в App.xaml.cs, как показано ниже, поможет
Windows.Globalization.ApplicationPreferences.PreferredLanguage = "no";
Где "нет" - это языковой тег BCP47 для норвежского языка.
Обновление : изменение языка приложения Metro во время выполнения
Согласно Windows 8 SDK образец «Ресурсы приложений и локализация»
Возможно, что во время работы приложения язык, масштаб, контраст или другие параметры могут измениться. Для обработки этих событий слушатели событий должны быть зарегистрированы, чтобы прослушивать и реагировать на изменения. Это можно сделать либо путем сохранения состояния и обновления страницы, либо путем перерисовки определенных ресурсов.
Теперь в моем событии выбора смены языка я устанавливаю PreferredLanguage как:
Windows.Globalization.ApplicationPreferences.PreferredLanguage = "en";
this.Frame.Navigate(this.GetType());
И ключевая вещь, которую я пропустил, это код ниже в событии OnLaunched приложения:
ResourceManager.Current.DefaultContext.QualifierValues.MapChanged += async (s, m) =>
{
if (m.Key == "Language")
{
// react to language change
}
};
Я не поместил эту регистрацию события в создатель страницы или событие какой-либо страницы (как в примере SDK), потому что тогда его можно было зарегистрировать несколько раз.
Тем не менее, это событие должно быть зарегистрировано где-то, чтобы изменение языка вступило в силу во время выполнения.