Django - Adicionando traduções as suas app's
Posted on Sat 12 January 2013 in Python
Para criar as traduções para as aplicações basta:
Acessar o diretorio da app:
$ cd <app>
Criar um diretório "/locale":
$ mkdir locale
Rodar o comando que lista as strings a serem traduzidas, repare que o nome do locale é "pt_BR".
Obs: o locale deve seguir a mesma convenção dos locales utilizados na tradução do Django...nada de "pt-br" ou "pt-BR".
$ django-admin.py makemessages -a -l pt_BR
Editar o arquivo .po gerado nesse diretório com as strings traduzidas e o header conforme o exemplo abaixo:
# This file is distributed under WTFPL license.
#
# Translators:
# RPB , 2013.
msgid ""
msgstr ""
"Project-Id-Version: Bibliography\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-12 18:11-0200\n"
"PO-Revision-Date: 2013-01-12 18:11-0200\n"
"Last-Translator: RPB \n"
"Language-Team: Portuguese (Brazil) \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
Uma vez finalizado é necessário compilar as traduções
$ django-admin.py compilemessages
Dessa forma, com o diretório locale na raiz da app o Django registra as traduções automaticamente. As traduções podem ser inseridas em qualquer parte de sua aplicação, mas nesse caso precisam ser registradas no settings.py via LOCALE_PATHS.