¿Cómo generar satélites en plena ejecución?
Publicado por Eduard Pascual (3 intervenciones) el 10/08/2008 01:47:38
Esta cuestión nos está trayendo cola en los foros ingleses de MSDN (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=3707635&SiteID=1) y he pensado que tal vez alguien de por aquí sepa dar con la solución.
El OBJETIVO: permitir al usuario final de una aplicación crear su propia traducción.
La IDEA: El proyecto (que de por sí ya va localizado a unos cuantos idiomas) incluye una interfaz para que el usuario introduzca sus traducciones a su idioma, y código para generar los archivos .resx apropiados para el nuevo idioma. A continuación compilaríamos estos .resx a .dll, movemos las dll al directorio adecuado, y el sub-sistema de localización del .NET se ocupa del resto.
El PROBLEMA: El único punto que queda por resolver es el de compilar los .resx a .dll. Hemos encontrado una solución (http://thoughtpad.net/alan-dean/satellite-assemblies.html) que tira de RESGEN (para pasar de .resx a .resources) y de AL (para generar los .dll desde los .resources); pero no nos sirve: estas herramientas forman parte del SDK, y no hay razón alguna para asumir que el usuario lo tendrá instalado.
De todos modos, sabemos que el .Net incluye la funcionalidad de los compiladores de C# y VB en las clases Microsoft.CSharp.CSharpCodeProvider y Microsoft.VisualBasic.VBCodeProvider; así que cabe esperar que también estas herramientas más secundarias también sean "emulables" desde la librería.
En fin, parece que la gente cada vez controla más sobre .Net; pero el espacio System.CodeDom y sus "parientes cercanos" siguen siendo un punto oscuro, a pesar del immenso potencial que aportan.
Saludos; y gracias de antemano por cualquier solución y/o sugerencia que podáis aportar sobre el tema.
El OBJETIVO: permitir al usuario final de una aplicación crear su propia traducción.
La IDEA: El proyecto (que de por sí ya va localizado a unos cuantos idiomas) incluye una interfaz para que el usuario introduzca sus traducciones a su idioma, y código para generar los archivos .resx apropiados para el nuevo idioma. A continuación compilaríamos estos .resx a .dll, movemos las dll al directorio adecuado, y el sub-sistema de localización del .NET se ocupa del resto.
El PROBLEMA: El único punto que queda por resolver es el de compilar los .resx a .dll. Hemos encontrado una solución (http://thoughtpad.net/alan-dean/satellite-assemblies.html) que tira de RESGEN (para pasar de .resx a .resources) y de AL (para generar los .dll desde los .resources); pero no nos sirve: estas herramientas forman parte del SDK, y no hay razón alguna para asumir que el usuario lo tendrá instalado.
De todos modos, sabemos que el .Net incluye la funcionalidad de los compiladores de C# y VB en las clases Microsoft.CSharp.CSharpCodeProvider y Microsoft.VisualBasic.VBCodeProvider; así que cabe esperar que también estas herramientas más secundarias también sean "emulables" desde la librería.
En fin, parece que la gente cada vez controla más sobre .Net; pero el espacio System.CodeDom y sus "parientes cercanos" siguen siendo un punto oscuro, a pesar del immenso potencial que aportan.
Saludos; y gracias de antemano por cualquier solución y/o sugerencia que podáis aportar sobre el tema.
Valora esta pregunta


0