Last active
February 11, 2022 14:05
-
-
Save serdardurbaris/6f53a745364d1211bc1ac4acb0b018e3 to your computer and use it in GitHub Desktop.
Django Çoklu Dil
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
---------------------------- | |
setting.py dosyasındaki ayarları yaptıktan sonra locale klasörü oluşturmak için | |
pycharm > Tools > Run manage.py task çalıştırılır. | |
manage.py konsoluna sırasıyla aşağıdaki komutlar yazılır. | |
makemessages -l tr | |
makemessages -l en | |
tek seferde tüm dilleri oluşturmak için aşağıdaki komutu kullanın | |
makemessages --locale=af --locale=ar --locale=ast --locale=az --locale=bg --locale=be --locale=bn --locale=br --locale=bs | |
--locale=ca --locale=cs --locale=cy --locale=da --locale=de --locale=dsb --locale=el --locale=en --locale=en-au | |
--locale=en-gb --locale=eo --locale=es --locale=es-ar --locale=es-co --locale=es-mx --locale=es-ni --locale=es-ve | |
--locale=et --locale=eu --locale=fa --locale=fi --locale=fr --locale=fy --locale=ga --locale=gd --locale=gl | |
--locale=he --locale=hi --locale=hr --locale=hsb --locale=hu --locale=ia --locale=id --locale=io --locale=is | |
--locale=it --locale=ja --locale=ka --locale=kab --locale=kk --locale=km --locale=kn --locale=ko --locale=lb | |
--locale=lt --locale=lv --locale=mk --locale=ml --locale=mn --locale=mr --locale=my --locale=nb --locale=ne --locale=nl | |
--locale=nn --locale=os --locale=pa --locale=pl --locale=pt --locale=pt-br --locale=ro --locale=ru --locale=sk | |
--locale=sl --locale=sq --locale=sr --locale=sr-latn --locale=sv --locale=sw --locale=ta --locale=te --locale=th | |
--locale=tr --locale=tt --locale=udm --locale=uk --locale=ur --locale=vi --locale=zh-hans --locale=zh-hant | |
--ignore=venv/* | |
PO dosyaları içerisinde parametreler aşağıdaki şekilde tanımalanacak | |
msgid "home" | |
msgstr "Anasayfa" | |
manage.py konsoluna aşağıdaki komut yazılır. | |
compilemessages | |
yukarıdaki komut yazıldıktan sonra .mo uzantılı dosyalar otomatik olarak oluşur | |
HTML DOSYASINDA KULLANIMI | |
{% load i18n %} | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Test</title> | |
</head> | |
<body> | |
<h1>{% trans "home" %}</h1> | |
</body> | |
</html> | |
""" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import os.path | |
import sys | |
from django.utils.translation import ugettext_lazy as _ | |
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),) | |
# Application definition | |
MIDDLEWARE = [ | |
'django.middleware.security.SecurityMiddleware', | |
'django.contrib.sessions.middleware.SessionMiddleware', | |
'django.middleware.locale.LocaleMiddleware', # Çoklu dil desteğinisağlayan middleware | |
'django.middleware.common.CommonMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware', | |
'django.contrib.auth.middleware.AuthenticationMiddleware', | |
'django.contrib.messages.middleware.MessageMiddleware', | |
'django.middleware.clickjacking.XFrameOptionsMiddleware', | |
] | |
# Internationalization | |
# https://docs.djangoproject.com/en/2.0/topics/i18n/ | |
LANGUAGE_CODE = 'tr' | |
LANGUAGES = [ | |
('af', _('Afrikaans')), | |
('ar', _('Arabic')), | |
('ast', _('Asturian')), | |
('az', _('Azerbaijani')), | |
('bg', _('Bulgarian')), | |
('be', _('Belarusian')), | |
('bn', _('Bengali')), | |
('br', _('Breton')), | |
('bs', _('Bosnian')), | |
('ca', _('Catalan')), | |
('cs', _('Czech')), | |
('cy', _('Welsh')), | |
('da', _('Danish')), | |
('de', _('German')), | |
('dsb', _('Lower Sorbian')), | |
('el', _('Greek')), | |
('en', _('English')), | |
('en-au', _('Australian English')), | |
('en-gb', _('British English')), | |
('eo', _('Esperanto')), | |
('es', _('Spanish')), | |
('es-ar', _('Argentinian Spanish')), | |
('es-co', _('Colombian Spanish')), | |
('es-mx', _('Mexican Spanish')), | |
('es-ni', _('Nicaraguan Spanish')), | |
('es-ve', _('Venezuelan Spanish')), | |
('et', _('Estonian')), | |
('eu', _('Basque')), | |
('fa', _('Persian')), | |
('fi', _('Finnish')), | |
('fr', _('French')), | |
('fy', _('Frisian')), | |
('ga', _('Irish')), | |
('gd', _('Scottish Gaelic')), | |
('gl', _('Galician')), | |
('he', _('Hebrew')), | |
('hi', _('Hindi')), | |
('hr', _('Croatian')), | |
('hsb', _('Upper Sorbian')), | |
('hu', _('Hungarian')), | |
('ia', _('Interlingua')), | |
('id', _('Indonesian')), | |
('io', _('Ido')), | |
('is', _('Icelandic')), | |
('it', _('Italian')), | |
('ja', _('Japanese')), | |
('ka', _('Georgian')), | |
('kab', _('Kabyle')), | |
('kk', _('Kazakh')), | |
('km', _('Khmer')), | |
('kn', _('Kannada')), | |
('ko', _('Korean')), | |
('lb', _('Luxembourgish')), | |
('lt', _('Lithuanian')), | |
('lv', _('Latvian')), | |
('mk', _('Macedonian')), | |
('ml', _('Malayalam')), | |
('mn', _('Mongolian')), | |
('mr', _('Marathi')), | |
('my', _('Burmese')), | |
('nb', _('Norwegian Bokmål')), | |
('ne', _('Nepali')), | |
('nl', _('Dutch')), | |
('nn', _('Norwegian Nynorsk')), | |
('os', _('Ossetic')), | |
('pa', _('Punjabi')), | |
('pl', _('Polish')), | |
('pt', _('Portuguese')), | |
('pt-br', _('Brazilian Portuguese')), | |
('ro', _('Romanian')), | |
('ru', _('Russian')), | |
('sk', _('Slovak')), | |
('sl', _('Slovenian')), | |
('sq', _('Albanian')), | |
('sr', _('Serbian')), | |
('sr-latn', _('Serbian Latin')), | |
('sv', _('Swedish')), | |
('sw', _('Swahili')), | |
('ta', _('Tamil')), | |
('te', _('Telugu')), | |
('th', _('Thai')), | |
('tr', _('Turkish')), | |
('tt', _('Tatar')), | |
('udm', _('Udmurt')), | |
('uk', _('Ukrainian')), | |
('ur', _('Urdu')), | |
('vi', _('Vietnamese')), | |
('zh-hans', _('Simplified Chinese')), | |
('zh-hant', _('Traditional Chinese')), | |
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.urls import path | |
from . import views | |
urlpatterns = [ | |
path('', views.index, name='home_index'), | |
] | |
# startup projenin url dosyası |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.shortcuts import render | |
from django.utils.translation import ugettext as _ | |
from django.http import HttpResponse, HttpResponseRedirect | |
from django.utils import translation | |
from django.urls import reverse | |
def index(request): | |
response = render(request, 'index.html', { | |
'anasayfa': _("home"), | |
}) | |
return response | |
def redirect(request): | |
activate(translation.get_language()) | |
if request.user.id: | |
return HttpResponseRedirect(reverse('home_index')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Eğer makemessages komutunda aşağıdaki şekilde hata alırsanız venv i ignore ederek çalıştırın
xgettext: .\venv\Lib\site-packages\pip-9.0.1-py3.6.egg\pip_vendor\webencodings_init_.py:1: Unknown encoding "utf8". Proceeding with ASCII instead.
xgettext: Non-ASCII string at .\venv\Lib\site-packages\pip-9.0.1-py3.6.egg\pip_vendor\webencodings_init_.py:64.
Kullanılacak komut
python manage.py makemessages --locale=en --ignore=venv/*