wpf localization resources resgen

wpf - Combine LocBaml y Resources en ensamblaje de un solo satélite



localization resgen (3)

Entiendo que el enfoque recomendado para la localización en WPF es utilizar la herramienta LocBaml para extraer los elementos localizables en, por ejemplo, un archivo csv, traducir los elementos en el idioma deseado y regenerar un nuevo ensamblaje satélite de este archivo csv. Sin embargo, a partir de mis experimentos esto parece entrar en conflicto con la generación de ensamblajes satelitales de los archivos resources.resx ya que ninguno combina los recursos en el único archivo de recursos, sino que simplemente anula cualquier ensamblaje satelital existente.

¿Existe un enfoque recomendado (o mejor aún, una herramienta existente) para realizar una "combinación" de resultados de LocBaml / generate y el resultado de la ejecución de resgen en un archivo resources.resx (que por defecto es realizado por VS en las compilaciones). ¿Hay alguien por ahí abordando los mismos problemas?


Prefiero usar el proyecto WPF Localization Extension que puede encontrar en codeplex para localizar mi proyecto WPF.

Le permite usar el mismo enfoque que WinForms y es mucho más fácil de usar que LocBaml.


Busqué un poco en Google y encontré esta página que describe algunas formas de usar LocBaml, que incluye una descripción muy detallada sobre cómo combinar recursos .resx y locbaml en un solo archivo (usando al.exe).

Localizando WPF usando LocBaml

La página describe tres formas de usar LocBaml y estaba buscando el último paso en el enfoque 3. Muchas cosas buenas en ese artículo por cierto


Tienes que hacer esto manualmente generando .resources desde LocBaml y luego fusionando los recursos Resx y BAML usando el enlazador Assembly.

El proceso se ve así:

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

(todo en una línea en un archivo por lotes).

Puede poner lo anterior en un archivo por lotes personalizado para su proyecto. Recuerde que LocBaml tiene que estar en la misma carpeta que sus archivos de salida. Puede agregar esto como una tarea de compilación posterior.