Lingo.dev + XLIFF
تقوم واجهة سطر أوامر Lingo.dev بترجمة ملفات XLIFF (تنسيق تبادل التوطين XML) مع الحفاظ على بنية المستند ووحدات الترجمة وحالات سير العمل. تدعم واجهة سطر الأوامر كلاً من تنسيقات XLIFF 1.2 و2.0، وتحافظ على البيانات الوصفية للغة المصدر، وتحافظ على التسلسلات الهرمية للملفات/المجموعات/الوحدات، وتتعامل مع أقسام CDATA للمحتوى الحساس لـ XML، وتتكامل مع سير عمل الترجمة الاحترافية وأدوات الترجمة بمساعدة الحاسوب.
الإعداد السريع
التكوين لملفات XLIFF:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xliff": {
"include": ["localization/[locale].xliff"]
}
}
}
تذكير: [locale]
هو عنصر نائب يجب أن يبقى في التكوين حرفياً، حيث يتم استبداله باللغة الفعلية أثناء تشغيل واجهة سطر الأوامر.
ترجمة ملفات XLIFF
npx lingo.dev@latest i18n
يحافظ على بنية XLIFF وحالات الترجمة والبيانات الوصفية لسير عمل الترجمة الاحترافية أثناء ترجمة المحتوى.
بنية ملف XLIFF
تنسيق XLIFF 1.2
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="app.strings" source-language="en" target-language="es" datatype="plaintext">
<header></header>
<body>
<trans-unit id="welcome" resname="welcome.message">
<source>Welcome to our application</source>
<target state="translated">Bienvenido a nuestra aplicación</target>
</trans-unit>
<trans-unit id="login" resname="auth.login">
<source>Log In</source>
<target state="new"></target>
</trans-unit>
</body>
</file>
</xliff>
تنسيق XLIFF 2.0
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en">
<file id="messages">
<unit id="welcome">
<segment>
<source>Welcome to our application</source>
</segment>
</unit>
<group id="auth">
<unit id="login">
<segment>
<source>Log In</source>
</segment>
</unit>
</group>
</file>
</xliff>
توليد المفاتيح
يتم إنشاء مفاتيح XLIFF بشكل حتمي مع ترميز URL:
مفاتيح XLIFF 1.2
- تعتمد على سمة
resname
، ثمid
، ثم النص المصدر - تنسيق بسيط:
welcome.message
،auth.login
مفاتيح XLIFF 2.0
- بنية مسار هرمي:
resources/{fileId}/{groupPath}{unitId}/source
- مسارات مرمزة بـ URL:
resources%2Fmessages%2Fauth%2FgroupUnits%2Flogin%2Fsource
- تنشئ المجموعات مسارات متداخلة مع فاصل
groupUnits
ميزات خاصة بـ XLIFF
حالات الترجمة
<!-- حالات الهدف في XLIFF 1.2 -->
<target state="new">محتوى غير مترجم</target>
<target state="translated">محتوى مترجم</target>
<target state="reviewed">ترجمة تمت مراجعتها</target>
<target state="final">ترجمة نهائية معتمدة</target>
يتم الحفاظ على حالات الترجمة وتحديثها أثناء المعالجة.
بيانات وصفية للغة المصدر
<!-- XLIFF 1.2 -->
<file source-language="en-US" target-language="es-ES">
<!-- XLIFF 2.0 -->
<xliff srcLang="en-US" trgLang="es-ES">
يتم الحفاظ على معلومات لغة المصدر وتحديثها تلقائيًا.
أقسام CDATA
<source><![CDATA[محتوى يحتوي على <tags> و "أحرف" خاصة]]></source>
يتم استخدام أقسام CDATA تلقائيًا للمحتوى الذي يحتوي على أحرف حساسة لـ XML.
تنظيم المجموعات
<!-- مجموعات XLIFF 2.0 للتنظيم المنطقي -->
<group id="navigation">
<unit id="home"><segment><source>Home</source></segment></unit>
<unit id="settings"><segment><source>Settings</source></segment></unit>
</group>
يتم الحفاظ على هياكل المجموعات الهرمية وتنعكس في مسارات المفاتيح.
التكوين المتقدم
ملفات XLIFF متعددة
"xliff": {
"include": [
"localization/app_[locale].xliff",
"localization/ui_[locale].xliff"
]
}
امتدادات الملفات
"xliff": {
"include": [
"translations/[locale].xliff",
"translations/[locale].xlf"
]
}
يتم دعم كل من امتدادات .xliff
و .xlf
.
قفل وحدات الترجمة
"xliff": {
"include": ["localization/[locale].xliff"],
"lockedKeys": ["app.version", "build.number"]
}
سير عمل الترجمة الاحترافية
تتكامل ملفات XLIFF بسلاسة مع:
- أدوات الترجمة بمساعدة الحاسوب (CAT)
- أنظمة إدارة الترجمة (TMS)
- سير عمل المترجمين المحترفين
- عمليات ضمان الجودة
- أنظمة ذاكرة الترجمة
تحافظ واجهة سطر الأوامر على جميع البيانات الوصفية لسير العمل مع تمكين الترجمة المدعومة بالذكاء الاصطناعي للتوطين السريع.