Implementación de idiomas adicionales en el sitio web de Django

El uso de Candy Translate es la forma más fácil de proporcionar más idiomas en el sitio web de Django. Simplemente siga estos 8 pasos simples y la localización estará lista en pocos momentos.


Recomendamos comenzar con:
Video de instrucciones con ejemplo: YouTube
Código fuente de implementación de ejemplo: GitHub

1. Descargue la plantilla de traducciones con tantos idiomas como desee usar para su sitio web

Simplemente vaya a CandyTranslate.com y abra "Obtener plantilla". Marque los idiomas que desea usar en su sitio web y haga clic en Descargar

2. Complete la plantilla con el contenido de texto de su sitio web

Cada texto que está utilizando en su sitio web y desea haber traducido poner en fila separada de su plantilla de Excel (columna C). Para cada fila, agregue el nombre de la página donde se usa el texto y cualquier nombre único de este campo (columnas A y B). Envíe el archivo a los traductores para llenar las columnas restantes

3. Genere el archivo CANDY que mantendrá toda la información sobre el contenido de su sitio web

Vaya al CandyTranslate.com y abra la pestaña "Generar Traducción". Proporcione su archivo template.xls relleno y recibirá Candy.py. Coloque este archivo en su carpeta Django Project y agregue esta línea de código en la parte superior de los archivos urls.py y views.py:
views.py :
from . import candy
urls.py :
from translate_app import candy

4. Cree URL a todas sus páginas traducidas

En el archivo urls.py cambia "path" a "*candy.path" como en el ejemplo a continuación. Cambíe por todas las páginas que se localizarán
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. Haga su código para generar páginas traducidas

En el archivo, las vistas de los archivos. Cambie "render" a "candy.render" como en el ejemplo a continuación. Cambíe en todas las funciones que deben generar contenido traducido
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)
Ahora necesita cambiar todos los textos en todas las páginas traducidas a variables con los nombres correspondientes a las columnas A y B unidas con "_". Cierre el nombre en soportes dobles rizados. Entonces, si en el archivo de Excel tenía para su texto "home" en la columna A y "title" en la columna B, reemplace este texto con {{home_title}}. Verifique el ejemplo:
<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>
Después de este paso, debería poder volver a usar su sitio web en su idioma principal. También puede abrir manualmente las páginas traducidas agregando idioma al final del enlace. Por ejemplo, para abrir la página de español (es) solo agregue "/es" como esa: www.mypage.com/es

6. Haga todos sus enlaces para abrir la versión de idioma correcta

Simplemente encuentre todos sus enlaces { % URL ... %} y elimine la cita para los nombres de enlace y agregue "CandyLink". Ejemplo:
{% url "home" %} {% url "contact" %}
{% url candyLink.home %} {% url candyLink.contact %}
¡Ahora todos sus enlaces deben abrir la versión de idioma correcta de la página vinculada!

7. Agregue la opción para que los usuarios cambien entre idiomas disponibles

Con Candy Translate Esta es solo 1 línea de código. Simplemente agregue esta línea (generalmente en el <header>)
{{languageMenu|safe}}

8. Haga que sus páginas traducidas sean visibles y amigables con motores de búsqueda como Google

Tener tu sitio web optimizado para SEO es muy importante. Necesitamos cambiar el idioma de sus páginas y agregar enlaces entre diferentes idiomas. Podemos lograr esto introduciendo un pequeño cambio de código y agregando 1 línea de código (en <head>). Vea abajo:
<html lang="en"> <head>
<html lang="{{lang}}"> <head> {{languageReferences|safe}}
Si desea que Candy Translate también pueda generar el archivo sitemap.xml con ... 1 línea de código! Simplemente agregue esta línea a sus urlpatterns
urlpatterns = [ path('admin/', admin.site.urls), *candy.path('', views.home, name = 'home'), *candy.path('contact', views.contact, name='contact'), *candy.sitemap() ]

RESUMEN:

¡Eso es todo! Todo el proceso de implementación de estos cambios puede llevar solo unos minutos.
Para cualquier cambio adicional en textos o traducciones o incluso agregando más idiomas, el desarrollo no será necesario. Simplemente haga cambios en el archivo de Excel y genere su nuevo candy.py


Comandos adicionales que pueden ser útiles

1. Usando sus traducciones fuera de las plantillas

También puede usar fácilmente sus textos traducidos dentro de sus funciones de vista.
Ejemplo de uso de la función translated(request, translationVariable):
def index(request): context={ "home_title2": candy.translated(request, "home_title") + "!!!" } return candy.render(request, 'index.html', context)

2. redirect a la versión del idioma correcto

Puede usar candy.redirect para abrir siempre una versión correcta de su página
def index(request): if request.user.is_superuser: redirect("adminPanel")
def index(request): if request.user.is_superuser: candy.redirect(request, "adminPanel")