mirror of https://github.com/FreeTubeApp/FreeTube
Merge branch 'FreeTubeApp:development' into development
This commit is contained in:
commit
72b8d18402
|
@ -11,7 +11,7 @@ jobs:
|
|||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: github/issue-labeler@v3.2
|
||||
- uses: github/issue-labeler@v3.3
|
||||
with:
|
||||
configuration-path: .github/issue-labeler.yml
|
||||
enable-versioned-regex: 0
|
||||
|
|
12
package.json
12
package.json
|
@ -62,7 +62,7 @@
|
|||
"autolinker": "^4.0.0",
|
||||
"electron-context-menu": "^3.6.1",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"marked": "^9.1.5",
|
||||
"marked": "^10.0.0",
|
||||
"path-browserify": "^1.0.1",
|
||||
"process": "^0.11.10",
|
||||
"video.js": "7.21.5",
|
||||
|
@ -80,23 +80,23 @@
|
|||
"youtubei.js": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.23.2",
|
||||
"@babel/eslint-parser": "^7.22.15",
|
||||
"@babel/core": "^7.23.3",
|
||||
"@babel/eslint-parser": "^7.23.3",
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/preset-env": "^7.23.2",
|
||||
"@babel/preset-env": "^7.23.3",
|
||||
"@double-great/stylelint-a11y": "^2.0.2",
|
||||
"babel-loader": "^9.1.3",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"css-minimizer-webpack-plugin": "^5.0.1",
|
||||
"electron": "^27.0.3",
|
||||
"electron": "^27.0.4",
|
||||
"electron-builder": "^24.6.4",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-jsonc": "^2.10.0",
|
||||
"eslint-plugin-n": "^16.2.0",
|
||||
"eslint-plugin-n": "^16.3.1",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-unicorn": "^49.0.0",
|
||||
|
|
|
@ -4,6 +4,8 @@ import FtSettingsSection from '../ft-settings-section/ft-settings-section.vue'
|
|||
import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
|
||||
import FtInputTags from '../../components/ft-input-tags/ft-input-tags.vue'
|
||||
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
||||
import { showToast } from '../../helpers/utils'
|
||||
import { checkYoutubeId, findChannelTagInfo } from '../../helpers/channels'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'PlayerSettings',
|
||||
|
@ -13,7 +15,18 @@ export default defineComponent({
|
|||
'ft-input-tags': FtInputTags,
|
||||
'ft-flex-box': FtFlexBox,
|
||||
},
|
||||
data: function () {
|
||||
return {
|
||||
channelHiderDisabled: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
backendOptions: function () {
|
||||
return {
|
||||
preference: this.$store.getters.getBackendPreference,
|
||||
fallback: this.$store.getters.getBackendFallback
|
||||
}
|
||||
},
|
||||
hideVideoViews: function () {
|
||||
return this.$store.getters.getHideVideoViews
|
||||
},
|
||||
|
@ -92,14 +105,20 @@ export default defineComponent({
|
|||
hideSubscriptionsLive: function () {
|
||||
return this.$store.getters.getHideSubscriptionsLive
|
||||
},
|
||||
hideSubscriptionsCommunity: function() {
|
||||
hideSubscriptionsCommunity: function () {
|
||||
return this.$store.getters.getHideSubscriptionsCommunity
|
||||
},
|
||||
showDistractionFreeTitles: function () {
|
||||
return this.$store.getters.getShowDistractionFreeTitles
|
||||
},
|
||||
channelsHidden: function () {
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden)
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden).map((ch) => {
|
||||
// Legacy support
|
||||
if (typeof ch === 'string') {
|
||||
return { name: ch, preferredName: '', icon: '' }
|
||||
}
|
||||
return ch
|
||||
})
|
||||
},
|
||||
hideSubscriptionsLiveTooltip: function () {
|
||||
return this.$t('Tooltips.Distraction Free Settings.Hide Subscriptions Live', {
|
||||
|
@ -109,6 +128,9 @@ export default defineComponent({
|
|||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.verifyChannelsHidden()
|
||||
},
|
||||
methods: {
|
||||
handleHideRecommendedVideos: function (value) {
|
||||
if (value) {
|
||||
|
@ -117,9 +139,51 @@ export default defineComponent({
|
|||
|
||||
this.updateHideRecommendedVideos(value)
|
||||
},
|
||||
handleInvalidChannel: function () {
|
||||
showToast(this.$t('Settings.Distraction Free Settings.Hide Channels Invalid'))
|
||||
},
|
||||
handleChannelAPIError: function () {
|
||||
showToast(this.$t('Settings.Distraction Free Settings.Hide Channels API Error'))
|
||||
},
|
||||
handleChannelsHidden: function (value) {
|
||||
this.updateChannelsHidden(JSON.stringify(value))
|
||||
},
|
||||
handleChannelsExists: function () {
|
||||
showToast(this.$t('Settings.Distraction Free Settings.Hide Channels Already Exists'))
|
||||
},
|
||||
validateChannelId: function (text) {
|
||||
return checkYoutubeId(text)
|
||||
},
|
||||
findChannelTagInfo: async function (text) {
|
||||
return await findChannelTagInfo(text, this.backendOptions)
|
||||
},
|
||||
verifyChannelsHidden: async function () {
|
||||
const channelsHiddenCpy = [...this.channelsHidden]
|
||||
|
||||
for (let i = 0; i < channelsHiddenCpy.length; i++) {
|
||||
const tag = this.channelsHidden[i]
|
||||
|
||||
// if channel has been processed and confirmed as non existent, skip
|
||||
if (tag.invalid) continue
|
||||
|
||||
// process if no preferred name and is possibly a YouTube ID
|
||||
if (tag.preferredName === '' && checkYoutubeId(tag.name)) {
|
||||
this.channelHiderDisabled = true
|
||||
|
||||
const { preferredName, icon, iconHref, invalidId } = await this.findChannelTagInfo(tag.name)
|
||||
if (invalidId) {
|
||||
channelsHiddenCpy[i] = { name: tag.name, invalid: invalidId }
|
||||
} else {
|
||||
channelsHiddenCpy[i] = { name: tag.name, preferredName, icon, iconHref }
|
||||
}
|
||||
|
||||
// update on every tag in case it closes
|
||||
this.handleChannelsHidden(channelsHiddenCpy)
|
||||
}
|
||||
}
|
||||
|
||||
this.channelHiderDisabled = false
|
||||
},
|
||||
|
||||
...mapActions([
|
||||
'updateHideVideoViews',
|
||||
|
|
|
@ -230,12 +230,19 @@
|
|||
<br class="hide-on-mobile">
|
||||
<ft-flex-box>
|
||||
<ft-input-tags
|
||||
:disabled="channelHiderDisabled"
|
||||
:disabled-msg="$t('Settings.Distraction Free Settings.Hide Channels Disabled Message')"
|
||||
:label="$t('Settings.Distraction Free Settings.Hide Channels')"
|
||||
:placeholder="$t('Settings.Distraction Free Settings.Hide Channels Placeholder')"
|
||||
:tag-name-placeholder="$t('Settings.Distraction Free Settings.Hide Channels Placeholder')"
|
||||
:show-action-button="true"
|
||||
:tag-list="channelsHidden"
|
||||
:tooltip="$t('Tooltips.Distraction Free Settings.Hide Channels')"
|
||||
:validate-tag-name="validateChannelId"
|
||||
:find-tag-info="findChannelTagInfo"
|
||||
@invalid-name="handleInvalidChannel"
|
||||
@error-find-tag-info="handleChannelAPIError"
|
||||
@change="handleChannelsHidden"
|
||||
@already-exists="handleChannelsExists"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
</ft-settings-section>
|
||||
|
|
|
@ -7,8 +7,13 @@
|
|||
inline-size: 60%;
|
||||
}
|
||||
|
||||
.disabledMsg {
|
||||
color: rgb(233, 255, 108);
|
||||
padding-block-end: 10px;
|
||||
}
|
||||
|
||||
.ft-tag-box ul {
|
||||
overflow: auto;
|
||||
overflow: visible;
|
||||
display: block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
@ -19,24 +24,36 @@
|
|||
background-color: var(--card-bg-color);
|
||||
margin: 5px;
|
||||
border-radius: 5px;
|
||||
display:flex;
|
||||
display: flex;
|
||||
float: var(--float-left-ltr-rtl-value);
|
||||
}
|
||||
|
||||
.ft-tag-box li>span {
|
||||
padding-block: 10px;
|
||||
padding-inline-start: 10px;
|
||||
padding-inline: 10px;
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
hyphens: auto;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
.tag-icon {
|
||||
border-radius: 50%;
|
||||
block-size: 24px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.tag-icon-link {
|
||||
margin: auto;
|
||||
margin-inline-start: 10px;
|
||||
}
|
||||
|
||||
.removeTagButton {
|
||||
color: var(--primary-text-color);
|
||||
opacity: 0.5;
|
||||
padding: 10px;
|
||||
padding-inline-start: 0px;
|
||||
}
|
||||
|
||||
.removeTagButton:hover {
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
import { defineComponent } from 'vue'
|
||||
import FtInput from '../ft-input/ft-input.vue'
|
||||
import FtTooltip from '../ft-tooltip/ft-tooltip.vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'FtInputTags',
|
||||
components: {
|
||||
'ft-input': FtInput,
|
||||
'ft-tooltip': FtTooltip
|
||||
},
|
||||
props: {
|
||||
placeholder: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
disabledMsg: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
tagNamePlaceholder: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
|
@ -28,27 +34,48 @@ export default defineComponent({
|
|||
tooltip: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
validateTagName: {
|
||||
type: Function,
|
||||
default: (_) => true
|
||||
},
|
||||
findTagInfo: {
|
||||
type: Function,
|
||||
default: (_) => ({ preferredName: '', icon: '' }),
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateTags: function (text, e) {
|
||||
updateTags: async function (text, _e) {
|
||||
// text entered add tag and update tag list
|
||||
const trimmedText = text.trim()
|
||||
if (!this.tagList.includes(trimmedText)) {
|
||||
const newList = this.tagList.slice(0)
|
||||
newList.push(trimmedText)
|
||||
this.$emit('change', newList)
|
||||
const name = text.trim()
|
||||
|
||||
if (!this.validateTagName(name)) {
|
||||
this.$emit('invalid-name')
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.tagList.some((tag) => tag.name === name)) {
|
||||
// tag info searching allow api calls to be used
|
||||
const { preferredName, icon, iconHref, err } = await this.findTagInfo(name)
|
||||
|
||||
if (err) {
|
||||
this.$emit('error-find-tag-info')
|
||||
return
|
||||
}
|
||||
|
||||
const newTag = { name, preferredName, icon, iconHref }
|
||||
this.$emit('change', [...this.tagList, newTag])
|
||||
} else {
|
||||
this.$emit('already-exists')
|
||||
}
|
||||
|
||||
// clear input box
|
||||
this.$refs.childinput.handleClearTextClick()
|
||||
this.$refs.tagNameInput.handleClearTextClick()
|
||||
},
|
||||
removeTag: function (tag) {
|
||||
// Remove tag from list
|
||||
const tagName = tag.trim()
|
||||
if (this.tagList.includes(tagName)) {
|
||||
const newList = this.tagList.slice(0)
|
||||
const index = newList.indexOf(tagName)
|
||||
newList.splice(index, 1)
|
||||
if (this.tagList.some((tmpTag) => tmpTag.name === tag.name)) {
|
||||
const newList = this.tagList.filter((tmpTag) => tmpTag.name !== tag.name)
|
||||
this.$emit('change', newList)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,16 @@
|
|||
<div
|
||||
class="ft-input-tags-component"
|
||||
>
|
||||
<div
|
||||
v-if="disabled"
|
||||
class="disabledMsg"
|
||||
>
|
||||
{{ disabledMsg }}
|
||||
</div>
|
||||
<ft-input
|
||||
ref="childinput"
|
||||
:placeholder="placeholder"
|
||||
ref="tagNameInput"
|
||||
:disabled="disabled"
|
||||
:placeholder="tagNamePlaceholder"
|
||||
:label="label"
|
||||
:show-label="true"
|
||||
:tooltip="tooltip"
|
||||
|
@ -13,15 +20,26 @@
|
|||
:force-action-button-icon-name="['fas', 'arrow-right']"
|
||||
@click="updateTags"
|
||||
/>
|
||||
|
||||
<div class="ft-tag-box">
|
||||
<ul>
|
||||
<li
|
||||
v-for="tag in tagList"
|
||||
:key="tag.id"
|
||||
>
|
||||
<span>{{ tag }}</span>
|
||||
<router-link
|
||||
v-if="tag.icon"
|
||||
:to="tag.iconHref ?? ''"
|
||||
class="tag-icon-link"
|
||||
>
|
||||
<img
|
||||
:src="tag.icon"
|
||||
alt=""
|
||||
class="tag-icon"
|
||||
>
|
||||
</router-link>
|
||||
<span>{{ (tag.preferredName) ? tag.preferredName : tag.name }}</span>
|
||||
<font-awesome-icon
|
||||
v-if="!disabled"
|
||||
:icon="['fas', 'fa-times']"
|
||||
class="removeTagButton"
|
||||
tabindex="0"
|
||||
|
|
|
@ -53,7 +53,13 @@ export default defineComponent({
|
|||
// Some component users like channel view will have this disabled
|
||||
if (!this.useChannelsHiddenPreference) { return [] }
|
||||
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden)
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden).map((ch) => {
|
||||
// Legacy support
|
||||
if (typeof ch === 'string') {
|
||||
return { name: ch, preferredName: '', icon: '' }
|
||||
}
|
||||
return ch
|
||||
})
|
||||
},
|
||||
hideUpcomingPremieres: function () {
|
||||
return this.$store.getters.getHideUpcomingPremieres
|
||||
|
@ -87,7 +93,7 @@ export default defineComponent({
|
|||
// hide upcoming
|
||||
return false
|
||||
}
|
||||
if (this.channelsHidden.includes(data.authorId) || this.channelsHidden.includes(data.author)) {
|
||||
if (this.channelsHidden.some(ch => ch.name === data.authorId) || this.channelsHidden.some(ch => ch.name === data.author)) {
|
||||
// hide videos by author
|
||||
return false
|
||||
}
|
||||
|
@ -101,7 +107,7 @@ export default defineComponent({
|
|||
data.author,
|
||||
data.authorId,
|
||||
]
|
||||
if (attrsToCheck.some(a => a != null && this.channelsHidden.includes(a))) {
|
||||
if (attrsToCheck.some(a => a != null && this.channelsHidden.some(ch => ch.name === a))) {
|
||||
// hide channels by author
|
||||
return false
|
||||
}
|
||||
|
@ -115,7 +121,7 @@ export default defineComponent({
|
|||
data.author,
|
||||
data.authorId,
|
||||
]
|
||||
if (attrsToCheck.some(a => a != null && this.channelsHidden.includes(a))) {
|
||||
if (attrsToCheck.some(a => a != null && this.channelsHidden.some(ch => ch.name === a))) {
|
||||
// hide playlists by author
|
||||
return false
|
||||
}
|
||||
|
|
|
@ -58,12 +58,18 @@ export default defineComponent({
|
|||
// Some component users like channel view will have this disabled
|
||||
if (!this.useChannelsHiddenPreference) { return [] }
|
||||
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden)
|
||||
return JSON.parse(this.$store.getters.getChannelsHidden).map((ch) => {
|
||||
// Legacy support
|
||||
if (typeof ch === 'string') {
|
||||
return { name: ch, preferredName: '', icon: '' }
|
||||
}
|
||||
return ch
|
||||
})
|
||||
},
|
||||
|
||||
shouldBeVisible() {
|
||||
return !(this.channelsHidden.includes(this.data.authorId) ||
|
||||
this.channelsHidden.includes(this.data.author))
|
||||
return !(this.channelsHidden.some(ch => ch.name === this.data.authorId) ||
|
||||
this.channelsHidden.some(ch => ch.name === this.data.author))
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
|
@ -359,7 +359,7 @@ export default defineComponent({
|
|||
const videoId = this.id
|
||||
const data = await deArrowData(this.id)
|
||||
const cacheData = { videoId, title: null }
|
||||
if (Array.isArray(data?.titles) && data.titles.length > 0 && (data.titles[0].locked || data.titles[0].votes > 0)) {
|
||||
if (Array.isArray(data?.titles) && data.titles.length > 0 && (data.titles[0].locked || data.titles[0].votes >= 0)) {
|
||||
cacheData.title = data.titles[0].title
|
||||
}
|
||||
|
||||
|
|
|
@ -24,12 +24,21 @@
|
|||
|
||||
.commentsTitle {
|
||||
padding-block: 1em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.commentSort {
|
||||
float: var(--float-right-ltr-rtl-value);
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
.commentSort {
|
||||
float: none;
|
||||
inline-size: fit-content;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.comment {
|
||||
padding: 15px;
|
||||
position: relative;
|
||||
|
|
|
@ -2,6 +2,22 @@
|
|||
<ft-card
|
||||
class="card"
|
||||
>
|
||||
<h3
|
||||
v-if="commentData.length > 0 && !isLoading && showComments"
|
||||
class="commentsTitle"
|
||||
>
|
||||
{{ $t("Comments.Comments") }}
|
||||
<span
|
||||
class="hideComments"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
@click="showComments = false"
|
||||
@keydown.space.prevent="showComments = false"
|
||||
@keydown.enter.prevent="showComments = false"
|
||||
>
|
||||
{{ $t("Comments.Hide Comments") }}
|
||||
</span>
|
||||
</h3>
|
||||
<h4
|
||||
v-if="canPerformInitialCommentLoading"
|
||||
class="getCommentsTitle"
|
||||
|
@ -33,22 +49,6 @@
|
|||
:select-values="sortValues"
|
||||
@change="handleSortChange"
|
||||
/>
|
||||
<h3
|
||||
v-if="commentData.length > 0 && !isLoading && showComments"
|
||||
class="commentsTitle"
|
||||
>
|
||||
{{ $t("Comments.Comments") }}
|
||||
<span
|
||||
class="hideComments"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
@click="showComments = false"
|
||||
@keydown.space.prevent="showComments = false"
|
||||
@keydown.enter.prevent="showComments = false"
|
||||
>
|
||||
{{ $t("Comments.Hide Comments") }}
|
||||
</span>
|
||||
</h3>
|
||||
<div
|
||||
v-if="commentData.length > 0 && showComments"
|
||||
>
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
import { invidiousGetChannelInfo } from './api/invidious'
|
||||
import { getLocalChannel } from './api/local'
|
||||
|
||||
/**
|
||||
* @param {string} id
|
||||
* @param {{
|
||||
* preference: string,
|
||||
* fallback: boolean,
|
||||
* invalid: boolean,
|
||||
* }} backendOptions
|
||||
*/
|
||||
async function findChannelById(id, backendOptions) {
|
||||
try {
|
||||
if (!process.env.IS_ELECTRON || backendOptions.preference === 'invidious') {
|
||||
return await invidiousGetChannelInfo(id)
|
||||
} else {
|
||||
return await getLocalChannel(id)
|
||||
}
|
||||
} catch (err) {
|
||||
// don't bother with fallback if channel doesn't exist
|
||||
if (err.message && err.message === 'This channel does not exist.') {
|
||||
return { invalid: true }
|
||||
}
|
||||
if (process.env.IS_ELECTRON && backendOptions.fallback) {
|
||||
if (backendOptions.preference === 'invidious') {
|
||||
return await getLocalChannel(id)
|
||||
}
|
||||
if (backendOptions.preference === 'local') {
|
||||
return await invidiousGetChannelInfo(id)
|
||||
}
|
||||
} else {
|
||||
throw err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} id
|
||||
* @param {{
|
||||
* preference: string,
|
||||
* fallback: boolean,
|
||||
* }} backendOptions
|
||||
* @returns {Promise<{icon: string, iconHref: string, preferredName: string} | { invalidId: boolean }>}
|
||||
*/
|
||||
export async function findChannelTagInfo(id, backendOptions) {
|
||||
if (!/UC\S{22}/.test(id)) return { invalidId: true }
|
||||
try {
|
||||
const channel = await findChannelById(id, backendOptions)
|
||||
if (!process.env.IS_ELECTRON || backendOptions.preference === 'invidious') {
|
||||
if (channel.invalid) return { invalidId: true }
|
||||
return {
|
||||
preferredName: channel.author,
|
||||
icon: channel.authorThumbnails[0].url
|
||||
}
|
||||
} else {
|
||||
if (channel.alert) return { invalidId: true }
|
||||
return {
|
||||
preferredName: channel.header.author.name,
|
||||
icon: channel.header.author.thumbnails.pop().url,
|
||||
iconHref: `/channel/${id}`
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
return { preferredName: '', icon: '', iconHref: '', err }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether Id provided might be a YouTube Id
|
||||
* @param {string} id
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function checkYoutubeId(id) {
|
||||
return /UC\S{22}/.test(id)
|
||||
}
|
|
@ -11,7 +11,7 @@ async function getVideoHash(videoId) {
|
|||
.join('')
|
||||
}
|
||||
export async function sponsorBlockSkipSegments(videoId, categories) {
|
||||
const videoIdHashPrefix = await getVideoHash(videoId)
|
||||
const videoIdHashPrefix = (await getVideoHash(videoId)).substring(0, 4)
|
||||
const requestUrl = `${store.getters.getSponsorBlockUrl}/api/skipSegments/${videoIdHashPrefix}?categories=${JSON.stringify(categories)}`
|
||||
|
||||
try {
|
||||
|
|
|
@ -413,7 +413,7 @@ Settings:
|
|||
Hide Chapters: إخفاء الفصول
|
||||
Hide Upcoming Premieres: إخفاء العروض الأولى القادمة
|
||||
Hide Channels: إخفاء مقاطع الفيديو من القنوات
|
||||
Hide Channels Placeholder: اسم القناة أو معرفها
|
||||
Hide Channels Placeholder: معرف القناة
|
||||
Display Titles Without Excessive Capitalisation: عرض العناوين بدون احرف كبيرة
|
||||
بشكل مفرط
|
||||
Hide Featured Channels: إخفاء القنوات المميزة
|
||||
|
@ -434,6 +434,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: إخفاء صور الملف الشخصي في التعليقات
|
||||
Blur Thumbnails: اخفاء الصور المصغرة
|
||||
Hide Subscriptions Community: إخفاء مجتمع الاشتراكات
|
||||
Hide Channels Invalid: معرف القناة المقدم غير صالح
|
||||
Hide Channels Disabled Message: تم حظر بعض القنوات باستخدام المعرّف ولم تتم معالجتها.
|
||||
يتم حظر الميزة أثناء تحديث هذه المعرفات
|
||||
Hide Channels Already Exists: معرف القناة موجود بالفعل
|
||||
Hide Channels API Error: حدث خطأ أثناء استرداد المستخدم بالمعرف المدخل. يرجى
|
||||
التحقق مرة أخرى إذا كان المعرف صحيحا.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: البرنامج
|
||||
يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟
|
||||
Proxy Settings:
|
||||
|
@ -964,9 +970,9 @@ Tooltips:
|
|||
وتمكين ذاكرة تخزين مؤقت للصور في الذاكرة. سيؤدي إلى زيادة استخدام ذاكرة الوصول
|
||||
العشوائي.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: أدخل اسم قناة أو معرّف القناة لإخفاء جميع مقاطع الفيديو وقوائم
|
||||
التشغيل والقناة نفسها من الظهور في البحث والشهرة والأكثر شعبية والموصى بها.
|
||||
يجب أن يكون اسم القناة الذي تم إدخاله مطابقًا تمامًا وحساسًا لحالة الأحرف.
|
||||
Hide Channels: أدخل معرف القناة لإخفاء جميع مقاطع الفيديو وقوائم التشغيل والقناة
|
||||
نفسها من الظهور في نتائج البحث والشائعة والأكثر شهرة والموصى بها. يجب أن يكون
|
||||
معرف القناة الذي تم إدخاله متطابقًا تمامًا وأن يكون حساسًا لحالة الأحرف.
|
||||
Hide Subscriptions Live: يتم تجاوز هذا الإعداد من خلال إعداد "{appWideSetting}"
|
||||
على مستوى التطبيق، في قسم "{subsection}" من "{settingsSection}"
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -346,7 +346,7 @@ Settings:
|
|||
Hide Chapters: Skrýt kapitoly
|
||||
Hide Upcoming Premieres: Skrýt nadcházející premiéry
|
||||
Hide Channels: Skrýt videa z kanálů
|
||||
Hide Channels Placeholder: Název nebo ID kanálu
|
||||
Hide Channels Placeholder: ID kanálu
|
||||
Display Titles Without Excessive Capitalisation: Zobrazit názvy bez nadměrného
|
||||
použití velkých písmen
|
||||
Hide Featured Channels: Skrýt doporučené kanály
|
||||
|
@ -367,6 +367,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Skrýt profilové obrázky v komentářích
|
||||
Blur Thumbnails: Rozmazat náhledy
|
||||
Hide Subscriptions Community: Skrýt komunitu odběratelů
|
||||
Hide Channels Invalid: Zadané ID kanálu je neplatné
|
||||
Hide Channels Disabled Message: Některé kanály byly zablokovány pomocí ID a nebyly
|
||||
zpracovány. Při aktualizaci těchto ID je funkce zablokována
|
||||
Hide Channels Already Exists: ID kanálu již existuje
|
||||
Hide Channels API Error: Chyba při načítání uživatele se zadaným ID. Zkontrolujte
|
||||
prosím, zda je zadané ID správné.
|
||||
Data Settings:
|
||||
Data Settings: 'Nastavení dat'
|
||||
Select Import Type: 'Vybrat typ importu'
|
||||
|
@ -946,10 +952,9 @@ Tooltips:
|
|||
Replace HTTP Cache: Zakáže mezipaměť HTTP Electronu a povolí vlastní paměťovou
|
||||
mezipaměť pro obrázky v paměti. Povede to ke zvýšenému využití RAM.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Zadejte název nebo ID kanálu pro skrytí všech videí, playlistů
|
||||
a samotného kanálu před zobrazením ve vyhledávání, trendech, nejpopulárnějších
|
||||
a doporučených. Zadaný název kanálu se musí zcela shodovat a rozlišují se v
|
||||
něm velká a malá písmena.
|
||||
Hide Channels: Zadejte ID kanálu pro skrytí všech videí, playlistů a samotného
|
||||
kanálu před zobrazením ve vyhledávání, trendech, nejpopulárnějších a doporučených.
|
||||
Zadané ID kanálu se musí zcela shodovat a rozlišují se v něm velká a malá písmena.
|
||||
Hide Subscriptions Live: Toto nastavení je nadřazeno nastavením celé aplikace
|
||||
„{appWideSetting}“ v části „{subsection}“ v části „{settingsSection}“
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -161,6 +161,7 @@ Settings:
|
|||
Middle: 'Μέση'
|
||||
End: 'Τέλος'
|
||||
Hidden: Κρυμμένο
|
||||
Blur: ''
|
||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Διακομιστής
|
||||
Invidious (προεπιλογή https://invidious.snopyta.org)'
|
||||
Region for Trending: 'Περιοχή που καθορίζει την καρτέλα των τάσεων'
|
||||
|
|
|
@ -366,7 +366,11 @@ Settings:
|
|||
Hide Sharing Actions: Hide Sharing Actions
|
||||
Hide Chapters: Hide Chapters
|
||||
Hide Channels: Hide Videos From Channels
|
||||
Hide Channels Placeholder: Channel Name or ID
|
||||
Hide Channels Disabled Message: Some channels were blocked using ID and weren't processed. Feature is blocked while those IDs are updating
|
||||
Hide Channels Placeholder: Channel ID
|
||||
Hide Channels Invalid: Channel ID provided was invalid
|
||||
Hide Channels API Error: Error retrieving user with the ID provided. Please check again if the ID is correct.
|
||||
Hide Channels Already Exists: Channel ID already exists
|
||||
Hide Featured Channels: Hide Featured Channels
|
||||
Hide Channel Playlists: Hide Channel Playlists
|
||||
Hide Channel Community: Hide Channel Community
|
||||
|
@ -867,8 +871,8 @@ Tooltips:
|
|||
you want to be passed to the external player.
|
||||
DefaultCustomArgumentsTemplate: "(Default: '{defaultCustomArguments}')"
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Enter a channel name or channel ID to hide all videos, playlists and the channel itself from appearing in search, trending, most popular and recommended.
|
||||
The channel name entered must be a complete match and is case sensitive.
|
||||
Hide Channels: Enter a channel ID to hide all videos, playlists and the channel itself from appearing in search, trending, most popular and recommended.
|
||||
The channel ID entered must be a complete match and is case sensitive.
|
||||
Hide Subscriptions Live: 'This setting is overridden by the app-wide "{appWideSetting}" setting, in the "{subsection}" section of the "{settingsSection}"'
|
||||
Subscription Settings:
|
||||
Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default
|
||||
|
|
|
@ -420,7 +420,7 @@ Settings:
|
|||
Hide Chapters: Ocultar los capítulos
|
||||
Hide Upcoming Premieres: Ocultar los próximos estrenos
|
||||
Hide Channels: Ocultar los vídeos de los canales
|
||||
Hide Channels Placeholder: Nombre o ID del canal
|
||||
Hide Channels Placeholder: ID del canal
|
||||
Display Titles Without Excessive Capitalisation: Mostrar títulos sin demasiadas
|
||||
mayúsculas
|
||||
Hide Featured Channels: Ocultar los canales recomendados
|
||||
|
@ -441,6 +441,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Ocultar las fotos del perfil en los comentarios
|
||||
Blur Thumbnails: Difuminar las miniaturas
|
||||
Hide Subscriptions Community: Ocultar las suscripciones a la comunidad
|
||||
Hide Channels Invalid: El ID del canal proporcionado no es válido
|
||||
Hide Channels Disabled Message: Algunos canales se bloquearon por ID y no se procesaron.
|
||||
La función está bloqueada mientras se actualizan esos ID
|
||||
Hide Channels Already Exists: El ID del canal ya existe
|
||||
Hide Channels API Error: Error al recuperar el usuario con el ID proporcionado.
|
||||
Por favor, compruebe de nuevo si el ID es correcto.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres
|
||||
reiniciar FreeTube ahora para aplicar los cambios?
|
||||
Proxy Settings:
|
||||
|
@ -996,10 +1002,10 @@ Tooltips:
|
|||
una caché para la imagen en la memoria personalizada. Esto aumentará el uso
|
||||
de la memoria RAM.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Ingresa un nombre del canal o un ID del canal para ocultar todos
|
||||
los videos, listas de reproducción y el propio canal para que no aparezcan en
|
||||
la búsqueda, tendencias, más populares y recomendados. El nombre del canal ingresado
|
||||
debe ser una coincidencia completa y distinguir entre mayúsculas y minúsculas.
|
||||
Hide Channels: Introduzca un ID del canal para ocultar todos los vídeos, listas
|
||||
de reproducción y el propio canal para que no aparezcan en las búsquedas, tendencias,
|
||||
más populares y recomendados. El ID del canal introducido debe coincidir completamente
|
||||
y se debe distinguir entre mayúsculas y minúsculas.
|
||||
Hide Subscriptions Live: Esta configuración se reemplaza por la configuración
|
||||
«{appWideSetting}» de toda la aplicación, en la sección «{subsection}» de «{settingsSection}»
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -391,7 +391,7 @@ Settings:
|
|||
Hide Upcoming Premieres: Peida tulevased esilinastused
|
||||
Hide Chapters: Peida peatükid
|
||||
Hide Channels: Peida kanalites leiduvad videod
|
||||
Hide Channels Placeholder: Kanali nimi või tunnus
|
||||
Hide Channels Placeholder: Kanali tunnus
|
||||
Display Titles Without Excessive Capitalisation: Näita pealkirju ilma liigsete
|
||||
suurtähtedeta
|
||||
Sections:
|
||||
|
@ -412,6 +412,13 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Peida kommentaaride profiilipildid
|
||||
Blur Thumbnails: Hägusta pisipildid
|
||||
Hide Subscriptions Community: Peida tellijate loend
|
||||
Hide Channels Invalid: Sisestatud kanali tunnus on vigane
|
||||
Hide Channels Disabled Message: Mõned kanalid on blokeeritud nende tunnuste alusel
|
||||
ja nende andmeid ei töödelda. See funktsionaalsus pole kasutusel, kui nendes
|
||||
kanalites toimub muutusi
|
||||
Hide Channels Already Exists: Selline kanali tunnus juba on sul kirjas
|
||||
Hide Channels API Error: Selle kanali tunnus alusel andmete või kasutaja andmete
|
||||
laadimine ei õnnestunud. Palun kontrolli, et kanali tunnus oleks õige.
|
||||
Proxy Settings:
|
||||
Error getting network information. Is your proxy configured properly?: Võrguteavet
|
||||
ei õnnestu leida. Kas sa oled puhverserveri ikka korralikult seadistanud?
|
||||
|
@ -919,10 +926,10 @@ Tooltips:
|
|||
Skip by Scrolling Over Video Player: MPV-stiilis video läbilappamiseks kasuta
|
||||
hiire ratast.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Sisesta kanali nimi või kanali ID, et kõik videod, esitusloendid
|
||||
ja kanal ise ei oleks nähtav otsingus, soovitatavate videote, populaarsete videote
|
||||
ja populaarsust koguvate videote vaates. Sisestatud kanali nimi peab otsingule
|
||||
vastama täielikult ja on tõstutundlik.
|
||||
Hide Channels: Sisesta kanali tunnus, et kõik videod, esitusloendid ja kanal ise
|
||||
ei oleks nähtav otsingus, soovitatavate videote, populaarsete videote ja populaarsust
|
||||
koguvate videote vaates. Sisestatud kanali tunnus peab otsingule vastama täpselt
|
||||
ja on tõstutundlik.
|
||||
Hide Subscriptions Live: Selle seadistuse tühistab rakenduseülene „{appWideSetting}“
|
||||
seadistus „{subsection}“/„{settingsSection}“
|
||||
Experimental Settings:
|
||||
|
|
|
@ -439,7 +439,7 @@ Settings:
|
|||
Hide Chapters: Masquer les chapitres
|
||||
Hide Upcoming Premieres: Cacher les avant-premières à venir
|
||||
Hide Channels: Masquer les vidéos des chaînes
|
||||
Hide Channels Placeholder: Nom ou identifiant de la chaîne
|
||||
Hide Channels Placeholder: Identifiant de la chaîne
|
||||
Display Titles Without Excessive Capitalisation: Afficher les titres sans majuscules
|
||||
excessives
|
||||
Hide Channel Playlists: Masquer les listes de lecture des chaînes
|
||||
|
@ -460,6 +460,13 @@ Settings:
|
|||
Blur Thumbnails: Flouter les miniatures
|
||||
Hide Profile Pictures in Comments: Masquer les photos de profil dans les commentaires
|
||||
Hide Subscriptions Community: Masquer les communautés abonnées
|
||||
Hide Channels Invalid: L'identifiant de la chaîne fourni n'est pas valide
|
||||
Hide Channels Disabled Message: Certaines chaînes ont été bloquées à l'aide d'un
|
||||
identifiant et n'ont pas été traitées. La fonctionnalité est bloquée tant que
|
||||
ces identifiants sont mis à jour
|
||||
Hide Channels Already Exists: ID de chaîne déjà existant
|
||||
Hide Channels API Error: Erreur de récupération de l'utilisateur portant l'identifiant
|
||||
fourni. Veuillez vérifier à nouveau si l'ID est correct.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: L'application
|
||||
doit être redémarrée pour que les changements prennent effet. Redémarrer et appliquer
|
||||
les changements ?
|
||||
|
@ -1038,11 +1045,10 @@ Tooltips:
|
|||
un cache d'image personnalisé en mémoire. Ceci entraînera une augmentation de
|
||||
l'utilisation de la mémoire vive.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Entrez un nom de chaîne ou un identifiant de chaîne pour empêcher
|
||||
toutes les vidéos, les listes de lecture et la chaîne elle-même d'apparaître
|
||||
dans les recherches, dans les catégories Tendances, Plus populaires et Recommandés.
|
||||
Le nom de la chaîne entré doit correspondre exactement et est sensible à la
|
||||
casse.
|
||||
Hide Channels: Entrez un identifiant de chaîne pour empêcher toutes les vidéos,
|
||||
les listes de lecture et la chaîne elle-même d'apparaître dans les recherches,
|
||||
dans les catégories Tendances, Plus populaires et Recommandés. L'identifiant
|
||||
de la chaîne entré doit correspondre exactement et est sensible aux majuscules.
|
||||
Hide Subscriptions Live: Ce paramètre est remplacé par le paramètre « {appWideSetting} »
|
||||
applicable à l'ensemble de l'application, dans la section « {subsection} » de
|
||||
la section « {settingsSection} »
|
||||
|
|
|
@ -155,6 +155,7 @@ Settings:
|
|||
Middle: 'Sredina'
|
||||
End: 'Kraj'
|
||||
Hidden: Skriveno
|
||||
Blur: Neoštro
|
||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious primjerak
|
||||
(standardno se koristi https://invidious.snopyta.org)'
|
||||
Region for Trending: 'Regija za videa u trendu'
|
||||
|
@ -418,7 +419,7 @@ Settings:
|
|||
Hide Chapters: Sakrij poglavlja
|
||||
Hide Upcoming Premieres: Sakrij nadolazeće premijere
|
||||
Hide Channels: Sakrij videa iz kanala
|
||||
Hide Channels Placeholder: Ime kanala ili ID
|
||||
Hide Channels Placeholder: ID kanala
|
||||
Display Titles Without Excessive Capitalisation: Prikaži naslove bez pretjeranog
|
||||
korištenja velikih slova
|
||||
Hide Featured Channels: Sakrij istaknute kanale
|
||||
|
@ -439,6 +440,12 @@ Settings:
|
|||
Blur Thumbnails: Zamuti minijature
|
||||
Hide Profile Pictures in Comments: Sakrij slike profila u komentarima
|
||||
Hide Subscriptions Community: Sakrij pretplate zajednice
|
||||
Hide Channels Invalid: Navedeni ID kanala nije bio ispravan
|
||||
Hide Channels Disabled Message: Neki su kanali blokirani upotrebom ID-a i nisu
|
||||
obrađeni. Funkcija je blokirana tijekom aktualiziranje tih ID-ova
|
||||
Hide Channels Already Exists: ID kanala već postoji
|
||||
Hide Channels API Error: Greška pri dohvaćanju korisnika s navedenim ID-om. Ponovo
|
||||
provjeri točnost ID-a.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Promjene
|
||||
će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program?
|
||||
Proxy Settings:
|
||||
|
@ -987,9 +994,9 @@ Tooltips:
|
|||
Replace HTTP Cache: Deaktivira Electronovu HTTP predmemoriju temeljenu na disku
|
||||
i aktivira prilagođenu predmemoriju slika u memoriji. Povećava korištenje RAM-a.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Upiši ime kanala ili ID kanala za skrivanje svih videa, zbirki
|
||||
kao i samog kanala u pretrazi, trendovima popularnim i preporučenim. Upisano
|
||||
ime kanala se mora potpuno poklapati i razlikuje velika i mala slova.
|
||||
Hide Channels: Upiši ID kanala za skrivanje svih videa, zbirki kao i samog kanala
|
||||
u prikazu pretrage, trendova, najpopularniji i preporučeni. Upisani ID kanala
|
||||
se mora potpuno poklapati i razlikuje velika i mala slova.
|
||||
Hide Subscriptions Live: Ovu postavku nadjačava aplikacijska postavka „{appWideSetting}”,
|
||||
u odjeljku „{subsection}” u „{settingsSection}”
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -428,7 +428,7 @@ Settings:
|
|||
Hide Chapters: Fejezetek elrejtése
|
||||
Hide Upcoming Premieres: Közelgő első előadások elrejtése
|
||||
Hide Channels: Videók elrejtése a csatornákból
|
||||
Hide Channels Placeholder: Csatorna neve vagy azonosítója
|
||||
Hide Channels Placeholder: Csatornaazonosító
|
||||
Display Titles Without Excessive Capitalisation: Címek megjelenítése túlzott nagybetűk
|
||||
nélkül
|
||||
Hide Featured Channels: Kiemelt csatornák elrejtése
|
||||
|
@ -449,6 +449,13 @@ Settings:
|
|||
Blur Thumbnails: Indexkép elhomályosítása
|
||||
Hide Profile Pictures in Comments: Profilképek elrejtése a megjegyzésekben
|
||||
Hide Subscriptions Community: Közösségi feliratkozások elrejtése
|
||||
Hide Channels Invalid: Érvénytelen a megadott csatornaazonosító
|
||||
Hide Channels Disabled Message: Egyes csatornákat letiltottak az azonosító használatával,
|
||||
és nem dolgozták fel őket. A jellemző le van tiltva az azonosítók frissítése
|
||||
közben
|
||||
Hide Channels Already Exists: Már létezik a csatornaazonosító
|
||||
Hide Channels API Error: Hiba történt a megadott azonosítóval rendelkező felhasználó
|
||||
lekérésekor. Kérjük, ellenőrizze még egyszer, hogy helyes-e az azonosító.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Az
|
||||
alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa
|
||||
újra és alkalmazza a módosítást?
|
||||
|
@ -990,10 +997,10 @@ Tooltips:
|
|||
Replace HTTP Cache: Letiltja az Electron lemez alapú HTTP-gyorsítótárát, és engedélyezi
|
||||
az egyéni memórián belüli képgyorsítótárat. Megnövekedett RAM-használathoz vezet.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Adja meg a csatorna nevét vagy csatornaazonosítóját, hogy elrejtse
|
||||
az összes videót, lejátszási listát és magát a csatornát, hogy ne jelenjen meg
|
||||
a keresésben, illetve a felkapott, legnépszerűbb és legajánlottabb. A megadott
|
||||
csatornanévnek teljes egyezésnek kell lennie, és megkülönbözteti a kis- és nagybetűket.
|
||||
Hide Channels: Csatornaazonosító megadása, hogy elrejtse az összes videót, lejátszási
|
||||
listát és magát a csatornát, nehogy megjelenjen a keresésben, a felkapott, legnépszerűbb
|
||||
és legnépszerűbb. A megadott csatornaazonosítónak teljes egyezésnek kell lennie,
|
||||
és megkülönbözteti a kis- és nagybetűket.
|
||||
Hide Subscriptions Live: Ezt a beállítást felülírja az alkalmazásszintű „{appWideSetting}”
|
||||
beállítás a(z) „{settingsSection}” „{subsection}” szakaszában
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -428,7 +428,7 @@ Settings:
|
|||
Hide Chapters: Nascondi i capitoli
|
||||
Hide Upcoming Premieres: Nascondi le prossime Première
|
||||
Hide Channels: Nascondi i video dai canali
|
||||
Hide Channels Placeholder: Nome o ID del canale
|
||||
Hide Channels Placeholder: ID del canale
|
||||
Display Titles Without Excessive Capitalisation: Visualizza i titoli senza un
|
||||
uso eccessivo di maiuscole
|
||||
Hide Featured Channels: Nascondi i canali in evidenza
|
||||
|
@ -449,6 +449,13 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Nascondi le immagini del profilo nei commenti
|
||||
Blur Thumbnails: Miniature sfocate
|
||||
Hide Subscriptions Community: Nascondi la comunità di iscritti
|
||||
Hide Channels Invalid: L'ID canale fornito non è valido
|
||||
Hide Channels Disabled Message: Alcuni canali sono stati bloccati utilizzando
|
||||
l'ID e non sono stati elaborati. La funzionalità è bloccata durante l'aggiornamento
|
||||
di tali ID
|
||||
Hide Channels Already Exists: L'ID canale esiste già
|
||||
Hide Channels API Error: Errore durante il recupero dell'utente con l'ID fornito.
|
||||
Controlla di nuovo se l'ID è corretto.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: L'app
|
||||
deve essere riavviata affinché le modifiche abbiano effetto. Riavviare e applicare
|
||||
la modifica?
|
||||
|
@ -1005,9 +1012,9 @@ Tooltips:
|
|||
una cache di immagini in memoria personalizzata. Comporta un aumento dell'utilizzo
|
||||
della RAM.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Inserisci il nome o l'ID di un canale per impedire che tutti i
|
||||
video, le playlist e il canale stesso vengano visualizzati nelle ricerche, tendenze,
|
||||
più popolari e consigliati. Il nome del canale inserito deve avere una corrispondenza
|
||||
Hide Channels: Inserisci l'ID di un canale per impedire che tutti i video, le
|
||||
playlist e il canale stesso vengano visualizzati nelle ricerche, tendenze, più
|
||||
popolari e consigliati. Il nome del canale inserito deve avere una corrispondenza
|
||||
completa e fa distinzione tra maiuscole e minuscole.
|
||||
Hide Subscriptions Live: Questa impostazione è sovrascritta dall'impostazione
|
||||
"{appWideSetting}" a livello di app, nella sezione "{subsection}" di "{settingsSection}"
|
||||
|
|
|
@ -39,7 +39,7 @@ Global:
|
|||
Counts:
|
||||
Video Count: 1 件の動画 | {count} 件の動画
|
||||
Subscriber Count: 1 登録者 | {count} 登録者
|
||||
View Count: 1 回表示 | {count} 回表示
|
||||
View Count: 1 回視聴 | {count} 回視聴
|
||||
Watching Count: 1 人が視聴中 | {count} 人が視聴中
|
||||
Channel Count: 1 チャンネル | {count} チャンネル
|
||||
Search / Go to URL: '検索 / URL の表示'
|
||||
|
@ -145,6 +145,7 @@ Settings:
|
|||
Middle: '中間'
|
||||
End: '終了'
|
||||
Hidden: 非表示
|
||||
Blur: ぼかし
|
||||
'Invidious Instance (Default is https://invidious.snopyta.org)': '接続先の Invidious
|
||||
サーバー(初期値は https://invidious.snopyta.org)'
|
||||
Region for Trending: '急上昇の地域設定'
|
||||
|
@ -387,7 +388,7 @@ Settings:
|
|||
Hide Chapters: チャプターの非表示
|
||||
Hide Upcoming Premieres: 今後のプレミア公開を非表示
|
||||
Hide Channels: チャンネルから動画を非表示
|
||||
Hide Channels Placeholder: チャネル名または ID
|
||||
Hide Channels Placeholder: チャンネル ID
|
||||
Display Titles Without Excessive Capitalisation: 英語の大文字化を控えたタイトル表示
|
||||
Hide Channel Playlists: チャンネル再生リストの非表示
|
||||
Hide Channel Community: チャンネル コミュニティの非表示
|
||||
|
@ -407,6 +408,10 @@ Settings:
|
|||
Hide Profile Pictures in Comments: コメントでプロフィール写真を隠す
|
||||
Blur Thumbnails: サムネイルをぼかす
|
||||
Hide Subscriptions Community: チャンネルの購読者リストの非公開
|
||||
Hide Channels Invalid: 提供チャンネル ID 無効
|
||||
Hide Channels Disabled Message: 一部のチャンネルが ID を使用してブロックされ、処理されませんでした。これらの ID が更新されている間、機能はブロックされます
|
||||
Hide Channels Already Exists: 既に存在するチャンネル ID
|
||||
Hide Channels API Error: 提供された ID のユーザーを取得できませんでした。ID が正しいかどうかをもう一度確認してください。
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: 変更の反映には、アプリの再起動が必要です。再起動して変更を適用しますか?
|
||||
Proxy Settings:
|
||||
Error getting network information. Is your proxy configured properly?: ネットワーク情報の取得中にエラーが発生しました。プロキシーを正しく設定してますか?
|
||||
|
@ -460,7 +465,8 @@ Settings:
|
|||
Experimental Settings:
|
||||
Replace HTTP Cache: HTTP キャッシュの置換
|
||||
Experimental Settings: 実験中の設定
|
||||
Warning: この設定項目は実験中であるため、有効にするとクラッシュすることがあります。必ずバックアップを作成してください。使用は自己責任でお願いします!
|
||||
Warning:
|
||||
これらの設定は実験的なものであり、有効にするとアプリのクラッシュを引き起こす恐れがあります。バックアップをとっておくことを強くお勧めします。自己責任で使用してください!
|
||||
Password Settings:
|
||||
Password Settings: パスワード設定
|
||||
Set Password To Prevent Access: 設定の変更にはパスワードを設定とする
|
||||
|
@ -886,8 +892,8 @@ Tooltips:
|
|||
Replace HTTP Cache: Electron のディスクに基づく HTTP キャッシュを無効化し、メモリ内で独自の画像キャッシュを使用します。このことにより
|
||||
RAM の使用率は増加します。
|
||||
Distraction Free Settings:
|
||||
Hide Channels: チャンネル名またはチャンネル ID
|
||||
を入力すると、すべてのビデオ、再生リスト、チャンネル自体が検索や人気、およびおすすめに表示されなくなります。入力するチャンネル名は、大文字と小文字を区別するので完全に一致させてください。
|
||||
Hide Channels: チャンネル ID を入力すると、すべてのビデオ、再生リスト、チャンネル自体が検索や人気、およびおすすめに表示されなくなります。入力するチャンネル
|
||||
ID は、大文字と小文字を区別するので完全に一致させてください。
|
||||
Hide Subscriptions Live: この設定は、アプリ全体の "{appWideSetting}" 設定により上書きされます。"{settingsSection}"
|
||||
項目の "{subsection}" にあります
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -426,7 +426,7 @@ Settings:
|
|||
Hide Chapters: Schowaj rozdziały
|
||||
Hide Upcoming Premieres: Schowaj nadchodzące premiery
|
||||
Hide Channels: Schowaj filmy z kanałów
|
||||
Hide Channels Placeholder: Nazwa albo ID kanału
|
||||
Hide Channels Placeholder: ID kanału
|
||||
Display Titles Without Excessive Capitalisation: Wyświetlaj tytuły bez nadmiernych
|
||||
wielkich liter
|
||||
Hide Channel Community: Schowaj społeczność kanału
|
||||
|
@ -447,6 +447,13 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Nie pokazuj zdjęć profilowych w komentarzach
|
||||
Blur Thumbnails: Rozmazuj miniaturki
|
||||
Hide Subscriptions Community: Schowaj „Społeczność” kanałów
|
||||
Hide Channels Invalid: Podane ID kanału jest niepoprawne
|
||||
Hide Channels Disabled Message: Niektóre z kanałów nie zostały przetworzone, ponieważ
|
||||
zostały zablokowane po swoim ID. Funkcja jest zablokowana, aż do momentu, w
|
||||
którym zostaną one zaktualizowane.
|
||||
Hide Channels Already Exists: To ID kanału już jest
|
||||
Hide Channels API Error: Nie udało się wyszukać użytkownika po podanym ID. Proszę
|
||||
sprawdzić, czy wpisane ID jest poprawne.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Aplikacja
|
||||
musi zostać ponownie uruchomiona, aby zmiany zostały wprowadzone. Uruchomić ponownie
|
||||
i zastosować zmiany?
|
||||
|
@ -1006,10 +1013,10 @@ Tooltips:
|
|||
Electrona i włącza własny obraz pamięci podręcznej wewnątrz pamięci RAM. Spowoduje
|
||||
to większe użycie pamięci RAM.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Wprowadź nazwę albo ID kanału, aby schować wszystkie filmy i playlisty
|
||||
tego kanału, oraz sam kanał z wyszukiwań, z zakładek „Na czasie” i „Popularne”
|
||||
oraz z polecanych. Nazwa kanału musi być dokładnym dopasowaniem, z uwzględnieniem
|
||||
wielkości liter.
|
||||
Hide Channels: Wprowadź ID kanału, aby schować wszystkie filmy i playlisty tego
|
||||
kanału, oraz sam kanał z wyszukiwań, z zakładek „Na czasie” i „Popularne” oraz
|
||||
z polecanych. ID kanału musi być dokładnym dopasowaniem, z uwzględnieniem wielkości
|
||||
liter.
|
||||
Hide Subscriptions Live: Ta opcja została nadpisana opcją ogólną „{appWideSetting}”
|
||||
z podgrupy „{subsection}” grupy „{settingsSection}”
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -452,7 +452,7 @@ Settings:
|
|||
Hide Chapters: Ocultar capítulos
|
||||
Hide Upcoming Premieres: Ocultar próximas estreias
|
||||
Hide Channels: Ocultar vídeos dos canais
|
||||
Hide Channels Placeholder: Nome ou ID do canal
|
||||
Hide Channels Placeholder: ID do canal
|
||||
Display Titles Without Excessive Capitalisation: Mostrar títulos sem maiúsculas
|
||||
em excesso
|
||||
Hide Featured Channels: Ocultar canais em destaque
|
||||
|
@ -473,6 +473,13 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Ocultar imagens de perfil nos comentários
|
||||
Blur Thumbnails: Desfocar miniaturas
|
||||
Hide Subscriptions Community: Ocultar subscrições de comunidades
|
||||
Hide Channels Invalid: O ID do canal não é válido
|
||||
Hide Channels Disabled Message: Alguns canais foram bloqueados e não foram processados.
|
||||
A funcionalidade está bloqueada enquanto estiver a ocorrer a atualização das
|
||||
ID.
|
||||
Hide Channels Already Exists: Esta ID já existe
|
||||
Hide Channels API Error: Não foi possível obter o utilizador através do ID. Verifique
|
||||
se a ID indicada é válida.
|
||||
External Player Settings:
|
||||
Custom External Player Arguments: Argumentos do reprodutor externo
|
||||
Custom External Player Executable: Executável do reprodutor externo
|
||||
|
@ -1002,9 +1009,9 @@ Tooltips:
|
|||
Replace HTTP Cache: Desativa a cache HTTP Electron e ativa uma cache de imagem
|
||||
na memória personalizada. Implica o aumento da utilização de memória RAM.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Introduza o nome ou ID de um canal para impedir que os vídeos,
|
||||
listas de reprodução e o próprio canal apareçam na pesquisa, tendências, mais
|
||||
populares e recomendados. O nome do canal introduzido tem que ser uma correspondência
|
||||
Hide Channels: Introduza o ID de um canal para impedir que os vídeos, listas de
|
||||
reprodução e o próprio canal apareçam na pesquisa, tendências, mais populares
|
||||
e recomendados. O nome do canal introduzido tem que ser uma correspondência
|
||||
exata e diferencia maiúsculas de minúsculas.
|
||||
Hide Subscriptions Live: Esta definição é substituída pela definição global "{appWideSetting}",
|
||||
existente na secção "{subsection}" de "{settingsSection}"
|
||||
|
|
|
@ -419,7 +419,7 @@ Settings:
|
|||
Hide Video Description: Скрыть описание видео
|
||||
Hide Chapters: Скрыть разделы
|
||||
Hide Upcoming Premieres: Скрыть предстоящие премьеры
|
||||
Hide Channels Placeholder: Название или идентификатор канала
|
||||
Hide Channels Placeholder: Идентификатор канала
|
||||
Hide Channels: Скрыть видео с каналов
|
||||
Display Titles Without Excessive Capitalisation: Отображать заголовки без чрезмерного
|
||||
использования заглавных букв
|
||||
|
@ -439,6 +439,13 @@ Settings:
|
|||
Hide Channel Podcasts: Скрыть звукопередачи канала
|
||||
Hide Subscriptions Shorts: Скрыть короткие видео из подписок
|
||||
Hide Profile Pictures in Comments: Скрыть изображения профилей в комментариях
|
||||
Hide Channels Invalid: Указанный идентификатор канала недействителен
|
||||
Hide Subscriptions Community: Скрыть сообщество подписок
|
||||
Hide Channels Disabled Message: Некоторые каналы были заблокированы по идентификатору
|
||||
и не были обработаны. Функция заблокирована, пока эти идентификаторы обновляются
|
||||
Hide Channels Already Exists: Идентификатор канала уже существует
|
||||
Hide Channels API Error: Ошибка при получении пользователя с предоставленным идентификатором.
|
||||
Пожалуйста, проверьте еще раз, правильно ли указан идентификатор.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Чтобы
|
||||
изменения вступили в силу, необходимо перезапустить приложение. Перезапустить
|
||||
и применить изменения?
|
||||
|
@ -994,10 +1001,9 @@ Tooltips:
|
|||
Replace HTTP Cache: Отключает дисковый HTTP-кэш Electron и включает пользовательский
|
||||
кэш изображений в памяти. Приведёт к увеличению использования оперативной памяти.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Введите название канала или его идентификатор, чтобы скрыть все
|
||||
видео, подборки и сам канал от показа в поиске, трендах, наиболее просматриваемых
|
||||
и желательных. Введённое название канала должно полностью совпадать и учитывать
|
||||
регистр.
|
||||
Hide Channels: Введите идентификатор канала, чтобы скрыть все видео, плейлисты
|
||||
и сам канал от появления в результатах поиска, трендах, самых популярных и рекомендуемых.
|
||||
Введенный идентификатор канала должен полностью совпадать и чувствителен к регистру.
|
||||
Hide Subscriptions Live: Эта настройка переопределена общей настройкой «{appWideSetting}»,
|
||||
в подразделе «{subsection}» раздела «{settingsSection}»
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -346,7 +346,7 @@ Settings:
|
|||
Hide Live Chat: 'Сакриј ћаскање уживо'
|
||||
Hide Active Subscriptions: 'Сакриј активна праћења'
|
||||
Blur Thumbnails: Замагли сличице
|
||||
Hide Channels Placeholder: Назив канала или ID канала
|
||||
Hide Channels Placeholder: ID канала
|
||||
Hide Video Description: Сакриј опис видео снимка
|
||||
Hide Chapters: Сакриј поглавља
|
||||
Sections:
|
||||
|
@ -373,6 +373,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Сакриј слике профила у коментарима
|
||||
Hide Upcoming Premieres: Сакриј предстојеће премијере
|
||||
Hide Channel Releases: Сакриј издања канала
|
||||
Hide Channels Invalid: Наведени ID канала је неважећи
|
||||
Hide Channels Disabled Message: Неки канали су блокирани помоћу ID-а и нису обрађени.
|
||||
Функција је блокирана док се ти ID-ови ажурирају
|
||||
Hide Channels Already Exists: ID канала већ постоји
|
||||
Hide Channels API Error: Грешка при преузимању корисника са наведеним ID-ом. Проверите
|
||||
поново да ли је ID тачан.
|
||||
Data Settings:
|
||||
Data Settings: 'Подешавања података'
|
||||
Select Import Type: 'Избор врсте увоза'
|
||||
|
@ -796,7 +802,7 @@ Tooltips:
|
|||
Distraction Free Settings:
|
||||
Hide Channels: Унесите назив канала или ID канала да бисте сакрили све видео снимке,
|
||||
плејлисте и сам канал, да се не појављују у претрази, у тренду, најпопуларнијима
|
||||
и препорученима. Назив канала који сте унели мора се потпуно подударати и разликовати
|
||||
и препорученима. ID канала који сте унели мора се потпуно подударати и разликовати
|
||||
велика и мала слова.
|
||||
Hide Subscriptions Live: Ово подешавање је замењено подешавањем за целу апликацију
|
||||
„{appWideSetting}“ у одељку „{subsection}“ у „{settingsSection}“
|
||||
|
|
|
@ -421,7 +421,7 @@ Settings:
|
|||
Hide Comments: Yorumları Gizle
|
||||
Hide Chapters: Bölümleri Gizle
|
||||
Hide Upcoming Premieres: Yaklaşan İlk Gösterimleri Gizle
|
||||
Hide Channels Placeholder: Kanal Adı veya Kimliği
|
||||
Hide Channels Placeholder: Kanal Kimliği
|
||||
Hide Channels: Kanallardan Videoları Gizle
|
||||
Display Titles Without Excessive Capitalisation: Başlıkları Aşırı Büyük Harf Kullanmadan
|
||||
Görüntüle
|
||||
|
@ -443,6 +443,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Yorumlardaki Profil Resimlerini Gizle
|
||||
Blur Thumbnails: Küçük Resimleri Bulanıklaştır
|
||||
Hide Subscriptions Community: Abonelik Topluluğunu Gizle
|
||||
Hide Channels Invalid: Belirtilen kanal kimliği geçersiz
|
||||
Hide Channels Disabled Message: Bazı kanallar kimliği kullanılarak engellendi
|
||||
ve işlenmedi. Bu kimlikler güncellenirken özellik engellenir
|
||||
Hide Channels Already Exists: Kanal kimliği zaten var
|
||||
Hide Channels API Error: Belirtilen kimliğe sahip kullanıcı alınırken hata oluştu.
|
||||
Lütfen kimliğin doğru olup olmadığını tekrar gözden geçirin.
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Değişikliklerin
|
||||
etkili olması için uygulamanın yeniden başlatılması gerekiyor. Yeniden başlatılsın
|
||||
ve değişiklikler uygulansın mı?
|
||||
|
@ -993,8 +999,8 @@ Tooltips:
|
|||
Distraction Free Settings:
|
||||
Hide Channels: Tüm videoların, oynatma listelerinin ve kanalın kendisinin arama,
|
||||
öne çıkanlar, en popüler ve tavsiye edilenlerde görünmesini engellemek için
|
||||
bir kanal adı veya kanal kimliği girin. Girilen kanal adı tam olarak eşleşmelidir
|
||||
ve büyük/küçük harfe duyarlıdır.
|
||||
bir kanal kimliği girin. Girilen kanal kimliği tam olarak eşleşmelidir ve büyük/küçük
|
||||
harfe duyarlıdır.
|
||||
Hide Subscriptions Live: Bu ayar, "{settingsSection}" bölümünün "{subsection}"
|
||||
kısmında yer alan uygulama genelindeki "{appWideSetting}" ayarı tarafından geçersiz
|
||||
kılınıyor
|
||||
|
|
|
@ -348,7 +348,7 @@ Settings:
|
|||
Hide Chapters: Сховати розділи
|
||||
Hide Upcoming Premieres: Сховати майбутні прем'єри
|
||||
Hide Channels: Сховати відео з каналів
|
||||
Hide Channels Placeholder: Назва або ID каналу
|
||||
Hide Channels Placeholder: ID каналу
|
||||
Display Titles Without Excessive Capitalisation: Показувати заголовки без надмірно
|
||||
великих літер
|
||||
Hide Featured Channels: Сховати пропоновані канали
|
||||
|
|
|
@ -385,7 +385,7 @@ Settings:
|
|||
Hide Chapters: 隐藏章节
|
||||
Hide Upcoming Premieres: 隐藏即将到来的首映
|
||||
Hide Channels: 隐藏频道中的视频
|
||||
Hide Channels Placeholder: 频道名称或 ID
|
||||
Hide Channels Placeholder: 频道ID
|
||||
Display Titles Without Excessive Capitalisation: 不用过度大写字母的方式显示标题名称
|
||||
Hide Featured Channels: 隐藏精选频道
|
||||
Hide Channel Playlists: 隐藏频道播放列表
|
||||
|
@ -405,6 +405,10 @@ Settings:
|
|||
Hide Profile Pictures in Comments: 在评论中隐藏个人资料图片
|
||||
Blur Thumbnails: 模糊缩略图
|
||||
Hide Subscriptions Community: 隐藏订阅社区
|
||||
Hide Channels Invalid: 提供的频道 ID 无效
|
||||
Hide Channels Disabled Message: 使用 ID 屏蔽了某些频道,这些频道未被处理。当这些 ID 在升级时,功能被停用
|
||||
Hide Channels Already Exists: 频道 ID 已存在
|
||||
Hide Channels API Error: 获取 ID 为所提供值的用户出错。请再次检查 ID 是否正确。
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: 应用需要重启让修改生效。重启以应用修改?
|
||||
Proxy Settings:
|
||||
Proxy Protocol: 代理协议
|
||||
|
@ -877,7 +881,7 @@ Tooltips:
|
|||
Experimental Settings:
|
||||
Replace HTTP Cache: 禁用 Electron 基于磁盘的 HTTP 缓存,启用自定义内存中图像缓存。会增加内存的使用。
|
||||
Distraction Free Settings:
|
||||
Hide Channels: 输入频道名称或频道 ID 使其中的所有视频、播放列表和频道本身不出现在搜索结果、时下流行、最受欢迎和推荐中。 输入的频道名称必须完全匹配,并且区分大小写。
|
||||
Hide Channels: 输入频道 ID 使其中的所有视频、播放列表和频道本身不出现在搜索结果、时下流行、最受欢迎和推荐中。 输入的频道 ID 必须完全匹配,并且区分大小写。
|
||||
Hide Subscriptions Live: 此设置被应用级的 "{appWideSetting}" 设置所覆盖,"{appWideSetting}"
|
||||
位于 "{subsection}" 部分,该部分在 "{settingsSection}" 中
|
||||
SponsorBlock Settings:
|
||||
|
|
|
@ -385,7 +385,7 @@ Settings:
|
|||
Hide Sharing Actions: 隱藏分享動作
|
||||
Hide Chapters: 隱藏章節
|
||||
Hide Upcoming Premieres: 隱藏即將到來的首映
|
||||
Hide Channels Placeholder: 頻道名稱或 ID
|
||||
Hide Channels Placeholder: 頻道 ID
|
||||
Hide Channels: 隱藏頻道中的影片
|
||||
Display Titles Without Excessive Capitalisation: 顯示沒有過多大寫的標題
|
||||
Hide Featured Channels: 隱藏精選頻道
|
||||
|
@ -406,6 +406,10 @@ Settings:
|
|||
Hide Profile Pictures in Comments: 在留言中隱藏個人檔案圖片
|
||||
Blur Thumbnails: 模糊縮圖
|
||||
Hide Subscriptions Community: 隱藏訂閱社群
|
||||
Hide Channels Invalid: 提供的頻道 ID 無效
|
||||
Hide Channels Disabled Message: 某些頻道被使用 ID 封鎖且無法處理。當這些 ID 更新時,功能將會被封鎖
|
||||
Hide Channels Already Exists: 頻道 ID 已存在
|
||||
Hide Channels API Error: 使用提供的 ID 擷取使用者時發生錯誤。請再次檢查 ID 是否正確。
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: 此變更需要重啟讓修改生效。重啟並且套用變更?
|
||||
Proxy Settings:
|
||||
Error getting network information. Is your proxy configured properly?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎?
|
||||
|
@ -889,7 +893,7 @@ Tooltips:
|
|||
Experimental Settings:
|
||||
Replace HTTP Cache: 停用 Electron 以磁碟為基礎的 HTTP 快取並啟用自訂的記憶體圖片快取。會導致記憶體使用量增加。
|
||||
Distraction Free Settings:
|
||||
Hide Channels: 輸入頻道名稱或頻道 ID 以隱藏所有影片、播放清單與頻道本身,使其完全不出現在搜尋、趨勢、熱門與建議中。輸入的頻道名稱必須完全符合,且區分大小寫。
|
||||
Hide Channels: 輸入頻道 ID 以隱藏所有影片、播放清單與頻道本身,使其完全不出現在搜尋、趨勢、熱門與建議中。輸入的頻道 ID 必須完全符合,且區分大小寫。
|
||||
Hide Subscriptions Live: 此設定會被「{settingsSection}」的「{subsection}」部分中應用程式範圍的「{appWideSetting}」設定覆寫
|
||||
SponsorBlock Settings:
|
||||
UseDeArrowTitles: 將影片標題取代為 DeArrow 使用者遞交的標題。
|
||||
|
|
Loading…
Reference in New Issue