2013-10-03 6 views
2

Я собираюсь изменить язык своего приложения.Как перезапустить приложение?

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); 
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; 

но проблема в том, что ему необходимо перезапустить приложение. Возможно ли перезапустить приложение? (или можно изменить язык без перезапуска?)

+0

Зачем вам запускать приложение в другой культуре, кроме телефона? Однако проверьте, добавлено ли fr-FR в качестве Поддерживаемой культуры в файле манифеста –

ответ

4

Невозможно принудительно перезапустить приложение, а также изменить язык запущенного приложения довольно сложно. Вот что я хотел бы сделать:

  1. По умолчанию к культуре Осса (стандартное поведение)
  2. Если требуется, чтобы пользователь мог изменить язык в приложении и убедитесь, что переопределение происходит в App.xaml.cs constructor
  3. Если пользователь меняет язык, который часто встречается не часто, отобразите всплывающее окно, в котором объясняется, что требуется перезагрузка приложения. Это подход, который я принял в нескольких приложениях, и пользователи отлично справляются с этим решением. Это экономит огромные усилия по изменению языка «на лету»

Удачи вам и сообщите нам, что вы в итоге сделали!

+0

, это должно быть так. У меня такая же проблема. Мой язык приложения может быть изменен отдельно от языка телефона, поэтому я просто объявил ключ изолированного ключа для языка. мой вопрос в том, где и какой объект я должен инициализировать с помощью строки типа «ar-SA», которая будет работать во всем приложении при следующем запуске приложения. – LojiSmith

+0

Мне нужно инициализировать объект appManager, который статически ставится в классе appResource? – LojiSmith

0

Насколько я знаю, вы не можете изменить язык без перезапуска, избегая при этом дополнительного кода. Существует example о том, как это сделать без перезагрузки, но здесь ситуация становится немного сложнее.

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