actualizar contenido
Roturas
- Los datos ya no están conectados a la cadena de primer nivel y deben obtenerse de la cadena (este tipo de escenario de uso directo también es menor)
- valor constante = i18n.button.submit; + valor constante = i18n.chain.button.submit;
- Elimine el subrayado
_
y ajuste el método incorporado de nuevo a la cadena del primer nivel
- i18n ._. local ('zh'); + i18n.local ('zh');
- Eliminar
useI18n
, cambiar para obtener la cadena de la instancia
función Aplicación: FC = () => { - useI18n (i18n); + cadena constante = i18n.use (); return <div> {chain.button.submit} </div>; }
- Eliminar componentes de alto nivel
I18nProvider
y cambiar para obtener hoc desde la instancia
clase Aplicación amplía Componente { render () { + const {cadena} = this.props; - return <div> {i18n.button.submit} </div>; + return <div> {cadena.button.submit} </div>; } } - exportar I18nProvider predeterminado (i18n) (aplicación); + exportar i18n.hoc predeterminado (aplicación);
Caracteristicas
- Se utilizan nuevos métodos
translate
,t
consistentes con esos, para traducir plantillas de cadenas - Nueva herramienta de generación de plantillas de cadenas
// Es lo mismo que escribir una cadena directamente, pero aquí hay un mensaje const key = i18n. Literal . Button . Submit ; // key === 'button.submit' // Puede usar el método translate para obtener el valor de la constante de datos reales = i18n. translate (clave); // valor === 'Enviar'
------------------------------------
Introducción
Hablando de internacionalización, ¿ha estado en la duplicación de copiar y pegar durante todo el año? t('home:submit')
t('common:something:success')
No hay sugerencias como estas, debe recordar, no solo la eficiencia del desarrollo es baja, sino que el teclado es fácil de escribir las letras incorrectas rápidamente, el punto es que difícilmente puede encontrar este tipo de error.
Prefiero el código con sugerencias. Usándolo typescript
, inventé un componente i18n que usa operaciones encadenadas y tiene todas las sugerencias. Así i18n.common.something.success
, el código se puede completar automáticamente para asegurar que no haya errores.
compatibilidad
ES DECIR | Borde | Cromo | Firefox | Safari | Nodo |
---|---|---|---|---|---|
9+ | 12+ | 5+ | 4+ | 5+ | * |