Перевод строк

Как переводить строки

Обзор

Это пошаговое руководство по переводу строк в приложении Next.js с помощью useGT, getGT и tx.

Предварительные требования

Предполагается, что вы уже установили gt-next в свой проект и прошли (или проходите) раздел Быстрый старт.

Перевод строк

Клиентские компоненты

Для любых клиентских строк используйте useGT. Помните, что useGT нужно вызывать внутри дочернего компонента <GTProvider>.

src/components/MyComponent.jsx
import { useGT } from 'gt-next';

export default function MyComponent() {
  const t = useGT(); 
  return (
    <div>
      <h1>{t('Это переводимая строка')}</h1> // [!code highlight]
    </div>
  );
}

Компоненты на стороне сервера

Для любых серверных строк используйте getGT.

src/pages/index.jsx
import { getGT } from 'gt-next/server';

export default async function Home() {
  const t = await getGT(); 
  return (
    <div>
      <h1>{t('Эта строка подлежит переводу')}</h1> // [!code highlight]
    </div>
  );
}

Примечание: В режиме разработки, если вы переводите контент на лету, потребуется обновить страницу, чтобы увидеть переведённую версию строки из getGT. В продакшене этого не происходит.

Добавление переменных

Переменные — это значения, которые могут меняться, но не переводятся. Чтобы добавить переменные в строки, используйте следующий шаблон:

MyComponent.jsx
import { useGT } from 'gt-next';

export default function MyComponent() {
  const t = useGT();
  return (
    <div>
      <h1>{t('Привет, {username}!', { variables: { username: 'Brian123' }})}</h1> // [!code highlight]
    </div>
  );
}

Это работает как с useGT, так и с getGT.

Динамический контент

Допустим, у вас есть строка, которая меняется. Вы можете использовать функцию tx, чтобы переводить строку во время выполнения.

MyComponent.jsx
import { tx } from 'gt-next/server';

export default async function MyComponent({ username }) {
  const translation = await tx(`Здравствуйте, ${username}. Как проходит ваш день?`); 
  return (
    <div>
      <h1>{translation}</h1> // [!code highlight]
    </div>
  );
}

Примечание: Функция tx доступна только на сервере и должна использоваться лишь при необходимости. Перевод на этапе выполнения часто вызывает задержки. По возможности используйте getGT или useGT, чтобы выполнить перевод до развертывания.


Примечания

  • Для перевода строк используйте useGT, getGT и tx.
  • useGT и getGT выполняют перевод на этапе сборки, тогда как tx переводит во время выполнения. Используйте tx умеренно.
  • Переменные можно добавлять в строки с помощью шаблона { variables: { key: value } }.

Дальнейшие шаги

Насколько полезно это руководство?

Перевод строк