متابعة للنقاش من يوم أسبوع الأعمال:
كما ذكرت في المنشور المرتبط، فإن “الموقع” (Locale) ليس مطابقًا تمامًا لـ “لغة واجهة المستخدم”.
سأأخذ KDE (لينكس و Qt) كمثال هنا:
كما نرى، في لقطة الشاشة الأولى يمكن للمستخدم اختيار لغة واجهة المستخدم. وهذا، حسنًا، يحدد لغة الواجهة وكل ما تراه على الشاشة، باستثناء ما هو موضح في لقطة الشاشة الثانية.
تسمح لقطة الشاشة الثانية بتحديد موقع المستخدم (Locale)، وتجاوز الإعدادات الخاصة بالأرقام، والوقت، والعملة، والوحدات، والترتيب.
هذا مهم لأن العديد من المستخدمين يستخدمون النظام بلغتهم المفضلة، لكنهم يعيشون في بلد مختلف حيث تختلف تفضيلاتهم الخاصة بالموقع.
سأأخذ أمثلة من منطقتي، المنطقة العربية:
- جميع الدول لديها العربية كلغة رئيسية.
- دول المشرق تفضل استخدام الأرقام العربية الشرقية (٠١٢٣٤٥٦٧٨٩)، بينما دول المغرب تفضل استخدام الأرقام العربية الغربية (0123456789).
- تفضل مصر والسودان ودول الخليج استخدام أسماء الشهور اللاتينية، منقولة إلى العربية: Arabic names of Gregorian months - Wikipedia بينما تفضل بلاد الشام وبلاد الرافدين استخدام أسماء الشهور الآشورية: Arabic names of Gregorian months - Wikipedia وتفضل دول المغرب استخدام النسخ الصوتي لأسماء الشهور الفرنسية: Arabic names of Gregorian months - Wikipedia.
لذلك، تتأثر التواريخ بهذه الاختلافات:
- جميع الدول تكتب من اليمين إلى اليسار.
- دول المشرق: ١٢ يناير ٢٠٢٠ = 12 يناير 2020 (يُقرأ من اليمين إلى اليسار)
- دول المغرب: 12 جانفي 2020 = 12 يناير 2020 (يُقرأ من اليمين إلى اليسار)
- ببساطة: سواء كانت الأرقام شرقية أم غربية/عربية، فإنها تُكتب من اليمين إلى اليسار، مما يجعل اتخاذ قرار بشأن الأرقام أصعب، ناهيك عن التنسيق.
حتى فاصل الآلاف يختلف:
(الأرقام العربية الشرقية لديها أيضًا فاصل آخر: ١٠٬٠٠٠٫٠٠:
كيف يؤثر ذلك على Discourse:
- تنسيقات التاريخ والوقت، والأرقام، وبداية أسبوع الأعمال.
ما الذي لا يتأثر:
- التواريخ النسبية.
الحلول المثالية:
- استخراج وتنسيق تنسيقات Unicode والسماح للمستخدم باختيار أي موقع (Locale) يفضله. وهذا يتطلب تفكيرًا حيث قد يتعارض مع Moment.JS.
- توفير جميع الوسائل والطرق للمترجمين لاختيار التنسيق الذي سيتم عرضه في أي مكان في البرنامج.


