@intlayer/docs 8.3.0-canary.4 → 8.3.1
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/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
package/docs/ar/compiler.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: مترجم Intlayer | استخراج المحتوى الآلي للتدويل
|
|
5
5
|
description: قم بأتمتة عملية التدويل الخاصة بك باستخدام مترجم Intlayer. استخرج المحتوى مباشرة من مكوناتك لتحقيق تدويل أسرع وأكثر كفاءة في Vite و Next.js والمزيد.
|
|
6
6
|
keywords:
|
|
@@ -22,7 +22,7 @@ slugs:
|
|
|
22
22
|
history:
|
|
23
23
|
- version: 8.2.0
|
|
24
24
|
date: 2026-03-09
|
|
25
|
-
changes:
|
|
25
|
+
changes: تحديث خيارات المترجم، إضافة دعم FilePathPattern
|
|
26
26
|
- version: 8.1.7
|
|
27
27
|
date: 2026-02-25
|
|
28
28
|
changes: تحديث خيارات المترجم
|
|
@@ -136,9 +136,9 @@ const {
|
|
|
136
136
|
module.exports = {
|
|
137
137
|
presets: ["next/babel"],
|
|
138
138
|
plugins: [
|
|
139
|
-
//
|
|
139
|
+
// استخراج المحتوى من المكونات إلى قواميس
|
|
140
140
|
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
141
|
-
//
|
|
141
|
+
// تحسين الاستيراد عن طريق استبدال useIntlayer باستيراد قواميس مباشر
|
|
142
142
|
[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
|
|
143
143
|
],
|
|
144
144
|
};
|
|
@@ -149,73 +149,85 @@ module.exports = {
|
|
|
149
149
|
See complete tutorial: [Intlayer Compiler with Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_compiler.md)
|
|
150
150
|
|
|
151
151
|
</Tab>
|
|
152
|
+
</Tabs>
|
|
152
153
|
|
|
153
154
|
### التكوين المخصص
|
|
154
155
|
|
|
155
156
|
لتخصيص سلوك المترجم، يمكنك تحديث ملف `intlayer.config.ts` في جذر مشروعك.
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
````ts fileName="intlayer.config.ts"
|
|
158
159
|
import { type IntlayerConfig, Locales } from "intlayer";
|
|
159
160
|
|
|
160
161
|
const config: IntlayerConfig = {
|
|
161
162
|
compiler: {
|
|
162
163
|
/**
|
|
164
|
+
* يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
163
165
|
* اضبط على 'build-only' لتخطي المجمّع أثناء التطوير وتسريع أوقات التشغيل.
|
|
164
166
|
*/
|
|
165
167
|
enabled: true,
|
|
166
168
|
|
|
167
169
|
/**
|
|
168
|
-
*
|
|
170
|
+
* يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
171
|
+
*
|
|
172
|
+
* - المسارات التي تبدأ بـ `./` يتم حلها بالنسبة لدليل المكون.
|
|
173
|
+
* - المسارات التي تبدأ بـ `/` يتم حلها بالنسبة لجذر المشروع (`baseDir`).
|
|
174
|
+
*
|
|
175
|
+
* - تضمين متغير `{{locale}}` في المسار سيمكن توليد قواميس منفصلة لكل لغة.
|
|
176
|
+
*
|
|
177
|
+
* أمثلة:
|
|
178
|
+
* ```ts
|
|
179
|
+
* {
|
|
180
|
+
* // إنشاء ملف .content.ts متعدد اللغات بجانب المكون
|
|
181
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
182
|
+
*
|
|
183
|
+
* // output: './{{fileName}}{{extension}}', // تعبير مكافئ باستخدام قالب السلسلة
|
|
184
|
+
* }
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* ```ts
|
|
188
|
+
* {
|
|
189
|
+
* // إنشاء ملفات JSON مركزية لكل لغة في جذر المشروع
|
|
190
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
191
|
+
*
|
|
192
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // تعبير مكافئ باستخدام قالب السلسلة
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* قائمة المتغيرات:
|
|
197
|
+
* - `fileName`: اسم الملف.
|
|
198
|
+
* - `key`: مفتاح المحتوى.
|
|
199
|
+
* - `locale`: لغة المحتوى.
|
|
200
|
+
* - `extension`: امتداد الملف.
|
|
201
|
+
* - `componentFileName`: اسم ملف المكون.
|
|
202
|
+
* - `componentExtension`: امتداد ملف المكون.
|
|
203
|
+
* - `format`: تنسيق القاموس.
|
|
204
|
+
* - `componentFormat`: تنسيق قاموس المكون.
|
|
205
|
+
* - `componentDirPath`: مسار دليل المكون.
|
|
169
206
|
*/
|
|
170
|
-
|
|
171
|
-
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
172
|
-
"!**/node_modules/**",
|
|
173
|
-
],
|
|
207
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
174
208
|
|
|
175
209
|
/**
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
excludePattern: ["**/node_modules/**"],
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* دليل الإخراج للقواميس المحسنة.
|
|
210
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
211
|
+
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
182
212
|
*/
|
|
183
|
-
|
|
213
|
+
saveComponents: false,
|
|
184
214
|
|
|
185
215
|
/**
|
|
186
|
-
* أدخل المحتوى فقط في الملف الذي تم
|
|
216
|
+
* أدخل المحتوى فقط في الملف الذي تم إنشاؤه. مفيد لإخراج JSON لـ i18next أو ICU MessageFormat لكل لغة.
|
|
217
|
+
*
|
|
218
|
+
* - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`
|
|
187
219
|
*/
|
|
188
220
|
noMetadata: false,
|
|
189
221
|
|
|
190
222
|
/**
|
|
191
223
|
* بادئة مفتاح القاموس
|
|
192
224
|
*/
|
|
193
|
-
dictionaryKeyPrefix: "", //
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
197
|
-
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
198
|
-
*/
|
|
199
|
-
saveComponents: false,
|
|
225
|
+
dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القواميس المستخرجة
|
|
200
226
|
},
|
|
201
227
|
};
|
|
202
228
|
|
|
203
229
|
export default config;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
### ملء الترجمات المفقودة
|
|
207
|
-
|
|
208
|
-
يوفر Intlayer أداة CLI لمساعدتك في ملء الترجمات المفقودة. يمكنك استخدام أمر `intlayer` لاختبار وملء الترجمات المفقودة من الكود الخاص بك.
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
npx intlayer test # اختبار ما إذا كانت هناك ترجمات مفقودة
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
npx intlayer fill # ملء الترجمات المفقودة
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
> لمزيد من التفاصيل، راجع [توثيق CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/ci.md)
|
|
230
|
+
````
|
|
219
231
|
|
|
220
232
|
### مرجع تكوين المجمّع
|
|
221
233
|
|
|
@@ -225,36 +237,37 @@ npx intlayer fill # ملء الترجمات المفقودة
|
|
|
225
237
|
- _النوع_: `boolean | 'build-only'`
|
|
226
238
|
- _الافتراضي_: `true`
|
|
227
239
|
- _الوصف_: يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
240
|
+
|
|
228
241
|
- **dictionaryKeyPrefix**:
|
|
229
242
|
- _النوع_: `string`
|
|
230
|
-
- _الافتراضي_: `'
|
|
243
|
+
- _الافتراضي_: `''`
|
|
231
244
|
- _الوصف_: بادئة لمفاتيح القواميس المستخرجة.
|
|
245
|
+
|
|
232
246
|
- **transformPattern**:
|
|
233
247
|
- _النوع_: `string | string[]`
|
|
234
248
|
- _الافتراضي_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
|
|
235
|
-
- _الوصف_: أنماط لاجتياز الكود لتحسينه.
|
|
249
|
+
- _الوصف_: (مهجور: استخدم `build.traversePattern` بدلاً من ذلك) أنماط لاجتياز الكود لتحسينه.
|
|
250
|
+
|
|
236
251
|
- **excludePattern**:
|
|
237
252
|
- _النوع_: `string | string[]`
|
|
238
253
|
- _الافتراضي_: `['**/node_modules/**']`
|
|
239
|
-
- _الوصف_: أنماط لاستبعادها من التحسين.
|
|
240
|
-
- **outputDir** (Deprecated):
|
|
241
|
-
- _النوع_: `string`
|
|
242
|
-
- _الافتراضي_: `'compiler'`
|
|
243
|
-
- _الوصف_: الدليل الذي سيتم تخزين القواميس المستخرجة فيه.
|
|
254
|
+
- _الوصف_: (مهجور: استخدم `build.traversePattern` بدلاً من ذلك) أنماط لاستبعادها من التحسين.
|
|
244
255
|
|
|
245
256
|
- **output**:
|
|
246
257
|
- _النوع_: `FilePathPattern`
|
|
247
258
|
- _الافتراضي_: `({ key }) => 'compiler/${key}.content.json'`
|
|
248
259
|
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`. يتعامل مع المتغيرات الديناميكية مثل `{{locale}}` و `{{key}}` و `{{fileName}}` و `{{extension}}` و `{{format}}` و `{{dirPath}}` و `{{componentFileName}}` و `{{componentExtension}}` و `{{componentFormat}}`. يمكن تعيينه كسلسلة باستخدام تنسيق `'my/{{var}}/path'`، أو كدالة.
|
|
249
260
|
- _ملاحظة_: يتم حل مسار `./**/*` بالنسبة للمكون. يتم حل مسار `/**/*` بالنسبة لـ `baseDir` الخاص بـ Intlayer.
|
|
261
|
+
- _ملاحظة_: إذا تم تعريف اللغة في المسار، سيتم توليد القواميس لكل لغة.
|
|
250
262
|
- _مثال_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
251
263
|
|
|
252
264
|
- **noMetadata**:
|
|
253
265
|
- _النوع_: `boolean`
|
|
254
266
|
- _الافتراضي_: `false`
|
|
255
|
-
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى).
|
|
267
|
+
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
256
268
|
- _ملاحظة_: مفيد إذا تم استخدامه مع إضافة `loadJSON`.
|
|
257
|
-
- _مثال_:
|
|
269
|
+
- _مثال_:
|
|
270
|
+
إذا كان `true`:
|
|
258
271
|
```json
|
|
259
272
|
{
|
|
260
273
|
"key": "value"
|
|
@@ -274,3 +287,25 @@ npx intlayer fill # ملء الترجمات المفقودة
|
|
|
274
287
|
- _النوع_: `boolean`
|
|
275
288
|
- _الافتراضي_: `false`
|
|
276
289
|
- _الوصف_: يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
290
|
+
|
|
291
|
+
### ملء الترجمات المفقودة
|
|
292
|
+
|
|
293
|
+
يوفر Intlayer أداة CLI لمساعدتك في ملء الترجمات المفقودة. يمكنك استخدام أمر `intlayer` لاختبار وملء الترجمات المفقودة من الكود الخاص بك.
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
npx intlayer test # اختبار ما إذا كانت هناك ترجمات مفقودة
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
npx intlayer fill # ملء الترجمات المفقودة
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### الاستخراج
|
|
304
|
+
|
|
305
|
+
يوفر Intlayer أداة CLI لاستخراج المحتوى من الكود الخاص بك. يمكنك استخدام أمر `intlayer extract` لاستخراج المحتوى من الكود الخاص بك.
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
npx intlayer extract
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
> لمزيد من التفاصيل، راجع [توثيق CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/index.md)
|
package/docs/ar/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: التهيئة
|
|
5
5
|
description: تعلّم كيفية تهيئة Intlayer لتطبيقك. فهم الإعدادات والخيارات المختلفة المتاحة لتخصيص Intlayer حسب احتياجاتك.
|
|
6
6
|
keywords:
|
|
@@ -15,7 +15,7 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: نقل 'baseDir' من تكوين 'content' إلى تكوين 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
21
|
date: 2026-03-09
|
|
@@ -92,7 +92,7 @@ history:
|
|
|
92
92
|
|
|
93
93
|
## مثال على ملف التهيئة
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
96
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
97
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
98
|
import { z } from "zod";
|
|
@@ -190,7 +190,7 @@ const config: IntlayerConfig = {
|
|
|
190
190
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
191
|
* Default: ['cookie', 'header']
|
|
192
192
|
*/
|
|
193
|
-
storage: "cookie",
|
|
193
|
+
storage: ["cookie", "header"],
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
196
|
* Base path for the application URLs.
|
|
@@ -327,6 +327,17 @@ const config: IntlayerConfig = {
|
|
|
327
327
|
* Base URL for the AI API.
|
|
328
328
|
*/
|
|
329
329
|
baseURL: "http://localhost:3000",
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* تسلسل البيانات
|
|
333
|
+
*
|
|
334
|
+
* الخيارات:
|
|
335
|
+
* - "json": معيار ، موثوق ؛ يستخدم المزيد من الرموز.
|
|
336
|
+
* - "toon": عدد أقل من الرموز المميزة ، أقل اتساقا من JSON.
|
|
337
|
+
*
|
|
338
|
+
* الافتراضي: "json"
|
|
339
|
+
*/
|
|
340
|
+
dataSerialization: "json",
|
|
330
341
|
},
|
|
331
342
|
|
|
332
343
|
/**
|
|
@@ -426,42 +437,70 @@ const config: IntlayerConfig = {
|
|
|
426
437
|
compiler: {
|
|
427
438
|
/**
|
|
428
439
|
* يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
440
|
+
*
|
|
441
|
+
* - false : تعطيل المجمّع.
|
|
442
|
+
* - true : تمكين المجمّع.
|
|
443
|
+
* - "build-only" : تخطي المجمّع أثناء التطوير لتسريع أوقات التشغيل.
|
|
444
|
+
*
|
|
445
|
+
* الافتراضي : false
|
|
429
446
|
*/
|
|
430
447
|
enabled: true,
|
|
431
448
|
|
|
432
449
|
/**
|
|
433
|
-
*
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
*
|
|
450
|
+
* يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
451
|
+
*
|
|
452
|
+
* - المسارات التي تبدأ بـ `./` يتم حلها بالنسبة لدليل المكون.
|
|
453
|
+
* - المسارات التي تبدأ بـ `/` يتم حلها بالنسبة لجذر المشروع (`baseDir`).
|
|
454
|
+
*
|
|
455
|
+
* - تضمين متغير `{{locale}}` في المسار سيمكن توليد قواميس منفصلة لكل لغة.
|
|
456
|
+
*
|
|
457
|
+
* أمثلة:
|
|
458
|
+
* ```ts
|
|
459
|
+
* {
|
|
460
|
+
* // إنشاء ملف .content.ts متعدد اللغات بجانب المكون
|
|
461
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
462
|
+
*
|
|
463
|
+
* // output: './{{fileName}}{{extension}}', // تعبير مكافئ باستخدام قالب السلسلة
|
|
464
|
+
* }
|
|
465
|
+
* ```
|
|
466
|
+
*
|
|
467
|
+
* ```ts
|
|
468
|
+
* {
|
|
469
|
+
* // إنشاء ملفات JSON مركزية لكل لغة في جذر المشروع
|
|
470
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
471
|
+
*
|
|
472
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // تعبير مكافئ باستخدام قالب السلسلة
|
|
473
|
+
* }
|
|
474
|
+
* ```
|
|
475
|
+
*
|
|
476
|
+
* قائمة المتغيرات:
|
|
477
|
+
* - `fileName`: اسم الملف.
|
|
478
|
+
* - `key`: مفتاح المحتوى.
|
|
479
|
+
* - `locale`: لغة المحتوى.
|
|
480
|
+
* - `extension`: امتداد الملف.
|
|
481
|
+
* - `componentFileName`: اسم ملف المكون.
|
|
482
|
+
* - `componentExtension`: امتداد ملف المكون.
|
|
483
|
+
* - `format`: تنسيق القاموس.
|
|
484
|
+
* - `componentFormat`: تنسيق قاموس المكون.
|
|
485
|
+
* - `componentDirPath`: مسار دليل المكون.
|
|
442
486
|
*/
|
|
443
|
-
|
|
487
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
444
488
|
|
|
445
489
|
/**
|
|
446
|
-
*
|
|
490
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
491
|
+
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
447
492
|
*/
|
|
448
|
-
|
|
493
|
+
saveComponents: false,
|
|
449
494
|
|
|
450
495
|
/**
|
|
451
|
-
* أدخل المحتوى فقط في الملف الذي تم
|
|
496
|
+
* أدخل المحتوى فقط في الملف الذي تم إنشاؤه. مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
452
497
|
*/
|
|
453
498
|
noMetadata: false,
|
|
454
499
|
|
|
455
500
|
/**
|
|
456
501
|
* بادئة مفتاح القاموس
|
|
457
502
|
*/
|
|
458
|
-
dictionaryKeyPrefix: "", //
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
462
|
-
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
463
|
-
*/
|
|
464
|
-
saveComponents: false,
|
|
503
|
+
dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القاموس المستخرجة
|
|
465
504
|
},
|
|
466
505
|
|
|
467
506
|
/**
|
|
@@ -480,7 +519,7 @@ const config: IntlayerConfig = {
|
|
|
480
519
|
};
|
|
481
520
|
|
|
482
521
|
export default config;
|
|
483
|
-
|
|
522
|
+
````
|
|
484
523
|
|
|
485
524
|
## مرجع التهيئة
|
|
486
525
|
|
|
@@ -1042,7 +1081,7 @@ export default config;
|
|
|
1042
1081
|
|
|
1043
1082
|
- **dictionaryKeyPrefix**:
|
|
1044
1083
|
- _النوع_: `string`
|
|
1045
|
-
- _الافتراضي_: `'
|
|
1084
|
+
- _الافتراضي_: `''`
|
|
1046
1085
|
- _الوصف_: بادئة لمفاتيح القاموس المستخرجة.
|
|
1047
1086
|
- _المثال_: `'my-key-'`
|
|
1048
1087
|
- _ملاحظة_: عند استخراج القواميس، يتم إنشاء المفتاح بناءً على اسم الملف. يتم إضافة هذه البادئة إلى المفتاح الذي تم إنشاؤه لمنع التضارب.
|
|
@@ -1066,24 +1105,28 @@ export default config;
|
|
|
1066
1105
|
- _الوصف_: الأنماط التي تحدد الملفات التي يجب استبعادها أثناء التحسين.
|
|
1067
1106
|
- _المثال_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1068
1107
|
|
|
1069
|
-
- **outputDir**:
|
|
1070
|
-
- _النوع_: `string`
|
|
1071
|
-
- _الافتراضي_: `'compiler'`
|
|
1072
|
-
- _الوصف_: الدليل الذي سيتم تخزين القواميس المستخرجة فيه، بالنسبة لمسار أساس مشروعك.
|
|
1073
|
-
|
|
1074
1108
|
- **output**:
|
|
1075
1109
|
- _النوع_: `FilePathPattern`
|
|
1076
|
-
- _الافتراضي_: `
|
|
1077
|
-
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
1078
|
-
- _ملاحظة_: يتم حل
|
|
1079
|
-
- _
|
|
1110
|
+
- _الافتراضي_: `undefined`
|
|
1111
|
+
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`. يدعم المتغيرات الديناميكية عبر قالب سلسلة أو دالة. المتغيرات المدعومة: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, `{{componentDirPath}}`.
|
|
1112
|
+
- _ملاحظة_: يتم حل المسارات التي تبدأ بـ `./` بالنسبة لدليل المكون. يتم حل المسارات التي تبدأ بـ `/` بالنسبة لجذر المشروع (`baseDir`).
|
|
1113
|
+
- _ملاحظة_: تضمين المتغير `{{locale}}` في المسار سيمكن من توليد قواميس منفصلة حسب اللغة.
|
|
1114
|
+
- _مثال_:
|
|
1115
|
+
- **إنشاء ملفات متعددة اللغات بجانب المكون**:
|
|
1116
|
+
- سلسلة: `'./{{fileName}}{{extension}}'`
|
|
1117
|
+
- دالة: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1118
|
+
|
|
1119
|
+
- **إخراج ملفات JSON مركزية حسب اللغة**:
|
|
1120
|
+
- سلسلة: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1121
|
+
- دالة: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1080
1122
|
|
|
1081
1123
|
- **noMetadata**:
|
|
1082
1124
|
- _النوع_: `boolean`
|
|
1083
1125
|
- _الافتراضي_: `false`
|
|
1084
|
-
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى).
|
|
1126
|
+
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
1085
1127
|
- _ملاحظة_: مفيد إذا تم استخدامه مع إضافة `loadJSON`.
|
|
1086
|
-
- _مثال_:
|
|
1128
|
+
- _مثال_:
|
|
1129
|
+
إذا كان `true`:
|
|
1087
1130
|
```json
|
|
1088
1131
|
{
|
|
1089
1132
|
"key": "value"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Next.js i18n - كيفية ترجمة تطبيق Next.js 16 في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع Next.js 16 الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
@@ -1562,6 +1562,179 @@ const Link = ({ href, children, ...props }) => {
|
|
|
1562
1562
|
};
|
|
1563
1563
|
```
|
|
1564
1564
|
|
|
1565
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
1566
|
+
|
|
1567
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
1568
|
+
|
|
1569
|
+
لتسهيل هذه العملية، يقترح Intlayer [مترجمًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) / [مستخرجًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) لتحويل مكوناتك واستخراج المحتوى.
|
|
1570
|
+
|
|
1571
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
1572
|
+
|
|
1573
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1574
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1575
|
+
|
|
1576
|
+
const config: IntlayerConfig = {
|
|
1577
|
+
// ... بقية التكوين الخاص بك
|
|
1578
|
+
compiler: {
|
|
1579
|
+
/**
|
|
1580
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1581
|
+
*/
|
|
1582
|
+
enabled: true,
|
|
1583
|
+
|
|
1584
|
+
/**
|
|
1585
|
+
* يحدد مسار ملفات المخرجات
|
|
1586
|
+
*/
|
|
1587
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1588
|
+
|
|
1589
|
+
/**
|
|
1590
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1591
|
+
*/
|
|
1592
|
+
saveComponents: false,
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* بادئة مفتاح القاموس
|
|
1596
|
+
*/
|
|
1597
|
+
dictionaryKeyPrefix: "",
|
|
1598
|
+
},
|
|
1599
|
+
};
|
|
1600
|
+
|
|
1601
|
+
export default config;
|
|
1602
|
+
```
|
|
1603
|
+
|
|
1604
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1605
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1606
|
+
const config = {
|
|
1607
|
+
// ... بقية التكوين الخاص بك
|
|
1608
|
+
compiler: {
|
|
1609
|
+
/**
|
|
1610
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1611
|
+
*/
|
|
1612
|
+
enabled: true,
|
|
1613
|
+
|
|
1614
|
+
/**
|
|
1615
|
+
* يحدد مسار ملفات المخرجات
|
|
1616
|
+
*/
|
|
1617
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1618
|
+
|
|
1619
|
+
/**
|
|
1620
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1621
|
+
*/
|
|
1622
|
+
saveComponents: false,
|
|
1623
|
+
|
|
1624
|
+
/**
|
|
1625
|
+
* بادئة مفتاح القاموس
|
|
1626
|
+
*/
|
|
1627
|
+
dictionaryKeyPrefix: "",
|
|
1628
|
+
},
|
|
1629
|
+
};
|
|
1630
|
+
|
|
1631
|
+
export default config;
|
|
1632
|
+
```
|
|
1633
|
+
|
|
1634
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1635
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1636
|
+
const config = {
|
|
1637
|
+
// ... بقية التكوين الخاص بك
|
|
1638
|
+
compiler: {
|
|
1639
|
+
/**
|
|
1640
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1641
|
+
*/
|
|
1642
|
+
enabled: true,
|
|
1643
|
+
|
|
1644
|
+
/**
|
|
1645
|
+
* يحدد مسار ملفات المخرجات
|
|
1646
|
+
*/
|
|
1647
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1648
|
+
|
|
1649
|
+
/**
|
|
1650
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1651
|
+
*/
|
|
1652
|
+
saveComponents: false,
|
|
1653
|
+
|
|
1654
|
+
/**
|
|
1655
|
+
* بادئة مفتاح القاموس
|
|
1656
|
+
*/
|
|
1657
|
+
dictionaryKeyPrefix: "",
|
|
1658
|
+
},
|
|
1659
|
+
};
|
|
1660
|
+
|
|
1661
|
+
module.exports = config;
|
|
1662
|
+
```
|
|
1663
|
+
|
|
1664
|
+
<Tabs>
|
|
1665
|
+
<Tab value='أمر الاستخراج'>
|
|
1666
|
+
|
|
1667
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
1668
|
+
|
|
1669
|
+
```bash packageManager="npm"
|
|
1670
|
+
npx intlayer extract
|
|
1671
|
+
```
|
|
1672
|
+
|
|
1673
|
+
```bash packageManager="pnpm"
|
|
1674
|
+
pnpm intlayer extract
|
|
1675
|
+
```
|
|
1676
|
+
|
|
1677
|
+
```bash packageManager="yarn"
|
|
1678
|
+
yarn intlayer extract
|
|
1679
|
+
```
|
|
1680
|
+
|
|
1681
|
+
```bash packageManager="bun"
|
|
1682
|
+
bunx intlayer extract
|
|
1683
|
+
```
|
|
1684
|
+
|
|
1685
|
+
</Tab>
|
|
1686
|
+
<Tab value='مترجم Babel'>
|
|
1687
|
+
|
|
1688
|
+
```bash packageManager="npm"
|
|
1689
|
+
npm install @intlayer/babel --save-dev
|
|
1690
|
+
```
|
|
1691
|
+
|
|
1692
|
+
```bash packageManager="pnpm"
|
|
1693
|
+
pnpm add @intlayer/babel --save-dev
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
```bash packageManager="yarn"
|
|
1697
|
+
yarn add @intlayer/babel --save-dev
|
|
1698
|
+
```
|
|
1699
|
+
|
|
1700
|
+
```bash packageManager="bun"
|
|
1701
|
+
bun add @intlayer/babel --dev
|
|
1702
|
+
```
|
|
1703
|
+
|
|
1704
|
+
```js fileName="babel.config.js"
|
|
1705
|
+
const {
|
|
1706
|
+
intlayerExtractBabelPlugin,
|
|
1707
|
+
getExtractPluginOptions,
|
|
1708
|
+
} = require("@intlayer/babel");
|
|
1709
|
+
|
|
1710
|
+
module.exports = {
|
|
1711
|
+
presets: ["next/babel"],
|
|
1712
|
+
plugins: [
|
|
1713
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
1714
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
1715
|
+
],
|
|
1716
|
+
};
|
|
1717
|
+
```
|
|
1718
|
+
|
|
1719
|
+
```bash packageManager="npm"
|
|
1720
|
+
npm run build # أو npm run dev
|
|
1721
|
+
```
|
|
1722
|
+
|
|
1723
|
+
```bash packageManager="pnpm"
|
|
1724
|
+
pnpm run build # Or pnpm run dev
|
|
1725
|
+
```
|
|
1726
|
+
|
|
1727
|
+
```bash packageManager="yarn"
|
|
1728
|
+
yarn build # Or yarn dev
|
|
1729
|
+
```
|
|
1730
|
+
|
|
1731
|
+
```bash packageManager="bun"
|
|
1732
|
+
bun run build # Or bun run dev
|
|
1733
|
+
```
|
|
1734
|
+
|
|
1735
|
+
</Tab>
|
|
1736
|
+
</Tabs>
|
|
1737
|
+
|
|
1565
1738
|
#### كيف يعمل
|
|
1566
1739
|
|
|
1567
1740
|
- **اكتشاف الروابط الخارجية**:
|