سأدخل الحاوية، وأثبت vim وأصلح اللغة المحلية.
يمكنك حفظ اللغة العبرية المعطلة ونسخ اللغة الإنجليزية فوقها…
root@carrie-app:/var/www# for i in `find . -name *.he.yml` ; do cp ${i/he.yml/en.yml} $i ; done
فكرة لطيفة، لكنها لم تنجح في التطبيق العملي. عندما قمت بتغيير لغتي إلى HE مرة أخرى، واجهت الخطأ. أعتقد أنني سأعود إلى تكرار المستخدمين لتعيينهم جميعًا إلى اللغة الإنجليزية في الوقت الحالي.
هل أعدت تشغيل discourse بعد تعديل اللغات؟
نعم. لم أفعل الكثير.

بعد استعراض مهاراتي القديمة في لغة Ruby، قمت للتو بتبديل الجميع إلى اللغة الإنجليزية في الوقت الحالي. سأفتح تذكرة بخصوص اللغة العبرية لاحقًا.
شكرا @JammyDodger على النقل إلى #bug، هل هذا كل ما يتطلبه الأمر لفتح تقرير خطأ، أم يجب علي فتح واحد رسمي في متتبع أخطاء ما؟
إذا تم نسخ إعدادات اللغة الإنجليزية (en)، يحدث خطأ أثناء الدمج (يبدو أنه تتم إزالة الإدخالات غير المترجمة، وإذا لم يتبق شيء، يحدث خطأ).
ومع ذلك، فإن إزالة config/locales/client.he.yml تسمح بتسجيل الدخول في موقع الاختبار الخاص بي.
لأنها تعود بالكامل إلى اللغة الإنجليزية. أعتقد أن هذا هو السلوك المتوقع.
في الإعداد المحلي العبري config/locales/client.he.yml
posts_likes_MF: |
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
many {# תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
السطر
many {# תגובות, }
يجب حذفه.
many غير مسموح به في اللغة العبرية (انظر Language Plural Rules)
يمكن حل المشكلة من خلال واجهة المستخدم. لتحقيق ذلك، يجب إدخال القيمة المصححة في /admin/customize/site_texts/js.posts_likes_MF للغة العبرية:
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
يبدو الأمر غريبًا بعض الشيء أن الموقع بأكمله يمكن أن يصبح غير قابل للاستخدام عن طريق إدخال بيانات خاطئة في تخصيص نص.
تسجيله هنا هو المكان المناسب لتقارير الأخطاء. ![]()
سأستخدم git لمعرفة من المسؤول عن هذا السطر، اعتقدت أن الحزب الوحيد المسموح له بتثبيت التغييرات هو crowdin؟
أيضًا، إذا كان الأمر كذلك، فلماذا لن يؤدي إعادة تشغيل unicorn بعد نسخ اللغة الإنجليزية فوق اللغة العبرية إلى إصلاح هذا؟
يجب أن يكون هناك بالفعل تمييز بين غير المسموح به وغير المدعوم.
من الغريب أنه في كود Discourse، حتى “plural two” غير مدعوم لأي من رمزي اللغة، والذي يتم مشاركته مع اللغة العربية. أعتقد أن هذه هي النقطة التي تحتاج إلى إصلاح. سأقوم بإنشاء طلب سحب (PR) لذلك، ولكن هناك بالتأكيد حاجة لإصلاح الفشل الصارم في حقل many “الزائد”، حيث يبدو أن Crowdin لا يتوافق مع ملف plurals.rb هذا.
أعتقد أن الأمر أكثر تعقيدًا.
تُفسَّر الترجمات الأمامية بواسطة وحدة العقدة @messageformat/core باستخدام messageformat-wrapper.
المشكلة هي أن قواعد الجمع معرفة في مكانين. تم مؤخرًا تغيير المكان الآخر لاستخدام مكتبة (DEV: Upgrade the MessageFormat library (JS) · discourse/discourse@301713e · GitHub).
ومع ذلك، فإن صيغ الجمع المعرفة في المكتبة ليست دائمًا هي نفسها التي استخدمها Discourse من قبل، ولم يتم تغيير تلك الموجودة في plurals.rb. Inconsistency in plural definition
لكن هذا لا يفسر لماذا أنشأ Crowdin إصدارًا منفصلاً للعديد من
لقد أضفت قواعد الحقول المطلوبة للترجمة، ولكن هذا ليس حلاً لهذه المشكلة، بل هو توافق فقط مع مخرجات Crowdin.
أعتقد أن القاعدة في نهاية السطر تحتاج إلى تعديل أيضًا.
في الوقت الحالي، لا يزال هذا يذكر فقط “واحد” و “آخر”.
rule: lambda { |n| n == 1 ? :one : :other }
نعم، لقد أخطأت. قمت بإصلاحها باستخدام amend وفاتني حقيقة أنني دفعتها بدون --force. تم تصحيحها الآن.
شكرا للجميع، دعونا نواصل تتبع المشكلة الأوسع في هذا الموضوع: