Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

349
Vistas
Django: translation in templates not working

Django 1.11

I can't make Django translate templates in my project. Messages were compiled and recompiled.

Could you give me a kick here?

settings.py

INSTALLED_APPS = [
...
    'frame',
...
]

LANGUAGE_CODE = 'ru-RU'
USE_I18N = True

frame/templates/frame/frame_form.html

{% extends 'general/cbv/general_form.html' %}
{% load i18n %}

{% block title %}
    <h1>{% trans "Create frame" %}</h1>
{% endblock %}

frame/locale/ru_RU/LC_MESSAGES/django.po

#: templates/frame/frame_form.html:5
msgid "Create frame"
msgstr "Создать сюжет"

tree

├── frame
...
│   ├── locale
│   │   └── ru_RU
│   │       └── LC_MESSAGES
│   │           ├── django.mo
│   │           └── django.po
...
│   ├── templates
│   │   └── frame
│   │       ├── frame_form.html
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Check for the following:

Settings.py

In your settings.py

1) Make sure Middleware classes is in the following order

MIDDLEWARE_CLASSES = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',

]

2) Set your language code default:

LANGUAGE_CODE = 'en-us'

USE_I18N = True

3) Put the language you want to translate to a list can be found here

from django.utils.translation import gettext_lazy as _

#Example for English and German
LANGUAGES =[ ('en', _('English')),
('de', _('German')),]

4) Set your Locale path folder (This is where your language translations will appear)

LOCALE_PATHS = (
    os.path.join(SITE_ROOT, 'locale'),
)

URL.py

Check you have this link in the main URL conf file url.py

urlpatterns = [
    path('', include('YOUR APP.urls')),
    path('admin/', admin.site.urls),
    path('i18n/', include('django.conf.urls.i18n')),  #Make sure this is present
]

HTML template

After you have this checked and your HTML template done with the {% load i18n %} before any of the {% trans "FOO" %} on your html page and some way to change the languages. You might also want something like this dropdown: Django change language in html to debug language changes

Creating and modifying .po files

1) Create django.po files in the locale directory that you specify in the settings.py (LOCALE_PATHS) using the following command in the command line to create the .po files for example english would be:

   python manage.py makemessages -l en   #en = english replace en for other languages

This creates a directory with YOUR_LANGUAGE/LC_MESSAGES/django.po

Note that some languages will not show up unless it is capitalized for some reason such as simplified chinese zh-Hans instead of zh-hans not really sure why.

2) Go into the django.po of the language you want to change and change the msgstr ""

msgid "Create frame"
msgstr "Создать сюжет" #This area had translated string added

3) Compile the messages and restart the server in the commandline

# Compile messages 
django-admin compilemessages #this creates a django.mo file in LC_MESSAGES folder

#Run server
python manage.py runserver

The text should change when you switch languages using the dropdown menu or whatever way you chose.

4) If you add new translation tags you have to remake the messages and recompile them in the commandline and then runserver

#Make messages for all your languages
django-admin makemessages -a

# Compile messages
django-admin compilemessages
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda