- новое поле [general].language (ru|en, дефолт en) — единый источник языка локализованного title детектора и локали запросов к метабазам; original_title всегда на языке оригинала - локаль TMDB (поиск + credits) выводится из него, [metadata.tmdb].language убран - промпт LLM явно задаёт язык title с fallback на оригинал
3.2 KiB
3.2 KiB
1. Конфиг
- 1.1 Добавить поле
Language stringв[general]-секциюinternal/config(рядом сTimezone), парсинг из TOML - 1.2
Default()сеетLanguage = "en";validate()остаётся чистым (не мутирует Config), только отвергает значение вне {ru,en} по образцуllm.type— сообщениеunsupported language %q (supported: ru, en) - 1.3 Нормализацию «пусто →
en» и выдачу абстрактного кода вынести в аксессорConfigпо образцуDisplayLocation()(не вvalidate()) - 1.4 Удалить поле
LanguageизMetadataProvider/TMDB-секции и его дефолтru-RUвDefault() - 1.5 Обновить
config.example.toml: добавить[general].languageс комментарием, убрать[metadata.tmdb].language - 1.6 Обновить
docs/conventions/config.md, если там упомянута локаль TMDB - 1.7 Тесты config: дефолт
en(пустой конфиг →en); приёмru/en; отказ старта на значении вне ru/en (напр.de→ ошибка конфига)
2. Локаль TMDB из глобального языка
- 2.1
TMDBConfigпринимает абстрактныйru/en; диалектru→ru-RU,en→en-USвыводит самtmdb.goтотальнымswitchс default-веткойen-US - 2.2 Удалить остаточный
tmdbDefaultLanguage = "ru-RU"и его fallback вNewTMDB(скрытый второй дефолт); поправить комментарии, ссылающиеся на дефолтru-RU - 2.3 Прокинуть абстрактный
languageиз конфига в конструктор TMDB-клиента (cmd/jellybit/serve.go) - 2.4 Передавать выведенную локаль в запрос credits (
Director), не только в поиск - 2.5 Тесты TMDB:
en→en-USиru→ru-RUв параметрахSearchиDirector; пустой/непокрытый вход →en-US(default-ветка)
3. Язык title в промпте LLM
- 3.1 Прокинуть абстрактный
languageиз конфига вRecognizer(полеrecognize.Config, дефолт вNew) и в сборку промпта (systemPromptconst → builder-функция с параметром языка) - 3.2 Директива в промпте:
titleна выбранном языке, при отсутствии перевода — оригинал (не выдумывать);original_titleне трогать - 3.3 Тесты: промпт содержит корректную языковую директиву при
enи приru; при незаданном языке — английскую (дефолт)
4. Верификация
- 4.1
task gateзелёный (build/vet/lint/test/race/покрытие/секреты) - 4.2
openspec validate content-language-switch --strictпроходит