2008-10-01 12 views
29

Internacionalizar aplicaciones web siempre parece ser una tarea ardua. No importa cuánto planifique en adelante para los idiomas enchufables, siempre hay problemas con la codificación, el fraseo funky que no se ajusta a sus plantillas y otros problemas.¿Mejores prácticas para internacionalizar aplicaciones web?

Creo que sería útil obtener la entrada de la comunidad SO para un conjunto de cosas que los programadores deberían tener en cuenta al momento de decidir internacionalizar sus aplicaciones web.

Respuesta

0

Tengo un par de aplicaciones que son "bilingües" Solía ​​archivos de recursos en ASP.NET1.1

También hay algo que se llama la herramienta recurso de cadena Básicamente se ponen todas sus cadenas en un archivo .RES para los dos idiomas y luego determinar qué archivo a leer desde basa en cultura o si alguien hace clic en un vínculo para el lenguaje

el mayor Gotcha es asegurarse de que las traducciones son realizadas correctamente

9

en mi empresa se almacenan todas nuestras cadenas en archivos * .properties. Nuestras herramientas de construcción construyen una copia "languange prueba" de los archivos de propiedades, que sustituyen a una cadena como esta:

Click here 

con algo como esto:

[~~ Çļïčк н∑ѓё ~~ タウ ~~] 

Ahora, cuando nos fijamos el lenguaje para " prueba "en nuestros archivos de configuración, estos archivos de propiedades se utilizan. (Y, por supuesto, no enviamos los archivos de idioma de prueba).

Esto nos permite:

  1. Asegúrese de que los caracteres Unicode se muestran correctamente, incluyendo/coreano japonés/chino.
  2. Asegúrese de que el diseño se adapta correctamente a los idiomas con palabras más largas (en particular, el alemán tiene palabras más largas en promedio que el inglés).
  3. Detecta cualquier cadena codificada (como será en inglés).

En cuanto a la traducción real, esto se hace por traductores profesionales, no por desarrolladores.

+2

Esto se llama [pseudolocalization] (http://en.wikipedia.org/wiki/Pseudolocalization). – Gan

+0

Java está loco cuando se trata de l18n; el almacenamiento predeterminado para las traducciones son archivos .properties, uno de los pocos formatos de archivos Java que [no admite Unicode] (http://stackoverflow.com/a/4660195/286685) ¡listos para usar! –

45

La internacionalización es difícil, aquí hay algunas cosas que he aprendido de trabajar con 2 sitios web que estaban en más de 20 idiomas diferentes:

  • Uso UTF-8 en todas partes. Sin excepciones. HTML, lenguaje del lado del servidor (cuidado especialmente con PHP), base de datos, etc.
  • No hay texto en las imágenes a menos que desee un montón de trabajo. Use CSS para colocar texto sobre las imágenes si es necesario.
  • Separar la configuración de la localización. De esta manera, los localizadores pueden traducir el texto y puede tratar con diferentes configuraciones por localidad (características, diseño, etc.). No desea que los localizadores tengan la capacidad de meterse con su aplicación.
  • Asegúrate de que tus diseños puedan tratar con texto que es 2-3 veces más largo que el inglés. Y también un 50% menos que en inglés (el japonés y el chino a menudo son más cortos).
  • Algunos idiomas necesitan tamaños de fuente más grandes (japonés, chino)
  • Los colores también son específicos de la configuración regional.¡Rojo y verde no significan lo mismo en todas partes!
  • Agregue un nombre de clase que sea el nombre de la localidad a la etiqueta del cuerpo de sus documentos. De esta forma, puede especificar fácilmente el diseño de una configuración regional específica en su archivo CSS.
  • Tenga cuidado con la sustitución de variables. No separe las cuerdas. Déjelos enteros así: "Tiene X nuevos mensajes" y reemplace la "X" con el #.
  • Diferentes idiomas tienen pluralización diferente. 0, 1, 2-4, 5-7, 7-infinito. Es difícil de tratar.
  • El contexto es difícil. A veces los localizadores necesitan saber dónde/cómo se usa una cadena para asegurarse de que se traduzca correctamente.

Recursos:

+0

Me doy cuenta de que esto es viejo. Estas son buenas sugerencias que tendré en cuenta. ¿Puedes proporcionar un ejemplo específico de esto en uso? – Joshua

1

Como una persona Inglés viven en el extranjero me he convertido en frustrado por el enfoque de muchas aplicaciones web para la internacionalización y tienen blogged about my frustrations.

Mis consejos serían:

  • pensar en cómo mostrar una versión internacional de una página
  • utilizando geolocalización podría funcionar para muchos usuarios, pero como mis ejemplos muestran que para muchos no lo harán
  • ¿por qué no utilizar el encabezado Aceptar idioma para determinar qué idioma atender
  • si un usuario accede a una página a través de un motor de búsqueda y luego no los redirecciona a otro lugar, por ejemplo? a una página web en un idioma diferente
  • que es muy molesto para cambiar el idioma y tienen una recarga de página diferente - ya sea servir a la misma página o avisar al usuario de que el contenido actual no está disponible en un idioma diferente antes de su reorientación
  • Inglés es un lenguaje muy común, por lo que quizás DEFAULT para que
  • pero asegúrese de que la opción de cambio de lenguaje es claro en la interfaz gráfica de usuario (me gusta lo que Google Maps están haciendo, como se muestra en el post)

Todo lo que veo en la Web es que las empresas se equivocan de internalización. Hacerlo bien desde la perspectiva de un usuario es realmente complicado.

Cuestiones relacionadas