Pregunta

Parece que no existe una buena manera de localizar una aplicación WPF.MSDN parece pensar que llenar mi XAML con x:Uid's, generar archivos CSV y luego generar nuevos ensamblados (¡usando su código de muestra!) es la respuesta.Peor aún, este proceso no aborda cómo localizar imágenes, blobs binarios (por ejemplo, archivos PDF) o cadenas incrustadas en el código.

Entonces, ¿cómo podrías localizar una aplicación que:

  1. Contiene varios ensamblajes.
  2. Contiene imágenes y otros blobs binarios (por ejemplo:documentos PDF) que deben localizarse
  3. Tiene datos de cadena que no están en XAML (por ejemplo: MessageBox.Show("Hello World");)
¿Fue útil?

Solución

No soy un experto aquí, pero "ensuciar" su xaml con x:Uids no es peor que "ensuciar" su código de Windows Forms con todas las tonterías de la tabla de cadenas que tiene que hacer para localizarlas.

Por lo que entiendo, las aplicaciones WPF todavía admiten "todos los recursos del marco CLR que incluyen tablas de cadenas, imágenes, etc.". Lo que significa que puede tener recursos localizados.

Por supuesto, sería mucho más sencillo si creara una extensión de marcado que manejara muchas de estas tonterías por usted. Puedes encontrar un ejemplo de alguien haciendo esto aquí. Y aquí hay otra solución similar.

Otros consejos

Deberías echarle un vistazo al artículo y al código disponibles. aquí.Describe diferentes formas de localizar aplicaciones WPF, utilizando LocBaml, extensiones de marcado personalizadas o propiedades adjuntas.En mi humilde opinión, la mejor solución es utilizar las extensiones de marcado y los recursos de Resx.El código contiene un marco de localización para hacerlo.

Puede utilizar los archivos "ResX" antiguos que admiten todos los escenarios mencionados.Aquí se explica cómo se puede lograr esto en una aplicación WPF:

Marco de aplicación WPF (WAF) => Ver muestra de localización

Pruebe las utilidades Gnu GetText y las aplicaciones de soporte.Lo hace generar C# clases basadas en ResourceManager y ResourceSets y, por supuesto, puede reutilizar las traducciones para otras partes de su aplicación, por ejemplo, páginas web, código nativo o iPhone, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top