Inicio rápido de React

Internacionaliza fácilmente tu aplicación React con gt-react

Haz que tu aplicación React traduzca contenido en minutos.

Requisitos previos: React, conocimientos básicos de JavaScript

Configuración rápida: Prueba npx gtx-cli@latest para realizar la configuración automática. Consulta la guía del Asistente de configuración o utiliza nuestra integración con herramientas de IA.

Instalación

Instala los paquetes gt-react y gtx-cli:

npm i gt-react
npm i gtx-cli
yarn add gt-react
yarn add --dev gtx-cli
bun add gt-react
bun add --dev gtx-cli
pnpm add gt-react
pnpm add --save-dev gtx-cli

Configuración

GTProvider

El componente GTProvider proporciona el contexto de traducción a tus componentes de React. Administra el estado del locale, las traducciones y habilita los hooks useGT y useTranslations.

Agrega el GTProvider a tu componente raíz de la app:

src/App.tsx
import { GTProvider } from 'gt-react';

export default function App() {
  return (
    <GTProvider>
      <YourAppContent />
    </GTProvider>
  );
}

Crea un archivo gt.config.json en la raíz de tu proyecto:

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es", "de"]
}

Personaliza los locales de tu proyecto. Consulta los locales compatibles para ver las options.

Variables de entorno

Agrega lo siguiente a tu archivo de entorno para hot reloading en desarrollo:

.env.local
VITE_GT_API_KEY="your-dev-api-key"
VITE_GT_PROJECT_ID="your-project-id"
.env.local
REACT_APP_GT_API_KEY="your-dev-api-key"
REACT_APP_GT_PROJECT_ID="your-project-id"
.env.development
GATSBY_GT_API_KEY="your-dev-api-key"
GATSBY_GT_PROJECT_ID="your-project-id"
.env
REDWOOD_ENV_GT_API_KEY="your-dev-api-key"
REDWOOD_ENV_GT_PROJECT_ID="your-project-id"

Muchos frameworks de React tienen su propia forma de exportar variables de entorno al cliente. En entornos de desarrollo, tanto GT_API_KEY como GT_PROJECT_ID deben exportarse al cliente.

Hemos añadido compatibilidad con algunas bibliotecas hasta ahora, pero avísanos si tu framework no aparece creando un issue en nuestro repositorio de GitHub.

Solo para desarrollo: No configures GT_API_KEY en producción; es solo para hot reloading en desarrollo.

Obtén tus claves de API gratuitas en dash.generaltranslation.com o ejecuta:

npx gtx-cli auth


Uso

Ahora puedes empezar a internacionalizar tu contenido. Hay dos enfoques principales:

Contenido JSX con <T>

Envuelve elementos JSX para traducirlos usando el componente <T>:

import { T } from 'gt-react';

function Welcome() {
  return (
    <T>
      <h1>¡Bienvenido a nuestra app!</h1>
    </T>
  );
}

Para contenido dinámico, usa componentes de variables como <Var>:

import { T, Var } from 'gt-react';

function Greeting({ user }) {
  return (
    <T>
      <p>¡Hola, <Var>{user.name}</Var>!</p>
    </T>
  );
}

Consulta la guía sobre cómo usar el componente <T> para obtener más información.

Cadenas simples con useGT

Para atributos, etiquetas y texto sin formato con el hook useGT:

import { useGT } from 'gt-react';

function ContactForm() {
  const t = useGT();
  
  return (
    <input 
      placeholder={t('Introduce tu correo electrónico')}
      aria-label={t('Campo de entrada de correo electrónico')}
    />
  );
}

Consulta la guía sobre traducción de strings para obtener más información.


Prueba de tu aplicación

Prueba tus traducciones cambiando el idioma:

  1. Agrega un menú desplegable para seleccionar el locale usando <LocaleSelector>:

    import { LocaleSelector } from 'gt-react';
    
    function App() {
      return <LocaleSelector />;
    }
  2. Inicia tu servidor de desarrollo:

    npm run dev 
    yarn run dev 
    bun run dev 
    pnpm run dev 
  3. Visita localhost:3000 y cambia el idioma mediante el menú desplegable de selección de locale.

En desarrollo, las traducciones se realizan bajo demanda (verás una breve carga). En producción, todo está pretraducido.

Solución de problemas


Implementación

Para producción, debes pretraducir el contenido, ya que la traducción en tiempo de ejecución está deshabilitada (excepto para las funciones <Tx> y tx).

  1. Obtén una clave de API de producción en dash.generaltranslation.com.

    Las claves de producción comienzan con gtx-api- (a diferencia de las claves de desarrollo, que comienzan con gtx-dev-). Obtén más información sobre las diferencias entre entornos.

  2. Añádela a tu entorno de CI/CD:

    GT_PROJECT_ID=your-project-id
    GT_API_KEY=gtx-api-your-production-key

    Nunca antepongas a las claves de producción el prefijo de variable pública de tu framework (como VITE_, REACT_APP_, etc.) — deben permanecer solo del lado del servidor.

  3. Ejecuta el comando translate para traducir tu contenido:

    npx gtx-cli translate

    Puedes configurar el comportamiento del comando translate con el archivo gt.config.json.

    Consulta la guía de referencia de la CLI para más información.

  4. Actualiza tu script de compilación para traducir antes de compilar:

    package.json
    {
      "scripts": {
        "build": "npx gtx-cli translate && <...YOUR_BUILD_COMMAND...>"
      }
    }

Próximos pasos

¿Qué te parece esta guía?