Backend (handlers_catalogue.go):
- POST /api/admin/text-gen/tagline — 1-sentence marketing hook
- POST /api/admin/text-gen/genres + /apply — LLM genre suggestions, editable + persist
- POST /api/admin/text-gen/content-warnings — mature theme detection
- POST /api/admin/text-gen/quality-score — 1–5 description quality rating
- POST /api/admin/catalogue/batch-covers (SSE) — generate covers for books missing one
- POST /api/admin/catalogue/batch-covers/cancel — cancel via in-memory job registry
- POST /api/admin/catalogue/refresh-metadata/{slug} (SSE) — description + cover refresh
Frontend:
- text-gen: 4 new tabs (Tagline, Genres, Warnings, Quality) with book autocomplete
- image-gen: localStorage style presets (save/apply/delete named prompt templates)
- catalogue-tools: new admin page with batch cover SSE progress + cancel
- admin nav: "Catalogue Tools" link added
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
476 lines
26 KiB
JSON
476 lines
26 KiB
JSON
{
|
||
"$schema": "https://inlang.com/schema/inlang-message-format",
|
||
|
||
"nav_library": "Библиотека",
|
||
"nav_catalogue": "Каталог",
|
||
"nav_feed": "Лента",
|
||
"nav_feedback": "Обратная связь",
|
||
"nav_admin": "Админ",
|
||
"nav_profile": "Профиль",
|
||
"nav_sign_in": "Войти",
|
||
"nav_sign_out": "Выйти",
|
||
"nav_toggle_menu": "Меню",
|
||
"nav_admin_panel": "Панель администратора",
|
||
|
||
"footer_library": "Библиотека",
|
||
"footer_catalogue": "Каталог",
|
||
"footer_feedback": "Обратная связь",
|
||
"footer_disclaimer": "Отказ от ответственности",
|
||
"footer_privacy": "Конфиденциальность",
|
||
"footer_dmca": "DMCA",
|
||
"footer_copyright": "© {year} libnovel",
|
||
"footer_dev": "dev",
|
||
|
||
"home_title": "libnovel",
|
||
"home_stat_books": "Книги",
|
||
"home_stat_chapters": "Главы",
|
||
"home_stat_in_progress": "В процессе",
|
||
"home_continue_reading": "Продолжить чтение",
|
||
"home_view_all": "Смотреть все",
|
||
"home_recently_updated": "Недавно обновлённые",
|
||
"home_from_following": "От авторов, на которых вы подписаны",
|
||
"home_empty_title": "Ваша библиотека пуста",
|
||
"home_empty_body": "Откройте для себя новеллы и добавьте их в библиотеку.",
|
||
"home_discover_novels": "Открыть новеллы",
|
||
"home_via_reader": "от {username}",
|
||
"home_chapter_badge": "гл.{n}",
|
||
|
||
"player_generating": "Генерация… {percent}%",
|
||
"player_loading": "Загрузка…",
|
||
"player_chapters": "Главы",
|
||
"player_chapter_n": "Глава {n}",
|
||
"player_toggle_chapter_list": "Список глав",
|
||
"player_chapter_list_label": "Список глав",
|
||
"player_close_chapter_list": "Закрыть список глав",
|
||
"player_rewind_15": "Назад 15 секунд",
|
||
"player_skip_30": "Вперёд 30 секунд",
|
||
"player_back_15": "−15 сек",
|
||
"player_forward_30": "+30 сек",
|
||
"player_play": "Воспроизвести",
|
||
"player_pause": "Пауза",
|
||
"player_speed_label": "Скорость {speed}x",
|
||
"player_seek_label": "Прогресс главы",
|
||
"player_change_speed": "Изменить скорость",
|
||
"player_auto_next_on": "Автопереход вкл.",
|
||
"player_auto_next_off": "Автопереход выкл.",
|
||
"player_auto_next_ready": "Автопереход — гл.{n} готова",
|
||
"player_auto_next_preparing": "Автопереход — подготовка гл.{n}…",
|
||
"player_auto_next_aria": "Автопереход {state}",
|
||
"player_go_to_chapter": "Перейти к главе",
|
||
"player_close": "Закрыть плеер",
|
||
|
||
"login_page_title": "Вход — libnovel",
|
||
"login_heading": "Войти в libnovel",
|
||
"login_subheading": "Выберите провайдера для входа",
|
||
"login_continue_google": "Продолжить с Google",
|
||
"login_continue_github": "Продолжить с GitHub",
|
||
"login_terms_notice": "Входя, вы принимаете наши условия использования.",
|
||
"login_error_oauth_state": "Вход отменён или истёк срок действия. Попробуйте снова.",
|
||
"login_error_oauth_failed": "Не удалось подключиться к провайдеру. Попробуйте снова.",
|
||
"login_error_oauth_no_email": "У вашего аккаунта нет подтверждённого email. Добавьте его и повторите попытку.",
|
||
|
||
"books_page_title": "Библиотека — libnovel",
|
||
"books_heading": "Ваша библиотека",
|
||
"books_empty_title": "Книг пока нет",
|
||
"books_empty_body": "Добавляйте книги в библиотеку, посещая страницы книг.",
|
||
"books_browse_catalogue": "Обзор каталога",
|
||
"books_chapter_count": "{n} глав",
|
||
"books_last_read": "Последнее: гл.{n}",
|
||
"books_reading_progress": "Гл.{current} / {total}",
|
||
"books_remove": "Удалить",
|
||
|
||
"catalogue_page_title": "Каталог — libnovel",
|
||
"catalogue_heading": "Каталог",
|
||
"catalogue_search_placeholder": "Поиск новелл…",
|
||
"catalogue_filter_genre": "Жанр",
|
||
"catalogue_filter_status": "Статус",
|
||
"catalogue_filter_sort": "Сортировка",
|
||
"catalogue_sort_popular": "Популярные",
|
||
"catalogue_sort_new": "Новые",
|
||
"catalogue_sort_top_rated": "Топ по рейтингу",
|
||
"catalogue_sort_rank": "По рангу",
|
||
"catalogue_status_all": "Все",
|
||
"catalogue_status_ongoing": "Продолжаются",
|
||
"catalogue_status_completed": "Завершены",
|
||
"catalogue_genre_all": "Все жанры",
|
||
"catalogue_clear_filters": "Сбросить",
|
||
"catalogue_reset": "Сброс",
|
||
"catalogue_no_results": "Новеллы не найдены.",
|
||
"catalogue_loading": "Загрузка…",
|
||
"catalogue_load_more": "Загрузить ещё",
|
||
"catalogue_results_count": "{n} результатов",
|
||
|
||
"book_detail_page_title": "{title} — libnovel",
|
||
"book_detail_signin_to_save": "Войдите, чтобы сохранить",
|
||
"book_detail_add_to_library": "В библиотеку",
|
||
"book_detail_remove_from_library": "Удалить из библиотеки",
|
||
"book_detail_read_now": "Читать",
|
||
"book_detail_continue_reading": "Продолжить чтение",
|
||
"book_detail_start_reading": "Начать чтение",
|
||
"book_detail_chapters": "{n} глав",
|
||
"book_detail_status": "Статус",
|
||
"book_detail_author": "Автор",
|
||
"book_detail_genres": "Жанры",
|
||
"book_detail_description": "Описание",
|
||
"book_detail_source": "Источник",
|
||
"book_detail_rescrape": "Обновить",
|
||
"book_detail_scraping": "Обновление…",
|
||
"book_detail_in_library": "В библиотеке",
|
||
|
||
"chapters_page_title": "Главы — {title}",
|
||
"chapters_heading": "Главы",
|
||
"chapters_back_to_book": "К книге",
|
||
"chapters_reading_now": "Читается",
|
||
"chapters_empty": "Главы ещё не загружены.",
|
||
|
||
"reader_page_title": "{title} — Гл.{n} — libnovel",
|
||
"reader_play_narration": "Воспроизвести озвучку",
|
||
"reader_generating_audio": "Генерация аудио…",
|
||
"reader_signin_for_audio": "Доступна аудионарративация",
|
||
"reader_signin_audio_desc": "Войдите, чтобы слушать эту главу в озвучке ИИ.",
|
||
"reader_audio_error": "Ошибка генерации аудио.",
|
||
"reader_prev_chapter": "Предыдущая глава",
|
||
"reader_next_chapter": "Следующая глава",
|
||
"reader_back_to_chapters": "К главам",
|
||
"reader_chapter_n": "Глава {n}",
|
||
"reader_change_voice": "Сменить голос",
|
||
"reader_voice_panel_title": "Выбрать голос",
|
||
"reader_voice_kokoro": "Голоса Kokoro",
|
||
"reader_voice_pocket": "Голоса Pocket-TTS",
|
||
"reader_voice_play_sample": "Прослушать образец",
|
||
"reader_voice_stop_sample": "Остановить образец",
|
||
"reader_voice_selected": "Выбран",
|
||
"reader_close_voice_panel": "Закрыть панель голоса",
|
||
"reader_auto_next": "Автопереход",
|
||
"reader_speed": "Скорость",
|
||
"reader_preview_notice": "Предпросмотр — эта глава не полностью загружена.",
|
||
|
||
"profile_page_title": "Профиль — libnovel",
|
||
"profile_heading": "Профиль",
|
||
"profile_avatar_label": "Аватар",
|
||
"profile_change_avatar": "Изменить аватар",
|
||
"profile_username": "Имя пользователя",
|
||
"profile_email": "Email",
|
||
"profile_change_password": "Изменить пароль",
|
||
"profile_current_password": "Текущий пароль",
|
||
"profile_new_password": "Новый пароль",
|
||
"profile_confirm_password": "Подтвердить пароль",
|
||
"profile_save_password": "Сохранить пароль",
|
||
"profile_appearance_heading": "Внешний вид",
|
||
"profile_theme_label": "Тема",
|
||
"profile_theme_amber": "Янтарь",
|
||
"profile_theme_slate": "Сланец",
|
||
"profile_theme_rose": "Роза",
|
||
"profile_theme_light": "Light",
|
||
"profile_theme_light_slate": "Light Blue",
|
||
"profile_theme_light_rose": "Light Rose",
|
||
"profile_reading_heading": "Настройки чтения",
|
||
"profile_voice_label": "Голос по умолчанию",
|
||
"profile_speed_label": "Скорость воспроизведения",
|
||
"profile_auto_next_label": "Автопереход к следующей главе",
|
||
"profile_save_settings": "Сохранить настройки",
|
||
"profile_settings_saved": "Настройки сохранены.",
|
||
"profile_settings_error": "Не удалось сохранить настройки.",
|
||
"profile_password_saved": "Пароль изменён.",
|
||
"profile_password_error": "Не удалось изменить пароль.",
|
||
"profile_sessions_heading": "Активные сессии",
|
||
"profile_sign_out_all": "Выйти на всех других устройствах",
|
||
"profile_joined": "Зарегистрирован {date}",
|
||
|
||
"user_page_title": "{username} — libnovel",
|
||
"user_library_heading": "Библиотека {username}",
|
||
"user_follow": "Подписаться",
|
||
"user_unfollow": "Отписаться",
|
||
"user_followers": "{n} подписчиков",
|
||
"user_following": "{n} подписок",
|
||
"user_library_empty": "В библиотеке нет книг.",
|
||
|
||
"error_not_found_title": "Страница не найдена",
|
||
"error_not_found_body": "Запрошенная страница не существует.",
|
||
"error_generic_title": "Что-то пошло не так",
|
||
"error_go_home": "На главную",
|
||
"error_status": "Ошибка {status}",
|
||
|
||
"admin_scrape_page_title": "Парсинг — Админ",
|
||
"admin_scrape_heading": "Парсинг",
|
||
"admin_scrape_catalogue": "Парсинг каталога",
|
||
"admin_scrape_book": "Парсинг книги",
|
||
"admin_scrape_url_placeholder": "URL книги на novelfire.net",
|
||
"admin_scrape_range": "Диапазон глав",
|
||
"admin_scrape_from": "От",
|
||
"admin_scrape_to": "До",
|
||
"admin_scrape_submit": "Парсить",
|
||
"admin_scrape_cancel": "Отмена",
|
||
"admin_scrape_status_pending": "Ожидание",
|
||
"admin_scrape_status_running": "Выполняется",
|
||
"admin_scrape_status_done": "Готово",
|
||
"admin_scrape_status_failed": "Ошибка",
|
||
"admin_scrape_status_cancelled": "Отменено",
|
||
"admin_tasks_heading": "Последние задачи",
|
||
"admin_tasks_empty": "Задач пока нет.",
|
||
|
||
"admin_audio_page_title": "Аудио — Админ",
|
||
"admin_audio_heading": "Аудио задачи",
|
||
"admin_audio_empty": "Аудио задач нет.",
|
||
|
||
"admin_changelog_page_title": "Changelog — Админ",
|
||
"admin_changelog_heading": "Changelog",
|
||
|
||
"comments_heading": "Комментарии",
|
||
"comments_empty": "Комментариев пока нет. Будьте первым!",
|
||
"comments_placeholder": "Написать комментарий…",
|
||
"comments_submit": "Отправить",
|
||
"comments_login_prompt": "Войдите, чтобы комментировать.",
|
||
"comments_vote_up": "Плюс",
|
||
"comments_vote_down": "Минус",
|
||
"comments_delete": "Удалить",
|
||
"comments_reply": "Ответить",
|
||
"comments_show_replies": "Показать {n} ответов",
|
||
"comments_hide_replies": "Скрыть ответы",
|
||
"comments_edited": "изменено",
|
||
"comments_deleted": "[удалено]",
|
||
|
||
"disclaimer_page_title": "Отказ от ответственности — libnovel",
|
||
"privacy_page_title": "Политика конфиденциальности — libnovel",
|
||
"dmca_page_title": "DMCA — libnovel",
|
||
"terms_page_title": "Условия использования — libnovel",
|
||
|
||
"common_loading": "Загрузка…",
|
||
"common_error": "Ошибка",
|
||
"common_save": "Сохранить",
|
||
"common_cancel": "Отмена",
|
||
"common_close": "Закрыть",
|
||
"common_search": "Поиск",
|
||
"common_back": "Назад",
|
||
"common_next": "Далее",
|
||
"common_previous": "Назад",
|
||
"common_yes": "Да",
|
||
"common_no": "Нет",
|
||
"common_on": "вкл.",
|
||
"common_off": "выкл.",
|
||
|
||
"locale_switcher_label": "Язык",
|
||
|
||
"books_empty_library": "Ваша библиотека пуста.",
|
||
"books_empty_discover": "Книги, которые вы начнёте читать или сохраните из",
|
||
"books_empty_discover_link": "Каталога",
|
||
"books_empty_discover_suffix": "появятся здесь.",
|
||
"books_count": "{n} книг{s}",
|
||
|
||
"catalogue_sort_updated": "По дате обновления",
|
||
"catalogue_search_button": "Поиск",
|
||
"catalogue_refresh": "Обновить",
|
||
"catalogue_refreshing": "В очереди…",
|
||
"catalogue_refresh_mobile": "Обновить каталог",
|
||
"catalogue_all_loaded": "Все новеллы загружены",
|
||
"catalogue_scroll_top": "Вверх",
|
||
"catalogue_view_grid": "Сетка",
|
||
"catalogue_view_list": "Список",
|
||
"catalogue_browse_source": "Смотреть новеллы с novelfire.net",
|
||
"catalogue_search_results": "{n} результат{s} по запросу «{q}»",
|
||
"catalogue_search_local_count": "({local} локальных, {remote} с novelfire)",
|
||
"catalogue_rank_ranked": "{n} новелл отсортированы по последнему парсингу каталога",
|
||
"catalogue_rank_no_data": "Нет данных рейтинга.",
|
||
"catalogue_rank_no_data_body": "Нет данных рейтинга — запустите полный парсинг каталога для заполнения",
|
||
"catalogue_rank_run_scrape_admin": "Нажмите «Обновить каталог» выше, чтобы запустить полный парсинг.",
|
||
"catalogue_rank_run_scrape_user": "Попросите администратора запустить парсинг каталога.",
|
||
"catalogue_scrape_queued_flash": "Полный парсинг каталога поставлен в очередь. Библиотека и рейтинг обновятся по мере обработки.",
|
||
"catalogue_scrape_busy_flash": "Парсинг уже запущен. Проверьте позже.",
|
||
"catalogue_scrape_error_flash": "Не удалось поставить парсинг в очередь. Проверьте доступность сервиса.",
|
||
"catalogue_filters_label": "Фильтры",
|
||
"catalogue_apply": "Применить",
|
||
"catalogue_filter_rank_note": "Фильтры по жанру и статусу применяются только к разделу «Обзор»",
|
||
"catalogue_no_results_search": "Ничего не найдено.",
|
||
"catalogue_no_results_try": "Попробуйте другой запрос.",
|
||
"catalogue_no_results_filters": "Попробуйте другие фильтры или проверьте позже.",
|
||
"catalogue_scrape_queued_badge": "В очереди",
|
||
"catalogue_scrape_busy_badge": "Парсер занят",
|
||
"catalogue_scrape_busy_list": "Занят",
|
||
"catalogue_scrape_forbidden_badge": "Запрещено",
|
||
"catalogue_scrape_novel_button": "Парсить",
|
||
"catalogue_scraping_novel": "Парсинг…",
|
||
|
||
"book_detail_not_in_library": "не в библиотеке",
|
||
"book_detail_continue_ch": "Продолжить гл.{n}",
|
||
"book_detail_start_ch1": "Начать с гл.1",
|
||
"book_detail_preview_ch1": "Предпросмотр гл.1",
|
||
"book_detail_reading_ch": "Читается гл.{n} из {total}",
|
||
"book_detail_n_chapters": "{n} глав",
|
||
"book_detail_rescraping": "В очереди…",
|
||
"book_detail_from_chapter": "С главы",
|
||
"book_detail_to_chapter": "До главы (необязательно)",
|
||
"book_detail_range_queuing": "В очереди…",
|
||
"book_detail_scrape_range": "Диапазон глав",
|
||
"book_detail_admin": "Администрирование",
|
||
"book_detail_admin_book_cover": "Обложка книги",
|
||
"book_detail_admin_chapter_cover": "Обложка главы",
|
||
"book_detail_admin_chapter_n": "Глава №",
|
||
"book_detail_admin_description": "Описание",
|
||
"book_detail_admin_chapter_names": "Названия глав",
|
||
"book_detail_admin_audio_tts": "Аудио TTS",
|
||
"book_detail_admin_voice": "Голос",
|
||
"book_detail_admin_generate": "Сгенерировать",
|
||
"book_detail_admin_save_cover": "Сохранить обложку",
|
||
"book_detail_admin_saving": "Сохранение…",
|
||
"book_detail_admin_saved": "Сохранено",
|
||
"book_detail_admin_apply": "Применить",
|
||
"book_detail_admin_applying": "Применение…",
|
||
"book_detail_admin_applied": "Применено",
|
||
"book_detail_admin_discard": "Отменить",
|
||
"book_detail_admin_enqueue_audio": "Поставить в очередь",
|
||
"book_detail_admin_cancel_audio": "Отмена",
|
||
"book_detail_admin_enqueued": "В очереди {enqueued}, пропущено {skipped}",
|
||
"book_detail_scraping_progress": "Загружаются первые 20 глав. Страница обновится автоматически.",
|
||
"book_detail_scraping_home": "← На главную",
|
||
"book_detail_rescrape_book": "Перепарсить книгу",
|
||
"book_detail_less": "Скрыть",
|
||
"book_detail_more": "Ещё",
|
||
|
||
"chapters_search_placeholder": "Поиск глав…",
|
||
"chapters_jump_to": "Перейти к гл.{n}",
|
||
"chapters_no_match": "Главы по запросу «{q}» не найдены",
|
||
"chapters_none_available": "Глав пока нет.",
|
||
"chapters_reading_indicator": "читается",
|
||
"chapters_result_count": "{n} результатов",
|
||
|
||
"reader_fetching_chapter": "Загрузка главы…",
|
||
"reader_words": "{n} слов",
|
||
"reader_preview_audio_notice": "Предпросмотр — аудио недоступно для книг вне библиотеки.",
|
||
|
||
"profile_click_to_change": "Нажмите на аватар для смены фото",
|
||
"profile_tts_voice": "Голос TTS",
|
||
"profile_auto_advance": "Автопереход к следующей главе",
|
||
"profile_saving": "Сохранение…",
|
||
"profile_saved": "Сохранено!",
|
||
"profile_session_this": "Текущая сессия",
|
||
"profile_session_signed_in": "Вход {date}",
|
||
"profile_session_last_seen": "· Последний визит {date}",
|
||
"profile_session_sign_out": "Выйти",
|
||
"profile_session_end": "Завершить",
|
||
"profile_session_unrecognised": "Это все устройства, авторизованные в вашем аккаунте. Завершите любую сессию, которую не узнаёте.",
|
||
"profile_no_sessions": "Записей сессий нет. Отслеживание начнётся со следующего входа.",
|
||
"profile_change_password_heading": "Изменить пароль",
|
||
"profile_update_password": "Обновить пароль",
|
||
"profile_updating": "Обновление…",
|
||
"profile_password_changed_ok": "Пароль успешно изменён.",
|
||
"profile_playback_speed": "Скорость воспроизведения — {speed}x",
|
||
|
||
"profile_subscription_heading": "Подписка",
|
||
"profile_plan_pro": "Pro",
|
||
"profile_plan_free": "Бесплатно",
|
||
"profile_pro_active": "Ваша подписка Pro активна.",
|
||
"profile_pro_perks": "Безлимитное аудио, все языки перевода и выбор голоса доступны.",
|
||
"profile_manage_subscription": "Управление подпиской",
|
||
"profile_upgrade_heading": "Перейти на Pro",
|
||
"profile_upgrade_desc": "Разблокируйте безлимитное аудио, переводы на 4 языка и выбор голоса.",
|
||
"profile_upgrade_monthly": "Ежемесячно — $6 / мес",
|
||
"profile_upgrade_annual": "Ежегодно — $48 / год",
|
||
"profile_free_limits": "Бесплатный план: 3 аудиоглавы в день, только английский.",
|
||
"subscribe_page_title": "Перейти на Pro \u2014 libnovel",
|
||
"subscribe_heading": "Читайте больше. Слушайте больше.",
|
||
"subscribe_subheading": "Перейдите на Pro и откройте полный опыт libnovel.",
|
||
"subscribe_monthly_label": "Ежемесячно",
|
||
"subscribe_monthly_price": "$6",
|
||
"subscribe_monthly_period": "в месяц",
|
||
"subscribe_annual_label": "Ежегодно",
|
||
"subscribe_annual_price": "$48",
|
||
"subscribe_annual_period": "в год",
|
||
"subscribe_annual_save": "Сэкономьте 33%",
|
||
"subscribe_cta_monthly": "Начать месячный план",
|
||
"subscribe_cta_annual": "Начать годовой план",
|
||
"subscribe_already_pro": "У вас уже есть подписка Pro.",
|
||
"subscribe_manage": "Управление подпиской",
|
||
"subscribe_benefit_audio": "Неограниченные аудиоглавы в день",
|
||
"subscribe_benefit_voices": "Выбор голоса для всех TTS-движков",
|
||
"subscribe_benefit_translation": "Читайте на французском, индонезийском, португальском и русском",
|
||
"subscribe_benefit_downloads": "Скачивайте главы для прослушивания офлайн",
|
||
"subscribe_login_prompt": "Войдите, чтобы оформить подписку",
|
||
"subscribe_login_cta": "Войти",
|
||
|
||
"user_currently_reading": "Сейчас читает",
|
||
"user_library_count": "Библиотека ({n})",
|
||
"user_joined": "Зарегистрирован {date}",
|
||
"user_followers_label": "подписчиков",
|
||
"user_following_label": "подписок",
|
||
"user_no_books": "Книг в библиотеке пока нет.",
|
||
|
||
"admin_pages_label": "Страницы",
|
||
"admin_tools_label": "Инструменты",
|
||
"admin_nav_scrape": "Скрейпинг",
|
||
"admin_nav_audio": "Аудио",
|
||
"admin_nav_translation": "Перевод",
|
||
"admin_nav_changelog": "Изменения",
|
||
"admin_nav_image_gen": "Image Gen",
|
||
"admin_nav_text_gen": "Text Gen",
|
||
"admin_nav_catalogue_tools": "Catalogue Tools",
|
||
"admin_nav_errors": "Ошибки",
|
||
"admin_nav_analytics": "Аналитика",
|
||
"admin_nav_logs": "Логи",
|
||
"admin_nav_uptime": "Мониторинг",
|
||
"admin_nav_push": "Уведомления",
|
||
|
||
"admin_scrape_status_idle": "Ожидание",
|
||
"admin_scrape_full_catalogue": "Полный каталог",
|
||
"admin_scrape_single_book": "Одна книга",
|
||
"admin_scrape_quick_genres": "Быстрые жанры",
|
||
"admin_scrape_task_history": "История задач",
|
||
"admin_scrape_filter_placeholder": "Фильтр по типу, статусу или URL…",
|
||
"admin_scrape_no_matching": "Задач не найдено.",
|
||
"admin_scrape_start": "Начать парсинг",
|
||
"admin_scrape_queuing": "В очереди…",
|
||
"admin_scrape_running": "Выполняется…",
|
||
|
||
"admin_audio_filter_jobs": "Фильтр по slug, голосу или статусу…",
|
||
"admin_audio_filter_cache": "Фильтр по slug, главе или голосу…",
|
||
"admin_audio_no_matching_jobs": "Заданий не найдено.",
|
||
"admin_audio_no_jobs": "Аудиозаданий пока нет.",
|
||
"admin_audio_cache_empty": "Аудиокэш пуст.",
|
||
"admin_audio_no_cache_results": "Результатов нет.",
|
||
|
||
"admin_changelog_gitea": "Релизы Gitea",
|
||
"admin_changelog_no_releases": "Релизов не найдено.",
|
||
"admin_changelog_load_error": "Не удалось загрузить релизы: {error}",
|
||
|
||
"comments_top": "Лучшие",
|
||
"comments_new": "Новые",
|
||
"comments_posting": "Отправка…",
|
||
"comments_login_link": "Войдите",
|
||
"comments_login_suffix": "чтобы оставить комментарий.",
|
||
"comments_anonymous": "Аноним",
|
||
|
||
"reader_audio_narration": "Аудионарратив",
|
||
"reader_playing": "Воспроизводится — управление ниже",
|
||
"reader_paused": "Пауза — управление ниже",
|
||
"reader_ch_ready": "Гл.{n} готова",
|
||
"reader_ch_preparing": "Подготовка гл.{n}… {percent}%",
|
||
"reader_ch_generate_on_nav": "Гл.{n} сгенерируется при переходе",
|
||
"reader_now_playing": "Сейчас играет: {title}",
|
||
"reader_load_this_chapter": "Загрузить эту главу",
|
||
"reader_generate_samples": "Сгенерировать недостающие образцы",
|
||
"reader_voice_applies_next": "Новый голос применится при следующем нажатии «Воспроизвести».",
|
||
"reader_choose_voice": "Выбрать голос",
|
||
"reader_generating_narration": "Генерация озвучки…",
|
||
|
||
"profile_font_family": "Шрифт",
|
||
"profile_font_system": "Системный",
|
||
"profile_font_serif": "Serif",
|
||
"profile_font_mono": "Моноширинный",
|
||
"profile_text_size": "Размер текста",
|
||
"profile_text_size_sm": "Маленький",
|
||
"profile_text_size_md": "Нормальный",
|
||
"profile_text_size_lg": "Большой",
|
||
"profile_text_size_xl": "Очень большой",
|
||
|
||
"feed_page_title": "Лента — LibNovel",
|
||
"feed_heading": "Лента подписок",
|
||
"feed_subheading": "Книги, которые читают ваши подписки",
|
||
"feed_empty_heading": "Пока ничего нет",
|
||
"feed_empty_body": "Подпишитесь на других читателей, чтобы видеть, что они читают.",
|
||
"feed_not_logged_in": "Войдите, чтобы видеть свою ленту.",
|
||
"feed_reader_label": "читает",
|
||
"feed_chapters_label": "{n} глав",
|
||
"feed_browse_cta": "Каталог",
|
||
"feed_find_users_cta": "Найти читателей",
|
||
"admin_nav_gitea": "Gitea"
|
||
}
|