Question

Comment puis-je traduire facilement des boutons standards (oui, non) de QMessageBox? Je ne peux pas utiliser self.tr sur ces arguments, donc je voudrais réaliser une autre manière simple. Dois-je utiliser le système de traduction tout?

Était-ce utile?

La solution

Voici comment je l'ai fait:

D'abord, vous devez copier le fichier qt_LOCALE.qm dans votre répertoire d'applications. Le mien était:

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

En second lieu, vous devez charger un traducteur pour votre application.

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_())

Autres conseils

Êtes-vous sûr que vous devez les traduire vous-même? Dans d'autres boîtes à outils, les boutons standards sont automatiquement traduits dans la langue que l'utilisateur utilise.

La façon la plus rapide est quelque chose comme ceci:

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

Consultez la documentation QMessageBox pour tous les possibles boutons standard .

Si vous voulez avoir Oui / Non traduit dans la langue actuelle, qui mentionne habituellement la langue du système devrait être suffisant. Sinon, essayez avec la suggestion de NATIM.

Si vous voulez des textes personnalisés: Les méthodes statiques comme question (), etc. ne permettent pas des textes de bouton personnalisé. C'est malheureux, « Oui » / « Non » les dialogues sont considérés comme mauvais style (ils ne sont pas descriptifs, on doit lire le message entier, et il est facile de se méprendre sur ce que veut dire oui et quels moyens et non accidentellement les nier). Pour les textes personnalisés, vous devez utiliser QMessageBox directement. Je vous suggère d'écrire vos propres méthodes statiques accepter des textes des boutons en option.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top