استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تحديث خيارات المترجم، إضافة دعم FilePathPattern"v8.2.09/3/2026
- "تحديث خيارات المترجم"v8.1.725/2/2026
- "إصدار المترجم"v7.3.127/11/2025
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
مترجم Intlayer | استخراج المحتوى الآلي للتدويل
ما هو مترجم Intlayer؟
يعد مترجم Intlayer أداة قوية مصممة لأتمتة عملية التدويل (i18n) في تطبيقاتك. يقوم بفحص شفرة المصدر الخاصة بك (JSX، TSX، Vue، Svelte) بحثًا عن إعلانات المحتوى، ويستخرجها، ويولد تلقائيًا ملفات القاموس اللازمة. يتيح لك هذا الاحتفاظ بالمحتوى بجانب مكوناتك بينما يتولى Intlayer إدارة ومزامنة قواميسك.
لماذا تستخدم مترجم Intlayer؟
التشغيل الآلي: يلغي الحاجة إلى نسخ ولصق المحتوى يدويًا في القواميس.
السرعة: استخراج المحتوى المحسّن الذي يضمن بقاء عملية البناء لديك سريعة.
تجربة المطور: احتفظ بإعلانات المحتوى في مكان استخدامها، مما يحسن سهولة الصيانة.
- الأتمتة: يلغي النسخ واللصق اليدوي للمحتوى في القواميس.
- السرعة: استخراج المحتوى بشكل محسن لضمان بقاء عملية البناء سريعة.
- تجربة المطور: احتفظ بإعلانات المحتوى في المكان الذي تُستخدم فيه، مما يحسن من سهولة الصيانة.
- التحديثات الحية: يدعم استبدال الوحدات الساخنة (HMR) لتلقي ردود فعل فورية أثناء التطوير.
راجع منشور المدونة المترجم مقابل i18n التصريحي لمقارنة أعمق.
لماذا لا تستخدم مترجم Intlayer؟
بينما يوفر المترجم تجربة ممتازة "تعمل مباشرة"، فإنه يقدم أيضًا بعض المقايضات التي يجب أن تكون على دراية بها:
- الغموض الاستدلالي: يجب على المترجم تخمين ما هو المحتوى الموجه للمستخدم مقابل منطق التطبيق (على سبيل المثال،
className="active"، رموز الحالة، معرفات المنتجات). في قواعد التعليمات البرمجية المعقدة، يمكن أن يؤدي هذا إلى إيجابيات خاطئة أو سلاسل مفقودة تتطلب تعليقات يدوية واستثناءات. الاستخراج الثابت فقط: يعتمد الاستخراج القائم على المترجم على التحليل الثابت. لا يمكن اكتشاف السلاسل التي توجد فقط في وقت التشغيل (رموز أخطاء API، حقول CMS، إلخ) أو ترجمتها بواسطة المترجم وحده، لذلك لا يزال لديك حاجة إلى استراتيجية i18n وقت التشغيل التكميلية.
استخراج ثابت فقط: يعتمد الاستخراج القائم على المترجم على التحليل الثابت. لا يمكن اكتشاف أو ترجمة السلاسل النصية التي توجد فقط في وقت التشغيل (رموز خطأ API، حقول CMS، إلخ) بواسطة المترجم وحده، لذا تحتاج إلى استراتيجية i18n تشغيلية إضافية.
لمقارنة معمارية أعمق، راجع منشور المدونة المترجم مقابل i18n التصريحي.
كبديل، لأتمتة عملية i18n الخاصة بك مع الحفاظ على السيطرة الكاملة على المحتوى الخاص بك، يوفر Intlayer أيضًا أمر الاستخراج التلقائي intlayer extract (راجع وثائق CLI)، أو أمر Intlayer: extract content to Dictionary من امتداد Intlayer VS Code (راجع وثائق امتداد VS Code).
الاستخدام
The quickest way to wire the compiler in is the interactive setup: runnpx intlayer init --interactiveand select Compiler. On Vite there is nothing to configure — the compiler is plugged in directly through theintlayerCompiler()plugin. On Next.js the command scaffolds thebabel.config.jsshown below. The non-interactiveintlayer initleaves the compiler setup untouched.
Vite
بالنسبة للتطبيقات المبنية على Vite (React، Vue، Svelte، إلخ)، أسهل طريقة لاستخدام المترجم هي من خلال إضافة vite-intlayer.
التثبيت
نسخ الكود إلى الحافظة
التهيئة
قم بتحديث ملف vite.config.ts ليشمل إضافة intlayerCompiler:
نسخ الكود إلى الحافظة
إن pluginintlayerCompiler()المستقل لا يزال يتم تصديره للإعدادات المتقدمة. تسجيله جنباً إلى جنب معintlayer()آمن — المترجم يزيل التكرار عن نفسه ويعمل مرة واحدة فقط.
See complete tutorial: Intlayer Compiler with Vite+React
دعم الأُطُر
تقوم إضافة Vite بالكشف التلقائي والتعامل مع أنواع الملفات المختلفة:
React / JSX / TSX: يتم التعامل معها بشكل أصلي.
Vue: يتطلب
@intlayer/vue-compiler.- React / JSX / TSX: يتم التعامل معها بشكل أصلي.
- Vue: يتطلب
@intlayer/vue-compiler. - Svelte: يتطلب
@intlayer/svelte-compiler.
تأكد من تثبيت حزمة المترجم المناسبة لإطار العمل الخاص بك:
نسخ الكود إلى الحافظة
Next.js (Babel)
بالنسبة لتطبيقات Next.js أو التطبيقات الأخرى المبنية على Webpack والتي تستخدم Babel، يمكنك تكوين المترجم باستخدام إضافة @intlayer/babel.
التثبيت
نسخ الكود إلى الحافظة
التهيئة
قم بتحديث ملف babel.config.js (أو babel.config.json) ليشمل إضافة الاستخراج. نحن نوفر مساعدًا getExtractPluginOptions لتحميل تكوين Intlayer الخاص بك تلقائيًا.
نسخ الكود إلى الحافظة
يضمن هذا التكوين استخراج المحتوى المعلن في مكوناتك تلقائيًا واستخدامه لتوليد القواميس أثناء عملية البناء.
See complete tutorial: Intlayer Compiler with Next.js
التكوين المخصص
لتخصيص سلوك المترجم، يمكنك تحديث ملف intlayer.config.ts في جذر مشروعك.
نسخ الكود إلى الحافظة
مرجع تكوين المجمّع
يمكن تكوين الخصائص التالية في كتلة compiler في ملف intlayer.config.ts الخاص بك:
enabled:
- النوع:
boolean | 'build-only' - الافتراضي:
true - الوصف: يشير إلى ما إذا كان يجب تمكين المجمّع.
- النوع:
dictionaryKeyPrefix:
- النوع:
string - الافتراضي:
'' - الوصف: بادئة لمفاتيح القواميس المستخرجة.
- النوع:
transformPattern:
- النوع:
string | string[] - الافتراضي:
['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**'] - الوصف: (مهجور: استخدم
build.traversePatternبدلاً من ذلك) أنماط لاجتياز الكود لتحسينه.
- النوع:
excludePattern:
- النوع:
string | string[] - الافتراضي:
['**/node_modules/**'] - الوصف: (مهجور: استخدم
build.traversePatternبدلاً من ذلك) أنماط لاستبعادها من التحسين.
- النوع:
output:
- النوع:
FilePathPattern - الافتراضي:
({ key }) => 'compiler/${key}.content.json' - الوصف: يحدد مسار ملفات الإخراج. يستبدل
outputDir. يتعامل مع المتغيرات الديناميكية مثل{{locale}}و{{key}}و{{fileName}}و{{extension}}و{{format}}و{{dirPath}}و{{componentFileName}}و{{componentExtension}}و{{componentFormat}}. يمكن تعيينه كسلسلة باستخدام تنسيق'my/{{var}}/path'، أو كدالة. - ملاحظة: يتم حل مسار
./**/*بالنسبة للمكون. يتم حل مسار/**/*بالنسبة لـbaseDirالخاص بـ Intlayer. - ملاحظة: إذا تم تعريف اللغة في المسار، سيتم توليد القواميس لكل لغة.
- مثال:
output: ({ locale, key }) => 'compiler/${locale}/${key}.json'
- النوع:
noMetadata:
- النوع:
boolean - الافتراضي:
false - الوصف: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
- ملاحظة: مفيد إذا تم استخدامه مع إضافة
loadJSON. - مثال:
إذا كان
true:json { "key": "value" }إذا كانfalse:json { "key": "value", "content": { "key": "value" } }
- النوع:
saveComponents:
- النوع:
boolean - الافتراضي:
false - الوصف: يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
- النوع:
ملء الترجمات المفقودة
يوفر Intlayer أداة CLI لمساعدتك في ملء الترجمات المفقودة. يمكنك استخدام أمر intlayer لاختبار وملء الترجمات المفقودة من الكود الخاص بك.
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
الاستخراج
يوفر Intlayer أداة CLI لاستخراج المحتوى من الكود الخاص بك. يمكنك استخدام أمر intlayer extract لاستخراج المحتوى من الكود الخاص بك.
نسخ الكود إلى الحافظة
لمزيد من التفاصيل، راجع توثيق CLI
