Inicio rápido de Next.js

Internacionaliza fácilmente tu app de Next.js con gt-next

Requisitos previos: App Router de Next.js, conocimientos básicos de JavaScript

Instalación

Instala los paquetes gt-next y gtx-cli:

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

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

Configuración

withGTConfig

La función withGTConfig inicializa el SDK en tu aplicación de Next.js. Añádela a tu archivo next.config.[js|ts]:

next.config.ts
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // Tu configuración existente de Next.js
};

export default withGTConfig(nextConfig. {
  // Opciones de configuración adicionales de GT
});

GTProvider

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

Añade GTProvider a tus diseños (layouts) raíz:

app/layout.tsx
import { GTProvider } from 'gt-next';

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <GTProvider>
          {children}
        </GTProvider>
      </body>
    </html>
  );
}

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

Añade lo siguiente a tu archivo .env.local para habilitar la recarga en caliente durante el desarrollo:

.env.local
GT_API_KEY="your-dev-api-key"
GT_PROJECT_ID="your-project-id"

Solo para desarrollo: No configures GT_API_KEY en producción; es únicamente para hot reload en desarrollo.

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

npx gtx-cli auth


Uso

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

Contenido JSX con <T>

Envuelve elementos de JSX para traducirlos con el componente <T>:

import { T } from 'gt-next';

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

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

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

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 de texto con useGT

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

import { useGT } from 'gt-next';

function ContactForm() {
  const t = useGT();
  
  return (
    <input 
      placeholder={t('Ingresa tu email')}
      aria-label={t('Campo de entrada de email')}
    />
  );
}

Para componentes de servidor, usa getGT en lugar de useGT.

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


Prueba de tu aplicación

Prueba tus traducciones cambiando el idioma:

  1. Agrega un selector de locale usando <LocaleSelector>:

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

    npm run dev 
    yarn run dev 
    bun run dev 
    pnpm run dev 
  3. Visita localhost:3000 y cambia el idioma con el selector 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


Despliegue

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. Agrégala a tu entorno de CI/CD:

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

    Nunca antepongas NEXT_PUBLIC_ a las claves de producción: deben permanecer exclusivamente 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 obtener 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 ha parecido esta guía?

Inicio rápido de Next.js