# General Translation React SDKs (gt-react, gt-next, gt-react-native): Устранение неполадок React Native
URL: https://generaltranslation.com/ru/docs/react/react-native/troubleshooting.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как диагностировать проблемы с нативными модулями, полифилами, локалями, файлами перевода и в процессе разработки приложения на React Native.

Начните с ошибки, отображаемой Metro или на устройстве, затем проверьте соответствующий уровень настройки: подключение нативных модулей, полифилы Babel, конфигурацию локалей или сгенерированные файлы перевода.

## Исправление нативного модуля [#native-module]

Ошибка о том, что `GtReactNative` не найден, означает, что нативный модуль не включён в двоичный файл установленного приложения.

### Expo

Expo Go не поддерживает пользовательские нативные модули. Создайте и запустите сборку для разработки:

```bash
npx expo run:ios
# или
npx expo run:android
```

После добавления или обновления `gt-react-native` пересоберите клиент для разработки. Перезапуск одного лишь Metro не обновляет нативные модули в существующей сборке.

### React Native CLI

После добавления пакета установите iOS-поды, затем пересоберите приложение:

```bash
cd ios
pod install
cd ..
```

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

*Примечание: React Native Web не требует нативного модуля. Вместо него используются определение локали браузера и хранилище.*

## Исправление настройки полифилов [#polyfills]

Если приложение сообщает о недопустимых кодах локалей или отсутствии API `Intl`, убедитесь, что [Babel-плагин](/docs/react/react-native/plugin) применяется к фактическому entry-файлу приложения.

* Expo Router обычно использует `require.resolve('expo-router/entry')`.
* Приложение на React Native без Expo обычно использует абсолютный путь к `index.js`.
* Путь к пользовательскому entry-файлу необходимо передать через `entryPointFilePath`.

Плагину необходимы локаль по умолчанию и все целевые локали. Передайте `locales` напрямую, `config` или укажите в `configFilePath` доступный для чтения файл `gt.config.json`. Плагин загружает данные локали FormatJS только для поддерживаемых канонических кодов локалей; если приложение использует пользовательский алиас в маршрутах, передайте плагину соответствующий канонический код.

После изменения конфигурации Babel очистите кэш преобразований Metro:

```bash
npx expo start --clear
```

Для приложения на React Native без Expo перезапустите Metro, предварительно сбросив кэш:

```bash
npx react-native start --reset-cache
```

Если Babel не запускается в вашей конфигурации, воспользуйтесь примером ручного импорта в [справочнике плагина](/docs/react/react-native/plugin#how-it-works).

## Создание отсутствующих файлов [#missing-files]

Metro разрешает статические вызовы `require()` до запуска приложения. Каждый файл перевода, указанный в карте [`loadTranslations`](/docs/react/reference/functions/load-translations), должен уже существовать.

Создайте placeholder-файлы, заполненные исходным текстом, без API Key:

```bash
npx gt generate
```

Или создайте переведённые файлы, используя учётные данные проекта:

```bash
npx gt translate
```

Убедитесь, что путь вывода CLI в `gt.config.json` совпадает с путями в `loadTranslations.ts`. После добавления ранее отсутствовавших файлов перезапустите Metro.

## Поведение в режиме разработки [#development]

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

Если перевод неточен, добавьте контекст для неоднозначного содержимого:

```tsx
<T $context="the technology company">Apple</T>
```

Функция перевода [`useGT`](/docs/react/reference/hooks/use-gt) поддерживает тот же параметр `$context`.

Серверные среды React Native явно не поддерживаются. Если сборка Expo Web или React Native Web выполняет рендеринг на сервере, перед развертыванием проверьте определение локали и поведение хранилища в этой среде выполнения.

## Next steps

- /docs/react/guides/configuring
- /docs/react/guides/storing-translations
- /docs/react/guides/managing-locales
- /docs/react/guides/translating-jsx

## Sitemap

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