@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: 2025-11-20
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: SvelteKit i18n - كيفية ترجمة تطبيق SvelteKit في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع SvelteKit الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته باستخدام العرض من جانب الخادم (SSR).
|
|
6
6
|
keywords:
|
|
@@ -185,7 +185,7 @@ export default heroContent;
|
|
|
185
185
|
|
|
186
186
|
> **ملاحظة:** تُرجع `useIntlayer` مخزن Svelte، لذا تحتاج إلى استخدام بادئة `---
|
|
187
187
|
> createdAt: 2025-11-20
|
|
188
|
-
> updatedAt:
|
|
188
|
+
> updatedAt: 2026-03-12
|
|
189
189
|
> title: كيفية ترجمة تطبيق SvelteKit الخاص بك – دليل i18n 2026
|
|
190
190
|
> description: اكتشف كيفية جعل موقع SvelteKit الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته باستخدام العرض من جانب الخادم (SSR).
|
|
191
191
|
> keywords:
|
|
@@ -742,6 +742,179 @@ export default defineConfig({
|
|
|
742
742
|
.intlayer
|
|
743
743
|
```
|
|
744
744
|
|
|
745
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
746
|
+
|
|
747
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
748
|
+
|
|
749
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
750
|
+
|
|
751
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
752
|
+
|
|
753
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
754
|
+
import { type IntlayerConfig } from "intlayer";
|
|
755
|
+
|
|
756
|
+
const config: IntlayerConfig = {
|
|
757
|
+
// ... بقية التكوين الخاص بك
|
|
758
|
+
compiler: {
|
|
759
|
+
/**
|
|
760
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
761
|
+
*/
|
|
762
|
+
enabled: true,
|
|
763
|
+
|
|
764
|
+
/**
|
|
765
|
+
* يحدد مسار ملفات المخرجات
|
|
766
|
+
*/
|
|
767
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
771
|
+
*/
|
|
772
|
+
saveComponents: false,
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* بادئة مفتاح القاموس
|
|
776
|
+
*/
|
|
777
|
+
dictionaryKeyPrefix: "",
|
|
778
|
+
},
|
|
779
|
+
};
|
|
780
|
+
|
|
781
|
+
export default config;
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
785
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
786
|
+
const config = {
|
|
787
|
+
// ... بقية التكوين الخاص بك
|
|
788
|
+
compiler: {
|
|
789
|
+
/**
|
|
790
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
791
|
+
*/
|
|
792
|
+
enabled: true,
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* يحدد مسار ملفات المخرجات
|
|
796
|
+
*/
|
|
797
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
801
|
+
*/
|
|
802
|
+
saveComponents: false,
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* بادئة مفتاح القاموس
|
|
806
|
+
*/
|
|
807
|
+
dictionaryKeyPrefix: "",
|
|
808
|
+
},
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
export default config;
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
815
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
816
|
+
const config = {
|
|
817
|
+
// ... بقية التكوين الخاص بك
|
|
818
|
+
compiler: {
|
|
819
|
+
/**
|
|
820
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
821
|
+
*/
|
|
822
|
+
enabled: true,
|
|
823
|
+
|
|
824
|
+
/**
|
|
825
|
+
* يحدد مسار ملفات المخرجات
|
|
826
|
+
*/
|
|
827
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
831
|
+
*/
|
|
832
|
+
saveComponents: false,
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* بادئة مفتاح القاموس
|
|
836
|
+
*/
|
|
837
|
+
dictionaryKeyPrefix: "",
|
|
838
|
+
},
|
|
839
|
+
};
|
|
840
|
+
|
|
841
|
+
module.exports = config;
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
<Tabs>
|
|
845
|
+
<Tab value='أمر الاستخراج'>
|
|
846
|
+
|
|
847
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
848
|
+
|
|
849
|
+
```bash packageManager="npm"
|
|
850
|
+
npx intlayer extract
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
```bash packageManager="pnpm"
|
|
854
|
+
pnpm intlayer extract
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
```bash packageManager="yarn"
|
|
858
|
+
yarn intlayer extract
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
```bash packageManager="bun"
|
|
862
|
+
bunx intlayer extract
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
</Tab>
|
|
866
|
+
<Tab value='مترجم Babel'>
|
|
867
|
+
|
|
868
|
+
```bash packageManager="npm"
|
|
869
|
+
npm install @intlayer/babel --save-dev
|
|
870
|
+
```
|
|
871
|
+
|
|
872
|
+
```bash packageManager="pnpm"
|
|
873
|
+
pnpm add @intlayer/babel --save-dev
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
```bash packageManager="yarn"
|
|
877
|
+
yarn add @intlayer/babel --save-dev
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
```bash packageManager="bun"
|
|
881
|
+
bun add @intlayer/babel --dev
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
```js fileName="babel.config.js"
|
|
885
|
+
const {
|
|
886
|
+
intlayerExtractBabelPlugin,
|
|
887
|
+
getExtractPluginOptions,
|
|
888
|
+
} = require("@intlayer/babel");
|
|
889
|
+
|
|
890
|
+
module.exports = {
|
|
891
|
+
presets: ["next/babel"],
|
|
892
|
+
plugins: [
|
|
893
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
894
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
895
|
+
],
|
|
896
|
+
};
|
|
897
|
+
```
|
|
898
|
+
|
|
899
|
+
```bash packageManager="npm"
|
|
900
|
+
npm run build # أو npm run dev
|
|
901
|
+
```
|
|
902
|
+
|
|
903
|
+
```bash packageManager="pnpm"
|
|
904
|
+
pnpm run build # Or pnpm run dev
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
```bash packageManager="yarn"
|
|
908
|
+
yarn build # Or yarn dev
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
```bash packageManager="bun"
|
|
912
|
+
bun run build # Or bun run dev
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
</Tab>
|
|
916
|
+
</Tabs>
|
|
917
|
+
|
|
745
918
|
---
|
|
746
919
|
|
|
747
920
|
### التعمق أكثر
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Tanstack Start i18n - كيفية ترجمة تطبيق Tanstack Start في 2026
|
|
5
5
|
description: تعرف على كيفية إضافة التدويل (i18n) إلى تطبيق TanStack Start الخاص بك باستخدام Intlayer. اتبع هذا الدليل الشامل لجعل تطبيقك متعدد اللغات مع توجيه مدرك للغة.
|
|
6
6
|
keywords:
|
|
@@ -773,6 +773,8 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
773
773
|
|
|
774
774
|
---
|
|
775
775
|
|
|
776
|
+
---
|
|
777
|
+
|
|
776
778
|
### تكوين Git
|
|
777
779
|
|
|
778
780
|
يوصى بتجاهل الملفات الناتجة عن Intlayer. يتيح لك هذا تجنب الالتزام بها في مستودع Git الخاص بك.
|
|
@@ -784,6 +786,179 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
784
786
|
.intlayer
|
|
785
787
|
```
|
|
786
788
|
|
|
789
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
790
|
+
|
|
791
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
792
|
+
|
|
793
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
794
|
+
|
|
795
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
796
|
+
|
|
797
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
798
|
+
import { type IntlayerConfig } from "intlayer";
|
|
799
|
+
|
|
800
|
+
const config: IntlayerConfig = {
|
|
801
|
+
// ... بقية التكوين الخاص بك
|
|
802
|
+
compiler: {
|
|
803
|
+
/**
|
|
804
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
805
|
+
*/
|
|
806
|
+
enabled: true,
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* يحدد مسار ملفات المخرجات
|
|
810
|
+
*/
|
|
811
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
812
|
+
|
|
813
|
+
/**
|
|
814
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
815
|
+
*/
|
|
816
|
+
saveComponents: false,
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* بادئة مفتاح القاموس
|
|
820
|
+
*/
|
|
821
|
+
dictionaryKeyPrefix: "",
|
|
822
|
+
},
|
|
823
|
+
};
|
|
824
|
+
|
|
825
|
+
export default config;
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
829
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
830
|
+
const config = {
|
|
831
|
+
// ... بقية التكوين الخاص بك
|
|
832
|
+
compiler: {
|
|
833
|
+
/**
|
|
834
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
835
|
+
*/
|
|
836
|
+
enabled: true,
|
|
837
|
+
|
|
838
|
+
/**
|
|
839
|
+
* يحدد مسار ملفات المخرجات
|
|
840
|
+
*/
|
|
841
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
845
|
+
*/
|
|
846
|
+
saveComponents: false,
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* بادئة مفتاح القاموس
|
|
850
|
+
*/
|
|
851
|
+
dictionaryKeyPrefix: "",
|
|
852
|
+
},
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
export default config;
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
859
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
860
|
+
const config = {
|
|
861
|
+
// ... بقية التكوين الخاص بك
|
|
862
|
+
compiler: {
|
|
863
|
+
/**
|
|
864
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
865
|
+
*/
|
|
866
|
+
enabled: true,
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* يحدد مسار ملفات المخرجات
|
|
870
|
+
*/
|
|
871
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
872
|
+
|
|
873
|
+
/**
|
|
874
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
875
|
+
*/
|
|
876
|
+
saveComponents: false,
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* بادئة مفتاح القاموس
|
|
880
|
+
*/
|
|
881
|
+
dictionaryKeyPrefix: "",
|
|
882
|
+
},
|
|
883
|
+
};
|
|
884
|
+
|
|
885
|
+
module.exports = config;
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
<Tabs>
|
|
889
|
+
<Tab value='أمر الاستخراج'>
|
|
890
|
+
|
|
891
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
892
|
+
|
|
893
|
+
```bash packageManager="npm"
|
|
894
|
+
npx intlayer extract
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
```bash packageManager="pnpm"
|
|
898
|
+
pnpm intlayer extract
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
```bash packageManager="yarn"
|
|
902
|
+
yarn intlayer extract
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
```bash packageManager="bun"
|
|
906
|
+
bunx intlayer extract
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
</Tab>
|
|
910
|
+
<Tab value='مترجم Babel'>
|
|
911
|
+
|
|
912
|
+
```bash packageManager="npm"
|
|
913
|
+
npm install @intlayer/babel --save-dev
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
```bash packageManager="pnpm"
|
|
917
|
+
pnpm add @intlayer/babel --save-dev
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
```bash packageManager="yarn"
|
|
921
|
+
yarn add @intlayer/babel --save-dev
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
```bash packageManager="bun"
|
|
925
|
+
bun add @intlayer/babel --dev
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
```js fileName="babel.config.js"
|
|
929
|
+
const {
|
|
930
|
+
intlayerExtractBabelPlugin,
|
|
931
|
+
getExtractPluginOptions,
|
|
932
|
+
} = require("@intlayer/babel");
|
|
933
|
+
|
|
934
|
+
module.exports = {
|
|
935
|
+
presets: ["next/babel"],
|
|
936
|
+
plugins: [
|
|
937
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
938
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
939
|
+
],
|
|
940
|
+
};
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
```bash packageManager="npm"
|
|
944
|
+
npm run build # أو npm run dev
|
|
945
|
+
```
|
|
946
|
+
|
|
947
|
+
```bash packageManager="pnpm"
|
|
948
|
+
pnpm run build # Or pnpm run dev
|
|
949
|
+
```
|
|
950
|
+
|
|
951
|
+
```bash packageManager="yarn"
|
|
952
|
+
yarn build # Or yarn dev
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
```bash packageManager="bun"
|
|
956
|
+
bun run build # Or bun run dev
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
</Tab>
|
|
960
|
+
</Tabs>
|
|
961
|
+
|
|
787
962
|
---
|
|
788
963
|
|
|
789
964
|
## إضافة 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 + Preact i18n - كيفية ترجمة تطبيق Preact في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك باستخدام Vite و Preact متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
@@ -1344,6 +1344,179 @@ return (
|
|
|
1344
1344
|
.intlayer
|
|
1345
1345
|
```
|
|
1346
1346
|
|
|
1347
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
1348
|
+
|
|
1349
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
1350
|
+
|
|
1351
|
+
لتسهيل هذه العملية، يقترح 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) لتحويل مكوناتك واستخراج المحتوى.
|
|
1352
|
+
|
|
1353
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
1354
|
+
|
|
1355
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1356
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1357
|
+
|
|
1358
|
+
const config: IntlayerConfig = {
|
|
1359
|
+
// ... بقية التكوين الخاص بك
|
|
1360
|
+
compiler: {
|
|
1361
|
+
/**
|
|
1362
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1363
|
+
*/
|
|
1364
|
+
enabled: true,
|
|
1365
|
+
|
|
1366
|
+
/**
|
|
1367
|
+
* يحدد مسار ملفات المخرجات
|
|
1368
|
+
*/
|
|
1369
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1373
|
+
*/
|
|
1374
|
+
saveComponents: false,
|
|
1375
|
+
|
|
1376
|
+
/**
|
|
1377
|
+
* بادئة مفتاح القاموس
|
|
1378
|
+
*/
|
|
1379
|
+
dictionaryKeyPrefix: "",
|
|
1380
|
+
},
|
|
1381
|
+
};
|
|
1382
|
+
|
|
1383
|
+
export default config;
|
|
1384
|
+
```
|
|
1385
|
+
|
|
1386
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1387
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1388
|
+
const config = {
|
|
1389
|
+
// ... بقية التكوين الخاص بك
|
|
1390
|
+
compiler: {
|
|
1391
|
+
/**
|
|
1392
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1393
|
+
*/
|
|
1394
|
+
enabled: true,
|
|
1395
|
+
|
|
1396
|
+
/**
|
|
1397
|
+
* يحدد مسار ملفات المخرجات
|
|
1398
|
+
*/
|
|
1399
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1400
|
+
|
|
1401
|
+
/**
|
|
1402
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1403
|
+
*/
|
|
1404
|
+
saveComponents: false,
|
|
1405
|
+
|
|
1406
|
+
/**
|
|
1407
|
+
* بادئة مفتاح القاموس
|
|
1408
|
+
*/
|
|
1409
|
+
dictionaryKeyPrefix: "",
|
|
1410
|
+
},
|
|
1411
|
+
};
|
|
1412
|
+
|
|
1413
|
+
export default config;
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1417
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1418
|
+
const config = {
|
|
1419
|
+
// ... بقية التكوين الخاص بك
|
|
1420
|
+
compiler: {
|
|
1421
|
+
/**
|
|
1422
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
1423
|
+
*/
|
|
1424
|
+
enabled: true,
|
|
1425
|
+
|
|
1426
|
+
/**
|
|
1427
|
+
* يحدد مسار ملفات المخرجات
|
|
1428
|
+
*/
|
|
1429
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
1433
|
+
*/
|
|
1434
|
+
saveComponents: false,
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* بادئة مفتاح القاموس
|
|
1438
|
+
*/
|
|
1439
|
+
dictionaryKeyPrefix: "",
|
|
1440
|
+
},
|
|
1441
|
+
};
|
|
1442
|
+
|
|
1443
|
+
module.exports = config;
|
|
1444
|
+
```
|
|
1445
|
+
|
|
1446
|
+
<Tabs>
|
|
1447
|
+
<Tab value='أمر الاستخراج'>
|
|
1448
|
+
|
|
1449
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
1450
|
+
|
|
1451
|
+
```bash packageManager="npm"
|
|
1452
|
+
npx intlayer extract
|
|
1453
|
+
```
|
|
1454
|
+
|
|
1455
|
+
```bash packageManager="pnpm"
|
|
1456
|
+
pnpm intlayer extract
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
```bash packageManager="yarn"
|
|
1460
|
+
yarn intlayer extract
|
|
1461
|
+
```
|
|
1462
|
+
|
|
1463
|
+
```bash packageManager="bun"
|
|
1464
|
+
bunx intlayer extract
|
|
1465
|
+
```
|
|
1466
|
+
|
|
1467
|
+
</Tab>
|
|
1468
|
+
<Tab value='مترجم Babel'>
|
|
1469
|
+
|
|
1470
|
+
```bash packageManager="npm"
|
|
1471
|
+
npm install @intlayer/babel --save-dev
|
|
1472
|
+
```
|
|
1473
|
+
|
|
1474
|
+
```bash packageManager="pnpm"
|
|
1475
|
+
pnpm add @intlayer/babel --save-dev
|
|
1476
|
+
```
|
|
1477
|
+
|
|
1478
|
+
```bash packageManager="yarn"
|
|
1479
|
+
yarn add @intlayer/babel --save-dev
|
|
1480
|
+
```
|
|
1481
|
+
|
|
1482
|
+
```bash packageManager="bun"
|
|
1483
|
+
bun add @intlayer/babel --dev
|
|
1484
|
+
```
|
|
1485
|
+
|
|
1486
|
+
```js fileName="babel.config.js"
|
|
1487
|
+
const {
|
|
1488
|
+
intlayerExtractBabelPlugin,
|
|
1489
|
+
getExtractPluginOptions,
|
|
1490
|
+
} = require("@intlayer/babel");
|
|
1491
|
+
|
|
1492
|
+
module.exports = {
|
|
1493
|
+
presets: ["next/babel"],
|
|
1494
|
+
plugins: [
|
|
1495
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
1496
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
1497
|
+
],
|
|
1498
|
+
};
|
|
1499
|
+
```
|
|
1500
|
+
|
|
1501
|
+
```bash packageManager="npm"
|
|
1502
|
+
npm run build # أو npm run dev
|
|
1503
|
+
```
|
|
1504
|
+
|
|
1505
|
+
```bash packageManager="pnpm"
|
|
1506
|
+
pnpm run build # Or pnpm run dev
|
|
1507
|
+
```
|
|
1508
|
+
|
|
1509
|
+
```bash packageManager="yarn"
|
|
1510
|
+
yarn build # Or yarn dev
|
|
1511
|
+
```
|
|
1512
|
+
|
|
1513
|
+
```bash packageManager="bun"
|
|
1514
|
+
bun run build # Or bun run dev
|
|
1515
|
+
```
|
|
1516
|
+
|
|
1517
|
+
</Tab>
|
|
1518
|
+
</Tabs>
|
|
1519
|
+
|
|
1347
1520
|
### إضافة VS Code
|
|
1348
1521
|
|
|
1349
1522
|
لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **إضافة Intlayer الرسمية لـ VS Code**.
|