2010-12-12 10 views
7

Hay varias formas de hacerlo, puedo definir todo el elemento de texto y cargar la cadena de localización json desde javascript, y usar algunos javascript para reemplazar el texto para que lo haga ... Además, compruebo que hay alguna otra manera para hacerlo también Por ejemplo, algunos utilizan plataforma depende mucho de eso. Por ejemplo, el J2EE tiene su propia manera de implementarlo. Además, puedo crear una página separada para cada idioma.¿Cómo hacer la localización en la aplicación web?

Pero, ¿hay alguna forma de hacer la localización flexible o sugerida? Gracias.

Respuesta

15

Me parece que lo que realmente está pidiendo es: ¿Cómo implementar Localizability correctamente? O cómo programar para facilitar la localización de una aplicación.

Esto es en realidad una pregunta relacionada con la internacionalización. Hay varias cosas que hay que tener en cuenta con el fin de hacer que su aplicación fácil de localizar:

  • No codificar cadenas (que uno es evidente)
  • No codificar información de estilo (no utilizar etiquetas de formato como <b>, <i>, <fuerte>, etc., no use esto: <p style="font-weight: bold;color: green;">Success!</p>). Esto evitará que los chicos de localización los modifiquen (es decir, eliminar texto en negrita de las traducciones CJKV)
  • Evite el uso de mensajes compuestos (como "Función [A, B, C] hace [a, b, c]"). Son bastante difíciles de traducir correctamente. Si no tiene muchas variables, no hará daño agregar algunas cadenas más de recursos.
  • No concatenar los mensajes compuestos, ya sea con el operador de concatenación o simplemente mediante la colocación de cuerdas junto a la otra (es decir, no hace esto: String message = "Function " + function + " does " + whatItDoes; o esto: #{['something']}<a href="whatever">#{['some_link']}</a>#{['something_else']}), el uso de formato en lugar (es decir MessageFormat.format("Hello, {0}. You have {1} new messages.", name, mailCount);). Esto no permitirá que el traductor reordene la oración y podría ser necesaria debido a las reglas de gramática del idioma del objetivo.
  • No utilice marcadores de posición sin formato (como% s% i% u) si tiene más de uno de ese tipo en una oración (en realidad es mejor usar marcador de posición numerado como {0}, {1} en su lugar). De nuevo, a veces los traductores necesitan reordenar la oración ...
  • No use construcciones de lenguaje específicas para inglés (es decir, "Paweł's dashboard" donde Paweł es un nombre que proporcioné durante el registro).No hay manera de traducir correctamente a varios idiomas

También, hay cosas que hacer:

  • sí proporcionan mecanismo de estilo de hoja de anulación (de modo que los chicos de localización podrían modificar el estilo del elemento)
  • Asigne una ID única para cada elemento de la página HTML procesada (esto les permitirá orientar el control exacto con su estilo reemplazado)
  • Utilice la codificación UTF-8 siempre que pueda (obviamente páginas HTML, correos electrónicos si los hay, pero posiblemente recurso archivos [es decir, propiedades] también)

hay mucho más cosas no relacionadas con la capacidad de localización, como el flujo de trabajo de detección de idioma, el formato y los números, monedas, fechas (incluyendo el establecimiento de zonas horarias apropiadas) que tendría que preocuparse de solicitud debidamente globalizado validación, pero que en realidad historia diferente.

2

Casi todos los marcos de desarrollo web decentes tienen una noción de "paquetes de recursos" localizados. Solo asegúrese de que tiene un paquete de recursos para cada idioma admitido por su aplicación, en el que cada uno de ellos usa la misma "clave" para referirse a una cadena localizada. Solo use las facilidades provistas por el framework/lenguaje para cargar el texto del paquete basado en la "clave" y usted debería estar listo para comenzar.

En lo que respecta a la detección de localización, hay dos formas de hacerlo; autodetección, que es un mecanismo bastante común utilizado por las aplicaciones web y mecanismo basado en la selección que utiliza una combinación de autodetección junto con un menú desplegable de configuración regional proporcionado al usuario.

Los pasos específicos serían específicos del lenguaje/marco, por lo que es posible que desee mencionar el marco que está utilizando para respuestas específicas.

0

Por otro lado, si realmente está preguntando cómo extraer recursos traducibles, tengo que venir con una respuesta totalmente diferente.

No utilizaría la página por idea de idioma. Podría ser bueno si tiene pocas páginas web estáticas. Cuando crea una aplicación web dinámica, especialmente si hay alguna posibilidad de un rápido crecimiento en términos de tamaño del contenido, esto lo matará. Y no podrá agregar nuevos idiomas de manera fácil.

La localización en el lado del cliente dará como resultado una aplicación terriblemente lenta, no lo haga. La gente lo odiará

Por último pero no menos importante: forma típica de implementarlo (no es la mejor palabra aquí porque tiene muchos otros significados) la localización es simplemente extraer cadenas a algunos archivos de recursos (es decir, ResourceBundle en el mundo Java) y mantenerlos en una jar separado (Sugeriría un jar por idioma nombrado de acuerdo con el identificador de locale, es decir, el archivo ja.jar, de.jar, fr-CA.jar). El archivo jar también debe contener un archivo CSS adicional (cuyo contenido se usaría para anular ciertos estilos). Todo lo demás lo encontrarás en mi respuesta anterior ...

Cuestiones relacionadas