React.js i18n: guía de configuración y uso de la localización
- Publicado el
- • 2 min de lectura•--- vistas
Librería i18n
Librería y enfoque comúnmente usados para la localización.
Instalación
Instala los paquetes
yarn add i18next i18next-browser-languagedetector i18next-xhr-backendEcha un vistazo al archivo de configuración config/i18n/i18n.ts. Inclúyelo en tu proyecto en algún lugar
En
index.tsximporta eli18n.tsagregado previamenteColoca los archivos de traducción en
public/locales/${LOCALIZATION_NAME}/translation.json
Uso
A través de un hook especial en componentes
import { useTranslation } from 'react-i18next';
///...
const Component: React.FC = () => {
const { t } = useTranslation();
///...
return (
<TextField
fullWidth
type="email"
label={t('Email address')}
InputLabelProps={{
shrink: true
}}
{...getFieldProps('email')}
error={Boolean(touched.email && errors.email)}
helperText={touched.email && errors.email}
/>
)
}
Componentes con enlace de parámetros
// in functional component
<Trans i18nKey="View all images" values={{ total }} />
// in locales/en/translation.json
{
//...
"View all images": "View all {{total}} images",
//...
}
// in locales/cn/translation.json
{
//...
"View all images": "查看所有 {{total}} 張圖片",
//...
}
Forma directa, a través de una utilidad
Esto es útil si tienes una cadena para localizar en algunos objetos (no en componentes funcionales)
// importing file from ./config/18n/i18n.ts
import i18n from '~/utils/i18n';
const messages = {
hello: i18n.t('world'),
};
Consejos y trucos
Para cambiar la traducción, tienes que cambiar el valor en el local storage del navegador llamado i18nextLng

o usa este comando en la consola:
localStorage.setItem('i18nextLng', 'cn');
Actualiza la página después para ver la nueva localización del sitio aplicada
Disponible para colaboración por contrato
Estoy disponible para colaborar por contrato. Si tiene una idea de proyecto interesante, reserve una llamada por Calendly.
Agenda una llamada de 30 min