# General Translation React SDKs (gt-react, gt-next, gt-react-native): Устранение неполадок React Native URL: https://generaltranslation.com/ru/docs/react/react-native/troubleshooting.mdx --- title: Устранение неполадок React Native description: Как диагностировать проблемы с нативными модулями, полифилами, локалями, файлами перевода и в процессе разработки приложения на React Native. related: links: - /docs/react/guides/configuring - /docs/react/guides/storing-translations - /docs/react/guides/managing-locales - /docs/react/guides/translating-jsx --- Начните с ошибки, отображаемой 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 Apple ``` Функция перевода [`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