Compare commits

...

76 Commits

Author SHA1 Message Date
maboroshin 1070a24341
Merge 812390306a into c30062eb94 2024-05-16 20:50:34 +05:30
Bnyro c30062eb94
Merge pull request #3610 from TeamPiped/renovate/dompurify-3.x
fix(deps): update dependency dompurify to v3.1.3
2024-05-16 17:18:56 +02:00
Bnyro adeb0a92bd
Merge pull request #3621 from Bnyro/master
fix: links in comments are not clickable
2024-05-16 17:18:39 +02:00
Bnyro afd5c5b3b8 fix: links in comments are not clickable 2024-05-16 17:18:19 +02:00
Bnyro ba4e946dc2
Merge pull request #3620 from Bnyro/master
feat: show tooltips when creator replied / liked comment
2024-05-16 17:04:35 +02:00
Bnyro ca5e39dfd8 feat: show tooltips when creator replied / liked comment 2024-05-16 17:04:08 +02:00
Bnyro c31f9fbb54
Merge pull request #3619 from Bnyro/master
fix(register): input height doesn't match view password icon
2024-05-16 16:58:07 +02:00
Bnyro 9762542596 fix(register): input height doesn't match view password icon 2024-05-16 16:57:47 +02:00
Bnyro 1440eea4a0
Merge pull request #3618 from Bnyro/master
refactor: use browser inbuilt tooltip on login/register page
2024-05-16 16:57:40 +02:00
Bnyro c0a9b16aa8 refactor: use browser inbuilt tooltip on login/register page 2024-05-16 16:51:04 +02:00
github-actions[bot] 3b18da84b1
Merge pull request #3617 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-16 13:03:25 +00:00
Kārlis Korlašs 1262dfa596
Translated using Weblate (Latvian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/lv/
2024-05-16 15:01:51 +02:00
github-actions[bot] e5e31aed5e
Merge pull request #3615 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-15 00:03:04 +00:00
Ghost of Sparta 6513170ab2
Translated using Weblate (Hungarian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hu/
2024-05-15 02:01:46 +02:00
maboroshin a996997e28
Translated using Weblate (Japanese)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ja/
2024-05-15 02:01:45 +02:00
github-actions[bot] aadcb467cd
Merge pull request #3614 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-13 13:01:53 +00:00
Priit Jõerüüt 7f99a31312
Translated using Weblate (Estonian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/et/
2024-05-13 15:00:24 +02:00
renovate[bot] 74ddbbbc55 Lock file maintenance 2024-05-13 00:07:40 +00:00
github-actions[bot] f1b1d641b4
Merge pull request #3611 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-13 00:05:02 +00:00
Sergio Marques 2e05f9231c
Translated using Weblate (Portuguese)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt/
2024-05-13 02:02:13 +02:00
renovate[bot] eccf4d1f78
fix(deps): update dependency dompurify to v3.1.3 2024-05-11 12:44:43 +00:00
github-actions[bot] 09c4ca60b7
Merge pull request #3609 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-11 12:43:45 +00:00
mere 6820f876cd
Translated using Weblate (Romanian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ro/
2024-05-11 14:42:22 +02:00
github-actions[bot] 5866409fdf
Merge pull request #3608 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-10 20:25:30 +00:00
Milo Ivir 873ef75e86
Translated using Weblate (Croatian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hr/
2024-05-10 22:24:13 +02:00
Milan b881ef68f8
Translated using Weblate (Slovak)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/sk/
2024-05-10 22:24:12 +02:00
github-actions[bot] b3e4aa2bba
Merge pull request #3607 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-10 08:25:13 +00:00
NEXI 6d7b062674
Translated using Weblate (Serbian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/sr/
2024-05-10 10:23:54 +02:00
github-actions[bot] ef610a410b
Merge pull request #3606 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-09 11:03:08 +00:00
大王叫我来巡山 087437216c
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/zh_Hans/
2024-05-09 08:05:15 +02:00
github-actions[bot] 16f48f2e75
Merge pull request #3602 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-08 20:32:15 +00:00
Rex_sa bbdb3738bd
Translated using Weblate (Arabic)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ar/
2024-05-08 22:05:42 +02:00
joaooliva 338d134e9a
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt_BR/
2024-05-08 22:05:42 +02:00
Philip Goto b8cbc27e6d
Translated using Weblate (Dutch)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/nl/
2024-05-08 22:05:42 +02:00
Scrambled777 8754ed6d73
Translated using Weblate (Hindi)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hi/
2024-05-08 22:05:42 +02:00
Fjuro 74f110f74b
Translated using Weblate (Czech)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/cs/
2024-05-08 22:05:42 +02:00
EvilAngel 7f2347bfda
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/uk/
2024-05-08 22:05:41 +02:00
Matthaiks d1dfdbba22
Translated using Weblate (Polish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pl/
2024-05-08 22:05:41 +02:00
gallegonovato b9bbc63b6d
Translated using Weblate (Spanish)
Currently translated at 99.5% (207 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/es/
2024-05-08 22:05:41 +02:00
Oğuz Ersen 1d12a15e9d
Translated using Weblate (Turkish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/tr/
2024-05-08 22:05:41 +02:00
renovate[bot] 3acb8df5d9 chore(deps): update dependency vite-plugin-pwa to v0.20.0 2024-05-08 16:56:59 +02:00
renovate[bot] 155bbde1b1 chore(deps): update dependency @vitejs/plugin-legacy to v5.4.0 2024-05-08 16:56:52 +02:00
renovate[bot] 41357c4135 fix(deps): update dependency shaka-player to v4.8.2 2024-05-08 16:56:40 +02:00
Khusroo Hayat f6cb6842eb
feat: show confirmation modal before deleting subscription group (#3596) 2024-05-08 16:56:24 +02:00
renovate[bot] 0552875cab chore(deps): lock file maintenance 2024-05-06 00:19:49 +00:00
Bnyro bdf89bbd44
Merge pull request #3569 from TeamPiped/renovate/dompurify-3.x
fix(deps): update dependency dompurify to v3.1.2
2024-05-04 17:40:05 +02:00
Bnyro 831fe6c631
Merge pull request #3568 from TeamPiped/renovate/shaka-player-4.x
fix(deps): update dependency shaka-player to v4.8.1
2024-05-04 17:39:58 +02:00
Bnyro 71c60e7b9d
Merge pull request #3584 from TeamPiped/renovate/vite
chore(deps): update dependency vite to v5.2.11
2024-05-04 17:39:42 +02:00
Bnyro 5b46d93a33
Merge pull request #3590 from Bnyro/master
fix: comments text overflowing for long words
2024-05-04 16:21:48 +02:00
Bnyro 32670ac505 fix: comments text overflowing for long words 2024-05-04 16:20:07 +02:00
Bnyro 0e5dba5abd
Merge pull request #3589 from Bnyro/master
fix: update some no longer available fa6 icons
2024-05-04 16:13:28 +02:00
Bnyro b1995b977c fix: update some no longer available fa6 icons 2024-05-04 16:11:49 +02:00
renovate[bot] 134553b468
chore(deps): update dependency vite to v5.2.11 2024-05-02 10:42:30 +00:00
renovate[bot] 48438d723a
fix(deps): update dependency dompurify to v3.1.2 2024-04-30 11:49:27 +00:00
renovate[bot] a2cb3331ad
fix(deps): update dependency shaka-player to v4.8.1 2024-04-30 02:26:15 +00:00
renovate[bot] bc9588c33b chore(deps): lock file maintenance 2024-04-29 01:24:05 +00:00
Bnyro f9c7fbb42d
Merge pull request #3552 from TeamPiped/renovate/vue-monorepo
chore(deps): update vue monorepo to v3.4.25
2024-04-25 20:28:20 +02:00
renovate[bot] 02d1215429
chore(deps): update vue monorepo to v3.4.25 2024-04-25 18:24:33 +00:00
Bnyro 76a78312c0
Merge pull request #3548 from TeamPiped/renovate/vue-i18n-9.x
fix(deps): update dependency vue-i18n to v9.13.1
2024-04-25 20:23:46 +02:00
Bnyro c758772679
Merge pull request #3554 from TeamPiped/renovate/vite
chore(deps): update dependency vite to v5.2.10
2024-04-25 20:23:32 +02:00
renovate[bot] ec9b3b0966
fix(deps): update dependency vue-i18n to v9.13.1 2024-04-25 18:20:47 +00:00
Bnyro ad2b513b03
Merge pull request #3543 from TeamPiped/renovate/eslint-plugin-vue-9.x
chore(deps): update dependency eslint-plugin-vue to v9.25.0
2024-04-25 20:20:47 +02:00
renovate[bot] b9291243b5
chore(deps): update dependency vite to v5.2.10 2024-04-25 18:20:21 +00:00
Bnyro 11f25275bb
Merge pull request #3546 from TeamPiped/renovate/shaka-player-4.x
fix(deps): update dependency shaka-player to v4.7.13
2024-04-25 20:19:55 +02:00
Bnyro cad244be31
Merge pull request #3553 from TeamPiped/renovate/javascript-time-ago-2.x
fix(deps): update dependency javascript-time-ago to v2.5.10
2024-04-25 20:19:42 +02:00
Bnyro c594a21749
Merge pull request #3556 from TeamPiped/renovate/vue-router-4.x
fix(deps): update dependency vue-router to v4.3.2
2024-04-25 20:19:35 +02:00
Bnyro 6b0de1833b
Merge pull request #3565 from TeamPiped/renovate/workbox-monorepo
chore(deps): update dependency workbox-window to v7.1.0
2024-04-25 20:19:26 +02:00
renovate[bot] 7b869dba3a
chore(deps): update dependency workbox-window to v7.1.0 2024-04-23 23:17:07 +00:00
renovate[bot] 0708d1c63b
fix(deps): update dependency vue-router to v4.3.2 2024-04-22 03:47:46 +00:00
renovate[bot] 4f82be9435 chore(deps): lock file maintenance 2024-04-22 00:14:40 +00:00
Bnyro 2b5f9784e1
Merge pull request #3559 from Bnyro/master
fix: mobile layout of playlist page
2024-04-20 18:46:18 +02:00
Bnyro 8ff3526f45 fix: mobile layout of playlist page 2024-04-20 18:44:00 +02:00
renovate[bot] 2d10c385cb
fix(deps): update dependency shaka-player to v4.7.13 2024-04-15 18:06:48 +00:00
renovate[bot] 3ee3135576
fix(deps): update dependency javascript-time-ago to v2.5.10 2024-04-15 18:06:30 +00:00
renovate[bot] 6e979491d4
chore(deps): update dependency eslint-plugin-vue to v9.25.0 2024-04-14 13:46:30 +00:00
maboroshin 812390306a
Update README.md : add PlasmaTube for Linux 2024-03-26 02:18:43 +09:00
32 changed files with 1110 additions and 1139 deletions

View File

@ -148,9 +148,10 @@ Contributions in any other form are also welcomed.
# Made with Piped
**Mobile/desktop apps**
- [LibreTube](https://github.com/Libre-tube/LibreTube) - Alternative frontend for YouTube, for Android.
- [LibreTube](https://github.com/Libre-tube/LibreTube) - Alternative frontend for YouTube for Android.
- [YTDLnis](https://github.com/deniscerri/ytdlnis) - Video and audio downloader for Android that uses Piped to update formats.
- [Yattee](https://github.com/yattee/yattee) - Alternative frontend for YouTube, for MacOS / IOS.
- [Yattee](https://github.com/yattee/yattee) - Alternative frontend for YouTube for MacOS / iOS.
- [PlasmaTube](https://apps.kde.org/plasmatube/) - Alternative frontend for YouTube for Linux.
- [PsTube](https://github.com/prateekmedia/pstube) - Watch and download videos without ads on Android, Linux, Windows, iOS, and Mac OSX.
- [Harmony Music](https://github.com/anandnet/Harmony-Music) - YouTube Music alternative for Android, built with Flutter that supports piped linking for playlists.
- [VibeYou](https://github.com/you-apps/VibeYou) - Privacy focused music player for Android supporting playback via Piped.

View File

@ -11,17 +11,17 @@
"lint": "eslint --fix --color --ignore-path .gitignore --ext .js,.vue ."
},
"dependencies": {
"dompurify": "3.1.0",
"dompurify": "3.1.3",
"fast-xml-parser": "4.3.6",
"hotkeys-js": "3.13.7",
"javascript-time-ago": "2.5.9",
"javascript-time-ago": "2.5.10",
"linkify-html": "4.1.3",
"linkifyjs": "4.1.3",
"qrcode": "^1.5.3",
"shaka-player": "4.7.11",
"vue": "3.4.21",
"vue-i18n": "9.11.0",
"vue-router": "4.3.0"
"shaka-player": "4.8.2",
"vue": "3.4.25",
"vue-i18n": "9.13.1",
"vue-router": "4.3.2"
},
"devDependencies": {
"@iconify-json/fa6-brands": "1.1.19",
@ -34,20 +34,20 @@
"@unocss/reset": "0.58.9",
"@unocss/transformer-directives": "0.58.9",
"@unocss/transformer-variant-group": "0.58.9",
"@vitejs/plugin-legacy": "5.3.2",
"@vitejs/plugin-legacy": "5.4.0",
"@vitejs/plugin-vue": "5.0.4",
"@vue/compiler-sfc": "3.4.21",
"@vue/compiler-sfc": "3.4.25",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-prettier": "5.1.3",
"eslint-plugin-vue": "9.24.0",
"eslint-plugin-vue": "9.25.0",
"lightningcss": "1.24.1",
"prettier": "3.2.5",
"unocss": "0.58.9",
"vite": "5.2.8",
"vite": "5.2.11",
"vite-plugin-eslint": "1.8.1",
"vite-plugin-pwa": "0.19.8",
"workbox-window": "7.0.0"
"vite-plugin-pwa": "0.20.0",
"workbox-window": "7.1.0"
},
"browserslist": [
"last 1 chrome version",

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
<template v-if="text">
<div class="mx-1 whitespace-pre-wrap py-2">
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-if="showFullText" v-html="fullText()" />
<span v-if="showFullText" class="contentText" v-html="fullText()" />
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-else v-html="colapsedText()" />
<span v-else v-html="collapsedText()" />
<span v-if="text.length > visibleLimit && !showFullText">...</span>
<button
v-if="text.length > visibleLimit"
@ -38,9 +38,15 @@ export default {
fullText() {
return purifyHTML(rewriteDescription(this.text));
},
colapsedText() {
collapsedText() {
return purifyHTML(rewriteDescription(this.text.slice(0, this.visibleLimit)));
},
},
};
</script>
<style>
.contentText {
word-wrap: anywhere;
}
</style>

View File

@ -33,8 +33,13 @@
<div class="comment-footer my-1 flex items-center gap-3">
<div class="i-fa6-solid:thumbs-up" />
<span v-text="numberFormat(comment.likeCount)" />
<i v-if="comment.hearted" class="i-fa6-solid:heart" />
<img v-if="comment.creatorReplied" :src="uploaderAvatarUrl" class="h-5 w-5 rounded-full" />
<i v-if="comment.hearted" class="i-fa6-solid:heart" :title="$t('actions.creator_liked')" />
<img
v-if="comment.creatorReplied"
:src="uploaderAvatarUrl"
class="h-5 w-5 rounded-full"
:title="$t('actions.creator_replied')"
/>
</div>
<template v-if="comment.repliesPage && (!loadingReplies || !showingReplies)">
<div class="cursor-pointer" @click="loadReplies">

View File

@ -17,7 +17,7 @@
<span v-t="'actions.status_page'" class="ml-2" />
</a>
<a v-if="donationHref" :href="donationHref">
<i class="i-fa6-solid:donate" />
<i class="i-fa6-solid:money-check" />
<span v-t="'actions.instance_donations'" class="ml-2" />
</a>
<a v-if="privacyPolicyHref" :href="privacyPolicyHref" target="_blank">

View File

@ -1,7 +1,7 @@
<template>
<div class="flex justify-center">
<h1 v-t="'titles.login'" class="my-4 text-center font-bold" />
<TooltipIcon class="mb-6" icon="i-fa6-solid:circle-info" :tooltip="$t('info.login_note')" />
<i class="i-fa6-solid:circle-info ml-2 mt-6 cursor-pointer" :title="$t('info.login_note')" />
</div>
<hr />
<div class="w-full flex items-center justify-center text-center">
@ -36,12 +36,7 @@
</template>
<script>
import TooltipIcon from "./TooltipIcon.vue";
export default {
components: {
TooltipIcon,
},
data() {
return {
username: null,

View File

@ -6,15 +6,15 @@
<CollapsableText v-if="playlist?.description" :text="playlist.description" />
<div class="mt-1 flex items-center justify-between">
<div class="mt-1 flex justify-between <md:flex-col md:items-center">
<div>
<router-link class="link flex items-center gap-3" :to="playlist.uploaderUrl || '/'">
<img loading="lazy" :src="playlist.uploaderAvatar" class="rounded-full" />
<img loading="lazy" :src="playlist.uploaderAvatar" class="h-12 rounded-full" />
<strong v-text="playlist.uploader" />
</router-link>
</div>
<div>
<strong class="mr-2" v-text="`${playlist.videos} ${$t('video.videos')}`" />
<div class="flex flex-wrap items-center gap-1">
<strong v-text="`${playlist.videos} ${$t('video.videos')}`" />
<button v-if="!isPipedPlaylist" class="btn mx-1" @click="bookmarkPlaylist">
{{ $t(`actions.${isBookmarked ? "playlist_bookmarked" : "bookmark_playlist"}`)
}}<i class="i-fa6-solid:bookmark ml-3" />

View File

@ -1,7 +1,7 @@
<template>
<div class="flex justify-center">
<h1 v-t="'titles.register'" class="my-4 text-center font-bold" />
<TooltipIcon class="mb-6" icon="i-fa6-solid:circle-info" :tooltip="$t('info.register_note')" />
<i class="i-fa6-solid:circle-info ml-2 mt-6 cursor-pointer" :title="$t('info.register_note')" />
</div>
<hr />
<div class="flex flex-col items-center justify-center text-center">
@ -20,7 +20,7 @@
<div class="flex justify-center">
<input
v-model="password"
class="input w-full"
class="input h-auto w-full"
:type="showPassword ? 'text' : 'password'"
autocomplete="password"
:placeholder="$t('login.password')"
@ -34,7 +34,7 @@
<div class="flex justify-center">
<input
v-model="passwordConfirm"
class="input w-full"
class="input h-auto w-full"
:type="showConfirmPassword ? 'text' : 'password'"
autocomplete="password"
:placeholder="$t('login.password_confirm')"
@ -65,10 +65,9 @@
<script>
import { isEmail } from "../utils/Misc.js";
import ConfirmModal from "./ConfirmModal.vue";
import TooltipIcon from "./TooltipIcon.vue";
export default {
components: { ConfirmModal, TooltipIcon },
components: { ConfirmModal },
data() {
return {
username: null,

View File

@ -52,10 +52,16 @@
>
<span v-text="group.groupName !== '' ? group.groupName : $t('video.all')" />
<div v-if="group.groupName != '' && selectedGroup == group">
<i class="i-fa6-solid:edit mx-2" @click="showEditGroupModal = true" />
<i class="i-fa6-solid:circle-minus mx-2" @click="deleteGroup(group)" />
<i class="i-fa6-solid:pen mx-2" @click="showEditGroupModal = true" />
<i class="i-fa6-solid:circle-minus mx-2" @click="groupToDelete = group.groupName" />
</div>
</button>
<ConfirmModal
v-if="groupToDelete != null"
:message="$t('actions.delete_group_confirm')"
@close="groupToDelete = null"
@confirm="deleteGroup(groupToDelete)"
/>
<button class="btn mx-1" @click="showCreateGroupModal = true">
<i class="i-fa6-solid:circle-plus" />
</button>
@ -118,9 +124,10 @@
<script>
import ModalComponent from "./ModalComponent.vue";
import CreateGroupModal from "./CreateGroupModal.vue";
import ConfirmModal from "./ConfirmModal.vue";
export default {
components: { ModalComponent, CreateGroupModal },
components: { ModalComponent, CreateGroupModal, ConfirmModal },
data() {
return {
subscriptions: [],
@ -132,6 +139,7 @@ export default {
showCreateGroupModal: false,
showEditGroupModal: false,
editedGroupName: "",
groupToDelete: null,
};
},
computed: {
@ -153,7 +161,6 @@ export default {
});
this.channelGroups.push(this.selectedGroup);
if (!window.db) return;
this.loadChannelGroups();
@ -232,9 +239,10 @@ export default {
this.showEditGroupModal = false;
},
deleteGroup(group) {
this.deleteChannelGroup(group.groupName);
this.channelGroups = this.channelGroups.filter(g => g != group);
this.selectedGroup = this.channelGroups[0];
this.deleteChannelGroup(group);
this.channelGroups = this.channelGroups.filter(g => g.groupName != group);
this.selectedGroup = this.channelGroups[0] || {};
this.groupToDelete = null;
},
checkedChange(subscription) {
const channelId = subscription.url.substr(-24);

View File

@ -1,29 +0,0 @@
<template>
<div id="container" class="m-2 self-center">
<div :class="icon" class="cursor-pointer"></div>
<p id="tooltip" class="absolute mr-[20vw] mt-2 hidden rounded-l bg-gray-800 px-2 py-1 text-gray-200">
{{ tooltip }}
</p>
</div>
</template>
<script>
export default {
props: {
icon: {
type: String, // the class name of a font awesome icon
required: true,
},
tooltip: {
type: String,
required: true,
},
},
};
</script>
<style>
#container:hover #tooltip {
display: block;
}
</style>

View File

@ -546,33 +546,13 @@ export default {
this.fetchSponsors().then(data => (this.sponsors = data));
},
async getComments() {
this.fetchComments().then(data => {
this.rewriteComments(data.comments);
this.comments = data;
});
this.comments = await this.fetchComments();
},
async fetchSubscribedStatus() {
if (!this.channelId) return;
this.subscribed = await this.fetchSubscriptionStatus(this.channelId);
},
rewriteComments(data) {
data.forEach(comment => {
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(comment.commentText, "text/html");
xmlDoc.querySelectorAll("a").forEach(elem => {
if (!elem.innerText.match(/(?:[\d]{1,2}:)?(?:[\d]{1,2}):(?:[\d]{1,2})/))
elem.outerHTML = elem.getAttribute("href");
});
comment.commentText = xmlDoc
.querySelector("body")
.innerHTML.replaceAll(/(?:http(?:s)?:\/\/)?(?:www\.)?youtube\.com(\/[/a-zA-Z0-9_?=&-]*)/gm, "$1")
.replaceAll(
/(?:http(?:s)?:\/\/)?(?:www\.)?youtu\.be\/(?:watch\?v=)?([/a-zA-Z0-9_?=&-]*)/gm,
"/watch?v=$1",
);
});
},
subscribeHandler() {
this.toggleSubscriptionState(this.channelId, this.subscribed).then(success => {
if (success) this.subscribed = !this.subscribed;
@ -616,7 +596,6 @@ export default {
}).then(json => {
this.comments.nextpage = json.nextpage;
this.loading = false;
this.rewriteComments(json.comments);
this.comments.comments = this.comments.comments.concat(json.comments);
});
}

View File

@ -155,7 +155,8 @@
"concurrent_prefetch_limit": "حد الجلب المسبق للدفق المتزامن",
"customize": "تخصيص",
"invalid_url": "عنوان URL غير صالح!",
"add": "إضافة"
"add": "إضافة",
"delete_group_confirm": "حذف هذه المجموعة؟"
},
"video": {
"sponsor_segments": "المقاطع الإعلانية",

View File

@ -151,7 +151,8 @@
"concurrent_prefetch_limit": "Limit souběžných přednačtení streamů",
"customize": "Přizpůsobit",
"invalid_url": "Neplatná adresa URL!",
"add": "Přidat"
"add": "Přidat",
"delete_group_confirm": "Odstranit tuto skupinu?"
},
"player": {
"watch_on": "Zobrazit na {0}",

View File

@ -101,6 +101,7 @@
"delete_playlist": "Delete Playlist",
"select_playlist": "Select a Playlist",
"delete_playlist_confirm": "Delete this playlist?",
"delete_group_confirm": "Delete this group?",
"please_select_playlist": "Please select a playlist",
"delete_account": "Delete Account",
"logout": "Logout from this device",
@ -155,7 +156,9 @@
"concurrent_prefetch_limit": "Concurrent Stream Prefetch Limit",
"customize": "Customize",
"invalid_url": "Invalid URL!",
"add": "Add"
"add": "Add",
"creator_replied": "Creator replied",
"creator_liked": "Creator liked"
},
"comment": {
"pinned_by": "Pinned by {author}",

View File

@ -164,7 +164,8 @@
"concurrent_prefetch_limit": "Límite de captación previa de transmisiones simultáneas",
"customize": "Personalizar",
"invalid_url": "¡URL no válida!",
"add": "Añadir"
"add": "Añadir",
"delete_group_confirm": "¿Eliminar este grupo?"
},
"titles": {
"feed": "Contenido",

View File

@ -98,7 +98,7 @@
"with_playlist": "Jaga koos esitusloendiga",
"playlist_bookmarked": "Lisatud järjehoidjaks",
"dismiss": "Katkesta",
"create_group": "Loo rühm",
"create_group": "Loo grupp",
"okay": "Sobib",
"show_search_suggestions": "Näita otsingusoovitusi",
"instance_auth_selection": "Vaheserver autentimiseks",
@ -120,7 +120,7 @@
"share": "Jaga",
"source_code": "Lähtekood",
"no_valid_playlists": "Selles failis ei leidu korrektseid esitusloendeid!",
"group_name": "Rühma nimi",
"group_name": "Grupi nimi",
"minimize_comments": "Minimeeri kommentaarid",
"auto_display_captions": "Kuva tiitrid automaatselt",
"delete_account": "Kustuta konto",
@ -151,11 +151,12 @@
"reply_count": "{count} vastust",
"bookmark_playlist": "Järjehoidja",
"download_frame": "Laadi alla kaader",
"add_to_group": "Lisa rühma",
"add_to_group": "Lisa gruppi",
"instance_privacy_policy": "Privaatsuspoliitika",
"customize": "Kohanda",
"invalid_url": "Vigane URL!",
"add": "Lisa"
"add": "Lisa",
"delete_group_confirm": "Kas kustutame selle grupi?"
},
"preferences": {
"has_cdn": "CDN'i olek?",

View File

@ -1,14 +1,14 @@
{
"titles": {
"trending": "फिलहाल चर्चा में",
"trending": "रुझान",
"history": "इतिहास",
"register": "रजिस्टर करें",
"login": "लॉग इन करें",
"preferences": "प्राथमिकताए",
"register": "पंजीकृत करें",
"login": "लॉगिन",
"preferences": "प्राथमिकताए",
"subscriptions": "सदस्यता",
"feed": "फीड",
"feed": "फीड",
"playlists": "प्लेलिस्ट",
"livestreams": "लाइव स्ट्रीम",
"livestreams": "लाइवस्ट्रीम",
"channels": "चैनल",
"player": "चालक",
"account": "खाता",
@ -17,122 +17,122 @@
"bookmarks": "बुकमार्क",
"dearrow": "DeArrow",
"albums": "एलबम",
"custom_instances": "कस्टम इंस्टेंस"
"custom_instances": "तदनुकूल इंस्टैंस"
},
"actions": {
"subscribe": "सदस्यता लें",
"back": "वापस जाओ",
"unsubscribe": "सदस्यता ले ली है",
"back": "पीछे",
"unsubscribe": "सदस्यता छोड़ें",
"no": "नहीं",
"hide_replies": "जवाब छिपाएं",
"search": "खोजें (Ctrl+K)",
"loop_this_video": "इस वीडियो को लूप करें",
"loading": "लोड हो रहा है...",
"show_description": "विवरण दिखाएं",
"minimize_description": "विवरण छिपाएं",
"minimize_description": "विवरण संक्षेपित करें",
"yes": "हां",
"view_subscriptions": "सदस्यता देखें",
"most_recent": "सबसे हाला",
"least_recent": "कम से कम हाल का",
"channel_name_asc": "चैनल का नाम (ए-जेड)",
"channel_name_desc": "चैनल का नाम (जेड-ए)",
"uses_api_from": "से API का उपयोग करता है ",
"most_recent": "सबसे हालिया",
"least_recent": "कम हालिया",
"channel_name_asc": "चैनल नाम (A-Z)",
"channel_name_desc": "चैनल नाम (Z-A)",
"uses_api_from": "यहां से API का उपयोग करता है ",
"skip_sponsors": "प्रायोजकों को छोड़ें",
"skip_outro": "एंडकार्ड्स/क्रेडिट छोड़ें",
"skip_interaction": "इंटरैक्शन रिमाइंडर छोड़ें (सदस्यता लें)",
"skip_outro": "एंडकार्ड/क्रेडिट छोड़ें",
"skip_interaction": "इंटरेक्शन अनुस्मारक छोड़ें (सदस्यता लें)",
"theme": "थीम",
"dark": "डार्क",
"light": "प्रकाश",
"autoplay_video": "ऑटोप्ले वीडियो",
"audio_only": "सिर्फ़ ध्वनि",
"default_quality": "डिफ़ॉल्ट गुणवत्ता",
"dark": "गहरी",
"light": "हल्की",
"autoplay_video": "वीडियो स्वत:चालू करें",
"audio_only": "सिर्फ ऑडियो",
"default_quality": "तयशुदा गुणवत्ता",
"country_selection": "देश",
"show_comments": "टिप्पणियाँ दिखाएँ",
"store_watch_history": "स्टोर देखने का इतिहास",
"show_comments": "टिप्पणियां दिखाएं",
"store_watch_history": "देखने का इतिहास संग्रहीत करें",
"language_selection": "भाषा",
"instances_list": "इंस्टंस सूची",
"instance_selection": "इंस्टंस",
"show_more": "और दिखाओ",
"instances_list": "इंस्टंस सूची",
"instance_selection": "इंस्टंस",
"show_more": "अधिक दिखाएं",
"export_to_json": "JSON में निर्यात करें",
"import_from_json": "JSON से आयात करें",
"auto_play_next_video": "अगला वीडियो ऑटोप्ले करें",
"donations": "डिवेलपमेंट के लिए दान",
"minimize_recommendations": "सिफारिशों को कम करें",
"show_recommendations": "सिफारिशें दिखाएं",
"auto_play_next_video": "अगला वीडियो स्वत:चालू करें",
"donations": "विकास के लिए दान",
"minimize_recommendations": "अनुशंसाएं न्यूनतम करें",
"show_recommendations": "अनुशंसाएं दिखाएं",
"disable_lbry": "स्ट्रीमिंग के लिए LBRY अक्षम करें",
"enable_lbry_proxy": "LBRY के लिए प्रॉक्सी सक्षम करें",
"view_ssl_score": "एसएसएल स्कोर देखें",
"filter": "फिल्टर",
"clear_history": "स्पष्ट इतिहास",
"load_more_replies": "और जवाब लोड करें",
"view_ssl_score": "SSL स्कोर देखें",
"filter": "फिल्टर",
"clear_history": "इतिहास साफ़ करें",
"load_more_replies": "अधिक जवाब लोड करें",
"enabled_codecs": "सक्षम कोडेक्स (एकाधिक)",
"buffering_goal": "बफरिंग गोल (सेकंड में)",
"delete_playlist_confirm": "इस प्लेलिस्ट को मिटायें?",
"buffering_goal": "बफरिंग क्ष्य (सेकंड में)",
"delete_playlist_confirm": "इस प्लेलिस्ट को मिटां?",
"add_to_playlist": "प्लेलिस्ट में जोड़ें",
"remove_from_playlist": "प्लेलिस्ट से निकाले",
"delete_playlist_video_confirm": "वीडियो को प्लेलिस्ट से निकालना है?",
"remove_from_playlist": "प्लेलिस्ट से हटाएं",
"delete_playlist_video_confirm": "प्लेलिस्ट से वीडियो हटाएं?",
"create_playlist": "प्लेलिस्ट बनायें",
"select_playlist": "एक प्लेलिस्ट चुनें",
"please_select_playlist": "कृपया एक प्लेलिस्ट चुनें",
"delete_playlist": "प्लेलिस्ट टाएं",
"enable_sponsorblock": "विज्ञापन प्रतिबंध करें",
"default_homepage": "स्वतः निर्धारित मुख्यपृष्ठ",
"sort_by": "वर्गीकरण:",
"select_playlist": "प्लेलिस्ट चुनें",
"please_select_playlist": "कृपया प्लेलिस्ट चुनें",
"delete_playlist": "प्लेलिस्ट मिटाएं",
"enable_sponsorblock": "स्पॉन्सरब्लॉक सक्षम करें",
"default_homepage": "तयशुदा मुख्यपृष्ठ",
"sort_by": "ऐसे छांटें:",
"skip_automatically": "स्वतः",
"delete_account": "खाता डिलीट करें",
"skip_button_only": "स्किप बटन दिखाए",
"delete_account": "खाता मिटाएं",
"skip_button_only": "स्किप बटन दिखाए",
"skip_intro": "मध्यांतर/परिचय एनिमेशन छोड़ें",
"skip_self_promo": "अनपेड/स्वयं प्रचार को छोड़ें",
"skip_filler_tangent": "फिलर स्पर्शरेखा को छोड़ें",
"skip_self_promo": "अवैतनिक/स्व-प्रचार छोड़ें",
"skip_filler_tangent": "फिलर स्पर्शज्या छोड़ें",
"skip_non_music": "संगीत छोड़ें: गैर-संगीत अनुभाग",
"show_markers": "प्लेयर पर मार्कर दिखाएँ",
"skip_preview": "प्रीव्यू / रीकैप छोड़ें",
"skip_highlight": "हाइलाइट छोड़ें",
"instance_auth_selection": "प्रमाणीकरण इंस्टंस",
"different_auth_instance": "प्रमाणीकरण के लिए एक विभिन्न इंस्टेंस का उपयोग करें",
"reset_preferences": "प्राथमिकताए रीसेट करें",
"show_markers": "प्लेयर पर निशान दिखाएं",
"skip_preview": "पूर्वावलोकन/पुनर्कथनs छोड़ें",
"skip_highlight": "मुख्य आकर्षण छोड़ें",
"instance_auth_selection": "प्रमाणीकरण इंस्टंस",
"different_auth_instance": "प्रमाणीकरण के लिए किसी भिन्न इंस्टैंस का उपयोग करें",
"reset_preferences": "प्राथमिकताए रीसेट करें",
"back_to_home": "होम पर वापस",
"piped_link": "पाइप्ड लिंक",
"hide_watched": "देखी गई वीडियो फ़ीड में छिपाएँ",
"documentation": "प्रलेखन",
"piped_link": "Piped लिंक",
"hide_watched": "देखी गई वीडियो फीड में छिपाएं",
"documentation": "दस्तावेज़ीकरण",
"status_page": "स्थिति",
"source_code": "स्रोत कोड",
"show_chapters": "अध्याय",
"follow_link": "लिंक का अनुसरण करें",
"store_search_history": "खोज इतिहास संग्रहित करें",
"copy_link": "लिंक की प्रतिलिपि",
"copy_link": "लिंक कॉपी करें",
"with_timecode": "समय कोड के साथ साझा करें",
"edit_playlist": "प्लेलिस्ट संपादित",
"auto_display_captions": "स्वत: प्रदर्शित कैप्शन",
"instances_not_shown": "जो सार्वजनिक इंस्टेंसेस यहाँ नहीं दिखाए जा रहे हैं, वे वर्तमान में अनुपलब्ध हैं।",
"enable_dearrow": "डीएरो सक्षम करें",
"auto": "आटो",
"minimize_description_default": "डिफ़ॉल्ट रूप से विवरण को संक्षेपित करें",
"edit_playlist": "प्लेलिस्ट संपादित करें",
"auto_display_captions": "अनुशीर्षक स्वत: प्रदर्शित करें",
"instances_not_shown": "जो सार्वजनिक इंस्टैंस यहां नहीं दिखाए जा रहे हैं, वे वर्तमान में अनुपलब्ध हैं।",
"enable_dearrow": "DeArrow सक्षम करें",
"auto": "स्वतः",
"minimize_description_default": "तयशुदा रूप से विवरण को संक्षेपित करें",
"import_from_json_csv": "JSON/CSV से आयात करें",
"logout": "इस डिवाइस से लॉगआउट करें",
"chapters_layout_mobile": "मोबाइल पर अध्याय लेआउट",
"show_watch_on_youtube": "यूट्यूब पर देखें बटन दिखाएं",
"invalidate_session": "सभी उपकरणों से लॉगआउट",
"logout": "इस उपकरण से लॉगआउट करें",
"chapters_layout_mobile": "मोबाइल पर अध्याय अभिन्यास",
"show_watch_on_youtube": "YouTube पर देखें बटन दिखाएं",
"invalidate_session": "सभी उपकरणों को लॉगआउट करें",
"clone_playlist": "प्लेलिस्ट की प्रतिलिपि बनाएं",
"clone_playlist_success": "सफलतापूर्वक क्लोन हो गयी!",
"clone_playlist_success": "सफलतापूर्वक प्रतिलिपि बनाई गई!",
"download_as_txt": ".txt के रूप में डाउनलोड करें",
"backup_preferences": "प्राथमिकताए बैकअप करें",
"restore_preferences": "प्राथमिकताए पुनर्स्थापित करें",
"backup_preferences": "प्राथमिकताए बैकअप करें",
"restore_preferences": "प्राथमिकताए पुनर्स्थापित करें",
"playlist_name": "प्लेलिस्ट नाम",
"playlist_description": "प्लेलिस्ट विवरण",
"share": "साझा करें",
"time_code": "समय कोड (सेकंड में)",
"reply_count": "{count} उत्त",
"min_segment_length": "न्यूनतम सेगमेंट लंबाई (सेकंड में)",
"skip_segment": "सेगमेंट छोड़ें",
"autoplay_next_countdown": "अगले वीडियो तक डिफ़ॉल्ट काउंटडाउन (सेकंड में)",
"minimize_comments_default": "डिफ़ॉल्ट रूप से टिप्पणियाँ छोटी करें",
"minimize_comments": "टिप्पणिया को संक्षेपित करें",
"confirm_reset_preferences": "क्या आप वाकई अपनी प्राथमिकताए रीसेट करना चाहते हैं?",
"reply_count": "{count} जवाब",
"min_segment_length": "न्यूनतम खंड लंबाई (सेकंड में)",
"skip_segment": "खंड छोड़ें",
"autoplay_next_countdown": "अगले वीडियो तक तयशुदा उल्टीगिनती (सेकंड में)",
"minimize_comments_default": "तयशुदा रूप से टिप्पणियां संक्षेपित करें",
"minimize_comments": "टिप्पणिया को संक्षेपित करें",
"confirm_reset_preferences": "क्या आप वाकई अपनी प्राथमिकताए रीसेट करना चाहते हैं?",
"no_valid_playlists": "फ़ाइल में मान्य प्लेलिस्ट नहीं हैं!",
"instance_privacy_policy": "गोपनीयता नीति",
"bookmark_playlist": "बुकमार्क करें",
"concurrent_prefetch_limit": "समवर्ती स्ट्रीम पूर्वाभ्यास सीमा",
"concurrent_prefetch_limit": "समवर्ती स्ट्रीम प्रीफ़ेच सीमा",
"cancel": "रद्द करें",
"okay": "ठीक है",
"playlist_bookmarked": "बुकमार्क किया गया",
@ -142,25 +142,26 @@
"group_name": "समूह नाम",
"show_search_suggestions": "खोज सुझाव दिखाएं",
"delete_automatically": "बाद में स्वचालित रूप से हटा दें",
"generate_qrcode": "क्यूआर कोड बनाएं",
"generate_qrcode": "QR कोड बनाएं",
"add_to_group": "समूह में जोड़ें",
"download_frame": "डाउनलोड फ्रेम",
"with_playlist": "प्लेलिस्ट के साथ साझा करें",
"instance_donations": "इंसटैंस के लिए दान",
"minimize_chapters_default": "अध्यायों को डिफ़ॉल्ट रूप से छोटा करें",
"minimize_recommendations_default": "डिफ़ॉल्ट रूप से सिफ़ारिशें मिनीमाईज़ करें",
"instance_donations": "इंसटैंस के लिए दान",
"minimize_chapters_default": "तयशुदा रूप से अध्यायों को न्यूनतम करें",
"minimize_recommendations_default": "तयशुदा रूप से अनुशंसाएं न्यूनतम करें",
"customize": "अनुकूलित करें",
"invalid_url": "अमान्य URL!",
"add": "जोड़ें"
"add": "जोड़ें",
"delete_group_confirm": "इस समूह को मिटाएं?"
},
"video": {
"views": "{views} बार देखा गया",
"videos": "वीडियो",
"watched": "पहले ही देखा हुआ",
"watched": "देखा गया",
"ratings_disabled": "रेटिंग अक्षम",
"chapters": "चैप्टर",
"chapters": "अध्याय",
"live": "{0} लाइव",
"sponsor_segments": "सपोर्टर्स सेगमेंट्स",
"sponsor_segments": "प्रायोजक खंड",
"shorts": "शॉर्ट्स",
"all": "सभी",
"category": "श्रेणी",
@ -171,59 +172,59 @@
},
"login": {
"password": "पासवर्ड",
"username": "उपयो्ता नाम",
"username": "उपयोक्ता नाम",
"passwords_incorrect": "पासवर्ड मेल नहीं खाते हैं!",
"password_confirm": "पासवर्ड की पुष्टि करें"
},
"comment": {
"pinned_by": "{author} ने पिन किया",
"loading": "टिप्पणियाँ लोड हो रही हैं..।",
"disabled": "टिप्पणिया अपलोडर द्वारा अक्षम की गई हैं।",
"user_disabled": "सेटिंग्स में टिप्पणिया अक्षम हैं।"
"loading": "टिप्पणियां लोड हो रही हैं…",
"disabled": "टिप्पणिया अपलोडर द्वारा अक्षम की गई हैं।",
"user_disabled": "सेटिंग्स में टिप्पणिया अक्षम हैं।"
},
"preferences": {
"instance_locations": "इंस्टंस स्थान",
"has_cdn": "सीडीएन है?",
"ssl_score": "एसएसएल स्कोर",
"instance_locations": "इंस्टंस स्थान",
"has_cdn": "CDN है?",
"ssl_score": "SSL स्कोर",
"uptime_30d": "अपटाइम (30 दिन)",
"instance_name": "इंस्टंस का नाम",
"registered_users": "रजिस्टर्ड उपयोगकर्ता",
"instance_name": "इंस्टंस का नाम",
"registered_users": "पंजीकृत उपयोक्ता",
"version": "संस्करण",
"up_to_date": "अप टू डेट?",
"up_to_date": "अद्यतित?",
"api_url": "Api URL"
},
"search": {
"did_you_mean": "क्या आपका मतलब यह था: {0}?",
"playlists": "यूट्यूब: प्लेलिस्ट्स",
"music_videos": "वाईटी म्यूज़िक: वीडियो",
"music_albums": "वाईटी म्यूज़िक: एल्बम्स",
"music_playlists": "वाईटी म्यूज़िक: प्लेलिस्ट्स",
"all": "यूट्यूब: सभी",
"videos": "यूट्यूब: वीडियो",
"channels": "यूट्यूब: चैनल्स",
"music_artists": "वाईटी म्यूज़िक: कलाकार",
"music_songs": "वाईटी म्यूज़िक: संगीत"
"playlists": "YouTube: प्लेलिस्ट",
"music_videos": "YT Music: वीडियो",
"music_albums": "YT Music: एलबम",
"music_playlists": "YT Music: प्लेलिस्ट",
"all": "YouTube: सभी",
"videos": "YouTube: वीडियो",
"channels": "YouTube: चैनल्स",
"music_artists": "YT Music: कलाकार",
"music_songs": "YT Music: संगीत"
},
"player": {
"watch_on": "{0} पर देखें",
"failed": "त्रुटि कोड {0} के साथ विफल, अधिक जानकारी के लिए लॉग देखें"
},
"info": {
"login_note": "इस इंस्टंस पर बनाए गए खाते से लॉग इन करें।",
"login_note": "इस इंस्टंस पर बनाए गए खाते से लॉग इन करें।",
"page_not_found": "पृष्ठ नहीं मिला",
"copied": "कॉपी हुआ!",
"copied": "कॉपी किया गया!",
"cannot_copy": "कॉपी नहीं कर सकते!",
"local_storage": "यह क्रिया को लोकलस्टोरेज की आवश्यकता है, क्या कुकीज़ सक्षम हैं?",
"preferences_note": "नोट: प्राथमिकताए आपके ब्राउज़र के स्थानीय संग्रहण में सहेजी जाती हैं। अपने ब्राउज़र डेटा को हटाने से वे रीसेट हो जाएंगी।",
"register_no_email_note": "उपयो्ता नाम के रूप में ईमेल का उपयोग करने की अनुशंसा नहीं की जाती है। फिर भी आगे बढ़ें?",
"preferences_note": "नोट: प्राथमिकताए आपके ब्राउज़र के स्थानीय संग्रहण में सहेजी जाती हैं। अपने ब्राउज़र डेटा को हटाने से वे रीसेट हो जाएंगी।",
"register_no_email_note": "उपयोक्ता नाम के रूप में ईमेल का उपयोग करने की अनुशंसा नहीं की जाती है। फिर भी आगे बढ़ें?",
"next_video_countdown": "अगला वीडियो {0} सेकंड में चलाया जा रहा है",
"hours": "{amount} घंटा(एं)",
"days": "{amount} दिन(ं)",
"weeks": "{amount} सप्ताह(एं)",
"months": "{amount} महीना(एं)",
"register_note": "पाइप्ड इंस्टेंस के लिए एक खाता पंजीकृत करें। इससे आप अपनी सदस्यता और प्लेलिस्ट को अपने खाते के साथ सिंक कर सकते हैं, ताकि वे सर्वर साइड पर संग्रहित हों। आप खाते के बिना भी सभी विशेषताए इस्तेमाल कर सकते हैं, लेकिन सभी डेटा आपके ब्राउज़र के स्थानीय कैश में संग्रहित होगा। कृपया सुनिश्चित करें कि आप अपना ईमेल पता उपयो्ता नाम के रूप में इस्तेमाल नहीं कर रहे हैं और एक सुरक्षित पासवर्ड चुनें जिसे आप कहीं और नहीं इस्तेमाल करते हैं।"
"hours": "{amount} घंटा(टे)",
"days": "{amount} दिन(नों)",
"weeks": "{amount} हफ्ता(ते)",
"months": "{amount} महीना(ने)",
"register_note": "Piped इंस्टैंस के लिए एक खाता पंजीकृत करें। इससे आप अपनी सदस्यता और प्लेलिस्ट को अपने खाते के साथ सिंक कर सकते हैं, ताकि वे सर्वर साइड पर संग्रहित हों। आप खाते के बिना भी सभी विशेषताए इस्तेमाल कर सकते हैं, लेकिन सभी डेटा आपके ब्राउज़र के स्थानीय कैश में संग्रहित होगा। कृपया सुनिश्चित करें कि आप अपना ईमेल पता उपयोक्ता नाम के रूप में इस्तेमाल नहीं कर रहे हैं और एक सुरक्षित पासवर्ड चुनें जिसे आप कहीं और नहीं इस्तेमाल करते हैं।"
},
"subscriptions": {
"subscribed_channels_count": "सब्सक्राइब किया: {0}"
"subscribed_channels_count": "इसकी सदस्यता ली गई: {0}"
}
}

View File

@ -164,7 +164,8 @@
"concurrent_prefetch_limit": "Ograničenje istodobnog preuzimanja videa",
"customize": "Prilagodi",
"invalid_url": "Neispravni URL!",
"add": "Dodaj"
"add": "Dodaj",
"delete_group_confirm": "Izbrisati ovu grupu?"
},
"player": {
"watch_on": "Gledaj na {0}",

View File

@ -151,7 +151,8 @@
"download_frame": "Keret letöltése",
"customize": "Testreszab",
"invalid_url": "Érvénytelen URL!",
"add": "Hozzáadás"
"add": "Hozzáadás",
"delete_group_confirm": "Törli ezt a csoportot?"
},
"video": {
"ratings_disabled": "Értékelések Letiltva",

View File

@ -155,7 +155,8 @@
"concurrent_prefetch_limit": "同時に先読みするストリーム数上限",
"add": "追加",
"invalid_url": "無効なURLです",
"customize": "追加"
"customize": "追加",
"delete_group_confirm": "このグループを削除しますか?"
},
"comment": {
"pinned_by": "{author} によって固定",

View File

@ -127,7 +127,12 @@
"clone_playlist": "Klonēt Atskaņošanas Saturu",
"uses_api_from": "Izmanto API no ",
"add_to_playlist": "Pievienot Atskaņošanas Sarakstam",
"instances_not_shown": "Publiskās instances, kas šeit nav redzamas, pašlaik nav pieejamas."
"instances_not_shown": "Publiskās instances, kas šeit nav redzamas, pašlaik nav pieejamas.",
"delete_group_confirm": "Vai vēlaties dzēst šo grupu?",
"concurrent_prefetch_limit": "Vienlaicīgu Straumju Ielādes Limits",
"customize": "Pielāgot",
"invalid_url": "Nederīgs URL!",
"add": "Pievienot"
},
"search": {
"all": "YouTube: Visi",
@ -161,7 +166,9 @@
"playlists": "Atskaņošanas saraksts",
"register": "Reģistrēties",
"player": "Atskaņotājs",
"dearrow": "DeArrow"
"dearrow": "DeArrow",
"albums": "Albumi",
"custom_instances": "Pielāgotas instances"
},
"video": {
"all": "Visi",
@ -207,7 +214,9 @@
"has_cdn": "Vai ir satura piegādes tīkls?",
"instance_name": "Instances Nosaukums",
"registered_users": "Reģistrētie Lietotāji",
"instance_locations": "Instances Atrašanās Vietas"
"instance_locations": "Instances Atrašanās Vietas",
"uptime_30d": "Darbspējas laiks (30d)",
"api_url": "Api URL"
},
"login": {
"username": "Lietotājvārds",

View File

@ -131,7 +131,8 @@
"concurrent_prefetch_limit": "Limiet voor gelijk­tijdige stream-prefetching",
"customize": "Aanpassen",
"add": "Toevoegen",
"invalid_url": "Ongeldige URL!"
"invalid_url": "Ongeldige URL!",
"delete_group_confirm": "Deze groep verwijderen?"
},
"titles": {
"register": "Registreren",
@ -141,20 +142,20 @@
"history": "Geschiedenis",
"subscriptions": "Abonnementen",
"trending": "Populair",
"playlists": "Afspeellijsten",
"playlists": "Afspeel­sten",
"account": "Account",
"instance": "Instantie",
"player": "Speler",
"livestreams": "Livestreams",
"channels": "Kanalen",
"bookmarks": "Bladwijzers",
"bookmarks": "Blad­zers",
"dearrow": "DeArrow",
"channel_groups": "Kanaal­groepen",
"albums": "Albums",
"custom_instances": "Aangepaste instanties"
},
"player": {
"watch_on": "Bekijken op {0}",
"watch_on": "Bekijken op {0}",
"failed": "Mislukt met foutcode {0}, zie logboeken voor meer informatie"
},
"search": {

View File

@ -155,7 +155,8 @@
"concurrent_prefetch_limit": "Limit równoczesnego pobierania wstępnego strumienia",
"customize": "Dostosuj",
"invalid_url": "Nieprawidłowy adres URL!",
"add": "Dodaj"
"add": "Dodaj",
"delete_group_confirm": "Usunąć tę grupę?"
},
"comment": {
"pinned_by": "Przypięty przez {author}",

View File

@ -27,7 +27,7 @@
"back": "Recuar",
"uses_api_from": "Utiliza a \"API\" de ",
"enable_sponsorblock": "Ativar \"SponsorBlock\"",
"skip_intro": "Ignorar intermissão/animação de introdução",
"skip_intro": "Ignorar intromissão/animação de introdução",
"skip_outro": "Ignorar cartões finais/créditos",
"skip_preview": "Ignorar pré-visualização/recapitulação",
"auto": "Automático",
@ -148,10 +148,11 @@
"instance_privacy_policy": "Política de privacidade",
"add_to_group": "Adicionar ao grupo",
"instances_not_shown": "As instâncias públicas que, atualmente, estejam indisponíveis, não serão mostradas aqui.",
"concurrent_prefetch_limit": "Limite de pré-busca de fluxo simultâneo",
"concurrent_prefetch_limit": "Limite de obtenção para fluxos simultâneos",
"customize": "Personalizar",
"invalid_url": "URL inválido!",
"add": "Adicionar"
"add": "Adicionar",
"delete_group_confirm": "Eliminar este grupo?"
},
"preferences": {
"instance_name": "Nome da instância",

View File

@ -131,7 +131,8 @@
"concurrent_prefetch_limit": "Limite de pré-busca de fluxo simultâneo",
"customize": "Personalizar",
"invalid_url": "URL inválida!",
"add": "Adicionar"
"add": "Adicionar",
"delete_group_confirm": "Excluir este grupo?"
},
"titles": {
"history": "Histórico",

View File

@ -131,7 +131,8 @@
"instances_not_shown": "Instanțele publice care nu sunt afișate aici nu sunt disponibile în prezent.",
"customize": "Customizează",
"invalid_url": "URL nevalid!",
"add": "Adăugați"
"add": "Adăugați",
"delete_group_confirm": "Să șterg acest grup?"
},
"preferences": {
"ssl_score": "Scor SSL",

View File

@ -131,7 +131,8 @@
"generate_qrcode": "Vygenerovať QR kód",
"customize": "Prispôsobiť",
"invalid_url": "Neplatná adresa URL!",
"add": "Pridať"
"add": "Pridať",
"delete_group_confirm": "Vymazať túto skupinu?"
},
"player": {
"watch_on": "Zobraziť na {0}",

View File

@ -147,7 +147,8 @@
"concurrent_prefetch_limit": "Ограничење претходног преузимања истовремених стримова",
"invalid_url": "Неважећа URL адреса!",
"add": "Додај",
"customize": "Прилагоди"
"customize": "Прилагоди",
"delete_group_confirm": "Избрисати ову групу?"
},
"preferences": {
"instance_locations": "Локације инстанце",

View File

@ -131,7 +131,8 @@
"concurrent_prefetch_limit": "Eşzamanlı Akış Ön Getirme Sınırı",
"invalid_url": "Geçersiz URL!",
"customize": "Özelleştir",
"add": "Ekle"
"add": "Ekle",
"delete_group_confirm": "Bu grup silinsin mi?"
},
"player": {
"watch_on": "{0} üzerinde görüntüle",

View File

@ -141,7 +141,8 @@
"concurrent_prefetch_limit": "Обмеження одночасної передвибірки потоків",
"customize": "Налаштувати",
"invalid_url": "Неправильна URL-адреса!",
"add": "Додати"
"add": "Додати",
"delete_group_confirm": "Видалити цю групу?"
},
"titles": {
"register": "Реєстрація",

View File

@ -131,7 +131,8 @@
"concurrent_prefetch_limit": "并行流预获取限制",
"customize": "自定义",
"invalid_url": "无效的 URL",
"add": "添加"
"add": "添加",
"delete_group_confirm": "删除该组吗?"
},
"video": {
"sponsor_segments": "赞助商部分",