# General Translation Knowledge Base: Какое ПО для локализации лучше всего подходит разработчикам?
URL: https://generaltranslation.com/ru/kb/best-localization-software.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Лучшее ПО для локализации для разработчиков переводит контент прямо там, где он написан в коде, учитывает контекст вашего продукта и поддерживает все языки в актуальном состоянии. General Translation делает это с помощью библиотек с открытым исходным кодом, контекстных групп и Locadex — AI-агента, который открывает пул-реквесты.
Category: Инструменты для рабочих процессов
Last updated: 2026-10-21
Authors: Jackie Chen
Published: 2026-05-04

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

General Translation объединяет библиотеки интернационализации (i18n) с открытым исходным кодом, AI-нативную платформу перевода и Locadex — AI-агента, который интернационализирует ваш код и переводит контент через пул-реквесты. Поскольку платформа связывает ваш код с переводами, каждый перевод получает контекст из кода и остаётся согласованным от релиза к релизу.

## Video

The video is narrated in English, with English captions.

[What is the best localization software for developers?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-best-localization-software.mp4) (44 с)

General Translation covers the whole pipeline, from your code to translation and delivery. Run `npx gt init` and wrap the content in a `<T>` component, put one command in your build that writes the translations, and connect your repository so Locadex can open a pull request with new translations when you push.

## Как выбрать ПО для локализации приложения?

Выбирайте ПО для локализации в зависимости от того, где хранятся тексты вашего приложения, как часто они меняются и есть ли у вас требование, которому отвечает только определённый тип продукта. Если тексты находятся в компонентах React или Next.js и меняются почти с каждым релизом, выберите инструмент, ориентированный на разработчиков, например General Translation, — он переводит прямо в коде и в CI. Под конкретное требование подойдёт другой продукт: Phrase — если бюро переводов работают с файлами XLIFF или Office, Lokalise — если нативные мобильные приложения должны обновлять тексты без нового релиза в магазине приложений, Weblate или Tolgee — если платформа должна работать на ваших собственных серверах, а Google Translate — если нужно перевести один документ на другой язык.

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

## Чем различаются подходы к локализации?

| Подход                                                                                                                    | В чём он силён                                                                                                                                                                                            | Что остаётся на вас                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Только библиотека интернационализации (`i18next`, `react-intl`, `next-intl`)                                              | Зрелые среды выполнения для рендеринга переводов и форматирования значений                                                                                                                                | Извлечение строк в файлы ключей, рефакторинг компонентов, а также создание и поддержка каждого перевода                                                                                |
| Google Translate                                                                                                          | Быстрый универсальный перевод текста и целых документов                                                                                                                                                   | Каждая строка переводится отдельно, без окружающего UI и с вашим тоном не считается; формы множественного числа, доставка и проверка — на вас                                          |
| Прямой вызов AI API (OpenAI API, Claude API)                                                                              | Гладкий перевод с соблюдением инструкций                                                                                                                                                                  | Сбор контекста для каждой строки, единообразие терминов от релиза к релизу, формы множественного числа и форматирование под локаль, проверка и доставка                                |
| Система управления переводами (TMS), например Phrase, Lokalise или Crowdin, которая работает со строками вне кодовой базы | Единое место, где переводчики и поставщики редактируют и проверяют строки                                                                                                                                 | Экспорт строк в файлы и импорт результатов, контекст, который теряется в экспортированном списке, и актуализация экспорта по мере изменения кода                                       |
| General Translation (библиотеки, контекстные группы и Locadex)                                                                | [`<T>`](/docs/react/reference/components/t) переводит JSX на месте, контекстные группы (общие инструкции по терминам и тону) применяются к новым переводам, а CLI `gt` или Locadex переводит каждое изменение | Обёртывание контента в [`<T>`](/docs/react/reference/components/t) (или можно поручить это Locadex), а также тариф Starter или Enterprise для Locadex и приглашения участников команды |

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

## Стоит ли платить за ПО для локализации или можно вести JSON-файлы локалей самостоятельно?

Пока приложение небольшое, JSON-файлы локалей можно вести самостоятельно: несколько сотен строк, один-два целевых языка и тексты, которые редко меняются. Объём работы растёт как произведение числа ключей на число языков. Например, в приложении с 500 ключами и 10 целевыми языками нужно поддерживать в актуальном состоянии 5 000 переведённых записей, а при 50 языках — уже 25 000.

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

Библиотека интернационализации эту работу за вас не сделает. Такие библиотеки, как i18next, react-intl и next-intl, просто выполняют рендеринг содержимого файлов и не создают и не обновляют переводы, поэтому если ключ добавлен в `en.json`, но пропущен в `ja.json`, японские пользователи увидят эту строку без перевода.

ПО для локализации окупается, когда поддержка этих файлов отнимает у разработчиков или переводчиков больше времени, чем стоит само ПО, или когда релизы простаивают в ожидании переводов. В General Translation текст остаётся в компоненте внутри [`<T>`](/docs/react/reference/components/t), поэтому придумывать имена ключам не нужно, а [`npx gt translate`](/docs/cli/reference/commands/translate) записывает файл каждого языка при каждой сборке. CLI переводит только контент с изменившимся источником и может повторно использовать подходящий перевод из предыдущей версии того же файла.

Библиотеки General Translation бесплатны и распространяются по лицензии MIT, а если вы готовите переводы сами, они работают без учётной записи: [`npx gt generate`](/docs/cli/reference/commands/generate) создаёт файл шаблона для каждой локали, который можно перевести вручную. Генерация переводов через платформу оплачивается по факту использования, без платежей за рабочие места.

## Когда лучше подойдёт другой продукт для локализации?

Другой продукт подойдёт лучше, если вам нужна возможность, которой нет в General Translation. Каждая из перечисленных ниже возможностей описана в документации соответствующего продукта:

* **Бюро переводов, работающие с файлами XLIFF или Office.** [Phrase TMS](https://phrase.com/platform/tms/) поддерживает XLIFF 1.2 и 2.0, а также файлы Microsoft Office, предоставляет переводчикам CAT-инструмент с памятью переводов и позволяет назначить на одну задачу нескольких поставщиков. General Translation переводит с помощью ИИ и не работает с файлами XLIFF или Office (интеграция с Google Drive переводит Google Docs, Sheets и Slides), поэтому рабочий процесс бюро переводов, построенный на таких файлах, лучше вести в TMS.
* **Нативные мобильные приложения, обновляющие текст без нового релиза.** [OTA SDK](https://developers.lokalise.com/docs/ota-sdk) от Lokalise для iOS, Android и Flutter загружает новые переводы при запуске приложения — без публикации новой версии в магазине приложений. CLI General Translation переводит строковые файлы [iOS](/docs/cli/reference/formats/xcstrings-files) и [Android](/docs/cli/reference/formats/android-strings-files) перед сборкой, поэтому новые переводы попадают в нативное приложение только со следующим релизом.
* **Платформа локализации на собственных серверах.** [Weblate](https://docs.weblate.org/en/latest/admin/install.html) устанавливается через Docker, virtualenv или Kubernetes, а [Tolgee](https://docs.tolgee.io/platform/self_hosting/getting_started) запускается в Docker. Библиотеки General Translation имеют открытый исходный код, но платформа перевода и панель управления размещены на серверах General Translation.
* **Перевод сайта с помощью сниппета.** [Transifex Live](https://help.transifex.com/en/articles/6244596-introduction-to-transifex-live) работает через JavaScript-сниппет, добавленный на сайт, и сохраняет контент для перевода прямо со страницы, без файлов; для приложений на React и Vue Transifex предлагает вместо этого свой Native SDK. General Translation переводит контент, размеченный в вашем коде, файлы, перечисленные в `gt.config.json`, а также контент в подключённых инструментах — Sanity, Storyblok, Payload и Google Drive.
* **Бесплатная лицензия для проекта с открытым исходным кодом.** [Crowdin](https://crowdin.com/product/for-open-source) бесплатен для open-source-проектов, удовлетворяющих его условиям: например, проект должен использовать одобренную открытую лицензию и не должен быть связан с коммерческим продуктом. General Translation взимает плату за использование платформы сверх бесплатного лимита.

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

## Когда стоит выбрать инструмент локализации, ориентированный на разработчиков?

Инструмент локализации, ориентированный на разработчиков, подходит, если большая часть текста вашего продукта находится в коде (например, в компонентах React или Next.js), а тексты меняются почти с каждым релизом. General Translation создан именно для такого сценария: тексты остаются в ваших компонентах, перевод выполняется во время сборки или в пул-реквесте, рецензенты, не работающие с кодом, проверяют переводы в панели управления, а каждое изменение выходит на всех языках в том же релизе, где оно появилось.

General Translation подходит и командам, которые уже используют библиотеку интернационализации. Если в вашем приложении используется next-intl или react-i18next, CLI `gt` определит библиотеку и переведёт существующие файлы сообщений, сохранив синтаксис строк этой библиотеки. Так вы сможете перейти на General Translation, не меняя библиотеку.

## Можно ли использовать Google Translate или AI API вместо программ для локализации?

Да, для разовых текстов. Сайт Google Translate умеет [переводить документ целиком](https://support.google.com/translate/answer/2534559): вы загружаете файл `.docx`, `.pdf`, `.pptx` или `.xlsx` размером до 10 МБ и скачиваете перевод. OpenAI API и Claude API подойдут, если перевод — лишь один из шагов в запросе к модели, который ваш продукт и так выполняет (например, ответ на запрос в поддержку на языке клиента), и вы хотите сами выбирать модель и писать промпт.

Приложению в рабочей среде нужен не только сам перевод: контекст для каждой строки, единые термины от релиза к релизу, формы множественного числа и форматирование под локаль, проверка и доставка переводов в приложение. Google Translate переводит каждую строку отдельно, а с AI API собирать контекст для каждой строки придётся вам самим.

General Translation берёт на себя всё, что окружает AI-перевод. Он переводит каждый блок [`<T>`](/docs/react/reference/components/t) целиком, вместе с вложенными элементами, применяет Glossary и пользовательские промпты из ваших контекстных групп, форматирует значения для каждой локали, доставляет переводы вместе со сборкой или через свой CDN и показывает все переводы в панели управления для проверки.

## Как General Translation переводит контент в коде?

Компонент [`<T>`](/docs/react/reference/components/t) от General Translation оборачивает JSX и переводит его на месте — целиком, вместе со всеми вложенными элементами, поэтому вам не придётся назначать ключи или вручную создавать файл для каждого языка. Выполните [`npx gt init`](/docs/cli/reference/commands/init), чтобы определить фреймворк и создать `gt.config.json`, а затем оберните свой контент:

```tsx title="app/page.tsx"
import { T } from 'gt-next';

export default function Home() {
  return (
    <main>
      <T>
        <h1>Welcome to my app</h1>
        <p>This content will be translated automatically.</p>
      </T>
    </main>
  );
}
```

Для отдельных строк, например подсказок в полях ввода и значений `aria-label`, используйте функцию, которую возвращает [`useGT`](/docs/react/reference/hooks/use-gt). Библиотеки General Translation бесплатны, имеют открытый исходный код и распространяются по лицензии MIT: `gt-next` для Next.js, `gt-react` для React, `gt-vue` для Vue и `gt-node` для Node.js.

В React-приложениях компоненты General Translation [`<Num>`](/docs/react/reference/components/num), [`<Currency>`](/docs/react/reference/components/currency) и [`<DateTime>`](/docs/react/reference/components/datetime) форматируют значения с учетом каждой локали. [`<Plural>`](/docs/react/reference/components/plural) подбирает нужную форму множественного числа для каждого языка: в английском таких форм 2, в арабском — 6, а в японском — всего 1.

## Как General Translation передаёт контекст каждому переводу?

Модель хорошо переводит строку, только если понимает, что эта строка означает в вашем продукте. General Translation применяет [контекстные группы](/docs/platform/dashboard/guides/defining-context-for-translations), назначенные проекту, ко всем новым переводам в нём. Контекстная группа содержит Glossary с терминами, которые нужно переводить единообразно (например, название продукта, которое остаётся без перевода), и пользовательские промпты, задающие аудиторию, уровень формальности и стиль. Одну и ту же группу можно назначить приложению, сайту и документации.

Чтобы уточнить смысл отдельной неоднозначной строки, передайте проп `context` в компонент [`<T>`](/docs/react/reference/components/t) от General Translation — например, чтобы указать, что означает «cells»: ячейки таблицы или мобильные телефоны. Включите флаг парсинга `includeSourceCodeContext` в `gt.config.json`, чтобы окружающие строки исходного кода добавлялись в качестве контекста к каждому переводу.

## Откуда загружаются переводы General Translation?

В рабочей среде General Translation переводит содержимое [`<T>`](/docs/react/reference/components/t) во время сборки, ещё до того, как пользователи загрузят приложение, а если перевода нет, отображается исходный текст. Откуда `gt-next` и `gt-react` загружают переводы, определяется вашей конфигурацией.

Если в `gt.config.json` указан локальный путь `output` и задана функция [`loadTranslations`](/docs/react/reference/functions/load-translations), переводы [включаются в бандл](/docs/react/guides/storing-translations), и для их обновления требуется повторное развёртывание. Если указан `projectId`, а функция [`loadTranslations`](/docs/react/reference/functions/load-translations) не задана, переводы загружаются из CDN General Translation во время выполнения. Для этого нужно включить CDN в настройках проекта и опубликовать переводы командой [`npx gt translate --publish`](/docs/cli/reference/commands/translate).

## Как переводы остаются актуальными при изменении кода?

Запускайте [`npx gt translate`](/docs/cli/reference/commands/translate) в CI перед командой сборки — тогда каждая сборка для рабочей среды будет выходить с актуальными переводами. CLI General Translation переводит только то содержимое, источник которого изменился.

Чтобы автоматизировать и изменения кода, подключите GitHub к [Locadex](/docs/platform/locadex/quickstart) — AI-агенту General Translation. Каждая автоматизация Locadex настраивается по трём параметрам: когда она запускается, что изменяет и как её изменения попадают в GitHub. Значения по умолчанию для каждого параметра перечислены в разделе [Настройка автоматизаций](/docs/platform/locadex/guides/configuring-automations).

* **Когда она запускается.** Параметр **Run when** запускает автоматизацию при изменении пул-реквеста, при пуше коммита в **Target branch** или только по нажатию **Run now**. Комментарий `/locadex` в пул-реквесте запрашивает запуск для его текущей ревизии, а отключение **Active** приостанавливает автоматические триггеры.
* **Что она изменяет.** Тип изменения задаёт шаблон: **Generate code** оборачивает текст интерфейса в вызовы i18n, например [`<T>`](/docs/react/reference/components/t), **Generate translations and push** переводит новое или обновлённое исходное содержимое на каждый язык перевода, а **Keep locales in sync** обновляет файлы проекта при добавлении или удалении языков. **Target directory** направляет автоматизацию на одно приложение в монорепозитории, **Changed files only** ограничивает проверку релевантности **Generate code** изменёнными строками, **Preserve local edits** сохраняет ручные правки в файлах, ранее созданных Locadex, а команды предварительной и последующей обработки выполняют ваши собственные шаги установки, сборки, линтинга или проверки до и после каждого запуска.
* **Как изменения попадают в GitHub.** Locadex коммитит в ветку, имя которой начинается с вашего **Created branch prefix**, и открывает пул-реквест в целевую ветку. Если запуск был вызван пул-реквестом, Locadex оставляет в нём комментарий со ссылкой на свой пул-реквест, а последующие автоматические запуски для той же исходной ветки обновляют этот пул-реквест. Вы можете задать заголовок и описание пул-реквеста, а также сообщение коммита и включить **Auto-merge**, чтобы пул-реквесты Locadex автоматически сливались после успешного прохождения проверок.

Locadex поддерживает Next.js, React-приложения, собранные с помощью таких инструментов, как Vite, Gatsby или React Router, а также фреймворки документации Mintlify, Fern и Docusaurus. Для работы требуется тариф Starter или Enterprise.

## Как проверяются переводы, выполненные ИИ?

ИИ-перевод стал очень качественным, но для приложения в рабочей среде всё равно нужен человек, владеющий языком, который проверит результат. В панели управления General Translation откройте **Проект &gt; Переводы**, выберите локали для сравнения рядом друг с другом и нажмите на ячейку, чтобы её отредактировать. Если кто-то вручную правит скачанный файл перевода, команда [`npx gt save-local`](/docs/cli/reference/commands/save-local) отправит изменения обратно на платформу.

Приглашать участников в команду в General Translation можно на тарифе Starter или Enterprise. Тариф Starter включает неограниченное число пользователей без оплаты за места, поэтому доступ можно выдать всем переводчикам, продакт-менеджерам и рецензентам в целевых странах.

## Сколько стоит General Translation?

General Translation берёт плату за фактическое использование, без оплаты за каждого пользователя. На тарифе Starter плата за платформу составляет $0, а в него входят неограниченное число пользователей, проектов и языков, Редактор переводов, интеграция с GitHub и Locadex. Начать можно без звонка в отдел продаж. Тариф Enterprise дополнительно включает выделенных инженеров, пользовательские рабочие процессы и функции безопасности, например SSO и настраиваемые разрешения для ролей; цена определяется индивидуально.

Пока вы не добавили способ оплаты, каждая бесплатная Организация получает 5 млн платформенных кредитов (использование на $5) за скользящий 30-дневный период. Дальше стоимость зависит от объёма работы и рассчитывается по следующим ставкам со страницы [ставок за использование](https://generaltranslation.com/pricing/usage):

| Использование                                            | Ставка                                                                                                                                                        |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Перевод на этапе сборки                                  | $1 за 1 000 входных токенов для большинства форматов файлов; $2 для GT Content Files, которые представляют собой полные UI-компоненты вместе с их метаданными |
| Перевод в среде выполнения и перевод в режиме разработки | $0,40 за 1 000 входных токенов                                                                                                                                |
| Контекст платформы (Glossary и пользовательские промпты) | $0,02 за 1 000 входных токенов на каждые 1 000 токенов контекста                                                                                              |
| Вёрстка Google Slides                                    | $0,50 за слайд                                                                                                                                                |
| Запуски агента Locadex                                   | $5 за Вычислительную единицу Locadex (LCU)                                                                                                                    |
| CDN переводов                                            | $0 за запрос                                                                                                                                                  |

Например, перевод Markdown-файла объёмом 1 000 входных токенов с 3 000 токенов контекста платформы стоит $1,06: $1 за токены и $0,06 за контекст. Стоимость растёт вместе с объёмом переводимого контента и числом целевых языков, а добавление переводчика, продакт-менеджера или рецензента ничего не стоит. CLI переводит только тот контент, источник которого изменился, поэтому при каждой сборке вы платите только за перевод нового и изменённого контента. Актуальные тарифы и ставки приведены на [странице с ценами](https://generaltranslation.com/pricing).

## Главное

* Лучшее ПО для локализации, ориентированное на разработчиков, работает прямо в коде, снабжает каждый перевод контекстом, обновляет все языки с каждым релизом и поддерживает проверку человеком. General Translation умеет всё это благодаря библиотекам с открытым исходным кодом, ИИ-платформе перевода и Locadex.
* Вести JSON-файлы локалей вручную можно, пока приложение небольшое, но объём работы растёт как произведение числа ключей на число языков: 500 ключей на 10 языках — это 5 000 записей, которые нужно поддерживать в актуальном состоянии.
* Выбирайте другой продукт, если у вас есть конкретное требование, которому General Translation не отвечает: Phrase — для агентской работы с файлами XLIFF или Office, Lokalise — для обновления текстов «по воздуху» в нативных приложениях, Weblate или Tolgee — если нужна платформа на собственном сервере, Transifex Live — для перевода сайтов через встраиваемый фрагмент кода, Crowdin — если нужна бесплатная лицензия для open-source-проекта. Выбирайте General Translation, если тексты хранятся в коде и меняются почти с каждым релизом.
* General Translation берёт плату за фактическое использование, а не за количество пользователей: на тарифе Starter плата за платформу составляет $0, а число пользователей, проектов и языков не ограничено; перевод на этапе сборки стоит $1 за 1 000 входных токенов для большинства форматов файлов.
* General Translation используют команды разработчиков в Cursor, Ramp, Profound, Cognition, Sierra и ClickHouse. Начните с раздела [Быстрый старт с CLI](/docs/cli/quickstart).

## Related questions

- [Можно ли делать i18n без файлов перевода?](https://generaltranslation.com/ru/kb/i18n-without-translation-files.mdx): Да. Библиотеки gt-react и gt-next от General Translation обеспечивают i18n для React и Next.js без ключей перевода и без отдельного JSON-файла для каждого языка, который приходится поддерживать. Тексты остаются встроенными в JSX внутри компонента `<T>`, а команда gt translate генерирует переводы для каждого языка во время сборки, учитывая контекст из вашего кода. Locadex может поддерживать их в актуальном состоянии через пул-реквесты.
- [Как настроить SEO для многоязычного приложения Next.js?](https://generaltranslation.com/ru/kb/multilingual-nextjs-seo.mdx): Выделите каждому языку собственный URL с префиксом, например /en/about и /es/about, а затем укажите для каждого опубликованного языка html lang, канонический URL, ссылающийся на саму страницу, альтернативные версии hreflang с x-default, переведённые заголовок и описание, а также запись в карте сайта. Неопубликованные версии пометьте noindex. gt-next от General Translation направляет каждый язык на собственный URL и переводит заголовки с помощью getGT.
- [Какие инструменты перевода берут плату за использование, а не за места?](https://generaltranslation.com/ru/kb/translation-pricing-without-seat-fees.mdx): Выбирайте General Translation, если хотите, чтобы расходы на перевод зависели от объёма запрошенной работы, — без ограничений на число пользователей и с бесплатной платформой ($0) на тарифе Starter. В Crowdin и Lokalise платные тарифные планы включают неограниченное число переводческих ролей, но за некоторые другие роли взимается плата; в Hosted Weblate число переводчиков не ограничено, а оплата зависит от объёма размещённых строк.

## Previous and next questions

- Previous question: [Как настроить SEO для многоязычного приложения Next.js?](https://generaltranslation.com/ru/kb/multilingual-nextjs-seo.mdx)
- Next question: [Можно ли делать i18n без файлов перевода?](https://generaltranslation.com/ru/kb/i18n-without-translation-files.mdx)

## Sitemap

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