goosemusic 1.3.2

A music player with YouTube search, local playback, and OS media controls
use super::Strings;
use crate::providers::ProviderId;

pub const STRINGS: Strings = Strings {
    search: "खोज",
    downloads: "डाउनलोड",
    settings: "सेटिंग्स",
    library: "लाइब्रेरी",
    nothing_saved_yet: "अभी तक कुछ सहेजा नहीं गया",
    new_playlist_name: "नई प्लेलिस्ट का नाम",

    queue: "कतार",
    recently_played: "हाल ही में चलाए गए",
    now_playing_from: "अभी चल रहा है से",
    now_playing: "अभी चल रहा है",
    up_next: "आगे चलाने के लिए",
    no_track_playing: "कोई ट्रैक नहीं चल रहा",
    no_more_tracks_in_queue: "कतार में और कोई ट्रैक नहीं",
    no_recently_played_tracks: "हाल ही में चलाए गए कोई ट्रैक नहीं",

    not_playing: "कुछ नहीं चल रहा",
    no_tracks_found: "कोई ट्रैक नहीं मिला",

    searching: "खोज रहे हैं…",
    loading: "लोड हो रहा है…",
    load_more: "और लोड करें",
    no_results_found: "कोई परिणाम नहीं मिला",
    no_recent_searches: "कोई हालिया खोज नहीं",
    generating_radio: "रेडियो बन रहा है…",

    not_an_artist_page: "यह कलाकार पृष्ठ नहीं है",
    provided_by: "प्रदाता",
    retry: "पुनः प्रयास",
    nothing_here: "यहाँ कुछ नहीं है",
    most_popular_songs: "सबसे लोकप्रिय गाने",
    albums: "एल्बम",
    playlists: "प्लेलिस्ट",
    fans_also_like: "प्रशंसकों को यह भी पसंद है",

    looking_up_lyrics: "गाने के बोल खोज रहे हैं…",
    play_a_track_for_lyrics: "इसके बोल देखने के लिए एक ट्रैक चलाएँ।",
    lyrics_selectable: "चयन योग्य",
    lyrics_synced: "सिंक किए गए",
    lyrics_plain: "सादा",
    lyrics_translations: "अनुवाद",
    lyrics_original: "मूल",
    add_custom: "बोल जोड़ें",
    lyrics_name: "नाम",
    translate_with_ai: "AI से अनुवाद करें",
    translate_title: "AI से बोलों का अनुवाद करें",
    translate_language_lbl: "लक्षित भाषा",
    translate_prompt_lbl: "प्रॉम्प्ट",
    translate_submit: "अनुवाद करें",
    translate_reset: "प्रॉम्प्ट रीसेट करें",
    translating: "अनुवाद हो रहा है…",
    translation_ready: "अनुवाद तैयार — जाँचें और सहेजें",
    translation_language_empty: "लक्षित भाषा दर्ज करें",
    no_lyrics_to_translate: "इस ट्रैक के लिए अनुवाद हेतु कोई बोल नहीं हैं।",
    translation_not_configured: "सेटिंग्स में सर्वर URL और मॉडल भरें।",
    translation_failed: |e| format!("अनुवाद विफल: {e}"),
    sec_translation: "AI अनुवाद",
    translation_base_url_lbl: "सर्वर URL (OpenAI-संगत)",
    translation_api_key_lbl: "API कुंजी (स्थानीय सर्वर हेतु खाली)",
    translation_model_lbl: "मॉडल",
    translation_refresh_models: "मॉडल सूची माँगें",
    translation_no_models: "इस सर्वर पर कोई मॉडल नहीं मिला।",
    translation_models_failed: |e| format!("मॉडल सूची लोड नहीं हो सकी: {e}"),
    edit_lyrics: "बोल संपादित करें",
    lyrics_editor_hint: "प्रति पंक्ति एक बोल। सिंक किए गए बोलों के लिए [mm:ss.xx] जोड़ें, या सादा छोड़ दें। किसी भी पंक्ति के नीचे `# note` पंक्ति जोड़ें, टिप्पणी बोलों के नीचे दिखेगी।",

    playlist_not_found: "प्लेलिस्ट नहीं मिली",
    add_local: "स्थानीय जोड़ें",
    downloaded_tracks: "डाउनलोड किए गए ट्रैक",
    no_downloaded_tracks: "कोई डाउनलोड किए गए ट्रैक नहीं",

    ctx_play: "चलाएँ",
    ctx_play_local: "स्थानीय चलाएँ",
    ctx_edit: "संपादित करें",
    ctx_go_to_artist: "कलाकार पर जाएँ",
    ctx_add_to_queue: "कतार में जोड़ें",
    ctx_add_to_playlist: "प्लेलिस्ट में जोड़ें",
    ctx_download: "डाउनलोड",
    ctx_song_radio: "गाने का रेडियो",
    ctx_artist_radio: "कलाकार का रेडियो",
    ctx_remove_from_queue: "कतार से हटाएँ",
    ctx_remove_from_playlist: "प्लेलिस्ट से हटाएँ",
    ctx_remove_from_recent: "हाल ही में चलाए गए से हटाएँ",
    ctx_clear_cache: "कैश साफ़ करें",
    sub_play_via: "इसके माध्यम से चलाएँ",
    sub_download_from: "से डाउनलोड करें",
    sub_via: "माध्यम",
    sub_on: "पर",
    sub_clear_cache_from: "से साफ़ करें",
    via_search_suffix: "(खोज)",

    current: "(वर्तमान)",
    select: "चुनें",
    find: "खोजें",
    finding: "खोज रहे हैं…",
    found_on: |p| format!("{p} पर मिला"),
    not_linked: "लिंक नहीं किया गया",
    providers: "प्रदाता",
    no_provider_data: "इस ट्रैक का कोई प्रदाता डेटा नहीं है।",
    save: "सहेजें",
    cancel: "रद्द करें",
    edit_track: "ट्रैक संपादित करें",
    lbl_title: "शीर्षक",
    lbl_artist: "कलाकार",
    ph_track_title: "ट्रैक का शीर्षक",
    ph_track_artist: "ट्रैक का कलाकार",
    delete: "हटाएँ",
    delete_playlist_q: "प्लेलिस्ट हटाएँ?",
    tracks_wont_be_deleted: "ट्रैक हटाएँ नहीं जाएँगे।",
    lbl_id: "आईडी",
    lbl_url: "यूआरएल",
    lbl_artist_id: "कलाकार आईडी",
    lbl_duration_secs: "अवधि (सेकंड में)",
    lbl_thumbnail: "थंबनेल",
    lbl_album: "एल्बम",

    sec_playback: "प्लेबैक",
    sec_storage: "स्टोरेज",
    sec_history: "इतिहास",
    sec_appearance: "दिखावट",
    sec_dependencies: "निर्भरताएँ",
    theme_lbl: "थीम",
    language_lbl: "भाषा",
    default_provider_lbl: "डिफ़ॉल्ट स्ट्रीमिंग और डाउनलोड प्रदाता",
    cookie_browser_lbl: "ब्राउज़र कुकीज़ (आयु-प्रतिबंधित वीडियो के लिए)",
    cookies_off: "बंद",
    normalize_volume_lbl: "ट्रैक्स के बीच वॉल्यूम सामान्य करें",
    download_dir_lbl: "डाउनलोड निर्देशिका",
    cache_size_lbl: "अधिकतम स्ट्रीम कैश आकार (MB)",
    hist_rows_lbl: "दिखाई गई खोज इतिहास पंक्तियाँ",
    hist_entries_lbl: "सहेजी गई खोज इतिहास प्रविष्टियाँ",
    recent_kept_lbl: "सहेजे गए हाल ही में चलाए गए ट्रैक",
    reset_defaults: "डिफ़ॉल्ट पर रीसेट करें",

    find_in_list: "सूची में खोजें…",
    scope_songs: "गाने",
    scope_videos: "वीडियो",
    scope_artists: "कलाकार",
    scope_albums: "एल्बम",
    scope_playlists: "प्लेलिस्ट",
    radio_word_song: "गाना",
    radio_word_artist: "कलाकार",

    lyrics_copied: "बोल क्लिपबोर्ड पर कॉपी किए गए",
    saved_to_library: "लाइब्रेरी में सहेजा गया",
    removed_from_library: "लाइब्रेरी से हटाया गया",
    no_lyrics_found: "इस ट्रैक के लिए कोई बोल नहीं मिले।",
    lyrics_saved: "कस्टम बोल सहेजे गए",
    lyrics_deleted: "कस्टम बोल हटाए गए",
    lyrics_empty: "बोल खाली नहीं हो सकते",
    lyrics_name_empty: "अपने बोलों को एक नाम दें",
    select_playlist_drop: "ट्रैक डालने के लिए एक प्लेलिस्ट चुनें",
    reordered_playlist: "प्लेलिस्ट पुनः व्यवस्थित की गई",
    max_panes_reached: "अधिकतम पैन संख्या तक पहुँच गए",

    n_saved: |n| format!("{n} सहेजे गए"),
    n_plays: |n| format!("{} प्लेबैक", crate::util::format_count(n)),
    search_placeholder: |p| match p {
        ProviderId::YouTube => "YouTube Music पर खोजें…".into(),
        ProviderId::Local => "खोजें…".into(),
        other => format!("{} पर खोजें…", other.label()),
    },
    added: |n| format!("जोड़े गए {}", hi_tracks(n)),
    added_to: |n, to| format!("जोड़े गए {} को {to}", hi_tracks(n)),
    removed_n: |n| format!("हटाए गए {}", hi_tracks(n)),
    removed_from: |n, from| format!("हटाए गए {} से {from}", hi_tracks(n)),
    pasted_into: |n, into| format!("चिपकाए गए {} में {into}", hi_tracks(n)),
    saved_title: |t| format!("\"{t}\" को लाइब्रेरी में सहेजा गया"),
    playlist_created: |n| format!("प्लेलिस्ट \"{n}\" बनाई गई"),
    added_local: |n| format!("जोड़े गए {} (व्यवस्थित करने के लिए एक प्लेलिस्ट चुनें)", hi_tracks(n)),
    downloading_n: |n| format!("डाउनलोड हो रहे हैं {}", hi_tracks(n)),
    resolving_on: |title, p| format!("\"{title}\" को {p} पर हल कर रहे हैं…"),
    resolving_player_client: "संगत प्लेयर क्लाइंट हल कर रहे हैं…",
    resolved_player_client: |c| format!("प्लेयर क्लाइंट हल हो गया: {c}"),
    player_client_unavailable: "कोई संगत प्लेयर क्लाइंट नहीं मिला, डिफ़ॉल्ट का उपयोग कर रहे हैं…",
    provider_no_radio: |p| format!("{p} रेडियो समर्थित नहीं करता"),
    generating_radio_for: |w, name| format!("{w} के लिए रेडियो बन रहा है: {name}"),
    could_not_find_on: |name, p| format!("\"{name}\" को {p} पर नहीं मिला"),
    opening: |l| format!("खोल रहे हैं: {l}"),
    opening_artist: |name| format!("कलाकार खोल रहे हैं: {name}"),
    download_complete: |path| format!("डाउनलोड पूर्ण! {path} में सहेजा गया"),
    failed_resolve_on: |title, p, e| format!("\"{title}\" को {p} पर हल करने में विफल: {e}"),
    couldnt_load: |e| format!("लोड नहीं हो सका: {e}"),
    couldnt_load_lyrics: |e| format!("बोल लोड नहीं हो सके: {e}"),
    search_failed: |e| format!("खोज विफल: {e}"),
    cache_cleared_for: |p| format!("{p} के लिए कैश साफ़ किया गया"),
    radio_label: |w, name| format!("रेडियो ({w}): {name}"),
    ctx_add_to_playlist_n: |n| format!("{} प्लेलिस्ट में जोड़ें", hi_tracks(n)),
    ctx_add_to_queue_n: |n| format!("{} कतार में जोड़ें", hi_tracks(n)),
    ctx_download_n: |n| format!("डाउनलोड करें {}", hi_tracks(n)),
    ctx_remove_from_queue_n: |n| format!("{} कतार से हटाएँ", hi_tracks(n)),
    ctx_remove_from_playlist_n: |n| format!("{} प्लेलिस्ट से हटाएँ", hi_tracks(n)),
    ctx_remove_from_recent_n: |n| format!("{} हाल ही में चलाए गए से हटाएँ", hi_tracks(n)),

    import_playlist: "प्लेलिस्ट आयात करें",
    import_method_native: "देशी",
    import_method_filelist: "फ़ाइल सूची",
    import_method_csv: "CSV",
    import_native_hint: "playlists.json फ़ाइल से प्लेलिस्ट आयात करता है।",
    import_csv_name_col: "नाम कॉलम",
    import_csv_artist_col: "कलाकार कॉलम",
    import_csv_album_col: "एल्बम कॉलम",
    import_csv_preset: "प्रीसेट",
    import_csv_preset_default: "डिफ़ॉल्ट",
    import_csv_preset_exportify: "Exportify",
    import_csv_exportify_note: "https://exportify.net/ से निर्यात किए गए Spotify प्लेलिस्ट का समर्थन करता है।",
    import_pattern_lbl: "फ़ाइल नाम पैटर्न",
    import_playlist_name: "प्लेलिस्ट का नाम",
    import_add_pattern: "पैटर्न जोड़ें",
    import_select_file: "फ़ाइल चुनें",
    import_select_folder: "फ़ोल्डर चुनें",
    import_pattern_conflict: |a, b| {
        format!(
            "पैटर्न \"{a}\" और \"{b}\" एक ही फ़ाइल से मेल खा सकते हैं जिनमें विरोधाभासी फ़ील्ड हैं। एक को हटाएँ या ठीक करें।"
        )
    },
    import_playlists_imported: |n| format!("आयातित {}", hi_tracks(n)),
    import_imported_into: |n, into| format!("आयातित {} में {into}", hi_tracks(n)),
    import_no_tracks: "आयात करने के लिए कोई ट्रैक नहीं मिला।",
    import_no_match: "कोई फ़ाइल पैटर्न से मेल नहीं खाती।",
    import_bad_file: "चयनित फ़ाइल नहीं पढ़ी जा सकी।",

    deps_title: "अनुपस्थित निर्भरताएँ",
    deps_intro: "ऐप द्वारा उपयोग किए जाने वाले कुछ उपकरण अनुपस्थित हैं। चुनें कि कौन से इंस्टॉल करने हैं, या जारी रखने के लिए छोड़ें (जब तक वे उपलब्ध नहीं हो जाते, खोज/स्ट्रीमिंग काम नहीं कर सकती)।",
    deps_install: "इंस्टॉल करें",
    deps_install_selected: "चयनित इंस्टॉल करें",
    deps_discard: "छोड़ें",
    deps_installing: "इंस्टॉल हो रहा है…",
    deps_installed: "इंस्टॉल किया गया",
    deps_failed: "विफल",
    deps_installed_toast: "चयनित निर्भरताएँ इंस्टॉल की गईं।",
    deps_yt_dlp_desc: "ऑडियो स्ट्रीम और डाउनलोड करता है (YouTube और SoundCloud के लिए आवश्यक)",
    deps_ytmusicapi_desc: "YouTube Music खोज (वैकल्पिक, yt-dlp पर वापस जाता है)",
    deps_python3_desc: "ytmusicapi द्वारा आवश्यक (YouTube Music खोज)",
    deps_ytmusicapi_requires_python: "Python 3 आवश्यक है (पहले इंस्टॉल करें)",
    deps_play_requires_yt_dlp: "प्लेबैक के लिए yt-dlp चाहिए — इसे चलाने के लिए स्टार्ट-अप डायलॉग से इंस्टॉल करें।",
    deps_source_not_playable: "यह स्रोत चलाया नहीं जा सकता।",
    deps_found_section_title: "आपके सिस्टम पर मिले",
    deps_found_section_intro: "ये पहले से उपलब्ध हैं। ऐप द्वारा प्रबंधित प्रति इंस्टॉल करने के लिए किसी को चिह्नित करें (ऐप की प्रति सिस्टम की प्रति को प्राथमिकता देती है)।",
    deps_found_on_system: "आपके सिस्टम पर मिले",
    deps_managed_by_app: "इंस्टॉल किया गया (ऐप द्वारा प्रबंधित)",
    deps_not_installed: "इंस्टॉल नहीं किया गया",
    deps_delete: "हटाएँ",
    deps_deleting: "हटाया जा रहा है…",
    deps_deleted: "हटाया गया",
    deps_delete_failed: "हटाने में विफल",

    sec_updates: "अपडेट",
    check_for_updates: "अपडेट की जाँच करें",
    checking_for_updates: "अपडेट खोजा जा रहा है…",
    up_to_date: "नवीनतम संस्करण",
    current_version: |v| format!("संस्करण {v}"),
    update_available: |v| format!("संस्करण {v} उपलब्ध है। अपडेट करने के लिए सेटिंग्स पर जाएं।"),
    update_now: "अभी अपडेट करें",
    updating: "अपडेट हो रहा है…",
    update_applied: |v| format!("संस्करण {v} में अपडेटेड। पुनरारंभ हो रहा है…"),
    package_managed: "ऐप्लिकेशन डायरेक्टरी में लिखने का अनुमति नहीं है। यदि पैकेज मैनेजर के माध्यम से स्थापित किया गया है, तो उसे उपयोग करें।",
    update_failed: |e| format!("अपडेट विफल: {e}"),
    percent: |pct| format!("{pct}%"),
    list_match_pos: |pos, total| format!("{pos}/{total}"),
    sub_menu_label: |base, provider, suffix| format!("{base} {provider} {suffix}"),
    deps_failed_detail: |e| format!("Failed: {e}"),
    deps_delete_failed_detail: |e| format!("Delete failed: {e}"),

    sc_title: "कीबोर्ड शॉर्टकट",
    sc_sec_list: "ट्रैक सूची",
    sc_move: "सूची में घूमें (चक्रीय)",
    sc_focus_panel: "कतार या सूची पर फ़ोकस करें",
    sc_first_last: "पहली / अंतिम पंक्ति",
    sc_page: "पेज / आधा पेज",
    sc_play: "फ़ोकस किया गया ट्रैक चलाएँ",
    sc_sec_select: "चयन और संपादन",
    sc_extend: "चयन बढ़ाएँ",
    sc_toggle_sel: "पंक्ति का चयन बदलें",
    sc_select_all: "सूची में सब चुनें",
    sc_copy_paste: "चुने गए ट्रैक कॉपी / पेस्ट करें",
    sc_delete: "चुने गए ट्रैक हटाएँ",
    sc_esc: "पॉपअप बंद करें, फिर चयन साफ़ करें, फिर खोज पर लौटें",
    sc_sec_search: "खोज",
    sc_focus_search: "खोज पर फ़ोकस करें",
    sc_stage_provider: "खोज प्रदाता तैयार करें (लंबित)",
    sc_stage_scope: "खोज दायरा तैयार करें (लंबित)",
    sc_run_search: "तैयार खोज चलाएँ",
    sc_find_list: "सूची में फ़ज़ी खोज (मिलानों में जाएँ)",
    sc_sec_playlists: "प्लेलिस्ट और इतिहास",
    sc_prev_next_pl: "पिछली / अगली प्लेलिस्ट",
    sc_jump: "प्लेलिस्ट जम्पर (Enter खोलता है, Shift+Enter चलाता है)",
    sc_back_fwd: "पैन में पीछे / आगे",
    sc_sec_playback: "प्लेबैक",
    sc_play_pause: "चलाएँ / रोकें",
    sc_next_prev: "अगला / पिछला ट्रैक",
    sc_mute: "म्यूट करें",
    sc_volume: "वॉल्यूम घटाएँ / बढ़ाएँ",
    sc_seek: "5 सेकंड पीछे / आगे (Shift: 10 सेकंड)",
    sc_toggles: "कतार / दोहराएँ / बोल / कतार टैब",
    sc_sec_panes: "पैन",
    sc_split: "साथ-साथ / एक के नीचे एक बाँटें",
    sc_close_pane: "पैन बंद करें",
    sc_adj_pane: "बगल वाले पैन पर फ़ोकस करें",
    sc_cycle_pane: "पैनों में जाएँ / कूदें",
    sc_sec_menu: "संदर्भ मेनू",
    sc_open_menu: "फ़ोकस किए गए ट्रैक के लिए खोलें",
    sc_nav_menu: "मेनू में घूमें",
};

fn hi_tracks(n: usize) -> String {
    if n == 1 {
        "1 ट्रैक".into()
    } else {
        format!("{n} ट्रैक")
    }
}