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