No hay momento mas dulce en el desarrollo de un programa el ver que va tomando solidez y que puedas implantar detallitos interesantes en la generación de pdf, navegar por el programa que va a los sitios que tiene que ir, etc. Hoy vamos a hablar de una de estas otras cosas que señalan el avanzado estado de nuestro programa, la internacionalización, el disponer la página en varios idiomas. Vamos a contarlo!
Primero de todo recomiendo tener a mano la documentación de django y éste otro artículo de Alex Dzul al que le he copiado el título y la metedología.
Para resumir, lo que tendremos que hacer será configurar el settings.py, preparar y traducir la interfaz y finalmente generar los ficheros .po. En la documentación te habla primero de la generación de los ficheros de traducción y después desarrollar la traducción en la interfaz (templates), luego contaré porqué es mejor hacerlo al revés.
Así que empezamos
Primero modificaremos el fichero settings.py de nuestro proyecto
(venv) laura@melatonina:~/dev/colibri$ vi colibri/settings.py import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) [...] MIDDLEWARE_CLASSES = ( # ... 'django.middleware.locale.LocaleMiddleware', # ... ) [...] # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ # https://www.pythoniza.me/multiples-idiomas-en-django/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Europe/Madrid' USE_I18N = True USE_L10N = True USE_TZ = True from django.utils.translation import ugettext_lazy as _ LANGUAGES = ( ('en', _('English')), ('es', _('Spanish')), ('ca', _('Catalan')), ) # Definimos la ruta de los archivos de idiomas LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) # Definimos el procesador de contexto para i18n #from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS…