diff options
56 files changed, 2844 insertions, 827 deletions
diff --git a/assets/css/default.css b/assets/css/default.css index 2552263d..b6f2d9cc 100644 --- a/assets/css/default.css +++ b/assets/css/default.css @@ -5,6 +5,12 @@ body { Arial, sans-serif; } +#contents { + display: flex; + flex-direction: column; + min-height: 100vh; +} + .deleted { background-color: rgb(255, 0, 0, 0.5); } @@ -172,7 +178,7 @@ img.thumbnail { flex: 1; } -.navbar > .searchbar { +.searchbar { flex-grow: 2; /* take double the space of the other items */ } @@ -185,7 +191,7 @@ img.thumbnail { display: inline; } -.navbar > .searchbar .pure-form input[type="search"] { +.searchbar .pure-form input[type="search"] { margin-bottom: 1px; border-top: 0; @@ -210,12 +216,12 @@ input[type="search"]::-webkit-search-cancel-button { background-size: 14px; } -.navbar > .searchbar .pure-form fieldset { +.searchbar .pure-form fieldset { padding: 0; } /* attract focus to the searchbar by adding a subtle transition */ -.navbar > .searchbar .pure-form input[type="search"]:focus { +.searchbar .pure-form input[type="search"]:focus { margin-bottom: 0px; border-bottom: 2px solid #aaa; } @@ -280,14 +286,16 @@ input[type="search"]::-webkit-search-cancel-button { * Footer */ -.footer { - color: #666666; - margin: 2em 0; +footer { + color: #919191; + margin-top: auto; + padding: 1.5em 0; text-align: center; + max-height: 30vh; } -body .footer a { - color: inherit; +footer a { + color: #919191 !important; text-decoration: underline; } @@ -586,7 +594,7 @@ body.dark-theme { color: #f0f0f0; } -.dark-theme .navbar > .searchbar input { +.dark-theme .searchbar input { background-color: inherit; color: inherit; } @@ -625,7 +633,7 @@ body.dark-theme { color: #f0f0f0; } - .no-theme .navbar > .searchbar input { + .no-theme .searchbar input { background-color: inherit; color: inherit; } @@ -654,3 +662,35 @@ body.dark-theme { content: "[ - ]"; font-size: 1.5em; } + +/*With commit d9528f5 all contents of the page is now within a flexbox. However, +the hr element is rendered improperly within one. +See https://stackoverflow.com/a/34372979 for more info */ +hr { + margin: auto 0 auto 0; +} + +/* Description Expansion Styling*/ +#description-box { + display: flex; + flex-direction: column; +} + +#descexpansionbutton { + display: none +} + +#descexpansionbutton ~ div { + overflow: hidden; + height: 8.3em; +} + +#descexpansionbutton:checked ~ div { + overflow: unset; + height: 100%; +} + +#descexpansionbutton + label { + order: 1; + margin-top: 20px; +} diff --git a/assets/css/empty.css b/assets/css/empty.css new file mode 100644 index 00000000..6ad1515d --- /dev/null +++ b/assets/css/empty.css @@ -0,0 +1,16 @@ +#search-widget { + text-align: center; + margin: 20vh 0 50px 0; +} + +#logo > h1 { + font-size: 3.5em; + margin: 0; + padding: 0; +} + +@media screen and (max-width: 1500px) and (max-height: 1000px) { + #logo > h1 { + font-size: 10vmin; + } +} diff --git a/docker/Dockerfile b/docker/Dockerfile index f7d990d7..87884403 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -25,6 +25,7 @@ RUN sed -i 's/host: \(127.0.0.1\|localhost\)/host: postgres/' config/config.yml COPY ./config/sql/ ./config/sql/ COPY ./locales/ ./locales/ COPY --from=builder /invidious/invidious . +RUN chmod o+rX -R ./assets ./config ./locales EXPOSE 3000 USER invidious diff --git a/locales/ar.json b/locales/ar.json index 12bcc199..af49f514 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` المشتركين", - "`x` videos": "`x` الفيديوهات", - "`x` playlists": "`x` قوائم التشغيل", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` المشتركين", + "": "`x` المشتركين" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` الفيديوهات", + "": "`x` الفيديوهات" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` قوائم التشغيل", + "": "`x` قوائم التشغيل" + }, "LIVE": "مباشر", "Shared `x` ago": "تم رفع الفيديو منذ `x`", "Unsubscribe": "إلغاء الإشتراك", @@ -68,6 +77,7 @@ "Fallback captions: ": "الترجمات المصاحبة: ", "Show related videos: ": "اعرض الفيديوهات ذات الصلة: ", "Show annotations by default: ": "اعرض الملاحظات في الفيديو تلقائيا: ", + "Automatically extend video description: ": "", "Visual preferences": "التفضيلات المرئية", "Player style: ": "شكل مشغل الفيديوهات: ", "Dark mode: ": "الوضع الليلى: ", @@ -113,13 +123,22 @@ "Subscription manager": "مدير الإشتراكات", "Token manager": "إداره الرمز", "Token": "الرمز", - "`x` subscriptions": "`x` مشتركين", - "`x` tokens": "`x` رموز", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` مشتركين", + "": "`x` مشتركين" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` رموز", + "": "`x` رموز" + }, "Import/export": "إضافة\\إستخراج", "unsubscribe": "إلغاء الإشتراك", "revoke": "مسح", "Subscriptions": "الإشتراكات", - "`x` unseen notifications": "`x` إشعارات لم تشاهدها بعد", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` إشعارات لم تشاهدها بعد", + "": "`x` إشعارات لم تشاهدها بعد" + }, "search": "بحث", "Log out": "تسجيل الخروج", "Released under the AGPLv3 by Omar Roth.": "تم الإنشاء تحت AGPLv3 بواسطة عمر روث.", @@ -138,6 +157,8 @@ "Title": "العنوان", "Playlist privacy": "إعدادات الخصوصيه", "Editing playlist `x`": "تعديل قائمه التشفيل `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "مشاهدة الفيديو على اليوتيوب", "Hide annotations": "إخفاء الملاحظات فى الفيديو", "Show annotations": "عرض الملاحظات فى الفيديو", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "الدول المسموح فيها هذا الفيديو: ", "Blacklisted regions: ": "الدول الحظور فيها هذا الفيديو: ", "Shared `x`": "شارك منذ `x`", - "`x` views": "`x` مشاهدات", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` مشاهدات", + "": "`x` مشاهدات" + }, "Premieres in `x`": "يعرض فى `x`", "Premieres `x`": "يعرض `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "اهلا! يبدو ان الجافاسكريبت معطلة. اضغط هنا لعرض التعليقات, ضع فى إعتبارك انها ستأخذ وقت اطول للعرض.", "View YouTube comments": "عرض تعليقات اليوتيوب", "View more comments on Reddit": "عرض المزيد من التعليقات على\\من موقع Reddit", - "View `x` comments": "عرض `x` تعليقات", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "عرض `x` تعليقات", + "": "عرض `x` تعليقات" + }, "View Reddit comments": "عرض تعليقات ريدإت Reddit", "Hide replies": "إخفاء الردود", "Show replies": "عرض الردود", @@ -180,10 +207,16 @@ "This channel does not exist.": "القناة غير موجودة.", "Could not get channel info.": "لم يستطع الحصول على معلومات القناة.", "Could not fetch comments": "لم يتمكن من إحضار التعليقات", - "View `x` replies": "عرض `x` ردود", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "عرض `x` ردود", + "": "عرض `x` ردود" + }, "`x` ago": "`x` منذ", "Load more": "عرض المزيد", - "`x` points": "`x` نقاط", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` نقاط", + "": "`x` نقاط" + }, "Could not create mix.": "لم يستطع عمل خلط.", "Empty playlist": "قائمة التشغيل فارغة", "Not a playlist.": "قائمة التشغيل غير صالحة.", @@ -301,15 +334,37 @@ "Yiddish": "اليديشية", "Yoruba": "اليوروبا", "Zulu": "الزولو", - "`x` years": "`x` سنوات", - "`x` months": "`x` شهور", - "`x` weeks": "`x` اسابيع", - "`x` days": "`x` ايام", - "`x` hours": "`x` ساعات", - "`x` minutes": "`x` دقائق", - "`x` seconds": "`x` ثوانى", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` سنوات", + "": "`x` سنوات" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` شهور", + "": "`x` شهور" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` اسابيع", + "": "`x` اسابيع" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ايام", + "": "`x` ايام" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ساعات", + "": "`x` ساعات" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` دقائق", + "": "`x` دقائق" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ثوانى", + "": "`x` ثوانى" + }, "Fallback comments: ": "التعليقات البديلة: ", "Popular": "الأكثر شعبية", + "Search": "", "Top": "الأفضل", "About": "حول", "Rating: ": "التقييم: ", @@ -332,5 +387,32 @@ "Videos": "الفيديوهات", "Playlists": "قوائم التشغيل", "Community": "المجتمع", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "الإصدار الحالي: " -}
\ No newline at end of file +} diff --git a/locales/bn_BD.json b/locales/bn_BD.json index 0662a87c..b6df0470 100644 --- a/locales/bn_BD.json +++ b/locales/bn_BD.json @@ -71,6 +71,7 @@ "Fallback captions: ": "", "Show related videos: ": "", "Show annotations by default: ": "", + "Automatically extend video description: ": "", "Visual preferences": "", "Player style: ": "", "Dark mode: ": "", @@ -144,6 +145,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -327,6 +330,7 @@ "`x` seconds.": "", "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -350,4 +354,4 @@ "Playlists": "", "Community": "", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/cs.json b/locales/cs.json index ba62298c..6c37444a 100644 --- a/locales/cs.json +++ b/locales/cs.json @@ -77,6 +77,7 @@ "Fallback captions: ": "", "Show related videos: ": "Zobrazit podobné videa: ", "Show annotations by default: ": "", + "Automatically extend video description: ": "", "Visual preferences": "", "Player style: ": "Styl přehrávače ", "Dark mode: ": "Tmavý režim ", @@ -156,6 +157,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "Informace", "Rating: ": "Hodnocení: ", @@ -411,4 +415,4 @@ "hdr": "HDR", "filter": "filtr", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/da.json b/locales/da.json index ac60862c..0962524b 100644 --- a/locales/da.json +++ b/locales/da.json @@ -13,7 +13,7 @@ }, "LIVE": "DIREKTE", "Shared `x` ago": "Delt for `x` siden", - "Unsubscribe": "", + "Unsubscribe": "Opsig abonnement", "Subscribe": "Abonner", "View channel on YouTube": "Vis kanal på YouTube", "View playlist on YouTube": "Vis afspilningsliste på YouTube", @@ -28,13 +28,13 @@ "New passwords must match": "Nye kodeord skal matche", "Cannot change password for Google accounts": "Kan ikke skifte kodeord til Google-konti", "Authorize token?": "Godkend token?", - "Authorize token for `x`?": "Godkende token til `x`?", + "Authorize token for `x`?": "Godkend token til `x`?", "Yes": "Ja", "No": "Nej", "Import and Export Data": "Importer og Eksporter Data", "Import": "Importer", "Import Invidious data": "Importer Invidious data", - "Import YouTube subscriptions": "Importer Youtube abonnementer", + "Import YouTube subscriptions": "Importer YouTube abonnementer", "Import FreeTube subscriptions (.db)": "Importer FreeTube abonnementer (.db)", "Import NewPipe subscriptions (.json)": "Importer NewPipe abonnementer (.json)", "Import NewPipe data (.zip)": "Importer NewPipe data (.zip)", @@ -58,9 +58,9 @@ "Sign In": "Log ind", "Register": "Registrer", "E-mail": "E-mail", - "Google verification code": "Google verifications kode", + "Google verification code": "Google-verifikationskode", "Preferences": "Præferencer", - "Player preferences": "", + "Player preferences": "Afspillerindstillinger", "Always loop: ": "Altid gentag: ", "Autoplay: ": "Auto afspil: ", "Play next by default: ": "Afspil næste som standard: ", @@ -74,129 +74,132 @@ "youtube": "youtube", "reddit": "reddit", "Default captions: ": "Standard undertekster: ", - "Fallback captions: ": "", - "Show related videos: ": "", - "Show annotations by default: ": "", - "Visual preferences": "", - "Player style: ": "", - "Dark mode: ": "", - "Theme: ": "", - "dark": "", - "light": "", - "Thin mode: ": "", - "Subscription preferences": "", - "Show annotations by default for subscribed channels: ": "", - "Redirect homepage to feed: ": "", - "Number of videos shown in feed: ": "", - "Sort videos by: ": "", - "published": "", - "published - reverse": "", - "alphabetically": "", - "alphabetically - reverse": "", - "channel name": "", - "channel name - reverse": "", - "Only show latest video from channel: ": "", - "Only show latest unwatched video from channel: ": "", - "Only show unwatched: ": "", - "Only show notifications (if there are any): ": "", - "Enable web notifications": "", - "`x` uploaded a video": "", - "`x` is live": "", - "Data preferences": "", - "Clear watch history": "", - "Import/export data": "", - "Change password": "", - "Manage subscriptions": "", - "Manage tokens": "", - "Watch history": "", - "Delete account": "", - "Administrator preferences": "", - "Default homepage: ": "", - "Feed menu: ": "", - "Top enabled: ": "", - "CAPTCHA enabled: ": "", - "Login enabled: ": "", - "Registration enabled: ": "", - "Report statistics: ": "", - "Save preferences": "", - "Subscription manager": "", - "Token manager": "", - "Token": "", + "Fallback captions: ": "Alternative undertekster: ", + "Show related videos: ": "Vis relaterede videoer: ", + "Show annotations by default: ": "Vis annotationer som standard: ", + "Automatically extend video description: ": "", + "Visual preferences": "Visuelle præferencer", + "Player style: ": "Afspiller stil: ", + "Dark mode: ": "Mørk tilstand: ", + "Theme: ": "Tema: ", + "dark": "mørk", + "light": "lys", + "Thin mode: ": "Tynd tilstand: ", + "Subscription preferences": "Abonnements præferencer", + "Show annotations by default for subscribed channels: ": "Vis annotationer som standard for abonnerede kanaler: ", + "Redirect homepage to feed: ": "Omdiriger startside til feed: ", + "Number of videos shown in feed: ": "Antal videoer vist i feed: ", + "Sort videos by: ": "Sorter videoer efter: ", + "published": "offentliggjort", + "published - reverse": "offentliggjort - omvendt", + "alphabetically": "alfabetisk", + "alphabetically - reverse": "alfabetisk - omvendt", + "channel name": "kanalnavn", + "channel name - reverse": "kanalnavn - omvendt", + "Only show latest video from channel: ": "Vis kun seneste video fra kanal: ", + "Only show latest unwatched video from channel: ": "Vis kun seneste usete video fra kanal: ", + "Only show unwatched: ": "Vis kun usete: ", + "Only show notifications (if there are any): ": "Vis kun notifikationer (hvis der er nogle): ", + "Enable web notifications": "Aktiver webnotifikationer", + "`x` uploaded a video": "`x` uploadede en video", + "`x` is live": "`x` er live", + "Data preferences": "Data præferencer", + "Clear watch history": "Ryd afspilningshistorik", + "Import/export data": "Importer/exporter data", + "Change password": "Skift adgangskode", + "Manage subscriptions": "Administrer abonnementer", + "Manage tokens": "Administrer tokens", + "Watch history": "Afspilningshistorik", + "Delete account": "Slet konto", + "Administrator preferences": "Administrator præferencer", + "Default homepage: ": "Standard startside: ", + "Feed menu: ": "Feed menu: ", + "Top enabled: ": "Top aktiveret: ", + "CAPTCHA enabled: ": "CAPTCHA aktiveret: ", + "Login enabled: ": "Login aktiveret: ", + "Registration enabled: ": "Registrering aktiveret: ", + "Report statistics: ": "Indsend statistik: ", + "Save preferences": "Gem præferencer", + "Subscription manager": "Abonnementsmanager", + "Token manager": "Tokenmanager", + "Token": "Token", "`x` subscriptions": { - "([^.,0-9]|^)1([^.,0-9]|$)": "", - "": "" + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnementer.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x`" }, "`x` tokens": { - "([^.,0-9]|^)1([^.,0-9]|$)": "", - "": "" + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` tokens." }, - "Import/export": "", - "unsubscribe": "", - "revoke": "", - "Subscriptions": "", + "Import/export": "Importer/eksporter", + "unsubscribe": "opsig abonnement", + "revoke": "tilbagekald", + "Subscriptions": "Abonnementer", "`x` unseen notifications": { - "([^.,0-9]|^)1([^.,0-9]|$)": "", - "": "" + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` usete notifikationer.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` usete notifikationer." }, - "search": "", - "Log out": "", - "Released under the AGPLv3 by Omar Roth.": "", - "Source available here.": "", - "View JavaScript license information.": "", - "View privacy policy.": "", - "Trending": "", - "Public": "", - "Unlisted": "", - "Private": "", - "View all playlists": "", + "search": "søg", + "Log out": "Log ud", + "Released under the AGPLv3 by Omar Roth.": "Offentliggjort under AGPLv3 af Omar Roth.", + "Source available here.": "Kilde tilgængelig her.", + "View JavaScript license information.": "Vis JavaScriptlicensinformation.", + "View privacy policy.": "Vis privatpolitik.", + "Trending": "Trending", + "Public": "Offentlig", + "Unlisted": "Skjult", + "Private": "Privat", + "View all playlists": "Vis alle afspilningslister", "Updated `x` ago": "", - "Delete playlist `x`?": "", - "Delete playlist": "", - "Create playlist": "", - "Title": "", - "Playlist privacy": "", - "Editing playlist `x`": "", - "Watch on YouTube": "", - "Hide annotations": "", - "Show annotations": "", - "Genre: ": "", - "License: ": "", - "Family friendly? ": "", - "Wilson score: ": "", - "Engagement: ": "", - "Whitelisted regions: ": "", - "Blacklisted regions: ": "", - "Shared `x`": "", + "Delete playlist `x`?": "Opdateret `x` siden", + "Delete playlist": "Slet afspilningsliste", + "Create playlist": "Opret afspilningsliste", + "Title": "Titel", + "Playlist privacy": "Privatlivsindstillinger for afspilningsliste", + "Editing playlist `x`": "Redigerer afspilningsliste `x`", + "Show more": "", + "Show less": "", + "Watch on YouTube": "Se på YouTube", + "Hide annotations": "Skjul annotationer", + "Show annotations": "Vis annotationer", + "Genre: ": "Genre: ", + "License: ": "Licens: ", + "Family friendly? ": "Familievenlig? ", + "Wilson score: ": "Wilson score: ", + "Engagement: ": "Engagement: ", + "Whitelisted regions: ": "Whitelistede regioner: ", + "Blacklisted regions: ": "Blacklistede regioner: ", + "Shared `x`": "Delt `x`", "`x` views": { - "([^.,0-9]|^)1([^.,0-9]|$)": "", - "": "" + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visninger.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` visninger" }, - "Premieres in `x`": "", - "Premieres `x`": "", - "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "", - "View YouTube comments": "", - "View more comments on Reddit": "", + "Premieres in `x`": "Har premiere om `x`", + "Premieres `x`": "Har premiere om `x`", + "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hej! Det ser ud til at du har JavaScript slået fra. Klik her for at se kommentarer, vær opmærksom på at de kan tage længere om at loade.", + "View YouTube comments": "Vis YouTube kommentarer", + "View more comments on Reddit": "Se flere kommentarer på Reddit", "View `x` comments": { - "([^.,0-9]|^)1([^.,0-9]|$)": "", - "": "" + "([^.,0-9]|^)1([^.,0-9]|$)": "Vis `x` kommentarer.([^.,0-9]|^)1([^.,0-9]|$)", + "": "Vis `x` kommentarer." }, - "View Reddit comments": "", - "Hide replies": "", - "Show replies": "", - "Incorrect password": "", - "Quota exceeded, try again in a few hours": "", - "Unable to log in, make sure two-factor authentication (Authenticator or SMS) is turned on.": "", + "View Reddit comments": "Vis Reddit kommentarer", + "Hide replies": "Skjul svar", + "Show replies": "Vis svar", + "Incorrect password": "Forkert adgangskode", + "Quota exceeded, try again in a few hours": "Kvota overskredet, prøv igen om et par timer", + "Unable to log in, make sure two-factor authentication (Authenticator or SMS) is turned on.": "Login fejlet, tjek at totrinsbekræftelse (Authenticator eller SMS) er slået til.", "Invalid TFA code": "", "Login failed. This may be because two-factor authentication is not turned on for your account.": "", - "Wrong answer": "", - "Erroneous CAPTCHA": "", + "Wrong answer": "Forkert svar", + "Erroneous CAPTCHA": "Fejlagtig CAPTCHA", "CAPTCHA is a required field": "", "User ID is a required field": "", "Password is a required field": "", - "Wrong username or password": "", + "Wrong username or password": "Forkert brugernavn eller adgangskode", "Please sign in using 'Log in with Google'": "", "Password cannot be empty": "", - "Password cannot be longer than 55 characters": "", + "Password cannot be longer than 55 characters": "Adgangskoden må ikke være længere end 55 tegn", "Please log in": "", "Invidious Private Feed for `x`": "", "channel:`x`": "", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -383,5 +387,32 @@ "Videos": "", "Playlists": "", "Community": "", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/de.json b/locales/de.json index b995baac..17350211 100644 --- a/locales/de.json +++ b/locales/de.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` Abonnenten", - "`x` videos": "`x` Videos", - "`x` playlists": "`x` Wiedergabelisten", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Abonnenten", + "": "`x` Abonnenten" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Videos", + "": "`x` Videos" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Wiedergabelisten", + "": "`x` Wiedergabelisten" + }, "LIVE": "LIVE", "Shared `x` ago": "Vor `x` geteilt", "Unsubscribe": "Abbestellen", @@ -68,6 +77,7 @@ "Fallback captions: ": "Ersatzuntertitel: ", "Show related videos: ": "Ähnliche Videos anzeigen? ", "Show annotations by default: ": "Standardmäßig Anmerkungen anzeigen? ", + "Automatically extend video description: ": "", "Visual preferences": "Anzeigeeinstellungen", "Player style: ": "Abspielgeräterstil: ", "Dark mode: ": "Nachtmodus: ", @@ -113,13 +123,22 @@ "Subscription manager": "Abonnementverwaltung", "Token manager": "Tokenverwalter", "Token": "Token", - "`x` subscriptions": "`x` Abonnements", - "`x` tokens": "`x` Tokens", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Abonnements", + "": "`x` Abonnements" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Tokens", + "": "`x` Tokens" + }, "Import/export": "Importieren/Exportieren", "unsubscribe": "abbestellen", "revoke": "widerrufen", "Subscriptions": "Abonnements", - "`x` unseen notifications": "`x` ungesehene Benachrichtigungen", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ungesehene Benachrichtigungen", + "": "`x` ungesehene Benachrichtigungen" + }, "search": "Suchen", "Log out": "Abmelden", "Released under the AGPLv3 by Omar Roth.": "Veröffentlicht unter AGPLv3 von Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titel", "Playlist privacy": "Vertrauliche Wiedergabeliste", "Editing playlist `x`": "Wiedergabeliste bearbeiten `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Video auf YouTube ansehen", "Hide annotations": "Anmerkungen ausblenden", "Show annotations": "Anmerkungen anzeigen", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Erlaubte Regionen: ", "Blacklisted regions: ": "Unerlaubte Regionen: ", "Shared `x`": "Geteilt `x`", - "`x` views": "`x` Aufrufe", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Aufrufe", + "": "`x` Aufrufe" + }, "Premieres in `x`": "Zuerst gesehen in `x`", "Premieres `x`": "Erster Start `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hallo! Anscheinend haben Sie JavaScript deaktiviert. Klicken Sie hier um Kommentare anzuzeigen, beachten sie dass es etwas länger dauern kann um sie zu laden.", "View YouTube comments": "YouTube Kommentare anzeigen", "View more comments on Reddit": "Mehr Kommentare auf Reddit anzeigen", - "View `x` comments": "`x` Kommentare anzeigen", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Kommentare anzeigen", + "": "`x` Kommentare anzeigen" + }, "View Reddit comments": "Reddit Kommentare anzeigen", "Hide replies": "Antworten verstecken", "Show replies": "Antworten anzeigen", @@ -180,10 +207,16 @@ "This channel does not exist.": "Dieser Kanal existiert nicht.", "Could not get channel info.": "Kanalinformationen konnten nicht geladen werden.", "Could not fetch comments": "Kommentare konnten nicht geladen werden", - "View `x` replies": "Zeige `x` Antworten", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Zeige `x` Antworten", + "": "Zeige `x` Antworten" + }, "`x` ago": "vor `x`", "Load more": "Mehr laden", - "`x` points": "`x` Punkte", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Punkte", + "": "`x` Punkte" + }, "Could not create mix.": "Mix konnte nicht erstellt werden.", "Empty playlist": "Playlist ist leer", "Not a playlist.": "Ungültige Playlist.", @@ -301,15 +334,37 @@ "Yiddish": "Jiddisch", "Yoruba": "Joruba", "Zulu": "Zulu", - "`x` years": "`x` Jahre", - "`x` months": "`x` Monate", - "`x` weeks": "`x` Wochen", - "`x` days": "`x` Tage", - "`x` hours": "`x` Stunden", - "`x` minutes": "`x` Minuten", - "`x` seconds": "`x` Sekunden", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Jahre", + "": "`x` Jahre" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Monate", + "": "`x` Monate" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Wochen", + "": "`x` Wochen" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Tage", + "": "`x` Tage" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Stunden", + "": "`x` Stunden" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Minuten", + "": "`x` Minuten" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` Sekunden", + "": "`x` Sekunden" + }, "Fallback comments: ": "Alternative Kommentare: ", "Popular": "Populär", + "Search": "", "Top": "Top", "About": "Über", "Rating: ": "Bewertung: ", @@ -332,5 +387,32 @@ "Videos": "Videos", "Playlists": "Wiedergabelisten", "Community": "Gemeinschaft", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Aktuelle Version: " -} +}
\ No newline at end of file diff --git a/locales/el.json b/locales/el.json index f74f2421..5eb4a304 100644 --- a/locales/el.json +++ b/locales/el.json @@ -1,9 +1,16 @@ { - "`x` subscribers.([^.,0-9]|^)1([^.,0-9]|$)": "`x` συνδρομητές.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` subscribers.": "`x` συνδρομητές.", - "`x` videos.([^.,0-9]|^)1([^.,0-9]|$)": "`x` βίντεο.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` videos.": "`x` βίντεο.", - "`x` playlists": "`x` λίστες αναπαραγωγής", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` συνδρομητές", + "": "`x` συνδρομητές" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` βίντεο", + "": "`x` βίντεο" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` λίστες αναπαραγωγής", + "": "`x` λίστες αναπαραγωγής" + }, "LIVE": "ΖΩΝΤΑΝΑ", "Shared `x` ago": "Μοιράστηκε πριν από `x`", "Unsubscribe": "Απεγγραφή", @@ -70,6 +77,7 @@ "Fallback captions: ": "Εναλλακτικοί υπότιτλοι: ", "Show related videos: ": "Προβολή σχετικών βίντεο; ", "Show annotations by default: ": "Αυτόματη προβολή σημειώσεων: ", + "Automatically extend video description: ": "", "Visual preferences": "Προτιμήσεις εμφάνισης", "Player style: ": "Τεχνοτροπία της συσκευής αναπαραγωγης: ", "Dark mode: ": "Σκοτεινή λειτουργία: ", @@ -115,16 +123,22 @@ "Subscription manager": "Διαχειριστής συνδρομών", "Token manager": "Διαχειριστής διασυνδέσεων", "Token": "Διασύνδεση", - "`x` subscriptions.([^.,0-9]|^)1([^.,0-9]|$)": "`x` συνδρομή", - "`x` subscriptions.": "`x` συνδρομές.", - "`x` tokens.([^.,0-9]|^)1([^.,0-9]|$)": "`x` διασύνδεση", - "`x` tokens.": "`x` διασυνδέσεις.", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` συνδρομή", + "": "`x` συνδρομές" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` διασύνδεση", + "": "`x` διασυνδέσεις" + }, "Import/export": "Εισαγωγή/εξαγωγή", "unsubscribe": "κατάργηση συνδρομής", "revoke": "ανάκληση", "Subscriptions": "Συνδρομές", - "`x` unseen notifications.([^.,0-9]|^)1([^.,0-9]|$)": "`x` καινούρια ειδοποίηση", - "`x` unseen notifications.": "`x` καινούριες ειδοποιήσεις.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` καινούρια ειδοποίηση", + "": "`x` καινούριες ειδοποιήσεις" + }, "search": "αναζήτηση", "Log out": "Αποσύνδεση", "Released under the AGPLv3 by Omar Roth.": "Κυκλοφορεί υπό την άδεια AGPLv3 από τον Omar Roth.", @@ -143,6 +157,8 @@ "Title": "Τίτλος", "Playlist privacy": "Ιδιωτικότητα καταλόγων αναπαραγωγής", "Editing playlist `x`": "Επεξεργασία `x` καταλόγου αναπαραγωγής", + "Show more": "", + "Show less": "", "Watch on YouTube": "Προβολή στο YouTube", "Hide annotations": "Απόκρυψη σημειώσεων", "Show annotations": "Προβολή σημειώσεων", @@ -154,14 +170,19 @@ "Whitelisted regions: ": "Επιτρεπτές περιοχές: ", "Blacklisted regions: ": "Μη-επιτρεπτές περιοχές: ", "Shared `x`": "Μοιράστηκε το `x`", - "`x` views.([^.,0-9]|^)1([^.,0-9]|$)": "`x` προβολή", - "`x` views.": "`x` προβολές.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` προβολή", + "": "`x` προβολές" + }, "Premieres in `x`": "Πρώτη προβολή σε `x`", "Premieres `x`": "Επίσημη πρώτη παράσταση του `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Γεια! Φαίνεται πως έχετε απενεργοποιήσει το JavaScript. Πατήστε εδώ για προβολή σχολίων, αλλά έχετε υπ'όψιν σας πως ίσως φορτώσουν πιο αργά.", "View YouTube comments": "Προβολή σχολίων από το YouTube", "View more comments on Reddit": "Προβολή περισσότερων σχολίων στο Reddit", - "View `x` comments": "Προβολή `x` σχολίων", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Προβολή `x` σχολίων", + "": "Προβολή `x` σχολίων" + }, "View Reddit comments": "Προβολή σχολίων από το Reddit", "Hide replies": "Απόκρυψη απαντήσεων", "Show replies": "Προβολή απαντήσεων", @@ -186,12 +207,16 @@ "This channel does not exist.": "Αυτό το κανάλι δεν υπάρχει.", "Could not get channel info.": "Αδύναμια εύρεσης πληροφοριών καναλιού.", "Could not fetch comments": "Αδυναμία λήψης σχολίων", - "View `x` replies.([^.,0-9]|^)1([^.,0-9]|$)": "Προβολή `x` απάντησης", - "View `x` replies.": "Προβολή `x` απαντήσεων.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Προβολή `x` απάντησης", + "": "Προβολή `x` απαντήσεων" + }, "`x` ago": "Πριν `x`", "Load more": "Φόρτωση περισσότερων", - "`x` points.([^.,0-9]|^)1([^.,0-9]|$)": "`x` βαθμός", - "`x` points.": "`x` βαθμοί.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` βαθμός", + "": "`x` βαθμοί" + }, "Could not create mix.": "Αδυναμία δημιουργίας μίξης.", "Empty playlist": "Κενή λίστα αναπαραγωγής", "Not a playlist.": "Μη έγκυρη λίστα αναπαραγωγής.", @@ -309,22 +334,37 @@ "Yiddish": "Γίντις", "Yoruba": "Γιορούμπα", "Zulu": "Ζουλού", - "`x` years.([^.,0-9]|^)1([^.,0-9]|$)": "`x` χρόνο", - "`x` years.": "`x` χρόνια.", - "`x` months.([^.,0-9]|^)1([^.,0-9]|$)": "`x` μήνα", - "`x` months.": "`x` μήνες.", - "`x` weeks.([^.,0-9]|^)1([^.,0-9]|$)": "`x` εβδομάδα", - "`x` weeks.": "`x` εβδομάδες.", - "`x` days.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ημέρα", - "`x` days.": "`x` ημέρες.", - "`x` hours.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ώρα", - "`x` hours.": "`x` ώρες.", - "`x` minutes.([^.,0-9]|^)1([^.,0-9]|$)": "`x` λεπτό", - "`x` minutes.": "`x` λεπτά.", - "`x` seconds.([^.,0-9]|^)1([^.,0-9]|$)": "`x` δευτερόλεπτο", - "`x` seconds.": "`x` δευτερόλεπτα.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` χρόνο", + "": "`x` χρόνια" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` μήνα", + "": "`x` μήνες" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` εβδομάδα", + "": "`x` εβδομάδες" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ημέρα", + "": "`x` ημέρες" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ώρα", + "": "`x` ώρες" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` λεπτό", + "": "`x` λεπτά" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` δευτερόλεπτο", + "": "`x` δευτερόλεπτα" + }, "Fallback comments: ": "Εναλλακτικά σχόλια: ", "Popular": "Δημοφιλή", + "Search": "", "Top": "Κορυφαία", "About": "Σχετικά", "Rating: ": "Aξιολόγηση: ", @@ -347,5 +387,32 @@ "Videos": "Βίντεο", "Playlists": "Λίστες Αναπαραγωγής", "Community": "Κοινότητα", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Τρέχουσα έκδοση: " -} +}
\ No newline at end of file diff --git a/locales/en-US.json b/locales/en-US.json index 66e71bb6..71485826 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -77,6 +77,7 @@ "Fallback captions: ": "Fallback captions: ", "Show related videos: ": "Show related videos: ", "Show annotations by default: ": "Show annotations by default: ", + "Automatically extend video description: ": "Automatically extend video description: ", "Visual preferences": "Visual preferences", "Player style: ": "Player style: ", "Dark mode: ": "Dark mode: ", @@ -156,6 +157,8 @@ "Title": "Title", "Playlist privacy": "Playlist privacy", "Editing playlist `x`": "Editing playlist `x`", + "Show more": "Show more", + "Show less": "Show less", "Watch on YouTube": "Watch on YouTube", "Hide annotations": "Hide annotations", "Show annotations": "Show annotations", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "Fallback comments: ", "Popular": "Popular", + "Search": "Search", "Top": "Top", "About": "About", "Rating: ": "Rating: ", @@ -411,4 +415,4 @@ "hdr": "HDR", "filter": "Filter", "Current version: ": "Current version: " -}
\ No newline at end of file +} diff --git a/locales/eo.json b/locales/eo.json index 3052ac35..e98ebb59 100644 --- a/locales/eo.json +++ b/locales/eo.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` abonantoj", - "`x` videos": "`x` filmetoj", - "`x` playlists": "`x` ludlistoj", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonantoj.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` abonantoj." + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` filmetoj.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` filmetoj." + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ludlistoj.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` ludlistoj." + }, "LIVE": "NUNA", "Shared `x` ago": "Konigita antaŭ `x`", "Unsubscribe": "Malabonu", @@ -68,6 +77,7 @@ "Fallback captions: ": "Retrodefaŭltaj subtekstoj: ", "Show related videos: ": "Ĉu montri rilatajn filmetojn? ", "Show annotations by default: ": "Ĉu montri prinotojn defaŭlte? ", + "Automatically extend video description: ": "", "Visual preferences": "Vidaj preferoj", "Player style: ": "Ludila stilo: ", "Dark mode: ": "Malhela reĝimo: ", @@ -113,13 +123,22 @@ "Subscription manager": "Administrilo de abonoj", "Token manager": "Ĵetona administrilo", "Token": "Ĵetono", - "`x` subscriptions": "`x` abonoj", - "`x` tokens": "`x` ĵetonoj", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonoj", + "": "`x` abonoj." + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ĵetonoj", + "": "`x` ĵetonoj." + }, "Import/export": "Importi/Eksporti", "unsubscribe": "malabonu", "revoke": "senvalidigi", "Subscriptions": "Abonoj", - "`x` unseen notifications": "`x` neviditaj sciigoj", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` neviditaj sciigoj", + "": "`x` neviditaj sciigoj." + }, "search": "serĉi", "Log out": "Elsaluti", "Released under the AGPLv3 by Omar Roth.": "Eldonita sub la AGPLv3 de Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titolo", "Playlist privacy": "Privateco de ludlisto", "Editing playlist `x`": "Redaktante ludlisto `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Vidi filmeton en JuTubo", "Hide annotations": "Kaŝi prinotojn", "Show annotations": "Montri prinotojn", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Regionoj listigitaj en blanka listo: ", "Blacklisted regions: ": "Regionoj listigitaj en nigra listo: ", "Shared `x`": "Konigita `x`", - "`x` views": "`x` spektaĵoj", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` spektaĵoj", + "": "`x` spektaĵoj." + }, "Premieres in `x`": "Premieras en `x`", "Premieres `x`": "Premieras `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Saluton! Ŝajnas, ke vi havas Ĝavoskripton malebligitan. Klaku ĉi tie por vidi komentojn, memoru, ke la ŝargado povus daŭri iom pli.", "View YouTube comments": "Vidi komentojn de JuTubo", "View more comments on Reddit": "Vidi pli komentoj en Reddit", - "View `x` comments": "Vidi `x` komentojn", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Vidi `x` komentojn", + "": "Vidi `x` komentojn." + }, "View Reddit comments": "Vidi komentojn de Reddit", "Hide replies": "Kaŝi respondojn", "Show replies": "Montri respondojn", @@ -180,10 +207,16 @@ "This channel does not exist.": "Ĉi tiu kanalo ne ekzistas.", "Could not get channel info.": "Ne povis havigi kanalan informon.", "Could not fetch comments": "Ne povis venigi komentojn", - "View `x` replies": "Vidi `x` respondojn", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Vidi `x` respondojn", + "": "Vidi `x` respondojn." + }, "`x` ago": "antaŭ `x`", "Load more": "Ŝarĝi pli", - "`x` points": "`x` poentoj", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` poentoj", + "": "`x` poentoj." + }, "Could not create mix.": "Ne povis krei mikson.", "Empty playlist": "Ludlisto estas malplena", "Not a playlist.": "Nevalida ludlisto.", @@ -301,15 +334,37 @@ "Yiddish": "Jida", "Yoruba": "Joruba", "Zulu": "Zulua", - "`x` years": "`x` jaroj", - "`x` months": "`x` monatoj", - "`x` weeks": "`x` semajnoj", - "`x` days": "`x` tagoj", - "`x` hours": "`x` horoj", - "`x` minutes": "`x` minutoj", - "`x` seconds": "`x` sekundoj", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` jaroj", + "": "`x` jaroj." + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` monatoj", + "": "`x` monatoj." + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` semajnoj", + "": "`x` semajnoj." + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tagoj", + "": "`x` tagoj." + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` horoj", + "": "`x` horoj." + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutoj", + "": "`x` minutoj." + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekundoj", + "": "`x` sekundoj." + }, "Fallback comments: ": "Retrodefaŭltaj komentoj: ", "Popular": "Popularaj", + "Search": "Serĉi", "Top": "Supraj", "About": "Pri", "Rating: ": "Takso: ", @@ -332,5 +387,32 @@ "Videos": "Filmetoj", "Playlists": "Ludlistoj", "Community": "Komunumo", + "relevance": "rilateco", + "rating": "takso", + "date": "dato", + "views": "vidoj", + "content_type": "enhavtipo", + "duration": "daŭro", + "features": "trajtoj", + "sort": "ordigi", + "hour": "horo", + "today": "hodiaŭ", + "week": "semajno", + "month": "monato", + "year": "jaro", + "video": "filmeto", + "channel": "kanalo", + "playlist": "ludlisto", + "movie": "filmo", + "show": "spektaĵo", + "hd": "altdistingiva", + "subtitles": "subtekstoj", + "creative_commons": "Krea Komunaĵo", + "3d": "3D", + "live": "nuna", + "4k": "4k", + "location": "loko", + "hdr": "granddinamikgama", + "filter": "filtri", "Current version: ": "Nuna versio: " -} +}
\ No newline at end of file diff --git a/locales/es.json b/locales/es.json index 91faef1b..1b50aea1 100644 --- a/locales/es.json +++ b/locales/es.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` suscriptores", - "`x` videos": "`x` vídeos", - "`x` playlists": "`x` listas de reproducción", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` suscriptores", + "": "`x` suscriptores." + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vídeos", + "": "`x` vídeos." + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` listas de reproducción", + "": "`x` listas de reproducción." + }, "LIVE": "DIRECTO", "Shared `x` ago": "Compartido hace `x`", "Unsubscribe": "Desuscribirse", @@ -68,6 +77,7 @@ "Fallback captions: ": "Subtítulos alternativos: ", "Show related videos: ": "¿Mostrar vídeos relacionados? ", "Show annotations by default: ": "¿Mostrar anotaciones por defecto? ", + "Automatically extend video description: ": "", "Visual preferences": "Preferencias visuales", "Player style: ": "Estilo de reproductor: ", "Dark mode: ": "Modo oscuro: ", @@ -113,13 +123,22 @@ "Subscription manager": "Gestor de suscripciones", "Token manager": "Gestor de tokens", "Token": "Token", - "`x` subscriptions": "`x` suscripciones", - "`x` tokens": "`x` tokens", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` suscripciones", + "": "`x` suscripciones." + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens", + "": "`x` tokens." + }, "Import/export": "Importar/Exportar", "unsubscribe": "Desuscribirse", "revoke": "revocar", "Subscriptions": "Suscripciones", - "`x` unseen notifications": "`x` notificaciones sin ver", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notificaciones sin ver", + "": "`x` notificaciones sin ver." + }, "search": "buscar", "Log out": "Cerrar la sesión", "Released under the AGPLv3 by Omar Roth.": "Publicado bajo licencia AGPLv3 por Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Título", "Playlist privacy": "Privacidad de la lista de reproducción", "Editing playlist `x`": "Editando la lista de reproducción 'x'", + "Show more": "", + "Show less": "", "Watch on YouTube": "Ver el vídeo en Youtube", "Hide annotations": "Ocultar anotaciones", "Show annotations": "Mostrar anotaciones", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Regiones permitidas: ", "Blacklisted regions: ": "Regiones bloqueadas: ", "Shared `x`": "Compartido `x`", - "`x` views": "`x` visualizaciones", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizaciones", + "": "`x` visualizaciones." + }, "Premieres in `x`": "Se estrena en `x`", "Premieres `x`": "Estrenos `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "¡Hola! Parece que tiene JavaScript desactivado. Haga clic aquí para ver los comentarios, pero tenga en cuenta que pueden tardar un poco más en cargarse.", "View YouTube comments": "Ver los comentarios de YouTube", "View more comments on Reddit": "Ver más comentarios en Reddit", - "View `x` comments": "Ver `x` comentarios", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` comentarios", + "": "Ver `x` comentarios." + }, "View Reddit comments": "Ver los comentarios de Reddit", "Hide replies": "Ocultar las respuestas", "Show replies": "Mostrar las respuestas", @@ -180,10 +207,16 @@ "This channel does not exist.": "El canal no existe.", "Could not get channel info.": "No se ha podido obtener información del canal.", "Could not fetch comments": "No se han podido recuperar los comentarios", - "View `x` replies": "Ver `x` respuestas", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` respuestas", + "": "Ver `x` respuestas." + }, "`x` ago": "hace `x`", "Load more": "Cargar más", - "`x` points": "`x` puntos", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` puntos", + "": "`x` puntos." + }, "Could not create mix.": "No se ha podido crear la mezcla.", "Empty playlist": "La lista de reproducción está vacía", "Not a playlist.": "Lista de reproducción no válida.", @@ -301,15 +334,37 @@ "Yiddish": "Yidis", "Yoruba": "Yoruba", "Zulu": "Zulú", - "`x` years": "`x` años", - "`x` months": "`x` meses", - "`x` weeks": "`x` semanas", - "`x` days": "`x` días", - "`x` hours": "`x` horas", - "`x` minutes": "`x` minutos", - "`x` seconds": "`x` segundos", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` años", + "": "`x` años." + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` meses", + "": "`x` meses." + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` semanas", + "": "`x` semanas." + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` días", + "": "`x` días." + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` horas", + "": "`x` horas." + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutos", + "": "`x` minutos." + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` segundos", + "": "`x` segundos." + }, "Fallback comments: ": "Comentarios alternativos: ", "Popular": "Populares", + "Search": "Buscar", "Top": "Destacados", "About": "Acerca de", "Rating: ": "Valoración: ", @@ -332,5 +387,32 @@ "Videos": "Vídeos", "Playlists": "Listas de reproducción", "Community": "Comunidad", + "relevance": "relevancia", + "rating": "valoración", + "date": "fecha", + "views": "visualizaciones", + "content_type": "content_type", + "duration": "duración", + "features": "funcionalidades", + "sort": "ordenar", + "hour": "hora", + "today": "hoy", + "week": "semana", + "month": "mes", + "year": "año", + "video": "vídeo", + "channel": "canal", + "playlist": "lista de reproducción", + "movie": "película", + "show": "programa", + "hd": "hd", + "subtitles": "subtítulos", + "creative_commons": "creative_commons", + "3d": "3d", + "live": "directo", + "4k": "4k", + "location": "ubicación", + "hdr": "hdr", + "filter": "filtro", "Current version: ": "Versión actual: " -} +}
\ No newline at end of file diff --git a/locales/eu.json b/locales/eu.json index 61299c72..d5021c25 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -68,6 +68,7 @@ "Fallback captions: ": "", "Show related videos: ": "Erakutsi erlazionatutako bideoak: ", "Show annotations by default: ": "Erakutsi oharrak modu lehenetsian: ", + "Automatically extend video description: ": "", "Visual preferences": "Hobespen bisualak", "Player style: ": "Erreproduzigailu mota: ", "Dark mode: ": "Gai iluna: ", @@ -138,6 +139,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -310,6 +313,7 @@ "`x` seconds": "", "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", diff --git a/locales/fa.json b/locales/fa.json index 0f0900a9..b6114292 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -1,10 +1,16 @@ { - "`x` subscribers.([^.,0-9]|^)1([^.,0-9]|$)": "`x` مشترکان.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` subscribers.": "`x` مشترکان.", - "`x` videos.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ویدیو ها.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` videos.": "`x` ویدیو ها.", - "`x` playlists.([^.,0-9]|^)1([^.,0-9]|$)": "`x` لیست های پخش.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` playlists.": "`x` لیست های پخش.", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` مشترکان", + "": "`x` مشترکان" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ویدیو ها", + "": "`x` ویدیو ها" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` لیست های پخش", + "": "`x` لیست های پخش" + }, "LIVE": "زنده", "Shared `x` ago": "به اشتراک گذاشته شده `x` پیش", "Unsubscribe": "لغو اشتراک", @@ -71,6 +77,7 @@ "Fallback captions: ": "عقب گرد زیرنویس ها: ", "Show related videos: ": "نمایش ویدیو های مرتبط: ", "Show annotations by default: ": "نمایش حاشیه نویسی ها به طور پیشفرض: ", + "Automatically extend video description: ": "", "Visual preferences": "ترجیحات بصری", "Player style: ": "حالت پخش کننده: ", "Dark mode: ": "حالت تاریک: ", @@ -116,16 +123,22 @@ "Subscription manager": "مدیریت اشتراک", "Token manager": "مدیر توکن", "Token": "توکن", - "`x` subscriptions.([^.,0-9]|^)1([^.,0-9]|$)": "`x` اشتراک ها.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` subscriptions.": "`x` اشتراک ها.", - "`x` tokens.([^.,0-9]|^)1([^.,0-9]|$)": "`x` توکن ها.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` tokens.": "`x` توکن ها.", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` اشتراک ها", + "": "`x` اشتراک ها" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` توکن ها", + "": "`x` توکن ها" + }, "Import/export": "وارد کردن/خارج کردن", "unsubscribe": "لغو اشتراک", "revoke": "ابطال", "Subscriptions": "اشتراک ها", - "`x` unseen notifications.([^.,0-9]|^)1([^.,0-9]|$)": "`x` اعلان نادیده.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` unseen notifications.": "`x` اعلان نادیده.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` اعلان نادیده", + "": "`x` اعلان نادیده" + }, "search": "جستجو", "Log out": "خروج", "Released under the AGPLv3 by Omar Roth.": "منتشر شده تحت مجوز AGPLv3 توسط Omar Roth.", @@ -144,6 +157,8 @@ "Title": "عنوان", "Playlist privacy": "حریم خصوصی لیست پخش", "Editing playlist `x`": "تغییر لیست پخش `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "تماشا در یوتیوب", "Hide annotations": "مخفی کردن حاشیه نویسی ها", "Show annotations": "نمایش حاشیه نویسی ها", @@ -155,15 +170,19 @@ "Whitelisted regions: ": "مناطق لیست سفید: ", "Blacklisted regions: ": "مناطق لیست سیاه: ", "Shared `x`": "به اشتراک گذاشته شده `x`", - "`x` views.([^.,0-9]|^)1([^.,0-9]|$)": "`x` بازدید.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` views.": "`x` بازدید.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` بازدید", + "": "`x` بازدید" + }, "Premieres in `x`": "برای اولین بار در `x`", "Premieres `x`": "برای اولین بار `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "سلام! مثل اینکه تو جاوا اسکریپت رو خاموش کرده ای. اینجا کلیک کن تا نظرات را ببینی، این رو یادت باشه که ممکنه بارگذاری اونها کمی طول بکشه.", "View YouTube comments": "نمایش نظرات یوتیوب", "View more comments on Reddit": "نمایش نظرات بیشتر در ردیت", - "View `x` comments.([^.,0-9]|^)1([^.,0-9]|$)": "نمایش `x` نظرات.([^.,0-9]|^)1([^.,0-9]|$)", - "View `x` comments.": "نمایش `x` نظرات.", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "نمایش `x` نظرات", + "": "نمایش `x` نظرات" + }, "View Reddit comments": "نمایش نظرات ردیت", "Hide replies": "مخفی کردن پاسخ ها", "Show replies": "نمایش پاسخ ها", @@ -188,12 +207,16 @@ "This channel does not exist.": "این کانال وجود ندارد.", "Could not get channel info.": "نمیتوان اطلاعات کانال را دریافت کرد.", "Could not fetch comments": "نمیتوان نظرات را دریافت کرد", - "View `x` replies.([^.,0-9]|^)1([^.,0-9]|$)": "نمایش `x` پاسخ ها.([^.,0-9]|^)1([^.,0-9]|$)", - "View `x` replies.": "نمایش `x` پاسخ ها.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "نمایش `x` پاسخ ها", + "": "نمایش `x` پاسخ ها" + }, "`x` ago": "`x` پیش", "Load more": "بارگذاری بیشتر", - "`x` points.([^.,0-9]|^)1([^.,0-9]|$)": "`x` نقطه ها.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` points.": "`x` نقطه ها.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` نقطه ها", + "": "`x` نقطه ها" + }, "Could not create mix.": "نمیتوان میکس ساخت.", "Empty playlist": "لیست پخش خالی", "Not a playlist.": "یک لیست پخش نیست.", @@ -311,22 +334,37 @@ "Yiddish": "ییدیش", "Yoruba": "یوروبایی", "Zulu": "زولو", - "`x` years.([^.,0-9]|^)1([^.,0-9]|$)": "`x` سال.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` years.": "`x` سال.", - "`x` months.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ماه.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` months.": "`x` ماه.", - "`x` weeks.([^.,0-9]|^)1([^.,0-9]|$)": "`x` هفته.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` weeks.": "`x` هفته.", - "`x` days.([^.,0-9]|^)1([^.,0-9]|$)": "`x` روز.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` days.": "`x` روز.", - "`x` hours.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ساعت.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` hours.": "`x` ساعت.", - "`x` minutes.([^.,0-9]|^)1([^.,0-9]|$)": "`x` دقیقه.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` minutes.": "`x` دقیقه.", - "`x` seconds.([^.,0-9]|^)1([^.,0-9]|$)": "`x` ثانیه.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` seconds.": "`x` ثانیه.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` سال", + "": "`x` سال" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ماه", + "": "`x` ماه" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` هفته", + "": "`x` هفته" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` روز", + "": "`x` روز" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ساعت", + "": "`x` ساعت" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` دقیقه", + "": "`x` دقیقه" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ثانیه", + "": "`x` ثانیه" + }, "Fallback comments: ": "نظرات عقب گرد: ", "Popular": "محبوب", + "Search": "", "Top": "بالا", "About": "درباره", "Rating: ": "رتبه دهی: ", @@ -349,5 +387,32 @@ "Videos": "ویدیو ها", "Playlists": "لیست های پخش", "Community": "اجتماع", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "نسخه فعلی: " -} +}
\ No newline at end of file diff --git a/locales/fi.json b/locales/fi.json index 5dfd4ea2..5adeec05 100644 --- a/locales/fi.json +++ b/locales/fi.json @@ -1,10 +1,16 @@ { - "`x` subscribers.([^.,0-9]|^)1([^.,0-9]|$)": "`x` tilaaja", - "`x` subscribers.": "`x` tilaajaa.", - "`x` videos.([^.,0-9]|^)1([^.,0-9]|$)": "`x` video", - "`x` videos.": "`x` videota.", - "`x` playlists.([^.,0-9]|^)1([^.,0-9]|$)": "`x` soittolista.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` playlists.": "`x` soittolistaa.", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tilaaja", + "": "`x` tilaajaa" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` video", + "": "`x` videota" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` soittolista", + "": "`x` soittolistaa" + }, "LIVE": "SUORA", "Shared `x` ago": "Jaettu `x` sitten", "Unsubscribe": "Peruuta tilaus", @@ -71,6 +77,7 @@ "Fallback captions: ": "Toissijaiset tekstitykset: ", "Show related videos: ": "Näytä aiheeseen liittyviä videoita: ", "Show annotations by default: ": "Näytä huomautukset oletuksena: ", + "Automatically extend video description: ": "", "Visual preferences": "Visuaaliset asetukset", "Player style: ": "Soittimen tyyli: ", "Dark mode: ": "Tumma tila: ", @@ -116,16 +123,22 @@ "Subscription manager": "Tilausten hallinnoija", "Token manager": "Tunnusten hallinnoija", "Token": "Tunnus", - "`x` subscriptions.([^.,0-9]|^)1([^.,0-9]|$)": "`x` tilausta.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` subscriptions.": "`x` tilausta.", - "`x` tokens.([^.,0-9]|^)1([^.,0-9]|$)": "`x` tunnistetta.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` tokens.": "`x` tunnistetta.", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tilausta", + "": "`x` tilausta" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tunnistetta", + "": "`x` tunnistetta" + }, "Import/export": "Tuo/vie", "unsubscribe": "peru tilaus", "revoke": "kumoa", "Subscriptions": "Tilaukset", - "`x` unseen notifications.([^.,0-9]|^)1([^.,0-9]|$)": "`x` näkemätöntä ilmoitusta.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` unseen notifications.": "`x` näkemätöntä ilmoitusta.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` näkemätöntä ilmoitusta", + "": "`x` näkemätöntä ilmoitusta" + }, "search": "haku", "Log out": "Kirjaudu ulos", "Released under the AGPLv3 by Omar Roth.": "Julkaissut AGPLv3-lisenssillä: Omar Roth.", @@ -144,6 +157,8 @@ "Title": "Nimi", "Playlist privacy": "Soittolistan yksityisyys", "Editing playlist `x`": "Muokataan soittolistaa `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Katso YouTubessa", "Hide annotations": "Piilota merkkaukset", "Show annotations": "Näytä merkkaukset", @@ -155,15 +170,19 @@ "Whitelisted regions: ": "valkolistatut alueet: ", "Blacklisted regions: ": "mustalla listalla olevat alueet: ", "Shared `x`": "Jaettu `x`", - "`x` views.([^.,0-9]|^)1([^.,0-9]|$)": "`x` katselukertaa.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` views.": "`x` katselukertaa.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` katselukertaa", + "": "`x` katselukertaa" + }, "Premieres in `x`": "Ensiesitykseen aikaa `x`", "Premieres `x`": "Ensiesitykseen `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hei! Vaikuttaa siltä, että sinulla on JavaScript pois käytöstä. Klikkaa tästä nähdäksesi kommentit, huomioi että lataamisessa voi kestää melko kauan.", "View YouTube comments": "Näytä YouTube-kommentit", "View more comments on Reddit": "Katso lisää kommentteja Redditissä", - "View `x` comments.([^.,0-9]|^)1([^.,0-9]|$)": "Näytä `x` komenttia.([^.,0-9]|^)1([^.,0-9]|$)", - "View `x` comments.": "Näytä `x` kommenttia.", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Näytä `x` komenttia", + "": "Näytä `x` kommenttia" + }, "View Reddit comments": "Näytä Reddit-kommentit", "Hide replies": "Piilota vastaukset", "Show replies": "Näytä vastaukset", @@ -188,12 +207,16 @@ "This channel does not exist.": "Tätä kanavaa ei ole olemassa.", "Could not get channel info.": "Kanavatietoa ei saatu ladattua.", "Could not fetch comments": "Kommenttien nouto epäonnistui", - "View `x` replies.([^.,0-9]|^)1([^.,0-9]|$)": "Näytä `x` vastausta.([^.,0-9]|^)1([^.,0-9]|$)", - "View `x` replies.": "Näytä `x` vastausta.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Näytä `x` vastausta", + "": "Näytä `x` vastausta" + }, "`x` ago": "`x` sitten", "Load more": "Lataa lisää", - "`x` points.([^.,0-9]|^)1([^.,0-9]|$)": "`x` pistettä.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` points.": "`x` pistettä.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` pistettä", + "": "`x` pistettä" + }, "Could not create mix.": "Sekoituksen luominen epäonnistui.", "Empty playlist": "Tyhjennä soittolista", "Not a playlist.": "Ei ole soittolista.", @@ -311,22 +334,37 @@ "Yiddish": "jiddiš", "Yoruba": "joruba", "Zulu": "zulu", - "`x` years.([^.,0-9]|^)1([^.,0-9]|$)": "`x` vuotta.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` years.": "`x` vuotta.", - "`x` months.([^.,0-9]|^)1([^.,0-9]|$)": "`x` kuukautta.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` months.": "`x` kuukautta.", - "`x` weeks.([^.,0-9]|^)1([^.,0-9]|$)": "`x` viikkoa.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` weeks.": "`x` viikkoa.", - "`x` days.([^.,0-9]|^)1([^.,0-9]|$)": "`x` päivää.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` days.": "`x` päivää.", - "`x` hours.([^.,0-9]|^)1([^.,0-9]|$)": "`x` tuntia.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` hours.": "`x` tuntia.", - "`x` minutes.([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuuttia.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` minutes.": "`x` minuuttia.", - "`x` seconds.([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekuntia.([^.,0-9]|^)1([^.,0-9]|$)", - "`x` seconds.": "`x` sekuntia.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vuotta", + "": "`x` vuotta" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` kuukautta", + "": "`x` kuukautta" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` viikkoa", + "": "`x` viikkoa" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` päivää", + "": "`x` päivää" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tuntia", + "": "`x` tuntia" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuuttia", + "": "`x` minuuttia" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekuntia", + "": "`x` sekuntia" + }, "Fallback comments: ": "varakommentit: ", "Popular": "Suosittu", + "Search": "", "Top": "Ylin", "About": "Tietoa", "Rating: ": "Arvosana: ", @@ -349,5 +387,32 @@ "Videos": "Videot", "Playlists": "Soittolistat", "Community": "Yhteisö", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Tämänhetkinen versio: " -} +}
\ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json index d6bdc05a..f1055657 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` abonnés", - "`x` videos": "`x` vidéos", - "`x` playlists": "`x` listes de lecture", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonné", + "": "`x` abonnés" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vidéo", + "": "`x` vidéos" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` liste de lecture", + "": "`x` listes de lecture" + }, "LIVE": "EN DIRECT", "Shared `x` ago": "Ajoutée il y a `x`", "Unsubscribe": "Se désabonner", @@ -68,6 +77,7 @@ "Fallback captions: ": "Sous-titres alternatifs : ", "Show related videos: ": "Voir les vidéos liées : ", "Show annotations by default: ": "Afficher les annotations par défaut : ", + "Automatically extend video description: ": "", "Visual preferences": "Préférences du site", "Player style: ": "Style du lecteur : ", "Dark mode: ": "Mode sombre : ", @@ -91,7 +101,7 @@ "Only show unwatched: ": "Afficher uniquement les vidéos qui n'ont pas été regardées : ", "Only show notifications (if there are any): ": "Afficher uniquement les notifications (s'il y en a) : ", "Enable web notifications": "Activer les notifications web", - "`x` uploaded a video": "`x` a partagé(e) une vidéo", + "`x` uploaded a video": "`x` a partagé une vidéo", "`x` is live": "`x` est en direct", "Data preferences": "Préférences liées aux données", "Clear watch history": "Supprimer l'historique des vidéos regardées", @@ -113,13 +123,22 @@ "Subscription manager": "Gestionnaire d'abonnement", "Token manager": "Gestionnaire de tokens", "Token": "Token", - "`x` subscriptions": "`x` abonnements", - "`x` tokens": "`x` tokens", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnements", + "": "`x` abonnements" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` token", + "": "`x` tokens" + }, "Import/export": "Importer/Exporter", "unsubscribe": "se désabonner", "revoke": "révoquer", "Subscriptions": "Abonnements", - "`x` unseen notifications": "`x` notifications non vues", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notification non vue", + "": "`x` notifications non vues" + }, "search": "rechercher", "Log out": "Déconnexion", "Released under the AGPLv3 by Omar Roth.": "Publié sous licence AGPLv3 par Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titre", "Playlist privacy": "Paramètres de confidentialité de la liste de lecture", "Editing playlist `x`": "Liste de lecture modifier le `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Voir la vidéo sur Youtube", "Hide annotations": "Masquer les annotations", "Show annotations": "Afficher les annotations", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Régions sur liste blanche : ", "Blacklisted regions: ": "Régions sur liste noire : ", "Shared `x`": "Ajoutée le `x`", - "`x` views": "`x` vues", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vues", + "": "`x` vues" + }, "Premieres in `x`": "Première dans `x`", "Premieres `x`": "Première le `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Il semblerait que JavaScript soit désactivé. Cliquez ici pour voir les commentaires, mais gardez à l'esprit que le chargement peut prendre plus de temps.", "View YouTube comments": "Voir les commentaires YouTube", "View more comments on Reddit": "Voir plus de commentaires sur Reddit", - "View `x` comments": "Voir `x` commentaires", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Voir `x` commentaire", + "": "Voir `x` commentaires" + }, "View Reddit comments": "Voir les commentaires Reddit", "Hide replies": "Masquer les réponses", "Show replies": "Afficher les réponses", @@ -180,10 +207,16 @@ "This channel does not exist.": "Cette chaine n'existe pas.", "Could not get channel info.": "Impossible de charger les informations de cette chaîne.", "Could not fetch comments": "Impossible de charger les commentaires", - "View `x` replies": "Voir `x` réponses", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Voir `x` réponse", + "": "Voir `x` réponses" + }, "`x` ago": "il y a `x`", "Load more": "Voir plus", - "`x` points": "`x` points", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` point", + "": "`x` points" + }, "Could not create mix.": "Impossible de charger cette liste de lecture.", "Empty playlist": "La liste de lecture est vide", "Not a playlist.": "La liste de lecture est invalide.", @@ -301,15 +334,37 @@ "Yiddish": "Yiddish", "Yoruba": "Yoruba", "Zulu": "Zoulou", - "`x` years": "`x` ans", - "`x` months": "`x` mois", - "`x` weeks": "`x` semaines", - "`x` days": "`x` jours", - "`x` hours": "`x` heures", - "`x` minutes": "`x` minutes", - "`x` seconds": "`x` secondes", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` an", + "": "`x` ans" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` mois", + "": "`x` mois" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` semaine", + "": "`x` semaines" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` jour", + "": "`x` jours" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` heure", + "": "`x` heures" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minute", + "": "`x` minutes" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` seconde", + "": "`x` secondes" + }, "Fallback comments: ": "Commentaires alternatifs : ", "Popular": "Populaire", + "Search": "Rechercher", "Top": "Top", "About": "À propos", "Rating: ": "Évaluation : ", @@ -332,5 +387,32 @@ "Videos": "Vidéos", "Playlists": "Listes de lecture", "Community": "Communauté", + "relevance": "pertinence", + "rating": "évaluation", + "date": "date", + "views": "nombre de vues", + "content_type": "type de contenu", + "duration": "durée", + "features": "fonctionnalités", + "sort": "Trier par", + "hour": "heure", + "today": "aujourd'hui", + "week": "semaine", + "month": "mois", + "year": "année", + "video": "vidéo", + "channel": "chaîne", + "playlist": "liste de lecture", + "movie": "film", + "show": "affichage", + "hd": "HD", + "subtitles": "sous-titres / CC", + "creative_commons": "Creative Commons", + "3d": "3D", + "live": "en direct", + "4k": "4K", + "location": "emplacement", + "hdr": "HDR", + "filter": "filtrer", "Current version: ": "Version actuelle : " -} +}
\ No newline at end of file diff --git a/locales/he.json b/locales/he.json index f5e33877..bf34c085 100644 --- a/locales/he.json +++ b/locales/he.json @@ -12,14 +12,14 @@ "": "`x` פלייליסטים." }, "LIVE": "שידור חי", - "Shared `x` ago": "", + "Shared `x` ago": "שותף לפני `x`", "Unsubscribe": "ביטול מינוי", "Subscribe": "הרשמה למינוי", "View channel on YouTube": "צפייה בערוץ ב־YouTube", "View playlist on YouTube": "צפייה בפלייליסט ב־YouTube", "newest": "החדש ביותר", "oldest": "הישן ביותר", - "popular": "פופולארי", + "popular": "סרטונים פופולריים", "last": "אחרון", "Next page": "העמוד הבא", "Previous page": "העמוד הקודם", @@ -27,8 +27,8 @@ "New password": "סיסמה חדשה", "New passwords must match": "על הסיסמאות החדשות להתאים", "Cannot change password for Google accounts": "לא ניתן לשנות את הסיסמה לחשבונות Google", - "Authorize token?": "", - "Authorize token for `x`?": "", + "Authorize token?": "לאשר את האסימון?", + "Authorize token for `x`?": "האם לאשר את האסימון עבור `x`?", "Yes": "כן", "No": "לא", "Import and Export Data": "ייבוא וייצוא נתונים", @@ -45,7 +45,7 @@ "Delete account?": "למחוק את החשבון?", "History": "היסטוריה", "An alternative front-end to YouTube": "ממשק משתמש חלופי ל־YouTube", - "JavaScript license information": "", + "JavaScript license information": "מידע על רישיון JavaScript", "source": "source", "Log in": "כניסה", "Log in/register": "כניסה/הרשמה", @@ -63,20 +63,21 @@ "Player preferences": "העדפות הנגן", "Always loop: ": "", "Autoplay: ": "ניגון אוטומטי: ", - "Play next by default: ": "", - "Autoplay next video: ": "נגן אוטומטית את הסרטון הבא ", - "Listen by default: ": "האזן כברירת מחדל: ", + "Play next by default: ": "ניגון הסרטון הבא כברירת מחדל: ", + "Autoplay next video: ": "ניגון הסרטון הבא באופן אוטומטי: ", + "Listen by default: ": "שמע כברירת מחדל: ", "Proxy videos: ": "", "Default speed: ": "מהירות ברירת המחדל: ", "Preferred video quality: ": "איכות הווידאו המועדפת: ", - "Player volume: ": "עוצמת שמע בנגן: ", + "Player volume: ": "עצמת השמע של הנגן: ", "Default comments: ": "תגובות ברירת מחדל ", "youtube": "יוטיוב", "reddit": "reddit", "Default captions: ": "כתוביות ברירת מחדל ", "Fallback captions: ": "כתוביות גיבוי ", - "Show related videos: ": "הראה סרטונים קשורים: ", - "Show annotations by default: ": "הראה הסברים כברירת מחדל: ", + "Show related videos: ": "הצגת סרטונים קשורים: ", + "Show annotations by default: ": "הצגת הערות כברירת מחדל: ", + "Automatically extend video description: ": "", "Visual preferences": "העדפות חזותיות", "Player style: ": "סגנון הנגן: ", "Dark mode: ": "מצב כהה: ", @@ -95,10 +96,10 @@ "alphabetically - reverse": "בסדר אלפביתי - הפוך", "channel name": "שם הערוץ", "channel name - reverse": "שם הערוץ - הפוך", - "Only show latest video from channel: ": "הראה רק את הסרטון האחרון מהערוץ: ", - "Only show latest unwatched video from channel: ": "הראה רק את הסרטון האחרון שלא נצפה מהערוץ: ", - "Only show unwatched: ": "הראה רק סרטונים שלא נצפו ", - "Only show notifications (if there are any): ": "הראה רק התראות (אם יש) ", + "Only show latest video from channel: ": "הצגת הסרטון האחרון מהערוץ בלבד: ", + "Only show latest unwatched video from channel: ": "הצגת הסרטון האחרון שלא נצפה מהערוץ בלבד: ", + "Only show unwatched: ": "הצגת סרטונים שלא נצפו בלבד: ", + "Only show notifications (if there are any): ": "הצגת התראות בלבד (אם ישנן): ", "Enable web notifications": "", "`x` uploaded a video": "סרטון הועלה על ידי `x`", "`x` is live": "`x` בשידור חי", @@ -107,10 +108,10 @@ "Import/export data": "ייבוא/ייצוא נתונים", "Change password": "שינוי הסיסמה", "Manage subscriptions": "ניהול מינויים", - "Manage tokens": "", + "Manage tokens": "ניהול אסימונים", "Watch history": "היסטוריית צפייה", "Delete account": "מחיקת החשבון", - "Administrator preferences": "", + "Administrator preferences": "הגדרות ניהול מערכת", "Default homepage: ": "Default homepage: ", "Feed menu: ": "תפריט ההזנה: ", "Top enabled: ": "", @@ -156,13 +157,15 @@ "Title": "", "Playlist privacy": "Playlist privacy", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "צפייה ב־YouTube", "Hide annotations": "", "Show annotations": "", "Genre: ": "Genre: ", "License: ": "רישיון: ", "Family friendly? ": "לכל המשפחה? ", - "Wilson score: ": "", + "Wilson score: ": "ציון וילסון: ", "Engagement: ": "", "Whitelisted regions: ": "", "Blacklisted regions: ": "", @@ -174,13 +177,13 @@ "Premieres in `x`": "", "Premieres `x`": "", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "שלום! נראה ש־JavaScript כבוי. יש ללחוץ כאן להצגת התגובות, נא לקחת בחשבון שהטעינה תיקח קצת יותר זמן.", - "View YouTube comments": "", - "View more comments on Reddit": "", + "View YouTube comments": "הצגת התגובות מ־YouTube", + "View more comments on Reddit": "להצגת תגובות נוספות ב־Reddit", "View `x` comments": { "([^.,0-9]|^)1([^.,0-9]|$)": "הצגת `x` תגובות.([^.,0-9]|^)1([^.,0-9]|$)", "": "הצגת `x` תגובות." }, - "View Reddit comments": "", + "View Reddit comments": "להצגת התגובות ב־Reddit", "Hide replies": "הסתרת תגובות", "Show replies": "הצגת תגובות", "Incorrect password": "סיסמה שגויה", @@ -190,17 +193,17 @@ "Login failed. This may be because two-factor authentication is not turned on for your account.": "", "Wrong answer": "תשובה שגויה", "Erroneous CAPTCHA": "", - "CAPTCHA is a required field": "", + "CAPTCHA is a required field": "שדה CAPTCHA הוא שדה חובה", "User ID is a required field": "חובה למלא את שדה שם המשתמש", "Password is a required field": "חובה למלא את שדה הסיסמה", "Wrong username or password": "שם משתמש שגוי או סיסמה שגויה", - "Please sign in using 'Log in with Google'": "", + "Please sign in using 'Log in with Google'": "נא להתחבר בעזרת \"התחברות עם Google\"", "Password cannot be empty": "", - "Password cannot be longer than 55 characters": "", + "Password cannot be longer than 55 characters": "על אורך הסיסמה להיות 55 תווים לכל היותר", "Please log in": "נא להתחבר", "Invidious Private Feed for `x`": "", "channel:`x`": "ערוץ:`x`", - "Deleted or invalid channel": "", + "Deleted or invalid channel": "הערוץ נמחק או שאינו תקין", "This channel does not exist.": "הערוץ הזה אינו קיים.", "Could not get channel info.": "לא היה ניתן לקבל מידע על הערוץ.", "Could not fetch comments": "לא היה ניתן למשוך את התגובות", @@ -224,7 +227,7 @@ "Erroneous challenge": "", "Erroneous token": "", "No such user": "אין משתמש כזה", - "Token is expired, please try again": "", + "Token is expired, please try again": "תוקף האסימון פג, נא לנסות שוב", "English": "אנגלית", "English (auto-generated)": "אנגלית (נוצר באופן אוטומטי)", "Afrikaans": "Afrikaans", @@ -263,10 +266,10 @@ "Hawaiian": "הוואית", "Hebrew": "עברית", "Hindi": "הינדית", - "Hmong": "", + "Hmong": "המונג", "Hungarian": "הונגרית", "Icelandic": "איסלנדית", - "Igbo": "", + "Igbo": "איגבו", "Indonesian": "אינדונזית", "Irish": "Irish", "Italian": "איטלקית", @@ -286,7 +289,7 @@ "Macedonian": "מקדונית", "Malagasy": "מלגשית", "Malay": "מלאית", - "Malayalam": "", + "Malayalam": "מלאיאלאם", "Maltese": "מלטזית", "Maori": "מאורית", "Marathi": "מראטהית", @@ -301,7 +304,7 @@ "Punjabi": "פנג'אבי", "Romanian": "רומנית", "Russian": "רוסית", - "Samoan": "", + "Samoan": "סמואית", "Scottish Gaelic": "גאלית סקוטית", "Serbian": "Serbian", "Shona": "", @@ -329,7 +332,7 @@ "Western Frisian": "", "Xhosa": "קוסה", "Yiddish": "יידיש", - "Yoruba": "", + "Yoruba": "יורובה", "Zulu": "זולו", "`x` years": { "([^.,0-9]|^)1([^.,0-9]|$)": "`x` שנים.([^.,0-9]|^)1([^.,0-9]|$)", @@ -360,7 +363,8 @@ "": "`x` שניות." }, "Fallback comments: ": "", - "Popular": "", + "Popular": "סרטונים פופולריים", + "Search": "", "Top": "Top", "About": "על אודות", "Rating: ": "דירוג: ", @@ -374,7 +378,7 @@ "Download": "הורדה", "Download as: ": "הורדה בתור: ", "%A %B %-d, %Y": "%A %B %-d, %Y", - "(edited)": "", + "(edited)": "(לאחר עריכה)", "YouTube comment permalink": "", "permalink": "", "`x` marked it with a ❤": "סומנה ב־❤ על ידי `x`", @@ -411,4 +415,4 @@ "hdr": "HDR", "filter": "סינון", "Current version: ": "הגרסה הנוכחית: " -} +}
\ No newline at end of file diff --git a/locales/hr.json b/locales/hr.json index a9a179f3..2142a052 100644 --- a/locales/hr.json +++ b/locales/hr.json @@ -77,6 +77,7 @@ "Fallback captions: ": "Alternativni titlovi: ", "Show related videos: ": "Prikaži povezana videa: ", "Show annotations by default: ": "Standardno prikaži napomene: ", + "Automatically extend video description: ": "", "Visual preferences": "Postavke prikaza", "Player style: ": "Stil playera: ", "Dark mode: ": "Tamni modus: ", @@ -156,6 +157,8 @@ "Title": "Naslov", "Playlist privacy": "Privatnost playliste", "Editing playlist `x`": "Uređivanje playliste `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Gledaj na YouTubeu", "Hide annotations": "Sakrij napomene", "Show annotations": "Prikaži napomene", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "Alternativni komentari: ", "Popular": "Popularni", + "Search": "Traži", "Top": "Najbolji", "About": "Informacije", "Rating: ": "Ocjena: ", @@ -383,5 +387,32 @@ "Videos": "Videa", "Playlists": "Playliste", "Community": "Zajednica", + "relevance": "značaj", + "rating": "ocjena", + "date": "datum", + "views": "prikazi", + "content_type": "vrsta_sadržaja", + "duration": "trajanje", + "features": "funkcije", + "sort": "redoslijed", + "hour": "sat", + "today": "danas", + "week": "tjedan", + "month": "mjesec", + "year": "godina", + "video": "video", + "channel": "kanal", + "playlist": "playlista", + "movie": "film", + "show": "emisija", + "hd": "hd", + "subtitles": "titlovi", + "creative_commons": "creative_commons", + "3d": "3d", + "live": "uživo", + "4k": "4k", + "location": "lokacija", + "hdr": "hdr", + "filter": "filtar", "Current version: ": "Trenutačna verzija: " -} +}
\ No newline at end of file diff --git a/locales/hu-HU.json b/locales/hu-HU.json index f60bb7d2..a8c9cae1 100644 --- a/locales/hu-HU.json +++ b/locales/hu-HU.json @@ -68,6 +68,7 @@ "Fallback captions: ": "Másodlagos feliratok: ", "Show related videos: ": "Kapcsolódó videók mutatása: ", "Show annotations by default: ": "Annotációk mutatása alapértelmetésben: ", + "Automatically extend video description: ": "", "Visual preferences": "Vizuális preferenciák", "Player style: ": "Lejátszó stílusa: ", "Dark mode: ": "Sötét mód: ", @@ -138,6 +139,8 @@ "Title": "Címe", "Playlist privacy": "Playlist láthatósága", "Editing playlist `x`": "`x` playlist szerkesztése", + "Show more": "", + "Show less": "", "Watch on YouTube": "Megtekintés a YouTube-on", "Hide annotations": "Annotációk elrejtése", "Show annotations": "Annotációk mutatása", @@ -309,6 +312,7 @@ "`x` seconds": "`x` másodperc", "Fallback comments: ": "Másodlagos kommentek: ", "Popular": "Népszerű", + "Search": "", "Top": "Top", "About": "Leírás", "Rating: ": "Besorolás: ", @@ -332,4 +336,4 @@ "Playlists": "Playlistek", "Community": "Közösség", "Current version: ": "Jelenlegi verzió: " -} +}
\ No newline at end of file diff --git a/locales/id.json b/locales/id.json index 66662c69..61424233 100644 --- a/locales/id.json +++ b/locales/id.json @@ -77,6 +77,7 @@ "Fallback captions: ": "Subtitel fallback: ", "Show related videos: ": "Tampilkan video terkait: ", "Show annotations by default: ": "Tampilkan anotasi secara default: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferensi visual", "Player style: ": "Gaya pemutar: ", "Dark mode: ": "Mode gelap: ", @@ -113,7 +114,7 @@ "Administrator preferences": "Preferensi administrator", "Default homepage: ": "Laman beranda default: ", "Feed menu: ": "Menu umpan: ", - "Top enabled: ": "", + "Top enabled: ": "Teratas diaktifkan: ", "CAPTCHA enabled: ": "CAPTCHA diaktifkan: ", "Login enabled: ": "Masuk diaktifkan: ", "Registration enabled: ": "Registrasi diaktifkan: ", @@ -156,6 +157,8 @@ "Title": "Judul", "Playlist privacy": "Privasi daftar putar", "Editing playlist `x`": "Menyunting daftar putar `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Tonton di YouTube", "Hide annotations": "Sembunyikan anotasi", "Show annotations": "Tampilkan anotasi", @@ -219,10 +222,10 @@ "Not a playlist.": "Bukan daftar putar.", "Playlist does not exist.": "Daftar putar tidak ada.", "Could not pull trending pages.": "Tidak bisa mendapatkan laman tren.", - "Hidden field \"challenge\" is a required field": "", - "Hidden field \"token\" is a required field": "", - "Erroneous challenge": "", - "Erroneous token": "", + "Hidden field \"challenge\" is a required field": "Bidang \"tantangan\" tersembunyi wajib diisi", + "Hidden field \"token\" is a required field": "Bidang \"token\" tersembunyi wajib diisi", + "Erroneous challenge": "Tantangan salah", + "Erroneous token": "Token salah", "No such user": "Tidak ada pengguna demikian", "Token is expired, please try again": "Token kadaluwarsa, harap coba lagi", "English": "Bahasa Inggris", @@ -243,7 +246,7 @@ "Cebuano": "Bahasa Cebu", "Chinese (Simplified)": "Bahasa Cina", "Chinese (Traditional)": "Bahasa Cina (Tradisonal)", - "Corsican": "", + "Corsican": "Bahasa Korsika", "Croatian": "Bahasa Kroasia", "Czech": "Bahasa Ceko", "Danish": "Bahasa Denmak", @@ -253,17 +256,17 @@ "Filipino": "Bahasa Filipina", "Finnish": "Bahasa Finlandia", "French": "Bahasa Perancis", - "Galician": "", + "Galician": "Bahasa Galisia", "Georgian": "Bahasa Georgia", "German": "Bahasa Jerman", "Greek": "Bahasa Yunani", - "Gujarati": "", - "Haitian Creole": "", - "Hausa": "", + "Gujarati": "Bahasa Gujarat", + "Haitian Creole": "Bahasa Kreol Haiti", + "Hausa": "Bahasa Hausa", "Hawaiian": "Bahasa Hawai", "Hebrew": "Bahasa Ibrani", "Hindi": "Bahasa Hindi", - "Hmong": "", + "Hmong": "Bahasa Hmong", "Hungarian": "Bahasa Hungaria", "Icelandic": "Bahasa Islandia", "Igbo": "Bahasa Igbo", @@ -272,53 +275,53 @@ "Italian": "Bahasa Italia", "Japanese": "Bahasa Jepang", "Javanese": "Bahasa Jawa", - "Kannada": "", - "Kazakh": "", - "Khmer": "", + "Kannada": "Bahasa Kannada", + "Kazakh": "Bahasa Kazakh", + "Khmer": "Bahasa Khmer", "Korean": "Bahasa Korea", "Kurdish": "Bahasa Kurdistan", - "Kyrgyz": "", - "Lao": "", + "Kyrgyz": "Bahasa Kirgiz", + "Lao": "Bahasa Laos", "Latin": "Bahasa Latin", "Latvian": "Bahasa Latvia", "Lithuanian": "Bahasa Lithuania", - "Luxembourgish": "", - "Macedonian": "", - "Malagasy": "", + "Luxembourgish": "Bahasa Luksemburg", + "Macedonian": "Bahasa Makedonia", + "Malagasy": "Bahasa Malagasi", "Malay": "Bahasa Melayu", - "Malayalam": "", - "Maltese": "", + "Malayalam": "Bahasa Malayalam", + "Maltese": "Bahasa Malta", "Maori": "Bahasa Maori", "Marathi": "Bahasa Marathi", "Mongolian": "Bahasa Mongolia", "Nepali": "Bahasa Nepal", - "Norwegian Bokmål": "", - "Nyanja": "", - "Pashto": "", + "Norwegian Bokmål": "Bahasa Norwegia Bokmål", + "Nyanja": "Bahasa Chichewa", + "Pashto": "Bahasa Pashtun", "Persian": "Bahasa Persia", "Polish": "Bahasa Polandia", "Portuguese": "Bahasa Portugis", "Punjabi": "Bahasa Punjabi", "Romanian": "Bahasa Romania", "Russian": "Bahasa Russia", - "Samoan": "", - "Scottish Gaelic": "", + "Samoan": "Bahasa Samoa", + "Scottish Gaelic": "Bahasa Gaelik Skotlandia", "Serbian": "Bahasa Serbia", - "Shona": "", - "Sindhi": "", - "Sinhala": "", + "Shona": "Bahasa Shona", + "Sindhi": "Bahasa Sindhi", + "Sinhala": "Bahasa Sinhala", "Slovak": "Bahasa Slovakia", "Slovenian": "Bahasa Slovenia", "Somali": "Bahasa Somalia", - "Southern Sotho": "", + "Southern Sotho": "Bahasa Sesotho", "Spanish": "Bahasa Spanyol", "Spanish (Latin America)": "Bahasa Spanyol (Amerika Latin)", "Sundanese": "Bahasa Sunda", "Swahili": "Bahasa Swahili", "Swedish": "Bahasa Swedia", - "Tajik": "", + "Tajik": "Bahasa Tajik", "Tamil": "Bahasa Tamil", - "Telugu": "", + "Telugu": "Bahasa Telugu", "Thai": "Bahasa Thailand", "Turkish": "Bahasa Turki", "Ukrainian": "Bahasa Ukraina", @@ -326,11 +329,11 @@ "Uzbek": "Bahasa Uzbek", "Vietnamese": "Bahasa Vietnam", "Welsh": "Bahasa Wales", - "Western Frisian": "", - "Xhosa": "", - "Yiddish": "", - "Yoruba": "", - "Zulu": "", + "Western Frisian": "Bahasa Frisia Barat", + "Xhosa": "Bahasa Xhosa", + "Yiddish": "Bahasa Yiddi", + "Yoruba": "Bahasa Yoruba", + "Zulu": "Bahasa Zulu", "`x` years": { "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tahun.([^.,0-9]|^)1([^.,0-9]|$)", "": "`x` tahun." @@ -361,7 +364,8 @@ }, "Fallback comments: ": "", "Popular": "Populer", - "Top": "", + "Search": "Cari", + "Top": "Teratas", "About": "Ihwal", "Rating: ": "Peringkat: ", "Language: ": "Bahasa: ", @@ -373,9 +377,9 @@ "Movies": "Film", "Download": "Unduh", "Download as: ": "Unduh sebagai: ", - "%A %B %-d, %Y": "", + "%A %B %-d, %Y": "%A %B %-d, %Y", "(edited)": "(disunting)", - "YouTube comment permalink": "", + "YouTube comment permalink": "Komentar YouTube permalink", "permalink": "permalink", "`x` marked it with a ❤": "`x` telah ditandai dengan ❤", "Audio mode": "Mode audio", @@ -383,5 +387,32 @@ "Videos": "Video", "Playlists": "Daftar putar", "Community": "Komunitas", + "relevance": "Relevan", + "rating": "peringkat", + "date": "tanggal", + "views": "ditonton", + "content_type": "tipe_konten", + "duration": "durasi", + "features": "fitur", + "sort": "urut", + "hour": "jam", + "today": "hari ini", + "week": "minggu", + "month": "bulan", + "year": "tahun", + "video": "video", + "channel": "kanal", + "playlist": "daftar putar", + "movie": "film", + "show": "tampilkan", + "hd": "hd", + "subtitles": "subtitel", + "creative_commons": "creative_commons", + "3d": "3d", + "live": "siaran langsung", + "4k": "4k", + "location": "lokasi", + "hdr": "hdr", + "filter": "saring", "Current version: ": "Versi saat ini: " -} +}
\ No newline at end of file diff --git a/locales/is.json b/locales/is.json index a2943b88..569ee9d0 100644 --- a/locales/is.json +++ b/locales/is.json @@ -1,9 +1,16 @@ { - "`x` subscribers": "`x`áskrifendur", - "`x` videos": "`x` myndbönd", - "`x` playlists": "`x` spilunarlistar", - "`x` subscribers.": "`x` áskrifandar.", - "`x` videos.": "`x` myndbönd.", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` áskrifandar", + "": "`x` áskrifendur" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` myndband", + "": "`x` myndbönd" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` spilunarlist", + "": "`x` spilunarlistar" + }, "LIVE": "BEINT", "Shared `x` ago": "Deilt `x` síðan", "Unsubscribe": "Afskrá", @@ -70,6 +77,7 @@ "Fallback captions: ": "Varatextar: ", "Show related videos: ": "Sýna tengd myndbönd? ", "Show annotations by default: ": "Á að sýna glósur sjálfgefið? ", + "Automatically extend video description: ": "", "Visual preferences": "Sjónrænar stillingar", "Player style: ": "Spilara stíl: ", "Dark mode: ": "Myrkur ham: ", @@ -113,18 +121,24 @@ "Report statistics: ": "Skrá talnagögn? ", "Save preferences": "Vista stillingar", "Subscription manager": "Áskriftarstjóri", - "`x` subscriptions": "`x` áskrifendur", - "`x` tokens": "`x` tákn", "Token manager": "Táknstjóri", "Token": "Tákn", - "`x` subscriptions.": "`x` áskriftir.", - "`x` tokens.": "`x` tákn.", - "`x` unseen notifications": "`x` óséðar tilkynningar", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` áskriftur", + "": "`x` áskriftir" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tákn", + "": "`x` tákn" + }, "Import/export": "Flytja inn/út", "unsubscribe": "afskrá", "revoke": "afturkalla", "Subscriptions": "Áskriftir", - "`x` unseen notifications.": "`x` óséðar tilkynningar.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` óséðar tilkynning", + "": "`x` óséðar tilkynningar" + }, "search": "leita", "Log out": "Útskrá", "Released under the AGPLv3 by Omar Roth.": "Útgefið undir AGPLv3 eftir Omar Roth.", @@ -143,25 +157,32 @@ "Title": "Titill", "Playlist privacy": "Spilunarlista opinberri", "Editing playlist `x`": "Að breyta spilunarlista `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Horfa á YouTube", "Hide annotations": "Fela glósur", "Show annotations": "Sýna glósur", "Genre: ": "Tegund: ", "License: ": "Notkunarleyfi: ", "Family friendly? ": "Fjölskylduvænt? ", - "`x` views": "`x` áhorf", "Wilson score: ": "Wilson stig: ", "Engagement: ": "Þátttöku: ", "Whitelisted regions: ": "Svæði á hvítum lista: ", "Blacklisted regions: ": "Svæði á svörtum lista: ", "Shared `x`": "Deilt `x`", - "`x` views.": "`x` áhorf.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` áhorf", + "": "`x` áhorf" + }, "Premieres in `x`": "Frumflutt eftir `x`", "Premieres `x`": "Frumflutt `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hæ! Lítur út eins og þú hafir slökkt á JavaScript. Smelltu hér til að skoða ummæli, hafðu í huga að þær geta tekið aðeins lengri tíma að hlaða.", "View YouTube comments": "Skoða YouTube ummæli", "View more comments on Reddit": "Skoða fleiri ummæli á Reddit", - "View `x` comments": "Skoða `x` ummæli", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Skoða `x` ummæli", + "": "Skoða `x` ummæli" + }, "View Reddit comments": "Skoða Reddit ummæli", "Hide replies": "Fela svör", "Show replies": "Sýna svör", @@ -180,18 +201,22 @@ "Password cannot be empty": "Lykilorð má ekki vera autt", "Password cannot be longer than 55 characters": "Lykilorð má ekki vera lengra en 55 stafir", "Please log in": "Vinsamlegast skráðu þig inn", - "View `x` replies": "Skoða `x` svör", "Invidious Private Feed for `x`": "Invidious Persónulegur Straumur fyrir `x`", "channel:`x`": "rás:`x`", - "`x` points": "`x` stig", "Deleted or invalid channel": "Eytt eða ógild rás", "This channel does not exist.": "Þessi rás er ekki til.", "Could not get channel info.": "Ekki tókst að fá rásarupplýsingar.", "Could not fetch comments": "Ekki tókst að sækja ummæli", - "View `x` replies.": "Skoða `x` svör.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Skoða `x` svar", + "": "Skoða `x` svör" + }, "`x` ago": "`x` síðan", "Load more": "Hlaða meira", - "`x` points.": "`x` stig.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` stig", + "": "`x` stig" + }, "Could not create mix.": "Ekki tókst að búa til blöndu.", "Empty playlist": "Tómur spilunarlisti", "Not a playlist.": "Ekki spilunarlisti.", @@ -301,13 +326,6 @@ "Turkish": "Tyrkneska", "Ukrainian": "Úkraníska", "Urdu": "Úrdú", - "`x` years": "`x` ár", - "`x` months": "`x` mánuði", - "`x` weeks": "`x` vikur", - "`x` days": "`x` daga", - "`x` hours": "`x` klukkustundir", - "`x` minutes": "`x` mínútur", - "`x` seconds": "`x` sekúndur", "Uzbek": "Úsbekíska", "Vietnamese": "Víetnamska", "Welsh": "Velska", @@ -316,22 +334,42 @@ "Yiddish": "Jiddíska", "Yoruba": "Jórúba", "Zulu": "Zúlú", - "`x` years.": "`x` ár.", - "`x` months.": "`x` mánuði.", - "`x` weeks.": "`x` vikur.", - "`x` days.": "`x` dagar.", - "`x` hours.": "`x` klukkustundir.", - "`x` minutes.": "`x` mínútur.", - "`x` seconds.": "`x` sekúndur.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ár", + "": "`x` ár" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` mánuð", + "": "`x` mánuði" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vika", + "": "`x` vikur" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dagur", + "": "`x` dagar" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` klukkustund", + "": "`x` klukkustundir" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` mínúta", + "": "`x` mínútur" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekúnda", + "": "`x` sekúndur" + }, "Fallback comments: ": "Vara ummæli: ", "Popular": "Vinsælt", - "permalink": "Varanlegur tengill", + "Search": "", "Top": "Topp", "About": "Um", "Rating: ": "Einkunn: ", "Language: ": "Tungumál: ", "View as playlist": "Skoða sem spilunarlista", - "Community": "Samfélag", "Default": "Sjálfgefið", "Music": "Tónlist", "Gaming": "Tólvuleikja", @@ -342,10 +380,39 @@ "%A %B %-d, %Y": "%A %B %-d, %Y", "(edited)": "(breytt)", "YouTube comment permalink": "YouTube ummæli varanlegur tengill", + "permalink": "Varanlegur tengill", "`x` marked it with a ❤": "`x` merkti það með ❤", "Audio mode": "Hljóð ham", "Video mode": "Myndband ham", "Videos": "Myndbönd", "Playlists": "Spilunarlistar", + "Community": "Samfélag", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Núverandi útgáfa: " -} +}
\ No newline at end of file diff --git a/locales/it.json b/locales/it.json index 789bdd1a..e2228bca 100644 --- a/locales/it.json +++ b/locales/it.json @@ -1,9 +1,16 @@ { - "`x` subscribers..([^.,0-9]|^)1([^.,0-9]|$)": "`x` iscritto", - "`x` subscribers..": "`x` iscritti.", - "`x` videos..([^.,0-9]|^)1([^.,0-9]|$)": "`x` video", - "`x` videos..": "`x` video.", - "`x` playlists": "`x` playlist", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` iscritto", + "": "`x` iscritti" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` video", + "": "`x` video" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` playlist", + "": "`x` playlist" + }, "LIVE": "IN DIRETTA", "Shared `x` ago": "Condiviso `x` fa", "Unsubscribe": "Disiscriviti", @@ -70,6 +77,7 @@ "Fallback captions: ": "Sottotitoli alternativi: ", "Show related videos: ": "Mostra video correlati: ", "Show annotations by default: ": "Mostra le annotazioni in modo predefinito: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferenze grafiche", "Player style: ": "Stile riproduttore: ", "Dark mode: ": "Tema scuro: ", @@ -115,16 +123,22 @@ "Subscription manager": "Gestione delle iscrizioni", "Token manager": "Gestione dei gettoni", "Token": "Gettone", - "`x` subscriptions..([^.,0-9]|^)1([^.,0-9]|$)": "`x` iscrizione", - "`x` subscriptions..": "`x` iscrizioni.", - "`x` tokens..([^.,0-9]|^)1([^.,0-9]|$)": "`x` gettone", - "`x` tokens..": "`x` gettoni.", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` iscrizione", + "": "`x` iscrizioni" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` gettone", + "": "`x` gettoni" + }, "Import/export": "Importa/esporta", "unsubscribe": "disiscriviti", "revoke": "revoca", "Subscriptions": "Iscrizioni", - "`x` unseen notifications..([^.,0-9]|^)1([^.,0-9]|$)": "`x` notifica non visualizzata", - "`x` unseen notifications..": "`x` notifiche non visualizzate.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notifica non visualizzata", + "": "`x` notifiche non visualizzate" + }, "search": "Cerca", "Log out": "Esci", "Released under the AGPLv3 by Omar Roth.": "Pubblicato con licenza AGPLv3 da Omar Roth.", @@ -143,6 +157,8 @@ "Title": "Titolo", "Playlist privacy": "Privacy playlist", "Editing playlist `x`": "Modificando la playlist `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Guarda su YouTube", "Hide annotations": "Nascondi annotazioni", "Show annotations": "Mostra annotazioni", @@ -154,14 +170,19 @@ "Whitelisted regions: ": "Regioni in lista bianca: ", "Blacklisted regions: ": "Regioni in lista nera: ", "Shared `x`": "Condiviso `x`", - "`x` views..([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizzazione", - "`x` views..": "`x` visualizzazioni.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizzazione", + "": "`x` visualizzazioni" + }, "Premieres in `x`": "In anteprima in `x`", "Premieres `x`": "In anteprima `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Ciao! Sembra che tu abbia disattivato JavaScript. Clicca qui per visualizzare i commenti. Considera che potrebbe volerci più tempo.", "View YouTube comments": "Visualizza i commenti da YouTube", "View more comments on Reddit": "Visualizza più commenti su Reddit", - "View `x` comments": "Visualizza `x` commenti", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Visualizza `x` commento", + "": "Visualizza `x` commenti" + }, "View Reddit comments": "Visualizza i commenti da Reddit", "Hide replies": "Nascondi le risposte", "Show replies": "Mostra le risposte", @@ -186,12 +207,16 @@ "This channel does not exist.": "Questo canale non esiste.", "Could not get channel info.": "Impossibile ottenere le informazioni del canale.", "Could not fetch comments": "Impossibile recuperare i commenti", - "View `x` replies..([^.,0-9]|^)1([^.,0-9]|$)": "Visualizza `x` risposta", - "View `x` replies..": "Visualizza `x` risposte.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Visualizza `x` risposta", + "": "Visualizza `x` risposte" + }, "`x` ago": "`x` fa", "Load more": "Carica altro", - "`x` points..([^.,0-9]|^)1([^.,0-9]|$)": "`x` punto", - "`x` points..": "`x` punti.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` punto", + "": "`x` punti" + }, "Could not create mix.": "Impossibile creare il mix.", "Empty playlist": "Playlist vuota", "Not a playlist.": "Non è una playlist.", @@ -309,22 +334,37 @@ "Yiddish": "Yiddish", "Yoruba": "Yoruba", "Zulu": "Zulu", - "`x` years..([^.,0-9]|^)1([^.,0-9]|$)": "`x` anno", - "`x` years..": "`x` anni.", - "`x` months..([^.,0-9]|^)1([^.,0-9]|$)": "`x` mese", - "`x` months..": "`x` mesi.", - "`x` weeks..([^.,0-9]|^)1([^.,0-9]|$)": "`x` settimana", - "`x` weeks..": "`x` settimane.", - "`x` days..([^.,0-9]|^)1([^.,0-9]|$)": "`x` giorno", - "`x` days..": "`x` giorni.", - "`x` hours..([^.,0-9]|^)1([^.,0-9]|$)": "`x` ora", - "`x` hours..": "`x` ore.", - "`x` minutes..([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuto", - "`x` minutes..": "`x` minuti.", - "`x` seconds..([^.,0-9]|^)1([^.,0-9]|$)": "`x` secondo", - "`x` seconds..": "`x` secondi.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` anno", + "": "`x` anni" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` mese", + "": "`x` mesi" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` settimana", + "": "`x` settimane" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` giorno", + "": "`x` giorni" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ora", + "": "`x` ore" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuto", + "": "`x` minuti" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` secondo", + "": "`x` secondi" + }, "Fallback comments: ": "Commenti alternativi: ", "Popular": "Popolare", + "Search": "", "Top": "Top", "About": "Al riguardo", "Rating: ": "Punteggio: ", @@ -347,5 +387,32 @@ "Videos": "Video", "Playlists": "Playlist", "Community": "Comunità", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Versione attuale: " -} +}
\ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json index 51b1332d..e570ec35 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -77,6 +77,7 @@ "Fallback captions: ": "フォールバック時の字幕: ", "Show related videos: ": "関連動画を表示: ", "Show annotations by default: ": "デフォルトでアノテーションを表示: ", + "Automatically extend video description: ": "", "Visual preferences": "外観設定", "Player style: ": "プレイヤースタイル: ", "Dark mode: ": "ダークモード: ", @@ -156,6 +157,8 @@ "Title": "タイトル", "Playlist privacy": "再生リストのプライバシー", "Editing playlist `x`": "再生リスト `x` を編集中", + "Show more": "", + "Show less": "", "Watch on YouTube": "YouTube で視聴", "Hide annotations": "アノテーションを隠す", "Show annotations": "アノテーションを表示", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "フォールバック時のコメント: ", "Popular": "人気", + "Search": "", "Top": "トップ", "About": "このサービスについて", "Rating: ": "評価: ", @@ -383,5 +387,32 @@ "Videos": "動画", "Playlists": "プレイリスト", "Community": "コミュニティ", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "現在のバージョン: " -} +}
\ No newline at end of file diff --git a/locales/nb-NO.json b/locales/nb-NO.json index 355a1c33..0cccdd77 100644 --- a/locales/nb-NO.json +++ b/locales/nb-NO.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` abonnenter", - "`x` videos": "`x` videoer", - "`x` playlists": "`x` spillelister", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnenter", + "": "`x` abonnenter" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` videoer", + "": "`x` videoer" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` spillelister", + "": "`x` spillelister" + }, "LIVE": "SANNTIDSVISNING", "Shared `x` ago": "Delt for `x` siden", "Unsubscribe": "Opphev abonnement", @@ -68,6 +77,7 @@ "Fallback captions: ": "Tilbakefallsundertitler: ", "Show related videos: ": "Vis relaterte videoer? ", "Show annotations by default: ": "Vis merknader som forvalg? ", + "Automatically extend video description: ": "", "Visual preferences": "Visuelle innstillinger", "Player style: ": "Avspillerstil: ", "Dark mode: ": "Mørk drakt: ", @@ -113,13 +123,22 @@ "Subscription manager": "Abonnementsbehandler", "Token manager": "Symbolbehandler", "Token": "Symbol", - "`x` subscriptions": "`x` abonnementer", - "`x` tokens": "`x` symboler", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnementer", + "": "`x` abonnementer" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` symboler", + "": "`x` symboler" + }, "Import/export": "Importer/eksporter", "unsubscribe": "opphev abonnement", "revoke": "tilbakekall", "Subscriptions": "Abonnement", - "`x` unseen notifications": "`x` usette merknader", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` usette merknader", + "": "`x` usette merknader" + }, "search": "søk", "Log out": "Logg ut", "Released under the AGPLv3 by Omar Roth.": "Utgitt med AGPLv3+lisens av Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Tittel", "Playlist privacy": "Vern av spilleliste", "Editing playlist `x`": "Endre spilleliste «x»", + "Show more": "", + "Show less": "", "Watch on YouTube": "Vis video på YouTube", "Hide annotations": "Skjul merknader", "Show annotations": "Vis merknader", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Hvitlistede regioner: ", "Blacklisted regions: ": "Svartelistede regioner: ", "Shared `x`": "Delt `x`", - "`x` views": "`x` visninger", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visninger", + "": "`x` visninger" + }, "Premieres in `x`": "Premiere om `x`", "Premieres `x`": "Première `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they 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 `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Vis `x` kommentarer", + "": "Vis `x` kommentarer" + }, "View Reddit comments": "Vis Reddit-kommentarer", "Hide replies": "Skjul svar", "Show replies": "Vis svar", @@ -180,10 +207,16 @@ "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", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Vis `x` svar", + "": "Vis `x` svar" + }, "`x` ago": "`x` siden", "Load more": "Last inn flere", - "`x` points": "`x` poeng", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` poeng", + "": "`x` poeng" + }, "Could not create mix.": "Kunne ikke opprette miks.", "Empty playlist": "Spillelisten er tom", "Not a playlist.": "Ugyldig spilleliste.", @@ -301,15 +334,37 @@ "Yiddish": "Jiddisk", "Yoruba": "Joruba", "Zulu": "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", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` år", + "": "`x` år" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` måneder", + "": "`x` måneder" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` uker", + "": "`x` uker" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dager", + "": "`x` dager" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` timer", + "": "`x` timer" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutter", + "": "`x` minutter" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekunder", + "": "`x` sekunder" + }, "Fallback comments: ": "Tilbakefallskommentarer: ", "Popular": "Populært", + "Search": "", "Top": "Topp", "About": "Om", "Rating: ": "Vurdering: ", @@ -332,5 +387,32 @@ "Videos": "Videoer", "Playlists": "Spillelister", "Community": "Gemenskap", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Gjeldende versjon: " -} +}
\ No newline at end of file diff --git a/locales/nl.json b/locales/nl.json index de2a2bb7..6d2ff68c 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` abonnees", - "`x` videos": "`x` video's", - "`x` playlists": "`x` afspeellijsten", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnees", + "": "`x` abonnees" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` video's", + "": "`x` video's" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` afspeellijsten", + "": "`x` afspeellijsten" + }, "LIVE": "LIVE", "Shared `x` ago": "Gedeeld: `x` geleden", "Unsubscribe": "Deabonneren", @@ -68,6 +77,7 @@ "Fallback captions: ": "Alternatieve ondertiteling: ", "Show related videos: ": "Gerelateerde video's tonen? ", "Show annotations by default: ": "Standaard annotaties tonen? ", + "Automatically extend video description: ": "", "Visual preferences": "Visuele instellingen", "Player style: ": "Speler vormgeving ", "Dark mode: ": "Donkere modus: ", @@ -113,13 +123,22 @@ "Subscription manager": "Abonnementen beheren", "Token manager": "Toegangssleutels beheren", "Token": "Toegangssleutel", - "`x` subscriptions": "`x` abonnementen", - "`x` tokens": "`x` toegangssleutels", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonnementen", + "": "`x` abonnementen" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` toegangssleutels", + "": "`x` toegangssleutels" + }, "Import/export": "Importeren/Exporteren", "unsubscribe": "Deabonneren", "revoke": "Intrekken", "Subscriptions": "Abonnementen", - "`x` unseen notifications": "`x` ongelezen meldingen", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ongelezen meldingen", + "": "`x` ongelezen meldingen" + }, "search": "zoeken", "Log out": "Uitloggen", "Released under the AGPLv3 by Omar Roth.": "Uitgebracht onder de AGPLv3-licentie, door Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titel", "Playlist privacy": "Afspeellijst privacy", "Editing playlist `x`": "Afspeellijst `x` wijzigen", + "Show more": "", + "Show less": "", "Watch on YouTube": "Video bekijken op YouTube", "Hide annotations": "Annotaties verbergen", "Show annotations": "Annotaties tonen", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Toegestane regio's: ", "Blacklisted regions: ": "Geblokkeerde regio's: ", "Shared `x`": "`x` gedeeld", - "`x` views": "`x` weergaven", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` weergaven", + "": "`x` weergaven" + }, "Premieres in `x`": "Verschijnt over `x`", "Premieres `x`": "Verschijnt op `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hoi! Het lijkt erop dat je JavaScript hebt uitgeschakeld. Klik hier om de reacties te bekijken. Let op: het laden duurt wat langer.", "View YouTube comments": "YouTube-reacties tonen", "View more comments on Reddit": "Meer reacties bekijken op Reddit", - "View `x` comments": "`x` reacties tonen", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` reacties tonen", + "": "`x` reacties tonen" + }, "View Reddit comments": "Reddit-reacties tonen", "Hide replies": "Antwoorden verbergen", "Show replies": "Antwoorden tonen", @@ -180,10 +207,16 @@ "This channel does not exist.": "Dit kanaal bestaat niet.", "Could not get channel info.": "Kan geen kanaalinformatie ophalen.", "Could not fetch comments": "Kan reacties niet ophalen", - "View `x` replies": "`x` antwoorden tonen", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` antwoorden tonen", + "": "`x` antwoorden tonen" + }, "`x` ago": "`x` geleden", "Load more": "Meer laden", - "`x` points": "`x` punten", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` punten", + "": "`x` punten" + }, "Could not create mix.": "Kan geen mix maken.", "Empty playlist": "Lege afspeellijst", "Not a playlist.": "Ongeldige afspeellijst.", @@ -301,15 +334,37 @@ "Yiddish": "Joods", "Yoruba": "Yoruba", "Zulu": "Zulu", - "`x` years": "`x` jaar", - "`x` months": "`x` maanden", - "`x` weeks": "`x` weken", - "`x` days": "`x` dagen", - "`x` hours": "`x` uur", - "`x` minutes": "`x` minuten", - "`x` seconds": "`x` seconden", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` jaar", + "": "`x` jaar" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` maanden", + "": "`x` maanden" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` weken", + "": "`x` weken" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dagen", + "": "`x` dagen" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` uur", + "": "`x` uur" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuten", + "": "`x` minuten" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` seconden", + "": "`x` seconden" + }, "Fallback comments: ": "Terugvallen op ", "Popular": "Populair", + "Search": "", "Top": "Top", "About": "Over", "Rating: ": "Waardering: ", @@ -332,6 +387,32 @@ "Videos": "Video's", "Playlists": "Afspeellijsten", "Community": "Gemeenschap", - "Current version: ": "Huidige versie: ", - "Download is disabled.": "Downloaden is uitgeschakeld." + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", + "Current version: ": "Huidige versie: " } diff --git a/locales/pl.json b/locales/pl.json index 66b8f4b0..3d64aa07 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` subskrybcji", - "`x` videos": "`x` filmów", - "`x` playlists": "`x` playlist", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` subskrybcji", + "": "`x` subskrybcji" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` filmów", + "": "`x` filmów" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` playlist", + "": "`x` playlist" + }, "LIVE": "NA ŻYWO", "Shared `x` ago": "Udostępniono `x` temu", "Unsubscribe": "Odsubskrybuj", @@ -68,6 +77,7 @@ "Fallback captions: ": "Zastępcze napisy: ", "Show related videos: ": "Pokaż powiązane filmy? ", "Show annotations by default: ": "Domyślnie pokazuj adnotacje: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferencje Wizualne", "Player style: ": "Styl odtwarzacza: ", "Dark mode: ": "Ciemny motyw: ", @@ -113,13 +123,22 @@ "Subscription manager": "Manager subskrybcji", "Token manager": "Menedżer tokenów", "Token": "Token", - "`x` subscriptions": "`x` subskrybcji", - "`x` tokens": "", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` subskrybcji", + "": "`x` subskrybcji" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "", + "": "" + }, "Import/export": "Import/Eksport", "unsubscribe": "odsubskrybuj", "revoke": "cofnij", "Subscriptions": "Subskrybcje", - "`x` unseen notifications": "`x` nowych powiadomień", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` nowych powiadomień", + "": "`x` nowych powiadomień" + }, "search": "szukaj", "Log out": "Wyloguj", "Released under the AGPLv3 by Omar Roth.": "Wydano na licencji AGPLv3 przez Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Tytuł", "Playlist privacy": "Widoczność playlisty", "Editing playlist `x`": "Edycja playlisty `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Zobacz film na YouTube", "Hide annotations": "Ukryj adnotacje", "Show annotations": "Pokaż adnotacje", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Dostępny na obszarach: ", "Blacklisted regions: ": "Niedostępny na obszarach: ", "Shared `x`": "Udostępniono `x`", - "`x` views": "`x` wyświetleń", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` wyświetleń", + "": "`x` wyświetleń" + }, "Premieres in `x`": "Publikacja za `x`", "Premieres `x`": "Publikacja za `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they 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 `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Wyświetl `x` komentarzy", + "": "Wyświetl `x` komentarzy" + }, "View Reddit comments": "Wyświetl komentarze z Redditta", "Hide replies": "Ukryj odpowiedzi", "Show replies": "Pokaż odpowiedzi", @@ -180,10 +207,16 @@ "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", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Wyświetl `x` odpowiedzi", + "": "Wyświetl `x` odpowiedzi" + }, "`x` ago": "`x` temu", "Load more": "Wczytaj więcej", - "`x` points": "`x` punktów", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` punktów", + "": "`x` punktów" + }, "Could not create mix.": "Nie udało się utworzyć miksu.", "Empty playlist": "Lista odtwarzania jest pusta", "Not a playlist.": "Niepoprawna lista.", @@ -301,15 +334,37 @@ "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", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` lat", + "": "`x` lat" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` miesięcy", + "": "`x` miesięcy" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tygodni", + "": "`x` tygodni" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dni", + "": "`x` dni" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` godzin", + "": "`x` godzin" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minut", + "": "`x` minut" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekund", + "": "`x` sekund" + }, "Fallback comments: ": "Zastępcze komentarze: ", "Popular": "Popularne", + "Search": "", "Top": "Top", "About": "Informacje", "Rating: ": "Ocena: ", @@ -332,5 +387,32 @@ "Videos": "Filmy", "Playlists": "Playlisty", "Community": "Społeczność", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Aktualna wersja: " -} +}
\ No newline at end of file diff --git a/locales/pt-BR.json b/locales/pt-BR.json index cf73abd8..d358928e 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` inscritos", - "`x` videos": "`x` vídeos", - "`x` playlists": "`x` listas de reprodução", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` inscritos", + "": "`x` inscritos" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vídeos", + "": "`x` vídeos" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` listas de reprodução", + "": "`x` listas de reprodução" + }, "LIVE": "AO VIVO", "Shared `x` ago": "Compartilhado `x` atrás", "Unsubscribe": "Cancelar inscrição", @@ -68,6 +77,7 @@ "Fallback captions: ": "Legendas alternativas: ", "Show related videos: ": "Mostrar vídeos relacionados: ", "Show annotations by default: ": "Sempre mostrar anotações: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferências visuais", "Player style: ": "Estilo do tocador: ", "Dark mode: ": "Modo escuro: ", @@ -113,13 +123,22 @@ "Subscription manager": "Gerenciador de inscrições", "Token manager": "Gerenciador de tokens", "Token": "Token", - "`x` subscriptions": "`x` inscrições", - "`x` tokens": "`x` tokens", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` inscrições", + "": "`x` inscrições" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens", + "": "`x` tokens" + }, "Import/export": "Importar/Exportar", "unsubscribe": "cancelar inscrição", "revoke": "revogar", "Subscriptions": "Inscrições", - "`x` unseen notifications": "`x` notificações não visualizadas", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notificações não visualizadas", + "": "`x` notificações não visualizadas" + }, "search": "Pesquisar", "Log out": "Sair", "Released under the AGPLv3 by Omar Roth.": "Publicado sob a licença AGPLv3, por Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Título", "Playlist privacy": "Privacidade da playlist", "Editing playlist `x`": "Editando playlist `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Assistir no YouTube", "Hide annotations": "Ocultar anotações", "Show annotations": "Mostrar anotações", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Regiões permitidas: ", "Blacklisted regions: ": "Regiões bloqueadas: ", "Shared `x`": "Compartilhado `x`", - "`x` views": "`x` visualizações", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizações", + "": "`x` visualizações" + }, "Premieres in `x`": "Estreia em `x`", "Premieres `x`": "Estreia `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Oi! Parece que seu JavaScript está desativado. Clique aqui para ver os comentários, entretanto eles podem levar um pouco mais de tempo para carregar.", "View YouTube comments": "Ver comentários no YouTube", "View more comments on Reddit": "Ver mais comentários no Reddit", - "View `x` comments": "Ver `x` comentários", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` comentários", + "": "Ver `x` comentários" + }, "View Reddit comments": "Ver comentários no Reddit", "Hide replies": "Ocultar respostas", "Show replies": "Mostrar respostas", @@ -180,10 +207,16 @@ "This channel does not exist.": "Este canal não existe.", "Could not get channel info.": "Não foi possível obter as informações do canal.", "Could not fetch comments": "Não foi possível obter os comentários", - "View `x` replies": "Ver `x` respostas", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` respostas", + "": "Ver `x` respostas" + }, "`x` ago": "`x` atrás", "Load more": "Carregar mais", - "`x` points": "`x` pontos", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` pontos", + "": "`x` pontos" + }, "Could not create mix.": "Não foi possível criar o mix.", "Empty playlist": "Lista de reprodução vazia", "Not a playlist.": "Não é uma lista de reprodução.", @@ -301,15 +334,37 @@ "Yiddish": "Iídiche", "Yoruba": "Iorubá", "Zulu": "Zulu", - "`x` years": "`x` anos", - "`x` months": "`x` meses", - "`x` weeks": "`x` semanas", - "`x` days": "`x` dias", - "`x` hours": "`x` horas", - "`x` minutes": "`x` minutos", - "`x` seconds": "`x` segundos", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` anos", + "": "`x` anos" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` meses", + "": "`x` meses" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` semanas", + "": "`x` semanas" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dias", + "": "`x` dias" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` horas", + "": "`x` horas" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutos", + "": "`x` minutos" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` segundos", + "": "`x` segundos" + }, "Fallback comments: ": "Comentários alternativos: ", "Popular": "Populares", + "Search": "", "Top": "No topo", "About": "Sobre", "Rating: ": "Avaliação: ", @@ -332,5 +387,32 @@ "Videos": "Vídeos", "Playlists": "Listas de reprodução", "Community": "Comunidade", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Versão atual: " -} +}
\ No newline at end of file diff --git a/locales/pt-PT.json b/locales/pt-PT.json index 1082c023..c25e9353 100644 --- a/locales/pt-PT.json +++ b/locales/pt-PT.json @@ -1,10 +1,16 @@ { - "`x` subscribers..([^.,0-9]|^)1([^.,0-9]|$)": "`x` subscritores..([^.,0-9]|^)1([^.,0-9]|$)", - "`x` subscribers..": "`x` subscritores.", - "`x` videos..([^.,0-9]|^)1([^.,0-9]|$)": "`x` videos..([^.,0-9]|^)1([^.,0-9]|$)", - "`x` videos..": "`x` vídeos.", - "`x` playlists..([^.,0-9]|^)1([^.,0-9]|$)": "`x` listas de reprodução.", - "`x` playlists..": "`x` listas de reprodução.", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` subscritores", + "": "`x` subscritores" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` videos", + "": "`x` vídeos" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` listas de reprodução", + "": "`x` listas de reprodução" + }, "LIVE": "Em direto", "Shared `x` ago": "Partilhado `x` atrás", "Unsubscribe": "Anular subscrição", @@ -71,6 +77,7 @@ "Fallback captions: ": "Legendas alternativas: ", "Show related videos: ": "Mostrar vídeos relacionados: ", "Show annotations by default: ": "Mostrar sempre anotações: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferências visuais", "Player style: ": "Estilo do reprodutor: ", "Dark mode: ": "Modo escuro: ", @@ -116,16 +123,22 @@ "Subscription manager": "Gerir subscrições", "Token manager": "Gerir tokens", "Token": "Token", - "`x` subscriptions..([^.,0-9]|^)1([^.,0-9]|$)": "`x` subscrições.", - "`x` subscriptions..": "`x` subscrições.", - "`x` tokens..([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens.", - "`x` tokens..": "`x` tokens.", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` subscrições", + "": "`x` subscrições" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens", + "": "`x` tokens" + }, "Import/export": "Importar/Exportar", "unsubscribe": "Anular subscrição", "revoke": "revogar", "Subscriptions": "Subscrições", - "`x` unseen notifications..([^.,0-9]|^)1([^.,0-9]|$)": "`x` notificações não vistas.", - "`x` unseen notifications..": "`x` notificações não vistas.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notificações não vistas", + "": "`x` notificações não vistas" + }, "search": "Pesquisar", "Log out": "Terminar sessão", "Released under the AGPLv3 by Omar Roth.": "Publicado sob a licença AGPLv3, por Omar Roth.", @@ -144,6 +157,8 @@ "Title": "Título", "Playlist privacy": "Privacidade da lista de reprodução", "Editing playlist `x`": "A editar lista de reprodução 'x'", + "Show more": "", + "Show less": "", "Watch on YouTube": "Ver no YouTube", "Hide annotations": "Ocultar anotações", "Show annotations": "Mostrar anotações", @@ -155,15 +170,19 @@ "Whitelisted regions: ": "Regiões permitidas: ", "Blacklisted regions: ": "Regiões bloqueadas: ", "Shared `x`": "Partilhado `x`", - "`x` views..([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizações.", - "`x` views..": "`x` visualizações.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visualizações", + "": "`x` visualizações" + }, "Premieres in `x`": "Estreias em 'x'", "Premieres `x`": "Estreias 'x'", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Oi! Parece que JavaScript está desativado. Clique aqui para ver os comentários, entretanto eles podem levar mais tempo para carregar.", "View YouTube comments": "Ver comentários do YouTube", "View more comments on Reddit": "Ver mais comentários no Reddit", - "View `x` comments..([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` comentários.", - "View `x` comments..": "Ver `x` comentários.", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` comentários", + "": "Ver `x` comentários" + }, "View Reddit comments": "Ver comentários do Reddit", "Hide replies": "Ocultar respostas", "Show replies": "Mostrar respostas", @@ -188,12 +207,16 @@ "This channel does not exist.": "Este canal não existe.", "Could not get channel info.": "Não foi possível obter as informações do canal.", "Could not fetch comments": "Não foi possível obter os comentários", - "View `x` replies..([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` respostas.", - "View `x` replies..": "Ver `x` respostas.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Ver `x` respostas", + "": "Ver `x` respostas" + }, "`x` ago": "`x` atrás", "Load more": "Carregar mais", - "`x` points..([^.,0-9]|^)1([^.,0-9]|$)": "'x' pontos.", - "`x` points..": "'x' pontos.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` pontos", + "": "`x` pontos" + }, "Could not create mix.": "Não foi possível criar mistura.", "Empty playlist": "Lista de reprodução vazia", "Not a playlist.": "Não é uma lista de reprodução.", @@ -311,22 +334,37 @@ "Yiddish": "Iídiche", "Yoruba": "Ioruba", "Zulu": "Zulu", - "`x` years..([^.,0-9]|^)1([^.,0-9]|$)": "`x` anos.", - "`x` years..": "`x` anos.", - "`x` months..([^.,0-9]|^)1([^.,0-9]|$)": "`x` meses.", - "`x` months..": "`x` meses.", - "`x` weeks..([^.,0-9]|^)1([^.,0-9]|$)": "`x` semanas.", - "`x` weeks..": "`x` semanas.", - "`x` days..([^.,0-9]|^)1([^.,0-9]|$)": "`x` dias.", - "`x` days..": "`x` dias.", - "`x` hours..([^.,0-9]|^)1([^.,0-9]|$)": "`x` horas.", - "`x` hours..": "`x` horas.", - "`x` minutes..([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutos.", - "`x` minutes..": "`x` minutos.", - "`x` seconds..([^.,0-9]|^)1([^.,0-9]|$)": "`x` segundos.", - "`x` seconds..": "`x` segundos.", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` anos", + "": "`x` anos" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` meses", + "": "`x` meses" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` semanas", + "": "`x` semanas" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dias", + "": "`x` dias" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` horas", + "": "`x` horas" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minutos", + "": "`x` minutos" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` segundos", + "": "`x` segundos" + }, "Fallback comments: ": "Comentários alternativos: ", "Popular": "Popular", + "Search": "", "Top": "Top", "About": "Sobre", "Rating: ": "Avaliação: ", @@ -349,5 +387,32 @@ "Videos": "Vídeos", "Playlists": "Listas de reprodução", "Community": "Comunidade", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Versão atual: " -} +}
\ No newline at end of file diff --git a/locales/ro.json b/locales/ro.json index 08d2c386..057b919c 100644 --- a/locales/ro.json +++ b/locales/ro.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` abonați", - "`x` videos": "`x` videoclipuri", - "`x` playlists": "`x` liste de redare", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonați", + "": "`x` abonați" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` videoclipuri", + "": "`x` videoclipuri" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` liste de redare", + "": "`x` liste de redare" + }, "LIVE": "ÎN DIRECT", "Shared `x` ago": "Adăugat acum `x`", "Unsubscribe": "Dezabonați-vă", @@ -68,6 +77,7 @@ "Fallback captions: ": "Subtitrări alternative: ", "Show related videos: ": "Afișați videoclipurile asemănătoare: ", "Show annotations by default: ": "Afișați adnotările în mod implicit: ", + "Automatically extend video description: ": "", "Visual preferences": "Preferințele site-ului", "Player style: ": "Stilul player-ului : ", "Dark mode: ": "Modul întunecat : ", @@ -113,13 +123,22 @@ "Subscription manager": "Gestionați abonamentele", "Token manager": "Manager de Tokene", "Token": "Token", - "`x` subscriptions": "`x` abonamente", - "`x` tokens": "`x` tokens", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonamente", + "": "`x` abonamente" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tokens", + "": "`x` tokens" + }, "Import/export": "Importați/Exportați", "unsubscribe": "dezabonați-vă", "revoke": "revocați", "Subscriptions": "Abonamente", - "`x` unseen notifications": "`x` notificări nevăzute", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` notificări nevăzute", + "": "`x` notificări nevăzute" + }, "search": "căutați", "Log out": "Deconectați-vă", "Released under the AGPLv3 by Omar Roth.": "Publicat sub licența AGPLv3 de Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titlu", "Playlist privacy": "Parametrii de confidențialitate ai listei de redare", "Editing playlist `x`": "Modificați lista de redare `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Urmăriți videoclipul pe YouTube", "Hide annotations": "Ascundeți adnotările", "Show annotations": "Afișați adnotările", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Regiunile de pe lista albă: ", "Blacklisted regions: ": "Regiunile de pe lista neagră: ", "Shared `x`": "Publicat pe `x`", - "`x` views": "`x` vizionări", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` vizionări", + "": "`x` vizionări" + }, "Premieres in `x`": "Premiera în `x`", "Premieres `x`": "Premiera pe `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Se pare că ați dezactivat JavaScript. Apăsați aici pentru a vizualiza comentariile. Țineți minte faptul că încărcarea lor ar putea să dureze puțin mai mult.", "View YouTube comments": "Vedeți comentariile de pe YouTube", "View more comments on Reddit": "Vedeți mai multe comentarii pe Reddit", - "View `x` comments": "Afișați `x` comentarii", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Afișați `x` comentarii", + "": "Afișați `x` comentarii" + }, "View Reddit comments": "Afișați comentariile de pe Reddit", "Hide replies": "Ascundeți replicile", "Show replies": "Afișați replicile", @@ -180,10 +207,16 @@ "This channel does not exist.": "Acest canal nu există.", "Could not get channel info.": "Nu am putut primi informații despre acest canal.", "Could not fetch comments": "Încărcarea comentariilor a eșuat.", - "View `x` replies": "Afișați `x` replici", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Afișați `x` replici", + "": "Afișați `x` replici" + }, "`x` ago": "acum `x`", "Load more": "Vedeți mai mult", - "`x` points": "`x` puncte", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` puncte", + "": "`x` puncte" + }, "Could not create mix.": "Nu am putut crea această listă de redare.", "Empty playlist": "Lista de redare este goală", "Not a playlist.": "Lista de redare este invalidă.", @@ -301,15 +334,37 @@ "Yiddish": "Yiddish", "Yoruba": "Yoruba", "Zulu": "Zoulou", - "`x` years": "`x` ani", - "`x` months": "`x` luni", - "`x` weeks": "`x` săptămâni", - "`x` days": "`x` zile", - "`x` hours": "`x` ore", - "`x` minutes": "`x` minute", - "`x` seconds": "`x` secunde", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ani", + "": "`x` ani" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` luni", + "": "`x` luni" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` săptămâni", + "": "`x` săptămâni" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` zile", + "": "`x` zile" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ore", + "": "`x` ore" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minute", + "": "`x` minute" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` secunde", + "": "`x` secunde" + }, "Fallback comments: ": "Comentarii alternative: ", "Popular": "Popular", + "Search": "", "Top": "Top", "About": "Despre", "Rating: ": "Evaluare: ", @@ -332,5 +387,32 @@ "Videos": "Videoclipuri", "Playlists": "Liste de redare", "Community": "Comunitate", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Versiunea actuală: " -}
\ No newline at end of file +} diff --git a/locales/ru.json b/locales/ru.json index e69b32e5..a737745e 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` подписчиков", - "`x` videos": "`x` видео", - "`x` playlists": "`x` плейлистов", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` подписчиков", + "": "`x` подписчиков" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` видео", + "": "`x` видео" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` плейлистов", + "": "`x` плейлистов" + }, "LIVE": "ПРЯМОЙ ЭФИР", "Shared `x` ago": "Опубликовано `x` назад", "Unsubscribe": "Отписаться", @@ -68,6 +77,7 @@ "Fallback captions: ": "Дополнительный язык субтитров: ", "Show related videos: ": "Показывать похожие видео? ", "Show annotations by default: ": "Всегда показывать аннотации? ", + "Automatically extend video description: ": "", "Visual preferences": "Настройки сайта", "Player style: ": "Стиль проигрывателя: ", "Dark mode: ": "Тёмное оформление: ", @@ -113,13 +123,22 @@ "Subscription manager": "Менеджер подписок", "Token manager": "Менеджер токенов", "Token": "Токен", - "`x` subscriptions": "`x` подписок", - "`x` tokens": "`x` токенов", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` подписок", + "": "`x` подписок" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` токенов", + "": "`x` токенов" + }, "Import/export": "Импорт и экспорт", "unsubscribe": "отписаться", "revoke": "отозвать", "Subscriptions": "Подписки", - "`x` unseen notifications": "`x` непросмотренных оповещений", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` непросмотренных оповещений", + "": "`x` непросмотренных оповещений" + }, "search": "поиск", "Log out": "Выйти", "Released under the AGPLv3 by Omar Roth.": "Реализовано Омаром Ротом по лицензии AGPLv3.", @@ -138,6 +157,8 @@ "Title": "Заголовок", "Playlist privacy": "Конфиденциальность плейлиста", "Editing playlist `x`": "Редактирование плейлиста `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Смотреть на YouTube", "Hide annotations": "Скрыть аннотации", "Show annotations": "Показать аннотации", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Доступно в регионах: ", "Blacklisted regions: ": "Недоступно в регионах: ", "Shared `x`": "Опубликовано `x`", - "`x` views": "`x` просмотров", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` просмотров", + "": "`x` просмотров" + }, "Premieres in `x`": "Премьера через `x`", "Premieres `x`": "Премьера `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Похоже, у вас отключён JavaScript. Чтобы увидить комментарии, нажмите сюда, но учтите: они могут загружаться немного медленнее.", "View YouTube comments": "Смотреть комментарии с YouTube", "View more comments on Reddit": "Посмотреть больше комментариев на Reddit", - "View `x` comments": "Показать `x` комментариев", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Показать `x` комментариев", + "": "Показать `x` комментариев" + }, "View Reddit comments": "Смотреть комментарии с Reddit", "Hide replies": "Скрыть ответы", "Show replies": "Показать ответы", @@ -180,10 +207,16 @@ "This channel does not exist.": "Такого канала не существует.", "Could not get channel info.": "Не удаётся получить информацию об этом канале.", "Could not fetch comments": "Не удаётся загрузить комментарии", - "View `x` replies": "Показать `x` ответов", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Показать `x` ответов", + "": "Показать `x` ответов" + }, "`x` ago": "`x` назад", "Load more": "Загрузить больше", - "`x` points": "`x` очков", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` очков", + "": "`x` очков" + }, "Could not create mix.": "Не удаётся создать микс.", "Empty playlist": "Плейлист пуст", "Not a playlist.": "Некорректный плейлист.", @@ -301,15 +334,37 @@ "Yiddish": "Идиш", "Yoruba": "Йоруба", "Zulu": "Зулусский", - "`x` years": "`x` лет", - "`x` months": "`x` месяцев", - "`x` weeks": "`x` недель", - "`x` days": "`x` дней", - "`x` hours": "`x` часов", - "`x` minutes": "`x` минут", - "`x` seconds": "`x` секунд", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` лет", + "": "`x` лет" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` месяцев", + "": "`x` месяцев" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` недель", + "": "`x` недель" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` дней", + "": "`x` дней" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` часов", + "": "`x` часов" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` минут", + "": "`x` минут" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` секунд", + "": "`x` секунд" + }, "Fallback comments: ": "Резервные комментарии: ", "Popular": "Популярное", + "Search": "Поиск", "Top": "Топ", "About": "О сайте", "Rating: ": "Рейтинг: ", @@ -332,5 +387,32 @@ "Videos": "Видео", "Playlists": "Плейлисты", "Community": "Сообщество", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Текущая версия: " -}
\ No newline at end of file +} diff --git a/locales/si.json b/locales/si.json index 0dabe03a..c30ad33c 100644 --- a/locales/si.json +++ b/locales/si.json @@ -77,6 +77,7 @@ "Fallback captions: ": "", "Show related videos: ": "", "Show annotations by default: ": "", + "Automatically extend video description: ": "", "Visual preferences": "", "Player style: ": "", "Dark mode: ": "", @@ -156,6 +157,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -411,4 +415,4 @@ "hdr": "", "filter": "", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/sk.json b/locales/sk.json index 0957cb87..f74d66db 100644 --- a/locales/sk.json +++ b/locales/sk.json @@ -71,6 +71,7 @@ "Fallback captions: ": "Náhradné titulky: ", "Show related videos: ": "Zobraziť súvisiace videá: ", "Show annotations by default: ": "Predvolene zobraziť anotácie: ", + "Automatically extend video description: ": "", "Visual preferences": "Vizuálne nastavenia", "Player style: ": "Štýl prehrávača: ", "Dark mode: ": "Tmavý režim: ", @@ -144,6 +145,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -327,6 +330,7 @@ "`x` seconds.": "", "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -350,4 +354,4 @@ "Playlists": "", "Community": "", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/sr.json b/locales/sr.json index dd8fb2fc..7766f32e 100644 --- a/locales/sr.json +++ b/locales/sr.json @@ -77,6 +77,7 @@ "Fallback captions: ": "", "Show related videos: ": "", "Show annotations by default: ": "", + "Automatically extend video description: ": "", "Visual preferences": "", "Player style: ": "", "Dark mode: ": "", @@ -156,6 +157,8 @@ "Title": "", "Playlist privacy": "", "Editing playlist `x`": "", + "Show more": "", + "Show less": "", "Watch on YouTube": "", "Hide annotations": "", "Show annotations": "", @@ -361,6 +364,7 @@ }, "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -411,4 +415,4 @@ "hdr": "", "filter": "", "Current version: ": "" -} +}
\ No newline at end of file diff --git a/locales/sr_Cyrl.json b/locales/sr_Cyrl.json index adb25544..77465501 100644 --- a/locales/sr_Cyrl.json +++ b/locales/sr_Cyrl.json @@ -68,6 +68,7 @@ "Fallback captions: ": "Алтернативни титлови: ", "Show related videos: ": "Прикажи сличне видее: ", "Show annotations by default: ": "Увек приказуј анотације: ", + "Automatically extend video description: ": "", "Visual preferences": "Подешавања изгледа", "Player style: ": "Стил плејера: ", "Dark mode: ": "Тамни режим: ", @@ -138,6 +139,8 @@ "Title": "Наслов", "Playlist privacy": "Видљивост плејлисте", "Editing playlist `x`": "Уређујете плејлисту `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Гледајте на YouTube-у", "Hide annotations": "Сакриј анотације", "Show annotations": "Прикажи анотације", @@ -310,6 +313,7 @@ "`x` seconds.": "", "Fallback comments: ": "", "Popular": "", + "Search": "", "Top": "", "About": "", "Rating: ": "", @@ -333,4 +337,4 @@ "Playlists": "", "Community": "", "Current version: ": "Тренутна верзија: " -} +}
\ No newline at end of file diff --git a/locales/sv-SE.json b/locales/sv-SE.json index fef5316f..5a0ffbd2 100644 --- a/locales/sv-SE.json +++ b/locales/sv-SE.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` prenumeranter", - "`x` videos": "`x` videor", - "`x` playlists": "`x` spellistor", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` prenumeranter", + "": "`x` prenumeranter" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` videor", + "": "`x` videor" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` spellistor", + "": "`x` spellistor" + }, "LIVE": "LIVE", "Shared `x` ago": "Delad `x` sedan", "Unsubscribe": "Avprenumerera", @@ -68,6 +77,7 @@ "Fallback captions: ": "Ersättningsundertexter: ", "Show related videos: ": "Visa relaterade videor? ", "Show annotations by default: ": "Visa länkar-i-videon som förval? ", + "Automatically extend video description: ": "", "Visual preferences": "Visuella inställningar", "Player style: ": "Spelarstil: ", "Dark mode: ": "Mörkt läge: ", @@ -113,13 +123,22 @@ "Subscription manager": "Prenumerationshanterare", "Token manager": "Åtkomst-token-hanterare", "Token": "Åtkomst-token", - "`x` subscriptions": "`x` prenumerationer", - "`x` tokens": "`x` åtkomst-token", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` prenumerationer", + "": "`x` prenumerationer" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` åtkomst-token", + "": "`x` åtkomst-token" + }, "Import/export": "Importera/exportera", "unsubscribe": "avprenumerera", "revoke": "återkalla", "Subscriptions": "Prenumerationer", - "`x` unseen notifications": "`x` osedda aviseringar", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` osedda aviseringar", + "": "`x` osedda aviseringar" + }, "search": "sök", "Log out": "Logga ut", "Released under the AGPLv3 by Omar Roth.": "Utgiven under AGPLv3-licens av Omar Roth.", @@ -138,6 +157,8 @@ "Title": "Titel", "Playlist privacy": "Privatläge på spellista", "Editing playlist `x`": "Redigerer spellistan `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "Titta på YouTube", "Hide annotations": "Dölj länkar-i-video", "Show annotations": "Visa länkar-i-video", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Vitlistade regioner: ", "Blacklisted regions: ": "Svartlistade regioner: ", "Shared `x`": "Delade `x`", - "`x` views": "`x` visningar", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` visningar", + "": "`x` visningar" + }, "Premieres in `x`": "Premiär om `x`", "Premieres `x`": "Premiär av `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Hej. Det ser ut som att du har JavaScript avstängt. Klicka här för att visa kommentarer, ha i åtanke att nedladdning tar längre tid.", "View YouTube comments": "Visa YouTube-kommentarer", "View more comments on Reddit": "Visa flera kommentarer på Reddit", - "View `x` comments": "Visa `x` kommentarer", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Visa `x` kommentarer", + "": "Visa `x` kommentarer" + }, "View Reddit comments": "Visa Reddit-kommentarer", "Hide replies": "Dölj svar", "Show replies": "Visa svar", @@ -180,10 +207,16 @@ "This channel does not exist.": "Denna kanal finns inte.", "Could not get channel info.": "Kunde inte hämta kanalinfo.", "Could not fetch comments": "Kunde inte hämta kommentarer", - "View `x` replies": "Visa `x` svar", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Visa `x` svar", + "": "Visa `x` svar" + }, "`x` ago": "`x` sedan", "Load more": "Ladda fler", - "`x` points": "`x` poäng", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` poäng", + "": "`x` poäng" + }, "Could not create mix.": "Kunde inte skapa mix.", "Empty playlist": "Spellistan är tom", "Not a playlist.": "Ogiltig spellista.", @@ -301,15 +334,37 @@ "Yiddish": "Jiddisch", "Yoruba": "Yoruba", "Zulu": "Zulu", - "`x` years": "`x` år", - "`x` months": "`x` månader", - "`x` weeks": "`x` veckor", - "`x` days": "`x` dagar", - "`x` hours": "`x` timmar", - "`x` minutes": "`x` minuter", - "`x` seconds": "`x` sekunder", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` år", + "": "`x` år" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` månader", + "": "`x` månader" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` veckor", + "": "`x` veckor" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dagar", + "": "`x` dagar" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` timmar", + "": "`x` timmar" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` minuter", + "": "`x` minuter" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` sekunder", + "": "`x` sekunder" + }, "Fallback comments: ": "Fallback-kommentarer: ", "Popular": "Populärt", + "Search": "", "Top": "Topp", "About": "Om", "Rating: ": "Betyg: ", @@ -332,5 +387,32 @@ "Videos": "Videor", "Playlists": "Spellistor", "Community": "Gemenskap", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Nuvarande version: " -} +}
\ No newline at end of file diff --git a/locales/tr.json b/locales/tr.json index 831ecc07..53c2a8c6 100644 --- a/locales/tr.json +++ b/locales/tr.json @@ -1,27 +1,34 @@ { - "`x` subscribers": "`x` abone", - "`x` videos": "`x` video", - "`x` playlists": "`x` çalma listesi", - "`x` subscribers.": "`x` abone.", - "`x` videos.": "`x` video.", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abone.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` abone." + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` video.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` video." + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` oynatma listesi.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` oynatma listesi." + }, "LIVE": "CANLI", "Shared `x` ago": "`x` önce paylaşıldı", "Unsubscribe": "Abonelikten çık", "Subscribe": "Abone ol", "View channel on YouTube": "Kanalı YouTube'da görüntüle", - "View playlist on YouTube": "Çalma listesini YouTube'da görüntüle", + "View playlist on YouTube": "Oynatma listesini YouTube'da görüntüle", "newest": "en yeni", "oldest": "en eski", "popular": "popüler", "last": "son", "Next page": "Sonraki sayfa", "Previous page": "Önceki sayfa", - "Clear watch history?": "İzleme geçmisini temizle?", + "Clear watch history?": "İzleme geçmişi temizlensin mi?", "New password": "Yeni parola", "New passwords must match": "Yeni parolalar eşleşmek zorunda", "Cannot change password for Google accounts": "Google hesapları için parola değiştirilemez", - "Authorize token?": "Jetonu yetkilendir?", - "Authorize token for `x`?": "`x` için jetonu yetkilendir?", + "Authorize token?": "Belirteç yetkilendirilsin mi?", + "Authorize token for `x`?": "`x` için belirteç yetkilendirilsin mi?", "Yes": "Evet", "No": "Hayır", "Import and Export Data": "Verileri İçe ve Dışa Aktar", @@ -35,7 +42,7 @@ "Export subscriptions as OPML": "Abonelikleri OPML olarak dışa aktar", "Export subscriptions as OPML (for NewPipe & FreeTube)": "Abonelikleri OPML olarak dışa aktar (NewPipe ve FreeTube için)", "Export data as JSON": "Verileri JSON olarak dışa aktar", - "Delete account?": "Hesabı sil?", + "Delete account?": "Hesap silinsin mi?", "History": "Geçmiş", "An alternative front-end to YouTube": "YouTube için alternatif bir ön-yüz", "JavaScript license information": "JavaScript lisans bilgileri", @@ -70,6 +77,7 @@ "Fallback captions: ": "Yedek altyazılar: ", "Show related videos: ": "İlgili videoları göster: ", "Show annotations by default: ": "Öntanımlı olarak ek açıklamaları göster: ", + "Automatically extend video description: ": "", "Visual preferences": "Görsel tercihler", "Player style: ": "Oynatıcı biçimi: ", "Dark mode: ": "Karanlık mod: ", @@ -100,7 +108,7 @@ "Import/export data": "Verileri içe/dışa aktar", "Change password": "Parolayı değiştir", "Manage subscriptions": "Abonelikleri yönet", - "Manage tokens": "Jetonları yönet", + "Manage tokens": "Belirteçleri yönet", "Watch history": "İzleme geçmişi", "Delete account": "Hesap silme", "Administrator preferences": "Yönetici tercihleri", @@ -113,55 +121,68 @@ "Report statistics: ": "Rapor istatistikleri: ", "Save preferences": "Tercihleri kaydet", "Subscription manager": "Abonelik yöneticisi", - "`x` subscriptions": "`x` abonelik", - "`x` tokens": "`x` belirteç", - "Token manager": "Jeton yöneticisi", - "Token": "Jeton", - "`x` subscriptions.": "`x` abonelik.", - "`x` tokens.": "`x` jeton.", - "`x` unseen notifications": "`x` okunmamış bildirim", + "Token manager": "Belirteç yöneticisi", + "Token": "Belirteç", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` abonelik.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` abonelik." + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` belirteç.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` belirteç." + }, "Import/export": "İçe/dışa aktar", "unsubscribe": "abonelikten çık", "revoke": "geri al", "Subscriptions": "Abonelikler", - "`x` unseen notifications.": "`x` okunmamış bildirim.", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` okunmamış bildirim.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` okunmamış bildirim." + }, "search": "ara", "Log out": "Çıkış yap", - "Public": "Genel", "Released under the AGPLv3 by Omar Roth.": "Omar Roth tarafından AGPLv3 altında yayımlandı.", - "Private": "Özel", - "View all playlists": "Tüm çalma listelerini görüntüle", - "Updated `x` ago": "`x` önce güncellendi", - "Delete playlist `x`?": "`x` çalma listesini sil?", - "Delete playlist": "Çalma listesini sil", - "Create playlist": "Çalma listesi oluştur", - "Title": "Başlık", - "Playlist privacy": "Çalma listesi gizliliği", - "Editing playlist `x`": "`x` çalma listesi düzenleniyor", "Source available here.": "Kaynak kodları burada bulunabilir.", "View JavaScript license information.": "JavaScript lisans bilgilerini görüntüle.", "View privacy policy.": "Gizlilik politikasını görüntüle.", "Trending": "Trendler", + "Public": "Genel", "Unlisted": "Listelenmemiş", + "Private": "Özel", + "View all playlists": "Tüm oynatma listelerini görüntüle", + "Updated `x` ago": "`x` önce güncellendi", + "Delete playlist `x`?": "`x` oynatma listesi silinsin mi?", + "Delete playlist": "Oynatma listesini sil", + "Create playlist": "Oynatma listesi oluştur", + "Title": "Başlık", + "Playlist privacy": "Oynatma listesi gizliliği", + "Editing playlist `x`": "`x` oynatma listesi düzenleniyor", + "Show more": "", + "Show less": "", "Watch on YouTube": "YouTube'da izle", "Hide annotations": "Ek açıklamaları gizle", "Show annotations": "Ek açıklamaları göster", "Genre: ": "Tür: ", "License: ": "Lisans: ", - "Family friendly? ": "Aile için uygun? ", - "`x` views": "`x` görüntüleme", + "Family friendly? ": "Aile için uygun mu? ", "Wilson score: ": "Wilson puanı: ", "Engagement: ": "İzleyenlerin oy verme oranı: ", "Whitelisted regions: ": "Beyaz listeye alınan bölgeler: ", "Blacklisted regions: ": "Kara listeye alınan bölgeler: ", "Shared `x`": "`x` paylaşıldı", - "`x` views.": "`x` izlenme.", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` görüntüleme.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` görüntüleme." + }, "Premieres in `x`": "`x`içinde ilk gösterim", "Premieres `x`": "`x` ilk gösterim", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Merhaba! JavaScript'i kapatmış gibi görünüyorsun. Yorumları görüntülemek için buraya tıkla, yüklenmelerinin biraz uzun sürebileceğini unutma.", "View YouTube comments": "YouTube yorumlarını görüntüle", "View more comments on Reddit": "Reddit'te daha fazla yorum görüntüle", - "View `x` comments": "`x` yorum görüntüle", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` yorumu görüntüle.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` yorumu görüntüle." + }, "View Reddit comments": "Reddit yorumlarını görüntüle", "Hide replies": "Cevapları gizle", "Show replies": "Cevapları göster", @@ -180,29 +201,33 @@ "Password cannot be empty": "Parola boş olamaz", "Password cannot be longer than 55 characters": "Parola 55 karakterden uzun olamaz", "Please log in": "Lütfen oturum açın", - "View `x` replies": "`x` yanıtı görüntüle", "Invidious Private Feed for `x`": "`x` için İnvidious Özel Akışı", "channel:`x`": "kanal:`x`", - "`x` points": "`x` puan", "Deleted or invalid channel": "Silinmiş ya da geçersiz kanal", "This channel does not exist.": "Bu kanal mevcut değil.", "Could not get channel info.": "Kanal bilgisi alınamadı.", "Could not fetch comments": "Yorumlar alınamadı", - "View `x` replies.": "`x` yanıtı görüntüle.", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` yanıtı görüntüle.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` yanıtı görüntüle." + }, "`x` ago": "`x` önce", "Load more": "Daha fazla yükle", - "`x` points.": "`x` puan.", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` puan.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` puan." + }, "Could not create mix.": "Mix oluşturulamadı.", "Empty playlist": "Boş oynatma listesi", "Not a playlist.": "Oynatma listesi değil.", "Playlist does not exist.": "Oynatma listesi mevcut değil.", "Could not pull trending pages.": "Trend sayfaları alınamıyor.", "Hidden field \"challenge\" is a required field": "Gizli alan \"challenge\" zorunlu bir alandır", - "Hidden field \"token\" is a required field": "Gizli alan \"jeton\" zorunlu bir alandır", + "Hidden field \"token\" is a required field": "\"belirteç\" gizli alanı zorunlu bir alandır", "Erroneous challenge": "Hatalı challenge", - "Erroneous token": "Hatalı jeton", + "Erroneous token": "Hatalı belirteç", "No such user": "Böyle bir kullanıcı yok", - "Token is expired, please try again": "Jetonun süresi doldu, lütfen tekrar deneyin", + "Token is expired, please try again": "Belirtecin süresi doldu, lütfen tekrar deneyin", "English": "İngilizce", "English (auto-generated)": "İngilizce (otomatik oluşturuldu)", "Afrikaans": "Afrikanca", @@ -309,15 +334,37 @@ "Yiddish": "Yiddiş", "Yoruba": "Yoruba dili", "Zulu": "Zuluca", - "`x` years": "`x` yıl", - "`x` months": "`x` ay", - "`x` weeks": "`x` hafta", - "`x` days": "`x` gün", - "`x` hours": "`x` saat", - "`x` minutes": "`x` dakika", - "`x` seconds": "`x` saniye", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` yıl.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` yıl." + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ay.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` ay." + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` hafta.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` hafta." + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` gün.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` gün." + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` saat.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` saat." + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` dakika.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` dakika." + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` saniye.([^.,0-9]|^)1([^.,0-9]|$)", + "": "`x` saniye." + }, "Fallback comments: ": "Yedek yorumlar: ", "Popular": "Popüler", + "Search": "Ara", "Top": "Enler", "About": "Hakkında", "Rating: ": "Değerlendirme: ", @@ -340,5 +387,32 @@ "Videos": "Videolar", "Playlists": "Oynatma listeleri", "Community": "Topluluk", + "relevance": "ilgi", + "rating": "değerlendirme", + "date": "tarih", + "views": "görüntüleme", + "content_type": "içerik_türü", + "duration": "süre", + "features": "özellikler", + "sort": "sırala", + "hour": "saat", + "today": "bugün", + "week": "hafta", + "month": "ay", + "year": "yıl", + "video": "video", + "channel": "kanal", + "playlist": "oynatma listesi", + "movie": "film", + "show": "gösteri", + "hd": "HD", + "subtitles": "alt yazılar", + "creative_commons": "Creative Commons", + "3d": "3B", + "live": "canlı", + "4k": "4K", + "location": "konum", + "hdr": "HDR", + "filter": "filtrele", "Current version: ": "Şu anki sürüm: " -} +}
\ No newline at end of file diff --git a/locales/uk.json b/locales/uk.json index b04e0b2d..0795612e 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` підписників", - "`x` videos": "`x` відео", - "`x` playlists": "списки відтворення \"x\"", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` підписників", + "": "`x` підписників" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` відео", + "": "`x` відео" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "списки відтворення `x`", + "": "списки відтворення `x`" + }, "LIVE": "ПРЯМИЙ ЕФІР", "Shared `x` ago": "Розміщено `x` назад", "Unsubscribe": "Відписатися", @@ -68,6 +77,7 @@ "Fallback captions: ": "Запасна мова субтитрів: ", "Show related videos: ": "Показувати схожі відео? ", "Show annotations by default: ": "Завжди показувати анотації? ", + "Automatically extend video description: ": "", "Visual preferences": "Налаштування сайту", "Player style: ": "Стиль програвача: ", "Dark mode: ": "Темне оформлення: ", @@ -113,13 +123,22 @@ "Subscription manager": "Менеджер підписок", "Token manager": "Менеджер токенів", "Token": "Токен", - "`x` subscriptions": "`x` підписка / підписок / підписки", - "`x` tokens": "`x` токенів", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` підписка / підписок / підписки", + "": "`x` підписка / підписок / підписки" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` токенів", + "": "`x` токенів" + }, "Import/export": "Імпорт і експорт", "unsubscribe": "відписатися", "revoke": "скасувати", "Subscriptions": "Підписки", - "`x` unseen notifications": "`x` непереглянуте сповіщення / непереглянутих сповіщень / непереглянутих сповіщення", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` непереглянуте сповіщення / непереглянутих сповіщень / непереглянутих сповіщення", + "": "`x` непереглянуте сповіщення / непереглянутих сповіщень / непереглянутих сповіщення" + }, "search": "пошук", "Log out": "Вийти", "Released under the AGPLv3 by Omar Roth.": "Реалізовано Омаром Ротом за ліцензією AGPLv3.", @@ -138,6 +157,8 @@ "Title": "Заголовок", "Playlist privacy": "Конфіденційність списку відтворення", "Editing playlist `x`": "Редагування списку відтворення \"x\"", + "Show more": "", + "Show less": "", "Watch on YouTube": "Дивитися на YouTube", "Hide annotations": "Приховати анотації", "Show annotations": "Показати анотації", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "Доступно у регіонах: ", "Blacklisted regions: ": "Недоступно у регіонах: ", "Shared `x`": "Розміщено `x`", - "`x` views": "`x` переглядів", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` переглядів", + "": "`x` переглядів" + }, "Premieres in `x`": "Прем’єра через `x`", "Premieres `x`": "Прем’єра `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "Схоже, у вас відключений JavaScript. Щоб побачити коментарі, натисніть сюда, але майте на увазі, що вони можуть завантажуватися трохи довше.", "View YouTube comments": "Переглянути коментарі з YouTube", "View more comments on Reddit": "Переглянути більше коментарів на Reddit", - "View `x` comments": "Переглянути `x` коментар / коментарів / коментаря", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Переглянути `x` коментар / коментарів / коментаря", + "": "Переглянути `x` коментар / коментарів / коментаря" + }, "View Reddit comments": "Переглянути коментарі з Reddit", "Hide replies": "Сховати відповіді", "Show replies": "Показати відповіді", @@ -180,10 +207,16 @@ "This channel does not exist.": "Такого каналу не існує.", "Could not get channel info.": "Не вдається отримати інформацію щодо цього каналу.", "Could not fetch comments": "Не вдається завантажити коментарі", - "View `x` replies": "Переглянути `x` відповідь / відповідей / відповіді", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "Переглянути `x` відповідь / відповідей / відповіді", + "": "Переглянути `x` відповідь / відповідей / відповіді" + }, "`x` ago": "`x` тому", "Load more": "Завантажити більше", - "`x` points": "`x` очко / очок / очка", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` очко / очок / очка", + "": "`x` очко / очок / очка" + }, "Could not create mix.": "Не вдається створити мікс.", "Empty playlist": "Плейлист порожній", "Not a playlist.": "Недійсний плейлист.", @@ -301,15 +334,37 @@ "Yiddish": "Їдиш", "Yoruba": "Йоруба", "Zulu": "Зулу", - "`x` years": "`x` років", - "`x` months": "`x` місяців", - "`x` weeks": "`x` тижнів", - "`x` days": "`x` днів", - "`x` hours": "`x` годин", - "`x` minutes": "`x` хвилин", - "`x` seconds": "`x` секунд", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` років", + "": "`x` років" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` місяців", + "": "`x` місяців" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` тижнів", + "": "`x` тижнів" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` днів", + "": "`x` днів" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` годин", + "": "`x` годин" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` хвилин", + "": "`x` хвилин" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` секунд", + "": "`x` секунд" + }, "Fallback comments: ": "Резервні коментарі: ", "Popular": "Популярне", + "Search": "", "Top": "Топ", "About": "Про сайт", "Rating: ": "Рейтинг: ", @@ -332,5 +387,32 @@ "Videos": "Відео", "Playlists": "Плейлисти", "Community": "Спільнота", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "Поточна версія: " -}
\ No newline at end of file +} diff --git a/locales/zh-CN.json b/locales/zh-CN.json index d7f12975..8bd49845 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -1,7 +1,16 @@ { - "`x` subscribers": "`x` 位订阅者", - "`x` videos": "`x` 个视频", - "`x` playlists": "`x` 个播放列表", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 位订阅者", + "": "`x` 位订阅者" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 个视频", + "": "`x` 个视频" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 个播放列表", + "": "`x` 个播放列表" + }, "LIVE": "直播", "Shared `x` ago": "`x` 前分享", "Unsubscribe": "取消订阅", @@ -68,6 +77,7 @@ "Fallback captions: ": "后备字幕语言: ", "Show related videos: ": "是否显示相关视频: ", "Show annotations by default: ": "是否默认显示视频注释: ", + "Automatically extend video description: ": "", "Visual preferences": "视觉选项", "Player style: ": "播放器样式: ", "Dark mode: ": "深色模式: ", @@ -113,13 +123,22 @@ "Subscription manager": "订阅管理器", "Token manager": "令牌管理器", "Token": "令牌", - "`x` subscriptions": "`x` 个订阅", - "`x` tokens": "`x` 个令牌", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 个订阅", + "": "`x` 个订阅" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 个令牌", + "": "`x` 个令牌" + }, "Import/export": "导入/导出", "unsubscribe": "取消订阅", "revoke": "吊销", "Subscriptions": "订阅", - "`x` unseen notifications": "`x` 条未读通知", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 条未读通知", + "": "`x` 条未读通知" + }, "search": "搜索", "Log out": "登出", "Released under the AGPLv3 by Omar Roth.": "由 Omar Roth 开发,以 AGPLv3 授权。", @@ -138,6 +157,8 @@ "Title": "标题", "Playlist privacy": "播放列表隐私设置", "Editing playlist `x`": "正在编辑播放列表 `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "在 YouTube 观看", "Hide annotations": "隐藏注释", "Show annotations": "显示注释", @@ -149,13 +170,19 @@ "Whitelisted regions: ": "白名单地区: ", "Blacklisted regions: ": "黑名单地区: ", "Shared `x`": "`x`发布", - "`x` views": "`x` 播放", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 播放", + "": "`x` 播放" + }, "Premieres in `x`": "首映于 `x` 后", "Premieres `x`": "首映于 `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "你好!看起来你关闭了 JavaScript。点击这里阅读评论。注意它们加载的时间可能会稍长。", "View YouTube comments": "查看 YouTube 评论", "View more comments on Reddit": "在 Reddit 查看更多评论", - "View `x` comments": "查看 `x` 条评论", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "查看 `x` 条评论", + "": "查看 `x` 条评论" + }, "View Reddit comments": "查看 Reddit 评论", "Hide replies": "隐藏回复", "Show replies": "显示回复", @@ -180,10 +207,16 @@ "This channel does not exist.": "频道不存在。", "Could not get channel info.": "无法获取频道信息。", "Could not fetch comments": "无法获取评论", - "View `x` replies": "查看 `x` 条回复", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "查看 `x` 条回复", + "": "查看 `x` 条回复" + }, "`x` ago": "`x` 前", "Load more": "加载更多", - "`x` points": "`x` 分", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 分", + "": "`x` 分" + }, "Could not create mix.": "无法创建合集。", "Empty playlist": "空播放列表", "Not a playlist.": "非播放列表。", @@ -301,15 +334,37 @@ "Yiddish": "意第绪语", "Yoruba": "约鲁巴语", "Zulu": "祖鲁语", - "`x` years": "`x` 年", - "`x` months": "`x` 月", - "`x` weeks": "`x` 周", - "`x` days": "`x` 天", - "`x` hours": "`x` 小时", - "`x` minutes": "`x` 分钟", - "`x` seconds": "`x` 秒", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 年", + "": "`x` 年" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 月", + "": "`x` 月" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 周", + "": "`x` 周" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 天", + "": "`x` 天" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 小时", + "": "`x` 小时" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 分钟", + "": "`x` 分钟" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 秒", + "": "`x` 秒" + }, "Fallback comments: ": "后备评论: ", "Popular": "热门频道", + "Search": "", "Top": "热门视频", "About": "关于", "Rating: ": "评分: ", @@ -332,5 +387,32 @@ "Videos": "视频", "Playlists": "播放列表", "Community": "社区", + "relevance": "", + "rating": "", + "date": "", + "views": "", + "content_type": "", + "duration": "", + "features": "", + "sort": "", + "hour": "", + "today": "", + "week": "", + "month": "", + "year": "", + "video": "", + "channel": "", + "playlist": "", + "movie": "", + "show": "", + "hd": "", + "subtitles": "", + "creative_commons": "", + "3d": "", + "live": "", + "4k": "", + "location": "", + "hdr": "", + "filter": "", "Current version: ": "当前版本: " -} +}
\ No newline at end of file diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 6b40db55..044647be 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -1,9 +1,16 @@ { - "`x` subscribers.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個訂閱者", - "`x` subscribers.": "`x` 個訂閱者", - "`x` videos.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 部影片", - "`x` videos.": "`x` 部影片", - "`x` playlists": "`x` 播放清單", + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個訂閱者", + "": "`x` 個訂閱者" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 部影片", + "": "`x` 部影片" + }, + "`x` playlists": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 播放清單", + "": "`x` 播放清單。" + }, "LIVE": "直播", "Shared `x` ago": "`x` 前分享", "Unsubscribe": "取消訂閱", @@ -70,6 +77,7 @@ "Fallback captions: ": "汰退字幕: ", "Show related videos: ": "顯示相關的影片: ", "Show annotations by default: ": "預設顯示註釋: ", + "Automatically extend video description: ": "", "Visual preferences": "視覺偏好設定", "Player style: ": "播放器樣式: ", "Dark mode: ": "深色模式: ", @@ -115,16 +123,22 @@ "Subscription manager": "訂閱管理員", "Token manager": "Token 管理員", "Token": "Token", - "`x` subscriptions.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個訂閱", - "`x` subscriptions.": "`x` 個訂閱", - "`x` tokens.([^.,0-9]|^)1([^.,0-9]|$)": "`x` token", - "`x` tokens.": "`x` 個存取金鑰", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個訂閱", + "": "`x` 個訂閱" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` token", + "": "`x` 個存取金鑰" + }, "Import/export": "匯入/匯出", "unsubscribe": "取消訂閱", "revoke": "撤銷", "Subscriptions": "訂閱", - "`x` unseen notifications.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個未讀的通知", - "`x` unseen notifications.": "`x` 個未讀的通知", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個未讀的通知", + "": "`x` 個未讀的通知" + }, "search": "搜尋", "Log out": "登出", "Released under the AGPLv3 by Omar Roth.": "Omar Roth 以 AGPLv3 釋出。", @@ -143,6 +157,8 @@ "Title": "標題", "Playlist privacy": "播放清單隱私", "Editing playlist `x`": "已編輯播放清單 `x`", + "Show more": "", + "Show less": "", "Watch on YouTube": "在 YouTube 上觀看", "Hide annotations": "隱藏註釋", "Show annotations": "顯示註釋", @@ -154,14 +170,19 @@ "Whitelisted regions: ": "白名單區域: ", "Blacklisted regions: ": "黑名單區域: ", "Shared `x`": "`x` 發佈", - "`x` views.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 次檢視", - "`x` views.": "`x` 次檢視", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 次檢視", + "": "`x` 次檢視" + }, "Premieres in `x`": "首映於 `x`", "Premieres `x`": "首映於 `x`", "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "嗨!看來您將 JavaScript 關閉了。點擊這裡以檢視留言,請注意,它們可能需要比較長的時間載入。", "View YouTube comments": "檢視 YouTube 留言", "View more comments on Reddit": "在 Reddit 上檢視更多留言", - "View `x` comments": "檢視 `x` 則留言", + "View `x` comments": { + "([^.,0-9]|^)1([^.,0-9]|$)": "檢視 `x` 則留言", + "": "檢視 `x` 則留言。" + }, "View Reddit comments": "檢視 Reddit 留言", "Hide replies": "隱藏回覆", "Show replies": "顯示回覆", @@ -186,12 +207,16 @@ "This channel does not exist.": "此頻道不存在。", "Could not get channel info.": "無法取得頻道資訊。", "Could not fetch comments": "無法擷取留言", - "View `x` replies.([^.,0-9]|^)1([^.,0-9]|$)": "檢視 `x` 則回覆", - "View `x` replies.": "檢視 `x` 則回覆", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "檢視 `x` 則回覆", + "": "檢視 `x` 則回覆" + }, "`x` ago": "`x` 以前", "Load more": "載入更多", - "`x` points.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 點", - "`x` points.": "`x` 點", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 點", + "": "`x` 點" + }, "Could not create mix.": "無法建立混合。", "Empty playlist": "空的播放清單", "Not a playlist.": "不是播放清單。", @@ -309,22 +334,37 @@ "Yiddish": "意第緒語", "Yoruba": "約魯巴語", "Zulu": "祖魯語", - "`x` years.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 年", - "`x` years.": "`x` 年", - "`x` months.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 月", - "`x` months.": "`x` 月", - "`x` weeks.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 週", - "`x` weeks.": "`x` 週", - "`x` days.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 天", - "`x` days.": "`x` 天", - "`x` hours.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 小時", - "`x` hours.": "`x` 小時", - "`x` minutes.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 天", - "`x` minutes.": "`x` 分鐘", - "`x` seconds.([^.,0-9]|^)1([^.,0-9]|$)": "`x` 秒", - "`x` seconds.": "`x` 秒", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 年", + "": "`x` 年" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 月", + "": "`x` 月" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 週", + "": "`x` 週" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 天", + "": "`x` 天" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 小時", + "": "`x` 小時" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 天", + "": "`x` 分鐘" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 秒", + "": "`x` 秒" + }, "Fallback comments: ": "汰退留言: ", "Popular": "熱門頻道", + "Search": "搜尋", "Top": "熱門影片", "About": "關於", "Rating: ": "評分: ", @@ -347,5 +387,32 @@ "Videos": "影片", "Playlists": "播放清單", "Community": "社群", + "relevance": "關聯", + "rating": "評分", + "date": "日期", + "views": "檢視", + "content_type": "內容類型", + "duration": "時長", + "features": "特色", + "sort": "排序", + "hour": "小時", + "today": "今天", + "week": "週", + "month": "月", + "year": "年", + "video": "影片", + "channel": "頻道", + "playlist": "播放清單", + "movie": "電影", + "show": "秀", + "hd": "HD", + "subtitles": "字幕", + "creative_commons": "創用 CC", + "3d": "3D", + "live": "直播", + "4k": "4K", + "location": "位置", + "hdr": "HDR", + "filter": "篩選條件", "Current version: ": "目前版本: " -} +}
\ No newline at end of file diff --git a/spec/locales_spec.cr b/spec/locales_spec.cr new file mode 100644 index 00000000..6a083ee7 --- /dev/null +++ b/spec/locales_spec.cr @@ -0,0 +1,29 @@ +require "spec" +require "json" +require "../src/invidious/helpers/i18n.cr" + +describe "Locales" do + describe "#consistency" do + locales_list = LOCALES.keys.select! { |key| key != "en-US" } + + locales_list.each do |locale| + puts "\nChecking locale #{locale}" + failed = false + + # Use "en-US" as the reference + LOCALES["en-US"].each_key do |ref_key| + # Catch exception in order to give a hint on what caused + # the failure, and test one locale completely before failing + begin + LOCALES[locale].has_key?(ref_key).should be_true + rescue + failed = true + puts " Missing key in locale #{locale}: '#{ref_key}'" + end + end + + # Throw failed assertion exception in here + failed.should be_false + end + end +end diff --git a/src/invidious.cr b/src/invidious.cr index 88b9ad85..ae20e13e 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -65,37 +65,7 @@ SOFTWARE = { "branch" => "#{CURRENT_BRANCH}", } -LOCALES = { - "ar" => load_locale("ar"), - "de" => load_locale("de"), - "el" => load_locale("el"), - "en-US" => load_locale("en-US"), - "eo" => load_locale("eo"), - "es" => load_locale("es"), - "fa" => load_locale("fa"), - "fi" => load_locale("fi"), - "fr" => load_locale("fr"), - "he" => load_locale("he"), - "hr" => load_locale("hr"), - "id" => load_locale("id"), - "is" => load_locale("is"), - "it" => load_locale("it"), - "ja" => load_locale("ja"), - "nb-NO" => load_locale("nb-NO"), - "nl" => load_locale("nl"), - "pl" => load_locale("pl"), - "pt-BR" => load_locale("pt-BR"), - "pt-PT" => load_locale("pt-PT"), - "ro" => load_locale("ro"), - "ru" => load_locale("ru"), - "sv" => load_locale("sv-SE"), - "tr" => load_locale("tr"), - "uk" => load_locale("uk"), - "zh-CN" => load_locale("zh-CN"), - "zh-TW" => load_locale("zh-TW"), -} - -YT_POOL = QUICPool.new(YT_URL, capacity: CONFIG.pool_size, timeout: 2.0) +YT_POOL = YoutubeConnectionPool.new(YT_URL, capacity: CONFIG.pool_size, timeout: 2.0, use_quic: CONFIG.use_quic) # CLI Kemal.config.extra_options do |parser| @@ -308,9 +278,17 @@ end Invidious::Routing.get "/", Invidious::Routes::Misc, :home Invidious::Routing.get "/privacy", Invidious::Routes::Misc, :privacy Invidious::Routing.get "/licenses", Invidious::Routes::Misc, :licenses -Invidious::Routing.get "/watch", Invidious::Routes::Watch + +Invidious::Routing.get "/watch", Invidious::Routes::Watch, :handle +Invidious::Routing.get "/watch/:id", Invidious::Routes::Watch, :redirect +Invidious::Routing.get "/shorts/:id", Invidious::Routes::Watch, :redirect +Invidious::Routing.get "/w/:id", Invidious::Routes::Watch, :redirect +Invidious::Routing.get "/v/:id", Invidious::Routes::Watch, :redirect +Invidious::Routing.get "/e/:id", Invidious::Routes::Watch, :redirect + Invidious::Routing.get "/embed/", Invidious::Routes::Embed, :redirect Invidious::Routing.get "/embed/:id", Invidious::Routes::Embed, :show + Invidious::Routing.get "/view_all_playlists", Invidious::Routes::Playlists, :index Invidious::Routing.get "/create_playlist", Invidious::Routes::Playlists, :new Invidious::Routing.post "/create_playlist", Invidious::Routes::Playlists, :create @@ -323,12 +301,15 @@ Invidious::Routing.get "/add_playlist_items", Invidious::Routes::Playlists, :add Invidious::Routing.post "/playlist_ajax", Invidious::Routes::Playlists, :playlist_ajax Invidious::Routing.get "/playlist", Invidious::Routes::Playlists, :show Invidious::Routing.get "/mix", Invidious::Routes::Playlists, :mix + Invidious::Routing.get "/opensearch.xml", Invidious::Routes::Search, :opensearch Invidious::Routing.get "/results", Invidious::Routes::Search, :results Invidious::Routing.get "/search", Invidious::Routes::Search, :search + Invidious::Routing.get "/login", Invidious::Routes::Login, :login_page Invidious::Routing.post "/login", Invidious::Routes::Login, :login Invidious::Routing.post "/signout", Invidious::Routes::Login, :signout + Invidious::Routing.get "/preferences", Invidious::Routes::PreferencesRoute, :show Invidious::Routing.post "/preferences", Invidious::Routes::PreferencesRoute, :update Invidious::Routing.get "/toggle_theme", Invidious::Routes::PreferencesRoute, :toggle_theme diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr index f6b6acd1..e1d877b7 100644 --- a/src/invidious/helpers/helpers.cr +++ b/src/invidious/helpers/helpers.cr @@ -50,6 +50,7 @@ struct ConfigPreferences property thin_mode : Bool = false property unseen_only : Bool = false property video_loop : Bool = false + property extend_desc : Bool = false property volume : Int32 = 100 def to_tuple @@ -98,6 +99,7 @@ class Config property port : Int32 = 3000 # Port to listen for connections (overrided by command line argument) property host_binding : String = "0.0.0.0" # Host to bind (overrided by command line argument) property pool_size : Int32 = 100 # Pool size for HTTP requests to youtube.com and ytimg.com (each domain has a separate pool of `pool_size`) + property use_quic : Bool = true # Use quic transport for youtube api @[YAML::Field(converter: Preferences::StringToCookies)] property cookies : HTTP::Cookies = HTTP::Cookies.new # Saved cookies in "name1=value1; name2=value2..." format @@ -678,7 +680,7 @@ def create_notification_stream(env, topics, connection_channel) end def extract_initial_data(body) : Hash(String, JSON::Any) - return JSON.parse(body.match(/(window\["ytInitialData"\]|var\s*ytInitialData)\s*=\s*(?<info>\{.*?\});/mx).try &.["info"] || "{}").as_h + return JSON.parse(body.match(/(window\["ytInitialData"\]|var\s*ytInitialData)\s*=\s*(?<info>{.*?});<\/script>/mx).try &.["info"] || "{}").as_h end def proxy_file(response, env) diff --git a/src/invidious/helpers/i18n.cr b/src/invidious/helpers/i18n.cr index 0faa2e32..45a3f1ae 100644 --- a/src/invidious/helpers/i18n.cr +++ b/src/invidious/helpers/i18n.cr @@ -1,3 +1,33 @@ +LOCALES = { + "ar" => load_locale("ar"), + "de" => load_locale("de"), + "el" => load_locale("el"), + "en-US" => load_locale("en-US"), + "eo" => load_locale("eo"), + "es" => load_locale("es"), + "fa" => load_locale("fa"), + "fi" => load_locale("fi"), + "fr" => load_locale("fr"), + "he" => load_locale("he"), + "hr" => load_locale("hr"), + "id" => load_locale("id"), + "is" => load_locale("is"), + "it" => load_locale("it"), + "ja" => load_locale("ja"), + "nb-NO" => load_locale("nb-NO"), + "nl" => load_locale("nl"), + "pl" => load_locale("pl"), + "pt-BR" => load_locale("pt-BR"), + "pt-PT" => load_locale("pt-PT"), + "ro" => load_locale("ro"), + "ru" => load_locale("ru"), + "sv" => load_locale("sv-SE"), + "tr" => load_locale("tr"), + "uk" => load_locale("uk"), + "zh-CN" => load_locale("zh-CN"), + "zh-TW" => load_locale("zh-TW"), +} + def load_locale(name) return JSON.parse(File.read("locales/#{name}.json")).as_h end diff --git a/src/invidious/helpers/macros.cr b/src/invidious/helpers/macros.cr index 8b74bc86..5d426a8b 100644 --- a/src/invidious/helpers/macros.cr +++ b/src/invidious/helpers/macros.cr @@ -48,7 +48,8 @@ module JSON::Serializable end end -macro templated(filename, template = "template") +macro templated(filename, template = "template", navbar_search = true) + navbar_search = {{navbar_search}} render "src/invidious/views/#{{{filename}}}.ecr", "src/invidious/views/#{{{template}}}.ecr" end diff --git a/src/invidious/helpers/utils.cr b/src/invidious/helpers/utils.cr index 67f496df..10d4e6b6 100644 --- a/src/invidious/helpers/utils.cr +++ b/src/invidious/helpers/utils.cr @@ -16,15 +16,15 @@ def add_yt_headers(request) end end -struct QUICPool +struct YoutubeConnectionPool property! url : URI property! capacity : Int32 property! timeout : Float64 - property pool : ConnectionPool(QUIC::Client) + property pool : ConnectionPool(QUIC::Client | HTTP::Client) - def initialize(url : URI, @capacity = 5, @timeout = 5.0) + def initialize(url : URI, @capacity = 5, @timeout = 5.0, use_quic = true) @url = url - @pool = build_pool + @pool = build_pool(use_quic) end def client(region = nil, &block) @@ -50,9 +50,13 @@ struct QUICPool response end - private def build_pool - ConnectionPool(QUIC::Client).new(capacity: capacity, timeout: timeout) do - conn = QUIC::Client.new(url) + private def build_pool(use_quic) + ConnectionPool(QUIC::Client | HTTP::Client).new(capacity: capacity, timeout: timeout) do + if use_quic + conn = QUIC::Client.new(url) + else + conn = HTTP::Client.new(url) + end conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::INET conn.family = Socket::Family::INET if conn.family == Socket::Family::UNSPEC conn.before_request { |r| add_yt_headers(r) } if url.host == "www.youtube.com" diff --git a/src/invidious/jobs/statistics_refresh_job.cr b/src/invidious/jobs/statistics_refresh_job.cr index aa46fb0e..6569c0a1 100644 --- a/src/invidious/jobs/statistics_refresh_job.cr +++ b/src/invidious/jobs/statistics_refresh_job.cr @@ -42,7 +42,7 @@ class Invidious::Jobs::StatisticsRefreshJob < Invidious::Jobs::BaseJob "version" => @software_config["version"], "branch" => @software_config["branch"], } - STATISTICS["openRegistration"] = CONFIG.registration_enabled + STATISTICS["openRegistrations"] = CONFIG.registration_enabled end private def refresh_stats diff --git a/src/invidious/playlists.cr b/src/invidious/playlists.cr index 71f6a9b8..073a9986 100644 --- a/src/invidious/playlists.cr +++ b/src/invidious/playlists.cr @@ -437,7 +437,8 @@ end def get_playlist_videos(db, playlist, offset, locale = nil, continuation = nil) # Show empy playlist if requested page is out of range - if offset >= playlist.video_count + # (e.g, when a new playlist has been created, offset will be negative) + if offset >= playlist.video_count || offset < 0 return [] of PlaylistVideo end diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index bc009633..d32ba892 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -22,7 +22,7 @@ class Invidious::Routes::Misc < Invidious::Routes::BaseRoute env.redirect "/feed/popular" end else - templated "empty" + templated "search_homepage", navbar_search: false end end diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr index 8169e1ed..d0338882 100644 --- a/src/invidious/routes/watch.cr +++ b/src/invidious/routes/watch.cr @@ -187,4 +187,13 @@ class Invidious::Routes::Watch < Invidious::Routes::BaseRoute templated "watch" end + + def redirect(env) + url = "/watch?v=#{env.params.url["id"]}" + if env.params.query.size > 0 + url += "&#{env.params.query}" + end + + return env.redirect url + end end diff --git a/src/invidious/users.cr b/src/invidious/users.cr index 8fef64a0..e4ebb4d1 100644 --- a/src/invidious/users.cr +++ b/src/invidious/users.cr @@ -78,6 +78,7 @@ struct Preferences property thin_mode : Bool = CONFIG.default_user_preferences.thin_mode property unseen_only : Bool = CONFIG.default_user_preferences.unseen_only property video_loop : Bool = CONFIG.default_user_preferences.video_loop + property extend_desc : Bool = CONFIG.default_user_preferences.extend_desc property volume : Int32 = CONFIG.default_user_preferences.volume module BoolToString diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index e6d4c764..bf281507 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -242,6 +242,7 @@ struct VideoPreferences property speed : Float32 | Float64 property video_end : Float64 | Int32 property video_loop : Bool + property extend_desc : Bool property video_start : Float64 | Int32 property volume : Int32 end @@ -818,7 +819,7 @@ end def extract_polymer_config(body) params = {} of String => JSON::Any - player_response = body.match(/(window\["ytInitialPlayerResponse"\]|var\sytInitialPlayerResponse)\s*=\s*(?<info>{.*?});/m) + player_response = body.match(/(window\["ytInitialPlayerResponse"\]|var\sytInitialPlayerResponse)\s*=\s*(?<info>{.*?});\s*var\s*meta/m) .try { |r| JSON.parse(r["info"]).as_h } if body.includes?("To continue with your YouTube experience, please fill out the form below.") || @@ -1050,6 +1051,7 @@ def process_video_params(query, preferences) related_videos = query["related_videos"]?.try { |q| (q == "true" || q == "1").to_unsafe } speed = query["speed"]?.try &.rchop("x").to_f? video_loop = query["loop"]?.try { |q| (q == "true" || q == "1").to_unsafe } + extend_desc = query["extend_desc"]?.try { |q| (q == "true" || q == "1").to_unsafe } volume = query["volume"]?.try &.to_i? if preferences @@ -1068,6 +1070,7 @@ def process_video_params(query, preferences) related_videos ||= preferences.related_videos.to_unsafe speed ||= preferences.speed video_loop ||= preferences.video_loop.to_unsafe + extend_desc ||= preferences.extend_desc.to_unsafe volume ||= preferences.volume end @@ -1085,6 +1088,7 @@ def process_video_params(query, preferences) related_videos ||= CONFIG.default_user_preferences.related_videos.to_unsafe speed ||= CONFIG.default_user_preferences.speed video_loop ||= CONFIG.default_user_preferences.video_loop.to_unsafe + extend_desc ||= CONFIG.default_user_preferences.extend_desc.to_unsafe volume ||= CONFIG.default_user_preferences.volume annotations = annotations == 1 @@ -1095,6 +1099,7 @@ def process_video_params(query, preferences) local = local == 1 related_videos = related_videos == 1 video_loop = video_loop == 1 + extend_desc = extend_desc == 1 if CONFIG.disabled?("dash") && quality == "dash" quality = "high" @@ -1141,6 +1146,7 @@ def process_video_params(query, preferences) speed: speed, video_end: video_end, video_loop: video_loop, + extend_desc: extend_desc, video_start: video_start, volume: volume, }) @@ -1150,15 +1156,15 @@ end def build_thumbnails(id) return { - {name: "maxres", host: "#{HOST_URL}", url: "maxres", height: 720, width: 1280}, - {name: "maxresdefault", host: "https://i.ytimg.com", url: "maxresdefault", height: 720, width: 1280}, - {name: "sddefault", host: "https://i.ytimg.com", url: "sddefault", height: 480, width: 640}, - {name: "high", host: "https://i.ytimg.com", url: "hqdefault", height: 360, width: 480}, - {name: "medium", host: "https://i.ytimg.com", url: "mqdefault", height: 180, width: 320}, - {name: "default", host: "https://i.ytimg.com", url: "default", height: 90, width: 120}, - {name: "start", host: "https://i.ytimg.com", url: "1", height: 90, width: 120}, - {name: "middle", host: "https://i.ytimg.com", url: "2", height: 90, width: 120}, - {name: "end", host: "https://i.ytimg.com", url: "3", height: 90, width: 120}, + {host: HOST_URL, height: 720, width: 1280, name: "maxres", url: "maxres"}, + {host: HOST_URL, height: 720, width: 1280, name: "maxresdefault", url: "maxresdefault"}, + {host: HOST_URL, height: 480, width: 640, name: "sddefault", url: "sddefault"}, + {host: HOST_URL, height: 360, width: 480, name: "high", url: "hqdefault"}, + {host: HOST_URL, height: 180, width: 320, name: "medium", url: "mqdefault"}, + {host: HOST_URL, height: 90, width: 120, name: "default", url: "default"}, + {host: HOST_URL, height: 90, width: 120, name: "start", url: "1"}, + {host: HOST_URL, height: 90, width: 120, name: "middle", url: "2"}, + {host: HOST_URL, height: 90, width: 120, name: "end", url: "3"}, } end diff --git a/src/invidious/views/empty.ecr b/src/invidious/views/empty.ecr deleted file mode 100644 index c10c097e..00000000 --- a/src/invidious/views/empty.ecr +++ /dev/null @@ -1,8 +0,0 @@ -<% content_for "header" do %> -<meta name="description" content="<%= translate(locale, "An alternative front-end to YouTube") %>"> -<title> - Invidious -</title> -<% end %> - -<%= rendered "components/feed_menu" %> diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr index 14d63536..602340a4 100644 --- a/src/invidious/views/preferences.ecr +++ b/src/invidious/views/preferences.ecr @@ -106,6 +106,12 @@ <input name="annotations" id="annotations" type="checkbox" <% if preferences.annotations %>checked<% end %>> </div> + <div class="pure-control-group"> + <label for="extend_desc"><%= translate(locale, "Automatically extend video description: ") %></label> + <input name="extend_desc" id="extend_desc" type="checkbox" <% if preferences.extend_desc %>checked<% end %>> + </div> + + <legend><%= translate(locale, "Visual preferences") %></legend> <div class="pure-control-group"> @@ -150,7 +156,7 @@ <label for="default_home"><%= translate(locale, "Default homepage: ") %></label> <select name="default_home" id="default_home"> <% feed_options.each do |option| %> - <option value="<%= option %>" <% if preferences.default_home == option %> selected <% end %>><%= translate(locale, option.blank? ? "none" : option) %></option> + <option value="<%= option %>" <% if preferences.default_home == option %> selected <% end %>><%= translate(locale, option.blank? ? "Search" : option) %></option> <% end %> </select> </div> @@ -160,7 +166,7 @@ <% (feed_options.size - 1).times do |index| %> <select name="feed_menu[<%= index %>]" id="feed_menu[<%= index %>]"> <% feed_options.each do |option| %> - <option value="<%= option %>" <% if preferences.feed_menu[index]? == option %> selected <% end %>><%= translate(locale, option.blank? ? "none" : option) %></option> + <option value="<%= option %>" <% if preferences.feed_menu[index]? == option %> selected <% end %>><%= translate(locale, option.blank? ? "Search" : option) %></option> <% end %> </select> <% end %> diff --git a/src/invidious/views/search_homepage.ecr b/src/invidious/views/search_homepage.ecr new file mode 100644 index 00000000..b36500e9 --- /dev/null +++ b/src/invidious/views/search_homepage.ecr @@ -0,0 +1,24 @@ +<% content_for "header" do %> +<meta name="description" content="<%= translate(locale, "An alternative front-end to YouTube") %>"> +<title> + Invidious +</title> +<link rel="stylesheet" href="/css/empty.css?v=<%= ASSET_COMMIT %>"> +<% end %> + +<%= rendered "components/feed_menu" %> + +<div class="pure-g h-box" id="search-widget"> + <div class="pure-u-1" id="logo"> + <h1 href="/" class="pure-menu-heading">Invidious</h1> + </div> + <div class="pure-u-1-4"></div> + <div class="pure-u-1 pure-u-md-12-24 searchbar"> + <form class="pure-form" action="/search" method="get"> + <fieldset> + <input type="search" style="width:100%" name="q" placeholder="<%= translate(locale, "search") %>" value="<%= env.get?("search").try {|x| HTML.escape(x.as(String)) } %>"> + </fieldset> + </form> + </div> + <div class="pure-u-1-4"></div> +</div> diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr index 61b900e3..5b63bf1f 100644 --- a/src/invidious/views/template.ecr +++ b/src/invidious/views/template.ecr @@ -26,18 +26,21 @@ <span style="display:none" id="dark_mode_pref"><%= env.get("preferences").as(Preferences).dark_mode %></span> <div class="pure-g"> <div class="pure-u-1 pure-u-md-2-24"></div> - <div class="pure-u-1 pure-u-md-20-24"> + <div class="pure-u-1 pure-u-md-20-24", id="contents"> <div class="pure-g navbar h-box"> - <div class="pure-u-1 pure-u-md-4-24"> - <a href="/" class="index-link pure-menu-heading">Invidious</a> - </div> - <div class="pure-u-1 pure-u-md-12-24 searchbar"> - <form class="pure-form" action="/search" method="get"> - <fieldset> - <input type="search" style="width:100%" name="q" placeholder="<%= translate(locale, "search") %>" value="<%= env.get?("search").try {|x| HTML.escape(x.as(String)) } %>"> - </fieldset> - </form> - </div> + <% if navbar_search %> + <div class="pure-u-1 pure-u-md-4-24"> + <a href="/" class="index-link pure-menu-heading">Invidious</a> + </div> + <div class="pure-u-1 pure-u-md-12-24 searchbar"> + <form class="pure-form" action="/search" method="get"> + <fieldset> + <input type="search" style="width:100%" name="q" placeholder="<%= translate(locale, "search") %>" value="<%= env.get?("search").try {|x| HTML.escape(x.as(String)) } %>"> + </fieldset> + </form> + </div> + <% end %> + <div class="pure-u-1 pure-u-md-8-24 user-field"> <% if env.get? "user" %> <div class="pure-u-1-4"> @@ -106,7 +109,7 @@ <%= content %> - <div class="footer"> + <footer> <div class="pure-g"> <div class="pure-u-1 pure-u-md-1-3"> <a href="https://github.com/iv-org/invidious"> @@ -140,7 +143,7 @@ <%= translate(locale, "Current version: ") %> <%= CURRENT_VERSION %>-<%= CURRENT_COMMIT %> @ <%= CURRENT_BRANCH %> </div> </div> - </div> + </footer> </div> <div class="pure-u-1 pure-u-md-2-24"></div> </div> diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index a86e23b2..8b587eb3 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -25,6 +25,19 @@ <link rel="alternate" href="https://www.youtube.com/watch?v=<%= video.id %>"> <%= rendered "components/player_sources" %> <title><%= HTML.escape(video.title) %> - Invidious</title> + +<!-- Description expansion also updates the 'Show more' button to 'Show less' so +we're going to need to do it here in order to allow for translations. + --> +<style> +#descexpansionbutton + label > a::after { + content: "<%= translate(locale, "Show more") %>" +} + +#descexpansionbutton:checked + label > a::after { + content: "<%= translate(locale, "Show less") %>" +} +</style> <% end %> <script id="video_data" type="application/json"> @@ -227,8 +240,18 @@ <% end %> </p> - <div> - <%= video.description_html %> + <div id="description-box"> <!-- Description --> + <% if video.description.size < 200 || params.extend_desc %> + <%= video.description_html %> + <% else %> + <input id="descexpansionbutton" type="checkbox"/> + <label for="descexpansionbutton" style="order: 1;"> + <a></a> + </label> + <div id="descriptionWrapper"> + <%= video.description_html %> + </div> + <% end %> </div> <hr> |
