استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "إضافة التهيئة العامة"v6.0.0٢٠/٩/٢٠٢٥
- "إضافة متغير `{{fileName}}`"v6.0.0١٧/٩/٢٠٢٥
- "بداية السجل"v5.5.10٢٩/٦/٢٠٢٥
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزية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
ملء ترجمات ملفات إعلان المحتوى
ملء ملفات إعلان المحتوى تلقائياً في CI الخاص بك هو وسيلة لتسريع سير عملك التطويري.
فهم السلوك
يتضمن أمر fill وضعين:
- Complete: ملء جميع المحتوى المفقود تلقائياً لكل لغة وتعديل الملف الحالي، أو ملف آخر إذا تم تحديده. أي أن وضع الملء الكامل سيتخطى ترجمة المحتوى الموجود، إذا كان مترجماً بالفعل.
- Review: ملء جميع المحتوى تلقائياً لكل لغة وإنشاء ملف معين، أو ملف آخر إذا تم تحديده.
سيعالج أمر fill جميع ملفات إعلان المحتوى حسب اللغة. أي أنه لن يعالج محتواك البعيد من نظام إدارة المحتوى (CMS). يتضمن نظام إدارة المحتوى إدارة ترجمات خاصة به.
إذا استخدمت مكونات إضافية مثل @intlayer/sync-json-plugin، فسيحول Intlayer ملفات JSON إلى ملفات إعلان محتوى حسب اللغة. أي أنها ستتم معالجتها بواسطة أمر fill.
تتضمن الملفات المُنشأة حديثاً تعليمة filled كبيانات وصفية للقاموس. ستُستخدم هذه التعليمة بواسطة Intlayer لمعرفة ما إذا كان الملف قد تم ملؤه تلقائياً أم لا، وتخطيه من الترجمة مرة أخرى إذا كانت موجودة.
سيأخذ Intlayer في الاعتبار أيضاً التعليمة التالية للملء التلقائي:
- من
.content.{ts|js|json}الخاص بك → تعليمةfill - من ملف الإعدادات
.intlayer.config.ts→ تعليمةdictionary.fill - سيتم تعيينها إلى
trueبشكل افتراضي وإلا
بالنسبة لملفات إعلان المحتوى حسب اللغة، ستتم استبدال تعليمة true بـ ./{{fileName}}.fill.content.json. هذا لأن ملف إعلان المحتوى حسب اللغة لا يمكن أن يتلقى محتوى محلياً إضافياً. لذا سينشئ ملفاً جديداً لعدم الكتابة فوق الملف الموجود.
السلوك الافتراضي
بشكل افتراضي، يتم تعيين fill إلى true عالميًا، مما يعني أن Intlayer سيملأ تلقائيًا جميع ملفات المحتوى وتحرير الملف نفسه. يمكن تخصيص هذا السلوك بعدة طرق:
خيارات الإعدادات العامة
fill: true(افتراضي) - ملء جميع اللغات تلقائياً وتعديل الملف الحاليfill: false- تعطيل الملء التلقائي لملف المحتوى هذاfill: "./relative/path/to/file"- إنشاء/تحديث الملف المحدد دون تعديل الملف الحالي بالإشارة إلى مسار نسبي تم حله بناءً على موقع الملف الحاليfill: "/absolute/path/to/file"- إنشاء/تحديث الملف المحدد دون تعديل الملف الحالي بالإشارة إلى مسار نسبي تم حله بناءً على موقع مجلد baseDir (الحقلbaseDirفي ملف الإعدادات.intlayer.config.ts)fill: "C:\absolute\path\to\file"- إنشاء/تحديث الملف المحدد دون تعديل الملف الحالي بالإشارة إلى مسار مطلق تم حله بناءً على نظام التشغيل الخاص بكfill: { [key in Locales]?: string }- إنشاء/تحديث الملف المحدد لكل لغة
تغييرات السلوك في الإصدار v7
في الإصدار v7، تم تحديث سلوك أمر fill:
fill: true- يعيد كتابة الملف الحالي بمحتوى مملوء لجميع اللغاتfill: "path/to/file"- يملأ الملف المحدد دون تعديل الملف الحاليfill: false- يعطل الملء التلقائي بالكامل
عند استخدام خيار المسار للكتابة إلى ملف آخر، تعمل آلية الملء من خلال علاقة master-slave بين ملفات إعلان المحتوى. يعمل الملف الرئيسي (master) كمصدر الحقيقة، وعند تحديثه، سيقوم Intlayer تلقائياً بتطبيق تلك التغييرات على ملفات إعلان المحتوى المشتقة (المملوءة) المحددة بواسطة المسار.
ترجمات ملف إعلان محتوى التعبئة التلقائية
ملفات إعلان محتوى التعبئة التلقائية هي وسيلة لتسريع سير عمل التطوير الخاص بك.
تعمل آلية التعبئة التلقائية من خلال علاقة رئيسي-تابع بين ملفات إعلان المحتوى. عندما يتم تحديث الملف الرئيسي (الرئيسي)، يقوم Intlayer تلقائيًا بتطبيق تلك التغييرات على ملفات الإعلان المشتقة (المعبأة تلقائيًا).
نسخ الكود إلى الحافظة
import { Locales, type Dictionary } from "intlayer";const exampleContent = { key: "example", locale: Locales.ENGLISH, autoFill: "./example.content.json", content: { contentExample: "هذا مثال على المحتوى", },} satisfies Dictionary;export default exampleContent;إليك ملف إعلان محتوى لكل لغة يستخدم تعليمة autoFill.
ثم، عند تشغيل الأمر التالي:
نسخ الكود إلى الحافظة
npx intlayer fill --file 'src/components/example/example.content.ts'سيقوم Intlayer تلقائيًا بإنشاء ملف الإعلان المشتق في src/components/example/example.content.json، مع ملء جميع اللغات التي لم تُعلن بعد في الملف الرئيسي.
نسخ الكود إلى الحافظة
{ "key": "example", "content": { "contentExample": { "nodeType": "translation", "translation": { "fr": "Ceci est un exemple de contenu", "es": "Este es un ejemplo de contenido", }, }, },}بعد ذلك، سيتم دمج كلا ملفي الإعلان في قاموس واحد، يمكن الوصول إليه باستخدام الخطاف القياسي useIntlayer("example") (react) / القابل للاستخدام (vue).
الإعدادات العامة
يمكنك تكوين إعداد الملء التلقائي العام في ملف intlayer.config.ts.
نسخ الكود إلى الحافظة
import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, requiredLocales: [Locales.ENGLISH, Locales.FRENCH], }, dictionary: { // إنشاء الترجمات المفقودة تلقائياً لجميع القواميس fill: "./{{fileName}}Filled.content.ts", // // fill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json", // // fill: true, // إنشاء الترجمات المفقودة تلقائياً لجميع القواامس مثل استخدام "./{{fileName}}.content.json" // // fill: { // en: "./{{fileName}}.en.content.json", // fr: "./{{fileName}}.fr.content.json", // es: "./{{fileName}}.es.content.json", // }, },};export default config;يمكنك بالفعل ضبط دقيق لكل قاموس باستخدام حقل fill في ملفات المحتوى. سيأخذ Intlayer في الاعتبار أولاً التكوين الخاص بكل قاموس ثم يعود إلى الإعدادات العامة.
تنسيق الملف المعبأ تلقائيًا
التنسيق الموصى به لملفات الإعلان المعبأة تلقائيًا هو JSON، والذي يساعد في تجنب قيود التنسيق. ومع ذلك، يدعم Intlayer أيضًا صيغ .ts، .js، .mjs، .cjs، وصيغ أخرى.
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: "./example.filled.content.ts", content: { // المحتوى الخاص بك },};سيتم إنشاء الملف في:
نسخ الكود إلى الحافظة
src/components/example/example.filled.content.tsيتم إنشاء ملفات
.js،.ts، والملفات المشابهة كما يلي:
- إذا كان الملف موجودًا بالفعل، سيقوم Intlayer بتحليله باستخدام شجرة البنية المجردة (AST) لتحديد كل حقل وإدخال أي ترجمات مفقودة.
- إذا لم يكن الملف موجودًا، سيقوم Intlayer بإنشائه باستخدام قالب ملف إعلان المحتوى الافتراضي.
المسارات المطلقة
يدعم الحقل autoFill أيضًا المسارات المطلقة.
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: "/messages/example.content.json", content: { // المحتوى الخاص بك },};سيتم إنشاء الملف في:
نسخ الكود إلى الحافظة
/messages/example.content.jsonإنشاء ملفات إعلان المحتوى لكل لغة تلقائيًا
يدعم الحقل autoFill أيضًا إنشاء ملفات إعلان المحتوى لكل لغة.
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: { fr: "./example.fr.content.json", es: "./example.es.content.json", }, content: { // المحتوى الخاص بك },};سيتم إنشاء ملفين منفصلين:
src/components/example/example.fr.content.jsonsrc/components/example/example.es.content.json
في هذه الحالة، إذا لم يحتوي الكائن على جميع اللغات، يتخطى Intlayer إنشاء اللغات المتبقية.
تصفية تعبئة تلقائية للغة محددة
استخدام كائن للحقل autoFill يسمح لك بتطبيق عوامل تصفية وإنشاء ملفات لغة محددة فقط.
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: { fr: "./example.fr.content.json", }, content: { // المحتوى الخاص بك },};سيتم إنشاء ملف الترجمة الفرنسية فقط.
متغيرات المسار
يمكنك استخدام المتغيرات داخل مسار autoFill لحل المسارات المستهدفة للملفات التي سيتم إنشاؤها بشكل ديناميكي.
المتغيرات المتاحة:
{{locale}}– رمز اللغة (مثلfr،es){{fileName}}– اسم الملف (مثلindex){{key}}– مفتاح القاموس (مثلexample)
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: "/messages/{{locale}}/{{key}}.content.json", content: { // المحتوى الخاص بك },};سيؤدي هذا إلى إنشاء:
/messages/fr/example.content.json/messages/es/example.content.json
نسخ الكود إلى الحافظة
const exampleContent = { key: "example", autoFill: "./{{fileName}}.content.json", content: { // المحتوى الخاص بك },};سيؤدي هذا إلى إنشاء:
./index.content.json./index.content.json