تنسيقات الملفات التي تتعطل فعلياً في الإنتاج
يبدو توطين البرمجيات بسيطاً حتى تقوم بإطلاقه. يكتب الفريق en.json ويفترض أن الإسبانية والألمانية والعربية ستتبع نفس المسار. لن تفعل. كل تنسيق ملف له مشكلة تعطّل البناء لدى وكالة غير مستعدة. بعد 14 عاماً وعدة آلاف من إصدارات SaaS، لدينا قائمة قصيرة من الحالات التي تصطاد حتى فرق الهندسة الناضجة.
JSON وYAML ومشكلة الفاصلة العليا
JSON العادي لا يحتوي على تعليقات ولا دعم للجمع — مناسب للإنجليزية، هش في الإنتاج بمجرد أن يضيف المترجمون فواصل عليا منحنية (' مقابل ')، أو مسافات غير منفصلة ضيقة حول علامات الترقيم الفرنسية، أو علامات الاقتباس الألمانية (»، «). المترجم الفرنسي الذي يكتب L'application الصحيحة بفاصلة عليا طباعية سينجح في ضمان الجودة اللغوية ويعطّل محلل JSON الهش. نُطبّع الفواصل العليا عند الاستيراد، ونتحقق من وجود UTF-8 BOM، ونجري فحص بناء جملة قبل شحن أي لغة.
Android strings.xml: الإخفاء الصامت
يخزّن Android الفواصل العليا كـ \' وعلامات العطف كـ &. يلصق المترجمون بانتظام أحرف Microsoft Word المنحنية التي تبدو متطابقة ويشحنون — حتى يعرض التخطيط نصاً مشوهاً عند التشغيل. نستخدم رحلة XLIFF مخصصة لموارد Android حتى لا يرى المترجم XML الخام أبداً، ونعيد الإخفاء عند التصدير.
iOS .strings و.stringsdict
المشكلة الكلاسيكية هي قواعد الجمع. يستخدم iOS فئات الجمع في CLDR (صفر، واحد، اثنان، قليل، كثير، آخر) من خلال .stringsdict. المترجم الساذج سيعامل الملف واحداً لواحد ويفقد متغيرات الجمع — يقول تطبيقك الألماني حينها "1 Nachrichten". نستخدم محرراً مدركاً للجمع يعرض كل فئة CLDR حسب الحاجة للغة الهدف ويرفض التصدير إذا كانت أي فئة مفقودة.
.NET .resx وJava .properties
يقبل resx تعليقات XML ومراجع كود مضمنة؛ يستخدم .properties ISO-8859-1 افتراضياً (سلاسل الأدوات الحديثة تدعم UTF-8، لكن التركيبة الخاطئة لا تزال تشحن إخفاءات \uXXXX التي تُحبط المترجمين). نفرض UTF-8 عند الاستيراد ونُصدِر إخفاءات أصلية فقط في وقت البناء.
رحلة XLIFF ذهاباً وإياباً
كلما أمكن، نستخرج الملفات المصدرية إلى XLIFF 1.2 أو 2.0، ونترجم داخل محررنا مع السياق المرفق، ونعيد الدمج. يتيح هذا للمترجمين رؤية تعليق المصدر، ولقطة الشاشة، والقيد (حد الأحرف، صيغة الجمع ICU، علامة انعكاس RTL) دون لمس الملف المصدري أبداً. يدمج مسار البناء مرة أخرى في التنسيق الذي أرسله مطوروك.