Я создал приложение, используя quickly create ubuntu-application myapp
. Затем я создал переводы и создал пакет deb quickly package
для его установки и тестирования. Когда я запускаю myapp, все строки из файлов glade были переведены, но все строки из кода не были переведены. Что это? Как решить эту проблему?
В вашем коде необходимо пометить все строки для перевода, заключив их в _()
. Например :
import gettext
from gettext import gettext as _
gettext.textdomain('yourappname')
some_string = 'This is not a translatable string'
some_other_string = _('This is a translatable string')
Обратите внимание на приведенные выше операторы gettext, которые быстро помещаются в каждый исходный файл. Вам нужно будет добавить их в любой исходный файл, содержащий переводимые строки.
Я решил это. Я должен использовать locale.gettext
вместо gettext
. Я не знаю, в чем разница, но это работает.