From cfa8db7b3f184f29b078ceffd399904f94b9e211 Mon Sep 17 00:00:00 2001 From: Alain Nussbaumer Date: Fri, 20 May 2022 13:45:11 +0200 Subject: [PATCH] #1458 Translation of Web UI --- web-src/src/i18n.js | 15 + web-src/src/locales/en.json | 549 ++++++++++++++++++++++++++++++++++++ web-src/src/locales/fr.json | 549 ++++++++++++++++++++++++++++++++++++ 3 files changed, 1113 insertions(+) create mode 100644 web-src/src/i18n.js create mode 100644 web-src/src/locales/en.json create mode 100644 web-src/src/locales/fr.json diff --git a/web-src/src/i18n.js b/web-src/src/i18n.js new file mode 100644 index 00000000..2bb17f80 --- /dev/null +++ b/web-src/src/i18n.js @@ -0,0 +1,15 @@ +import { createI18n } from 'vue-i18n' + +/* + * All i18n resources specified in the plugin `include` option can be loaded + * at once using the import syntax. + */ +import messages from '@intlify/vite-plugin-vue-i18n/messages' + +export default createI18n({ + legacy: false, + globalInjection: true, + locale: 'en', + fallbackLocale: 'en', + messages +}) diff --git a/web-src/src/locales/en.json b/web-src/src/locales/en.json new file mode 100644 index 00000000..7e615ccb --- /dev/null +++ b/web-src/src/locales/en.json @@ -0,0 +1,549 @@ +{ + "data": { + "kind": { + "file": "File", + "url": "URL", + "spotify": "Spotify", + "pipe": "Stream" + } + }, + "dialog": { + "cancel": "Cancel", + "add": { + "rss": { + "add": "Add", + "cancel": "Cancel", + "help": "Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription.", + "placeholder": "https://url-to-rss", + "processing": "Processing…", + "title": "Add Podcast RSS feed URL" + }, + "stream": { + "add": "Add", + "cancel": "Cancel", + "loading": "Loading…", + "placeholder": "https://url-to-stream", + "play": "Play", + "title": "Add Stream URL" + } + }, + "album": { + "add-next": "Add Next", + "add": "Add", + "added-on": "Added on", + "artist": "Album artist", + "duration": "Duration", + "mark-as-played": "Mark as played", + "play": "Play", + "release-date": "Release date", + "remove-podcast": "Remove podcast", + "tracks": "Track count", + "type": "Type", + "year": "Year" + }, + "artist": { + "add-next": "Add Next", + "add": "Add", + "added-on": "Added On", + "albums": "Albums", + "play": "Play", + "tracks": "Tracks", + "type": "Type" + }, + "composer": { + "add-next": "Add Next", + "add": "Add", + "albums": "Albums", + "duration": "Duration", + "play": "Play", + "tracks": "Tracks" + }, + "directory": { + "add-next": "Add Next", + "add": "Add", + "play": "Play" + }, + "genre": { + "add-next": "Add Next", + "add": "Add", + "albums": "Albums", + "duration": "Duration", + "play": "Play", + "tracks": "Tracks" + }, + "playlist": { + "add-next": "Add Next", + "add": "Add", + "play": "Play", + "track-count": "Track Count", + "type": "Type", + "save": { + "cancel": "Cancel", + "save": "Save", + "saving": "Saving…", + "title": "Save queue to playlist" + } + }, + "queue-item": { + "album-artist": "Album Artist", + "album": "Album", + "bitrate": "{'|'} {rate} kbit/s", + "channels": "{'|'} {channels}", + "composer": "Composer", + "duration": "Duration", + "genre": "Genre", + "path": "Path", + "play": "Play", + "position": "Disc / Track", + "quality": "Quality", + "remove": "Remove", + "samplerate": "{'|'} {rate} Hz", + "spotify-album": "album", + "spotify-artist": "artist", + "type": "Type", + "year": "Year" + }, + "remote-pairing": { + "cancel": "Cancel", + "pair": "Pair Remote", + "title": "Remote pairing request" + }, + "spotify": { + "album": { + "add-next": "Add Next", + "add": "Add", + "album-artist": "Album Artist", + "play": "Play", + "release-date": "Release Date", + "type": "Type" + }, + "artist": { + "add-next": "Add Next", + "add": "Add", + "genres": "Genres", + "play": "Play", + "popularity": "Popularity / Followers" + }, + "playlist": { + "add-next": "Add Next", + "add": "Add", + "owner": "Owner", + "path": "Path", + "play": "Play", + "tracks": "Tracks" + }, + "track": { + "add-next": "Add Next", + "add": "Add", + "album-artist": "Album Artist", + "album": "Album", + "duration": "Duration", + "path": "Path", + "play": "Play", + "position": "Disc / Track", + "release-date": "Release Date" + } + }, + "track": { + "add-next": "Add Next", + "add": "Add", + "added-on": "Added On", + "album-artist": "Album Artist", + "album": "Album", + "bitrate": " {'|'} {rate} Kb/s", + "channels": " {'|'} {channels}", + "comment": "Comment", + "composer": "Composer", + "duration": "Duration", + "genre": "Genre", + "mark-as-new": "Mark as new", + "mark-as-played": "Mark as played", + "path": "Path", + "play": "Play", + "position": "Disc / Track", + "quality": "Quality", + "rating-value": "{rating} / 10", + "rating": "Rating", + "release-date": "Release Date", + "samplerate": " {'|'} {rate} Hz", + "spotify-album": "album", + "spotify-artist": "artist", + "type": "Type", + "year": "Year" + }, + "update": { + "all": "Update everything", + "cancel": "Cancel", + "feeds": "Only update RSS feeds", + "info": "Scan for new, deleted and modified files", + "local": "Only update local library", + "progress": "Library update in progress…", + "rescan-metadata": "Rescan metadata of unmodified files", + "rescan": "Rescan", + "spotify": "Only update Spotify", + "title": "Library update" + } + }, + "language": { + "en": "English", + "fr": "French (Français)" + }, + "list": { + "albums": { + "info-1": "Permanently remove this podcast from your library?", + "info-2": "(This will also remove the RSS playlist {name}).", + "notification": "Podcast cannot be removed. Probably it was not added as an RSS playlist." + }, + "spotify": { + "not-playable-track": "Track is not playable", + "restriction-reason": ", restriction reason: {reason}" + } + }, + "media": { + "kind": { + "album":"Album", + "audiobook": "Audiobook", + "music":"Music", + "podcast":"Podcast" + } + }, + "navigation": { + "about": "About", + "albums": "Albums", + "artists": "Artists", + "audiobooks": "Audiobooks", + "now-playing": " - {album}", + "stream-error": "HTTP stream error: failed to load stream or stopped loading due to network problem", + "stream": "HTTP stream", + "volume": "Volume", + "files": "Files", + "genres": "Genres", + "music": "Music", + "playlists": "Playlists", + "podcasts": "Podcasts", + "radio": "Radio", + "search": "Search", + "settings": "Settings", + "spotify": "Spotify", + "title": "OwnTone", + "update-library": "Update Library" + }, + "page": { + "about": { + "albums": "Albums", + "artists": "Artists", + "built-with": "Web interface built with Bulma, Material Design Icons, Vue.js, axios and more.", + "compiled-with": "Compiled with support for {options}.", + "library": "Library", + "total-playtime": "Total playtime", + "tracks": "Tracks", + "update": "Update", + "updated-on": "{time} ago", + "updated": "Updated", + "uptime": "Uptime", + "version": "OwnTone - version {version}" + }, + "album": { + "shuffle": "Shuffle", + "track-count": "{count} tracks" + }, + "albums": { + "count": "{count} albums", + "filter": "Filter", + "hide-singles-help": "If active, hides singles and albums with tracks that only appear in playlists.", + "hide-singles": "Hide singles", + "hide-spotify-help": "If active, hides albums that only appear in your Spotify library.", + "hide-spotify": "Hide albums from Spotify", + "title": "Albums", + "sort-by": { + "title": "Sort by", + "name": "Name", + "recently-added": "Recently added", + "recently-released": "Recently released" + } + }, + "artist": { + "album-count": "{count} albums {'|'} ", + "shuffle": "Shuffle", + "track-count": "{count} tracks", + "sort-by": { + "title": "Sort by", + "name": "Name", + "release-date": "Release date" + } + }, + "artists": { + "count": "{count} artists", + "filter": "Filter", + "sort-by": { + "title": "Sort by", + "name": "Name", + "recently-added": "Rencently added" + } , + "hide-singles-help": "If active, hides artists that only appear on singles or playlists.", + "hide-singles": "Hide singles", + "hide-spotify-help": "If active, hides artists that only appear in your Spotify library.", + "hide-spotify": "Hide artists from Spotify", + "title": "Artists" + }, + "audiobooks": { + "album": { + "play": "Play", + "track-count": "{count} tracks" + }, + "albums": { + "count": "{count} audiobooks", + "title": "Audiobooks" + }, + "artist": { + "albums-count": "{count} albums", + "shuffle": "Shuffle" + }, + "artists": { + "count": "{count} authors", + "title": "Authors" + } + }, + "browse": { + "albums": "albums", + "show-more": "Show more", + "tracks": "tracks", + "recently-added": { + "albums": "albums", + "title": "Recently added" + }, + "recently-played": { + "title": "Recently played", + "tracks": "tracks" + } + }, + "composer": { + "album-count": "{count} albums {'|'}", + "shuffle": "Shuffle", + "track-count": "{count} tracks", + "tracks": { + "album-count": "{count} albums", + "track-count": " {'|'} {count} tracks", + "shuffle": "Shuffle" + } + }, + "composers": { + "count": "{count} composers", + "title": "Composers" + }, + "files": { + "play": "Play", + "title": "Files" + }, + "genre": { + "album-count": "{count} albums {'|'} ", + "shuffle": "Shuffle", + "tracks": { + "album-count": "{count} albums {'|'} ", + "count": " {count} tracks", + "shuffle": "Shuffle" + } + }, + "genres": { + "count": "{count} genres", + "title": "Genres" + }, + "now-playing": { + "info": "Add some tracks by browsing your library", + "title": "Your play queue is empty" + }, + "playlist": { + "length": "{length} tracks", + "shuffle": "Shuffle" + }, + "playlists": { + "count": "{count} playlists" + }, + "podcast": { + "play": "Play", + "remove-error": "Podcast cannot be removed. Probably it was not added as an RSS playlist.", + "remove-info-1": "Permanently remove this podcast from your library?", + "remove-info-2": "This will also remove the RSS playlist ", + "track-count": "{count} tracks" + }, + "podcasts": { + "add": "Add", + "count": "{count} podcasts", + "mark-all-played": "Mark All Played", + "new-episodes": "New Episodes", + "title": "Podcasts", + "update": "Update" + }, + "queue": { + "add-stream": "Add stream", + "clear": "Clear", + "count": "{count} tracks", + "edit": "Edit", + "hide-previous": "Hide previous", + "title": "Queue" + }, + "radio": { + "count": "{count} stations", + "title": "Radio" + }, + "search": { + "albums": "Albums", + "artists": "Artists", + "audiobooks": "Audiobooks", + "composers": "Composers", + "help": "Tip: you can search by a smart playlist query language expression if you prefix it with query:.", + "no-albums": "No albums found", + "no-artists": "No artists found", + "no-audiobooks": "No audiobooks found", + "no-composers": "No composers found", + "no-playlists": "No playlists found", + "no-podcasts": "No podcasts found", + "no-tracks": "No tracks found", + "playlists": "Playlists", + "podcasts": "Podcasts", + "show-albums": "Show all {count} albums", + "show-artists": "Show all {count} artists", + "show-audiobooks": "Show all {count} audiobooks", + "show-composers": "Show all {count} composers", + "show-playlists": "Show all {count} playlists", + "show-podcasts": "Show all {count} podcasts", + "show-tracks": "Show all {count} tracks", + "tracks": "Tracks" + }, + "settings": { + "artwork": { + "artwork": "Artwork", + "coverartarchive": "Cover Art Archive", + "discogs": "Discogs", + "explanation-1": "OwnTone supports PNG and JPEG artwork which is either placed as separate image files in the library, embedded in the media files or made available online by radio stations.", + "explanation-2": "In addition to that, you can enable fetching artwork from the following artwork providers:", + "spotify": "Spotify" + }, + "devices": { + "no-active-pairing": "No active pairing request.", + "pairing-request": "Remote pairing request from {remote}", + "pairing": "Remote Pairing", + "send": "Send", + "speaker-pairing-info": "If your speaker requires pairing then activate it below and enter the PIN that it displays.", + "speaker-pairing": "Speaker pairing and device verification", + "verification-code": "Enter verification code", + "verify": "Verify" + }, + "general": { + "album-lists": "Album Lists", + "audiobooks": "Audiobooks", + "files": "Audio Files", + "language": "Language", + "music": "Music", + "navigation-item-selection-info": "If you select more items than can be shown on your screen then the burger menu will disappear.", + "navigation-item-selection": "Select the top navigation bar menu items", + "navigation-items": "Navigation Bar", + "now-playing-page": "Now playing page", + "playlists": "Playlists", + "podcasts": "Podcasts", + "radio": "Radio", + "recently-added-page-info": "Limit the number of albums shown on the \"Recently Added\" page", + "recently-added-page": "Recently added page", + "search": "Search", + "show-composer-genres-info-1": "Comma separated list of genres the composer should be displayed on the \"now playing page\"", + "show-composer-genres-info-2": "Leave empty to always show the composer.", + "show-composer-genres-info-3": "The genre tag of the current track is matched by checking, if one of the defined genres are included. For example setting to \"classical, soundtrack\" will show the composer for tracks with a genre tag of \"Contemporary Classical\"", + "show-composer-genres": "Show composer only for listed genres", + "show-composer-info": "If enabled the composer of the current playing track is shown on the \"now playing page\"", + "show-composer": "Show composer", + "show-coverart": "Show cover artwork in album list" + }, + "services": { + "lastfm": { + "grant-access": "Last.fm - Login with your Last.fm username and password to enable scrobbling", + "info": "OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire.", + "title": "Last.fm", + "no-support": "OwnTone was built without support for Last.fm.", + "stop-scrobbling": "Stop scrobbling" + }, + "spotify": { + "no-support": "OwnTone was either built without support for Spotify or libspotify is not installed.", + "help": "If you normally log into Spotify with your Facebook account you must first go to Spotify's web site where you can get the Spotify username and password that matches your account.", + "logged-as": "Logged in as ", + "requirements": "You must have a Spotify premium account.", + "scopes": "Access to the Spotify Web API enables scanning of your Spotify library. Required scopes are: ", + "user": "Access granted for ", + "authorize": "Authorize Web API access", + "credentials": " - Login with your Spotify username and password", + "grant-access": "Spotify Web API - Grant access to the Spotify Web API", + "help-1": "libspotify enables OwnTone to play Spotify tracks.", + "help-2": "OwnTone will not store your password, but will still be able to log you in automatically afterwards, because libspotify saves a login token.", + "reauthorize": "Please reauthorize Web API access to grant OwnTone the following additional access rights: ", + "title": "Spotify" + }, + "login": "Login", + "logout": "Logout" + }, + "tabs": { + "music": { + "albums": "Albums", + "artists": "Artists", + "browse": "Browse", + "composers": "Composers", + "genres": "Genres", + "spotify": "Spotify" + }, + "search": { + "library": "Library", + "spotify": "Spotify" + }, + "settings": { + "artwork": "Artwork", + "general": "General", + "online-services": "Online Services", + "remotes-and-outputs": "Remotes and Outputs" + } + } + }, + "spotify": { + "album": { + "shuffle": "Shuffle", + "track-count": "{count} tracks" + }, + "artist": { + "album-count": "{count} albums", + "shuffle": "Shuffle" + }, + "browse": { + "featured-playlists": "Featured Playlists", + "new-releases": "New Releases", + "show-more": "Show More" + }, + "playlist": { + "count": "{count} tracks", + "shuffle": "Shuffle" + }, + "search": { + "albums": "Albums", + "artists": "Artists", + "no-albums": "No albums found", + "no-artists": "No artists found", + "no-playlists": "No playlists found", + "no-tracks": "No tracks found", + "playlists": "Playlists", + "show-all-albums": "Show all {count} albums", + "show-all-artists": "Show all {count} artists", + "show-all-playlists": "Show all {count} playlists", + "show-all-tracks": "Show all {count} tracks", + "tracks": "Tracks" + } + } + }, + "setting": { + "not-saved": " (error saving setting)", + "saved": " (setting saved)" + }, + "server": { + "connection-failed": "Failed to connect to OwnTone server", + "missing-port": "Missing websocket port", + "request-failed": "Request failed (status: {status} {cause} {url})", + "queue-saved": "Queue saved to playlist {name}", + "appended-tracks": "{count} tracks appended to the queue", + "empty-queue": "Queue is empty" + } +} \ No newline at end of file diff --git a/web-src/src/locales/fr.json b/web-src/src/locales/fr.json new file mode 100644 index 00000000..0430a8d2 --- /dev/null +++ b/web-src/src/locales/fr.json @@ -0,0 +1,549 @@ +{ + "data": { + "kind": { + "file": "Fichier", + "url": "URL", + "spotify": "Spotify", + "pipe": "Flux" + } + }, + "dialog": { + "cancel": "Annuler", + "add": { + "rss": { + "add": "Ajouter", + "cancel": "Annuler", + "help": "L’ajout d’un podcast inclut la création d’une liste de lecture RSS, qui permettra à OwnTone de gérer l’abonnement au podcast.", + "placeholder": "https://url-vers-le-flux-rss", + "processing": "Traitement en cours…", + "title": "Ajouter l’URL du flux RSS du podcast" + }, + "stream": { + "add": "Ajouter", + "cancel": "Annuler", + "loading": "Chargement…", + "placeholder": "https://url-to-stream", + "play": "Lire", + "title": "Ajouter l’URL du flux" + } + }, + "album": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "added-on": "Ajouté le", + "artiste": "Album artist", + "duration": "Durée", + "mark-as-played": "Mark as played", + "play": "Lire", + "release-date": "Date de sortie", + "remove-podcast": "Supprimer le podcast", + "pistes": "Pistes", + "type": "Type", + "year": "Année" + }, + "artiste": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "added-on": "Ajouté le", + "albums": "Albums", + "play": "Lire", + "pistes": "Pistes", + "type": "Type" + }, + "composer": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "albums": "Albums", + "duration": "Durée", + "play": "Lire", + "pistes": "Pistes" + }, + "directory": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "play": "Lire" + }, + "genre": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "albums": "Albums", + "duration": "Durée", + "play": "Lire", + "pistes": "Pistes" + }, + "playlist": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "play": "Lire", + "track-count": "Pistes", + "type": "Type", + "save": { + "cancel": "Annuler", + "save": "Enregistrer", + "saving": "Enregistrement en cours…", + "title": "Enregister la file d’attente dans une liste de lecture" + } + }, + "queue-item": { + "album-artist": "Artiste de l’album", + "album": "Album", + "bitrate": "{'|'} {rate} kbit/s", + "channels": "{'|'} {channels}", + "composer": "Compositeur", + "duration": "Durée", + "genre": "Genre", + "path": "Emplacement", + "play": "Lire", + "position": "Disque / Piste", + "quality": "Qualité", + "remove": "Supprimer", + "samplerate": "{'|'} {rate} Hz", + "spotify-album": "album", + "spotify-artist": "artiste", + "type": "Type", + "year": "Année" + }, + "remote-pairing": { + "cancel": "Annuler", + "pair": "Jumeler la télécommande", + "title": "Demande de jumelage de la télécommande" + }, + "spotify": { + "album": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "album-artist": "Artiste de l’album", + "play": "Lire", + "release-date": "Date de sortie", + "type": "Type" + }, + "artiste": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "genres": "Genres", + "play": "Lire", + "popularity": "Popularités / Followers" + }, + "playlist": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "owner": "Propriéataire", + "path": "Emplacement", + "play": "Lire", + "pistes": "Pistes" + }, + "track": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "album-artist": "Artiste de l’album", + "album": "Album", + "duration": "Durée", + "path": "Emplacement", + "play": "Lire", + "position": "Disque / Piste", + "release-date": "Date de sortie" + } + }, + "track": { + "add-next": "Ajouter ensuite", + "add": "Ajouter", + "added-on": "Ajouté le", + "album-artist": "Artiste de l’album", + "album": "Album", + "bitrate": " {'|'} {rate} Kb/s", + "channels": " {'|'} {channels}", + "comment": "Commentaire", + "composer": "Compositeur", + "duration": "Durée", + "genre": "Genre", + "mark-as-new": "Marquer comme nouveau", + "mark-as-played": "Marquer comme lu", + "path": "Emplacement", + "play": "Lire", + "position": "Disque / Piste", + "quality": "Qualité", + "rating-value": "{rating} / 10", + "rating": "Classement", + "release-date": "Date de sortie", + "samplerate": " {'|'} {rate} Hz", + "spotify-album": "album", + "spotify-artist": "artiste", + "type": "Type", + "year": "Année" + }, + "update": { + "all": "Tout actualiser", + "cancel": "Annuler", + "feeds": "Actualiser uniquement les flux RSS", + "info": "Recherche les fichiers ajoutés, supprimés et modifiés", + "local": "Actualiser uniquement la bibliothèque locale", + "progress": "Actualisation de la bibliothèque en cours…", + "rescan-metadata": "Analyser les métadonnées des fichiers non modifiés", + "rescan": "Analyser", + "spotify": "Actualiser uniquement Spotify", + "title": "Actualisation de la bibliothèque" + } + }, + "language": { + "en": "Anglais (English)", + "fr": "Français" + }, + "list": { + "albums": { + "info-1": "Supprimer définitivement ce podcast de votre bibliothèque ?", + "info-2": "Cela supprimera également la liste de lecture RSS ", + "notification": "Le podcast ne peut être supprimé. Il n’avait probablement pas été ajouté comme une liste de lecture RSS.", + }, + "spotify": { + "not-playable-track": "La piste ne peut pas être lue", + "restriction-reason": ", raison de la restriction : {reason}", + } + }, + "media": { + "kind": { + "album": "Album", + "audiobook": "Livre audio", + "music": "Musique", + "podcast": "Podcast" + } + }, + "navigation": { + "about": "À propos", + "albums": "Albums", + "artists": "Artistes", + "audiobooks": "Livres audio", + "now-playing": " - {album}", + "stream-error": "Erreur du flux HTTP : échec du chargement du flux ou arrêt du chargement en raison d’un problème réseau", + "stream": "Flux HTTP", + "volume": "Volume", + "files": "Fichiers", + "genres": "Genres", + "music": "Musique", + "playlists": "Listes de lecture", + "podcasts": "Podcasts", + "radio": "Radio", + "search": "Recherche", + "settings": "Réglages", + "spotify": "Spotify", + "title": "OwnTone", + "update-library": "Actualiser la bibliothèque" + }, + "page": { + "about": { + "albums": "Albums", + "artists": "Artistes", + "built-with": "Interface utilisateur construite avec Bulma, Material Design Icons, Vue.js, axios et plus.", + "compiled-with": "Compilé avec les options {options}.", + "library": "Bibliothèque", + "total-playtime": "Durée totale de lecture", + "pistes": "Pistes", + "update": "Actualiser", + "updated-on": "il y a {time}", + "updated": "Mis à jour", + "uptime": "Temps de fonctionnement", + "version": "OwnTone - version {version}" + }, + "album": { + "shuffle": "Lecture aléatoire", + "track-count": "{count} pistes" + }, + "albums": { + "count": "{count} albums", + "filter": "Filtre", + "hide-singles-help": "Si actif, masque les singles et les albums dont les pistes n’apparaissent que dans les listes de lecture.", + "hide-singles": "Masquer les singles", + "hide-spotify-help": "Si actif, masque les albums qui n’apparaissent que dans votre bibliothèque Spotify.", + "hide-spotify": "Masquer les albums de Spotify", + "title": "Albums", + "sort-by": { + "title": "Trier par", + "name": "Nom", + "recently-added": "Ajouts récents", + "recently-released": "Sorties récentes" + } + }, + "artist": { + "album-count": "{count} albums {'|'} ", + "shuffle": "Lecture aléatoire", + "track-count": "{count} pistes", + "sort-by": { + "title": "Trier par", + "name": "Nom", + "release-date": "Date de sortie" + } + }, + "artists": { + "count": "{count} artists", + "filter": "Filtre", + "sort-by": { + "title": "Trier par", + "name": "Nom", + "recently-added": "Ajouts récents" + } , + "hide-singles-help": "Si actif, masque les artistes qui n’apparaissent que dans des singles ou des listes de lecture.", + "hide-singles": "Masquer les singles", + "hide-spotify-help": "Si actif, masque les artistes qui n’apparaissent que dans votre bibliothèque Spotify.", + "hide-spotify": "Masquer les artistes de Spotify", + "title": "Artistes" + }, + "audiobooks": { + "album": { + "play": "Lire", + "track-count": "{count} pistes" + }, + "albums": { + "count": "{count} livres audio", + "title": "Livres audio" + }, + "artiste": { + "albums-count": "{count} albums", + "shuffle": "Lecture aléatoire" + }, + "artists": { + "count": "{count} auteurs", + "title": "Auteurs" + } + }, + "browse": { + "albums": "albums", + "show-more": "Afficher plus", + "pistes": "pistes", + "recently-added": { + "albums": "albums", + "title": "Ajouts récents" + }, + "recently-played": { + "title": "Lectures récentes", + "pistes": "pistes" + } + }, + "composer": { + "album-count": "{count} albums {'|'}", + "shuffle": "Lecture aléatoire", + "track-count": "{count} pistes", + "pistes": { + "album-count": "{count} albums", + "track-count": " {'|'} {count} pistes", + "shuffle": "Lecture aléatoire" + } + }, + "composers": { + "count": "{count} compositeurs", + "title": "Compositeurs" + }, + "files": { + "play": "Lire", + "title": "Fichiers" + }, + "genre": { + "album-count": "{count} albums {'|'} ", + "shuffle": "Lecture aléatoire", + "pistes": { + "album-count": "{count} albums {'|'} ", + "count": " {count} pistes", + "shuffle": "Lecture aléatoire" + } + }, + "genres": { + "count": "{count} genres", + "title": "Genres" + }, + "now-playing": { + "info": "Ajoutez des pistes en parcourant votre bibliothèque", + "title": "La file d’attente est vide" + }, + "playlist": { + "length": "{length} pistes", + "shuffle": "Lecture aléatoire" + }, + "playlists": { + "count": "{count} listes de lecture" + }, + "podcast": { + "play": "Lire", + "remove-error": "Le podcast ne peut pas être supprimé. Il n’a probablement pas été ajouté en tant que liste de lecture RSS.", + "remove-info-1": "Supprimer ce podcast de manière permanente de la bibliothèque ?", + "remove-info-2": "(Cela supprimera également la liste de lecture RSS {name}).", + "track-count": "{count} pistes" + }, + "podcasts": { + "add": "Ajouter", + "count": "{count} podcasts", + "mark-all-played": "Marquer comme lus", + "new-episodes": "Nouveaux épisodes", + "title": "Podcasts", + "update": "Actualiser" + }, + "queue": { + "add-stream": "Ajouter un flux", + "clear": "Effacer", + "count": "{count} pistes", + "edit": "Éditer", + "hide-previous": "Masquer l’historique", + "queue": "File d’attente" + }, + "radio": { + "count": "{count} stations", + "title": "Radio" + }, + "search": { + "albums": "Albums", + "artists": "Artistes", + "audiobooks": "Livres audio", + "composers": "Compositeurs", + "help": "Astuce : en préfixant votre requête avec query:, vous pouvez effectuer une recherche avec une expression du langage de requête de liste de lecture intelligente.", + "no-albums": "Aucun album trouvé", + "no-artists": "Aucun artiste trouvé", + "no-audiobooks": "Aucun livre audio trouvé", + "no-composers": "Aucun compositeur trouvé", + "no-playlists": "Aucune liste de lecture trouvée", + "no-podcasts": "Aucune podcast trouvé", + "no-tracks": "Aucune piste trouvée", + "playlists": "Listes de lecture", + "podcasts": "Podcasts", + "show-albums": "Afficher les {count} albums", + "show-artists": "Afficher les {count} artistes", + "show-audiobooks": "Afficher les {count} livres audio", + "show-composers": "Afficher les {count} compositeurs", + "show-playlists": "Afficher les {count} listes de lecture", + "show-podcasts": "Afficher les {count} podcasts", + "show-tracks": "Afficher les {count} pistes", + "pistes": "Pistes" + }, + "settings": { + "artwork": { + "artwork": "Illustrations", + "coverartarchive": "Cover Art Archive", + "discogs": "Discogs", + "explanation-1": "Prend en charge les illustrations au format PNG et JPEG qui sont soit placées dans la bibliothèque en tant que fichiers image séparés, soit intégrées dans les fichiers média, soit mises à disposition en ligne par les stations de radio.", + "explanation-2": "En outre, vous pouvez activer la récupération des illustrations à partir des fournisseurs d’illustrations suivants :", + "spotify": "Spotify" + }, + "devices": { + "no-active-pairing": "Aucune demande de jumelage active.", + "pairing-request": "Demande de jumelage de la télécommande {remote}", + "pairing": "Jumelage de la télécommande", + "send": "Envoyer", + "speaker-pairing-info": "Si votre enceinte nécessite un jumelage, activez-le ci-dessous et entrez le code PIN qu’il affiche.", + "speaker-pairing": "Jumelage de l’enceinte et vérification de l’appareil", + "verification-code": "Code de vérification", + "verify": "Vérifier" + }, + "general": { + "album-lists": "Listes d’album", + "audiobooks": "Livres audio", + "files": "Fichiers audio", + "language": "Langue", + "music": "Musique", + "navigation-item-selection-info": "Si vous sélectionnez plus d’éléments que ce qui peut être affiché sur votre écran, le menu disparaîtra.", + "navigation-item-selection": "Sélectionnez les éléments de la barre de navigation supérieure", + "navigation-items": "Barre de navigation", + "now-playing-page": "Now playing page", + "playlists": "Listes de lecture", + "podcasts": "Podcasts", + "radio": "Radio", + "recently-added-page-info": "Limiter le nombre d’album affichés dans la section \"Ajouts récents\"", + "recently-added-page": "Recently added page", + "search": "Search", + "show-composer-genres-info-1": "Liste des genres, séparés par des virgules, que le compositeur doit afficher sur la page \"Lecture en cours\".", + "show-composer-genres-info-2": "Laissez vide pour toujours afficher le compositeur.", + "show-composer-genres-info-3": "L’étiquette de genre de la piste actuelle est comparée en vérifiant si l’un des genres définis est inclus. Par exemple, en choisissant \"classique, bande sonore\", le compositeur pour les pistes dont l’étiquette de genre est \"classique contemporain\" sera affiché.", + "show-composer-genres": "Afficher le compositeur uniquement pour les genres listés", + "show-composer-info": "Si actif, le compositeur de la piste en cours de lecture est affiché sur la page \"lecture en cours\"", + "show-composer": "Afficher le compositeur", + "show-coverart": "Afficher les illustration dans la liste d’albums", + }, + "services": { + "lastfm": { + "grant-access": "Last.fm - Connectez-vous avec votre nom d’utilisateur et votre mot de passe Last.fm pour activer le scrobbling.", + "info": "Le nom d’utilisateur et le mot de passe Last.fm ne sont pas enregistrés, uniquement la clé de session. La clé de session n’expire pas.", + "title": "Last.fm", + "no-support": "L’option Last.fm n’est pas présente.", + "stop-scrobbling": "Arrêter le scrobbling" + }, + "spotify": { + "no-support": "L’option Spotify n’est pas présente.", + "help": "Si vous vous connectez habituellement à Spotify avec votre compte Facebook, vous devez d’abord vous rendre sur le site de Spotify pour obtenir le nom d’utilisateur et le mot de passe correspondant à votre compte.", + "logged-as": "Connecté en tant que ", + "requirements": "Vous devez posséder un compte Spotify Premium.", + "scopes": "L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants :", + "user": "Accès autorisé pour ", + "authorize": "Autoriser l’accès à l’API", + "credentials": " - Connectez-vous avec votre nom d’utilisateur et mot de passe Spotify", + "grant-access": "Spotify - Accordez l’accès à l’API de Spotify", + "help-1": "La bibliothèque libspotify permet de lire les pistes de Spotify.", + "help-2": "Votre nom d’utilisateur et votre mot de passe Spotify ne sont pas enregistrés, uniquement le jeton de connexion.", + "reauthorize": "Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants :", + "title": "Spotify" + }, + "login": "Se connecter", + "logout": "Se déconnecter" + }, + "tabs": { + "music": { + "albums": "Albums", + "artists": "Artistes", + "browse": "Parcourir", + "composers": "Compositeurs", + "genres": "Genres", + "spotify": "Spotify" + }, + "search": { + "library": "Library", + "spotify": "Spotify" + }, + "settings": { + "artwork": "Illustrations", + "general": "Général", + "online-services": "Services en ligne", + "remotes-and-outputs": "Télécommandes et sorties" + } + } + }, + "spotify": { + "album": { + "shuffle": "Lecture aléatoire", + "track-count": "{count} pistes" + }, + "artiste": { + "album-count": "{count} albums", + "shuffle": "Lecture aléatoire" + }, + "browse": { + "featured-playlists": "Listes de lecture en vedette", + "new-releases": "Nouvelle sorties", + "show-more": "Afficher plus" + }, + "playlist": { + "count": "{count} pistes", + "shuffle": "Lecture aléatoire" + }, + "search": { + "albums": "Albums", + "artists": "Artistes", + "no-albums": "Aucun album trouvé", + "no-artists": "Aucun artiste trouvé", + "no-playlists": "Aucune liste de lecture trouvée", + "no-tracks": "Aucune piste trouvée", + "playlists": "Listes de lecture", + "show-all-albums": "Afficher les {count} albums", + "show-all-artists": "Afficher les {count} artistes", + "show-all-playlists": "Afficher les {count} listes de lecture", + "show-all-tracks": "Afficher les {count} pistes", + "pistes": "Pistes" + } + } + }, + "setting": { + "not-saved": " (erreur à l’enregistrement du réglage)", + "saved": " (réglage enregistré)", + }, + "server": { + "connection-failed": "Échec de connexion au serveur", + "missing-port": "Port websocket manquant", + "request-failed": "La requête a échoué (status: {status} {cause} {url})", + "queue-saved": "La file d’attente enregistrée dans la liste de lecture {name}", + "appended-tracks": "{count} pistes ajoutées à la file d’attente", + "empty-queue": "La file d’attente est vide" + } +} \ No newline at end of file