{
  "$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_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_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_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"
}
