mirror of https://github.com/FreeTubeApp/FreeTube
Merge branch 'development' into piped-support
This commit is contained in:
commit
e759679c81
40
package.json
40
package.json
|
@ -69,7 +69,7 @@
|
|||
"videojs-contrib-quality-levels": "^3.0.0",
|
||||
"videojs-http-source-selector": "^1.1.6",
|
||||
"videojs-mobile-ui": "^0.8.0",
|
||||
"videojs-overlay": "^3.0.0",
|
||||
"videojs-overlay": "^3.1.0",
|
||||
"videojs-vtt-thumbnails-freetube": "0.0.15",
|
||||
"vue": "^2.7.14",
|
||||
"vue-i18n": "^8.28.2",
|
||||
|
@ -80,52 +80,52 @@
|
|||
"youtubei.js": "^5.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.22.1",
|
||||
"@babel/eslint-parser": "^7.21.8",
|
||||
"@babel/core": "^7.22.5",
|
||||
"@babel/eslint-parser": "^7.22.5",
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/preset-env": "^7.22.2",
|
||||
"@babel/preset-env": "^7.22.5",
|
||||
"@double-great/stylelint-a11y": "^2.0.2",
|
||||
"babel-loader": "^9.1.2",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"css-minimizer-webpack-plugin": "^5.0.0",
|
||||
"electron": "^22.3.2",
|
||||
"css-minimizer-webpack-plugin": "^5.0.1",
|
||||
"electron": "^22.3.13",
|
||||
"electron-builder": "^23.6.0",
|
||||
"eslint": "^8.41.0",
|
||||
"eslint": "^8.43.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-jsonc": "^2.8.0",
|
||||
"eslint-plugin-n": "^15.7.0",
|
||||
"eslint-plugin-jsonc": "^2.9.0",
|
||||
"eslint-plugin-n": "^16.0.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-unicorn": "^47.0.0",
|
||||
"eslint-plugin-vue": "^9.14.1",
|
||||
"eslint-plugin-vue": "^9.15.0",
|
||||
"eslint-plugin-vuejs-accessibility": "^2.1.0",
|
||||
"eslint-plugin-yml": "^1.7.0",
|
||||
"html-webpack-plugin": "^5.5.1",
|
||||
"eslint-plugin-yml": "^1.8.0",
|
||||
"html-webpack-plugin": "^5.5.3",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-minimizer-webpack-plugin": "^4.0.0",
|
||||
"lefthook": "^1.4.1",
|
||||
"lefthook": "^1.4.2",
|
||||
"mini-css-extract-plugin": "^2.7.6",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.4.24",
|
||||
"postcss-scss": "^4.0.6",
|
||||
"prettier": "^2.8.8",
|
||||
"rimraf": "^5.0.1",
|
||||
"sass": "^1.62.1",
|
||||
"sass-loader": "^13.3.1",
|
||||
"sass": "^1.63.4",
|
||||
"sass-loader": "^13.3.2",
|
||||
"stylelint": "^14.16.1",
|
||||
"stylelint-config-sass-guidelines": "^9.0.1",
|
||||
"stylelint-config-standard": "^29.0.0",
|
||||
"stylelint-high-performance-animation": "^1.8.0",
|
||||
"tree-kill": "1.2.2",
|
||||
"vue-devtools": "^5.1.4",
|
||||
"vue-eslint-parser": "^9.3.0",
|
||||
"vue-eslint-parser": "^9.3.1",
|
||||
"vue-loader": "^15.10.0",
|
||||
"webpack": "^5.84.1",
|
||||
"webpack-cli": "^5.1.1",
|
||||
"webpack-dev-server": "^4.15.0",
|
||||
"webpack": "^5.87.0",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-dev-server": "^4.15.1",
|
||||
"yaml-eslint-parser": "^1.2.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import { MAIN_PROFILE_ID } from '../../../constants'
|
|||
import { calculateColorLuminance, getRandomColor } from '../../helpers/colors'
|
||||
import {
|
||||
copyToClipboard,
|
||||
escapeHTML,
|
||||
getTodayDateStrLocalTimezone,
|
||||
readFileFromDialog,
|
||||
showOpenDialog,
|
||||
|
@ -591,12 +592,7 @@ export default defineComponent({
|
|||
let opmlData = '<opml version="1.1"><body><outline text="YouTube Subscriptions" title="YouTube Subscriptions">'
|
||||
|
||||
this.profileList[0].subscriptions.forEach((channel) => {
|
||||
const escapedName = channel.name
|
||||
.replaceAll('&', '&')
|
||||
.replaceAll('<', '<')
|
||||
.replaceAll('>', '>')
|
||||
.replaceAll('"', '"')
|
||||
.replaceAll('\'', ''')
|
||||
const escapedName = escapeHTML(channel.name)
|
||||
|
||||
const channelOpmlString = `<outline text="${escapedName}" title="${escapedName}" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=${channel.id}"/>`
|
||||
opmlData += channelOpmlString
|
||||
|
|
|
@ -17,11 +17,17 @@ import { sponsorBlockSkipSegments } from '../../helpers/sponsorblock'
|
|||
import { calculateColorLuminance, colors } from '../../helpers/colors'
|
||||
import { pathExists } from '../../helpers/filesystem'
|
||||
import { getPicturesPath, showSaveDialog, showToast } from '../../helpers/utils'
|
||||
import { getProxyUrl } from '../../helpers/api/invidious'
|
||||
import store from '../../store'
|
||||
|
||||
// YouTube now throttles if you use the `Range` header for the DASH formats, instead of the range query parameter
|
||||
// videojs-http-streaming calls this hook everytime it makes a request,
|
||||
// so we can use it to convert the Range header into the range query parameter for the streaming URLs
|
||||
videojs.Vhs.xhr.beforeRequest = (options) => {
|
||||
if (store.getters.getProxyVideos) {
|
||||
const { uri } = options
|
||||
options.uri = getProxyUrl(uri)
|
||||
}
|
||||
// pass in the optional base so it doesn't error for `dashFiles/videoId.xml` (DASH manifest in dev mode)
|
||||
if (new URL(options.uri, window.location.origin).hostname.endsWith('.googlevideo.com')) {
|
||||
// The official clients use POST requests with this body for the DASH requests, so we should do that too
|
||||
|
@ -34,7 +40,6 @@ videojs.Vhs.xhr.beforeRequest = (options) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// videojs-http-streaming spits out a warning every time you access videojs.Vhs.BANDWIDTH_VARIANCE
|
||||
// so we'll get the value once here, to stop it spamming the console
|
||||
// https://github.com/videojs/http-streaming/blob/main/src/config.js#L8-L10
|
||||
|
@ -304,6 +309,10 @@ export default defineComponent({
|
|||
|
||||
screenshotFolder: function() {
|
||||
return this.$store.getters.getScreenshotFolderPath
|
||||
},
|
||||
|
||||
proxyVideos: function () {
|
||||
return this.$store.getters.getProxyVideos
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -1224,7 +1233,15 @@ export default defineComponent({
|
|||
|
||||
this.useDash = false
|
||||
this.useHls = false
|
||||
this.activeSourceList = this.sourceList
|
||||
this.activeSourceList = (this.proxyVideos || !process.env.IS_ELECTRON)
|
||||
// use map here to return slightly different list without modifying original
|
||||
? this.sourceList.map((source) => {
|
||||
return {
|
||||
...source,
|
||||
url: getProxyUrl(source.url)
|
||||
}
|
||||
})
|
||||
: this.sourceList
|
||||
|
||||
setTimeout(this.initializePlayer, 100)
|
||||
},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { defineComponent } from 'vue'
|
||||
import { defineComponent, nextTick } from 'vue'
|
||||
import FtCard from '../ft-card/ft-card.vue'
|
||||
|
||||
export default defineComponent({
|
||||
|
@ -23,8 +23,12 @@ export default defineComponent({
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
currentChapter: function () {
|
||||
return this.chapters[this.currentIndex]
|
||||
},
|
||||
|
||||
currentTitle: function () {
|
||||
return this.chapters[this.currentIndex].title
|
||||
return this.currentChapter.title
|
||||
},
|
||||
|
||||
compact: function () {
|
||||
|
@ -67,6 +71,23 @@ export default defineComponent({
|
|||
}
|
||||
|
||||
chapterElements[newIndex].focus()
|
||||
}
|
||||
},
|
||||
|
||||
toggleShowChapters() {
|
||||
this.showChapters = !this.showChapters
|
||||
|
||||
if (this.showChapters) { this.scrollToCurrentChapter() }
|
||||
},
|
||||
|
||||
scrollToCurrentChapter() {
|
||||
const container = this.$refs.chaptersWrapper
|
||||
const currentChaptersItem = (this.$refs.currentChaptersItem || [])[0]
|
||||
// Must wait until rendering done after value change
|
||||
nextTick(() => {
|
||||
if (container != null && currentChaptersItem != null) {
|
||||
container.scrollTop = currentChaptersItem.offsetTop - container.offsetTop
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
: $t('Chapters.Chapters list hidden, current chapter: {chapterName}', null, { chapterName: currentTitle })
|
||||
"
|
||||
:aria-pressed="showChapters"
|
||||
@click="showChapters = !showChapters"
|
||||
@keydown.space.stop.prevent="showChapters = !showChapters"
|
||||
@keydown.enter.stop.prevent="showChapters = !showChapters"
|
||||
@click="toggleShowChapters"
|
||||
@keydown.space.stop.prevent="toggleShowChapters"
|
||||
@keydown.enter.stop.prevent="toggleShowChapters"
|
||||
>
|
||||
{{ $t("Chapters.Chapters") }}
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
|||
<div
|
||||
v-for="(chapter, index) in chapters"
|
||||
:key="index"
|
||||
:ref="index === currentIndex ? 'currentChaptersItem' : null"
|
||||
class="chapter"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
|
|
|
@ -6,6 +6,16 @@ function getCurrentInstance() {
|
|||
return store.getters.getCurrentInvidiousInstance
|
||||
}
|
||||
|
||||
export function getProxyUrl(uri) {
|
||||
const url = new URL(uri)
|
||||
const { origin } = url
|
||||
if (!url.searchParams.has('host') && origin !== getCurrentInstance()) {
|
||||
// invidious requires host param to be filled with the origin of the stream
|
||||
url.searchParams.append('host', origin.replace('https://', ''))
|
||||
}
|
||||
return url.toString().replace(origin, getCurrentInstance())
|
||||
}
|
||||
|
||||
export function invidiousAPICall({ resource, id = '', params = {}, doLogError = true, subResource = '' }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const requestUrl = getCurrentInstance() + '/api/v1/' + resource + '/' + id + (!isNullOrEmpty(subResource) ? `/${subResource}` : '') + '?' + new URLSearchParams(params).toString()
|
||||
|
@ -119,7 +129,7 @@ export function youtubeImageUrlToInvidious(url, currentInstance = null) {
|
|||
}
|
||||
|
||||
export function invidiousImageUrlToInvidious(url, currentInstance = null) {
|
||||
return url.replace(/^.+(ggpht.+)/, currentInstance)
|
||||
return url.replaceAll(/(\/ggpht\/)/g, `${currentInstance}/ggpht/`)
|
||||
}
|
||||
|
||||
function parseInvidiousCommentData(response) {
|
||||
|
@ -128,7 +138,7 @@ function parseInvidiousCommentData(response) {
|
|||
comment.authorLink = comment.authorId
|
||||
comment.authorThumb = youtubeImageUrlToInvidious(comment.authorThumbnails[1].url)
|
||||
comment.likes = comment.likeCount
|
||||
comment.text = autolinker.link(stripHTML(comment.content))
|
||||
comment.text = autolinker.link(stripHTML(invidiousImageUrlToInvidious(comment.contentHtml, getCurrentInstance())))
|
||||
comment.dataType = 'invidious'
|
||||
comment.isOwner = comment.authorIsChannelOwner
|
||||
comment.numReplies = comment.replies?.replyCount ?? 0
|
||||
|
|
|
@ -5,6 +5,7 @@ import { join } from 'path'
|
|||
import { PlayerCache } from './PlayerCache'
|
||||
import {
|
||||
CHANNEL_HANDLE_REGEX,
|
||||
escapeHTML,
|
||||
extractNumberFromString,
|
||||
getUserDataPath,
|
||||
toLocalePublicationString
|
||||
|
@ -551,8 +552,12 @@ export function parseLocalTextRuns(runs, emojiSize = 16, options = { looseChanne
|
|||
const parsedRuns = []
|
||||
|
||||
for (const run of runs) {
|
||||
// may contain HTML, so we need to escape it, as we don't render unwanted HTML
|
||||
// example: https://youtu.be/Hh_se2Zqsdk (see pinned comment)
|
||||
const text = escapeHTML(run.text)
|
||||
|
||||
if (run instanceof Misc.EmojiRun) {
|
||||
const { emoji, text } = run
|
||||
const { emoji } = run
|
||||
|
||||
// empty array if video creator removes a channel emoji so we ignore.
|
||||
// eg: pinned comment here https://youtu.be/v3wm83zoSSY
|
||||
|
@ -577,7 +582,7 @@ export function parseLocalTextRuns(runs, emojiSize = 16, options = { looseChanne
|
|||
parsedRuns.push(`<img src="${emoji.image[0].url}" alt="${altText}" width="${emojiSize}" height="${emojiSize}" loading="lazy" style="vertical-align: middle">`)
|
||||
}
|
||||
} else {
|
||||
const { text, bold, italics, strikethrough, endpoint } = run
|
||||
const { bold, italics, strikethrough, endpoint } = run
|
||||
|
||||
if (endpoint) {
|
||||
switch (endpoint.metadata.page_type) {
|
||||
|
|
|
@ -406,7 +406,7 @@ export function createWebURL(path) {
|
|||
|
||||
// strip html tags but keep <br>, <b>, </b> <s>, </s>, <i>, </i>
|
||||
export function stripHTML(value) {
|
||||
return value.replaceAll(/(<(?!br|\/?[bis]>)([^>]+)>)/gi, '')
|
||||
return value.replaceAll(/(<(?!br|\/?[bis]|img>)([^>]+)>)/gi, '')
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -646,3 +646,16 @@ export function getTodayDateStrLocalTimezone() {
|
|||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
|
||||
return timeNowStr.split('T')[0]
|
||||
}
|
||||
|
||||
/**
|
||||
* Escapes HTML tags to avoid XSS
|
||||
* @param {string} untrusted
|
||||
* @returns {string}
|
||||
*/
|
||||
export function escapeHTML(untrusted) {
|
||||
return untrusted.replaceAll('&', '&')
|
||||
.replaceAll('<', '<')
|
||||
.replaceAll('>', '>')
|
||||
.replaceAll('"', '"')
|
||||
.replaceAll('\'', ''')
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ Cut: 'قص'
|
|||
Copy: 'نسخ'
|
||||
Paste: 'لصق'
|
||||
Delete: 'حذف'
|
||||
Select all: 'تحديد الكل'
|
||||
Select all: 'حدد الكل'
|
||||
Reload: 'إعادة تحميل'
|
||||
Force Reload: 'فرض إعادة التحميل'
|
||||
Toggle Developer Tools: 'فتح أدوات المطوّر'
|
||||
|
|
|
@ -954,7 +954,7 @@ Age Restricted:
|
|||
This {videoOrPlaylist} is age restricted: Toto {videoOrPlaylist} je omezeno věkem
|
||||
Type:
|
||||
Channel: kanál
|
||||
Video: video
|
||||
Video: Video
|
||||
Channels:
|
||||
Channels: Kanály
|
||||
Title: Seznam kanálů
|
||||
|
|
|
@ -411,6 +411,11 @@ Settings:
|
|||
Hide Channel Community: Kanal-Gemeinschaft ausblenden
|
||||
Hide Channel Shorts: Shorts des jeweiligen Kanals ausblenden
|
||||
Hide Featured Channels: Hervorgehobene Kanäle ausblenden
|
||||
Sections:
|
||||
Side Bar: Seitenleiste
|
||||
Channel Page: Kanalseite
|
||||
General: Allgemein
|
||||
Watch Page: Seite beobachten
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Um
|
||||
die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und
|
||||
Änderungen aktivieren?
|
||||
|
|
|
@ -403,6 +403,11 @@ Settings:
|
|||
Hide Channel Playlists: Ocultar las listas de reproducción de los canales
|
||||
Hide Channel Community: Ocultar los canal de la comunidad
|
||||
Hide Channel Shorts: Ocultar los canales de vídeos cortos
|
||||
Sections:
|
||||
Side Bar: Barra lateral
|
||||
Channel Page: Página del canal
|
||||
Watch Page: Ver la página
|
||||
General: General
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres
|
||||
reiniciar FreeTube ahora para aplicar los cambios?
|
||||
Proxy Settings:
|
||||
|
|
|
@ -399,6 +399,11 @@ Settings:
|
|||
Hide Channel Playlists: Piilota kanavan soittolistat
|
||||
Hide Channel Community: Piilota kanava yhteisö
|
||||
Hide Channel Shorts: Piilota kanavan lyhytelokuvat
|
||||
Sections:
|
||||
Side Bar: Sivupalkki
|
||||
Channel Page: Kanavan sivu
|
||||
Watch Page: Katso sivu
|
||||
General: Yleiset
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Sovellus
|
||||
on käynnistettävä uudelleen, jotta muutokset tulevat voimaan. Käynnistetäänkö
|
||||
uudelleen?
|
||||
|
@ -569,6 +574,10 @@ Channel:
|
|||
This channel currently does not have any posts: Tällä kanavalla ei ole tällä hetkellä
|
||||
mitään
|
||||
Community: Yhteisö
|
||||
Live:
|
||||
Live: Livenä
|
||||
This channel does not currently have any live streams: Tällä kanavalla ei ole
|
||||
tällä hetkellä yhtään suoraa lähetystä
|
||||
Video:
|
||||
Open in YouTube: 'Avaa Youtubessa'
|
||||
Copy YouTube Link: 'Kopioi Youtube-linkki'
|
||||
|
@ -708,6 +717,8 @@ Video:
|
|||
Show Super Chat Comment: Näytä Super Chat -kommentti
|
||||
Scroll to Bottom: Vieritä alaspäin
|
||||
Upcoming: Tuleva
|
||||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Live-chat
|
||||
ei ole käytettävissä tässä suoratoistossa. Lataaja on saattanut poistaa sen käytöstä.
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
|
@ -964,3 +975,7 @@ Chapters:
|
|||
nykyinen luku: {chapterName}'
|
||||
Preferences: Asetukset
|
||||
Ok: OK
|
||||
Hashtag:
|
||||
Hashtag: Avainsana
|
||||
This hashtag does not currently have any videos: Tällä avainsanalla ei ole tällä
|
||||
hetkellä yhtään videota
|
||||
|
|
|
@ -422,6 +422,11 @@ Settings:
|
|||
Hide Featured Channels: Masquer les chaînes en vedette
|
||||
Hide Channel Community: Masquer la communauté de la chaîne
|
||||
Hide Channel Shorts: Masquer les shorts de la chaîne
|
||||
Sections:
|
||||
Channel Page: Page de la chaîne
|
||||
Side Bar: Barre latérale
|
||||
Watch Page: Page de lecture
|
||||
General: Général
|
||||
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 ?
|
||||
|
@ -565,7 +570,7 @@ About:
|
|||
Downloads / Changelog: Téléchargements / Journal des modifications
|
||||
Channel:
|
||||
Subscriber: 'Abonnement'
|
||||
Subscribers: 'Abonnements'
|
||||
Subscribers: 'Abonnés'
|
||||
Subscribe: 'S''abonner'
|
||||
Unsubscribe: 'Se désabonner'
|
||||
Search Channel: 'Chercher une chaîne'
|
||||
|
|
|
@ -403,6 +403,11 @@ Settings:
|
|||
Hide Channel Playlists: Sakrij kanal zbirki
|
||||
Hide Channel Community: Sakrij kanal zajednice
|
||||
Hide Channel Shorts: Sakrij kanal kratkih videa
|
||||
Sections:
|
||||
Watch Page: Stranica gledanja
|
||||
General: Opće
|
||||
Side Bar: Bočna traka
|
||||
Channel Page: Stranica kanala
|
||||
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:
|
||||
|
|
|
@ -411,6 +411,11 @@ Settings:
|
|||
Hide Channel Playlists: Csatorna lejátszási listák elrejtése
|
||||
Hide Channel Community: Csatornaközösség elrejtése
|
||||
Hide Channel Shorts: Csatorna rövidfilmek elrejtése
|
||||
Sections:
|
||||
Side Bar: Oldalsáv
|
||||
Channel Page: Csatornalap
|
||||
Watch Page: Nézőlap
|
||||
General: Általános
|
||||
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?
|
||||
|
@ -659,8 +664,8 @@ Video:
|
|||
Watching: 'Megtekintő'
|
||||
Watched: 'Megtekintett'
|
||||
Autoplay: 'Önműködő lejátszás'
|
||||
Starting soon, please refresh the page to check again: 'Hamarosan kezdődik. Kérjük,
|
||||
frissítse az oldalt az ellenőrzéshez'
|
||||
Starting soon, please refresh the page to check again: 'Hamarosan kezdődik, kérjük,
|
||||
frissítse a lapot az ellenőrzéshez'
|
||||
# As in a Live Video
|
||||
Live: 'Élő'
|
||||
Live Now: 'Élő most'
|
||||
|
@ -926,7 +931,7 @@ Tooltips:
|
|||
használja helyette.
|
||||
Privacy Settings:
|
||||
Remove Video Meta Files: Ha engedélyezve van, a SzabadCső önműködően törli a videolejátszás
|
||||
során létrehozott metafájlokat, amikor a videómegtekintő oldal bezárul.
|
||||
során létrehozott metafájlokat, amikor a nézőlap bezár.
|
||||
External Player Settings:
|
||||
Custom External Player Executable: Alapértelmezés szerint a SzabadCső feltételezi,
|
||||
hogy a kiválasztott külső lejátszó megtalálható a PATH (ÚTVONAL) környezeti
|
||||
|
|
|
@ -282,6 +282,8 @@ Settings:
|
|||
Enter Fullscreen on Display Rotate: Fara í skjáfylli við snúning á skjá
|
||||
Skip by Scrolling Over Video Player: Sleppa með því að skruna ofan á myndspilara
|
||||
Allow DASH AV1 formats: Leyfa DASH AV1 snið
|
||||
Comment Auto Load:
|
||||
Comment Auto Load: Hlaða sjálfkrafa inn athugasemdum
|
||||
Privacy Settings:
|
||||
Privacy Settings: 'Stillingar gagnaleyndar'
|
||||
Remember History: 'Muna áhorfsferil'
|
||||
|
@ -328,6 +330,15 @@ Settings:
|
|||
Hide Channels: Fela myndskeið úr rásum
|
||||
Hide Channels Placeholder: Heiti eða auðkenni rásar
|
||||
Display Titles Without Excessive Capitalisation: Birta titla án umfram-hástafa
|
||||
Sections:
|
||||
Side Bar: Hliðarspjald
|
||||
Channel Page: Rásasíða
|
||||
Watch Page: Áhorfssíða
|
||||
General: Almennt
|
||||
Hide Channel Shorts: Fela stuttmyndir rása
|
||||
Hide Channel Playlists: Fela spilunarlista rása
|
||||
Hide Channel Community: Fela samfélag rása
|
||||
Hide Featured Channels: Fela rásir í deiglunni
|
||||
Data Settings:
|
||||
Data Settings: 'Stillingar gagna'
|
||||
Select Import Type: 'Veldu tegund innflutnings'
|
||||
|
@ -565,6 +576,10 @@ Channel:
|
|||
Community:
|
||||
Community: Samfélag
|
||||
This channel currently does not have any posts: Þessi rás er ekki með neinar færslur
|
||||
Shorts:
|
||||
Shorts: Stuttmyndir
|
||||
This channel does not currently have any shorts: Þessi rás er í augnablikinu ekki
|
||||
með neinar stuttmyndir
|
||||
Video:
|
||||
Mark As Watched: 'Merkja sem búið að horfa á'
|
||||
Remove From History: 'Fjarlægja úr áhorfsferli'
|
||||
|
@ -607,8 +622,8 @@ Video:
|
|||
í þessari byggingarútgáfu.'
|
||||
'Chat is disabled or the Live Stream has ended.': 'Spjall er óvirkt eða að beinu
|
||||
streymi er lokið.'
|
||||
Live chat is enabled. Chat messages will appear here once sent.: 'Beint spjall
|
||||
er virkt. Skilaboð spjallsins munu birtast hér.'
|
||||
Live chat is enabled. Chat messages will appear here once sent.: 'Beint spjall er
|
||||
virkt. Skilaboð spjallsins munu birtast hér.'
|
||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Spjall
|
||||
í beinni er ekki stutt í Invidious API-kerfisviðmótinu. Nauðsynlegt er að vera
|
||||
með beina tengingu við YouTube.'
|
||||
|
@ -803,9 +818,9 @@ Tooltips:
|
|||
Region for Trending: 'Landssvæði sem skal miða vinsældir við gerir þér kleift
|
||||
að velja í hvaða landi aukning á vinsældum í umræðunni skal miða við. Ekki eru
|
||||
öll löndin sem birtast raunverulega studd af YouTube.'
|
||||
External Link Handling: "Veldu sjálfgefna hegðun þegar smellt er á tengil sem\
|
||||
\ ekki er hægt að opna í FreeTube.\nSjálfgefið mun FreeTube opna viðkomandi\
|
||||
\ tengil í sjálfgefna vafranum þínum.\n"
|
||||
External Link Handling: "Veldu sjálfgefna hegðun þegar smellt er á tengil sem
|
||||
ekki er hægt að opna í FreeTube.\nSjálfgefið mun FreeTube opna viðkomandi tengil
|
||||
í sjálfgefna vafranum þínum.\n"
|
||||
Player Settings:
|
||||
Force Local Backend for Legacy Formats: 'Virkar bara þegar Invidious API-kerfisviðmótið
|
||||
er sjálfgefið hjá þér. Þegar þetta er virkt, mun staðværa API-kerfisviðmótið
|
||||
|
@ -934,3 +949,7 @@ Chapters:
|
|||
núverandi kafli: {chapterName}'
|
||||
Preferences: Kjörstillingar
|
||||
Ok: Í lagi
|
||||
Hashtag:
|
||||
Hashtag: Myllumerki
|
||||
This hashtag does not currently have any videos: Þetta myllumerki er í augnablikinu
|
||||
ekki með nein myndskeið
|
||||
|
|
|
@ -61,12 +61,14 @@ Search Filters:
|
|||
Videos: 'Vaizdo įrašai'
|
||||
Channels: 'Kanalai'
|
||||
#& Playlists
|
||||
Movies: Filmai
|
||||
Duration:
|
||||
Duration: 'Trukmė'
|
||||
All Durations: 'Visos trukmės'
|
||||
Short (< 4 minutes): 'Trumpas (< 4 minutės)'
|
||||
Long (> 20 minutes): 'Ilgas (> 20 minutės)'
|
||||
# On Search Page
|
||||
Medium (4 - 20 minutes): Vidutinis (4 - 20 minučių)
|
||||
Search Results: 'Paieškos rezultatai'
|
||||
Fetching results. Please wait: 'Rezultatai kraunami. Prašome luktelėti'
|
||||
Fetch more results: 'Įkelti daugiau rezultatų'
|
||||
|
@ -278,6 +280,10 @@ Settings:
|
|||
Video Playback Rate Interval: Vaizdo įrašų atkūrimo dažnio intervalas
|
||||
Max Video Playback Rate: Maksimalus vaizdo įrašų atkūrimo dažnis
|
||||
Enter Fullscreen on Display Rotate: Viso ekrano režimas pasukus ekraną
|
||||
Skip by Scrolling Over Video Player: Praleiskite slinkdami per vaizdo grotuvą
|
||||
Comment Auto Load:
|
||||
Comment Auto Load: Komentuoti Automatinis įkėlimas
|
||||
Allow DASH AV1 formats: Leisti DASH AV1 formatus
|
||||
External Player Settings:
|
||||
External Player Settings: 'Išorinio grotuvo nustatymai'
|
||||
External Player: 'Išorinis grotuvas'
|
||||
|
@ -304,6 +310,8 @@ Settings:
|
|||
Remove All Subscriptions / Profiles: 'Pašalinti visas prenumeratas / profilius'
|
||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ar
|
||||
tikrai norite pašalinti visas prenumeratas ir profilius? To nebus galima atšaukti.'
|
||||
Save Watched Videos With Last Viewed Playlist: Išsaugokite Žiūrėtus Vaizdo Įrašus
|
||||
Naudodami Paskutinį Žiūrėtą Grojaraštį
|
||||
Subscription Settings:
|
||||
Subscription Settings: 'Prenumeratų nustatymai'
|
||||
Hide Videos on Watch: 'Slėpti vaizdo įrašus po peržiūros'
|
||||
|
@ -328,6 +336,19 @@ Settings:
|
|||
Hide Sharing Actions: Slėpti bendrinimo veiksmus
|
||||
Hide Chapters: Slėpti skirsnius
|
||||
Hide Upcoming Premieres: Slėpti būsimas premjeras
|
||||
Sections:
|
||||
General: Generolas
|
||||
Side Bar: Šoninė juosta
|
||||
Channel Page: Kanalas Puslapis
|
||||
Watch Page: Žiūrėti Puslapis
|
||||
Display Titles Without Excessive Capitalisation: Rodyti Pavadinimus Be Per Daug
|
||||
Didžiųjų Raidžių
|
||||
Hide Channels: Slėpti Vaizdo Įrašus Iš Kanalai
|
||||
Hide Channels Placeholder: Kanalo pavadinimas arba ID
|
||||
Hide Featured Channels: Slėpti Teminiai kanalai
|
||||
Hide Channel Playlists: Slėpti Kanalo Grojaraščiai
|
||||
Hide Channel Community: Slėpti Kanalo Bendruomenę
|
||||
Hide Channel Shorts: Slėpti Kanalo Šortus
|
||||
Data Settings:
|
||||
Data Settings: 'Duomenų nustatymai'
|
||||
Select Import Type: 'Pasirinkti importavimo tipą'
|
||||
|
@ -421,9 +442,13 @@ Settings:
|
|||
Experimental Settings:
|
||||
Replace HTTP Cache: Pakeisti HTTP talpyklą
|
||||
Experimental Settings: Eksperimentiniai nustatymai
|
||||
Warning: Šie nustatymai yra eksperimentiniai, juos įjungus gali būti sutrikimų.
|
||||
Warning: Šie nustatymus yra eksperimentiniai, juos įjungus gali būti sutrikimų.
|
||||
Labai rekomenduojama iš anksto pasidaryti atsargines kopijas. Naudokite savo
|
||||
rizika!
|
||||
Password Dialog:
|
||||
Password Incorrect: Slaptažodis Neteisingas
|
||||
Password: Slaptažodis
|
||||
Enter Password To Unlock: Įveskite slaptažodį į atrakintumėte nustatymus
|
||||
About:
|
||||
#On About page
|
||||
About: 'Apie'
|
||||
|
@ -756,9 +781,9 @@ Tooltips:
|
|||
Region for Trending: '„Dabar populiaru“ regionas leidžia pasirinkti, kurios šalies
|
||||
populiarius vaizdo įrašus norite rodyti. YouTube iš tikrųjų nepalaiko visų rodomų
|
||||
šalių.'
|
||||
External Link Handling: "Pasirinkite numatytąjį elgesį, kai spustelėjama nuoroda,\
|
||||
\ kurios negalima atidaryti „FreeTube“.\nPagal numatytuosius nustatymus „FreeTube“\
|
||||
\ atidarys spustelėtą nuorodą numatytojoje naršyklėje.\n"
|
||||
External Link Handling: "Pasirinkite numatytąjį elgesį, kai spustelėjama nuoroda,
|
||||
kurios negalima atidaryti „FreeTube“.\nPagal numatytuosius nustatymus „FreeTube“
|
||||
atidarys spustelėtą nuorodą numatytojoje naršyklėje.\n"
|
||||
Player Settings:
|
||||
Force Local Backend for Legacy Formats: 'Veikia tik tada, kai numatytasis nustatymas
|
||||
yra „Invidious“ API. Kai įgalinta, vietinė API veiks ir naudos senus, o ne „Invidious“
|
||||
|
|
|
@ -272,6 +272,7 @@ Settings:
|
|||
Comment Auto Load:
|
||||
Comment Auto Load: Commentaar Automatisch Laden
|
||||
Skip by Scrolling Over Video Player: Overslaan door over de videospeler te scrollen
|
||||
Allow DASH AV1 formats: DASH-AV1-bestandstypes toestaan
|
||||
Privacy Settings:
|
||||
Privacy Settings: 'Privacy-instellingen'
|
||||
Remember History: 'Kijkgeschiedenis onthouden'
|
||||
|
@ -295,6 +296,7 @@ Settings:
|
|||
Hide Videos on Watch: 'Bekeken video''s verbergen'
|
||||
Manage Subscriptions: 'Abonnementen beheren'
|
||||
Fetch Feeds from RSS: Verzamel feeds via RSS
|
||||
Fetch Automatically: Haal feed automatisch op
|
||||
Advanced Settings:
|
||||
Advanced Settings: 'Geavanceerde Instellingen'
|
||||
Enable Debug Mode (Prints data to the console): 'Schakel Debug Modus in (Print
|
||||
|
@ -368,6 +370,9 @@ Settings:
|
|||
item word overgeslagen
|
||||
All playlists has been successfully exported: Alle speellijsten zijn met succes
|
||||
geëxporteerd
|
||||
Subscription File: Abonnementenbestand
|
||||
History File: Geschiedenisbestand
|
||||
Playlist File: Afspeellijstbestand
|
||||
Distraction Free Settings:
|
||||
Hide Live Chat: Livechat verbergen
|
||||
Hide Popular Videos: Populaire video's verbergen
|
||||
|
@ -384,6 +389,11 @@ Settings:
|
|||
Hide Video Description: Verberg de beschrijving van de video
|
||||
Hide Comments: Verberg de reacties
|
||||
Hide Live Streams: Verberg rechtstreekse uitzendingen
|
||||
Display Titles Without Excessive Capitalisation: Toon titels zonder overmatig
|
||||
hoofdlettergebruik
|
||||
Sections:
|
||||
Side Bar: Zijbalk
|
||||
General: Algemeen
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: De
|
||||
applicatie moet opnieuw opstarten om de veranderingen aan te brengen. Wilt u opnieuw
|
||||
opstarten en verandering toepassen?
|
||||
|
@ -440,6 +450,10 @@ Settings:
|
|||
Parental Control Settings: Instellingen voor ouderlijk toezicht
|
||||
Show Family Friendly Only: Enkel familievriendelijke inhoud tonen
|
||||
Hide Search Bar: Zoekbalk verbergen
|
||||
Experimental Settings:
|
||||
Warning: Dit zijn experimentele instellingen, die een crash kunnen veroorzaken.
|
||||
Het is raadzaam backups te maken. Gebruiken op eigen risico!
|
||||
Experimental Settings: Experimentele instellingen
|
||||
About:
|
||||
#On About page
|
||||
About: 'Over'
|
||||
|
@ -907,6 +921,6 @@ Channels:
|
|||
Empty: Uw lijst van kanalen is thans leeg.
|
||||
Unsubscribe: Afmelden
|
||||
Unsubscribed: '{channelName} is verwijderd uit uw lijst van abonnees'
|
||||
Unsubscribe Prompt: Weet je zeker dat je je wilt afmelden voor "{channelName}"?
|
||||
Unsubscribe Prompt: Weet je zeker dat je wilt afmelden voor "{channelName}"?
|
||||
Screenshot Error: Schermafbeelding kon niet worden opgeslagen. {error}
|
||||
Preferences: Voorkeuren
|
||||
|
|
|
@ -410,6 +410,11 @@ Settings:
|
|||
Hide Channel Shorts: Schowaj filmy Short kanału
|
||||
Hide Featured Channels: Schowaj polecane kanały
|
||||
Hide Channel Playlists: Schowaj playlisty kanału
|
||||
Sections:
|
||||
Side Bar: Pasek boczny
|
||||
Channel Page: Strona kanału
|
||||
General: Ogólne
|
||||
Watch Page: Strona odtwarzacza
|
||||
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?
|
||||
|
@ -942,7 +947,7 @@ Tooltips:
|
|||
DASH.
|
||||
Privacy Settings:
|
||||
Remove Video Meta Files: Po włączeniu FreeTube automatycznie usunie pliki metadanych
|
||||
utworzone podczas odtwarzania filmu, gdy strona odtwarzania zostanie zamknięta.
|
||||
utworzone podczas odtwarzania filmu, gdy strona odtwarzacza zostanie zamknięta.
|
||||
External Player Settings:
|
||||
Ignore Warnings: Nie pokazuj ostrzeżeń o nieobsługiwanych akcjach przez zewnętrzny
|
||||
odtwarzacz (n.p. odwracanie playlist, itp.).
|
||||
|
|
|
@ -336,6 +336,11 @@ Settings:
|
|||
Hide Channel Playlists: Ocultar listas de reprodução de canais
|
||||
Hide Channel Community: Ocultar canal Comunidade
|
||||
Hide Channel Shorts: Esconder as curtas do canal
|
||||
Sections:
|
||||
Side Bar: Barra lateral
|
||||
Channel Page: Página do canal
|
||||
Watch Page: Ver página
|
||||
General: Geral
|
||||
Data Settings:
|
||||
Data Settings: Definições de dados
|
||||
Select Import Type: Escolher tipo de importação
|
||||
|
|
|
@ -433,6 +433,11 @@ Settings:
|
|||
Hide Channel Playlists: Ocultar listas de reprodução de canais
|
||||
Hide Channel Community: Ocultar canal Comunidade
|
||||
Hide Channel Shorts: Esconder as curtas do canal
|
||||
Sections:
|
||||
Side Bar: Barra lateral
|
||||
Channel Page: Página do canal
|
||||
Watch Page: Ver página
|
||||
General: Geral
|
||||
External Player Settings:
|
||||
Custom External Player Arguments: Argumentos do reprodutor externo personalizado
|
||||
Custom External Player Executable: Executável de reprodutor externo personalizado
|
||||
|
|
|
@ -244,9 +244,9 @@ Settings:
|
|||
8k: '8k'
|
||||
Playlist Next Video Interval: Задержка перед автовоспроизведением
|
||||
Scroll Volume Over Video Player: Прокрутка громкости поверх видеопроигрывателя
|
||||
Next Video Interval: Промежуток к переходу на следующее видео
|
||||
Next Video Interval: Шаг перехода на следующее видео
|
||||
Display Play Button In Video Player: Отображать кнопку воспроизведения в видеопроигрывателе
|
||||
Fast-Forward / Rewind Interval: Промежуток перемотки вперёд/назад
|
||||
Fast-Forward / Rewind Interval: Шаг перемотки вперёд/назад
|
||||
Scroll Playback Rate Over Video Player: Прокрутка скорости воспроизведения поверх
|
||||
видеопроигрывателя
|
||||
Max Video Playback Rate: Предельная скорость воспроизведения
|
||||
|
@ -265,7 +265,7 @@ Settings:
|
|||
File Name Tooltip: Вы можете использовать эти переменные. %Y Год 4 цифры. %M
|
||||
Месяц 2 цифры. %D День 2 цифры. %H Час 2 цифры. %N Минуты 2 цифры. %S Секунды
|
||||
2 цифры. %T Миллисекунды 3 цифры. %s Секунды видео. %t Миллисекунды видео
|
||||
3 цифры. %i Идентификатор видео. Вы также можете использовать "\" или "/"
|
||||
3 цифры. %i Идентификатор видео. Вы также можете использовать «\» или «/»
|
||||
для создания подпапок.
|
||||
Enter Fullscreen on Display Rotate: Входить в полноэкранный режим при повороте
|
||||
дисплея
|
||||
|
@ -383,7 +383,7 @@ Settings:
|
|||
Hide Popular Videos: Скрыть популярные видео
|
||||
Hide Trending Videos: Скрыть видео в тренде
|
||||
Hide Recommended Videos: Скрыть рекомендуемые видео
|
||||
Distraction Free Settings: Настройки причин отвлечения внимания
|
||||
Distraction Free Settings: Отвлекающие части интерфейса
|
||||
Hide Comment Likes: Скрыть лайки в комментариях
|
||||
Hide Channel Subscribers: Скрыть подписчиков канала
|
||||
Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео
|
||||
|
@ -404,6 +404,11 @@ Settings:
|
|||
Hide Channel Playlists: Скрыть подборки канала
|
||||
Hide Channel Community: Скрыть сообщество канала
|
||||
Hide Channel Shorts: Скрыть короткие видео канала
|
||||
Sections:
|
||||
Side Bar: Боковая полоса
|
||||
Channel Page: Страница канала
|
||||
Watch Page: Страница просмотра
|
||||
General: Основные
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: Чтобы
|
||||
изменения вступили в силу, необходимо перезапустить приложение. Перезапустить
|
||||
и применить изменения?
|
||||
|
@ -411,7 +416,7 @@ Settings:
|
|||
Error getting network information. Is your proxy configured properly?: Ошибка
|
||||
при получении информации о сети. Правильно ли настроен ваш прокси-сервер?
|
||||
Your Info: Ваша информация
|
||||
Clicking on Test Proxy will send a request to: Нажмите "Протестировать прокси",
|
||||
Clicking on Test Proxy will send a request to: Нажмите «Протестировать прокси»,
|
||||
чтобы отправить запрос на
|
||||
Test Proxy: Протестировать прокси
|
||||
Proxy Port Number: Порт прокси-сервера
|
||||
|
@ -424,7 +429,7 @@ Settings:
|
|||
Enable Tor / Proxy: Включить Tor/Прокси
|
||||
Proxy Settings: Прокси
|
||||
SponsorBlock Settings:
|
||||
Notify when sponsor segment is skipped: Уведомлять о пропущенном отрезке спонсора
|
||||
Notify when sponsor segment is skipped: Уведомлять о пропущенном сегменте
|
||||
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': Сетевой адрес SponsorBlock
|
||||
API (По умолчанию https://sponsor.ajay.app)
|
||||
Enable SponsorBlock: Включить
|
||||
|
@ -433,7 +438,7 @@ Settings:
|
|||
Skip Option: Опция пропуска
|
||||
Prompt To Skip: Предлагать пропустить
|
||||
Auto Skip: Автопропуск
|
||||
Show In Seek Bar: Показать на панели
|
||||
Show In Seek Bar: Показать сегмент
|
||||
Do Nothing: Ничего не делать
|
||||
Category Color: Цвет категории
|
||||
External Player Settings:
|
||||
|
@ -579,9 +584,9 @@ Channel:
|
|||
This channel currently does not have any posts: На этом канале в настоящее время
|
||||
нет никаких записей
|
||||
Live:
|
||||
Live: Прямой показ
|
||||
Live: Трансляции
|
||||
This channel does not currently have any live streams: На этом канале в настоящее
|
||||
время нет прямых показов
|
||||
время нет прямых трансляций
|
||||
Shorts:
|
||||
Shorts: Короткие видео
|
||||
This channel does not currently have any shorts: На этом канале пока что нет коротких
|
||||
|
@ -605,18 +610,18 @@ Video:
|
|||
Watched: 'Просмотрено'
|
||||
# As in a Live Video
|
||||
Live: 'Трансляция'
|
||||
Live Now: 'Прямой эфир'
|
||||
Live Now: 'Трансляция'
|
||||
Live Chat: 'Чат трансляции'
|
||||
Enable Live Chat: 'Включить чат трансляции'
|
||||
Live Chat is currently not supported in this build.: 'В настоящее время чат трансляции
|
||||
в этой версии не поддерживается.'
|
||||
'Chat is disabled or the Live Stream has ended.': 'Чат отключен или прямая трансляция
|
||||
закончилась.'
|
||||
'Chat is disabled or the Live Stream has ended.': 'Чат отключён или прямая трансляция
|
||||
завершена.'
|
||||
Live chat is enabled. Chat messages will appear here once sent.: 'Чат трансляции
|
||||
включен. Сообщения чата будут отображаться здесь после отправки.'
|
||||
включён. Сообщения чата будут отображаться здесь после отправки.'
|
||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Чат
|
||||
трансляции в настоящее время не поддерживается набором функций Invidious. Требуется
|
||||
прямое подключение к YouTube.'
|
||||
трансляции в настоящее время не поддерживается Invidious API. Требуется прямое
|
||||
подключение к YouTube.'
|
||||
Published:
|
||||
Jan: 'Янв'
|
||||
Feb: 'Фев'
|
||||
|
@ -679,13 +684,13 @@ Video:
|
|||
translated from English: переведён с английского
|
||||
Sponsor Block category:
|
||||
music offtopic: Сегмент без музыки
|
||||
interaction: Напоминание о подписке (взаимодействие)
|
||||
interaction: Напоминание
|
||||
self-promotion: Самореклама
|
||||
outro: Концовка
|
||||
intro: Вступление
|
||||
sponsor: Покровитель
|
||||
sponsor: Спонсор
|
||||
recap: Краткое содержание
|
||||
filler: Наполнитель
|
||||
filler: Отвлечение
|
||||
Skipped segment: Пропущенный сегмент
|
||||
External Player:
|
||||
Unsupported Actions:
|
||||
|
@ -728,8 +733,8 @@ Video:
|
|||
Show Super Chat Comment: Показать комментарий «Супер Чата»
|
||||
Scroll to Bottom: Прокрутите вниз
|
||||
Upcoming: Предстоящее
|
||||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Прямой
|
||||
чат недоступен для этого показа. Возможно, он был отключён загрузчиком.
|
||||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Чат
|
||||
прямой трансляции недоступен. Возможно, он был отключён владельцем канала.
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
|
@ -900,7 +905,7 @@ Tooltips:
|
|||
Subscription Settings:
|
||||
Fetch Feeds from RSS: Если эта настройка включена, FreeTube будет получать вашу
|
||||
ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает
|
||||
блокировку IP, но не предоставляет определенную информацию, такую как продолжительность
|
||||
блокировку IP, но не предоставляет определённую информацию, такую как продолжительность
|
||||
видео или сведения о том, транслируется ли видео в настоящем времени
|
||||
Fetch Automatically: Если эта функция включена, FreeTube автоматически будет получать
|
||||
ленту ваших подписок как при открытии нового окна, так при переключении профиля.
|
||||
|
@ -914,7 +919,7 @@ Tooltips:
|
|||
Force Local Backend for Legacy Formats: Работает, только если по умолчанию используется
|
||||
набор функций Invidious. Если эта настройка включена, локальный набор функций
|
||||
будет работать и использовать устаревшие форматы вместо форматов Invidious.
|
||||
Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений
|
||||
Помогает, когда видео, возвращённые Invidious, не воспроизводятся из-за ограничений
|
||||
страны.
|
||||
Scroll Playback Rate Over Video Player: Пока указатель мыши находится над видео,
|
||||
нажмите и удерживайте клавишу Control (клавиша Command на Mac) и прокрутите
|
||||
|
@ -936,7 +941,7 @@ Tooltips:
|
|||
Custom External Player Arguments: Любые пользовательские аргументы командной строки,
|
||||
разделенные точкой с запятой (';'), которые вы хотите передать внешнему проигрывателю.
|
||||
Ignore Warnings: Скрыть предупреждения, когда текущий внешний проигрыватель не
|
||||
поддерживает текущее действие (например, обратный порядок подборок и др.).
|
||||
поддерживает текущее действие (например, обратный порядок подборок и другие).
|
||||
Custom External Player Executable: По умолчанию FreeTube будет считать, что выбранный
|
||||
внешний проигрыватель можно найти через переменную окружения PATH. При необходимости
|
||||
здесь можно задать собственный путь.
|
||||
|
@ -946,7 +951,7 @@ Tooltips:
|
|||
DefaultCustomArgumentsTemplate: "(По умолчанию: '{defaultCustomArguments}')"
|
||||
Experimental Settings:
|
||||
Replace HTTP Cache: Отключает дисковый HTTP-кэш Electron и включает пользовательский
|
||||
кэш изображений в памяти. Приведет к увеличению использования оперативной памяти.
|
||||
кэш изображений в памяти. Приведёт к увеличению использования оперативной памяти.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Введите название канала или его идентификатор, чтобы скрыть все
|
||||
видео, подборки и сам канал от показа в поиске или трендах. Введённое название
|
||||
|
@ -990,7 +995,7 @@ Channels:
|
|||
Search bar placeholder: Поиск каналов
|
||||
Unsubscribe: Отписаться
|
||||
Unsubscribed: '{channelName} был удалён из ваших подписок'
|
||||
Unsubscribe Prompt: Вы уверены, что хотите отписаться от "{channelName}"?
|
||||
Unsubscribe Prompt: Вы уверены, что хотите отписаться от «{channelName}»?
|
||||
Clipboard:
|
||||
Copy failed: Не удалось скопировать в буфер обмена
|
||||
Cannot access clipboard without a secure connection: Невозможно получить доступ
|
||||
|
|
|
@ -167,7 +167,7 @@ Tooltips:
|
|||
میں نہیں ہیں۔ یوٹیوب کے ذریعہ تعاون یافتہ۔'
|
||||
External Link Handling: |
|
||||
'جب کوئی لنک، جسے FreeTube میں نہیں کھولا جا سکتا، پر کلک کیا جاتا ہے تو پہلے سے طے شدہ طرز عمل کا انتخاب کریں۔
|
||||
بطور ڈیفالٹ FreeTube آپ کے ڈیفالٹ براؤزر میں کلک کردہ لنک کو کھول دے گا۔'
|
||||
بطور ڈیفالٹ FreeTube آپ کے ڈیفالٹ براؤزر میں کلک کردہ لنک کو کھول دے گا۔'
|
||||
Player Settings:
|
||||
Force Local Backend for Legacy Formats: 'صرف اس وقت کام کرتا ہے جب Invidious API
|
||||
آپ کا ہو۔ پہلے سے طے شدہ فعال ہونے پر، مقامی API چلائے گا اور لوٹے گئے لیگیسی
|
||||
|
|
|
@ -844,7 +844,7 @@ Search Bar:
|
|||
Are you sure you want to open this link?: 您确定要打开此链接吗?
|
||||
Unknown YouTube url type, cannot be opened in app: 未知的 YouTube url 类型,不能在应用程序中打开
|
||||
External link opening has been disabled in the general settings: 外部链接打开在常规设置中被禁用
|
||||
Hashtags have not yet been implemented, try again later: 哈希标签功能尚未实现,请稍后再试
|
||||
Hashtags have not yet been implemented, try again later: 话题标签功能尚未实现,请稍后再试
|
||||
Default Invidious instance has been set to {instance}: 默认的 Invidious 实例已被设置为 {instance}
|
||||
Playing Next Video Interval: 马上播放下一个视频。单击取消。| {nextVideoInterval} 秒内播放下个视频。单击取消。 |
|
||||
{nextVideoInterval} 秒内播放下个视频。单击取消。
|
||||
|
@ -882,5 +882,5 @@ Chapters:
|
|||
Preferences: 选项
|
||||
Ok: 好
|
||||
Hashtag:
|
||||
Hashtag: 标签
|
||||
This hashtag does not currently have any videos: 此标签下当前没有任何短视频
|
||||
Hashtag: 话题标签
|
||||
This hashtag does not currently have any videos: 此话题标签下当前没有任何短视频
|
||||
|
|
Loading…
Reference in New Issue