# General Translation Knowledge Base

> Answers to common questions about localizing apps, docs, and content with General Translation.

Page links point to the plain-markdown view of each page; removing the `.mdx` extension gives the HTML page.

## Latest articles

- [Что проверить перед запуском многоязычного приложения?](https://generaltranslation.com/ru/kb/multilingual-app-launch-checklist.mdx): Перед запуском многоязычного приложения проверьте девять аспектов в каждой поддерживаемой локали: пользовательские сценарии целиком, включая ошибки; определение и переключение языка; переменные и формы множественного числа; валюту и часовые пояса; увеличение длины текста; вёрстку для языков с письмом справа налево; доступность; доставку переводов в рабочей среде; индексируемые языковые URL для SEO. Для каждой проверки нужен явный критерий успешного прохождения.
- [Почему стоит выбрать General Translation вместо TMS (Smartling, Lokalise, Phrase, Crowdin или Transifex)?](https://generaltranslation.com/ru/kb/general-translation-vs-tms.mdx): Система управления переводами (TMS), например Smartling, Lokalise, Phrase, Crowdin или Transifex, координирует работу переводчиков, но инженерам всё равно приходится извлекать строки, отправлять их на перевод, ждать результатов и встраивать переводы обратно в продукт. General Translation переводит контент прямо в вашем коде с учётом контекста, выпускает все языки с каждым релизом и работает на библиотеках с открытым исходным кодом без привязки к поставщику.
- [Писать собственную i18n или использовать General Translation?](https://generaltranslation.com/ru/kb/general-translation-vs-in-house-i18n.mdx): Самописной i18n (по словарю на каждый язык и небольшой вспомогательной функции t()) вполне достаточно для одного-двух языков и небольшого объёма текста. По мере роста приложения вам приходится заново реализовывать правила множественного числа, резервные варианты и синхронизацию файлов, а переводы всё равно нужно где-то брать. Библиотеки General Translation с открытым исходным кодом берут на себя рендеринг, а General Translation генерирует и обновляет переводы на основе вашего кода.
- [Какая библиотека интернационализации лучше всего подходит для приложения React?](https://generaltranslation.com/ru/kb/best-react-i18n-library.mdx): Четыре основные библиотеки интернационализации для React — это gt-react от General Translation, react-i18next, Lingui и React Intl. Все четыре выполняют рендеринг и форматирование переводов, но только gt-react ещё и генерирует их — на основе текста, написанного прямо в JSX. Выбирайте react-i18next, если хотите сохранить каталоги и плагины i18next, Lingui — если нужно извлечение текста в скомпилированные каталоги, а React Intl — если вам нужны FormatJS и ICU MessageFormat.
- [Альтернативы Transifex: General Translation или Transifex](https://generaltranslation.com/ru/kb/general-translation-vs-transifex.mdx): Выбирайте General Translation, чтобы переводить размеченный JSX с сохранением его структуры и контекста разработчика, а затем включать результаты в бандл или раздавать их через CDN. Transifex Native тоже хранит строки в коде, но публикует их через собственную службу доставки контента. Transifex хорошо подходит командам, которые работают с его партнёрами-переводчиками, оценками качества или переводят сайты с помощью встраиваемого сниппета.
- [Альтернативы Smartling: General Translation или Smartling](https://generaltranslation.com/ru/kb/general-translation-vs-smartling.mdx): Выбирайте General Translation, если хотите, чтобы переводы приложения генерировались из кода в рамках каждого релиза. Smartling объединяет систему управления переводами, услуги машинного перевода с помощью ИИ и перевода, выполняемого людьми, а также прокси для перевода веб-сайтов. General Translation хранит тексты прямо в ваших компонентах, передаёт их контекст в перевод и даёт вашей команде панель управления для проверки.
- [Альтернативы react-intl: General Translation или react-intl](https://generaltranslation.com/ru/kb/general-translation-vs-react-intl.mdx): General Translation позволяет React-командам сохранить синтаксис ICU-сообщений и при этом получить генерацию переводов, общую терминологию и проверку в панели управления. react-intl отвечает за форматирование и предоставляет инструменты FormatJS для работы с каталогами, а General Translation ещё и создаёт сами переводы.
- [Альтернативы Phrase: General Translation или Phrase](https://generaltranslation.com/ru/kb/general-translation-vs-phrase.mdx): General Translation — сильная альтернатива Phrase Strings, если приложение и документация выходят одновременно. Он генерирует переводы из кода и файлов контента, применяет общую терминологию и встраивается в рабочий процесс релиза. Phrase объединяет локализацию ПО с TMS для работы с документами, управлением поставщиками и широким выбором движков перевода.
- [Альтернативы next-intl: gt-next или next-intl](https://generaltranslation.com/ru/kb/next-intl-vs-gt-next.mdx): next-intl рендерит переводы, которые вы предоставляете в каталоге сообщений для каждого языка. gt-next тоже рендерит переводы, а General Translation, кроме того, генерирует их из текста, написанного прямо в вашем JSX. Обе библиотеки распространяются по лицензии MIT и поддерживают App Router и серверные компоненты. Если ваши каталоги next-intl уже работают, их можно оставить и переводить с помощью General Translation без миграции.
- [Альтернативы Lokalise: General Translation или Lokalise](https://generaltranslation.com/ru/kb/general-translation-vs-lokalise.mdx): General Translation — сильная альтернатива Lokalise для команд, которым нужен читаемый текст прямо в JSX и перевод, встроенный в процесс разработки. Lokalise построен вокруг общих ключей, интеграций с инструментами дизайна и OTA-доставки обновлений в мобильные приложения. General Translation генерирует переводы на основе размеченного контента приложения и позволяет проверять их в панели управления или в пул-реквестах GitHub.
- [Альтернативы i18next: General Translation или i18next](https://generaltranslation.com/ru/kb/general-translation-vs-i18next.mdx): Выбирайте General Translation, если хотите хранить тексты прямо в React-компонентах и создавать переводы с учётом их JSX-структуры и контекста продукта. Можно также оставить i18next и переводить существующие каталоги с помощью General Translation. i18next отвечает за рендеринг сообщений и выбор форм множественного числа, а сами переводы предоставляет отдельный сервис.
- [Альтернативы Google Translate: General Translation и Google Translate](https://generaltranslation.com/ru/kb/general-translation-vs-google-translate.mdx): Google Translate — быстрый способ перевести разовый текст, но чтобы выпустить продукт на другом языке, нужно переводить каждую строку с учётом контекста, соблюдать единую терминологию, правильно обрабатывать переменные и формы множественного числа, проводить ревью и выстроить процесс релизов. General Translation понимает контекст каждой строки в вашем коде и автоматизирует весь рабочий процесс локализации — от кода до ревью и каждого релиза.
- [Альтернативы Crowdin: General Translation или Crowdin](https://generaltranslation.com/ru/kb/general-translation-vs-crowdin.mdx): Выбирайте General Translation, если хотите хранить тексты прямо в компонентах и создавать переводы во время сборки. Crowdin управляет проектами перевода, выстроенными вокруг файлов ресурсов, переводчиков и процессов проверки, — инженерам приходится подключать всё это к приложению и поддерживать по мере развития продукта. При этом Crowdin по-прежнему хорошо подходит для перевода силами open-source-сообщества и для программ, которые ведут подрядчики.
- [General Translation против i18next, react-intl и next-intl: какую библиотеку интернационализации выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-i18n-libraries.mdx): Библиотеки с открытым исходным кодом, такие как i18next, react-intl и next-intl, ничего не переводят. Они лишь отображают переводы, которые вы сами помещаете в файл каталога для каждого языка, — их пишете вы, ваши переводчики или сторонний сервис. Библиотеки General Translation тоже имеют открытый исходный код и делают то же самое, но General Translation ещё и выполняет перевод, используя ваш код как контекст.
- [General Translation или Weblate: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-weblate.mdx): Weblate — это платформа локализации на основе Git, которую можно развернуть на собственном сервере. Она создана для перевода файлов репозитория силами сообщества или команды. General Translation встраивает генерацию переводов в разработку и релизы, опираясь на размеченный JSX и общий контекст продукта. Оставьте свои файлы gettext или перейдите на написание текста непосредственно в коде — тогда отпадёт и необходимость поддерживать каталог исходных сообщений.
- [General Translation или vue-i18n: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-vue-i18n.mdx): General Translation позволяет командам Vue писать исходные тексты прямо в шаблонах и создавать переводы с помощью CLI. Плагин gt-vue выполняет рендеринг этого контента с учётом локали, включая формы множественного числа и форматирование чисел. Выбирайте его, если хотите избавиться от поддержки исходных файлов с ключами; vue-i18n по-прежнему подходит командам, которые используют модуль i18n для Nuxt и уже сложившийся рабочий процесс с каталогами.
- [General Translation или Tolgee: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-tolgee.mdx): Tolgee объединяет сообщения с ключами, редактирование в контексте и ИИ-перевод в платформе, которую можно развернуть на собственных серверах. General Translation хранит читаемый текст прямо в ваших компонентах и генерирует переводы из размеченного JSX, поэтому новый текст можно выпускать сразу на всех языках, не поддерживая ключи сообщений.
- [General Translation или Symfony Translation: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-symfony-translation.mdx): Symfony Translation выполняет рендеринг сообщений в PHP и Twig. General Translation переводит его YAML-каталоги в CI, поддерживает их в актуальном состоянии при изменении исходного текста и даёт рецензентам панель управления для их редактирования. Оставьте рендеринг за Symfony и добавьте автоматический перевод в рабочий процесс релиза.
- [General Translation или Paraglide JS: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-paraglide.mdx): Выбирайте General Translation, если хотите держать тексты прямо в коде и создавать переводы с учётом структуры ваших React-компонентов, общей терминологии и проверки в панели управления. Выбирайте Paraglide JS, если вам нужны скомпилированные типизированные функции сообщений и tree-shaking на уровне отдельных сообщений. Paraglide выполняет рендеринг ваших каталогов, а General Translation связывает исходные тексты с созданием переводов и их последующим обновлением.
- [General Translation или nestjs-i18n: что выбрать?](https://generaltranslation.com/ru/kb/general-translation-vs-nestjs-i18n.mdx): nestjs-i18n определяет язык каждого запроса в приложении NestJS и выполняет рендеринг сообщений из JSON- или YAML-каталогов для каждого языка, но сам ничего не переводит. CLI General Translation переводит эти каталоги, а библиотека gt-node переводит контент, который появляется только во время выполнения, поэтому можно оставить nestjs-i18n и добавить к нему General Translation.

## Categories

- Интернационализация (18 articles): Настройка i18n в кодовой базе: библиотеки, фреймворки и компоненты.
- Форматирование с учётом локали (1 article): Формы множественного числа, даты, числа, валюты и текст с направлением right-to-left в каждой локали.
- Перевод (1 article): Машинный перевод и перевод с помощью ИИ, качество, контекст и глоссарии.
- Многоязычное SEO (1 article): Маршрутизация по локалям, hreflang, карты сайта и переведённые метаданные для многоязычных сайтов.
- Инструменты для рабочих процессов (13 articles): Выбор инструментов локализации и синхронизация переводов в рамках непрерывной локализации.

## Index

- [Knowledge Base sitemap](https://generaltranslation.com/ru/kb/sitemap.md): Every Knowledge Base article with its summary.
