katlog.orgжурнал разработки Демо-каталогДемо
ОШ001
Разбор ошибки2 мин чтения

Каталог, который забыл два языка

В задании стояли три языка интерфейса: немецкий, английский, русский. Первая версия, которую написал агент, открылась только на русском. Как это случилось и что мы поняли о многоязычном каталоге.

Прототип каталога с самого начала работал на трёх языках: переключатель RU / DE / EN в шапке, переведены все надписи, даже названия языков изданий. В задании для ИИ-агента это было записано прямо: интерфейс каталога и кабинета читателя — на русском, немецком и английском.

Что получилось

Первая собранная версия открылась на русском. Переключателя не было, немецкого и английского тоже. Для библиотеки в Тюбингене это означало, что большинство возможных читателей просто не смогли бы пользоваться каталогом.

Агент не отказался от требования и не спорил с ним. Он его просто не выполнил: большое задание упростилось, и деталь, которая казалась второстепенной, выпала.

Как мы описали многоязычность во второй раз

  • Язык при первом открытии определяется по браузеру. Если язык браузера не поддерживается — открывается язык по умолчанию, который задаёт библиотекарь (изначально немецкий).
  • Выбор читателя запоминается, а у вошедшего читателя сохраняется в профиле и работает на любом устройстве.
  • Тексты библиотеки — название, правила выдачи, часы работы — вводятся отдельно для каждого языка. Нет перевода — показывается язык по умолчанию.
  • Все надписи — через словари, ни одной фразы прямо в разметке. Кабинет библиотекаря сначала был только на русском, но тоже строился на словарях — и позже получил немецкий и английский без переделки.
  • Даты и числа форматируются по выбранному языку.
Katlog на немецком: переключатель RU / DE / EN в шапке, поиск «Vögel», фильтры и результаты
Каталог на немецком — языке по умолчанию.

Ошибка второго уровня

Когда языки появились, всплыла тонкость. Названия языков изданий были сделаны для двухбуквенных кодов: en, de, fr. А в каталоге коды трёхбуквенные, по стандарту MARC: eng, ger, lat. В фильтре вместо «английский» стояло бы «eng». Такие вещи не видны в коде, пока не посмотришь на настоящие данные.

А позже, уже при съёмке скриншотов для этого журнала, нашлось и третье: в выгрузке языки записаны вразнобой — «ger, eng», «ger.», «Fre», «jap.». Katlog показывал каждый вариант как отдельный язык, и в фильтре их набралось 37. После разбора и приведения к кодам MARC осталось 15 настоящих языков, а нестандартные значения попали в «Качество данных».

УрокМногоязычность — не функция, которую добавляют в конце, а свойство всей системы. И проверять её нужно на реальных данных: там всегда найдутся коды и форматы, которых не было в примерах.