getTranslations
Справка по API для серверной функции перевода getTranslations
Обзор
getTranslations используется для получения строковых переводов из словаря переводов для серверных компонентов.
const d = await getTranslations(); // Получить функцию перевода
d('greeting.hello'); // передать id для получения переводаgetTranslations поддерживает:
- Перевод строк и JSX‑контента.
- Вставку переменных и условную логику внутри переводов.
- Необязательное добавление префикса к id.
Для клиентских переводов см. useTranslations.
Справка
Свойства
Prop
Type
Описание
| Prop | Описание |
|---|---|
id | Необязательный префикс, который добавляется ко всем ключам переводов. Полезен при работе с вложенными значениями словаря. |
Возвращает
Промис с функцией перевода d, которая по заданному id вернёт переведённую версию соответствующей записи
Promise<(id: string, options?: DictionaryTranslationOptions) => React.ReactNode>| Имя | Тип | Описание |
|---|---|---|
id | string | Идентификатор записи для перевода |
options? | DictionaryTranslationOptions | Параметры перевода для настройки поведения d. |
Примеры
Базовое использование словаря
Каждая запись в словаре будет переведена.
const dictionary = {
greeting: <>Привет, Элис!</>,
};
export default dictionary;Когда нам нужно обратиться к этим записям (на серверной стороне), мы вызываем getTranslations.
Этот вызов возвращает функцию, принимающую ключ перевода из словаря.
import { getTranslations } from 'gt-next/server';
export default async function TranslateGreeting() {
const d = await getTranslations();
return (
<p>
{d('greeting')} // Привет, Алиса // [!code highlight]
</p>
);
}Использование переменных
Чтобы передать значения, необходимо (1) задать идентификатор и (2) сослаться на него при вызове функции d.
В этом примере мы используем {} для передачи переменных в переводы.
В словаре мы задаём идентификатор {userName}.
const dictionary = {
greeting: "Привет, {userName}!",
};
export default dictionary;import { getTranslations } from 'gt-next/server';
export default async function TranslateGreeting() {
const d = await getTranslations();
// Привет, Элис!
const greetingAlice = d('greeting', { userName: "Alice" });
return (
<p>
{greetingAlice}
</p>
);
}Использование префиксов
Префиксы можно использовать, чтобы получать только часть словаря.
const dictionary = {
prefix1: {
prefix2: {
greeting: "Привет, Боб",
}
}
};
export default dictionary;Поскольку мы передали значение 'prefix1.prefix2' в метод getTranslations, все ключи получают префикс prefix1.prefix2:
import { getTranslations } from 'gt-next/server';
export default function UserDetails() {
const d = await getTranslations('prefix1.prefix2');
return (
<div>
<p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
</div>
);
}Примечания
- Функция
getTranslationsпозволяет получать переводы из словаря на стороне сервера.
Дальнейшие шаги
- См.
useTranslations— клиентский аналогgetTranslationsна стороне клиента.
Насколько полезно это руководство?