Лучшие практики для интернационализации с использованием PyQt4 - PullRequest
4 голосов
/ 14 ноября 2011

Я хочу добавить поддержку нескольких языков для моего приложения, написанного на Python с использованием PyQt4.Я искал информацию о том, как добавить несколько языков, и хотел бы посмотреть, как другие люди делают это.

Здесь Я прочитал:

Поведение PyQtявляется неудовлетворительным и может быть изменено в будущем.Рекомендуется использовать QCoreApplication.translate () вместо tr () (и trUtf8 ()).Это гарантированно работает с текущими и будущими версиями PyQt и значительно упрощает обмен файлами сообщений между кодом Python и C ++.

В файлах, генерируемых pyuic4, я вижу что-то вроде:

WPopupCalendar.setWindowTitle(QtGui.QApplication.translate("WPopupCalendar", "Календарь", None, QtGui.QApplication.UnicodeUTF8))

Это выглядит слишком долго для меня.Я думал сделать свою собственную вспомогательную функцию tr, которая каким-то образом автоматизировала бы процесс.

Также я не смог найти статьи, описывающие рабочий процесс и особенности разработки многоязычных приложений на python с pyqt4.

Не могли бы вы посоветовать мне несколько хороших и удобных методов по этому поводу?

1 Ответ

1 голос
/ 14 ноября 2011

Просто используйте tr (или trUtf8) везде, чтобы начать с. Обращайтесь к translate только тогда, когда вы идентифицируете код, на который влияет проблема с множественным наследованием (что легко может быть никогда).

Я бы посоветовал вам взглянуть на i18n обзор Qt и Руководство по лингвисту Qt . Очевидно, они оба ориентированы на проекты C ++, но это должно дать вам достаточно четкое представление о том, что требуется.

В качестве рабочего примера вы также можете загрузить исходный код Eric Python IDE - он написан на PyQt4 и поддерживает полдюжины и более языков.

...