Объедините LocBaml и Ресурсы в единую спутниковую сборку

StackOverflow https://stackoverflow.com/questions/278121

Вопрос

Насколько я понимаю, рекомендуемый подход к локализации в WPF заключается в использовании инструмента LocBaml для извлечения локализуемых элементов, например, в. CSV-файл, перевести элементы на нужный язык и восстановить новую сборку спутника из этого CSV-файла. Однако из моих экспериментов это, кажется, вступает в конфликт с генерацией спутниковых сборок из файлов resources.resx, поскольку ни одна из них не объединяет ресурсы в один файл ресурсов, а просто переопределяет любую существующую спутниковую сборку.

Есть ли рекомендуемый подход (или, что еще лучше, существующий инструмент) для выполнения " слияния " вывода из LocBaml / generate и вывода запуска resgen для файла resources.resx (который по умолчанию выполняется VS при сборке). Кто-нибудь там занимается такими же проблемами?

Это было полезно?

Решение

Вы должны вручную выполнить генерацию .resources из LocBaml, а затем объединить ресурсы Resx и BAML с помощью компоновщика Assembly.

Процесс выглядит примерно так:

LocBaml.exe /generate ..\obj\WpfLocalization.g.en-US.resources 
            /trans:Res\de.csv /out:de /culture:de

REM Combine resource files w/ Assembly Linker
al /template:WpfLocalization.exe 
   /embed:de\WpfLocalization.g.de.resources 
   /embed:..\..\obj\WpfLocalization.Properties.Resources.de.resources   
   /culture:de  /out:de\WpfLocalization.resources.dll

(все в одной строке в командном файле).

Вы можете поместить вышеперечисленное в пакетный файл, настроенный для вашего проекта. Помните, что LocBaml должен находиться в той же папке, что и ваши выходные файлы. Вы можете добавить это как задачу посткомпоновки.

Другие советы

Я предпочитаю использовать проект Расширение локализации WPF , который вы можете найти в codeplex , чтобы локализовать мой проект WPF.

Он позволяет использовать тот же подход, что и WinForms, и намного проще в использовании, чем LocBaml.

Немного погуглил и нашел эту страницу, описывающую несколько способов использования LocBaml, в которой приведено очень подробное описание того, как объединить сгенерированные ресурсы resources.resx и locbaml в один файл (используя al.exe).

Локализация WPF с использованием LocBaml

На странице описаны три способа использования LocBaml, и я искал последний шаг в подходе 3. Кстати, много полезного в этой статье

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top