2009-11-24 17 views
6

Estoy desarrollando un sitio web multilingüe y la localización se hace principalmente mediante el uso de archivos .resx. Pero ahora necesito permitir a los usuarios con algunos permisos editar archivos de recursos en línea desde el sitio web. ¿Alguien sabe de algún componente existente para ayudar a lograr esto?Componente ASP.NET para editar archivos .resx

Respuesta

6

Lo mejor que puede hacer es pasar a un enfoque impulsado por DB.

Rick Strahl tiene este excelente artículo: Creating a Data Driven ASP.NET Localization Resource Provider and Editor con código fuente libre!

Incluso tiene una función Import por lo que no tiene que volver a traducir el trabajo realizado hasta el momento.

Editar: si insiste en la edición de los archivos XML, este artículo puede ayudar a: Updatable ASP.NET ResX Resource Provider – yes, it’s possible!

+0

Esas parecen excelentes soluciones. ¡Gracias! – Farinha

0

Creo que deberías considerar este paso una vez más. En primer lugar, los archivos resx se compilan en lugar de usarse directamente, por lo que cualquier cambio requiere la recompilación de la página *. La otra cosa es que podría ser una amenaza grave a la seguridad: permite que los usuarios modifiquen los archivos en la carpeta de la aplicación.

* - http://msdn.microsoft.com/en-us/library/ekyft91f%28VS.80%29.aspx

+0

así que supongo que no hay manera "limpia" de acceder a los archivos .resx que no sean simplemente abrirlos estilo de "la vieja escuela", jugar un poco con el XML, y escribirlos en el sistema de archivos de nuevo. Y luego la aplicación descubrirá que se han modificado y los compilará en tiempo de ejecución. Acerca del riesgo de seguridad, los archivos .resx solo contienen cadenas de traducción, y los usuarios que los cambian necesitarán los permisos apropiados. Eso me dejó pensando, ¿podría hacerse un "ataque de inyección" insertando algún código en un archivo .resx? – Farinha

0

Acabo de encontrar esta aplicación Resource Blender que es similar a lo que estaba buscando:

ResourceBlender es una aplicación de traducción de código abierto e internacionalización que ofrece una manera fácil para administrar recursos localizados para la inclusión de con diferentes aplicaciones. Disponible como una aplicación web ASP.NET y una aplicación de escritorio WPF , hace que la localización de las aplicaciones sea muy fácil. ResourceBlender genera recursos localizados en diferentes formatos desde una base de datos central para su inclusión con diferentes aplicaciones .

Las principales características que se ofrecen incluyen:

  • recursos de exportación a archivos .resx .NET, Java .properties, GNU .po/gettext, entidades XHTML y más.
  • Importar/Exportar datos de traducción en hojas de cálculo XML para facilitar la edición.
  • Usa una base de datos de traducciones para mantener las localizaciones sincronizadas.
  • Admite MySQL, SQL Server y SQLite, por lo que no se requiere una base de datos externa.
  • Migre desde archivos .resx o .properties existentes con un asistente de importación.
  • Fácil para traductores y propietarios de proyectos/administradores.
  • Fuente gratuita y de código abierto.
  • Traducción automática automática con Google Translate.
  • Plantillas personalizadas para formatos de recursos.
Cuestiones relacionadas