meta.json
ما هو ملف meta.json؟ كيف يتم استخدامه؟
مقدمة
ملف meta.json
هو ملف يقوم مُجمّع Lingo.dev بإنشائه وقت البناء. يتتبع جميع المحتوى القابل للترجمة المكتشف في تطبيق React، ويعمل كقائمة جرد تربط بين تحليل وقت البناء والترجمة في وقت التشغيل.
ملاحظة: يجب الالتزام بجميع التغييرات التي تتم على ملف meta.json
في المستودع.
مثال للملف
هذا مثال لملف meta.json
(مبسط للغاية):
{
"version": 0.1,
"files": {
"components/hero.tsx": {
"scopes": {
"3/declaration/body/0/argument/1/1": {
"type": "element",
"hash": "a1b2c3d4e5f6...",
"context": "",
"skip": false,
"overrides": {},
"content": "Welcome to our app"
}
}
}
}
}
لفهم معنى جميع الخصائص، انظر خصائص المخطط.
موقع الملف
افتراضيًا، يتم إخراج ملف meta.json
إلى دليل src/lingo
، بالنسبة إلى موقع تكوين المُجمّع (مثل ملف vite.config.ts
).
لمعرفة كيفية تخصيص هذا الموقع، راجع خيارات المُجمّع.
خصائص المخطط
يصف هذا القسم جميع الخصائص الموجودة في ملف meta.json
.
version
معرّف إصدار المخطط المستخدم للتحقق من التوافق والترحيلات المستقبلية.
- النوع:
number
- مطلوب: نعم
files
كائن حاوي ينظم جميع النطاقات القابلة للترجمة حسب مسارات ملفات المصدر الخاصة بها. كل مفتاح يمثل مسارًا نسبيًا من جذر المصدر (مثل "components/hero.tsx"
, "pages/home.jsx"
).
- النوع:
object
- مطلوب: نعم
files[filePath].scopes
حاوية لجميع المحتوى القابل للترجمة المكتشف في ملف المصدر المحدد. كل مفتاح هو معرّف مستند إلى AST يحدد بشكل فريد قطعة من المحتوى القابل للترجمة داخل الملف.
- النوع:
object
- مطلوب: نعم
files[filePath].scopes[astKey].type
يشير إلى ما إذا كان المحتوى القابل للترجمة من محتوى عنصر JSX أو قيمة سمة JSX.
- النوع:
"element" | "attribute"
- مطلوب: نعم
files[filePath].scopes[astKey].hash
تجزئة SHA-256 للمحتوى المصدري المستخدمة للكشف عن التغييرات. عندما يتغير المحتوى المصدري، تتغير هذه التجزئة، مما يشير إلى أنه قد تكون هناك حاجة لإعادة الترجمة.
- النوع:
string
- مطلوب: نعم
files[filePath].scopes[astKey].context
معلومات سياقية لمساعدة المترجمين على فهم الغرض من المحتوى أو موقعه.
- النوع:
string
- مطلوب: لا
files[filePath].scopes[astKey].skip
علامة تشير إلى ما إذا كان يجب استبعاد هذا المحتوى من الترجمة.
- النوع:
boolean
- مطلوب: نعم
files[filePath].scopes[astKey].overrides
تجاوزات الترجمة الخاصة باللغة المحلية التي تتجاوز عملية الترجمة العادية. مفيدة لأسماء العلامات التجارية، والمصطلحات التقنية، أو الترجمات المخصصة.
- النوع:
object
- مطلوب: نعم
files[filePath].scopes[astKey].content
النص المصدري الفعلي الذي يحتاج إلى ترجمة، مستخرج من مكونات React الخاصة بك.
- النوع:
string
- مطلوب: نعم