يمكن لمنتج مبني للغة ومنطقة واحدة أن يتجاوز قائمة طويلة من الافتراضات الصامتة: تُكتب التواريخ بترتيب الشهر أولاً، ويُقرأ النص من اليسار إلى اليمين، وللاسم جزء أول وأخير بذلك الترتيب، وللعملة رقمان عشريان بالضبط، وترتيب النص أبجدياً يعني ترتيبه بالطريقة التي تفعلها الإنجليزية. كل واحد من هذه الافتراضات خاطئ في مكان ما من العالم، ومنتج لم يواجه ذلك أبداً يجد هذه الافتراضات مُرسَّخة بعمق في كوده بحيث يصبح التوسع في سوق جديد أصعب بكثير من ترجمة بعض النصوص. هندسة التدويل، المختصرة عادة i18n، هي تخصص بناء برمجيات بحيث يكون تكييفها للغة أو منطقة جديدة مشكلة تهيئة ومحتوى بدلاً من مشكلة إعادة كتابة كود؛ التوطين، أو l10n، هو العملية الفعلية لتكييف منتج للغة ومنطقة محددة بمجرد وجود ذلك الأساس.
يهم هذا التمييز لأن هذين النشاطين لهما جداول زمنية ومالكون مختلفون جداً. التدويل عمل هندسي، يُنجَز مرة واحدة، ومثالياً مبكراً، يحدد كمية الاحتكاك التي سيواجهها كل جهد توطين مستقبلي. التوطين عمل محتوى وترجمة مستمر، يتكرر لكل سوق جديد، يصبح أرخص وأسرع بشكل كبير عندما يُنجَز عمل التدويل الأساسي بشكل صحيح، وأغلى وأكثر عرضة للأخطاء عندما لا يُنجَز كذلك.
إخراج النص من الكود إلى الخارج: الجزء الواضح الذي لا يزال يسهل إخطاؤه
أبسط متطلب تدويل هو إخراج كل نص مواجه للمستخدم إلى ملفات موارد بدلاً من ترميزه مباشرة في كود التطبيق، بحيث يمكن إنتاج نسخة مترجمة من المنتج بتوفير ملفات موارد مترجمة بدلاً من تحرير وإعادة نشر التطبيق نفسه. يبدو هذا بسيطاً وهو كذلك في معظمه، لكن دقيقتين تُعثِران الفرق بانتظام حتى بعد وضع النمط الأساسي.
الأولى أن النص المترجم ليس أبداً بنفس طول النص المصدر تقريباً — يمتد النص الألماني عادة بنسبة ثلاثين بالمئة أطول من الإنجليزية. الثانية أن تسلسل النصوص — بناء جملة من عدة أجزاء مترجمة منفصلة مربوطة معاً في الكود — ينتج بشكل موثوق مخرجات نحوياً مكسورة في كثير من اللغات المستهدفة، لأن ترتيب الكلمات وقواعد الجمع والتوافق النحوي بين الأجزاء تختلف حسب اللغة بطرق لا تحترمها أجزاء الإنجليزية المُسلسَلة ببساطة.
الجمع والقواعد النحوية وحدود العناصر النائبة البسيطة
جمع الإنجليزية بسيط بشكل خادع — للكلمة إما صيغة مفرد أو جمع، يتحكم بها ما إذا كان العدد يساوي واحداً بالضبط — وكود يعالج الجمع بفحص "إذا كان العدد يساوي واحد" يُرسِّخ بهدوء افتراضاً يفشل بمجرد أن يحتاج المنتج لدعم لغة بأكثر من صيغتي جمع. للعديد من اللغات ثلاث أو أربع أو أكثر من فئات جمع متمايزة تعتمد على العدد المحدد المعني، تحكمها قواعد نحوية لا تُطابَق بسهولة على فحص مفرد-أو-جمع بسيط.
تعالج مكتبات التدويل الحديثة هذا عبر أنظمة قواعد جمع رسمية تُرمِّز فئات الجمع الفعلية لكل لغة وتختار الصيغة النحوية الصحيحة بناءً على عدد معطى، بدلاً من ترك المهندسين الأفراد يكتبون منطقاً شرطياً مخصصاً لكل رسالة تتضمن عدداً.
التنسيق الواعي بالمنطقة: التواريخ والأرقام والعملات
بما يتجاوز النص المترجم، يحتاج منتج مُدوَّل حقاً لتنسيق التواريخ والأرقام والعملات وفقاً لاتفاقيات أي منطقة نشطة حالياً، بدلاً من افتراض أن تنسيقاً ثابتاً واحداً يعمل في كل مكان. يمكن كتابة نفس التاريخ بترتيبات مختلفة جداً حسب المنطقة، والتاريخ المُعروض كأرقام فقط دون تنسيق لا لبس فيه مصدر موثوق للارتباك والأخطاء الواقعية.
يحمل تنسيق الأرقام تبايناً إقليمياً خاصاً به في أي حرف يفصل الآلاف عن الرقم الكامل وأي حرف يفصل الرقم الكامل عن جزئه الكسري، وكود يفترض ببساطة زوجاً محدداً واحداً من الفواصل سيُنسِّق الأرقام بشكل غير صحيح، أو بطريقة مضللة فعلياً، للمناطق التي تستخدم الاتفاقية الأخرى.
النص ثنائي الاتجاه والتخطيط من اليمين إلى اليسار
اللغات المكتوبة من اليمين إلى اليسار، بما فيها العربية والعبرية، تتطلب أكثر من مجرد عكس اتجاه النص؛ تتطلب أن يُرآى تخطيط الواجهة بأكمله، بالتنقل والأيقونات وترتيب القراءة يتدفق في الاتجاه المعاكس لتخطيط من اليسار إلى اليمين، بينما لا تزال الأرقام وأي محتوى مُضمَّن من اليسار إلى اليمين، كاسم علامة تجارية إنجليزي يظهر داخل نص عربي، تحتاج للعرض باتجاهها الصحيح الخاص ضمن التدفق العام من اليمين إلى اليسار. يُسمى هذا النص مختلط الاتجاه نصاً ثنائي الاتجاه، والحصول عليه بشكل صحيح يتطلب أكثر من علامة عامة واحدة "هذه الصفحة من اليمين إلى اليسار".
الواجهات المبنية دون دعم من اليمين إلى اليسار في الاعتبار منذ البداية تميل لترسيخ هذا الافتراض في أماكن يصعب إيجادها لاحقاً بشكل مفاجئ: الأيقونات التي تشير بصرياً لاتجاه، كزر "التالي" على شكل سهم للأمام، تحتاج للانعكاس فعلياً لتخطيط من اليمين إلى اليسار لأن "الأمام" يشير للاتجاه المعاكس في ذلك اتجاه القراءة.
السياق الثقافي بما يتجاوز اللغة
يذهب التوطين الفعال أبعد من القواعد والتنسيق الصحيحين؛ إنه يأخذ بالحسبان أيضاً السياق الثقافي الذي يمكن أن يجعل ترجمة دقيقة خلاف ذلك تبدو سيئة. ارتباطات الألوان والصور والفكاهة والتعابير الاصطلاحية نادراً ما تُترجَم مباشرة، ومحتوى غير مؤذٍ أو حتى إيجابي في ثقافة واحدة يمكن أن يكون مربكاً أو مسيئاً فعلياً في أخرى؛ لون يُستخدَم للإشارة للاحتفال في منطقة واحدة قد يحمل ارتباطاً مختلفاً كلياً، بل حزيناً، في مكان آخر.
ترميز الأحرف كأساس تحت كل شيء آخر
قبل أن تهم أي من مخاوف التدويل الأعلى مستوى على الإطلاق، يحتاج النظام لمعالجة ترميز النص بشكل صحيح لكل حرف قد تحتويه لغة مستهدفة، وتميل الثغرات هنا للظهور كنص تالف أو مشوَّه بدلاً من خطأ نظيف، مما يجعل تشخيصها أصعب من خطأ نموذجي. تفشل الأنظمة المبنية بافتراض مجموعة أحرف محدودة بأحرف إنجليزية وعلامات ترقيم أساسية بشكل موثوق، أحياناً بصمت، بمجرد تغذيتها بنص عالمي حقاً يحتوي أحرفاً خارج ذلك النطاق المحدود — حروف مُشكَّلة، أو كتابات غير لاتينية، أو أحرف من أنظمة كتابة لم يتوقع الكود الأصلي أبداً الحاجة لتخزينها أو نقلها أو عرضها بشكل صحيح.
تفترض بيئات التطوير وقواعد البيانات الحديثة عموماً معايير ترميز افتراضياً قادرة على تمثيل أحرف أي لغة تقريباً بفعالية، مما جعل هذه الفئة من الأخطاء أندر بكثير مما كانت عليه سابقاً، لكنها لم تختفِ كلياً: عمود قاعدة بيانات أُنشئ بترميز مقيّد يفترض لغة واحدة، أو بروتوكول شبكة أو تنسيق ملف يقتطع أو يشوّه بصمت أحرفاً خارج نطاق ضيق، أو خط يفتقر لرموز نظام كتابة معين، يمكن لكل منها أن ينتج بالضبط نمط الفشل هذا في نظام حديث خلاف ذلك.
سير عمل الترجمة والحفاظ على تزامنها مع تغييرات المنتج
التدويل ليس مهمة هندسية لمرة واحدة تُنجَز ثم تُنسى؛ منتج يستمر بشحن ميزات ونصوص مواجهة للمستخدم جديدة يحتاج سير عمل مستمر للحصول على ترجمة ذلك النص الجديد قبل، أو بعد وقت قصير من، وصوله للمستخدمين في مناطق أخرى، ودون عملية متعمدة يتخلف هذا بشكل موثوق، تاركاً بعض المناطق بمنتج غير مكتمل الترجمة بشكل واضح لفترة طويلة بعد شحن ميزة في كل مكان آخر. تدمج سير عمل التوطين الناضجة الترجمة مباشرة في عملية التطوير والإصدار، مستخرجة آلياً النصوص القابلة للترجمة الجديدة أو المتغيرة كجزء من بناء عادي.
مثال عملي: توسيع منتج SaaS إلى الأسواق الناطقة بالعربية
قررت شركة برمجيات بنت منتجها حصرياً للأسواق الناطقة بالإنجليزية ومن اليسار إلى اليمين التوسع في عدة أسواق ناطقة بالعربية واكتشفت، بمجرد بدء الترجمة جدياً، أن حصة كبيرة من واجهتها لم تعمل ببساطة عند ملئها بمحتوى من اليمين إلى اليسار. الأيقونات التي تشير لاتجاه أشارت للطريق الخاطئ، وكود التخطيط عبر قاعدة الكود بأكملها رمّز مواضع بكسل يسار ويمين محددة بدلاً من استخدام مواضع منطقية بداية-ونهاية، وبُنيت عدة رسائل مواجهة للمستخدم بتسلسل أجزاء مترجمة منفصلة في كود التطبيق.
بدلاً من إصلاح كل من هذه المشاكل فردياً كلما ظهرت، استثمر فريق الهندسة في تمريرة تدويل مناسبة قبل مواصلة عمل التوطين: استبدال المواضع المرمَّزة يسار-يمين بمواضع منطقية بداية-نهاية عبر قاعدة الكود بأكملها، وتدقيق وعكس كل أيقونة اتجاهية، واستبدال كل رسالة مُسلسَلة برسالة واحدة كاملة قابلة للترجمة تستخدم عناصر نائبة ودعم جمع مناسبين. استغرق هذا الاستثمار المسبق أسابيع أطول مما كانت ستستغرقه المتابعة بالترجمة فقط، لكن كل سوق لاحق توسعت فيه الشركة بعدها احتاج فقط عمل ترجمة ومحتوى، دون تغييرات هندسية إضافية على منطق التخطيط والتنسيق الأساسي.
الخلاصة
هندسة التدويل هي التخصص الذي يحدد ما إذا كان توسيع منتج للغة أو منطقة جديدة مسألة توفير محتوى مترجم، أو مسألة إعادة كتابة منطق تخطيط وتنسيق وبناء رسائل لم يُصمَّم أبداً لدعم أي شيء آخر غير سوق المنتج الأصلي. إخراج النص، ومعالجة رسمية للجمع والقواعد، وتنسيق واعٍ بالمنطقة للتواريخ والأرقام والعملات، ودعم حقيقي للتخطيط ثنائي الاتجاه ومن اليمين إلى اليسار، يعالج كل منها فئة من الافتراضات التي تنكسر بهدوء بمجرد أن يعبر منتج لسياق لغوي أو ثقافي جديد. المؤسسات التي تستثمر في هذا الأساس الهندسي مبكراً تجد أن دخول أسواق جديدة يصبح أرخص وأسرع تدريجياً بمرور الوقت.