Volver

gt-next@6.14.0

Jackie Chen avatarJackie Chen
gt-nextgt-i18ngt-nodegt-tanstack-startversion-idhooki18n

Descripción general

Un nuevo hook useVersionId y la función auxiliar getVersionId ya están disponibles en todos los paquetes de JavaScript de GT. Con ellos puedes leer _versionId desde tu configuración de GT en tiempo de ejecución, lo que resulta útil para depurar, invalidar caché, registrar eventos y hacer seguimiento de qué versión de tus traducciones está activa en ese momento.

PaqueteVersiónExportación
gt-next6.14.0useVersionId (cliente + servidor), getVersionId (función)
gt-i18n0.7.0getVersionId (función)
gt-node0.4.0getVersionId (función)
gt-tanstack-start0.2.0getVersionId (función)
gt-i18n (Python)0.3.0get_version_id() (función)
gt-fastapi0.3.0get_version_id() (función)
gt-flask0.3.0get_version_id() (función)

Uso

Next.js (lado del cliente)

import { useVersionId } from 'gt-next';

function DebugFooter() {
  const versionId = useVersionId();
  return <footer>Translation version: {versionId ?? 'unknown'}</footer>;
}

Next.js (servidor)

import { useVersionId } from 'gt-next/server';

export default function Page() {
  const versionId = useVersionId();
  // usar en componentes de servidor, logging, headers, etc.
}

Node / sin React

import { getVersionId } from 'gt-i18n';
// o: import { getVersionId } from 'gt-node';

console.log('Versión de traducción actual:', getVersionId());

Python (gt-fastapi / gt-flask)

from gt_i18n import get_version_id
# o: from gt_fastapi import get_version_id
# o: from gt_flask import get_version_id

print("Versión de traducción actual:", get_version_id())

También puedes pasar version_id directamente a initialize_gt():

initialize_gt(version_id="abc123", ...)

Configuración

Define _versionId en tu gt.config.json. La CLI establece este valor automáticamente cuando ejecutas el comando translate:

{
  "defaultLocale": "en",
  "locales": ["en", "es", "fr"],
  "_versionId": "abc123"
}

Qué sigue

Con la configuración regional y el ID de versión ahora accesibles en tiempo de ejecución, el siguiente paso es el seguimiento de analítica: dar a los desarrolladores visibilidad sobre qué traducciones se están renderizando realmente junto con sus eventos de analítica.

El plan es introducir la agregación de hashes: a medida que componentes de traducción como <T>, gt() y m() se resuelvan en tiempo de ejecución, sus hashes se recopilarían en un conjunto rastreable. Un nuevo hook useAnalytics() permitiría a los desarrolladores leer el conjunto actual de hashes resueltos en el momento en que se dispara un evento de analítica, y un contenedor <AnalyticsScope> permitiría limitar esa recopilación a partes concretas del árbol de React.