Implementando idiomas adicionais no site do Django

Usar o Candy Translate é a maneira mais fácil de fornecer mais idiomas no site do Django. Basta seguir estas 8 etapas simples e localização estarão prontas em alguns momentos


Recomendamos começar com:
Vídeo de instrução com exemplo: YouTube
Código fonte de exemplo implementação: GitHub

1. Faça o download do modelo de traduções com tantos idiomas quanto você deseja usar para o seu site

Basta acessar o Candytranslate.com e abra “Obtenha modelo”. Marque os idiomas que deseja usar no seu site e clique em Download

2. Preencha o modelo com o conteúdo de texto do seu site

Todo texto que você está usando no seu site e deseja ter traduzido em linha separada do seu modelo do Excel (coluna C). Para cada linha, adicione o nome da página em que o texto é usado e qualquer nome exclusivo deste campo (colunas A e B). Envie o arquivo para os tradutores para preencher as colunas restantes

3. Gere o arquivo CANDY que manterá todas as informações sobre o conteúdo do seu site

Vá para o CandyTranslate.com e abra a "Gerar Tradução". Forneça seu arquivo preenchido template.xls e você receberá candy.py. Coloque este arquivo na pasta do projeto Django e adicione esta linha de código na parte superior dos arquivos urls.py e views.py:
views.py :
from . import candy
urls.py :
from translate_app import candy

4. Crie URLs para todas as suas páginas traduzidas

No arquivo urls.py, altere o “path” para “*candy.path”, como no exemplo abaixo. Altere para todas as páginas que serão localizadas
urlpatterns = [ path('admin/', admin.site.urls), path('', views.home, name = 'home'), path('contact', views.contact, name='contact') ]
urlpatterns = [ path('admin/', admin.site.urls), *candy.path('', views.home, name = 'home'), *candy.path('contact', views.contact, name='contact') ]

5. Faça seu código para gerar páginas traduzidas

Nas visualizações do arquivo.py, altere "render" para "candy.render", como no exemplo abaixo. Altere -o em todas as funções que devem gerar conteúdo traduzido
def home(request): context={ } return render(request, 'home.html', context) def contact(request): context={ } return render(request, 'contact.html', context)
def home(request): context={ } return candy.render(request, 'home.html', context) def contact(request): context={ } return candy.render(request, 'contact.html', context)
Agora você precisa alterar todos os textos em todas as páginas traduzidas para variáveis com os nomes correspondentes às colunas A e B unidos com "_". Feche o nome entre colchetes duplos. Portanto, se no arquivo do Excel, você teve para o seu texto "home" na coluna A e "title" na coluna B, substitua este texto por {{home_title}}. Verifique o exemplo:
<h1>This is Title of my home page</h1> <p>This is paragraph of text on my home page to welcome users</h1>
<h1>{{home_title}}</h1> <p>{{home_welcome}}</p>
Após esta etapa, você poderá usar novamente seu site em seu idioma principal. Você também pode abrir as páginas traduzidas manualmente adicionando linguagem ao final do link. Por exemplo, para abrir a página de espanhol (es), basta adicionar "/es" como esse: www.mypage.com/es

6. Faça todos os seus links para abrir a versão correta do idioma

Basta encontrar todos os seus links { % url… %} e remover a cotação para os nomes do link e adicionar "CandyLink". Exemplo:
{% url "home" %} {% url "contact" %}
{% url candyLink.home %} {% url candyLink.contact %}
Agora, todos os seus links devem abrir a versão correta da página do Linked!

7. Adicione a opção para os usuários alternarem entre os idiomas disponíveis

Com Candy Translate, isso é apenas uma linha de código. Basta adicionar esta linha (geralmente no <header>)
{{languageMenu|safe}}

8. Torne suas páginas traduzidas visíveis e amigáveis para mecanismos de pesquisa como o Google

Ter seu site otimizado para SEO é muito importante. Precisamos alterar o idioma de suas páginas e adicionar links entre diferentes idiomas. Podemos conseguir isso introduzindo uma pequena alteração de código e adicionando 1 linha de código (em <head>). Veja abaixo:
<html lang="en"> <head>
<html lang="{{lang}}"> <head> {{languageReferences|safe}}
Se você deseja que o Candy tradue também pode gerar o arquivo sitemap.xml para você com… 1 linha de código! Basta adicionar esta linha aos seus urlpatterns
urlpatterns = [ path('admin/', admin.site.urls), *candy.path('', views.home, name = 'home'), *candy.path('contact', views.contact, name='contact'), *candy.sitemap() ]

RESUMO:

É isso! Todo o processo de implementação dessas alterações pode levar apenas alguns minutos.
Para quaisquer mudanças adicionais em textos ou traduções ou até mesmo adicionando mais idiomas, o desenvolvimento não será necessário. Basta fazer alterações no arquivo do Excel e gerar seu novo candy.py


Comandos adicionais que podem ser úteis

1. Usando suas traduções fora dos modelos

Você também pode usar facilmente seus textos traduzidos em suas funções de visualização.
Exemplo de uso da função translated(request, translationVariable):
def index(request): context={ "home_title2": candy.translated(request, "home_title") + "!!!" } return candy.render(request, 'index.html', context)

2. redirect para a versão de linguagem correta

Você pode usar candy.redirect para sempre abrir uma versão correta da sua página
def index(request): if request.user.is_superuser: redirect("adminPanel")
def index(request): if request.user.is_superuser: candy.redirect(request, "adminPanel")