Pregunta

Creo que varios de nosotros ya hemos trabajado en un proyecto donde no solo la interfaz de usuario, sino también los datos deben ser compatibles en diferentes idiomas. Por ejemplo, poder proporcionar y almacenar una traducción de lo que estoy escribiendo aquí, por ejemplo.

Además, también creo que varios de nosotros tenemos algunos eventos desencadenados por el tiempo (como al expirar el acceso de membresía) donde la ubicación del usuario debe tenerse en cuenta para calcular, como, la medianoche de acuerdo con la zona horaria correcta.

Finalmente, también es necesario admitir interfaces de usuario de derecha a izquierda según ciertos idiomas y el uso de diferentes codificaciones al leer los archivos de datos enviados (por ejemplo, análisis de texto y datos de Excel)

Actualmente estoy almacenando todas mis traducciones para todas mis entidades en una sola tabla (no es tan práctico, ya que es muy difícil encontrarse al hacer consultas sql para buscar un problema), configurando las traducciones de la interfaz de usuario principalmente en ensamblajes satelitales y no admite zonas horarias ni diseño de derecha a izquierda.

¿Cuáles son sus experiencias al enfrentar estos desafíos?

[Editfont>

Asumo que la mayoría de la gente piensa que este nivel de requerimiento multicultural es como construir un gran proyecto. De hecho, si usted piensa en una encuesta en línea donde:

  1. Las respuestas se recopilarán solo hasta medianoche
  2. Definición del cuestionario y parte de las respuestas provienen de un archivo de texto (en cualquier idioma) así como traducciones
  3. Las preguntas y opciones de respuesta deben ser exhibido en varios idiomas, de acuerdo con quién accede a ella
  4. Los informes también deben mostrarse y generado en varios diferentes idiomas

Como se puede ver, no tenemos que ir demasiado lejos en una aplicación para tener este tipo de requisitos.

[Editar2]

Acabo de descubrir que mi pregunta es un duplicado

i18n en sus proyectos

La primera respuesta (cuando ordene por votación) es tan comprensiva que algún día tendré que implementar al menos una parte.

¿Fue útil?

Solución

Sé muy muy cauteloso. Por lo que dice sobre las características de i18n que está tratando de implementar, me pregunto si está excediendo su alcance.

Observe que las aplicaciones web de Big Boy (por ejemplo, eBay, amazon.com, yahoo, bbc) en realidad entregan aplicaciones separadas en cada idioma que desean admitir. Cada una de estas aplicaciones web consume un conjunto básico común de servicios. No se sorprenda si las necesidades comerciales de dos países diferentes que incluso hablan el mismo idioma (por ejemplo, Reino Unido y EE. UU.) Son lo suficientemente diferentes como para que necesite una aplicación separada para cada uno.

Por otro lado, es posible que deba convertirse en el próximo amazon.com. Es difícil entregar una aplicación web exitosa en un idioma, y ??mucho menos en muchos. No debe tener miedo de favorecer a una población de usuarios (por ejemplo, sus hablantes de idioma asiático) sobre otros si esto tiene sentido para las necesidades comerciales de su aplicación web.

Otros consejos

Ve despacio.

Piensa todo, luego piensa realmente en lo que estás haciendo de nuevo. Tenga en cuenta que cuanto más agregue (como de derecha a izquierda), más largo será su ciclo de control de calidad.

La pieza principal de su rompecabezas será el uso extensivo de interfaces en el lado del código, y una fuente de datos que se pasa a través de un traductor a cualquier idioma que sea necesario, o fuentes de datos separadas para cada idioma.

Las interfaces pueden manejar los problemas de tiempo, porque presumiblemente querrá que las cosas funcionen de la misma manera, pero difieren en los detalles de implementación. En gran medida, se puede aplicar un proceso de pensamiento similar a la creación de la interfaz al ajustarla para admitir diferentes idiomas. Cuando te pones a ello, el skinning es exactamente esto, donde el contenido que se está pelando es la interfaz, y la apariencia es la implementación.

Haz lo que tus usuarios necesitan. Por ejemplo, la mayoría de los programadores entienden inglés, no tiene sentido traducir publicaciones en este sitio. Si muchos de sus usuarios necesitan una traducción, agregue una nueva columna de tabla con la identificación del idioma y otra columna para vincular una fila traducida a su original. Si su auditorio objetivo contiene los usuarios de Medio Oriente, implemente de derecha a izquierda. Si la precisión del tiempo es crítica hasta una hora, agregue una columna de zona horaria a la tabla de usuario, y así sucesivamente.

Si está en * NIX, use gettext . La mayoría de los idiomas que he usado tienen cierto nivel de soporte; PHP es bastante bueno, por ejemplo.

Describiré lo que se hizo en mi proyecto (no era mi arquitectura original pero de todos modos me gustó)

Proporcionando soporte de traducción

El texto que debe traducirse se ha dividido en tres categorías diferentes:

  1. Texto de error: errores similares que ocurren en la capa empresarial de aplicaciones
  2. Texto de interfaz de usuario: texto que se muestra en la interfaz de usuario (etiquetas, botones, títulos de cuadrícula, menús)
  3. Texto definido por el usuario: texto que debe ser traducible de acuerdo con las preferencias del usuario final (es decir, el usuario crea una pregunta en una encuesta y también puede crear una versión traducida de esa encuesta)

Para cada categoría diferente, el esquema utilizado para proporcionar el servicio de traducción es diferente, por lo que tenemos:

  1. Texto de error: una biblioteca con funciones estáticas que acceden a archivos de recursos
  2. Texto de la interfaz de usuario: A " Helper " clase que, vinculada al motor de visualización, proporciona traducciones de ensamblajes remotos
  3. Texto definido por el usuario: una tabla en la base de datos que proporciona traducciones (de acuerdo con el tipo de identificación de la entidad traducida y la identificación del objeto) y está vinculada a la entidad a través de una relación 1 x N

Sin embargo, no he atacado los otros problemas obvios, como tratar con zonas horarias, diferentes diseños y traducción de imágenes (si esto es realmente necesario). ¿Alguien ha abordado este problema de una manera diferente?

¿Alguien ha abordado alguna vez los otros problemas de i18n?

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