استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تحديث استخدام واجهة برمجة تطبيقات useIntlayer في Solid للوصول المباشر إلى الخصائص"v8.9.0٤/٥/٢٠٢٦
- "إضافة أمر init"v7.5.9٣٠/١٢/٢٠٢٥
- "تقديم validatePrefix وإضافة الخطوة 14: معالجة صفحات 404 مع المسارات المترجمة."v7.4.0١١/١٢/٢٠٢٥
- "إضافة الخطوة 13: جلب اللغة في إجراءات الخادم (اختياري)"v7.3.9٥/١٢/٢٠٢٥
- "إضافة الخطوة 13: تكييف Nitro"v7.2.3١٨/١١/٢٠٢٥
- "إصلاح الافتراضي للبادئة عن طريق إضافة وظيفة getPrefix واستخدام useLocalizedNavigate و LocaleSwitcher و LocalizedLink."v7.1.0١٧/١١/٢٠٢٥
- "تحديث التوثيق"v6.5.2٣/١٠/٢٠٢٥
- "تمت الإضافة لـ TanStack Start"v5.8.1٩/٩/٢٠٢٥
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
ترجم موقع TanStack Start الخاص بك باستخدام Intlayer | التدويل (i18n)
جدول المحتويات
يوضح هذا الدليل كيفية دمج Intlayer لتحقيق تدويل سلس في مشاريع TanStack Start مع توجيه مدرك للغة، ودعم TypeScript، وممارسات التطوير الحديثة.
لماذا Intlayer على البدائل؟
بالمقارنة مع الحلول الرئيسية مثل react-i18next أو use-intl أو paraglide، فإن Intlayer هو الحل الذي يأتي مع تحسينات متكاملة مثل:
تغطية كاملة لـ TanStack Start
تم تحسين Intlayer بالكامل لـ TanStack Start، مما يوفر توجيه متعدد اللغات، إدارة ملفات تعريف الارتباط، إنشاء خريطة الموقع، تحميل المحتوى الديناميكي، وجميع الميزات اللازمة لتوسيع نطاق جهود التدويل (i18n).
حجم البندل
بدلاً من تحميل ملفات JSON ضخمة إلى صفحاتك، قم بتحميل المحتوى الضروري فقط. يساعد Intlayer في تقليل أحجام البندل وصفحاتك بنسبة تصل إلى 50%.
الصيانة
يؤدي تحديد نطاق محتوى تطبيقك إلى تسهيل الصيانة للتطبيقات واسعة النطاق. يمكنك تكرار أو حذف مجلد ميزات واحد دون العبء العقلي لمراجعة قاعدة بيانات المحتوى بالكامل. بالإضافة إلى ذلك، تتم كتابة Intlayer بالكامل لضمان دقة المحتوى الخاص بك.
وكيل الذكاء الاصطناعي
يؤدي تحديد موقع المحتوى المشترك إلى تقليل السياق المطلوب بواسطة نماذج اللغات الكبيرة (LLMs). يأتي Intlayer أيضًا مزودًا بمجموعة من الأدوات، مثل CLI لاختبار الترجمات المفقودة،LSP، MCP ومهارات الوكيل، لجعل تجربة المطور (DX) أكثر سلاسة للذكاء الاصطناعي وكلاء.
الأتمتة
استخدم الأتمتة للترجمة في مسار CI/CD الخاص بك باستخدام LLM من اختيارك على حساب مزود الذكاء الاصطناعي الخاص بك. يقدم Intlayer أيضًا مترجمًا لأتمتة استخراج المحتوى، بالإضافة إلى منصة ويب للمساعدة في الترجمة في الخلفية.
أداء
يمكن أن يؤدي ربط ملفات JSON الضخمة بالمكونات إلى حدوث مشكلات في الأداء والتفاعل. يعمل Intlayer على تحسين تحميل المحتوى الخاص بك في وقت الإنشاء.
التحجيم مع عدم وجود مطور
أكثر من مجرد حل i18n، يوفر Intlayer [محررًا مرئيًا] مستضافًا ذاتيًا](/ar/doc/concept/editor) وكامل CMS لمساعدتك في إدارة المحتوى متعدد اللغات في الوقت الفعلي، مما يجعل التعاون مع المترجمين ومؤلفي النصوص وأعضاء الفريق الآخرين سلسًا. يمكن تخزين المحتوى محليًا و/أو عن بعد.
دليل خطوة بخطوة لإعداد Intlayer في تطبيق TanStack Start
انظر قالب التطبيق على GitHub.
إنشاء المشروع
ابدأ بإنشاء مشروع TanStack Start جديد باتباع دليل بدء مشروع جديد على موقع TanStack Start.
تثبيت حزم Intlayer
قم بتثبيت الحزم اللازمة باستخدام مدير الحزم المفضل لديك:
bashنسخ الكودنسخ الكود إلى الحافظة
intlayer
الحزمة الأساسية التي توفر أدوات التدويل لإدارة التكوين، والترجمة، وإعلان المحتوى، والتحويل البرمجي، وأوامر CLI.
react-intlayer الحزمة التي تدمج Intlayer مع تطبيق React. توفر مزودي السياق والخطافات لتدويل React.
vite-intlayer تتضمن إضافة Vite لدمج Intlayer مع مجمّع Vite، بالإضافة إلى وسيط لاكتشاف اللغة المفضلة للمستخدم، وإدارة ملفات تعريف الارتباط، والتعامل مع إعادة توجيه URL.
تكوين مشروعك
أنشئ ملف تكوين لتكوين لغات تطبيقك:
intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
من خلال ملف التكوين هذا، يمكنك إعداد عناوين URL المترجمة، وإعادة توجيه الوسيط، وأسماء ملفات تعريف الارتباط، وموقع وامتداد إعلانات المحتوى الخاصة بك، وتعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعلمات المتاحة، راجع توثيق التكوين.
دمج Intlayer في تكوين Vite الخاص بك
أضف إضافة intlayer إلى تكوينك:
vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
تُستخدم إضافة
intlayer()لـ Vite لدمج Intlayer مع Vite. تضمن بناء ملفات إعلان المحتوى ومراقبتها في وضع التطوير. كما تُعرف متغيرات بيئة Intlayer داخل تطبيق Vite. بالإضافة إلى ذلك، توفر أسماء مستعارة لتحسين الأداء.إنشاء التخطيط الجذري
قم بتكوين التخطيط الجذري الخاص بك لدعم التدويل باستخدام
useParamsللكشف عن اللغة الحالية وتعيين سماتlangوdirعلى علامةhtml.src/routes/__root.tsxنسخ الكودنسخ الكود إلى الحافظة
إذا كنت ترغب في استخدام المحتوى الخاص بك في خاصية من نوع
string، مثلalt،title،href،aria-label، إلخ، يجب عليك استدعاء قيمة الدالة، مثل:htmlنسخ الكودنسخ الكود إلى الحافظة
إنشاء تخطيط اللغة
أنشئ تخطيطًا يتعامل مع بادئة اللغة ويقوم بالتحقق من الصحة.
src/routes/{-$locale}/route.tsxنسخ الكودنسخ الكود إلى الحافظة
هنا،
{-$locale}هي معلمة مسار ديناميكية يتم استبدالها باللغة الحالية. هذا الترميز يجعل الجزء اختياريًا، مما يسمح له بالعمل مع أوضاع التوجيه مثل'prefix-no-default'وما إلى ذلك.كن على علم بأن هذا الجزء قد يسبب مشاكل إذا كنت تستخدم أجزاء ديناميكية متعددة في نفس المسار (على سبيل المثال،
/{-$locale}/other-path/$anotherDynamicPath/...). بالنسبة لوضع'prefix-all'، قد تفضل تبديل الجزء إلى$localeبدلاً من ذلك. بالنسبة لوضع'no-prefix'أو'search-params'، يمكنك إزالة الجزء تمامًا.إعلان المحتوى الخاص بك
قم بإنشاء وإدارة إعلانات المحتوى الخاصة بك لتخزين الترجمات:
src/contents/page.content.tsنسخ الكودنسخ الكود إلى الحافظة
يمكن تعريف إعلانات المحتوى الخاصة بك في أي مكان في تطبيقك بمجرد تضمينها في دليل
contentDir(افتراضيًا،./app). وتطابق امتداد ملف إعلان المحتوى (افتراضيًا،.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).لمزيد من التفاصيل، راجع توثيق إعلان المحتوى.
إنشاء مكونات وخطافات مدركة للغة
أنشئ مكون
LocalizedLinkللتنقل المدرك للغة:src/components/localized-link.tsxنسخ الكودنسخ الكود إلى الحافظة
هذا المكون له هدفان:
- إزالة بادئة
{-$locale}غير الضرورية من عنوان URL. - حقن معلمة اللغة في عنوان URL لضمان إعادة توجيه المستخدم مباشرة إلى المسار المترجم.
ثم يمكننا إنشاء خطاف
useLocalizedNavigateللتنقل البرمجي:src/hooks/useLocalizedNavigate.tsxنسخ الكودنسخ الكود إلى الحافظة
- إزالة بادئة
استخدام Intlayer في صفحاتك
قم بالوصول إلى قواميس المحتوى الخاصة بك في جميع أنحاء تطبيقك:
صفحة رئيسية مترجمة
src/routes/{-$locale}/index.tsxنسخ الكودنسخ الكود إلى الحافظة
لمعرفة المزيد حول خطاف
useIntlayer، راجع التوثيق.إنشاء مكون لتبديل اللغة
أنشئ مكونًا للسماح للمستخدمين بتغيير اللغات:
src/components/locale-switcher.tsxنسخ الكودنسخ الكود إلى الحافظة
لمعرفة المزيد حول خطاف
useLocale، راجع التوثيق.إدارة سمات HTML
كما رأينا في الخطوة 5، يمكنك إدارة سمات
langوdirلعلامةhtmlباستخدامuseParamsفي مكونك الجذري. يضمن هذا تعيين السمات الصحيحة على الخادم والعميل.src/routes/__root.tsxنسخ الكودنسخ الكود إلى الحافظة
إضافة وسيط
يمكنك أيضًا استخدام
intlayerProxyلإضافة توجيه من جانب الخادم إلى تطبيقك. ستقوم هذه الإضافة تلقائيًا باكتشاف اللغة الحالية بناءً على عنوان URL وتعيين ملف تعريف ارتباط اللغة المناسب. إذا لم يتم تحديد لغة، فستحدد الإضافة اللغة الأكثر ملاءمة بناءً على تفضيلات لغة متصفح المستخدم. إذا لم يتم اكتشاف لغة، فسيتم إعادة التوجيه إلى اللغة الافتراضية.لاحظ أنه لاستخدام
intlayerProxyفي الإنتاج، تحتاج إلى نقل حزمةvite-intlayerمنdevDependenciesإلىdependencies.vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
تدويل البيانات الوصفية الخاصة بك
يمكنك أيضًا استخدام خطاف
getIntlayerللوصول إلى قواميس المحتوى الخاصة بك في جميع أنحاء تطبيقك:src/routes/{-$locale}/index.tsxنسخ الكودنسخ الكود إلى الحافظة
جلب اللغة في إجراءات الخادم الخاصة بك
قد ترغب في الوصول إلى اللغة الحالية من داخل إجراءات الخادم أو نقاط نهاية API الخاصة بك. يمكنك القيام بذلك باستخدام مساعد
getLocaleمنintlayer.إليك مثال باستخدام وظائف خادم TanStack Start:
src/routes/{-$locale}/index.tsxنسخ الكودنسخ الكود إلى الحافظة
إدارة الصفحات غير الموجودة
عندما يزور المستخدم صفحة غير موجودة، يمكنك عرض صفحة مخصصة "غير موجودة" وقد تؤثر بادئة اللغة على الطريقة التي يتم بها تشغيل صفحة "غير موجودة".
فهم معالجة 404 في TanStack Router مع بادئات اللغة
في TanStack Router، تتطلب معالجة صفحات 404 مع المسارات المترجمة نهجًا متعدد الطبقات:
- مسار 404 مخصص: مسار محدد لعرض واجهة مستخدم 404
- التحقق من الصحة على مستوى المسار: يتحقق من صحة بادئات اللغة ويعيد توجيه البادئات غير الصالحة إلى 404
- مسار catch-all: يلتقط أي مسارات غير متطابقة داخل جزء اللغة
src/routes/{-$locale}/404.tsxنسخ الكودنسخ الكود إلى الحافظة
src/routes/{-$locale}/route.tsxنسخ الكودنسخ الكود إلى الحافظة
src/routes/{-$locale}/$.tsxنسخ الكودنسخ الكود إلى الحافظة
تكوين TypeScript
يستخدم Intlayer توسيع الوحدات (module augmentation) للحصول على فوائد TypeScript وجعل قاعدة الكود الخاصة بك أقوى.
تأكد من أن تكوين TypeScript الخاص بك يتضمن الأنواع المولدة تلقائيًا:
tsconfig.jsonنسخ الكودنسخ الكود إلى الحافظة
استخراج محتوى مكوناتك
اختياريإذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
لتسهيل هذه العملية، يقترح 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نسخ الكودنسخ الكود إلى الحافظة
تكوين Git
يوصى بتجاهل الملفات الناتجة عن Intlayer. يتيح لك هذا تجنب الالتزام بها في مستودع Git الخاص بك.
للقيام بذلك، يمكنك إضافة التعليمات التالية إلى ملف .gitignore الخاص بك:
نسخ الكود إلى الحافظة
إضافة VS Code
لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت إضافة Intlayer VS Code الرسمية.
التثبيت من VS Code Marketplace
توفر هذه الإضافة:
- الإكمال التلقائي لمفاتيح الترجمة.
- اكتشاف الأخطاء في الوقت الفعلي للترجمات المفقودة.
- معاينات داخلية للمحتوى المترجم.
- إجراءات سريعة لإنشاء وتحديث الترجمات بسهولة.
لمزيد من التفاصيل حول كيفية استخدام الإضافة، راجع توثيق إضافة Intlayer لـ VS Code.
اذهب أبعد من ذلك
للذهاب أبعد من ذلك، يمكنك تنفيذ المحرر المرئي أو إخراج محتواك باستخدام نظام إدارة المحتوى (CMS).