@intlayer/docs 9.0.0-canary.5 → 9.0.0-canary.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ar/intlayer_with_react_native+expo.md +56 -79
- package/docs/ar/packages/react-native-intlayer/exports.md +48 -14
- package/docs/de/intlayer_with_react_native+expo.md +50 -68
- package/docs/de/packages/react-native-intlayer/exports.md +47 -13
- package/docs/en/intlayer_with_react_native+expo.md +14 -18
- package/docs/en/packages/react-native-intlayer/exports.md +47 -13
- package/docs/en-GB/intlayer_with_react_native+expo.md +40 -94
- package/docs/en-GB/packages/react-native-intlayer/exports.md +51 -18
- package/docs/es/intlayer_with_react_native+expo.md +43 -80
- package/docs/es/packages/react-native-intlayer/exports.md +47 -13
- package/docs/fr/intlayer_with_react_native+expo.md +54 -68
- package/docs/fr/packages/react-native-intlayer/exports.md +47 -13
- package/docs/hi/intlayer_with_react_native+expo.md +90 -87
- package/docs/hi/packages/react-native-intlayer/exports.md +48 -14
- package/docs/id/intlayer_with_react_native+expo.md +45 -33
- package/docs/id/packages/react-native-intlayer/exports.md +47 -13
- package/docs/it/intlayer_with_react_native+expo.md +32 -72
- package/docs/it/packages/react-native-intlayer/exports.md +47 -13
- package/docs/ja/intlayer_with_react_native+expo.md +98 -137
- package/docs/ja/packages/react-native-intlayer/exports.md +47 -14
- package/docs/ko/intlayer_with_react_native+expo.md +231 -29
- package/docs/ko/packages/react-native-intlayer/exports.md +48 -14
- package/docs/pl/intlayer_with_react_native+expo.md +75 -46
- package/docs/pl/packages/react-native-intlayer/exports.md +47 -13
- package/docs/pt/intlayer_with_react_native+expo.md +38 -75
- package/docs/pt/packages/react-native-intlayer/exports.md +47 -13
- package/docs/ru/intlayer_with_react_native+expo.md +71 -60
- package/docs/ru/packages/react-native-intlayer/exports.md +49 -16
- package/docs/tr/intlayer_with_react_native+expo.md +30 -56
- package/docs/tr/packages/react-native-intlayer/exports.md +48 -15
- package/docs/uk/intlayer_with_react_native+expo.md +64 -52
- package/docs/uk/packages/react-native-intlayer/exports.md +47 -13
- package/docs/vi/intlayer_with_react_native+expo.md +43 -32
- package/docs/vi/packages/react-native-intlayer/exports.md +47 -13
- package/docs/zh/intlayer_with_react_native+expo.md +216 -82
- package/docs/zh/packages/react-native-intlayer/exports.md +48 -14
- package/package.json +6 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-21
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-25
|
|
4
4
|
title: Documentação do pacote react-native-intlayer
|
|
5
|
-
description: Suporte a React Native para o Intlayer, fornecendo providers e
|
|
5
|
+
description: Suporte a React Native para o Intlayer, fornecendo providers, hooks, polyfills e configuração Metro.
|
|
6
6
|
keywords:
|
|
7
7
|
- react-native-intlayer
|
|
8
8
|
- react-native
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- react-native-intlayer
|
|
15
15
|
- exports
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-25
|
|
19
|
+
changes: "Reexportar a API completa do react-intlayer (hooks, utilitários, subcaminhos format/html/markdown) para que um aplicativo React Native dependa apenas de react-native-intlayer"
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-21
|
|
19
22
|
changes: "Documentação unificada para todas as exportações"
|
|
@@ -22,7 +25,9 @@ author: aymericzip
|
|
|
22
25
|
|
|
23
26
|
# Pacote react-native-intlayer
|
|
24
27
|
|
|
25
|
-
O pacote `react-native-intlayer` fornece as ferramentas necessárias para integrar o Intlayer em aplicações React Native.
|
|
28
|
+
O pacote `react-native-intlayer` fornece as ferramentas necessárias para integrar o Intlayer em aplicações React Native. Reexporta a API completa do `react-intlayer` (hooks e utilitários) com um `IntlayerProvider` pronto para React Native, além dos polyfills e da configuração Metro exigidos pelo React Native.
|
|
29
|
+
|
|
30
|
+
> Em um aplicativo React Native, importe **tudo** de `react-native-intlayer`. Você não precisa instalar ou importar `react-intlayer` diretamente.
|
|
26
31
|
|
|
27
32
|
## Instalação
|
|
28
33
|
|
|
@@ -34,14 +39,30 @@ npm install react-native-intlayer
|
|
|
34
39
|
|
|
35
40
|
### Provider
|
|
36
41
|
|
|
37
|
-
| Componente | Descrição
|
|
38
|
-
| ------------------ |
|
|
39
|
-
| `IntlayerProvider` | Componente Provider que envolve sua aplicação e fornece o contexto do Intlayer. |
|
|
42
|
+
| Componente | Descrição |
|
|
43
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `IntlayerProvider` | Componente Provider que envolve sua aplicação e fornece o contexto do Intlayer. Aplica automaticamente os polyfills necessários. |
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { IntlayerProvider } from "react-native-intlayer";
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Hooks e utilitários
|
|
51
|
+
|
|
52
|
+
Estes são reexportados de `react-intlayer`, portanto você pode importá-los diretamente de `react-native-intlayer`:
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
| Exportação | Descrição |
|
|
55
|
+
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
|
|
56
|
+
| `useIntlayer` | Acessa conteúdo localizado para uma chave de dicionário. |
|
|
57
|
+
| `useLocale` | Lê e altera o locale atual. |
|
|
58
|
+
| `useDictionary`, `useDictionaryAsync`, `useDictionaryDynamic`, `useLoadDynamic` | Carrega conteúdo de dicionário de diversas formas. |
|
|
59
|
+
| `useI18n` | Hook compatível com i18next. |
|
|
60
|
+
| `t` | Auxiliar de tradução inline. |
|
|
61
|
+
| `getIntlayer`, `getDictionary` | Getters imperativos de conteúdo. |
|
|
62
|
+
| `localeCookie`, `localeInStorage`, `setLocaleCookie`, `setLocaleInStorage`, `useLocaleCookie`, `useLocaleStorage` | Auxiliares de persistência de locale. |
|
|
42
63
|
|
|
43
64
|
```tsx
|
|
44
|
-
import "react-native-intlayer";
|
|
65
|
+
import { useIntlayer, useLocale, t } from "react-native-intlayer";
|
|
45
66
|
```
|
|
46
67
|
|
|
47
68
|
### Polyfill
|
|
@@ -50,10 +71,25 @@ import "react-native-intlayer";
|
|
|
50
71
|
| ------------------ | --------------------------------------------------------------------------------------- |
|
|
51
72
|
| `intlayerPolyfill` | Função que aplica os polyfills necessários para o React Native dar suporte ao Intlayer. |
|
|
52
73
|
|
|
53
|
-
|
|
74
|
+
```tsx
|
|
75
|
+
import { intlayerPolyfill } from "react-native-intlayer";
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
> O polyfill é aplicado automaticamente quando você importa `IntlayerProvider`. Chame `intlayerPolyfill` manualmente apenas se precisar dos polyfills antes que o provider seja montado.
|
|
79
|
+
|
|
80
|
+
### Formatadores
|
|
81
|
+
|
|
82
|
+
Hooks de formatação numérica, de data e outros baseados em Intl estão disponíveis no subcaminho `/format`:
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { useNumber, useDate } from "react-native-intlayer/format";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Renderização de Markdown e HTML
|
|
54
89
|
|
|
55
90
|
```tsx
|
|
56
|
-
import "react-native-intlayer";
|
|
91
|
+
import { MarkdownProvider } from "react-native-intlayer/markdown";
|
|
92
|
+
import { HTMLProvider } from "react-native-intlayer/html";
|
|
57
93
|
```
|
|
58
94
|
|
|
59
95
|
### Configuração do Metro
|
|
@@ -66,8 +102,6 @@ O pacote `react-native-intlayer` fornece utilitários de configuração do Metro
|
|
|
66
102
|
| `configMetroIntlayerSync` | Função síncrona que mescla a configuração do Metro sem preparar os recursos do Intlayer. |
|
|
67
103
|
| `exclusionList` | Cria um padrão RegExp para o blockList do Metro para excluir arquivos de conteúdo do bundle. |
|
|
68
104
|
|
|
69
|
-
Importação:
|
|
70
|
-
|
|
71
105
|
```tsx
|
|
72
|
-
import "react-native-intlayer/metro";
|
|
106
|
+
import { configMetroIntlayer } from "react-native-intlayer/metro";
|
|
73
107
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-18
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-25
|
|
4
4
|
title: "Expo + React Native i18n - Полное руководство по переводу вашего приложения"
|
|
5
5
|
description: "Больше никакого i18next. Руководство 2026 по созданию многоязычного (i18n) приложения Expo + React Native. Переводите с помощью ИИ-агентов и оптимизируйте размер бандла, SEO и производительность."
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-native-template
|
|
18
18
|
applicationShowcase: https://intlayer-react-native.vercel.app
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.0.0
|
|
21
|
+
date: 2026-06-25
|
|
22
|
+
changes: "Импорт провайдеров и хуков напрямую из react-native-intlayer; react-intlayer больше не нужен как прямая зависимость"
|
|
20
23
|
- version: 8.9.0
|
|
21
24
|
date: 2026-05-04
|
|
22
25
|
changes: "Обновление использования API useIntlayer в Solid для прямого доступа к свойствам"
|
|
@@ -37,7 +40,7 @@ author: aymericzip
|
|
|
37
40
|
<iframe
|
|
38
41
|
src="https://ide.intlayer.org/aymericzip/intlayer-react-native-template?file=intlayer.config.ts"
|
|
39
42
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
40
|
-
title="Demo CodeSandbox - Intlayer"
|
|
43
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
41
44
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
42
45
|
loading="lazy"
|
|
43
46
|
/>
|
|
@@ -56,56 +59,66 @@ author: aymericzip
|
|
|
56
59
|
</Tab>
|
|
57
60
|
</Tabs>
|
|
58
61
|
|
|
59
|
-
|
|
62
|
+
## Содержание
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
<TOC/>
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
## Почему Intlayer, а не альтернативы?
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
По сравнению с основными решениями, такими как `react-native-localize` или `i18next`, Intlayer — это решение, включающее такие интегрированные оптимизации, как:
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
npm установить intlayer
|
|
69
|
-
npm install --save-dev реагирование-native-intlayer
|
|
70
|
-
Инициализация промежуточного слоя npx
|
|
71
|
-
```
|
|
70
|
+
<AccordionGroup>
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
pnpm добавить промежуточный слой
|
|
75
|
-
pnpm добавить --save-dev реагирование-native-intlayer
|
|
76
|
-
инициализация промежуточного слоя pnpm
|
|
77
|
-
```
|
|
72
|
+
<Accordion header="Полная поддержка React Native">
|
|
78
73
|
|
|
79
|
-
|
|
80
|
-
пряжа добавить промежуточный слой
|
|
81
|
-
пряжа добавить --save-dev
|
|
82
|
-
инициализация промежуточного слоя пряжи
|
|
83
|
-
```
|
|
74
|
+
Intlayer оптимизирован для идеальной работы с React Native и Expo, предлагая **определение контента на уровне компонентов**, **поддержку TypeScript** и все необходимые функции для масштабирования интернационализации (i18n) в мобильных приложениях.
|
|
84
75
|
|
|
85
|
-
|
|
86
|
-
булочка добавить промежуточный слой
|
|
87
|
-
булочка добавить --dev response-native-intlayer
|
|
88
|
-
инициализация промежуточного слоя булочки x
|
|
89
|
-
```
|
|
76
|
+
</Accordion>
|
|
90
77
|
|
|
91
|
-
|
|
78
|
+
<Accordion header="Поддерживаемость">
|
|
92
79
|
|
|
93
|
-
|
|
94
|
-
Базовый набор инструментов i18n для настройки, содержимого словаря, генерации типов и команд CLI.
|
|
80
|
+
Организация контента по отдельным областям (scoping) **упрощает сопровождение** крупных приложений. Вы можете скопировать или удалить папку с функцией без необходимости просматривать всю кодовую базу контента. Кроме того, Intlayer **полностью типизирован (fully typed)**, что обеспечивает точность вашего контента.
|
|
95
81
|
|
|
96
|
-
|
|
97
|
-
Интеграция React, которая предоставляет поставщиков контекста и перехватчики React, которые вы будете использовать в React Native для получения и переключения локалей.
|
|
82
|
+
</Accordion>
|
|
98
83
|
|
|
99
|
-
|
|
100
|
-
Интеграция React Native, предоставляющая плагин Metro для интеграции Intlayer с упаковщиком React Native.
|
|
84
|
+
<Accordion header="ИИ-агент">
|
|
101
85
|
|
|
102
|
-
|
|
86
|
+
Совместное размещение контента **сокращает контекст, необходимый** для больших языковых моделей (LLM). Intlayer также поставляется с набором инструментов, таких как **CLI** для проверки отсутствующих переводов, **[LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**, **[MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)** и **[навыки агента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/agent_skills.md)**, чтобы сделать опыт разработчика (DX) ещё более комфортным для ИИ-агентов.
|
|
87
|
+
|
|
88
|
+
</Accordion>
|
|
89
|
+
|
|
90
|
+
<Accordion header="Автоматизация">
|
|
91
|
+
|
|
92
|
+
Используйте автоматизацию для перевода в вашем CI/CD-пайплайне с помощью LLM по вашему выбору за счёт вашего провайдера ИИ. Intlayer также предлагает **компилятор** для автоматизации извлечения контента, а также [веб-платформу](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md), чтобы помочь **переводить в фоновом режиме**.
|
|
93
|
+
|
|
94
|
+
</Accordion>
|
|
95
|
+
|
|
96
|
+
<Accordion header="Производительность">
|
|
97
|
+
|
|
98
|
+
Подключение больших JSON-файлов к компонентам может привести к проблемам с производительностью и реактивностью. Intlayer оптимизирует загрузку контента во время сборки (build time).
|
|
99
|
+
|
|
100
|
+
</Accordion>
|
|
101
|
+
|
|
102
|
+
<Accordion header="Масштабирование с не-разработчиками">
|
|
103
|
+
|
|
104
|
+
Будучи больше, чем просто решением для i18n, Intlayer предлагает **собственный [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** и **[полноценную CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)**, чтобы помочь вам управлять многоязычным контентом в **реальном времени**, делая сотрудничество с переводчиками, копирайтерами и другими членами команды бесперебойным. Контент может храниться локально и/или удалённо.
|
|
105
|
+
|
|
106
|
+
</Accordion>
|
|
107
|
+
|
|
108
|
+
<Accordion header="Размер бандла">
|
|
109
|
+
|
|
110
|
+
Вместо загрузки огромных JSON-файлов на ваши страницы загружайте только необходимый контент. Intlayer помогает **уменьшить размер вашего бандла и представлений до 50%**.
|
|
111
|
+
|
|
112
|
+
</Accordion>
|
|
113
|
+
</AccordionGroup>
|
|
103
114
|
|
|
104
115
|
<Steps>
|
|
105
116
|
|
|
106
|
-
<Step number={1} title="
|
|
117
|
+
<Step number={1} title="Установите зависимости">
|
|
118
|
+
|
|
119
|
+
См. [Шаблон приложения](https://github.com/aymericzip/intlayer-react-native-template) на GitHub.
|
|
107
120
|
|
|
108
|
-
|
|
121
|
+
Из вашего проекта React Native установите следующие пакеты:
|
|
109
122
|
|
|
110
123
|
```bash packageManager="npm"
|
|
111
124
|
npx intlayer-cli init --interactive
|
|
@@ -123,28 +136,24 @@ yarn dlx intlayer-cli init --interactive
|
|
|
123
136
|
bunx intlayer-cli init --interactive
|
|
124
137
|
```
|
|
125
138
|
|
|
126
|
-
>
|
|
139
|
+
> Флаг `--interactive` не является обязательным. Используйте `intlayer-cli init`, если вы являетесь ИИ-агентом.
|
|
127
140
|
|
|
128
141
|
> Эта команда определит вашу среду и установит необходимые пакеты. Например:
|
|
129
142
|
|
|
130
143
|
```bash packageManager="npm"
|
|
131
|
-
npm install intlayer react-intlayer
|
|
132
|
-
npm install --save-dev react-native-intlayer
|
|
144
|
+
npm install intlayer react-native-intlayer
|
|
133
145
|
```
|
|
134
146
|
|
|
135
147
|
```bash packageManager="pnpm"
|
|
136
|
-
pnpm add intlayer react-intlayer
|
|
137
|
-
pnpm add --save-dev react-native-intlayer
|
|
148
|
+
pnpm add intlayer react-native-intlayer
|
|
138
149
|
```
|
|
139
150
|
|
|
140
151
|
```bash packageManager="yarn"
|
|
141
|
-
yarn add intlayer react-intlayer
|
|
142
|
-
yarn add --save-dev react-native-intlayer
|
|
152
|
+
yarn add intlayer react-native-intlayer
|
|
143
153
|
```
|
|
144
154
|
|
|
145
155
|
```bash packageManager="bun"
|
|
146
|
-
bun add intlayer react-intlayer
|
|
147
|
-
bun add --dev react-native-intlayer
|
|
156
|
+
bun add intlayer react-native-intlayer
|
|
148
157
|
```
|
|
149
158
|
|
|
150
159
|
### Пакеты
|
|
@@ -152,11 +161,8 @@ bun add --dev react-native-intlayer
|
|
|
152
161
|
- **intlayer**
|
|
153
162
|
Основной набор инструментов i18n для конфигурации, содержимого словарей, генерации типов и команд CLI.
|
|
154
163
|
|
|
155
|
-
- **react-intlayer**
|
|
156
|
-
Интеграция с React, предоставляющая провайдеры контекста и React-хуки, которые вы будете использовать в React Native для получения и переключения локалей.
|
|
157
|
-
|
|
158
164
|
- **react-native-intlayer**
|
|
159
|
-
Интеграция с React Native, предоставляющая плагин Metro для интеграции Intlayer с бандлером React Native.
|
|
165
|
+
Интеграция с React Native, предоставляющая провайдеры контекста и React-хуки, которые вы будете использовать для получения и переключения локалей, полифилы React Native, а также плагин Metro для интеграции Intlayer с бандлером React Native. Он реэкспортирует всё из `react-intlayer`, поэтому в приложении React Native достаточно этого единственного пакета.
|
|
160
166
|
|
|
161
167
|
---
|
|
162
168
|
|
|
@@ -198,7 +204,7 @@ export default config;
|
|
|
198
204
|
|
|
199
205
|
<Step number={3} title="Добавьте плагин Metro">
|
|
200
206
|
|
|
201
|
-
Metro
|
|
207
|
+
Metro — это сборщик для React Native. Он является сборщиком по умолчанию для проектов React Native, созданных с помощью команды `react-native init`. Чтобы использовать Intlayer с Metro, необходимо добавить плагин в файл `metro.config.js`:
|
|
202
208
|
|
|
203
209
|
```js fileName="metro.config.js"
|
|
204
210
|
const { getDefaultConfig } = require("expo/metro-config");
|
|
@@ -211,13 +217,18 @@ module.exports = (async () => {
|
|
|
211
217
|
})();
|
|
212
218
|
```
|
|
213
219
|
|
|
220
|
+
> Примечание: `configMetroIntlayer` — это асинхронная функция. Используйте `configMetroIntlayerSync`, если хотите использовать её синхронно, или избегайте IIFE (Immediately Invoked Function Expression).
|
|
221
|
+
> Примечание: `configMetroIntlayerSync` не позволяет собирать словари intlayer при запуске сервера
|
|
222
|
+
|
|
214
223
|
</Step>
|
|
215
224
|
|
|
216
225
|
<Step number={4} title="Добавьте провайдер Intlayer">
|
|
217
226
|
|
|
218
|
-
Чтобы синхронизировать язык пользователя
|
|
227
|
+
Чтобы синхронизировать язык пользователя по всему приложению, необходимо обернуть корневой компонент в компонент `IntlayerProvider` из `react-native-intlayer`.
|
|
228
|
+
|
|
229
|
+
> Всегда импортируйте из `react-native-intlayer`. Его `IntlayerProvider` включает полифилы для веб-API, используемого Intlayer, и пакет реэкспортирует все хуки и утилиты из `react-intlayer`.
|
|
219
230
|
|
|
220
|
-
|
|
231
|
+
Также необходимо добавить функцию `intlayerPolyfill` в ваш файл `index.js`, чтобы обеспечить корректную работу Intlayer.
|
|
221
232
|
|
|
222
233
|
```tsx fileName="app/_layout.tsx" codeFormat={["typescript", "esm"]}
|
|
223
234
|
import { Stack } from "expo-router";
|
|
@@ -321,7 +332,7 @@ export default homeScreenContent;
|
|
|
321
332
|
|
|
322
333
|
```tsx fileName="app/(tabs)/index.tsx" codeFormat={["typescript", "esm"]}
|
|
323
334
|
import { Image, StyleSheet, Platform } from "react-native";
|
|
324
|
-
import { useIntlayer } from "react-intlayer";
|
|
335
|
+
import { useIntlayer } from "react-native-intlayer";
|
|
325
336
|
import { HelloWave } from "@/components/HelloWave";
|
|
326
337
|
import ParallaxScrollView from "@/components/ParallaxScrollView";
|
|
327
338
|
import { ThemedText } from "@/components/ThemedText";
|
|
@@ -368,7 +379,7 @@ export default HomeScreen;
|
|
|
368
379
|
|
|
369
380
|
</Step>
|
|
370
381
|
|
|
371
|
-
<Step number={7} title="Изменение локали приложения">
|
|
382
|
+
<Step number={7} title="Изменение локали приложения" isOptional={true}>
|
|
372
383
|
|
|
373
384
|
Для переключения локалей изнутри ваших компонентов вы можете использовать метод `setLocale` хука `useLocale`:
|
|
374
385
|
|
|
@@ -376,7 +387,7 @@ export default HomeScreen;
|
|
|
376
387
|
import { type FC } from "react";
|
|
377
388
|
import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
|
|
378
389
|
import { getLocaleName } from "intlayer";
|
|
379
|
-
import { useLocale } from "react-intlayer";
|
|
390
|
+
import { useLocale } from "react-native-intlayer";
|
|
380
391
|
|
|
381
392
|
export const LocaleSwitcher: FC = () => {
|
|
382
393
|
const { setLocale, availableLocales } = useLocale();
|
|
@@ -453,7 +464,7 @@ Intlayer генерирует определения типов в скрыто
|
|
|
453
464
|
Чтобы избежать коммита автоматически сгенерированных файлов Intlayer, добавьте следующее в ваш `.gitignore`:
|
|
454
465
|
|
|
455
466
|
```bash
|
|
456
|
-
#
|
|
467
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
457
468
|
.intlayer
|
|
458
469
|
```
|
|
459
470
|
|
|
@@ -490,13 +501,13 @@ Intlayer генерирует определения типов в скрыто
|
|
|
490
501
|
|
|
491
502
|
React Native может быть менее стабильным, чем React Web, поэтому обратите особое внимание на выравнивание версий.
|
|
492
503
|
|
|
493
|
-
Intlayer в основном ориентирован на Web Intl API; в React Native вы должны включить соответствующие
|
|
504
|
+
Intlayer в основном ориентирован на Web Intl API; в React Native вы должны включить соответствующие полифилы.
|
|
494
505
|
|
|
495
506
|
Контрольный список:
|
|
496
507
|
|
|
497
|
-
- Используйте последние версии `intlayer
|
|
498
|
-
- Включите Intlayer
|
|
499
|
-
- Если вы используете `getLocaleName` или другие утилиты на основе Intl API, импортируйте эти
|
|
508
|
+
- Используйте последние версии `intlayer` и `react-native-intlayer`.
|
|
509
|
+
- Включите Intlayer полифил.
|
|
510
|
+
- Если вы используете `getLocaleName` или другие утилиты на основе Intl API, импортируйте эти полифилы рано (например, в `index.js` или `App.tsx`):
|
|
500
511
|
|
|
501
512
|
```ts
|
|
502
513
|
import "intl";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-21
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-25
|
|
4
4
|
title: Документация пакета react-native-intlayer
|
|
5
|
-
description: Поддержка React Native для Intlayer, предоставляющая
|
|
5
|
+
description: Поддержка React Native для Intlayer, предоставляющая провайдеры, хуки, полифилы и конфигурацию Metro.
|
|
6
6
|
keywords:
|
|
7
7
|
- react-native-intlayer
|
|
8
8
|
- react-native
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- react-native-intlayer
|
|
15
15
|
- exports
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-25
|
|
19
|
+
changes: "Реэкспорт полного API react-intlayer (хуки, утилиты, подпути format/html/markdown), чтобы приложение React Native зависело только от react-native-intlayer"
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-21
|
|
19
22
|
changes: "Унифицированная документация для всех экспортов"
|
|
@@ -22,7 +25,9 @@ author: aymericzip
|
|
|
22
25
|
|
|
23
26
|
# Пакет react-native-intlayer
|
|
24
27
|
|
|
25
|
-
Пакет `react-native-intlayer` предоставляет необходимые инструменты для интеграции Intlayer в приложения React Native. Он
|
|
28
|
+
Пакет `react-native-intlayer` предоставляет необходимые инструменты для интеграции Intlayer в приложения React Native. Он реэкспортирует полный API `react-intlayer` (хуки и утилиты) с `IntlayerProvider`, адаптированным для React Native, а также полифилы и конфигурацию Metro, необходимые для работы в React Native.
|
|
29
|
+
|
|
30
|
+
> В приложении React Native импортируйте **всё** из `react-native-intlayer`. Устанавливать или импортировать `react-intlayer` напрямую не нужно.
|
|
26
31
|
|
|
27
32
|
## Установка
|
|
28
33
|
|
|
@@ -34,26 +39,57 @@ npm install react-native-intlayer
|
|
|
34
39
|
|
|
35
40
|
### Провайдер
|
|
36
41
|
|
|
37
|
-
| Компонент | Описание
|
|
38
|
-
| ------------------ |
|
|
39
|
-
| `IntlayerProvider` | Провайдер-компонент, который оборачивает ваше приложение и предоставляет контекст Intlayer. |
|
|
42
|
+
| Компонент | Описание |
|
|
43
|
+
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `IntlayerProvider` | Провайдер-компонент, который оборачивает ваше приложение и предоставляет контекст Intlayer. Автоматически применяет необходимые полифилы. |
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { IntlayerProvider } from "react-native-intlayer";
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Хуки и утилиты
|
|
51
|
+
|
|
52
|
+
Они реэкспортируются из `react-intlayer`, поэтому вы можете импортировать их напрямую из `react-native-intlayer`:
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
| Экспорт | Описание |
|
|
55
|
+
| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
|
|
56
|
+
| `useIntlayer` | Доступ к локализованному контенту по ключу словаря. |
|
|
57
|
+
| `useLocale` | Чтение и изменение текущей локали. |
|
|
58
|
+
| `useDictionary`, `useDictionaryAsync`, `useDictionaryDynamic`, `useLoadDynamic` | Загрузка содержимого словаря различными способами. |
|
|
59
|
+
| `useI18n` | Совместимый с i18next хук. |
|
|
60
|
+
| `t` | Вспомогательная функция для встроенного перевода. |
|
|
61
|
+
| `getIntlayer`, `getDictionary` | Императивные геттеры контента. |
|
|
62
|
+
| `localeCookie`, `localeInStorage`, `setLocaleCookie`, `setLocaleInStorage`, `useLocaleCookie`, `useLocaleStorage` | Вспомогательные функции для сохранения локали. |
|
|
42
63
|
|
|
43
64
|
```tsx
|
|
44
|
-
import "react-native-intlayer";
|
|
65
|
+
import { useIntlayer, useLocale, t } from "react-native-intlayer";
|
|
45
66
|
```
|
|
46
67
|
|
|
47
|
-
###
|
|
68
|
+
### Полифил
|
|
48
69
|
|
|
49
70
|
| Функция | Описание |
|
|
50
71
|
| ------------------ | -------------------------------------------------------------------------------- |
|
|
51
72
|
| `intlayerPolyfill` | Функция, применяющая необходимые полифилы для поддержки Intlayer в React Native. |
|
|
52
73
|
|
|
53
|
-
|
|
74
|
+
```tsx
|
|
75
|
+
import { intlayerPolyfill } from "react-native-intlayer";
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
> Полифил применяется автоматически при импорте `IntlayerProvider`. Вызывайте `intlayerPolyfill` вручную только если вам нужны полифилы до монтирования провайдера.
|
|
79
|
+
|
|
80
|
+
### Форматтеры
|
|
81
|
+
|
|
82
|
+
Хуки форматирования чисел, дат и другие функции на базе Intl доступны из подпути `/format`:
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { useNumber, useDate } from "react-native-intlayer/format";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Markdown и HTML
|
|
54
89
|
|
|
55
90
|
```tsx
|
|
56
|
-
import "react-native-intlayer";
|
|
91
|
+
import { MarkdownProvider } from "react-native-intlayer/markdown";
|
|
92
|
+
import { HTMLProvider } from "react-native-intlayer/html";
|
|
57
93
|
```
|
|
58
94
|
|
|
59
95
|
### Конфигурация Metro
|
|
@@ -64,11 +100,8 @@ import "react-native-intlayer";
|
|
|
64
100
|
| ------------------------- | ------------------------------------------------------------------------------------------- |
|
|
65
101
|
| `configMetroIntlayer` | Асинхронная функция, которая подготавливает Intlayer и объединяет конфигурацию Metro. |
|
|
66
102
|
| `configMetroIntlayerSync` | Синхронная функция, которая объединяет конфигурацию Metro без подготовки ресурсов Intlayer. |
|
|
67
|
-
| `exclusionList` | Создаёт шаблон RegExp для blockList Metro, чтобы исключать файлы контента из
|
|
68
|
-
|
|
69
|
-
Импорт:
|
|
103
|
+
| `exclusionList` | Создаёт шаблон RegExp для blockList Metro, чтобы исключать файлы контента из бандла. |
|
|
70
104
|
|
|
71
105
|
```tsx
|
|
72
|
-
import "react-native-intlayer/metro";
|
|
73
|
-
import "react-native-intlayer/metro";
|
|
106
|
+
import { configMetroIntlayer } from "react-native-intlayer/metro";
|
|
74
107
|
```
|