Files
jellybit/openspec/changes/archive/2026-07-24-content-language-switch/specs/metadata-match/spec.md
T
av a2d8140e22 recognition: глобальный переключатель языка вывода [general].language
- новое поле [general].language (ru|en, дефолт en) — единый источник языка
  локализованного title детектора и локали запросов к метабазам; original_title
  всегда на языке оригинала
- локаль TMDB (поиск + credits) выводится из него, [metadata.tmdb].language убран
- промпт LLM явно задаёт язык title с fallback на оригинал
2026-07-24 14:09:04 +03:00

2.6 KiB

MODIFIED Requirements

Requirement: Локаль запроса к TMDB

Локаль запросов к TMDB SHALL выводиться из глобальной настройки language (ru|en, дефолт en): ruru-RU, enen-US. Отдельной настройки локали у TMDB быть SHALL NOT — глобальный language единственный источник.

Эту локаль система SHALL передавать параметром language как в запрос поиска, так и в запрос credits (режиссёр). На стороне поиска локаль влияет ТОЛЬКО на локализованное поле Title/Name; поле original_title/original_name остаётся на языке оригинала, поэтому оригинальная сторона сравнения не затрагивается. На стороне credits передача локали — best-effort: имена людей провайдер локализует не всегда, при отсутствии перевода имя остаётся на языке оригинала, и это не проваливает выборку режиссёра.

Scenario: Локаль по умолчанию — английская

  • GIVEN TMDB включён, глобальный language не задан в конфиге
  • WHEN выполняется поиск фильма
  • THEN запрос содержит language=en-US
  • AND в кандидате Title приходит на английском, а OriginalTitle — на языке оригинала

Scenario: language=ru даёт русскую локаль

  • GIVEN TMDB включён, глобальный language = ru
  • WHEN выполняется поиск фильма с русской локализацией
  • THEN запрос содержит language=ru-RU
  • AND в кандидате Title приходит на русском, а OriginalTitle — на языке оригинала

Scenario: Локаль передаётся и в запрос режиссёра

  • GIVEN подтверждённый матч TMDB и глобальный language = ru
  • WHEN выполняется запрос credits за режиссёром
  • THEN запрос содержит language=ru-RU
  • AND при отсутствии локализованного имени режиссёр остаётся на языке оригинала, выборка не проваливается