Назад

gt-next@6.14.0

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

Обзор

Новый хук useVersionId и вспомогательная функция getVersionId теперь доступны во всех JavaScript-пакетах GT. Они позволяют считывать _versionId из конфигурации GT во время выполнения — это полезно для отладки, сброса кэша, логирования и отслеживания того, какая версия ваших переводов сейчас активна.

ПакетВерсияЭкспорт
gt-next6.14.0useVersionId (клиент + сервер), getVersionId (функция)
gt-i18n0.7.0getVersionId (функция)
gt-node0.4.0getVersionId (функция)
gt-tanstack-start0.2.0getVersionId (функция)
gt-i18n (Python)0.3.0get_version_id() (функция)
gt-fastapi0.3.0get_version_id() (функция)
gt-flask0.3.0get_version_id() (функция)

Использование

Next.js (клиент)

import { useVersionId } from 'gt-next';

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

Next.js (сервер)

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

export default function Page() {
  const versionId = useVersionId();
  // использовать в server components, логировании, заголовках и т.д.
}

Node / без React

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

console.log('Текущая версия перевода:', getVersionId());

Python (gt-fastapi / gt-flask)

from gt_i18n import get_version_id
# или: from gt_fastapi import get_version_id
# или: from gt_flask import get_version_id

print("Текущая версия перевода:", get_version_id())

Вы также можете передать version_id напрямую в initialize_gt():

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

Конфигурация

Укажите _versionId в файле gt.config.json. Это значение автоматически задаётся через Интерфейс командной строки (CLI) при запуске команды translate:

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

Что дальше

Теперь, когда локаль и идентификатор версии доступны во время выполнения, следующий шаг — отслеживание аналитики, которое даст разработчикам понимание того, какие переводы фактически рендерятся вместе с их аналитическими событиями.

Планируется внедрить агрегацию хешей: по мере того как компоненты перевода, такие как <T>, gt() и m(), вычисляются во время выполнения, их хеши будут собираться в отслеживаемый набор. Новый хук useAnalytics() позволит разработчикам получать текущий набор вычисленных хешей в момент отправки аналитического события, а обёртка <AnalyticsScope> позволит ограничить этот сбор определёнными частями дерева React.