استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تفعيل التحليلات افتراضيًا عند تثبيت `@intlayer/analytics`"v9.3.322/8/2026
- "جعل `routing.enableProxy` ثلاثي الحالات: غير محدد (auto)، `true`، `false`"v9.1.36/8/2026
- "إضافة إعدادات `analytics`"v9.0.011/7/2026
- "Add `enableProxy` option to the routing configuration"v9.0.024/6/2026
- "إضافة خيار `format` إلى تكوين القاموس"v8.10.017/6/2026
- "إضافة دعم لمزود LM Studio"v8.9.412/5/2026
- "إضافة خياري `prune` و `minify` إلى إعدادات البناء"v8.7.08/4/2026
- "إضافة خيار `currentDomain`"v8.7.03/4/2026
- "إضافة تمثيل الكائن لكل لغة لـ 'compiler.output' و 'dictionary.fill'"v8.4.020/3/2026
- "نقل 'baseDir' من إعدادات 'content' إلى إعدادات 'system'"v8.3.011/3/2026
- "تحديث خيارات المترجم، إضافة دعم لـ 'output' و 'noMetadata'"v8.2.09/3/2026
- "تحديث خيارات المترجم"v8.1.725/2/2026
- "إضافة خيار المترجم 'build-only' وبادئة القاموس"v8.1.523/2/2026
- "إضافة دعم لمزودي Open Router و Alibaba و Amazon و Google Vertex Bedrock و Fireworks و Groq و Hugging Face و Together.ai"v8.0.612/2/2026
- "إضافة `dataSerialization` إلى إعدادات الذكاء الاصطناعي"v8.0.56/2/2026
- "تم تغيير اسم وضع الاستيراد `live` إلى `fetch` لوصف الآلية الأساسية بشكل أفضل."v8.0.024/1/2026
- "تم نقل إعدادات البناء `importMode` إلى إعدادات `dictionary`."v8.0.022/1/2026
- "إضافة خيار `rewrite` إلى إعدادات التوجيه"v8.0.022/1/2026
- "فصل إعدادات النظام عن إعدادات المحتوى. نقل المسارات الداخلية إلى خاصية `system`. إضافة `codeDir` لفصل ملفات المحتوى عن تحويل الكود."v8.0.018/1/2026
- "إضافة خيارات القاموس `location` و `schema`"v8.0.018/1/2026
- "إضافة دعم لصيغ ملفات JSON5 و JSONC"v7.5.110/1/2026
- "إضافة خيار `buildMode`"v7.5.017/12/2025
- "إضافة إعدادات `dictionary`"v7.0.025/10/2025
- "استبدال `middleware` بإعدادات `routing`"v7.0.021/10/2025
- "إضافة خيار `formatCommand`"v7.0.012/10/2025
- "تحديث خيار `excludedPath`"v6.2.012/10/2025
- "إضافة خيار `outputFormat`"v6.0.223/9/2025
- "إزالة حقول `dictionaryOutput` و `i18nextResourcesDir`"v6.0.021/9/2025
- "إضافة وضع الاستيراد `live`"v6.0.016/9/2025
- "استبدال حقل `hotReload` بـ `liveSync` وإضافة حقول `liveSyncPort` و `liveSyncURL`"v6.0.04/9/2025
- "استبدال `activateDynamicImport` بخيار `importMode`"v5.6.125/7/2025
- "تغيير `contentDir` الافتراضي من `['src']` إلى `['.']`"v5.6.013/7/2025
- "إضافة أوامر `docs`"v5.5.1129/6/2025
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
توثيق إعدادات Intlayer
نظرة عامة
تسمح لك ملفات إعدادات Intlayer بتخصيص جوانب مختلفة من الإضافة، مثل تدويل التطبيق (i18n)، والبرمجيات الوسيطة (middleware)، وإدارة المحتوى. يوفر هذا المستند وصفاً مفصلاً لكل خاصية في الإعدادات.
جدول المحتويات
دعم ملفات الإعدادات
يقبل Intlayer صيغ ملفات الإعدادات التالية: JSON، JS، MJS، و TS:
intlayer.config.tsintlayer.config.jsintlayer.config.jsonintlayer.config.json5intlayer.config.jsoncintlayer.config.cjsintlayer.config.mjs.intlayerrc
مثال لملف الإعدادات
نسخ الكود إلى الحافظة
مرجع دليل الإعدادات
يوضح ما يلي معالم الإعدادات المختلفة المتاحة في Intlayer.
إعدادات التدويل (Internationalization)
تحدد الإعدادات المتعلقة بتدويل التطبيق، بما في ذلك اللغات المتاحة واللغة الافتراضية.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
locales | قائمة اللغات المدعومة في التطبيق. | string[] | [Locales.ENGLISH] | ['en', 'fr', 'es'] | |
requiredLocales | قائمة اللغات المطلوبة في التطبيق. | string[] | [] | [] | • إذا كانت فارغة، فستكون جميع اللغات مطلوبة في وضع strict. • تأكد من تعريف اللغات المطلوبة أيضاً في حقل locales. |
strictMode | يضمن تنفيذاً قوياً للمحتوى المترجم باستخدام TypeScript. | string | 'inclusive' | • إذا كان "strict": تطلب الدالة t تعريف كل لغة معلنة - يلقي خطأ إذا كانت إحداها مفقودة أو غير معلنة. • إذا كان "inclusive": يحذر من اللغات المفقودة ولكنه يسمح باستخدام اللغات الموجودة غير المعلنة. • إذا كان "loose": يقبل أي لغة موجودة. | |
defaultLocale | اللغة الافتراضية المستخدمة كاحتياطي في حالة عدم العثور على اللغة المطلوبة. | string | Locales.ENGLISH | 'en' | تُستخدم لتحديد اللغة عندما لا يتم تحديدها في رابط URL أو الكوكيز أو الهيدر. |
إعدادات المحرر (Editor)
تحدد إعدادات المحرر المرئي المدمج، بما في ذلك منفذ الخادم وحالة التفعيل.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
applicationURL | رابط التطبيق. | string | undefined | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • يُستخدم لتقييد مصدر (origin) المحرر لأسباب أمنية. • إذا تم تعيينه على '*'، يمكن الوصول إلى المحرر من أي مصدر. |
port | المنفذ المستخدم بواسطة خادم المحرر المرئي. | number | 8000 | ||
editorURL | رابط خادم المحرر. | string | 'http://localhost:8000' | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • يُستخدم لتقييد المصادر التي يمكنها التواصل مع التطبيق. • إذا تم تعيينه على '*'، يمكن الوصول إليه من أي مصدر. • يجب تعيينه إذا تم تغيير المنفذ أو استضافة المحرر على نطاق مختلف. |
cmsURL | رابط Intlayer CMS. | string | 'https://app.intlayer.org' | 'https://app.intlayer.org' | |
backendURL | رابط الخادم الخلفي. | string | https://back.intlayer.org | http://localhost:4000 | |
enabled | ما إذا كان ينبغي للتطبيق التواصل مع المحرر المرئي. | boolean | false | process.env.NODE_ENV !== 'production' | • إذا كان false ، فلا يمكن للمحرر التواصل مع التطبيق. • يؤدي تعطيله لبيئات معينة إلى زيادة الأمان. |
clientId | يسمح لحزم intlayer بالتحقق من الهوية على الخادم الخلفي عبر oAuth2. انتقل إلى intlayer.org/project للحصول على رمز الوصول الخاص بك. | string | undefined | undefined | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. | |
clientSecret | يسمح لحزم intlayer بالتحقق من الهوية على الخادم الخلفي عبر oAuth2. انتقل إلى intlayer.org/project للحصول على رمز الوصول الخاص بك. | string | undefined | undefined | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. | |
dictionaryPriorityStrategy | إستراتيجية أولوية القواميس عند وجود قواميس محلية وعن بعد معاً. | string | 'local_first' | 'distant_first' | • 'distant_first': يعطي الأولوية للقواميس البعيدة على المحلية. • 'local_first': يعطي الأولوية للقواميس المحلية على البعيدة. |
liveSync | ما إذا كان ينبغي لخادم التطبيق إعادة تحميل المحتوى فوراً عند اكتشاف تغييرات في CMS المحرر المرئي الخادم الخلفي. | boolean | true | true | • عند إضافة/تحديث قاموس، سيقوم التطبيق بتحديث محتوى الصفحة. • تستهلك المزامنة الحية المحتوى في خادم آخر، مما قد يؤثر قليلاً على الأداء. • يوصى باستضافة كليهما على نفس الجهاز. |
liveSyncPort | منفذ خادم المزامنة الحية. | number | 4000 | 4000 | |
liveSyncURL | رابط خادم المزامنة الحية. | string | 'http://localhost:{liveSyncPort}' | 'https://example.com' | يشير افتراضياً إلى localhost؛ يمكن تغييره ليشير إلى خادم مزامنة حية بعيد. |
إعدادات التحليلات (Analytics)
يحدد الإعدادات المتعلقة بتحليلات Intlayer: جمع بيانات حول المحتوى الذي يُعرض فعليًا للمستخدمين (مشاهدات الصفحات، حالات ظهور المحتوى) وتمكين اختبارات A/B على المحتوى.
التحليلات مفعّلة افتراضيًا (opt-out): يبدأ الجمع بمجرد تثبيت حزمة @intlayer/analytics و تكوين مفتاح مشروع (editor.clientId) من أجل الإسناد. اضبط analytics.enabled على false — أو لا تثبّت الحزمة — وتتم إزالة تكامل التحليلات بالكامل من حزمة تطبيقك (dead-code elimination).
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | المثال | ملاحظة |
|---|---|---|---|---|---|
enabled | يُفعّل جمع بيانات التحليلات (مشاهدات الصفحات، حالات ظهور المحتوى، أحداث A/B). | boolean | true | false | يتطلب تثبيت @intlayer/analytics وضبط editor.clientId من أجل الإسناد؛ وإلا تبقى التحليلات معطّلة حتى لو كانت enabled تساوي true. |
flushInterval | المللي ثانية بين عمليات الإرسال المجمّعة التلقائية إلى الخادم الخلفي. | number | 20000 | 10000 | |
sampleRate | نسبة الجلسات المراد تسجيلها، من 0 (لا شيء) إلى 1 (الكل). | number | 1 | 0.5 | أخذ العينات حتمي لكل جلسة، لذا فإن الجلسة المسجَّلة تُبلّغ عن جميع أحداثها (دون قوائم تحويل جزئية). |
إعدادات التوجيه (Routing)
الإعدادات التي تتحكم في سلوك التوجيه، بما في ذلك بنية رابط URL، وتخزين اللغة، وإدارة البرمجيات الوسيطة.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
mode | وضع توجيه رابط URL لإدارة اللغات. | 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params' | 'prefix-no-default' | 'prefix-no-default': /dashboard (الإنجليزية) أو /fr/dashboard (الفرنسية). 'prefix-all': /en/dashboard. 'no-prefix': تتم إدارة اللغة بوسائل أخرى. 'search-params': /dashboard?locale=fr | لا يؤثر على إدارة الكوكيز أو تخزين اللغات. |
enableProxy | يفعّل وكيل توجيه اللغات في Intlayer (البرمجية الوسيطة). | boolean | undefined | undefined (auto) | true | • غير محدد (auto): تتجاهل خوادم dev وpreview اللغة المخزّنة في ملفات تعريف الارتباط/الترويسات كمصدر لإعادة التوجيه؛ وتظل البادئات والحفظ واكتشاف Accept-Language سارية. في الإنتاج يتصرف مثل true.• true: السلوك الكامل في كل مكان.• false: بدون توجيه للغات. في Next.js تصبح البرمجية الوسيطة intlayerProxy مجرد ممر. |
storage | إعدادات تخزين اللغة على العميل. | false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array | ['cookie', 'header'] | 'localStorage'[{ type: 'cookie', name: 'custom-locale', secure: true }] | انظر جدول معالم التخزين أدناه. |
basePath | المسار الأساسي لروابط التطبيق. | string | '' | '/my-app' | إذا كان التطبيق يعمل على العنوان https://example.com/my-app ، فإن الـ basePath هو '/my-app' وتصبح الروابط https://example.com/my-app/en. |
rewrite | قواعد إعادة كتابة رابط URL مخصصة تتجاوز وضع التوجيه الافتراضي لمسارات معينة. تدعم المعاملات الديناميكية [param]. | Record<string, StrictModeLocaleMap<string>> | undefined | انظر المثال أدناه | • لقواعد إعادة الكتابة أولوية على mode. • يعمل مع Next.js و Vite. • تقوم getLocalizedUrl() بتطبيق القواعد المناسبة تلقائياً. • انظر إعادة كتابة روابط URL المخصصة. |
domains | يربط اللغات بأسماء نطاقات الاستضافة للتوجيه القائم على النطاق. عند تعيينه، تستخدم روابط URL للغة ذلك النطاق كقاعدة (رابط URL مطلق) ولا يتم إضافة بادئة لغة إلى المسار. | Partial<Record<Locale, string>> | undefined | { zh: 'intlayer.zh', fr: 'intlayer.org' } | • البروتوكول الافتراضي هو https:// عندما لا يتم تضمينه في اسم الاستضافة.• النطاق نفسه يحدد اللغة، لذا لا يتم إضافة بادئة /zh/.• getLocalizedUrl('/', 'zh') يرجع https://intlayer.zh/. |
مثال لـ rewrite:
نسخ الكود إلى الحافظة
معالم التخزين (Storage)
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| القيمة | ملاحظة | الوصف |
|---|---|---|
'cookie' | • للامتثال للقانون العام لحماية البيانات (GDPR)، تأكد من الحصول على موافقة المستخدم بشكل صحيح. • قابل للتخصيص عبر CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }). | يخزن اللغة في الكوكيز - يمكن الوصول إليها على كل من العميل والخادم. |
'localStorage' | • لا تنتهي صلاحيته إلا إذا تم مسحه صراحة. • لا يمكن لـ Intlayer Proxy الوصول إليه. • قابل للتخصيص عبر StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }). | يخزن اللغة في المتصفح دون حد زمني - من جانب العميل فقط. |
'sessionStorage' | • يتم مسحه عند إغلاق التبويب/النافذة. • لا يمكن لـ Intlayer Proxy الوصول إليه. • قابل للتخصيص عبر StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }). | يخزن اللغة طوال مدة جلسة الصفحة - من جانب العميل فقط. |
'header' | • مفيد لطلبات واجهة برمجة التطبيقات (API). • لا يمكن لجانب العميل الوصول إليه. • قابل للتخصيص عبر StorageAttributes ({ type: 'header', name: 'custom-locale' }). | يخزن أو يمرر اللغة عبر ترويسات HTTP - من جانب الخادم فقط. |
سمات الكوكيز (Cookies Attributes)
عند استخدام التخزين في الكوكيز، يمكن تعيين سمات إضافية:
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع |
|---|---|---|
name | اسم الكوكيز. الافتراضي: 'INTLAYER_LOCALE' | string |
domain | نطاق الكوكيز. الافتراضي: undefined | string |
path | مسار الكوكيز. الافتراضي: undefined | string |
secure | يتطلب HTTPS. الافتراضي: undefined | boolean |
httpOnly | علامة HTTP-only. الافتراضي: undefined | boolean |
sameSite | سياسة SameSite. | 'strict' | 'lax' | 'none' |
expires | رقم يمثل الأيام منذ الإنشاء؛ تاريخ (أو سلسلة ISO للتاريخ) هو تاريخ انتهاء مطلق. الافتراضي: undefined | Date | number | string |
maxAge | العمر بالثواني منذ الإنشاء. له الأسبقية على expires. الافتراضي: undefined | number |
سمات التخزين (Storage Attributes)
عند استخدام localStorage أو sessionStorage:
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع |
|---|---|---|
type | نوع التخزين. | 'localStorage' | 'sessionStorage' |
name | اسم المفتاح في التخزين. الافتراضي: 'INTLAYER_LOCALE' | string |
أمثلة للإعدادات
فيما يلي بعض الأمثلة الشائعة للإعدادات لهيكل التوجيه v7 الجديد:
الإعدادات الأساسية (الافتراضية):
نسخ الكود إلى الحافظة
الإعدادات مع الامتثال لـ GDPR:
نسخ الكود إلى الحافظة
وضع معاملات البحث (Search Params):
نسخ الكود إلى الحافظة
وضع بدون بادئة مع تخزين مخصص:
نسخ الكود إلى الحافظة
إعادة كتابة روابط URL مخصصة مع مسارات ديناميكية:
نسخ الكود إلى الحافظة
إعدادات المحتوى (Content)
الإعدادات المتعلقة بكيفية إدارة المحتوى في التطبيق، بما في ذلك أسماء المجلدات، وامتدادات الملفات، والإعدادات المشتقة.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
watch | يشير إلى ما إذا كان ينبغي لـ Intlayer مراقبة التغييرات في ملفات الإعلان عن المحتوى لإعادة توليد القواميس. | boolean | true | ||
fileExtensions | امتدادات الملفات للفحص أثناء تجميع القواميس. | string[] | ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx'] | ['.data.ts', '.data.js', '.data.json'] | يساعد التخصيص في تجنب التعارضات. |
contentDir | المسار إلى المجلد حيث يتم الاحتفاظ بملفات تعريف المحتوى (.content.*). | string[] | ['.'] | ['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content'] | يُستخدم لمراقبة ملفات المحتوى وإعادة توليد القواميس. |
codeDir | المسار إلى المجلد حيث يتم الاحتفاظ بالكود، بالنسبة لمجلد المشروع الأساسي. | string[] | ['.'] | ['src', '../../ui-library'] | • يُستخدم لمراقبة ملفات الكود للتحويل (إزالة الأجزاء غير الضرورية، التحسين). • يمكن أن يؤدي فصله عن contentDir إلى تحسين الأداء. |
excludedPath | المجلدات المستبعدة من فحص المحتوى. | string[] | ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**'] | غير مستخدم حالياً؛ مخطط له في المستقبل. | |
formatCommand | أمر لتنسيق ملفات المحتوى عند كتابتها محلياً بواسطة Intlayer. | string | undefined | 'npx prettier --write "{{file}}" --log-level silent' (Prettier), 'npx biome format "{{file}}" --write --log-level none' (Biome), 'npx eslint --fix "{{file}}" --quiet' (ESLint) | • سيتم استبدال {{file}} بمسار الملف. • إذا لم يتم تعريفه، فسيقوم Intlayer بالتحديد تلقائياً (يختبر prettier و biome و eslint). |
إعدادات النظام
الإعدادات المتعلقة بالمسارات الداخلية ونتائج المخرجات في Intlayer. عادةً ما تكون هذه الإعدادات داخلية ولا يجب أن يحتاج المستخدم إلى تعديلها.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | القيمة الافتراضية | مثال | ملاحظة |
|---|---|---|---|---|---|
baseDir | المجلد الأساسي للمشروع. | string | process.cwd() | '/path/to/project' | يُستخدم لحل جميع المجلدات المتعلقة بـ Intlayer. |
dictionariesDir | مسار المجلد لتخزين قواميس التوطين. | string | '.intlayer/dictionary' | ||
moduleAugmentationDir | المجلد المخصص لتعزيز الوحدات، مما يسمح بتحسين اقتراحات IDE والتحقق من الأنواع. | string | '.intlayer/types' | 'intlayer-types' | تأكد من تضمينها في tsconfig.json. |
unmergedDictionariesDir | المجلد لتخزين القواامس غير المدمجة. | string | '.intlayer/unmerged_dictionary' | ||
typesDir | المجلد لتخزين أنواع القاموس. | string | '.intlayer/types' | ||
mainDir | المجلد حيث يتم تخزين ملفات التطبيق الرئيسية. | string | '.intlayer/main' | ||
configDir | المجلد حيث يتم تخزين ملفات الإعدادات. | string | '.intlayer/config' | ||
cacheDir | المجلد حيث يتم تخزين ملفات الذاكرة المؤقتة. | string | '.intlayer/cache' |
إعدادات القاموس (Dictionary)
المعالم التي تتحكم في عمليات القاموس، بما في ذلك سلوك الملء التلقائي وتوليد المحتوى.
يخدم تكوين القاموس هذا غرضين رئيسيين:
- القيم الافتراضية: حدد القيم الافتراضية عند إنشاء ملفات إعلان المحتوى
- سلوك الاحتياطي: وفر قيماً احتياطية عند عدم تحديد حقول معينة، مما يسمح لك بتحديد سلوك عملية القاموس عالمياً
لمزيد من المعلومات حول ملفات إعلان المحتوى وكيفية تطبيق قيم التكوين، راجع وثائق ملف المحتوى.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
fill | يتحكم في كيفية توليد ملفات مخرجات الملء التلقائي (ترجمة الذكاء الاصطناعي). | boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>> | true | { en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false } | • true: المسار الافتراضي (نفس ملف المصدر). • false: تعطيل. • تولد سلسلة القالب/الدالة ملفات حسب اللغة. • كائن حسب اللغة: كل لغة تقابل قالبها؛ false يتجاهل هذه اللغة. • إدراج {{locale}} يفعل التوليد حسب اللغة. • الـ fill على مستوى القاموس دائماً له الأولوية على هذا الإعداد العام. |
description | يساعد المحرر و CMS على فهم الغرض من القاموس. يُستخدم أيضاً كسياق لتوليد الترجمات باستخدام الذكاء الاصطناعي. | string | undefined | 'User profile section' | |
locale | يحول القاموس إلى صيغة خاصة بلغة محددة. تصبح كل حقل معلن عقدة ترجمة. إذا غاب، يُعتبر القاموس متعدد اللغات. | LocalesValues | undefined | 'en' | استخدم هذا إذا كان القاموس مخصصاً للغة واحدة معينة، بدلاً من ترجمات متعددة. |
contentAutoTransformation | يحول سلاسل المحتوى تلقائياً إلى عقد ذات أنواع (markdown أو HTML أو إدراج). | boolean | { markdown?: boolean; html?: boolean; insertion?: boolean } | false | true | • Markdown : ### Title → md('### Title'). • HTML : <div>Title</div> → html('<div>Title</div>'). • إدراج : Hello {{name}} → insert('Hello {{name}}'). |
location | يشير إلى مكان تخزين ملفات القاموس وكيفية مزامنتها مع CMS. | 'local' | 'remote' | 'hybrid' | 'plugin' | string | 'local' | 'hybrid' | • 'local': إدارة محلية فقط. • 'remote': إدارة عن بعد فقط (CMS). • 'hybrid': إدارة محلية وعن بعد معاً. • 'plugin' أو سلسلة مخصصة: إدارة بواسطة إضافة أو مصدر مخصص. |
importMode | يتحكم في طريقة استيراد القواميس. | 'static' | 'dynamic' | 'fetch' | 'static' | 'dynamic' | • 'static': استيراد ثابت. • 'dynamic': استيراد ديناميكي عبر Suspense. • 'fetch': جلب عبر Live Sync API؛ التراجع إلى 'dynamic' عند الفشل. • يتطلب إضافات @intlayer/babel و @intlayer/swc. • يجب الإعلان عن المفاتيح بشكل ثابت. • يتم تجاهله إذا تم إيقاف optimize. • لا يؤثر على getIntlayer أو getDictionary إلخ. |
format | تنسيق الرسالة الافتراضي لجميع القواميس في المشروع. | 'intlayer' | 'icu' | 'i18next' | 'vue-i18n' | 'po' | 'intlayer' | 'icu' | • 'intlayer': تنسيق intlayer الأصلي.• 'icu': تنسيق رسالة ICU.• 'i18next': تنسيق i18next.• 'vue-i18n': تنسيق Vue I18n.• 'po': تنسيق GNU Gettext PO. |
priority | أولوية القاموس. تفوز القيم الأعلى على القيم الأدنى عند حل التعارضات بين القواميس. | number | undefined | 1 | |
live | ملغي - استخدم importMode: 'fetch'. كان يشير إلى ما إذا كان ينبغي جلب محتوى القاموس ديناميكياً عبر Live Sync API. | boolean | undefined | تم تغيير اسمه إلى importMode: 'fetch' في v8.0.0. | |
schema | يتم توليده تلقائياً بواسطة Intlayer للتحقق من صحة JSON schema. | 'https://intlayer.org/schema.json' | توليد تلقائي | لا تقم بتحريره يدوياً. | |
title | يساعد في التعرف على القاموس في المحرر و CMS. | string | undefined | 'User Profile' | |
tags | يصنف القواميس ويوفر سياقاً أو تعليمات للمحرر والذكاء الاصطناعي. | string[] | undefined | ['user', 'profile'] | |
version | إصدار القاموس البعيد؛ يساعد في تتبع النسخة المستخدمة حالياً. | string | undefined | '1.0.0' | • تتم إدارته في CMS. • لا تقم بتحريره محلياً. |
مثال لـ fill:
نسخ الكود إلى الحافظة
إعدادات السجل (Log)
المعالم لتخصيص مخرجات سجل Intlayer.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
mode | يشير إلى وضع السجل. | 'default' | 'verbose' | 'disabled' | 'default' | 'verbose' | • 'verbose': يسجل المزيد من المعلومات لتصحيح الأخطاء. • 'disabled': يوقف السجل تماماً. |
prefix | بادئة لجميع الرسائل في السجل. | string | '[intlayer] ' | '[my prefix] ' |
إعدادات الذكاء الاصطناعي (AI)
الإعدادات التي تتحكم في ميزات الذكاء الاصطناعي في Intlayer، بما في ذلك المزود، والنموذج، ومفتاح واجهة برمجة التطبيقات.
هذه الإعدادات اختيارية إذا كنت مسجلاً في لوحة تحكم Intlayer بمفتاح وصول. سيقوم Intlayer تلقائياً بإدارة حل الذكاء الاصطناعي الأكثر كفاءة وملاءمة للتكاليف لاحتياجاتك. استخدام الخيارات الافتراضية يضمن أفضل دعم طويل الأمد حيث يتم تحديث Intlayer باستمرار لاستخدام أحدث النماذج.
إذا كنت تفضل استخدام مفتاح واجهة برمجة تطبيقات خاص بك أو نموذج محدد، يمكنك تعريف إعدادات الذكاء الاصطناعي الخاصة بك.
سيتم استخدام إعدادات الذكاء الاصطناعي هذه عالمياً في بيئة Intlayer الخاصة بك. ستستخدم أوامر CLI هذه الإعدادات افتراضياً لأوامر مثل fill ، وكذلك SDK ، والمحرر المرئي ، و CMS. يمكنك تجاوز هذه القيم الافتراضية لحالات استخدام معينة عبر معاملات الأوامر.
يدعم Intlayer العديد من مزودي الذكاء الاصطناعي لتحقيق أقصى قدر من المرونة. حالياً، المزودون المدعومون هم:
- OpenAI (الافتراضي)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Google AI Studio
- Google Vertex
- Meta Llama
- Ollama
- OpenRouter
- Alibaba Cloud
- Fireworks
- Hugging Face
- Groq
- Amazon Bedrock
- Together.ai
- LM Studio
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
provider | المزود المستخدم لميزات الذكاء الاصطناعي في Intlayer. | 'openai' | 'anthropic' | 'mistral' | 'deepseek' | 'gemini' | 'ollama' | 'openrouter' | 'alibaba' | 'fireworks' | 'groq' | 'huggingface' | 'bedrock' | 'googleaistudio' | 'googlevertex' | 'togetherai' | 'lmstudio' | 'moonshotai' | undefined | 'anthropic' | يحتاج المزودون المختلفون إلى مفاتيح واجهة برمجة تطبيقات مختلفة ولهم أسعار مختلفة. |
model | النموذج المستخدم لميزات الذكاء الاصطناعي. | string | لا يوجد | 'gpt-4o-2024-11-20' | يعتمد النموذج المحدد على المزود. |
temperature | يتحكم في عشوائية ردود الذكاء الاصطناعي. | number | لا يوجد | 0.1 | درجة حرارة أعلى = أكثر إبداعاً وأقل قابلية للتنبؤ. |
apiKey | مفتاح واجهة برمجة التطبيقات الخاص بك للمزود المختار. | string | لا يوجد | process.env.OPENAI_API_KEY | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. |
applicationContext | سياق إضافي حول تطبيقك لمساعدة الذكاء الاصطناعي في توليد ترجمات أكثر دقة (المجال، الجمهور المستهدف، النبرة، المصطلحات). | string | لا يوجد | 'سياق تطبيقي الخاص' | يمكن استخدامه لإضافة قواعد (مثلاً: "لا يجب عليك تحويل روابط URL"). |
baseURL | الرابط الأساسي لواجهة برمجة تطبيقات الذكاء الاصطناعي. | string | لا يوجد | 'https://api.openai.com/v1''http://localhost:5000' | يمكن أن يشير إلى نقطة نهاية محلية أو مخصصة لواجهة برمجة تطبيقات الذكاء الاصطناعي. |
dataSerialization | صيغة تسلسل البيانات لميزات الذكاء الاصطناعي. | 'json' | 'toon' | undefined | 'toon' | • 'json': افتراضي، موثوق؛ يستهلك المزيد من الوحدات. • 'toon': وحدات أقل، أقل استقراراً. • يتم تمرير المعاملات الإضافية إلى النموذج كسياق (جهد التفكير إلخ). |
إعدادات البناء (Build)
المعالم التي تتحكم في كيفية قيام Intlayer بتحسين وترجمة تدويل تطبيقك.
يتم تطبيق خيارات البناء على إضافات @intlayer/babel و @intlayer/swc.
في وضع التطوير، يستخدم Intlayer استيراداً ثابتاً للقواميس لتبسيط عملية التطوير.
أثناء التحسين، سيقوم Intlayer باستبدال استدعاءات القواميس لتحسين تقسيم الكود (chunking) بحيث تستورد الحزمة الناتجة القواميس المستخدمة فعلياً فقط.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
mode | يتحكم في وضع البناء. | 'auto' | 'manual' | 'auto' | 'manual' | • 'auto': يتم تشغيل البناء تلقائياً أثناء بناء التطبيق. • 'manual': يتم تنفيذه فقط عند استدعاء أمر بناء صريح. • يمكن استخدامه لإيقاف بناء القواميس (مثلاً لتجنب الجري في بيئات Node.js). |
optimize | يتحكم في ما إذا كان ينبغي إجراء تحسينات البناء. | boolean | undefined | process.env.NODE_ENV === 'production' | • إذا لم يتم تعريفه، فسيتم تشغيل التحسين عند بناء إطار العمل (Vite/Next.js). • true يفرض التحسين حتى في وضع التطوير. • false يعطله. • عند تشغيله، يستبدل استدعاءات القواميس لتحسين الـ chunking. • يتطلب إضافات @intlayer/babel و @intlayer/swc. |
minify | يحدد ما إذا كان ينبغي ضغط القواميس لتقليل حجم الحزمة. | boolean | false | • يحدد ما إذا كانت الحزمة يجب أن تكون مضغوطة. • الافتراضي: true في الإنتاج.• سيتم تجاهل هذا الخيار إذا تم تعطيل optimize.• سيتم تجاهل هذا الخيار إذا كان editor.enabled صحيحاً. | |
prune | يحدد ما إذا كان ينبغي حذف المفاتيح غير المستخدمة في القواميس. | boolean | true | • يحدد ما إذا كانت الحزمة يجب أن يتم تنظيفها. • الافتراضي: true في الإنتاج.• سيتم تجاهل هذا الخيار إذا تم تعطيل optimize. | |
checkTypes | يشير إلى ما إذا كان ينبغي للبناء التحقق من أنواع TypeScript وتسجيل الأخطاء. | boolean | false | قد يبطئ عملية البناء. | |
chunkGrouping | يحدد ما إذا كان يجب تجميع أجزاء القاموس لكل لغة حسب حدود تقسيم الشيفرة التي تستخدمها. | boolean | true | • بدون التجميع، ترسل الصفحة المكوّنة من مكوّنات عديدة طلباً لكل قاموس. • القواميس التي يُوصل إليها من عدة حدود تنتقل إلى جزء مشترك، لذا لا تحمل أي صفحة محتوى صفحة أخرى. • ينطبق فقط على القواميس التي تستخدم importMode: 'dynamic'.• ينطبق فقط على بناء العميل، وفقط عند التحزيم (ليس في وضع التطوير). | |
dictionariesPreload | يحدد ما إذا كان يجب تحميل القاموس مع الجزء الذي يستخدمه، بدلاً من جلبه بعد عرض ذلك الجزء. | boolean | true | • تنتظر نقطة الدخول المولَّدة لغة التصفح في المستوى الأعلى، لذا لا يُعتبر المسار المحمّل بتكاسل محمّلاً حتى يتوفر محتواه. • تُعرض القراءات بشكل متزامن بدلاً من التعليق، لذا لم تعد حالة التحميل تومض أثناء التنقل. • يتم انتظار اللغة المحددة فقط، لذا تنزّل الصفحة اللغة التي تعرضها فحسب. • ينطبق فقط على القواميس التي تستخدم importMode: 'dynamic' في بناء العميل.• يتطلب أداة تحزيم تدعم top-level await (Vite، esbuild). | |
outputFormat | يتحكم في صيغة إخراج القواميس. | ('esm' | 'cjs')[] | ['esm', 'cjs'] | ['cjs'] | |
traversePattern | الأنماط التي تحدد الملفات التي يتم فحصها أثناء التحسين. | string[] | ['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*'] | ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**'] | • قيد التحسين على الملفات ذات الصلة لزيادة أداء البناء. • سيتم تجاهله إذا توقف optimize. • يستخدم أنماط glob. |
إعدادات المترجم (Compiler)
الإعدادات التي تتحكم في مترجم Intlayer، الذي يستخرج القواميس مباشرة من مكوناتك.
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
|---|---|---|---|---|---|
enabled | يشير إلى ما إذا كان ينبغي تفعيل المترجم لاستخراج القواميس. | boolean | 'build-only' | true | 'build-only' | 'build-only' يتخطى المترجم أثناء التطوير لبناء أسرع؛ يتم تنفيذه فقط عند أوامر البناء. |
dictionaryKeyPrefix | بادئة لمفاتيح القواميس المستخرجة. | string | '' | 'my-prefix-' | تتم إضافتها إلى المفتاح المولد (بناءً على اسم الملف) لتجنب التعارضات. |
saveComponents | ما إذا كان ينبغي حفظ المكونات بعد تحويلها. | boolean | false | • إذا كان true ، فسيتم استبدال الملفات الأصلية بنسخها المحولة. • يمكن إزالة المترجم بعد تشغيله مرة واحدة. | |
output | يحدد المسار لملفات الإخراج. يستبدل outputDir. يدعم قوالب المتغيرات: {{fileName}}, {{key}}, {{locale}}, {{extension}}, {{componentFileName}}, {{componentExtension}}, {{format}}, {{componentFormat}}, {{componentDirPath}}. | boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>> | undefined | './{{fileName}}{{extension}}''/locales/{{locale}}/{{key}}.json'{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false } | • يتم حل مسارات ./ بالنسبة لمجلد المكون. • مسارات / بالنسبة للمشروع الأساسي. • {{locale}} يتضمن التوليد حسب اللغة. • يدعم تمثيل الكائن لكل لغة. |
noMetadata | إذا كان true ، فسيقوم المترجم بحذف بيانات ميتا القاموس (المفتاح، غلاف المحتوى) من المخرجات. | boolean | false | false → {"key":"my-key","content":{"key":"value"}}true → {"key":"value"} | • مفيد لمخرجات بصيغة i18next أو ICU MessageFormat JSON. • يعمل جيداً مع إضافة loadJSON. |
dictionaryKeyPrefix | بادئة لمفتاح القاموس | string | '' | إضافة بادئة اختيارية لمفاتيح القواميس المستخرجة |
مخططات مخصصة (Custom Schemas)
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع |
|---|---|---|
schemas | يسمح لك بتعريف مخططات Zod للتحقق من صحة هيكل قواميسك. | Record<string, ZodSchema> |
الإضافات (Plugins)
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الحقل | الوصف | النوع |
|---|---|---|
plugins | قائمة إضافات Intlayer لإدراجها. | IntlayerPlugin[] |
