goosemusic 1.2.0

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: "Звычайны",

    playlist_not_found: "Плэйліст ня знойдзены",
    add_local: "Дадаць лякальны",
    downloaded_tracks: "Спампаваныя трэкі",
    no_downloaded_tracks: "Няма спампаваных трэкаў",

    ctx_play: "Граць",
    ctx_play_local: "Граць лакальна",
    ctx_edit: "Зьмяніць",
    ctx_go_to_artist: "Перайсьці да выканаўцы",
    ctx_add_to_playlist: "Дадаць у плэйліст",
    ctx_download: "Спампаваць",
    ctx_song_radio: "Радыё трэка",
    ctx_artist_radio: "Радыё выканаўцы",
    ctx_remove_from_queue: "Прыбраць з чаргі",
    ctx_remove_from_playlist: "Прыбраць з плэйліста",
    sub_play_via: "Граць праз",
    sub_download_from: "Спампаваць з",
    sub_via: "Праз",
    sub_on: "На",
    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: "Id",
    lbl_url: "Url",
    lbl_artist_id: "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: "Перадвызначаная крыніца стрымінгу і спамповак",
    normalize_volume_lbl: "Нармалізаваць гучнасьць паміж трэкамі",
    download_dir_lbl: "Папка спамповак",
    cache_size_lbl: "Макс. памер кэша стрымінгу (МБ)",
    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: "Для гэтага трэка тэкст ня знойдзены.",
    select_playlist_drop: "Выберыце плэйліст, каб кінуць у яго трэкі",
    reordered_playlist: "Плэйліст пераўпарадкаваны",

    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!("Дададзена: {}", be_tracks(n)),
    added_to: |n, to| format!("Дададзена: {} у {to}", be_tracks(n)),
    removed_n: |n| format!("Выдалена: {}", be_tracks(n)),
    removed_from: |n, from| format!("Выдалена: {} з {from}", be_tracks(n)),
    pasted_into: |n, into| format!("Устаўлена: {} у {into}", be_tracks(n)),
    saved_title: |t| format!("«{t}» захавана ў бібліятэку"),
    playlist_created: |n| format!("Плэйліст «{n}» створаны"),
    added_local: |n| format!("Дададзена: {} (выберыце плэйліст для ўпарадкаваньня)", be_tracks(n)),
    downloading_n: |n| format!("Спампоўваньне {}", be_tracks(n)),
    resolving_on: |title, p| format!("Вырашэньне «{title}» на {p}"),
    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}"),
    radio_label: |w, name| format!("Радыё ({w}): {name}"),
    ctx_add_to_playlist_n: |n| format!("Дадаць {} у плэйліст", be_tracks(n)),
    ctx_download_n: |n| format!("Спампаваць {}", be_tracks(n)),
    ctx_remove_from_queue_n: |n| format!("Прыбраць {} з чаргі", be_tracks(n)),
    ctx_remove_from_playlist_n: |n| format!("Прыбраць {} з плэйліста", be_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: "Падтрымлівае плэйлісты Spotify, экспартаваныя з https://exportify.net/.",
    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!("Імпартавана {}", be_tracks(n)),
    import_imported_into: |n, into| format!("Імпартавана {} у {into}", be_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: "Патокавае перадаваньне і спампоўка аўдыё (абавязкова)",
    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}"),
};

fn be_tracks(n: usize) -> String {
    let m10 = n % 10;
    let m100 = n % 100;
    if m10 == 1 && m100 != 11 {
        format!("{n} трэк")
    } else if (2..=4).contains(&m10) && !(12..=14).contains(&m100) {
        format!("{n} трэкі")
    } else {
        format!("{n} трэкаў")
    }
}