I am using django 2.1 , here is all the settings related to translation:
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', ] LANGUAGE_CODE = 'en' LANGUAGES = ( ('en', _('English')), ('bn', _('Bengali')) ) LOCALE_PATH = ( os.path.join(BASE_DIR, 'locale') ) TIME_ZONE = 'Asia/Dhaka' USE_I18N = True USE_L10N = True USE_TZ = False
Template tag that I want to translate:
{% load i18n %} <div class="widget widget-about"> <h4 class="widget-title">{% trans "About Us" %}</h4> </div
I run both ./manage.py makemessages --all
./manage.py compilemessages
commands , also added translation in .po file after makemessages
command:
# locale/bn/LC_MESSAGES/django.po #: templates/partials/footer.html:8 msgid "About Us" msgstr "আমাদের সম্পর্কে"
When I changed the language code from en
to bn
, template string still rendering the default english "About Us".
Here are all the codes that I am using for changing language:
<div class="header-dropdown"> {% get_current_language as LANGUAGE_CODE %} {% if LANGUAGE_CODE == 'en' %} <a href="#"><img src="{% static 'image/flag/en.png' %}" alt="flag">ENGLISH</a> {% else %} <a href="#"><img src="{% static 'image/flag/bn.png' %}" alt="flag">বাংলা</a> {% endif %} <div class="header-menu"> <ul> <li><a href="{% url 'change_language' %}?lan=en"><img src="{% static 'image/flag/en.png' %}" alt="USA Flag">ENGLISH</a></li> <li><a href="{% url 'change_language' %}?lan=bn"><img src="{% static 'image/flag/bn.png' %}" alt="Bangladesh Flag">বাংলা</a></li> </ul> </div><!-- End .header-menu -->
views.py :
def change_lan(request): allowed_lan = ('en', 'bn') get_lan = request.GET.get('lan', 'en') if get_lan in allowed_lan: translation.activate(get_lan) request.session[translation.LANGUAGE_SESSION_KEY] = get_lan return redirect(request.META.get('HTTP_REFERER', '/')) else: return redirect(request.META.get('HTTP_REFERER', '/'))
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/3ed3c00a-148e-4817-a470-bada1af10ba3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment