{ "$schema": "https://inlang.com/schema/inlang-message-format", "nav_library": "Library", "nav_catalogue": "Catalogue", "nav_feed": "Feed", "nav_feedback": "Feedback", "nav_admin": "Admin", "nav_profile": "Profile", "nav_sign_in": "Sign in", "nav_sign_out": "Sign out", "nav_toggle_menu": "Toggle menu", "nav_admin_panel": "Admin panel", "footer_library": "Library", "footer_catalogue": "Catalogue", "footer_feedback": "Feedback", "footer_disclaimer": "Disclaimer", "footer_privacy": "Privacy", "footer_dmca": "DMCA", "footer_copyright": "© {year} libnovel", "footer_dev": "dev", "home_title": "libnovel", "home_stat_books": "Books", "home_stat_chapters": "Chapters", "home_stat_in_progress": "In progress", "home_continue_reading": "Continue Reading", "home_view_all": "View all", "home_recently_updated": "Recently Updated", "home_from_following": "From People You Follow", "home_empty_title": "Your library is empty", "home_empty_body": "Discover novels and scrape them into your library.", "home_discover_novels": "Discover Novels", "home_via_reader": "via {username}", "home_chapter_badge": "ch.{n}", "player_generating": "Generating… {percent}%", "player_loading": "Loading…", "player_chapters": "Chapters", "player_chapter_n": "Chapter {n}", "player_toggle_chapter_list": "Toggle chapter list", "player_chapter_list_label": "Chapter list", "player_close_chapter_list": "Close chapter list", "player_rewind_15": "Rewind 15 seconds", "player_skip_30": "Skip 30 seconds", "player_back_15": "Back 15s", "player_forward_30": "Forward 30s", "player_play": "Play", "player_pause": "Pause", "player_speed_label": "Playback speed {speed}x", "player_seek_label": "Chapter progress", "player_change_speed": "Change playback speed", "player_auto_next_on": "Auto-next on", "player_auto_next_off": "Auto-next off", "player_auto_next_ready": "Auto-next on — Ch.{n} ready", "player_auto_next_preparing": "Auto-next on — preparing Ch.{n}…", "player_auto_next_aria": "Auto-next {state}", "player_go_to_chapter": "Go to chapter", "player_close": "Close player", "login_page_title": "Sign in — libnovel", "login_heading": "Sign in to libnovel", "login_subheading": "Choose a provider to continue", "login_continue_google": "Continue with Google", "login_continue_github": "Continue with GitHub", "login_terms_notice": "By signing in you agree to our terms of service.", "login_error_oauth_state": "Sign-in was cancelled or expired. Please try again.", "login_error_oauth_failed": "Could not connect to the provider. Please try again.", "login_error_oauth_no_email": "Your account has no verified email address. Please add one and retry.", "books_page_title": "Library — libnovel", "books_heading": "Your Library", "books_empty_title": "No books yet", "books_empty_body": "Add books to your library by visiting a book page.", "books_browse_catalogue": "Browse Catalogue", "books_chapter_count": "{n} chapters", "books_last_read": "Last read: Ch.{n}", "books_reading_progress": "Ch.{current} / {total}", "books_remove": "Remove", "catalogue_page_title": "Catalogue — libnovel", "catalogue_heading": "Catalogue", "catalogue_search_placeholder": "Search novels…", "catalogue_filter_genre": "Genre", "catalogue_filter_status": "Status", "catalogue_filter_sort": "Sort", "catalogue_sort_popular": "Popular", "catalogue_sort_new": "New", "catalogue_sort_top_rated": "Top Rated", "catalogue_sort_rank": "Rank", "catalogue_status_all": "All", "catalogue_status_ongoing": "Ongoing", "catalogue_status_completed": "Completed", "catalogue_genre_all": "All genres", "catalogue_clear_filters": "Clear", "catalogue_reset": "Reset", "catalogue_no_results": "No novels found.", "catalogue_loading": "Loading…", "catalogue_load_more": "Load more", "catalogue_results_count": "{n} results", "book_detail_page_title": "{title} — libnovel", "book_detail_signin_to_save": "Sign in to save", "book_detail_add_to_library": "Add to Library", "book_detail_remove_from_library": "Remove from Library", "book_detail_read_now": "Read Now", "book_detail_continue_reading": "Continue Reading", "book_detail_start_reading": "Start Reading", "book_detail_chapters": "{n} Chapters", "book_detail_status": "Status", "book_detail_author": "Author", "book_detail_genres": "Genres", "book_detail_description": "Description", "book_detail_source": "Source", "book_detail_rescrape": "Re-scrape", "book_detail_scraping": "Scraping…", "book_detail_in_library": "In Library", "chapters_page_title": "Chapters — {title}", "chapters_heading": "Chapters", "chapters_back_to_book": "Back to book", "chapters_reading_now": "Reading", "chapters_empty": "No chapters scraped yet.", "reader_page_title": "{title} — Ch.{n} — libnovel", "reader_play_narration": "Play narration", "reader_generating_audio": "Generating audio…", "reader_signin_for_audio": "Audio narration available", "reader_signin_audio_desc": "Sign in to listen to this chapter narrated by AI.", "reader_audio_error": "Audio generation failed.", "reader_prev_chapter": "Previous chapter", "reader_next_chapter": "Next chapter", "reader_back_to_chapters": "Back to chapters", "reader_chapter_n": "Chapter {n}", "reader_change_voice": "Change voice", "reader_voice_panel_title": "Select voice", "reader_voice_kokoro": "Kokoro voices", "reader_voice_pocket": "Pocket-TTS voices", "reader_voice_play_sample": "Play sample", "reader_voice_stop_sample": "Stop sample", "reader_voice_selected": "Selected", "reader_close_voice_panel": "Close voice panel", "reader_auto_next": "Auto-next", "reader_speed": "Speed", "reader_preview_notice": "Preview — this chapter has not been fully scraped.", "profile_page_title": "Profile — libnovel", "profile_heading": "Profile", "profile_avatar_label": "Avatar", "profile_change_avatar": "Change avatar", "profile_username": "Username", "profile_email": "Email", "profile_change_password": "Change password", "profile_current_password": "Current password", "profile_new_password": "New password", "profile_confirm_password": "Confirm password", "profile_save_password": "Save password", "profile_appearance_heading": "Appearance", "profile_theme_label": "Theme", "profile_theme_amber": "Amber", "profile_theme_slate": "Slate", "profile_theme_rose": "Rose", "profile_theme_forest": "Forest", "profile_theme_mono": "Mono", "profile_theme_cyber": "Cyberpunk", "profile_theme_light": "Light", "profile_theme_light_slate": "Light Blue", "profile_theme_light_rose": "Light Rose", "profile_reading_heading": "Reading settings", "profile_voice_label": "Default voice", "profile_speed_label": "Playback speed", "profile_auto_next_label": "Auto-next chapter", "profile_save_settings": "Save settings", "profile_settings_saved": "Settings saved.", "profile_settings_error": "Failed to save settings.", "profile_password_saved": "Password changed.", "profile_password_error": "Failed to change password.", "profile_sessions_heading": "Active sessions", "profile_sign_out_all": "Sign out all other devices", "profile_joined": "Joined {date}", "user_page_title": "{username} — libnovel", "user_library_heading": "{username}'s Library", "user_follow": "Follow", "user_unfollow": "Unfollow", "user_followers": "{n} followers", "user_following": "{n} following", "user_library_empty": "No books in library.", "error_not_found_title": "Page not found", "error_not_found_body": "The page you're looking for doesn't exist.", "error_generic_title": "Something went wrong", "error_go_home": "Go home", "error_status": "Error {status}", "admin_scrape_page_title": "Scrape — Admin", "admin_scrape_heading": "Scrape", "admin_scrape_catalogue": "Scrape Catalogue", "admin_scrape_book": "Scrape Book", "admin_scrape_url_placeholder": "novelfire.net book URL", "admin_scrape_range": "Chapter range", "admin_scrape_from": "From", "admin_scrape_to": "To", "admin_scrape_submit": "Scrape", "admin_scrape_cancel": "Cancel", "admin_scrape_status_pending": "Pending", "admin_scrape_status_running": "Running", "admin_scrape_status_done": "Done", "admin_scrape_status_failed": "Failed", "admin_scrape_status_cancelled": "Cancelled", "admin_tasks_heading": "Recent tasks", "admin_tasks_empty": "No tasks yet.", "admin_audio_page_title": "Audio — Admin", "admin_audio_heading": "Audio Jobs", "admin_audio_empty": "No audio jobs.", "admin_changelog_page_title": "Changelog — Admin", "admin_changelog_heading": "Changelog", "comments_heading": "Comments", "comments_empty": "No comments yet. Be the first!", "comments_placeholder": "Write a comment…", "comments_submit": "Post", "comments_login_prompt": "Sign in to comment.", "comments_vote_up": "Upvote", "comments_vote_down": "Downvote", "comments_delete": "Delete", "comments_reply": "Reply", "comments_show_replies": "Show {n} replies", "comments_hide_replies": "Hide replies", "comments_edited": "edited", "comments_deleted": "[deleted]", "disclaimer_page_title": "Disclaimer — libnovel", "privacy_page_title": "Privacy Policy — libnovel", "dmca_page_title": "DMCA — libnovel", "terms_page_title": "Terms of Service — libnovel", "common_loading": "Loading…", "common_error": "Error", "common_save": "Save", "common_cancel": "Cancel", "common_close": "Close", "common_search": "Search", "common_back": "Back", "common_next": "Next", "common_previous": "Previous", "common_yes": "Yes", "common_no": "No", "common_on": "on", "common_off": "off", "locale_switcher_label": "Language", "books_empty_library": "Your library is empty.", "books_empty_discover": "Books you start reading or save from", "books_empty_discover_link": "Discover", "books_empty_discover_suffix": "will appear here.", "books_count": "{n} book{s}", "catalogue_sort_updated": "Updated", "catalogue_search_button": "Search", "catalogue_refresh": "Refresh", "catalogue_refreshing": "Queuing\u2026", "catalogue_refresh_mobile": "Refresh catalogue", "catalogue_all_loaded": "All novels loaded", "catalogue_scroll_top": "Back to top", "catalogue_view_grid": "Grid view", "catalogue_view_list": "List view", "catalogue_browse_source": "Browse novels from novelfire.net", "catalogue_search_results": "{n} result{s} for \"{q}\"", "catalogue_search_local_count": "({local} local, {remote} from novelfire)", "catalogue_rank_ranked": "{n} novels ranked from last catalogue scrape", "catalogue_rank_no_data": "No ranking data.", "catalogue_rank_no_data_body": "No ranking data \u2014 run a full catalogue scrape to populate", "catalogue_rank_run_scrape_admin": "Click Refresh catalogue above to trigger a full catalogue scrape.", "catalogue_rank_run_scrape_user": "Ask an admin to run a catalogue scrape.", "catalogue_scrape_queued_flash": "Full catalogue scrape queued. Library and ranking will update as books are processed.", "catalogue_scrape_busy_flash": "A scrape job is already running. Check back once it finishes.", "catalogue_scrape_error_flash": "Failed to queue scrape. Check that the scraper service is reachable.", "catalogue_filters_label": "Filters", "catalogue_apply": "Apply", "catalogue_filter_rank_note": "Genre & status filters apply to Browse only", "catalogue_no_results_search": "No results found.", "catalogue_no_results_try": "Try a different search term.", "catalogue_no_results_filters": "Try different filters or check back later.", "catalogue_scrape_queued_badge": "Queued", "catalogue_scrape_busy_badge": "Scraper busy", "catalogue_scrape_busy_list": "Busy", "catalogue_scrape_forbidden_badge": "Forbidden", "catalogue_scrape_novel_button": "Scrape", "catalogue_scraping_novel": "Scraping\u2026", "book_detail_not_in_library": "not in library", "book_detail_continue_ch": "Continue ch.{n}", "book_detail_start_ch1": "Start from ch.1", "book_detail_preview_ch1": "Preview ch.1", "book_detail_reading_ch": "Reading ch.{n} of {total}", "book_detail_n_chapters": "{n} chapters", "book_detail_rescraping": "Queuing\u2026", "book_detail_from_chapter": "From chapter", "book_detail_to_chapter": "To chapter (optional)", "book_detail_range_queuing": "Queuing\u2026", "book_detail_scrape_range": "Scrape range", "book_detail_admin": "Admin", "book_detail_admin_book_cover": "Book Cover", "book_detail_admin_chapter_cover": "Chapter Cover", "book_detail_admin_chapter_n": "Chapter #", "book_detail_admin_description": "Description", "book_detail_admin_chapter_names": "Chapter Names", "book_detail_admin_audio_tts": "Audio TTS", "book_detail_admin_voice": "Voice", "book_detail_admin_generate": "Generate", "book_detail_admin_save_cover": "Save Cover", "book_detail_admin_saving": "Saving…", "book_detail_admin_saved": "Saved", "book_detail_admin_apply": "Apply", "book_detail_admin_applying": "Applying…", "book_detail_admin_applied": "Applied", "book_detail_admin_discard": "Discard", "book_detail_admin_enqueue_audio": "Enqueue Audio", "book_detail_admin_cancel_audio": "Cancel", "book_detail_admin_enqueued": "Enqueued {enqueued}, skipped {skipped}", "book_detail_scraping_progress": "Fetching the first 20 chapters. This page will refresh automatically.", "book_detail_scraping_home": "\u2190 Home", "book_detail_rescrape_book": "Rescrape book", "book_detail_less": "Less", "book_detail_more": "More", "chapters_search_placeholder": "Search chapters\u2026", "chapters_jump_to": "Jump to Ch.{n}", "chapters_no_match": "No chapters match \"{q}\"", "chapters_none_available": "No chapters available yet.", "chapters_reading_indicator": "reading", "chapters_result_count": "{n} results", "reader_fetching_chapter": "Fetching chapter\u2026", "reader_words": "{n} words", "reader_preview_audio_notice": "Preview chapter \u2014 audio not available for books outside the library.", "profile_click_to_change": "Click avatar to change photo", "profile_tts_voice": "TTS voice", "profile_auto_advance": "Auto-advance to next chapter", "profile_saving": "Saving\u2026", "profile_saved": "Saved!", "profile_session_this": "This session", "profile_session_signed_in": "Signed in {date}", "profile_session_last_seen": "\u00b7 Last seen {date}", "profile_session_sign_out": "Sign out", "profile_session_end": "End", "profile_session_unrecognised": "These are all devices currently signed into your account. End any session you don\u2019t recognise.", "profile_no_sessions": "No session records found. Sessions are tracked from the next login.", "profile_change_password_heading": "Change password", "profile_update_password": "Update password", "profile_updating": "Updating\u2026", "profile_password_changed_ok": "Password changed successfully.", "profile_playback_speed": "Playback speed \u2014 {speed}x", "profile_subscription_heading": "Subscription", "profile_plan_pro": "Pro", "profile_plan_free": "Free", "profile_pro_active": "Your Pro subscription is active.", "profile_pro_perks": "Unlimited audio, all translation languages, and voice selection are enabled.", "profile_manage_subscription": "Manage subscription", "profile_upgrade_heading": "Upgrade to Pro", "profile_upgrade_desc": "Unlock unlimited audio, translations in 4 languages, and voice selection.", "profile_upgrade_monthly": "Monthly \u2014 $6 / mo", "profile_upgrade_annual": "Annual \u2014 $48 / yr", "profile_free_limits": "Free plan: 3 audio chapters per day, English reading only.", "subscribe_page_title": "Go Pro \u2014 libnovel", "subscribe_heading": "Read more. Listen more.", "subscribe_subheading": "Upgrade to Pro and unlock the full libnovel experience.", "subscribe_monthly_label": "Monthly", "subscribe_monthly_price": "$6", "subscribe_monthly_period": "per month", "subscribe_annual_label": "Annual", "subscribe_annual_price": "$48", "subscribe_annual_period": "per year", "subscribe_annual_save": "Save 33%", "subscribe_cta_monthly": "Start monthly plan", "subscribe_cta_annual": "Start annual plan", "subscribe_already_pro": "You already have a Pro subscription.", "subscribe_manage": "Manage subscription", "subscribe_benefit_audio": "Unlimited audio chapters per day", "subscribe_benefit_voices": "Voice selection across all TTS engines", "subscribe_benefit_translation": "Read in French, Indonesian, Portuguese, and Russian", "subscribe_benefit_downloads": "Download chapters for offline listening", "subscribe_login_prompt": "Sign in to subscribe", "subscribe_login_cta": "Sign in", "user_currently_reading": "Currently Reading", "user_library_count": "Library ({n})", "user_joined": "Joined {date}", "user_followers_label": "followers", "user_following_label": "following", "user_no_books": "No books in library yet.", "admin_pages_label": "Pages", "admin_tools_label": "Tools", "admin_nav_scrape": "Scrape", "admin_nav_audio": "Audio", "admin_nav_translation": "Translation", "admin_nav_import": "Import", "admin_nav_changelog": "Changelog", "admin_nav_image_gen": "Image Gen", "admin_nav_text_gen": "Text Gen", "admin_nav_catalogue_tools": "Catalogue Tools", "admin_nav_ai_jobs": "AI Jobs", "admin_nav_notifications": "Notifications", "admin_nav_feedback": "Feedback", "admin_nav_errors": "Errors", "admin_nav_analytics": "Analytics", "admin_nav_logs": "Logs", "admin_nav_uptime": "Uptime", "admin_nav_push": "Push", "admin_nav_gitea": "Gitea", "admin_nav_grafana": "Grafana", "admin_scrape_status_idle": "Idle", "admin_scrape_status_running": "Running", "admin_scrape_full_catalogue": "Full catalogue", "admin_scrape_single_book": "Single book", "admin_scrape_quick_genres": "Quick genres", "admin_scrape_task_history": "Task history", "admin_scrape_filter_placeholder": "Filter by kind, status or URL\u2026", "admin_scrape_no_matching": "No matching tasks.", "admin_scrape_start": "Start scrape", "admin_scrape_queuing": "Queuing\u2026", "admin_scrape_running": "Running\u2026", "admin_audio_filter_jobs": "Filter by slug, voice or status\u2026", "admin_audio_filter_cache": "Filter by slug, chapter or voice\u2026", "admin_audio_no_matching_jobs": "No matching jobs.", "admin_audio_no_jobs": "No audio jobs yet.", "admin_audio_cache_empty": "Audio cache is empty.", "admin_audio_no_cache_results": "No results.", "admin_changelog_gitea": "Gitea releases", "admin_changelog_no_releases": "No releases found.", "admin_changelog_load_error": "Could not load releases: {error}", "comments_top": "Top", "comments_new": "New", "comments_posting": "Posting\u2026", "comments_login_link": "Log in", "comments_login_suffix": "to leave a comment.", "comments_anonymous": "Anonymous", "reader_audio_narration": "Audio Narration", "reader_playing": "Playing \u2014 controls below", "reader_paused": "Paused \u2014 controls below", "reader_ch_ready": "Ch.{n} ready", "reader_ch_preparing": "Preparing Ch.{n}\u2026 {percent}%", "reader_ch_generate_on_nav": "Ch.{n} will generate on navigate", "reader_now_playing": "Now playing: {title}", "reader_load_this_chapter": "Load this chapter", "reader_generate_samples": "Generate missing samples", "reader_voice_applies_next": "New voice applies on next \u201cPlay narration\u201d.", "reader_choose_voice": "Choose Voice", "reader_generating_narration": "Generating narration\u2026", "profile_font_family": "Font Family", "profile_font_system": "System", "profile_font_serif": "Serif", "profile_font_mono": "Monospace", "profile_text_size": "Text Size", "profile_text_size_sm": "Small", "profile_text_size_md": "Normal", "profile_text_size_lg": "Large", "profile_text_size_xl": "X-Large", "feed_page_title": "Feed — LibNovel", "feed_heading": "Following Feed", "feed_subheading": "Books your followed users are reading", "feed_empty_heading": "Nothing here yet", "feed_empty_body": "Follow other readers to see what they're reading.", "feed_not_logged_in": "Sign in to see your feed.", "feed_reader_label": "reading", "feed_chapters_label": "{n} chapters", "feed_browse_cta": "Browse catalogue", "feed_find_users_cta": "Discover readers", "admin_translation_page_title": "Translation \u2014 Admin", "admin_translation_heading": "Machine Translation", "admin_translation_tab_enqueue": "Enqueue", "admin_translation_tab_jobs": "Jobs", "admin_translation_filter_placeholder": "Filter by slug, lang, or status\u2026", "admin_translation_no_matching": "No matching jobs.", "admin_translation_no_jobs": "No translation jobs yet.", "admin_ai_jobs_page_title": "AI Jobs \u2014 Admin", "admin_ai_jobs_heading": "AI Jobs", "admin_ai_jobs_subheading": "Background AI generation tasks", "admin_text_gen_page_title": "Text Gen \u2014 Admin", "admin_text_gen_heading": "Text Generation" }