dosya97
@dosya97
Fullstack web-developer

Как реализовать мультиязычный интерфейс с помощью Django?

Здрасьте, о великие Дяденьки. Нужна ваша помощь. Как реализовать мультиязычный интерфейс с помощью Django? Есть своя идейка но не раз на других языках сталкивался с тем что я снова изобретал колесо. Решил смерится. Только 5 дней изучаю Джанго. Вот если что идейка:
Есть какая та страница вьюшка но в отдельном приложении. Ну к примеру этих страниц много. Они все отдельные и независимые.
И для мультиязычия создал новое ПРИЛОЖЕНИЕ по имени Languages. Внутри создал новый 'language.py'
RU={
	'main_title':'Главная',
	'lang_panel_index':'Язык',
	'reg_panel_index':'Регистрация',
	'text_index':'Добро пожаловать в социальную сеть Dos',
	'login_index':'Вход',
	'about':'о проекте',
	'advert':'реклама',
	'dev':'разработчикам',
	'contacts':'контакты',
	'rools':'правила'
}
EN={
	'main_title':'Main',
	'lang_panel_index':'Language',
	'reg_panel_index':'Registration',
	'text_index':'Welcome to the Dos',
	'login_index':'Enter',
	'about':'about',
	'advert':'advert',
	'dev':'development',
	'contacts':'contacts',
	'rools':'rools'
}
KZ={
	'main_title':'Басты',
	'lang_panel_index':'Тілді тандау',
	'reg_panel_index':'Тіркелу',
	'text_index':'Dos интернет-бағдарламасына қош келдіңіздер',
	'login_index':'Кіру',
	'about':'жоба туралы',
	'advert':'жарнама',
	'dev':'дамытушыларға',
	'contacts':'байланыс',
	'rools':'ережелер'
}
class langpack(object):
	def lang(l):
		return {
			'ru' : RU,
			'en' : EN,
			'kz' : KZ
		}.get(l, "none")

Это как бы аналогия независимой функции))
Далее, Вот сама вьюшка которая просит это все:
from django.shortcuts import render_to_response
from languages.language import langpack
from django.contrib.sessions import *

default_lang='ru'
context=langpack.lang(default_lang)

def index(request):
	response = render_to_response('index/index.html', context)
	response.set_cookie('language',default_lang)
	return response
	# return render(request, 'index/index.html',context)

Как вы видите я хотел при первом входе точнее СЕССИИ запомнить язык интерфейса, и записать в куки JSON c переводом. А потом передавать этот CONTEXT(JSON) -> HTML(шаблон).
А знаете я только не смог сладить с сессиями и куками вернуть их и проверить записан ли. А так у меня Если вручную в коде поменять Deafult_lang то Сайт без проблем переводится.
NXw36FaONLA.jpg
yZa3zW3_65g.jpg
Что вы посоветуете?
P.S: Я закончил недавно школу, Так что не ругайте меня в извращении с Бакендом)))
  • Вопрос задан
  • 3842 просмотра
Решения вопроса 1
@deliro
Ну есть же встроенные иструменты для локализации. Документацию почитай. И поставь PyCharm, на сублиме тяжко с джангой работать.

P.S. Реклама на казахский переводится, как "жарнама".
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dzh21
тут все очень доходчиво:
www.marinamele.com/taskbuster-django-tutorial/inte...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы