Я изучаю способы Django по интернационализации и локализации.Для этого я следую этому руководству:
http://www.marinamele.com/taskbuster-django-tutorial/internationalization-localization-languages-time-zones
Проблема, с которой я столкнулся, заключается в том, что тест, предлагаемый в учебнике, не работает.Кроме того, я не понимаю, как это могло сработать.
Вот соответствующий бит шаблона
<div class="row">
<div class="col-md-4">
<h2 id="local-date">{{today}}</h2>
<p>This is the time using your local information. </p>
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
</div>
<div class="col-md-4">
<h2 id="non-local-date">{{today|unlocalize}}</h2>
<p>This is the default time format. </p>
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
</div>
Вид выглядит следующим образом
from django.shortcuts import render
import datetime
def home(request):
today = datetime.date.today()
return render(request, "taskbuster/index.html", {'today': today})
Тест ниже
def test_localization(self):
today = date.today()
for lang in ['en', 'ca']:
activate(lang)
self.browser.get(self.get_full_url("home"))
local_date = self.browser.find_element_by_id("local-date")
non_local_date = self.browser.find_element_by_id("non-local-date")
self.assertEqual(formats.date_format(today, use_l10n=True),
local_date.text)
self.assertEqual(today.strftime('%Y-%m-%d'), non_local_date.text)
ОшибкаЯ вижу, это
self.assertEqual(today.strftime('%B %d, %Y'), non_local_date.text)
AssertionError: 'June 22, 2019' != 'jun. 22, 2019'
- June 22, 2019
? ^ ^
+ jun. 22, 2019
?^ ^
Как вы можете видеть, каталонская версия отличается от версии по умолчанию.Я что-то упускаю здесь очевидное?Что-то изменилось с тем, как эти биты работают в Django, что создает этот сбой?Автор учебного пособия утверждает, что этот тест должен пройти этот этап учебного пособия.
PS Если добавить другие, более интересные языки, для которых существует более логичный формат day-> month-> year для отображениядаты, он может также наблюдать эту неудачу.Рассмотрим случай ru
:
AssertionError: '22 June, 2019' != 'Июнь 22, 2019'
- 22 June, 2019
+ Июнь 22, 2019