From 97e604772551f77b3b73eb1389a679afff4fba94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 9 Mar 2019 05:04:31 +0000 Subject: [PATCH 1/4] =?UTF-8?q?Update=20Norwegian=20Bokm=C3=A5l=20translat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/nb_NO.json | 578 ++++++++++++++++++++++----------------------- 1 file changed, 289 insertions(+), 289 deletions(-) diff --git a/locales/nb_NO.json b/locales/nb_NO.json index f0f544b5..591b70b6 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -1,291 +1,291 @@ { - "`x` subscribers": "`x` abonnenter", - "`x` videos": "`x` videoer", - "LIVE": "SANNTIDSVISNING", - "Shared `x` ago": "Delt for `x` siden", - "Unsubscribe": "Opphev abonnement", - "Subscribe": "Abonner", - "Login to subscribe to `x`": "Logg inn for å abonnere på `x`", - "View channel on YouTube": "Vis kanal på YouTube", - "newest": "nyeste", - "oldest": "eldste", - "popular": "populært", - "last": "", - "Next page": "Neste side", - "Previous page": "Forrige side", - "Clear watch history?": "Tøm visningshistorikk?", - "Yes": "Ja", - "No": "Nei", - "Import and Export Data": "Importer- og eksporter data", - "Import": "Importer", - "Import Invidious data": "Importer Invidious-data", - "Import YouTube subscriptions": "Importer YouTube-abonnenter", - "Import FreeTube subscriptions (.db)": "Importer FreeTube-abonnenter (.db)", - "Import NewPipe subscriptions (.json)": "Importer NewPipe-abonnenter (.json)", - "Import NewPipe data (.zip)": "Importer NewPipe-data (.zip)", - "Export": "Eksporter", - "Export subscriptions as OPML": "Eksporter abonnenter som OPML", - "Export subscriptions as OPML (for NewPipe & FreeTube)": "Eksporter abonnenter som OPML (for NewPipe og FreeTube)", - "Export data as JSON": "Eksporter data som JSON", - "Delete account?": "Slett konto?", - "History": "Historikk", - "An alternative front-end to YouTube": "En alternativ grenseflate for YouTube", - "JavaScript license information": "JavaScript-lisensinformasjon", - "source": "kilde", - "Login": "Logg inn", - "Login/Register": "Logg inn/registrer", - "Login to Google": "Logg inn med Google", - "User ID:": "Bruker-ID:", - "Password:": "Passord:", - "Time (h:mm:ss):": "Tid (h:mm:ss):", - "Text CAPTCHA": "Tekst-CAPTCHA", - "Image CAPTCHA": "Bilde-CAPTCHA", - "Sign In": "Innlogging", - "Register": "Registrer", - "Email:": "E-post:", - "Google verification code:": "Google-bekreftelseskode:", - "Preferences": "Innstillinger", - "Player preferences": "Avspillerinnstillinger", - "Always loop: ": "Alltid gjenta: ", - "Autoplay: ": "Autoavspilling: ", - "Autoplay next video: ": "Autospill neste video: ", - "Listen by default: ": "Lytt som forvalg: ", - "Default speed: ": "Forvalgt hastighet: ", - "Preferred video quality: ": "Foretrukket videokvalitet: ", - "Player volume: ": "Avspillerlydstyrke: ", - "Default comments: ": "Forvalgte kommentarer: ", - "Default captions: ": "Forvalgte undertitler: ", - "Fallback captions: ": "Tilbakefallsundertitler: ", - "Show related videos? ": "Vis relaterte videoer? ", - "Visual preferences": "Visuelle innstillinger", - "Dark mode: ": "Mørk drakt: ", - "Thin mode: ": "Tynt modus: ", - "Subscription preferences": "Abonnementsinnstillinger", - "Redirect homepage to feed: ": "Videresend hjemmeside til flyt: ", - "Number of videos shown in feed: ": "Antall videoer å vise i flyt: ", - "Sort videos by: ": "Sorter videoer etter: ", - "published": "publisert", - "published - reverse": "publisert - motsatt", - "alphabetically": "alfabetisk", - "alphabetically - reverse": "alfabetisk - motsatt", - "channel name": "kanalnavn", - "channel name - reverse": "kanalnavn - motsatt", - "Only show latest video from channel: ": "Kun vis siste video fra kanal: ", - "Only show latest unwatched video from channel: ": "Kun vis siste usette video fra kanal: ", - "Only show unwatched: ": "Kun vis usette: ", - "Only show notifications (if there are any): ": "Kun vis merknader (hvis det er noen): ", - "Data preferences": "Datainnstillinger", - "Clear watch history": "Tøm visningshistorikk", - "Import/Export data": "Importer/eksporter data", - "Manage subscriptions": "Behandle abonnementer", - "Watch history": "Visningshistorikk", - "Delete account": "Slett konto", - "Administrator preferences": "Administratorinnstillinger", - "Default homepage: ": "Forvalgt hjemmeside: ", - "Feed menu: ": "Flyt-meny: ", - "Top enabled? ": "", - "CAPTCHA enabled? ": "CAPTCHA påskrudd? ", - "Login enabled? ": "Innlogging påskrudd? ", - "Registration enabled? ": "Registrering påskrudd? ", - "Report statistics? ": "Innrapporter statistikk? ", - "Save preferences": "Lagre innstillinger", - "Subscription manager": "Abonnementsbehandler", - "`x` subscriptions": "`x` abonnementer", - "Import/Export": "Importer/eksporter", - "unsubscribe": "opphev abonnement", - "Subscriptions": "Abonnement", - "`x` unseen notifications": "`x` usette merknader", - "search": "søk", - "Sign out": "Logg ut", - "Released under the AGPLv3 by Omar Roth.": "Utgitt med AGPLv3+lisens av Omar Roth.", - "Source available here.": "Kildekode tilgjengelig her.", - "View JavaScript license information.": "Vis JavaScript-lisensinfo.", - "Trending": "Trendsettende", - "Watch video on Youtube": "Vis video på YouTube", - "Genre: ": "Sjanger: ", - "License: ": "Lisens: ", - "Family friendly? ": "Familievennlig? ", - "Wilson score: ": "Wilson-poengsum: ", - "Engagement: ": "Engasjement: ", - "Whitelisted regions: ": "Hvitlistede regioner: ", - "Blacklisted regions: ": "Svartelistede regioner: ", - "Shared `x`": "Delt `x`", - "Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Hei. Det ser ut til at du har JavaScript avslått. Klikk her for å vise kommentarer, ha i minnet at innlasting tar lengre tid.", - "View YouTube comments": "Vis YouTube-kommentarer", - "View more comments on Reddit": "Vis flere kommenterer på Reddit", - "View `x` comments": "Vis `x` kommentarer", - "View Reddit comments": "Vis Reddit-kommentarer", - "Hide replies": "Skjul svar", - "Show replies": "Vis svar", - "Incorrect password": "Feil passord", - "Quota exceeded, try again in a few hours": "Kvote overskredet, prøv igjen om et par timer", - "Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Kunne ikke logge inn, forsikre deg om at tofaktor-identitetsbekreftelse (Authenticator eller SMS) er skrudd på.", - "Invalid TFA code": "Ugyldig tofaktorkode", - "Login failed. This may be because two-factor authentication is not enabled on your account.": "Innlogging mislyktes. Dette kan være fordi tofaktor-identitetsbekreftelse er skrudd av på kontoen din.", - "Invalid answer": "Ugyldig svar", - "Invalid CAPTCHA": "Ugyldig CAPTCHA", - "CAPTCHA is a required field": "CAPTCHA er et påkrevd felt", - "User ID is a required field": "Bruker-ID er et påkrevd felt", - "Password is a required field": "Passord er et påkrevd felt", - "Invalid username or password": "Ugyldig brukernavn eller passord", - "Please sign in using 'Sign in with Google'": "Logg inn ved bruk av \"Google-innlogging\"", - "Password cannot be empty": "Passordet kan ikke være tomt", - "Password cannot be longer than 55 characters": "Passordet kan ikke være lengre enn 55 tegn", - "Please sign in": "Logg inn", - "Invidious Private Feed for `x`": "Ugyldig privat flyt for `x`", - "channel:`x`": "kanal `x`", - "Deleted or invalid channel": "Slettet eller ugyldig kanal", - "This channel does not exist.": "Denne kanalen finnes ikke.", - "Could not get channel info.": "Kunne ikke innhente kanalinfo.", - "Could not fetch comments": "Kunne ikke hente kommentarer", - "View `x` replies": "Vis `x` svar", - "`x` ago": "`x` siden", - "Load more": "Last inn flere", - "`x` points": "`x` poeng", - "Could not create mix.": "Kunne ikke opprette miks.", - "Playlist is empty": "Spillelisten er tom", - "Invalid playlist.": "Ugyldig spilleliste.", - "Playlist does not exist.": "Spillelisten finnes ikke.", - "Could not pull trending pages.": "Kunne ikke hente trendsettende sider.", - "Hidden field \"challenge\" is a required field": "Skjult felt \"utfordring\" er et påkrevd felt", - "Hidden field \"token\" is a required field": "Skjult felt \"symbol\" er et påkrevd felt", - "Invalid challenge": "Ugyldig utfordring", - "Invalid token": "Ugyldig symbol", - "Invalid user": "Ugyldig bruker", - "Token is expired, please try again": "Symbol utløpt, prøv igjen", - "English": "Engelsk", - "English (auto-generated)": "Engelsk (auto-generert)", - "Afrikaans": "", - "Albanian": "Albansk", - "Amharic": "", - "Arabic": "Arabisk", - "Armenian": "Armensk", - "Azerbaijani": "", - "Bangla": "", - "Basque": "", - "Belarusian": "Hviterussisk", - "Bosnian": "Bosnisk", - "Bulgarian": "Bulgarsk", - "Burmese": "Burmesisk", - "Catalan": "Katalansk", - "Cebuano": "", - "Chinese (Simplified)": "", - "Chinese (Traditional)": "", - "Corsican": "", - "Croatian": "", - "Czech": "Tsjekkisk", - "Danish": "Dansk", - "Dutch": "", - "Esperanto": "Esperanto", - "Estonian": "", - "Filipino": "", - "Finnish": "Finsk", - "French": "Fransk", - "Galician": "", - "Georgian": "", - "German": "", - "Greek": "", - "Gujarati": "", - "Haitian Creole": "", - "Hausa": "", - "Hawaiian": "", - "Hebrew": "", - "Hindi": "", - "Hmong": "", - "Hungarian": "Ungarsk", - "Icelandic": "Islandsk", - "Igbo": "", - "Indonesian": "Indonesisk", - "Irish": "Irsk", - "Italian": "Italiensk", - "Japanese": "Japansk", - "Javanese": "", - "Kannada": "", - "Kazakh": "", - "Khmer": "", - "Korean": "", - "Kurdish": "", - "Kyrgyz": "", - "Lao": "", - "Latin": "", - "Latvian": "", - "Lithuanian": "", - "Luxembourgish": "", - "Macedonian": "", - "Malagasy": "", - "Malay": "", - "Malayalam": "", - "Maltese": "", - "Maori": "", - "Marathi": "", - "Mongolian": "", - "Nepali": "", - "Norwegian": "Norsk bokmål", - "Nyanja": "", - "Pashto": "", - "Persian": "", - "Polish": "", - "Portuguese": "", - "Punjabi": "", - "Romanian": "", - "Russian": "Russisk", - "Samoan": "", - "Scottish Gaelic": "", - "Serbian": "Serbisk", - "Shona": "", - "Sindhi": "", - "Sinhala": "", - "Slovak": "Slovakisk", - "Slovenian": "Slovensk", - "Somali": "Somali", - "Southern Sotho": "", - "Spanish": "Spansk", - "Spanish (Latin America)": "", - "Sundanese": "", - "Swahili": "", - "Swedish": "Svensk", - "Tajik": "", - "Tamil": "", - "Telugu": "", - "Thai": "", - "Turkish": "Tyrkisk", - "Ukrainian": "Ukrainsk", - "Urdu": "", - "Uzbek": "", - "Vietnamese": "Vietnamesisk", - "Welsh": "", - "Western Frisian": "", - "Xhosa": "", - "Yiddish": "", - "Yoruba": "", - "Zulu": "", - "`x` years": "`x` år", - "`x` months": "`x` måneder", - "`x` weeks": "`x` uker", - "`x` days": "`x` dager", - "`x` hours": "`x` timer", - "`x` minutes": "`x` minutter", - "`x` seconds": "`x` sekunder", - "Fallback comments: ": "Tilbakefallskommentarer: ", - "Popular": "Pupulært", - "Top": "Topp", - "About": "Om", - "Rating: ": "Vurdering: ", - "Language: ": "Språk: ", - "Default": "Forvalg", - "Music": "Musikk", - "Gaming": "Spill", - "News": "Nyheter", - "Movies": "Filmer", - "Download": "Last ned", - "Download as: ": "Last ned som: ", - "%A %B %-d, %Y": "", - "(edited)": "(redigert)", - "Youtube permalink of the comment": "Permanent YouTube-lenke til innholdet", - "`x` marked it with a ❤": "`x` levnet et ❤", - "Audio mode": "Lydmodus", - "Video mode": "Video-modus", - "Videos": "", - "Playlists": "", - "Current version: ": "" + "`x` subscribers": "`x` abonnenter", + "`x` videos": "`x` videoer", + "LIVE": "SANNTIDSVISNING", + "Shared `x` ago": "Delt for `x` siden", + "Unsubscribe": "Opphev abonnement", + "Subscribe": "Abonner", + "Login to subscribe to `x`": "Logg inn for å abonnere på `x`", + "View channel on YouTube": "Vis kanal på YouTube", + "newest": "nyeste", + "oldest": "eldste", + "popular": "populært", + "last": "siste", + "Next page": "Neste side", + "Previous page": "Forrige side", + "Clear watch history?": "Tøm visningshistorikk?", + "Yes": "Ja", + "No": "Nei", + "Import and Export Data": "Importer- og eksporter data", + "Import": "Importer", + "Import Invidious data": "Importer Invidious-data", + "Import YouTube subscriptions": "Importer YouTube-abonnenter", + "Import FreeTube subscriptions (.db)": "Importer FreeTube-abonnenter (.db)", + "Import NewPipe subscriptions (.json)": "Importer NewPipe-abonnenter (.json)", + "Import NewPipe data (.zip)": "Importer NewPipe-data (.zip)", + "Export": "Eksporter", + "Export subscriptions as OPML": "Eksporter abonnenter som OPML", + "Export subscriptions as OPML (for NewPipe & FreeTube)": "Eksporter abonnenter som OPML (for NewPipe og FreeTube)", + "Export data as JSON": "Eksporter data som JSON", + "Delete account?": "Slett konto?", + "History": "Historikk", + "An alternative front-end to YouTube": "En alternativ grenseflate for YouTube", + "JavaScript license information": "JavaScript-lisensinformasjon", + "source": "kilde", + "Login": "Logg inn", + "Login/Register": "Logg inn/registrer", + "Login to Google": "Logg inn med Google", + "User ID:": "Bruker-ID:", + "Password:": "Passord:", + "Time (h:mm:ss):": "Tid (h:mm:ss):", + "Text CAPTCHA": "Tekst-CAPTCHA", + "Image CAPTCHA": "Bilde-CAPTCHA", + "Sign In": "Innlogging", + "Register": "Registrer", + "Email:": "E-post:", + "Google verification code:": "Google-bekreftelseskode:", + "Preferences": "Innstillinger", + "Player preferences": "Avspillerinnstillinger", + "Always loop: ": "Alltid gjenta: ", + "Autoplay: ": "Autoavspilling: ", + "Autoplay next video: ": "Autospill neste video: ", + "Listen by default: ": "Lytt som forvalg: ", + "Default speed: ": "Forvalgt hastighet: ", + "Preferred video quality: ": "Foretrukket videokvalitet: ", + "Player volume: ": "Avspillerlydstyrke: ", + "Default comments: ": "Forvalgte kommentarer: ", + "Default captions: ": "Forvalgte undertitler: ", + "Fallback captions: ": "Tilbakefallsundertitler: ", + "Show related videos? ": "Vis relaterte videoer? ", + "Visual preferences": "Visuelle innstillinger", + "Dark mode: ": "Mørk drakt: ", + "Thin mode: ": "Tynt modus: ", + "Subscription preferences": "Abonnementsinnstillinger", + "Redirect homepage to feed: ": "Videresend hjemmeside til flyt: ", + "Number of videos shown in feed: ": "Antall videoer å vise i flyt: ", + "Sort videos by: ": "Sorter videoer etter: ", + "published": "publisert", + "published - reverse": "publisert - motsatt", + "alphabetically": "alfabetisk", + "alphabetically - reverse": "alfabetisk - motsatt", + "channel name": "kanalnavn", + "channel name - reverse": "kanalnavn - motsatt", + "Only show latest video from channel: ": "Kun vis siste video fra kanal: ", + "Only show latest unwatched video from channel: ": "Kun vis siste usette video fra kanal: ", + "Only show unwatched: ": "Kun vis usette: ", + "Only show notifications (if there are any): ": "Kun vis merknader (hvis det er noen): ", + "Data preferences": "Datainnstillinger", + "Clear watch history": "Tøm visningshistorikk", + "Import/Export data": "Importer/eksporter data", + "Manage subscriptions": "Behandle abonnementer", + "Watch history": "Visningshistorikk", + "Delete account": "Slett konto", + "Administrator preferences": "Administratorinnstillinger", + "Default homepage: ": "Forvalgt hjemmeside: ", + "Feed menu: ": "Flyt-meny: ", + "Top enabled? ": "Topp påskrudd? ", + "CAPTCHA enabled? ": "CAPTCHA påskrudd? ", + "Login enabled? ": "Innlogging påskrudd? ", + "Registration enabled? ": "Registrering påskrudd? ", + "Report statistics? ": "Innrapporter statistikk? ", + "Save preferences": "Lagre innstillinger", + "Subscription manager": "Abonnementsbehandler", + "`x` subscriptions": "`x` abonnementer", + "Import/Export": "Importer/eksporter", + "unsubscribe": "opphev abonnement", + "Subscriptions": "Abonnement", + "`x` unseen notifications": "`x` usette merknader", + "search": "søk", + "Sign out": "Logg ut", + "Released under the AGPLv3 by Omar Roth.": "Utgitt med AGPLv3+lisens av Omar Roth.", + "Source available here.": "Kildekode tilgjengelig her.", + "View JavaScript license information.": "Vis JavaScript-lisensinfo.", + "Trending": "Trendsettende", + "Watch video on Youtube": "Vis video på YouTube", + "Genre: ": "Sjanger: ", + "License: ": "Lisens: ", + "Family friendly? ": "Familievennlig? ", + "Wilson score: ": "Wilson-poengsum: ", + "Engagement: ": "Engasjement: ", + "Whitelisted regions: ": "Hvitlistede regioner: ", + "Blacklisted regions: ": "Svartelistede regioner: ", + "Shared `x`": "Delt `x`", + "Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Hei. Det ser ut til at du har JavaScript avslått. Klikk her for å vise kommentarer, ha i minnet at innlasting tar lengre tid.", + "View YouTube comments": "Vis YouTube-kommentarer", + "View more comments on Reddit": "Vis flere kommenterer på Reddit", + "View `x` comments": "Vis `x` kommentarer", + "View Reddit comments": "Vis Reddit-kommentarer", + "Hide replies": "Skjul svar", + "Show replies": "Vis svar", + "Incorrect password": "Feil passord", + "Quota exceeded, try again in a few hours": "Kvote overskredet, prøv igjen om et par timer", + "Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Kunne ikke logge inn, forsikre deg om at tofaktor-identitetsbekreftelse (Authenticator eller SMS) er skrudd på.", + "Invalid TFA code": "Ugyldig tofaktorkode", + "Login failed. This may be because two-factor authentication is not enabled on your account.": "Innlogging mislyktes. Dette kan være fordi tofaktor-identitetsbekreftelse er skrudd av på kontoen din.", + "Invalid answer": "Ugyldig svar", + "Invalid CAPTCHA": "Ugyldig CAPTCHA", + "CAPTCHA is a required field": "CAPTCHA er et påkrevd felt", + "User ID is a required field": "Bruker-ID er et påkrevd felt", + "Password is a required field": "Passord er et påkrevd felt", + "Invalid username or password": "Ugyldig brukernavn eller passord", + "Please sign in using 'Sign in with Google'": "Logg inn ved bruk av \"Google-innlogging\"", + "Password cannot be empty": "Passordet kan ikke være tomt", + "Password cannot be longer than 55 characters": "Passordet kan ikke være lengre enn 55 tegn", + "Please sign in": "Logg inn", + "Invidious Private Feed for `x`": "Ugyldig privat flyt for `x`", + "channel:`x`": "kanal `x`", + "Deleted or invalid channel": "Slettet eller ugyldig kanal", + "This channel does not exist.": "Denne kanalen finnes ikke.", + "Could not get channel info.": "Kunne ikke innhente kanalinfo.", + "Could not fetch comments": "Kunne ikke hente kommentarer", + "View `x` replies": "Vis `x` svar", + "`x` ago": "`x` siden", + "Load more": "Last inn flere", + "`x` points": "`x` poeng", + "Could not create mix.": "Kunne ikke opprette miks.", + "Playlist is empty": "Spillelisten er tom", + "Invalid playlist.": "Ugyldig spilleliste.", + "Playlist does not exist.": "Spillelisten finnes ikke.", + "Could not pull trending pages.": "Kunne ikke hente trendsettende sider.", + "Hidden field \"challenge\" is a required field": "Skjult felt \"utfordring\" er et påkrevd felt", + "Hidden field \"token\" is a required field": "Skjult felt \"symbol\" er et påkrevd felt", + "Invalid challenge": "Ugyldig utfordring", + "Invalid token": "Ugyldig symbol", + "Invalid user": "Ugyldig bruker", + "Token is expired, please try again": "Symbol utløpt, prøv igjen", + "English": "Engelsk", + "English (auto-generated)": "Engelsk (auto-generert)", + "Afrikaans": "", + "Albanian": "Albansk", + "Amharic": "", + "Arabic": "Arabisk", + "Armenian": "Armensk", + "Azerbaijani": "", + "Bangla": "", + "Basque": "", + "Belarusian": "Hviterussisk", + "Bosnian": "Bosnisk", + "Bulgarian": "Bulgarsk", + "Burmese": "Burmesisk", + "Catalan": "Katalansk", + "Cebuano": "", + "Chinese (Simplified)": "", + "Chinese (Traditional)": "", + "Corsican": "", + "Croatian": "", + "Czech": "Tsjekkisk", + "Danish": "Dansk", + "Dutch": "", + "Esperanto": "Esperanto", + "Estonian": "", + "Filipino": "", + "Finnish": "Finsk", + "French": "Fransk", + "Galician": "", + "Georgian": "", + "German": "", + "Greek": "", + "Gujarati": "", + "Haitian Creole": "", + "Hausa": "", + "Hawaiian": "", + "Hebrew": "", + "Hindi": "", + "Hmong": "", + "Hungarian": "Ungarsk", + "Icelandic": "Islandsk", + "Igbo": "", + "Indonesian": "Indonesisk", + "Irish": "Irsk", + "Italian": "Italiensk", + "Japanese": "Japansk", + "Javanese": "", + "Kannada": "", + "Kazakh": "", + "Khmer": "", + "Korean": "", + "Kurdish": "", + "Kyrgyz": "", + "Lao": "", + "Latin": "", + "Latvian": "", + "Lithuanian": "", + "Luxembourgish": "", + "Macedonian": "", + "Malagasy": "", + "Malay": "", + "Malayalam": "", + "Maltese": "", + "Maori": "", + "Marathi": "", + "Mongolian": "", + "Nepali": "", + "Norwegian": "Norsk bokmål", + "Nyanja": "", + "Pashto": "", + "Persian": "", + "Polish": "", + "Portuguese": "", + "Punjabi": "", + "Romanian": "", + "Russian": "Russisk", + "Samoan": "", + "Scottish Gaelic": "", + "Serbian": "Serbisk", + "Shona": "", + "Sindhi": "", + "Sinhala": "", + "Slovak": "Slovakisk", + "Slovenian": "Slovensk", + "Somali": "Somali", + "Southern Sotho": "", + "Spanish": "Spansk", + "Spanish (Latin America)": "", + "Sundanese": "", + "Swahili": "", + "Swedish": "Svensk", + "Tajik": "", + "Tamil": "", + "Telugu": "", + "Thai": "", + "Turkish": "Tyrkisk", + "Ukrainian": "Ukrainsk", + "Urdu": "", + "Uzbek": "", + "Vietnamese": "Vietnamesisk", + "Welsh": "", + "Western Frisian": "", + "Xhosa": "", + "Yiddish": "", + "Yoruba": "", + "Zulu": "", + "`x` years": "`x` år", + "`x` months": "`x` måneder", + "`x` weeks": "`x` uker", + "`x` days": "`x` dager", + "`x` hours": "`x` timer", + "`x` minutes": "`x` minutter", + "`x` seconds": "`x` sekunder", + "Fallback comments: ": "Tilbakefallskommentarer: ", + "Popular": "Pupulært", + "Top": "Topp", + "About": "Om", + "Rating: ": "Vurdering: ", + "Language: ": "Språk: ", + "Default": "Forvalg", + "Music": "Musikk", + "Gaming": "Spill", + "News": "Nyheter", + "Movies": "Filmer", + "Download": "Last ned", + "Download as: ": "Last ned som: ", + "%A %B %-d, %Y": "", + "(edited)": "(redigert)", + "Youtube permalink of the comment": "Permanent YouTube-lenke til innholdet", + "`x` marked it with a ❤": "`x` levnet et ❤", + "Audio mode": "Lydmodus", + "Video mode": "Video-modus", + "Videos": "Videoer", + "Playlists": "Spillelister", + "Current version: ": "Nåværende versjon: " } From 1ac611239e8c49721085418855749eb012236bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Sat, 9 Mar 2019 16:16:23 +0000 Subject: [PATCH 2/4] Update Polish translation --- locales/pl.json | 578 ++++++++++++++++++++++++------------------------ 1 file changed, 289 insertions(+), 289 deletions(-) diff --git a/locales/pl.json b/locales/pl.json index 0db43c51..4bf21efa 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -1,291 +1,291 @@ { - "`x` subscribers": "`x` subskrybcji", - "`x` videos": "`x` filmów", - "LIVE": "NA ŻYWO", - "Shared `x` ago": "Udostępniono `x` temu", - "Unsubscribe": "Odsubskrybuj", - "Subscribe": "Subskrybuj", - "Login to subscribe to `x`": "Zaloguj się, aby subskrybować `x`", - "View channel on YouTube": "Wyświetl kanał na YouTube", - "newest": "najnowsze", - "oldest": "najstarsze", - "popular": "popularne", - "last": "", - "Next page": "Następna strona", - "Previous page": "Poprzednia strona", - "Clear watch history?": "Wyczyścić historię?", - "Yes": "Tak", - "No": "Nie", - "Import and Export Data": "Import i eksport danych", - "Import": "Import", - "Import Invidious data": "Importuj dane Invidious", - "Import YouTube subscriptions": "Importuj subskrybcje z YouTube", - "Import FreeTube subscriptions (.db)": "Importuj subskrybcje z FreeTube (.db)", - "Import NewPipe subscriptions (.json)": "Importuj subskrybcje z NewPipe (.json)", - "Import NewPipe data (.zip)": "Importuj dane NewPipe (.zip)", - "Export": "Eksport", - "Export subscriptions as OPML": "Eksportuj subskrybcje jako OPML", - "Export subscriptions as OPML (for NewPipe & FreeTube)": "Eksportuj subskrybcje jako OPML (dla NewPipe i FreeTube)", - "Export data as JSON": "Eksportuj dane jako JSON", - "Delete account?": "Usunąć konto?", - "History": "Historia", - "An alternative front-end to YouTube": "Alternatywny front-end dla YouTube", - "JavaScript license information": "Informacja o licencji JavaScript", - "source": "źródło", - "Login": "Zaloguj", - "Login/Register": "Zaloguj/Zarejestruj", - "Login to Google": "Zaloguj do Google", - "User ID:": "ID użytkownika:", - "Password:": "Hasło:", - "Time (h:mm:ss):": "Godzina (h:mm:ss):", - "Text CAPTCHA": "Tekst CAPTCHA", - "Image CAPTCHA": "Obraz CAPTCHA", - "Sign In": "Zaloguj się", - "Register": "Zarejestruj się", - "Email:": "Email:", - "Google verification code:": "Kod weryfikacyjny Google:", - "Preferences": "Preferencje", - "Player preferences": "Ustawienia odtwarzacza", - "Always loop: ": "Zawsze zapętlaj: ", - "Autoplay: ": "Autoodtwarzanie: ", - "Autoplay next video: ": "Odtwórz następny film: ", - "Listen by default: ": "Tryb dźwiękowy: ", - "Default speed: ": "Domyślna prędkość: ", - "Preferred video quality: ": "Preferowana jakość filmów: ", - "Player volume: ": "Głośność odtwarzacza: ", - "Default comments: ": "Domyślne komentarze: ", - "Default captions: ": "Domyślne napisy: ", - "Fallback captions: ": "Rezerwowe napisy: ", - "Show related videos? ": "Pokaż powiązane filmy? ", - "Visual preferences": "Preferencje Wizualne", - "Dark mode: ": "Ciemny motyw: ", - "Thin mode: ": "Tryb minimalny: ", - "Subscription preferences": "Preferencje subskrybcji", - "Redirect homepage to feed: ": "Przekieruj stronę główną do subskrybcji: ", - "Number of videos shown in feed: ": "Liczba filmów widoczna na stronie subskrybcji: ", - "Sort videos by: ": "Sortuj filmy po: ", - "published": "czasie publikacji", - "published - reverse": "czasie publikacji od najstarszych", - "alphabetically": "alfabetycznie", - "alphabetically - reverse": "alfabetycznie od tyłu", - "channel name": "nazwie kanału", - "channel name - reverse": "nazwie kanału od tyłu", - "Only show latest video from channel: ": "Pokazuj tylko najnowszy film z kanału: ", - "Only show latest unwatched video from channel: ": "Pokazuj tylko najnowszy nie obejrzany film z kanału: ", - "Only show unwatched: ": "Pokazuj tylko nie obejrzane: ", - "Only show notifications (if there are any): ": "Pokazuj tylko powiadomienia (jeśli są): ", - "Data preferences": "Preferencje danych", - "Clear watch history": "Wyczyść historię", - "Import/Export data": "Import/Eksport danych", - "Manage subscriptions": "Organizuj subskrybcje", - "Watch history": "Historia", - "Delete account": "Usuń konto", - "Administrator preferences": "", - "Default homepage: ": "", - "Feed menu: ": "", - "Top enabled? ": "", - "CAPTCHA enabled? ": "", - "Login enabled? ": "", - "Registration enabled? ": "", - "Report statistics? ": "", - "Save preferences": "Zapisz preferencje", - "Subscription manager": "Manager subskrybcji", - "`x` subscriptions": "`x` subskrybcji", - "Import/Export": "Import/Eksport", - "unsubscribe": "odsubskrybuj", - "Subscriptions": "Subskrybcje", - "`x` unseen notifications": "`x` niewidzianych powiadomień", - "search": "szukaj", - "Sign out": "Wyloguj", - "Released under the AGPLv3 by Omar Roth.": "Wydano na licencji AGPLv3 przez Omar Roth.", - "Source available here.": "Kod źródłowy dostępny tutaj.", - "View JavaScript license information.": "Wyświetl informację o licencji JavaScript.", - "Trending": "Na czasie", - "Watch video on Youtube": "Zobacz film na YouTube", - "Genre: ": "Gatunek: ", - "License: ": "Licencja: ", - "Family friendly? ": "Przyjazny rodzinie? ", - "Wilson score: ": "Punktacja Wilsona: ", - "Engagement: ": "Zaangażowanie: ", - "Whitelisted regions: ": "Dostępny na obszarach: ", - "Blacklisted regions: ": "Niedostępny na obszarach: ", - "Shared `x`": "Udostępniono `x`", - "Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Cześć! Wygląda na to, że masz wyłączoną obsługę JavaScriptu. Kliknij tutaj, żeby zobaczyć komentarze. Pamiętaj, że wczytywanie może potrwać dłużej.", - "View YouTube comments": "Wyświetl komentarze z YouTube", - "View more comments on Reddit": "Wyświetl więcej komentarzy na Reddicie", - "View `x` comments": "Wyświetl `x` komentarzy", - "View Reddit comments": "Wyświetl komentarze z Redditta", - "Hide replies": "Ukryj odpowiedzi", - "Show replies": "Pokaż odpowiedzi", - "Incorrect password": "Niepoprawne hasło", - "Quota exceeded, try again in a few hours": "Przekroczony limit zapytań, spróbuj ponownie za kilka godzin", - "Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Nie udało się zalogować, upewnij się, że dwuetapowe uwierzytelnianie (Autentykator lub SMS) jest aktywne.", - "Invalid TFA code": "Niepoprawny kod TFA", - "Login failed. This may be because two-factor authentication is not enabled on your account.": "Nie udało się zalogować. To może być spowodowane wyłączoną dwustopniową autoryzacją na twoim koncie.", - "Invalid answer": "Niepoprawna odpowiedź", - "Invalid CAPTCHA": "CAPTCHA wykonane błędnie", - "CAPTCHA is a required field": "CAPTCHA jest polem wymaganym", - "User ID is a required field": "ID użytkownika jest polem wymaganym", - "Password is a required field": "Hasło jest polem wymaganym", - "Invalid username or password": "Niepoprawny login lub hasło", - "Please sign in using 'Sign in with Google'": "Zaloguj się używając \"Zaloguj się przez Google\"", - "Password cannot be empty": "Hasło nie może być puste", - "Password cannot be longer than 55 characters": "Hasło nie może być dłuższe niż 55 znaków", - "Please sign in": "Proszę się zalogować", - "Invidious Private Feed for `x`": "", - "channel:`x`": "kanał:`x", - "Deleted or invalid channel": "Usunięty lub niepoprawny kanał", - "This channel does not exist.": "Ten kanał nie istnieje.", - "Could not get channel info.": "Nie udało się uzyskać informacji o kanale.", - "Could not fetch comments": "Nie udało się pobrać komentarzy", - "View `x` replies": "Wyświetl `x` odpowiedzi", - "`x` ago": "`x` temu", - "Load more": "Wczytaj więcej", - "`x` points": "`x` punktów", - "Could not create mix.": "Nie udało się utworzyć miksu.", - "Playlist is empty": "Lista odtwarzania jest pusta", - "Invalid playlist.": "Niepoprawna lista.", - "Playlist does not exist.": "Lista odtwarzania nie istnieje.", - "Could not pull trending pages.": "Nie udało się pobrać strony na czasie.", - "Hidden field \"challenge\" is a required field": "Ukryte pole \"wyzwanie\" jest polem wymaganym", - "Hidden field \"token\" is a required field": "Ukryte pole \"token\" jest polem wymaganym", - "Invalid challenge": "Niepoprawne wyzwanie", - "Invalid token": "Niepoprawny token", - "Invalid user": "Niepoprawny użytkownik", - "Token is expired, please try again": "Token wygasł, spróbuj ponownie", - "English": "angielski", - "English (auto-generated)": "angielski (automatycznie generowane)", - "Afrikaans": "", - "Albanian": "albański", - "Amharic": "", - "Arabic": "arabski", - "Armenian": "", - "Azerbaijani": "", - "Bangla": "", - "Basque": "", - "Belarusian": "białoruski", - "Bosnian": "bośniacki", - "Bulgarian": "bułgarski", - "Burmese": "birmański", - "Catalan": "kataloński", - "Cebuano": "", - "Chinese (Simplified)": "chiński (uproszczony)", - "Chinese (Traditional)": "chiński (tradycyjny)", - "Corsican": "korsykański", - "Croatian": "chorwacki", - "Czech": "czeski", - "Danish": "duński", - "Dutch": "holenderski", - "Esperanto": "esperanto", - "Estonian": "estoński", - "Filipino": "filipiński", - "Finnish": "fiński", - "French": "francuski", - "Galician": "galicyjski", - "Georgian": "gruziński", - "German": "niemiecki", - "Greek": "grecki", - "Gujarati": "", - "Haitian Creole": "", - "Hausa": "", - "Hawaiian": "hawajski", - "Hebrew": "hebrajski", - "Hindi": "hindi", - "Hmong": "", - "Hungarian": "węgierski", - "Icelandic": "islandzki", - "Igbo": "", - "Indonesian": "indonezyjski", - "Irish": "irlandzki", - "Italian": "włoski", - "Japanese": "japoński", - "Javanese": "jawajski", - "Kannada": "", - "Kazakh": "kazachski", - "Khmer": "", - "Korean": "koreański", - "Kurdish": "kurdyjski", - "Kyrgyz": "kirgiski", - "Lao": "", - "Latin": "łaciński", - "Latvian": "łotewski", - "Lithuanian": "litewski", - "Luxembourgish": "luksemburski", - "Macedonian": "macedoński", - "Malagasy": "malgaski", - "Malay": "malajski", - "Malayalam": "", - "Maltese": "maltański", - "Maori": "", - "Marathi": "", - "Mongolian": "mongolski", - "Nepali": "nepalski", - "Norwegian": "norweski", - "Nyanja": "", - "Pashto": "", - "Persian": "perski", - "Polish": "polski", - "Portuguese": "portugalski", - "Punjabi": "", - "Romanian": "rumuński", - "Russian": "rosyjski", - "Samoan": "", - "Scottish Gaelic": "", - "Serbian": "serbski", - "Shona": "", - "Sindhi": "", - "Sinhala": "", - "Slovak": "słowacki", - "Slovenian": "słoweński", - "Somali": "somalijski", - "Southern Sotho": "", - "Spanish": "hiszpański", - "Spanish (Latin America)": "hiszpański (ameryka łacińska)", - "Sundanese": "", - "Swahili": "", - "Swedish": "szwedzki", - "Tajik": "", - "Tamil": "", - "Telugu": "", - "Thai": "tajski", - "Turkish": "turecki", - "Ukrainian": "ukraiński", - "Urdu": "", - "Uzbek": "uzbecki", - "Vietnamese": "wietnamski", - "Welsh": "walijski", - "Western Frisian": "", - "Xhosa": "", - "Yiddish": "", - "Yoruba": "", - "Zulu": "", - "`x` years": "`x` lat", - "`x` months": "`x` miesięcy", - "`x` weeks": "`x` tygodni", - "`x` days": "`x` dni", - "`x` hours": "`x` godzin", - "`x` minutes": "`x` minut", - "`x` seconds": "`x` sekund", - "Fallback comments: ": "Zastępcze komentarze: ", - "Popular": "Popularne", - "Top": "Na czasie", - "About": "Informacje", - "Rating: ": "Ocena: ", - "Language: ": "Język: ", - "Default": "", - "Music": "Muzyka", - "Gaming": "Gry", - "News": "Wiadomości", - "Movies": "Filmy", - "Download": "Pobierz", - "Download as: ": "Pobierz jako: ", - "%A %B %-d, %Y": "", - "(edited)": "(edytowany)", - "Youtube permalink of the comment": "Odnośnik bezpośredni do komentarza na YouTube", - "`x` marked it with a ❤": "", - "Audio mode": "Tryb audio", - "Video mode": "Tryb wideo", - "Videos": "", - "Playlists": "", - "Current version: ": "" + "`x` subscribers": "`x` subskrybcji", + "`x` videos": "`x` filmów", + "LIVE": "NA ŻYWO", + "Shared `x` ago": "Udostępniono `x` temu", + "Unsubscribe": "Odsubskrybuj", + "Subscribe": "Subskrybuj", + "Login to subscribe to `x`": "Zaloguj się, aby subskrybować `x`", + "View channel on YouTube": "Wyświetl kanał na YouTube", + "newest": "najnowsze", + "oldest": "najstarsze", + "popular": "popularne", + "last": "", + "Next page": "Następna strona", + "Previous page": "Poprzednia strona", + "Clear watch history?": "Wyczyścić historię?", + "Yes": "Tak", + "No": "Nie", + "Import and Export Data": "Import i eksport danych", + "Import": "Import", + "Import Invidious data": "Importuj dane Invidious", + "Import YouTube subscriptions": "Importuj subskrybcje z YouTube", + "Import FreeTube subscriptions (.db)": "Importuj subskrybcje z FreeTube (.db)", + "Import NewPipe subscriptions (.json)": "Importuj subskrybcje z NewPipe (.json)", + "Import NewPipe data (.zip)": "Importuj dane NewPipe (.zip)", + "Export": "Eksport", + "Export subscriptions as OPML": "Eksportuj subskrybcje jako OPML", + "Export subscriptions as OPML (for NewPipe & FreeTube)": "Eksportuj subskrybcje jako OPML (dla NewPipe i FreeTube)", + "Export data as JSON": "Eksportuj dane jako JSON", + "Delete account?": "Usunąć konto?", + "History": "Historia", + "An alternative front-end to YouTube": "Alternatywny front-end dla YouTube", + "JavaScript license information": "Informacja o licencji JavaScript", + "source": "źródło", + "Login": "Zaloguj", + "Login/Register": "Zaloguj/Zarejestruj", + "Login to Google": "Zaloguj do Google", + "User ID:": "ID użytkownika:", + "Password:": "Hasło:", + "Time (h:mm:ss):": "Godzina (h:mm:ss):", + "Text CAPTCHA": "Tekst CAPTCHA", + "Image CAPTCHA": "Obraz CAPTCHA", + "Sign In": "Zaloguj się", + "Register": "Zarejestruj się", + "Email:": "Email:", + "Google verification code:": "Kod weryfikacyjny Google:", + "Preferences": "Preferencje", + "Player preferences": "Ustawienia odtwarzacza", + "Always loop: ": "Zawsze zapętlaj: ", + "Autoplay: ": "Autoodtwarzanie: ", + "Autoplay next video: ": "Odtwórz następny film: ", + "Listen by default: ": "Tryb dźwiękowy: ", + "Default speed: ": "Domyślna prędkość: ", + "Preferred video quality: ": "Preferowana jakość filmów: ", + "Player volume: ": "Głośność odtwarzacza: ", + "Default comments: ": "Domyślne komentarze: ", + "Default captions: ": "Domyślne napisy: ", + "Fallback captions: ": "Zastępcze napisy: ", + "Show related videos? ": "Pokaż powiązane filmy? ", + "Visual preferences": "Preferencje Wizualne", + "Dark mode: ": "Ciemny motyw: ", + "Thin mode: ": "Tryb minimalny: ", + "Subscription preferences": "Preferencje subskrybcji", + "Redirect homepage to feed: ": "Przekieruj stronę główną do subskrybcji: ", + "Number of videos shown in feed: ": "Liczba filmów widoczna na stronie subskrybcji: ", + "Sort videos by: ": "Sortuj filmy: ", + "published": "po czasie publikacji", + "published - reverse": "po czasie publikacji od najstarszych", + "alphabetically": "alfabetycznie", + "alphabetically - reverse": "alfabetycznie od tyłu", + "channel name": "po nazwie kanału", + "channel name - reverse": "po nazwie kanału od tyłu", + "Only show latest video from channel: ": "Pokazuj tylko najnowszy film z kanału: ", + "Only show latest unwatched video from channel: ": "Pokazuj tylko najnowszy nie obejrzany film z kanału: ", + "Only show unwatched: ": "Pokazuj tylko nie obejrzane: ", + "Only show notifications (if there are any): ": "Pokazuj tylko powiadomienia (jeśli są): ", + "Data preferences": "Preferencje danych", + "Clear watch history": "Wyczyść historię", + "Import/Export data": "Import/Eksport danych", + "Manage subscriptions": "Organizuj subskrybcje", + "Watch history": "Historia", + "Delete account": "Usuń konto", + "Administrator preferences": "Preferencje administratora", + "Default homepage: ": "Domyślna strona główna: ", + "Feed menu: ": "", + "Top enabled? ": "", + "CAPTCHA enabled? ": "CAPTCHA aktywna? ", + "Login enabled? ": "Logowanie włączone? ", + "Registration enabled? ": "Rejestracja włączona? ", + "Report statistics? ": "Raportować statystyki? ", + "Save preferences": "Zapisz preferencje", + "Subscription manager": "Manager subskrybcji", + "`x` subscriptions": "`x` subskrybcji", + "Import/Export": "Import/Eksport", + "unsubscribe": "odsubskrybuj", + "Subscriptions": "Subskrybcje", + "`x` unseen notifications": "`x` niewidzianych powiadomień", + "search": "szukaj", + "Sign out": "Wyloguj", + "Released under the AGPLv3 by Omar Roth.": "Wydano na licencji AGPLv3 przez Omar Roth.", + "Source available here.": "Kod źródłowy dostępny tutaj.", + "View JavaScript license information.": "Wyświetl informację o licencji JavaScript.", + "Trending": "Na czasie", + "Watch video on Youtube": "Zobacz film na YouTube", + "Genre: ": "Gatunek: ", + "License: ": "Licencja: ", + "Family friendly? ": "Przyjazny rodzinie? ", + "Wilson score: ": "Punktacja Wilsona: ", + "Engagement: ": "Zaangażowanie: ", + "Whitelisted regions: ": "Dostępny na obszarach: ", + "Blacklisted regions: ": "Niedostępny na obszarach: ", + "Shared `x`": "Udostępniono `x`", + "Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Cześć! Wygląda na to, że masz wyłączoną obsługę JavaScriptu. Kliknij tutaj, żeby zobaczyć komentarze. Pamiętaj, że wczytywanie może potrwać dłużej.", + "View YouTube comments": "Wyświetl komentarze z YouTube", + "View more comments on Reddit": "Wyświetl więcej komentarzy na Reddicie", + "View `x` comments": "Wyświetl `x` komentarzy", + "View Reddit comments": "Wyświetl komentarze z Redditta", + "Hide replies": "Ukryj odpowiedzi", + "Show replies": "Pokaż odpowiedzi", + "Incorrect password": "Niepoprawne hasło", + "Quota exceeded, try again in a few hours": "Przekroczony limit zapytań, spróbuj ponownie za kilka godzin", + "Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Nie udało się zalogować, upewnij się, że dwuetapowe uwierzytelnianie (Autentykator lub SMS) jest aktywne.", + "Invalid TFA code": "Niepoprawny kod TFA", + "Login failed. This may be because two-factor authentication is not enabled on your account.": "Nie udało się zalogować. To może być spowodowane wyłączoną dwustopniową autoryzacją na twoim koncie.", + "Invalid answer": "Niepoprawna odpowiedź", + "Invalid CAPTCHA": "CAPTCHA wykonane błędnie", + "CAPTCHA is a required field": "CAPTCHA jest polem wymaganym", + "User ID is a required field": "ID użytkownika jest polem wymaganym", + "Password is a required field": "Hasło jest polem wymaganym", + "Invalid username or password": "Niepoprawny login lub hasło", + "Please sign in using 'Sign in with Google'": "Zaloguj się używając \"Zaloguj się przez Google\"", + "Password cannot be empty": "Hasło nie może być puste", + "Password cannot be longer than 55 characters": "Hasło nie może być dłuższe niż 55 znaków", + "Please sign in": "Proszę się zalogować", + "Invidious Private Feed for `x`": "", + "channel:`x`": "kanał:`x", + "Deleted or invalid channel": "Usunięty lub niepoprawny kanał", + "This channel does not exist.": "Ten kanał nie istnieje.", + "Could not get channel info.": "Nie udało się uzyskać informacji o kanale.", + "Could not fetch comments": "Nie udało się pobrać komentarzy", + "View `x` replies": "Wyświetl `x` odpowiedzi", + "`x` ago": "`x` temu", + "Load more": "Wczytaj więcej", + "`x` points": "`x` punktów", + "Could not create mix.": "Nie udało się utworzyć miksu.", + "Playlist is empty": "Lista odtwarzania jest pusta", + "Invalid playlist.": "Niepoprawna lista.", + "Playlist does not exist.": "Lista odtwarzania nie istnieje.", + "Could not pull trending pages.": "Nie udało się pobrać strony na czasie.", + "Hidden field \"challenge\" is a required field": "Ukryte pole \"wyzwanie\" jest polem wymaganym", + "Hidden field \"token\" is a required field": "Ukryte pole \"token\" jest polem wymaganym", + "Invalid challenge": "Niepoprawne wyzwanie", + "Invalid token": "Niepoprawny token", + "Invalid user": "Niepoprawny użytkownik", + "Token is expired, please try again": "Token wygasł, spróbuj ponownie", + "English": "angielski", + "English (auto-generated)": "angielski (automatycznie generowane)", + "Afrikaans": "afrykanerski", + "Albanian": "albański", + "Amharic": "amharski", + "Arabic": "arabski", + "Armenian": "armeński", + "Azerbaijani": "azerski", + "Bangla": "bengalski", + "Basque": "baskijski", + "Belarusian": "białoruski", + "Bosnian": "bośniacki", + "Bulgarian": "bułgarski", + "Burmese": "birmański", + "Catalan": "kataloński", + "Cebuano": "cebuański", + "Chinese (Simplified)": "chiński (uproszczony)", + "Chinese (Traditional)": "chiński (tradycyjny)", + "Corsican": "korsykański", + "Croatian": "chorwacki", + "Czech": "czeski", + "Danish": "duński", + "Dutch": "holenderski", + "Esperanto": "esperanto", + "Estonian": "estoński", + "Filipino": "filipiński", + "Finnish": "fiński", + "French": "francuski", + "Galician": "galicyjski", + "Georgian": "gruziński", + "German": "niemiecki", + "Greek": "grecki", + "Gujarati": "gudźarati", + "Haitian Creole": "kreolski haitański", + "Hausa": "hausa", + "Hawaiian": "hawajski", + "Hebrew": "hebrajski", + "Hindi": "hindi", + "Hmong": "hmong", + "Hungarian": "węgierski", + "Icelandic": "islandzki", + "Igbo": "ibo", + "Indonesian": "indonezyjski", + "Irish": "irlandzki", + "Italian": "włoski", + "Japanese": "japoński", + "Javanese": "jawajski", + "Kannada": "kannada", + "Kazakh": "kazachski", + "Khmer": "khmerski", + "Korean": "koreański", + "Kurdish": "kurdyjski", + "Kyrgyz": "kirgiski", + "Lao": "laotański", + "Latin": "łaciński", + "Latvian": "łotewski", + "Lithuanian": "litewski", + "Luxembourgish": "luksemburski", + "Macedonian": "macedoński", + "Malagasy": "malgaski", + "Malay": "malajski", + "Malayalam": "malajalam", + "Maltese": "maltański", + "Maori": "maoryski", + "Marathi": "marathi", + "Mongolian": "mongolski", + "Nepali": "nepalski", + "Norwegian": "norweski", + "Nyanja": "njandża", + "Pashto": "paszto", + "Persian": "perski", + "Polish": "polski", + "Portuguese": "portugalski", + "Punjabi": "pendżabski", + "Romanian": "rumuński", + "Russian": "rosyjski", + "Samoan": "samoański", + "Scottish Gaelic": "gaelicki szkocki", + "Serbian": "serbski", + "Shona": "shona", + "Sindhi": "sindhi", + "Sinhala": "syngaleski", + "Slovak": "słowacki", + "Slovenian": "słoweński", + "Somali": "somalijski", + "Southern Sotho": "sotho południowy", + "Spanish": "hiszpański", + "Spanish (Latin America)": "hiszpański (ameryka łacińska)", + "Sundanese": "sundajski", + "Swahili": "suahili", + "Swedish": "szwedzki", + "Tajik": "tadżycki", + "Tamil": "tamilski", + "Telugu": "telugu", + "Thai": "tajski", + "Turkish": "turecki", + "Ukrainian": "ukraiński", + "Urdu": "urdu", + "Uzbek": "uzbecki", + "Vietnamese": "wietnamski", + "Welsh": "walijski", + "Western Frisian": "zachodniofryzyjski", + "Xhosa": "xhosa", + "Yiddish": "jidysz", + "Yoruba": "joruba", + "Zulu": "zuluski", + "`x` years": "`x` lat", + "`x` months": "`x` miesięcy", + "`x` weeks": "`x` tygodni", + "`x` days": "`x` dni", + "`x` hours": "`x` godzin", + "`x` minutes": "`x` minut", + "`x` seconds": "`x` sekund", + "Fallback comments: ": "Zastępcze komentarze: ", + "Popular": "Popularne", + "Top": "Na czasie", + "About": "Informacje", + "Rating: ": "Ocena: ", + "Language: ": "Język: ", + "Default": "Domyślnie", + "Music": "Muzyka", + "Gaming": "Gry", + "News": "Wiadomości", + "Movies": "Filmy", + "Download": "Pobierz", + "Download as: ": "Pobierz jako: ", + "%A %B %-d, %Y": "", + "(edited)": "(edytowany)", + "Youtube permalink of the comment": "Odnośnik bezpośredni do komentarza na YouTube", + "`x` marked it with a ❤": "'x' oznaczonych ❤", + "Audio mode": "Tryb audio", + "Video mode": "Tryb wideo", + "Videos": "Filmy", + "Playlists": "Playlisty", + "Current version: ": "Aktualna wersja: " } From 21ebc398fa30d6a3ceb66e47a3d0fa637d9cd685 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Tue, 12 Mar 2019 20:51:23 -0500 Subject: [PATCH 3/4] Add privacy policy --- locales/ar.json | 1 + locales/de.json | 1 + locales/en-US.json | 1 + locales/eu.json | 1 + locales/fr.json | 1 + locales/it.json | 1 + locales/nb_NO.json | 1 + locales/nl.json | 1 + locales/pl.json | 1 + locales/ru.json | 1 + src/invidious.cr | 6 +++ src/invidious/views/privacy.ecr | 75 ++++++++++++++++++++++++++++++++ src/invidious/views/template.ecr | 7 ++- 13 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/invidious/views/privacy.ecr diff --git a/locales/ar.json b/locales/ar.json index 4f43675f..6e0fef9f 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -102,6 +102,7 @@ "Released under the AGPLv3 by Omar Roth.": "تم الإنشاء تحت AGPLv3 بواسطة عمر روث.", "Source available here.": "الأكواد متوفرة هنا.", "View JavaScript license information.": "مشاهدة معلومات حول تراخيص الجافاسكريبت.", + "View privacy policy.": "", "Trending": "الشائع", "Watch video on Youtube": "مشاهدة الفيديو على اليوتيوب", "Genre: ": "النوع: ", diff --git a/locales/de.json b/locales/de.json index d66ebee3..578a73d3 100644 --- a/locales/de.json +++ b/locales/de.json @@ -102,6 +102,7 @@ "Released under the AGPLv3 by Omar Roth.": "Veröffentlicht unter AGPLv3 von Omar Roth.", "Source available here.": "Quellcode verfügbar hier.", "View JavaScript license information.": "Javascript Lizenzinformationen anzeigen.", + "View privacy policy.": "", "Trending": "Trending", "Watch video on Youtube": "Video auf YouTube ansehen", "Genre: ": "Genre: ", diff --git a/locales/en-US.json b/locales/en-US.json index 6a05d1bb..4e919ad1 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Released under the AGPLv3 by Omar Roth.", "Source available here.": "Source available here.", "View JavaScript license information.": "View JavaScript license information.", + "View privacy policy.": "View privacy policy.", "Trending": "Trending", "Watch video on Youtube": "Watch video on Youtube", "Genre: ": "Genre: ", diff --git a/locales/eu.json b/locales/eu.json index 1e4ad1d4..6bbd73be 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "", "Source available here.": "", "View JavaScript license information.": "", + "View privacy policy.": "", "Trending": "", "Watch video on Youtube": "", "Genre: ": "", diff --git a/locales/fr.json b/locales/fr.json index 28f0b579..a459697d 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Publié sous licence AGPLv3 par Omar Roth.", "Source available here.": "Code Source.", "View JavaScript license information.": "Voir les informations des licences JavaScript.", + "View privacy policy.": "", "Trending": "Tendances", "Watch video on Youtube": "Voir la vidéo sur Youtube", "Genre: ": "Genre : ", diff --git a/locales/it.json b/locales/it.json index 42dabf6d..e813c3bd 100644 --- a/locales/it.json +++ b/locales/it.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Pubblicato con licenza AGPLv3 da Omar Roth.", "Source available here.": "Codice sorgente.", "View JavaScript license information.": "Guarda le informazioni di licenza del codice JavaScript.", + "View privacy policy.": "", "Trending": "Tendenze", "Watch video on Youtube": "Guarda il video su YouTube", "Genre: ": "Genere: ", diff --git a/locales/nb_NO.json b/locales/nb_NO.json index f0f544b5..97812829 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Utgitt med AGPLv3+lisens av Omar Roth.", "Source available here.": "Kildekode tilgjengelig her.", "View JavaScript license information.": "Vis JavaScript-lisensinfo.", + "View privacy policy.": "", "Trending": "Trendsettende", "Watch video on Youtube": "Vis video på YouTube", "Genre: ": "Sjanger: ", diff --git a/locales/nl.json b/locales/nl.json index b4ea3862..08df38db 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Uitgegeven onder AGPLv3 door Omar Roth.", "Source available here.": "Bron beschikbaar hier.", "View JavaScript license information.": "Bekijk JavaScript licentie informatie.", + "View privacy policy.": "", "Trending": "Trending", "Watch video on Youtube": "Bekijk video op Youtube", "Genre: ": "Genre: ", diff --git a/locales/pl.json b/locales/pl.json index 0db43c51..f2cfaeee 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -100,6 +100,7 @@ "Released under the AGPLv3 by Omar Roth.": "Wydano na licencji AGPLv3 przez Omar Roth.", "Source available here.": "Kod źródłowy dostępny tutaj.", "View JavaScript license information.": "Wyświetl informację o licencji JavaScript.", + "View privacy policy.": "", "Trending": "Na czasie", "Watch video on Youtube": "Zobacz film na YouTube", "Genre: ": "Gatunek: ", diff --git a/locales/ru.json b/locales/ru.json index 222b693f..d6db76d9 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -102,6 +102,7 @@ "Released under the AGPLv3 by Omar Roth.": "Распространяется Omar Roth по AGPLv3.", "Source available here.": "Исходный код доступен здесь.", "View JavaScript license information.": "Посмотреть лицензии JavaScript кода.", + "View privacy policy.": "", "Trending": "В тренде", "Watch video on Youtube": "Смотреть на YouTube", "Genre: ": "Жанр: ", diff --git a/src/invidious.cr b/src/invidious.cr index 4fe018f9..1091b6ff 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -17,6 +17,7 @@ require "digest/md5" require "file_utils" require "kemal" +require "markdown" require "openssl/hmac" require "option_parser" require "pg" @@ -291,6 +292,11 @@ get "/" do |env| end end +get "/privacy" do |env| + locale = LOCALES[env.get("preferences").as(Preferences).locale]? + templated "privacy" +end + get "/licenses" do |env| locale = LOCALES[env.get("preferences").as(Preferences).locale]? rendered "licenses" diff --git a/src/invidious/views/privacy.ecr b/src/invidious/views/privacy.ecr new file mode 100644 index 00000000..63f99ab6 --- /dev/null +++ b/src/invidious/views/privacy.ecr @@ -0,0 +1,75 @@ +<% content_for "header" do %> +Privacy Policy - Invidious +<% end %> + +
+<%= Markdown.to_html(<<-END_PRIVACY_POLICY + ## Privacy + + This document concerns what data you provide to this website, the purpose of the data, how the data is stored, and how the data can be removed. + + ### Data you directly provide + + Data that you provide to the website for the purpose of the site's operation (for example: an account name, account password, or channel subscription) will be stored in the website's database until the user decides to remove it. This data will not be intentionally shared with anyone or anything. + + Information stored about a registered user is limited to: + + - a list of session tokens for remaining logged in across devices + - the last time an account was updated (to provide accurate notifications) + - a list of video IDs identifying notifications from a user's subscriptions + - a list of channel UCIDs the user is subscribed to + - a user ID (for persistent storage of subscriptions and preferences) + - a json object containing user preferences + - a hashed password if applicable (not present on google accounts) + - a randomly generated token for providing an RSS feed of a user's subscriptions + - a list of video IDs identifying watched videos + + The above list reflects [this code](https://github.com/omarroth/invidious/blob/master/src/invidious/users.cr#L14-L51). + + Users can clear their watch history using the [clear watch history](/clear_watch_history) page. + + If a user is logged in with a Google account, no password will ever be stored. This website uses the session token provided by Google to identify a user, but does not store the information required to make requests on a user's behalf without their knowledge or consent. + + ### Data you passively provide + + When you request any resource from this website (for example: a page, a font, an image, or an API endpoint) information about the request may be logged. + + Information about a request is limited to: + + - the time the request was made + - the status code of the response + - the method of the request + - the requested URL + - how long it took to complete the request. + + No identifying information is logged, such as the visitor's cookie, user-agent, or IP address. Here are a couple lines to serve as an example: + + ``` + 2019-01-19 16:37:47 +00:00 200 GET /api/v1/comments/xrlETJYzH-c?format=html&hl=en-US 1345.88ms + 2019-01-19 16:37:53 +00:00 200 GET /vi/r5P-f5arPXE/maxres.jpg 1085.41ms + 2019-01-19 16:37:54 +00:00 200 GET /watch 7.04ms + ``` + + This website does not store the visitor's user-agent or IP address and does not use fingerprinting, advertisements, or tracking of any form. + + This website provides links to googlevideo.com to provide audio and video playback. googlevideo.com is owned by Google and is subject to their [privacy policy](https://policies.google.com/privacy). + + ### Data stored in your browser + + This website uses browser cookies to authenticate registered users. This data consists of: + + - An account token to keep you logged into the website between visits, which is sent when any page is loaded while you are logged in + + This website also provides an option to store site preferences, such as the theme or locale, without an account. Using this feature will store a cookie in the visitor's browser containing their preferences. This cookie is sent on every request and does not contain any identifying information. + + You can remove this data from your browser by logging out of this website, or by using your browser's cookie-related controls to delete the data. + + ### Removal of data + + To remove data stored in your browser, you can log out of the website, or you can use your browser's cookie-related controls to delete the data. + + To remove data that has been stored in the website's database, you can use the [delete my account](/delete_account) page. + END_PRIVACY_POLICY + ) +%> +
\ No newline at end of file diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr index c3abc7e9..496719ce 100644 --- a/src/invidious/views/template.ecr +++ b/src/invidious/views/template.ecr @@ -124,7 +124,12 @@ <%= translate(locale, "View JavaScript license information.") %> - + / + + + <%= translate(locale, "View privacy policy.") %> + +
<%= translate(locale, "Current version: ") %> <%= CURRENT_VERSION %>-<%= CURRENT_COMMIT %> From e738e57e262e3b65930632e49d9988855abe8b36 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Tue, 12 Mar 2019 21:05:49 -0500 Subject: [PATCH 4/4] Add 'local' option to preferences --- locales/ar.json | 1 + locales/de.json | 1 + locales/en-US.json | 1 + locales/eu.json | 1 + locales/fr.json | 1 + locales/it.json | 1 + locales/nb_NO.json | 1 + locales/nl.json | 1 + locales/pl.json | 1 + locales/ru.json | 1 + src/invidious.cr | 5 +++++ src/invidious/users.cr | 5 +++++ src/invidious/videos.cr | 6 ++++-- src/invidious/views/preferences.ecr | 5 +++++ 14 files changed, 29 insertions(+), 2 deletions(-) diff --git a/locales/ar.json b/locales/ar.json index 6e0fef9f..18078836 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -50,6 +50,7 @@ "Autoplay: ": "تشغيل تلقائى: ", "Autoplay next video: ": "شغل الفيديو التالى تلقائى: ", "Listen by default: ": "تشغيل النسخة السمعية تلقائى: ", + "Proxy videos? ": "", "Default speed: ": "السرعة الإفتراضية: ", "Preferred video quality: ": "الجودة المفضلة للفيديوهات: ", "Player volume: ": "صوت المشغل: ", diff --git a/locales/de.json b/locales/de.json index 578a73d3..89bc09ea 100644 --- a/locales/de.json +++ b/locales/de.json @@ -50,6 +50,7 @@ "Autoplay: ": "Automatisch abspielen: ", "Autoplay next video: ": "nächstes Video automatisch abspielen: ", "Listen by default: ": "Nur Ton als Standard: ", + "Proxy videos? ": "", "Default speed: ": "Standardgeschwindigkeit: ", "Preferred video quality: ": "Bevorzugte Videoqualität: ", "Player volume: ": "Playerlautstärke: ", diff --git a/locales/en-US.json b/locales/en-US.json index 4e919ad1..68204a04 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -50,6 +50,7 @@ "Autoplay: ": "Autoplay: ", "Autoplay next video: ": "Autoplay next video: ", "Listen by default: ": "Listen by default: ", + "Proxy videos? ": "Proxy videos? ", "Default speed: ": "Default speed: ", "Preferred video quality: ": "Preferred video quality: ", "Player volume: ": "Player volume: ", diff --git a/locales/eu.json b/locales/eu.json index 6bbd73be..b71a163e 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -50,6 +50,7 @@ "Autoplay: ": "", "Autoplay next video: ": "", "Listen by default: ": "", + "Proxy videos? ": "", "Default speed: ": "", "Preferred video quality: ": "", "Player volume: ": "", diff --git a/locales/fr.json b/locales/fr.json index a459697d..7647be53 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -50,6 +50,7 @@ "Autoplay: ": "Lire Automatiquement : ", "Autoplay next video: ": "Lire automatiquement la vidéo suivante : ", "Listen by default: ": "Audio Uniquement par défaut : ", + "Proxy videos? ": "", "Default speed: ": "Vitesse par défaut : ", "Preferred video quality: ": "Qualité vidéo souhaitée : ", "Player volume: ": "Volume du lecteur : ", diff --git a/locales/it.json b/locales/it.json index e813c3bd..6fae1259 100644 --- a/locales/it.json +++ b/locales/it.json @@ -50,6 +50,7 @@ "Autoplay: ": "Riproduzione automatica: ", "Autoplay next video: ": "Riproduci automaticamente il prossimo video: ", "Listen by default: ": "Modalità solo audio come predefinita: ", + "Proxy videos? ": "", "Default speed: ": "Velocità di riproduzione predefinita: ", "Preferred video quality: ": "Preferenza sulla qualità video: ", "Player volume: ": "Volume di riproduzione: ", diff --git a/locales/nb_NO.json b/locales/nb_NO.json index 97812829..47670a73 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -50,6 +50,7 @@ "Autoplay: ": "Autoavspilling: ", "Autoplay next video: ": "Autospill neste video: ", "Listen by default: ": "Lytt som forvalg: ", + "Proxy videos? ": "", "Default speed: ": "Forvalgt hastighet: ", "Preferred video quality: ": "Foretrukket videokvalitet: ", "Player volume: ": "Avspillerlydstyrke: ", diff --git a/locales/nl.json b/locales/nl.json index 08df38db..3bfe0ac4 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -50,6 +50,7 @@ "Autoplay: ": "Automatisch afspelen: ", "Autoplay next video: ": "Automatisch volgende video afspelen: ", "Listen by default: ": "Standaard luisteren: ", + "Proxy videos? ": "", "Default speed: ": "Standaard snelheid: ", "Preferred video quality: ": "Video kwaliteit voorkeur: ", "Player volume: ": "Afspeler volume: ", diff --git a/locales/pl.json b/locales/pl.json index f2cfaeee..05332ca1 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -50,6 +50,7 @@ "Autoplay: ": "Autoodtwarzanie: ", "Autoplay next video: ": "Odtwórz następny film: ", "Listen by default: ": "Tryb dźwiękowy: ", + "Proxy videos? ": "", "Default speed: ": "Domyślna prędkość: ", "Preferred video quality: ": "Preferowana jakość filmów: ", "Player volume: ": "Głośność odtwarzacza: ", diff --git a/locales/ru.json b/locales/ru.json index d6db76d9..bfcd449e 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -50,6 +50,7 @@ "Autoplay: ": "Автовоспроизведение: ", "Autoplay next video: ": "Автовоспроизведение следующего видео: ", "Listen by default: ": "Режим \"только аудио\" по-умолчанию: ", + "Proxy videos? ": "", "Default speed: ": "Скорость по-умолчанию: ", "Preferred video quality: ": "Предпочтительное качество видео: ", "Player volume: ": "Громкость воспроизведения: ", diff --git a/src/invidious.cr b/src/invidious.cr index 1091b6ff..0e7a3ac1 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1231,6 +1231,10 @@ post "/preferences" do |env| listen ||= "off" listen = listen == "on" + local = env.params.body["local"]?.try &.as(String) + local ||= "off" + local = local == "on" + speed = env.params.body["speed"]?.try &.as(String).to_f? speed ||= DEFAULT_USER_PREFERENCES.speed @@ -1292,6 +1296,7 @@ post "/preferences" do |env| "autoplay" => autoplay, "continue" => continue, "listen" => listen, + "local" => local, "speed" => speed, "quality" => quality, "volume" => volume, diff --git a/src/invidious/users.cr b/src/invidious/users.cr index 42468228..308786c2 100644 --- a/src/invidious/users.cr +++ b/src/invidious/users.cr @@ -31,6 +31,7 @@ DEFAULT_USER_PREFERENCES = Preferences.from_json({ "video_loop" => false, "autoplay" => false, "continue" => false, + "local" => false, "listen" => false, "speed" => 1.0, "quality" => "hd720", @@ -80,6 +81,10 @@ class Preferences type: Bool, default: DEFAULT_USER_PREFERENCES.continue, }, + local: { + type: Bool, + default: DEFAULT_USER_PREFERENCES.local, + }, listen: { type: Bool, default: DEFAULT_USER_PREFERENCES.listen, diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 17d17d93..78dd1e5a 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -747,10 +747,11 @@ def process_video_params(query, preferences) # region ||= preferences.region autoplay ||= preferences.autoplay.to_unsafe continue ||= preferences.continue.to_unsafe - related_videos ||= preferences.related_videos.to_unsafe listen ||= preferences.listen.to_unsafe + local ||= preferences.local.to_unsafe preferred_captions ||= preferences.captions quality ||= preferences.quality + related_videos ||= preferences.related_videos.to_unsafe speed ||= preferences.speed video_loop ||= preferences.video_loop.to_unsafe volume ||= preferences.volume @@ -758,10 +759,11 @@ def process_video_params(query, preferences) autoplay ||= DEFAULT_USER_PREFERENCES.autoplay.to_unsafe continue ||= DEFAULT_USER_PREFERENCES.continue.to_unsafe - related_videos ||= DEFAULT_USER_PREFERENCES.related_videos.to_unsafe listen ||= DEFAULT_USER_PREFERENCES.listen.to_unsafe + local ||= DEFAULT_USER_PREFERENCES.local.to_unsafe preferred_captions ||= DEFAULT_USER_PREFERENCES.captions quality ||= DEFAULT_USER_PREFERENCES.quality + related_videos ||= DEFAULT_USER_PREFERENCES.related_videos.to_unsafe speed ||= DEFAULT_USER_PREFERENCES.speed video_loop ||= DEFAULT_USER_PREFERENCES.video_loop.to_unsafe volume ||= DEFAULT_USER_PREFERENCES.volume diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr index 20762bc5..d26b2179 100644 --- a/src/invidious/views/preferences.ecr +++ b/src/invidious/views/preferences.ecr @@ -28,6 +28,11 @@ function update_value(element) { checked<% end %>>
+
+ + checked<% end %>> +
+
checked<% end %>>