2011-04-03 9 views
5

Tenemos que crear un sitio web de registro de eventos para nuestro cliente en ASP.NET usando C#. Uno de los requisitos es que el cliente desee agregar nuevos idiomas extranjeros a su sitio web usando el archivo excel. Sé cómo hacer un sitio web multilingüe en Visual Studio, pero no tengo idea de cómo generar un archivo de recursos basado en un archivo de Excel en código. También noté que VS genera un segundo archivo llamado Resource.en.designer.cs pero no encuentro ninguna documentación sobre cómo generar ese archivo.El usuario final desea agregar idiomas dinámicamente a su sitio web

Por cierto, el usuario final no tiene nada que ver con la TI. Sin embargo, conoce su camino alrededor de Excel (obviamente).

¡Se agradece cualquier ayuda!

Yoeri

EDIT:! Robert Levy proporciona un buen método! Cómo:

PASO 1: Lea el archivo de Excel (usando un OleDBAdapter fue el mejor método para mí, ya que puede utilizar los encabezados de columna, etc) escribir el idioma a un archivo txt en este formato: CLAVE = TRADUCCIÓN sin espacios o cualquier otra cosa

PASO 2: Localizar Resgen.exe en su ordenador (que viene con visual Studio, así que busca un lugar como c: \ archivos de programa \ visual Studio \ SDK ... sin embargo me encontré @ C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ ResGen.exe)

STEP 3:

invocar el exe con Process.Start ("Resgen.exe") pista: utilizar ProcesStartInfo para facilitar la discusión y valores de Preferencias

(PASO 4 :)

Mueva el archivo a su ubicación deseada (encuentro las App_GlobalResources funciona perfectamente)

PASO 5:

Ajuste el CurrentUICulture usuario a su cultura deseada!

+1

sehe - ¿eh? esta es claramente una pregunta de codificación –

Respuesta

2

Resgen.exe compilará los archivos de recursos para usted. Puede hacer que entregue archivos de texto en el formato utilizado por esa herramienta o escribir su propio código que extraiga de Excel para generar los archivos de texto. A continuación, invoque este EXE e implemente la DLL de recursos recién generada. Supongo que ya sabes cómo leer cosas de los archivos de recursos y usar la adecuada según las preferencias del usuario.

http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx

+1

Nunca he invocado un exe del código, pero sugiero que hay mucha información para hacerlo por aquí. Definitivamente lo investigaré. Gracias! – Yoeri

+1

@yoeri - sí, cosas fáciles. solo mire los diversos métodos de inicio estáticos en la clase de proceso http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx –

+0

nice. nadie más realmente respondió la pregunta, pero también terminé con un voto negativo de alguna manera. –

-1

Debe preguntarle a su usuario final si realmente tiene que obtener otro idioma 'sobre la marcha' y cuántos idiomas esperan que vayan a agregar.

De lo contrario, enviar por correo electrónico el archivo de Excel para usted y crear manualmente el archivo de recursos podría ser, con mucho, la solución más barata ....

+0

Lo sé, admitió que no lo usará mucho, pero realmente lo quiere. – Yoeri

+1

Eso está bien, es un requisito. Solo tiene que mostrarle el costo y preguntarle si necesita estar dentro del alcance y facturar en consecuencia. –

+0

El costo no le importa. Definitivamente debe estar en el alcance. Créanme, traté de hablar con él para ver alternativas (como enviarme el sobresaliente o cualquier otra cosa), pero él es muy terco. – Yoeri

1

Esta es, probablemente, un lugar donde le gustaría utilizar los recursos de la base de datos en lugar de archivos resx simples. Sería más fácil simplemente llenar las tablas de la base de datos con datos de Excel que transformarlas en archivos resx estándar (podría ser un problema en el futuro si MS decidiera modificar el formato del archivo).

Así que le sugiero que escriba su propio ResourceReader which would load strings from database (también podría cargarlo directamente desde Excel, pero por muchas razones no recomendaría este método).

+0

usando ResGen demostró ser mucho más rápido: p – Yoeri

Cuestiones relacionadas