Buenas prácticas
Poner las URLs en variables
Al traducir cadenas que contienen URLs u otros datos similares, se considera una buena práctica colocar esas URLs dentro de variables y luego referenciarlas en tus plantillas.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Usar etiquetas ARIA
Al traducir el texto de elementos interactivos como botones, es importante incluir etiquetas ARIA para garantizar la accesibilidad. Las etiquetas ARIA ayudan a los lectores de pantalla a ofrecer información descriptiva sobre la función del elemento.
Por ejemplo, si tienes un botón que permite a los usuarios copiar texto de un bloque de código, puedes usar el atributo aria-label
para proporcionar una descripción clara:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Hay algo en esto que se siente muy meta.
Arreglo global de orígenes y múltiples orígenes de componentes
Este patrón solo funciona cuando se utiliza el Next.js Pages Router.
Cuando se trabaja con aplicaciones más grandes, es beneficioso dividir las cadenas y las traducciones en múltiples orígenes más pequeños. Este enfoque ayuda a reducir el tamaño de los paquetes y los tiempos de transferencia, garantizando una localización eficiente y escalable.
Aunque esto es sencillo cuando solo se renderiza en el lado del cliente, la gestión de orígenes se vuelve rápidamente compleja al obtener las traducciones para el renderizado del lado del servidor. Sin embargo, puedes automatizar la gestión de orígenes utilizando la matriz origins
del cliente de TacoTranslate.
Considera este ejemplo, en el que hemos separado nuestros componentes y páginas en archivos distintos.
import TacoTranslate, {Translate} from 'tacotranslate/react';
import tacoTranslate from '../tacotranslate-client';
// Set an origin name for this component
const origin = 'components/pricing-table';
// Push the origin into the origins array as this file is imported
tacoTranslate.origins.push(origin);
export default function PricingTable() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing table" />
// ...
</TacoTranslate>
);
}
import TacoTranslate, {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
import PricingTable from '../components/pricing-table';
const origin = 'pages/pricing';
tacoTranslateClient.origins.push(origin);
export default function PricingPage() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing page" />
<PricingTable />
</TacoTranslate>
);
}
// We will now fetch translations for all imported components and their origins automatically
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
Vea nuestros ejemplos de renderizado del lado del servidor para obtener más información sobre getTacoTranslateStaticProps
.