Django – Traduzindo sua aplicação


Passos para adicionar tradução em seu projeto django:

0. Primeiro altere/crie seus templates com o textos traduzíveis sendo chamados via “trans” template tag
Ex.

<h1>{% trans "Cabeçalho da Página" %}</h1>

1. settings.py
1.1 Configurar “USE_I18N = True”
1.2 Configurar “LANGUAGE_CODE = ‘pt-br’”
1.3 Adicionar:
LANGUAGES = (
(‘pt’, unicode(‘Portugues’)),
(‘en’, unicode(‘English’)),
)
2. Criar pasta “locale” dentro da sua app
3. Arquivos de mensagens
3.1 Criar Traduções ( arquivos .po )

cd exemplo/app
django-admin.py makemessages -l en
django-admin.py makemessages -l pt
#ou troque os dois comandos acima por
#django-admin.py makemessages -a

3.2 Traduza as string necessárias dentro dos arquivos .po, colocando a tradução de cada item “msgid” em seu respectivo “msgstr”.
3.3 Depois de tudo traduzido, compile tudo:

cd exemplo/app
django-admin.py compilemessages

Se correu tudo bem, quando você for acessar o site vai ver ele em uma linguagem, e depois se trocar na variavel LANGUAGE_CODE, vai ver ele em outra lingua.

Agora, se você quer possibilitar a troca dinâmica de linguagem, pelo usuário, você tem que colocar algumas coisinhas a mais:
1. Adicionar ‘django.middleware.locale.LocaleMiddleware’ em MIDDLEWARE_CLASSES
2. Adicionar em urls.py a linha abaixo
(r’^i18n/’, include(‘django.conf.urls.i18n’)),
3. Adicionar a variavel “LANGUAGES” no retorno da view para o template. +- assim

def index(request):
    '''....'''
    return render_to_response('index.html',{'LANGUAGES':settings.LANGUAGES})

4. Criar um formulario parecido com este:

<form action="/i18n/setlang/" method="post">
	<input name="next" type="hidden" value="/" />
	<select name="language">
	{% for lang in LANGUAGES %}
		<option value="{{ lang.0 }}">{{ lang.1 }}</option>
	{% endfor %}
	</select>
	<input type="submit" value="Go" />
</form>

Bom, estou anexando um zip com o projetinho de teste que fiz, e acabei por citar alguns trechos aqui, para que vocês possam verificar com seus próprios dedos no teclado. hehehehe
Se alguem tiver alguma dica para este assunto, por favor, não deixe de comentar !

http://www.berlotto.blog.br/djangotraducao.zip

About these ads

Uma ideia sobre “Django – Traduzindo sua aplicação

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s