Eu resolvi isso. Eu devo usar locale.gettext
em vez de gettext
. Eu não sei qual é a diferença, mas funciona.
Eu criei um aplicativo usando quickly create ubuntu-application myapp
.
Então criei traduções e criei o pacote deb quickly package
para instalá-lo e testá-lo. Quando eu executo myapp, todas as strings dos arquivos glade foram traduzidas, mas todas as strings do código não foram traduzidas. O que é isso? Como resolver este problema?
Eu resolvi isso. Eu devo usar locale.gettext
em vez de gettext
. Eu não sei qual é a diferença, mas funciona.
Em seu código, você precisa marcar todas as suas strings para tradução, colocando-as em _()
. Por exemplo:
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')
Observe as instruções gettext acima, que são colocadas rapidamente em cada arquivo de origem. Você precisará adicioná-los a qualquer arquivo de origem que contenha strings traduzíveis.