Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

346
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda