424 lines
30 KiB
JavaScript
424 lines
30 KiB
JavaScript
(() => {
|
||
"use strict";
|
||
|
||
const translations = {
|
||
en: {
|
||
folders: "Folders",
|
||
savePlaylist: "SAVE PLAYLIST",
|
||
playlistSaved: "SAVED",
|
||
noSavedPlaylists: "No saved playlists yet.",
|
||
savePlaylistHint: "Save a playlist tab to find it here.",
|
||
openPlaylistNamed: "Open {name} as a tab",
|
||
closePlaylist: "Close tab",
|
||
playingTime: "{duration} playing time",
|
||
output: "OUTPUT", searchPlayers: "Search for network players", logout: "LOG OUT",
|
||
rendererLocal: "LOCAL", defaultPlaylist: "Default",
|
||
playbackControls: "Playback controls", previousTrack: "Previous track",
|
||
playOrPause: "Play or pause", play: "Play", pause: "Pause", stop: "Stop",
|
||
nextTrack: "Next track", playbackPosition: "Playback position",
|
||
repeatMode: "Repeat mode", setVolume: "Set volume", volume: "Volume",
|
||
musicLibrary: "MUSIC LIBRARY", upFolder: "Up one folder", currentFolder: "Current folder",
|
||
noLibraryConfigured: "No library configured.", folderContents: "Folder contents",
|
||
nowPlaying: "NOW PLAYING", nothingSelected: "Nothing selected yet",
|
||
addTrackHint: "Add a track from the library", playlists: "Playlists",
|
||
newPlaylist: "New playlist", playlist: "PLAYLIST", clearList: "CLEAR LIST",
|
||
emptyPlaylist: "This playlist is empty.", emptyPlaylistHint: "Use + next to a track or folder.",
|
||
title: "TITLE", album: "ALBUM", duration: "DURATION", actions: "Actions",
|
||
connecting: "Connecting…", signIn: "Sign in", username: "Username",
|
||
password: "Password", noLibrary: "No library", playNow: "Play {name} now",
|
||
addNamed: "Add {name}", loadingNamed: "Loading {name}…", addingNamed: "Adding {name}…",
|
||
playlistName: "Playlist name", removePlaylist: "Remove playlist",
|
||
removeNamed: "Remove {name}", oneTrack: "track", manyTracks: "tracks",
|
||
repeatOff: "Repeat off", repeatAll: "Repeat all", repeatOne: "Repeat one track",
|
||
channels: "channels", oneChannel: "channel", searchingPlayers: "Searching for network players…",
|
||
authUnknown: "Authentication status unknown: {message}", noConnection: "No connection: {message}",
|
||
loggedOut: "You have been logged out.", volumePercent: "Set volume, {value} percent",
|
||
"login-rate-limited": "Too many failed sign-in attempts; try again in a few minutes.",
|
||
"invalid-credentials": "Invalid username or password.",
|
||
"json-required": "Content-Type application/json is required.",
|
||
"authentication-required": "Sign-in is required.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "The DLNA renderer did not confirm the start of the track.",
|
||
"dlna-renderer-unreachable": "The DLNA renderer is unreachable.",
|
||
},
|
||
nl: {
|
||
folders: "Mappen",
|
||
savePlaylist: "AFSPEELLIJST OPSLAAN",
|
||
playlistSaved: "OPGESLAGEN",
|
||
noSavedPlaylists: "Nog geen opgeslagen afspeellijsten.",
|
||
savePlaylistHint: "Sla een playlisttab op om hem hier terug te vinden.",
|
||
openPlaylistNamed: "{name} als tab openen",
|
||
closePlaylist: "Tab sluiten",
|
||
playingTime: "{duration} speeltijd",
|
||
output: "UITVOER", searchPlayers: "Netwerkspelers zoeken", logout: "UITLOGGEN",
|
||
rendererLocal: "LOKAAL", defaultPlaylist: "Standaard",
|
||
playbackControls: "Afspeelbediening", previousTrack: "Vorige track",
|
||
playOrPause: "Afspelen of pauzeren", play: "Afspelen", pause: "Pauzeren", stop: "Stoppen",
|
||
nextTrack: "Volgende track", playbackPosition: "Afspeelpositie",
|
||
repeatMode: "Herhaalmodus", setVolume: "Volume instellen", volume: "Volume",
|
||
musicLibrary: "MUZIEKBIBLIOTHEEK", upFolder: "Eén map omhoog", currentFolder: "Huidige map",
|
||
noLibraryConfigured: "Geen bibliotheek geconfigureerd.", folderContents: "Mapinhoud",
|
||
nowPlaying: "NU AAN HET SPELEN", nothingSelected: "Nog niets gekozen",
|
||
addTrackHint: "Voeg een track toe vanuit de bibliotheek", playlists: "Afspeellijsten",
|
||
newPlaylist: "Nieuwe afspeellijst", playlist: "AFSPEELLIJST", clearList: "LIJST WISSEN",
|
||
emptyPlaylist: "Deze afspeellijst is leeg.", emptyPlaylistHint: "Gebruik + bij een track of map.",
|
||
title: "TITEL", album: "ALBUM", duration: "DUUR", actions: "Acties",
|
||
connecting: "Verbinden…", signIn: "Aanmelden", username: "Gebruikersnaam",
|
||
password: "Wachtwoord", noLibrary: "Geen bibliotheek", playNow: "{name} nu afspelen",
|
||
addNamed: "{name} toevoegen", loadingNamed: "{name} laden…", addingNamed: "{name} toevoegen…",
|
||
playlistName: "Naam van de afspeellijst", removePlaylist: "Afspeellijst verwijderen",
|
||
removeNamed: "{name} verwijderen", oneTrack: "track", manyTracks: "tracks",
|
||
repeatOff: "Herhalen uit", repeatAll: "Alles herhalen", repeatOne: "Eén track herhalen",
|
||
channels: "kanalen", oneChannel: "kanaal", searchingPlayers: "Netwerkspelers zoeken…",
|
||
authUnknown: "Authenticatiestatus onbekend: {message}", noConnection: "Geen verbinding: {message}",
|
||
loggedOut: "Je bent uitgelogd.", volumePercent: "Volume instellen, {value} procent",
|
||
"login-rate-limited": "Te veel mislukte aanmeldpogingen; probeer het over enkele minuten opnieuw.",
|
||
"invalid-credentials": "Ongeldige gebruikersnaam of ongeldig wachtwoord.",
|
||
"json-required": "Content-Type application/json is vereist.",
|
||
"authentication-required": "Aanmelden is vereist.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "De DLNA-renderer bevestigde de start van de track niet.",
|
||
"dlna-renderer-unreachable": "De DLNA-renderer is niet bereikbaar.",
|
||
},
|
||
de: {
|
||
folders: "Ordner",
|
||
savePlaylist: "WIEDERGABELISTE SPEICHERN",
|
||
playlistSaved: "GESPEICHERT",
|
||
noSavedPlaylists: "Noch keine gespeicherten Wiedergabelisten.",
|
||
savePlaylistHint: "Speichern Sie eine Wiedergabeliste, um sie hier zu finden.",
|
||
openPlaylistNamed: "{name} als Tab öffnen",
|
||
closePlaylist: "Tab schließen",
|
||
playingTime: "{duration} Spielzeit",
|
||
output: "AUSGABE", searchPlayers: "Netzwerkplayer suchen", logout: "ABMELDEN",
|
||
rendererLocal: "LOKAL", defaultPlaylist: "Standard",
|
||
playbackControls: "Wiedergabesteuerung", previousTrack: "Vorheriger Titel",
|
||
playOrPause: "Wiedergeben oder pausieren", play: "Wiedergeben", pause: "Pausieren", stop: "Stoppen",
|
||
nextTrack: "Nächster Titel", playbackPosition: "Wiedergabeposition",
|
||
repeatMode: "Wiederholungsmodus", setVolume: "Lautstärke einstellen", volume: "Lautstärke",
|
||
musicLibrary: "MUSIKBIBLIOTHEK", upFolder: "Einen Ordner nach oben", currentFolder: "Aktueller Ordner",
|
||
noLibraryConfigured: "Keine Bibliothek konfiguriert.", folderContents: "Ordnerinhalt",
|
||
nowPlaying: "AKTUELLE WIEDERGABE", nothingSelected: "Noch nichts ausgewählt",
|
||
addTrackHint: "Titel aus der Bibliothek hinzufügen", playlists: "Wiedergabelisten",
|
||
newPlaylist: "Neue Wiedergabeliste", playlist: "WIEDERGABELISTE", clearList: "LISTE LEEREN",
|
||
emptyPlaylist: "Diese Wiedergabeliste ist leer.", emptyPlaylistHint: "Verwenden Sie + neben einem Titel oder Ordner.",
|
||
title: "TITEL", album: "ALBUM", duration: "DAUER", actions: "Aktionen",
|
||
connecting: "Verbinden…", signIn: "Anmelden", username: "Benutzername",
|
||
password: "Passwort", noLibrary: "Keine Bibliothek", playNow: "{name} jetzt wiedergeben",
|
||
addNamed: "{name} hinzufügen", loadingNamed: "{name} wird geladen…", addingNamed: "{name} wird hinzugefügt…",
|
||
playlistName: "Name der Wiedergabeliste", removePlaylist: "Wiedergabeliste entfernen",
|
||
removeNamed: "{name} entfernen", oneTrack: "Titel", manyTracks: "Titel",
|
||
repeatOff: "Wiederholung aus", repeatAll: "Alles wiederholen", repeatOne: "Einen Titel wiederholen",
|
||
channels: "Kanäle", oneChannel: "Kanal", searchingPlayers: "Netzwerkplayer werden gesucht…",
|
||
authUnknown: "Authentifizierungsstatus unbekannt: {message}", noConnection: "Keine Verbindung: {message}",
|
||
loggedOut: "Sie wurden abgemeldet.", volumePercent: "Lautstärke einstellen, {value} Prozent",
|
||
"login-rate-limited": "Zu viele fehlgeschlagene Anmeldeversuche; versuchen Sie es in einigen Minuten erneut.",
|
||
"invalid-credentials": "Ungültiger Benutzername oder ungültiges Passwort.",
|
||
"json-required": "Content-Type application/json ist erforderlich.",
|
||
"authentication-required": "Eine Anmeldung ist erforderlich.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "Der DLNA-Renderer hat den Start des Titels nicht bestätigt.",
|
||
"dlna-renderer-unreachable": "Der DLNA-Renderer ist nicht erreichbar.",
|
||
},
|
||
fr: {
|
||
folders: "Dossiers",
|
||
savePlaylist: "ENREGISTRER LA LISTE",
|
||
playlistSaved: "ENREGISTRÉE",
|
||
noSavedPlaylists: "Aucune liste de lecture enregistrée.",
|
||
savePlaylistHint: "Enregistrez une liste de lecture pour la retrouver ici.",
|
||
openPlaylistNamed: "Ouvrir {name} dans un onglet",
|
||
closePlaylist: "Fermer l’onglet",
|
||
playingTime: "{duration} de lecture",
|
||
output: "SORTIE", searchPlayers: "Rechercher les lecteurs réseau", logout: "DÉCONNEXION",
|
||
rendererLocal: "LOCAL", defaultPlaylist: "Par défaut",
|
||
playbackControls: "Commandes de lecture", previousTrack: "Piste précédente",
|
||
playOrPause: "Lire ou mettre en pause", play: "Lire", pause: "Pause", stop: "Arrêter",
|
||
nextTrack: "Piste suivante", playbackPosition: "Position de lecture",
|
||
repeatMode: "Mode répétition", setVolume: "Régler le volume", volume: "Volume",
|
||
musicLibrary: "BIBLIOTHÈQUE MUSICALE", upFolder: "Dossier parent", currentFolder: "Dossier actuel",
|
||
noLibraryConfigured: "Aucune bibliothèque configurée.", folderContents: "Contenu du dossier",
|
||
nowPlaying: "LECTURE EN COURS", nothingSelected: "Aucune sélection",
|
||
addTrackHint: "Ajoutez une piste depuis la bibliothèque", playlists: "Listes de lecture",
|
||
newPlaylist: "Nouvelle liste de lecture", playlist: "LISTE DE LECTURE", clearList: "VIDER LA LISTE",
|
||
emptyPlaylist: "Cette liste de lecture est vide.", emptyPlaylistHint: "Utilisez + à côté d’une piste ou d’un dossier.",
|
||
title: "TITRE", album: "ALBUM", duration: "DURÉE", actions: "Actions",
|
||
connecting: "Connexion…", signIn: "Se connecter", username: "Nom d’utilisateur",
|
||
password: "Mot de passe", noLibrary: "Aucune bibliothèque", playNow: "Lire {name} maintenant",
|
||
addNamed: "Ajouter {name}", loadingNamed: "Chargement de {name}…", addingNamed: "Ajout de {name}…",
|
||
playlistName: "Nom de la liste de lecture", removePlaylist: "Supprimer la liste de lecture",
|
||
removeNamed: "Supprimer {name}", oneTrack: "piste", manyTracks: "pistes",
|
||
repeatOff: "Répétition désactivée", repeatAll: "Tout répéter", repeatOne: "Répéter une piste",
|
||
channels: "canaux", oneChannel: "canal", searchingPlayers: "Recherche des lecteurs réseau…",
|
||
authUnknown: "État d’authentification inconnu : {message}", noConnection: "Aucune connexion : {message}",
|
||
loggedOut: "Vous avez été déconnecté.", volumePercent: "Régler le volume, {value} pour cent",
|
||
"login-rate-limited": "Trop de tentatives de connexion ont échoué ; réessayez dans quelques minutes.",
|
||
"invalid-credentials": "Nom d’utilisateur ou mot de passe incorrect.",
|
||
"json-required": "Le Content-Type application/json est requis.",
|
||
"authentication-required": "La connexion est requise.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "Le lecteur DLNA n’a pas confirmé le démarrage de la piste.",
|
||
"dlna-renderer-unreachable": "Le lecteur DLNA est inaccessible.",
|
||
},
|
||
es: {
|
||
folders: "Carpetas",
|
||
savePlaylist: "GUARDAR LISTA",
|
||
playlistSaved: "GUARDADA",
|
||
noSavedPlaylists: "Todavía no hay listas guardadas.",
|
||
savePlaylistHint: "Guarda una lista de reproducción para encontrarla aquí.",
|
||
openPlaylistNamed: "Abrir {name} en una pestaña",
|
||
closePlaylist: "Cerrar pestaña",
|
||
playingTime: "{duration} de reproducción",
|
||
output: "SALIDA", searchPlayers: "Buscar reproductores de red", logout: "CERRAR SESIÓN",
|
||
rendererLocal: "LOCAL", defaultPlaylist: "Predeterminada",
|
||
playbackControls: "Controles de reproducción", previousTrack: "Pista anterior",
|
||
playOrPause: "Reproducir o pausar", play: "Reproducir", pause: "Pausar", stop: "Detener",
|
||
nextTrack: "Pista siguiente", playbackPosition: "Posición de reproducción",
|
||
repeatMode: "Modo de repetición", setVolume: "Ajustar volumen", volume: "Volumen",
|
||
musicLibrary: "BIBLIOTECA MUSICAL", upFolder: "Subir una carpeta", currentFolder: "Carpeta actual",
|
||
noLibraryConfigured: "No hay ninguna biblioteca configurada.", folderContents: "Contenido de la carpeta",
|
||
nowPlaying: "REPRODUCIENDO", nothingSelected: "Nada seleccionado",
|
||
addTrackHint: "Añade una pista desde la biblioteca", playlists: "Listas de reproducción",
|
||
newPlaylist: "Nueva lista de reproducción", playlist: "LISTA DE REPRODUCCIÓN", clearList: "VACIAR LISTA",
|
||
emptyPlaylist: "Esta lista de reproducción está vacía.", emptyPlaylistHint: "Usa + junto a una pista o carpeta.",
|
||
title: "TÍTULO", album: "ÁLBUM", duration: "DURACIÓN", actions: "Acciones",
|
||
connecting: "Conectando…", signIn: "Iniciar sesión", username: "Nombre de usuario",
|
||
password: "Contraseña", noLibrary: "Sin biblioteca", playNow: "Reproducir {name} ahora",
|
||
addNamed: "Añadir {name}", loadingNamed: "Cargando {name}…", addingNamed: "Añadiendo {name}…",
|
||
playlistName: "Nombre de la lista de reproducción", removePlaylist: "Eliminar lista de reproducción",
|
||
removeNamed: "Eliminar {name}", oneTrack: "pista", manyTracks: "pistas",
|
||
repeatOff: "Repetición desactivada", repeatAll: "Repetir todo", repeatOne: "Repetir una pista",
|
||
channels: "canales", oneChannel: "canal", searchingPlayers: "Buscando reproductores de red…",
|
||
authUnknown: "Estado de autenticación desconocido: {message}", noConnection: "Sin conexión: {message}",
|
||
loggedOut: "Has cerrado la sesión.", volumePercent: "Ajustar volumen, {value} por ciento",
|
||
"login-rate-limited": "Demasiados intentos de inicio de sesión fallidos; inténtalo de nuevo en unos minutos.",
|
||
"invalid-credentials": "Nombre de usuario o contraseña no válidos.",
|
||
"json-required": "Se requiere Content-Type application/json.",
|
||
"authentication-required": "Es necesario iniciar sesión.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "El renderizador DLNA no confirmó el inicio de la pista.",
|
||
"dlna-renderer-unreachable": "No se puede acceder al renderizador DLNA.",
|
||
},
|
||
it: {
|
||
folders: "Cartelle",
|
||
savePlaylist: "SALVA PLAYLIST",
|
||
playlistSaved: "SALVATA",
|
||
noSavedPlaylists: "Nessuna playlist salvata.",
|
||
savePlaylistHint: "Salva una playlist per ritrovarla qui.",
|
||
openPlaylistNamed: "Apri {name} in una scheda",
|
||
closePlaylist: "Chiudi scheda",
|
||
playingTime: "{duration} di riproduzione",
|
||
output: "USCITA", searchPlayers: "Cerca lettori di rete", logout: "ESCI",
|
||
rendererLocal: "LOCALE", defaultPlaylist: "Predefinita",
|
||
playbackControls: "Controlli di riproduzione", previousTrack: "Traccia precedente",
|
||
playOrPause: "Riproduci o metti in pausa", play: "Riproduci", pause: "Pausa", stop: "Arresta",
|
||
nextTrack: "Traccia successiva", playbackPosition: "Posizione di riproduzione",
|
||
repeatMode: "Modalità ripetizione", setVolume: "Regola il volume", volume: "Volume",
|
||
musicLibrary: "LIBRERIA MUSICALE", upFolder: "Cartella superiore", currentFolder: "Cartella corrente",
|
||
noLibraryConfigured: "Nessuna libreria configurata.", folderContents: "Contenuto della cartella",
|
||
nowPlaying: "IN RIPRODUZIONE", nothingSelected: "Nessuna selezione",
|
||
addTrackHint: "Aggiungi una traccia dalla libreria", playlists: "Playlist",
|
||
newPlaylist: "Nuova playlist", playlist: "PLAYLIST", clearList: "SVUOTA ELENCO",
|
||
emptyPlaylist: "Questa playlist è vuota.", emptyPlaylistHint: "Usa + accanto a una traccia o cartella.",
|
||
title: "TITOLO", album: "ALBUM", duration: "DURATA", actions: "Azioni",
|
||
connecting: "Connessione…", signIn: "Accedi", username: "Nome utente",
|
||
password: "Password", noLibrary: "Nessuna libreria", playNow: "Riproduci {name} ora",
|
||
addNamed: "Aggiungi {name}", loadingNamed: "Caricamento di {name}…", addingNamed: "Aggiunta di {name}…",
|
||
playlistName: "Nome della playlist", removePlaylist: "Rimuovi playlist",
|
||
removeNamed: "Rimuovi {name}", oneTrack: "traccia", manyTracks: "tracce",
|
||
repeatOff: "Ripetizione disattivata", repeatAll: "Ripeti tutto", repeatOne: "Ripeti una traccia",
|
||
channels: "canali", oneChannel: "canale", searchingPlayers: "Ricerca dei lettori di rete…",
|
||
authUnknown: "Stato di autenticazione sconosciuto: {message}", noConnection: "Nessuna connessione: {message}",
|
||
loggedOut: "Hai effettuato la disconnessione.", volumePercent: "Regola il volume, {value} percento",
|
||
"login-rate-limited": "Troppi tentativi di accesso non riusciti; riprova tra qualche minuto.",
|
||
"invalid-credentials": "Nome utente o password non validi.",
|
||
"json-required": "È richiesto Content-Type application/json.",
|
||
"authentication-required": "È necessario effettuare l’accesso.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "Il renderer DLNA non ha confermato l’avvio della traccia.",
|
||
"dlna-renderer-unreachable": "Il renderer DLNA non è raggiungibile.",
|
||
},
|
||
sv: {
|
||
folders: "Mappar",
|
||
savePlaylist: "SPARA SPELLISTA",
|
||
playlistSaved: "SPARAD",
|
||
noSavedPlaylists: "Inga sparade spellistor ännu.",
|
||
savePlaylistHint: "Spara en spellista för att hitta den här.",
|
||
openPlaylistNamed: "Öppna {name} som en flik",
|
||
closePlaylist: "Stäng fliken",
|
||
playingTime: "{duration} speltid",
|
||
output: "UTGÅNG", searchPlayers: "Sök efter nätverksspelare", logout: "LOGGA UT",
|
||
rendererLocal: "LOKAL", defaultPlaylist: "Standard",
|
||
playbackControls: "Uppspelningskontroller", previousTrack: "Föregående spår",
|
||
playOrPause: "Spela eller pausa", play: "Spela", pause: "Pausa", stop: "Stoppa",
|
||
nextTrack: "Nästa spår", playbackPosition: "Uppspelningsposition",
|
||
repeatMode: "Upprepningsläge", setVolume: "Ställ in volym", volume: "Volym",
|
||
musicLibrary: "MUSIKBIBLIOTEK", upFolder: "En mapp upp", currentFolder: "Aktuell mapp",
|
||
noLibraryConfigured: "Inget bibliotek har konfigurerats.", folderContents: "Mappinnehåll",
|
||
nowPlaying: "SPELAR NU", nothingSelected: "Inget har valts",
|
||
addTrackHint: "Lägg till ett spår från biblioteket", playlists: "Spellistor",
|
||
newPlaylist: "Ny spellista", playlist: "SPELLISTA", clearList: "TÖM LISTAN",
|
||
emptyPlaylist: "Den här spellistan är tom.", emptyPlaylistHint: "Använd + bredvid ett spår eller en mapp.",
|
||
title: "TITEL", album: "ALBUM", duration: "LÄNGD", actions: "Åtgärder",
|
||
connecting: "Ansluter…", signIn: "Logga in", username: "Användarnamn",
|
||
password: "Lösenord", noLibrary: "Inget bibliotek", playNow: "Spela {name} nu",
|
||
addNamed: "Lägg till {name}", loadingNamed: "Läser in {name}…", addingNamed: "Lägger till {name}…",
|
||
playlistName: "Spellistans namn", removePlaylist: "Ta bort spellista",
|
||
removeNamed: "Ta bort {name}", oneTrack: "spår", manyTracks: "spår",
|
||
repeatOff: "Upprepning av", repeatAll: "Upprepa alla", repeatOne: "Upprepa ett spår",
|
||
channels: "kanaler", oneChannel: "kanal", searchingPlayers: "Söker efter nätverksspelare…",
|
||
authUnknown: "Okänd autentiseringsstatus: {message}", noConnection: "Ingen anslutning: {message}",
|
||
loggedOut: "Du har loggats ut.", volumePercent: "Ställ in volymen på {value} procent",
|
||
"login-rate-limited": "För många misslyckade inloggningsförsök; försök igen om några minuter.",
|
||
"invalid-credentials": "Ogiltigt användarnamn eller lösenord.",
|
||
"json-required": "Content-Type application/json krävs.",
|
||
"authentication-required": "Inloggning krävs.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "DLNA-renderaren bekräftade inte att spåret startade.",
|
||
"dlna-renderer-unreachable": "DLNA-renderaren kan inte nås.",
|
||
},
|
||
no: {
|
||
folders: "Mapper",
|
||
savePlaylist: "LAGRE SPILLELISTE",
|
||
playlistSaved: "LAGRET",
|
||
noSavedPlaylists: "Ingen lagrede spillelister ennå.",
|
||
savePlaylistHint: "Lagre en spilleliste for å finne den her.",
|
||
openPlaylistNamed: "Åpne {name} som en fane",
|
||
closePlaylist: "Lukk fanen",
|
||
playingTime: "{duration} spilletid",
|
||
output: "UTGANG", searchPlayers: "Søk etter nettverksspillere", logout: "LOGG UT",
|
||
rendererLocal: "LOKAL", defaultPlaylist: "Standard",
|
||
playbackControls: "Avspillingskontroller", previousTrack: "Forrige spor",
|
||
playOrPause: "Spill av eller sett på pause", play: "Spill av", pause: "Pause", stop: "Stopp",
|
||
nextTrack: "Neste spor", playbackPosition: "Avspillingsposisjon",
|
||
repeatMode: "Gjentakelsesmodus", setVolume: "Still inn volum", volume: "Volum",
|
||
musicLibrary: "MUSIKKBIBLIOTEK", upFolder: "Én mappe opp", currentFolder: "Gjeldende mappe",
|
||
noLibraryConfigured: "Ingen bibliotek er konfigurert.", folderContents: "Mappeinnhold",
|
||
nowPlaying: "SPILLER NÅ", nothingSelected: "Ingenting er valgt",
|
||
addTrackHint: "Legg til et spor fra biblioteket", playlists: "Spillelister",
|
||
newPlaylist: "Ny spilleliste", playlist: "SPILLELISTE", clearList: "TØM LISTEN",
|
||
emptyPlaylist: "Denne spillelisten er tom.", emptyPlaylistHint: "Bruk + ved siden av et spor eller en mappe.",
|
||
title: "TITTEL", album: "ALBUM", duration: "VARIGHET", actions: "Handlinger",
|
||
connecting: "Kobler til…", signIn: "Logg inn", username: "Brukernavn",
|
||
password: "Passord", noLibrary: "Ingen bibliotek", playNow: "Spill av {name} nå",
|
||
addNamed: "Legg til {name}", loadingNamed: "Laster inn {name}…", addingNamed: "Legger til {name}…",
|
||
playlistName: "Navn på spilleliste", removePlaylist: "Fjern spilleliste",
|
||
removeNamed: "Fjern {name}", oneTrack: "spor", manyTracks: "spor",
|
||
repeatOff: "Gjentakelse av", repeatAll: "Gjenta alle", repeatOne: "Gjenta ett spor",
|
||
channels: "kanaler", oneChannel: "kanal", searchingPlayers: "Søker etter nettverksspillere…",
|
||
authUnknown: "Ukjent autentiseringsstatus: {message}", noConnection: "Ingen tilkobling: {message}",
|
||
loggedOut: "Du er logget ut.", volumePercent: "Still inn volumet på {value} prosent",
|
||
"login-rate-limited": "For mange mislykkede innloggingsforsøk; prøv igjen om noen minutter.",
|
||
"invalid-credentials": "Ugyldig brukernavn eller passord.",
|
||
"json-required": "Content-Type application/json er påkrevd.",
|
||
"authentication-required": "Innlogging er påkrevd.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "DLNA-gjengiveren bekreftet ikke at sporet startet.",
|
||
"dlna-renderer-unreachable": "DLNA-gjengiveren kan ikke nås.",
|
||
},
|
||
fi: {
|
||
folders: "Kansiot",
|
||
savePlaylist: "TALLENNA SOITTOLISTA",
|
||
playlistSaved: "TALLENNETTU",
|
||
noSavedPlaylists: "Ei vielä tallennettuja soittolistoja.",
|
||
savePlaylistHint: "Tallenna soittolista, niin löydät sen täältä.",
|
||
openPlaylistNamed: "Avaa {name} välilehtenä",
|
||
closePlaylist: "Sulje välilehti",
|
||
playingTime: "Toistoaika: {duration}",
|
||
output: "ULOSTULO", searchPlayers: "Etsi verkkosoittimia", logout: "KIRJAUDU ULOS",
|
||
rendererLocal: "PAIKALLINEN", defaultPlaylist: "Oletus",
|
||
playbackControls: "Toiston ohjaimet", previousTrack: "Edellinen kappale",
|
||
playOrPause: "Toista tai keskeytä", play: "Toista", pause: "Keskeytä", stop: "Pysäytä",
|
||
nextTrack: "Seuraava kappale", playbackPosition: "Toistokohta",
|
||
repeatMode: "Toistotila", setVolume: "Säädä äänenvoimakkuutta", volume: "Äänenvoimakkuus",
|
||
musicLibrary: "MUSIIKKIKIRJASTO", upFolder: "Yksi kansio ylöspäin", currentFolder: "Nykyinen kansio",
|
||
noLibraryConfigured: "Kirjastoa ei ole määritetty.", folderContents: "Kansion sisältö",
|
||
nowPlaying: "NYT TOISTETAAN", nothingSelected: "Mitään ei ole valittu",
|
||
addTrackHint: "Lisää kappale kirjastosta", playlists: "Soittolistat",
|
||
newPlaylist: "Uusi soittolista", playlist: "SOITTOLISTA", clearList: "TYHJENNÄ LISTA",
|
||
emptyPlaylist: "Tämä soittolista on tyhjä.", emptyPlaylistHint: "Käytä + kappaleen tai kansion vieressä.",
|
||
title: "NIMI", album: "ALBUMI", duration: "KESTO", actions: "Toiminnot",
|
||
connecting: "Yhdistetään…", signIn: "Kirjaudu sisään", username: "Käyttäjänimi",
|
||
password: "Salasana", noLibrary: "Ei kirjastoa", playNow: "Toista {name} nyt",
|
||
addNamed: "Lisää {name}", loadingNamed: "Ladataan {name}…", addingNamed: "Lisätään {name}…",
|
||
playlistName: "Soittolistan nimi", removePlaylist: "Poista soittolista",
|
||
removeNamed: "Poista {name}", oneTrack: "kappale", manyTracks: "kappaletta",
|
||
repeatOff: "Toisto pois", repeatAll: "Toista kaikki", repeatOne: "Toista yksi kappale",
|
||
channels: "kanavaa", oneChannel: "kanava", searchingPlayers: "Etsitään verkkosoittimia…",
|
||
authUnknown: "Todennuksen tila ei ole tiedossa: {message}", noConnection: "Ei yhteyttä: {message}",
|
||
loggedOut: "Olet kirjautunut ulos.", volumePercent: "Säädä äänenvoimakkuudeksi {value} prosenttia",
|
||
"login-rate-limited": "Liian monta epäonnistunutta kirjautumisyritystä; yritä uudelleen muutaman minuutin kuluttua.",
|
||
"invalid-credentials": "Virheellinen käyttäjänimi tai salasana.",
|
||
"json-required": "Content-Type application/json vaaditaan.",
|
||
"authentication-required": "Kirjautuminen vaaditaan.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "DLNA-toistin ei vahvistanut kappaleen käynnistymistä.",
|
||
"dlna-renderer-unreachable": "DLNA-toistimeen ei saada yhteyttä.",
|
||
},
|
||
is: {
|
||
folders: "Möppur",
|
||
savePlaylist: "VISTA SPILUNARLISTA",
|
||
playlistSaved: "VISTAÐ",
|
||
noSavedPlaylists: "Engir vistaðir spilunarlistar enn.",
|
||
savePlaylistHint: "Vistaðu spilunarlista til að finna hann hér.",
|
||
openPlaylistNamed: "Opna {name} í flipa",
|
||
closePlaylist: "Loka flipa",
|
||
playingTime: "Spilunartími: {duration}",
|
||
output: "ÚTTAK", searchPlayers: "Leita að netspilurum", logout: "SKRÁ ÚT",
|
||
rendererLocal: "STAÐBUNDIÐ", defaultPlaylist: "Sjálfgefið",
|
||
playbackControls: "Stýringar spilunar", previousTrack: "Fyrra lag",
|
||
playOrPause: "Spila eða gera hlé", play: "Spila", pause: "Gera hlé", stop: "Stöðva",
|
||
nextTrack: "Næsta lag", playbackPosition: "Staða spilunar",
|
||
repeatMode: "Endurtekningarhamur", setVolume: "Stilla hljóðstyrk", volume: "Hljóðstyrkur",
|
||
musicLibrary: "TÓNLISTARSAFN", upFolder: "Eina möppu upp", currentFolder: "Núverandi mappa",
|
||
noLibraryConfigured: "Ekkert safn er skilgreint.", folderContents: "Innihald möppu",
|
||
nowPlaying: "Í SPILUN", nothingSelected: "Ekkert valið",
|
||
addTrackHint: "Bættu lagi við úr safninu", playlists: "Spilunarlistar",
|
||
newPlaylist: "Nýr spilunarlisti", playlist: "SPILUNARLISTI", clearList: "HREINSA LISTA",
|
||
emptyPlaylist: "Þessi spilunarlisti er tómur.", emptyPlaylistHint: "Notaðu + við hlið lags eða möppu.",
|
||
title: "TITILL", album: "PLATA", duration: "LENGD", actions: "Aðgerðir",
|
||
connecting: "Tengist…", signIn: "Skrá inn", username: "Notandanafn",
|
||
password: "Lykilorð", noLibrary: "Ekkert safn", playNow: "Spila {name} núna",
|
||
addNamed: "Bæta {name} við", loadingNamed: "Hleður {name}…", addingNamed: "Bætir {name} við…",
|
||
playlistName: "Heiti spilunarlista", removePlaylist: "Fjarlægja spilunarlista",
|
||
removeNamed: "Fjarlægja {name}", oneTrack: "lag", manyTracks: "lög",
|
||
repeatOff: "Endurtekning óvirk", repeatAll: "Endurtaka allt", repeatOne: "Endurtaka eitt lag",
|
||
channels: "rásir", oneChannel: "rás", searchingPlayers: "Leita að netspilurum…",
|
||
authUnknown: "Staða auðkenningar óþekkt: {message}", noConnection: "Engin tenging: {message}",
|
||
loggedOut: "Þú hefur skráð þig út.", volumePercent: "Stilla hljóðstyrk á {value} prósent",
|
||
"login-rate-limited": "Of margar misheppnaðar innskráningartilraunir; reyndu aftur eftir nokkrar mínútur.",
|
||
"invalid-credentials": "Ógilt notandanafn eða lykilorð.",
|
||
"json-required": "Content-Type application/json er áskilið.",
|
||
"authentication-required": "Innskráningar er krafist.",
|
||
"dlna-renderer-no-start-of-track-confirmation": "DLNA-spilarinn staðfesti ekki að spilun lagsins hefði hafist.",
|
||
"dlna-renderer-unreachable": "Ekki næst samband við DLNA-spilarann.",
|
||
},
|
||
};
|
||
|
||
const supported = Object.keys(translations);
|
||
const requested = [...(navigator.languages || [navigator.language])]
|
||
.filter(Boolean)
|
||
.map((value) => value.toLowerCase().split("-")[0])
|
||
.map((value) => ({ nb: "no", nn: "no" })[value] || value);
|
||
let language = requested.find((value) => supported.includes(value)) || "en";
|
||
|
||
function t(key, values = {}) {
|
||
const template = translations[language][key] ?? translations.en[key] ?? key;
|
||
return template.replace(/\{(\w+)\}/g, (_match, name) => values[name] ?? `{${name}}`);
|
||
}
|
||
|
||
function apply(root = document) {
|
||
document.documentElement.lang = language;
|
||
root.querySelectorAll("[data-i18n]").forEach((element) => {
|
||
element.textContent = t(element.dataset.i18n);
|
||
});
|
||
root.querySelectorAll("[data-i18n-title]").forEach((element) => {
|
||
const value = t(element.dataset.i18nTitle);
|
||
element.title = value;
|
||
element.setAttribute("aria-label", value);
|
||
});
|
||
root.querySelectorAll("[data-i18n-aria]").forEach((element) => {
|
||
element.setAttribute("aria-label", t(element.dataset.i18nAria));
|
||
});
|
||
}
|
||
|
||
function setLanguage(value) {
|
||
if (!supported.includes(value)) return;
|
||
language = value;
|
||
apply();
|
||
window.dispatchEvent(new CustomEvent("rkt-language-change"));
|
||
}
|
||
|
||
window.RktTranslate = { apply, language: () => language, setLanguage, supported, t };
|
||
window.addEventListener("DOMContentLoaded", () => apply());
|
||
})();
|