Как реализовать локализацию в Windows Presentation Foundation (WPF)? - PullRequest
2 голосов
/ 07 октября 2008

Расскажите, пожалуйста, о том, как вы локализовали свои приложения WPF для поддержки нескольких языков и любых ресурсов, которые вам в этом помогли?

Спасибо за ваши отзывы.

Ответы [ 3 ]

3 голосов
/ 12 марта 2009

Для нашего приложения WPF все наши строки локализованы как ресурсы в ResourceDictionary, который мы помещаем в файл .xaml, названный по имени языка (например, en-US.xaml, ja-JP.xaml и т. Д.).

Например, где-то в приложении кнопка может выглядеть так:

<Button Content="{StaticResource Strings.FooDialog.BarButtonText}"/>

Каждый ResourceDictionary для разных языков будет содержать его версию:

<sys:String x:Key="Strings.FooDialog.BarButtonText">Bar!</sys:String>

ResourceDictionary динамически подключается к Application.Resources во время выполнения следующим образом:

private static void LoadLocalizedStrings(CultureInfo uiCulture)
{
   ResourceDictionary stringsResourceDictionary = new ResourceDictionary();
   stringsResourceDictionary.Source = new Uri(@"pack://application:,,,/Resources/Strings/" + uiCulture.Name + ".xaml");
   Application.Current.Resources.MergedDictionaries.Add(stringsResourceDictionary);
}
0 голосов
/ 11 апреля 2011

Я только что успешно локализовал свое приложение WPF, используя ResourceDictionary. Метод, который я использовал, позволяет динамически менять языки, легко переводить, поддерживать во время разработки и даже позволяет выполнять частичные переводы. Я основал свою работу на http://www.geektieguy.com/2006/12/12/localizing-an-xbap-application-without-using-locbaml/

Вы можете частично увидеть мои усилия по адресу: Привязка исходного кода ResourceDictionary к модулю (для локализации)

0 голосов
/ 08 октября 2008

Извините, если это расплывчато (вопрос выше), в основном это о том, как вы реализовали это в своем приложении и что, по вашему мнению, было лучшим способом. Это в основном для понимания сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...