Traduzca aplicaciones React con IA de calidad humana

Traduzca su aplicación React con IA que ofrece resultados de calidad humana. Obtenga traducciones instantáneas listas para producción, gratis durante 30 días. No se requiere tarjeta de crédito.

¿No está seguro de cómo preparar su aplicación React para que sea multilingüe? Esta guía también incluye una demostración paso a paso con commits reales, para que pueda ver exactamente cómo internacionalizar y traducir un proyecto React.

Traduzca proyectos React de forma rápida y sencilla con PTC

PTC (Private Translation Cloud) es un sistema de traducción que le ayuda a mantener su proyecto React multilingüe sin esfuerzo adicional. En lugar de traducir archivos JSON manualmente o configurar flujos de trabajo de traducción complicados, PTC le permite enviar un archivo JSON con cadenas de origen para la traducción y obtener traducciones con tecnología de IA en solo unos pocos pasos.

Aquí le mostramos cómo traducir su proyecto React con PTC:

Paso 1

Regístrese para una prueba gratuita de 30 días

Una vez que se registre, obtendrá acceso ilimitado a todas las funciones de PTC durante 30 días, sin necesidad de tarjeta de crédito.

Paso 2

Inicie un nuevo proyecto

En el asistente de configuración, elija la opción Carga manual de archivos. Esto le permite cargar un archivo JSON desde su proyecto React (y muchos otros formatos de archivo de recursos compatibles) para ver cómo PTC gestiona las traducciones.

Paso 3

Describa su proyecto

Añada una breve descripción de qué es su aplicación y para quién es. Esto ayuda a Private Translation Cloud a elegir la terminología, el tono y el estilo de lenguaje adecuados para su audiencia.

Paso 4

Cargue su archivo JSON

Normalmente, este es el archivo en.json de su carpeta src/i18n/locales/.

Paso 5

Elija sus idiomas de destino

Elija los idiomas a los que desea traducir. Private Translation Cloud proporciona traducciones contextualizadas en más de 33 idiomas, que cubren los idiomas que se hablan en los principales mercados.

Paso 6

Vea y descargue sus traducciones

Private Translation Cloud ofrece traducciones de IA en minutos. Las verá en la pestaña Traducciones, organizadas en una tabla clara por idioma.

Las traducciones largas se resaltan en amarillo. Puede conservarlas si su interfaz de usuario lo permite, o pedir a Private Translation Cloud que las vuelva a traducir para que se ajusten a sus límites de longitud.

Una vez que esté satisfecho, descargue las traducciones de la pestaña Archivos de recursos como un ZIP. Si tradujo a varios idiomas, el ZIP incluirá un archivo por idioma (por ejemplo, fr.json, de.json).

Paso 7

Añada los archivos traducidos a su proyecto

Coloque cada archivo JSON descargado en su proyecto React bajo src/i18n/locales/. Si ha configurado su aplicación para que cargue todos los archivos de esta carpeta, i18next detectará automáticamente los nuevos archivos de idioma. La próxima vez que ejecute su aplicación, podrá cambiar entre idiomas sin cambiar ningún código.

¡Eso es todo lo que se necesita para traducir una aplicación React con Private Translation Cloud!

Traduzca notas de la versión, correos electrónicos y otro texto para su aplicación React

Su proyecto React incluye algo más que las cadenas dentro de sus archivos JSON. Es posible que también necesite traducir contenido de apoyo como notas de la versión, correos electrónicos de incorporación o anuncios de productos.

Con la función Pegar para traducir de Private Translation Cloud, simplemente necesita:

  1. Vaya a Traducciones → Pegar para traducir
  2. Pegue el texto adicional que desea traducir, por ejemplo, el texto del correo electrónico
  3. Haga clic en traducir

Obtendrá instantáneamente traducciones contextualizadas de alta calidad que podrá copiar en su proyecto.

Puede hacer lo mismo con otro contenido de su proyecto, como notas de la versión o anuncios de productos, manteniendo toda la comunicación con el usuario coherente en todos los idiomas.

Automatización del proceso de traducción

La carga manual de archivos es una excelente manera de ver cómo Private Translation Cloud proporciona traducciones de calidad humana a la velocidad y el coste de una máquina. Una vez que haya visto los resultados por sí mismo, puede dar el siguiente paso y automatizar el proceso para que las traducciones se mantengan actualizadas sin ningún esfuerzo adicional.

Private Translation Cloud le ofrece dos opciones para automatizar el flujo de trabajo de traducción:

  1. Integración de Git: vincule su repositorio GitHub, GitLab o Bitbucket. Private Translation Cloud estará atento a los cambios en sus archivos de origen y abrirá solicitudes de extracción con las traducciones actualizadas.
  2. Integración de la API: conecte PTC a su flujo de trabajo de desarrollo. Su aplicación puede enviar texto actualizado a PTC a través de la API y recuperar las traducciones automáticamente.

Ejemplo de i18n React: demostración de un proyecto React traducible

Si su proyecto de React aún no está configurado para la localización, no se preocupe. En esta sección, le guiaremos a través de una aplicación de demostración y ejemplos de referencias de confirmación.

Esta guía asume que ya tiene una aplicación React + TypeScript en ejecución (Vite, CRA, Next o similar) y al menos algunas cadenas de interfaz de usuario (UI) en inglés. Añadiremos soporte de internacionalización (i18n), organizaremos los archivos de traducción y utilizaremos Private Translation Cloud para generar traducciones de forma rápida y sencilla.

1

Configure react-i18next para la localización

Para preparar su aplicación para la localización, necesita mover el texto fuera de los componentes y dentro de los archivos de traducción. Esto hace posible añadir otros idiomas más adelante sin cambiar su código.

La forma más común de hacer esto en React es utilizando i18next y su paquete de integración React react-i18next.

  1. Instale las bibliotecas:
npm install i18next react-i18next
  1. Cree una carpeta para los archivos de traducción:
src/i18n/
└── locales/
    └── en.json

Aquí es donde vivirán todas las traducciones. Cada archivo dentro de src/i18n/locales/ representa un solo idioma. Por ahora, solo necesita en.json para inglés. Más adelante, Private Translation Cloud generará archivos adicionales como fr.json (francés) o de.json (alemán) y los colocará en esta misma carpeta, para que todo permanezca organizado en un solo lugar.

  1. Añada sus cadenas de idioma de origen (inglés) a en.json:
{
  "welcome": "Welcome",
  "description": "This is a localization demo.",
  "clickMe": "Click me"
}
  1. Reemplace el texto codificado en App.tsx con claves de traducción que hagan referencia al archivo JSON:
import { useTranslation } from 'react-i18next';

function App() {
  const { t } = useTranslation();

  return (
    <div>
      <h1>{t('welcome')}</h1>
      <p>{t('description')}</p>
      <button onClick={() => alert(t('clickMe'))}>{t('clickMe')}</button>
    </div>
  );
}

Si se pregunta de dónde viene la función t, la configuraremos en el siguiente paso al configurar i18n. Por ahora, la parte importante es que su componente ya no depende del texto en inglés codificado.

2

Dígale a i18n dónde encontrar sus archivos de traducción

En el paso anterior, creó en.json y actualizó su componente para hacer referencia a las claves de traducción. Sin embargo, ahora mismo, i18n no sabe dónde buscar esos archivos JSON. Necesitamos configurarlo para que la función t() pueda realmente extraer las cadenas correctas.

En lugar de importar cada archivo de idioma manualmente, puede utilizar Vite’s import.meta.glob para cargar automáticamente cada archivo *.json dentro de src/i18n/locales/. Esto significa que cuando más adelante añada archivos como fr.json o de.json (de Private Translation Cloud), se detectarán sin trabajo adicional.

  1. Cree src/i18n/index.ts y configure i18next para cargar sus archivos JSON automáticamente:
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

const modules = import.meta.glob('./locales/*.json', { eager: true }) as Record<
  string,
  { default: Record<string, any> }
>;

const resources: Record<string, { translation: any }> = {};
for (const path in modules) {
  const lang = path.match(/\.\/locales\/(.*)\.json$/)?.[1];
  if (lang) {
    resources[lang] = { translation: modules[path].default };
  }
}

i18n
  .use(initReactI18next)
  .init({
    resources,
    fallbackLng: 'en',
    interpolation: { escapeValue: false },
  });

export default i18n;

  1. Importe esta configuración una vez en su archivo de entrada (src/main.tsx) para que i18next esté listo antes de que se renderice la aplicación:
import './i18n';

Con esto, su aplicación React sabe dónde encontrar los archivos de traducción. Cuando Private Translation Cloud genere más adelante nuevos archivos, como fr.json, no necesitará cambiar su código ni añadir importaciones. Todo lo que necesitará hacer es asegurarse de que el archivo traducido vaya a src/i18n/locales/. La próxima vez que ejecute la aplicación, i18n hará que el francés esté disponible automáticamente junto con el inglés.

3

Cree las traducciones con Private Translation Cloud

Ahora que su aplicación lee los mensajes de src/i18n/locales/en.json, puede utilizar Private Translation Cloud para generar las traducciones a otros idiomas.

  1. Una vez que se registre para una prueba gratuita o inicie sesión en su cuenta de Private Translation Cloud, abra el asistente de configuración y añada su archivo de origen en inglés como un recurso traducible:
src/i18n/locales/en.json

A continuación, establezca la ruta de salida para que Private Translation Cloud sepa dónde colocar los archivos traducidos:

src/i18n/locales/{{lang}}.json

Este patrón crea un archivo por idioma (por ejemplo, fr.json y de.json) en la misma carpeta que en.json.

4

Obtenga sus traducciones y añádalas a su proyecto

Private Translation Cloud necesita unos minutos para generar las traducciones de IA. Cuando estén listas, recibirá un archivo JSON por idioma. Cada archivo debe colocarse en su proyecto bajo la carpeta src/i18n/locales/.

Por ejemplo, si tradujo al francés, el archivo será:

src/i18n/locales/fr.json

Ejemplo del contenido dentro de src/i18n/locales/fr.json:

La forma en que obtiene los archivos depende de cómo utilice Private Translation Cloud. En esta demostración, elegimos la integración de Git, lo que significa que Private Translation Cloud abrió una solicitud de combinación con los archivos traducidos ya colocados en la carpeta correcta.

5

Añada un selector de idiomas y pruebe su aplicación en otros idiomas

Con sus traducciones en su lugar, el paso final es actualizar App.tsx y añadir un simple selector de idiomas. Esto le permite cambiar entre idiomas en su aplicación React y confirmar que todo funciona correctamente.

import { useTranslation } from 'react-i18next';

function App() {
  const { t, i18n } = useTranslation();

  return (
    <div>
      <h1>{t('welcome')}</h1>
      <p>{t('description')}</p>
      <button onClick={() => alert(t('clickMe'))}>{t('clickMe')}</button>

      <button onClick={() => i18n.changeLanguage('en')}>EN</button>
      <button onClick={() => i18n.changeLanguage('fr')}>FR</button>
    </div>
  );
}

Ahora puede cambiar entre inglés y francés. Cuando ejecute la aplicación en francés, el diseño debería verse exactamente igual que en inglés, solo cambia el idioma del texto.

Bonus

Opciones avanzadas de i18next para aplicaciones React

Una vez que su aplicación React esté localizada y funcionando en varios idiomas, puede desbloquear algunas opciones avanzadas en i18next para mejorar el rendimiento y la experiencia del usuario:

  • Detectar automáticamente el idioma del usuario

Por defecto, la aplicación se inicia en inglés y permite a los usuarios cambiar de idioma manualmente con un selector de idiomas. Para que se abra automáticamente en el idioma preferido del usuario, instale el plugin de detección de idioma:

npm install i18next-browser-languagedetector

A continuación, actualice su src/i18n/index.ts:

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';

i18n
  .use(LanguageDetector)       // detect browser/localStorage/etc.
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    supportedLngs: ['en', 'fr', 'de', 'ar'], // adjust to your supported languages
    interpolation: { escapeValue: false },
    detection: {
      order: ['querystring', 'localStorage', 'cookie', 'navigator'],
      caches: ['localStorage', 'cookie'],
    },
    react: {
      useSuspense: true, // set false if you don’t wrap <App /> in <Suspense>
    },
  });

export default i18n;

Con esta configuración, i18n comprobará el idioma del navegador (y las preferencias almacenadas) en la primera carga y cambiará automáticamente al idioma preferido del usuario cuando esté disponible.

  • Carga diferida de traducciones para paquetes más pequeños

En el paso 2 de esta guía, configuró import.meta.glob con { eager: true }, que agrupa todos los archivos de traducción en la carga inicial de la aplicación. Esto es simple, pero si admite muchos idiomas, puede aumentar el tamaño de su paquete.

Para optimizar, puede cargar las traducciones de forma diferida utilizando i18next-http-backend:

npm install i18next-http-backend

Actualice src/i18n/index.ts:

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import Backend from 'i18next-http-backend';
import LanguageDetector from 'i18next-browser-languagedetector';

i18n
  .use(Backend)                // load JSON over HTTP
  .use(LanguageDetector)       // auto-detect + cache
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    supportedLngs: ['en', 'fr'],
    interpolation: { escapeValue: false },
    backend: {
      // Vite serves files from /public at the site root
      loadPath: '/locales/{{lng}}/{{ns}}.json',
    },
    react: { useSuspense: true },
  });

export default i18n;

Así es como deben organizarse sus archivos:

public/
  locales/
    en/
      translation.json
    fr/
      translation.json

Con esta configuración, los archivos de traducción se cargan desde el servidor solo cuando se necesita un idioma. Esto mantiene el paquete inicial más pequeño, especialmente si su aplicación admite muchos idiomas.

Siguiendo estos dos consejos de optimización, su aplicación React puede:

  • Iniciar automáticamente en el idioma preferido del usuario
  • Cargar las traducciones solo cuando sea necesario, manteniendo sus paquetes ligeros

Empiece a traducir su aplicación React hoy mismo

Ahora que ha visto lo rápido que se puede traducir una aplicación React con Private Translation Cloud, es su turno. Pruébelo gratis durante 30 días y vea lo fácil que puede ser traducir React.

Ir arriba