استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
هذه الوثيقة غير محدثة، تم تحديث النسخة الأساسية في 29 أغسطس 2026.
الانتقال إلى الوثيقة الإنجليزيةتاريخ الإصدارات
- "تحديث استخدام واجهة برمجة تطبيقات useIntlayer في Solid للوصول المباشر إلى الخصائص"v8.9.04/5/2026
- "إضافة أمر init"v7.5.930/12/2025
- "بدء التاريخ"v7.1.1020/11/2025
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
ترجمة موقع SvelteKit الخاص بك باستخدام Intlayer | التدويل (i18n)
جدول المحتويات
لماذا Intlayer على البدائل؟
بالمقارنة مع الحلول الرئيسية مثل svelte-i18n أو i18next، يعد Intlayer حلاً يأتي مزودًا بتحسينات متكاملة مثل:
تم تحسين Intlayer للعمل بشكل مثالي مع SvelteKit من خلال تقديم توجيه متعدد اللغات، دعم SSR، وجميع الميزات اللازمة لتوسيع نطاق التدويل (i18n).
بدلاً من تحميل ملفات JSON ضخمة إلى صفحاتك، قم بتحميل المحتوى الضروري فقط. يساعد Intlayer في تقليل أحجام البندل وصفحاتك بنسبة تصل إلى 50%.
يؤدي تحديد نطاق محتوى تطبيقك * إلى تسهيل الصيانة * للتطبيقات واسعة النطاق. يمكنك تكرار أو حذف مجلد ميزات واحد دون العبء العقلي لمراجعة قاعدة بيانات المحتوى بالكامل. بالإضافة إلى ذلك، تتم كتابة Intlayer بالكامل لضمان دقة المحتوى الخاص بك.
يؤدي تحديد موقع المحتوى المشترك * إلى تقليل السياق المطلوب * بواسطة نماذج اللغات الكبيرة (LLMs). يأتي Intlayer أيضًا مزودًا بمجموعة من الأدوات، مثل CLI لاختبار الترجمات المفقودة،LSP، MCP وagent skills، لجعل تجربة المطور (DX) أكثر سلاسة للذكاء الاصطناعي وكلاء.
استخدم الأتمتة للترجمة في مسار CI/CD الخاص بك باستخدام LLM من اختيارك على حساب مزود الذكاء الاصطناعي الخاص بك. يقدم Intlayer أيضًا مترجمًا لأتمتة استخراج المحتوى، بالإضافة إلى منصة ويب للمساعدة في الترجمة في الخلفية.
يمكن أن يؤدي ربط ملفات JSON الضخمة بالمكونات إلى حدوث مشكلات في الأداء والتفاعل. يعمل Intlayer على تحسين تحميل المحتوى الخاص بك في وقت الإنشاء.
أكثر من مجرد حل i18n، يوفر Intlayer [محررًا مرئيًا] مستضافًا ذاتيًا](/ar/doc/concept/editor) وكامل CMS لمساعدتك في إدارة المحتوى متعدد اللغات في الوقت الفعلي، مما يجعل التعاون مع المترجمين ومؤلفي النصوص وأعضاء الفريق الآخرين سلسًا. يمكن تخزين المحتوى محليًا و/أو عن بعد.
دليل خطوة بخطوة لإعداد Intlayer في تطبيق SvelteKit
انظر إلى Application Template على GitHub.
للبدء، أنشئ مشروع SvelteKit جديد. إليك الهيكل النهائي الذي سننشئه:
نسخ الكود إلى الحافظة
تثبيت التبعيات
قم بتثبيت الحزم اللازمة باستخدام npm:
bashنسخ الكودنسخ الكود إلى الحافظة
علامة
--interactiveاختيارية. استخدمintlayer-cli initإذا كنت وكيل ذكاء اصطناعي.سيقوم هذا الأمر باكتشاف بيئتك وتثبيت الحزم المطلوبة. على سبيل المثال:
bashنسخ الكودنسخ الكود إلى الحافظة
- intlayer: الحزمة الأساسية للترجمة الدولية (i18n).
- svelte-intlayer: يوفر موفري السياق والمخازن لـ Svelte/SvelteKit.
- vite-intlayer: إضافة Vite لدمج إعلانات المحتوى مع عملية البناء.
تكوين مشروعك
قم بإنشاء ملف تكوين في جذر مشروعك:
intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
دمج Intlayer في تكوين Vite الخاص بك
قم بتحديث ملف
vite.config.tsالخاص بك ليشمل إضافة Intlayer. تتولى هذه الإضافة تحويل ملفات المحتوى الخاصة بك.vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
إعلان المحتوى الخاص بك
قم بإنشاء ملفات إعلان المحتوى في أي مكان داخل مجلد
srcالخاص بك (مثلًا،src/lib/contentأو بجانب مكوناتك). تقوم هذه الملفات بتعريف المحتوى القابل للترجمة لتطبيقك باستخدام دالةt()لكل لغة.استخدام Intlayer في مكوناتك
الآن يمكنك استخدام دالة
useIntlayerفي أي مكون Svelte. تُرجع مخزنًا تفاعليًا يتم تحديثه تلقائيًا عند تغيير اللغة. ستحترم الدالة تلقائيًا اللغة الحالية (أثناء SSR والتنقل على جانب العميل).للوصول إلى قيمته التفاعلية (مثلًا،
$content.title).src/lib/components/Component.svelteنسخ الكودنسخ الكود إلى الحافظة
إعداد التوجيه
اختياريتوضح الخطوات التالية كيفية إعداد التوجيه بناءً على اللغة في SvelteKit. يتيح هذا لعناوين URL الخاصة بك أن تتضمن بادئة اللغة (مثل
/en/about،/fr/about) لتحسين تحسين محركات البحث وتجربة المستخدم.bashنسخ الكودنسخ الكود إلى الحافظة
التعامل مع اكتشاف اللغة على جانب الخادم
في SvelteKit، يحتاج الخادم إلى معرفة لغة المستخدم لعرض المحتوى الصحيح أثناء العرض من جانب الخادم (SSR). نستخدم
hooks.server.tsلاكتشاف اللغة من عنوان URL أو ملفات تعريف الارتباط.قم بإنشاء أو تعديل الملف
src/hooks.server.ts:src/hooks.server.tsنسخ الكودنسخ الكود إلى الحافظة
ثم، أنشئ مساعدًا للحصول على لغة المستخدم من حدث الطلب:
src/lib/getLocale.tsنسخ الكودنسخ الكود إلى الحافظة
getLocaleFromStorageسيتحقق من اللغة من الهيدر أو الكوكي حسب تكوينك. راجع Configuration لمزيد من التفاصيل.دالة
localeDetectorستتعامل مع هيدرAccept-Languageوتعيد أفضل تطابق.إذا لم يتم تكوين اللغة، نريد إرجاع خطأ 404. لجعل الأمر أسهل، يمكننا إنشاء دالة
matchللتحقق مما إذا كانت اللغة صالحة:/src/params/locale.tsنسخ الكودنسخ الكود إلى الحافظة
ملاحظة: تأكد من أن ملف
src/app.d.tsالخاص بك يتضمن تعريف اللغة:typescriptنسخ الكودنسخ الكود إلى الحافظة
بالنسبة لملف
+layout.svelte، يمكننا إزالة كل شيء، للاحتفاظ فقط بالمحتوى الثابت، غير المرتبط بالتدويل (i18n):src/+layout.svelteنسخ الكودنسخ الكود إلى الحافظة
ثم، أنشئ صفحة وتخطيط جديد تحت مجموعة
[[locale=locale]]:src/routes/[[locale=locale]]/+layout.tsنسخ الكودنسخ الكود إلى الحافظة
src/routes/[[locale=locale]]/+layout.svelteنسخ الكودنسخ الكود إلى الحافظة
src/routes/[[locale=locale]]/+page.tsنسخ الكودنسخ الكود إلى الحافظة
src/routes/[[locale=locale]]/+page.svelteنسخ الكودنسخ الكود إلى الحافظة
الروابط الدولية
اختياريمن أجل تحسين محركات البحث (SEO)، يُنصح بإضافة بادئة اللغة إلى مساراتك (على سبيل المثال،
/en/about،/fr/about). يقوم هذا المكون تلقائيًا بإضافة بادئة اللغة الحالية لأي رابط.src/lib/components/LocalizedLink.svelteنسخ الكودنسخ الكود إلى الحافظة
إذا كنت تستخدم
gotoمن SvelteKit، يمكنك استخدام نفس المنطق معgetLocalizedUrlللتنقل إلى عنوان URL المحلي:typescriptنسخ الكودنسخ الكود إلى الحافظة
مبدل اللغة
اختياريللسماح للمستخدمين بتغيير اللغة، قم بتحديث عنوان URL.
src/lib/components/LanguageSwitcher.svelteنسخ الكودنسخ الكود إلى الحافظة
إضافة وكيل خلفي
اختياريلإضافة وكيل خلفي إلى تطبيق SvelteKit الخاص بك، يمكنك استخدام دالة
intlayerProxyالمقدمة من إضافةvite-intlayer. ستقوم هذه الإضافة بالكشف تلقائيًا عن أفضل لغة للمستخدم بناءً على عنوان URL، والكوكيز، وتفضيلات لغة المتصفح.منذ Intlayer v9، يتم تجميع
intlayerProxy()مباشرة في pluginintlayer()وتفعيله بشكل افتراضي من خلال خيارrouting.enableProxy(trueبشكل افتراضي). تسجيله بشكل منفصل كما هو موضح أدناه أصبح اختياريًا الآن — يتم الاحتفاظ به لأجل التوافق مع الإصدارات السابقة والإعدادات التي تحتاج إلى التحكم في ترتيب المكونات الإضافية. اضبطrouting.enableProxy: falseللاختيار من عدم المشاركة. راجع ملاحظات الإصدار v9.vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
إعداد محرر / نظام إدارة محتوى intlayer
اختياريلإعداد محرر intlayer، يجب عليك اتباع توثيق محرر intlayer.
لإعداد نظام إدارة محتوى intlayer، يجب عليك اتباع توثيق نظام إدارة محتوى intlayer.
لكي تتمكن من عرض محدد محرر intlayer، سيتعين عليك استخدام بناء جملة المكون في محتوى intlayer الخاص بك.
Component.svelteنسخ الكودنسخ الكود إلى الحافظة
استخراج محتوى مكوناتك
اختياريإذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
لتسهيل هذه العملية، يقترح Intlayer مترجمًا / مستخرجًا لتحويل مكوناتك واستخراج المحتوى.
لإعداده، يمكنك إضافة قسم
compilerفي ملفintlayer.config.tsالخاص بك:intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... بقية التكوين الخاص بك compiler: { /** * يشير إلى ما إذا كان يجب تمكين المترجم. */ enabled: true, /** * يحدد مسار ملفات المخرجات */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته. */ saveComponents: false, /** * بادئة مفتاح القاموس */ dictionaryKeyPrefix: "", }, }; export default config;قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
bashنسخ الكودنسخ الكود إلى الحافظة
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.Update your
vite.config.tsto include theintlayerCompilerplugin:vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
bashنسخ الكودنسخ الكود إلى الحافظة
إعدادات Git
يوصى بتجاهل الملفات التي يتم إنشاؤها بواسطة Intlayer.
نسخ الكود إلى الحافظة
التعمق أكثر
- المحرر المرئي: دمج المحرر المرئي لـ Intlayer لتحرير الترجمات مباشرة من واجهة المستخدم.
- نظام إدارة المحتوى (CMS): قم بفصل إدارة المحتوى الخاصة بك باستخدام نظام إدارة المحتوى Intlayer.
الأسئلة الشائعة
svelte-i18nوtypesafe-i18n: كتالوجات قائمة على المتاجر.Paraglide: مترجم رسائل.Intlayer: إعلان بجانب المكون، دعم SSR و SSG، استجابة Svelte كاملة، وترجمة بالذكاء الاصطناعي.
انظر لماذا Intlayer.
أقل بكثير من الحلول القائمة على فضاءات الأسماء، لأن الصفحة لا تُحمل أبدًا كتالوجًا لا تعرضه. يستبدل مترجم وقت البناء استدعاءات useIntlayer بإدخالات القاموس الدقيقة التي يستخدمها المكون، وتفصل القواميس الديناميكية الباقي حسب اللغة، مما يقلل الحزمة بنسبة تصل إلى 50%. انظر تحسين الحزم و المقارنة المعيارية.
إلى حد كبير نعم. اتبع دليل ترحيل Svelte I18n.
نعم. تحافظ مكونة مزامنة JSON على ملفات /messages/{locale}/{namespace}.json الخاصة بك كمصدر الحقيقة وتُنشئ قواميس Intlayer منها، في كلا الاتجاهين. وتقوم مكونة مزامنة PO بنفس الشيء لكتالوجات gettext، وتسمح لك الملفات المقسمة حسب اللغة بتقسيم المحتوى حسب اللغة بدلاً من تجميع كل اللغات في ملف واحد.
لا. قم بتشغيل npx intlayer extract وسيقرأ Intlayer ملفاتك، ويسحب السلاسل النصية الموجهة للمستخدم، ويكتب ملف .content بجانب كل منها، حتى تراجع diff بدلاً من نسخ السلاسل إلى كتالوج يدويًا.
لأتمتة كاملة، يقوم Intlayer Compiler بالشيء نفسه في وقت البناء: يمسح الكود عند كل تغيير، وينشئ القواميس ويزامنها مع HMR.
هناك حدان يجدر معرفتهما قبل تشغيل المترجم. إنه يعمل عن طريق التحليل الثابت، وبالتالي فإن السلاسل التي تظهر فقط في وقت التشغيل، مثل رموز أخطاء API أو حقول نظام إدارة المحتوى، تظل بعيدة عن متناوله. كما يتعين عليه التمييز بين النصوص الموجهة للمستخدم ومنطق التطبيق مثل className="active" أو رمز الحالة، الأمر الذي يتطلب بعض الملاحظات التوضيحية في قاعدة التعليمات البرمجية الكبيرة. يتجنب أمر الاستخراج كلا الأمرين من خلال إبقائك متحكمًا في العملية.
خمس أدوات، كلها اختيارية:
- امتداد VS Code: الانتقال من مفتاح
useIntlayerإلى ملف المحتوى المصرح به، استخراج المحتوى من المكون، وتشغيل build و fill و test و push و pull من لوحة الأوامر أو علامة تبويب Intlayer. - خادم LSP: نفس التجربة في أي محرر يدعم LSP، مع الانتقال إلى التعريف وعروض القيمة المترجمة عند التمرير والإكمال التلقائي للمفاتيح. يدعم أيضًا استدعاءات
i18nextوreact-i18nextوnext-intlوuse-intl. - خادم MCP: يكشف وثائق Intlayer و CLI إلى Cursor و VS Code و Claude Desktop و Claude Code و ChatGPT.
- Agent skills: مهارات مخصصة مثل
intlayer-configوintlayer-cliوintlayer-content. - ESLint plugin: قاعدة
no-raw-textترصد النصوص المكتوبة مباشرة بدون تدويل.
