Skip to content

desireetorrente/learning_django_rosseta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning Django-rosetta

Este es un repositorio para aprende sobre Django.rosetta y probarla como posible aplicación en un proyecto de Django 3.1

Traducción Django

https://docs.djangoproject.com/en/3.1/topics/i18n/translation/

Django traduce las string que le indicas en el código y crea unos archivos de texto plano (.po) con las cadenas a traducir donde, los traductores pueden escribir cadenas traducidas. Una vez estos archivos están rellenos con las traducciones, tienen que ser compilados.

Traducción estandar

Para decir que string queremos traducir hay que usar la función get_text().

from django.http import HttpResponse

from django.utils.translation import gettext as _

def traducciones_list(request):
    output = _('Bienvenido a las traducciones')

    return HttpResponse(output)

Traducción Lazy

Es importante saber cuando usar el modo lazy y el "normal". En este caso usamos la función gettext_lazy(). El modo lazy lo que nos proporciona es que se traduce la string cuando y solo cuando es usada como por ejemplo en una template y sin embargo, el modo "normal" se ejecuta cuando es llamada la función, da igual si se usa o no la string.

Info: https://docs.djangoproject.com/en/3.1/topics/i18n/translation/#lazy-translations

Crear los archivos de traducción

1. Crear el path donde van a ir los archivos de traducción: - Crear una carpeta locale para guardar los archivos .po - Configurar en setting.py este path, por ejemplo:

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
LOCALE_PATHS = [str(BASE_DIR / "locale")]

2. Crear los messages files:

de => especificación del idioma.

django-admin makemessages -l de

3. Explicaicón rápida del archivo .po * msgid: es la string a traducir que está puesta en el código. NO cambiar * msgstr: espacio reservado para poner la traducción.

4. Compilar los archivos .po django-admin compilemessages Esto convierte los archivos .po en .mo y la traducción está lista para usarse.

Traducción Django-rosetta

https://github.com/mbi/django-rosetta

1. Instalar roseta pip install django-rosetta

2. Añadir rosetta a las aplicaciones instaladas de Django En el archivo settings.py, en INSTALLED_APPS = ['rosetta']

3. Añadir una URL para rosetta

if 'rosetta' in settings.INSTALLED_APPS:
 urlpatterns += [
     url(r'^rosetta/', include('rosetta.urls'))
 ]

4. Navegar hasta la URL añadida en el paso anterior

En este panel encontramos las traducciones disponibles de una manera mucho más ágil que con la traducción de Django.

  • Dashboard de las traducciónes:

    images/dashboard_rosetta.png
  • Detalle de la pantalla de traducciones:

    images/detalle_rosetta.png

Note

Este proyecto tiene el layout por defecto de Django pero no es el deseable. Además se ha creado el folder docs con Sphinx.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published