Inline Translations

tx

Справочник API по функции перевода строк tx

Обзор

tx — серверная функция для перевода строк.

await tx('Привет, мир!'); // возвращает «Hola, mundo!»

Перевод в рантайме: переводы tx выполняются в рантайме. Это означает, что перевод происходит в реальном времени, поэтому вы можете переводить контент, доступный на этапе выполнения.

Справка

Параметры

Prop

Type

ИмяОписание
contentСтрока, которую нужно перевести.
optionsПараметры перевода для настройки поведения tx. См. RuntimeTranslationOptions.

Возвращает

Промис, который разрешается в строку с переведённым содержимым или исходным, если перевод не требуется.


Поведение

Функция tx переводит строки во время выполнения. Это означает, что переводы выполняются «на лету», поэтому вы можете переводить контент, который становится известен только во время исполнения. Обратная сторона в том, что при ожидании загрузки перевода по требованию возникает задержка — это заметно медленнее.

Мы рекомендуем переводить всё, что возможно, на этапе сборки с помощью getGT, useGT или <T>, а переводы по требованию, такие как tx и <Tx>, использовать только при необходимости.

Обязательно следуйте руководству по развёртыванию.


Пример

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

Вы можете использовать tx для перевода строк.

src/components/translateGreeting.jsx
import { tx } from 'gt-next/server';

export default async function translateGreeting() {
    return await tx("Здравствуй, мир!"); 
}

Добавление контекста

Вы можете настраивать перевод, указывая контекст, который будет учитываться при переводе.

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

export default async function TranslateWithOptions() {
    return await tx("Привет, мир!", {
      $context: 'Переводи неформально'
    });
}

Использование переменных

Чтобы передать значения в строку, нужно (1) задать идентификатор и (2) сослаться на него в передаваемом объекте.

translateWithVariables.js
import { tx } from 'gt-next/server';

export default async function translateWithVariables() {
  return await tx("Стоимость {price, number, ::currency/USD}", {
    price: 29.99,
  });
}

Указание локали

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

translateWithLocale.js
import { tx } from 'gt-next/server';

export default async function translateWithLocale() {
    return await tx("Здравствуй, мир!", { $locale: 'fr' }); 
}

Примечания

  • tx предназначен исключительно для серверной стороны и не может использоваться в клиентских компонентах.
  • Переводы с tx выполняются во время исполнения, то есть в реальном времени. Это значительно медленнее, чем переводы на этапе сборки.

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

  • См. useGT и getGT для перевода строк до развертывания.
  • Для перевода JSX см. <T> и <Tx>.
  • См. RuntimeTranslationOptions для получения подробной информации о настройке переводов.

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

tx