Me pregunto cómo tratar la internacionalización en JavaScript. Busqué en Google pero no obtengo respuestas convincentes para:
- ¿JavaScript tiene soporte nativo para la internacionalización?
- ¿Qué es i18n en JavaScript?
- ¿Cómo lidiar con calendarios, monedas, fechas, etc.?
Ya he leído Internacionalización dentro de JavaScript .
javascript
internationalization
rajakvk
fuente
fuente
Respuestas:
El soporte de localización en navegadores heredados es deficiente. Originalmente, esto se debió a frases en la
ECMAScript
especificación del lenguaje que se ven así:Cada método de localización definido en la especificación se define como "dependiente de la implementación", lo que resulta en muchas inconsistencias. En este caso, Chrome Opera y Safari devolverían lo mismo que
.toString()
. Firefox e IE devolverán cadenas con formato local, e IE incluso incluye un separador de mil (perfecto para cadenas de divisas). Chrome se actualizó recientemente para devolver una cadena separada por miles, aunque sin un decimal fijo.Para entornos modernos , la especificación de API de internacionalización ECMAScript , un nuevo estándar que complementa la especificación del lenguaje ECMAScript, proporciona un soporte mucho mejor para la comparación de cadenas, el formato de números y el formato de fecha y hora; También corrige las funciones correspondientes en la especificación de idioma. Una introducción se puede encontrar aquí . Las implementaciones están disponibles en:
También hay una implementación de compatibilidad, Intl.js , que proporcionará la API en entornos donde aún no existe.
Determinar el idioma preferido del usuario sigue siendo un problema, ya que no hay especificaciones para obtener el idioma actual. Cada navegador implementa un método para obtener una cadena de idioma, pero esto podría basarse en el idioma del sistema operativo del usuario o solo en el idioma del navegador:
Una buena solución para esto es volcar el encabezado Accept-Language del servidor al cliente. Si se formatea como JavaScript, se puede pasar a los constructores de API de internacionalización, que elegirán automáticamente la mejor configuración regional (o la primera admitida).
En resumen, debe realizar una gran parte del trabajo usted mismo o utilizar un marco / biblioteca , porque no puede confiar en que el navegador lo haga por usted.
Varias bibliotecas y complementos para localización:
Siéntase libre de agregar / editar.
fuente
Mozilla lanzó recientemente el impresionante L20n o localización 2.0. En sus propias palabras, L20n es
Su implementación js está en el repositorio github L20n.
fuente
Algunos son nativos, el resto está disponible a través de bibliotecas.
Por ejemplo, Datejs es una buena biblioteca de fechas internacionales.
Por lo demás, se trata solo de traducción de idiomas, y JavaScript es compatible de forma nativa con Unicode (así como con todos los principales navegadores).
fuente
También puede probar con otra biblioteca: https://github.com/wikimedia/jquery.i18n .
Además del reemplazo de parámetros y las múltiples formas plurales, admite el género, una característica bastante única de las reglas gramaticales personalizadas que algunos idiomas necesitan.
fuente