# General Translation Knowledge Base: Как перевести приложение на React Native?
URL: https://generaltranslation.com/ru/kb/translate-react-native-app.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Разметьте текст в компонентах, сгенерируйте файл перевода для каждого языка, добавьте полифилы Intl и загружайте файл для языка устройства. С экспериментальной библиотекой gt-react-native от General Translation вы оборачиваете текст в `<T>`, Babel-плагин добавляет полифилы, а npx gt translate создаёт файлы.
Category: Интернационализация
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Чтобы перевести приложение на React Native, нужно разметить текст в компонентах, подготовить перевод для каждого языка и загружать тот, который соответствует языку устройства. Среда выполнения JavaScript в React Native не поставляется с полным набором API `Intl` для форматирования чисел, дат и форм множественного числа, поэтому приложению нужны полифилы. Сборщик Metro не умеет разрешать вычисляемые пути импорта, поэтому каждый файл перевода нужно подключать статическим вызовом `require`. Наконец, с каждым релизом появляются новые строки, которые нужно перевести на все языки до его выхода.

## Video

The video is narrated in English, with English captions.

[How do I translate a React Native app?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translate-react-native-app.mp4) (47 с)

General Translation lets you translate a React Native app with `gt-react-native` and `T`. Add its Babel plugin, call `initializeGT` with `loadTranslations`, mark the welcome with `<T>`, run `npx gt translate`, and run it as a development build.

## Способы перевести приложение React Native

| Подход                                                                                                                                                | Сильные стороны                                                                                                                                                                                                                                                                        | Что остаётся на вас                                                                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Только библиотека интернационализации (i18n) ([`i18next`](/kb/general-translation-vs-i18next), [`react-intl`](/kb/general-translation-vs-react-intl)) | Зрелые среды выполнения для рендеринга переводов и форматирования значений                                                                                                                                                                                                             | Перенос каждой строки в файлы с ключами, замена текста в каждом `<Text>` на поиск по ключу, добавление полифилов `Intl`, а также создание и поддержка всех переводов |
| `expo-localization` или `react-native-localize`                                                                                                       | Считывают предпочитаемые языки и региональные настройки устройства, чтобы приложение могло выбрать начальную локаль                                                                                                                                                                    | Всё остальное: библиотека для поиска строк, файлы перевода, формы множественного числа и все переводы                                                                |
| Система управления переводами ([Crowdin](/kb/general-translation-vs-crowdin), [Lokalise](/kb/general-translation-vs-lokalise))                        | Веб-редактор, синхронизированный с вашим репозиторием, где переводчики работают со скриншотами, глоссарием и памятью переводов                                                                                                                                                         | Библиотека интернационализации и файлы с ключами в приложении, настройка синхронизации и ожидание переводчиков перед каждым релизом                                  |
| General Translation (`gt-react-native` и CLI `gt`)                                                                                                    | [`<T>`](/docs/react/reference/components/t) переводит `<Text>` на месте без ключей, Babel-плагин добавляет полифилы `Intl`, а [`npx gt translate`](/docs/cli/reference/commands/translate) создаёт по одному файлу на каждый язык с учётом вашего Glossary и пользовательских промптов | Пакет экспериментальный, а приложениям Expo нужна сборка для разработки, поскольку Expo Go не может загрузить нативный модуль пакета                                 |

Если в приложении всего несколько экранов и один-два целевых языка или если вашей команде нужно и дальше тестировать в Expo Go, достаточно одной библиотеки интернационализации с переводами, написанными вручную; чтобы выбрать начальный язык, дополните её `expo-localization` или `react-native-localize`. Система управления переводами подойдёт, если команда локализации вручную переводит каждый релиз. General Translation стоит выбрать, если тексты меняются с каждым релизом и все языки должны успевать за изменениями. Если вы уже используете `i18next`, CLI `gt` может переводить его JSON-файлы.

## Перевод приложения React Native с помощью General Translation

Пакет `gt-react-native` от General Translation находится в экспериментальной стадии и работает как с Expo, так и с React Native CLI без надстроек.

1. Установите `gt-react-native` и CLI `gt`, затем перечислите нужные языки в `gt.config.json`.

2. Подключите Babel-плагин из пакета: он добавляет полифилы `Intl` во входной файл.

3. Один раз вызовите [`initializeGT`](/docs/react/reference/config#initialize), передав функцию [`loadTranslations`](/docs/react/reference/functions/load-translations), и оберните приложение в [`<GTProvider>`](/docs/react/reference/components/gt-provider) — он определяет локаль по настройкам устройства.

4. Оберните текст в [`<T>`](/docs/react/reference/components/t) — ключи не нужны:

   ```tsx
   import { T } from 'gt-react-native';

   <T>
     <Text>Welcome back</Text>
     <Text>Your order is on its way.</Text>
   </T>;
   ```

5. Войдите в систему с помощью [`npx gt login`](/docs/cli/reference/commands/login) и укажите идентификатор проекта.

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

Назначьте мобильному и веб-проекту одну и ту же контекстную группу (ваш Glossary и пользовательские промпты), чтобы терминология и тон в них совпадали. Подробные инструкции приведены в разделе [Быстрый старт с React Native](/docs/react/react-native-quickstart).

## Related questions

- [Как перевести React-приложение?](https://generaltranslation.com/ru/kb/translate-react-app.mdx): Перевод React-приложения состоит из двух этапов — интернационализации компонентов, чтобы они отображались на языке пользователя, и перевода каждой строки на все поддерживаемые языки. gt-react от General Translation переводит JSX на месте в компоненте `<T>`, а npx gt translate создаёт по одному файлу на каждый язык.
- [Как добавить i18n в приложение Next.js на App Router?](https://generaltranslation.com/ru/kb/add-i18n-to-nextjs.mdx): Начните с gt init, чтобы настроить General Translation в поддерживаемом проекте на App Router, затем разметьте исходное содержимое, создайте переводы и проверьте переключение языка. gt-next хранит тексты прямо в JSX вместе с контекстом перевода, а CLI, редактор в панели управления и Locadex берут на себя генерацию, проверку и последующие обновления. В этом руководстве также показана явная настройка с локальными файлами.
- [Можно ли делать 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 может поддерживать их в актуальном состоянии через пул-реквесты.
- [Как работать с формами множественного числа в React?](https://generaltranslation.com/ru/kb/how-to-handle-plurals-in-react.mdx): Чтобы работать с формами множественного числа в React, задайте для каждого языка по одному предложению на каждую форму множественного числа и выбирайте нужное по правилам множественного числа этого языка — ведь в английском 2 формы, в русском 4, а в арабском 6. Компонент `<Plural>` от General Translation в gt-react и gt-next принимает формы на исходном языке, а General Translation генерирует формы, нужные каждому языку перевода.

## Previous and next questions

- Previous question: [Как перевести приложение на Node.js?](https://generaltranslation.com/ru/kb/translate-node-app.mdx)
- Next question: [Как перевести приложение на Vue?](https://generaltranslation.com/ru/kb/translate-vue-app.mdx)

## Sitemap

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