Autor: saviodiow
Vizualizações: 356
Data de publicação: 30 de Dezembro de 2023 às 22:33
Configurando a Internacionalização no Seu Projeto Django
Se você deseja traduzir páginas de um projeto Django do inglês para o português, o Django oferece suporte à internacionalização (i18n) e localização (l10n). Abaixo está um guia passo a passo para configurar a internacionalização no seu projeto:
1. Configuração Inicial
Certifique-se de que as configurações de internacionalização estejam corretamente definidas no arquivo settings.py
. As seguintes configurações devem ser adicionadas ou verificadas:
# settings.py
INSTALLED_APPS = [
# ...
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.flatpages',
'django.contrib.humanize',
'django.contrib.admindocs',
# ...
]
MIDDLEWARE = [
# ...
'django.middleware.locale.LocaleMiddleware',
# ...
]
LANGUAGES = [
('en', 'English'),
('pt', 'Portuguese'),
]
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
]
USE_I18N = True
USE_L10N = True
USE_TZ = True
2. Inclua os Imports Necessários
No seu arquivo models.py
, inclua os imports necessários para suportar a internacionalização:
from django.db import models
from django.utils.translation import gettext_lazy as _
3. Use gettext_lazy
para Nomes Descritivos
Ao definir seus modelos, utilize gettext_lazy
para envolver os "verbose names" (nomes descritivos) dos campos. Isso permite que o Django identifique essas strings para tradução.
class MyModel(models.Model):
name = models.CharField(max_length=255, verbose_name=_("Name"))
description = models.TextField(verbose_name=_("Description"))
4. Crie o Diretório de Locale
Crie um diretório chamado locale
na pasta raiz do seu projeto. Este será o local onde as traduções serão armazenadas:
mkdir locale
5. Extração de Mensagens
Execute o seguinte comando para extrair as mensagens de texto do código-fonte e criar os arquivos de tradução:
python manage.py makemessages -l pt
Este comando criará o diretório locale/pt/LC_MESSAGES/
e um arquivo django.po
dentro dele.
6. Edite os Arquivos de Tradução
Abra o arquivo django.po
que foi criado no diretório locale/pt/LC_MESSAGES/
usando um editor de texto ou uma ferramenta de tradução. O conteúdo será semelhante a este:
#: path/to/your/template.html:10
msgid "Hello, world!"
msgstr ""
Adicione a tradução na linha msgstr
para a string correspondente:
#: path/to/your/template.html:10
msgid "Hello, world!"
msgstr "Olá, mundo!"
7. Compile as Traduções
Após editar os arquivos de tradução, compile as traduções com o seguinte comando:
python manage.py compilemessages
8. Tradução no Template
Nos seus templates, utilize a tag {% trans %}
para marcar o texto que será traduzido:
{% load i18n %}
<p>{% trans "Hello, world!" %}</p>
Conclusão
Agora seu projeto Django está configurado para suportar múltiplos idiomas. Sempre que precisar adicionar novas traduções, lembre-se de executar o comando makemessages
e atualizar o arquivo django.po
. Não se esqueça de compilar as traduções antes de testá-las em produção.