2009-06-29 10 views
10

Buscando algún consejo sobre la mejor forma de implementar la localización junto con la jerga específica del cliente en un sitio asp.net que será utilizado por varios clientes.Cultura personalizada para verbosidad específica del cliente?

Por ejemplo, las etiquetas de un formulario deben variar según el cliente que haya iniciado sesión en el sitio, así como su preferencia de idioma.

De modo que habrá un conjunto predeterminado de verbos/jerga para cada cliente ... y luego la jerga de cada cliente/jerga se traducirá a los idiomas que requiera.

Estaba pensando en crear una cultura personalizada para cada cliente y luego usar las características de localización "incorporadas" en asp.net y en los archivos de recursos.

Así que podría tener una cultura predeterminada ... y luego culturas específicas del cliente ... y luego culturas específicas del cliente traducidas a otros idiomas.

es-

de-DE

en-US-cliente1

en-US-client2

de-DE-cliente1

de-DE-client2

¿Esto suena loco? parece ser un enfoque bastante sensato para mí ... pero también tal vez un poco complicado ... ¿así que recibo mejores ideas?

¡Gracias a todos por la ayuda!

+1

Sólo curiosidad, ¿qué terminaste haciendo? Estoy en el mismo barco, y tengo curiosidad si tiene algún problema con este enfoque (ya que parece la manera más lógica de hacerlo). Además, ¿tiene algún ejemplo/código de cómo usó esto en sus páginas? Tengo curiosidad de cómo ASP.net manejado cargando el archivo de recursos correcto con los nombres no estándar. – rocketmonkeys

+0

Hice exactamente lo que se describió anteriormente y funcionó de maravilla. Llegamos a escribir a nuestro propio proveedor para reemplazar los archivos de recursos con tablas de la base de datos ya que uno de los requisitos era que los usuarios finales tuvieran que poder actualizar las traducciones a través de pantallas. Un montón de doc en el más adelante en msdn. – Todd

+0

¿Cómo terminaste especificando qué cultura "usar"? Quiero hacer lo mismo y especificar una cultura personalizada en Web.config pero no tuve suerte. Publiqué una pregunta similar, aquí: http://stackoverflow.com/questions/17217098/how-to-specify-a-custom-culture –

Respuesta

5

En realidad no lo es, es un enfoque común. Lo he visto bastantes veces para tiendas de comercio electrónico donde la tienda central es una etiqueta blanca genérica.

Es agradable porque ASP.NET compatible con la localización de la lata en lugar de tener que rodar su propio ajuste de texto en cada petición zurcido, el recorte de estado de vista de eso, la gestión de almacenamiento en caché, etc.

Y no se olvide La información específica de la cultura no tiene que estar en un archivo de recursos, it can come from a database too.

2

Sí, está un poco loco. Pero solo un poco. ASP.NET solo admitirá automáticamente la localización hasta y hasta el idioma y la configuración regional. Le recomendaría que deje que haga eso para las áreas que no son específicas de ningún cliente.

Para etiquetas específicas del cliente, recomendaría que combine el uso de controles de usuario junto con código subyacente para seleccionar el texto correcto de su archivo de recursos (si usa VS, utilice su soporte integrado) para gestionar recursos), y quizás con el caché ASP.NET (tal vez la directiva @Cache) si tiene combinaciones limitadas de qué atributos se pueden usar para seleccionar texto específico del cliente.

Su enfoque puede parecer un poco menos manual, pero es más probable que genere problemas que demorarán tanto o más tiempo en la depuración, y también enfrentará desafíos con la compatibilidad en lanzamientos futuros de .NET.

Cuestiones relacionadas