@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + React i18n - كيفية ترجمة تطبيق React في 2026
|
|
5
5
|
description: تعلّم كيفية إضافة التدويل (i18n) إلى تطبيق Vite و React الخاص بك باستخدام Intlayer. اتبع هذا الدليل لجعل تطبيقك متعدد اللغات.
|
|
6
6
|
keywords:
|
|
@@ -1393,6 +1393,179 @@ Link.displayName = "Link";
|
|
|
1393
1393
|
.intlayer
|
|
1394
1394
|
```
|
|
1395
1395
|
|
|
1396
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
1397
|
+
|
|
1398
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
1399
|
+
|
|
1400
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
1401
|
+
|
|
1402
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
1403
|
+
|
|
1404
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1405
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1406
|
+
|
|
1407
|
+
const config: IntlayerConfig = {
|
|
1408
|
+
// ... بقية التكوين الخاص بك
|
|
1409
|
+
compiler: {
|
|
1410
|
+
/**
|
|
1411
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1412
|
+
*/
|
|
1413
|
+
enabled: true,
|
|
1414
|
+
|
|
1415
|
+
/**
|
|
1416
|
+
* يحدد مسار ملفات المخرجات
|
|
1417
|
+
*/
|
|
1418
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1419
|
+
|
|
1420
|
+
/**
|
|
1421
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1422
|
+
*/
|
|
1423
|
+
saveComponents: false,
|
|
1424
|
+
|
|
1425
|
+
/**
|
|
1426
|
+
* بادئة مفتاح القاموس
|
|
1427
|
+
*/
|
|
1428
|
+
dictionaryKeyPrefix: "",
|
|
1429
|
+
},
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
export default config;
|
|
1433
|
+
```
|
|
1434
|
+
|
|
1435
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1436
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1437
|
+
const config = {
|
|
1438
|
+
// ... بقية التكوين الخاص بك
|
|
1439
|
+
compiler: {
|
|
1440
|
+
/**
|
|
1441
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1442
|
+
*/
|
|
1443
|
+
enabled: true,
|
|
1444
|
+
|
|
1445
|
+
/**
|
|
1446
|
+
* يحدد مسار ملفات المخرجات
|
|
1447
|
+
*/
|
|
1448
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1449
|
+
|
|
1450
|
+
/**
|
|
1451
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1452
|
+
*/
|
|
1453
|
+
saveComponents: false,
|
|
1454
|
+
|
|
1455
|
+
/**
|
|
1456
|
+
* بادئة مفتاح القاموس
|
|
1457
|
+
*/
|
|
1458
|
+
dictionaryKeyPrefix: "",
|
|
1459
|
+
},
|
|
1460
|
+
};
|
|
1461
|
+
|
|
1462
|
+
export default config;
|
|
1463
|
+
```
|
|
1464
|
+
|
|
1465
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1466
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1467
|
+
const config = {
|
|
1468
|
+
// ... بقية التكوين الخاص بك
|
|
1469
|
+
compiler: {
|
|
1470
|
+
/**
|
|
1471
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1472
|
+
*/
|
|
1473
|
+
enabled: true,
|
|
1474
|
+
|
|
1475
|
+
/**
|
|
1476
|
+
* يحدد مسار ملفات المخرجات
|
|
1477
|
+
*/
|
|
1478
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1479
|
+
|
|
1480
|
+
/**
|
|
1481
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1482
|
+
*/
|
|
1483
|
+
saveComponents: false,
|
|
1484
|
+
|
|
1485
|
+
/**
|
|
1486
|
+
* بادئة مفتاح القاموس
|
|
1487
|
+
*/
|
|
1488
|
+
dictionaryKeyPrefix: "",
|
|
1489
|
+
},
|
|
1490
|
+
};
|
|
1491
|
+
|
|
1492
|
+
module.exports = config;
|
|
1493
|
+
```
|
|
1494
|
+
|
|
1495
|
+
<Tabs>
|
|
1496
|
+
<Tab value='أمر الاستخراج'>
|
|
1497
|
+
|
|
1498
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
1499
|
+
|
|
1500
|
+
```bash packageManager="npm"
|
|
1501
|
+
npx intlayer extract
|
|
1502
|
+
```
|
|
1503
|
+
|
|
1504
|
+
```bash packageManager="pnpm"
|
|
1505
|
+
pnpm intlayer extract
|
|
1506
|
+
```
|
|
1507
|
+
|
|
1508
|
+
```bash packageManager="yarn"
|
|
1509
|
+
yarn intlayer extract
|
|
1510
|
+
```
|
|
1511
|
+
|
|
1512
|
+
```bash packageManager="bun"
|
|
1513
|
+
bunx intlayer extract
|
|
1514
|
+
```
|
|
1515
|
+
|
|
1516
|
+
</Tab>
|
|
1517
|
+
<Tab value='مترجم Babel'>
|
|
1518
|
+
|
|
1519
|
+
```bash packageManager="npm"
|
|
1520
|
+
npm install @intlayer/babel --save-dev
|
|
1521
|
+
```
|
|
1522
|
+
|
|
1523
|
+
```bash packageManager="pnpm"
|
|
1524
|
+
pnpm add @intlayer/babel --save-dev
|
|
1525
|
+
```
|
|
1526
|
+
|
|
1527
|
+
```bash packageManager="yarn"
|
|
1528
|
+
yarn add @intlayer/babel --save-dev
|
|
1529
|
+
```
|
|
1530
|
+
|
|
1531
|
+
```bash packageManager="bun"
|
|
1532
|
+
bun add @intlayer/babel --dev
|
|
1533
|
+
```
|
|
1534
|
+
|
|
1535
|
+
```js fileName="babel.config.js"
|
|
1536
|
+
const {
|
|
1537
|
+
intlayerExtractBabelPlugin,
|
|
1538
|
+
getExtractPluginOptions,
|
|
1539
|
+
} = require("@intlayer/babel");
|
|
1540
|
+
|
|
1541
|
+
module.exports = {
|
|
1542
|
+
presets: ["next/babel"],
|
|
1543
|
+
plugins: [
|
|
1544
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
1545
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
1546
|
+
],
|
|
1547
|
+
};
|
|
1548
|
+
```
|
|
1549
|
+
|
|
1550
|
+
```bash packageManager="npm"
|
|
1551
|
+
npm run build # أو npm run dev
|
|
1552
|
+
```
|
|
1553
|
+
|
|
1554
|
+
```bash packageManager="pnpm"
|
|
1555
|
+
pnpm run build # Or pnpm run dev
|
|
1556
|
+
```
|
|
1557
|
+
|
|
1558
|
+
```bash packageManager="yarn"
|
|
1559
|
+
yarn build # Or yarn dev
|
|
1560
|
+
```
|
|
1561
|
+
|
|
1562
|
+
```bash packageManager="bun"
|
|
1563
|
+
bun run build # Or bun run dev
|
|
1564
|
+
```
|
|
1565
|
+
|
|
1566
|
+
</Tab>
|
|
1567
|
+
</Tabs>
|
|
1568
|
+
|
|
1396
1569
|
### إضافة VS Code
|
|
1397
1570
|
|
|
1398
1571
|
لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **إضافة Intlayer الرسمية لـ VS Code**.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Solid i18n - كيفية ترجمة تطبيق Solid في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك باستخدام Vite و Solid متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
@@ -561,6 +561,179 @@ const MyComponent = () => {
|
|
|
561
561
|
.intlayer
|
|
562
562
|
```
|
|
563
563
|
|
|
564
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
565
|
+
|
|
566
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
567
|
+
|
|
568
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
569
|
+
|
|
570
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
571
|
+
|
|
572
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
573
|
+
import { type IntlayerConfig } from "intlayer";
|
|
574
|
+
|
|
575
|
+
const config: IntlayerConfig = {
|
|
576
|
+
// ... بقية التكوين الخاص بك
|
|
577
|
+
compiler: {
|
|
578
|
+
/**
|
|
579
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
580
|
+
*/
|
|
581
|
+
enabled: true,
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* يحدد مسار ملفات المخرجات
|
|
585
|
+
*/
|
|
586
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
590
|
+
*/
|
|
591
|
+
saveComponents: false,
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* بادئة مفتاح القاموس
|
|
595
|
+
*/
|
|
596
|
+
dictionaryKeyPrefix: "",
|
|
597
|
+
},
|
|
598
|
+
};
|
|
599
|
+
|
|
600
|
+
export default config;
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
604
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
605
|
+
const config = {
|
|
606
|
+
// ... بقية التكوين الخاص بك
|
|
607
|
+
compiler: {
|
|
608
|
+
/**
|
|
609
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
610
|
+
*/
|
|
611
|
+
enabled: true,
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* يحدد مسار ملفات المخرجات
|
|
615
|
+
*/
|
|
616
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
620
|
+
*/
|
|
621
|
+
saveComponents: false,
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* بادئة مفتاح القاموس
|
|
625
|
+
*/
|
|
626
|
+
dictionaryKeyPrefix: "",
|
|
627
|
+
},
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
export default config;
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
634
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
635
|
+
const config = {
|
|
636
|
+
// ... بقية التكوين الخاص بك
|
|
637
|
+
compiler: {
|
|
638
|
+
/**
|
|
639
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
640
|
+
*/
|
|
641
|
+
enabled: true,
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* يحدد مسار ملفات المخرجات
|
|
645
|
+
*/
|
|
646
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
650
|
+
*/
|
|
651
|
+
saveComponents: false,
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* بادئة مفتاح القاموس
|
|
655
|
+
*/
|
|
656
|
+
dictionaryKeyPrefix: "",
|
|
657
|
+
},
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
module.exports = config;
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
<Tabs>
|
|
664
|
+
<Tab value='أمر الاستخراج'>
|
|
665
|
+
|
|
666
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
667
|
+
|
|
668
|
+
```bash packageManager="npm"
|
|
669
|
+
npx intlayer extract
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
```bash packageManager="pnpm"
|
|
673
|
+
pnpm intlayer extract
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
```bash packageManager="yarn"
|
|
677
|
+
yarn intlayer extract
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
```bash packageManager="bun"
|
|
681
|
+
bunx intlayer extract
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
</Tab>
|
|
685
|
+
<Tab value='مترجم Babel'>
|
|
686
|
+
|
|
687
|
+
```bash packageManager="npm"
|
|
688
|
+
npm install @intlayer/babel --save-dev
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
```bash packageManager="pnpm"
|
|
692
|
+
pnpm add @intlayer/babel --save-dev
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
```bash packageManager="yarn"
|
|
696
|
+
yarn add @intlayer/babel --save-dev
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
```bash packageManager="bun"
|
|
700
|
+
bun add @intlayer/babel --dev
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
```js fileName="babel.config.js"
|
|
704
|
+
const {
|
|
705
|
+
intlayerExtractBabelPlugin,
|
|
706
|
+
getExtractPluginOptions,
|
|
707
|
+
} = require("@intlayer/babel");
|
|
708
|
+
|
|
709
|
+
module.exports = {
|
|
710
|
+
presets: ["next/babel"],
|
|
711
|
+
plugins: [
|
|
712
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
713
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
714
|
+
],
|
|
715
|
+
};
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
```bash packageManager="npm"
|
|
719
|
+
npm run build # أو npm run dev
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
```bash packageManager="pnpm"
|
|
723
|
+
pnpm run build # Or pnpm run dev
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
```bash packageManager="yarn"
|
|
727
|
+
yarn build # Or yarn dev
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
```bash packageManager="bun"
|
|
731
|
+
bun run build # Or bun run dev
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
</Tab>
|
|
735
|
+
</Tabs>
|
|
736
|
+
|
|
564
737
|
### امتداد VS Code
|
|
565
738
|
|
|
566
739
|
لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **امتداد Intlayer الرسمي لـ VS Code**.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Svelte i18n - كيفية ترجمة تطبيق Svelte في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك الإلكتروني باستخدام Vite و Svelte متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
@@ -484,6 +484,179 @@ const changeLocale = (event: Event) => {
|
|
|
484
484
|
.intlayer
|
|
485
485
|
```
|
|
486
486
|
|
|
487
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
488
|
+
|
|
489
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
490
|
+
|
|
491
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
492
|
+
|
|
493
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
494
|
+
|
|
495
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
496
|
+
import { type IntlayerConfig } from "intlayer";
|
|
497
|
+
|
|
498
|
+
const config: IntlayerConfig = {
|
|
499
|
+
// ... بقية التكوين الخاص بك
|
|
500
|
+
compiler: {
|
|
501
|
+
/**
|
|
502
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
503
|
+
*/
|
|
504
|
+
enabled: true,
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* يحدد مسار ملفات المخرجات
|
|
508
|
+
*/
|
|
509
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
513
|
+
*/
|
|
514
|
+
saveComponents: false,
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* بادئة مفتاح القاموس
|
|
518
|
+
*/
|
|
519
|
+
dictionaryKeyPrefix: "",
|
|
520
|
+
},
|
|
521
|
+
};
|
|
522
|
+
|
|
523
|
+
export default config;
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
527
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
528
|
+
const config = {
|
|
529
|
+
// ... بقية التكوين الخاص بك
|
|
530
|
+
compiler: {
|
|
531
|
+
/**
|
|
532
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
533
|
+
*/
|
|
534
|
+
enabled: true,
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* يحدد مسار ملفات المخرجات
|
|
538
|
+
*/
|
|
539
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
543
|
+
*/
|
|
544
|
+
saveComponents: false,
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* بادئة مفتاح القاموس
|
|
548
|
+
*/
|
|
549
|
+
dictionaryKeyPrefix: "",
|
|
550
|
+
},
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
export default config;
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
557
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
558
|
+
const config = {
|
|
559
|
+
// ... بقية التكوين الخاص بك
|
|
560
|
+
compiler: {
|
|
561
|
+
/**
|
|
562
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
563
|
+
*/
|
|
564
|
+
enabled: true,
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* يحدد مسار ملفات المخرجات
|
|
568
|
+
*/
|
|
569
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
573
|
+
*/
|
|
574
|
+
saveComponents: false,
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* بادئة مفتاح القاموس
|
|
578
|
+
*/
|
|
579
|
+
dictionaryKeyPrefix: "",
|
|
580
|
+
},
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
module.exports = config;
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
<Tabs>
|
|
587
|
+
<Tab value='أمر الاستخراج'>
|
|
588
|
+
|
|
589
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
590
|
+
|
|
591
|
+
```bash packageManager="npm"
|
|
592
|
+
npx intlayer extract
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
```bash packageManager="pnpm"
|
|
596
|
+
pnpm intlayer extract
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
```bash packageManager="yarn"
|
|
600
|
+
yarn intlayer extract
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
```bash packageManager="bun"
|
|
604
|
+
bunx intlayer extract
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
</Tab>
|
|
608
|
+
<Tab value='مترجم Babel'>
|
|
609
|
+
|
|
610
|
+
```bash packageManager="npm"
|
|
611
|
+
npm install @intlayer/babel --save-dev
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
```bash packageManager="pnpm"
|
|
615
|
+
pnpm add @intlayer/babel --save-dev
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
```bash packageManager="yarn"
|
|
619
|
+
yarn add @intlayer/babel --save-dev
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
```bash packageManager="bun"
|
|
623
|
+
bun add @intlayer/babel --dev
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
```js fileName="babel.config.js"
|
|
627
|
+
const {
|
|
628
|
+
intlayerExtractBabelPlugin,
|
|
629
|
+
getExtractPluginOptions,
|
|
630
|
+
} = require("@intlayer/babel");
|
|
631
|
+
|
|
632
|
+
module.exports = {
|
|
633
|
+
presets: ["next/babel"],
|
|
634
|
+
plugins: [
|
|
635
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
636
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
637
|
+
],
|
|
638
|
+
};
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
```bash packageManager="npm"
|
|
642
|
+
npm run build # أو npm run dev
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
```bash packageManager="pnpm"
|
|
646
|
+
pnpm run build # Or pnpm run dev
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
```bash packageManager="yarn"
|
|
650
|
+
yarn build # Or yarn dev
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
```bash packageManager="bun"
|
|
654
|
+
bun run build # Or bun run dev
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
</Tab>
|
|
658
|
+
</Tabs>
|
|
659
|
+
|
|
487
660
|
### إضافة VS Code
|
|
488
661
|
|
|
489
662
|
لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **امتداد Intlayer الرسمي لـ VS Code**.
|