استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "بدء السجل"v9.0.0٥/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
الترحيل من vue-i18n إلى Intlayer
لماذا الترحيل من vue-i18n إلى Intlayer؟
بدلاً من تحميل ملفات JSON ضخمة في صفحاتك، قم بتحميل فقط المحتوى الضروري. يساعد Intlayer على تقليل حجم الحزمة والصفحات بما يصل إلى 50%.
يسهل تحديد نطاق محتوى التطبيق الصيانة للتطبيقات واسعة النطاق. يمكنك نسخ أو حذف مجلد ميزة واحد دون الحاجة لمراجعة كود المحتوى بالكامل. بالإضافة إلى ذلك، Intlayer مكتوب بشكل كامل لضمان دقة المحتوى الخاص بك.
Intlayer أيضاً هو الحل ذو التطوير الأكثر نشاطاً في نظام i18n البيئي — تُصلح المشاكل بسرعة، وتُضاف محولات إطار عمل جديدة بانتظام، ويتم تحسين API الأساسي بناءً على ملاحظات الإنتاج الحقيقية.
يقلل دمج المحتوى السياق المطلوب من نماذج اللغة الكبيرة (LLMs). يأتي Intlayer أيضاً مع مجموعة من الأدوات، مثل CLI لاختبار الترجمات المفقودة، LSP، MCP، ومهارات الوكيل، لجعل تجربة المطور (DX) أكثر سلاسة حتى للوكلاء الذكيين.
استخدم الأتمتة للترجمة في خط أنابيب CI/CD الخاص بك باستخدام نموذج LLM من اختيارك بتكلفة موفر الذكاء الاصطناعي الخاص بك. يوفر Intlayer أيضاً compiler لأتمتة استخراج المحتوى، بالإضافة إلى منصة ويب لمساعدتك على الترجمة في الخلفية.
قد يؤدي ربط ملفات JSON الضخمة بالمكونات إلى مشاكل الأداء والاستجابة. يحسّن Intlayer تحميل المحتوى الخاص بك في وقت البناء.
استراتيجيات الترحيل
هناك استراتيجيتان متكاملتان للترحيل من vue-i18n إلى Intlayer:
محول التوافق (موصى به للتطبيقات الموجودة) — قم بتثبيت
@intlayer/vue-i18n(لمكونات Vue). تكشف هذه الحزمة عن نفس API تماماً منvue-i18nولكن تفوض كل عمل الترجمة إلى Intlayer تحت الغطاء. تحافظ على استدعاءات$tوuseI18n()و<i18n-t>الموجودة — التغيير الوحيد هو مسار الاستيراد والتهيئة.الترحيل الكامل — استبدل تدريجياً APIs من vue-i18n بـ hooks Intlayer الأصلية (
useIntlayer) ودمج المحتوى في ملفات.content.tsبجانب المكونات الخاصة بك.
يغطي هذا الدليل الاستراتيجية 1 أولاً (محول التوافق drop-in)، ثم يرشدك عبر الترحيل الكامل الاختياري.
جدول المحتويات
الترحيل السريع
الخطوات التالية هي الحد الأدنى المطلوب لتشغيل تطبيق vue-i18n الموجود على Intlayer بدون تغيير الكود في المكونات.
تثبيت التبعيات
قم بتثبيت حزم Intlayer الأساسية ومحول التوافق:
bashنسخ الكودنسخ الكود إلى الحافظة
npx intlayer-cli init --interactiveالعلم
--interactiveاختياري. استخدمintlayer-cli initإذا كنت وكيل ذكي.سيكتشف هذا الأمر بيئتك وسيثبت الحزم المطلوبة. على سبيل المثال:
bashنسخ الكودنسخ الكود إلى الحافظة
npm install intlayer vue-intlayer @intlayer/vue-i18n @intlayer/sync-json-pluginيمكنك الاحتفاظ بـ
vue-i18nمثبتة — يستخدم محول التوافق كـdevDependency/peerDependencyلأنواع TypeScript.تكوين Intlayer
ينشئ أمر
intlayer initملفintlayer.config.tsبدء. حدثّه ليطابق البيئات المحلية الموجودة لديك وأشر إلى مكوّنsyncJSONفي ملفات الرسائل الخاصة بك:intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // أضف جميع البيئات المحلية الموجودة لديك هنا ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // يطابق صيغة ملاصقات vue-i18n: {name} format: "icu", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], }; export default config;sourceيعيّن بيئة محلية إلى مسار ملف JSON الخاص بها.locationيخبر مراقب Intlayer أي مجلد للبحث عن التغييرات. يضمن الخيارformat: 'icu'أن الملاصقات يتم تحليلها بشكل صحيح لـvue-i18n.إضافة مكوّن Intlayer إلى Bundler الخاص بك
غلّف تكوين bundler الموجود مع مكوّن التوافق. يُنشئ هذا مكوّن Intlayer الأساسي، ويوصل مراقبة المحتوى، و— بشكل حاسم — يحقن اسم مستعار module حتى استدعاءات
import … from 'vue-i18n'الموجودة لديك تُعاد توجيهها بشفافية إلى@intlayer/vue-i18nفي وقت البناء. لا يلزم تغيير ملفات المصدر.لـ Vite:
vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { vueI18nVitePlugin } from "@intlayer/vue-i18n/plugin"; export default defineConfig({ plugins: [vue(), vueI18nVitePlugin()], });vueI18nVitePlugin()يغلف مكوّنintlayer()منvite-intlayerويضيف اسم مستعارvue-i18n. يجمّع المكوّن العاديintlayer()منvite-intlayerالقواامس ولكن لا يضيف الاسم المستعار — يمكنك حينها إعادة تسمية الاستيرادات إلى@intlayer/vue-i18nيدويياً (انظر الخطوة 4).لـ Nuxt:
إذا كنت تستخدم
@nuxtjs/i18n(تكامل Nuxt)، قم بتثبيتnuxt-intlayerوأضفها إلىnuxt.config.tsالخاص بك:bashنسخ الكودنسخ الكود إلى الحافظة
npm install nuxt-intlayernuxt.config.tsنسخ الكودنسخ الكود إلى الحافظة
export default defineNuxtConfig({ modules: ["nuxt-intlayer"], // يمكنك إزالة @nuxtjs/i18n من مكوّنات الخاصة بك بأمان });لا تحتاج بعد الآن إلى
createI18n()أو bootstrap provider يدويياً. يجمّع Intlayer جميع القواامس في وقت البناء، حيث لا توجد خطوة تحميل runtime. يتولى provider المُحتفَظ به التهيئة لك.
هذا كل شيء للترحيل السريع. يعمل التطبيق الخاص بك الآن على Intlayer مع الاحتفاظ بكل استيراد ومكون API من vue-i18n.
مفاتيح ترجمة مكتوبة — تلقائي. بمجرد أن يجمّع Intlayer القواامس الخاصة بك، يُكتب
useI18nمقابل المحتوى الفعلي الخاص بك عندما تمرر خيارnamespace. يتم إكمال المفاتيح تلقائياً في IDE الخاص بك وتسبب المسارات غير الصحيحة أخطاء TypeScript في وقت البناء — لا يلزم أي إعداد إضافي.tsنسخ الكودنسخ الكود إلى الحافظة
// 'about' هو مفتاح قاموس مسجلconst { t } = useI18n({ namespace: "about" });t("counter.label"); // ✓ مكمل تلقائياًt("does.not.exist"); // ✗ خطأ TypeScript
الترحيل الكامل
الخطوات أدناه اختيارية ويمكن إنجازها بشكل تدريجي. تفتح مجموعة ميزات Intlayer الكاملة: محرر مرئي، CMS، ملفات محتوى مكتوبة، ترجمة مدفوعة بالذكاء الاصطناعي، والمزيد.
إعادة تسمية الاستيراد الصريحة (اختياري)
اختياريتتعامل مكوّنات Intlayer بالفعل مع الأسماء المستعارة على مستوى bundler. إذا كنت تفضل جعل التبعية صريحة في ملفات المصدر الخاصة بك، يمكنك إعادة تسمية الاستيرادات يدويياً:
اظهار جميع محتويات الجدولافتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
قبل بعد import { useI18n } from 'vue-i18n'import { useI18n } from '@intlayer/vue-i18n'import { createI18n } from 'vue-i18n'import { createI18n } from '@intlayer/vue-i18n'هذه بدائل drop-in — لا تغييرات في توقيعات الدالة أو الحجج أو أنواع الإرجاع مطلوبة.
تفعيل أتمتة الترجمة المدفوعة بالذكاء الاصطناعي
اختياريبمجرد توصيل Intlayer، استخدم CLI الخاص به لملء الترجمات المفقودة تلقائياً:
bashنسخ الكودنسخ الكود إلى الحافظة
# اختبر الترجمات المفقودة (أضف إلى CI)npx intlayer test# ملء الترجمات المفقودة بـ AInpx intlayer fillأضف تكوين AI إلى
intlayer.config.ts:intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ format: "icu", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // افتراضي // model: "gpt-4o-mini", // افتراضي }, }; export default config;انظر وثائق Intlayer CLI لجميع الخيارات المتاحة.
ما يمكنك حذفه بعد الترحيل
بمجرد وضع محولات التوافق، يمكن إزالة نموذج vue-i18n التالي:
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الملف / النمط | لماذا لم تعد هناك حاجة |
|---|---|
استدعاءات createI18n() | تهيّئ provider من Intlayer كل شيء تلقائياً؛ لا توجد خطوة تحميل runtime. |
تسجيل Vue plugin (app.use(i18n)) | يتولى مكوّن Intlayer الحقن والـ bootstrapping تحت الغطاء. |
حزم اللغات JSON (locales/*.json) | تُحتاج حزم JSON فقط إذا كنت تستخدم مكوّن syncJSON بعد. بمجرد الترحيل إلى ملفات .content.ts يمكنك حذف مجلد JSON. |
عندما تكون جاهزاً للمضي أبعد، يكتشف Intlayer تلقائياً جميع ملفات .content.ts و .content.json في أي مكان في قاعدة الكود الخاصة بك (افتراضياً، في أي مكان داخل ./src). يمكنك وضع ملف my-component.content.ts بجانب MyComponent.vue مباشرة وسيلتقطه Intlayer في وقت البناء بدون تكوين إضافي — لا استيرادات، لا تسجيل، لا حاجة لملف فهرس مركزي. هذا يجعل دمج الترجمات مع الصفحات والمكونات بدون احتكاك تماماً.
تكوين TypeScript
يستخدم Intlayer module augmentation لتوفير intellisense TypeScript الكامل لمفاتيح الترجمة الخاصة بك. تأكد من أن tsconfig.json الخاص بك يتضمن الأنواع المُنتجة تلقائياً:
نسخ الكود إلى الحافظة
{ // ... تكوينات TypeScript الموجودة لديك "include": [ // ... تكوينات TypeScript الموجودة لديك ".intlayer/**/*.ts", // تضمين الأنواع المُنتجة تلقائياً ],}تكوين Git
أضف مجلد Intlayer المُنتج إلى .gitignore الخاص بك:
نسخ الكود إلى الحافظة
# تجاهل الملفات المُنتجة بواسطة Intlayer.intlayerاذهب أبعد
- محرر مرئي — إدارة الترجمات بصرياً في متصفحك: محرر Intlayer المرئي
- CMS — خارج الخدمة وإدارة المحتوى بعداً: CMS Intlayer
- VS Code Extension — الحصول على الإكمال التلقائي واكتشاف أخطاء الترجمة في الوقت الفعلي: ملحق Intlayer VS Code
- مرجع CLI — قائمة كاملة بأوامر CLI: Intlayer CLI
- Intlayer مع Vue — دليل الإعداد الكامل لـ Vue: intlayerwithvite+vue.md
- Intlayer مع Nuxt — دليل الإعداد الكامل لـ Nuxt: intlayerwithnuxt.md