use super::Strings;
use crate::providers::ProviderId;
pub const STRINGS: Strings = Strings {
search: "Rechercher",
downloads: "Téléchargements",
settings: "Paramètres",
library: "Bibliothèque",
nothing_saved_yet: "Rien n'est encore enregistré",
new_playlist_name: "Nom de la nouvelle playlist",
queue: "File d'attente",
recently_played: "Écoutés récemment",
now_playing_from: "Lecture en cours depuis",
now_playing: "En lecture",
up_next: "À venir",
no_track_playing: "Aucune piste en lecture",
no_more_tracks_in_queue: "Plus de pistes dans la file",
no_recently_played_tracks: "Aucune piste écoutée récemment",
not_playing: "Aucune lecture",
no_tracks_found: "Aucune piste trouvée",
searching: "Recherche…",
loading: "Chargement…",
load_more: "Charger plus",
no_results_found: "Aucun résultat",
no_recent_searches: "Aucune recherche récente",
generating_radio: "Génération de la radio…",
not_an_artist_page: "Ce n'est pas une page d'artiste",
provided_by: "Fourni par",
retry: "Réessayer",
nothing_here: "Rien par ici",
most_popular_songs: "Titres les plus populaires",
albums: "Albums",
playlists: "Playlists",
fans_also_like: "Les fans aiment aussi",
looking_up_lyrics: "Recherche des paroles…",
play_a_track_for_lyrics: "Lisez une piste pour voir ses paroles.",
lyrics_selectable: "Sélectionnable",
lyrics_synced: "Synchronisées",
lyrics_plain: "Simple",
playlist_not_found: "Playlist introuvable",
add_local: "Ajouter local",
downloaded_tracks: "Pistes téléchargées",
no_downloaded_tracks: "Aucune piste téléchargée",
ctx_play: "Lire",
ctx_play_local: "Lire le fichier local",
ctx_edit: "Modifier",
ctx_go_to_artist: "Aller à l'artiste",
ctx_add_to_playlist: "Ajouter à la playlist",
ctx_download: "Télécharger",
ctx_song_radio: "Radio du titre",
ctx_artist_radio: "Radio de l'artiste",
ctx_remove_from_queue: "Retirer de la file",
ctx_remove_from_playlist: "Retirer de la playlist",
sub_play_via: "Lire via",
sub_download_from: "Télécharger depuis",
sub_via: "Via",
sub_on: "Sur",
via_search_suffix: "(recherche)",
current: "(actuelle)",
select: "sélectionner",
find: "Rechercher",
finding: "Recherche…",
found_on: |p| format!("Trouvé sur {p}"),
not_linked: "Non lié",
providers: "Fournisseurs",
no_provider_data: "Cette piste n'a aucune donnée de fournisseur.",
save: "Enregistrer",
cancel: "Annuler",
edit_track: "Modifier la piste",
lbl_title: "Titre",
lbl_artist: "Artiste",
ph_track_title: "Titre de la piste",
ph_track_artist: "Artiste de la piste",
delete: "Supprimer",
delete_playlist_q: "Supprimer la playlist ?",
tracks_wont_be_deleted: "Les pistes ne seront pas supprimées.",
lbl_id: "Id",
lbl_url: "Url",
lbl_artist_id: "Id de l'artiste",
lbl_duration_secs: "Durée (en secondes)",
lbl_thumbnail: "Miniature",
lbl_album: "Album",
sec_playback: "Lecture",
sec_storage: "Stockage",
sec_history: "Historique",
sec_appearance: "Apparence",
sec_dependencies: "Dépendances",
theme_lbl: "Thème",
language_lbl: "Langue",
default_provider_lbl: "Fournisseur de streaming et de téléchargement par défaut",
normalize_volume_lbl: "Normaliser le volume entre les pistes",
download_dir_lbl: "Dossier de téléchargement",
cache_size_lbl: "Taille max. du cache de streaming (Mo)",
hist_rows_lbl: "Lignes d'historique de recherche affichées",
hist_entries_lbl: "Entrées d'historique de recherche conservées",
recent_kept_lbl: "Pistes récemment écoutées conservées",
reset_defaults: "Réinitialiser",
find_in_list: "Rechercher dans la liste…",
scope_songs: "Titres",
scope_videos: "Vidéos",
scope_artists: "Artistes",
scope_albums: "Albums",
scope_playlists: "Playlists",
radio_word_song: "titre",
radio_word_artist: "artiste",
lyrics_copied: "Paroles copiées dans le presse-papiers",
saved_to_library: "Enregistré dans la bibliothèque",
removed_from_library: "Retiré de la bibliothèque",
no_lyrics_found: "Aucune parole trouvée pour cette piste.",
select_playlist_drop: "Sélectionnez une playlist pour y déposer les pistes",
reordered_playlist: "Playlist réorganisée",
n_saved: |n| format!("{n} enregistré{}", if n == 1 { "" } else { "s" }),
n_plays: |n| format!("{} écoutes", crate::util::format_count(n)),
search_placeholder: |p| match p {
ProviderId::YouTube => "Rechercher sur YouTube Music…".into(),
ProviderId::Local => "Rechercher…".into(),
other => format!("Rechercher sur {}…", other.label()),
},
added: |n| format!("Ajoutées {}", fr_tracks(n)),
added_to: |n, to| format!("Ajoutées {} à {to}", fr_tracks(n)),
removed_n: |n| format!("Retirées {}", fr_tracks(n)),
removed_from: |n, from| format!("Retirées {} de {from}", fr_tracks(n)),
pasted_into: |n, into| format!("Collées {} dans {into}", fr_tracks(n)),
saved_title: |t| format!("« {t} » enregistré dans la bibliothèque"),
playlist_created: |n| format!("Playlist « {n} » créée"),
added_local: |n| format!("Ajoutées {} (sélectionnez une playlist pour les organiser)", fr_tracks(n)),
downloading_n: |n| format!("Téléchargement de {}…", fr_tracks(n)),
resolving_on: |title, p| format!("Résolution de « {title} » sur {p}…"),
provider_no_radio: |p| format!("{p} ne prend pas en charge la radio"),
generating_radio_for: |w, name| format!("Génération de la radio pour {w} : {name}…"),
could_not_find_on: |name, p| format!("Impossible de trouver « {name} » sur {p}"),
opening: |l| format!("Ouverture : {l}…"),
opening_artist: |name| format!("Ouverture de l'artiste : {name}…"),
download_complete: |path| format!("Téléchargement terminé ! Enregistré dans {path}"),
failed_resolve_on: |title, p, e| format!("Échec de la résolution de « {title} » sur {p} : {e}"),
couldnt_load: |e| format!("Impossible de charger : {e}"),
couldnt_load_lyrics: |e| format!("Impossible de charger les paroles : {e}"),
search_failed: |e| format!("Échec de la recherche : {e}"),
radio_label: |w, name| format!("Radio ({w}) : {name}"),
ctx_add_to_playlist_n: |n| format!("Ajouter {} à la playlist", fr_tracks(n)),
ctx_download_n: |n| format!("Télécharger {}", fr_tracks(n)),
ctx_remove_from_queue_n: |n| format!("Retirer {} de la file", fr_tracks(n)),
ctx_remove_from_playlist_n: |n| format!("Retirer {} de la playlist", fr_tracks(n)),
import_playlist: "Importer une playlist",
import_method_native: "Native",
import_method_filelist: "Liste de fichiers",
import_method_csv: "CSV",
import_native_hint: "Importe des playlists depuis un fichier playlists.json.",
import_csv_name_col: "Colonne de nom",
import_csv_artist_col: "Colonne d'artiste",
import_csv_album_col: "Colonne d'album",
import_csv_preset: "Préréglage",
import_csv_preset_default: "Par défaut",
import_csv_preset_exportify: "Exportify",
import_csv_exportify_note: "Prend en charge les playlists Spotify exportées depuis https://exportify.net/.",
import_pattern_lbl: "Motif de nom de fichier",
import_playlist_name: "Nom de la playlist",
import_add_pattern: "Ajouter un motif",
import_select_file: "Sélectionner un fichier",
import_select_folder: "Sélectionner un dossier",
import_pattern_conflict: |a, b| {
format!(
"Les motifs « {a} » et « {b} » peuvent correspondre au même fichier avec des champs en conflit. Supprimez ou corrigez l'un d'eux."
)
},
import_playlists_imported: |n| format!("Importées {}", fr_tracks(n)),
import_imported_into: |n, into| format!("Importées {} dans {}", fr_tracks(n), into),
import_no_tracks: "Aucune piste à importer.",
import_no_match: "Aucun fichier ne correspond aux motifs.",
import_bad_file: "Impossible de lire le fichier sélectionné.",
deps_title: "Dépendances manquantes",
deps_intro: "Certains outils utilisés par l'application sont manquants. Sélectionnez ceux à installer ou abandonnez pour continuer (la recherche et le streaming peuvent ne pas fonctionner tant qu'ils ne sont pas présents).",
deps_install: "Installer",
deps_install_selected: "Installer la sélection",
deps_discard: "Abandonner",
deps_installing: "Installation…",
deps_installed: "Installé",
deps_failed: "Échec",
deps_installed_toast: "Dépendances sélectionnées installées.",
deps_yt_dlp_desc: "Diffuse et télécharge l'audio (requis)",
deps_ytmusicapi_desc: "Recherche YouTube Music (optionnel, repli sur yt-dlp)",
deps_python3_desc: "Requis par ytmusicapi (recherche YouTube Music)",
deps_ytmusicapi_requires_python: "Nécessite Python 3 (à installer d'abord)",
deps_play_requires_yt_dlp: "La lecture nécessite yt-dlp ; installez-le depuis la boîte de dialogue de démarrage pour lire ceci.",
deps_source_not_playable: "Cette source ne peut pas être lue.",
deps_found_section_title: "Trouvées sur votre système",
deps_found_section_intro: "Celles-ci sont déjà disponibles. Cochez-en pour installer une copie gérée par l'application (la copie de l'application prime sur celle du système).",
deps_found_on_system: "Trouvées sur votre système",
deps_managed_by_app: "Installées (gérées par l'application)",
deps_not_installed: "Non installées",
deps_delete: "Supprimer",
deps_deleting: "Suppression…",
deps_deleted: "Supprimées",
deps_delete_failed: "Échec de la suppression",
sec_updates: "Mises à jour",
check_for_updates: "Vérifier les mises à jour",
checking_for_updates: "Recherche de mises à jour…",
up_to_date: "À jour",
current_version: |v| format!("Version {v}"),
update_available: |v| format!("Version {v} disponible. Allez dans Paramètres pour mettre à jour."),
update_now: "Mettre à jour",
updating: "Mise à jour…",
update_applied: |v| format!("Mis à jour vers {v}. Redémarrage…"),
package_managed: "Impossible de mettre à jour automatiquement (pas d'accès en écriture dans le répertoire de l'application). Si installé via un gestionnaire de paquets, utilisez-le pour mettre à jour.",
update_failed: |e| format!("Échec de la mise à jour : {e}"),
};
fn fr_tracks(n: usize) -> String {
if n <= 1 {
format!("{n} piste")
} else {
format!("{n} pistes")
}
}