diff --git a/src/languages/locales/fr.json b/src/languages/locales/fr.json index d50a0950..23a2cf04 100644 --- a/src/languages/locales/fr.json +++ b/src/languages/locales/fr.json @@ -44,7 +44,7 @@ "common": { "app": { "name": "Liner", - "description": "Plus de ce que vous aimez", + "description": "Plus de ce que tu aimes", "version": "Version 0.1.0" }, "sidebar": { @@ -72,14 +72,13 @@ "save_to_library": "Enregistrer dans la bibliothèque", "share": "Partager", "back": "Retour", - "forward": "Suivant", "link_copied": "Lien copié", "download": "Télécharger", "more": "Plus", "rename": "Renommer", "edit_description": "Modifier la description", "add_description": "Ajouter une description", - "import_sources_hint": "Collez un lien YouTube, SoundCloud, Spotify, Deezer ou Apple Music", + "import_sources_hint": "Colle un lien YouTube, SoundCloud, Spotify, Deezer ou Apple Music", "make_public": "Rendre publique", "delete": "Supprimer", "create": "Créer", @@ -88,9 +87,9 @@ "remove": "Retirer", "cancel": "Annuler", "confirm": "Confirmer", - "are_you_sure": "Êtes-vous sûr ?", + "are_you_sure": "Es-tu sûr ?", "delete_playlist_desc": "Cette playlist sera définitivement supprimée.", - "remove_from_library_desc": "Cet élément sera retiré de votre bibliothèque.", + "remove_from_library_desc": "Cet élément sera retiré de ta bibliothèque.", "remove_track_from_playlist_desc": "Ce titre sera retiré de cette playlist.", "close": "Fermer", "search": "Rechercher", @@ -98,14 +97,14 @@ "create_empty_playlist": "Créer une nouvelle playlist vide", "playlist_name": "Nom de la playlist", "import_playlist": "Importer une playlist", - "import_playlist_description": "Importez une playlist existante depuis Spotify ou YouTube", - "paste_link_placeholder": "Collez un lien…", + "import_playlist_description": "Importe une playlist existante depuis Spotify ou YouTube", + "paste_link_placeholder": "Colle un lien…", "magic_link": "Lien magique", - "magic_link_description": "Collez n'importe quel lien de streaming (titre, album, playlist ou artiste) et nous l'ouvrirons ou l'ajouterons automatiquement.", + "magic_link_description": "Colle n'importe quel lien de streaming (titre, album, playlist ou artiste) et nous l'ouvrirons ou l'ajouterons automatiquement.", "streaming_link_placeholder": "https://soundcloud.com/whi...", "streaming_link": "Lien de streaming", "import_soundcloud_likes": "Importer les J'aime SoundCloud", - "import_soundcloud_description": "Saisissez votre nom d'utilisateur SoundCloud pour importer vos titres aimés", + "import_soundcloud_description": "Saisis ton nom d'utilisateur SoundCloud pour importer tes titres aimés", "soundcloud_username_placeholder": "Nom d'utilisateur SoundCloud", "import_likes": "Importer les J'aime", "add_to_library": "Ajouter à la bibliothèque", @@ -116,7 +115,7 @@ "reposted_by": "Reposté par {name}", "and": " et ", "no_results": "Aucun résultat", - "try_another_search": "Essayez un autre terme de recherche.", + "try_another_search": "Essaie un autre terme de recherche.", "recent_searches": "Recherches récentes", "clear_recent": "Effacer", "all": "Tout", @@ -127,11 +126,11 @@ "tracks": "titres", "track": "titre", "followers": "{count} abonnés", - "select_playlist": "Choisissez la playlist dont le retirer :", - "track_not_in_playlist": "Ce titre ne figure dans aucune de vos playlists.", + "select_playlist": "Choisis la playlist dont tu veux retirer ce titre :", + "track_not_in_playlist": "Ce titre ne figure dans aucune de tes playlists.", "track_not_found": "Titre introuvable dans la playlist", "name_required": "Le nom est obligatoire", - "paste_link_first": "Collez d'abord un lien", + "paste_link_first": "Colle d'abord un lien", "added_to_library": "{type} ajouté à la bibliothèque", "added_to_library_success": "Ajouté à la bibliothèque", "failed_to_add_library": "Impossible d'ajouter à la bibliothèque", @@ -151,9 +150,9 @@ "importing_likes": "Importation des J'aime : {done} / {total} titres", "imported_likes": "{count} titres aimés importés !", "username_required": "Le nom d'utilisateur SoundCloud est obligatoire", - "import_failed_check": "Impossible d'importer les J'aime. Vérifiez le nom d'utilisateur et réessayez.", + "import_failed_check": "Impossible d'importer les J'aime. Vérifie le nom d'utilisateur et réessaie.", "failed_import_playlist": "Impossible d'importer la playlist", - "already_in_library": "{type} est déjà dans votre bibliothèque", + "already_in_library": "{type} est déjà dans ta bibliothèque", "failed_get_track": "Impossible de charger le titre", "playlist_created": "Playlist créée", "failed_create_playlist": "Impossible de créer la playlist", @@ -166,23 +165,23 @@ "add_to_playlist": "Ajouter à la playlist", "remove_from_playlist": "Retirer de la playlist", "no_items": "Aucun élément pour l'instant", - "your_library_here": "Votre bibliothèque apparaîtra ici quand vous y ajouterez des éléments.", - "try_another_search_clear": "Essayez un autre terme ou effacez la recherche.", + "your_library_here": "Ta bibliothèque apparaîtra ici quand tu y ajouteras des éléments.", + "try_another_search_clear": "Essaie un autre terme ou efface la recherche.", "youtube_thumbnail": "Miniature YouTube", "no_playlists_yet": "Aucune playlist pour l'instant", "failed_add_playlist": "Impossible d'ajouter à la playlist", "failed_add_track": "Impossible d'ajouter le titre", "description_placeholder": "Description (facultative)", "supported_sources": "Sources prises en charge", - "error_network": "Pas de connexion. Vérifiez votre connexion Internet et réessayez.", + "error_network": "Pas de connexion. Vérifie ta connexion Internet et réessaie.", "error_network_title": "Erreur réseau", - "error_server": "Un problème est survenu de notre côté. Réessayez plus tard.", + "error_server": "Un problème est survenu de notre côté. Réessaie plus tard.", "error_server_title": "Erreur du serveur", "error_timeout_title": "Délai du serveur dépassé", "error_not_found": "Introuvable. L'élément a peut-être été supprimé.", - "error_session_expired": "Session expirée. Veuillez vous reconnecter.", - "error_too_many": "Trop de requêtes. Patientez un peu et réessayez.", - "error_something_wrong": "Un problème est survenu. Réessayez.", + "error_session_expired": "Session expirée. Reconnecte-toi.", + "error_too_many": "Trop de requêtes. Patiente un peu et réessaie.", + "error_something_wrong": "Un problème est survenu. Réessaie.", "tracks_one": "{count} titre", "tracks_many": "{count} titres", "tracks_other": "{count} titres", @@ -197,8 +196,9 @@ "exitFullscreen": "Quitter le plein écran", "restore": "Restaurer", "maximize": "Agrandir", - "add_to_library_desc": "Cet élément sera ajouté à votre bibliothèque.", - "failed_to_remove_library": "Impossible de retirer de la bibliothèque" + "add_to_library_desc": "Cet élément sera ajouté à ta bibliothèque.", + "failed_to_remove_library": "Impossible de retirer de la bibliothèque", + "forward": "Suivant" }, "home": { "speedDial": "Accès rapide", @@ -216,7 +216,8 @@ "popularArtists": "Artistes tendance", "popularPlaylists": "Playlists populaires", "dailyMixes": "Mix quotidiens", - "dailyMixesSubtitle": "Des playlists fraîches composées autour de vos artistes et genres préférés" + "dailyMixesSubtitle": "Des playlists fraîches composées autour de tes artistes et genres préférés", + "load_failed": "Impossible de charger ton flux d'accueil" }, "library": { "title": "Bibliothèque", @@ -242,19 +243,19 @@ "find_music": "Rechercher", "create_playlist": "Créer une playlist", "no_playlists_title": "Aucune playlist pour l'instant", - "no_playlists_desc": "Créez votre première playlist ou importez des titres depuis d'autres services", + "no_playlists_desc": "Crée ta première playlist ou importe des titres depuis d'autres services", "no_albums_title": "Aucun album enregistré", - "no_albums_desc": "Enregistrez des albums depuis la recherche ou les recommandations pour les retrouver rapidement", + "no_albums_desc": "Enregistre des albums depuis la recherche ou les recommandations pour les retrouver rapidement", "no_artists_title": "Aucun artiste enregistré", - "no_artists_desc": "Enregistrez des artistes pour accéder rapidement à leur discographie", + "no_artists_desc": "Enregistre des artistes pour accéder rapidement à leur discographie", "search_music": "Rechercher de la musique", "local": { "title": "Sur cet appareil", - "subtitle": "Vos propres fichiers audio. Ils restent sur cet ordinateur et ne sont jamais envoyés à YouTube ou aux serveurs de Liner.", + "subtitle": "Tes propres fichiers audio. Ils restent sur cet ordinateur et ne sont jamais envoyés à YouTube ou aux serveurs de Liner.", "add_files": "Ajouter des fichiers", "importing": "Ajout en cours…", "empty_title": "Aucun fichier local pour le moment", - "empty_subtitle": "Ajoutez des fichiers MP3, FLAC, M4A, OGG, OPUS ou WAV, ou glissez-les n'importe où dans la fenêtre.", + "empty_subtitle": "Ajoute des fichiers MP3, FLAC, M4A, OGG, OPUS ou WAV, ou glisse-les n'importe où dans la fenêtre.", "drop_title": "Déposer pour ajouter à Liner", "drop_subtitle": "Les fichiers sont copiés uniquement sur cet appareil", "drop_count_one": "{count} fichier", @@ -274,19 +275,35 @@ "remove": "Supprimer de l'appareil", "remove_all": "Tout supprimer", "remove_all_title": "Supprimer toute la musique locale ?", - "remove_all_desc": "{tracks} ({size}) seront supprimés de Liner, avec leurs pochettes. Vos fichiers d'origine restent à leur place.", + "remove_all_desc": "{tracks} ({size}) seront supprimés de Liner, avec leurs pochettes. Tes fichiers d'origine restent à leur place.", "removed_all": "Musique locale supprimée" + }, + "offline_mix": { + "title": "Toute la musique hors ligne" + }, + "cached": { + "title": "Titres en cache", + "subtitle": "Titres conservés par Liner pendant ton écoute. Ils restent lisibles sans connexion jusqu'à ce que le cache fasse de la place pour les nouveaux.", + "clear_all": "Vider les titres en cache", + "empty_title": "Aucun titre en cache pour le moment", + "empty_subtitle": "Les titres que tu écoutes sont conservés ici temporairement pour démarrer instantanément et fonctionner hors ligne." + }, + "saved_count": "{saved} sur {total} téléchargés", + "saved": { + "subtitle": "Titres aimés téléchargés sur cet appareil. Ils restent lisibles sans connexion, avec les paroles.", + "empty_title": "Aucun titre aimé téléchargé", + "empty_subtitle": "Les titres aimés se téléchargent en arrière-plan pendant que tu es en ligne." } }, "login": { "welcome_back": "Bon retour", - "sign_in_to_account": "Connectez-vous à votre compte", - "auth_title_login": "Votre musique, à votre façon", - "auth_subtitle_login": "Connectez-vous et reprenez là où vous vous étiez arrêté.", + "sign_in_to_account": "Connecte-toi à ton compte", + "auth_title_login": "Ta musique, à ta façon", + "auth_subtitle_login": "Connecte-toi et reprends là où tu t'étais arrêté.", "auth_title_register": "Rejoindre Liner", - "auth_subtitle_register": "Créez un compte et commencez à construire votre bibliothèque personnelle.", - "profile_setup_title": "Configurez votre profil", - "profile_setup_subtitle": "Choisissez votre identifiant unique et votre nom affiché.", + "auth_subtitle_register": "Crée un compte et commence à construire ta bibliothèque personnelle.", + "profile_setup_title": "Configure ton profil", + "profile_setup_subtitle": "Choisis ton identifiant unique et ton nom affiché.", "btn_continue": "Continuer", "btn_back": "Retour", "username_hint": "3 à 30 caractères : lettres minuscules, chiffres ou tirets bas.", @@ -294,25 +311,25 @@ "label_username": "Nom d'utilisateur (@identifiant)", "placeholder_username": "soundwave", "label_display_name": "Nom affiché", - "placeholder_display_name": "Votre nom ou pseudonyme", + "placeholder_display_name": "Ton nom ou pseudonyme", "label_password": "Mot de passe", "label_confirm_password": "Confirmer le mot de passe", - "placeholder_email": "vous@exemple.com", - "placeholder_password": "Votre mot de passe", + "placeholder_email": "toi@exemple.com", + "placeholder_password": "Ton mot de passe", "placeholder_password_new": "Au moins 8 caractères", - "placeholder_confirm": "Répétez votre mot de passe", + "placeholder_confirm": "Répète ton mot de passe", "btn_sign_in": "Se connecter", "btn_signing_in": "Connexion…", "btn_create_account": "Créer un compte", "btn_creating_account": "Création du compte…", "separator_or": "ou", - "have_account": "Vous avez déjà un compte ?", + "have_account": "Tu as déjà un compte ?", "have_account_action": "Se connecter", - "legal": "En continuant, vous acceptez les", + "legal": "En continuant, tu acceptes les", "legal_tos": "Conditions d'utilisation", "legal_and": "et la", "legal_pp": "Politique de confidentialité", - "sign_in_google": "Connectez-vous à votre compte", + "sign_in_google": "Connecte-toi à ton compte", "sign_in_telegram": "Se connecter avec Telegram", "or": "ou", "handle_placeholder": "Identifiant", @@ -323,21 +340,21 @@ "continue_button": "Continuer", "verify_telegram_button": "Vérifier via Telegram", "cancel_button": "Annuler", - "agree_terms": "En vous connectant, vous acceptez nos", + "agree_terms": "En te connectant, tu acceptes nos", "tos": "CGU", "privacy_policy": "Politique de confidentialité", - "create_account": "Créez votre compte", - "choose_password": "Choisissez un mot de passe pour", - "verify_account": "Vérifiez votre compte", - "verify_description": "Vous devez effectuer la vérification via Telegram. Cliquez sur le bouton ci-dessous pour ouvrir le bot et compléter le captcha.", + "create_account": "Crée ton compte", + "choose_password": "Choisis un mot de passe pour", + "verify_account": "Vérifie ton compte", + "verify_description": "Tu dois effectuer la vérification via Telegram. Clique sur le bouton ci-dessous pour ouvrir le bot et compléter le captcha.", "waiting_telegram": "En attente de la vérification Telegram...", - "tos_agreement": "En vous connectant, vous acceptez nos", + "tos_agreement": "En te connectant, tu acceptes nos", "tos_link": "CGU", "privacy_link": "Politique de confidentialité", - "create_account_title": "Créez votre compte", + "create_account_title": "Crée ton compte", "password_min_chars": "Mot de passe (6 caractères min.)", "confirm_password_placeholder": "Confirmer le mot de passe", - "verify_account_title": "Vérifiez votre compte", + "verify_account_title": "Vérifie ton compte", "verify_via_telegram": "Vérifier via Telegram", "waiting_verification": "En attente de la vérification Telegram...", "back": "Retour", @@ -350,14 +367,14 @@ "show_password": "Afficher le mot de passe", "hide_password": "Masquer le mot de passe", "errors": { - "email_invalid": "Saisissez une adresse e-mail valide.", + "email_invalid": "Saisis une adresse e-mail valide.", "password_min_8": "Le mot de passe doit contenir au moins 8 caractères.", - "server_unavailable": "Impossible de joindre le serveur. Vérifiez votre connexion.", - "server_error": "Les serveurs de Liner rencontrent des difficultés. Réessayez dans quelques minutes.", + "server_unavailable": "Impossible de joindre le serveur. Vérifie ta connexion.", + "server_error": "Les serveurs de Liner rencontrent des difficultés. Réessaie dans quelques minutes.", "invalid_credentials": "E-mail ou mot de passe incorrect.", "email_already_used": "Cette adresse e-mail est déjà utilisée.", "username_invalid": "Le nom d'utilisateur doit contenir 3 à 30 lettres minuscules, chiffres ou tirets bas.", - "username_taken": "Ce nom d'utilisateur est déjà pris. Choisissez-en un autre.", + "username_taken": "Ce nom d'utilisateur est déjà pris. Choisis-en un autre.", "display_name_required": "Le nom affiché est obligatoire.", "handle_required": "l'identifiant est obligatoire", "handle_min": "l'identifiant doit contenir au moins {min} caractères", @@ -369,14 +386,16 @@ "wrong_password": "Mot de passe incorrect", "password_mismatch": "Les mots de passe ne correspondent pas.", "password_required_simple": "Le mot de passe est obligatoire", - "verification_timed_out": "Délai de vérification dépassé. Réessayez.", - "verification_expired": "La vérification a expiré. Réessayez.", + "verification_timed_out": "Délai de vérification dépassé. Réessaie.", + "verification_expired": "La vérification a expiré. Réessaie.", "login_denied": "Connexion refusée dans Telegram.", - "already_linked": "Ce compte Telegram est déjà lié à un autre compte. Connectez-vous plutôt avec Telegram.", - "account_not_found": "Compte introuvable ou session expirée. Essayez de vous inscrire.", + "already_linked": "Ce compte Telegram est déjà lié à un autre compte. Connecte-toi plutôt avec Telegram.", + "account_not_found": "Compte introuvable ou session expirée. Essaie de t'inscrire.", "failed_start_auth": "Impossible de lancer l'authentification Telegram", "registration_failed": "Échec de l'inscription : {status}", - "verification_canceled": "Vérification annulée." + "verification_canceled": "Vérification annulée.", + "human_check_cancelled": "Termine la vérification de sécurité pour continuer.", + "human_check_failed": "La vérification de sécurité n'a pas abouti. Réessaie." }, "toasts": { "login_successful": "Connexion réussie", @@ -393,7 +412,7 @@ "repeat_all": "Répéter : tout", "repeat_one": "Répéter : titre", "nothing_playing": "Aucune lecture en cours", - "choose_track": "Choisissez un titre dans la recherche", + "choose_track": "Choisis un titre dans la recherche", "queue": "File d'attente", "lyrics": "Paroles", "lyrics_upgraded": "Paroles améliorées !", @@ -404,7 +423,7 @@ "shuffle_off": "Lecture aléatoire désactivée", "save": "Enregistrer", "home": "En développement", - "home_subtitle": "Utilisez la recherche pour écouter de la musique", + "home_subtitle": "Utilise la recherche pour écouter de la musique", "queue_empty": "La file d'attente est vide", "no_lyrics": "Aucune parole trouvée", "back": "Retour", @@ -423,7 +442,7 @@ "track_unavailable_title": "Titre indisponible", "playback_stopped_too_many_errors": "Lecture arrêtée : trop de titres n'ont pas pu être chargés.", "youtube_refused_title": "YouTube refuse cette connexion", - "youtube_refused_description": "L'audio de YouTube est bloqué sur ce réseau. Désactivez votre VPN ou proxy, ou essayez une autre connexion.", + "youtube_refused_description": "L'audio de YouTube est bloqué sur ce réseau. Désactive ton VPN ou proxy, ou essaie une autre connexion.", "speed_pitch": "Vitesse et tonalité", "speed": "Vitesse", "pitch": "Tonalité", @@ -454,7 +473,7 @@ "eq_tab_custom": "Perso", "eq_save_preset": "Enregistrer actuel", "eq_presets_full": "Limite de présets atteinte", - "eq_custom_empty": "Ajustez les bandes et enregistrez la courbe pour la réutiliser plus tard", + "eq_custom_empty": "Ajuste les bandes et enregistre la courbe pour la réutiliser plus tard", "eq_preset_name": "Nom du préset", "eq_delete_preset": "Supprimer le préset", "eq_preset_hifi": "Hi-Fi", @@ -543,8 +562,11 @@ "min": "min", "sec": "s", "empty_title": "Cette playlist est vide", - "empty_subtitle": "Recherchez des titres à ajouter", - "likes_empty": "Aucun titre aimé pour l'instant" + "empty_subtitle": "Recherche des titres à ajouter", + "likes_empty": "Aucun titre aimé pour l'instant", + "likes_load_failed": "Impossible de charger tes titres aimés", + "load_failed": "Impossible de charger cette playlist", + "load_failed_desc": "Vérifie ta connexion et réessaie." }, "search": { "placeholder": "Rechercher des titres, artistes, albums...", @@ -554,12 +576,12 @@ "albums": "Albums", "playlists": "Playlists", "no_results": "Aucun résultat", - "type_to_search": "Tapez pour rechercher" + "type_to_search": "Tape pour rechercher" }, "settings": { "title": "Paramètres", "search_placeholder": "Rechercher dans les paramètres...", - "subtitle": "Gérez vos préférences", + "subtitle": "Gère tes préférences", "reset_defaults": "Rétablir les valeurs par défaut", "save_preferences": "Enregistrer les préférences", "groups": { @@ -591,7 +613,7 @@ "description": "Comportement de la file d'attente, actions au clic et sortie audio." }, "shortcuts": { - "description": "Personnalisez les raccourcis clavier globaux et ceux du lecteur.", + "description": "Personnalise les raccourcis clavier globaux et ceux du lecteur.", "global_section": "Raccourcis globaux (système)", "global_desc": "Fonctionnent depuis n'importe quelle application, même quand Liner est réduit ou n'a pas le focus.", "main_app_section": "Application principale", @@ -599,9 +621,9 @@ "miniplayer_section": "Mode mini-lecteur", "miniplayer_desc": "Actifs quand le mini-lecteur en overlay a le focus.", "toggle_overlay": "Afficher/masquer le mini-lecteur", - "toggle_overlay_desc": "Affichez ou masquez l'overlay flottant depuis n'importe où dans le système.", + "toggle_overlay_desc": "Affiche ou masque l'overlay flottant depuis n'importe où dans le système.", "quick_like_song": "J'aime rapide sur le titre en cours", - "quick_like_song_desc": "Aimez ou n'aimez plus le titre en cours depuis tout le système, sans afficher le lecteur.", + "quick_like_song_desc": "Aime ou n'aime plus le titre en cours depuis tout le système, sans afficher le lecteur.", "play_pause": "Lecture / Pause", "play_pause_desc": "Lance ou met en pause la lecture audio.", "next_track": "Titre suivant", @@ -625,7 +647,7 @@ "toggle_fullscreen": "Plein écran / Vue lecteur", "toggle_fullscreen_desc": "Active ou désactive la vue immersive du lecteur en plein écran.", "like_track": "J'aime / Je n'aime plus", - "like_track_desc": "Ajoute ou retire le titre de vos favoris.", + "like_track_desc": "Ajoute ou retire le titre de tes favoris.", "focus_main_window": "Revenir à la fenêtre principale", "focus_main_window_desc": "Met la fenêtre principale de l'application au premier plan.", "reset_all": "Réinitialiser tous les raccourcis", @@ -634,8 +656,8 @@ "reset_tooltip": "Rétablir la valeur par défaut ({shortcut})", "conflict_error": "Déjà utilisé par « {action} »", "modifier_required": "Les raccourcis globaux nécessitent Ctrl, Alt ou Maj", - "recording_hint": "Appuyez sur les touches à attribuer (Échap pour annuler)", - "press_keys": "Appuyez sur des touches...", + "recording_hint": "Appuie sur les touches à attribuer (Échap pour annuler)", + "press_keys": "Appuie sur des touches...", "search_placeholder": "Rechercher des raccourcis...", "tab_all": "Tous", "tab_main_app": "Application", @@ -654,7 +676,7 @@ }, "position": { "title": "Position", - "description": "Choisissez où l'overlay apparaît sur votre bureau.", + "description": "Choisis où l'overlay apparaît sur ton bureau.", "top_left": "En haut à gauche", "top_center": "En haut au centre", "top_right": "En haut à droite" @@ -662,7 +684,7 @@ "shortcut": { "title": "Raccourci global", "description": "Affiche ou masque l'overlay depuis n'importe quelle application du système.", - "recording": "Appuyez sur la combinaison de touches...", + "recording": "Appuie sur la combinaison de touches...", "need_modifier": "Le raccourci doit inclure Ctrl, Alt ou Maj", "reset": "Rétablir Alt+Shift+O", "reset_label": "Réinitialiser" @@ -695,7 +717,7 @@ }, "language": { "label": "Langue", - "description": "Choisissez la langue de l'interface" + "description": "Choisis la langue de l'interface" }, "autoplay_similar": { "title": "Lecture automatique de titres similaires", @@ -703,7 +725,7 @@ }, "track_double_click": { "title": "Double-clic sur un titre", - "description": "Choisissez ce qui se passe quand vous double-cliquez sur la carte d'un titre.", + "description": "Choisis ce qui se passe quand tu double-cliques sur la carte d'un titre.", "play": "Lire immédiatement", "queue": "Ajouter à la file d'attente" }, @@ -721,7 +743,7 @@ }, "cache": { "title": "Cache et stockage", - "description": "Gérez les données de l'application pour libérer de l'espace ou résoudre des problèmes de synchronisation.", + "description": "Gère les données de l'application pour libérer de l'espace ou résoudre des problèmes de synchronisation.", "local_cache": { "title": "Cache local", "description": "Efface les données en cache, les paroles et les éléments stockés localement.", @@ -764,31 +786,87 @@ "empty_storage": "Le cache est tout propre !", "cloud_disclaimer": "Tous les médias, pochettes et titres restent dans le cloud et seront retéléchargés automatiquement à la lecture.", "clearing_title": "Nettoyage du cache...", - "clearing_subtitle": "Gardez cette fenêtre ouverte pendant que Liner nettoie votre cache.", + "clearing_subtitle": "Garde cette fenêtre ouverte pendant que Liner nettoie ton cache.", "cleared_title": "Stockage libéré", - "cleared_subtitle": "Votre cache a été vidé. Les nouveaux médias seront diffusés et mis en cache automatiquement.", + "cleared_subtitle": "Ton cache a été vidé. Les nouveaux médias seront diffusés et mis en cache automatiquement.", "done_button": "Terminé", "categories": { "covers": "Pochettes", "audio": "Pistes audio", "lyrics": "Paroles", "metadata": "Catalogue et recherche", - "local": "Musique locale" + "local": "Musique locale", + "liked": "Titres aimés" }, "local_confirm_title": "Supprimer aussi votre musique locale ?", - "local_confirm_desc": "La musique locale est votre bibliothèque importée, pas du cache. {tracks} ({size}) seront supprimés de Liner, avec leurs pochettes. Vos fichiers d'origine restent à leur place.", - "local_confirm_button": "Supprimer la musique locale" + "local_confirm_desc": "{tracks} ({size}) seront supprimés de Liner, avec leurs pochettes. Tes fichiers d'origine restent à leur place.", + "local_confirm_button": "Supprimer la musique locale", + "removing_liked_title": "Suppression des titres aimés téléchargés…", + "removing_local_title": "Suppression des fichiers importés…", + "removing_subtitle": "Garde cette fenêtre ouverte pendant que Liner termine.", + "removed_title": "Supprimé", + "removed_liked_subtitle": "Tes titres aimés restent dans ta bibliothèque. Ils seront retéléchargés quand tu seras en ligne si le téléchargement est activé.", + "removed_local_subtitle": "Les copies de Liner ont été supprimées. Les fichiers d'origine sur ton ordinateur n'ont pas été touchés.", + "total_on_device": "{size} sur cet appareil", + "music_title": "Ta musique", + "music_desc": "Conservée sur cet appareil jusqu'à ce que tu la retires. Vider le cache n'y touche jamais.", + "cache_title": "Cache", + "cache_desc": "Copies temporaires pour une lecture plus rapide. Peut être vidé sans risque : Liner les retélécharge au besoin.", + "liked_count": "{saved} sur {total} téléchargés", + "liked_toggle": "Télécharger automatiquement", + "liked_limit": "Limite de téléchargement", + "liked_status": { + "starting": "Démarre dans un instant", + "saving": "Téléchargement… {count} restant", + "saving_one": "Téléchargement… {count} restant", + "saving_many": "Téléchargement… {count} de restants", + "saving_other": "Téléchargement… {count} restants", + "waiting": "En pause, reprend à {time}", + "offline": "En attente d'une connexion", + "limit": "Limite atteinte · {count} non téléchargé", + "limit_one": "Limite atteinte · {count} non téléchargé", + "limit_many": "Limite atteinte · {count} non téléchargés", + "limit_other": "Limite atteinte · {count} non téléchargés", + "disk": "Espace disque insuffisant", + "disabled": "Téléchargement désactivé", + "idle": "Tout est téléchargé" + }, + "remove": "Supprimer", + "manage": "Ouvrir", + "liked_confirm_title": "Supprimer les titres téléchargés ?", + "liked_confirm_desc": "{tracks} ({size}) seront supprimés de cet appareil et le téléchargement des titres aimés sera désactivé. Ils restent dans tes favoris.", + "liked_confirm_button": "Supprimer les téléchargements", + "free_on_disk": "{size} libres", + "local_empty": "Les fichiers audio que tu importes apparaîtront ici", + "freed_title": "{size} libérés", + "downloads_title": "Téléchargements", + "liked_desc": "{songs} · les nouveaux titres aimés sont aussi téléchargés", + "local_desc": "{songs} · les originaux restent où ils sont", + "downloads_limit": "Espace pour les téléchargements", + "cache_row_title": "Titres, paroles et pochettes", + "cache_row_desc": "Enregistrés pendant ton écoute. Liner les récupère au besoin.", + "clear": "Vider", + "cache_limit_hint": "Environ {count} titres. Les plus anciens sont supprimés en premier.", + "cache_limit_unlimited": "Augmente jusqu'à ce que tu le vides", + "remove_size": "Supprimer {size}", + "clear_size": "Vider {size}", + "downloads_limit_hint": "Environ {count} titres. Le téléchargement se met en pause une fois plein.", + "downloads_limit_unlimited": "Les téléchargements continuent jusqu'à ce que ton disque soit plein", + "open_folder_short": "Ouvrir le dossier", + "cached_in_library": "Afficher les titres en cache dans la bibliothèque", + "cached_in_library_desc": "Désactivé, ils n'apparaissent qu'en mode hors ligne.", + "remove_failed": "Impossible de supprimer ces fichiers. Réessaie." }, "theme": { "title": "Thème", - "description": "Choisissez l'apparence générale de l'application.", + "description": "Choisis l'apparence générale de l'application.", "light": "Clair", "dark": "Sombre", "system": "Système" }, "branding": { "title": "Logo", - "description": "Choisissez la couleur d'accent du logo.", + "description": "Choisis la couleur d'accent du logo.", "default": "Par défaut", "spotify": "Spotify", "discord": "Discord", @@ -819,7 +897,7 @@ "not_signed_in": "Aucune session reconnue n'est actuellement connectée.", "sign_in": "Se connecter à Liner", "sign_out": "Se déconnecter", - "sign_out_confirm": "Voulez-vous vraiment vous déconnecter ?", + "sign_out_confirm": "Veux-tu vraiment te déconnecter ?", "edit_profile": "Modifier le profil", "listening_to": "Écoute", "stat_playlists": "Playlists", @@ -828,43 +906,43 @@ "stat_active": "Actif", "no_bio": "Pas encore de bio", "details_section": "Détails du profil", - "details_subtitle": "Personnalisez votre apparence publique sur Liner", + "details_subtitle": "Personnalise ton apparence publique sur Liner", "username_label": "Nom d'utilisateur", "username_hint": "3 à 30 caractères minuscules (a-z, 0-9, _). Doit être unique.", "username_invalid": "Le nom d'utilisateur doit contenir 3 à 30 lettres minuscules, chiffres ou tirets bas.", - "username_taken": "Ce nom d'utilisateur est déjà pris. Choisissez-en un autre.", + "username_taken": "Ce nom d'utilisateur est déjà pris. Choisis-en un autre.", "display_name_label": "Nom affiché", - "display_name_placeholder": "Votre nom ou pseudonyme", + "display_name_placeholder": "Ton nom ou pseudonyme", "avatar_url_label": "URL de l'avatar", "avatar_url_placeholder": "https://example.com/avatar.jpg", "bio_label": "Bio", - "bio_placeholder": "Parlez de vos goûts musicaux...", + "bio_placeholder": "Parle de tes goûts musicaux...", "save_changes": "Enregistrer", "saving": "Enregistrement...", "reset_changes": "Annuler les modifications", "saved_success": "Profil mis à jour", "save_failed": "Impossible de mettre à jour le profil", "privacy_section": "Confidentialité et social", - "privacy_subtitle": "Contrôlez votre visibilité et votre présence sociale sur Liner", + "privacy_subtitle": "Contrôle ta visibilité et ta présence sociale sur Liner", "public_profile": { "title": "Profil public", - "description": "Permet aux autres de trouver votre profil et de voir vos informations publiques." + "description": "Permet aux autres de trouver ton profil et de voir tes informations publiques." }, "show_activity": { "title": "Partager l'activité d'écoute", - "description": "Affiche sur votre profil le titre que vous écoutez." + "description": "Affiche sur ton profil le titre que tu écoutes." }, "show_history": { "title": "Partager l'historique d'écoute", - "description": "Permet aux autres de voir vos titres récemment écoutés sur votre profil." + "description": "Permet aux autres de voir tes titres récemment écoutés sur ton profil." }, "show_liked_tracks": { "title": "Partager les titres aimés", - "description": "Rend vos titres aimés visibles sur votre profil public." + "description": "Rend tes titres aimés visibles sur ton profil public." }, "participate_leaderboards": { "title": "Participer aux classements", - "description": "Apparaissez dans les classements des meilleurs auditeurs d'artistes et dans les classements mondiaux." + "description": "Apparais dans les classements des meilleurs auditeurs d'artistes et dans les classements mondiaux." }, "badge_public": "Public", "badge_private": "Privé" @@ -880,7 +958,7 @@ "check_updates": "Rechercher des mises à jour", "checking_updates": "Vérification…", "up_to_date": "À jour", - "latest_version_toast": "Vous utilisez la dernière version (v{version})", + "latest_version_toast": "Tu utilises la dernière version (v{version})", "build_info": "Version de production · Electron 44 · React 19", "tech_stack_title": "Technologie et moteur", "tech_electron": "Electron 44 et Web Audio", @@ -898,9 +976,9 @@ "shortcut_mini": "Mini-lecteur", "community_title": "Communauté et ressources", "open_readme": "Documentation et architecture", - "open_readme_desc": "Découvrez les composants du système, les guides de build et la configuration de développement.", + "open_readme_desc": "Découvre les composants du système, les guides de build et la configuration de développement.", "report_issue": "Signaler un problème", - "report_issue_desc": "Envoyez des rapports de bug, des suggestions ou vos retours sur GitHub.", + "report_issue_desc": "Envoie des rapports de bug, des suggestions ou tes retours sur GitHub.", "special_thanks": "Remerciements", "special_thanks_desc": "@braccato/core, @kawarp/react, Solar Icons et MingCute Icons.", "license_notice": "Distribué sous la licence Liner Source-Available & Non-Commercial." @@ -909,11 +987,11 @@ "open_folder": "Ouvrir l'emplacement" }, "youtube": { - "description": "Connectez-vous à votre compte YouTube pour éviter les erreurs de lecture.", + "description": "Connecte-toi à ton compte YouTube pour éviter les erreurs de lecture.", "section_playback": "Lecture", "account_playback": { - "title": "Lire via votre compte", - "description": "Demande l'audio YouTube avec votre compte connecté pour éviter que les flux ne soient bloqués." + "title": "Lire via ton compte", + "description": "Demande l'audio YouTube avec ton compte connecté pour éviter que les flux ne soient bloqués." }, "prompt_sign_in": { "title": "Demander à se connecter", @@ -921,25 +999,25 @@ }, "sync_library": { "title": "Synchroniser la bibliothèque", - "description": "Affiche les playlists de votre compte YouTube dans la bibliothèque à côté des playlists Liner." + "description": "Affiche les playlists de ton compte YouTube dans la bibliothèque à côté des playlists Liner." }, "sign_out": "Se déconnecter", "sign_in": "Se connecter", "signed_out_title": "Non connecté", - "signed_out_description": "Connectez-vous pour maintenir le bon fonctionnement de la lecture YouTube", + "signed_out_description": "Connecte-toi pour maintenir le bon fonctionnement de la lecture YouTube", "section_account": "Compte" }, "discord": { - "description": "Affichez ce que vous écoutez sur Discord avec la pochette de l'album, le badge de l'artiste et la barre de progression.", + "description": "Affiche ce que tu écoutes sur Discord avec la pochette de l'album, le badge de l'artiste et la barre de progression.", "section_display": "Options d'affichage", "section_buttons": "Boutons du profil", "enable": { "title": "Discord Rich Presence", - "description": "Diffusez votre écoute musicale en cours sur votre profil Discord." + "description": "Diffuse ton écoute musicale en cours sur ton profil Discord." }, "status_display": { "title": "Format du statut", - "description": "Choisissez ce qui apparaît dans l'en-tête du statut « Écoute... » sur Discord.", + "description": "Choisis ce qui apparaît dans l'en-tête du statut « Écoute... » sur Discord.", "artist": "Artiste (Par défaut)", "song": "Titre du morceau", "artist_song": "Artiste - Titre", @@ -994,20 +1072,20 @@ "failed_resolve_link": "Impossible de résoudre le lien", "unsupported_link": "Lien non reconnu ou non pris en charge", "name_required": "Le nom est obligatoire", - "paste_link": "Collez d'abord un lien", + "paste_link": "Colle d'abord un lien", "username_required": "Le nom d'utilisateur SoundCloud est obligatoire", - "import_failed_check": "Impossible d'importer les J'aime. Vérifiez le nom d'utilisateur et réessayez.", + "import_failed_check": "Impossible d'importer les J'aime. Vérifie le nom d'utilisateur et réessaie.", "track_already_in_playlist": "Ce titre est déjà dans cette playlist", "added_to_playlist": "Ajouté à la playlist", "removed_from_playlist": "Retiré de la playlist", - "already_in_library": "{type} est déjà dans votre bibliothèque", + "already_in_library": "{type} est déjà dans ta bibliothèque", "failed_remove_track": "Impossible de retirer le titre", "importing_progress": "Importation de {name} : {done} / {total} titres" }, "import": { "review_title": "Vérifier l'importation", "review_action": "Vérifier", - "review_description": "Choisissez les titres à inclure dans la playlist importée.", + "review_description": "Choisis les titres à inclure dans la playlist importée.", "source_track": "Titre d'origine", "proposed_match": "Correspondance proposée", "no_candidate": "Aucun candidat trouvé dans le catalogue", @@ -1034,7 +1112,7 @@ "status_running": "Recherche des correspondances", "status_running_progress": "{count} titres trouvés sur {total}", "status_awaiting_decision": "Vérification requise", - "status_awaiting_sub": "Vérifiez les correspondances avant de créer la playlist", + "status_awaiting_sub": "Vérifie les correspondances avant de créer la playlist", "status_finalizing": "Création de la playlist…", "status_finalizing_sub": "Enregistrement des titres dans la bibliothèque", "status_completed": "Playlist importée", @@ -1048,7 +1126,7 @@ }, "error_screen": { "title": "Un problème est survenu", - "subtitle": "Une erreur inattendue s'est produite dans Liner. Vous pouvez recharger l'application ou réessayer.", + "subtitle": "Une erreur inattendue s'est produite dans Liner. Tu peux recharger l'application ou réessayer.", "reload": "Recharger l'application", "try_again": "Réessayer", "go_home": "Aller à l'accueil", @@ -1075,14 +1153,14 @@ }, "connectivity": { "wall_title": "Échec de la connexion", - "wall_subtitle": "Liner n'arrive pas à joindre ses serveurs. Votre musique et votre bibliothèque sont en sécurité.", + "wall_subtitle": "Liner n'arrive pas à joindre ses serveurs. Ta musique et ta bibliothèque sont en sécurité.", "wall_title_server": "Les serveurs de Liner rencontrent des difficultés", - "wall_subtitle_server": "Votre connexion fonctionne, mais le serveur a répondu par une erreur. Votre musique et votre bibliothèque sont en sécurité, réessayez dans quelques minutes.", + "wall_subtitle_server": "Ta connexion fonctionne, mais le serveur a répondu par une erreur. Ta musique et ta bibliothèque sont en sécurité, réessaie dans quelques minutes.", "steps_title": "Solutions rapides à essayer", - "step_net": "Vérifiez que le Wi-Fi ou le câble est connecté et que les pages s'ouvrent dans un navigateur.", - "step_vpn": "Mettez en pause le VPN, le proxy ou les filtres DNS pendant une minute : ils bloquent souvent l'application.", - "step_firewall": "Autorisez Liner dans le pare-feu et les protections réseau de l'antivirus.", - "step_router": "Redémarrez le routeur, puis cliquez sur Réessayer ci-dessous.", + "step_net": "Vérifie que le Wi-Fi ou le câble est connecté et que les pages s'ouvrent dans un navigateur.", + "step_vpn": "Mets en pause le VPN, le proxy ou les filtres DNS pendant une minute : ils bloquent souvent l'application.", + "step_firewall": "Autorise Liner dans le pare-feu et les protections réseau de l'antivirus.", + "step_router": "Redémarre le routeur, puis clique sur Réessayer ci-dessous.", "retry": "Réessayer", "retrying": "Vérification…", "checks_title": "Tests de connexion", @@ -1102,7 +1180,9 @@ "check_trace": "Traçage de la route", "check_platform": "Plateforme", "check_main": "Tests de l'application", - "support": "Contacter l'assistance" + "support": "Contacter l'assistance", + "wall_title_unreachable": "Les serveurs de Liner ne répondent pas", + "wall_subtitle_unreachable": "Ta connexion fonctionne, mais Liner n'arrive pas à joindre ses serveurs. Ils sont peut-être indisponibles, ou ton réseau bloque Liner. Un VPN peut souvent aider." }, "updater": { "modal_title": "Nouvelle mise à jour disponible", @@ -1112,7 +1192,7 @@ "update_button": "Mettre à jour", "downloading_title": "Téléchargement de la mise à jour…", "downloaded_title": "Mise à jour téléchargée", - "downloaded_desc": "Redémarrez Liner pour installer la version {version}.", + "downloaded_desc": "Redémarre Liner pour installer la version {version}.", "install_button": "Installer", "error_title": "Échec de la mise à jour" }, @@ -1132,14 +1212,61 @@ "popularity": "Par popularité" }, "youtube_auth": { - "title": "Connectez-vous à YouTube pour continuer à écouter", - "description": "YouTube bloque les flux audio sans connexion (vérification BotGuard). Vous connecter avec votre compte Google/YouTube confirme que vous êtes un véritable auditeur et lève les restrictions.", + "title": "Connecte-toi à YouTube pour continuer à écouter", + "description": "YouTube bloque les flux audio sans connexion (vérification BotGuard). Te connecter avec ton compte Google/YouTube confirme que tu es un véritable auditeur et lève les restrictions.", "waiting": "En attente de connexion…", "retry": "Réessayer", "not_now": "Pas maintenant", - "or_enter_code": "ou saisissez le code sur", + "or_enter_code": "ou saisis le code sur", "copy_code": "Copier le code", "connected": "YouTube connecté", "qr_label": "Code QR de connexion" + }, + "offline": { + "entered_auto_title": "Passage en mode hors ligne", + "entered_manual_title": "Mode hors ligne activé", + "entered_desc_auto": "La musique enregistrée sur cet appareil continue d'être lue. Liner repassera en ligne dès que la connexion sera rétablie.", + "entered_desc_manual": "Seule la musique enregistrée sur cet appareil est lue jusqu'à ce que tu te reconnectes.", + "open_device": "Ouvrir la bibliothèque", + "back_online_title": "Tu es de nouveau en ligne", + "back_online_desc": "Tout refonctionne normalement.", + "still_offline_title": "Toujours aucune connexion", + "still_server_title": "Les serveurs de Liner ne répondent toujours pas", + "still_desc": "Reste hors ligne pour l'instant. Liner se reconnecte tout seul dès qu'il peut joindre les serveurs.", + "skipped_title": "Titres non téléchargés ignorés", + "skipped_desc": "En mode hors ligne, seule la musique enregistrée sur cet appareil est lue.", + "nothing_playable": "Aucun titre restant dans la file n'est enregistré sur cet appareil", + "go_online": "Passer en ligne", + "use_offline": "Utiliser le mode hors ligne", + "check_again": "Vérifier à nouveau", + "library_status_auto": "Tu es hors ligne. Seule la musique enregistrée sur cet appareil est disponible.", + "library_status_manual": "Mode hors ligne activé. Seule la musique enregistrée sur cet appareil est disponible.", + "reconnect": "Essayer de se reconnecter", + "issue_youtube_blocked_title": "YouTube n'est pas disponible ({country})", + "issue_youtube_blocked_title_unknown": "YouTube n'est pas disponible dans ta région", + "issue_youtube_blocked_desc": "Certains titres ne pourront pas être lus. Active un VPN et réessaie, ou écoute la musique enregistrée sur cet appareil.", + "issue_youtube_unreachable_title": "YouTube ne répond pas", + "issue_youtube_unreachable_desc": "Certains titres ne peuvent pas être lus pour l'instant. Réessaie dans un instant, utilise un VPN, ou écoute la musique enregistrée sur cet appareil.", + "issue_youtube_refused_title": "YouTube bloque la lecture", + "issue_youtube_refused_desc": "Cela arrive souvent avec un VPN ou un proxy. Change de serveur VPN ou désactive-le, puis réessaie.", + "issue_server_title": "Les serveurs de Liner ne répondent pas", + "issue_server_desc": "Ta connexion fonctionne, mais Liner n'arrive pas à joindre ses serveurs. La musique enregistrée sur cet appareil reste lisible.", + "issue_offline_title": "Tu es hors ligne", + "issue_offline_desc": "Vérifie ta connexion Internet. La musique enregistrée sur cet appareil reste lisible.", + "try_again": "Réessayer", + "dont_show_again": "Ne plus afficher", + "youtube_back_title": "YouTube est de retour", + "youtube_back_desc": "Tous les titres peuvent à nouveau être lus.", + "still_youtube_title": "YouTube n'est toujours pas disponible" + }, + "human_check": { + "title": "Confirme que tu n'es pas un robot", + "description": "Une rapide vérification Cloudflare protège les comptes Liner des robots. Elle se valide généralement toute seule en une seconde.", + "expired": "La vérification a expiré et redémarre.", + "failed": "La vérification n'a pas pu se charger. Vérifie ta connexion et réessaie.", + "waiting": "Vérification…", + "retry": "Réessayer", + "cancel": "Annuler", + "skip": "Passer" } }