Eu sei que o desenvolvimento de aplicativos com o Quickly e o suporte ao Launchpad Traduções para fazer isso. Eu não sou especialista, então confira esses links além da minha resposta:
Meu aplicativo importa o módulo gettext que me permite marcar strings que serão exibidas ao usuário no programa. Quando meu programa é submetido ao Launchpad via Quickly, o Launchpad é configurado para varrer automaticamente o código-fonte e gerar arquivos de modelo de tradução especiais para as cadeias marcadas. Os usuários do Kindpad Kind (ou o desenvolvedor) podem usar o modelo para gerar traduções para cada string e idioma que desejarem. Esses arquivos de tradução podem então ser sincronizados com sua ramificação de origem e mesclados antes do lançamento. No tempo de execução, o módulo gettext substitui as cadeias marcadas pela tradução apropriada com base na localidade do seu sistema.
Para resumir, segue uma lista do processo:
- importe o gettext para o seu programa
- Marcar strings que precisam ser traduzidas
- Configurar traduções no Launchpad
- Traduza modelos e sincronize com a fonte
Aqui está o cabeçalho do meu programa onde eu importo o gettext através do local (note que Quickly adiciona tudo isso para mim! locale e bindtextdomain são adicionados porque está sendo colocado em /opt/extras.ubuntu.com eu acho):
import locale
from locale import gettext as _
locale.bindtextdomain('drawers', '/opt/extras.ubuntu.com/drawers/share/locale')
locale.textdomain('drawers')
Agora, basta marcar o texto a ser traduzido com _("text to be translated")
em todo o meu programa.