# General Translation Overview: Ключевые понятия
URL: https://generaltranslation.com/ru/docs/overview/key-concepts.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Разберитесь в ключевых понятиях, лежащих в основе General Translation, включая интернационализацию, локализацию, перевод, локали и контекст.

General Translation локализует ваш продукт на любой язык. На этой странице простым языком объясняются ключевые понятия, лежащие в основе этого процесса.

## Интернационализация, локализация и перевод [#i18n-l10n]

Эти три термина связаны между собой, но обозначают разные понятия. Если чётко понимать разницу между ними, следить за документацией будет проще.

### Интернационализация (i18n)

Интернационализация, также известная как **i18n**, — это процесс подготовки кодовой базы к поддержке нескольких локалей и корректной обработке зависящих от локали особенностей, таких как даты и числа, формы множественного числа, валюты и макет интерфейса (например, для языков с письмом справа налево).

Это делается с помощью библиотеки интернационализации, такой как [`gt-react`](/docs/react/react-quickstart) для приложений на React или [`gt-next`](/docs/react/nextjs-quickstart) для Next.js, которая берет эту работу на себя.

Интернационализация отличается от перевода контента или компонентов. Она подготавливает кодовую базу к поддержке перевода и локализации.

### Перевод

Перевод — это преобразование контента с одного языка или диалекта на другой. Каждый язык определяется [кодом локали](#locales).

*Пример: перевод* `es` *(испанский) в* `en-US` *(американский английский) преобразует испанский контент в американский английский. Перевод того же исходного текста в* `en-GB` *даёт уже британский английский. Диалект тоже важен — перевод* `en-GB` *в* `en-US` *преобразует британский английский в американский английский.*

```js
gt.translate('Tenemos un ascensor', 'en-US'); // "We have an elevator"
gt.translate('Tenemos un ascensor', 'en-GB'); // "We have a lift"
gt.translate('We have a lift', 'en-US'); // "We have an elevator"
```

### Локализация (l10n)

Локализация, также обозначаемая как **l10n**, — это процесс адаптации продукта для конкретной локали. В General Translation мы используем локализацию как общий термин для всего процесса: интернационализации, перевода и инструментов, которые объединяют всё это. Мы создали полный стек локализации, чтобы охватить весь этот процесс.

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

## Локали и коды локалей [#locales]

**Локаль** — это язык или диалект. **Код локали** — это стандартизированный способ обозначения локали. В этой документации «локаль» обычно означает код локали.

*Пример:* `en-US` *— код локали для английского языка, используемого в Соединённых Штатах.*

Коды локалей сообщают General Translation, на каком языке написан исходный файл, на какой язык нужно переводить, а также как форматировать значения, зависящие от локали, такие как даты, числа и Currency.

### Как работают коды локалей

General Translation использует стандарт языковых тегов **BCP 47**. Код локали состоит из трёх подтипов, разделённых символом `-`:

* **Язык** (обязательно): основной язык, например `en` для английского или `zh` для китайского.
* **Письменность** (необязательно): система письма, например `Hant` для традиционных китайских иероглифов.
* **Регион** (необязательно): страна или регион, например `US` для Соединённых Штатов.

Коды могут быть общими или более конкретными:

* `zh` — это китайский.
* `zh-Hant` — это китайский, записанный традиционными иероглифами.
* `zh-Hant-HK` — это китайский, записанный традиционными иероглифами и используемый в Гонконге.

(Подробное описание см. в руководстве [Понимание кодов локалей](/docs/platform/core/guides/locale-codes) и в списке [Поддерживаемые локали](/docs/platform/dashboard/reference/supported-locales) с возможностью поиска).

### Исходная и целевые локали

* **Исходная локаль** — это язык, на котором написан ваш контент (его также называют локалью по умолчанию).
* **Целевая локаль** — это язык, на который вы переводите контент.

У большинства проектов есть одна исходная локаль и одна или несколько целевых локалей.

## Контекст перевода [#context]

**Контекст** подсказывает ИИ, как интерпретировать и переводить ваш продукт. Именно качественный контекст помогает переводам отражать ваш бренд, продукт и стиль, а не выглядеть как типичный машинный перевод.

Контекст помогает General Translation:

* Сохранять названия брендов и продуктов, которые никогда не следует переводить.
* Устранять неоднозначность слов — например, определять, означает ли &quot;cells&quot; комнаты, мобильные телефоны, бактерии или ячейки таблицы.
* Поддерживать единообразие терминологии и стиля во всей вашей организации и во всех проектах.

General Translation применяет контекст через **Контекстные группы**, которые объединяют две части:

* **Glossary** определяет ключевые термины: названия продуктов, названия функций и технические термины, для которых нужна единообразная трактовка.
* **Пользовательские подсказки** определяют стиль и тон: аудиторию, формальность, принятые соглашения и форматирование.

(См. [Определение контекста для переводов](/docs/platform/dashboard/guides/defining-context-for-translations), чтобы это настроить).

## Статический и динамический контент [#content]

Понимание разницы между статическим и динамическим контентом помогает определить, что следует переводить.

* **Статический контент** никогда не меняется: это обычный текст и строковые значения, которые разработчик может прочитать в исходном коде, например «Добро пожаловать в моё приложение!». Простое практическое правило: любой текст, который можно напрямую прочитать в исходном коде, является статическим — даже строки, которые отображаются только при определённых условиях. Статический контент переводится, если это не имя собственное.
* **Динамический контент** может меняться во время выполнения в зависимости от пользователя, окружения или данных: имя пользователя, email или баланс аккаунта. Его значение нельзя определить, просто читая исходный код. Когда динамический контент сводится к конечному набору известных случаев — например, к числу в единственном или множественном числе или к значению вроде *active* или *archived* — General Translation может разветвить обработку по этим случаям и сгенерировать корректный перевод для каждого из них, используя логические компоненты вроде [`<Plural>`](/docs/react/reference/components/plural) и [`<Branch>`](/docs/react/reference/components/branch), либо [`<Derive>`](/docs/react/reference/components/derive), чтобы перечислить все возможные значения и перевести каждый вариант. См. [Обработка форм множественного числа и ветвлений](/docs/react/guides/handling-plurals-and-branches).

### Переменные и форматирование

В библиотеках i18n вы оборачиваете динамические значения в компонент [`<Var>`](/docs/react/reference/components/var), чтобы они оставались неизменными независимо от языка:

```jsx
import { T, Var } from 'gt-next';

<T>
  Hello, <Var>{name}</Var>!
</T>;
```

Это даёт два преимущества: вы создаёте один перевод, например `¡Hola, {name}!`, вместо отдельного перевода для каждого возможного имени, а само имя никогда не преобразуется в переведённый вид.

Для значений, которые нужно отформатировать, но не переводить, — например, цен, дат и чисел — используйте вместо этого компоненты форматирования ([`<Currency>`](/docs/react/reference/components/currency), [`<DateTime>`](/docs/react/reference/components/datetime) и [`<Num>`](/docs/react/reference/components/num)). Все [`<Var>`](/docs/react/reference/components/var), [`<Currency>`](/docs/react/reference/components/currency), [`<DateTime>`](/docs/react/reference/components/datetime) и [`<Num>`](/docs/react/reference/components/num) доступны в `gt-next`, `gt-react` и `gt-react-native`.

### Личные данные

[`<Var>`](/docs/react/reference/components/var) также позволяет исключить из переводов личные данные — имена, электронные адреса, почтовые адреса или номер социального страхования. Контент, обёрнутый в [`<Var>`](/docs/react/reference/components/var), отображается как есть и никогда не отправляется в API General Translation.

*Примечание: исключение составляют вложенный* [`<T>`](/docs/react/reference/components/t) *внутри* [`<Var>`](/docs/react/reference/components/var) *(в котором переводятся children) или данные, которые вы сами отправляете в API изнутри* [`<Var>`](/docs/react/reference/components/var) *(например, через вызов fetch). Ни то ни другое не является предполагаемым способом использования* [`<Var>`](/docs/react/reference/components/var)*.*

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
