@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: Документація пакета 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,14 +39,30 @@ 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
|
### Поліфіл
|
|
@@ -50,10 +71,25 @@ import "react-native-intlayer";
|
|
|
50
71
|
| ------------------ | ----------------------------------------------------------------------------------------------- |
|
|
51
72
|
| `intlayerPolyfill` | Функція, що застосовує необхідні поліфіли для React Native, щоб забезпечити підтримку Intlayer. |
|
|
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
|
|
@@ -66,8 +102,6 @@ import "react-native-intlayer";
|
|
|
66
102
|
| `configMetroIntlayerSync` | Синхронна функція, яка об'єднує конфігурацію Metro без підготовки ресурсів Intlayer. |
|
|
67
103
|
| `exclusionList` | Створює патерн RegExp для blockList Metro, щоб виключати файли контенту з бандлу. |
|
|
68
104
|
|
|
69
|
-
Імпорт:
|
|
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 - Hướng dẫn đầy đủ để dịch ứng dụng của bạn"
|
|
5
5
|
description: "Không còn i18next nữa. Hướng dẫn 2026 để xây dựng ứng dụng Expo + React Native đa ngôn ngữ (i18n). Dịch với các AI agent và tối ưu hóa kích thước bundle, SEO và hiệu suất."
|
|
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: "Nhập provider và hook trực tiếp từ react-native-intlayer; react-intlayer không còn cần thiết như một phụ thuộc trực tiếp"
|
|
20
23
|
- version: 8.9.0
|
|
21
24
|
date: 2026-05-04
|
|
22
25
|
changes: "Cập nhật cách sử dụng API useIntlayer của Solid sang truy cập thuộc tính trực tiếp"
|
|
@@ -101,7 +104,7 @@ Việc kết nối các tệp JSON lớn với các thành phần có thể dẫ
|
|
|
101
104
|
|
|
102
105
|
<Accordion header="Mở rộng quy mô không có nhà phát triển">
|
|
103
106
|
|
|
104
|
-
Không chỉ là giải pháp i18n, Intlayer còn cung cấp **[trình chỉnh sửa trực quan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** và **[CMS đầy đủ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)** để giúp bạn quản lý nội dung đa ngôn ngữ của mình trong **thời gian thực**, giúp việc cộng tác với người dịch, người viết quảng cáo và các thành viên khác trong nhóm trở nên liền mạch. Nội dung có thể được lưu trữ cục bộ và/hoặc từ xa.
|
|
107
|
+
Không chỉ là giải pháp i18n, Intlayer còn cung cấp **[trình chỉnh sửa trực quan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** tự lưu trữ và **[CMS đầy đủ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)** để giúp bạn quản lý nội dung đa ngôn ngữ của mình trong **thời gian thực**, giúp việc cộng tác với người dịch, người viết quảng cáo và các thành viên khác trong nhóm trở nên liền mạch. Nội dung có thể được lưu trữ cục bộ và/hoặc từ xa.
|
|
105
108
|
|
|
106
109
|
</Accordion>
|
|
107
110
|
|
|
@@ -121,27 +124,39 @@ Xem [Mẫu ứng dụng](https://github.com/aymericzip/intlayer-react-native-tem
|
|
|
121
124
|
Từ dự án React Native của bạn, hãy cài đặt các gói sau:
|
|
122
125
|
|
|
123
126
|
```bash packageManager="npm"
|
|
124
|
-
|
|
125
|
-
cài đặt npm --save-dev Reac -igen-intlayer
|
|
126
|
-
init nội bộ npx
|
|
127
|
+
npx intlayer-cli init --interactive
|
|
127
128
|
```
|
|
128
129
|
|
|
129
130
|
```bash packageManager="pnpm"
|
|
130
|
-
pnpm
|
|
131
|
-
pnpm thêm --save-dev Reac -igen-intlayer
|
|
132
|
-
init nội bộ pnpm
|
|
131
|
+
pnpm dlx intlayer-cli init --interactive
|
|
133
132
|
```
|
|
134
133
|
|
|
135
|
-
```bash packageManager="
|
|
136
|
-
|
|
137
|
-
thêm sợi --save-dev Reac -igen-intlayer
|
|
138
|
-
init sợi bên trong
|
|
134
|
+
```bash packageManager="yarn"
|
|
135
|
+
yarn dlx intlayer-cli init --interactive
|
|
139
136
|
```
|
|
140
137
|
|
|
141
138
|
```bash packageManager="bun"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
139
|
+
bunx intlayer-cli init --interactive
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
> Cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là AI agent.
|
|
143
|
+
|
|
144
|
+
> Lệnh này sẽ tự động phát hiện môi trường của bạn và cài đặt các gói cần thiết. Ví dụ:
|
|
145
|
+
|
|
146
|
+
```bash packageManager="npm"
|
|
147
|
+
npm install intlayer react-native-intlayer
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```bash packageManager="pnpm"
|
|
151
|
+
pnpm add intlayer react-native-intlayer
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```bash packageManager="yarn"
|
|
155
|
+
yarn add intlayer react-native-intlayer
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```bash packageManager="bun"
|
|
159
|
+
bun add intlayer react-native-intlayer
|
|
145
160
|
```
|
|
146
161
|
|
|
147
162
|
### Các gói
|
|
@@ -149,17 +164,14 @@ init x init
|
|
|
149
164
|
- **intlayer**
|
|
150
165
|
Bộ công cụ i18n cốt lõi dùng để cấu hình, nội dung từ điển, tạo kiểu, và các lệnh CLI.
|
|
151
166
|
|
|
152
|
-
- **react-intlayer**
|
|
153
|
-
Tích hợp React cung cấp các context provider và React hook mà bạn sẽ dùng trong React Native để lấy và chuyển đổi ngôn ngữ.
|
|
154
|
-
|
|
155
167
|
- **react-native-intlayer**
|
|
156
|
-
Tích hợp React Native cung cấp plugin Metro để tích hợp Intlayer với bundler của React Native.
|
|
168
|
+
Tích hợp React Native cung cấp các context provider và React hook mà bạn sẽ dùng để lấy và chuyển đổi ngôn ngữ, các polyfill cho React Native, và plugin Metro để tích hợp Intlayer với bundler của React Native. Nó tái xuất tất cả mọi thứ từ `react-intlayer`, vì vậy bạn chỉ cần gói duy nhất này trong một ứng dụng React Native.
|
|
157
169
|
|
|
158
170
|
---
|
|
159
171
|
|
|
160
172
|
</Step>
|
|
161
173
|
|
|
162
|
-
<Step number={
|
|
174
|
+
<Step number={2} title="Tạo cấu hình Intlayer">
|
|
163
175
|
|
|
164
176
|
Trong thư mục gốc dự án của bạn (hoặc bất cứ nơi nào thuận tiện), tạo một file **cấu hình Intlayer**. Nó có thể trông như sau:
|
|
165
177
|
|
|
@@ -189,11 +201,11 @@ Trong cấu hình này, bạn có thể:
|
|
|
189
201
|
- Cấu hình **danh sách các ngôn ngữ được hỗ trợ**.
|
|
190
202
|
- Đặt một ngôn ngữ **mặc định**.
|
|
191
203
|
- Sau này, bạn có thể thêm các tùy chọn nâng cao hơn (ví dụ: ghi log, thư mục nội dung tùy chỉnh, v.v.).
|
|
192
|
-
- Xem thêm tại [tài liệu cấu hình Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/
|
|
204
|
+
- Xem thêm tại [tài liệu cấu hình Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|
|
193
205
|
|
|
194
206
|
</Step>
|
|
195
207
|
|
|
196
|
-
<Step number={
|
|
208
|
+
<Step number={3} title="Thêm plugin Metro">
|
|
197
209
|
|
|
198
210
|
Metro là một trình đóng gói (bundler) cho React Native. Đây là trình đóng gói mặc định cho các dự án React Native được tạo bằng lệnh `react-native init`. Để sử dụng Intlayer với Metro, bạn cần thêm plugin vào file `metro.config.js` của bạn:
|
|
199
211
|
|
|
@@ -213,11 +225,11 @@ module.exports = (async () => {
|
|
|
213
225
|
|
|
214
226
|
</Step>
|
|
215
227
|
|
|
216
|
-
<Step number={
|
|
228
|
+
<Step number={4} title="Thêm Intlayer provider">
|
|
217
229
|
|
|
218
230
|
Để giữ đồng bộ ngôn ngữ người dùng trên toàn bộ ứng dụng của bạn, bạn cần bao bọc component gốc của bạn với component `IntlayerProvider` từ `react-native-intlayer`.
|
|
219
231
|
|
|
220
|
-
>
|
|
232
|
+
> Luôn nhập từ `react-native-intlayer`. `IntlayerProvider` của nó bao gồm các polyfill cho web API được sử dụng bởi Intlayer, và gói này tái xuất tất cả các hook và tiện ích từ `react-intlayer`.
|
|
221
233
|
|
|
222
234
|
Ngoài ra, bạn cần thêm hàm `intlayerPolyfill` vào file `index.js` của bạn để đảm bảo Intlayer hoạt động đúng.
|
|
223
235
|
|
|
@@ -244,7 +256,7 @@ export default RootLayout;
|
|
|
244
256
|
|
|
245
257
|
</Step>
|
|
246
258
|
|
|
247
|
-
<Step number={
|
|
259
|
+
<Step number={5} title="Khai báo Nội dung của Bạn">
|
|
248
260
|
|
|
249
261
|
Tạo các tệp **khai báo nội dung** ở bất kỳ đâu trong dự án của bạn (thường là trong thư mục `src/`), sử dụng bất kỳ định dạng phần mở rộng nào mà Intlayer hỗ trợ:
|
|
250
262
|
|
|
@@ -315,7 +327,7 @@ export default homeScreenContent;
|
|
|
315
327
|
|
|
316
328
|
</Step>
|
|
317
329
|
|
|
318
|
-
<Step number={
|
|
330
|
+
<Step number={6} title="Sử dụng Intlayer trong các Component của bạn">
|
|
319
331
|
|
|
320
332
|
Sử dụng hook `useIntlayer` trong các component con để lấy nội dung đã được bản địa hóa.
|
|
321
333
|
|
|
@@ -323,7 +335,7 @@ Sử dụng hook `useIntlayer` trong các component con để lấy nội dung
|
|
|
323
335
|
|
|
324
336
|
```tsx fileName="app/(tabs)/index.tsx" codeFormat={["typescript", "esm"]}
|
|
325
337
|
import { Image, StyleSheet, Platform } from "react-native";
|
|
326
|
-
import { useIntlayer } from "react-intlayer";
|
|
338
|
+
import { useIntlayer } from "react-native-intlayer";
|
|
327
339
|
import { HelloWave } from "@/components/HelloWave";
|
|
328
340
|
import ParallaxScrollView from "@/components/ParallaxScrollView";
|
|
329
341
|
import { ThemedText } from "@/components/ThemedText";
|
|
@@ -370,7 +382,7 @@ export default HomeScreen;
|
|
|
370
382
|
|
|
371
383
|
</Step>
|
|
372
384
|
|
|
373
|
-
<Step number={
|
|
385
|
+
<Step number={7} title="Thay đổi Ngôn ngữ Ứng dụng" isOptional={true}>
|
|
374
386
|
|
|
375
387
|
Để chuyển đổi ngôn ngữ từ bên trong các component của bạn, bạn có thể sử dụng phương thức `setLocale` của hook `useLocale`:
|
|
376
388
|
|
|
@@ -378,7 +390,7 @@ export default HomeScreen;
|
|
|
378
390
|
import { type FC } from "react";
|
|
379
391
|
import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
|
|
380
392
|
import { getLocaleName } from "intlayer";
|
|
381
|
-
import { useLocale } from "react
|
|
393
|
+
import { useLocale } from "react-native-intlayer";
|
|
382
394
|
|
|
383
395
|
export const LocaleSwitcher: FC = () => {
|
|
384
396
|
const { setLocale, availableLocales } = useLocale();
|
|
@@ -421,7 +433,7 @@ const styles = StyleSheet.create({
|
|
|
421
433
|
|
|
422
434
|
Điều này kích hoạt việc render lại tất cả các component sử dụng nội dung Intlayer, giờ đây hiển thị bản dịch cho locale mới.
|
|
423
435
|
|
|
424
|
-
> Xem thêm tài liệu [`useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/
|
|
436
|
+
> Xem thêm tài liệu [`useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md) để biết chi tiết.
|
|
425
437
|
|
|
426
438
|
</Step>
|
|
427
439
|
|
|
@@ -496,13 +508,12 @@ Intlayer chủ yếu hướng đến Web Intl API; trên React Native bạn ph
|
|
|
496
508
|
|
|
497
509
|
Danh sách kiểm tra:
|
|
498
510
|
|
|
499
|
-
- Sử dụng các phiên bản mới nhất của `intlayer
|
|
511
|
+
- Sử dụng các phiên bản mới nhất của `intlayer` và `react-native-intlayer`.
|
|
500
512
|
- Kích hoạt polyfill của Intlayer.
|
|
501
513
|
- Nếu bạn sử dụng `getLocaleName` hoặc các tiện ích dựa trên Intl-API khác, hãy nhập các polyfill này sớm (ví dụ trong `index.js` hoặc `App.tsx`):
|
|
502
514
|
|
|
503
515
|
```ts
|
|
504
516
|
import "intl";
|
|
505
|
-
// Nhập polyfill để hỗ trợ các tính năng Intl khác nhau
|
|
506
517
|
import "@formatjs/intl-getcanonicallocales/polyfill";
|
|
507
518
|
import "@formatjs/intl-locale/polyfill";
|
|
508
519
|
import "@formatjs/intl-pluralrules/polyfill";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-21
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-25
|
|
4
4
|
title: Tài liệu gói react-native-intlayer
|
|
5
|
-
description: Hỗ trợ React Native cho Intlayer, cung cấp provider và
|
|
5
|
+
description: Hỗ trợ React Native cho Intlayer, cung cấp provider, hook, polyfill và cấu hình 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: "Tái xuất toàn bộ API react-intlayer (hook, tiện ích, các subpath format/html/markdown) để ứng dụng React Native chỉ cần phụ thuộc vào react-native-intlayer"
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-21
|
|
19
22
|
changes: "Hợp nhất tài liệu cho tất cả các exports"
|
|
@@ -22,7 +25,9 @@ author: aymericzip
|
|
|
22
25
|
|
|
23
26
|
# Gói react-native-intlayer
|
|
24
27
|
|
|
25
|
-
Gói `react-native-intlayer` cung cấp các công cụ cần thiết để tích hợp Intlayer vào các ứng dụng React Native. Nó
|
|
28
|
+
Gói `react-native-intlayer` cung cấp các công cụ cần thiết để tích hợp Intlayer vào các ứng dụng React Native. Nó tái xuất toàn bộ API `react-intlayer` (hook và tiện ích) với `IntlayerProvider` sẵn sàng cho React Native, cùng các polyfill và cấu hình Metro mà React Native yêu cầu.
|
|
29
|
+
|
|
30
|
+
> Trong một ứng dụng React Native, hãy nhập **tất cả mọi thứ** từ `react-native-intlayer`. Bạn không cần cài đặt hoặc nhập `react-intlayer` trực tiếp.
|
|
26
31
|
|
|
27
32
|
## Cài đặt
|
|
28
33
|
|
|
@@ -34,14 +39,30 @@ npm install react-native-intlayer
|
|
|
34
39
|
|
|
35
40
|
### Provider
|
|
36
41
|
|
|
37
|
-
| Thành phần | Mô tả
|
|
38
|
-
| ------------------ |
|
|
39
|
-
| `IntlayerProvider` | Component Provider bọc ứng dụng của bạn và cung cấp context của Intlayer. |
|
|
42
|
+
| Thành phần | Mô tả |
|
|
43
|
+
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `IntlayerProvider` | Component Provider bọc ứng dụng của bạn và cung cấp context của Intlayer. Tự động áp dụng các polyfill cần thiết. |
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { IntlayerProvider } from "react-native-intlayer";
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Hook và tiện ích
|
|
51
|
+
|
|
52
|
+
Các mục này được tái xuất từ `react-intlayer`, vì vậy bạn có thể nhập chúng trực tiếp từ `react-native-intlayer`:
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
| Export | Mô tả |
|
|
55
|
+
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
56
|
+
| `useIntlayer` | Truy cập nội dung đã bản địa hóa cho một khóa từ điển. |
|
|
57
|
+
| `useLocale` | Đọc và thay đổi locale hiện tại. |
|
|
58
|
+
| `useDictionary`, `useDictionaryAsync`, `useDictionaryDynamic`, `useLoadDynamic` | Tải nội dung từ điển theo nhiều cách khác nhau. |
|
|
59
|
+
| `useI18n` | Hook tương thích với i18next. |
|
|
60
|
+
| `t` | Trợ lý dịch inline. |
|
|
61
|
+
| `getIntlayer`, `getDictionary` | Các hàm lấy nội dung theo kiểu mệnh lệnh. |
|
|
62
|
+
| `localeCookie`, `localeInStorage`, `setLocaleCookie`, `setLocaleInStorage`, `useLocaleCookie`, `useLocaleStorage` | Các trợ lý lưu trữ 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` | Hàm áp dụng các polyfill cần thiết cho React Native để hỗ trợ Intlayer. |
|
|
52
73
|
|
|
53
|
-
|
|
74
|
+
```tsx
|
|
75
|
+
import { intlayerPolyfill } from "react-native-intlayer";
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
> Polyfill được áp dụng tự động khi bạn nhập `IntlayerProvider`. Chỉ gọi `intlayerPolyfill` thủ công nếu bạn cần các polyfill trước khi provider được mount.
|
|
79
|
+
|
|
80
|
+
### Bộ định dạng (Formatters)
|
|
81
|
+
|
|
82
|
+
Các hook định dạng số, ngày tháng và các hook dựa trên Intl khác có sẵn từ subpath `/format`:
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { useNumber, useDate } from "react-native-intlayer/format";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Markdown và 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
|
### Cấu hình Metro
|
|
@@ -66,8 +102,6 @@ Gói `react-native-intlayer` cung cấp các tiện ích cấu hình Metro để
|
|
|
66
102
|
| `configMetroIntlayerSync` | Hàm đồng bộ hợp nhất cấu hình Metro mà không chuẩn bị tài nguyên của Intlayer. |
|
|
67
103
|
| `exclusionList` | Tạo một biểu thức RegExp cho blockList của Metro để loại trừ các tệp nội dung khỏi bundle. |
|
|
68
104
|
|
|
69
|
-
Import:
|
|
70
|
-
|
|
71
105
|
```tsx
|
|
72
|
-
import "react-native-intlayer/metro";
|
|
106
|
+
import { configMetroIntlayer } from "react-native-intlayer/metro";
|
|
73
107
|
```
|