Пример локализации гибридного приложения
Обновлен: Ноябрь 2007
В данном руководстве показано, как локализовать элементы WPF в гибридном приложении, основанном на Windows Forms.
В этом пошаговом руководстве, в частности, рассматриваются следующие задачи:
Создание ведущего проекта Windows Forms.
Добавление локализуемого содержимого.
Включение локализации.
Назначение идентификаторов ресурса.
Использовать средства LocBaml для создания вспомогательных сборок.
Полный пример кода для задач, приведенных в этом обзоре, см. в разделе Пример локализации гибридного приложения.
Закончив, вы получите локализованное гибридное приложение.
Примечание. Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска. Чтобы изменить параметры, в меню Сервис выберите команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты.
- Visual Studio 2008.
Создание ведущего проекта Windows Forms
Первым шагом является создание проекта приложения Windows Forms и добавление элемента WPF с содержимым, которое будет локализовано.
Для создания ведущего проекта
Создайте проект приложения WPF с именем LocalizingWpfInWf. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта приложения Windows.
Добавьте элемент WPFUserControl, вызванный SimpleControl, к проекту.
Используйте элемент управления ElementHost для размещения элемента SimpleControl на форме. Дополнительные сведения см. в разделе Пошаговое руководство. Размещение составного элемента управления Windows Presentation Foundation в Windows Forms.
Добавление локализуемого содержимого
Далее, добавьте элемент управления Windows Forms Label и установите содержимое для элемента управления WPF в значение локализуемой строки.
Чтобы добавить локализуемое содержимое
В обозревателе решений дважды щелкните SimpleControl.XAML, чтобы открыть его в WPF (конструктор).
Установите содержимое элемента управления Button с помощью следующего кода.
В обозревателе решений дважды щелкните Form1, чтобы открыть его в конструкторе Windows Forms.
Откройте Панель элементов и дважды щелкните значок Label, чтобы добавить в форму элемент управления Label. Задайте его свойству Text значение "Hello".
Нажмите клавишу F5 для построения и выполнения приложения.
Элемент SimpleControl и элемент управления Label отобразят текст "Hello".
Включение локализации
Конструктор Windows Forms предоставляет параметры для включения локализации во вспомогательной сборке.
Чтобы включить локализацию
В Solution Explorer щелкните дважды по Form1.cs, чтобы открыть его в конструкторе Windows Forms.
В окне свойств задайте свойству формы Localizable значение true.
В окне свойств задайте свойствуLanguage значение Spanish (Spain).
В конструкторе Windows Forms выберите элемент управления label.
В окне Properties установите значение Text характеристика "Hola".
Новый файл ресурсов с именем Form1.es-ES.resx добавляется в проект.
В обозревателе решений щелкните правой кнопкой мыши на Form1.cs и нажмите кнопку Просмотреть код, чтобы открыть его в редакторе кода.
Скопируйте следующий код в конструктор Form1, предшествующий вызову InitializeComponent.
В обозревателе решений щелкните правой кнопкой мыши на LocalizingWpfInWf и нажмите кнопку Выгрузить проект.
Имя проекта помечается (недоступно).
Щелкните правой кнопкой мыши на LocalizingWpfInWf и выберите команду Изменить LocalizingWpfInWf.csproj.
Файл проекта открывается в редакторе кода.
Скопируйте следующую строку в первую PropertyGroup в файле проекта.
<UICulture>en-US</UICulture>
Сохраните файл проекта и закройте его.
В Solution Explorer правой кнопкой мыши щелкните по LocalizingWpfInWf и щелкните по перегрузить проект.
Назначение идентификаторов ресурса
Можно сопоставить локализуемое содержимое со сборками ресурсов с помощью идентификаторов ресурсов. Приложение MsBuild.exe автоматически устанавливает идентификаторы ресурсов при указании параметра updateuid.
Чтобы назначить идентификаторы ресурса
Из меню Пуск откройте командную строку Visual Studio.
Используйте следующую команду для назначения идентификаторов ресурсов вашему локализуемому содержимому.
msbuild /t:updateuid LocalizingWpfInWf.csproj
В обозревателе решений дважды щелкните на SimpleControl.XAML, чтобы открыть его в редакторе кода. Вы увидите, что команда msbuild добавила атрибут Uid ко всем элементам. Это облегчает локализацию через назначения идентификаторов ресурсов.
Нажать клавишу F6 для построения решения.
Использование LocBaml для производства вспомогательных сборок
Локализованное содержимое хранится только во вспомогательной сборке ресурсов. Используйте средство командной строки LocBaml.exe для производства локализованной сборки для содержимого WPF.
Для создания вспомогательной сборки
Скопируйте LocBaml.exe в каталог проекта obj\Debug. Дополнительные сведения см. в разделе Практическое руководство. Локализация приложения.
В окне командной строки используйте следующую команду для извлечения строк ресурса во временный файл.
LocBaml /parse LocalizingWpfInWf.g.en-US.resources /out:temp.csv
Откройте файл temp.csv с Visual Studio или другим текстовым редактором. Замените строку "Hello" на ее испанский перевод, "Hola".
Сохраните файл temp.csv.
Используйте следующую команду для создания локализованного файла ресурса.
LocBaml /generate /trans:temp.csv LocalizingWpfInWf.g.en-US.resources /out:. /cul:es-ES
Файл LocalizingWpfInWf.g.es ES.resources создается в папке obj\Debug.
Используйте следующую команду для построения локализованной вспомогательной сборки.
Al.exe /out:LocalizingWpfInWf.resources.dll /culture:es-ES /embed:LocalizingWpfInWf.Form1.es-ES.resources /embed:LocalizingWpfInWf.g.es-ES.resources
Файл LocalizingWpfInWf.resources.dll создается в папке obj\Debug.
Скопируйте файл LocalizingWpfInWf.resources.dll в папку проекта bin\Debug\es-ES. Замените существующий файл.
Запустите LocalizingWpfInWf.exe, который находится в папке проекта bin\Debug. Не перестраивайте приложение или вспомогательную сборку во время перезаписи.
Приложение показывает локализованные строки вместо английских строк.
См. также
Задачи
Пошаговое руководство. Локализация форм Windows Forms
Основные понятия
Практическое руководство. Локализация приложения