dictionary.js
ما هو ملف dictionary.js؟ كيف يتم استخدامه؟
مقدمة
ملف dictionary.js
هو ملف يقوم مُجمّع Lingo.dev بإنشائه وقت البناء. يخزن هذا الملف ترجمات التطبيق بتنسيق يمكن تحميله بكفاءة في وقت التشغيل.
ملاحظة: يجب الالتزام بجميع التغييرات التي تتم على ملف dictionary.js
في المستودع.
مثال على الملف
هذا مثال على ملف dictionary.js
(مبسط للغاية):
export default {
version: 0.1,
files: {
"components/hero.tsx": {
entries: {
"3/declaration/body/0/argument/1/1": {
content: {
en: "Welcome to our app",
es: "Bienvenido a nuestra aplicación",
},
hash: "a1b2c3d4e5f6...",
},
},
},
},
};
للحصول على وصف كامل للخصائص المتاحة، انظر خصائص المخطط.
موقع الملف
افتراضيًا، يتم إخراج ملف dictionary.js
إلى دليل src/lingo
، بالنسبة إلى موقع تكوين المُجمّع (مثل ملف vite.config.ts
).
لمعرفة كيفية تخصيص هذا الموقع، انظر خيارات المُجمّع.
تحميل القاموس
توفر حزمة lingo.dev
عددًا من وظائف loadDictionary
. هذه الوظائف مسؤولة عن تحميل القاموس للغة المستخدم الحالية (استنادًا إلى القيمة الحالية لـ ملف تعريف ارتباط اللغة).
كل نوع من الوظائف مخصص للاستخدام في بيئات مختلفة. هذا مثال على استخدام إصدار جانب العميل من الوظيفة:
<LingoProviderWrapper loadDictionary={(locale) => loadDictionary(locale)}>
<App />
</LingoProviderWrapper>
يجب عليك استخدام الوظائف المقدمة فقط لتحميل القاموس، بدلاً من محاولة تحميل القاموس يدويًا.
تحرير القاموس
على الرغم من أن ملف dictionary.js
يتم إنشاؤه تلقائيًا، إلا أنه قابل للتحرير. يمكنك، على سبيل المثال، تغيير ترجمة يدويًا عن طريق تحرير محتوى الترجمة.
ومع ذلك، إذا تغير المحتوى المصدري، فسيتم استبدال التعديل اليدوي، لذلك عادة ما يكون استخدام سمة data-lingo-override أكثر قابلية للصيانة.
خصائص المخطط
يصف هذا القسم جميع الخصائص الموجودة في ملف dictionary.js
.
version
معرّف إصدار المخطط المستخدم للتحقق من التوافق والترحيلات المستقبلية.
- النوع:
number
- مطلوب: نعم
files
كائن حاوي ينظم جميع إدخالات الترجمة حسب مسارات ملفاتها المصدرية. كل مفتاح يمثل مسارًا نسبيًا من جذر المصدر (مثل "components/hero.tsx"
, "pages/home.jsx"
).
- النوع:
object
- مطلوب: نعم
files[filePath].entries
حاوية لجميع إدخالات الترجمة المكتشفة في ملف المصدر المحدد. كل مفتاح هو معرّف مستند إلى AST يحدد بشكل فريد المحتوى القابل للترجمة داخل الملف.
- النوع:
object
- مطلوب: نعم
files[filePath].entries[astKey].content
يربط معرّفات اللغات المحلية بسلاسل الترجمة المقابلة لها. يحتوي على ترجمات لجميع اللغات المحلية المكوّنة في مشروعك.
- النوع:
object
- مطلوب: نعم
files[filePath].entries[astKey].hash
تجزئة SHA-256 للمحتوى المصدري الأصلي المستخدم للكشف عن التغييرات وإبطال صلاحية ذاكرة التخزين المؤقت. عندما يتغير المحتوى المصدري، تتغير هذه التجزئة، مما يؤدي إلى إعادة ترجمة الإدخال.
- النوع:
string
- مطلوب: نعم