Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: xfce 4.7.0
Por albfneto
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Internacionalização dos programas em Python
Linux user
Publicado por João Carlos abreu Junior em 16/02/2011

Login: jcaj, 108234 pontos
[ Hits: 2197 ]

Internacionalização dos programas em Python

Esse pequeno exemplo foi escrito tomando como base o tutorial em [1] e a documentação oficial dos módulos gettext[2] e locale[3].

Para usar a internacionalização (i18n) em seus programas Python é preciso ter o módulos gettext e locale instalados.

Os módulos msgfmt e pygettext serão utilizados para a geração dos arquivos de tradução e se encontram no Subdiretório "Tools\i18n" da instalação do Python.

Para exemplo vamos escrever o "Hello Word!!!" para testar a internacionalização. A linha abaixo será salva no arquivo "hello.py".

print "Hello Word!!!"

Para internacionalizar seus programas em Python são necessários 4 passos básicos: alteração do seu programa para possuir strings candidatas a serem traduzidas, criar o arquivo de tradução em formato de texto, gerar o arquivo de tradução "compilado" e instalar a tradução no seu programa.

1) Alteração do seu programa para possuir strings candidatas a serem traduzidas

Altere a linha do arquivo "hello.py" para ficar como a linha abaixo:

print _("Hello Word!!!")

Se você executar o arquivo "hello.py" receberá um erro, pois o nome _ não está definido, posteriormente definiremos esse nome.

2) Criar o arquivo de tradução em formato de texto

Crie um arquivo de texto com qualquer nome, nesse exemplo vou denominar o arquivo como "translate.po", a extenão .po é necessária para que o módulo msgfmt reconheça esse arquivo. Coloque nesse arquivo as linhas abaixo:

msgid "Hello Word!!!"

msgstr "Alô Mundo!!!"

O msgid é a linha que será candidata a tradução, a linha msgstr será a tradução corresponde a string "Hello Word!!!".

3) Gerar o arquivo de tradução "compilado"

No diretório onde foi salvo o arquivo "translate.po" execute "msgfmt.py translate.po" e será gerado um arquivo denominado "translate.mo", que é um arquivo "compilado" correspondente ao "translate.po". O arquivo "translate.mo" deverá ser salvo no subdiretório "locale\pt_BR\LC_MESSAGES" dentro do diretório que se encontra o arquivo "hello.py".

4) Instalar a tradução no seu programa

Nesse passo é que usaremos o módulo gettext, que é o responsável por conseguir traduzir nossas strings. Altere o arquivo "hello.py" para ficar com as seguintes linhas:

import gettext

nameFileTraduction = 'translate' # nome do arquivo de tradução

namefolderLocationFileTraduction = 'locale' # localização inicial do arquivo de tradução, a localização completa é locale\pt_BR\LC_MESSAGES

language = gettext.translation(nameFileTraduction, namefolderLocationFileTraduction, languages=["pt_BR"])

language.install() # instalação da Linguagem requerida

_ = language.gettext # renomeando o gettext para _

print _("Hello World!!!") # O seu programa continua basicamento o mesmo

Agora execute seu programa e veja ele vai imprimir "Alô Mundo!!!".

O módulo pygettext é utilizado para gerar os arquivos de tradução em formato de texto, como no passo 2, o módulo pygettext percorre todo o módulo passado como parâmetro é gera a estrutura msgid e msgstr para todas as strings que estiverem no formato _("String a ser traduzida").

[1] http://softwarelivre.org/furusho/blog/python-internacionalizacao-no-windows
[2] http://docs.python.org/library/gettext
[3] http://docs.python.org/library/locale


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Livro: Python para desenvolvedores
   Dica Linux recomendada Ordenando dicionários em Python
   Dica Linux recomendada Hardware Project Simulator 0.2 com interface gráfica e correções
   Dica Linux recomendada Lançamento do Stoq versão 0.8.10
   Dica Linux recomendada Utilizando o comando scp

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.