Δεν έχω ιδιαίτερες γνώσεις προγραμματισμού αλλά ασχολούμαι κάπου κάπου, ως χόμπι. Με την python και την pyqt έχω πολύ μικρή εμπειριά, αν και έχω φτιάξει, με τη βοήθεια της αναζήτησης στο διαδίκτυο, 2-3 εφαρμογές για προσωπική χρήση.
Μία από αυτές είναι και αυτή στην οποία πρόσθεσα τη δυνατότητα μετάφρασης.
Αυτό το είχα κάνει πριν 1-2 μήνες και είχα καταφέρει να είναι μεταφρασμένα όλα τα κείμενα που περιλαμβάνονταν στη μετάφραση.
Πρόσφατα έκανα κάποιες μικρές προσθήκες και προσπάθησα να ενσωματώσω κάποια νέα κείμενα(4-5 αναφορές μόνο) στη μετάφραση.
Είχα δημιουργήσει ένα αρχείο trans.pro το οποίο χρησιμοποίησα για τη δημιουργία του αρχείου el_GR.ts το οποίο στη συνέχεια μετέτρεψα με το qt linguist σε αρχείο qm.
Το πρόβλημα προέκυψε όταν επανέλαβα τη διαδικασία για να ενημερώσω το αρχείο με τα νέα κείμενα.
Αυτά λοιπόν, παρόλο που είναι μεταφρασμένα στο αρχείο qm(το τέσταρα μετατρέποντας το ξανά σε .ts με το lconvert), εμφανίζονται με αγγλικά στην εφαρμογή.
Έτσι έχω προσθέσει τη δυνατότητα μετάφρασης:
def run():
app = QtWidgets.QApplication(sys.argv)
app.setStyle("adwaita")
app.setQuitOnLastWindowClosed(False)
defaultLocale = QLocale.system().name()
print(defaultLocale)
translator = QTranslator(app)
"""LOCAL_DIR = os.path.dirname(os.path.realpath(__file__))
print(LOCAL_DIR)
translator.load(LOCAL_DIR +"/resources/translations/el_GR.qm")"""
if defaultLocale == "el_GR":
translator.load(":ui/resources/translations/el_GR.qm")
app.installTranslator(translator)
app.setApplicationName("Snooze Shutdown")
app.setApplicationDisplayName("Snooze Shutdown")
print(app.translate("app", "apple2"))
ui = MainWindow()
ui.show()
return app.exec_()
Όπου χρειάζεται μετάφραση έχει προστεθεί ως εξής:
if self.actionLbl.text()==self.tr("Countdown Timer"):
self.timeInfoLbl.setText(self.tr("The countdown timer will finish at ") + self.time2Go())
Τα παράπανω είναι κάποια από τα νέα κείμενα τα οποία δε μεταφράζονται.
Δοκίμασα και με το translate ως εξής:
QCoreApplication.translate(“Countdown Timer”)
Αλλά σε αυτή την περίπτωση η εφαρμογή κρασάρει. Νομίζω ότι αυτό γίνεται επειδή δεν πρόκειται για αντικείμενα όπως κουμπία, πλαίσια κειμένου κλπ, μιας και σε κάποια radiobuttons που τα δοκίμασα λειτουργούσαν κανονικά.
Καμία ιδέα τι μπορεί να φταίει?