- "description": " \r\n\r\n\r\n\r\n**1. Add the base_site file inside `templates/admin/base_site.html`.**\r\n\r\n```html\r\n{% extends \"admin/base.html\" %}\r\n{% load static i18n %}\r\n\r\n{% block title %}{{ title }} | {{ site_title|default:_('Situs django admin') }}{% endblock %}\r\n\r\n{% block branding %}\r\n<h1 id=\"site-name\"><a href=\"{% url 'admin:index' %}\">{{ site_header|default:_('Administrasi django') }}</a></h1>\r\n{% endblock %}\r\n\r\n{% block nav-global %}{% endblock %}\r\n\r\n{% block welcome-msg %}\r\n\r\n {# CUSTOM LANGUAGE ICONS #}\r\n {% get_current_language as LANGUAGE_CODE %}\r\n {% get_available_languages as LANGUAGES %}\r\n {% get_language_info_list for LANGUAGES as languages %}\r\n <span id=\"language-icons\" style=\"margin: -1px 0 0 -65px; position: absolute;\">\r\n {% for language in languages %}\r\n {% if language.code == 'id' %}\r\n <a href=\"?lang=id\" style=\"margin-right: 3px;border-bottom:none\" title=\"Indonesia\">\r\n <img height=\"15px\" src=\"{% static 'icons/flags/id.svg' %}\">\r\n </a>\r\n {% elif language.code == 'en' %}\r\n <a href=\"?lang=en\" style=\"margin-right: 3px;border-bottom:none\" title=\"English\">\r\n <img height=\"15px\" src=\"{% static 'icons/flags/us.svg' %}\">\r\n </a>\r\n {% endif %}\r\n {% endfor %}\r\n </span>\r\n\r\n {# DFEAULT WELCOME MESSAGE GOES HERE #}\r\n {{ block.super }}\r\n\r\n{% endblock %}\r\n```\r\n\r\n\r\n**2. Custom language middleware, in your file `middleware.py`**\r\n\r\n```\r\nfrom django.conf import settings\r\nfrom django.utils import translation\r\nfrom django.utils.deprecation import MiddlewareMixin\r\nfrom django.utils.translation import gettext_lazy as _\r\n\r\n\r\nclass LanguageMiddleware(MiddlewareMixin):\r\n\r\n def process_request(self, request):\r\n \"\"\"\r\n function to activate the translation\r\n \"\"\"\r\n if 'lang' in request.GET:\r\n language = request.GET.get('lang', 'id')\r\n if language in dict(settings.LANGUAGES).keys():\r\n request.session['_language'] = language\r\n\r\n language = request.session.get('_language', 'id')\r\n translation.activate(language)\r\n```\r\n\r\n\r\n**3. And then in your `settings.py`**\r\n\r\n```\r\nTEMPLATES = [\r\n {\r\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\r\n 'DIRS': [os.path.join(BASE_DIR, 'templates')],\r\n 'APP_DIRS': True,\r\n 'OPTIONS': {\r\n 'context_processors': [\r\n 'django.template.context_processors.debug',\r\n 'django.template.context_processors.request',\r\n 'django.contrib.auth.context_processors.auth',\r\n 'django.contrib.messages.context_processors.messages',\r\n ],\r\n },\r\n },\r\n]\r\n\r\n\r\nMIDDLEWARE = [\r\n 'django.middleware.security.SecurityMiddleware',\r\n 'django.contrib.sessions.middleware.SessionMiddleware',\r\n 'django.middleware.common.CommonMiddleware',\r\n 'django.middleware.csrf.CsrfViewMiddleware',\r\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\r\n 'django.contrib.messages.middleware.MessageMiddleware',\r\n 'django.middleware.clickjacking.XFrameOptionsMiddleware',\r\n 'django.middleware.locale.LocaleMiddleware',\r\n\r\n # custom middleware\r\n 'yourproject.middleware.LanguageMiddleware',\r\n]\r\n\r\n\r\n# Internationalization\r\n# https://docs.djangoproject.com/en/3.0/topics/i18n/\r\nLANGUAGES = (\r\n ('id', 'Indonesia'),\r\n ('en', 'English')\r\n)\r\nLOCALE_PATHS = (\r\n os.path.join(BASE_DIR, 'locale'),\r\n)\r\nDEFAULT_LANGUAGE = 1\r\nLANGUAGE_CODE = 'id'\r\nUSE_I18N = True\r\nUSE_L10N = True\r\n```",
0 commit comments