# General Translation Knowledge Base: Альтернативы Google Translate: General Translation и Google Translate
URL: https://generaltranslation.com/ru/kb/general-translation-vs-google-translate.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Google Translate — быстрый способ перевести разовый текст, но чтобы выпустить продукт на другом языке, нужно переводить каждую строку с учётом контекста, соблюдать единую терминологию, правильно обрабатывать переменные и формы множественного числа, проводить ревью и выстроить процесс релизов. General Translation понимает контекст каждой строки в вашем коде и автоматизирует весь рабочий процесс локализации — от кода до ревью и каждого релиза.
Category: Перевод
Last updated: 2026-10-16
Authors: General Translation Team
Published: 2026-10-16

Google Translate позволяет быстро прочитать страницу на другом языке или разово перевести абзац. Самое сложное в локализации продукта — переводить каждую строку в том значении, которое она имеет в вашем UI, сохранять единую терминологию от релиза к релизу и доставлять переводы туда, откуда их загружает приложение. Как бы вы ни использовали Google Translate для приложения, часть этой работы всё равно ляжет на вас.

## Три способа перевести приложение с помощью Google Translate

### Перевод страницы в браузере посетителя

Chrome предлагает перевести страницы на языках, которые пользователь не знает. Перевод выполняется в браузере посетителя после загрузки страницы: скрипт перевода Google заменяет текст страницы переведённым текстом, обёрнутым в элементы `<font>`. Вы не видите и не проверяете результат, а у переведённой версии нет отдельного URL, который могли бы проиндексировать поисковые системы, — хотя Google рекомендует размещать каждую языковую версию многоязычного сайта по собственному URL ([Managing multilingual sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)).

Кроме того, такая подмена текста может ломать React-приложения. React хранит ссылки на отрендеренные им текстовые узлы, поэтому, когда перевод их заменяет, следующее обновление может завершиться ошибкой `NotFoundError: Failed to execute 'removeChild' on 'Node'`. Мейнтейнеры React закрыли соответствующий issue ([react#11538](https://github.com/react/react/issues/11538)) ещё в 2018 году, пояснив, что сам React не может обойти эту проблему, не маскируя другие ошибки и не замедляя типичные сценарии. Элементы с атрибутом `translate="no"` переводчик не трогает.

### Добавление виджета Website Translator

Встраиваемый виджет Website Translator от Google разрешено использовать только на академических, государственных, некоммерческих и прочих сайтах, не ведущих коммерческую деятельность, поэтому компания не может добавить его в свой продукт ([Справка Google Переводчика](https://support.google.com/translate/answer/2534559?co=GENIE.Platform%3DDesktop)).

### Вызов Cloud Translation API

Cloud Translation API — вариант, рассчитанный на разработчиков. Он сохраняет HTML-теги в неизменном виде. При обработке HTML редакция Advanced пропускает текст, помеченный `translate="no"` или `class="notranslate"`, а также поддерживает глоссарии, адаптивный перевод на основе примеров пар предложений и Translation LLM на базе Gemini. В запросе передаются текст, языки и, при необходимости, модель и глоссарий:

```json title="translateText request body"
{
  "contents": ["Save"],
  "mimeType": "text/plain",
  "sourceLanguageCode": "en",
  "targetLanguageCode": "de"
}
```

Поля, указывающего, где встречается строка, нет. По-немецки «Save» — это *speichern* (сохранить файл) или *sparen* (сэкономить), а запрос из одного слова не даёт модели никаких оснований для выбора. Остальную часть конвейера придётся строить самостоятельно: извлекать строки из i18n-файлов, защищать подсказки вроде `{{count}}`, формировать формы множественного числа для каждого языка, записывать результаты обратно, перезапускать перевод при каждом изменении и дать рецензентам возможность исправлять результат так, чтобы следующий запуск не перезаписал правки. Если вы показываете результат пользователям, Google также требует указывать авторство: значок «powered by Google Translate» рядом с результатами, оговорку для неотредактированного перевода и разметку машинного перевода на страницах, которые индексируются поисковыми системами ([требования к указанию авторства](https://docs.cloud.google.com/translate/attribution)).

## Сравнение вариантов

| Подход                | Контекст для каждой строки                                                    | Переменные и формы множественного числа                                                                                                                                 | Поисковые системы                                                                  | Проверка и обновления                                                                                             |
| --------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Перевод в браузере    | Видимый текст страницы                                                        | Переводятся как обычный текст                                                                                                                                           | Индексировать нечего                                                               | Без проверки; перевод выполняется заново в браузере каждого посетителя                                            |
| Cloud Translation API | Текст, а также необязательный глоссарий или примеры пар переводов             | Вы сами защищаете подсказки и составляете формы множественного числа для каждого языка                                                                                | Индексируется, если опубликовать каждый язык по отдельному URL                     | Вы сами перезапускаете скрипт и выстраиваете процесс проверки                                                     |
| General Translation   | Окружающий JSX, заметка с контекстом, ваш Glossary и пользовательские промпты | Значения [`<Var>`](/docs/react/reference/components/var) не переводятся, а ветви [`<Plural>`](/docs/react/reference/components/plural) переводятся целыми предложениями | Индексируется благодаря маршрутизации по локалям в `gt-next`, например `/es/about` | Каждая сборка или пул-реквест Locadex переводит только изменения, а проверяющие вносят правки в панели управления |

Google Translate подходит, чтобы прочитать контент на иностранном языке или разово перевести внутренний текст. Cloud Translation API подойдёт, если вам нужен «сырой» машинный перевод, а контекст, подсказки, формы множественного числа, проверку и атрибуцию вы готовы реализовать самостоятельно. General Translation стоит выбрать, когда переводы входят в ваш продукт — например, UI приложения, документация или маркетинговый сайт, которые должны звучать естественно на каждом языке и оставаться актуальными с каждым релизом.

## Чем отличается General Translation

General Translation создан для тех задач локализации, которые Google Translate оставляет на вас. Его отличают две вещи:

* **Он учитывает весь контекст.** Запрос к Cloud Translation содержит только текст и языки, плюс необязательный глоссарий. General Translation переводит каждую строку с учётом её места в вашем продукте: окружающего компонента и элементов, переменных и форм множественного числа в предложении, добавленных вами заметок с контекстом, а также вашего Glossary и пользовательских промптов. Контекстная группа применяет одни и те же термины и тон ко всем проектам, которым она назначена, поэтому ваше приложение, документация и маркетинговый сайт говорят на одном языке.
* **Он автоматизирует весь рабочий процесс локализации.** Библиотеки с открытым исходным кодом интернационализируют ваш код на React, Next.js, Vue и Node.js, а для приложений на Next.js и React этот код может написать за вас [Locadex](/docs/platform/locadex/quickstart) — AI-агент General Translation. [`npx gt translate`](/docs/cli/reference/commands/translate) запускается в процессе сборки или в CI и записывает переводы в ваш репозиторий или в CDN General Translation, ревьюеры редактируют их на странице **Переводы** в панели управления, а каждый релиз выходит сразу на всех языках.

Вот как контекст выглядит в коде. На бейдже этого переключателя оплаты написано «Save 20%»:

```tsx title="BillingToggle.tsx"
import { T, Var } from 'gt-react';

export function BillingToggle({ discount }: { discount: string }) {
  return (
    <T context="Pricing page billing toggle. Save means pay less, not store data.">
      <button>Yearly</button>
      <span className="badge">Save <Var>{discount}</Var></span>
    </T>
  );
}
```

[`<T>`](/docs/react/reference/components/t) отправляет блок целиком — вместе с его элементами (кнопкой и бейджем) и заметкой [`context`](/docs/react/reference/components/t#context), — поэтому при переводе можно правильно понять смысл слова «Save» и поставить скидку туда, где её принято ставить в каждом языке. [`<Var>`](/docs/react/reference/components/var) содержит подсказку для скидки, а само её значение никогда не отправляется в API General Translation. Glossary закрепляет термины, например названия продуктов, во всех языках, а пользовательские промпты задают правила — скажем, вежливое обращение «Sie» в немецком. (См. [Определение контекста для переводов](/docs/platform/dashboard/guides/defining-context-for-translations) и [Проверка и редактирование переводов](/docs/platform/dashboard/guides/reviewing-translations).) Контент, который появляется только во время выполнения, например пользовательский текст или текст из CMS, переводится по запросу с помощью [`tx`](/docs/node/reference/functions/tx) из `gt-node`.

General Translation поддерживает более 120 локалей. Начните с [Быстрого старта Next.js](/docs/react/nextjs-quickstart) или [Быстрого старта React](/docs/react/react-quickstart).

## Ключевые выводы

* Google Translate хорошо переводит текст. Однако браузерный перевод не даёт возможности проверить результат, не создаёт индексируемых страниц и может ломать React-приложения, а виджет Website Translator разрешено использовать только на некоммерческих сайтах.
* В запросе к Cloud Translation API нет поля, указывающего, где отображается строка, а подсказки, формы множественного числа, проверку, доставку и атрибуцию придётся реализовывать самостоятельно.
* General Translation понимает контекст каждой строки в вашем коде и автоматизирует весь рабочий процесс вокруг перевода: от интернационализации кода и проверки до выпуска каждого релиза на всех языках.

## Related questions

- [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 вместо TMS (Smartling, Lokalise, Phrase, Crowdin или Transifex)?](https://generaltranslation.com/ru/kb/general-translation-vs-tms.mdx): Система управления переводами (TMS), например Smartling, Lokalise, Phrase, Crowdin или Transifex, координирует работу переводчиков, но инженерам всё равно приходится извлекать строки, отправлять их на перевод, ждать результатов и встраивать переводы обратно в продукт. General Translation переводит контент прямо в вашем коде с учётом контекста, выпускает все языки с каждым релизом и работает на библиотеках с открытым исходным кодом без привязки к поставщику.
- [Как перевести условный текст в JSX?](https://generaltranslation.com/ru/kb/translate-conditional-jsx.mdx): Не переводите каждую ветвь тернарного оператора по отдельности — оберните всё предложение в компонент `<T>` и задайте условие с помощью `<Branch>`. Так переводчик увидит полный контекст и сможет перестроить предложение для каждого языка.
- [Как работать с формами множественного числа в React?](https://generaltranslation.com/ru/kb/how-to-handle-plurals-in-react.mdx): Не зашивайте логику выбора формы множественного числа в код с помощью проверок вроде n === 1. Для приложений только на английском хватит небольшой вспомогательной функции, но многоязычным приложениям нужны locale-aware правила множественного числа. С ними для любого языка справляется i18n-компонент, например `<Plural>` из gt-react или gt-next.
- [Как настроить SEO для многоязычного приложения Next.js?](https://generaltranslation.com/ru/kb/multilingual-nextjs-seo.mdx): Выделите каждому языку собственный URL, задайте атрибут lang у тега html, укажите для каждой страницы канонический URL, ведущий на неё саму, добавьте альтернативные версии hreflang для всех языков, переведите заголовки и описания и перечислите все языковые версии в карте сайта.

## Previous and next questions

- Previous question: [Альтернативы Crowdin: General Translation или Crowdin](https://generaltranslation.com/ru/kb/general-translation-vs-crowdin.mdx)
- Next question: [Альтернативы i18next: General Translation или i18next](https://generaltranslation.com/ru/kb/general-translation-vs-i18next.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/ru/kb/sitemap.md) for every article.
