سؤال

كيف يمكنني ترجمة الأزرار القياسية (نعم، لا) من QMessageBox؟ لا أستطيع استخدام Self.Tr على هذه الحجج، لذلك أود تحقيق ذلك بطريقة بسيطة أخرى. هل يجب علي استخدام نظام الترجمة بالكامل؟

هل كانت مفيدة؟

المحلول

وهنا كيف فعلت:

تحتاج أولا إلى نسخ qt_LOCALE.qm ملف إلى دليل التطبيق الخاص بك. كان لي:

cp /usr/share/qt4/translations/qt_fr.qm .

ثانيا، تحتاج إلى تحميل مترجم للتطبيق الخاص بك.

application = QApplication(argv)

locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
    application.installTranslator(qtTranslator)

main_window = QMainWindow()
main_window.show()

exit(application.exec_())

نصائح أخرى

هل أنت متأكد من أنك يجب أن تترجمها بنفسك؟ في مجموعات الأدوات الأخرى، يتم ترجم الأزرار القياسية تلقائيا إلى اللغة التي يستخدمها المستخدم.

أسرع طريقة مثل هذا:

mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")

انظر وثائق QMessageBox للحصول على كل ما هو ممكن أزرار قياسية.

إذا كنت ترغب في الحصول على نعم / لا ترجمت إلى اللغة الحالية، فينبغي أن تكون عادة لغة النظام يجب أن تكون كافية. حاول خلاف ذلك مع اقتراح ناتيم.

إذا كنت تريد نصوص مخصصة: الطرق الثابتة مثل السؤال () إلخ. لا تسمح بنصوص زر مخصصة. هذا أمر مؤسف، ك "نعم" / "لا" يعتبر حوارا سيئا (فهي ليست وصحة، يجب على المرء قراءة الرسالة بأكملها، وسهل فهمها ما يعني نعم وما يعني عدم وجوده عن طريق الخطأ). بالنسبة للنصوص المخصصة، يجب عليك استخدام QmessageBox مباشرة. أقترح كتابة أساليب ثابتة الخاصة بك قبول نصوص الزر الاختياري.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top