2008-11-10 1 views
5

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

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

ответ

3

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

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

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 должен находиться в той же папке, что и выходные файлы. Вы можете добавить это как задачу пост-сборки.

1

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

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

0

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

Localizing WPF using LocBaml

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

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