Merge branch 'development'
This commit is contained in:
commit
70ff00c00d
|
@ -11,7 +11,7 @@ jobs:
|
||||||
build:
|
build:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [12.x]
|
node-version: [14.x]
|
||||||
runtime: [ linux-x64, linux-arm64, win-x64, osx-x64 ]
|
runtime: [ linux-x64, linux-arm64, win-x64, osx-x64 ]
|
||||||
include:
|
include:
|
||||||
- runtime: linux-x64
|
- runtime: linux-x64
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
|
name: Project Board Automation
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [labeled, unlabeled, closed, deleted]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
assign-issues-to-projects:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
|
||||||
|
# For bug reports
|
||||||
|
- name: New bug issue
|
||||||
|
uses: alex-page/github-project-automation-plus@v0.5.1
|
||||||
|
if: github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'bug')
|
||||||
|
with:
|
||||||
|
project: Bug Reports
|
||||||
|
column: To assign
|
||||||
|
repo-token: ${{ secrets.PUSH_TOKEN }}
|
||||||
|
action: update
|
||||||
|
|
||||||
|
- name: Bug label removed
|
||||||
|
uses: alex-page/github-project-automation-plus@v0.5.1
|
||||||
|
if: github.event.action == 'unlabeled' || github.event.action == 'closed' || github.event.action == 'deleted'
|
||||||
|
with:
|
||||||
|
action: delete
|
||||||
|
project: Bug Reports
|
||||||
|
column: To assign
|
||||||
|
repo-token: ${{ secrets.PUSH_TOKEN }}
|
||||||
|
|
||||||
|
# For feature requests
|
||||||
|
- name: New feature issue
|
||||||
|
uses: alex-page/github-project-automation-plus@v0.5.1
|
||||||
|
if: github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'enhancement')
|
||||||
|
with:
|
||||||
|
project: Feature Requests
|
||||||
|
column: To assign
|
||||||
|
repo-token: ${{ secrets.PUSH_TOKEN }}
|
||||||
|
action: update
|
||||||
|
|
||||||
|
- name: Feature request label removed
|
||||||
|
uses: alex-page/github-project-automation-plus@v0.5.1
|
||||||
|
if: github.event.action == 'unlabeled' || github.event.action == 'closed' || github.event.action == 'deleted'
|
||||||
|
with:
|
||||||
|
action: delete
|
||||||
|
project: Feature Requests
|
||||||
|
column: To assign
|
||||||
|
repo-token: ${{ secrets.PUSH_TOKEN }}
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
// for the documentation about the tasks.json format
|
// for the documentation about the tasks.json format
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"tasks": [
|
"tasks": [
|
||||||
|
@ -16,4 +16,4 @@
|
||||||
"detail": "node _scripts/dev-runner.js"
|
"detail": "node _scripts/dev-runner.js"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ if (platform == 'darwin') {
|
||||||
arch = Arch.arm64
|
arch = Arch.arm64
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[3] === 'arm32') {
|
if (args[2] === 'arm32') {
|
||||||
arch = Arch.armv7l
|
arch = Arch.armv7l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +69,19 @@ const config = {
|
||||||
icon: '_icons/icon.svg',
|
icon: '_icons/icon.svg',
|
||||||
target: ['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'],
|
target: ['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'],
|
||||||
},
|
},
|
||||||
|
deb: {
|
||||||
|
depends: [
|
||||||
|
"libgtk-3-0",
|
||||||
|
"libnotify4",
|
||||||
|
"libnss3",
|
||||||
|
"libxss1",
|
||||||
|
"libxtst6",
|
||||||
|
"xdg-utils",
|
||||||
|
"libatspi2.0-0",
|
||||||
|
"libuuid1",
|
||||||
|
"libsecret-1-0"
|
||||||
|
]
|
||||||
|
},
|
||||||
mac: {
|
mac: {
|
||||||
category: 'public.app-category.utilities',
|
category: 'public.app-category.utilities',
|
||||||
icon: '_icons/iconMac.icns',
|
icon: '_icons/iconMac.icns',
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
95
package.json
95
package.json
|
@ -8,105 +8,104 @@
|
||||||
"url": "https://github.com/FreeTubeApp/FreeTube/issues"
|
"url": "https://github.com/FreeTubeApp/FreeTube/issues"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron/remote": "^1.0.4",
|
"@electron/remote": "^1.1.0",
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.34",
|
"@fortawesome/fontawesome-svg-core": "^1.2.35",
|
||||||
"@fortawesome/free-brands-svg-icons": "^5.15.2",
|
"@fortawesome/free-brands-svg-icons": "^5.15.3",
|
||||||
"@fortawesome/free-solid-svg-icons": "^5.15.2",
|
"@fortawesome/free-solid-svg-icons": "^5.15.3",
|
||||||
"@fortawesome/vue-fontawesome": "^2.0.2",
|
"@fortawesome/vue-fontawesome": "^2.0.2",
|
||||||
"@silvermine/videojs-quality-selector": "^1.2.4",
|
"@silvermine/videojs-quality-selector": "^1.2.5",
|
||||||
"autolinker": "^3.14.2",
|
"autolinker": "^3.14.3",
|
||||||
"bulma-pro": "^0.2.0",
|
"bulma-pro": "^0.2.0",
|
||||||
"dateformat": "^4.5.1",
|
"dateformat": "^4.5.1",
|
||||||
"electron-context-menu": "^2.5.0",
|
"electron-context-menu": "^3.0.0",
|
||||||
"http-proxy-agent": "^4.0.1",
|
"http-proxy-agent": "^4.0.1",
|
||||||
"https-proxy-agent": "^5.0.0",
|
"https-proxy-agent": "^5.0.0",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"js-yaml": "^4.0.0",
|
"js-yaml": "^4.1.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
"lodash.uniqwith": "^4.5.0",
|
"lodash.uniqwith": "^4.5.0",
|
||||||
"markdown": "^0.5.0",
|
"markdown": "^0.5.0",
|
||||||
"material-design-icons": "^3.0.1",
|
"material-design-icons": "^3.0.1",
|
||||||
"nedb": "^1.8.0",
|
"nedb": "^1.8.0",
|
||||||
|
"node-forge": "^0.10.0",
|
||||||
"opml-to-json": "^1.0.1",
|
"opml-to-json": "^1.0.1",
|
||||||
"rss-parser": "^3.12.0",
|
"rss-parser": "^3.12.0",
|
||||||
"socks-proxy-agent": "^5.0.0",
|
"socks-proxy-agent": "^5.0.0",
|
||||||
"video.js": "7.10.2",
|
"video.js": "^7.10.2",
|
||||||
"videojs-abloop": "^1.2.0",
|
"videojs-abloop": "^1.2.0",
|
||||||
"videojs-contrib-quality-levels": "^2.0.9",
|
"videojs-contrib-quality-levels": "^2.1.0",
|
||||||
"videojs-http-source-selector": "^1.1.6",
|
"videojs-http-source-selector": "^1.1.6",
|
||||||
"videojs-overlay": "^2.1.4",
|
"videojs-overlay": "^2.1.4",
|
||||||
"videojs-replay": "^1.1.0",
|
"videojs-replay": "^1.1.0",
|
||||||
"videojs-vtt-thumbnails-freetube": "0.0.15",
|
"videojs-vtt-thumbnails-freetube": "0.0.15",
|
||||||
"vue": "^2.6.12",
|
"vue": "^2.6.12",
|
||||||
"vue-electron": "^1.0.6",
|
"vue-electron": "^1.0.6",
|
||||||
"vue-i18n": "^8.23.0",
|
"vue-i18n": "^8.24.4",
|
||||||
"vue-observe-visibility": "^1.0.0",
|
"vue-observe-visibility": "^1.0.0",
|
||||||
"vue-router": "^3.5.1",
|
"vue-router": "^3.5.1",
|
||||||
"vuex": "^3.6.2",
|
"vuex": "^3.6.2",
|
||||||
"xml2json": "^0.12.0",
|
"xml2json": "^0.12.0",
|
||||||
"youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git",
|
"youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git",
|
||||||
"youtube-suggest": "^1.1.0",
|
"youtube-suggest": "^1.1.2",
|
||||||
"yt-channel-info": "^1.3.0",
|
"yt-channel-info": "^2.1.1",
|
||||||
"yt-comment-scraper": "^3.0.2",
|
"yt-comment-scraper": "^4.0.1",
|
||||||
"yt-dash-manifest-generator": "1.1.0",
|
"yt-dash-manifest-generator": "1.1.0",
|
||||||
"yt-trending-scraper": "^1.1.0",
|
"yt-trending-scraper": "^2.0.0",
|
||||||
"yt-xml2vtt": "^1.2.0",
|
"ytdl-core": "^4.8.0",
|
||||||
"ytdl-core": "^4.5.0",
|
"ytpl": "^2.2.1",
|
||||||
"ytpl": "^2.0.5",
|
"ytsr": "^3.5.0"
|
||||||
"ytsr": "^3.3.1"
|
|
||||||
},
|
},
|
||||||
"description": "A private YouTube client",
|
"description": "A private YouTube client",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.13.8",
|
"@babel/core": "^7.14.2",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.13.0",
|
"@babel/plugin-proposal-class-properties": "^7.13.0",
|
||||||
"@babel/plugin-proposal-object-rest-spread": "^7.13.8",
|
"@babel/plugin-proposal-object-rest-spread": "^7.14.2",
|
||||||
"@babel/preset-env": "^7.13.9",
|
"@babel/preset-env": "^7.14.2",
|
||||||
"@babel/preset-typescript": "^7.13.0",
|
"@babel/preset-typescript": "^7.13.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.16.1",
|
"@typescript-eslint/eslint-plugin": "^4.23.0",
|
||||||
"@typescript-eslint/parser": "^4.16.1",
|
"@typescript-eslint/parser": "^4.23.0",
|
||||||
"acorn": "^8.0.5",
|
"acorn": "^8.2.4",
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"babel-loader": "^8.2.2",
|
"babel-loader": "^8.2.2",
|
||||||
"copy-webpack-plugin": "8.0.0",
|
"copy-webpack-plugin": "8.1.1",
|
||||||
"css-loader": "^5.1.1",
|
"css-loader": "^5.2.4",
|
||||||
"devtron": "^1.4.0",
|
"electron": "^12.0.7",
|
||||||
"electron": "^12.0.0",
|
|
||||||
"electron-builder": "^22.10.5",
|
"electron-builder": "^22.10.5",
|
||||||
"electron-builder-squirrel-windows": "^22.10.5",
|
"electron-builder-squirrel-windows": "^22.11.4",
|
||||||
"electron-debug": "^3.2.0",
|
"electron-debug": "^3.2.0",
|
||||||
"electron-rebuild": "^2.3.5",
|
"electron-rebuild": "^2.3.5",
|
||||||
"eslint": "^7.21.0",
|
"eslint": "^7.26.0",
|
||||||
"eslint-config-prettier": "^8.1.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
"eslint-plugin-import": "^2.22.1",
|
"eslint-plugin-import": "^2.23.2",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-prettier": "^3.3.1",
|
"eslint-plugin-prettier": "^3.4.0",
|
||||||
"eslint-plugin-promise": "^4.3.1",
|
"eslint-plugin-promise": "^5.1.0",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"eslint-plugin-vue": "^7.7.0",
|
"eslint-plugin-vue": "^7.9.0",
|
||||||
"fast-glob": "^3.2.5",
|
"fast-glob": "^3.2.5",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"html-webpack-plugin": "^5.2.0",
|
"html-webpack-plugin": "^5.3.1",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
"mini-css-extract-plugin": "^1.3.9",
|
"mini-css-extract-plugin": "^1.6.0",
|
||||||
"node-abi": "^2.20.0",
|
"node-abi": "^2.26.0",
|
||||||
"node-loader": "^1.0.2",
|
"node-loader": "^2.0.0",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.3.0",
|
||||||
"sass": "^1.32.8",
|
"sass": "^1.32.13",
|
||||||
"sass-loader": "^11.0.1",
|
"sass-loader": "^11.1.1",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
"tree-kill": "1.2.2",
|
"tree-kill": "1.2.2",
|
||||||
"typescript": "^4.2.2",
|
"typescript": "^4.2.4",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"vue-devtools": "^5.1.4",
|
"vue-devtools": "^5.1.4",
|
||||||
"vue-eslint-parser": "^7.6.0",
|
"vue-eslint-parser": "^7.6.0",
|
||||||
"vue-loader": "^15.9.6",
|
"vue-loader": "^15.9.7",
|
||||||
"vue-style-loader": "^4.1.3",
|
"vue-style-loader": "^4.1.3",
|
||||||
"vue-template-compiler": "^2.6.12",
|
"vue-template-compiler": "^2.6.12",
|
||||||
"webpack": "^5.24.3",
|
"webpack": "^5.37.0",
|
||||||
"webpack-cli": "^4.5.0",
|
"webpack-cli": "^4.7.0",
|
||||||
"webpack-dev-server": "^3.11.2"
|
"webpack-dev-server": "^3.11.2"
|
||||||
},
|
},
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
@ -149,5 +148,5 @@
|
||||||
"test": "run-s rebuild:node pack:workers jest",
|
"test": "run-s rebuild:node pack:workers jest",
|
||||||
"test:watch": "run-s rebuild:node pack:workers jest:watch"
|
"test:watch": "run-s rebuild:node pack:workers jest:watch"
|
||||||
},
|
},
|
||||||
"version": "0.12.0"
|
"version": "0.13.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,75 +1,151 @@
|
||||||
import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron'
|
import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron'
|
||||||
import { productName } from '../../package.json'
|
|
||||||
import Datastore from 'nedb'
|
import Datastore from 'nedb'
|
||||||
|
|
||||||
require('@electron/remote/main').initialize()
|
if (process.argv.includes('--version')) {
|
||||||
|
console.log(`v${app.getVersion()}`)
|
||||||
require('electron-context-menu')({
|
app.exit(0)
|
||||||
showSearchWithGoogle: false,
|
|
||||||
showSaveImageAs: true,
|
|
||||||
showCopyImageAddress: true,
|
|
||||||
prepend: (params, browserWindow) => []
|
|
||||||
})
|
|
||||||
|
|
||||||
const localDataStorage = app.getPath('userData') // Grabs the userdata directory based on the user's OS
|
|
||||||
|
|
||||||
const settingsDb = new Datastore({
|
|
||||||
filename: localDataStorage + '/settings.db',
|
|
||||||
autoload: true
|
|
||||||
})
|
|
||||||
|
|
||||||
// set app name
|
|
||||||
app.setName(productName)
|
|
||||||
|
|
||||||
// disable electron warning
|
|
||||||
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true'
|
|
||||||
const path = require('path')
|
|
||||||
const isDev = process.env.NODE_ENV === 'development'
|
|
||||||
const isDebug = process.argv.includes('--debug')
|
|
||||||
let mainWindow
|
|
||||||
let startupUrl
|
|
||||||
|
|
||||||
// CORS somehow gets re-enabled in Electron v9.0.4
|
|
||||||
// This line disables it.
|
|
||||||
// This line can possible be removed if the issue is fixed upstream
|
|
||||||
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors')
|
|
||||||
|
|
||||||
app.commandLine.appendSwitch('enable-accelerated-video-decode')
|
|
||||||
app.commandLine.appendSwitch('ignore-gpu-blacklist')
|
|
||||||
|
|
||||||
// See: https://stackoverflow.com/questions/45570589/electron-protocol-handler-not-working-on-windows
|
|
||||||
// remove so we can register each time as we run the app.
|
|
||||||
app.removeAsDefaultProtocolClient('freetube')
|
|
||||||
|
|
||||||
// If we are running a non-packaged version of the app && on windows
|
|
||||||
if (isDev && process.platform === 'win32') {
|
|
||||||
// Set the path of electron.exe and your app.
|
|
||||||
// These two additional parameters are only available on windows.
|
|
||||||
app.setAsDefaultProtocolClient('freetube', process.execPath, [path.resolve(process.argv[1])])
|
|
||||||
} else {
|
} else {
|
||||||
app.setAsDefaultProtocolClient('freetube')
|
runApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Uncomment if needed
|
function runApp() {
|
||||||
// only allow single instance of application
|
require('@electron/remote/main').initialize()
|
||||||
if (!isDev) {
|
|
||||||
const gotTheLock = app.requestSingleInstanceLock()
|
|
||||||
|
|
||||||
if (gotTheLock) {
|
require('electron-context-menu')({
|
||||||
app.on('second-instance', (event, commandLine, workingDirectory) => {
|
showSearchWithGoogle: false,
|
||||||
// Someone tried to run a second instance, we should focus our window.
|
showSaveImageAs: true,
|
||||||
if (mainWindow && typeof (commandLine) !== 'undefined') {
|
showCopyImageAddress: true,
|
||||||
if (mainWindow.isMinimized()) mainWindow.restore()
|
prepend: (params, browserWindow) => []
|
||||||
mainWindow.focus()
|
})
|
||||||
|
|
||||||
const url = getLinkUrl(commandLine)
|
const localDataStorage = app.getPath('userData') // Grabs the userdata directory based on the user's OS
|
||||||
if (url) {
|
|
||||||
mainWindow.webContents.send('openUrl', url)
|
const settingsDb = new Datastore({
|
||||||
|
filename: localDataStorage + '/settings.db',
|
||||||
|
autoload: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// disable electron warning
|
||||||
|
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true'
|
||||||
|
const path = require('path')
|
||||||
|
const isDev = process.env.NODE_ENV === 'development'
|
||||||
|
const isDebug = process.argv.includes('--debug')
|
||||||
|
let mainWindow
|
||||||
|
let openedWindows = []
|
||||||
|
let startupUrl
|
||||||
|
|
||||||
|
// CORS somehow gets re-enabled in Electron v9.0.4
|
||||||
|
// This line disables it.
|
||||||
|
// This line can possible be removed if the issue is fixed upstream
|
||||||
|
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors')
|
||||||
|
|
||||||
|
app.commandLine.appendSwitch('enable-accelerated-video-decode')
|
||||||
|
app.commandLine.appendSwitch('enable-file-cookies')
|
||||||
|
app.commandLine.appendSwitch('ignore-gpu-blacklist')
|
||||||
|
|
||||||
|
// See: https://stackoverflow.com/questions/45570589/electron-protocol-handler-not-working-on-windows
|
||||||
|
// remove so we can register each time as we run the app.
|
||||||
|
app.removeAsDefaultProtocolClient('freetube')
|
||||||
|
|
||||||
|
// If we are running a non-packaged version of the app && on windows
|
||||||
|
if (isDev && process.platform === 'win32') {
|
||||||
|
// Set the path of electron.exe and your app.
|
||||||
|
// These two additional parameters are only available on windows.
|
||||||
|
app.setAsDefaultProtocolClient('freetube', process.execPath, [path.resolve(process.argv[1])])
|
||||||
|
} else {
|
||||||
|
app.setAsDefaultProtocolClient('freetube')
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Uncomment if needed
|
||||||
|
// only allow single instance of application
|
||||||
|
if (!isDev) {
|
||||||
|
const gotTheLock = app.requestSingleInstanceLock()
|
||||||
|
|
||||||
|
if (gotTheLock) {
|
||||||
|
app.on('second-instance', (event, commandLine, workingDirectory) => {
|
||||||
|
// Someone tried to run a second instance, we should focus our window.
|
||||||
|
if (mainWindow && typeof (commandLine) !== 'undefined') {
|
||||||
|
if (mainWindow.isMinimized()) mainWindow.restore()
|
||||||
|
mainWindow.focus()
|
||||||
|
|
||||||
|
const url = getLinkUrl(commandLine)
|
||||||
|
if (url) {
|
||||||
|
mainWindow.webContents.send('openUrl', url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
|
app.on('ready', (event, commandLine, workingDirectory) => {
|
||||||
|
settingsDb.find({
|
||||||
|
$or: [
|
||||||
|
{ _id: 'disableSmoothScrolling' },
|
||||||
|
{ _id: 'useProxy' },
|
||||||
|
{ _id: 'proxyProtocol' },
|
||||||
|
{ _id: 'proxyHostname' },
|
||||||
|
{ _id: 'proxyPort' }
|
||||||
|
]
|
||||||
|
}, function (err, doc) {
|
||||||
|
if (err) {
|
||||||
|
app.exit(0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let disableSmoothScrolling = false
|
||||||
|
let useProxy = false
|
||||||
|
let proxyProtocol = 'socks5'
|
||||||
|
let proxyHostname = '127.0.0.1'
|
||||||
|
let proxyPort = '9050'
|
||||||
|
|
||||||
|
if (typeof doc === 'object' && doc.length > 0) {
|
||||||
|
doc.forEach((dbItem) => {
|
||||||
|
switch (dbItem._id) {
|
||||||
|
case 'disableSmoothScrolling':
|
||||||
|
disableSmoothScrolling = dbItem.value
|
||||||
|
break
|
||||||
|
case 'useProxy':
|
||||||
|
useProxy = dbItem.value
|
||||||
|
break
|
||||||
|
case 'proxyProtocol':
|
||||||
|
proxyProtocol = dbItem.value
|
||||||
|
break
|
||||||
|
case 'proxyHostname':
|
||||||
|
proxyHostname = dbItem.value
|
||||||
|
break
|
||||||
|
case 'proxyPort':
|
||||||
|
proxyPort = dbItem.value
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (disableSmoothScrolling) {
|
||||||
|
app.commandLine.appendSwitch('disable-smooth-scrolling')
|
||||||
|
} else {
|
||||||
|
app.commandLine.appendSwitch('enable-smooth-scrolling')
|
||||||
|
}
|
||||||
|
|
||||||
|
const proxyUrl = `${proxyProtocol}://${proxyHostname}:${proxyPort}`
|
||||||
|
|
||||||
|
createWindow(useProxy, proxyUrl)
|
||||||
|
|
||||||
|
if (isDev) {
|
||||||
|
installDevTools()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDebug) {
|
||||||
|
mainWindow.webContents.openDevTools()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
app.quit()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
require('electron-debug')({
|
||||||
|
showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true')
|
||||||
})
|
})
|
||||||
|
|
||||||
app.on('ready', (event, commandLine, workingDirectory) => {
|
app.on('ready', () => {
|
||||||
settingsDb.find({
|
settingsDb.find({
|
||||||
$or: [
|
$or: [
|
||||||
{ _id: 'disableSmoothScrolling' },
|
{ _id: 'disableSmoothScrolling' },
|
||||||
|
@ -131,180 +207,160 @@ if (!isDev) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
app.quit()
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
require('electron-debug')({
|
|
||||||
showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true')
|
|
||||||
})
|
|
||||||
|
|
||||||
app.on('ready', () => {
|
async function installDevTools () {
|
||||||
settingsDb.find({
|
try {
|
||||||
$or: [
|
/* eslint-disable */
|
||||||
{ _id: 'disableSmoothScrolling' },
|
require('vue-devtools').install()
|
||||||
{ _id: 'useProxy' },
|
/* eslint-enable */
|
||||||
{ _id: 'proxyProtocol' },
|
} catch (err) {
|
||||||
{ _id: 'proxyHostname' },
|
console.log(err)
|
||||||
{ _id: 'proxyPort' }
|
}
|
||||||
]
|
}
|
||||||
|
|
||||||
|
function createWindow (useProxy = false, proxyUrl = '', replaceMainWindow = true) {
|
||||||
|
/**
|
||||||
|
* Initial window options
|
||||||
|
*/
|
||||||
|
const newWindow = new BrowserWindow({
|
||||||
|
backgroundColor: '#fff',
|
||||||
|
icon: isDev
|
||||||
|
? path.join(__dirname, '../../_icons/iconColor.png')
|
||||||
|
/* eslint-disable-next-line */
|
||||||
|
: `${__dirname}/_icons/iconColor.png`,
|
||||||
|
autoHideMenuBar: true,
|
||||||
|
// useContentSize: true,
|
||||||
|
webPreferences: {
|
||||||
|
nodeIntegration: true,
|
||||||
|
nodeIntegrationInWorker: false,
|
||||||
|
webSecurity: false,
|
||||||
|
backgroundThrottling: false,
|
||||||
|
enableRemoteModule: true,
|
||||||
|
contextIsolation: false
|
||||||
|
},
|
||||||
|
show: false
|
||||||
|
})
|
||||||
|
openedWindows.push(newWindow)
|
||||||
|
if (replaceMainWindow) {
|
||||||
|
mainWindow = newWindow
|
||||||
|
}
|
||||||
|
|
||||||
|
newWindow.setBounds({
|
||||||
|
width: 1200,
|
||||||
|
height: 800
|
||||||
|
})
|
||||||
|
|
||||||
|
if (useProxy) {
|
||||||
|
newWindow.webContents.session.setProxy({
|
||||||
|
proxyRules: proxyUrl
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set CONSENT cookie on reasonable domains
|
||||||
|
[
|
||||||
|
'http://www.youtube.com',
|
||||||
|
'https://www.youtube.com',
|
||||||
|
'http://youtube.com',
|
||||||
|
'https://youtube.com'
|
||||||
|
].forEach(url => {
|
||||||
|
newWindow.webContents.session.cookies.set({
|
||||||
|
url: url,
|
||||||
|
name: 'CONSENT',
|
||||||
|
value: 'YES+'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
settingsDb.findOne({
|
||||||
|
_id: 'bounds'
|
||||||
}, function (err, doc) {
|
}, function (err, doc) {
|
||||||
if (err) {
|
if (doc === null || err) {
|
||||||
app.exit(0)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let disableSmoothScrolling = false
|
if (typeof doc !== 'object' || typeof doc.value !== 'object') {
|
||||||
let useProxy = false
|
return
|
||||||
let proxyProtocol = 'socks5'
|
}
|
||||||
let proxyHostname = '127.0.0.1'
|
|
||||||
let proxyPort = '9050'
|
|
||||||
|
|
||||||
if (typeof doc === 'object' && doc.length > 0) {
|
const { maximized, ...bounds } = doc.value
|
||||||
doc.forEach((dbItem) => {
|
const allDisplaysSummaryWidth = screen
|
||||||
switch (dbItem._id) {
|
.getAllDisplays()
|
||||||
case 'disableSmoothScrolling':
|
.reduce((accumulator, { size: { width } }) => accumulator + width, 0)
|
||||||
disableSmoothScrolling = dbItem.value
|
|
||||||
break
|
if (allDisplaysSummaryWidth >= bounds.x) {
|
||||||
case 'useProxy':
|
newWindow.setBounds({
|
||||||
useProxy = dbItem.value
|
x: bounds.x,
|
||||||
break
|
y: bounds.y,
|
||||||
case 'proxyProtocol':
|
width: bounds.width,
|
||||||
proxyProtocol = dbItem.value
|
height: bounds.height
|
||||||
break
|
|
||||||
case 'proxyHostname':
|
|
||||||
proxyHostname = dbItem.value
|
|
||||||
break
|
|
||||||
case 'proxyPort':
|
|
||||||
proxyPort = dbItem.value
|
|
||||||
break
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (maximized) {
|
||||||
if (disableSmoothScrolling) {
|
newWindow.maximize()
|
||||||
app.commandLine.appendSwitch('disable-smooth-scrolling')
|
|
||||||
} else {
|
|
||||||
app.commandLine.appendSwitch('enable-smooth-scrolling')
|
|
||||||
}
|
|
||||||
|
|
||||||
const proxyUrl = `${proxyProtocol}://${proxyHostname}:${proxyPort}`
|
|
||||||
|
|
||||||
createWindow(useProxy, proxyUrl)
|
|
||||||
|
|
||||||
if (isDev) {
|
|
||||||
installDevTools()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isDebug) {
|
|
||||||
mainWindow.webContents.openDevTools()
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
async function installDevTools () {
|
// If called multiple times
|
||||||
try {
|
// Duplicate menu items will be added
|
||||||
/* eslint-disable */
|
if (replaceMainWindow) {
|
||||||
require('devtron').install()
|
// eslint-disable-next-line
|
||||||
require('vue-devtools').install()
|
setMenu()
|
||||||
/* eslint-enable */
|
}
|
||||||
} catch (err) {
|
|
||||||
console.log(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function createWindow (useProxy = false, proxyUrl = '') {
|
// load root file/url
|
||||||
/**
|
if (isDev) {
|
||||||
* Initial window options
|
newWindow.loadURL('http://localhost:9080')
|
||||||
*/
|
} else {
|
||||||
mainWindow = new BrowserWindow({
|
|
||||||
backgroundColor: '#fff',
|
|
||||||
icon: isDev
|
|
||||||
? path.join(__dirname, '../../_icons/iconColor.png')
|
|
||||||
/* eslint-disable-next-line */
|
/* eslint-disable-next-line */
|
||||||
: `${__dirname}/_icons/iconColor.png`,
|
newWindow.loadFile(`${__dirname}/index.html`)
|
||||||
autoHideMenuBar: true,
|
|
||||||
// useContentSize: true,
|
|
||||||
webPreferences: {
|
|
||||||
nodeIntegration: true,
|
|
||||||
nodeIntegrationInWorker: false,
|
|
||||||
webSecurity: false,
|
|
||||||
backgroundThrottling: false,
|
|
||||||
enableRemoteModule: true,
|
|
||||||
contextIsolation: false
|
|
||||||
},
|
|
||||||
show: false
|
|
||||||
})
|
|
||||||
|
|
||||||
mainWindow.setBounds({
|
global.__static = path
|
||||||
width: 1200,
|
.join(__dirname, '/static')
|
||||||
height: 800
|
.replace(/\\/g, '\\\\')
|
||||||
})
|
}
|
||||||
|
|
||||||
if (useProxy) {
|
// Show when loaded
|
||||||
mainWindow.webContents.session.setProxy({
|
newWindow.on('ready-to-show', () => {
|
||||||
proxyRules: proxyUrl
|
newWindow.show()
|
||||||
|
newWindow.focus()
|
||||||
|
})
|
||||||
|
|
||||||
|
newWindow.on('close', () => {
|
||||||
|
// Clear cache and storage if it's the last window
|
||||||
|
if (openedWindows.length === 1) {
|
||||||
|
newWindow.webContents.session.clearCache()
|
||||||
|
newWindow.webContents.session.clearStorageData({
|
||||||
|
storages: [
|
||||||
|
'appcache',
|
||||||
|
'cookies',
|
||||||
|
'filesystem',
|
||||||
|
'indexdb',
|
||||||
|
'shadercache',
|
||||||
|
'websql',
|
||||||
|
'serviceworkers',
|
||||||
|
'cachestorage'
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
newWindow.on('closed', () => {
|
||||||
|
// Remove closed window
|
||||||
|
openedWindows = openedWindows.filter((window) => window !== newWindow)
|
||||||
|
if (newWindow === mainWindow) {
|
||||||
|
// Replace mainWindow to avoid accessing `mainWindow.webContents`
|
||||||
|
// Which raises "Object has been destroyed" error
|
||||||
|
mainWindow = openedWindows[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('closed')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsDb.findOne({
|
// Save closing window bounds & maximized status
|
||||||
_id: 'bounds'
|
|
||||||
}, function (err, doc) {
|
|
||||||
if (doc === null || err) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof doc !== 'object' || typeof doc.value !== 'object') {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const { maximized, ...bounds } = doc.value
|
|
||||||
const allDisplaysSummaryWidth = screen
|
|
||||||
.getAllDisplays()
|
|
||||||
.reduce((accumulator, { size: { width } }) => accumulator + width, 0)
|
|
||||||
|
|
||||||
if (allDisplaysSummaryWidth >= bounds.x) {
|
|
||||||
mainWindow.setBounds({
|
|
||||||
x: bounds.x,
|
|
||||||
y: bounds.y,
|
|
||||||
width: bounds.width,
|
|
||||||
height: bounds.height
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (maximized) {
|
|
||||||
mainWindow.maximize()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// eslint-disable-next-line
|
|
||||||
setMenu()
|
|
||||||
|
|
||||||
// load root file/url
|
|
||||||
if (isDev) {
|
|
||||||
mainWindow.loadURL('http://localhost:9080')
|
|
||||||
} else {
|
|
||||||
/* eslint-disable-next-line */
|
|
||||||
mainWindow.loadFile(`${__dirname}/index.html`)
|
|
||||||
|
|
||||||
global.__static = path
|
|
||||||
.join(__dirname, '/static')
|
|
||||||
.replace(/\\/g, '\\\\')
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show when loaded
|
|
||||||
mainWindow.on('ready-to-show', () => {
|
|
||||||
mainWindow.show()
|
|
||||||
mainWindow.focus()
|
|
||||||
})
|
|
||||||
|
|
||||||
mainWindow.on('closed', () => {
|
|
||||||
console.log('closed')
|
|
||||||
})
|
|
||||||
|
|
||||||
ipcMain.on('setBounds', (_e, data) => {
|
ipcMain.on('setBounds', (_e, data) => {
|
||||||
const value = {
|
const value = {
|
||||||
...mainWindow.getBounds(),
|
...mainWindow.getNormalBounds(),
|
||||||
maximized: mainWindow.isMaximized()
|
maximized: mainWindow.isMaximized()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,198 +415,188 @@ function createWindow (useProxy = false, proxyUrl = '') {
|
||||||
ipcMain.on('disableProxy', () => {
|
ipcMain.on('disableProxy', () => {
|
||||||
mainWindow.webContents.session.setProxy({})
|
mainWindow.webContents.session.setProxy({})
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
app.on('window-all-closed', () => {
|
ipcMain.on('createNewWindow', () => {
|
||||||
if (process.platform !== 'darwin') {
|
createWindow(false, '', false)
|
||||||
app.quit()
|
|
||||||
}
|
|
||||||
|
|
||||||
mainWindow.webContents.session.clearCache()
|
|
||||||
mainWindow.webContents.session.clearStorageData({
|
|
||||||
storages: [
|
|
||||||
'appcache',
|
|
||||||
'cookies',
|
|
||||||
'filesystem',
|
|
||||||
'indexdb',
|
|
||||||
'shadercache',
|
|
||||||
'websql',
|
|
||||||
'serviceworkers',
|
|
||||||
'cachestorage'
|
|
||||||
]
|
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
app.on('activate', () => {
|
app.on('window-all-closed', () => {
|
||||||
if (mainWindow === null) {
|
if (process.platform !== 'darwin') {
|
||||||
createWindow()
|
app.quit()
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Callback when processing a freetube:// link (macOS)
|
|
||||||
*/
|
|
||||||
app.on('open-url', (event, url) => {
|
|
||||||
event.preventDefault()
|
|
||||||
|
|
||||||
if (mainWindow && mainWindow.webContents) {
|
|
||||||
mainWindow.webContents.send('openUrl', baseUrl(url))
|
|
||||||
} else {
|
|
||||||
startupUrl = baseUrl(url)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check if an argument was passed and send it over to the GUI (Linux / Windows).
|
|
||||||
* Remove freetube:// protocol if present
|
|
||||||
*/
|
|
||||||
const url = getLinkUrl(process.argv)
|
|
||||||
if (url) {
|
|
||||||
startupUrl = url
|
|
||||||
}
|
|
||||||
|
|
||||||
function baseUrl(arg) {
|
|
||||||
return arg.replace('freetube://', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
function getLinkUrl(argv) {
|
|
||||||
if (argv.length > 1) {
|
|
||||||
return baseUrl(argv[argv.length - 1])
|
|
||||||
} else {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Auto Updater
|
|
||||||
*
|
|
||||||
* Uncomment the following code below and install `electron-updater` to
|
|
||||||
* support auto updating. Code Signing with a valid certificate is required.
|
|
||||||
* https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
import { autoUpdater } from 'electron-updater'
|
|
||||||
autoUpdater.on('update-downloaded', () => {
|
|
||||||
autoUpdater.quitAndInstall()
|
|
||||||
})
|
|
||||||
|
|
||||||
app.on('ready', () => {
|
|
||||||
if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates()
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* eslint-disable-next-line */
|
|
||||||
const sendMenuEvent = async data => {
|
|
||||||
mainWindow.webContents.send('change-view', data)
|
|
||||||
}
|
|
||||||
|
|
||||||
const template = [{
|
|
||||||
label: 'File',
|
|
||||||
submenu: [
|
|
||||||
{
|
|
||||||
role: 'quit'
|
|
||||||
}
|
}
|
||||||
]
|
})
|
||||||
},
|
|
||||||
{
|
app.on('activate', () => {
|
||||||
label: 'Edit',
|
if (mainWindow === null || mainWindow === undefined) {
|
||||||
submenu: [{
|
createWindow()
|
||||||
role: 'cut'
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Callback when processing a freetube:// link (macOS)
|
||||||
|
*/
|
||||||
|
app.on('open-url', (event, url) => {
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
|
if (mainWindow && mainWindow.webContents) {
|
||||||
|
mainWindow.webContents.send('openUrl', baseUrl(url))
|
||||||
|
} else {
|
||||||
|
startupUrl = baseUrl(url)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if an argument was passed and send it over to the GUI (Linux / Windows).
|
||||||
|
* Remove freetube:// protocol if present
|
||||||
|
*/
|
||||||
|
const url = getLinkUrl(process.argv)
|
||||||
|
if (url) {
|
||||||
|
startupUrl = url
|
||||||
|
}
|
||||||
|
|
||||||
|
function baseUrl(arg) {
|
||||||
|
return arg.replace('freetube://', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLinkUrl(argv) {
|
||||||
|
if (argv.length > 1) {
|
||||||
|
return baseUrl(argv[argv.length - 1])
|
||||||
|
} else {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto Updater
|
||||||
|
*
|
||||||
|
* Uncomment the following code below and install `electron-updater` to
|
||||||
|
* support auto updating. Code Signing with a valid certificate is required.
|
||||||
|
* https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
import { autoUpdater } from 'electron-updater'
|
||||||
|
autoUpdater.on('update-downloaded', () => {
|
||||||
|
autoUpdater.quitAndInstall()
|
||||||
|
})
|
||||||
|
|
||||||
|
app.on('ready', () => {
|
||||||
|
if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates()
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable-next-line */
|
||||||
|
const sendMenuEvent = async data => {
|
||||||
|
mainWindow.webContents.send('change-view', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
const template = [{
|
||||||
|
label: 'File',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
role: 'quit'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'copy',
|
label: 'Edit',
|
||||||
accelerator: 'CmdOrCtrl+C',
|
submenu: [{
|
||||||
selector: 'copy:'
|
role: 'cut'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'copy',
|
||||||
|
accelerator: 'CmdOrCtrl+C',
|
||||||
|
selector: 'copy:'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'paste',
|
||||||
|
accelerator: 'CmdOrCtrl+V',
|
||||||
|
selector: 'paste:'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'pasteandmatchstyle'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'delete'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'selectall'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'paste',
|
label: 'View',
|
||||||
accelerator: 'CmdOrCtrl+V',
|
submenu: [{
|
||||||
selector: 'paste:'
|
role: 'reload'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'forcereload',
|
||||||
|
accelerator: 'CmdOrCtrl+Shift+R'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'toggledevtools'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'resetzoom'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'zoomin'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'zoomout'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'togglefullscreen'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'pasteandmatchstyle'
|
role: 'window',
|
||||||
},
|
submenu: [{
|
||||||
{
|
role: 'minimize'
|
||||||
role: 'delete'
|
},
|
||||||
},
|
{
|
||||||
{
|
role: 'close'
|
||||||
role: 'selectall'
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
function setMenu () {
|
||||||
label: 'View',
|
if (process.platform === 'darwin') {
|
||||||
submenu: [{
|
template.unshift({
|
||||||
role: 'reload'
|
label: app.getName(),
|
||||||
},
|
submenu: [
|
||||||
{
|
{ role: 'about' },
|
||||||
role: 'forcereload',
|
{ type: 'separator' },
|
||||||
accelerator: 'CmdOrCtrl+Shift+R'
|
{ role: 'services' },
|
||||||
},
|
{ type: 'separator' },
|
||||||
{
|
{ role: 'hide' },
|
||||||
role: 'toggledevtools'
|
{ role: 'hideothers' },
|
||||||
},
|
{ role: 'unhide' },
|
||||||
{
|
{ type: 'separator' },
|
||||||
type: 'separator'
|
{ role: 'quit' }
|
||||||
},
|
]
|
||||||
{
|
})
|
||||||
role: 'resetzoom'
|
|
||||||
},
|
template.push({
|
||||||
{
|
role: 'window'
|
||||||
role: 'zoomin'
|
})
|
||||||
},
|
|
||||||
{
|
template.push({
|
||||||
role: 'zoomout'
|
role: 'help'
|
||||||
},
|
})
|
||||||
{
|
|
||||||
type: 'separator'
|
template.push({ role: 'services' })
|
||||||
},
|
}
|
||||||
{
|
|
||||||
role: 'togglefullscreen'
|
const menu = Menu.buildFromTemplate(template)
|
||||||
|
Menu.setApplicationMenu(menu)
|
||||||
}
|
}
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
role: 'window',
|
|
||||||
submenu: [{
|
|
||||||
role: 'minimize'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
role: 'close'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
function setMenu () {
|
|
||||||
if (process.platform === 'darwin') {
|
|
||||||
template.unshift({
|
|
||||||
label: app.getName(),
|
|
||||||
submenu: [
|
|
||||||
{ role: 'about' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'services' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'hide' },
|
|
||||||
{ role: 'hideothers' },
|
|
||||||
{ role: 'unhide' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'quit' }
|
|
||||||
]
|
|
||||||
})
|
|
||||||
|
|
||||||
template.push({
|
|
||||||
role: 'window'
|
|
||||||
})
|
|
||||||
|
|
||||||
template.push({
|
|
||||||
role: 'help'
|
|
||||||
})
|
|
||||||
|
|
||||||
template.push({ role: 'services' })
|
|
||||||
}
|
|
||||||
|
|
||||||
const menu = Menu.buildFromTemplate(template)
|
|
||||||
Menu.setApplicationMenu(menu)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import { mapActions } from 'vuex'
|
||||||
import { ObserveVisibility } from 'vue-observe-visibility'
|
import { ObserveVisibility } from 'vue-observe-visibility'
|
||||||
import FtFlexBox from './components/ft-flex-box/ft-flex-box.vue'
|
import FtFlexBox from './components/ft-flex-box/ft-flex-box.vue'
|
||||||
import TopNav from './components/top-nav/top-nav.vue'
|
import TopNav from './components/top-nav/top-nav.vue'
|
||||||
|
@ -9,6 +10,7 @@ import FtButton from './components/ft-button/ft-button.vue'
|
||||||
import FtToast from './components/ft-toast/ft-toast.vue'
|
import FtToast from './components/ft-toast/ft-toast.vue'
|
||||||
import FtProgressBar from './components/ft-progress-bar/ft-progress-bar.vue'
|
import FtProgressBar from './components/ft-progress-bar/ft-progress-bar.vue'
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
|
import { app } from '@electron/remote'
|
||||||
import { markdown } from 'markdown'
|
import { markdown } from 'markdown'
|
||||||
import Parser from 'rss-parser'
|
import Parser from 'rss-parser'
|
||||||
|
|
||||||
|
@ -41,6 +43,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
|
dataReady: false,
|
||||||
hideOutlines: true,
|
hideOutlines: true,
|
||||||
showUpdatesBanner: false,
|
showUpdatesBanner: false,
|
||||||
showBlogBanner: false,
|
showBlogBanner: false,
|
||||||
|
@ -85,34 +88,50 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
this.$store.dispatch('grabUserSettings')
|
const v = this
|
||||||
this.$store.dispatch('grabHistory')
|
this.$store.dispatch('grabUserSettings').then(() => {
|
||||||
this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels'))
|
this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels')).then(() => {
|
||||||
this.$store.dispatch('grabAllPlaylists')
|
this.$store.dispatch('grabHistory')
|
||||||
this.$store.commit('setUsingElectron', useElectron)
|
this.$store.dispatch('grabAllPlaylists')
|
||||||
this.checkThemeSettings()
|
this.$store.commit('setUsingElectron', useElectron)
|
||||||
this.checkLocale()
|
this.checkThemeSettings()
|
||||||
|
this.checkLocale()
|
||||||
|
|
||||||
if (useElectron) {
|
v.dataReady = true
|
||||||
console.log('User is using Electron')
|
|
||||||
this.activateKeyboardShortcuts()
|
|
||||||
this.openAllLinksExternally()
|
|
||||||
this.enableOpenUrl()
|
|
||||||
this.setBoundsOnClose()
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
if (useElectron) {
|
||||||
this.checkForNewUpdates()
|
console.log('User is using Electron')
|
||||||
this.checkForNewBlogPosts()
|
this.activateKeyboardShortcuts()
|
||||||
}, 500)
|
this.openAllLinksExternally()
|
||||||
|
this.enableOpenUrl()
|
||||||
|
this.setBoundsOnClose()
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.checkForNewUpdates()
|
||||||
|
this.checkForNewBlogPosts()
|
||||||
|
}, 500)
|
||||||
|
})
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
checkLocale: function () {
|
checkLocale: function () {
|
||||||
const locale = localStorage.getItem('locale')
|
const locale = localStorage.getItem('locale')
|
||||||
|
|
||||||
if (locale === null) {
|
if (locale === null || locale === 'system') {
|
||||||
// TODO: Get User default locale
|
const systemLocale = app.getLocale().replace(/-|_/, '_')
|
||||||
this.$i18n.locale = 'en-US'
|
const findLocale = Object.keys(this.$i18n.messages).find((locale) => {
|
||||||
|
const localeName = locale.replace(/-|_/, '_')
|
||||||
|
return localeName.includes(systemLocale)
|
||||||
|
})
|
||||||
|
|
||||||
|
if (typeof findLocale !== 'undefined') {
|
||||||
|
this.$i18n.locale = findLocale
|
||||||
|
localStorage.setItem('locale', 'system')
|
||||||
|
} else {
|
||||||
|
this.$i18n.locale = 'en-US'
|
||||||
|
localStorage.setItem('locale', 'en-US')
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$i18n.locale = locale
|
this.$i18n.locale = locale
|
||||||
}
|
}
|
||||||
|
@ -268,14 +287,98 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
openAllLinksExternally: function () {
|
openAllLinksExternally: function () {
|
||||||
// Open links externally by default
|
|
||||||
$(document).on('click', 'a[href^="http"]', (event) => {
|
$(document).on('click', 'a[href^="http"]', (event) => {
|
||||||
const el = event.currentTarget
|
const el = event.currentTarget
|
||||||
console.log(useElectron)
|
console.log(useElectron)
|
||||||
console.log(el)
|
console.log(el)
|
||||||
if (typeof (shell) !== 'undefined') {
|
event.preventDefault()
|
||||||
event.preventDefault()
|
|
||||||
shell.openExternal(el.href)
|
// Check if it's a YouTube link
|
||||||
|
const youtubeUrlPattern = /^https?:\/\/((www\.)?youtube\.com(\/embed)?|youtu\.be)\/.*$/
|
||||||
|
const isYoutubeLink = youtubeUrlPattern.test(el.href)
|
||||||
|
|
||||||
|
if (isYoutubeLink) {
|
||||||
|
this.handleYoutubeLink(el.href)
|
||||||
|
} else {
|
||||||
|
// Open links externally by default
|
||||||
|
if (typeof (shell) !== 'undefined') {
|
||||||
|
shell.openExternal(el.href)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
handleYoutubeLink: function (href) {
|
||||||
|
this.$store.dispatch('getYoutubeUrlInfo', href).then((result) => {
|
||||||
|
switch (result.urlType) {
|
||||||
|
case 'video': {
|
||||||
|
const { videoId, timestamp } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/watch/${videoId}`,
|
||||||
|
query: timestamp ? { timestamp } : {}
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'playlist': {
|
||||||
|
const { playlistId, query } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/playlist/${playlistId}`,
|
||||||
|
query
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'search': {
|
||||||
|
const { searchQuery, query } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/search/${encodeURIComponent(searchQuery)}`,
|
||||||
|
query
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'hashtag': {
|
||||||
|
// TODO: Implement a hashtag related view
|
||||||
|
let message = 'Hashtags have not yet been implemented, try again later'
|
||||||
|
if (this.$te(message) && this.$t(message) !== '') {
|
||||||
|
message = this.$t(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.showToast({
|
||||||
|
message: message
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'channel': {
|
||||||
|
const { channelId } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/channel/${channelId}`
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'invalid_url': {
|
||||||
|
// Do nothing
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
// Unknown URL type
|
||||||
|
let message = 'Unknown YouTube url type, cannot be opened in app'
|
||||||
|
if (this.$te(message) && this.$t(message) !== '') {
|
||||||
|
message = this.$t(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.showToast({
|
||||||
|
message: message
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -284,14 +387,7 @@ export default Vue.extend({
|
||||||
const v = this
|
const v = this
|
||||||
electron.ipcRenderer.on('openUrl', function (event, url) {
|
electron.ipcRenderer.on('openUrl', function (event, url) {
|
||||||
if (url) {
|
if (url) {
|
||||||
v.$store.dispatch('getVideoParamsFromUrl', url).then(({ videoId, timestamp }) => {
|
v.handleYoutubeLink(url)
|
||||||
if (videoId) {
|
|
||||||
v.$router.push({
|
|
||||||
path: `/watch/${videoId}`,
|
|
||||||
query: timestamp ? { timestamp } : {}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -302,6 +398,10 @@ export default Vue.extend({
|
||||||
window.onbeforeunload = (e) => {
|
window.onbeforeunload = (e) => {
|
||||||
electron.ipcRenderer.send('setBounds')
|
electron.ipcRenderer.send('setBounds')
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
|
...mapActions([
|
||||||
|
'showToast'
|
||||||
|
])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
/>
|
/>
|
||||||
</ft-flex-box>
|
</ft-flex-box>
|
||||||
<transition
|
<transition
|
||||||
|
v-if="dataReady"
|
||||||
mode="out-in"
|
mode="out-in"
|
||||||
name="fade"
|
name="fade"
|
||||||
>
|
>
|
||||||
|
|
|
@ -249,6 +249,10 @@ export default Vue.extend({
|
||||||
const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0]))
|
const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0]))
|
||||||
const subscriptions = []
|
const subscriptions = []
|
||||||
|
|
||||||
|
this.showToast({
|
||||||
|
message: this.$t('Settings.Data Settings.This might take a while, please wait')
|
||||||
|
})
|
||||||
|
|
||||||
this.updateShowProgressBar(true)
|
this.updateShowProgressBar(true)
|
||||||
this.setProgressBarPercentage(0)
|
this.setProgressBarPercentage(0)
|
||||||
|
|
||||||
|
@ -258,6 +262,11 @@ export default Vue.extend({
|
||||||
const snippet = channel.snippet
|
const snippet = channel.snippet
|
||||||
|
|
||||||
if (typeof snippet === 'undefined') {
|
if (typeof snippet === 'undefined') {
|
||||||
|
const message = this.$t('Settings.Data Settings.Invalid subscriptions file')
|
||||||
|
this.showToast({
|
||||||
|
message: message
|
||||||
|
})
|
||||||
|
|
||||||
throw new Error('Unable to find channel data')
|
throw new Error('Unable to find channel data')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,12 +330,7 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
const filePath = response.filePaths[0]
|
const filePath = response.filePaths[0]
|
||||||
|
this.handleYoutubeImportFile(filePath)
|
||||||
try {
|
|
||||||
this.handleYoutubeImportFile(filePath)
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -569,7 +573,8 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
exportFreeTubeSubscriptions: function () {
|
exportFreeTubeSubscriptions: async function () {
|
||||||
|
await this.compactProfiles()
|
||||||
const userData = app.getPath('userData')
|
const userData = app.getPath('userData')
|
||||||
const subscriptionsDb = `${userData}/profiles.db`
|
const subscriptionsDb = `${userData}/profiles.db`
|
||||||
const date = new Date()
|
const date = new Date()
|
||||||
|
@ -929,7 +934,7 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (Object.keys(historyObject).length < requiredKeys.length) {
|
if (Object.keys(historyObject).length < (requiredKeys.length - 2)) {
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Settings.Data Settings.History object has insufficient data, skipping item')
|
message: this.$t('Settings.Data Settings.History object has insufficient data, skipping item')
|
||||||
})
|
})
|
||||||
|
@ -945,7 +950,8 @@ export default Vue.extend({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
exportHistory: function () {
|
exportHistory: async function () {
|
||||||
|
await this.compactHistory()
|
||||||
const userData = app.getPath('userData')
|
const userData = app.getPath('userData')
|
||||||
const historyDb = `${userData}/history.db`
|
const historyDb = `${userData}/history.db`
|
||||||
const date = new Date()
|
const date = new Date()
|
||||||
|
@ -1102,8 +1108,10 @@ export default Vue.extend({
|
||||||
...mapActions([
|
...mapActions([
|
||||||
'invidiousAPICall',
|
'invidiousAPICall',
|
||||||
'updateProfile',
|
'updateProfile',
|
||||||
|
'compactProfiles',
|
||||||
'updateShowProgressBar',
|
'updateShowProgressBar',
|
||||||
'updateHistory',
|
'updateHistory',
|
||||||
|
'compactHistory',
|
||||||
'showToast',
|
'showToast',
|
||||||
'getRandomColor',
|
'getRandomColor',
|
||||||
'calculateColorLuminance'
|
'calculateColorLuminance'
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
outline: none;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
|
@ -27,6 +27,10 @@ export default Vue.extend({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
selectOnFocus: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
disabled: {
|
disabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
|
@ -130,6 +134,13 @@ export default Vue.extend({
|
||||||
|
|
||||||
handleInputBlur: function () {
|
handleInputBlur: function () {
|
||||||
if (!this.searchState.isPointerInList) { this.searchState.showOptions = false }
|
if (!this.searchState.isPointerInList) { this.searchState.showOptions = false }
|
||||||
|
},
|
||||||
|
|
||||||
|
handleFocus: function(e) {
|
||||||
|
this.searchState.showOptions = true
|
||||||
|
if (this.selectOnFocus) {
|
||||||
|
e.target.select()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@input="e => handleInput(e.target.value)"
|
@input="e => handleInput(e.target.value)"
|
||||||
@focus="searchState.showOptions = true"
|
@focus="handleFocus"
|
||||||
@blur="handleInputBlur"
|
@blur="handleInputBlur"
|
||||||
@keydown="e => handleKeyDown(e.keyCode)"
|
@keydown="e => handleKeyDown(e.keyCode)"
|
||||||
>
|
>
|
||||||
|
|
|
@ -42,6 +42,7 @@ export default Vue.extend({
|
||||||
isLive: false,
|
isLive: false,
|
||||||
isFavorited: false,
|
isFavorited: false,
|
||||||
isUpcoming: false,
|
isUpcoming: false,
|
||||||
|
isPremium: false,
|
||||||
hideViews: false,
|
hideViews: false,
|
||||||
optionsValues: [
|
optionsValues: [
|
||||||
'history',
|
'history',
|
||||||
|
@ -321,6 +322,7 @@ export default Vue.extend({
|
||||||
this.description = this.data.description
|
this.description = this.data.description
|
||||||
this.isLive = this.data.liveNow || this.data.lengthSeconds === 'undefined'
|
this.isLive = this.data.liveNow || this.data.lengthSeconds === 'undefined'
|
||||||
this.isUpcoming = this.data.isUpcoming || this.data.premiere
|
this.isUpcoming = this.data.isUpcoming || this.data.premiere
|
||||||
|
this.isPremium = this.data.premium || false
|
||||||
this.viewCount = this.data.viewCount
|
this.viewCount = this.data.viewCount
|
||||||
|
|
||||||
if (typeof (this.data.premiereTimestamp) !== 'undefined') {
|
if (typeof (this.data.premiereTimestamp) !== 'undefined') {
|
||||||
|
@ -383,7 +385,7 @@ export default Vue.extend({
|
||||||
title: this.title,
|
title: this.title,
|
||||||
author: this.channelName,
|
author: this.channelName,
|
||||||
authorId: this.channelId,
|
authorId: this.channelId,
|
||||||
published: '',
|
published: this.publishedText.split(',')[0],
|
||||||
description: this.description,
|
description: this.description,
|
||||||
viewCount: this.viewCount,
|
viewCount: this.viewCount,
|
||||||
lengthSeconds: this.data.lengthSeconds,
|
lengthSeconds: this.data.lengthSeconds,
|
||||||
|
@ -393,9 +395,7 @@ export default Vue.extend({
|
||||||
paid: false,
|
paid: false,
|
||||||
type: 'video'
|
type: 'video'
|
||||||
}
|
}
|
||||||
|
|
||||||
this.updateHistory(videoData)
|
this.updateHistory(videoData)
|
||||||
|
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Video.Video has been marked as watched')
|
message: this.$t('Video.Video has been marked as watched')
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
>
|
>
|
||||||
<router-link
|
<router-link
|
||||||
class="thumbnailLink"
|
class="thumbnailLink"
|
||||||
|
tabindex="-1"
|
||||||
:to="{
|
:to="{
|
||||||
path: `/watch/${id}`,
|
path: `/watch/${id}`,
|
||||||
query: playlistId ? {playlistId} : {}
|
query: playlistId ? {playlistId} : {}
|
||||||
|
@ -80,7 +81,7 @@
|
||||||
>
|
>
|
||||||
<span>{{ channelName }}</span>
|
<span>{{ channelName }}</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
<template v-if="!isLive && !isUpcoming && !hideViews">
|
<template v-if="!isLive && !isUpcoming && !isPremium && !hideViews">
|
||||||
<span class="viewCount">• {{ parsedViewCount }}</span>
|
<span class="viewCount">• {{ parsedViewCount }}</span>
|
||||||
<span v-if="viewCount === 1">{{ $t("Video.View").toLowerCase() }}</span>
|
<span v-if="viewCount === 1">{{ $t("Video.View").toLowerCase() }}</span>
|
||||||
<span v-else>{{ $t("Video.Views").toLowerCase() }}</span>
|
<span v-else>{{ $t("Video.Views").toLowerCase() }}</span>
|
||||||
|
|
|
@ -43,6 +43,10 @@ export default Vue.extend({
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => { return [] }
|
default: () => { return [] }
|
||||||
},
|
},
|
||||||
|
adaptiveFormats: {
|
||||||
|
type: Array,
|
||||||
|
default: () => { return [] }
|
||||||
|
},
|
||||||
dashSrc: {
|
dashSrc: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: null
|
default: null
|
||||||
|
@ -51,7 +55,7 @@ export default Vue.extend({
|
||||||
type: Array,
|
type: Array,
|
||||||
default: null
|
default: null
|
||||||
},
|
},
|
||||||
captionList: {
|
captionHybridList: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => { return [] }
|
default: () => { return [] }
|
||||||
},
|
},
|
||||||
|
@ -62,6 +66,10 @@ export default Vue.extend({
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
videoId: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
|
@ -73,8 +81,11 @@ export default Vue.extend({
|
||||||
useDash: false,
|
useDash: false,
|
||||||
useHls: false,
|
useHls: false,
|
||||||
selectedDefaultQuality: '',
|
selectedDefaultQuality: '',
|
||||||
|
selectedQuality: '',
|
||||||
|
using60Fps: false,
|
||||||
maxFramerate: 0,
|
maxFramerate: 0,
|
||||||
activeSourceList: [],
|
activeSourceList: [],
|
||||||
|
activeAdaptiveFormats: [],
|
||||||
mouseTimeout: null,
|
mouseTimeout: null,
|
||||||
touchTimeout: null,
|
touchTimeout: null,
|
||||||
lastTouchTime: null,
|
lastTouchTime: null,
|
||||||
|
@ -142,16 +153,14 @@ export default Vue.extend({
|
||||||
|
|
||||||
autoplayVideos: function () {
|
autoplayVideos: function () {
|
||||||
return this.$store.getters.getAutoplayVideos
|
return this.$store.getters.getAutoplayVideos
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
sourceList: function () {
|
|
||||||
this.determineFormatType()
|
|
||||||
},
|
},
|
||||||
captionList: function () {
|
|
||||||
this.player.caption({
|
useSponsorBlock: function () {
|
||||||
data: this.captionList
|
return this.$store.getters.getUseSponsorBlock
|
||||||
})
|
},
|
||||||
|
|
||||||
|
sponsorBlockShowSkippedToast: function () {
|
||||||
|
return this.$store.getters.getSponsorBlockShowSkippedToast
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
|
@ -186,6 +195,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initializePlayer: async function () {
|
initializePlayer: async function () {
|
||||||
|
console.log(this.adaptiveFormats)
|
||||||
const videoPlayer = document.getElementById(this.id)
|
const videoPlayer = document.getElementById(this.id)
|
||||||
if (videoPlayer !== null) {
|
if (videoPlayer !== null) {
|
||||||
if (!this.useDash) {
|
if (!this.useDash) {
|
||||||
|
@ -195,10 +205,12 @@ export default Vue.extend({
|
||||||
|
|
||||||
this.player = videojs(videoPlayer, {
|
this.player = videojs(videoPlayer, {
|
||||||
html5: {
|
html5: {
|
||||||
|
preloadTextTracks: false,
|
||||||
vhs: {
|
vhs: {
|
||||||
limitRenditionByPlayerDimensions: false,
|
limitRenditionByPlayerDimensions: false,
|
||||||
smoothQualityChange: false,
|
smoothQualityChange: false,
|
||||||
allowSeeksWithinUnsafeLiveWindow: true
|
allowSeeksWithinUnsafeLiveWindow: true,
|
||||||
|
handlePartialData: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -214,14 +226,12 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.useDash) {
|
if (this.useDash) {
|
||||||
this.dataSetup.plugins.httpSourceSelector = {
|
// this.dataSetup.plugins.httpSourceSelector = {
|
||||||
default: 'auto'
|
// default: 'auto'
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.player.httpSourceSelector()
|
// this.player.httpSourceSelector()
|
||||||
setTimeout(() => {
|
this.createDashQualitySelector(this.player.qualityLevels())
|
||||||
this.determineDefaultQualityDash()
|
|
||||||
}, 400)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.autoplayVideos) {
|
if (this.autoplayVideos) {
|
||||||
|
@ -240,12 +250,16 @@ export default Vue.extend({
|
||||||
this.player.controlBar.getChild('volumePanel').on('mousewheel', this.mouseScrollVolume)
|
this.player.controlBar.getChild('volumePanel').on('mousewheel', this.mouseScrollVolume)
|
||||||
|
|
||||||
this.player.on('fullscreenchange', this.fullscreenOverlay)
|
this.player.on('fullscreenchange', this.fullscreenOverlay)
|
||||||
|
this.player.on('fullscreenchange', this.toggleFullscreenClass)
|
||||||
|
|
||||||
const v = this
|
const v = this
|
||||||
|
|
||||||
this.player.on('ready', function () {
|
this.player.on('ready', function () {
|
||||||
v.$emit('ready')
|
v.$emit('ready')
|
||||||
v.checkAspectRatio()
|
v.checkAspectRatio()
|
||||||
|
if (v.captionHybridList.length !== 0) {
|
||||||
|
v.transformAndInsertCaptions()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this.player.on('ended', function () {
|
this.player.on('ended', function () {
|
||||||
|
@ -272,6 +286,109 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
setTimeout(() => { this.fetchSponsorBlockInfo() }, 100)
|
||||||
|
},
|
||||||
|
|
||||||
|
fetchSponsorBlockInfo() {
|
||||||
|
if (this.useSponsorBlock) {
|
||||||
|
this.$store.dispatch('sponsorBlockSkipSegments', {
|
||||||
|
videoId: this.videoId,
|
||||||
|
categories: ['sponsor']
|
||||||
|
}).then((skipSegments) => {
|
||||||
|
this.player.on('timeupdate', () => {
|
||||||
|
this.skipSponsorBlocks(skipSegments)
|
||||||
|
})
|
||||||
|
skipSegments.forEach(({
|
||||||
|
category,
|
||||||
|
segment: [startTime, endTime]
|
||||||
|
}) => {
|
||||||
|
this.addSponsorBlockMarker({
|
||||||
|
time: startTime,
|
||||||
|
duration: endTime - startTime,
|
||||||
|
color: this.sponsorBlockCategoryColor(category)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
skipSponsorBlocks(skipSegments) {
|
||||||
|
const currentTime = this.player.currentTime()
|
||||||
|
let newTime = null
|
||||||
|
let skippedCategory = null
|
||||||
|
skipSegments.forEach(({ category, segment: [startTime, endTime] }) => {
|
||||||
|
if (startTime <= currentTime && currentTime < endTime) {
|
||||||
|
newTime = endTime
|
||||||
|
skippedCategory = category
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (newTime !== null) {
|
||||||
|
if (this.sponsorBlockShowSkippedToast) {
|
||||||
|
this.showSkippedSponsorSegmentInformation(skippedCategory)
|
||||||
|
}
|
||||||
|
this.player.currentTime(newTime)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
showSkippedSponsorSegmentInformation(category) {
|
||||||
|
const translatedCategory = this.sponsorBlockTranslatedCategory(category)
|
||||||
|
this.showToast({
|
||||||
|
message: `${this.$t('Video.Skipped segment')} ${translatedCategory}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
sponsorBlockTranslatedCategory(category) {
|
||||||
|
switch (category) {
|
||||||
|
case 'sponsor':
|
||||||
|
return this.$t('Video.Sponsor Block category.sponsor')
|
||||||
|
case 'intro':
|
||||||
|
return this.$t('Video.Sponsor Block category.intro')
|
||||||
|
case 'outro':
|
||||||
|
return this.$t('Video.Sponsor Block category.outro')
|
||||||
|
case 'selfpromo':
|
||||||
|
return this.$t('Video.Sponsor Block category.self-promotion')
|
||||||
|
case 'interaction':
|
||||||
|
return this.$t('Video.Sponsor Block category.interaction')
|
||||||
|
case 'music_offtopic':
|
||||||
|
return this.$t('Video.Sponsor Block category.music offtopic')
|
||||||
|
default:
|
||||||
|
console.error(`Unknown translation for SponsorBlock category ${category}`)
|
||||||
|
return category
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
sponsorBlockCategoryColor(category) {
|
||||||
|
// TODO: allow to set these colors in settings
|
||||||
|
switch (category) {
|
||||||
|
case 'sponsor':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
case 'intro':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
case 'outro':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
case 'selfpromo':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
case 'interaction':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
case 'music_offtopic':
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
default:
|
||||||
|
console.error(`Unknown SponsorBlock category ${category}`)
|
||||||
|
return 'var(--accent-color)'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
addSponsorBlockMarker(marker) {
|
||||||
|
const markerDiv = videojs.dom.createEl('div', {}, {})
|
||||||
|
|
||||||
|
markerDiv.className = 'sponsorBlockMarker'
|
||||||
|
markerDiv.style.height = '100%'
|
||||||
|
markerDiv.style.position = 'absolute'
|
||||||
|
markerDiv.style['background-color'] = marker.color
|
||||||
|
markerDiv.style.width = (marker.duration / this.player.duration()) * 100 + '%'
|
||||||
|
markerDiv.style.marginLeft = (marker.time / this.player.duration()) * 100 + '%'
|
||||||
|
|
||||||
|
this.player.el().querySelector('.vjs-progress-holder').appendChild(markerDiv)
|
||||||
},
|
},
|
||||||
|
|
||||||
checkAspectRatio() {
|
checkAspectRatio() {
|
||||||
|
@ -417,11 +534,60 @@ export default Vue.extend({
|
||||||
|
|
||||||
determineDefaultQualityDash: function () {
|
determineDefaultQualityDash: function () {
|
||||||
if (this.defaultQuality === 'auto') {
|
if (this.defaultQuality === 'auto') {
|
||||||
return
|
this.setDashQualityLevel('auto')
|
||||||
}
|
}
|
||||||
|
|
||||||
this.player.qualityLevels().levels_.sort((a, b) => {
|
let formatsToTest
|
||||||
return a.height - b.height
|
|
||||||
|
if (typeof this.activeAdaptiveFormats !== 'undefined' && this.activeAdaptiveFormats.length > 0) {
|
||||||
|
formatsToTest = this.activeAdaptiveFormats.filter((format) => {
|
||||||
|
return format.height === this.defaultQuality
|
||||||
|
})
|
||||||
|
|
||||||
|
if (formatsToTest.length === 0) {
|
||||||
|
formatsToTest = this.activeAdaptiveFormats.filter((format) => {
|
||||||
|
return format.height < this.defaultQuality
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
formatsToTest = formatsToTest.sort((a, b) => {
|
||||||
|
if (a.height === b.height) {
|
||||||
|
return b.bitrate - a.bitrate
|
||||||
|
} else {
|
||||||
|
return b.height - a.height
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
formatsToTest = this.player.qualityLevels().levels_.filter((format) => {
|
||||||
|
return format.height === this.defaultQuality
|
||||||
|
})
|
||||||
|
|
||||||
|
if (formatsToTest.length === 0) {
|
||||||
|
formatsToTest = this.player.qualityLevels().levels_.filter((format) => {
|
||||||
|
return format.height < this.defaultQuality
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
formatsToTest = formatsToTest.sort((a, b) => {
|
||||||
|
if (a.height === b.height) {
|
||||||
|
return b.bitrate - a.bitrate
|
||||||
|
} else {
|
||||||
|
return b.height - a.height
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Test formats to determine if HDR / 60 FPS and skip them based on
|
||||||
|
// User settings
|
||||||
|
this.setDashQualityLevel(formatsToTest[0].bitrate)
|
||||||
|
|
||||||
|
// Old logic. Revert if needed
|
||||||
|
/* this.player.qualityLevels().levels_.sort((a, b) => {
|
||||||
|
if (a.height === b.height) {
|
||||||
|
return a.bitrate - b.bitrate
|
||||||
|
} else {
|
||||||
|
return a.height - b.height
|
||||||
|
}
|
||||||
}).forEach((ql, index, arr) => {
|
}).forEach((ql, index, arr) => {
|
||||||
const height = ql.height
|
const height = ql.height
|
||||||
const width = ql.width
|
const width = ql.width
|
||||||
|
@ -432,26 +598,151 @@ export default Vue.extend({
|
||||||
upperLevel = arr[index + 1]
|
upperLevel = arr[index + 1]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.defaultQuality === quality) {
|
if (this.defaultQuality === quality && upperLevel === null) {
|
||||||
ql.enabled = true
|
this.setDashQualityLevel(height, true)
|
||||||
} else if (upperLevel !== null) {
|
} else if (upperLevel !== null) {
|
||||||
const upperHeight = upperLevel.height
|
const upperHeight = upperLevel.height
|
||||||
const upperWidth = upperLevel.width
|
const upperWidth = upperLevel.width
|
||||||
const upperQuality = upperWidth < upperHeight ? upperWidth : upperHeight
|
const upperQuality = upperWidth < upperHeight ? upperWidth : upperHeight
|
||||||
|
|
||||||
if (this.defaultQuality >= quality && this.defaultQuality < upperQuality) {
|
if (this.defaultQuality >= quality && this.defaultQuality === upperQuality) {
|
||||||
ql.enabled = true
|
this.setDashQualityLevel(height, true)
|
||||||
} else {
|
} else if (this.defaultQuality >= quality && this.defaultQuality < upperQuality) {
|
||||||
ql.enabled = false
|
this.setDashQualityLevel(height)
|
||||||
}
|
}
|
||||||
} else if (index === 0 && quality > this.defaultQuality) {
|
} else if (index === 0 && quality > this.defaultQuality) {
|
||||||
ql.enabled = true
|
this.setDashQualityLevel(height)
|
||||||
} else if (index === (arr.length - 1) && quality < this.defaultQuality) {
|
} else if (index === (arr.length - 1) && quality < this.defaultQuality) {
|
||||||
|
this.setDashQualityLevel(height)
|
||||||
|
}
|
||||||
|
}) */
|
||||||
|
},
|
||||||
|
|
||||||
|
setDashQualityLevel: function (bitrate) {
|
||||||
|
let adaptiveFormat = null
|
||||||
|
|
||||||
|
if (bitrate !== 'auto') {
|
||||||
|
adaptiveFormat = this.activeAdaptiveFormats.find((format) => {
|
||||||
|
return format.bitrate === bitrate
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
let qualityLabel = adaptiveFormat ? adaptiveFormat.qualityLabel : ''
|
||||||
|
|
||||||
|
this.player.qualityLevels().levels_.sort((a, b) => {
|
||||||
|
if (a.height === b.height) {
|
||||||
|
return a.bitrate - b.bitrate
|
||||||
|
} else {
|
||||||
|
return a.height - b.height
|
||||||
|
}
|
||||||
|
}).forEach((ql, index, arr) => {
|
||||||
|
if (bitrate === 'auto' || bitrate === ql.bitrate) {
|
||||||
ql.enabled = true
|
ql.enabled = true
|
||||||
|
ql.enabled_(true)
|
||||||
|
if (bitrate !== 'auto' && qualityLabel === '') {
|
||||||
|
qualityLabel = ql.height + 'p'
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ql.enabled = false
|
ql.enabled = false
|
||||||
|
ql.enabled_(false)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const selectedQuality = bitrate === 'auto' ? 'auto' : qualityLabel
|
||||||
|
|
||||||
|
const qualityElement = document.getElementById('vjs-current-quality')
|
||||||
|
qualityElement.innerText = selectedQuality
|
||||||
|
this.selectedQuality = selectedQuality
|
||||||
|
|
||||||
|
const qualityItems = $('.quality-item').get()
|
||||||
|
|
||||||
|
$('.quality-item').removeClass('quality-selected')
|
||||||
|
|
||||||
|
qualityItems.forEach((item) => {
|
||||||
|
const qualityText = $(item).find('.vjs-menu-item-text').get(0)
|
||||||
|
if (qualityText.innerText === selectedQuality.toLowerCase()) {
|
||||||
|
$(item).addClass('quality-selected')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/* if (this.selectedQuality === qualityLevel && this.using60Fps === is60Fps) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let foundSelectedQuality = false
|
||||||
|
this.using60Fps = is60Fps
|
||||||
|
this.player.qualityLevels().levels_.sort((a, b) => {
|
||||||
|
if (a.height === b.height) {
|
||||||
|
return a.bitrate - b.bitrate
|
||||||
|
} else {
|
||||||
|
return a.height - b.height
|
||||||
|
}
|
||||||
|
}).forEach((ql, index, arr) => {
|
||||||
|
if (foundSelectedQuality) {
|
||||||
|
ql.enabled = false
|
||||||
|
ql.enabled_(false)
|
||||||
|
} else if (qualityLevel === 'auto') {
|
||||||
|
ql.enabled = true
|
||||||
|
ql.enabled_(true)
|
||||||
|
} else if (ql.height === qualityLevel) {
|
||||||
|
ql.enabled = true
|
||||||
|
ql.enabled_(true)
|
||||||
|
foundSelectedQuality = true
|
||||||
|
|
||||||
|
let lowerQuality
|
||||||
|
let higherQuality
|
||||||
|
|
||||||
|
if ((index - 1) !== -1) {
|
||||||
|
lowerQuality = arr[index - 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((index + 1) < arr.length) {
|
||||||
|
higherQuality = arr[index + 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof (lowerQuality) !== 'undefined' && lowerQuality.height === ql.height && lowerQuality.bitrate < ql.bitrate && !is60Fps) {
|
||||||
|
ql.enabled = false
|
||||||
|
ql.enabled_(false)
|
||||||
|
foundSelectedQuality = false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof (higherQuality) !== 'undefined' && higherQuality.height === ql.height && higherQuality.bitrate > ql.bitrate && is60Fps) {
|
||||||
|
ql.enabled = false
|
||||||
|
ql.enabled_(false)
|
||||||
|
foundSelectedQuality = false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ql.enabled = false
|
||||||
|
ql.enabled_(false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
let selectedQuality = qualityLevel
|
||||||
|
|
||||||
|
if (selectedQuality !== 'auto' && is60Fps) {
|
||||||
|
selectedQuality = selectedQuality + 'p60'
|
||||||
|
} else if (selectedQuality !== 'auto') {
|
||||||
|
selectedQuality = selectedQuality + 'p'
|
||||||
|
}
|
||||||
|
|
||||||
|
const qualityElement = document.getElementById('vjs-current-quality')
|
||||||
|
qualityElement.innerText = selectedQuality
|
||||||
|
this.selectedQuality = qualityLevel
|
||||||
|
|
||||||
|
const qualityItems = $('.quality-item').get()
|
||||||
|
|
||||||
|
$('.quality-item').removeClass('quality-selected')
|
||||||
|
|
||||||
|
qualityItems.forEach((item) => {
|
||||||
|
const qualityText = $(item).find('.vjs-menu-item-text').get(0)
|
||||||
|
if (qualityText.innerText === selectedQuality) {
|
||||||
|
$(item).addClass('quality-selected')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// const currentTime = this.player.currentTime()
|
||||||
|
|
||||||
|
// this.player.currentTime(0)
|
||||||
|
// this.player.currentTime(currentTime) */
|
||||||
},
|
},
|
||||||
|
|
||||||
enableDashFormat: function () {
|
enableDashFormat: function () {
|
||||||
|
@ -622,13 +913,125 @@ export default Vue.extend({
|
||||||
v.toggleFullWindow()
|
v.toggleFullWindow()
|
||||||
},
|
},
|
||||||
createControlTextEl: function (button) {
|
createControlTextEl: function (button) {
|
||||||
return $(button).html($('<div id="fullwindow" class="vjs-icon-fullwindow-enter vjs-button"></div>')
|
// Add class name to button to be able to target it with CSS selector
|
||||||
.attr('title', 'Fullwindow'))
|
return $(button)
|
||||||
|
.addClass('vjs-button-fullwindow')
|
||||||
|
.html($('<div id="fullwindow" class="vjs-icon-fullwindow-enter vjs-button"></div>')
|
||||||
|
.attr('title', 'Full Window'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
videojs.registerComponent('fullWindowButton', fullWindowButton)
|
videojs.registerComponent('fullWindowButton', fullWindowButton)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
createDashQualitySelector: function (levels) {
|
||||||
|
const v = this
|
||||||
|
if (levels.levels_.length === 0) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.createDashQualitySelector(this.player.qualityLevels())
|
||||||
|
}, 200)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const VjsButton = videojs.getComponent('Button')
|
||||||
|
const dashQualitySelector = videojs.extend(VjsButton, {
|
||||||
|
constructor: function(player, options) {
|
||||||
|
VjsButton.call(this, player, options)
|
||||||
|
},
|
||||||
|
handleClick: function(event) {
|
||||||
|
console.log(event)
|
||||||
|
const selectedQuality = event.target.innerText
|
||||||
|
const bitrate = selectedQuality === 'auto' ? 'auto' : parseInt(event.target.attributes.bitrate.value)
|
||||||
|
v.setDashQualityLevel(bitrate)
|
||||||
|
},
|
||||||
|
createControlTextEl: function (button) {
|
||||||
|
const beginningHtml = `<div class="vjs-quality-level-value">
|
||||||
|
<span id="vjs-current-quality">1080p</span>
|
||||||
|
</div>
|
||||||
|
<div class="vjs-quality-level-menu vjs-menu">
|
||||||
|
<ul class="vjs-menu-content" role="menu">`
|
||||||
|
const endingHtml = '</ul></div>'
|
||||||
|
|
||||||
|
let qualityHtml = `<li class="vjs-menu-item quality-item" role="menuitemradio" tabindex="-1" aria-checked="false" aria-disabled="false">
|
||||||
|
<span class="vjs-menu-item-text">Auto</span>
|
||||||
|
<span class="vjs-control-text" aria-live="polite"></span>
|
||||||
|
</li>`
|
||||||
|
|
||||||
|
levels.levels_.sort((a, b) => {
|
||||||
|
if (b.height === a.height) {
|
||||||
|
return b.bitrate - a.bitrate
|
||||||
|
} else {
|
||||||
|
return b.height - a.height
|
||||||
|
}
|
||||||
|
}).forEach((quality, index, array) => {
|
||||||
|
let fps
|
||||||
|
let qualityLabel
|
||||||
|
let bitrate
|
||||||
|
|
||||||
|
if (typeof v.adaptiveFormats !== 'undefined' && v.adaptiveFormats.length > 0) {
|
||||||
|
const adaptiveFormat = v.adaptiveFormats.find((format) => {
|
||||||
|
return format.bitrate === quality.bitrate
|
||||||
|
})
|
||||||
|
|
||||||
|
v.activeAdaptiveFormats.push(adaptiveFormat)
|
||||||
|
|
||||||
|
fps = adaptiveFormat.fps
|
||||||
|
qualityLabel = adaptiveFormat.qualityLabel ? adaptiveFormat.qualityLabel : quality.height + 'p'
|
||||||
|
bitrate = quality.bitrate
|
||||||
|
} else {
|
||||||
|
fps = 30
|
||||||
|
qualityLabel = quality.height + 'p'
|
||||||
|
bitrate = quality.bitrate
|
||||||
|
}
|
||||||
|
|
||||||
|
qualityHtml = qualityHtml + `<li class="vjs-menu-item quality-item" role="menuitemradio" tabindex="-1" aria-checked="false" aria-disabled="false" fps="${fps}" bitrate="${bitrate}">
|
||||||
|
<span class="vjs-menu-item-text" fps="${fps}" bitrate="${bitrate}">${qualityLabel}</span>
|
||||||
|
<span class="vjs-control-text" aria-live="polite"></span>
|
||||||
|
</li>`
|
||||||
|
|
||||||
|
// Old logic, revert if needed.
|
||||||
|
/* let is60Fps = false
|
||||||
|
if (index < array.length - 1 && array[index + 1].height === quality.height) {
|
||||||
|
if (array[index + 1].bitrate < quality.bitrate) {
|
||||||
|
is60Fps = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const qualityText = is60Fps ? quality.height + 'p60' : quality.height + 'p'
|
||||||
|
qualityHtml = qualityHtml + `<li class="vjs-menu-item quality-item" role="menuitemradio" tabindex="-1" aria-checked="false aria-disabled="false">
|
||||||
|
<span class="vjs-menu-item-text">${qualityText}</span>
|
||||||
|
<span class="vjs-control-text" aria-live="polite"></span>
|
||||||
|
</li>` */
|
||||||
|
})
|
||||||
|
return $(button).html(
|
||||||
|
$(beginningHtml + qualityHtml + endingHtml).attr(
|
||||||
|
'title',
|
||||||
|
'Select Quality'
|
||||||
|
))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
videojs.registerComponent('dashQualitySelector', dashQualitySelector)
|
||||||
|
this.player.controlBar.addChild('dashQualitySelector', {}, this.player.controlBar.children_.length - 1)
|
||||||
|
this.determineDefaultQualityDash()
|
||||||
|
},
|
||||||
|
|
||||||
|
transformAndInsertCaptions: async function() {
|
||||||
|
let captionList
|
||||||
|
if (this.captionHybridList[0] instanceof Promise) {
|
||||||
|
captionList = await Promise.all(this.captionHybridList)
|
||||||
|
this.$emit('store-caption-list', captionList)
|
||||||
|
} else {
|
||||||
|
captionList = this.captionHybridList
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const caption of captionList) {
|
||||||
|
this.player.addRemoteTextTrack({
|
||||||
|
kind: 'subtitles',
|
||||||
|
src: caption.baseUrl || caption.url,
|
||||||
|
srclang: caption.languageCode,
|
||||||
|
label: caption.label || caption.name.simpleText,
|
||||||
|
type: caption.type
|
||||||
|
}, true)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
toggleFullWindow: function() {
|
toggleFullWindow: function() {
|
||||||
if (!this.player.isFullscreen_) {
|
if (!this.player.isFullscreen_) {
|
||||||
if (this.player.isFullWindow) {
|
if (this.player.isFullWindow) {
|
||||||
|
@ -720,6 +1123,14 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toggleFullscreenClass: function () {
|
||||||
|
if (this.player.isFullscreen()) {
|
||||||
|
$('body').addClass('vjs--full-screen-enabled')
|
||||||
|
} else {
|
||||||
|
$('body').removeClass('vjs--full-screen-enabled')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
handleTouchStart: function (event) {
|
handleTouchStart: function (event) {
|
||||||
const v = this
|
const v = this
|
||||||
this.touchPauseTimeout = setTimeout(() => {
|
this.touchPauseTimeout = setTimeout(() => {
|
||||||
|
@ -927,6 +1338,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
...mapActions([
|
...mapActions([
|
||||||
|
'showToast',
|
||||||
'calculateColorLuminance'
|
'calculateColorLuminance'
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,15 +18,6 @@
|
||||||
:label="source.qualityLabel"
|
:label="source.qualityLabel"
|
||||||
:selected="source.qualityLabel === selectedDefaultQuality"
|
:selected="source.qualityLabel === selectedDefaultQuality"
|
||||||
>
|
>
|
||||||
<track
|
|
||||||
v-for="(caption, index) in captionList"
|
|
||||||
:key="index + '_caption'"
|
|
||||||
kind="subtitles"
|
|
||||||
:src="caption.baseUrl || caption.url"
|
|
||||||
:srclang="caption.languageCode"
|
|
||||||
:label="caption.label || caption.name.simpleText"
|
|
||||||
:type="caption.type"
|
|
||||||
>
|
|
||||||
</video>
|
</video>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
import { mapActions } from 'vuex'
|
import { mapActions } from 'vuex'
|
||||||
|
import { app } from '@electron/remote'
|
||||||
import FtCard from '../ft-card/ft-card.vue'
|
import FtCard from '../ft-card/ft-card.vue'
|
||||||
import FtSelect from '../ft-select/ft-select.vue'
|
import FtSelect from '../ft-select/ft-select.vue'
|
||||||
import FtInput from '../ft-input/ft-input.vue'
|
import FtInput from '../ft-input/ft-input.vue'
|
||||||
|
@ -96,11 +97,13 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
localeOptions: function () {
|
localeOptions: function () {
|
||||||
return Object.keys(this.$i18n.messages)
|
return ['system'].concat(Object.keys(this.$i18n.messages))
|
||||||
},
|
},
|
||||||
|
|
||||||
localeNames: function () {
|
localeNames: function () {
|
||||||
const names = []
|
const names = [
|
||||||
|
this.$t('Settings.General Settings.System Default')
|
||||||
|
]
|
||||||
|
|
||||||
Object.keys(this.$i18n.messages).forEach((locale) => {
|
Object.keys(this.$i18n.messages).forEach((locale) => {
|
||||||
const localeName = this.$i18n.messages[locale]['Locale Name']
|
const localeName = this.$i18n.messages[locale]['Locale Name']
|
||||||
|
@ -167,7 +170,7 @@ export default Vue.extend({
|
||||||
|
|
||||||
this.updateInvidiousInstanceBounce = debounce(this.updateInvidiousInstance, 500)
|
this.updateInvidiousInstanceBounce = debounce(this.updateInvidiousInstance, 500)
|
||||||
|
|
||||||
this.currentLocale = this.$i18n.locale
|
this.currentLocale = localStorage.getItem('locale')
|
||||||
},
|
},
|
||||||
beforeDestroy: function () {
|
beforeDestroy: function () {
|
||||||
if (this.invidiousInstance === '') {
|
if (this.invidiousInstance === '') {
|
||||||
|
@ -190,18 +193,41 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
updateLocale: function (locale) {
|
updateLocale: function (locale) {
|
||||||
this.$i18n.locale = locale
|
if (locale === 'system') {
|
||||||
this.currentLocale = locale
|
const systemLocale = app.getLocale().replace(/-|_/, '_')
|
||||||
localStorage.setItem('locale', locale)
|
const findLocale = Object.keys(this.$i18n.messages).find((locale) => {
|
||||||
|
const localeName = locale.replace(/-|_/, '_')
|
||||||
|
return localeName.includes(systemLocale)
|
||||||
|
})
|
||||||
|
|
||||||
|
if (typeof findLocale !== 'undefined') {
|
||||||
|
this.$i18n.locale = findLocale
|
||||||
|
this.currentLocale = 'system'
|
||||||
|
localStorage.setItem('locale', 'system')
|
||||||
|
} else {
|
||||||
|
// Translating this string isn't needed because the user will always see it in English
|
||||||
|
this.showToast({
|
||||||
|
message: 'Locale not found, defaulting to English (US)'
|
||||||
|
})
|
||||||
|
this.$i18n.locale = 'en-US'
|
||||||
|
this.currentLocale = 'en-US'
|
||||||
|
localStorage.setItem('locale', 'en-US')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$i18n.locale = locale
|
||||||
|
this.currentLocale = locale
|
||||||
|
localStorage.setItem('locale', locale)
|
||||||
|
}
|
||||||
|
|
||||||
const payload = {
|
const payload = {
|
||||||
isDev: this.isDev,
|
isDev: this.isDev,
|
||||||
locale: locale
|
locale: this.currentLocale
|
||||||
}
|
}
|
||||||
this.getRegionData(payload)
|
this.getRegionData(payload)
|
||||||
},
|
},
|
||||||
|
|
||||||
...mapActions([
|
...mapActions([
|
||||||
|
'showToast',
|
||||||
'updateEnableSearchSuggestions',
|
'updateEnableSearchSuggestions',
|
||||||
'updateBackendFallback',
|
'updateBackendFallback',
|
||||||
'updateCheckForUpdates',
|
'updateCheckForUpdates',
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
</div>
|
</div>
|
||||||
<ft-flex-box>
|
<ft-flex-box>
|
||||||
<ft-slider
|
<ft-slider
|
||||||
:label="$t('Settings.Player Settings.Playlist Next Video Interval')"
|
:label="$t('Settings.Player Settings.Next Video Interval')"
|
||||||
:default-value="defaultInterval"
|
:default-value="defaultInterval"
|
||||||
:min-value="0"
|
:min-value="0"
|
||||||
:max-value="60"
|
:max-value="60"
|
||||||
|
|
|
@ -33,6 +33,10 @@ export default Vue.extend({
|
||||||
saveWatchedProgress: function () {
|
saveWatchedProgress: function () {
|
||||||
return this.$store.getters.getSaveWatchedProgress
|
return this.$store.getters.getSaveWatchedProgress
|
||||||
},
|
},
|
||||||
|
removeVideoMetaFiles: function () {
|
||||||
|
return this.$store.getters.getRemoveVideoMetaFiles
|
||||||
|
},
|
||||||
|
|
||||||
profileList: function () {
|
profileList: function () {
|
||||||
return this.$store.getters.getProfileList
|
return this.$store.getters.getProfileList
|
||||||
},
|
},
|
||||||
|
@ -66,6 +70,13 @@ export default Vue.extend({
|
||||||
this.updateRememberHistory(value)
|
this.updateRememberHistory(value)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleVideoMetaFiles: function (value) {
|
||||||
|
if (!value) {
|
||||||
|
this.updateRemoveVideoMetaFiles(false)
|
||||||
|
}
|
||||||
|
this.updateRemoveVideoMetaFiles(value)
|
||||||
|
},
|
||||||
|
|
||||||
handleRemoveHistory: function (option) {
|
handleRemoveHistory: function (option) {
|
||||||
this.showRemoveHistoryPrompt = false
|
this.showRemoveHistoryPrompt = false
|
||||||
|
|
||||||
|
@ -102,6 +113,7 @@ export default Vue.extend({
|
||||||
|
|
||||||
...mapActions([
|
...mapActions([
|
||||||
'updateRememberHistory',
|
'updateRememberHistory',
|
||||||
|
'updateRemoveVideoMetaFiles',
|
||||||
'removeAllHistory',
|
'removeAllHistory',
|
||||||
'updateSaveWatchedProgress',
|
'updateSaveWatchedProgress',
|
||||||
'clearSessionSearchHistory',
|
'clearSessionSearchHistory',
|
||||||
|
|
|
@ -23,6 +23,15 @@
|
||||||
@change="updateSaveWatchedProgress"
|
@change="updateSaveWatchedProgress"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="switchColumn">
|
||||||
|
<ft-toggle-switch
|
||||||
|
:label="$t('Settings.Privacy Settings.Automatically Remove Video Meta Files')"
|
||||||
|
:compact="true"
|
||||||
|
:default-value="removeVideoMetaFiles"
|
||||||
|
:tooltip="$t('Tooltips.Privacy Settings.Remove Video Meta Files')"
|
||||||
|
@change="handleVideoMetaFiles"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<ft-flex-box>
|
<ft-flex-box>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
||||||
import SideNavMoreOptions from '../side-nav-more-options/side-nav-more-options.vue'
|
import SideNavMoreOptions from '../side-nav-more-options/side-nav-more-options.vue'
|
||||||
import router from '../../router/index.js'
|
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'SideNav',
|
name: 'SideNav',
|
||||||
|
@ -60,7 +59,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
navigate: function (route) {
|
navigate: function (route) {
|
||||||
router.push('/' + route)
|
this.$router.push('/' + route)
|
||||||
},
|
},
|
||||||
|
|
||||||
goToChannel: function (id) {
|
goToChannel: function (id) {
|
||||||
|
|
|
@ -7,11 +7,14 @@
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<div
|
<div
|
||||||
class="navOption topNavOption mobileShow"
|
class="navOption topNavOption mobileShow"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('subscriptions')"
|
@click="navigate('subscriptions')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="rss"
|
icon="rss"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("Subscriptions.Subscriptions") }}
|
{{ $t("Subscriptions.Subscriptions") }}
|
||||||
|
@ -20,11 +23,15 @@
|
||||||
<div
|
<div
|
||||||
v-if="!hideTrendingVideos"
|
v-if="!hideTrendingVideos"
|
||||||
class="navOption mobileHidden"
|
class="navOption mobileHidden"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('trending')"
|
@click="navigate('trending')"
|
||||||
|
@keypress="navigate('trending')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="fire"
|
icon="fire"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("Trending") }}
|
{{ $t("Trending") }}
|
||||||
|
@ -33,11 +40,15 @@
|
||||||
<div
|
<div
|
||||||
v-if="!hidePopularVideos"
|
v-if="!hidePopularVideos"
|
||||||
class="navOption mobileHidden"
|
class="navOption mobileHidden"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('popular')"
|
@click="navigate('popular')"
|
||||||
|
@keypress="navigate('popular')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="users"
|
icon="users"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("Most Popular") }}
|
{{ $t("Most Popular") }}
|
||||||
|
@ -46,11 +57,15 @@
|
||||||
<div
|
<div
|
||||||
v-if="!hidePlaylists"
|
v-if="!hidePlaylists"
|
||||||
class="navOption mobileShow"
|
class="navOption mobileShow"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('userplaylists')"
|
@click="navigate('userplaylists')"
|
||||||
|
@keypress="navigate('userplaylists')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="bookmark"
|
icon="bookmark"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("Playlists") }}
|
{{ $t("Playlists") }}
|
||||||
|
@ -61,11 +76,15 @@
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="navOption mobileShow"
|
class="navOption mobileShow"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('history')"
|
@click="navigate('history')"
|
||||||
|
@keypress="navigate('history')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="history"
|
icon="history"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("History.History") }}
|
{{ $t("History.History") }}
|
||||||
|
@ -74,11 +93,15 @@
|
||||||
<hr>
|
<hr>
|
||||||
<div
|
<div
|
||||||
class="navOption mobileShow"
|
class="navOption mobileShow"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('settings')"
|
@click="navigate('settings')"
|
||||||
|
@keypress="navigate('settings')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="sliders-h"
|
icon="sliders-h"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("Settings.Settings") }}
|
{{ $t("Settings.Settings") }}
|
||||||
|
@ -86,11 +109,15 @@
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="navOption mobileHidden"
|
class="navOption mobileHidden"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="navigate('about')"
|
@click="navigate('about')"
|
||||||
|
@keypress="navigate('about')"
|
||||||
>
|
>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
icon="info-circle"
|
icon="info-circle"
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
|
fixed-width
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
{{ $t("About.About") }}
|
{{ $t("About.About") }}
|
||||||
|
@ -105,7 +132,10 @@
|
||||||
:key="index"
|
:key="index"
|
||||||
class="navChannel mobileHidden"
|
class="navChannel mobileHidden"
|
||||||
:title="channel.name"
|
:title="channel.name"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="goToChannel(channel.id)"
|
@click="goToChannel(channel.id)"
|
||||||
|
@keypress="goToChannel(channel.id)"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="thumbnailContainer"
|
class="thumbnailContainer"
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
.relative {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
width: 85%;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 680px) {
|
||||||
|
.card {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 500px) {
|
||||||
|
.sponsorBlockSettingsFlexBox {
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
import Vue from 'vue'
|
||||||
|
import { mapActions } from 'vuex'
|
||||||
|
import FtCard from '../ft-card/ft-card.vue'
|
||||||
|
import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
|
||||||
|
import FtInput from '../ft-input/ft-input.vue'
|
||||||
|
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
name: 'SponsorBlockSettings',
|
||||||
|
components: {
|
||||||
|
'ft-card': FtCard,
|
||||||
|
'ft-toggle-switch': FtToggleSwitch,
|
||||||
|
'ft-input': FtInput,
|
||||||
|
'ft-flex-box': FtFlexBox
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
useSponsorBlock: function () {
|
||||||
|
return this.$store.getters.getUseSponsorBlock
|
||||||
|
},
|
||||||
|
sponsorBlockUrl: function () {
|
||||||
|
return this.$store.getters.getSponsorBlockUrl
|
||||||
|
},
|
||||||
|
sponsorBlockShowSkippedToast: function () {
|
||||||
|
return this.$store.getters.getSponsorBlockShowSkippedToast
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleUpdateSponsorBlock: function (value) {
|
||||||
|
this.updateUseSponsorBlock(value)
|
||||||
|
},
|
||||||
|
|
||||||
|
handleUpdateSponsorBlockUrl: function (value) {
|
||||||
|
const sponsorBlockUrlWithoutTrailingSlash = value.replace(/\/$/, '')
|
||||||
|
const sponsorBlockUrlWithoutApiSuffix = sponsorBlockUrlWithoutTrailingSlash.replace(/\/api$/, '')
|
||||||
|
this.updateSponsorBlockUrl(sponsorBlockUrlWithoutApiSuffix)
|
||||||
|
},
|
||||||
|
|
||||||
|
handleUpdateSponsorBlockShowSkippedToast: function (value) {
|
||||||
|
this.updateSponsorBlockShowSkippedToast(value)
|
||||||
|
},
|
||||||
|
|
||||||
|
...mapActions([
|
||||||
|
'updateUseSponsorBlock',
|
||||||
|
'updateSponsorBlockUrl',
|
||||||
|
'updateSponsorBlockShowSkippedToast'
|
||||||
|
])
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,37 @@
|
||||||
|
<template>
|
||||||
|
<ft-card
|
||||||
|
class="relative card"
|
||||||
|
>
|
||||||
|
<h3
|
||||||
|
class="videoTitle"
|
||||||
|
>
|
||||||
|
{{ $t("Settings.SponsorBlock Settings.SponsorBlock Settings") }}
|
||||||
|
</h3>
|
||||||
|
<ft-flex-box class="sponsorBlockSettingsFlexBox">
|
||||||
|
<ft-toggle-switch
|
||||||
|
:label="$t('Settings.SponsorBlock Settings.Enable SponsorBlock')"
|
||||||
|
:default-value="useSponsorBlock"
|
||||||
|
@change="handleUpdateSponsorBlock"
|
||||||
|
/>
|
||||||
|
</ft-flex-box>
|
||||||
|
<ft-flex-box class="sponsorBlockSettingsFlexBox">
|
||||||
|
<ft-toggle-switch
|
||||||
|
:label="$t('Settings.SponsorBlock Settings.Notify when sponsor segment is skipped')"
|
||||||
|
:default-value="sponsorBlockShowSkippedToast"
|
||||||
|
@change="handleUpdateSponsorBlockShowSkippedToast"
|
||||||
|
/>
|
||||||
|
</ft-flex-box>
|
||||||
|
<ft-flex-box>
|
||||||
|
<ft-input
|
||||||
|
:placeholder="$t('Settings.SponsorBlock Settings[\'SponsorBlock API Url (Default is https://sponsor.ajay.app)\']')"
|
||||||
|
:show-arrow="false"
|
||||||
|
:show-label="true"
|
||||||
|
:value="sponsorBlockUrl"
|
||||||
|
@input="handleUpdateSponsorBlockUrl"
|
||||||
|
/>
|
||||||
|
</ft-flex-box>
|
||||||
|
</ft-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script src="./sponsor-block-settings.js" />
|
||||||
|
<style scoped src="./sponsor-block-settings.css" />
|
|
@ -1,11 +1,12 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import { mapActions } from 'vuex'
|
||||||
import FtInput from '../ft-input/ft-input.vue'
|
import FtInput from '../ft-input/ft-input.vue'
|
||||||
import FtSearchFilters from '../ft-search-filters/ft-search-filters.vue'
|
import FtSearchFilters from '../ft-search-filters/ft-search-filters.vue'
|
||||||
import FtProfileSelector from '../ft-profile-selector/ft-profile-selector.vue'
|
import FtProfileSelector from '../ft-profile-selector/ft-profile-selector.vue'
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
import router from '../../router/index.js'
|
|
||||||
import debounce from 'lodash.debounce'
|
import debounce from 'lodash.debounce'
|
||||||
import ytSuggest from 'youtube-suggest'
|
import ytSuggest from 'youtube-suggest'
|
||||||
|
const { ipcRenderer } = require('electron')
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'TopNav',
|
name: 'TopNav',
|
||||||
|
@ -49,6 +50,18 @@ export default Vue.extend({
|
||||||
|
|
||||||
backendPreference: function () {
|
backendPreference: function () {
|
||||||
return this.$store.getters.getBackendPreference
|
return this.$store.getters.getBackendPreference
|
||||||
|
},
|
||||||
|
|
||||||
|
forwardText: function () {
|
||||||
|
return this.$t('Forward')
|
||||||
|
},
|
||||||
|
|
||||||
|
backwardText: function () {
|
||||||
|
return this.$t('Backward')
|
||||||
|
},
|
||||||
|
|
||||||
|
newWindowText: function () {
|
||||||
|
return this.$t('Open New Window')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
|
@ -89,32 +102,76 @@ export default Vue.extend({
|
||||||
searchInput.blur()
|
searchInput.blur()
|
||||||
}
|
}
|
||||||
|
|
||||||
const { videoId, timestamp } = await this.$store.dispatch('getVideoParamsFromUrl', query)
|
this.$store.dispatch('getYoutubeUrlInfo', query).then((result) => {
|
||||||
const playlistId = await this.$store.dispatch('getPlaylistIdFromUrl', query)
|
switch (result.urlType) {
|
||||||
|
case 'video': {
|
||||||
|
const { videoId, timestamp } = result
|
||||||
|
|
||||||
console.log(playlistId)
|
this.$router.push({
|
||||||
|
path: `/watch/${videoId}`,
|
||||||
if (videoId) {
|
query: timestamp ? { timestamp } : {}
|
||||||
this.$router.push({
|
})
|
||||||
path: `/watch/${videoId}`,
|
break
|
||||||
query: timestamp ? { timestamp } : {}
|
|
||||||
})
|
|
||||||
} else if (playlistId) {
|
|
||||||
this.$router.push({
|
|
||||||
path: `/playlist/${playlistId}`
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
router.push({
|
|
||||||
path: `/search/${encodeURIComponent(query)}`,
|
|
||||||
query: {
|
|
||||||
sortBy: this.searchSettings.sortBy,
|
|
||||||
time: this.searchSettings.time,
|
|
||||||
type: this.searchSettings.type,
|
|
||||||
duration: this.searchSettings.duration
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
case 'playlist': {
|
||||||
|
const { playlistId, query } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/playlist/${playlistId}`,
|
||||||
|
query
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'search': {
|
||||||
|
const { searchQuery, query } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/search/${encodeURIComponent(searchQuery)}`,
|
||||||
|
query
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'hashtag': {
|
||||||
|
// TODO: Implement a hashtag related view
|
||||||
|
let message = 'Hashtags have not yet been implemented, try again later'
|
||||||
|
if (this.$t(message) && this.$t(message) !== '') {
|
||||||
|
message = this.$t(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.showToast({
|
||||||
|
message: message
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'channel': {
|
||||||
|
const { channelId } = result
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: `/channel/${channelId}`
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'invalid_url':
|
||||||
|
default: {
|
||||||
|
this.$router.push({
|
||||||
|
path: `/search/${encodeURIComponent(query)}`,
|
||||||
|
query: {
|
||||||
|
sortBy: this.searchSettings.sortBy,
|
||||||
|
time: this.searchSettings.time,
|
||||||
|
type: this.searchSettings.type,
|
||||||
|
duration: this.searchSettings.duration
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Close the filter panel
|
||||||
this.showFilters = false
|
this.showFilters = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -195,6 +252,14 @@ export default Vue.extend({
|
||||||
|
|
||||||
toggleSideNav: function () {
|
toggleSideNav: function () {
|
||||||
this.$store.commit('toggleSideNav')
|
this.$store.commit('toggleSideNav')
|
||||||
}
|
},
|
||||||
|
|
||||||
|
createNewWindow: function () {
|
||||||
|
ipcRenderer.send('createNewWindow')
|
||||||
|
},
|
||||||
|
|
||||||
|
...mapActions([
|
||||||
|
'showToast'
|
||||||
|
])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -66,6 +66,10 @@
|
||||||
@media only screen and (min-width: 681px)
|
@media only screen and (min-width: 681px)
|
||||||
display: none
|
display: none
|
||||||
|
|
||||||
|
.navNewWindowIcon
|
||||||
|
@media only screen and (max-width: 680px)
|
||||||
|
display: none
|
||||||
|
|
||||||
.logo // parts that make up the logo
|
.logo // parts that make up the logo
|
||||||
display: flex
|
display: flex
|
||||||
align-items: center
|
align-items: center
|
||||||
|
|
|
@ -7,22 +7,42 @@
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
class="menuIcon navIcon"
|
class="menuIcon navIcon"
|
||||||
icon="bars"
|
icon="bars"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="toggleSideNav"
|
@click="toggleSideNav"
|
||||||
|
@keypress="toggleSideNav"
|
||||||
/>
|
/>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
class="navBackIcon navIcon"
|
class="navBackIcon navIcon"
|
||||||
icon="arrow-left"
|
icon="arrow-left"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
|
:title="forwardText"
|
||||||
@click="historyBack"
|
@click="historyBack"
|
||||||
|
@keypress="historyBack"
|
||||||
/>
|
/>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
class="navForwardIcon navIcon"
|
class="navForwardIcon navIcon"
|
||||||
icon="arrow-right"
|
icon="arrow-right"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
|
:title="forwardText"
|
||||||
@click="historyForward"
|
@click="historyForward"
|
||||||
|
@keypress="historyForward"
|
||||||
/>
|
/>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
class="navSearchIcon navIcon"
|
class="navSearchIcon navIcon"
|
||||||
icon="search"
|
icon="search"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="toggleSearchContainer"
|
@click="toggleSearchContainer"
|
||||||
|
@keypress="toggleSearchContainer"
|
||||||
|
/>
|
||||||
|
<font-awesome-icon
|
||||||
|
class="navNewWindowIcon navIcon"
|
||||||
|
icon="clone"
|
||||||
|
:title="newWindowText"
|
||||||
|
@click="createNewWindow"
|
||||||
/>
|
/>
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<div
|
<div
|
||||||
|
@ -39,6 +59,7 @@
|
||||||
:placeholder="$t('Search / Go to URL')"
|
:placeholder="$t('Search / Go to URL')"
|
||||||
class="searchInput"
|
class="searchInput"
|
||||||
:is-search="true"
|
:is-search="true"
|
||||||
|
:select-on-focus="true"
|
||||||
:data-list="searchSuggestionsDataList"
|
:data-list="searchSuggestionsDataList"
|
||||||
@input="getSearchSuggestionsDebounce"
|
@input="getSearchSuggestionsDebounce"
|
||||||
@click="goToSearch"
|
@click="goToSearch"
|
||||||
|
@ -46,7 +67,10 @@
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
class="navFilterIcon navIcon"
|
class="navFilterIcon navIcon"
|
||||||
icon="filter"
|
icon="filter"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
@click="showFilters = !showFilters"
|
@click="showFilters = !showFilters"
|
||||||
|
@keypress="showFilters = !showFilters"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<ft-search-filters
|
<ft-search-filters
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
height: 60px;
|
height: 60px;
|
||||||
border-radius: 200px 200px 200px 200px;
|
border-radius: 200px 200px 200px 200px;
|
||||||
-webkit-border-radius: 200px 200px 200px 200px;
|
-webkit-border-radius: 200px 200px 200px 200px;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commentAuthor {
|
.commentAuthor {
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 68px;
|
margin-left: 68px;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commentText {
|
.commentText {
|
||||||
|
|
|
@ -227,6 +227,7 @@ export default Vue.extend({
|
||||||
|
|
||||||
parseLocalCommentData: function (response, index = null) {
|
parseLocalCommentData: function (response, index = null) {
|
||||||
const commentData = response.comments.map((comment) => {
|
const commentData = response.comments.map((comment) => {
|
||||||
|
comment.authorLink = comment.authorId
|
||||||
comment.showReplies = false
|
comment.showReplies = false
|
||||||
comment.authorThumb = comment.authorThumb[0].url
|
comment.authorThumb = comment.authorThumb[0].url
|
||||||
comment.replies = []
|
comment.replies = []
|
||||||
|
@ -273,6 +274,7 @@ export default Vue.extend({
|
||||||
this.invidiousAPICall(payload).then((response) => {
|
this.invidiousAPICall(payload).then((response) => {
|
||||||
const commentData = response.comments.map((comment) => {
|
const commentData = response.comments.map((comment) => {
|
||||||
comment.showReplies = false
|
comment.showReplies = false
|
||||||
|
comment.authorLink = comment.authorId
|
||||||
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
||||||
if (this.hideCommentLikes) {
|
if (this.hideCommentLikes) {
|
||||||
comment.likes = null
|
comment.likes = null
|
||||||
|
@ -338,6 +340,7 @@ export default Vue.extend({
|
||||||
this.$store.dispatch('invidiousAPICall', payload).then((response) => {
|
this.$store.dispatch('invidiousAPICall', payload).then((response) => {
|
||||||
const commentData = response.comments.map((comment) => {
|
const commentData = response.comments.map((comment) => {
|
||||||
comment.showReplies = false
|
comment.showReplies = false
|
||||||
|
comment.authorLink = comment.authorId
|
||||||
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
||||||
if (this.hideCommentLikes) {
|
if (this.hideCommentLikes) {
|
||||||
comment.likes = null
|
comment.likes = null
|
||||||
|
@ -372,6 +375,10 @@ export default Vue.extend({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
goToChannel: function (channelId) {
|
||||||
|
this.$router.push({ path: `/channel/${channelId}` })
|
||||||
|
},
|
||||||
|
|
||||||
...mapActions([
|
...mapActions([
|
||||||
'showToast',
|
'showToast',
|
||||||
'toLocalePublicationString',
|
'toLocalePublicationString',
|
||||||
|
|
|
@ -45,8 +45,12 @@
|
||||||
<img
|
<img
|
||||||
:src="comment.authorThumb"
|
:src="comment.authorThumb"
|
||||||
class="commentThumbnail"
|
class="commentThumbnail"
|
||||||
|
@click="goToChannel(comment.authorLink)"
|
||||||
|
>
|
||||||
|
<p
|
||||||
|
class="commentAuthor"
|
||||||
|
@click="goToChannel(comment.authorLink)"
|
||||||
>
|
>
|
||||||
<p class="commentAuthor">
|
|
||||||
{{ comment.author }}
|
{{ comment.author }}
|
||||||
<span class="commentDate">
|
<span class="commentDate">
|
||||||
{{ comment.time }}
|
{{ comment.time }}
|
||||||
|
|
|
@ -55,9 +55,8 @@ export default Vue.extend({
|
||||||
descriptionText = descriptionText.replace(/&v.+?(?=")/g, '')
|
descriptionText = descriptionText.replace(/&v.+?(?=")/g, '')
|
||||||
descriptionText = descriptionText.replace(/&redirect-token.+?(?=")/g, '')
|
descriptionText = descriptionText.replace(/&redirect-token.+?(?=")/g, '')
|
||||||
descriptionText = descriptionText.replace(/&redir_token.+?(?=")/g, '')
|
descriptionText = descriptionText.replace(/&redir_token.+?(?=")/g, '')
|
||||||
descriptionText = descriptionText.replace(/href="http(s)?:\/\/youtube\.com/g, 'href="freetube://https://youtube.com')
|
descriptionText = descriptionText.replace(/href="\//g, 'href="https://www.youtube.com/')
|
||||||
descriptionText = descriptionText.replace(/href="\/watch/g, 'href="freetube://https://youtube.com')
|
// TODO: Implement hashtag support
|
||||||
descriptionText = descriptionText.replace(/href="\/results\?search_query=/g, 'href="freetube://')
|
|
||||||
descriptionText = descriptionText.replace(/href="\/hashtag\//g, 'href="freetube://')
|
descriptionText = descriptionText.replace(/href="\/hashtag\//g, 'href="freetube://')
|
||||||
descriptionText = descriptionText.replace(/yt\.www\.watch\.player\.seekTo/g, 'changeDuration')
|
descriptionText = descriptionText.replace(/yt\.www\.watch\.player\.seekTo/g, 'changeDuration')
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
v-if="theatrePossible"
|
v-if="theatrePossible"
|
||||||
:title="$t('Toggle Theatre Mode')"
|
:title="$t('Toggle Theatre Mode')"
|
||||||
class="theatreModeButton option"
|
class="theatreModeButton option"
|
||||||
icon="expand-alt"
|
icon="tv"
|
||||||
theme="secondary"
|
theme="secondary"
|
||||||
@click="$emit('theatre-mode')"
|
@click="$emit('theatre-mode')"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -161,7 +161,7 @@ export default Vue.extend({
|
||||||
comment.messageHtml = comment.messageHtml + text.text
|
comment.messageHtml = comment.messageHtml + text.text
|
||||||
}
|
}
|
||||||
} else if (typeof (text.alt) !== 'undefined') {
|
} else if (typeof (text.alt) !== 'undefined') {
|
||||||
const htmlImg = `<img src="${text.url}" alt="${text.alt}" />`
|
const htmlImg = `<img src="${text.url}" alt="${text.alt}" height="24" width="24" />`
|
||||||
comment.messageHtml = comment.messageHtml + htmlImg
|
comment.messageHtml = comment.messageHtml + htmlImg
|
||||||
} else {
|
} else {
|
||||||
comment.messageHtml = comment.messageHtml + text.text
|
comment.messageHtml = comment.messageHtml + text.text
|
||||||
|
|
|
@ -27,7 +27,7 @@ Vue.component('FontAwesomeIcon', FontAwesomeIcon)
|
||||||
Vue.use(VueI18n)
|
Vue.use(VueI18n)
|
||||||
|
|
||||||
// List of locales approved for use
|
// List of locales approved for use
|
||||||
const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'vi', 'zh-CN', 'zh-TW']
|
const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'is', 'it', 'ja', 'nb_NO', 'nl', 'nn', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW']
|
||||||
const messages = {}
|
const messages = {}
|
||||||
/* eslint-disable-next-line */
|
/* eslint-disable-next-line */
|
||||||
const fileLocation = isDev ? 'static/locales/' : `${__dirname}/static/locales/`
|
const fileLocation = isDev ? 'static/locales/' : `${__dirname}/static/locales/`
|
||||||
|
@ -46,7 +46,7 @@ activeLocales.forEach((locale) => {
|
||||||
const i18n = new VueI18n({
|
const i18n = new VueI18n({
|
||||||
locale: 'en-US', // set locale
|
locale: 'en-US', // set locale
|
||||||
fallbackLocale: {
|
fallbackLocale: {
|
||||||
default: 'en-US'
|
default: 'en-US' // for the case systems locale has no corresponding .yaml file en-US gets set
|
||||||
},
|
},
|
||||||
messages // set locale messages
|
messages // set locale messages
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,7 +13,6 @@ if (window && window.process && window.process.type === 'renderer') {
|
||||||
|
|
||||||
const remote = require('@electron/remote')
|
const remote = require('@electron/remote')
|
||||||
dbLocation = remote.app.getPath('userData')
|
dbLocation = remote.app.getPath('userData')
|
||||||
|
|
||||||
dbLocation = dbLocation + '/history.db'
|
dbLocation = dbLocation + '/history.db'
|
||||||
} else {
|
} else {
|
||||||
dbLocation = 'history.db'
|
dbLocation = 'history.db'
|
||||||
|
@ -77,6 +76,10 @@ const actions = {
|
||||||
dispatch('grabHistory')
|
dispatch('grabHistory')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
compactHistory (_) {
|
||||||
|
historyDb.persistence.compactDatafile()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,38 +47,44 @@ const getters = {
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
grabAllProfiles ({ rootState, dispatch, commit }, defaultName = null) {
|
grabAllProfiles ({ rootState, dispatch, commit }, defaultName = null) {
|
||||||
profileDb.find({}, (err, results) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!err) {
|
profileDb.find({}, (err, results) => {
|
||||||
if (results.length === 0) {
|
if (!err) {
|
||||||
dispatch('createDefaultProfile', defaultName)
|
if (results.length === 0) {
|
||||||
} else {
|
dispatch('createDefaultProfile', defaultName)
|
||||||
// We want the primary profile to always be first
|
} else {
|
||||||
// So sort with that then sort alphabetically by profile name
|
// We want the primary profile to always be first
|
||||||
const profiles = results.sort((a, b) => {
|
// So sort with that then sort alphabetically by profile name
|
||||||
if (a._id === 'allChannels') {
|
const profiles = results.sort((a, b) => {
|
||||||
return -1
|
if (a._id === 'allChannels') {
|
||||||
}
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
if (b._id === 'allChannels') {
|
if (b._id === 'allChannels') {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
return b.name - a.name
|
return b.name - a.name
|
||||||
})
|
|
||||||
|
|
||||||
if (state.profileList.length < profiles.length) {
|
|
||||||
const profileIndex = profiles.findIndex((profile) => {
|
|
||||||
return profile._id === rootState.settings.defaultProfile
|
|
||||||
})
|
})
|
||||||
|
|
||||||
if (profileIndex !== -1) {
|
if (state.profileList.length < profiles.length) {
|
||||||
dispatch('updateActiveProfile', profileIndex)
|
const profileIndex = profiles.findIndex((profile) => {
|
||||||
|
return profile._id === rootState.settings.defaultProfile
|
||||||
|
})
|
||||||
|
|
||||||
|
if (profileIndex !== -1) {
|
||||||
|
commit('setActiveProfile', profileIndex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
commit('setProfileList', profiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
commit('setProfileList', profiles)
|
resolve()
|
||||||
|
} else {
|
||||||
|
reject(err)
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -103,7 +109,7 @@ const actions = {
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
subscriptions: []
|
subscriptions: []
|
||||||
}
|
}
|
||||||
console.log(defaultProfile)
|
|
||||||
profileDb.update({ _id: 'allChannels' }, defaultProfile, { upsert: true }, (err, numReplaced) => {
|
profileDb.update({ _id: 'allChannels' }, defaultProfile, { upsert: true }, (err, numReplaced) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
dispatch('grabAllProfiles')
|
dispatch('grabAllProfiles')
|
||||||
|
@ -135,6 +141,10 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
compactProfiles (_) {
|
||||||
|
profileDb.persistence.compactDatafile()
|
||||||
|
},
|
||||||
|
|
||||||
updateActiveProfile ({ commit }, index) {
|
updateActiveProfile ({ commit }, index) {
|
||||||
commit('setActiveProfile', index)
|
commit('setActiveProfile', index)
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,7 @@ const state = {
|
||||||
enableSearchSuggestions: true,
|
enableSearchSuggestions: true,
|
||||||
rememberHistory: true,
|
rememberHistory: true,
|
||||||
saveWatchedProgress: true,
|
saveWatchedProgress: true,
|
||||||
|
removeVideoMetaFiles: true,
|
||||||
autoplayVideos: true,
|
autoplayVideos: true,
|
||||||
autoplayPlaylists: true,
|
autoplayPlaylists: true,
|
||||||
playNextVideo: false,
|
playNextVideo: false,
|
||||||
|
@ -77,7 +78,10 @@ const state = {
|
||||||
hidePopularVideos: false,
|
hidePopularVideos: false,
|
||||||
hidePlaylists: false,
|
hidePlaylists: false,
|
||||||
hideLiveChat: false,
|
hideLiveChat: false,
|
||||||
hideActiveSubscriptions: false
|
hideActiveSubscriptions: false,
|
||||||
|
useSponsorBlock: false,
|
||||||
|
sponsorBlockUrl: 'https://sponsor.ajay.app',
|
||||||
|
sponsorBlockShowSkippedToast: true
|
||||||
}
|
}
|
||||||
|
|
||||||
const getters = {
|
const getters = {
|
||||||
|
@ -141,6 +145,10 @@ const getters = {
|
||||||
return state.saveWatchedProgress
|
return state.saveWatchedProgress
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getRemoveVideoMetaFiles: () => {
|
||||||
|
return state.removeVideoMetaFiles
|
||||||
|
},
|
||||||
|
|
||||||
getAutoplayVideos: () => {
|
getAutoplayVideos: () => {
|
||||||
return state.autoplayVideos
|
return state.autoplayVideos
|
||||||
},
|
},
|
||||||
|
@ -259,157 +267,185 @@ const getters = {
|
||||||
|
|
||||||
getHideActiveSubscriptions: () => {
|
getHideActiveSubscriptions: () => {
|
||||||
return state.hideActiveSubscriptions
|
return state.hideActiveSubscriptions
|
||||||
|
},
|
||||||
|
|
||||||
|
getUseSponsorBlock: () => {
|
||||||
|
return state.useSponsorBlock
|
||||||
|
},
|
||||||
|
|
||||||
|
getSponsorBlockUrl: () => {
|
||||||
|
return state.sponsorBlockUrl
|
||||||
|
},
|
||||||
|
|
||||||
|
getSponsorBlockShowSkippedToast: () => {
|
||||||
|
return state.sponsorBlockShowSkippedToast
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
grabUserSettings ({ dispatch, commit, rootState }) {
|
grabUserSettings ({ dispatch, commit, rootState }) {
|
||||||
settingsDb.find({}, (err, results) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!err) {
|
settingsDb.find({}, (err, results) => {
|
||||||
console.log(results)
|
if (!err) {
|
||||||
results.forEach((result) => {
|
console.log(results)
|
||||||
switch (result._id) {
|
results.forEach((result) => {
|
||||||
case 'invidiousInstance':
|
switch (result._id) {
|
||||||
if (result.value === '') {
|
case 'invidiousInstance':
|
||||||
dispatch('updateInvidiousInstance', 'https://invidious.snopyta.org')
|
if (result.value === '') {
|
||||||
} else {
|
dispatch('updateInvidiousInstance', 'https://invidious.snopyta.org')
|
||||||
commit('setInvidiousInstance', result.value)
|
} else {
|
||||||
}
|
commit('setInvidiousInstance', result.value)
|
||||||
break
|
}
|
||||||
case 'backendFallback':
|
break
|
||||||
commit('setBackendFallback', result.value)
|
case 'backendFallback':
|
||||||
break
|
commit('setBackendFallback', result.value)
|
||||||
case 'defaultProfile':
|
break
|
||||||
commit('setDefaultProfile', result.value)
|
case 'defaultProfile':
|
||||||
break
|
console.log('IN SETTING DEFAULT:', result.value)
|
||||||
case 'checkForUpdates':
|
commit('setDefaultProfile', result.value)
|
||||||
commit('setCheckForUpdates', result.value)
|
break
|
||||||
break
|
case 'checkForUpdates':
|
||||||
case 'checkForBlogPosts':
|
commit('setCheckForUpdates', result.value)
|
||||||
commit('setCheckForBlogPosts', result.value)
|
break
|
||||||
break
|
case 'checkForBlogPosts':
|
||||||
case 'enableSearchSuggestions':
|
commit('setCheckForBlogPosts', result.value)
|
||||||
commit('setEnableSearchSuggestions', result.value)
|
break
|
||||||
break
|
case 'enableSearchSuggestions':
|
||||||
case 'backendPreference':
|
commit('setEnableSearchSuggestions', result.value)
|
||||||
commit('setBackendPreference', result.value)
|
break
|
||||||
break
|
case 'backendPreference':
|
||||||
case 'landingPage':
|
commit('setBackendPreference', result.value)
|
||||||
commit('setLandingPage', result.value)
|
break
|
||||||
break
|
case 'landingPage':
|
||||||
case 'region':
|
commit('setLandingPage', result.value)
|
||||||
commit('setRegion', result.value)
|
break
|
||||||
break
|
case 'region':
|
||||||
case 'listType':
|
commit('setRegion', result.value)
|
||||||
commit('setListType', result.value)
|
break
|
||||||
break
|
case 'listType':
|
||||||
case 'thumbnailPreference':
|
commit('setListType', result.value)
|
||||||
commit('setThumbnailPreference', result.value)
|
break
|
||||||
break
|
case 'thumbnailPreference':
|
||||||
case 'barColor':
|
commit('setThumbnailPreference', result.value)
|
||||||
commit('setBarColor', result.value)
|
break
|
||||||
break
|
case 'barColor':
|
||||||
case 'uiScale':
|
commit('setBarColor', result.value)
|
||||||
webframe.setZoomFactor(parseInt(result.value) / 100)
|
break
|
||||||
commit('setUiScale', result.value)
|
case 'uiScale':
|
||||||
break
|
webframe.setZoomFactor(parseInt(result.value) / 100)
|
||||||
case 'disableSmoothScrolling':
|
commit('setUiScale', result.value)
|
||||||
commit('setDisableSmoothScrolling', result.value)
|
break
|
||||||
break
|
case 'disableSmoothScrolling':
|
||||||
case 'hideWatchedSubs':
|
commit('setDisableSmoothScrolling', result.value)
|
||||||
commit('setHideWatchedSubs', result.value)
|
break
|
||||||
break
|
case 'hideWatchedSubs':
|
||||||
case 'useRssFeeds':
|
commit('setHideWatchedSubs', result.value)
|
||||||
commit('setUseRssFeeds', result.value)
|
break
|
||||||
break
|
case 'useRssFeeds':
|
||||||
case 'rememberHistory':
|
commit('setUseRssFeeds', result.value)
|
||||||
commit('setRememberHistory', result.value)
|
break
|
||||||
break
|
case 'rememberHistory':
|
||||||
case 'saveWatchedProgress':
|
commit('setRememberHistory', result.value)
|
||||||
commit('setSaveWatchedProgress', result.value)
|
break
|
||||||
break
|
case 'saveWatchedProgress':
|
||||||
case 'autoplayVideos':
|
commit('setSaveWatchedProgress', result.value)
|
||||||
commit('setAutoplayVideos', result.value)
|
break
|
||||||
break
|
case 'removeVideoMetaFiles':
|
||||||
case 'autoplayPlaylists':
|
commit('setRemoveVideoMetaFiles', result.value)
|
||||||
commit('setAutoplayPlaylists', result.value)
|
break
|
||||||
break
|
case 'autoplayVideos':
|
||||||
case 'playNextVideo':
|
commit('setAutoplayVideos', result.value)
|
||||||
commit('setPlayNextVideo', result.value)
|
break
|
||||||
break
|
case 'autoplayPlaylists':
|
||||||
case 'enableSubtitles':
|
commit('setAutoplayPlaylists', result.value)
|
||||||
commit('setEnableSubtitles', result.value)
|
break
|
||||||
break
|
case 'playNextVideo':
|
||||||
case 'forceLocalBackendForLegacy':
|
commit('setPlayNextVideo', result.value)
|
||||||
commit('setForceLocalBackendForLegacy', result.value)
|
break
|
||||||
break
|
case 'enableSubtitles':
|
||||||
case 'proxyVideos':
|
commit('setEnableSubtitles', result.value)
|
||||||
commit('setProxyVideos', result.value)
|
break
|
||||||
break
|
case 'forceLocalBackendForLegacy':
|
||||||
case 'useProxy':
|
commit('setForceLocalBackendForLegacy', result.value)
|
||||||
commit('setUseProxy', result.value)
|
break
|
||||||
break
|
case 'proxyVideos':
|
||||||
case 'proxyProtocol':
|
commit('setProxyVideos', result.value)
|
||||||
commit('setProxyProtocol', result.value)
|
break
|
||||||
break
|
case 'useProxy':
|
||||||
case 'proxyHostname':
|
commit('setUseProxy', result.value)
|
||||||
commit('setProxyHostname', result.value)
|
break
|
||||||
break
|
case 'proxyProtocol':
|
||||||
case 'proxyPort':
|
commit('setProxyProtocol', result.value)
|
||||||
commit('setProxyPort', result.value)
|
break
|
||||||
break
|
case 'proxyHostname':
|
||||||
case 'defaultTheatreMode':
|
commit('setProxyHostname', result.value)
|
||||||
commit('setDefaultTheatreMode', result.value)
|
break
|
||||||
break
|
case 'proxyPort':
|
||||||
case 'defaultInterval':
|
commit('setProxyPort', result.value)
|
||||||
commit('setDefaultInterval', result.value)
|
break
|
||||||
break
|
case 'defaultTheatreMode':
|
||||||
case 'defaultVolume':
|
commit('setDefaultTheatreMode', result.value)
|
||||||
commit('setDefaultVolume', result.value)
|
break
|
||||||
sessionStorage.setItem('volume', result.value)
|
case 'defaultInterval':
|
||||||
break
|
commit('setDefaultInterval', result.value)
|
||||||
case 'defaultPlayback':
|
break
|
||||||
commit('setDefaultPlayback', result.value)
|
case 'defaultVolume':
|
||||||
break
|
commit('setDefaultVolume', result.value)
|
||||||
case 'defaultVideoFormat':
|
sessionStorage.setItem('volume', result.value)
|
||||||
commit('setDefaultVideoFormat', result.value)
|
break
|
||||||
break
|
case 'defaultPlayback':
|
||||||
case 'defaultQuality':
|
commit('setDefaultPlayback', result.value)
|
||||||
commit('setDefaultQuality', result.value)
|
break
|
||||||
break
|
case 'defaultVideoFormat':
|
||||||
case 'hideVideoViews':
|
commit('setDefaultVideoFormat', result.value)
|
||||||
commit('setHideVideoViews', result.value)
|
break
|
||||||
break
|
case 'defaultQuality':
|
||||||
case 'hideVideoLikesAndDislikes':
|
commit('setDefaultQuality', result.value)
|
||||||
commit('setHideVideoLikesAndDislikes', result.value)
|
break
|
||||||
break
|
case 'hideVideoViews':
|
||||||
case 'hideChannelSubscriptions':
|
commit('setHideVideoViews', result.value)
|
||||||
commit('setHideChannelSubscriptions', result.value)
|
break
|
||||||
break
|
case 'hideVideoLikesAndDislikes':
|
||||||
case 'hideCommentLikes':
|
commit('setHideVideoLikesAndDislikes', result.value)
|
||||||
commit('setHideCommentLikes', result.value)
|
break
|
||||||
break
|
case 'hideChannelSubscriptions':
|
||||||
case 'hideRecommendedVideos':
|
commit('setHideChannelSubscriptions', result.value)
|
||||||
commit('setHideRecommendedVideos', result.value)
|
break
|
||||||
break
|
case 'hideCommentLikes':
|
||||||
case 'hideTrendingVideos':
|
commit('setHideCommentLikes', result.value)
|
||||||
commit('setHideTrendingVideos', result.value)
|
break
|
||||||
break
|
case 'hideRecommendedVideos':
|
||||||
case 'hidePopularVideos':
|
commit('setHideRecommendedVideos', result.value)
|
||||||
commit('setHidePopularVideos', result.value)
|
break
|
||||||
break
|
case 'hideTrendingVideos':
|
||||||
case 'hidePlaylists':
|
commit('setHideTrendingVideos', result.value)
|
||||||
commit('setHidePlaylists', result.value)
|
break
|
||||||
break
|
case 'hidePopularVideos':
|
||||||
case 'hideLiveChat':
|
commit('setHidePopularVideos', result.value)
|
||||||
commit('setHideLiveChat', result.value)
|
break
|
||||||
break
|
case 'hidePlaylists':
|
||||||
case 'hideActiveSubscriptions':
|
commit('setHidePlaylists', result.value)
|
||||||
commit('setHideActiveSubscriptions', result.value)
|
break
|
||||||
break
|
case 'hideLiveChat':
|
||||||
}
|
commit('setHideLiveChat', result.value)
|
||||||
})
|
break
|
||||||
}
|
case 'hideActiveSubscriptions':
|
||||||
|
commit('setHideActiveSubscriptions', result.value)
|
||||||
|
break
|
||||||
|
case 'useSponsorBlock':
|
||||||
|
commit('setUseSponsorBlock', result.value)
|
||||||
|
break
|
||||||
|
case 'sponsorBlockUrl':
|
||||||
|
commit('setSponsorBlockUrl', result.value)
|
||||||
|
break
|
||||||
|
case 'sponsorBlockShowSkippedToast':
|
||||||
|
commit('setSponsorBlockShowSkippedToast', result.value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -550,6 +586,14 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateRemoveVideoMetaFiles ({ commit }, removeVideoMetaFiles) {
|
||||||
|
settingsDb.update({ _id: 'removeVideoMetaFiles' }, { _id: 'removeVideoMetaFiles', value: removeVideoMetaFiles }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setRemoveVideoMetaFiles', removeVideoMetaFiles)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
updateAutoplayVideos ({ commit }, autoplayVideos) {
|
updateAutoplayVideos ({ commit }, autoplayVideos) {
|
||||||
settingsDb.update({ _id: 'autoplayVideos' }, { _id: 'autoplayVideos', value: autoplayVideos }, { upsert: true }, (err, numReplaced) => {
|
settingsDb.update({ _id: 'autoplayVideos' }, { _id: 'autoplayVideos', value: autoplayVideos }, { upsert: true }, (err, numReplaced) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
@ -765,6 +809,30 @@ const actions = {
|
||||||
commit('setHideLiveChat', hideLiveChat)
|
commit('setHideLiveChat', hideLiveChat)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
updateUseSponsorBlock ({ commit }, useSponsorBlock) {
|
||||||
|
settingsDb.update({ _id: 'useSponsorBlock' }, { _id: 'useSponsorBlock', value: useSponsorBlock }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setUseSponsorBlock', useSponsorBlock)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
updateSponsorBlockUrl ({ commit }, sponsorBlockUrl) {
|
||||||
|
settingsDb.update({ _id: 'sponsorBlockUrl' }, { _id: 'sponsorBlockUrl', value: sponsorBlockUrl }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setSponsorBlockUrl', sponsorBlockUrl)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
updateSponsorBlockShowSkippedToast ({ commit }, sponsorBlockShowSkippedToast) {
|
||||||
|
settingsDb.update({ _id: 'sponsorBlockShowSkippedToast' }, { _id: 'sponsorBlockShowSkippedToast', value: sponsorBlockShowSkippedToast }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setSponsorBlockShowSkippedToast', sponsorBlockShowSkippedToast)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -817,6 +885,11 @@ const mutations = {
|
||||||
setSaveWatchedProgress (state, saveWatchedProgress) {
|
setSaveWatchedProgress (state, saveWatchedProgress) {
|
||||||
state.saveWatchedProgress = saveWatchedProgress
|
state.saveWatchedProgress = saveWatchedProgress
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setRemoveVideoMetaFiles (state, removeVideoMetaFiles) {
|
||||||
|
state.removeVideoMetaFiles = removeVideoMetaFiles
|
||||||
|
},
|
||||||
|
|
||||||
setAutoplayVideos (state, autoplayVideos) {
|
setAutoplayVideos (state, autoplayVideos) {
|
||||||
state.autoplayVideos = autoplayVideos
|
state.autoplayVideos = autoplayVideos
|
||||||
},
|
},
|
||||||
|
@ -918,6 +991,15 @@ const mutations = {
|
||||||
},
|
},
|
||||||
setHideActiveSubscriptions (state, hideActiveSubscriptions) {
|
setHideActiveSubscriptions (state, hideActiveSubscriptions) {
|
||||||
state.hideActiveSubscriptions = hideActiveSubscriptions
|
state.hideActiveSubscriptions = hideActiveSubscriptions
|
||||||
|
},
|
||||||
|
setUseSponsorBlock (state, useSponsorBlock) {
|
||||||
|
state.useSponsorBlock = useSponsorBlock
|
||||||
|
},
|
||||||
|
setSponsorBlockUrl (state, sponsorBlockUrl) {
|
||||||
|
state.sponsorBlockUrl = sponsorBlockUrl
|
||||||
|
},
|
||||||
|
setSponsorBlockShowSkippedToast (state, sponsorBlockShowSkippedToast) {
|
||||||
|
state.sponsorBlockShowSkippedToast = sponsorBlockShowSkippedToast
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
import $ from 'jquery'
|
||||||
|
import forge from 'node-forge'
|
||||||
|
|
||||||
|
const state = {}
|
||||||
|
const getters = {}
|
||||||
|
|
||||||
|
const actions = {
|
||||||
|
sponsorBlockSkipSegments ({ rootState }, { videoId, categories }) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const messageDigestSha256 = forge.md.sha256.create()
|
||||||
|
messageDigestSha256.update(videoId)
|
||||||
|
const videoIdHashPrefix = messageDigestSha256.digest().toHex().substring(0, 4)
|
||||||
|
const requestUrl = `${rootState.settings.sponsorBlockUrl}/api/skipSegments/${videoIdHashPrefix}?categories=${JSON.stringify(categories)}`
|
||||||
|
|
||||||
|
$.getJSON(requestUrl, (response) => {
|
||||||
|
const segments = response
|
||||||
|
.filter((result) => result.videoID === videoId)
|
||||||
|
.flatMap((result) => result.segments)
|
||||||
|
resolve(segments)
|
||||||
|
}).fail((xhr, textStatus, error) => {
|
||||||
|
console.log(xhr)
|
||||||
|
console.log(textStatus)
|
||||||
|
console.log(requestUrl)
|
||||||
|
console.log(error)
|
||||||
|
reject(xhr)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const mutations = {}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
state,
|
||||||
|
getters,
|
||||||
|
actions,
|
||||||
|
mutations
|
||||||
|
}
|
|
@ -239,25 +239,143 @@ const actions = {
|
||||||
return extractors.reduce((a, c) => a || c(), null) || paramsObject
|
return extractors.reduce((a, c) => a || c(), null) || paramsObject
|
||||||
},
|
},
|
||||||
|
|
||||||
getPlaylistIdFromUrl (_, url) {
|
getYoutubeUrlInfo ({ state }, urlStr) {
|
||||||
/** @type {URL} */
|
// Returns
|
||||||
let urlObject
|
// - urlType [String] `video`, `playlist`
|
||||||
try {
|
//
|
||||||
urlObject = new URL(url)
|
// If `urlType` is "video"
|
||||||
} catch (e) {
|
// - videoId [String]
|
||||||
return false
|
// - timestamp [String]
|
||||||
|
//
|
||||||
|
// If `urlType` is "playlist"
|
||||||
|
// - playlistId [String]
|
||||||
|
// - query [Object]
|
||||||
|
//
|
||||||
|
// If `urlType` is "search"
|
||||||
|
// - searchQuery [String]
|
||||||
|
// - query [Object]
|
||||||
|
//
|
||||||
|
// If `urlType` is "hashtag"
|
||||||
|
// Nothing else
|
||||||
|
//
|
||||||
|
// If `urlType` is "channel"
|
||||||
|
// - channelId [String]
|
||||||
|
//
|
||||||
|
// If `urlType` is "unknown"
|
||||||
|
// Nothing else
|
||||||
|
//
|
||||||
|
// If `urlType` is "invalid_url"
|
||||||
|
// Nothing else
|
||||||
|
const { videoId, timestamp } = actions.getVideoParamsFromUrl(null, urlStr)
|
||||||
|
if (videoId) {
|
||||||
|
return {
|
||||||
|
urlType: 'video',
|
||||||
|
videoId,
|
||||||
|
timestamp
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const extractors = [
|
let url
|
||||||
// anything with /playlist?list=
|
try {
|
||||||
function() {
|
url = new URL(urlStr)
|
||||||
if (urlObject.pathname === '/playlist' && urlObject.searchParams.has('list')) {
|
} catch {
|
||||||
return urlObject.searchParams.get('list')
|
return {
|
||||||
|
urlType: 'invalid_url'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let urlType = 'unknown'
|
||||||
|
|
||||||
|
const channelPattern =
|
||||||
|
/^\/(?:c\/|channel\/|user\/)?([^/]+)(?:\/join)?\/?$/
|
||||||
|
|
||||||
|
const typePatterns = new Map([
|
||||||
|
['playlist', /^\/playlist\/?$/],
|
||||||
|
['search', /^\/results\/?$/],
|
||||||
|
['hashtag', /^\/hashtag\/([^/?&#]+)$/],
|
||||||
|
['channel', channelPattern]
|
||||||
|
])
|
||||||
|
|
||||||
|
for (const [type, pattern] of typePatterns) {
|
||||||
|
const matchFound = pattern.test(url.pathname)
|
||||||
|
if (matchFound) {
|
||||||
|
urlType = type
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (urlType) {
|
||||||
|
case 'playlist': {
|
||||||
|
if (!url.searchParams.has('list')) {
|
||||||
|
throw new Error('Playlist: "list" field not found')
|
||||||
|
}
|
||||||
|
|
||||||
|
const playlistId = url.searchParams.get('list')
|
||||||
|
url.searchParams.delete('list')
|
||||||
|
|
||||||
|
const query = {}
|
||||||
|
for (const [param, value] of url.searchParams) {
|
||||||
|
query[param] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
urlType: 'playlist',
|
||||||
|
playlistId,
|
||||||
|
query
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
|
||||||
|
|
||||||
return extractors.reduce((a, c) => a || c(), null) || false
|
case 'search': {
|
||||||
|
if (!url.searchParams.has('search_query')) {
|
||||||
|
throw new Error('Search: "search_query" field not found')
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchQuery = url.searchParams.get('search_query')
|
||||||
|
url.searchParams.delete('search_query')
|
||||||
|
|
||||||
|
const searchSettings = state.searchSettings
|
||||||
|
const query = {
|
||||||
|
sortBy: searchSettings.sortBy,
|
||||||
|
time: searchSettings.time,
|
||||||
|
type: searchSettings.type,
|
||||||
|
duration: searchSettings.duration
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const [param, value] of url.searchParams) {
|
||||||
|
query[param] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
urlType: 'search',
|
||||||
|
searchQuery,
|
||||||
|
query
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'hashtag': {
|
||||||
|
return {
|
||||||
|
urlType: 'hashtag'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'channel': {
|
||||||
|
const channelId = url.pathname.match(channelPattern)[1]
|
||||||
|
if (!channelId) {
|
||||||
|
throw new Error('Channel: could not extract id')
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
urlType: 'channel',
|
||||||
|
channelId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
// Unknown URL type
|
||||||
|
return {
|
||||||
|
urlType: 'unknown'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
padNumberWithLeadingZeros(_, payload) {
|
padNumberWithLeadingZeros(_, payload) {
|
||||||
|
|
|
@ -347,7 +347,7 @@ const actions = {
|
||||||
}
|
}
|
||||||
|
|
||||||
ytdl.getInfo(videoId, {
|
ytdl.getInfo(videoId, {
|
||||||
lang: localStorage.getItem('locale'),
|
lang: 'en-US',
|
||||||
requestOptions: { agent }
|
requestOptions: { agent }
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
resolve(result)
|
resolve(result)
|
||||||
|
|
|
@ -448,6 +448,10 @@ body.vjs-full-window {
|
||||||
.vjs-icon-fullwindow-enter:before, .video-js .vjs-fullwindow-control .vjs-icon-placeholder:before {
|
.vjs-icon-fullwindow-enter:before, .video-js .vjs-fullwindow-control .vjs-icon-placeholder:before {
|
||||||
content: url(assets/img/open_fullwindow.svg);
|
content: url(assets/img/open_fullwindow.svg);
|
||||||
}
|
}
|
||||||
|
/* Hide button in full screen mode */
|
||||||
|
.vjs--full-screen-enabled .vjs-button-fullwindow {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.vjs-icon-fullwindow-exit, .video-js.vjs-fullwindow .vjs-fullwindow-control .vjs-icon-placeholder {
|
.vjs-icon-fullwindow-exit, .video-js.vjs-fullwindow .vjs-fullwindow-control .vjs-icon-placeholder {
|
||||||
font-family: VideoJS;
|
font-family: VideoJS;
|
||||||
|
@ -643,6 +647,48 @@ body.vjs-full-window {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-value {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-value span {
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-value:hover + .vjs-quality-level-menu {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-menu {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 30px;
|
||||||
|
left: -33px;
|
||||||
|
z-index: 5;
|
||||||
|
background-color: #151b17;
|
||||||
|
width: 100px;
|
||||||
|
max-height: 225px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-menu:hover {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-quality-level-menu .vjs-menu-item {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quality-selected {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
color: var(--text-with-main-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.quality-selected:hover {
|
||||||
|
background-color: var(--primary-color-hover) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.vjs-menu .vjs-menu-content {
|
.vjs-menu .vjs-menu-content {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
@ -1064,6 +1110,10 @@ body.vjs-full-window {
|
||||||
margin-left: -1px;
|
margin-left: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.video-js .vjs-volume-tooltip {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.video-js .vjs-volume-panel {
|
.video-js .vjs-volume-panel {
|
||||||
transition: width 1s;
|
transition: width 1s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default Vue.extend({
|
||||||
{
|
{
|
||||||
icon: 'question-circle',
|
icon: 'question-circle',
|
||||||
title: this.$t('About.Help'),
|
title: this.$t('About.Help'),
|
||||||
content: `<a href="https://github.com/FreeTubeApp/FreeTube/wiki">${this.$t('About.FreeTube Wiki')}</a> / <a href="https://github.com/FreeTubeApp/FreeTube/wiki/F.A.Q.">${this.$t('About.FAQ')}</a>`
|
content: `<a href="https://docs.freetubeapp.io/">${this.$t('About.FreeTube Wiki')}</a> / <a href="https://docs.freetubeapp.io/faq/">${this.$t('About.FAQ')}</a>`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'exclamation-circle',
|
icon: 'exclamation-circle',
|
||||||
|
@ -44,7 +44,7 @@ export default Vue.extend({
|
||||||
{
|
{
|
||||||
icon: 'newspaper',
|
icon: 'newspaper',
|
||||||
title: this.$t('About.Blog'),
|
title: this.$t('About.Blog'),
|
||||||
content: '<a href="https://freetube.writeas.com/">https://freetube.writeas.com/</a>'
|
content: '<a href="https://blog.freetubeapp.io">https://blog.freetubeapp.io</a>'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'envelope',
|
icon: 'envelope',
|
||||||
|
@ -69,7 +69,7 @@ export default Vue.extend({
|
||||||
{
|
{
|
||||||
icon: 'users',
|
icon: 'users',
|
||||||
title: this.$t('About.Credits'),
|
title: this.$t('About.Credits'),
|
||||||
content: `${this.$t('About.FreeTube is made possible by')} <a href="https://github.com/FreeTubeApp/FreeTube/wiki/Credits">${this.$t('About.these people and projects')}</a>`
|
content: `${this.$t('About.FreeTube is made possible by')} <a href="https://docs.freetubeapp.io/credits/">${this.$t('About.these people and projects')}</a>`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'heart',
|
icon: 'heart',
|
||||||
|
|
|
@ -257,7 +257,7 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
this.thumbnailUrl = response.authorThumbnails[2].url
|
this.thumbnailUrl = response.authorThumbnails[2].url
|
||||||
this.channelDescription = autolinker.link(response.description)
|
this.channelDescription = autolinker.link(response.description)
|
||||||
this.relatedChannels = response.relatedChannels
|
this.relatedChannels = response.relatedChannels.items
|
||||||
|
|
||||||
if (response.authorBanners !== null) {
|
if (response.authorBanners !== null) {
|
||||||
const bannerUrl = response.authorBanners[response.authorBanners.length - 1].url
|
const bannerUrl = response.authorBanners[response.authorBanners.length - 1].url
|
||||||
|
|
|
@ -70,6 +70,7 @@
|
||||||
</div>
|
</div>
|
||||||
<ft-input
|
<ft-input
|
||||||
:placeholder="$t('Channel.Search Channel')"
|
:placeholder="$t('Channel.Search Channel')"
|
||||||
|
:select-on-focus="true"
|
||||||
class="channelSearch"
|
class="channelSearch"
|
||||||
@click="newSearch"
|
@click="newSearch"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -7,7 +7,7 @@ import FtListVideo from '../../components/ft-list-video/ft-list-video.vue'
|
||||||
import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue'
|
import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'Search',
|
name: 'Playlist',
|
||||||
components: {
|
components: {
|
||||||
'ft-loader': FtLoader,
|
'ft-loader': FtLoader,
|
||||||
'ft-card': FtCard,
|
'ft-card': FtCard,
|
||||||
|
@ -40,37 +40,25 @@ export default Vue.extend({
|
||||||
watch: {
|
watch: {
|
||||||
$route () {
|
$route () {
|
||||||
// react to route changes...
|
// react to route changes...
|
||||||
const payload = {
|
this.getPlaylist()
|
||||||
query: this.$route.params.query,
|
|
||||||
options: {},
|
|
||||||
nextPage: false
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof (this.sessionSearchHistory[this.query]) !== 'undefined' && this.query !== this.$route.params.query) {
|
|
||||||
this.isLoading = true
|
|
||||||
this.shownResults = []
|
|
||||||
// Replacing the data right away causes a strange error where the data
|
|
||||||
// Shown is mixed from 2 different search results. So we'll wait a moment
|
|
||||||
// Before showing the results.
|
|
||||||
setTimeout(this.replaceShownResults, 100, this.sessionSearchHistory[this.query])
|
|
||||||
} else {
|
|
||||||
this.performSearch(payload)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
this.playlistId = this.$route.params.id
|
this.getPlaylist()
|
||||||
|
|
||||||
switch (this.backendPreference) {
|
|
||||||
case 'local':
|
|
||||||
this.getPlaylistLocal()
|
|
||||||
break
|
|
||||||
case 'invidious':
|
|
||||||
this.getPlaylistInvidious()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getPlaylist: function () {
|
||||||
|
this.playlistId = this.$route.params.id
|
||||||
|
|
||||||
|
switch (this.backendPreference) {
|
||||||
|
case 'local':
|
||||||
|
this.getPlaylistLocal()
|
||||||
|
break
|
||||||
|
case 'invidious':
|
||||||
|
this.getPlaylistInvidious()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
getPlaylistLocal: function () {
|
getPlaylistLocal: function () {
|
||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
|
|
||||||
|
|
|
@ -136,17 +136,17 @@ export default Vue.extend({
|
||||||
return null
|
return null
|
||||||
})
|
})
|
||||||
|
|
||||||
const returnDataInvidious = []
|
const dataToShow = []
|
||||||
returnData.forEach((video) => {
|
returnData.forEach((video) => {
|
||||||
if (video.type === 'video') {
|
if (video.type === 'video') {
|
||||||
const authId = video.author.channelID
|
const authId = video.author.channelID
|
||||||
const publishDate = video.uploadedAt
|
const publishDate = video.uploadedAt
|
||||||
let videoDuration = video.duration
|
let videoDuration = video.duration
|
||||||
const videoId = video.id
|
const videoId = video.id
|
||||||
if (video.duration !== null && video.duration !== '') {
|
if (videoDuration !== null && videoDuration !== '' && videoDuration !== 'LIVE') {
|
||||||
videoDuration = ytTrendScraper.calculate_length_in_seconds(video.duration)
|
videoDuration = ytTrendScraper.calculate_length_in_seconds(video.duration)
|
||||||
}
|
}
|
||||||
returnDataInvidious.push(
|
dataToShow.push(
|
||||||
{
|
{
|
||||||
videoId: videoId,
|
videoId: videoId,
|
||||||
title: video.title,
|
title: video.title,
|
||||||
|
@ -160,22 +160,22 @@ export default Vue.extend({
|
||||||
published: publishDate,
|
published: publishDate,
|
||||||
publishedText: publishDate,
|
publishedText: publishDate,
|
||||||
lengthSeconds: videoDuration,
|
lengthSeconds: videoDuration,
|
||||||
liveNow: video.isLive,
|
liveNow: video.isLive || videoDuration === 'LIVE',
|
||||||
paid: false,
|
paid: false,
|
||||||
premium: false,
|
premium: false,
|
||||||
isUpcoming: false,
|
isUpcoming: false,
|
||||||
timeText: video.duration
|
timeText: videoDuration
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
returnDataInvidious.push(video)
|
dataToShow.push(video)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (payload.nextPage) {
|
if (payload.nextPage) {
|
||||||
this.shownResults = this.shownResults.concat(returnDataInvidious)
|
this.shownResults = this.shownResults.concat(dataToShow)
|
||||||
} else {
|
} else {
|
||||||
this.shownResults = returnDataInvidious
|
this.shownResults = dataToShow
|
||||||
}
|
}
|
||||||
|
|
||||||
this.nextPageRef = result.continuation
|
this.nextPageRef = result.continuation
|
||||||
|
|
|
@ -9,6 +9,7 @@ import PrivacySettings from '../../components/privacy-settings/privacy-settings.
|
||||||
import DataSettings from '../../components/data-settings/data-settings.vue'
|
import DataSettings from '../../components/data-settings/data-settings.vue'
|
||||||
import DistractionSettings from '../../components/distraction-settings/distraction-settings.vue'
|
import DistractionSettings from '../../components/distraction-settings/distraction-settings.vue'
|
||||||
import ProxySettings from '../../components/proxy-settings/proxy-settings.vue'
|
import ProxySettings from '../../components/proxy-settings/proxy-settings.vue'
|
||||||
|
import SponsorBlockSettings from '../../components/sponsor-block-settings/sponsor-block-settings.vue'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'Settings',
|
name: 'Settings',
|
||||||
|
@ -22,6 +23,7 @@ export default Vue.extend({
|
||||||
'privacy-settings': PrivacySettings,
|
'privacy-settings': PrivacySettings,
|
||||||
'data-settings': DataSettings,
|
'data-settings': DataSettings,
|
||||||
'distraction-settings': DistractionSettings,
|
'distraction-settings': DistractionSettings,
|
||||||
'proxy-settings': ProxySettings
|
'proxy-settings': ProxySettings,
|
||||||
|
'sponsor-block-settings': SponsorBlockSettings
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<privacy-settings />
|
<privacy-settings />
|
||||||
<data-settings />
|
<data-settings />
|
||||||
<proxy-settings />
|
<proxy-settings />
|
||||||
|
<sponsor-block-settings />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import { mapActions } from 'vuex'
|
import { mapActions } from 'vuex'
|
||||||
import xml2vtt from 'yt-xml2vtt'
|
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import ytDashGen from 'yt-dash-manifest-generator'
|
import ytDashGen from 'yt-dash-manifest-generator'
|
||||||
|
@ -33,6 +32,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
beforeRouteLeave: function (to, from, next) {
|
beforeRouteLeave: function (to, from, next) {
|
||||||
this.handleRouteChange()
|
this.handleRouteChange()
|
||||||
|
window.removeEventListener('beforeunload', this.handleWatchProgress)
|
||||||
next()
|
next()
|
||||||
},
|
},
|
||||||
data: function() {
|
data: function() {
|
||||||
|
@ -69,7 +69,8 @@ export default Vue.extend({
|
||||||
activeSourceList: [],
|
activeSourceList: [],
|
||||||
videoSourceList: [],
|
videoSourceList: [],
|
||||||
audioSourceList: [],
|
audioSourceList: [],
|
||||||
captionSourceList: [],
|
adaptiveFormats: [],
|
||||||
|
captionHybridList: [], // [] -> Promise[] -> string[] (URIs)
|
||||||
recommendedVideos: [],
|
recommendedVideos: [],
|
||||||
downloadLinks: [],
|
downloadLinks: [],
|
||||||
watchingPlaylist: false,
|
watchingPlaylist: false,
|
||||||
|
@ -91,6 +92,9 @@ export default Vue.extend({
|
||||||
rememberHistory: function () {
|
rememberHistory: function () {
|
||||||
return this.$store.getters.getRememberHistory
|
return this.$store.getters.getRememberHistory
|
||||||
},
|
},
|
||||||
|
removeVideoMetaFiles: function () {
|
||||||
|
return this.$store.getters.getRemoveVideoMetaFiles
|
||||||
|
},
|
||||||
saveWatchedProgress: function () {
|
saveWatchedProgress: function () {
|
||||||
return this.$store.getters.getSaveWatchedProgress
|
return this.$store.getters.getSaveWatchedProgress
|
||||||
},
|
},
|
||||||
|
@ -153,7 +157,7 @@ export default Vue.extend({
|
||||||
this.firstLoad = true
|
this.firstLoad = true
|
||||||
this.activeFormat = this.defaultVideoFormat
|
this.activeFormat = this.defaultVideoFormat
|
||||||
this.videoStoryboardSrc = ''
|
this.videoStoryboardSrc = ''
|
||||||
this.captionSourceList = []
|
this.captionHybridList = []
|
||||||
this.downloadLinks = []
|
this.downloadLinks = []
|
||||||
|
|
||||||
this.checkIfPlaylist()
|
this.checkIfPlaylist()
|
||||||
|
@ -193,6 +197,8 @@ export default Vue.extend({
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window.addEventListener('beforeunload', this.handleWatchProgress)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changeTimestamp: function(timestamp) {
|
changeTimestamp: function(timestamp) {
|
||||||
|
@ -290,17 +296,6 @@ export default Vue.extend({
|
||||||
this.isLiveContent = result.player_response.videoDetails.isLiveContent
|
this.isLiveContent = result.player_response.videoDetails.isLiveContent
|
||||||
this.isUpcoming = result.player_response.videoDetails.isUpcoming ? result.player_response.videoDetails.isUpcoming : false
|
this.isUpcoming = result.player_response.videoDetails.isUpcoming ? result.player_response.videoDetails.isUpcoming : false
|
||||||
|
|
||||||
if (!this.isLive && !this.isUpcoming) {
|
|
||||||
const captionTracks =
|
|
||||||
result.player_response.captions &&
|
|
||||||
result.player_response.captions.playerCaptionsTracklistRenderer
|
|
||||||
.captionTracks
|
|
||||||
|
|
||||||
if (typeof captionTracks !== 'undefined') {
|
|
||||||
await this.createCaptionUrls(captionTracks)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.videoDislikeCount === null && !this.hideVideoLikesAndDislikes) {
|
if (this.videoDislikeCount === null && !this.hideVideoLikesAndDislikes) {
|
||||||
this.videoDislikeCount = 0
|
this.videoDislikeCount = 0
|
||||||
}
|
}
|
||||||
|
@ -317,7 +312,7 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isLive && !this.isUpcoming) {
|
if ((this.isLive || this.isLiveContent) && !this.isUpcoming) {
|
||||||
this.enableLegacyFormat()
|
this.enableLegacyFormat()
|
||||||
|
|
||||||
this.videoSourceList = result.formats.filter((format) => {
|
this.videoSourceList = result.formats.filter((format) => {
|
||||||
|
@ -365,8 +360,15 @@ export default Vue.extend({
|
||||||
} else {
|
} else {
|
||||||
this.videoLengthSeconds = parseInt(result.videoDetails.lengthSeconds)
|
this.videoLengthSeconds = parseInt(result.videoDetails.lengthSeconds)
|
||||||
if (result.player_response.streamingData !== undefined) {
|
if (result.player_response.streamingData !== undefined) {
|
||||||
this.videoSourceList = result.player_response.streamingData.formats.reverse()
|
if (typeof (result.player_response.streamingData.formats) !== 'undefined') {
|
||||||
this.downloadLinks = result.formats.map((format) => {
|
this.videoSourceList = result.player_response.streamingData.formats.reverse()
|
||||||
|
} else {
|
||||||
|
this.videoSourceList = result.player_response.streamingData.adaptiveFormats.reverse()
|
||||||
|
}
|
||||||
|
this.adaptiveFormats = this.videoSourceList
|
||||||
|
this.downloadLinks = result.formats.filter((format) => {
|
||||||
|
return typeof format.mimeType !== 'undefined'
|
||||||
|
}).map((format) => {
|
||||||
const qualityLabel = format.qualityLabel || format.bitrate
|
const qualityLabel = format.qualityLabel || format.bitrate
|
||||||
const itag = format.itag
|
const itag = format.itag
|
||||||
const fps = format.fps ? (format.fps + 'fps') : 'kbps'
|
const fps = format.fps ? (format.fps + 'fps') : 'kbps'
|
||||||
|
@ -387,16 +389,35 @@ export default Vue.extend({
|
||||||
|
|
||||||
return object
|
return object
|
||||||
})
|
})
|
||||||
let captionLinks = result.player_response.captions
|
|
||||||
if (typeof captionLinks !== 'undefined') {
|
const captionTracks =
|
||||||
captionLinks = captionLinks.playerCaptionsTracklistRenderer.captionTracks.map((caption) => {
|
result.player_response.captions &&
|
||||||
|
result.player_response.captions.playerCaptionsTracklistRenderer
|
||||||
|
.captionTracks
|
||||||
|
|
||||||
|
if (typeof captionTracks !== 'undefined') {
|
||||||
|
const locale = this.$i18n.locale
|
||||||
|
if (locale !== null) {
|
||||||
|
const standardLocale = locale.replace('_', '-')
|
||||||
|
const noLocaleCaption = !captionTracks.some(track =>
|
||||||
|
track.languageCode === standardLocale && track.kind !== 'asr'
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!standardLocale.startsWith('en') && noLocaleCaption) {
|
||||||
|
const baseUrl = result.player_response.captions.playerCaptionsRenderer.baseUrl
|
||||||
|
this.tryAddingTranslatedLocaleCaption(captionTracks, standardLocale, baseUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.captionHybridList = this.createCaptionPromiseList(captionTracks)
|
||||||
|
|
||||||
|
const captionLinks = captionTracks.map((caption) => {
|
||||||
const label = `${caption.name.simpleText} (${caption.languageCode}) - text/vtt`
|
const label = `${caption.name.simpleText} (${caption.languageCode}) - text/vtt`
|
||||||
const object = {
|
|
||||||
|
return {
|
||||||
url: caption.baseUrl,
|
url: caption.baseUrl,
|
||||||
label: label
|
label: label
|
||||||
}
|
}
|
||||||
|
|
||||||
return object
|
|
||||||
})
|
})
|
||||||
|
|
||||||
this.downloadLinks = this.downloadLinks.concat(captionLinks)
|
this.downloadLinks = this.downloadLinks.concat(captionLinks)
|
||||||
|
@ -415,7 +436,9 @@ export default Vue.extend({
|
||||||
if (this.proxyVideos) {
|
if (this.proxyVideos) {
|
||||||
this.dashSrc = await this.createInvidiousDashManifest()
|
this.dashSrc = await this.createInvidiousDashManifest()
|
||||||
} else {
|
} else {
|
||||||
this.dashSrc = await this.createLocalDashManifest(result.player_response.streamingData.adaptiveFormats)
|
const adaptiveFormats = result.player_response.streamingData.adaptiveFormats
|
||||||
|
this.dashSrc = await this.createLocalDashManifest(adaptiveFormats)
|
||||||
|
this.adaptiveFormats = adaptiveFormats
|
||||||
}
|
}
|
||||||
|
|
||||||
this.audioSourceList = result.player_response.streamingData.adaptiveFormats.filter((format) => {
|
this.audioSourceList = result.player_response.streamingData.adaptiveFormats.filter((format) => {
|
||||||
|
@ -524,8 +547,9 @@ export default Vue.extend({
|
||||||
this.videoPublished = result.published * 1000
|
this.videoPublished = result.published * 1000
|
||||||
this.videoDescriptionHtml = result.descriptionHtml
|
this.videoDescriptionHtml = result.descriptionHtml
|
||||||
this.recommendedVideos = result.recommendedVideos
|
this.recommendedVideos = result.recommendedVideos
|
||||||
|
this.adaptiveFormats = result.adaptiveFormats
|
||||||
this.isLive = result.liveNow
|
this.isLive = result.liveNow
|
||||||
this.captionSourceList = result.captions.map(caption => {
|
this.captionHybridList = result.captions.map(caption => {
|
||||||
caption.url = this.invidiousInstance + caption.url
|
caption.url = this.invidiousInstance + caption.url
|
||||||
caption.type = ''
|
caption.type = ''
|
||||||
caption.dataSource = 'invidious'
|
caption.dataSource = 'invidious'
|
||||||
|
@ -678,6 +702,21 @@ export default Vue.extend({
|
||||||
this.updateHistory(videoData)
|
this.updateHistory(videoData)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleWatchProgress: function () {
|
||||||
|
if (this.rememberHistory && !this.isUpcoming && !this.isLoading && !this.isLive) {
|
||||||
|
const player = this.$refs.videoPlayer.player
|
||||||
|
|
||||||
|
if (player !== null && this.saveWatchedProgress) {
|
||||||
|
const currentTime = this.getWatchedProgress()
|
||||||
|
const payload = {
|
||||||
|
videoId: this.videoId,
|
||||||
|
watchProgress: currentTime
|
||||||
|
}
|
||||||
|
this.updateWatchProgress(payload)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
checkIfWatched: function () {
|
checkIfWatched: function () {
|
||||||
const historyIndex = this.historyCache.findIndex((video) => {
|
const historyIndex = this.historyCache.findIndex((video) => {
|
||||||
return video.videoId === this.videoId
|
return video.videoId === this.videoId
|
||||||
|
@ -839,71 +878,63 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
handleVideoEnded: function () {
|
handleVideoEnded: function () {
|
||||||
const nextVideoInterval = this.defaultInterval
|
if (!this.watchingPlaylist && !this.playNextVideo) {
|
||||||
if (this.watchingPlaylist) {
|
return
|
||||||
this.playNextTimeout = setTimeout(() => {
|
}
|
||||||
const player = this.$refs.videoPlayer.player
|
|
||||||
if (player !== null && player.paused()) {
|
|
||||||
this.$refs.watchVideoPlaylist.playNextVideo()
|
|
||||||
}
|
|
||||||
}, nextVideoInterval * 1000)
|
|
||||||
|
|
||||||
this.showToast({
|
const nextVideoInterval = this.defaultInterval
|
||||||
message: this.$tc('Playing Next Video Interval', nextVideoInterval, { nextVideoInterval: nextVideoInterval }),
|
this.playNextTimeout = setTimeout(() => {
|
||||||
time: (nextVideoInterval * 1000) + 500,
|
const player = this.$refs.videoPlayer.player
|
||||||
action: () => {
|
if (player !== null && player.paused()) {
|
||||||
clearTimeout(this.playNextTimeout)
|
if (this.watchingPlaylist) {
|
||||||
this.showToast({
|
this.$refs.watchVideoPlaylist.playNextVideo()
|
||||||
message: this.$t('Canceled next video autoplay')
|
} else {
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else if (this.playNextVideo) {
|
|
||||||
this.playNextTimeout = setTimeout(() => {
|
|
||||||
const player = this.$refs.videoPlayer.player
|
|
||||||
if (player !== null && player.paused()) {
|
|
||||||
const nextVideoId = this.recommendedVideos[0].videoId
|
const nextVideoId = this.recommendedVideos[0].videoId
|
||||||
this.$router.push(
|
this.$router.push({
|
||||||
{
|
path: `/watch/${nextVideoId}`
|
||||||
path: `/watch/${nextVideoId}`
|
})
|
||||||
}
|
|
||||||
)
|
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Playing Next Video')
|
message: this.$t('Playing Next Video')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, 5000)
|
}
|
||||||
|
}, nextVideoInterval * 1000)
|
||||||
|
|
||||||
|
let countDownTimeLeftInSecond = nextVideoInterval
|
||||||
|
const showCountDownMessage = () => {
|
||||||
|
// Will not display "Playing next video in no time" as it's too late to cancel
|
||||||
|
// Also there is a separate message when playing next video
|
||||||
|
if (countDownTimeLeftInSecond <= 0) {
|
||||||
|
clearInterval(countDownIntervalId)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Playing next video in 5 seconds. Click to cancel'),
|
message: this.$tc('Playing Next Video Interval', countDownTimeLeftInSecond, { nextVideoInterval: countDownTimeLeftInSecond }),
|
||||||
time: 5500,
|
// To avoid message flashing
|
||||||
|
// `time` is manually tested to be 700
|
||||||
|
time: 700,
|
||||||
action: () => {
|
action: () => {
|
||||||
clearTimeout(this.playNextTimeout)
|
clearTimeout(this.playNextTimeout)
|
||||||
|
clearInterval(countDownIntervalId)
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Canceled next video autoplay')
|
message: this.$t('Canceled next video autoplay')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// At least this var should be updated AFTER showing the message
|
||||||
|
countDownTimeLeftInSecond = countDownTimeLeftInSecond - 1
|
||||||
}
|
}
|
||||||
|
// Execute once before scheduling it
|
||||||
|
showCountDownMessage()
|
||||||
|
const countDownIntervalId = setInterval(showCountDownMessage, 1000)
|
||||||
},
|
},
|
||||||
|
|
||||||
handleRouteChange: function () {
|
handleRouteChange: function () {
|
||||||
clearTimeout(this.playNextTimeout)
|
clearTimeout(this.playNextTimeout)
|
||||||
|
|
||||||
if (this.rememberHistory && !this.isUpcoming && !this.isLoading && !this.isLive) {
|
this.handleWatchProgress()
|
||||||
const player = this.$refs.videoPlayer.player
|
|
||||||
|
|
||||||
if (player !== null && this.saveWatchedProgress) {
|
|
||||||
const currentTime = this.getWatchedProgress()
|
|
||||||
const payload = {
|
|
||||||
videoId: this.videoId,
|
|
||||||
watchProgress: currentTime
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('update watch progress')
|
|
||||||
this.updateWatchProgress(payload)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.isUpcoming && !this.isLoading) {
|
if (!this.isUpcoming && !this.isLoading) {
|
||||||
const player = this.$refs.videoPlayer.player
|
const player = this.$refs.videoPlayer.player
|
||||||
|
@ -928,6 +959,31 @@ export default Vue.extend({
|
||||||
}, 200)
|
}, 200)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.removeVideoMetaFiles) {
|
||||||
|
const userData = remote.app.getPath('userData')
|
||||||
|
if (this.isDev) {
|
||||||
|
const dashFileLocation = `dashFiles/${this.videoId}.xml`
|
||||||
|
const vttFileLocation = `storyboards/${this.videoId}.vtt`
|
||||||
|
// only delete the file it actually exists
|
||||||
|
if (fs.existsSync('dashFiles/') && fs.existsSync(dashFileLocation)) {
|
||||||
|
fs.rmSync(dashFileLocation)
|
||||||
|
}
|
||||||
|
if (fs.existsSync('storyboards/') && fs.existsSync(vttFileLocation)) {
|
||||||
|
fs.rmSync(vttFileLocation)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const dashFileLocation = `${userData}/dashFiles/${this.videoId}.xml`
|
||||||
|
const vttFileLocation = `${userData}/storyboards/${this.videoId}.vtt`
|
||||||
|
|
||||||
|
if (fs.existsSync(`${userData}/dashFiles/`) && fs.existsSync(dashFileLocation)) {
|
||||||
|
fs.rmSync(dashFileLocation)
|
||||||
|
}
|
||||||
|
if (fs.existsSync(`${userData}/storyboards/`) && fs.existsSync(vttFileLocation)) {
|
||||||
|
fs.rmSync(vttFileLocation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
handleVideoError: function (error) {
|
handleVideoError: function (error) {
|
||||||
|
@ -1047,29 +1103,80 @@ export default Vue.extend({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
createCaptionUrls: function (captionTracks) {
|
tryAddingTranslatedLocaleCaption: function (captionTracks, locale, baseUrl) {
|
||||||
this.captionSourceList = captionTracks.map(caption => {
|
const enCaptionIdx = captionTracks.findIndex(track =>
|
||||||
|
track.languageCode === 'en' && track.kind !== 'asr'
|
||||||
|
)
|
||||||
|
|
||||||
|
const enCaptionExists = enCaptionIdx !== -1
|
||||||
|
const asrEnabled = captionTracks.some(track => track.kind === 'asr')
|
||||||
|
|
||||||
|
if (enCaptionExists || asrEnabled) {
|
||||||
|
let label
|
||||||
|
let url
|
||||||
|
|
||||||
|
if (this.$te('Video.translated from English') && this.$t('Video.translated from English') !== '') {
|
||||||
|
label = `${this.$t('Locale Name')} (${this.$t('Video.translated from English')})`
|
||||||
|
} else {
|
||||||
|
label = `${this.$t('Locale Name')} (translated from English)`
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enCaptionExists) {
|
||||||
|
url = new URL(captionTracks[enCaptionIdx].baseUrl)
|
||||||
|
} else {
|
||||||
|
url = new URL(baseUrl)
|
||||||
|
url.searchParams.set('lang', 'en')
|
||||||
|
url.searchParams.set('kind', 'asr')
|
||||||
|
}
|
||||||
|
|
||||||
|
url.searchParams.set('tlang', locale)
|
||||||
|
captionTracks.unshift({
|
||||||
|
baseUrl: url.toString(),
|
||||||
|
name: { simpleText: label },
|
||||||
|
languageCode: locale
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
createCaptionPromiseList: function (captionTracks) {
|
||||||
|
return captionTracks.map(caption => new Promise((resolve, reject) => {
|
||||||
caption.type = 'text/vtt'
|
caption.type = 'text/vtt'
|
||||||
caption.charset = 'charset=utf-8'
|
caption.charset = 'charset=utf-8'
|
||||||
caption.dataSource = 'local'
|
caption.dataSource = 'local'
|
||||||
|
|
||||||
$.get(caption.baseUrl, response => {
|
const url = new URL(caption.baseUrl)
|
||||||
xml2vtt
|
url.searchParams.set('fmt', 'vtt')
|
||||||
.Parse(new XMLSerializer().serializeToString(response))
|
|
||||||
.then(vtt => {
|
$.get(url.toString(), response => {
|
||||||
caption.baseUrl = `data:${caption.type};${caption.charset},${vtt}`
|
// The character '#' needs to be percent-encoded in a (data) URI
|
||||||
})
|
// because it signals an identifier, which means anything after it
|
||||||
.catch(err =>
|
// is automatically removed when the URI is used as a source
|
||||||
console.log(`Error while converting XML to VTT : ${err}`)
|
let vtt = response.replace(/#/g, '%23')
|
||||||
)
|
|
||||||
|
// A lot of videos have messed up caption positions that need to be removed
|
||||||
|
// This can be either because this format isn't really used by YouTube
|
||||||
|
// or because it's expected for the player to be able to somehow
|
||||||
|
// wrap the captions so that they won't step outside its boundaries
|
||||||
|
//
|
||||||
|
// Auto-generated captions are also all aligned to the start
|
||||||
|
// so those instances must also be removed
|
||||||
|
// In addition, all aligns seem to be fixed to "start" when they do pop up in normal captions
|
||||||
|
// If it's prominent enough that people start to notice, it can be removed then
|
||||||
|
if (caption.kind === 'asr') {
|
||||||
|
vtt = vtt.replace(/ align:start| position:\d{1,3}%/g, '')
|
||||||
|
} else {
|
||||||
|
vtt = vtt.replace(/ position:\d{1,3}%/g, '')
|
||||||
|
}
|
||||||
|
|
||||||
|
caption.baseUrl = `data:${caption.type};${caption.charset},${vtt}`
|
||||||
|
resolve(caption)
|
||||||
}).fail((xhr, textStatus, error) => {
|
}).fail((xhr, textStatus, error) => {
|
||||||
console.log(xhr)
|
console.log(xhr)
|
||||||
console.log(textStatus)
|
console.log(textStatus)
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
reject(error)
|
||||||
})
|
})
|
||||||
|
}))
|
||||||
return caption
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getWatchedProgress: function () {
|
getWatchedProgress: function () {
|
||||||
|
|
|
@ -18,15 +18,18 @@
|
||||||
ref="videoPlayer"
|
ref="videoPlayer"
|
||||||
:dash-src="dashSrc"
|
:dash-src="dashSrc"
|
||||||
:source-list="activeSourceList"
|
:source-list="activeSourceList"
|
||||||
:caption-list="captionSourceList"
|
:adaptive-formats="adaptiveFormats"
|
||||||
|
:caption-hybrid-list="captionHybridList"
|
||||||
:storyboard-src="videoStoryboardSrc"
|
:storyboard-src="videoStoryboardSrc"
|
||||||
:format="activeFormat"
|
:format="activeFormat"
|
||||||
:thumbnail="thumbnail"
|
:thumbnail="thumbnail"
|
||||||
|
:video-id="videoId"
|
||||||
class="videoPlayer"
|
class="videoPlayer"
|
||||||
:class="{ theatrePlayer: useTheatreMode }"
|
:class="{ theatrePlayer: useTheatreMode }"
|
||||||
@ready="checkIfWatched"
|
@ready="checkIfWatched"
|
||||||
@ended="handleVideoEnded"
|
@ended="handleVideoEnded"
|
||||||
@error="handleVideoError"
|
@error="handleVideoError"
|
||||||
|
@store-caption-list="captionHybridList = $event"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
v-if="!isLoading && isUpcoming"
|
v-if="!isLoading && isUpcoming"
|
||||||
|
|
|
@ -0,0 +1,195 @@
|
||||||
|
[{"id":4,"name":"Afganistan","alpha2":"af","alpha3":"afg"},
|
||||||
|
{"id":8,"name":"Albanía","alpha2":"al","alpha3":"alb"},
|
||||||
|
{"id":12,"name":"Alsír","alpha2":"dz","alpha3":"dza"},
|
||||||
|
{"id":20,"name":"Andorra","alpha2":"ad","alpha3":"and"},
|
||||||
|
{"id":24,"name":"Angóla","alpha2":"ao","alpha3":"ago"},
|
||||||
|
{"id":28,"name":"Antígva og Barbúda","alpha2":"ag","alpha3":"atg"},
|
||||||
|
{"id":32,"name":"Argentína","alpha2":"ar","alpha3":"arg"},
|
||||||
|
{"id":51,"name":"Armenía","alpha2":"am","alpha3":"arm"},
|
||||||
|
{"id":36,"name":"Ástralía","alpha2":"au","alpha3":"aus"},
|
||||||
|
{"id":40,"name":"Austurríki","alpha2":"at","alpha3":"aut"},
|
||||||
|
{"id":31,"name":"Aserbædsjan","alpha2":"az","alpha3":"aze"},
|
||||||
|
{"id":44,"name":"Bahamaeyjar","alpha2":"bs","alpha3":"bhs"},
|
||||||
|
{"id":48,"name":"Barein","alpha2":"bh","alpha3":"bhr"},
|
||||||
|
{"id":50,"name":"Bangladess","alpha2":"bd","alpha3":"bgd"},
|
||||||
|
{"id":52,"name":"Barbados","alpha2":"bb","alpha3":"brb"},
|
||||||
|
{"id":112,"name":"Belarús","alpha2":"by","alpha3":"blr"},
|
||||||
|
{"id":56,"name":"Belgía","alpha2":"be","alpha3":"bel"},
|
||||||
|
{"id":84,"name":"Belís","alpha2":"bz","alpha3":"blz"},
|
||||||
|
{"id":204,"name":"Benín","alpha2":"bj","alpha3":"ben"},
|
||||||
|
{"id":64,"name":"Bútan","alpha2":"bt","alpha3":"btn"},
|
||||||
|
{"id":68,"name":"Bólivía (Fjölþjóðaríkið)","alpha2":"bo","alpha3":"bol"},
|
||||||
|
{"id":70,"name":"Bosnía og Herzegóvína","alpha2":"ba","alpha3":"bih"},
|
||||||
|
{"id":72,"name":"Botsvana","alpha2":"bw","alpha3":"bwa"},
|
||||||
|
{"id":76,"name":"Brasilía","alpha2":"br","alpha3":"bra"},
|
||||||
|
{"id":96,"name":"Brunei-Daresalam","alpha2":"bn","alpha3":"brn"},
|
||||||
|
{"id":100,"name":"Búlgaría","alpha2":"bg","alpha3":"bgr"},
|
||||||
|
{"id":854,"name":"Burkína Fasó","alpha2":"bf","alpha3":"bfa"},
|
||||||
|
{"id":108,"name":"Búrundí","alpha2":"bi","alpha3":"bdi"},
|
||||||
|
{"id":132,"name":"Grænhöfðaeyjar","alpha2":"cv","alpha3":"cpv"},
|
||||||
|
{"id":116,"name":"Kambódía","alpha2":"kh","alpha3":"khm"},
|
||||||
|
{"id":120,"name":"Kamerún","alpha2":"cm","alpha3":"cmr"},
|
||||||
|
{"id":124,"name":"Kanada","alpha2":"ca","alpha3":"can"},
|
||||||
|
{"id":140,"name":"Miðafríkulýðveldið","alpha2":"cf","alpha3":"caf"},
|
||||||
|
{"id":148,"name":"Tsjad","alpha2":"td","alpha3":"tcd"},
|
||||||
|
{"id":152,"name":"Síle","alpha2":"cl","alpha3":"chl"},
|
||||||
|
{"id":156,"name":"Kína","alpha2":"cn","alpha3":"chn"},
|
||||||
|
{"id":170,"name":"Kólumbía","alpha2":"co","alpha3":"col"},
|
||||||
|
{"id":174,"name":"Kómorróeyjar","alpha2":"km","alpha3":"com"},
|
||||||
|
{"id":178,"name":"Kongó","alpha2":"cg","alpha3":"cog"},
|
||||||
|
{"id":180,"name":"Kongó, Lýðstjórnarlýðveldið","alpha2":"cd","alpha3":"cod"},
|
||||||
|
{"id":188,"name":"Kosta Ríka","alpha2":"cr","alpha3":"cri"},
|
||||||
|
{"id":384,"name":"Fílabeinsströndin","alpha2":"ci","alpha3":"civ"},
|
||||||
|
{"id":191,"name":"Króatía","alpha2":"hr","alpha3":"hrv"},
|
||||||
|
{"id":192,"name":"Kúba","alpha2":"cu","alpha3":"cub"},
|
||||||
|
{"id":196,"name":"Kýpur","alpha2":"cy","alpha3":"cyp"},
|
||||||
|
{"id":203,"name":"Tékkland","alpha2":"cz","alpha3":"cze"},
|
||||||
|
{"id":208,"name":"Danmörk","alpha2":"dk","alpha3":"dnk"},
|
||||||
|
{"id":262,"name":"Djibútí","alpha2":"dj","alpha3":"dji"},
|
||||||
|
{"id":212,"name":"Dóminíka","alpha2":"dm","alpha3":"dma"},
|
||||||
|
{"id":214,"name":"Dóminíkanska lýðveldið","alpha2":"do","alpha3":"dom"},
|
||||||
|
{"id":218,"name":"Ekvador","alpha2":"ec","alpha3":"ecu"},
|
||||||
|
{"id":818,"name":"Egyptaland","alpha2":"eg","alpha3":"egy"},
|
||||||
|
{"id":222,"name":"El Salvador","alpha2":"sv","alpha3":"slv"},
|
||||||
|
{"id":226,"name":"Miðbaugs-Gínea","alpha2":"gq","alpha3":"gnq"},
|
||||||
|
{"id":232,"name":"Erítrea","alpha2":"er","alpha3":"eri"},
|
||||||
|
{"id":233,"name":"Eistland","alpha2":"ee","alpha3":"est"},
|
||||||
|
{"id":748,"name":"Esvatíní","alpha2":"sz","alpha3":"swz"},
|
||||||
|
{"id":231,"name":"Eþíópía","alpha2":"et","alpha3":"eth"},
|
||||||
|
{"id":242,"name":"Fídjíeyjar","alpha2":"fj","alpha3":"fji"},
|
||||||
|
{"id":246,"name":"Finnland","alpha2":"fi","alpha3":"fin"},
|
||||||
|
{"id":250,"name":"Frakkland","alpha2":"fr","alpha3":"fra"},
|
||||||
|
{"id":266,"name":"Gabon","alpha2":"ga","alpha3":"gab"},
|
||||||
|
{"id":270,"name":"Gambía","alpha2":"gm","alpha3":"gmb"},
|
||||||
|
{"id":268,"name":"Georgía","alpha2":"ge","alpha3":"geo"},
|
||||||
|
{"id":276,"name":"Þýskaland","alpha2":"de","alpha3":"deu"},
|
||||||
|
{"id":288,"name":"Gana","alpha2":"gh","alpha3":"gha"},
|
||||||
|
{"id":300,"name":"Grikkland","alpha2":"gr","alpha3":"grc"},
|
||||||
|
{"id":308,"name":"Grenada","alpha2":"gd","alpha3":"grd"},
|
||||||
|
{"id":320,"name":"Gvatemala","alpha2":"gt","alpha3":"gtm"},
|
||||||
|
{"id":324,"name":"Gínea","alpha2":"gn","alpha3":"gin"},
|
||||||
|
{"id":624,"name":"Gínea-Bissá","alpha2":"gw","alpha3":"gnb"},
|
||||||
|
{"id":328,"name":"Gvæjana","alpha2":"gy","alpha3":"guy"},
|
||||||
|
{"id":332,"name":"Haítí","alpha2":"ht","alpha3":"hti"},
|
||||||
|
{"id":340,"name":"Hondúras","alpha2":"hn","alpha3":"hnd"},
|
||||||
|
{"id":344,"name":"Hong Kong","alpha2":"hk","alpha3":"hkg"},
|
||||||
|
{"id":348,"name":"Ungverjaland","alpha2":"hu","alpha3":"hun"},
|
||||||
|
{"id":352,"name":"Ísland","alpha2":"is","alpha3":"isl"},
|
||||||
|
{"id":356,"name":"Indland","alpha2":"in","alpha3":"ind"},
|
||||||
|
{"id":360,"name":"Indónesía","alpha2":"id","alpha3":"idn"},
|
||||||
|
{"id":364,"name":"Íran (Íslamska lýðveldið)","alpha2":"ir","alpha3":"irn"},
|
||||||
|
{"id":368,"name":"Írak","alpha2":"iq","alpha3":"irq"},
|
||||||
|
{"id":372,"name":"Írland","alpha2":"ie","alpha3":"irl"},
|
||||||
|
{"id":376,"name":"Ísrael","alpha2":"il","alpha3":"isr"},
|
||||||
|
{"id":380,"name":"Ítala","alpha2":"it","alpha3":"ita"},
|
||||||
|
{"id":388,"name":"Jamaíka","alpha2":"jm","alpha3":"jam"},
|
||||||
|
{"id":392,"name":"Japan","alpha2":"jp","alpha3":"jpn"},
|
||||||
|
{"id":400,"name":"Jórdanía","alpha2":"jo","alpha3":"jor"},
|
||||||
|
{"id":398,"name":"Kasakstan","alpha2":"kz","alpha3":"kaz"},
|
||||||
|
{"id":404,"name":"Kenýa","alpha2":"ke","alpha3":"ken"},
|
||||||
|
{"id":296,"name":"Kíríbatí","alpha2":"ki","alpha3":"kir"},
|
||||||
|
{"id":408,"name":"Kórea (Alþýðulýðveldið, Norður)","alpha2":"kp","alpha3":"prk"},
|
||||||
|
{"id":410,"name":"Kórea (Lýðveldið, Suður)","alpha2":"kr","alpha3":"kor"},
|
||||||
|
{"id":414,"name":"Kúveit","alpha2":"kw","alpha3":"kwt"},
|
||||||
|
{"id":417,"name":"Kirgistan","alpha2":"kg","alpha3":"kgz"},
|
||||||
|
{"id":418,"name":"Laos (Alþýðulýðveldið)","alpha2":"la","alpha3":"lao"},
|
||||||
|
{"id":428,"name":"Lettland","alpha2":"lv","alpha3":"lva"},
|
||||||
|
{"id":422,"name":"Líbanon","alpha2":"lb","alpha3":"lbn"},
|
||||||
|
{"id":426,"name":"Lesótó","alpha2":"ls","alpha3":"lso"},
|
||||||
|
{"id":430,"name":"Líbería","alpha2":"lr","alpha3":"lbr"},
|
||||||
|
{"id":434,"name":"Líbía","alpha2":"ly","alpha3":"lby"},
|
||||||
|
{"id":438,"name":"Liechtenstein","alpha2":"li","alpha3":"lie"},
|
||||||
|
{"id":440,"name":"Litháen","alpha2":"lt","alpha3":"ltu"},
|
||||||
|
{"id":442,"name":"Luxembúrg","alpha2":"lu","alpha3":"lux"},
|
||||||
|
{"id":450,"name":"Madagaskar","alpha2":"mg","alpha3":"mdg"},
|
||||||
|
{"id":454,"name":"Malaví","alpha2":"mw","alpha3":"mwi"},
|
||||||
|
{"id":458,"name":"Malasía","alpha2":"my","alpha3":"mys"},
|
||||||
|
{"id":462,"name":"Maldíveyjar","alpha2":"mv","alpha3":"mdv"},
|
||||||
|
{"id":466,"name":"Malí","alpha2":"ml","alpha3":"mli"},
|
||||||
|
{"id":470,"name":"Malta","alpha2":"mt","alpha3":"mlt"},
|
||||||
|
{"id":584,"name":"Marshalleyjar","alpha2":"mh","alpha3":"mhl"},
|
||||||
|
{"id":478,"name":"Máritanía","alpha2":"mr","alpha3":"mrt"},
|
||||||
|
{"id":480,"name":"Máritíus","alpha2":"mu","alpha3":"mus"},
|
||||||
|
{"id":484,"name":"Mexíkó","alpha2":"mx","alpha3":"mex"},
|
||||||
|
{"id":583,"name":"Míkrónesía (Sambandsríkið)","alpha2":"fm","alpha3":"fsm"},
|
||||||
|
{"id":498,"name":"Moldóvía, Lýðveldið","alpha2":"md","alpha3":"mda"},
|
||||||
|
{"id":492,"name":"Mónakó","alpha2":"mc","alpha3":"mco"},
|
||||||
|
{"id":496,"name":"Mongólía","alpha2":"mn","alpha3":"mng"},
|
||||||
|
{"id":499,"name":"Svartfjallaland","alpha2":"me","alpha3":"mne"},
|
||||||
|
{"id":504,"name":"Marokkó","alpha2":"ma","alpha3":"mar"},
|
||||||
|
{"id":508,"name":"Mósambík","alpha2":"mz","alpha3":"moz"},
|
||||||
|
{"id":104,"name":"Mjanmar","alpha2":"mm","alpha3":"mmr"},
|
||||||
|
{"id":516,"name":"Namibía","alpha2":"na","alpha3":"nam"},
|
||||||
|
{"id":520,"name":"Nárú","alpha2":"nr","alpha3":"nru"},
|
||||||
|
{"id":524,"name":"Nepal","alpha2":"np","alpha3":"npl"},
|
||||||
|
{"id":528,"name":"Holland","alpha2":"nl","alpha3":"nld"},
|
||||||
|
{"id":554,"name":"Nýja-Sjáland","alpha2":"nz","alpha3":"nzl"},
|
||||||
|
{"id":558,"name":"Níkaragva","alpha2":"ni","alpha3":"nic"},
|
||||||
|
{"id":562,"name":"Níger","alpha2":"ne","alpha3":"ner"},
|
||||||
|
{"id":566,"name":"Nígería","alpha2":"ng","alpha3":"nga"},
|
||||||
|
{"id":807,"name":"Norður-Makedónía","alpha2":"mk","alpha3":"mkd"},
|
||||||
|
{"id":578,"name":"Noregur","alpha2":"no","alpha3":"nor"},
|
||||||
|
{"id":512,"name":"Óman","alpha2":"om","alpha3":"omn"},
|
||||||
|
{"id":586,"name":"Pakistan","alpha2":"pk","alpha3":"pak"},
|
||||||
|
{"id":585,"name":"Palá","alpha2":"pw","alpha3":"plw"},
|
||||||
|
{"id":591,"name":"Panama","alpha2":"pa","alpha3":"pan"},
|
||||||
|
{"id":598,"name":"Papúa Nýja-Gínea","alpha2":"pg","alpha3":"png"},
|
||||||
|
{"id":600,"name":"Paragvæ","alpha2":"py","alpha3":"pry"},
|
||||||
|
{"id":604,"name":"Perú","alpha2":"pe","alpha3":"per"},
|
||||||
|
{"id":608,"name":"Filippseyjar","alpha2":"ph","alpha3":"phl"},
|
||||||
|
{"id":616,"name":"Pólland","alpha2":"pl","alpha3":"pol"},
|
||||||
|
{"id":620,"name":"Portúgal","alpha2":"pt","alpha3":"prt"},
|
||||||
|
{"id":634,"name":"Katar","alpha2":"qa","alpha3":"qat"},
|
||||||
|
{"id":642,"name":"Rúmenía","alpha2":"ro","alpha3":"rou"},
|
||||||
|
{"id":643,"name":"Rússland, Sambandsríkið","alpha2":"ru","alpha3":"rus"},
|
||||||
|
{"id":646,"name":"Rúanda","alpha2":"rw","alpha3":"rwa"},
|
||||||
|
{"id":659,"name":"Sankti Kitts og Nevis","alpha2":"kn","alpha3":"kna"},
|
||||||
|
{"id":662,"name":"Sankti Lúsía","alpha2":"lc","alpha3":"lca"},
|
||||||
|
{"id":670,"name":"Sankti Vinsent og Grenadínur","alpha2":"vc","alpha3":"vct"},
|
||||||
|
{"id":882,"name":"Samóa","alpha2":"ws","alpha3":"wsm"},
|
||||||
|
{"id":674,"name":"San Marínó","alpha2":"sm","alpha3":"smr"},
|
||||||
|
{"id":678,"name":"Saó Tóme og Prinsípe","alpha2":"st","alpha3":"stp"},
|
||||||
|
{"id":682,"name":"Sádí-Arabía","alpha2":"sa","alpha3":"sau"},
|
||||||
|
{"id":686,"name":"Senegal","alpha2":"sn","alpha3":"sen"},
|
||||||
|
{"id":688,"name":"Serbía","alpha2":"rs","alpha3":"srb"},
|
||||||
|
{"id":690,"name":"Seychelles-eyjar","alpha2":"sc","alpha3":"syc"},
|
||||||
|
{"id":694,"name":"Síerra Leóne","alpha2":"sl","alpha3":"sle"},
|
||||||
|
{"id":702,"name":"Singapúr","alpha2":"sg","alpha3":"sgp"},
|
||||||
|
{"id":703,"name":"Slóvakía","alpha2":"sk","alpha3":"svk"},
|
||||||
|
{"id":705,"name":"Slóvenía","alpha2":"si","alpha3":"svn"},
|
||||||
|
{"id":90,"name":"Salómonseyjar","alpha2":"sb","alpha3":"slb"},
|
||||||
|
{"id":706,"name":"Sómalía","alpha2":"so","alpha3":"som"},
|
||||||
|
{"id":710,"name":"Suður-Afríka","alpha2":"za","alpha3":"zaf"},
|
||||||
|
{"id":728,"name":"Suður-Súdan","alpha2":"ss","alpha3":"ssd"},
|
||||||
|
{"id":724,"name":"Spánn","alpha2":"es","alpha3":"esp"},
|
||||||
|
{"id":144,"name":"Srí Lanka","alpha2":"lk","alpha3":"lka"},
|
||||||
|
{"id":729,"name":"Súdan","alpha2":"sd","alpha3":"sdn"},
|
||||||
|
{"id":740,"name":"Súrínam","alpha2":"sr","alpha3":"sur"},
|
||||||
|
{"id":752,"name":"Svíþjóð","alpha2":"se","alpha3":"swe"},
|
||||||
|
{"id":756,"name":"Sviss","alpha2":"ch","alpha3":"che"},
|
||||||
|
{"id":760,"name":"Sýrland, Arabalýðveldið","alpha2":"sy","alpha3":"syr"},
|
||||||
|
{"id":762,"name":"Tadsíkistan","alpha2":"tj","alpha3":"tjk"},
|
||||||
|
{"id":834,"name":"Tansanía, Sambandslýðveldið","alpha2":"tz","alpha3":"tza"},
|
||||||
|
{"id":764,"name":"Tæland","alpha2":"th","alpha3":"tha"},
|
||||||
|
{"id":626,"name":"Tímor-Leste","alpha2":"tl","alpha3":"tls"},
|
||||||
|
{"id":768,"name":"Tógó","alpha2":"tg","alpha3":"tgo"},
|
||||||
|
{"id":776,"name":"Tonga","alpha2":"to","alpha3":"ton"},
|
||||||
|
{"id":780,"name":"Trínídad og Tóbagó","alpha2":"tt","alpha3":"tto"},
|
||||||
|
{"id":788,"name":"Túnis","alpha2":"tn","alpha3":"tun"},
|
||||||
|
{"id":792,"name":"Tyrkland","alpha2":"tr","alpha3":"tur"},
|
||||||
|
{"id":795,"name":"Túrkmenistan","alpha2":"tm","alpha3":"tkm"},
|
||||||
|
{"id":798,"name":"Túvalú","alpha2":"tv","alpha3":"tuv"},
|
||||||
|
{"id":800,"name":"Úganda","alpha2":"ug","alpha3":"uga"},
|
||||||
|
{"id":804,"name":"Úkraína","alpha2":"ua","alpha3":"ukr"},
|
||||||
|
{"id":784,"name":"Sameinuðu arabísku furstadæmin","alpha2":"ae","alpha3":"are"},
|
||||||
|
{"id":826,"name":"Bretland (Sameinaða konungsríkið Stóra-Bretland og Norður-Írland)","alpha2":"gb","alpha3":"gbr"},
|
||||||
|
{"id":840,"name":"Bandaríkin","alpha2":"us","alpha3":"usa"},
|
||||||
|
{"id":858,"name":"Úrúgvæ","alpha2":"uy","alpha3":"ury"},
|
||||||
|
{"id":860,"name":"Úsbekistan","alpha2":"uz","alpha3":"uzb"},
|
||||||
|
{"id":548,"name":"Vanúatú","alpha2":"vu","alpha3":"vut"},
|
||||||
|
{"id":862,"name":"Venesúela (Bólivarska lýðveldið)","alpha2":"ve","alpha3":"ven"},
|
||||||
|
{"id":704,"name":"Víetnam","alpha2":"vn","alpha3":"vnm"},
|
||||||
|
{"id":887,"name":"Jemen","alpha2":"ye","alpha3":"yem"},
|
||||||
|
{"id":894,"name":"Sambía","alpha2":"zm","alpha3":"zmb"},
|
||||||
|
{"id":716,"name":"Simbabve","alpha2":"zw","alpha3":"zwe"},
|
||||||
|
{"id": 158, "name":"Taiwan", "alpha2": "tw", "alpha3": "twn"}]
|
|
@ -18,7 +18,7 @@ Delete: 'حذف'
|
||||||
Select all: 'تحديد الكل'
|
Select all: 'تحديد الكل'
|
||||||
Reload: 'إعادة تحميل'
|
Reload: 'إعادة تحميل'
|
||||||
Force Reload: 'فرض إعادة التحميل'
|
Force Reload: 'فرض إعادة التحميل'
|
||||||
Toggle Developer Tools: 'تفعيل أدوات المطوّر'
|
Toggle Developer Tools: 'فتح أدوات المطوّر'
|
||||||
Actual size: 'الحجم الأصلي'
|
Actual size: 'الحجم الأصلي'
|
||||||
Zoom in: 'تكبير'
|
Zoom in: 'تكبير'
|
||||||
Zoom out: 'تصغير'
|
Zoom out: 'تصغير'
|
||||||
|
@ -64,6 +64,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'جاري إحضار النتائج. الرجاء الانتظار'
|
Fetching results. Please wait: 'جاري إحضار النتائج. الرجاء الانتظار'
|
||||||
Fetch more results: 'إحضار المزيد من النتائج'
|
Fetch more results: 'إحضار المزيد من النتائج'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: لم يتبقى المزيد من النتائج لهذا البحث
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'الاشتراكات'
|
Subscriptions: 'الاشتراكات'
|
||||||
|
@ -80,6 +81,11 @@ Most Popular: 'الأكثر شعبية'
|
||||||
Playlists: 'قوائم التشغيل'
|
Playlists: 'قوائم التشغيل'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'قوائم التشغيل الخاصة بك'
|
Your Playlists: 'قوائم التشغيل الخاصة بك'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ليس
|
||||||
|
لديك أي فيديو محتفظ عليه. إضغط على زر "إحفظ" في زاوية الفيديو لكي يحفظ هنا
|
||||||
|
Playlist Message: هذه الصفحة لا تظهر قائمات التشغيل بشكل كامل, وإنما تظهر فيديوات
|
||||||
|
إحتفضت عليها أو فضّلتها. عندما يكمل العمل بالكامل على هذه الصفحة, سترى كل فيديواتك
|
||||||
|
هنا تنتقل إلى قائمة تشغيل تسمى "المفضلة".
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'السجلّ'
|
History: 'السجلّ'
|
||||||
|
@ -115,6 +121,8 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
Check for Latest Blog Posts: تحقق من أحدث منشورات المدونة
|
Check for Latest Blog Posts: تحقق من أحدث منشورات المدونة
|
||||||
Check for Updates: تحقّق من وجود تحديثات
|
Check for Updates: تحقّق من وجود تحديثات
|
||||||
|
View all Invidious instance information: عرض جميع نماذج Invidious
|
||||||
|
System Default: افتراضي النظام
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'إعدادات السِمة'
|
Theme Settings: 'إعدادات السِمة'
|
||||||
Match Top Bar with Main Color: 'طابق الشريط العلوي مع اللون الأساسي'
|
Match Top Bar with Main Color: 'طابق الشريط العلوي مع اللون الأساسي'
|
||||||
|
@ -175,6 +183,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: الفاصل الزمني لتشغيل الفيديو التالي في قائمة التشغيل
|
||||||
|
Next Video Interval: الفاصل الزمني للفيديو التالي
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'إعدادات الخصوصية'
|
Privacy Settings: 'إعدادات الخصوصية'
|
||||||
Remember History: 'تذّكر سجلّ المشاهدة'
|
Remember History: 'تذّكر سجلّ المشاهدة'
|
||||||
|
@ -191,6 +201,7 @@ Settings:
|
||||||
أنت متأكد أنك تريد إزالة جميع الاشتراكات والملفات الشخصية؟ لا يمكن التراجع عن
|
أنت متأكد أنك تريد إزالة جميع الاشتراكات والملفات الشخصية؟ لا يمكن التراجع عن
|
||||||
هذا.
|
هذا.
|
||||||
Remove All Subscriptions / Profiles: إزالة جميع الاشتراكات \ الملفات الشخصية
|
Remove All Subscriptions / Profiles: إزالة جميع الاشتراكات \ الملفات الشخصية
|
||||||
|
Automatically Remove Video Meta Files: إزالة ملفات تعريف الفيديو تلقائيًا
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'إعدادات الاشتراك'
|
Subscription Settings: 'إعدادات الاشتراك'
|
||||||
Hide Videos on Watch: 'أخفِ الفيديوهات عند مشاهدتها'
|
Hide Videos on Watch: 'أخفِ الفيديوهات عند مشاهدتها'
|
||||||
|
@ -265,7 +276,7 @@ Settings:
|
||||||
Data Settings: إعدادات البيانات
|
Data Settings: إعدادات البيانات
|
||||||
One or more subscriptions were unable to be imported: تعذر استيراد واحد أو أكثر
|
One or more subscriptions were unable to be imported: تعذر استيراد واحد أو أكثر
|
||||||
من الاشتراكات
|
من الاشتراكات
|
||||||
Check for Legacy Subscriptions: تحقق من وجود اشتراك قديم
|
Check for Legacy Subscriptions: تحقق من وجود اشتراكات بالصيغة القديمة
|
||||||
Manage Subscriptions: إدارة الإشتراكات
|
Manage Subscriptions: إدارة الإشتراكات
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Hide Live Chat: اخفي الدردشة المباشرة
|
Hide Live Chat: اخفي الدردشة المباشرة
|
||||||
|
@ -273,10 +284,12 @@ Settings:
|
||||||
Hide Trending Videos: اخفي الفيديوهات الرائجة
|
Hide Trending Videos: اخفي الفيديوهات الرائجة
|
||||||
Hide Recommended Videos: اخفي الفيديوهات الموصّى بها
|
Hide Recommended Videos: اخفي الفيديوهات الموصّى بها
|
||||||
Hide Comment Likes: اخفي اعجابات التعليقات
|
Hide Comment Likes: اخفي اعجابات التعليقات
|
||||||
Hide Channel Subscribers: اخفي اشتراكات القنوات
|
Hide Channel Subscribers: اخف عدد اشتراكات القناة
|
||||||
Hide Video Views: اخفي عدد مشاهدات الفيديوهات
|
Hide Video Views: اخف عدد مشاهدات الفيديو
|
||||||
Hide Video Likes And Dislikes: إخفاء الإعجاب وعدم الإعجاب للفيديو
|
Hide Video Likes And Dislikes: إخفاء الإعجاب وعدم الإعجاب للفيديو
|
||||||
Distraction Free Settings: إعدادات عدم الإزعاج
|
Distraction Free Settings: إعدادات عدم الإزعاج
|
||||||
|
Hide Active Subscriptions: اخفي الإشتراكات الناشطة
|
||||||
|
Hide Playlists: إخفاء قوائم التشغيل
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: البرنامج
|
The app needs to restart for changes to take effect. Restart and apply change?: البرنامج
|
||||||
يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟
|
يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
|
@ -291,6 +304,10 @@ Settings:
|
||||||
Proxy Protocol: بروتوكول البروكسي
|
Proxy Protocol: بروتوكول البروكسي
|
||||||
Enable Tor / Proxy: تفعيل تور / البروكسي
|
Enable Tor / Proxy: تفعيل تور / البروكسي
|
||||||
Proxy Settings: خيارات البروكسي
|
Proxy Settings: خيارات البروكسي
|
||||||
|
Error getting network information. Is your proxy configured properly?: هنالك خطأ
|
||||||
|
في جلب معلومات الشبكة. هل ضبطت إعدادات وكيلك بصورة صحيحة؟
|
||||||
|
Clicking on Test Proxy will send a request to: النقر على اختبار البروكسي سيؤدي
|
||||||
|
إلى إرسال طلب إلى
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'حول'
|
About: 'حول'
|
||||||
|
@ -335,6 +352,17 @@ About:
|
||||||
View License: اعرض الرخصة
|
View License: اعرض الرخصة
|
||||||
Source code: الشفرة المصدرية
|
Source code: الشفرة المصدرية
|
||||||
Beta: تجريبي
|
Beta: تجريبي
|
||||||
|
these people and projects: هؤلاء الناس والمشاريع
|
||||||
|
FreeTube is made possible by: Freetube أصبح ممكنا بواسطة
|
||||||
|
Credits: الاعتمادات
|
||||||
|
room rules: قواعد الغرفة
|
||||||
|
Please read the: يرجى قراءة
|
||||||
|
Please check for duplicates before posting: يرجى التحقق من التكرارات قبل النشر
|
||||||
|
GitHub issues: مشاكل GitHub
|
||||||
|
FreeTube Wiki: ويكي Freetube
|
||||||
|
GitHub releases: إصدارات GitHub
|
||||||
|
Downloads / Changelog: التحميلات\التغييرات
|
||||||
|
Licensed under the AGPLv3: مرخّص تحت رخصة أفيرو جيبيإل النسخة الثالثة
|
||||||
Profile:
|
Profile:
|
||||||
All Channels: 'جميع القنوات'
|
All Channels: 'جميع القنوات'
|
||||||
Profile Manager: 'مدير الملف الشخصي'
|
Profile Manager: 'مدير الملف الشخصي'
|
||||||
|
@ -376,6 +404,7 @@ Profile:
|
||||||
$ selected: $ تم اختياره
|
$ selected: $ تم اختياره
|
||||||
Other Channels: قنوات أُخرى
|
Other Channels: قنوات أُخرى
|
||||||
Subscription List: قائمة الاشتراكات
|
Subscription List: قائمة الاشتراكات
|
||||||
|
Profile Filter: مرشح الملف الشخصي
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'مُشترِك'
|
Subscriber: 'مُشترِك'
|
||||||
Subscribers: 'مُشترِكين'
|
Subscribers: 'مُشترِكين'
|
||||||
|
@ -465,7 +494,7 @@ Video:
|
||||||
Year: 'سنة'
|
Year: 'سنة'
|
||||||
Years: 'سنوات'
|
Years: 'سنوات'
|
||||||
Ago: 'منذ'
|
Ago: 'منذ'
|
||||||
Upcoming: 'العرض الأول في'
|
Upcoming: 'يبدأ العرض'
|
||||||
Published on: 'نُشر في'
|
Published on: 'نُشر في'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'قبل $ %'
|
Publicationtemplate: 'قبل $ %'
|
||||||
|
@ -480,12 +509,12 @@ Video:
|
||||||
الصفحة للتحقق مرة أخرى
|
الصفحة للتحقق مرة أخرى
|
||||||
Audio:
|
Audio:
|
||||||
Best: الأفضل
|
Best: الأفضل
|
||||||
High: عالٍ
|
High: عال
|
||||||
Medium: متوسط
|
Medium: متوسط
|
||||||
Low: منخفض
|
Low: منخفض
|
||||||
audio only: صوت فقط
|
audio only: الصوت فقط
|
||||||
video only: فيديو فقط
|
video only: الفيديو فقط
|
||||||
Download Video: نزّل الفيديو
|
Download Video: تحميل الفيديو
|
||||||
Started streaming on: بدأ البث على
|
Started streaming on: بدأ البث على
|
||||||
Streamed on: تبث على
|
Streamed on: تبث على
|
||||||
Copy Invidious Channel Link: انسخ رابط قناة انفيديوس
|
Copy Invidious Channel Link: انسخ رابط قناة انفيديوس
|
||||||
|
@ -494,6 +523,8 @@ Video:
|
||||||
Open Channel in YouTube: افتح القناة على يوتيوب
|
Open Channel in YouTube: افتح القناة على يوتيوب
|
||||||
Video has been saved: تم حفظ الفيديو
|
Video has been saved: تم حفظ الفيديو
|
||||||
Save Video: احفظ الفيديو
|
Save Video: احفظ الفيديو
|
||||||
|
Video has been removed from your saved list: تمت إزالة الفيديو من قائمتك المحفوظة
|
||||||
|
translated from English: مترجمة من الإنجليزية
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -590,21 +621,44 @@ Version $ is now available! Click for more details: الإصدار $ متاح
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Thumbnail Preference: كلّ الصّور المصغّرة في FreeTube سيتمّ استبدالها بإطار من
|
Thumbnail Preference: كلّ الصّور المصغّرة في FreeTube سيتمّ استبدالها بإطار من
|
||||||
الفيديو بدل من الصّورة المصغّرة الافتراضيّة
|
الفيديو بدل من الصّورة المصغّرة الافتراضيّة.
|
||||||
Preferred API Backend: اختر الواجهة الخلفية التي يستخدمها FreeTube لجلب البيانات
|
Preferred API Backend: اختر الواجهة الخلفية التي يستخدمها FreeTube لجلب البيانات.
|
||||||
. الAPI المحلي هو مستخرج محلي . الAPI التابع لInvidious يتطلب التواصل مع خادم
|
الواجهة البرمجية المحلية للتطبيق هي مستخرج محلي. الواجهة البرمجية للتطبيق التابعة
|
||||||
شبكة Invidious .
|
لInvidious (بديل لموقع يوتيوب) يتطلب التواصل مع خادم شبكة Invidious.
|
||||||
Invidious Instance: واجهة Invidious البرمجية المستخدمة من قبل FreeTube. امسح الواجهة
|
Invidious Instance: واجهة Invidious البرمجية المستخدمة من قبل FreeTube. امسح الواجهة
|
||||||
البرمجية الحالية للاختيار من قائمة الواجهات
|
البرمجية الحالية للاختيار من قائمة الواجهات.
|
||||||
Fallback to Non-Preferred Backend on Failure: عند تواجد مشكلة مع الواجهة البرمجية
|
Fallback to Non-Preferred Backend on Failure: عند التفعيل اذا واجه الAPI المفضّل
|
||||||
المفضلة لك، سوف يقوم فريتيوب باستخدام الواجهات الأخرى عند تفعيل هذا الخيار
|
لديك أيّ مشكلة، سيحاول FreeTube استخدام الAPI الغير مفضّل لديك تلقائيّاً كإجراء
|
||||||
Region for Trending: يمكّنك اختيار الدولة من عرض الفيديوهات الشائعة التابعة للدولة
|
التراجع.
|
||||||
التي تفضل . ليست كل البلدان المعروضة في هذه القائمة مدعومة من قبل يوتيوب
|
Region for Trending: الانتشار المحلي (Trend) يسمح لك بأن تشاهد الفيديوهات الأكثر
|
||||||
|
انتشارا حسب الدولة. ليست كل الدول المعروضة في هذه القائمة مدعومة من طرف يوتيوب.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Proxy Videos Through Invidious: سيتم الاتصال ب Invidious لتقديم مقاطع الفيديو
|
Proxy Videos Through Invidious: سيتم الاتصال ب Invidious لتقديم مقاطع الفيديو
|
||||||
بدلاً من إجراء اتصال مباشر مع يوتيوب. يلغي تفضيل الواجهة البرمجية
|
بدلاً من إجراء اتصال مباشر مع يوتيوب. يلغي تفضيل الواجهة البرمجية.
|
||||||
Force Local Backend for Legacy Formats: تعمل فقط عندما تكون واجهة Invidious البرمجية
|
Force Local Backend for Legacy Formats: تعمل فقط عندما تكون واجهة Invidious البرمجية
|
||||||
هي الاختيار الافتراضي . عند تفعيل هذا الخيار ، ستعمل الواجهة البرمجية المحلية
|
هي الاختيار الافتراضي . عند تفعيل هذا الخيار ، ستعمل الواجهة البرمجية المحلية
|
||||||
باستخدام التنسيقات القديمة التي تم إرجاعها من قبلها بدلاً من أن تستخدم الصيغ
|
باستخدام التنسيقات القديمة التي تم إرجاعها من قبلها بدلاً من أن تستخدم الصيغ
|
||||||
التي تم إرجاعها من قبل Invidious . يساعد هذا الخيار عندما لا تعمل الفيديوهات
|
التي تم إرجاعها من قبل Invidious . يساعد هذا الخيار عندما لا تعمل الفيديوهات
|
||||||
التي تم إرجاعها من قبل Invidious بسبب قيود البلد
|
التي تم إرجاعها من قبل Invidious بسبب قيود البلد.
|
||||||
|
Default Video Format: حدّد التنسيقات المستخدمة عند تشغيل الفيديو. تنسيق داش (التدفق
|
||||||
|
الميكانيكي المتكيّف عبر بروتوكول نقل النص التشعبي) يمكنها أن تُشغِّل جودات أعلى.
|
||||||
|
التنسيقات القديمة محدودة بجودة 720p كحدّ أقصى لكنها تستخدم عرضًا أقل للنطاق.
|
||||||
|
التنسيقات الصوتية هي للتدفق الصوتي فقط.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: عندما يمكن، يحذف Freetube تلقائيًا ملفات التعريف التي
|
||||||
|
تم إنشاؤها أثناء تشغيل الفيديو ، عندما تكون صفحة المشاهدة مغلقة.
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: عند تفعيلها، سوف يستخدم فريتيوب طريقة RSS بدلًا من طريقته
|
||||||
|
المعتادة لجلب صفحة اشتراكاتك. طريقة RSS أسرع وتتخطى حجب الآي بي IP، لكنها لا
|
||||||
|
تقدّم معلومات معينة مثل مدّة الفيديو أو حالة البث المباشر
|
||||||
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: هذا
|
||||||
|
الفيديو غير متاح الآن لعدم وجود ملفات فيديو . هذا قد يكون بسبب أن الفيديو غير متاح
|
||||||
|
في بلدك.
|
||||||
|
More: المزيد
|
||||||
|
Playing Next Video Interval: سيتم تشغيل الفيديو التالي على الفور.| إضغط للإلغاء.|
|
||||||
|
سيبدأ الفيديو التالي في {nextVideoInterval} ثانية.| إضغط للإلغاء.
|
||||||
|
Hashtags have not yet been implemented, try again later: لم يتم تنفيذ علامات التصنيف
|
||||||
|
بعد، حاول مرة أخرى لاحقا
|
||||||
|
Unknown YouTube url type, cannot be opened in app: نوع URL غير معروف على YouTube،
|
||||||
|
لا يمكن فتحه في التطبيق
|
||||||
|
Open New Window: افتح نافذة جديدة
|
||||||
|
|
|
@ -132,6 +132,7 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Преглед на пълна информация за Invidious
|
View all Invidious instance information: Преглед на пълна информация за Invidious
|
||||||
обекта
|
обекта
|
||||||
|
System Default: Стандартен за системата
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Настройки на изгледа на приложението'
|
Theme Settings: 'Настройки на изгледа на приложението'
|
||||||
Match Top Bar with Main Color: 'Съвпадане на горната лента с основната цветова
|
Match Top Bar with Main Color: 'Съвпадане на горната лента с основната цветова
|
||||||
|
@ -178,7 +179,7 @@ Settings:
|
||||||
Default Playback Rate: 'Скорост на възпроизвеждане'
|
Default Playback Rate: 'Скорост на възпроизвеждане'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Видео формат'
|
Default Video Format: 'Видео формат'
|
||||||
Dash Formats: 'Dash формати'
|
Dash Formats: 'DASH формати'
|
||||||
Legacy Formats: 'Стари формати'
|
Legacy Formats: 'Стари формати'
|
||||||
Audio Formats: 'Аудио формати'
|
Audio Formats: 'Аудио формати'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -194,6 +195,7 @@ Settings:
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Интервал за следващо видео в плейлист
|
Playlist Next Video Interval: Интервал за следващо видео в плейлист
|
||||||
|
Next Video Interval: Интервал за следващо видео
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Настройки за поверителност'
|
Privacy Settings: 'Настройки за поверителност'
|
||||||
Remember History: 'Запазване на историята'
|
Remember History: 'Запазване на историята'
|
||||||
|
@ -210,6 +212,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Сигурни
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Сигурни
|
||||||
ли сте, че искате да премахнете всички абонаменти и профили? Това не може да
|
ли сте, че искате да премахнете всички абонаменти и профили? Това не може да
|
||||||
бъде възстановено.'
|
бъде възстановено.'
|
||||||
|
Automatically Remove Video Meta Files: Автоматично премахване на видео метафайловете
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Настройки на абонаменти'
|
Subscription Settings: 'Настройки на абонаменти'
|
||||||
Hide Videos on Watch: 'Скриване на видеата при гледане'
|
Hide Videos on Watch: 'Скриване на видеата при гледане'
|
||||||
|
@ -532,6 +535,7 @@ Video:
|
||||||
списък
|
списък
|
||||||
Video has been saved: Видеото е запазено
|
Video has been saved: Видеото е запазено
|
||||||
Save Video: Запазване на видео
|
Save Video: Запазване на видео
|
||||||
|
translated from English: преведено от английски
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -559,10 +563,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Режим "Широк екран"'
|
Toggle Theatre Mode: 'Режим "Широк екран"'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Смяна видео формати'
|
Change Video Formats: 'Смяна видео формати'
|
||||||
Use Dash Formats: 'Използване на Dash формати'
|
Use Dash Formats: 'Използване на DASH формати'
|
||||||
Use Legacy Formats: 'Използване на стари формати'
|
Use Legacy Formats: 'Използване на стари формати'
|
||||||
Use Audio Formats: 'Използване на аудио формати'
|
Use Audio Formats: 'Използване на аудио формати'
|
||||||
Dash formats are not available for this video: 'Dash форматите не са достъпни за
|
Dash formats are not available for this video: 'DASH форматите не са достъпни за
|
||||||
това видео'
|
това видео'
|
||||||
Audio formats are not available for this video: 'Аудио форматите не са достъпни
|
Audio formats are not available for this video: 'Аудио форматите не са достъпни
|
||||||
за това видео'
|
за това видео'
|
||||||
|
@ -628,36 +632,45 @@ Yes: 'Да'
|
||||||
No: 'Не'
|
No: 'Не'
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Когато е активирано, FreeTube ще използва RSS вместо метода
|
Fetch Feeds from RSS: FreeTube ще използва RSS вместо метода по подразбиране за
|
||||||
по подразбиране за получаване на абонаментите. RSS е по-бърз метод и преодолява
|
получаване на абонаментите. RSS е по-бърз метод и преодолява блокиранията на
|
||||||
блокиранията на IP адреса, но не получава някои съпътстващи данни, като продължителност
|
IP адреса, но не получава някои съпътстващи данни, като продължителност на видеото
|
||||||
на видеото или дали е на живо
|
или дали е на живо
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Настройка на използваните формати. Dash форматите могат
|
Default Video Format: Настройка на използваните формати. DASH форматите могат
|
||||||
да показват видеа с по-високо качество. Старите формати са ограничени до макс.
|
да показват видеа с по-високо качество. Старите формати са ограничени до макс.
|
||||||
720р, но пък генерират по-малък трафик. Аудио форматите предават само звук
|
720р, но пък генерират по-малък трафик. Аудио форматите предават само звук.
|
||||||
Proxy Videos Through Invidious: Ще се свърже с Invidious, за да изтегли видеото,
|
Proxy Videos Through Invidious: Ще се свърже с Invidious, за да изтегли видеото,
|
||||||
вместо да прави дирекна връзка с YouTube. Пренебрегва настройките на локалния
|
вместо да прави дирекна връзка с YouTube. Пренебрегва настройките на локалния
|
||||||
интерфейс
|
интерфейс.
|
||||||
Force Local Backend for Legacy Formats: Действа само когато по подразбиране е
|
Force Local Backend for Legacy Formats: Действа само когато по подразбиране е
|
||||||
избран Invidious интерфейс. Когато е активиран, локалният интерфейс ще използва
|
избран Invidious интерфейс. Когато е активиран, локалният интерфейс ще използва
|
||||||
старите формати вместо тези на Invidious. Това помага когато видеата, получавани
|
старите формати вместо тези на Invidious. Това помага когато видеата, получавани
|
||||||
от Invidious не вървят поради регионални ограничения
|
от Invidious не вървят поради регионални ограничения.
|
||||||
General Settings:
|
General Settings:
|
||||||
Region for Trending: Регионът на набиращите популярност дава възможност да се
|
Region for Trending: Регионът на набиращите популярност дава възможност да се
|
||||||
избере страната, за която това се отнася. Не всички страни показани тук се поддържат
|
избере страната, за която това се отнася. Не всички страни показани тук се поддържат
|
||||||
от YouTube
|
от YouTube.
|
||||||
Invidious Instance: Сървър на Invidious, към който FreeTube ще се свързва. Премахнете
|
Invidious Instance: Сървър на Invidious, към който FreeTube ще се свързва. Премахнете
|
||||||
настоящия избор, за да видите списък с други възможни сървъри
|
настоящия избор, за да видите списък с други възможни сървъри.
|
||||||
Thumbnail Preference: Всички миниатюри във FreeTube ще бъдат подменени с кадър
|
Thumbnail Preference: Всички миниатюри във FreeTube ще бъдат подменени с кадър
|
||||||
от клипа вместо тези по подразбиране
|
от клипа вместо тези по подразбиране.
|
||||||
Fallback to Non-Preferred Backend on Failure: Когато избраният интерфейс срещне
|
Fallback to Non-Preferred Backend on Failure: Когато избраният интерфейс срещне
|
||||||
проблем, FreeTube ще опита да премине автоматично към друг метод, ако има избран
|
проблем, FreeTube ще опита да премине автоматично към друг метод, ако има избран
|
||||||
такъв
|
такъв.
|
||||||
Preferred API Backend: Избиране на начина, по който FreeTube получава данните.
|
Preferred API Backend: Избиране на начина, по който FreeTube получава данните.
|
||||||
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
|
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
|
||||||
сървър, към който да се свърже.
|
сървър, към който да се свърже.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Когато страницата за гледане бъде затворена, FreeTube
|
||||||
|
автоматично ще изтрива метафайловете, създадени по време на възпроизвеждане
|
||||||
|
на видеото.
|
||||||
More: Още
|
More: Още
|
||||||
Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ.
|
Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ.
|
||||||
| Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказl.
|
| Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказ.
|
||||||
| Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ.
|
| Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ.
|
||||||
|
Hashtags have not yet been implemented, try again later: Хаштаговете все още не са
|
||||||
|
реализирани, опитайте отново по-късно
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Неизвестен тип URL адрес за YouTube,
|
||||||
|
не може да се отвори в приложението
|
||||||
|
Open New Window: Отваряне на нов прозорец
|
||||||
|
|
|
@ -22,62 +22,65 @@ Toggle Developer Tools: 'ডেভেলপার যন্ত্র টগল
|
||||||
Actual size: 'প্রকৃত আকার'
|
Actual size: 'প্রকৃত আকার'
|
||||||
Zoom in: 'সম্প্রসারিত করো (জুম)'
|
Zoom in: 'সম্প্রসারিত করো (জুম)'
|
||||||
Zoom out: 'সংকুচিত করো(জুম)'
|
Zoom out: 'সংকুচিত করো(জুম)'
|
||||||
Toggle fullscreen: ''
|
Toggle fullscreen: 'পূর্ণ-স্ক্রিন'
|
||||||
Window: 'উইন্ডো'
|
Window: 'উইন্ডো'
|
||||||
Minimize: ''
|
Minimize: 'ক্ষুদ্রকরণ'
|
||||||
Close: ''
|
Close: 'বন্ধ'
|
||||||
Back: ''
|
Back: 'পিছনে'
|
||||||
Forward: ''
|
Forward: 'সামনে'
|
||||||
|
|
||||||
Version $ is now available! Click for more details: ''
|
Version $ is now available! Click for more details: 'সংস্করণ $ এসে গেছে! আরো জানতে
|
||||||
Download From Site: ''
|
টিপ দাও'
|
||||||
A new blog is now available, $. Click to view more: ''
|
Download From Site: 'সাইট থেকে ডাউনলোড করো'
|
||||||
|
A new blog is now available, $. Click to view more: 'নতুন ব্লগ আছে, $. আরো দেখতে টিপ
|
||||||
|
দাও'
|
||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
Search / Go to URL: ''
|
Search / Go to URL: 'অনুসন্ধান / ইউআরএলে যাও'
|
||||||
# In Filter Button
|
# In Filter Button
|
||||||
Search Filters:
|
Search Filters:
|
||||||
Search Filters: ''
|
Search Filters: 'অনুসন্ধান ছাঁকনি'
|
||||||
Sort By:
|
Sort By:
|
||||||
Sort By: ''
|
Sort By: 'সাজানোর পদ্ধতি'
|
||||||
Most Relevant: ''
|
Most Relevant: 'সবচেয়ে প্রাসঙ্গিক'
|
||||||
Rating: ''
|
Rating: ''
|
||||||
Upload Date: ''
|
Upload Date: 'ছাপানোর তারিখ'
|
||||||
View Count: ''
|
View Count: 'দৃশ্য সংখ্যা'
|
||||||
Time:
|
Time:
|
||||||
Time: ''
|
Time: 'সময়'
|
||||||
Any Time: ''
|
Any Time: 'যেকোনো সময়'
|
||||||
Last Hour: ''
|
Last Hour: 'শেষ ঘণ্টা'
|
||||||
Today: ''
|
Today: 'আজকে'
|
||||||
This Week: ''
|
This Week: 'এই সপ্তাহে'
|
||||||
This Month: ''
|
This Month: 'এই মাসে'
|
||||||
This Year: ''
|
This Year: 'এই বছর'
|
||||||
Type:
|
Type:
|
||||||
Type: ''
|
Type: 'ধরণ'
|
||||||
All Types: ''
|
All Types: 'সব ধরণ'
|
||||||
Videos: ''
|
Videos: 'ভিডিও'
|
||||||
Channels: ''
|
Channels: 'চ্যানেল'
|
||||||
#& Playlists
|
#& Playlists
|
||||||
Duration:
|
Duration:
|
||||||
Duration: 'সময়কাল'
|
Duration: 'সময়কাল'
|
||||||
All Durations: ''
|
All Durations: 'সকল দৈর্ঘ্যের'
|
||||||
Short (< 4 minutes): ''
|
Short (< 4 minutes): 'ছোট (<৪ মিনিট)'
|
||||||
Long (> 20 minutes): ''
|
Long (> 20 minutes): 'লম্বা (> ২০ মিনিট)'
|
||||||
# On Search Page
|
# On Search Page
|
||||||
Search Results: ''
|
Search Results: 'অনুসন্ধান ফলাফল'
|
||||||
Fetching results. Please wait: ''
|
Fetching results. Please wait: 'ফলাফল আনা হচ্ছে, একটু অপেক্ষা করো'
|
||||||
Fetch more results: ''
|
Fetch more results: 'আরো ফলাফল আনো'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: এই অনুসন্ধানের আর কোনো ফলাফল নেই
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: ''
|
Subscriptions: 'সদস্যতা'
|
||||||
Latest Subscriptions: ''
|
Latest Subscriptions: 'শেষ সদস্যতা'
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: ''
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: ''
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': ''
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': ''
|
||||||
'Getting Subscriptions. Please wait.': ''
|
'Getting Subscriptions. Please wait.': ''
|
||||||
Refresh Subscriptions: ''
|
Refresh Subscriptions: ''
|
||||||
Load More Videos: ''
|
Load More Videos: ''
|
||||||
Trending: ''
|
Trending: 'চলছে'
|
||||||
Most Popular: ''
|
Most Popular: ''
|
||||||
Playlists: ''
|
Playlists: ''
|
||||||
User Playlists:
|
User Playlists:
|
||||||
|
@ -86,7 +89,7 @@ User Playlists:
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ''
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ''
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: ''
|
History: 'ইতিহাস'
|
||||||
Watch History: ''
|
Watch History: ''
|
||||||
Your history list is currently empty.: ''
|
Your history list is currently empty.: ''
|
||||||
Settings:
|
Settings:
|
||||||
|
@ -259,7 +262,7 @@ About:
|
||||||
Donate: ''
|
Donate: ''
|
||||||
Beta: ''
|
Beta: ''
|
||||||
License: ''
|
License: ''
|
||||||
Email: ''
|
Email: 'ই-মেইল'
|
||||||
Channel Rules: ''
|
Channel Rules: ''
|
||||||
Report an Issue: ''
|
Report an Issue: ''
|
||||||
Wiki: ''
|
Wiki: ''
|
||||||
|
@ -521,3 +524,4 @@ Canceled next video autoplay: ''
|
||||||
|
|
||||||
Yes: ''
|
Yes: ''
|
||||||
No: ''
|
No: ''
|
||||||
|
Open New Window: নতুন জানালা খুলো
|
||||||
|
|
|
@ -273,6 +273,9 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Blog: Blog
|
||||||
|
Website: Lloc web
|
||||||
|
Email: Correu-e
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: ''
|
Profile Select: ''
|
||||||
All Channels: ''
|
All Channels: ''
|
||||||
|
|
|
@ -133,6 +133,7 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Zobrazit všechny informace o instanci
|
View all Invidious instance information: Zobrazit všechny informace o instanci
|
||||||
Invidious
|
Invidious
|
||||||
|
System Default: Výchozí nastavení systému
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Nastavení motivu'
|
Theme Settings: 'Nastavení motivu'
|
||||||
Match Top Bar with Main Color: 'Přizpůsobit hlavní lištu hlavní barvě'
|
Match Top Bar with Main Color: 'Přizpůsobit hlavní lištu hlavní barvě'
|
||||||
|
@ -177,7 +178,7 @@ Settings:
|
||||||
Default Playback Rate: 'Výchozí rychlost přehrávání'
|
Default Playback Rate: 'Výchozí rychlost přehrávání'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Výchozí formát videa'
|
Default Video Format: 'Výchozí formát videa'
|
||||||
Dash Formats: 'Formát Dash'
|
Dash Formats: 'Formát DASH'
|
||||||
Legacy Formats: 'Starší formáty'
|
Legacy Formats: 'Starší formáty'
|
||||||
Audio Formats: 'Zvukové formáty'
|
Audio Formats: 'Zvukové formáty'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -192,7 +193,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Interval dalšího seznamu videí
|
Playlist Next Video Interval: Interval pro další video na playlistu
|
||||||
|
Next Video Interval: Další interval videa
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Nastavení soukromí'
|
Privacy Settings: 'Nastavení soukromí'
|
||||||
Remember History: 'Zapamatovat historii'
|
Remember History: 'Zapamatovat historii'
|
||||||
|
@ -208,6 +210,7 @@ Settings:
|
||||||
Remove All Subscriptions / Profiles: 'Odstranit všechna odebírání / profily'
|
Remove All Subscriptions / Profiles: 'Odstranit všechna odebírání / profily'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Chcete
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Chcete
|
||||||
opravdu odstranit všechna odebírání a profily? Toto nelze vrátit zpět.'
|
opravdu odstranit všechna odebírání a profily? Toto nelze vrátit zpět.'
|
||||||
|
Automatically Remove Video Meta Files: Automaticky odstranit meta soubory videa
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Nastavení odebírání'
|
Subscription Settings: 'Nastavení odebírání'
|
||||||
Hide Videos on Watch: 'Skrýt videa při přehrávání'
|
Hide Videos on Watch: 'Skrýt videa při přehrávání'
|
||||||
|
@ -345,8 +348,8 @@ About:
|
||||||
room rules: pravidla místnosti
|
room rules: pravidla místnosti
|
||||||
Please read the: Prosím, přečtěte si
|
Please read the: Prosím, přečtěte si
|
||||||
Chat on Matrix: Chat na síti Matrix
|
Chat on Matrix: Chat na síti Matrix
|
||||||
Mastodon: mastodon
|
Mastodon: Mastodon
|
||||||
Email: Email
|
Email: E-mail
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
Website: Webová stránka
|
Website: Webová stránka
|
||||||
FAQ: Často kladené dotazy
|
FAQ: Často kladené dotazy
|
||||||
|
@ -410,7 +413,7 @@ Channel:
|
||||||
Channel has been removed from your subscriptions: 'Kanál byl odebrán z vašich odběrů'
|
Channel has been removed from your subscriptions: 'Kanál byl odebrán z vašich odběrů'
|
||||||
Removed subscription from $ other channel(s): 'Odběr odebrán z $ jiných kanálů'
|
Removed subscription from $ other channel(s): 'Odběr odebrán z $ jiných kanálů'
|
||||||
Added channel to your subscriptions: 'K vašim odběrům byl přidán kanál'
|
Added channel to your subscriptions: 'K vašim odběrům byl přidán kanál'
|
||||||
Search Channel: 'Hledat kanál'
|
Search Channel: 'Hledat v kanálu'
|
||||||
Your search results have returned 0 results: 'Vaše vyhledávání přineslo 0 výsledků'
|
Your search results have returned 0 results: 'Vaše vyhledávání přineslo 0 výsledků'
|
||||||
Sort By: 'Seřadit podle'
|
Sort By: 'Seřadit podle'
|
||||||
Videos:
|
Videos:
|
||||||
|
@ -513,7 +516,7 @@ Video:
|
||||||
Upcoming: 'Premiéra'
|
Upcoming: 'Premiéra'
|
||||||
Published on: 'Publikováno'
|
Published on: 'Publikováno'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'před $ %'
|
Publicationtemplate: 'před $ %'
|
||||||
#& Videos
|
#& Videos
|
||||||
Started streaming on: Začátek vysílání
|
Started streaming on: Začátek vysílání
|
||||||
Streamed on: Vysíláno
|
Streamed on: Vysíláno
|
||||||
|
@ -521,6 +524,7 @@ Video:
|
||||||
Save Video: Uložit video
|
Save Video: Uložit video
|
||||||
Video has been removed from your saved list: Video bylo odstraněno z vašeho uloženého
|
Video has been removed from your saved list: Video bylo odstraněno z vašeho uloženého
|
||||||
seznamu
|
seznamu
|
||||||
|
translated from English: přeloženo z angličtiny
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -548,10 +552,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Přepnout režim divadla'
|
Toggle Theatre Mode: 'Přepnout režim divadla'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Změnit formát videa'
|
Change Video Formats: 'Změnit formát videa'
|
||||||
Use Dash Formats: 'Použít Dash formáty'
|
Use Dash Formats: 'Použít DASH formáty'
|
||||||
Use Legacy Formats: 'Použít starší formáty'
|
Use Legacy Formats: 'Použít starší formáty'
|
||||||
Use Audio Formats: 'Použít zvukové formáty'
|
Use Audio Formats: 'Použít zvukové formáty'
|
||||||
Dash formats are not available for this video: 'Dash formáty nejsou pro toto video
|
Dash formats are not available for this video: 'DASH formáty nejsou pro toto video
|
||||||
dostupné'
|
dostupné'
|
||||||
Audio formats are not available for this video: 'Zvukové formáty nejsou pro toto
|
Audio formats are not available for this video: 'Zvukové formáty nejsou pro toto
|
||||||
video dostupné'
|
video dostupné'
|
||||||
|
@ -605,31 +609,35 @@ Tooltips:
|
||||||
Invidious.'
|
Invidious.'
|
||||||
Fallback to Non-Preferred Backend on Failure: 'Pokud má vaše preferované API problém,
|
Fallback to Non-Preferred Backend on Failure: 'Pokud má vaše preferované API problém,
|
||||||
FreeTube se automaticky pokusí použít vaše nepreferované API jako záložní metodu,
|
FreeTube se automaticky pokusí použít vaše nepreferované API jako záložní metodu,
|
||||||
pokud je povoleno'
|
pokud je povoleno.'
|
||||||
Thumbnail Preference: 'Všechny miniatury v celém FreeTube budou nahrazeny rámečkem
|
Thumbnail Preference: 'Všechny miniatury v celém FreeTube budou nahrazeny snímkem
|
||||||
videa namísto výchozí miniatury'
|
z videa namísto výchozí miniatury.'
|
||||||
Invidious Instance: 'Invidious instance, ke které se FreeTube připojí pro volání
|
Invidious Instance: 'Invidious instance, ke které se FreeTube připojí za účelem
|
||||||
API. Smazáním aktuální instance zobrazíte seznam veřejných instancí, ze kterých
|
volání API. Smazáním aktuální instance zobrazíte seznam veřejných instancí,
|
||||||
si můžete vybrat'
|
ze kterých si můžete vybrat.'
|
||||||
Region for Trending: 'Region trendů vám umožní vybrat si videa trendů jednotlivých
|
Region for Trending: 'Region trendů vám umožní vybrat si zemi, ze které si přejete
|
||||||
zemí, které chcete zobrazit. Ne všechny zobrazené země ale YouTube aktuálně
|
zobrazovat videa trendů. Ne všechny zobrazené země jsou ale službou YouTube
|
||||||
podporuje'
|
reálně podporovány.'
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: 'Funguje pouze v případě, že je výchozím
|
Force Local Backend for Legacy Formats: 'Funguje pouze v případě, že je výchozím
|
||||||
nastavením API Invidious. Je-li povoleno, spustí se místní API a použije starší
|
nastavením API Invidious. Je-li povoleno, spustí se místní API a použije starší
|
||||||
formáty místo těch, které vrátí Invidious. V některých zemích je zakázáno přehrání,
|
formáty místo těch, které vrátí Invidious. Může pomoci, pokud videa z Invidious
|
||||||
toto může překonat toto omezení'
|
nemohou být přehrána kvůli regionálnímu omezení.'
|
||||||
Proxy Videos Through Invidious: 'Připojí se k Invidious, aby poskytoval videa
|
Proxy Videos Through Invidious: 'Připojí se k Invidious, aby poskytoval videa
|
||||||
namísto přímého připojení k YouTube. Toto přepíše předvolby API'
|
namísto přímého připojení k YouTube. Toto přepíše předvolby API.'
|
||||||
Default Video Format: 'Nastavte formáty použité při přehrávání videa. Formáty
|
Default Video Format: 'Nastavte formáty použité při přehrávání videa. Formáty
|
||||||
Dash mohou hrát vyšší kvality. Starší formáty jsou omezeny na maximálně 720p,
|
DASH umožní přehrávat vyšší kvality. Starší formáty jsou omezeny na maximálně
|
||||||
ale používají menší šířku pásma. Zvukové formáty jsou pouze zvukové streamy'
|
720p, ale používají menší šířku pásma. Zvukové formáty jsou streamy obsahující
|
||||||
|
pouze audio.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: 'Je-li povoleno, FreeTube použije RSS místo své výchozí
|
Fetch Feeds from RSS: 'Je-li povoleno, FreeTube použije RSS místo své výchozí
|
||||||
metody pro získání vašeho odebírání kanálů. RSS je rychlejší a brání blokování
|
metody pro získání vašeho odebírání kanálů. RSS je rychlejší a brání blokování
|
||||||
IP, ale neposkytuje určité informace, jako je délka videa a podobně'
|
IP, ale neposkytuje určité informace, jako je délka videa a podobně'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Pokud je povoleno, FreeTube automaticky odstraní meta
|
||||||
|
soubory vytvořené během přehrávání videa, když se stránka sledování zavře.
|
||||||
Local API Error (Click to copy): 'Chyba lokálního API (kliknutím zkopírujete)'
|
Local API Error (Click to copy): 'Chyba lokálního API (kliknutím zkopírujete)'
|
||||||
Invidious API Error (Click to copy): 'Chyba Invidious API (kliknutím zkopírujete)'
|
Invidious API Error (Click to copy): 'Chyba Invidious API (kliknutím zkopírujete)'
|
||||||
Falling back to Invidious API: 'Přepínám na Invidious API'
|
Falling back to Invidious API: 'Přepínám na Invidious API'
|
||||||
|
@ -653,7 +661,12 @@ Canceled next video autoplay: 'Automatické přehrávání dalšího videa bylo
|
||||||
|
|
||||||
Yes: 'Ano'
|
Yes: 'Ano'
|
||||||
No: 'Ne'
|
No: 'Ne'
|
||||||
Playing Next Video Interval: Přehrávání dalšího videa v žádném čase. Kliknutím zrušíte.
|
Playing Next Video Interval: Přehrávání dalšího videa bez prodlevy Kliknutím zrušíte.
|
||||||
| Přehrávání dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte. | Přehrávání
|
| Přehrávání dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte. | Přehrávání
|
||||||
dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte.
|
dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte.
|
||||||
More: Více
|
More: Více
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtagy nebyly dosud implementovány,
|
||||||
|
zkuste to znovu později
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Neznámý typ adresy URL YouTube,
|
||||||
|
nelze v aplikaci otevřít
|
||||||
|
Open New Window: Otevřít nové okno
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
FreeTube: FreeTube
|
FreeTube: FreeTube
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
Dieser Teil des Programms ist noch nicht fertig. Bitte komme zu einem späteren Zeitpunkt
|
Dieser Teil des Programms ist noch nicht fertig. Bitte komm zu einem späteren Zeitpunkt
|
||||||
wieder.
|
wieder.
|
||||||
|
|
||||||
# Webkit Menu Bar
|
# Webkit Menu Bar
|
||||||
|
@ -70,13 +70,13 @@ Subscriptions:
|
||||||
Subscriptions: Abonnements
|
Subscriptions: Abonnements
|
||||||
Latest Subscriptions: Neueste Abonnements
|
Latest Subscriptions: Neueste Abonnements
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': Deine
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': Deine
|
||||||
Abonnementliste ist aktuell leer. Beginne Abonnements hinzuzufügen um sie hier
|
Abonnementliste ist aktuell leer. Beginne Abonnements hinzuzufügen, um sie hier
|
||||||
zu sehen.
|
zu sehen.
|
||||||
'Getting Subscriptions. Please wait.': Rufe Abonnements ab. Bitte warten.
|
'Getting Subscriptions. Please wait.': Rufe Abonnements ab. Bitte warten.
|
||||||
Refresh Subscriptions: Abonnements aktualisieren
|
Refresh Subscriptions: Abonnements aktualisieren
|
||||||
Getting Subscriptions. Please wait.: Lade Abonnements. Bitte warten.
|
Getting Subscriptions. Please wait.: Lade Abonnements. Bitte warten.
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dieses
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dieses
|
||||||
Profil hat eine große Anzahl von Abonnenten. RSS zur Vermeidung von Tarifbeschränkungen
|
Profil hat eine große Anzahl von Abonnements. RSS zur Vermeidung von Geschwindigkeitsbeschränkungen
|
||||||
erzwingen
|
erzwingen
|
||||||
Load More Videos: Lade mehr Videos
|
Load More Videos: Lade mehr Videos
|
||||||
Trending: Trends
|
Trending: Trends
|
||||||
|
@ -85,12 +85,12 @@ Playlists: Wiedergabelisten
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: Deine Wiedergabelisten
|
Your Playlists: Deine Wiedergabelisten
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Deine
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Deine
|
||||||
gespeicherten Videos sind leer. Klicken Sie auf die Schaltfläche "Speichern" in
|
gespeicherten Videos sind leer. Klicke auf die Schaltfläche „Speichern“ in der
|
||||||
der Ecke eines Videos, damit es hier aufgelistet wird
|
Ecke eines Videos, damit es hier aufgelistet wird
|
||||||
Playlist Message: Diese Seite spiegelt nicht die vollständig funktionierenden Wiedergabelisten
|
Playlist Message: Diese Seite spiegelt nicht die vollständig funktionierenden Wiedergabelisten
|
||||||
wider. Sie listet nur Videos auf, die Sie gespeichert oder favorisiert haben.
|
wider. Sie listet nur Videos auf, die Du gespeichert oder favorisiert hast. Wenn
|
||||||
Wenn die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier
|
die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier befinden,
|
||||||
befinden, in eine Wiedergabeliste "Favoriten" migriert.
|
in eine Wiedergabeliste „Favoriten“ migriert.
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: Verlauf
|
History: Verlauf
|
||||||
|
@ -110,7 +110,7 @@ Settings:
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: Bevorzugtes API-System
|
Preferred API Backend: Bevorzugtes API-System
|
||||||
Local API: Lokale API
|
Local API: Lokale API
|
||||||
Invidious API: Invidious API
|
Invidious API: Invidious-API
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: Videoansichtstyp
|
Video View Type: Videoansichtstyp
|
||||||
Grid: Gitter
|
Grid: Gitter
|
||||||
|
@ -130,7 +130,7 @@ Settings:
|
||||||
View all Invidious instance information: Alle Informationen zur Invidious-Instanz
|
View all Invidious instance information: Alle Informationen zur Invidious-Instanz
|
||||||
anzeigen
|
anzeigen
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: Thema Einstellungen
|
Theme Settings: Thema-Einstellungen
|
||||||
Match Top Bar with Main Color: Obere Leiste an Hauptfarbe anpassen
|
Match Top Bar with Main Color: Obere Leiste an Hauptfarbe anpassen
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: Grundlegendes Thema
|
Base Theme: Grundlegendes Thema
|
||||||
|
@ -174,7 +174,7 @@ Settings:
|
||||||
Default Playback Rate: Standard-Wiedergabegeschwindigkeit
|
Default Playback Rate: Standard-Wiedergabegeschwindigkeit
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: Standard-Videoformat
|
Default Video Format: Standard-Videoformat
|
||||||
Dash Formats: DASH-Formate
|
Dash Formats: DASH-Format
|
||||||
Legacy Formats: Legacy Formate
|
Legacy Formats: Legacy Formate
|
||||||
Audio Formats: Audioformate
|
Audio Formats: Audioformate
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -189,6 +189,7 @@ Settings:
|
||||||
1440p: 1440p
|
1440p: 1440p
|
||||||
4k: 4k
|
4k: 4k
|
||||||
8k: 8k
|
8k: 8k
|
||||||
|
Playlist Next Video Interval: Zeit zwischen automatischer Videowiedergabe
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: Abonnement-Einstellungen
|
Subscription Settings: Abonnement-Einstellungen
|
||||||
Hide Videos on Watch: Verstecke Videos bei Wiedergabe
|
Hide Videos on Watch: Verstecke Videos bei Wiedergabe
|
||||||
|
@ -245,6 +246,7 @@ Settings:
|
||||||
du sicher, dass du alle Abonnements und Profile löschen möchtest? Diese Aktion
|
du sicher, dass du alle Abonnements und Profile löschen möchtest? Diese Aktion
|
||||||
kann nicht rückgängig gemacht werden.
|
kann nicht rückgängig gemacht werden.
|
||||||
Remove All Subscriptions / Profiles: Alle Abonnements / Profile löschen
|
Remove All Subscriptions / Profiles: Alle Abonnements / Profile löschen
|
||||||
|
Automatically Remove Video Meta Files: Meta-Dateien von Videos automatisch löschen
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: Wie importiere ich meine Abonnements?
|
How do I import my subscriptions?: Wie importiere ich meine Abonnements?
|
||||||
Unknown data key: Unbekannter Datenschlüssel
|
Unknown data key: Unbekannter Datenschlüssel
|
||||||
|
@ -295,6 +297,7 @@ Settings:
|
||||||
Hide Video Views: Video-Aufrufe verbergen
|
Hide Video Views: Video-Aufrufe verbergen
|
||||||
Distraction Free Settings: Einstellungen für ablenkungsfreien Modus
|
Distraction Free Settings: Einstellungen für ablenkungsfreien Modus
|
||||||
Hide Active Subscriptions: Aktive Abonnements ausblenden
|
Hide Active Subscriptions: Aktive Abonnements ausblenden
|
||||||
|
Hide Playlists: Wiedergabelisten ausblenden
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Um
|
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
|
die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und
|
||||||
Änderungen aktivieren?
|
Änderungen aktivieren?
|
||||||
|
@ -350,7 +353,7 @@ About:
|
||||||
This software is FOSS and released under the GNU Affero General Public License v3.0.: Diese
|
This software is FOSS and released under the GNU Affero General Public License v3.0.: Diese
|
||||||
freie Software ist unter der AGPL-3.0 lizenziert.
|
freie Software ist unter der AGPL-3.0 lizenziert.
|
||||||
Translate via Weblate: Auf Weblate übersetzen
|
Translate via Weblate: Auf Weblate übersetzen
|
||||||
Website: Webseite
|
Website: Website
|
||||||
Source Code: Quellcode
|
Source Code: Quellcode
|
||||||
Release Notes: Versionshinweise
|
Release Notes: Versionshinweise
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
|
@ -359,7 +362,7 @@ About:
|
||||||
Wiki: Wiki
|
Wiki: Wiki
|
||||||
Report an Issue: Fehler melden
|
Report an Issue: Fehler melden
|
||||||
Channel Rules: Kanalregeln
|
Channel Rules: Kanalregeln
|
||||||
Email: Email
|
Email: E-Mail
|
||||||
License: Lizenz
|
License: Lizenz
|
||||||
Beta: Beta
|
Beta: Beta
|
||||||
Donate: Spenden
|
Donate: Spenden
|
||||||
|
@ -375,7 +378,7 @@ About:
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Please check for duplicates before posting: Bitte überprüfe vor dem Absenden, ob
|
Please check for duplicates before posting: Bitte überprüfe vor dem Absenden, ob
|
||||||
es Duplikate gibt
|
es Duplikate gibt
|
||||||
GitHub issues: GitHub Issues
|
GitHub issues: GitHub-Probleme
|
||||||
Report a problem: Problem melden
|
Report a problem: Problem melden
|
||||||
FreeTube Wiki: FreeTube Wiki
|
FreeTube Wiki: FreeTube Wiki
|
||||||
GitHub releases: GitHub Veröffentlichungen
|
GitHub releases: GitHub Veröffentlichungen
|
||||||
|
@ -504,6 +507,7 @@ Video:
|
||||||
Videos entfernt
|
Videos entfernt
|
||||||
Video has been saved: Video wurde gespeichert
|
Video has been saved: Video wurde gespeichert
|
||||||
Save Video: Video speichern
|
Save Video: Video speichern
|
||||||
|
translated from English: Aus dem Englischen übersetzt
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -538,12 +542,12 @@ Share Playlist:
|
||||||
Toggle Theatre Mode: Kinomodus umschalten
|
Toggle Theatre Mode: Kinomodus umschalten
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: Ändere Videoformat
|
Change Video Formats: Ändere Videoformat
|
||||||
Use Dash Formats: Nutze DASH-Format
|
Use Dash Formats: DASH-Format benutzen
|
||||||
Use Legacy Formats: Nutze Altformat
|
Use Legacy Formats: Nutze Altformat
|
||||||
Use Audio Formats: Nutze Audioformat
|
Use Audio Formats: Nutze Audioformat
|
||||||
Audio formats are not available for this video: Es sind keine Audioformate für dieses
|
Audio formats are not available for this video: Es sind keine Audioformate für dieses
|
||||||
Video verfügbar
|
Video verfügbar
|
||||||
Dash formats are not available for this video: Das DASH-Format ist für dieses Video
|
Dash formats are not available for this video: DASH-Formate sind für dieses Video
|
||||||
nicht verfügbar
|
nicht verfügbar
|
||||||
Share:
|
Share:
|
||||||
Share Video: Teile das Video
|
Share Video: Teile das Video
|
||||||
|
@ -649,6 +653,7 @@ Profile:
|
||||||
Other Channels: Andere Kanäle
|
Other Channels: Andere Kanäle
|
||||||
Subscription List: Abonnement-Liste
|
Subscription List: Abonnement-Liste
|
||||||
Profile Select: Profilauswahl
|
Profile Select: Profilauswahl
|
||||||
|
Profile Filter: Profilfilter
|
||||||
The playlist has been reversed: Die Wiedergabeliste wurde umgedreht
|
The playlist has been reversed: Die Wiedergabeliste wurde umgedreht
|
||||||
A new blog is now available, $. Click to view more: Ein neuer Blogeintrag ist verfügbar,
|
A new blog is now available, $. Click to view more: Ein neuer Blogeintrag ist verfügbar,
|
||||||
$. Um ihn zu öffnen klicken
|
$. Um ihn zu öffnen klicken
|
||||||
|
@ -657,33 +662,45 @@ Version $ is now available! Click for more details: Version $ ist jetzt verfüg
|
||||||
mehr Details klicken
|
mehr Details klicken
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Thumbnail Preference: Alle Videovoransichten in FreeTube werden durch ein Einzelbild
|
Thumbnail Preference: Alle Thumbnails in FreeTube werden durch ein Standbild aus
|
||||||
aus dem Video ersetzt und entsprechen somit nicht mehr der Standardvoransicht.
|
dem Video ersetzt und entsprechen somit nicht mehr dem Standart-Vorschaubild.
|
||||||
Invidious Instance: Die Invidious-Instanz, welche FreeTube für API-Aufrufe verwendet.
|
Invidious Instance: Die Invidious-Instanz, welche FreeTube für API-Calls verwendet.
|
||||||
Leere die aktuelle Instanz, um eine vollständige Liste der verfügbaren Server
|
Leere die aktuelle Instanz, um eine vollständige Liste der verfügbaren Server
|
||||||
anzuzeigen.
|
anzuzeigen.
|
||||||
Fallback to Non-Preferred Backend on Failure: Erlaube FreeTube, falls die bevorzugte
|
Fallback to Non-Preferred Backend on Failure: Erlaube FreeTube, falls die bevorzugte
|
||||||
API nicht verfügbar sein sollte, automatisch die nicht bevorzugte Alternative
|
API nicht verfügbar sein sollte, automatisch eine alternative API zu nutzen.
|
||||||
zu nutzen.
|
|
||||||
Preferred API Backend: Wähle das Backend, welches FreeTube zum Laden der Daten
|
Preferred API Backend: Wähle das Backend, welches FreeTube zum Laden der Daten
|
||||||
nutzen soll. Die lokale API ist ein integrierter Extrahierer. Die Invidious
|
nutzen soll. Die lokale API ist ein integrierter Extrahierer. Die Invidious-API
|
||||||
API dagegen verwendet einen externen Server.
|
dagegen verwendet einen externen Server.
|
||||||
Region for Trending: Die Trendregion erlaubt es dir auszuwählen, aus welchem Land
|
Region for Trending: Die Trendregion erlaubt es dir auszuwählen, aus welchem Land
|
||||||
die Trends angezeigt werden sollen. Nicht alle Optionen werden auch von YouTube
|
die Trends angezeigt werden sollen. Nicht alle Optionen werden auch von YouTube
|
||||||
unterstützt
|
unterstützt.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Mit dieser Option nutzt FreeTube einen RSS-Feed von Youtube
|
Fetch Feeds from RSS: Sobald aktiviert wird FreeTube RSS anstatt der Standartmethode
|
||||||
um deine Abonnements zu aktualisieren. RSS ist sowohl schneller als auch sicherer,
|
nutzen, um deine Abos zu aktualisieren. RSS ist schneller und verhindert das
|
||||||
wenn du oft temporär von YouTube geblockt wirst(Error 429). Allerdings sind
|
Blockieren deiner IP-Adresse, doch gewisse Informationen, wie z.B. die Dauer
|
||||||
nicht alle Videoinformationen, wie Videodauer oder Live-Status, verfügbar.
|
des Videos oder der Status eines Livestreams, werden nicht mehr verfügbar sein
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Auswahl der Formate bei der Videowiedergabe. Dash-Formate
|
Default Video Format: Auswahl der Formate bei der Videowiedergabe. DASH-Formate
|
||||||
bieten eine höhere Qualität, Legacy-Formate sind auf 720p begrenzt, benötigen
|
bieten eine höhere Qualität, LEGACY-Formate sind auf 720p begrenzt, benötigen
|
||||||
dafür aber auch weniger Bandbreite. Audioformate umfassen reine Audiostreams.
|
dafür aber auch weniger Bandbreite. Audioformate beinhalten nur den Ton.
|
||||||
Proxy Videos Through Invidious: Zu Invidious verbinden, um Videos abzurufen, anstatt
|
Proxy Videos Through Invidious: Zu Invidious verbinden, um Videos abzurufen, anstatt
|
||||||
eine direkten Verbindung zu YouTube aufzubauen. Überschreibt die API-Präferenz.
|
eine direkten Verbindung zu YouTube aufzubauen. Überschreibt die API-Präferenz.
|
||||||
Force Local Backend for Legacy Formats: Dies funktioniert nur wenn du die Invidious
|
Force Local Backend for Legacy Formats: Funktioniert nur, wenn du die Invidious-API
|
||||||
API als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von
|
als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von "Legacy"
|
||||||
Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies
|
-Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies hilft
|
||||||
hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund
|
dann, wenn Videos von Invidious aufgrund von Ländersperren nicht abspielbar
|
||||||
von Landesbeschränkungen.
|
sind.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Bei Aktivierung löscht FreeTube alle Meta-Dateien die
|
||||||
|
während der Videowiedergabe erzeugt werden, sobald die Videoseite verlassen
|
||||||
|
wird.
|
||||||
|
Playing Next Video Interval: Nächstes Video wird sofort abgespielt. Zum Abbrechen
|
||||||
|
klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen
|
||||||
|
klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen
|
||||||
|
klicken.
|
||||||
|
More: Weiteres
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtags wurden noch nicht
|
||||||
|
implementiert, bitte versuche es später noch einmal
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Unbekannte YouTube-Adresse, kann
|
||||||
|
in FreeTube nicht geöffnet werden
|
||||||
|
|
|
@ -47,7 +47,7 @@ Search Filters:
|
||||||
Last Hour: 'Τελευταίας ώρας'
|
Last Hour: 'Τελευταίας ώρας'
|
||||||
Today: 'Σήμερα'
|
Today: 'Σήμερα'
|
||||||
This Week: 'Τρέχουσα Εβδομάδα'
|
This Week: 'Τρέχουσα Εβδομάδα'
|
||||||
This Month: 'Αυτό το μήνα'
|
This Month: 'Τρέχων μήνα'
|
||||||
This Year: 'Τρέχων έτος'
|
This Year: 'Τρέχων έτος'
|
||||||
Type:
|
Type:
|
||||||
Type: 'Είδος'
|
Type: 'Είδος'
|
||||||
|
@ -170,7 +170,7 @@ Settings:
|
||||||
Autoplay Videos: 'Αυτόματη αναπαραγωγή βίντεο'
|
Autoplay Videos: 'Αυτόματη αναπαραγωγή βίντεο'
|
||||||
Proxy Videos Through Invidious: 'Βίντεο μέσω του διακομιστή μεσολάβησης Invidious'
|
Proxy Videos Through Invidious: 'Βίντεο μέσω του διακομιστή μεσολάβησης Invidious'
|
||||||
Autoplay Playlists: 'Αυτόματη αναπαραγωγή της λίστας αναπαραγωγής'
|
Autoplay Playlists: 'Αυτόματη αναπαραγωγή της λίστας αναπαραγωγής'
|
||||||
Enable Theatre Mode by Default: 'Ενεργοποίση λειτουργίας κινηματογράφου από προεπιλογή'
|
Enable Theatre Mode by Default: 'Ενεργοποίηση λειτουργίας κινηματογράφου από προεπιλογή'
|
||||||
Default Volume: 'Προεπιλεγμένο επίπεδο έντασης'
|
Default Volume: 'Προεπιλεγμένο επίπεδο έντασης'
|
||||||
Default Playback Rate: 'Προεπιλεγμένη ταχύτητα αναπαραγωγής'
|
Default Playback Rate: 'Προεπιλεγμένη ταχύτητα αναπαραγωγής'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
|
@ -190,6 +190,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Παύση μεταξύ Βίντεο στη λίστα αναπαραγωγής
|
||||||
|
Next Video Interval: Επόμενο διάστημα του βίντεο
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Ρυθμίσεις απορρήτου'
|
Privacy Settings: 'Ρυθμίσεις απορρήτου'
|
||||||
Remember History: 'Διατήρηση ιστορικού'
|
Remember History: 'Διατήρηση ιστορικού'
|
||||||
|
@ -206,6 +208,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Είστε
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Είστε
|
||||||
βέβαιοι ότι θέλετε να καταργήσετε όλες τις συνδρομές και τα προφίλ; Αυτό δεν
|
βέβαιοι ότι θέλετε να καταργήσετε όλες τις συνδρομές και τα προφίλ; Αυτό δεν
|
||||||
μπορεί να αναιρεθεί.'
|
μπορεί να αναιρεθεί.'
|
||||||
|
Automatically Remove Video Meta Files: Αυτόματη αφαίρεση μετα-αρχείων βίντεο
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Ρυθμίσεις Συνδρομών'
|
Subscription Settings: 'Ρυθμίσεις Συνδρομών'
|
||||||
Hide Videos on Watch: 'Απόκρυψη των βίντεο κατά την αναπαραγωγή'
|
Hide Videos on Watch: 'Απόκρυψη των βίντεο κατά την αναπαραγωγή'
|
||||||
|
@ -290,6 +293,7 @@ Settings:
|
||||||
Hide Channel Subscribers: Απόκρυψη συνδρομών καναλιού
|
Hide Channel Subscribers: Απόκρυψη συνδρομών καναλιού
|
||||||
Hide Video Views: Απόκρυψη προβολών βίντεο
|
Hide Video Views: Απόκρυψη προβολών βίντεο
|
||||||
Hide Active Subscriptions: Απόκρυψη ενεργών συνδρομών
|
Hide Active Subscriptions: Απόκρυψη ενεργών συνδρομών
|
||||||
|
Hide Playlists: Απόκρυψη λιστών αναπαραγωγής
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Η
|
The app needs to restart for changes to take effect. Restart and apply change?: Η
|
||||||
εφαρμογή πρέπει να κάνει επανεκκίνηση για να εφαρμοστούν οι αλλαγές. Επανεκκίνηση
|
εφαρμογή πρέπει να κάνει επανεκκίνηση για να εφαρμοστούν οι αλλαγές. Επανεκκίνηση
|
||||||
και εφαρμογή αλλαγών;
|
και εφαρμογή αλλαγών;
|
||||||
|
@ -411,6 +415,7 @@ Profile:
|
||||||
βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα κανάλια; Αυτό δε θα διαγράψει
|
βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα κανάλια; Αυτό δε θα διαγράψει
|
||||||
το κανάλι από οποιοδήποτε άλλο προφίλ.'
|
το κανάλι από οποιοδήποτε άλλο προφίλ.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Φίλτρο προφίλ
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Συνδρομητής'
|
Subscriber: 'Συνδρομητής'
|
||||||
Subscribers: 'Συνδρομητές'
|
Subscribers: 'Συνδρομητές'
|
||||||
|
@ -462,7 +467,7 @@ Video:
|
||||||
View: 'Προβολή'
|
View: 'Προβολή'
|
||||||
Views: 'Προβολές'
|
Views: 'Προβολές'
|
||||||
Loop Playlist: 'Επανάληψη λίστας αναπαραγωγής'
|
Loop Playlist: 'Επανάληψη λίστας αναπαραγωγής'
|
||||||
Shuffle Playlist: 'Τυχαία αναπαραγωγή'
|
Shuffle Playlist: 'Τυχαία σειρά στη λίστα αναπαραγωγής'
|
||||||
Reverse Playlist: 'Αντιστροφή της λίστας αναπαραγωγής'
|
Reverse Playlist: 'Αντιστροφή της λίστας αναπαραγωγής'
|
||||||
Play Next Video: 'Αναπαραγωγή επόμενου βίντεο'
|
Play Next Video: 'Αναπαραγωγή επόμενου βίντεο'
|
||||||
Play Previous Video: 'Αναπαραγωγή προηγούμενου βίντεο'
|
Play Previous Video: 'Αναπαραγωγή προηγούμενου βίντεο'
|
||||||
|
@ -537,6 +542,7 @@ Video:
|
||||||
λίστα σας
|
λίστα σας
|
||||||
Video has been saved: Το βίντεο έχει αποθηκευτεί
|
Video has been saved: Το βίντεο έχει αποθηκευτεί
|
||||||
Save Video: Αποθήκευση βίντεο
|
Save Video: Αποθήκευση βίντεο
|
||||||
|
translated from English: μεταφράστηκε από τα Αγγλικά
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -653,27 +659,41 @@ Tooltips:
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Ορίστε τις μορφές που χρησιμοποιούνται κατά την αναπαραγωγή
|
Default Video Format: Ορίστε τις μορφές που χρησιμοποιούνται κατά την αναπαραγωγή
|
||||||
ενός βίντεο. Οι μορφές DASH μπορούν να παίξουν υψηλότερη ποιότητα. Οι παλαιότερες
|
ενός βίντεο. Οι μορφές DASH μπορούν να παίξουν υψηλότερη ποιότητα. Οι παλαιότερες
|
||||||
μορφές περιορίζονται σε μέγιστο ανάλυσγς 720p αλλά χρησιμοποιούν λιγότερους
|
μορφές περιορίζονται σε μέγιστο ανάλυσης 720p αλλά χρησιμοποιούν λιγότερους
|
||||||
πόρους. Οι μορφές ήχου περιλαμβάνουν ροές μόνο ήχου
|
πόρους. Οι μορφές ήχου περιλαμβάνουν ροές μόνο ήχου.
|
||||||
Proxy Videos Through Invidious: Θα συνδεθεί με το Invidious για να σερβίρει τα
|
Proxy Videos Through Invidious: Θα συνδεθεί με το Invidious για να εξυπηρετήσει
|
||||||
βίντεο αντί να κάνει μια άμεση σύνδεση με το YouTube. Παράκαμψη προτίμησης API
|
τα βίντεο αντί να κάνει μια άμεση σύνδεση με το YouTube. Παράκαμψη προτίμησης
|
||||||
|
API.
|
||||||
Force Local Backend for Legacy Formats: Λειτουργεί μόνο όταν το Invidious API
|
Force Local Backend for Legacy Formats: Λειτουργεί μόνο όταν το Invidious API
|
||||||
είναι η προεπιλογή σας. Όταν ενεργοποιηθεί, το τοπικό API θα χρησιμοποιήσει
|
είναι η προεπιλογή σας. Όταν ενεργοποιηθεί, το τοπικό API θα χρησιμοποιήσει
|
||||||
τις μορφές παλαιού τύπου που επιστρέφονται από αυτό αντί για αυτές που επιστρέφονται
|
τις μορφές παλαιού τύπου που επιστρέφονται από αυτό αντί για αυτές που επιστρέφονται
|
||||||
από το Invidious. Βοηθά όταν τα βίντεο που επιστρέφονται από το Invidious δεν
|
από το Invidious. Βοηθά όταν τα βίντεο που επιστρέφονται από το Invidious δεν
|
||||||
αναπαράγονται λόγω περιορισμών χώρας
|
αναπαράγονται λόγω περιορισμών χώρας.
|
||||||
General Settings:
|
General Settings:
|
||||||
Region for Trending: Η περιοχή των τάσεων σας επιτρέπει να επιλέξετε τα δημοφιλή
|
Region for Trending: Η περιοχή των τάσεων σας επιτρέπει να επιλέξετε τα δημοφιλή
|
||||||
βίντεο της χώρας που θέλετε να εμφανίζονται. Δεν υποστηρίζονται όλες οι χώρες
|
βίντεο της χώρας που θέλετε να εμφανίζονται. Δεν υποστηρίζονται όλες οι χώρες
|
||||||
που προβάλλονται από το YouTube
|
που προβάλλονται από το YouTube.
|
||||||
Thumbnail Preference: Όλες οι μικρογραφίες του FreeTube θα αντικατασταθούν με
|
Thumbnail Preference: Όλες οι μικρογραφίες του FreeTube θα αντικατασταθούν με
|
||||||
ένα πλαίσιο του βίντεο αντί για την προεπιλεγμένη μικρογραφία
|
ένα πλαίσιο του βίντεο αντί για την προεπιλεγμένη μικρογραφία.
|
||||||
Fallback to Non-Preferred Backend on Failure: Όταν το προτιμώμενο API αντιμετωπίζει
|
Fallback to Non-Preferred Backend on Failure: Όταν το προτιμώμενο API αντιμετωπίζει
|
||||||
πρόβλημα, το FreeTube θα προσπαθήσει να χρησιμοποιήσει το μη προτιμώμενο API
|
πρόβλημα, το FreeTube θα προσπαθήσει να χρησιμοποιήσει το μη προτιμώμενο API
|
||||||
ως εναλλακτική μέθοδο όταν ενεργοποιηθεί
|
ως εναλλακτική μέθοδο όταν ενεργοποιηθεί.
|
||||||
Preferred API Backend: Επέλεξε το σύστημα με το οποίο το Freetube θα συλλέγει
|
Preferred API Backend: Επέλεξε το σύστημα με το οποίο το Freetube θα συλλέγει
|
||||||
δεδομένα. Το τοπικό API είναι ένα ενσωματωμένο εργαλείο. Ενώ το Invidious API
|
δεδομένα. Το τοπικό API είναι ένα ενσωματωμένο εργαλείο. Ενώ το Invidious API
|
||||||
απαιτεί έναν Invidious server για να συνδεθεί.
|
απαιτεί έναν Invidious server για να συνδεθεί.
|
||||||
Invidious Instance: Το στιγμιότυπο Invidious στο οποίο το FreeTube θα συνδεθεί
|
Invidious Instance: Το στιγμιότυπο Invidious στο οποίο το FreeTube θα συνδεθεί
|
||||||
για κλήσεις διεπαφής. Καθαρίστε το παρόν στιγμιότυπο για να δείτε μια λίστα
|
για κλήσεις διεπαφής. Καθαρίστε το παρόν στιγμιότυπο για να δείτε μια λίστα
|
||||||
δημόσιων στιγμιότυπων προς επιλογή
|
δημόσιων στιγμιότυπων προς επιλογή.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Όταν είναι ενεργοποιημένο, το FreeTube διαγράφει αυτόματα
|
||||||
|
τα μετα-αρχεία που δημιουργήθηκαν κατά την αναπαραγωγή βίντεο, όταν η σελίδα
|
||||||
|
παρακολούθησης είναι κλειστή.
|
||||||
|
Playing Next Video Interval: Αναπαραγωγή επόμενου βίντεο άμεσα. Κάντε κλικ για ακύρωση.
|
||||||
|
| Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτο. Κάντε κλικ για
|
||||||
|
ακύρωση. | Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτα. Κάντε
|
||||||
|
κλικ για ακύρωση.
|
||||||
|
More: Περισσότερα
|
||||||
|
Hashtags have not yet been implemented, try again later: Τα Hashtags δεν έχουν ακόμη
|
||||||
|
εφαρμοστεί, δοκιμάστε ξανά αργότερα
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Άγνωστος τύπος διεύθυνσης URL YouTube,
|
||||||
|
δεν είναι δυνατό να ανοίξει στην εφαρμογή
|
||||||
|
|
|
@ -28,6 +28,7 @@ Minimize: Minimize
|
||||||
Close: Close
|
Close: Close
|
||||||
Back: Back
|
Back: Back
|
||||||
Forward: Forward
|
Forward: Forward
|
||||||
|
Open New Window: Open New Window
|
||||||
|
|
||||||
Version $ is now available! Click for more details: Version $ is now available! Click
|
Version $ is now available! Click for more details: Version $ is now available! Click
|
||||||
for more details
|
for more details
|
||||||
|
@ -112,6 +113,7 @@ Settings:
|
||||||
Enable Search Suggestions: Enable Search Suggestions
|
Enable Search Suggestions: Enable Search Suggestions
|
||||||
Default Landing Page: Default Landing Page
|
Default Landing Page: Default Landing Page
|
||||||
Locale Preference: Locale Preference
|
Locale Preference: Locale Preference
|
||||||
|
System Default: System Default
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: Preferred API Backend
|
Preferred API Backend: Preferred API Backend
|
||||||
Local API: Local API
|
Local API: Local API
|
||||||
|
@ -171,12 +173,12 @@ Settings:
|
||||||
Proxy Videos Through Invidious: Proxy Videos Through Invidious
|
Proxy Videos Through Invidious: Proxy Videos Through Invidious
|
||||||
Autoplay Playlists: Autoplay Playlists
|
Autoplay Playlists: Autoplay Playlists
|
||||||
Enable Theatre Mode by Default: Enable Theatre Mode by Default
|
Enable Theatre Mode by Default: Enable Theatre Mode by Default
|
||||||
Playlist Next Video Interval: Playlist Next Video Interval
|
Next Video Interval: Next Video Interval
|
||||||
Default Volume: Default Volume
|
Default Volume: Default Volume
|
||||||
Default Playback Rate: Default Playback Rate
|
Default Playback Rate: Default Playback Rate
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: Default Video Format
|
Default Video Format: Default Video Format
|
||||||
Dash Formats: Dash Formats
|
Dash Formats: DASH Formats
|
||||||
Legacy Formats: Legacy Formats
|
Legacy Formats: Legacy Formats
|
||||||
Audio Formats: Audio Formats
|
Audio Formats: Audio Formats
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -195,6 +197,7 @@ Settings:
|
||||||
Privacy Settings: Privacy Settings
|
Privacy Settings: Privacy Settings
|
||||||
Remember History: Remember History
|
Remember History: Remember History
|
||||||
Save Watched Progress: Save Watched Progress
|
Save Watched Progress: Save Watched Progress
|
||||||
|
Automatically Remove Video Meta Files: Automatically Remove Video Meta Files
|
||||||
Clear Search Cache: Clear Search Cache
|
Clear Search Cache: Clear Search Cache
|
||||||
Are you sure you want to clear out your search cache?: Are you sure you want to
|
Are you sure you want to clear out your search cache?: Are you sure you want to
|
||||||
clear out your search cache?
|
clear out your search cache?
|
||||||
|
@ -277,6 +280,11 @@ Settings:
|
||||||
Region: Region
|
Region: Region
|
||||||
City: City
|
City: City
|
||||||
Error getting network information. Is your proxy configured properly?: Error getting network information. Is your proxy configured properly?
|
Error getting network information. Is your proxy configured properly?: Error getting network information. Is your proxy configured properly?
|
||||||
|
SponsorBlock Settings:
|
||||||
|
SponsorBlock Settings: SponsorBlock Settings
|
||||||
|
Enable SponsorBlock: Enable SponsorBlock
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': SponsorBlock API Url (Default is https://sponsor.ajay.app)
|
||||||
|
Notify when sponsor segment is skipped: Notify when sponsor segment is skipped
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: About
|
About: About
|
||||||
|
@ -466,8 +474,17 @@ Video:
|
||||||
Published on: Published on
|
Published on: Published on
|
||||||
Streamed on: Streamed on
|
Streamed on: Streamed on
|
||||||
Started streaming on: Started streaming on
|
Started streaming on: Started streaming on
|
||||||
|
translated from English: translated from English
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: $ % ago
|
Publicationtemplate: $ % ago
|
||||||
|
Skipped segment: Skipped segment
|
||||||
|
Sponsor Block category:
|
||||||
|
sponsor: sponsor
|
||||||
|
intro: intro
|
||||||
|
outro: outro
|
||||||
|
self-promotion: self-promotion
|
||||||
|
interaction: interaction
|
||||||
|
music offtopic: music offtopic
|
||||||
#& Videos
|
#& Videos
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
|
@ -496,10 +513,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: Toggle Theatre Mode
|
Toggle Theatre Mode: Toggle Theatre Mode
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: Change Video Formats
|
Change Video Formats: Change Video Formats
|
||||||
Use Dash Formats: Use Dash Formats
|
Use Dash Formats: Use DASH Formats
|
||||||
Use Legacy Formats: Use Legacy Formats
|
Use Legacy Formats: Use Legacy Formats
|
||||||
Use Audio Formats: Use Audio Formats
|
Use Audio Formats: Use Audio Formats
|
||||||
Dash formats are not available for this video: Dash formats are not available for
|
Dash formats are not available for this video: DASH formats are not available for
|
||||||
this video
|
this video
|
||||||
Audio formats are not available for this video: Audio formats are not available
|
Audio formats are not available for this video: Audio formats are not available
|
||||||
for this video
|
for this video
|
||||||
|
@ -548,29 +565,32 @@ Tooltips:
|
||||||
to connect to.
|
to connect to.
|
||||||
Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem,
|
Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem,
|
||||||
FreeTube will automatically attempt to use your non-preferred API as a fallback
|
FreeTube will automatically attempt to use your non-preferred API as a fallback
|
||||||
method when enabled
|
method when enabled.
|
||||||
Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with
|
Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with
|
||||||
a frame of the video instead of the default thumbnail
|
a frame of the video instead of the default thumbnail.
|
||||||
Invidious Instance: The Invidious instance that FreeTube will connect to for API
|
Invidious Instance: The Invidious instance that FreeTube will connect to for API
|
||||||
calls. Clear the current instance to see a list of public instances to choose
|
calls. Clear the current instance to see a list of public instances to choose
|
||||||
from
|
from.
|
||||||
Region for Trending: The region of trends allows you to pick which country's trending
|
Region for Trending: The region of trends allows you to pick which country's trending
|
||||||
videos you want to have displayed. Not all countries displayed are actually
|
videos you want to have displayed. Not all countries displayed are actually
|
||||||
supported by YouTube
|
supported by YouTube.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: Only works when the Invidious API is your
|
Force Local Backend for Legacy Formats: Only works when the Invidious API is your
|
||||||
default. When enabled, the local API will run and use the legacy formats returned
|
default. When enabled, the local API will run and use the legacy formats returned
|
||||||
by that instead of the ones returned by Invidious. Helps when the videos returned
|
by that instead of the ones returned by Invidious. Helps when the videos returned
|
||||||
by Invidious don't play due to country restrictions
|
by Invidious don't play due to country restrictions.
|
||||||
Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead
|
Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead
|
||||||
of making a direct connection to YouTube. Overrides API preference
|
of making a direct connection to YouTube. Overrides API preference.
|
||||||
Default Video Format: Set the formats used when a video plays. Dash formats can
|
Default Video Format: Set the formats used when a video plays. DASH formats can
|
||||||
play higher qualities. Legacy formats are limited to a max of 720p but use less
|
play higher qualities. Legacy formats are limited to a max of 720p but use less
|
||||||
bandwidth. Audio formats are audio only streams
|
bandwidth. Audio formats are audio only streams.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default
|
Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default
|
||||||
method for grabbing your subscription feed. RSS is faster and prevents IP blocking,
|
method for grabbing your subscription feed. RSS is faster and prevents IP blocking,
|
||||||
but doesn't provide certain information like video duration or live status
|
but doesn't provide certain information like video duration or live status
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: When enabled, FreeTube automatically deletes meta files created during video playback,
|
||||||
|
when the watch page is closed.
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): Local API Error (Click to copy)
|
Local API Error (Click to copy): Local API Error (Click to copy)
|
||||||
|
@ -581,6 +601,8 @@ This video is unavailable because of missing formats. This can happen due to cou
|
||||||
video is unavailable because of missing formats. This can happen due to country
|
video is unavailable because of missing formats. This can happen due to country
|
||||||
unavailability.
|
unavailability.
|
||||||
Subscriptions have not yet been implemented: Subscriptions have not yet been implemented
|
Subscriptions have not yet been implemented: Subscriptions have not yet been implemented
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Unknown YouTube url type, cannot be opened in app
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtags have not yet been implemented, try again later
|
||||||
Loop is now disabled: Loop is now disabled
|
Loop is now disabled: Loop is now disabled
|
||||||
Loop is now enabled: Loop is now enabled
|
Loop is now enabled: Loop is now enabled
|
||||||
Shuffle is now disabled: Shuffle is now disabled
|
Shuffle is now disabled: Shuffle is now disabled
|
||||||
|
|
|
@ -44,7 +44,7 @@ Search Filters:
|
||||||
Sort By: 'Sort By'
|
Sort By: 'Sort By'
|
||||||
Most Relevant: 'Most Relevant'
|
Most Relevant: 'Most Relevant'
|
||||||
Rating: 'Rating'
|
Rating: 'Rating'
|
||||||
Upload Date: 'Upload Date'
|
Upload Date: 'Upload date'
|
||||||
View Count: 'View Count'
|
View Count: 'View Count'
|
||||||
Time:
|
Time:
|
||||||
Time: 'Time'
|
Time: 'Time'
|
||||||
|
@ -70,6 +70,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Fetching results. Please wait'
|
Fetching results. Please wait: 'Fetching results. Please wait'
|
||||||
Fetch more results: 'Fetch more results'
|
Fetch more results: 'Fetch more results'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: There are no more results for this search
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Subscriptions'
|
Subscriptions: 'Subscriptions'
|
||||||
|
@ -86,6 +87,12 @@ Most Popular: 'Most Popular'
|
||||||
Playlists: 'Playlists'
|
Playlists: 'Playlists'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Your Playlists'
|
Your Playlists: 'Your Playlists'
|
||||||
|
Playlist Message: This page is not reflective of fully working playlists. It only
|
||||||
|
lists videos that you have saved or favourited. When the work has finished, all
|
||||||
|
videos currently here will be migrated to a ‘Favourites’ playlist.
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your
|
||||||
|
saved videos are empty. Click on the save button on the corner of a video to have
|
||||||
|
it listed here
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'History'
|
History: 'History'
|
||||||
|
@ -121,6 +128,8 @@ Settings:
|
||||||
(Default is https://invidious.snopyta.org)'
|
(Default is https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Region for Trending'
|
Region for Trending: 'Region for Trending'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
View all Invidious instance information: View all Invidious instance information
|
||||||
|
System Default: System Default
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Theme Settings'
|
Theme Settings: 'Theme Settings'
|
||||||
Match Top Bar with Main Color: 'Match top bar with main colour'
|
Match Top Bar with Main Color: 'Match top bar with main colour'
|
||||||
|
@ -165,7 +174,7 @@ Settings:
|
||||||
Default Playback Rate: 'Default Playback Rate'
|
Default Playback Rate: 'Default Playback Rate'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Default Video Format'
|
Default Video Format: 'Default Video Format'
|
||||||
Dash Formats: 'Dash Formats'
|
Dash Formats: 'DASH Formats'
|
||||||
Legacy Formats: 'Legacy Formats'
|
Legacy Formats: 'Legacy Formats'
|
||||||
Audio Formats: 'Audio Formats'
|
Audio Formats: 'Audio Formats'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -180,6 +189,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Playlist Next Video Interval
|
||||||
|
Next Video Interval: Next Video Interval
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Privacy Settings'
|
Privacy Settings: 'Privacy Settings'
|
||||||
Remember History: 'Remember History'
|
Remember History: 'Remember History'
|
||||||
|
@ -196,6 +207,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Are
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Are
|
||||||
you sure you want to remove all subscriptions and profiles? This cannot be
|
you sure you want to remove all subscriptions and profiles? This cannot be
|
||||||
undone.'
|
undone.'
|
||||||
|
Automatically Remove Video Meta Files: Automatically Remove Video Meta Files
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Subscription Settings'
|
Subscription Settings: 'Subscription Settings'
|
||||||
Hide Videos on Watch: 'Hide Videos on Watch'
|
Hide Videos on Watch: 'Hide Videos on Watch'
|
||||||
|
@ -239,6 +251,7 @@ Settings:
|
||||||
Unknown data key: 'Unknown data key'
|
Unknown data key: 'Unknown data key'
|
||||||
How do I import my subscriptions?: 'How do I import my subscriptions?'
|
How do I import my subscriptions?: 'How do I import my subscriptions?'
|
||||||
Check for Legacy Subscriptions: Check for Legacy Subscriptions
|
Check for Legacy Subscriptions: Check for Legacy Subscriptions
|
||||||
|
Manage Subscriptions: Manage Subscriptions
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: 'Advanced Settings'
|
Advanced Settings: 'Advanced Settings'
|
||||||
Enable Debug Mode (Prints data to the console): 'Enable Debug Mode (Prints data
|
Enable Debug Mode (Prints data to the console): 'Enable Debug Mode (Prints data
|
||||||
|
@ -277,9 +290,32 @@ Settings:
|
||||||
Hide Video Views: Hide Video Views
|
Hide Video Views: Hide Video Views
|
||||||
Hide Active Subscriptions: Hide Active Subscriptions
|
Hide Active Subscriptions: Hide Active Subscriptions
|
||||||
Distraction Free Settings: Distraction Free Settings
|
Distraction Free Settings: Distraction Free Settings
|
||||||
|
Hide Playlists: Hide Playlists
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: The
|
The app needs to restart for changes to take effect. Restart and apply change?: The
|
||||||
app needs to restart for changes to take effect. Do you want to restart and apply
|
app needs to restart for changes to take effect. Do you want to restart and apply
|
||||||
the changes?
|
the changes?
|
||||||
|
Proxy Settings:
|
||||||
|
Error getting network information. Is your proxy configured properly?: Error getting
|
||||||
|
network information. Is your proxy configured properly?
|
||||||
|
City: City
|
||||||
|
Region: Region
|
||||||
|
Country: Country
|
||||||
|
Ip: Ip
|
||||||
|
Your Info: Your Info
|
||||||
|
Test Proxy: Test Proxy
|
||||||
|
Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send
|
||||||
|
a request to
|
||||||
|
Proxy Port Number: Proxy Port Number
|
||||||
|
Proxy Host: Proxy Host
|
||||||
|
Proxy Protocol: Proxy Protocol
|
||||||
|
Enable Tor / Proxy: Enable Tor / Proxy
|
||||||
|
Proxy Settings: 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
|
||||||
|
Url (Default is https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: Enable SponsorBlock
|
||||||
|
SponsorBlock Settings: SponsorBlock Settings
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: About
|
About: About
|
||||||
|
@ -289,7 +325,7 @@ About:
|
||||||
Donate: Donate
|
Donate: Donate
|
||||||
Beta: Beta
|
Beta: Beta
|
||||||
License: License
|
License: License
|
||||||
Email: Email
|
Email: E-mail
|
||||||
Channel Rules: Channel Rules
|
Channel Rules: Channel Rules
|
||||||
Report an Issue: Report an Issue
|
Report an Issue: Report an Issue
|
||||||
Wiki: Wiki
|
Wiki: Wiki
|
||||||
|
@ -301,6 +337,22 @@ About:
|
||||||
Website: Website
|
Website: Website
|
||||||
Translate via Weblate: Translate via Weblate
|
Translate via Weblate: Translate via Weblate
|
||||||
|
|
||||||
|
these people and projects: these people and projects
|
||||||
|
FreeTube is made possible by: FreeTube is made possible by
|
||||||
|
Translate: Translate
|
||||||
|
room rules: room rules
|
||||||
|
Please read the: Please read the
|
||||||
|
Chat on Matrix: Chat on Matrix
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Please check for duplicates before posting: Please check for duplicates before posting
|
||||||
|
GitHub issues: GitHub issues
|
||||||
|
Report a problem: Report a problem
|
||||||
|
FreeTube Wiki: FreeTube Wiki
|
||||||
|
GitHub releases: GitHub releases
|
||||||
|
Downloads / Changelog: Downloads / Changelog
|
||||||
|
View License: View Licence
|
||||||
|
Licensed under the AGPLv3: Licensed under the AGPLv3
|
||||||
|
Source code: Source code
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: 'Profile Select'
|
Profile Select: 'Profile Select'
|
||||||
All Channels: 'All Channels'
|
All Channels: 'All Channels'
|
||||||
|
@ -342,6 +394,7 @@ Profile:
|
||||||
you sure you want to delete the selected channels? This will not delete the channel
|
you sure you want to delete the selected channels? This will not delete the channel
|
||||||
from any other profile.'
|
from any other profile.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Profile Filter
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Subscriber'
|
Subscriber: 'Subscriber'
|
||||||
Subscribers: 'Subscribers'
|
Subscribers: 'Subscribers'
|
||||||
|
@ -461,6 +514,19 @@ Video:
|
||||||
Open Channel in Invidious: Open this Channel in Invidious
|
Open Channel in Invidious: Open this Channel in Invidious
|
||||||
Copy YouTube Channel Link: Copy the Link of this YouTube Channel
|
Copy YouTube Channel Link: Copy the Link of this YouTube Channel
|
||||||
Open Channel in YouTube: Open this Channel in YouTube
|
Open Channel in YouTube: Open this Channel in YouTube
|
||||||
|
Video has been removed from your saved list: Video has been removed from your saved
|
||||||
|
list
|
||||||
|
Video has been saved: Video has been saved
|
||||||
|
Save Video: Save Video
|
||||||
|
translated from English: translated from English
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: music offtopic
|
||||||
|
interaction: interaction
|
||||||
|
self-promotion: self-promotion
|
||||||
|
outro: outro
|
||||||
|
intro: intro
|
||||||
|
sponsor: sponsor
|
||||||
|
Skipped segment: Skipped segment
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -488,10 +554,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Toggle Theatre Mode'
|
Toggle Theatre Mode: 'Toggle Theatre Mode'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Change Video Formats'
|
Change Video Formats: 'Change Video Formats'
|
||||||
Use Dash Formats: 'Use Dash Formats'
|
Use Dash Formats: 'Use DASH Formats'
|
||||||
Use Legacy Formats: 'Use Legacy Formats'
|
Use Legacy Formats: 'Use Legacy Formats'
|
||||||
Use Audio Formats: 'Use Audio Formats'
|
Use Audio Formats: 'Use Audio Formats'
|
||||||
Dash formats are not available for this video: 'Dash formats are not available for
|
Dash formats are not available for this video: 'DASH formats are not available for
|
||||||
this video'
|
this video'
|
||||||
Audio formats are not available for this video: 'Audio formats are not available
|
Audio formats are not available for this video: 'Audio formats are not available
|
||||||
for this video'
|
for this video'
|
||||||
|
@ -560,29 +626,41 @@ Tooltips:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default
|
Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default
|
||||||
method to grab your subscription feed. RSS is faster and prevents IP blocking,
|
method to grab your subscription feed. RSS is faster and prevents IP blocking,
|
||||||
but it doesn't provide certain information like video duration, or live status
|
but it doesn’t provide certain information like video duration, or live status
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Set the formats used when a video plays. Dash formats can
|
Default Video Format: Set the formats used when a video plays. DASH formats can
|
||||||
play much higher qualities. Legacy formats are limited to a maximum of 720p,
|
play higher qualities. Legacy formats are limited to a max of 720p but use less
|
||||||
but use less bandwidth. Audio formats stream only audio
|
bandwidth. Audio formats are audio only streams.
|
||||||
Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead
|
Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead
|
||||||
of making a direct connection to YouTube. Overrides API preference
|
of making a direct connection to YouTube. Overrides API preference.
|
||||||
Force Local Backend for Legacy Formats: This only works when the Invidious API
|
Force Local Backend for Legacy Formats: Only works when the Invidious API is your
|
||||||
is your default. When enabled, the local API will run and use the legacy formats
|
default. When enabled, the local API will run and use the legacy formats returned
|
||||||
returned by that instead of the ones returned by Invidious. It helps when the
|
by that instead of the ones returned by Invidious. Helps when the videos returned
|
||||||
videos returned by Invidious can't play because of regional restrictions
|
by Invidious don’t play due to country restrictions.
|
||||||
General Settings:
|
General Settings:
|
||||||
Region for Trending: The region of trends allows you to pick which country's trending
|
Region for Trending: The region of trends allows you to pick which country’s trending
|
||||||
videos you want to have displayed. Not all countries displayed are actually
|
videos you want to have displayed. Not all countries displayed are actually
|
||||||
supported by YouTube
|
supported by YouTube.
|
||||||
Invidious Instance: The Invidious instance that FreeTube will connect to for API
|
Invidious Instance: The Invidious instance that FreeTube will connect to for API
|
||||||
calls. Clear the current instance to see a list of public instances to choose
|
calls. Clear the current instance to see a list of public instances to choose
|
||||||
from
|
from.
|
||||||
Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with
|
Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with
|
||||||
a frame of the video instead of the default thumbnail
|
a frame of the video instead of the default thumbnail.
|
||||||
Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem,
|
Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem,
|
||||||
FreeTube will automatically attempt to use your non-preferred API as a fallback
|
FreeTube will automatically attempt to use your non-preferred API as a fallback
|
||||||
method when it's enabled
|
method when enabled.
|
||||||
Preferred API Backend: Choose the back-end that FreeTube uses to obtain data.
|
Preferred API Backend: Choose the back-end that FreeTube uses to obtain data.
|
||||||
The local API is a built-in extractor. The Invidious API requires an Invidious
|
The local API is a built-in extractor. The Invidious API requires an Invidious
|
||||||
server to connect to.
|
server to connect to.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: When enabled, FreeTube automatically deletes meta files
|
||||||
|
created during video playback, when the watch page is closed.
|
||||||
|
Playing Next Video Interval: Playing next video in no time. Click to cancel. | Playing
|
||||||
|
next video in {nextVideoInterval} second. Click to cancel. | Playing next video
|
||||||
|
in {nextVideoInterval} seconds. Click to cancel.
|
||||||
|
More: More
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtags have not yet been
|
||||||
|
implemented, try again later
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Unknown YouTube url type, cannot
|
||||||
|
be opened in app
|
||||||
|
Open New Window: Open New Window
|
||||||
|
|
|
@ -258,6 +258,9 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Blog: Blogo
|
||||||
|
Website: Retejo
|
||||||
|
Email: Retpoŝto
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: ''
|
Profile Select: ''
|
||||||
All Channels: ''
|
All Channels: ''
|
||||||
|
|
|
@ -294,6 +294,9 @@ About:
|
||||||
Latest FreeTube News: 'Últimas noticias de FreeTube'
|
Latest FreeTube News: 'Últimas noticias de FreeTube'
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Blog: Blog
|
||||||
|
Website: Sitio web
|
||||||
|
Email: Correo electrónico
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Suscriptor'
|
Subscriber: 'Suscriptor'
|
||||||
Subscribers: 'Suscriptores'
|
Subscribers: 'Suscriptores'
|
||||||
|
|
|
@ -171,7 +171,7 @@ Settings:
|
||||||
Legacy Formats: 'Legacy'
|
Legacy Formats: 'Legacy'
|
||||||
Audio Formats: 'Solo audio'
|
Audio Formats: 'Solo audio'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Calidad predeterminada'
|
Default Quality: 'Calidad Predeterminada'
|
||||||
Auto: 'Automático'
|
Auto: 'Automático'
|
||||||
144p: '144p'
|
144p: '144p'
|
||||||
240p: '240p'
|
240p: '240p'
|
||||||
|
@ -182,36 +182,37 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Intervalo de Siguiente Video en Playlist
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Privacidad'
|
Privacy Settings: 'Ajustes de Privacidad'
|
||||||
Remember History: 'Recordar historial'
|
Remember History: 'Recordar Historial'
|
||||||
Save Watched Progress: 'Guardar progreso reproducido'
|
Save Watched Progress: 'Guardar progreso reproducido'
|
||||||
Clear Search Cache: 'Borrar cache de búsqueda'
|
Clear Search Cache: 'Borrar Cache de Búsqueda'
|
||||||
Are you sure you want to clear out your search cache?: '¿Seguro de que quieres
|
Are you sure you want to clear out your search cache?: '¿Seguro de que quieres
|
||||||
borrar la cache de búsqueda?'
|
borrar la cache de búsqueda?'
|
||||||
Search cache has been cleared: '¡Hecho!'
|
Search cache has been cleared: 'El cache de búsqueda ha sido eliminado'
|
||||||
Remove Watch History: 'Borrar historial de reproducción'
|
Remove Watch History: 'Borrar historial de reproducción'
|
||||||
Are you sure you want to remove your entire watch history?: '¿Seguro de que quieres
|
Are you sure you want to remove your entire watch history?: '¿Seguro de que quieres
|
||||||
borrar el historial de reproducción?'
|
borrar el historial de reproducción?'
|
||||||
Watch history has been cleared: '¡Hecho!'
|
Watch history has been cleared: 'El Historial de Reproducción ha sido eliminado'
|
||||||
Remove All Subscriptions / Profiles: 'Borrar todas las suscripciones y perfiles'
|
Remove All Subscriptions / Profiles: 'Borrar todas las suscripciones y perfiles'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '¿Estás
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '¿Estás
|
||||||
seguro de que quieres borrar todas las suscripciones y perfiles? Esta operación
|
seguro de que quieres borrar todas las suscripciones y perfiles? Esta operación
|
||||||
será irreversible.'
|
será irreversible.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Suscripciones'
|
Subscription Settings: 'Ajustes de Suscripciones'
|
||||||
Hide Videos on Watch: 'Ocultar videos vistos'
|
Hide Videos on Watch: 'Ocultar videos vistos'
|
||||||
Fetch Feeds from RSS: 'Obtener suscripciones usando RSS'
|
Fetch Feeds from RSS: 'Obtener suscripciones usando RSS'
|
||||||
Manage Subscriptions: 'Administrar suscripciones'
|
Manage Subscriptions: 'Administrar Suscripciones'
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: 'Datos locales'
|
Data Settings: 'Ajustes de Datos'
|
||||||
Select Import Type: 'Tipo de importación'
|
Select Import Type: 'Seleccionar Tipo de Importación'
|
||||||
Select Export Type: 'Tipo de exportación'
|
Select Export Type: 'Seleccionar Tipo de Exportación'
|
||||||
Import Subscriptions: 'Importar suscripciones'
|
Import Subscriptions: 'Importar Suscripciones'
|
||||||
Import FreeTube: 'Importar FreeTube'
|
Import FreeTube: 'Importar FreeTube'
|
||||||
Import YouTube: 'Importar YouTube'
|
Import YouTube: 'Importar YouTube'
|
||||||
Import NewPipe: 'Importar NewPipe'
|
Import NewPipe: 'Importar NewPipe'
|
||||||
Export Subscriptions: 'Exportar suscripciones'
|
Export Subscriptions: 'Exportar Suscripciones'
|
||||||
Export FreeTube: 'Exportar FreeTube'
|
Export FreeTube: 'Exportar FreeTube'
|
||||||
Export YouTube: 'Exportar YouTube'
|
Export YouTube: 'Exportar YouTube'
|
||||||
Export NewPipe: 'Exportar NewPipe'
|
Export NewPipe: 'Exportar NewPipe'
|
||||||
|
@ -270,16 +271,17 @@ Settings:
|
||||||
#& No
|
#& No
|
||||||
|
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Hide Video Likes And Dislikes: No mostrar likes/dislikes en videos
|
Hide Video Likes And Dislikes: Ocultar Likes/Dislikes del Video
|
||||||
Hide Video Views: No mostrar visitas en videos
|
Hide Video Views: Ocultar las Vistas del Video
|
||||||
Hide Live Chat: No mostrar chat
|
Hide Live Chat: Ocultar Chat en Vivo
|
||||||
Hide Popular Videos: No mostrar más populares
|
Hide Popular Videos: Ocultar Videos Populares
|
||||||
Hide Trending Videos: No mostrar tendencias
|
Hide Trending Videos: Ocultar Tendencias
|
||||||
Hide Recommended Videos: No mostrar videos recomendados
|
Hide Recommended Videos: Ocultar Videos Recomendados
|
||||||
Hide Comment Likes: No mostrar likes de comentarios
|
Hide Comment Likes: Ocultar Likes de Comentarios
|
||||||
Hide Channel Subscribers: No mostrar suscriptores en canales
|
Hide Channel Subscribers: Ocultar Suscriptores de Canales
|
||||||
Distraction Free Settings: No distraer
|
Distraction Free Settings: Sin Distracción
|
||||||
Hide Active Subscriptions: Ocultar suscripciones activas
|
Hide Active Subscriptions: Ocultar Suscripciones Activas
|
||||||
|
Hide Playlists: Ocultar las Playlists
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres
|
The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres
|
||||||
reiniciar FreeTube ahora para aplicar los cambios?
|
reiniciar FreeTube ahora para aplicar los cambios?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
|
@ -340,7 +342,7 @@ About:
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: Correo electrónico
|
Email: Correo electrónico
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
Website: Página web
|
Website: Sitio web
|
||||||
Please check for duplicates before posting: Por favor, antes de publicar asegúrate
|
Please check for duplicates before posting: Por favor, antes de publicar asegúrate
|
||||||
de no duplicar temas
|
de no duplicar temas
|
||||||
GitHub issues: Sugerencias en GitHub
|
GitHub issues: Sugerencias en GitHub
|
||||||
|
@ -396,6 +398,7 @@ Profile:
|
||||||
Other Channels: Otros canales
|
Other Channels: Otros canales
|
||||||
Subscription List: Lista de suscripciones
|
Subscription List: Lista de suscripciones
|
||||||
Profile Select: Seleccionar perfil
|
Profile Select: Seleccionar perfil
|
||||||
|
Profile Filter: Filtro de Perfil
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Suscriptor'
|
Subscriber: 'Suscriptor'
|
||||||
Subscribers: 'Suscriptores'
|
Subscribers: 'Suscriptores'
|
||||||
|
@ -488,7 +491,7 @@ Video:
|
||||||
Year: 'Año'
|
Year: 'Año'
|
||||||
Years: 'Años'
|
Years: 'Años'
|
||||||
Ago: 'Hace'
|
Ago: 'Hace'
|
||||||
Upcoming: 'Comenzará el'
|
Upcoming: 'Se estrenará el'
|
||||||
Published on: 'Publicado el'
|
Published on: 'Publicado el'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'Hace $ %'
|
Publicationtemplate: 'Hace $ %'
|
||||||
|
@ -518,6 +521,7 @@ Video:
|
||||||
de guardados
|
de guardados
|
||||||
Video has been saved: El video ha sido guardado
|
Video has been saved: El video ha sido guardado
|
||||||
Save Video: Guardiar video
|
Save Video: Guardiar video
|
||||||
|
translated from English: traducido del Inglés
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -529,20 +533,20 @@ Playlist:
|
||||||
#& About
|
#& About
|
||||||
View Full Playlist: 'Ver la lista de reproducción completa'
|
View Full Playlist: 'Ver la lista de reproducción completa'
|
||||||
Videos: 'Videos'
|
Videos: 'Videos'
|
||||||
View: 'Vista'
|
View: 'Ver'
|
||||||
Views: 'Vistas'
|
Views: 'Vistas'
|
||||||
Last Updated On: 'Se actualizó por última vez el'
|
Last Updated On: 'Se actualizó por última vez el'
|
||||||
Share Playlist:
|
Share Playlist:
|
||||||
Share Playlist: 'Compartir lista de reproducción'
|
Share Playlist: 'Compartir lista de reproducción'
|
||||||
Copy YouTube Link: 'Copiar enlace YouTube'
|
Copy YouTube Link: 'Copiar enlace YouTube'
|
||||||
Open in YouTube: 'Abrir en YouTube'
|
Open in YouTube: 'Abrir en YouTube'
|
||||||
Copy Invidious Link: 'Copiar enlace Invidious'
|
Copy Invidious Link: 'Copiar Enlace de Invidious'
|
||||||
Open in Invidious: 'Abrir en Invidious'
|
Open in Invidious: 'Abrir en Invidious'
|
||||||
|
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: 'Pasar al modo cine'
|
Toggle Theatre Mode: 'Activar Modo Cine'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Cambiar formato de video'
|
Change Video Formats: 'Cambiar formato de video'
|
||||||
Use Dash Formats: 'Usar formato Dash'
|
Use Dash Formats: 'Usar formato Dash'
|
||||||
|
@ -553,41 +557,43 @@ Change Format:
|
||||||
Dash formats are not available for this video: El formato Dash no está disponible
|
Dash formats are not available for this video: El formato Dash no está disponible
|
||||||
para este video
|
para este video
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Compartir video'
|
Share Video: 'Compartir Video'
|
||||||
Copy Link: 'Copiar enlace'
|
Copy Link: 'Copiar enlace'
|
||||||
Open Link: 'Abrir enlace'
|
Open Link: 'Abrir enlace'
|
||||||
Copy Embed: 'Copiar código encrustado'
|
Copy Embed: 'Copiar código encrustado'
|
||||||
Open Embed: 'Abrir código encrustado'
|
Open Embed: 'Abrir código encrustado'
|
||||||
# On Click
|
# On Click
|
||||||
Invidious URL copied to clipboard: 'El enlace de Invidious ha sido copiado al portapapeles'
|
Invidious URL copied to clipboard: 'Enlace de Invidious copiado al porta-papeles'
|
||||||
Invidious Embed URL copied to clipboard: 'El enlace encrustada de Invidious ha sido
|
Invidious Embed URL copied to clipboard: 'Enlace Incrustado de Invidious copiado
|
||||||
copiada al portapapeles'
|
al porta-papeles'
|
||||||
YouTube URL copied to clipboard: 'El enlace de Youtube ha sido copiado al portapapeles'
|
YouTube URL copied to clipboard: 'Enlace de YouTube copiado al porta-papeles'
|
||||||
YouTube Embed URL copied to clipboard: 'El enlace encrustado de Youtube ha sido
|
YouTube Embed URL copied to clipboard: 'Enlace Incrustado de YouTube copiado al
|
||||||
copiado al portapapeles'
|
porta-papeles'
|
||||||
Include Timestamp: Incluir marcas de tiempo
|
Include Timestamp: Incluir marcas de tiempo
|
||||||
YouTube Channel URL copied to clipboard: Enlace youtube copiado
|
YouTube Channel URL copied to clipboard: Enlace del Canal de YouTube copiado al
|
||||||
Invidious Channel URL copied to clipboard: Enlace Invidious copiado
|
porta-papeles
|
||||||
Mini Player: 'Reproductor Mini'
|
Invidious Channel URL copied to clipboard: Enlace del Canal de Invidious copiado
|
||||||
|
al porta-papeles
|
||||||
|
Mini Player: 'Mini Reproductor'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Comentarios'
|
Comments: 'Comentarios'
|
||||||
Click to View Comments: 'Ver comentarios'
|
Click to View Comments: 'Ver Comentarios'
|
||||||
Getting comment replies, please wait: 'Obteniendo las respuestas. Por favor, espera'
|
Getting comment replies, please wait: 'Obteniendo las respuestas. Por favor, espera...'
|
||||||
Show Comments: 'Ver comentarios'
|
Show Comments: 'Ver Comentarios'
|
||||||
Hide Comments: 'Esconder comentarios'
|
Hide Comments: 'Ocultar Comentarios'
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
View: 'Ver'
|
View: 'Ver'
|
||||||
Hide: 'Esconder'
|
Hide: 'Ocultar'
|
||||||
Replies: 'Respuestas'
|
Replies: 'Respuestas'
|
||||||
Reply: 'Respuesta'
|
Reply: 'Responder'
|
||||||
There are no comments available for this video: 'Aún no hay comentarios'
|
There are no comments available for this video: 'Aún no hay comentarios'
|
||||||
Load More Comments: 'Más comentarios'
|
Load More Comments: 'Más comentarios'
|
||||||
There are no more comments for this video: No hay más comentarios en este video
|
There are no more comments for this video: No hay más comentarios en este video
|
||||||
Newest first: Comentarios más recientes
|
Newest first: Los más Recientes Primero
|
||||||
Top comments: Mejores comentarios
|
Top comments: Mejores comentarios
|
||||||
Sort by: Ordenar por
|
Sort by: Ordenar por
|
||||||
No more comments available: No hay más comentarios
|
No more comments available: No hay más comentarios
|
||||||
Up Next: 'Siguientes'
|
Up Next: 'A Continuación'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): 'Error de la API local (Click para copiar el código)'
|
Local API Error (Click to copy): 'Error de la API local (Click para copiar el código)'
|
||||||
|
@ -615,15 +621,16 @@ A new blog is now available, $. Click to view more: Nueva publicación del blog
|
||||||
Download From Site: Descargar de la web
|
Download From Site: Descargar de la web
|
||||||
Version $ is now available! Click for more details: La versión $ está disponible!
|
Version $ is now available! Click for more details: La versión $ está disponible!
|
||||||
Click para saber más
|
Click para saber más
|
||||||
The playlist has been reversed: Orden invertido
|
The playlist has been reversed: Orden de Playlist invertido
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Este
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Este
|
||||||
video no está disponible por no tener un formato válido. Esto puede suceder por
|
video no está disponible por no tener un formato válido. Esto puede suceder por
|
||||||
la falta de acceso de este formato a tu región.
|
la falta de acceso de este formato a tu región.
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Si lo habilitas, FreeTube usará RSS por defecto para obtener
|
Fetch Feeds from RSS: Si lo habilitas, FreeTube usará RSS en lugar de su método
|
||||||
tus suscripciones. RSS es más rápido e impide el bloqueo de IP, pero no podrá
|
por defecto para obtener tus actualizaciones de suscripciones. RSS es más rápido
|
||||||
obtener cierta información como la duración de videos o si un video es en directo
|
e impide el bloqueo de IP, pero no provee cierta información como la duración
|
||||||
|
de un video o si es en directo
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Selecciona el formato usado para reproducir videos. El formato
|
Default Video Format: Selecciona el formato usado para reproducir videos. El formato
|
||||||
Dash proporciona resoluciones más altas. El formato Legacy está limitado a 720p,
|
Dash proporciona resoluciones más altas. El formato Legacy está limitado a 720p,
|
||||||
|
@ -644,7 +651,11 @@ Tooltips:
|
||||||
Thumbnail Preference: Todas las miniaturas en FreeTube serán reemplazadas con
|
Thumbnail Preference: Todas las miniaturas en FreeTube serán reemplazadas con
|
||||||
un frame del vídeo en lugar de la miniatura por defecto
|
un frame del vídeo en lugar de la miniatura por defecto
|
||||||
Fallback to Non-Preferred Backend on Failure: Si la API primaria falla, FreeTube
|
Fallback to Non-Preferred Backend on Failure: Si la API primaria falla, FreeTube
|
||||||
utilizará automáticamente la API secundara si se habilita
|
utilizará automáticamente la API secundara si se habilita.
|
||||||
Preferred API Backend: Elige el backend que FreeTube utiliza para obtener datos.
|
Preferred API Backend: Elige el backend que FreeTube utiliza para obtener datos.
|
||||||
La API local es un extractor incluido. La API Invidious requiere un servidor
|
La API local es un extractor incluido. La API Invidious requiere un servidor
|
||||||
Invidious al que conectarse.
|
Invidious al que conectarse.
|
||||||
|
More: Más
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Tipo de LRU desconocido. No se
|
||||||
|
puede abrir en applicación
|
||||||
|
Open New Window: Abrir ventana nueva
|
||||||
|
|
|
@ -273,7 +273,7 @@ Settings:
|
||||||
Distraction Free Settings: Configuraciones para evitar distraerse
|
Distraction Free Settings: Configuraciones para evitar distraerse
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Esta
|
The app needs to restart for changes to take effect. Restart and apply change?: Esta
|
||||||
aplicación necesita reiniciarse para que los cambios entren en efecto. ¿Reiniciar
|
aplicación necesita reiniciarse para que los cambios entren en efecto. ¿Reiniciar
|
||||||
y aplicar cambios?
|
y aplicar el cambio?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: ''
|
About: ''
|
||||||
|
@ -296,6 +296,9 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Website: Sitio web
|
||||||
|
Email: Correo electrónico
|
||||||
|
Blog: Blog
|
||||||
Profile:
|
Profile:
|
||||||
All Channels: ''
|
All Channels: ''
|
||||||
Profile Manager: ''
|
Profile Manager: ''
|
||||||
|
@ -477,8 +480,8 @@ Playing next video in 5 seconds. Click to cancel: ''
|
||||||
Canceled next video autoplay: ''
|
Canceled next video autoplay: ''
|
||||||
'The playlist has ended. Enable loop to continue playing': ''
|
'The playlist has ended. Enable loop to continue playing': ''
|
||||||
|
|
||||||
Yes: ''
|
Yes: 'Sí'
|
||||||
No: ''
|
No: 'No'
|
||||||
A new blog is now available, $. Click to view more: Un nuevo blog está disponible,
|
A new blog is now available, $. Click to view more: Un nuevo blog está disponible,
|
||||||
$. Hacé click para ver más
|
$. Hacé click para ver más
|
||||||
Download From Site: Descargar desde el sitio
|
Download From Site: Descargar desde el sitio
|
||||||
|
|
|
@ -70,6 +70,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Laen tulemusi. Palun oota üks hetk'
|
Fetching results. Please wait: 'Laen tulemusi. Palun oota üks hetk'
|
||||||
Fetch more results: 'Lae veel andmeid'
|
Fetch more results: 'Lae veel andmeid'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: Sellel otsingul pole rohkem vastuseid
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Tellimused'
|
Subscriptions: 'Tellimused'
|
||||||
|
@ -78,11 +79,18 @@ Subscriptions:
|
||||||
tellimuste loend on hetkel tühi. Telli kanaleid ja sa näed neid siin loendis.'
|
tellimuste loend on hetkel tühi. Telli kanaleid ja sa näed neid siin loendis.'
|
||||||
'Getting Subscriptions. Please wait.': 'Laen tellimusi, palun oota.'
|
'Getting Subscriptions. Please wait.': 'Laen tellimusi, palun oota.'
|
||||||
Refresh Subscriptions: 'Värskenda tellimusi'
|
Refresh Subscriptions: 'Värskenda tellimusi'
|
||||||
Trending: ''
|
Load More Videos: Laadi veel videosid
|
||||||
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Sellel
|
||||||
|
profiilil on väga palju tellimusi. Vältimaks serveripoolseid piiranguid teen RSS-voo
|
||||||
|
päringud harvemini
|
||||||
|
Trending: 'Populaarsed videod'
|
||||||
Most Popular: 'Populaarseimad'
|
Most Popular: 'Populaarseimad'
|
||||||
Playlists: 'Esitusloendid'
|
Playlists: 'Esitusloendid'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Sinu esitusloendid'
|
Your Playlists: 'Sinu esitusloendid'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Sa
|
||||||
|
pole veel videosid siia salvestanud. Selleks palun vajuta video nurgas asuvat
|
||||||
|
salvestusnuppu
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Ajalugu'
|
History: 'Ajalugu'
|
||||||
|
@ -94,17 +102,18 @@ Settings:
|
||||||
General Settings:
|
General Settings:
|
||||||
General Settings: 'Üldised seadistused'
|
General Settings: 'Üldised seadistused'
|
||||||
Check for Updates: 'Kontrolli uuendusi'
|
Check for Updates: 'Kontrolli uuendusi'
|
||||||
Check for Latest Blog Posts: ''
|
Check for Latest Blog Posts: 'Vaata viimaseid blogipostitusi'
|
||||||
Fallback to Non-Preferred Backend on Failure: ''
|
Fallback to Non-Preferred Backend on Failure: 'Luba vigade korral kasutada teist
|
||||||
Enable Search Suggestions: ''
|
taustateenust'
|
||||||
Default Landing Page: ''
|
Enable Search Suggestions: 'Kasuta otsingusoovitusi'
|
||||||
Locale Preference: ''
|
Default Landing Page: 'Vaikimisi avaleht'
|
||||||
|
Locale Preference: 'Lokaadi eelistus'
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: ''
|
Preferred API Backend: 'Eelistatud taustateenuste API'
|
||||||
Local API: ''
|
Local API: 'API kohalikus arvutis'
|
||||||
Invidious API: ''
|
Invidious API: 'API Invidious''e veebirakenduses'
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: ''
|
Video View Type: 'Kasutatav videote vaade'
|
||||||
Grid: 'Võrgustik'
|
Grid: 'Võrgustik'
|
||||||
List: 'Loend'
|
List: 'Loend'
|
||||||
Thumbnail Preference:
|
Thumbnail Preference:
|
||||||
|
@ -113,99 +122,115 @@ Settings:
|
||||||
Beginning: 'Alguses'
|
Beginning: 'Alguses'
|
||||||
Middle: 'Keskel'
|
Middle: 'Keskel'
|
||||||
End: 'Lõpus'
|
End: 'Lõpus'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': ''
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious''e
|
||||||
Region for Trending: ''
|
veebirakendus (vaikimisi kasutatav sait on https://invidious.snopyta.org)'
|
||||||
|
Region for Trending: 'Mis geograafia alusel tuvastame populaarsemad videod'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
System Default: Arvuti vaikeseadistused
|
||||||
|
View all Invidious instance information: Vaata kõike teavet kasutatava Invidious'e
|
||||||
|
veebirakenduse kohta
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: ''
|
Theme Settings: 'Välimuse seadistused'
|
||||||
Match Top Bar with Main Color: ''
|
Match Top Bar with Main Color: 'Kasuta ülaribal põhivärvi'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: ''
|
Base Theme: 'Põhiteema'
|
||||||
Black: ''
|
Black: 'Must'
|
||||||
Dark: ''
|
Dark: 'Tume'
|
||||||
Light: ''
|
Light: 'Hele'
|
||||||
Main Color Theme:
|
Main Color Theme:
|
||||||
Main Color Theme: ''
|
Main Color Theme: 'Põhiline värviteema'
|
||||||
Red: ''
|
Red: 'Punane'
|
||||||
Pink: ''
|
Pink: 'Roosa'
|
||||||
Purple: ''
|
Purple: 'Purpurpunane'
|
||||||
Deep Purple: ''
|
Deep Purple: 'Sügavpurpurpunane'
|
||||||
Indigo: ''
|
Indigo: 'Indigosinine'
|
||||||
Blue: ''
|
Blue: 'Sinine'
|
||||||
Light Blue: ''
|
Light Blue: 'Helesinine'
|
||||||
Cyan: ''
|
Cyan: 'Rohekassinine'
|
||||||
Teal: ''
|
Teal: 'Sinakasroheline'
|
||||||
Green: ''
|
Green: 'Roheline'
|
||||||
Light Green: ''
|
Light Green: 'Heleroheline'
|
||||||
Lime: ''
|
Lime: 'Kollakasroheline'
|
||||||
Yellow: ''
|
Yellow: 'Kollane'
|
||||||
Amber: ''
|
Amber: 'Merevaigukollane'
|
||||||
Orange: ''
|
Orange: 'Oranž'
|
||||||
Deep Orange: ''
|
Deep Orange: 'Sügavoranž'
|
||||||
Secondary Color Theme: ''
|
Secondary Color Theme: 'Värvide alamteema'
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
|
UI Scale: Kasutajaliidese suurus
|
||||||
|
Disable Smooth Scrolling: Ära kasuta sujuvat kerimist
|
||||||
|
Expand Side Bar by Default: Vaikimis näita külgriba laiana
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: ''
|
Player Settings: 'Videomängija seadistused'
|
||||||
Force Local Backend for Legacy Formats: ''
|
Force Local Backend for Legacy Formats: 'Pärandvormingute puhul kasuta sundkorras
|
||||||
Play Next Video: ''
|
kohalikku taustateenust'
|
||||||
Turn on Subtitles by Default: ''
|
Play Next Video: 'Esita ka järgmist videot'
|
||||||
|
Turn on Subtitles by Default: 'Vaikimisi näita subtiitreid'
|
||||||
Autoplay Videos: 'Esita videod automaatselt'
|
Autoplay Videos: 'Esita videod automaatselt'
|
||||||
Proxy Videos Through Invidious: ''
|
Proxy Videos Through Invidious: 'Puhverda videosid Invidious''e veebiteenuse kaudu'
|
||||||
Autoplay Playlists: ''
|
Autoplay Playlists: 'Automaatselt mängi esitusloendit'
|
||||||
Enable Theatre Mode by Default: ''
|
Enable Theatre Mode by Default: 'Vaikimisi kasuta teatrivaadet (laia vaadet)'
|
||||||
Default Volume: ''
|
Default Volume: 'Vaikimisi helivaljus'
|
||||||
Default Playback Rate: ''
|
Default Playback Rate: 'Vaikimisi videoesituse kiirus'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: ''
|
Default Video Format: 'Vaikimisi videovorming'
|
||||||
Dash Formats: ''
|
Dash Formats: 'DASH-vormingud'
|
||||||
Legacy Formats: ''
|
Legacy Formats: 'Pärandvormingud'
|
||||||
Audio Formats: ''
|
Audio Formats: 'Helivormingud'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: ''
|
Default Quality: 'Vaikimisi videokvaliteet'
|
||||||
Auto: ''
|
Auto: 'Vali automaatselt'
|
||||||
144p: ''
|
144p: '144p'
|
||||||
240p: ''
|
240p: '240p'
|
||||||
360p: ''
|
360p: '360p'
|
||||||
480p: ''
|
480p: '480p'
|
||||||
720p: ''
|
720p: '720p'
|
||||||
1080p: ''
|
1080p: '1080p'
|
||||||
1440p: ''
|
1440p: '1440p'
|
||||||
4k: ''
|
4k: '4k'
|
||||||
8k: ''
|
8k: '8k'
|
||||||
|
Next Video Interval: Viivitus järgmise video esitamisel
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: ''
|
Privacy Settings: 'Privaatsuse seadistused'
|
||||||
Remember History: ''
|
Remember History: 'Jäta ajalugu meelde'
|
||||||
Save Watched Progress: ''
|
Save Watched Progress: 'Salvesta vaatamise olek'
|
||||||
Clear Search Cache: ''
|
Clear Search Cache: 'Kustuta otsingute ajalugu'
|
||||||
Are you sure you want to clear out your search cache?: ''
|
Are you sure you want to clear out your search cache?: 'Kas sa oled kindel, et
|
||||||
Search cache has been cleared: ''
|
soovid kustutada sinu otsingute ajaloo?'
|
||||||
Remove Watch History: ''
|
Search cache has been cleared: 'Otsingute ajalugu on nüüd kustutatud'
|
||||||
Are you sure you want to remove your entire watch history?: ''
|
Remove Watch History: 'Kustuta vaatamiste ajalugu'
|
||||||
Watch history has been cleared: ''
|
Are you sure you want to remove your entire watch history?: 'Kas sa oled kindel,
|
||||||
Remove All Subscriptions / Profiles: ''
|
et soovid kustutada kogu sinu vaatamiste ajaloo?'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
|
Watch history has been cleared: 'Vaatamiste ajalugu on nüüd kustutatud'
|
||||||
|
Remove All Subscriptions / Profiles: 'Kustuta kõik tellimused / profiilid'
|
||||||
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Kas
|
||||||
|
sa oled kindel, et soovid kustutada kõik tellimused/profiilid? Seda tegevust
|
||||||
|
ei saa tagasi pöörata.'
|
||||||
|
Automatically Remove Video Meta Files: Automaatselt kustuta videote metateave
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: ''
|
Subscription Settings: 'Tellimuste seadistused'
|
||||||
Hide Videos on Watch: ''
|
Hide Videos on Watch: 'Vaatamisel peida videod'
|
||||||
Fetch Feeds from RSS: ''
|
Fetch Feeds from RSS: 'Laadi RSS-uudisvood'
|
||||||
Manage Subscriptions: ''
|
Manage Subscriptions: 'Halda tellimusi'
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: ''
|
Data Settings: 'Andmehaldus'
|
||||||
Select Import Type: ''
|
Select Import Type: 'Vali imporditava faili vorming'
|
||||||
Select Export Type: ''
|
Select Export Type: 'Vali eksporditava faili vorming'
|
||||||
Import Subscriptions: ''
|
Import Subscriptions: 'Impordi tellimused'
|
||||||
Import FreeTube: ''
|
Import FreeTube: 'Kasuta FreeTube vormingut'
|
||||||
Import YouTube: ''
|
Import YouTube: 'Kasuta YouTube vormingut'
|
||||||
Import NewPipe: ''
|
Import NewPipe: 'Kasuta NewPipe vormingut'
|
||||||
Export Subscriptions: ''
|
Export Subscriptions: 'Ekspordi tellimused'
|
||||||
Export FreeTube: ''
|
Export FreeTube: 'Ekspordi FreeTube vormingus'
|
||||||
Export YouTube: ''
|
Export YouTube: 'Ekspordi YouTube vormingus'
|
||||||
Export NewPipe: ''
|
Export NewPipe: 'Ekspordi NewPipe vormingus'
|
||||||
Import History: ''
|
Import History: 'Impordi ajalugu'
|
||||||
Export History: ''
|
Export History: 'Ekspordi ajalugu'
|
||||||
Profile object has insufficient data, skipping item: ''
|
Profile object has insufficient data, skipping item: 'Osal profiilis pole piisavalt
|
||||||
All subscriptions and profiles have been successfully imported: ''
|
andmeid ja selle jätan vahele'
|
||||||
All subscriptions have been successfully imported: ''
|
All subscriptions and profiles have been successfully imported: 'Kõikide tellimuste
|
||||||
|
ja profiilide import õnnestus'
|
||||||
|
All subscriptions have been successfully imported: 'Kõikide tellimuste õnnestus'
|
||||||
One or more subscriptions were unable to be imported: 'Ühte või enamat tellimust
|
One or more subscriptions were unable to be imported: 'Ühte või enamat tellimust
|
||||||
ei õnnestunud importida'
|
ei õnnestunud importida'
|
||||||
Invalid subscriptions file: 'Vigane tellimuste fail'
|
Invalid subscriptions file: 'Vigane tellimuste fail'
|
||||||
|
@ -220,8 +245,10 @@ Settings:
|
||||||
edukalt eksporditud'
|
edukalt eksporditud'
|
||||||
Unable to read file: 'Faili lugemine ei õnnestu'
|
Unable to read file: 'Faili lugemine ei õnnestu'
|
||||||
Unable to write file: 'Faili kirjutamine ei õnnestu'
|
Unable to write file: 'Faili kirjutamine ei õnnestu'
|
||||||
Unknown data key: ''
|
Unknown data key: 'Tundmatu andmevõti'
|
||||||
How do I import my subscriptions?: ''
|
How do I import my subscriptions?: 'Kuidas ma saan oma tellimusi importida?'
|
||||||
|
Manage Subscriptions: Halda tellimusi
|
||||||
|
Check for Legacy Subscriptions: Kontrolli pärandvormingus tellimuste olemasolu
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: ''
|
Advanced Settings: ''
|
||||||
Enable Debug Mode (Prints data to the console): ''
|
Enable Debug Mode (Prints data to the console): ''
|
||||||
|
@ -244,9 +271,39 @@ Settings:
|
||||||
#& Yes
|
#& Yes
|
||||||
#& No
|
#& No
|
||||||
|
|
||||||
|
Distraction Free Settings:
|
||||||
|
Hide Active Subscriptions: Peida aktiivsed tellimused
|
||||||
|
Hide Live Chat: Peida veebivestlused
|
||||||
|
Hide Playlists: Peida esitusloendid
|
||||||
|
Hide Popular Videos: Peida enimvaadatud videod
|
||||||
|
Hide Trending Videos: Peida populaarsust koguvad videod
|
||||||
|
Hide Recommended Videos: Peida soovitatud videod
|
||||||
|
Hide Comment Likes: Peida kommentaaride meeldimised
|
||||||
|
Hide Channel Subscribers: Peida kanalite tellijad
|
||||||
|
Hide Video Likes And Dislikes: Peida videote meeldimiste ja mittemeeldimiste arvud
|
||||||
|
Hide Video Views: Peida videote vaatamiskordade arv
|
||||||
|
Distraction Free Settings: Seadista endale võimalikult rahulik videote vaatamine
|
||||||
|
Proxy Settings:
|
||||||
|
Error getting network information. Is your proxy configured properly?: Võrguteavet
|
||||||
|
ei õnnestu leida. Kas sa oled puhverserveri ikka korralikult seadistanud?
|
||||||
|
City: Linn
|
||||||
|
Region: Piirkond
|
||||||
|
Country: Riik
|
||||||
|
Ip: IP-aadress
|
||||||
|
Your Info: Sinu andmed
|
||||||
|
Clicking on Test Proxy will send a request to: Puhverserveri testimisel saadame
|
||||||
|
päringu aadressile
|
||||||
|
Test Proxy: Testi puhverserverit
|
||||||
|
Proxy Port Number: Puhverserveri pordi number
|
||||||
|
Proxy Host: Puhverserveri aadress
|
||||||
|
Proxy Protocol: Puhverserveri protokoll
|
||||||
|
Enable Tor / Proxy: Kasuta Tor'i või puhverserverit
|
||||||
|
Proxy Settings: Puhverserveri seadistused
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: See
|
||||||
|
rakendus vajab muudatuste jõustamiseks uuesti käivitamist. Kas teeme seda nüüd?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: ''
|
About: 'Rakenduse teave'
|
||||||
#& About
|
#& About
|
||||||
'This software is FOSS and released under the GNU Affero General Public License v3.0.': ''
|
'This software is FOSS and released under the GNU Affero General Public License v3.0.': ''
|
||||||
|
|
||||||
|
@ -266,156 +323,215 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Email: E-post
|
||||||
|
Donate: Toeta meid
|
||||||
|
these people and projects: tänu nendele inimestele ja projektidele
|
||||||
|
FreeTube is made possible by: FreeTube loomine ja arendamine on olnud võimalik
|
||||||
|
Credits: Tänuavaldused
|
||||||
|
Translate: Tõlked
|
||||||
|
room rules: jututoa reeglitega
|
||||||
|
Please read the: Palun kindlasti tutvu
|
||||||
|
Chat on Matrix: Vestle meiega Matrix'i võrgus
|
||||||
|
Mastodon: Mikroblogiteenus Mastodon
|
||||||
|
Blog: Ajaveeb
|
||||||
|
Website: Veebisait
|
||||||
|
Please check for duplicates before posting: Enne uue veateate tegemist palun kontrolli,
|
||||||
|
kas sellest on juba meile teada antud
|
||||||
|
GitHub issues: Teata vigadest GitHub'i vahendusel
|
||||||
|
Report a problem: Vead ja probleemid
|
||||||
|
FAQ: KKK
|
||||||
|
FreeTube Wiki: FreeTube viki
|
||||||
|
Help: Abiteave
|
||||||
|
GitHub releases: Avaldatud versioonid leiad GitHub'ist
|
||||||
|
Downloads / Changelog: Allalaadimised ja muudatuste logi
|
||||||
|
View License: Vaata litsentsiteavet inglise keeles
|
||||||
|
Licensed under the AGPLv3: Avaldatud AGPLv3 litsentsi alusel
|
||||||
|
Source code: Lähtekood
|
||||||
|
Beta: beetaversioon
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: ''
|
Profile Select: 'Vali profiil'
|
||||||
All Channels: ''
|
All Channels: 'Kõik kanalid'
|
||||||
Profile Manager: ''
|
Profile Manager: 'Profiilihaldur'
|
||||||
Create New Profile: ''
|
Create New Profile: 'Loo uus profiil'
|
||||||
Edit Profile: ''
|
Edit Profile: 'Muuda profiili'
|
||||||
Color Picker: ''
|
Color Picker: 'Vali värv'
|
||||||
Custom Color: ''
|
Custom Color: 'Vali täpne värv'
|
||||||
Profile Preview: ''
|
Profile Preview: 'Profiili eelvaade'
|
||||||
Create Profile: ''
|
Create Profile: 'Loo profiil'
|
||||||
Update Profile: ''
|
Update Profile: 'Uuenda profiili'
|
||||||
Make Default Profile: ''
|
Make Default Profile: 'Määra vaikimisi profiiliks'
|
||||||
Delete Profile: ''
|
Delete Profile: 'Kustuta profiil'
|
||||||
Are you sure you want to delete this profile?: ''
|
Are you sure you want to delete this profile?: 'Kas sa kindlasti soovid selle profiili
|
||||||
All subscriptions will also be deleted.: ''
|
kustutada?'
|
||||||
Profile could not be found: ''
|
All subscriptions will also be deleted.: 'Samaga kustutame ka kõik tellimused.'
|
||||||
Your profile name cannot be empty: ''
|
Profile could not be found: 'Profiili ei leidunud'
|
||||||
Profile has been created: ''
|
Your profile name cannot be empty: 'Profiilil peab olema nimi'
|
||||||
Profile has been updated: ''
|
Profile has been created: 'Profiili loomine õnnestus'
|
||||||
Your default profile has been set to $: ''
|
Profile has been updated: 'Profiili uuendamine õnnestus'
|
||||||
Removed $ from your profiles: ''
|
Your default profile has been set to $: 'Määrasin $ sinu vaikimisi profiiliks'
|
||||||
Your default profile has been changed to your primary profile: ''
|
Removed $ from your profiles: 'Kustutasin $ sinu profiilide loendist'
|
||||||
$ is now the active profile: ''
|
Your default profile has been changed to your primary profile: 'Muutsin sinu esmase
|
||||||
Subscription List: ''
|
profiili vaikimisi kasutatavaks profiiliks'
|
||||||
Other Channels: ''
|
$ is now the active profile: '$ on nüüd kasutusel olev profiil'
|
||||||
$ selected: ''
|
Subscription List: 'Tellimuste loend'
|
||||||
Select All: ''
|
Other Channels: 'Muud kanalid'
|
||||||
Select None: ''
|
$ selected: '$ on valitud'
|
||||||
Delete Selected: ''
|
Select All: 'Vali kõik'
|
||||||
Add Selected To Profile: ''
|
Select None: 'Ära vali mitte midagi'
|
||||||
No channel(s) have been selected: ''
|
Delete Selected: 'Kustuta valik'
|
||||||
|
Add Selected To Profile: 'Lisa valik profiilile'
|
||||||
|
No channel(s) have been selected: 'Sa pole kanaleid valinud'
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: ''
|
: 'See on sinu algne profiil. Kas sa kindlasti soovid kustutada valitud kanalid?
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
|
Me kustutame nad sel juhul ka kõikidest profiilidest.'
|
||||||
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Kas
|
||||||
|
sa kindlasti soovid kustutada valitud kanalid? Sellega me ei kustuta neid teistest
|
||||||
|
profiilidest.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Sirvi profiile
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: ''
|
Subscriber: 'Tellija'
|
||||||
Subscribers: ''
|
Subscribers: 'Tellijad'
|
||||||
Subscribe: ''
|
Subscribe: 'Telli'
|
||||||
Unsubscribe: ''
|
Unsubscribe: 'Lõpeta tellimus'
|
||||||
Channel has been removed from your subscriptions: ''
|
Channel has been removed from your subscriptions: 'Kustutasin kanali sinu tellimustest'
|
||||||
Removed subscription from $ other channel(s): ''
|
Removed subscription from $ other channel(s): 'Kustutasin tellimuse ka $''st must
|
||||||
Added channel to your subscriptions: ''
|
kanalist'
|
||||||
Search Channel: ''
|
Added channel to your subscriptions: 'Lisasin kanali sinu tellimuste hulka'
|
||||||
Your search results have returned 0 results: ''
|
Search Channel: 'Otsi kanalit'
|
||||||
Sort By: ''
|
Your search results have returned 0 results: 'Otsingul on 0 tulemust'
|
||||||
|
Sort By: 'Sortimise alus'
|
||||||
Videos:
|
Videos:
|
||||||
Videos: ''
|
Videos: 'Videod'
|
||||||
This channel does not currently have any videos: ''
|
This channel does not currently have any videos: 'Sellel kanalik pole hetkel ühtegi
|
||||||
|
videot'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Newest: ''
|
Newest: 'Uusimad'
|
||||||
Oldest: ''
|
Oldest: 'Vanimad'
|
||||||
Most Popular: ''
|
Most Popular: 'Kõike populaarsemad'
|
||||||
Playlists:
|
Playlists:
|
||||||
Playlists: ''
|
Playlists: 'Esitusloendid'
|
||||||
This channel does not currently have any playlists: ''
|
This channel does not currently have any playlists: 'Sellel kanalil pole hetkel
|
||||||
|
ühtegi esitusloendit'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Last Video Added: ''
|
Last Video Added: 'Viimati lisatud video'
|
||||||
Newest: ''
|
Newest: 'Uusimad'
|
||||||
Oldest: ''
|
Oldest: 'Vanimad'
|
||||||
About:
|
About:
|
||||||
About: ''
|
About: 'Kanali teave'
|
||||||
Channel Description: ''
|
Channel Description: 'Kanali kirjeldus'
|
||||||
Featured Channels: ''
|
Featured Channels: 'Soovitatud kanalid'
|
||||||
Video:
|
Video:
|
||||||
Mark As Watched: ''
|
Mark As Watched: 'Märgi vaadatuks'
|
||||||
Remove From History: ''
|
Remove From History: 'Kustuta ajaloost'
|
||||||
Video has been marked as watched: ''
|
Video has been marked as watched: 'Video on märgitud vaadatuks'
|
||||||
Video has been removed from your history: ''
|
Video has been removed from your history: 'Video on kustutatud sinu vaatamiste ajaloost'
|
||||||
Open in YouTube: ''
|
Open in YouTube: 'Ava YouTube''is'
|
||||||
Copy YouTube Link: ''
|
Copy YouTube Link: 'Kopeeri YouTube''i link'
|
||||||
Open YouTube Embedded Player: ''
|
Open YouTube Embedded Player: 'Ava YouTube''i lõimitud meediamängija'
|
||||||
Copy YouTube Embedded Player Link: ''
|
Copy YouTube Embedded Player Link: 'Kopeeri YouTube''i lõimitud meediamängija link'
|
||||||
Open in Invidious: ''
|
Open in Invidious: 'Ava Invidious''e veebirakenduses'
|
||||||
Copy Invidious Link: ''
|
Copy Invidious Link: 'Kopeeri Invidious''e veebirakenduse link'
|
||||||
View: ''
|
View: 'Vaatamine'
|
||||||
Views: ''
|
Views: 'Vaatamist'
|
||||||
Loop Playlist: ''
|
Loop Playlist: 'Korda esitusloendit'
|
||||||
Shuffle Playlist: ''
|
Shuffle Playlist: 'Sega esitusloend'
|
||||||
Reverse Playlist: ''
|
Reverse Playlist: 'Pööra esitusloend tagurpidi'
|
||||||
Play Next Video: ''
|
Play Next Video: 'Esita järgmist videot'
|
||||||
Play Previous Video: ''
|
Play Previous Video: 'Esita eelmist videot'
|
||||||
# Context is "X People Watching"
|
# Context is "X People Watching"
|
||||||
Watching: ''
|
Watching: 'Vaatan'
|
||||||
Watched: ''
|
Watched: 'Vaadatud'
|
||||||
Autoplay: ''
|
Autoplay: 'Automaatne esitus'
|
||||||
Starting soon, please refresh the page to check again: ''
|
Starting soon, please refresh the page to check again: 'Kuvamine algab varsti, vajadusel
|
||||||
|
värskenda uuesti kontrollimiseks lehte'
|
||||||
# As in a Live Video
|
# As in a Live Video
|
||||||
Live: ''
|
Live: 'Otse eetris'
|
||||||
Live Now: ''
|
Live Now: 'Otse eetris'
|
||||||
Live Chat: ''
|
Live Chat: 'Vestlus reaalajas'
|
||||||
Enable Live Chat: ''
|
Enable Live Chat: 'Luba reaalajas vestlust'
|
||||||
Live Chat is currently not supported in this build.: ''
|
Live Chat is currently not supported in this build.: 'Reaalajas vestlus ei ole selles
|
||||||
'Chat is disabled or the Live Stream has ended.': ''
|
versioonis toetatud.'
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: ''
|
'Chat is disabled or the Live Stream has ended.': 'Reaalajas vestlus kas ei ole
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
toetatud või on otseetris edastus lõppenud.'
|
||||||
|
Live chat is enabled. Chat messages will appear here once sent.: 'Reaalajas vestlus
|
||||||
|
on kasutusel. Sõnumid on nähtaval kohe pärast saatmist.'
|
||||||
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Kui
|
||||||
|
kasutad Invidious''e veebiteenuse-põhist API''t, siis reaalajas vestlus ei ole
|
||||||
|
toetatud. Selleks on vajalik otseliidestus YouTube''ga.'
|
||||||
Published:
|
Published:
|
||||||
Jan: ''
|
Jan: 'Jaan'
|
||||||
Feb: ''
|
Feb: 'Veeb'
|
||||||
Mar: ''
|
Mar: 'Mar'
|
||||||
Apr: ''
|
Apr: 'Apr'
|
||||||
May: ''
|
May: 'Mai'
|
||||||
Jun: ''
|
Jun: 'Juuni'
|
||||||
Jul: ''
|
Jul: 'Juuli'
|
||||||
Aug: ''
|
Aug: 'Aug'
|
||||||
Sep: ''
|
Sep: 'Sep'
|
||||||
Oct: ''
|
Oct: 'Okt'
|
||||||
Nov: ''
|
Nov: 'Nov'
|
||||||
Dec: ''
|
Dec: 'Dets'
|
||||||
Second: ''
|
Second: 'Sekund'
|
||||||
Seconds: ''
|
Seconds: 'Sekundit'
|
||||||
Minute: ''
|
Minute: 'Minut'
|
||||||
Minutes: ''
|
Minutes: 'Minutit'
|
||||||
Hour: ''
|
Hour: 'Tund'
|
||||||
Hours: ''
|
Hours: 'Tundi'
|
||||||
Day: ''
|
Day: 'Päev'
|
||||||
Days: ''
|
Days: 'Päeva'
|
||||||
Week: ''
|
Week: 'Nädal'
|
||||||
Weeks: ''
|
Weeks: 'Nädalat'
|
||||||
Month: ''
|
Month: 'Kuu'
|
||||||
Months: ''
|
Months: 'Kuud'
|
||||||
Year: ''
|
Year: 'Aasta'
|
||||||
Years: ''
|
Years: 'Aastat'
|
||||||
Ago: ''
|
Ago: 'tagasi'
|
||||||
Upcoming: ''
|
Upcoming: 'Esilinastus'
|
||||||
Published on: ''
|
Published on: 'Avaldatud'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: ''
|
Publicationtemplate: '$ % tagasi'
|
||||||
#& Videos
|
#& Videos
|
||||||
|
Copy Invidious Channel Link: Kopeeri kanali link Invidious'e veebirakenduses
|
||||||
|
Open Channel in Invidious: Ava kanal Invidious'e veebirakenduses
|
||||||
|
Copy YouTube Channel Link: Kopeeri YouTube'i kanali link
|
||||||
|
Open Channel in YouTube: Ava kanal YouTube'is
|
||||||
|
Video has been removed from your saved list: Video on kustutatud sinu salvestatud
|
||||||
|
videote loendist
|
||||||
|
Video has been saved: Video on salvestatud
|
||||||
|
Save Video: Salvesta video
|
||||||
|
translated from English: tõlgitud inglise keelest
|
||||||
|
Started streaming on: Voogedastus algas
|
||||||
|
Streamed on: Voogedastatud
|
||||||
|
Audio:
|
||||||
|
High: Kõrge kvaliteet
|
||||||
|
Medium: Keskmine kvaliteet
|
||||||
|
Low: Madal kvaliteet
|
||||||
|
Best: Parim kvaliteet
|
||||||
|
audio only: vaid helivoog
|
||||||
|
video only: vaid videovoog
|
||||||
|
Download Video: Laadi video alla
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
Newest: ''
|
Newest: 'Uusim'
|
||||||
Oldest: ''
|
Oldest: 'Vanim'
|
||||||
#& Most Popular
|
#& Most Popular
|
||||||
#& Playlists
|
#& Playlists
|
||||||
Playlist:
|
Playlist:
|
||||||
#& About
|
#& About
|
||||||
View Full Playlist: ''
|
View Full Playlist: 'Näita kogu esitusloendit'
|
||||||
Videos: ''
|
Videos: 'Videod'
|
||||||
View: ''
|
View: 'Vaata'
|
||||||
Views: ''
|
Views: 'vaatamist'
|
||||||
Last Updated On: ''
|
Last Updated On: 'Viimati uuendatud'
|
||||||
Share Playlist:
|
Share Playlist:
|
||||||
Share Playlist: ''
|
Share Playlist: 'Jaga esitusloendit'
|
||||||
Copy YouTube Link: ''
|
Copy YouTube Link: 'Kopeeri YouTube''i link'
|
||||||
Open in YouTube: ''
|
Open in YouTube: 'Ava YouTube''is'
|
||||||
Copy Invidious Link: ''
|
Copy Invidious Link: 'Kopeeri Invidious''e veebirakenduse link'
|
||||||
Open in Invidious: ''
|
Open in Invidious: 'Ava Invidious''e veebirakenduses'
|
||||||
|
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
|
@ -479,3 +595,5 @@ Canceled next video autoplay: 'Tühistasin järgmise video automaatse esituse'
|
||||||
|
|
||||||
Yes: 'Jah'
|
Yes: 'Jah'
|
||||||
No: 'Ei'
|
No: 'Ei'
|
||||||
|
More: Veel
|
||||||
|
Open New Window: Ava uus aken
|
||||||
|
|
|
@ -0,0 +1,540 @@
|
||||||
|
# Put the name of your locale in the same language
|
||||||
|
Locale Name: 'Euskera'
|
||||||
|
FreeTube: 'FreeTube'
|
||||||
|
# Currently on Subscriptions, Playlists, and History
|
||||||
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
|
Zati hau ez dago prest oraindik. Itzuli aurrerago aurrerapenak egin direnean.
|
||||||
|
|
||||||
|
# Webkit Menu Bar
|
||||||
|
File: ''
|
||||||
|
Quit: ''
|
||||||
|
Edit: ''
|
||||||
|
Undo: ''
|
||||||
|
Redo: ''
|
||||||
|
Cut: ''
|
||||||
|
Copy: ''
|
||||||
|
Paste: ''
|
||||||
|
Delete: ''
|
||||||
|
Select all: ''
|
||||||
|
Reload: ''
|
||||||
|
Force Reload: ''
|
||||||
|
Toggle Developer Tools: ''
|
||||||
|
Actual size: ''
|
||||||
|
Zoom in: ''
|
||||||
|
Zoom out: ''
|
||||||
|
Toggle fullscreen: ''
|
||||||
|
Window: ''
|
||||||
|
Minimize: ''
|
||||||
|
Close: ''
|
||||||
|
Back: ''
|
||||||
|
Forward: ''
|
||||||
|
|
||||||
|
Version $ is now available! Click for more details: ''
|
||||||
|
Download From Site: ''
|
||||||
|
A new blog is now available, $. Click to view more: ''
|
||||||
|
|
||||||
|
# Search Bar
|
||||||
|
Search / Go to URL: ''
|
||||||
|
# In Filter Button
|
||||||
|
Search Filters:
|
||||||
|
Search Filters: ''
|
||||||
|
Sort By:
|
||||||
|
Sort By: ''
|
||||||
|
Most Relevant: ''
|
||||||
|
Rating: ''
|
||||||
|
Upload Date: ''
|
||||||
|
View Count: ''
|
||||||
|
Time:
|
||||||
|
Time: ''
|
||||||
|
Any Time: ''
|
||||||
|
Last Hour: ''
|
||||||
|
Today: ''
|
||||||
|
This Week: ''
|
||||||
|
This Month: ''
|
||||||
|
This Year: ''
|
||||||
|
Type:
|
||||||
|
Type: ''
|
||||||
|
All Types: ''
|
||||||
|
Videos: ''
|
||||||
|
Channels: ''
|
||||||
|
#& Playlists
|
||||||
|
Duration:
|
||||||
|
Duration: ''
|
||||||
|
All Durations: ''
|
||||||
|
Short (< 4 minutes): ''
|
||||||
|
Long (> 20 minutes): ''
|
||||||
|
# On Search Page
|
||||||
|
Search Results: ''
|
||||||
|
Fetching results. Please wait: ''
|
||||||
|
Fetch more results: ''
|
||||||
|
There are no more results for this search: ''
|
||||||
|
# Sidebar
|
||||||
|
Subscriptions:
|
||||||
|
# On Subscriptions Page
|
||||||
|
Subscriptions: ''
|
||||||
|
Latest Subscriptions: ''
|
||||||
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: ''
|
||||||
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': ''
|
||||||
|
'Getting Subscriptions. Please wait.': ''
|
||||||
|
Refresh Subscriptions: ''
|
||||||
|
Load More Videos: ''
|
||||||
|
More: ''
|
||||||
|
Trending: ''
|
||||||
|
Most Popular: ''
|
||||||
|
Playlists: ''
|
||||||
|
User Playlists:
|
||||||
|
Your Playlists: ''
|
||||||
|
Playlist Message: ''
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ''
|
||||||
|
History:
|
||||||
|
# On History Page
|
||||||
|
History: ''
|
||||||
|
Watch History: ''
|
||||||
|
Your history list is currently empty.: ''
|
||||||
|
Settings:
|
||||||
|
# On Settings Page
|
||||||
|
Settings: ''
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: ''
|
||||||
|
General Settings:
|
||||||
|
General Settings: ''
|
||||||
|
Check for Updates: ''
|
||||||
|
Check for Latest Blog Posts: ''
|
||||||
|
Fallback to Non-Preferred Backend on Failure: ''
|
||||||
|
Enable Search Suggestions: ''
|
||||||
|
Default Landing Page: ''
|
||||||
|
Locale Preference: ''
|
||||||
|
Preferred API Backend:
|
||||||
|
Preferred API Backend: ''
|
||||||
|
Local API: ''
|
||||||
|
Invidious API: ''
|
||||||
|
Video View Type:
|
||||||
|
Video View Type: ''
|
||||||
|
Grid: ''
|
||||||
|
List: ''
|
||||||
|
Thumbnail Preference:
|
||||||
|
Thumbnail Preference: ''
|
||||||
|
Default: ''
|
||||||
|
Beginning: ''
|
||||||
|
Middle: ''
|
||||||
|
End: ''
|
||||||
|
'Invidious Instance (Default is https://invidious.snopyta.org)': ''
|
||||||
|
View all Invidious instance information: ''
|
||||||
|
Region for Trending: ''
|
||||||
|
#! List countries
|
||||||
|
Theme Settings:
|
||||||
|
Theme Settings: ''
|
||||||
|
Match Top Bar with Main Color: ''
|
||||||
|
Expand Side Bar by Default: ''
|
||||||
|
Disable Smooth Scrolling: ''
|
||||||
|
UI Scale: ''
|
||||||
|
Base Theme:
|
||||||
|
Base Theme: ''
|
||||||
|
Black: ''
|
||||||
|
Dark: ''
|
||||||
|
Light: ''
|
||||||
|
Main Color Theme:
|
||||||
|
Main Color Theme: ''
|
||||||
|
Red: ''
|
||||||
|
Pink: ''
|
||||||
|
Purple: ''
|
||||||
|
Deep Purple: ''
|
||||||
|
Indigo: ''
|
||||||
|
Blue: ''
|
||||||
|
Light Blue: ''
|
||||||
|
Cyan: ''
|
||||||
|
Teal: ''
|
||||||
|
Green: ''
|
||||||
|
Light Green: ''
|
||||||
|
Lime: ''
|
||||||
|
Yellow: ''
|
||||||
|
Amber: ''
|
||||||
|
Orange: ''
|
||||||
|
Deep Orange: ''
|
||||||
|
Secondary Color Theme: ''
|
||||||
|
#* Main Color Theme
|
||||||
|
Player Settings:
|
||||||
|
Player Settings: ''
|
||||||
|
Force Local Backend for Legacy Formats: ''
|
||||||
|
Play Next Video: ''
|
||||||
|
Turn on Subtitles by Default: ''
|
||||||
|
Autoplay Videos: ''
|
||||||
|
Proxy Videos Through Invidious: ''
|
||||||
|
Autoplay Playlists: ''
|
||||||
|
Enable Theatre Mode by Default: ''
|
||||||
|
Playlist Next Video Interval: ''
|
||||||
|
Default Volume: ''
|
||||||
|
Default Playback Rate: ''
|
||||||
|
Default Video Format:
|
||||||
|
Default Video Format: ''
|
||||||
|
Dash Formats: ''
|
||||||
|
Legacy Formats: ''
|
||||||
|
Audio Formats: ''
|
||||||
|
Default Quality:
|
||||||
|
Default Quality: ''
|
||||||
|
Auto: ''
|
||||||
|
144p: ''
|
||||||
|
240p: ''
|
||||||
|
360p: ''
|
||||||
|
480p: ''
|
||||||
|
720p: ''
|
||||||
|
1080p: ''
|
||||||
|
1440p: ''
|
||||||
|
4k: ''
|
||||||
|
8k: ''
|
||||||
|
Privacy Settings:
|
||||||
|
Privacy Settings: ''
|
||||||
|
Remember History: ''
|
||||||
|
Save Watched Progress: ''
|
||||||
|
Automatically Remove Video Meta Files: ''
|
||||||
|
Clear Search Cache: ''
|
||||||
|
Are you sure you want to clear out your search cache?: ''
|
||||||
|
Search cache has been cleared: ''
|
||||||
|
Remove Watch History: ''
|
||||||
|
Are you sure you want to remove your entire watch history?: ''
|
||||||
|
Watch history has been cleared: ''
|
||||||
|
Remove All Subscriptions / Profiles: ''
|
||||||
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
|
||||||
|
Subscription Settings:
|
||||||
|
Subscription Settings: ''
|
||||||
|
Hide Videos on Watch: ''
|
||||||
|
Fetch Feeds from RSS: ''
|
||||||
|
Manage Subscriptions: ''
|
||||||
|
Distraction Free Settings:
|
||||||
|
Distraction Free Settings: ''
|
||||||
|
Hide Video Views: ''
|
||||||
|
Hide Video Likes And Dislikes: ''
|
||||||
|
Hide Channel Subscribers: ''
|
||||||
|
Hide Comment Likes: ''
|
||||||
|
Hide Recommended Videos: ''
|
||||||
|
Hide Trending Videos: ''
|
||||||
|
Hide Popular Videos: ''
|
||||||
|
Hide Playlists: ''
|
||||||
|
Hide Live Chat: ''
|
||||||
|
Hide Active Subscriptions: ''
|
||||||
|
Data Settings:
|
||||||
|
Data Settings: ''
|
||||||
|
Select Import Type: ''
|
||||||
|
Select Export Type: ''
|
||||||
|
Import Subscriptions: ''
|
||||||
|
Import FreeTube: ''
|
||||||
|
Import YouTube: ''
|
||||||
|
Import NewPipe: ''
|
||||||
|
Check for Legacy Subscriptions: ''
|
||||||
|
Export Subscriptions: ''
|
||||||
|
Export FreeTube: ''
|
||||||
|
Export YouTube: ''
|
||||||
|
Export NewPipe: ''
|
||||||
|
Import History: ''
|
||||||
|
Export History: ''
|
||||||
|
Profile object has insufficient data, skipping item: ''
|
||||||
|
All subscriptions and profiles have been successfully imported: ''
|
||||||
|
All subscriptions have been successfully imported: ''
|
||||||
|
One or more subscriptions were unable to be imported: ''
|
||||||
|
Invalid subscriptions file: ''
|
||||||
|
This might take a while, please wait: ''
|
||||||
|
Invalid history file: ''
|
||||||
|
Subscriptions have been successfully exported: ''
|
||||||
|
History object has insufficient data, skipping item: ''
|
||||||
|
All watched history has been successfully imported: ''
|
||||||
|
All watched history has been successfully exported: ''
|
||||||
|
Unable to read file: ''
|
||||||
|
Unable to write file: ''
|
||||||
|
Unknown data key: ''
|
||||||
|
How do I import my subscriptions?: ''
|
||||||
|
Manage Subscriptions: ''
|
||||||
|
Proxy Settings:
|
||||||
|
Proxy Settings: ''
|
||||||
|
Enable Tor / Proxy: ''
|
||||||
|
Proxy Protocol: ''
|
||||||
|
Proxy Host: ''
|
||||||
|
Proxy Port Number: ''
|
||||||
|
Clicking on Test Proxy will send a request to: ''
|
||||||
|
Test Proxy: ''
|
||||||
|
Your Info: ''
|
||||||
|
Ip: ''
|
||||||
|
Country: ''
|
||||||
|
Region: ''
|
||||||
|
City: ''
|
||||||
|
Error getting network information. Is your proxy configured properly?: ''
|
||||||
|
About:
|
||||||
|
#On About page
|
||||||
|
About: ''
|
||||||
|
Beta: ''
|
||||||
|
Source code: ''
|
||||||
|
Licensed under the AGPLv3: ''
|
||||||
|
View License: ''
|
||||||
|
Downloads / Changelog: ''
|
||||||
|
GitHub releases: ''
|
||||||
|
Help: ''
|
||||||
|
FreeTube Wiki: ''
|
||||||
|
FAQ: ''
|
||||||
|
Report a problem: ''
|
||||||
|
GitHub issues: ''
|
||||||
|
Please check for duplicates before posting: ''
|
||||||
|
Website: ''
|
||||||
|
Blog: ''
|
||||||
|
Email: ''
|
||||||
|
Mastodon: ''
|
||||||
|
Chat on Matrix: ''
|
||||||
|
Please read the: ''
|
||||||
|
room rules: ''
|
||||||
|
Translate: ''
|
||||||
|
Credits: ''
|
||||||
|
FreeTube is made possible by: ''
|
||||||
|
these people and projects: ''
|
||||||
|
Donate: ''
|
||||||
|
|
||||||
|
Profile:
|
||||||
|
Profile Select: ''
|
||||||
|
Profile Filter: ''
|
||||||
|
All Channels: ''
|
||||||
|
Profile Manager: ''
|
||||||
|
Create New Profile: ''
|
||||||
|
Edit Profile: ''
|
||||||
|
Color Picker: ''
|
||||||
|
Custom Color: ''
|
||||||
|
Profile Preview: ''
|
||||||
|
Create Profile: ''
|
||||||
|
Update Profile: ''
|
||||||
|
Make Default Profile: ''
|
||||||
|
Delete Profile: ''
|
||||||
|
Are you sure you want to delete this profile?: ''
|
||||||
|
All subscriptions will also be deleted.: ''
|
||||||
|
Profile could not be found: ''
|
||||||
|
Your profile name cannot be empty: ''
|
||||||
|
Profile has been created: ''
|
||||||
|
Profile has been updated: ''
|
||||||
|
Your default profile has been set to $: ''
|
||||||
|
Removed $ from your profiles: ''
|
||||||
|
Your default profile has been changed to your primary profile: ''
|
||||||
|
$ is now the active profile: ''
|
||||||
|
Subscription List: ''
|
||||||
|
Other Channels: ''
|
||||||
|
$ selected: ''
|
||||||
|
Select All: ''
|
||||||
|
Select None: ''
|
||||||
|
Delete Selected: ''
|
||||||
|
Add Selected To Profile: ''
|
||||||
|
No channel(s) have been selected: ''
|
||||||
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
|
same channels will be deleted in any profile they are found in.
|
||||||
|
: ''
|
||||||
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
|
||||||
|
#On Channel Page
|
||||||
|
Channel:
|
||||||
|
Subscriber: ''
|
||||||
|
Subscribers: ''
|
||||||
|
Subscribe: ''
|
||||||
|
Unsubscribe: ''
|
||||||
|
Channel has been removed from your subscriptions: ''
|
||||||
|
Removed subscription from $ other channel(s): ''
|
||||||
|
Added channel to your subscriptions: ''
|
||||||
|
Search Channel: ''
|
||||||
|
Your search results have returned 0 results: ''
|
||||||
|
Sort By: ''
|
||||||
|
Videos:
|
||||||
|
Videos: ''
|
||||||
|
This channel does not currently have any videos: ''
|
||||||
|
Sort Types:
|
||||||
|
Newest: ''
|
||||||
|
Oldest: ''
|
||||||
|
Most Popular: ''
|
||||||
|
Playlists:
|
||||||
|
Playlists: ''
|
||||||
|
This channel does not currently have any playlists: ''
|
||||||
|
Sort Types:
|
||||||
|
Last Video Added: ''
|
||||||
|
Newest: ''
|
||||||
|
Oldest: ''
|
||||||
|
About:
|
||||||
|
About: ''
|
||||||
|
Channel Description: ''
|
||||||
|
Featured Channels: ''
|
||||||
|
Video:
|
||||||
|
Mark As Watched: ''
|
||||||
|
Remove From History: ''
|
||||||
|
Video has been marked as watched: ''
|
||||||
|
Video has been removed from your history: ''
|
||||||
|
Save Video: ''
|
||||||
|
Video has been saved: ''
|
||||||
|
Video has been removed from your saved list: ''
|
||||||
|
Open in YouTube: ''
|
||||||
|
Copy YouTube Link: ''
|
||||||
|
Open YouTube Embedded Player: ''
|
||||||
|
Copy YouTube Embedded Player Link: ''
|
||||||
|
Open in Invidious: ''
|
||||||
|
Copy Invidious Link: ''
|
||||||
|
Open Channel in YouTube: ''
|
||||||
|
Copy YouTube Channel Link: ''
|
||||||
|
Open Channel in Invidious: ''
|
||||||
|
Copy Invidious Channel Link: ''
|
||||||
|
View: ''
|
||||||
|
Views: ''
|
||||||
|
Loop Playlist: ''
|
||||||
|
Shuffle Playlist: ''
|
||||||
|
Reverse Playlist: ''
|
||||||
|
Play Next Video: ''
|
||||||
|
Play Previous Video: ''
|
||||||
|
# Context is "X People Watching"
|
||||||
|
Watching: ''
|
||||||
|
Watched: ''
|
||||||
|
Autoplay: ''
|
||||||
|
Starting soon, please refresh the page to check again: ''
|
||||||
|
# As in a Live Video
|
||||||
|
Live: ''
|
||||||
|
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.': ''
|
||||||
|
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.': ''
|
||||||
|
Download Video: ''
|
||||||
|
video only: ''
|
||||||
|
audio only: ''
|
||||||
|
Audio:
|
||||||
|
Low: ''
|
||||||
|
Medium: ''
|
||||||
|
High: ''
|
||||||
|
Best: ''
|
||||||
|
Published:
|
||||||
|
Jan: ''
|
||||||
|
Feb: ''
|
||||||
|
Mar: ''
|
||||||
|
Apr: ''
|
||||||
|
May: ''
|
||||||
|
Jun: ''
|
||||||
|
Jul: ''
|
||||||
|
Aug: ''
|
||||||
|
Sep: ''
|
||||||
|
Oct: ''
|
||||||
|
Nov: ''
|
||||||
|
Dec: ''
|
||||||
|
Second: ''
|
||||||
|
Seconds: ''
|
||||||
|
Minute: ''
|
||||||
|
Minutes: ''
|
||||||
|
Hour: ''
|
||||||
|
Hours: ''
|
||||||
|
Day: ''
|
||||||
|
Days: ''
|
||||||
|
Week: ''
|
||||||
|
Weeks: ''
|
||||||
|
Month: ''
|
||||||
|
Months: ''
|
||||||
|
Year: ''
|
||||||
|
Years: ''
|
||||||
|
Ago: ''
|
||||||
|
Upcoming: ''
|
||||||
|
Published on: ''
|
||||||
|
Streamed on: ''
|
||||||
|
Started streaming on: ''
|
||||||
|
translated from English: ''
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: ''
|
||||||
|
#& Videos
|
||||||
|
Videos:
|
||||||
|
#& Sort By
|
||||||
|
Sort By:
|
||||||
|
Newest: ''
|
||||||
|
Oldest: ''
|
||||||
|
#& Most Popular
|
||||||
|
#& Playlists
|
||||||
|
Playlist:
|
||||||
|
#& About
|
||||||
|
View Full Playlist: ''
|
||||||
|
Videos: ''
|
||||||
|
View: ''
|
||||||
|
Views: ''
|
||||||
|
Last Updated On: ''
|
||||||
|
Share Playlist:
|
||||||
|
Share Playlist: ''
|
||||||
|
Copy YouTube Link: ''
|
||||||
|
Open in YouTube: ''
|
||||||
|
Copy Invidious Link: ''
|
||||||
|
Open in Invidious: ''
|
||||||
|
|
||||||
|
# On Video Watch Page
|
||||||
|
#* Published
|
||||||
|
#& Views
|
||||||
|
Toggle Theatre Mode: ''
|
||||||
|
Change Format:
|
||||||
|
Change Video Formats: ''
|
||||||
|
Use Dash Formats: ''
|
||||||
|
Use Legacy Formats: ''
|
||||||
|
Use Audio Formats: ''
|
||||||
|
Dash formats are not available for this video: ''
|
||||||
|
Audio formats are not available for this video: ''
|
||||||
|
Share:
|
||||||
|
Share Video: ''
|
||||||
|
Include Timestamp: ''
|
||||||
|
Copy Link: ''
|
||||||
|
Open Link: ''
|
||||||
|
Copy Embed: ''
|
||||||
|
Open Embed: ''
|
||||||
|
# On Click
|
||||||
|
Invidious URL copied to clipboard: ''
|
||||||
|
Invidious Embed URL copied to clipboard: ''
|
||||||
|
Invidious Channel URL copied to clipboard: ''
|
||||||
|
YouTube URL copied to clipboard: ''
|
||||||
|
YouTube Embed URL copied to clipboard: ''
|
||||||
|
YouTube Channel URL copied to clipboard: ''
|
||||||
|
|
||||||
|
Mini Player: ''
|
||||||
|
Comments:
|
||||||
|
Comments: ''
|
||||||
|
Click to View Comments: ''
|
||||||
|
Getting comment replies, please wait: ''
|
||||||
|
There are no more comments for this video: ''
|
||||||
|
Show Comments: ''
|
||||||
|
Hide Comments: ''
|
||||||
|
Sort by: ''
|
||||||
|
Top comments: ''
|
||||||
|
Newest first: ''
|
||||||
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
View: ''
|
||||||
|
Hide: ''
|
||||||
|
Replies: ''
|
||||||
|
Reply: ''
|
||||||
|
There are no comments available for this video: ''
|
||||||
|
Load More Comments: ''
|
||||||
|
No more comments available: ''
|
||||||
|
Up Next: ''
|
||||||
|
|
||||||
|
#Tooltips
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Preferred API Backend: ''
|
||||||
|
Fallback to Non-Preferred Backend on Failure: ''
|
||||||
|
Thumbnail Preference: ''
|
||||||
|
Invidious Instance: ''
|
||||||
|
Region for Trending: ''
|
||||||
|
Player Settings:
|
||||||
|
Force Local Backend for Legacy Formats: ''
|
||||||
|
Proxy Videos Through Invidious: ''
|
||||||
|
Default Video Format: ''
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: ''
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: ''
|
||||||
|
|
||||||
|
# Toast Messages
|
||||||
|
Local API Error (Click to copy): ''
|
||||||
|
Invidious API Error (Click to copy): ''
|
||||||
|
Falling back to Invidious API: ''
|
||||||
|
Falling back to the local API: ''
|
||||||
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: ''
|
||||||
|
Subscriptions have not yet been implemented: ''
|
||||||
|
Loop is now disabled: ''
|
||||||
|
Loop is now enabled: ''
|
||||||
|
Shuffle is now disabled: ''
|
||||||
|
Shuffle is now enabled: ''
|
||||||
|
The playlist has been reversed: ''
|
||||||
|
Playing Next Video: ''
|
||||||
|
Playing Previous Video: ''
|
||||||
|
Playing Next Video Interval: ''
|
||||||
|
Canceled next video autoplay: ''
|
||||||
|
'The playlist has ended. Enable loop to continue playing': ''
|
||||||
|
|
||||||
|
Yes: ''
|
||||||
|
No: ''
|
|
@ -31,17 +31,17 @@ Forward: 'Eteenpäin'
|
||||||
Search / Go to URL: 'Etsi / Mene osoitteeseen'
|
Search / Go to URL: 'Etsi / Mene osoitteeseen'
|
||||||
# In Filter Button
|
# In Filter Button
|
||||||
Search Filters:
|
Search Filters:
|
||||||
Search Filters: 'Etsi suodattimia'
|
Search Filters: 'Hakusuodattimet'
|
||||||
Sort By:
|
Sort By:
|
||||||
Sort By: 'Lajitteluperuste'
|
Sort By: 'Lajitteluperuste'
|
||||||
Most Relevant: 'Osuvin'
|
Most Relevant: 'Osuvin'
|
||||||
Rating: 'Arvosana'
|
Rating: 'Arvio'
|
||||||
Upload Date: 'Latauspäivämäärä'
|
Upload Date: 'Latauspäivämäärä'
|
||||||
View Count: 'Katselumäärä'
|
View Count: 'Näyttökerrat'
|
||||||
Time:
|
Time:
|
||||||
Time: 'Aika'
|
Time: 'Aika'
|
||||||
Any Time: 'Milloin tahansa'
|
Any Time: 'Milloin tahansa'
|
||||||
Last Hour: 'Edellinen tunti'
|
Last Hour: 'Viime tunti'
|
||||||
Today: 'Tänään'
|
Today: 'Tänään'
|
||||||
This Week: 'Tällä viikolla'
|
This Week: 'Tällä viikolla'
|
||||||
This Month: 'Tässä kuussa'
|
This Month: 'Tässä kuussa'
|
||||||
|
@ -62,6 +62,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Haetaan tuloksia. Odota hetki'
|
Fetching results. Please wait: 'Haetaan tuloksia. Odota hetki'
|
||||||
Fetch more results: 'Hae lisää tuloksia'
|
Fetch more results: 'Hae lisää tuloksia'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: Ei lisää tuloksia tällä haulla
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Tilaukset'
|
Subscriptions: 'Tilaukset'
|
||||||
|
@ -79,6 +80,12 @@ Most Popular: 'Suosituimmat'
|
||||||
Playlists: 'Soittolistat'
|
Playlists: 'Soittolistat'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Omat soittolistat'
|
Your Playlists: 'Omat soittolistat'
|
||||||
|
Playlist Message: Tämä sivu ei kuvasta täysin toimivia soittolistoja. Se listaa
|
||||||
|
vain tallentamasi tai tykkäämäsi videot. Kun tämä on valmis, kaikki täällä olevat
|
||||||
|
videot siirretään soittolistaan "Tykkäykset".
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Et
|
||||||
|
ole tallentanut videoita. Paina "Tallenna" painiketta videon kulmassa tallentaaksesi
|
||||||
|
sen tänne
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Historia'
|
History: 'Historia'
|
||||||
|
@ -114,6 +121,8 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
Check for Latest Blog Posts: Tarkista tuoreimmat blogimerkinnät
|
Check for Latest Blog Posts: Tarkista tuoreimmat blogimerkinnät
|
||||||
Check for Updates: Tarkista päivitykset
|
Check for Updates: Tarkista päivitykset
|
||||||
|
View all Invidious instance information: Invidious instancen tiedot
|
||||||
|
System Default: Järjestelmän oletus
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Teema-asetukset'
|
Theme Settings: 'Teema-asetukset'
|
||||||
Match Top Bar with Main Color: 'Käytä pääväriä yläpalkissa'
|
Match Top Bar with Main Color: 'Käytä pääväriä yläpalkissa'
|
||||||
|
@ -175,6 +184,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4K'
|
4k: '4K'
|
||||||
8k: '8K'
|
8k: '8K'
|
||||||
|
Next Video Interval: Seuraavan videon väli
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Tilausasetukset'
|
Subscription Settings: 'Tilausasetukset'
|
||||||
Hide Videos on Watch: 'Piilota katsotut videot'
|
Hide Videos on Watch: 'Piilota katsotut videot'
|
||||||
|
@ -229,6 +239,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Haluatko
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Haluatko
|
||||||
cvarmasti poistaa kaikki tilaukset ja profiilit. Tätä toimintoa ei voi perua.
|
cvarmasti poistaa kaikki tilaukset ja profiilit. Tätä toimintoa ei voi perua.
|
||||||
Remove All Subscriptions / Profiles: Poista kaikki tilaukset / profiilit
|
Remove All Subscriptions / Profiles: Poista kaikki tilaukset / profiilit
|
||||||
|
Automatically Remove Video Meta Files: Poista videoiden metadata automaattisesti
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: Kuinka voin tuoda tilaukseni?
|
How do I import my subscriptions?: Kuinka voin tuoda tilaukseni?
|
||||||
Unknown data key: Tuntematon data-avain
|
Unknown data key: Tuntematon data-avain
|
||||||
|
@ -265,6 +276,7 @@ Settings:
|
||||||
Select Import Type: Valitse Tuonnin tyyppi
|
Select Import Type: Valitse Tuonnin tyyppi
|
||||||
Data Settings: Data-asetukset
|
Data Settings: Data-asetukset
|
||||||
Check for Legacy Subscriptions: Tarkista vanhat tilaukset
|
Check for Legacy Subscriptions: Tarkista vanhat tilaukset
|
||||||
|
Manage Subscriptions: Hallitse tilauksia
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Hide Live Chat: Piilota Live-keskustelu
|
Hide Live Chat: Piilota Live-keskustelu
|
||||||
Hide Popular Videos: Piilota suositut videot
|
Hide Popular Videos: Piilota suositut videot
|
||||||
|
@ -275,9 +287,25 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Piilota videon tykkäykset
|
Hide Video Likes And Dislikes: Piilota videon tykkäykset
|
||||||
Distraction Free Settings: Häiriöttömän tilan asetukset
|
Distraction Free Settings: Häiriöttömän tilan asetukset
|
||||||
Hide Video Views: Piilota videon katselukerrat
|
Hide Video Views: Piilota videon katselukerrat
|
||||||
|
Hide Active Subscriptions: Piilota aktiiviset tilaukset
|
||||||
|
Hide Playlists: Piilota soittolistat
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Sovellus
|
The app needs to restart for changes to take effect. Restart and apply change?: Sovellus
|
||||||
on käynnistettävä uudelleen, jotta sovellukset tulevat voimaan. Käynnistetäänkö
|
on käynnistettävä uudelleen, jotta muutokset tulevat voimaan. Käynnistetäänkö
|
||||||
uudelleen?
|
uudelleen?
|
||||||
|
Proxy Settings:
|
||||||
|
Error getting network information. Is your proxy configured properly?: Virhe verkkoyhteyden
|
||||||
|
tietojen saamisessa. Onko välityspalvelin määritetty oikein?
|
||||||
|
Ip: Ip-osoite
|
||||||
|
Your Info: Tietosi
|
||||||
|
Country: Valtio
|
||||||
|
Test Proxy: Testaa välityspalvelin
|
||||||
|
Region: Alue
|
||||||
|
City: Kaupunki
|
||||||
|
Proxy Port Number: Välityspalvelimen portin numero
|
||||||
|
Proxy Host: Välityspalvelin
|
||||||
|
Proxy Settings: Välityspalvelimen asetukset
|
||||||
|
Enable Tor / Proxy: Ota käyttöön Tor/välityspalvelin
|
||||||
|
Proxy Protocol: Välityspalvelimen protokolla
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Tietoja'
|
About: 'Tietoja'
|
||||||
|
@ -307,6 +335,30 @@ About:
|
||||||
Latest FreeTube News: 'Viimeisimmät Freetube-uutiset'
|
Latest FreeTube News: 'Viimeisimmät Freetube-uutiset'
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
GitHub issues: GitHub-ongelmat
|
||||||
|
Report a problem: Ilmoita ongelmasta
|
||||||
|
FAQ: UKK
|
||||||
|
Blog: Blogi
|
||||||
|
Email: Sähköposti
|
||||||
|
Licensed under the AGPLv3: Lisensoitu AGPLv3:n alle
|
||||||
|
Chat on Matrix: Matrix
|
||||||
|
these people and projects: nämä henkilöt ja projektit
|
||||||
|
room rules: huoneen säännöt
|
||||||
|
Please read the: Lue
|
||||||
|
View License: Katso lisenssi
|
||||||
|
Please check for duplicates before posting: Tarkista kopioiden varalta ennen julkaisua
|
||||||
|
Website: Verkkosivu
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Translate: Käännös
|
||||||
|
Credits: Kiitokset
|
||||||
|
Help: Apua
|
||||||
|
FreeTube is made possible by: FreeTuben mahdollistavat
|
||||||
|
GitHub releases: GitHub julkaisut
|
||||||
|
Downloads / Changelog: Lataukset/muutosloki
|
||||||
|
Beta: Beta
|
||||||
|
FreeTube Wiki: FreeTube Wiki
|
||||||
|
Donate: Lahjoita
|
||||||
|
Source code: Lähdekoodi
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Tilaaja'
|
Subscriber: 'Tilaaja'
|
||||||
Subscribers: 'Tilaajat'
|
Subscribers: 'Tilaajat'
|
||||||
|
@ -390,7 +442,7 @@ Video:
|
||||||
Years: 'Vuotta'
|
Years: 'Vuotta'
|
||||||
Ago: 'sitten'
|
Ago: 'sitten'
|
||||||
Upcoming: 'Ensiesitys'
|
Upcoming: 'Ensiesitys'
|
||||||
Minutes: Minuutit
|
Minutes: Minuuttia
|
||||||
Minute: Minuutti
|
Minute: Minuutti
|
||||||
Published on: 'Julkaistu'
|
Published on: 'Julkaistu'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
@ -449,12 +501,12 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Teatteritila'
|
Toggle Theatre Mode: 'Teatteritila'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Vaihda videoformaattia'
|
Change Video Formats: 'Vaihda videoformaattia'
|
||||||
Use Dash Formats: 'Käytä Dash-formaatteja'
|
Use Dash Formats: 'Käytä DASH-formaatteja'
|
||||||
Use Legacy Formats: 'Käytä Legacy-formaatteja'
|
Use Legacy Formats: 'Käytä Legacy-formaatteja'
|
||||||
Use Audio Formats: 'Käytä ääniformaatteja'
|
Use Audio Formats: 'Käytä ääniformaatteja'
|
||||||
Audio formats are not available for this video: Audioformaatit eivät ole saatavilla
|
Audio formats are not available for this video: Audioformaatit eivät ole saatavilla
|
||||||
tähän videoon
|
tähän videoon
|
||||||
Dash formats are not available for this video: Dash-formaatit eivät ole saatavilla
|
Dash formats are not available for this video: DASH-formaatit eivät ole saatavilla
|
||||||
tähän videoon
|
tähän videoon
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Jaa video'
|
Share Video: 'Jaa video'
|
||||||
|
@ -521,7 +573,7 @@ Profile:
|
||||||
Your default profile has been set to $: Oletusprofiiliksesi on määritetty $
|
Your default profile has been set to $: Oletusprofiiliksesi on määritetty $
|
||||||
Profile has been updated: Profiili on päivitetty
|
Profile has been updated: Profiili on päivitetty
|
||||||
Profile has been created: Profiili on luotu
|
Profile has been created: Profiili on luotu
|
||||||
Your profile name cannot be empty: Profiilisi nimi ei voi olla tyhjä
|
Your profile name cannot be empty: Profiililla täytyy olla nimi
|
||||||
Profile could not be found: Profiilia ei löydetty
|
Profile could not be found: Profiilia ei löydetty
|
||||||
All subscriptions will also be deleted.: Kaikki tilaukset tullaan myös poistamaan.
|
All subscriptions will also be deleted.: Kaikki tilaukset tullaan myös poistamaan.
|
||||||
Are you sure you want to delete this profile?: Haluatko varmasti poistaa tämän profiilin?
|
Are you sure you want to delete this profile?: Haluatko varmasti poistaa tämän profiilin?
|
||||||
|
@ -542,7 +594,7 @@ Profile:
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: Tämä on ensisijainen profiilisi. Haluatko poistaa valitut kanavat? Kanavat poistetaan
|
: Tämä on ensisijainen profiilisi. Haluatko poistaa valitut kanavat? Kanavat poistetaan
|
||||||
kaikista profiileista joissa ne ovat.
|
myös muista profiileista.
|
||||||
No channel(s) have been selected: Kanavia ei ole valittu
|
No channel(s) have been selected: Kanavia ei ole valittu
|
||||||
Add Selected To Profile: Lisää valitut profiiliin
|
Add Selected To Profile: Lisää valitut profiiliin
|
||||||
Delete Selected: Poista valitut
|
Delete Selected: Poista valitut
|
||||||
|
@ -551,8 +603,9 @@ Profile:
|
||||||
$ selected: $ valittu
|
$ selected: $ valittu
|
||||||
Other Channels: Muut kanavat
|
Other Channels: Muut kanavat
|
||||||
Subscription List: Tilauslista
|
Subscription List: Tilauslista
|
||||||
|
Profile Filter: Profiilisuodatin
|
||||||
Version $ is now available! Click for more details: Versio $ on nyt saatavilla! Napsauta
|
Version $ is now available! Click for more details: Versio $ on nyt saatavilla! Napsauta
|
||||||
lisätietoja
|
saadaksesi lisätietoja
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Tämä
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Tämä
|
||||||
video ei ole saatavilla puuttuvien formaattien takia. Tämä voi tapahtua koska video
|
video ei ole saatavilla puuttuvien formaattien takia. Tämä voi tapahtua koska video
|
||||||
ei ole saatavilla maassasi.
|
ei ole saatavilla maassasi.
|
||||||
|
@ -563,25 +616,32 @@ Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Preferred API Backend: Valitse taustaohjelma, jota Freetube käyttää datan noutamiseen.
|
Preferred API Backend: Valitse taustaohjelma, jota Freetube käyttää datan noutamiseen.
|
||||||
Paikallinen API on ohjelmiston sisäinen. Invidious API vaatii yhteyden Invidious-palvelimeen.
|
Paikallinen API on ohjelmiston sisäinen. Invidious API vaatii yhteyden Invidious-palvelimeen.
|
||||||
Region for Trending: Valinta sallii sinun valita minkä maan Nousevat videot sinulle
|
Region for Trending: Valitsee minkä maan Nousevat videot sinulle näytetään. Kaikki
|
||||||
näytetään. Kaikki listatut maat eivät ole YouTuben tukemia
|
listatut maat eivät ole YouTuben tukemia.
|
||||||
Invidious Instance: Invidious instanssi jota Freetube käyttää. Tyhjennä kenttä
|
Invidious Instance: Invidious instanssi jota Freetube käyttää. Tyhjennä kenttä
|
||||||
nähdäksesi listan julkisista instansseista
|
nähdäksesi listan julkisista instansseista.
|
||||||
Thumbnail Preference: Kaikki pikkukuvat Freetubessa korvataan ruudulla videosta
|
Thumbnail Preference: Kaikki pikkukuvat Freetubessa korvataan ruudulla videosta
|
||||||
alkuperäisen pikkukuvan sijaan
|
alkuperäisen pikkukuvan sijaan.
|
||||||
Fallback to Non-Preferred Backend on Failure: Kun valitsemasi API kohtaa ongelman,
|
Fallback to Non-Preferred Backend on Failure: Kun valitsemasi API kohtaa ongelman,
|
||||||
Freetube yrittää automaattisestia käyttää toissijaista vaihtoehtoa
|
Freetube yrittää automaattisestia käyttää toissijaista vaihtoehtoa.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Kun valittuna, FreeTube käyttää RSS-syötettä oletusmetodin
|
Fetch Feeds from RSS: Kun valittuna, FreeTube käyttää RSS-syötettä oletusmetodin
|
||||||
sijaan tilauslistasi hakemisessa. RSS on nopeampi ja ehkäisee IP-estoa, mutta
|
sijaan tilauslistasi hakemisessa. RSS on nopeampi ja ehkäisee IP-estoa, mutta
|
||||||
ei anna tietoja kuten videon kesto tai livetila
|
ei anna tietoja, kuten videon kesto tai livetila
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Aseta videon toistamisessa käytätettävä formaatti. Dash-formaatit
|
Default Video Format: Aseta videon toistamisessa käytätettävä formaatti. DASH-formaatit
|
||||||
toistavat korkealaatuisempia videoita. Legacy-formaatit ovvat rajoitettu 720p-resoluutioon,
|
toistavat korkealaatuisempia videoita. Legacy-formaatit ovat rajoitettu 720p-resoluutioon,
|
||||||
mutta kkäyttävät väheämmän kaistaa. Audioformaatit ovat vain äänistriimeihin
|
mutta käyttävät vähemmän dataa. Audioformaatit ovat vain äänistriimeihin
|
||||||
Proxy Videos Through Invidious: Yhdistää Invidious-palvelimeen suoran YouTuben-yhteyden
|
Proxy Videos Through Invidious: Yhdistää Invidious-palvelimeen suoran YouTuben-yhteyden
|
||||||
sijaan. Ohittaa API-valinnan
|
sijaan. Ohittaa API-valinnan.
|
||||||
Force Local Backend for Legacy Formats: Toimii vain kun Invidious API on oletuksena.
|
Force Local Backend for Legacy Formats: Toimii vain kun Invidious API on oletuksena.
|
||||||
Kun valittuna, paikallinen API käyttää vanhoja formaatteja Invidiousin käyttämien
|
Kun valittuna, paikallinen API käyttää vanhoja formaatteja Invidiousin käyttämien
|
||||||
sijaan. Tämä auttaa, jos Invidiousin palauttamat videot eivät toimi maarajoituksien
|
sijaan. Tämä auttaa, jos Invidiousin palauttamat videot eivät toimi maarajoituksien
|
||||||
takia
|
takia.
|
||||||
|
More: Lisää
|
||||||
|
Playing Next Video Interval: Seuraava video alkaa. Klikkaa peruuttaaksesi. |Seuraava
|
||||||
|
video alkaa {nextVideoInterval} sekunnin kuluttua. Klikkaa peruuttaaksesi. | Seuraava
|
||||||
|
video alkaa {nextVideoInterval} sekunnin kuluttua. Klikkaa peruuttaaksesi.
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtageja ei vielä ole lisätty,
|
||||||
|
yritä uudelleen myöhemmin.
|
||||||
|
Open New Window: Avaa uusi ikkuna
|
||||||
|
|
|
@ -91,7 +91,7 @@ User Playlists:
|
||||||
Playlist Message: Cette page ne reflète pas les listes de lecture entièrement fonctionnelles.
|
Playlist Message: Cette page ne reflète pas les listes de lecture entièrement fonctionnelles.
|
||||||
Elle ne répertorie que les vidéos que vous avez enregistrées ou mises en favoris.
|
Elle ne répertorie que les vidéos que vous avez enregistrées ou mises en favoris.
|
||||||
Une fois le travail terminé, toutes les vidéos actuellement présentes ici seront
|
Une fois le travail terminé, toutes les vidéos actuellement présentes ici seront
|
||||||
migrées vers une liste de lecture «Favoris».
|
migrées vers une liste de lecture « Favoris ».
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Historique'
|
History: 'Historique'
|
||||||
|
@ -129,6 +129,7 @@ Settings:
|
||||||
Check for Updates: Vérifier les mises à jour
|
Check for Updates: Vérifier les mises à jour
|
||||||
View all Invidious instance information: Voir les informations de toutes les instances
|
View all Invidious instance information: Voir les informations de toutes les instances
|
||||||
Invidious
|
Invidious
|
||||||
|
System Default: Valeur par défaut du système
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Paramètres du thème'
|
Theme Settings: 'Paramètres du thème'
|
||||||
Match Top Bar with Main Color: 'Faire correspondre la barre supérieure à la couleur
|
Match Top Bar with Main Color: 'Faire correspondre la barre supérieure à la couleur
|
||||||
|
@ -176,7 +177,7 @@ Settings:
|
||||||
Default Playback Rate: 'Vitesse de lecture par défaut'
|
Default Playback Rate: 'Vitesse de lecture par défaut'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Format de vidéo par défaut'
|
Default Video Format: 'Format de vidéo par défaut'
|
||||||
Dash Formats: 'Format Dash'
|
Dash Formats: 'Format DASH'
|
||||||
Legacy Formats: 'Format Legacy'
|
Legacy Formats: 'Format Legacy'
|
||||||
Audio Formats: 'Format Audio'
|
Audio Formats: 'Format Audio'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -191,6 +192,9 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Intervalle de la prochaine vidéo dans la liste de
|
||||||
|
lecture
|
||||||
|
Next Video Interval: Intervalle vidéo suivante
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Paramètres des abonnements'
|
Subscription Settings: 'Paramètres des abonnements'
|
||||||
Hide Videos on Watch: 'Masquer les vidéos visionnées'
|
Hide Videos on Watch: 'Masquer les vidéos visionnées'
|
||||||
|
@ -247,6 +251,8 @@ Settings:
|
||||||
sûr(e) de vouloir supprimer tous les abonnements et les profils ? Cette action
|
sûr(e) de vouloir supprimer tous les abonnements et les profils ? Cette action
|
||||||
est définitive.
|
est définitive.
|
||||||
Remove All Subscriptions / Profiles: Supprimer tous les Abonnements / Profils
|
Remove All Subscriptions / Profiles: Supprimer tous les Abonnements / Profils
|
||||||
|
Automatically Remove Video Meta Files: Suppression automatique des MétaFichiers
|
||||||
|
vidéo
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: Comment importer mes abonnements ?
|
How do I import my subscriptions?: Comment importer mes abonnements ?
|
||||||
Subscriptions have been successfully exported: Les abonnements ont été exportés
|
Subscriptions have been successfully exported: Les abonnements ont été exportés
|
||||||
|
@ -292,12 +298,13 @@ Settings:
|
||||||
Hide Comment Likes: Masquer les J'aime dans les commentaires
|
Hide Comment Likes: Masquer les J'aime dans les commentaires
|
||||||
Hide Channel Subscribers: Masquer le nombre d'abonnés des chaînes
|
Hide Channel Subscribers: Masquer le nombre d'abonnés des chaînes
|
||||||
Hide Video Views: Masquer les vues des vidéos
|
Hide Video Views: Masquer les vues des vidéos
|
||||||
Hide Live Chat: Masquer le chat en direct
|
Hide Live Chat: Masquer le tchat en direct
|
||||||
Hide Popular Videos: Masquer les vidéos populaires
|
Hide Popular Videos: Masquer les vidéos populaires
|
||||||
Hide Trending Videos: Masquer les tendances
|
Hide Trending Videos: Masquer les tendances
|
||||||
Hide Recommended Videos: Masquer les vidéos recommandées
|
Hide Recommended Videos: Masquer les vidéos recommandées
|
||||||
Distraction Free Settings: Mode sans distraction
|
Distraction Free Settings: Mode sans distraction
|
||||||
Hide Active Subscriptions: Masquer les abonnements actifs
|
Hide Active Subscriptions: Masquer les abonnements actifs
|
||||||
|
Hide Playlists: Masquer les listes de lecture
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: L'application
|
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
|
doit être redémarrée pour que les changements prennent effet. Redémarrer et appliquer
|
||||||
les changements ?
|
les changements ?
|
||||||
|
@ -318,6 +325,13 @@ Settings:
|
||||||
Proxy Protocol: Protocole du proxy
|
Proxy Protocol: Protocole du proxy
|
||||||
Enable Tor / Proxy: Activer Tor / Proxy
|
Enable Tor / Proxy: Activer Tor / Proxy
|
||||||
Proxy Settings: Paramètres du proxy
|
Proxy Settings: Paramètres du proxy
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: Notification lorsqu'un segment sponsorisé
|
||||||
|
est ignoré
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': URL de l'API SponsorBlock
|
||||||
|
(la valeur par défaut est https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: Activer SponsorBlock
|
||||||
|
SponsorBlock Settings: Paramètres de SponsorBlock
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'À propos'
|
About: 'À propos'
|
||||||
|
@ -353,7 +367,7 @@ About:
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
Channel Rules: Règles du salon
|
Channel Rules: Règles du salon
|
||||||
Website: Site internet
|
Website: Site web
|
||||||
Source Code: Code source
|
Source Code: Code source
|
||||||
Release Notes: Notes de version
|
Release Notes: Notes de version
|
||||||
Email: Courriel
|
Email: Courriel
|
||||||
|
@ -370,7 +384,7 @@ About:
|
||||||
Donate: Faire un don
|
Donate: Faire un don
|
||||||
Useful Links: Liens utiles
|
Useful Links: Liens utiles
|
||||||
Translate: Aidez-nous à traduire FreeTube
|
Translate: Aidez-nous à traduire FreeTube
|
||||||
Chat on Matrix: Chatter sur Matrix
|
Chat on Matrix: Discuter sur Matrix
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Report a problem: Signaler un problème
|
Report a problem: Signaler un problème
|
||||||
View License: Voir la license
|
View License: Voir la license
|
||||||
|
@ -381,7 +395,7 @@ About:
|
||||||
room rules: règles du salon
|
room rules: règles du salon
|
||||||
Please read the: Veuillez lire les
|
Please read the: Veuillez lire les
|
||||||
Please check for duplicates before posting: Veuillez vérifier s'il y a des doublons
|
Please check for duplicates before posting: Veuillez vérifier s'il y a des doublons
|
||||||
avant de poster
|
avant de publier
|
||||||
GitHub issues: Les problèmes identifiés par la communauté sur GitHub
|
GitHub issues: Les problèmes identifiés par la communauté sur GitHub
|
||||||
FreeTube Wiki: Wiki de FreeTube
|
FreeTube Wiki: Wiki de FreeTube
|
||||||
GitHub releases: Les différentes versions de FreeTube disponibles sur GitHub
|
GitHub releases: Les différentes versions de FreeTube disponibles sur GitHub
|
||||||
|
@ -509,6 +523,15 @@ Video:
|
||||||
enregistrée
|
enregistrée
|
||||||
Video has been saved: La vidéo a été enregistrée
|
Video has been saved: La vidéo a été enregistrée
|
||||||
Save Video: Enregistrer la vidéo
|
Save Video: Enregistrer la vidéo
|
||||||
|
translated from English: traduit de l’anglais
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: musique hors sujet
|
||||||
|
interaction: interaction
|
||||||
|
sponsor: sponsor
|
||||||
|
self-promotion: autopromotion
|
||||||
|
outro: outro
|
||||||
|
intro: intro
|
||||||
|
Skipped segment: Segment ignoré
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -536,12 +559,12 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Mode Cinéma'
|
Toggle Theatre Mode: 'Mode Cinéma'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Changer le format de la vidéo'
|
Change Video Formats: 'Changer le format de la vidéo'
|
||||||
Use Dash Formats: 'Utiliser le format Dash'
|
Use Dash Formats: 'Utiliser le format DASH'
|
||||||
Use Legacy Formats: 'Utiliser le format Legacy'
|
Use Legacy Formats: 'Utiliser le format Legacy'
|
||||||
Use Audio Formats: 'Utiliser le format Audio'
|
Use Audio Formats: 'Utiliser le format Audio'
|
||||||
Audio formats are not available for this video: Le format Audio n'est pas disponible
|
Audio formats are not available for this video: Le format Audio n'est pas disponible
|
||||||
pour cette vidéo
|
pour cette vidéo
|
||||||
Dash formats are not available for this video: Le format Dash n'est pas disponible
|
Dash formats are not available for this video: Le format DASH n'est pas disponible
|
||||||
pour cette vidéo
|
pour cette vidéo
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Partager la vidéo'
|
Share Video: 'Partager la vidéo'
|
||||||
|
@ -647,6 +670,7 @@ Profile:
|
||||||
Select All: Tout sélectionner
|
Select All: Tout sélectionner
|
||||||
$ selected: $ sélectionné(s)
|
$ selected: $ sélectionné(s)
|
||||||
Other Channels: Autres chaînes
|
Other Channels: Autres chaînes
|
||||||
|
Profile Filter: Filtre de profil
|
||||||
The playlist has been reversed: La liste de lecture a été inversée
|
The playlist has been reversed: La liste de lecture a été inversée
|
||||||
A new blog is now available, $. Click to view more: Un nouveau billet est maintenant
|
A new blog is now available, $. Click to view more: Un nouveau billet est maintenant
|
||||||
disponible, $. Cliquez pour en savoir plus
|
disponible, $. Cliquez pour en savoir plus
|
||||||
|
@ -664,29 +688,43 @@ Tooltips:
|
||||||
comme la durée de la vidéo ou le statut en direct
|
comme la durée de la vidéo ou le statut en direct
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Définir les formats utilisés lors de la lecture d'une vidéo.
|
Default Video Format: Définir les formats utilisés lors de la lecture d'une vidéo.
|
||||||
Les formats Dash peuvent être lus en qualité supérieure. Les formats Legacy
|
Les formats DASH peuvent être lus en qualité supérieure. Les formats Legacy
|
||||||
sont limités à un maximum de 720p mais utilisent moins de bande passante. Les
|
sont limités à un maximum de 720p mais utilisent moins de bande passante. Les
|
||||||
formats audio sont des flux audio uniquement
|
formats audio sont des flux audio uniquement.
|
||||||
Proxy Videos Through Invidious: Se connectera à Invidious pour lire des vidéos
|
Proxy Videos Through Invidious: Se connectera à Invidious pour lire des vidéos
|
||||||
au lieu d'établir une connexion directe avec YouTube. Remplace les préférences
|
au lieu d'établir une connexion directe avec YouTube. Remplace les préférences
|
||||||
de l'API
|
de l'API.
|
||||||
Force Local Backend for Legacy Formats: Ne fonctionne que lorsque l'API Invidious
|
Force Local Backend for Legacy Formats: Ne fonctionne que lorsque l'API Invidious
|
||||||
est activée par défaut. Lorsqu'elle est activée, l'API locale s'exécute et utilise
|
est activée par défaut. Lorsqu'elle est activée, l'API locale s'exécute et utilise
|
||||||
les formats Legacy renvoyés par celle-ci au lieu de ceux renvoyés par Invidious.
|
les formats Legacy renvoyés par celle-ci au lieu de ceux renvoyés par Invidious.
|
||||||
Utile lorsque les vidéos renvoyées par Invidious ne sont pas lues en raison
|
Utile lorsque les vidéos renvoyées par Invidious ne sont pas lues en raison
|
||||||
de restrictions pays
|
de restrictions pays.
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: L'instance Invidious à laquelle FreeTube se connectera pour
|
Invidious Instance: L'instance Invidious à laquelle FreeTube se connectera pour
|
||||||
les appels d'API. Effacez l'instance actuelle pour voir une liste d'instances
|
les appels d'API. Effacez l'instance actuelle pour voir une liste d'instances
|
||||||
publiques parmi lesquelles choisir
|
publiques parmi lesquelles choisir.
|
||||||
Thumbnail Preference: Toutes les miniatures de FreeTube seront remplacées par
|
Thumbnail Preference: Toutes les miniatures de FreeTube seront remplacées par
|
||||||
une image de la vidéo au lieu de la vignette par défaut
|
une image de la vidéo au lieu de la vignette par défaut.
|
||||||
Fallback to Non-Preferred Backend on Failure: Lorsque votre API préférée a un
|
Fallback to Non-Preferred Backend on Failure: Lorsque votre API préférée a un
|
||||||
problème, FreeTube tentera automatiquement d'utiliser votre API non préférée
|
problème, FreeTube tentera automatiquement d'utiliser votre API non préférée
|
||||||
comme méthode de secours lorsqu'elle est activée
|
comme méthode de secours lorsqu'elle est activée.
|
||||||
Preferred API Backend: Choisissez le backend que FreeTube utilise pour obtenir
|
Preferred API Backend: Choisissez le backend que FreeTube utilise pour obtenir
|
||||||
les données. L'API locale est un extracteur intégré. L'API Invidious nécessite
|
les données. L'API locale est un extracteur intégré. L'API Invidious nécessite
|
||||||
un serveur Invidious pour se connecter.
|
un serveur Invidious pour se connecter.
|
||||||
Region for Trending: Ceci vous permet de choisir les vidéos tendance du pays que
|
Region for Trending: Ceci vous permet de choisir les vidéos tendance du pays que
|
||||||
vous souhaitez afficher. Attention, certains pays affichés ne sont pas pris
|
vous souhaitez afficher. Attention, certains pays affichés ne sont pas pris
|
||||||
en charge par YouTube
|
en charge par YouTube.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Lorsqu'il est activé, FreeTube supprime automatiquement
|
||||||
|
les MétaFichiers créés pendant la lecture de la vidéo, dès que la page de la
|
||||||
|
vidéo est quittée.
|
||||||
|
More: Plus
|
||||||
|
Playing Next Video Interval: Lecture de la prochaine vidéo en un rien de temps. Cliquez
|
||||||
|
pour annuler. | Lecture de la prochaine vidéo dans {nextVideoInterval} seconde.
|
||||||
|
Cliquer pour annuler. | Lecture de la vidéo suivante dans {l'intervalle vidéo suivant}
|
||||||
|
secondes. Cliquer pour annuler.
|
||||||
|
Hashtags have not yet been implemented, try again later: Les hashtags n'ont pas encore
|
||||||
|
été implémentés, réessayez plus tard
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Type d’url YouTube inconnu, ne
|
||||||
|
peut pas être ouvert dans l’application
|
||||||
|
Open New Window: Ouvrir une nouvelle fenêtre
|
||||||
|
|
|
@ -171,7 +171,7 @@ Settings:
|
||||||
Default Playback Rate: 'ברירת המחדל למהירות הצפייה'
|
Default Playback Rate: 'ברירת המחדל למהירות הצפייה'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'תצורת הסרטונים כברירת־המחדל'
|
Default Video Format: 'תצורת הסרטונים כברירת־המחדל'
|
||||||
Dash Formats: 'תצורות Dash'
|
Dash Formats: 'תצורות DASH'
|
||||||
Legacy Formats: 'תצורות מיושנות'
|
Legacy Formats: 'תצורות מיושנות'
|
||||||
Audio Formats: 'תצורות שמע'
|
Audio Formats: 'תצורות שמע'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -186,6 +186,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: מרווח זמן לפני ניגון הסרטון הבא בפלייליסט
|
||||||
|
Next Video Interval: משך הסרטון הבא
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'הגדרות פרטיות'
|
Privacy Settings: 'הגדרות פרטיות'
|
||||||
Remember History: 'זכור את היסטוריית הצפייה'
|
Remember History: 'זכור את היסטוריית הצפייה'
|
||||||
|
@ -201,6 +203,7 @@ Settings:
|
||||||
Remove All Subscriptions / Profiles: 'מחק את כל המנויים / פרופילים'
|
Remove All Subscriptions / Profiles: 'מחק את כל המנויים / פרופילים'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'האם
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'האם
|
||||||
אתם בטוחים שאתם רוצים למחוק כל את המנויים והפרופילים? פעולה זו היא לא הפיכה.'
|
אתם בטוחים שאתם רוצים למחוק כל את המנויים והפרופילים? פעולה זו היא לא הפיכה.'
|
||||||
|
Automatically Remove Video Meta Files: להסיר אוטומטית קובצי נתוני על של הסרטון
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'הגדרות מנויים'
|
Subscription Settings: 'הגדרות מנויים'
|
||||||
Hide Videos on Watch: 'הסתר סרטונים לאחר הצפייה'
|
Hide Videos on Watch: 'הסתר סרטונים לאחר הצפייה'
|
||||||
|
@ -281,6 +284,7 @@ Settings:
|
||||||
Distraction Free Settings: הגדרות להשבתת הסחות
|
Distraction Free Settings: הגדרות להשבתת הסחות
|
||||||
Hide Video Views: הסתרת תצוגות סרטונים
|
Hide Video Views: הסתרת תצוגות סרטונים
|
||||||
Hide Active Subscriptions: הסתרת מינויים פעילים
|
Hide Active Subscriptions: הסתרת מינויים פעילים
|
||||||
|
Hide Playlists: הסתרת פלייליסטים
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: צריך
|
The app needs to restart for changes to take effect. Restart and apply change?: צריך
|
||||||
להפעיל את היישומון מחדש כדי שהשינויים ייכנסו לתוקף. להפעיל מחדש ולהחיל את השינוי?
|
להפעיל את היישומון מחדש כדי שהשינויים ייכנסו לתוקף. להפעיל מחדש ולהחיל את השינוי?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
|
@ -401,6 +405,7 @@ Profile:
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'האם
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'האם
|
||||||
אתם בטוחים שאתם רוצים למחוק את הערוצים שבחרתם? הערוצים לא יימחקו משאר הפרופילים.'
|
אתם בטוחים שאתם רוצים למחוק את הערוצים שבחרתם? הערוצים לא יימחקו משאר הפרופילים.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: מסנן פרופילים
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'מנוי'
|
Subscriber: 'מנוי'
|
||||||
Subscribers: 'מנויים'
|
Subscribers: 'מנויים'
|
||||||
|
@ -497,7 +502,7 @@ Video:
|
||||||
Upcoming: 'שידור הבכורה ישודר ב־'
|
Upcoming: 'שידור הבכורה ישודר ב־'
|
||||||
Published on: 'פורסם'
|
Published on: 'פורסם'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'לפני $ %'
|
Publicationtemplate: 'לפני $ %'
|
||||||
#& Videos
|
#& Videos
|
||||||
Audio:
|
Audio:
|
||||||
Best: איכות הכי טובה
|
Best: איכות הכי טובה
|
||||||
|
@ -516,6 +521,7 @@ Video:
|
||||||
Video has been removed from your saved list: הסרטון הוסר מרשימת השמורים שלך
|
Video has been removed from your saved list: הסרטון הוסר מרשימת השמורים שלך
|
||||||
Video has been saved: סרטון נשמר
|
Video has been saved: סרטון נשמר
|
||||||
Save Video: שמירת סרטון
|
Save Video: שמירת סרטון
|
||||||
|
translated from English: תורגם מאנגלית
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -543,10 +549,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'הפעלו / בטלו מצב קולנוע'
|
Toggle Theatre Mode: 'הפעלו / בטלו מצב קולנוע'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'שינוי תצורות הסרטונים'
|
Change Video Formats: 'שינוי תצורות הסרטונים'
|
||||||
Use Dash Formats: 'שימוש בתצורות Dash'
|
Use Dash Formats: 'שימוש בתצורות DASH'
|
||||||
Use Legacy Formats: 'שימוש בתצורות המיושנות'
|
Use Legacy Formats: 'שימוש בתצורות המיושנות'
|
||||||
Use Audio Formats: 'שימוש בתצורות שמע'
|
Use Audio Formats: 'שימוש בתצורות שמע'
|
||||||
Dash formats are not available for this video: 'לא קיימות תצורות Dash לסרטון הזה'
|
Dash formats are not available for this video: 'לא קיימות תצורות DASH לסרטון הזה'
|
||||||
Audio formats are not available for this video: 'לא קיימות תצורות שמע לסרטון הזה'
|
Audio formats are not available for this video: 'לא קיימות תצורות שמע לסרטון הזה'
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'שתפו את הסרטון'
|
Share Video: 'שתפו את הסרטון'
|
||||||
|
@ -610,25 +616,25 @@ Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Fallback to Non-Preferred Backend on Failure: כאשר ל־API המועדף עליך יש בעיה,
|
Fallback to Non-Preferred Backend on Failure: כאשר ל־API המועדף עליך יש בעיה,
|
||||||
FreeTube ינסה להשתמש ב־API בעדיפות הנמוכה יותר באופן אוטומטי כשיטת נסיגה כאשר
|
FreeTube ינסה להשתמש ב־API בעדיפות הנמוכה יותר באופן אוטומטי כשיטת נסיגה כאשר
|
||||||
האפשרות פעילה
|
האפשרות פעילה.
|
||||||
Preferred API Backend: נא לבחור את המנגנון לשימוש FreeTube כדי לקבל נתונים. ה־API
|
Preferred API Backend: נא לבחור את המנגנון לשימוש FreeTube כדי לקבל נתונים. ה־API
|
||||||
המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious.
|
המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious.
|
||||||
Region for Trending: מגמות אזוריות מאפשר לך לבחור סרטונים חמים של איזו מדינה מעניין
|
Region for Trending: מגמות אזוריות מאפשר לך לבחור סרטונים חמים של איזו מדינה מעניין
|
||||||
אותך לראות. לא כל המדינות שמוצגות אכן נתמכות על ידי YouTube
|
אותך לראות. לא כל המדינות שמוצגות אכן נתמכות על ידי YouTube.
|
||||||
Invidious Instance: העותק של Invidious שאליו FreeTube יתחבר לפניות API. מחיקת
|
Invidious Instance: העותק של Invidious שאליו FreeTube יתחבר לפניות API. מחיקת
|
||||||
העותק הנוכחי תעלה רשימה של עותקים ציבוריים לבחור מביניהם
|
העותק הנוכחי תעלה רשימה של עותקים ציבוריים לבחור מביניהם.
|
||||||
Thumbnail Preference: כל התמונות הייצוגיות ברחבי FreeTube תוחלפנה בתמונית מתוך
|
Thumbnail Preference: כל התמונות הממוזערות ברחבי FreeTube יוחלפו בפריים מתוך הסרטון
|
||||||
הסרטון במקום התמונה הייצוגית כבררת המחדל
|
במקום התמונה הממוזערת כברירת המחדל.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא ברירת
|
Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא ברירת
|
||||||
המחדל שלך. כאשר האפשרות פעילה, ה־API המקומי יופעל וישתמש בתצורות המיושנות שהוחזרו
|
המחדל שלך. כאשר האפשרות פעילה, ה־API המקומי יופעל וישתמש בתצורות המיושנות שהוחזרו
|
||||||
על ידיו במקום באלו שהוחזרו על ידי Invidious. מועיל כאשר הסרטונים שמוחזרים על
|
על ידיו במקום באלו שהוחזרו על ידי Invidious. מועיל כאשר הסרטונים שמוחזרים על
|
||||||
ידי Invidious לא מתנגנים עקב מגבלות חוקיות במדינה
|
ידי Invidious לא מתנגנים עקב מגבלות חוקיות במדינה.
|
||||||
Proxy Videos Through Invidious: יתבצע חיבור ל־Invidious כדי להגיש סרטונים במקום
|
Proxy Videos Through Invidious: יתבצע חיבור ל־Invidious כדי להגיש סרטונים במקום
|
||||||
להתחבר ישירות ל־YouTube. דורס את העדפת ה־API
|
להתחבר ישירות ל־YouTube. דורס את העדפת ה־API.
|
||||||
Default Video Format: קביעת התצורות בעת ניגון סרטונים. תצורות Dash יכולות לנגן
|
Default Video Format: קביעת התצורות בעת ניגון סרטונים. תצורות DASH יכולות לנגן
|
||||||
באיכויות גבוהות יותר. התצורות המיושנות מוגבלות ל־720 פיקסלים לכל היותר אך משתמשות
|
באיכויות גבוהות יותר. התצורות המיושנות מוגבלות ל־720 פיקסלים לכל היותר אך משתמשות
|
||||||
בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד
|
בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: כאשר אפשרות זו פעילה. FreeTube ישתמש ב־RSS במקום בשיטת ברירת
|
Fetch Feeds from RSS: כאשר אפשרות זו פעילה. FreeTube ישתמש ב־RSS במקום בשיטת ברירת
|
||||||
המחדל לאיסוף הזנת המינויים שלך. RSS היא שיטה מהירה יותר ומונעת חסימת IP אבל
|
המחדל לאיסוף הזנת המינויים שלך. RSS היא שיטה מהירה יותר ומונעת חסימת IP אבל
|
||||||
|
|
|
@ -90,15 +90,24 @@ Most Popular: 'सबसे ज़्यादा देखा हुआ'
|
||||||
Playlists: 'प्लेलिस्टे (playlists)'
|
Playlists: 'प्लेलिस्टे (playlists)'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'आपके प्लेलिस्टे'
|
Your Playlists: 'आपके प्लेलिस्टे'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: आपके
|
||||||
|
पास बचाए गए वीडियोए नहीं हैं। एक वीडियो के कोने पर सेव बटन पर क्लिक (click) करें,
|
||||||
|
यहां लिस्ट पर वही आएगा
|
||||||
|
Playlist Message: यह पृष्ठ पूरी तरह से काम करने वाली प्लेलिस्ट को प्रतिबिंबित नहीं
|
||||||
|
करता है। यह केवल उन वीडियो को सूचीबद्ध करता है जिन्हें आपने सहेजा है या पसंदीदा
|
||||||
|
है। जब काम समाप्त हो जाता है, तो वर्तमान में यहां सभी वीडियो 'पसंदीदा' प्लेलिस्ट
|
||||||
|
में स्थानांतरित हो जाएंगे।
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: ''
|
History: 'इतिहास'
|
||||||
Watch History: ''
|
Watch History: ''
|
||||||
Your history list is currently empty.: ''
|
Your history list is currently empty.: ''
|
||||||
Settings:
|
Settings:
|
||||||
# On Settings Page
|
# On Settings Page
|
||||||
Settings: ''
|
Settings: 'स्थापना'
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: ''
|
The app needs to restart for changes to take effect. Restart and apply change?: 'ऐप
|
||||||
|
को प्रभावी होने वाले परिवर्तनों के लिए पुनः आरंभ करने की आवश्यकता है। Restart
|
||||||
|
और परिवर्तन लागू करें?'
|
||||||
General Settings:
|
General Settings:
|
||||||
General Settings: ''
|
General Settings: ''
|
||||||
Check for Updates: ''
|
Check for Updates: ''
|
||||||
|
@ -284,6 +293,7 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Email: ईमेल
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: ''
|
Profile Select: ''
|
||||||
All Channels: ''
|
All Channels: ''
|
||||||
|
@ -531,3 +541,4 @@ Canceled next video autoplay: ''
|
||||||
|
|
||||||
Yes: ''
|
Yes: ''
|
||||||
No: ''
|
No: ''
|
||||||
|
More: ज़्यादा
|
||||||
|
|
|
@ -125,6 +125,7 @@ Settings:
|
||||||
Check for Latest Blog Posts: Traži najnovije objave na blogu
|
Check for Latest Blog Posts: Traži najnovije objave na blogu
|
||||||
Check for Updates: Traži nove verzije
|
Check for Updates: Traži nove verzije
|
||||||
View all Invidious instance information: Prikaži podatke svih Invidious primjeraka
|
View all Invidious instance information: Prikaži podatke svih Invidious primjeraka
|
||||||
|
System Default: Standard sustava
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Postavke teme'
|
Theme Settings: 'Postavke teme'
|
||||||
Match Top Bar with Main Color: 'Koristi glavnu boju u gornjoj traci'
|
Match Top Bar with Main Color: 'Koristi glavnu boju u gornjoj traci'
|
||||||
|
@ -170,7 +171,7 @@ Settings:
|
||||||
Default Playback Rate: 'Standardna brzina reprodukcije'
|
Default Playback Rate: 'Standardna brzina reprodukcije'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Standardni videoformat'
|
Default Video Format: 'Standardni videoformat'
|
||||||
Dash Formats: 'Dash formati'
|
Dash Formats: 'DASH formati'
|
||||||
Legacy Formats: 'Stari formati'
|
Legacy Formats: 'Stari formati'
|
||||||
Audio Formats: 'Audioformati'
|
Audio Formats: 'Audioformati'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -185,6 +186,8 @@ Settings:
|
||||||
1440p: '1440 p'
|
1440p: '1440 p'
|
||||||
4k: '4 k'
|
4k: '4 k'
|
||||||
8k: '8 k'
|
8k: '8 k'
|
||||||
|
Playlist Next Video Interval: Interval sljedećeg videa zbirke
|
||||||
|
Next Video Interval: Interval za sljedeći video
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Postavke privatnosti'
|
Privacy Settings: 'Postavke privatnosti'
|
||||||
Remember History: 'Zapamti povijest'
|
Remember History: 'Zapamti povijest'
|
||||||
|
@ -200,6 +203,8 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Stvarno
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Stvarno
|
||||||
želiš ukloniti sve pretplate i profile? Ovo je nepovratna radnja.
|
želiš ukloniti sve pretplate i profile? Ovo je nepovratna radnja.
|
||||||
Remove All Subscriptions / Profiles: Ukloni sve pretplate/profile
|
Remove All Subscriptions / Profiles: Ukloni sve pretplate/profile
|
||||||
|
Automatically Remove Video Meta Files: Automatski ukloni datoteke metapodataka
|
||||||
|
videa
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Postavke pretplata'
|
Subscription Settings: 'Postavke pretplata'
|
||||||
Hide Videos on Watch: 'Sakrij video nakon gledanja'
|
Hide Videos on Watch: 'Sakrij video nakon gledanja'
|
||||||
|
@ -287,6 +292,7 @@ Settings:
|
||||||
Hide Video Views: Sakrij broj gledanja videa
|
Hide Video Views: Sakrij broj gledanja videa
|
||||||
Distraction Free Settings: Postavke za nesmetan rad
|
Distraction Free Settings: Postavke za nesmetan rad
|
||||||
Hide Active Subscriptions: Sakrij aktivne pretplate
|
Hide Active Subscriptions: Sakrij aktivne pretplate
|
||||||
|
Hide Playlists: Sakrij zbirke
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Promjene
|
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?
|
će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
|
@ -410,6 +416,7 @@ Profile:
|
||||||
$ selected: $ je odabran
|
$ selected: $ je odabran
|
||||||
Other Channels: Ostali kanali
|
Other Channels: Ostali kanali
|
||||||
Subscription List: Popis pretplata
|
Subscription List: Popis pretplata
|
||||||
|
Profile Filter: Filtar profila
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Pretplatnik'
|
Subscriber: 'Pretplatnik'
|
||||||
Subscribers: 'Pretplatnici'
|
Subscribers: 'Pretplatnici'
|
||||||
|
@ -502,7 +509,7 @@ Video:
|
||||||
Upcoming: 'Premijera'
|
Upcoming: 'Premijera'
|
||||||
Published on: 'Objavljeno'
|
Published on: 'Objavljeno'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'prije $ %'
|
Publicationtemplate: 'prije $ %'
|
||||||
#& Videos
|
#& Videos
|
||||||
Autoplay: Automatska reprodukcija
|
Autoplay: Automatska reprodukcija
|
||||||
Play Previous Video: Reproduciraj prethodni video
|
Play Previous Video: Reproduciraj prethodni video
|
||||||
|
@ -530,6 +537,7 @@ Video:
|
||||||
spremljenih
|
spremljenih
|
||||||
Video has been saved: Video je spremljen
|
Video has been saved: Video je spremljen
|
||||||
Save Video: Spremi video
|
Save Video: Spremi video
|
||||||
|
translated from English: prevedeno iz engleskog
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -557,12 +565,12 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Uključi/isključi kazališni modus'
|
Toggle Theatre Mode: 'Uključi/isključi kazališni modus'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Promijeni videoformate'
|
Change Video Formats: 'Promijeni videoformate'
|
||||||
Use Dash Formats: 'Koristi Dash-formate'
|
Use Dash Formats: 'Koristi DASH formate'
|
||||||
Use Legacy Formats: 'Koristi stare formate'
|
Use Legacy Formats: 'Koristi stare formate'
|
||||||
Use Audio Formats: 'Koristi audioformate'
|
Use Audio Formats: 'Koristi audioformate'
|
||||||
Audio formats are not available for this video: Audioformati nisu dostupni za ovaj
|
Audio formats are not available for this video: Audioformati nisu dostupni za ovaj
|
||||||
video
|
video
|
||||||
Dash formats are not available for this video: Dash formati nisu dostupni za ovaj
|
Dash formats are not available for this video: DASH formati nisu dostupni za ovaj
|
||||||
video
|
video
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Dijeli video'
|
Share Video: 'Dijeli video'
|
||||||
|
@ -632,31 +640,44 @@ This video is unavailable because of missing formats. This can happen due to cou
|
||||||
u zemlji.
|
u zemlji.
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Postavi formate za reprodukciju videa. Dash formati mogu
|
Default Video Format: Postavi formate za reprodukciju videa. DASH formati mogu
|
||||||
reproducirati višu kvalitetu slike. Stari formati su ograničeni na 720 p, ali
|
reproducirati višu kvalitetu slike. Stari formati su ograničeni na 720 p, ali
|
||||||
su zato brži. Audioformati sadrže samo audiosnimke
|
su zato brži. Audioformati sadrže samo audiosnimke.
|
||||||
Proxy Videos Through Invidious: Za reprodukciju videa povezat će se s Invidiousom
|
Proxy Videos Through Invidious: Za reprodukciju videa povezat će se s Invidiousom
|
||||||
umjesto izravnog povezivanja s YouTubeom. Zanemaruje postavke sučelja
|
umjesto izravnog povezivanja s YouTubeom. Zanemaruje postavke sučelja.
|
||||||
Force Local Backend for Legacy Formats: Radi samo, kad se Invidious postavi kao
|
Force Local Backend for Legacy Formats: Radi samo, kad se Invidious postavi kao
|
||||||
standardno sučelje. Kad je aktivirano, lokalno sučelje će pokretati i koristiti
|
standardno sučelje. Kad je aktivirano, lokalno sučelje će pokretati i koristiti
|
||||||
stare formate umjesto onih koje dostavlja Invidious. Pomaže u slučajevima, kad
|
stare formate umjesto onih koje dostavlja Invidious. Pomaže u slučajevima, kad
|
||||||
je reprodukcija videa koje dostavlja Invidious u zemlji zabranjena/ograničena
|
je reprodukcija videa koje dostavlja Invidious u zemlji zabranjena/ograničena.
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: Invidious primjerak na koji će se FreeTube povezati za pozive
|
Invidious Instance: Invidious primjerak na koji će se FreeTube povezati za pozive
|
||||||
sučelja. Isprazni trenutačni primjerak za prikaz popisa javnih primjeraka koje
|
sučelja. Isprazni trenutačni primjerak za prikaz popisa javnih primjeraka koje
|
||||||
možeš odabrati
|
možeš odabrati.
|
||||||
Thumbnail Preference: U FreeTubeu će se sve minijature zamijeniti s jednim kadrom
|
Thumbnail Preference: U FreeTubeu će se sve minijature zamijeniti s jednim kadrom
|
||||||
videa umjesto standardne minijature
|
videa umjesto standardne minijature.
|
||||||
Fallback to Non-Preferred Backend on Failure: Ako primarno odabrano sučelje ima
|
Fallback to Non-Preferred Backend on Failure: Ako primarno odabrano sučelje ima
|
||||||
problema, FreeTube će automatski pokušati koristiti sekundarno sučelje kao zamjensku
|
problema, FreeTube će automatski pokušati koristiti sekundarno sučelje kao zamjensku
|
||||||
metodu, ako je aktivirano
|
metodu, ako je aktivirano.
|
||||||
Preferred API Backend: Odaberi pozadinski sustav koji FreeTube koristi za dobivanje
|
Preferred API Backend: Odaberi pozadinski sustav koji FreeTube koristi za dobivanje
|
||||||
podataka. Lokalno sučelje je ugrađeni sustav. Invidious sučelje zahtijeva Invidious
|
podataka. Lokalno sučelje je ugrađeni sustav. Invidious sučelje zahtijeva Invidious
|
||||||
poslužitelja na koji će se povezati.
|
poslužitelja na koji će se povezati.
|
||||||
Region for Trending: 'Regija trendova omogućuje biranje prikaza videa u trendu
|
Region for Trending: 'Regija trendova omogućuje biranje prikaza videa u trendu
|
||||||
za određenu zemlju. YouTube zapravo ne podržava sve prikazane zemlje'
|
za određenu zemlju. YouTube zapravo ne podržava sve prikazane zemlje.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Kad je aktivirano, FreeTube će koristiti RSS umjesto vlastite
|
Fetch Feeds from RSS: Kad je aktivirano, FreeTube će koristiti RSS umjesto vlastite
|
||||||
standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava
|
standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava
|
||||||
blokiranje IP adresa, ali ne pruža određene podatke kao što su trajanje videa
|
blokiranje IP adresa, ali ne pruža određene podatke kao što su trajanje videa
|
||||||
ili stanja „uživo”
|
ili stanja „uživo”
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Kad je aktivirano, FreeTube automatski uklanja datoteke
|
||||||
|
metapodataka koji su stvoreni tijekom reprodukcije videa, kad se zatvori stranica
|
||||||
|
gledanja.
|
||||||
|
Playing Next Video Interval: Trenutna reprodukcija sljedećeg videa. Pritisni za prekid.
|
||||||
|
| Reprodukcija sljedećeg videa za {nextVideoInterval} sekunde. Pritisni za prekid.
|
||||||
|
| Reprodukcija sljedećeg videa za {nextVideoInterval} sekundi. Pritisni za prekid.
|
||||||
|
More: Još
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtagovi još nisu implementirani,
|
||||||
|
pokušaj kasnije ponovo
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Nepoznata vrsta URL adrese na YouTubeu,
|
||||||
|
ne može se otvoriti u programu
|
||||||
|
Open New Window: Otvori novi prozor
|
||||||
|
|
|
@ -135,6 +135,7 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Az Invidious példány összes tájékoztatásának
|
View all Invidious instance information: Az Invidious példány összes tájékoztatásának
|
||||||
megtekintése
|
megtekintése
|
||||||
|
System Default: Rendszer alapértelmezett
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Téma beállítások'
|
Theme Settings: 'Téma beállítások'
|
||||||
Match Top Bar with Main Color: 'Illessze a felső sávot a fő színnel'
|
Match Top Bar with Main Color: 'Illessze a felső sávot a fő színnel'
|
||||||
|
@ -180,7 +181,8 @@ Settings:
|
||||||
Default Playback Rate: 'Alapértelmezett lejátszási sebesség'
|
Default Playback Rate: 'Alapértelmezett lejátszási sebesség'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Alapértelmezett videóformátum'
|
Default Video Format: 'Alapértelmezett videóformátum'
|
||||||
Dash Formats: 'Kötőjel formátumok'
|
Dash Formats: 'DASH (Dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n
|
||||||
|
keresztül) formátumok'
|
||||||
Legacy Formats: 'Örökölt formátumok'
|
Legacy Formats: 'Örökölt formátumok'
|
||||||
Audio Formats: 'Hangformátumok'
|
Audio Formats: 'Hangformátumok'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -196,6 +198,7 @@ Settings:
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Lejátszási lista következő videó intervalluma
|
Playlist Next Video Interval: Lejátszási lista következő videó intervalluma
|
||||||
|
Next Video Interval: Következő videó időköze
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Adatvédelmi beállítások'
|
Privacy Settings: 'Adatvédelmi beállítások'
|
||||||
Remember History: 'Előzmények megjegyzése'
|
Remember History: 'Előzmények megjegyzése'
|
||||||
|
@ -211,6 +214,7 @@ Settings:
|
||||||
Remove All Subscriptions / Profiles: 'Összes feliratkozás és profil eltávolítása'
|
Remove All Subscriptions / Profiles: 'Összes feliratkozás és profil eltávolítása'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Biztosan
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Biztosan
|
||||||
törli az összes feliratkozást és profilt? A művelet nem vonható vissza.'
|
törli az összes feliratkozást és profilt? A művelet nem vonható vissza.'
|
||||||
|
Automatically Remove Video Meta Files: Videométafájlok önműködő eltávolítása
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Feliratkozás beállításai'
|
Subscription Settings: 'Feliratkozás beállításai'
|
||||||
Hide Videos on Watch: 'Videók elrejtése megtekintés után'
|
Hide Videos on Watch: 'Videók elrejtése megtekintés után'
|
||||||
|
@ -304,7 +308,7 @@ Settings:
|
||||||
Ip: IP-cím
|
Ip: IP-cím
|
||||||
Your Info: Az Ön adatai
|
Your Info: Az Ön adatai
|
||||||
Clicking on Test Proxy will send a request to: 'A Meghatalmazás-ellenőrzés gombra
|
Clicking on Test Proxy will send a request to: 'A Meghatalmazás-ellenőrzés gombra
|
||||||
kattintva kérést küld a következő címre:'
|
kattintva kérést küld a következő címre'
|
||||||
Test Proxy: Meghatalmazás-ellenőrzés
|
Test Proxy: Meghatalmazás-ellenőrzés
|
||||||
Proxy Port Number: Meghatalmazás kikötőszáma
|
Proxy Port Number: Meghatalmazás kikötőszáma
|
||||||
Proxy Host: Meghatalmazás gazdaszámítógép
|
Proxy Host: Meghatalmazás gazdaszámítógép
|
||||||
|
@ -313,6 +317,12 @@ Settings:
|
||||||
Proxy Settings: Meghatalmazás beállításai
|
Proxy Settings: Meghatalmazás beállításai
|
||||||
Error getting network information. Is your proxy configured properly?: Hiba a
|
Error getting network information. Is your proxy configured properly?: Hiba a
|
||||||
hálózati adatok lekérésekor. Megfelelő a meghatalmazás beállítása?
|
hálózati adatok lekérésekor. Megfelelő a meghatalmazás beállítása?
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: Értesítés a szponzorált szegmens kihagyásáról
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': 'SponsorBlock API
|
||||||
|
URL címe (Alapértelmezés: https://sponsor.ajay.app)'
|
||||||
|
Enable SponsorBlock: SponsorBlock engedélyezése
|
||||||
|
SponsorBlock Settings: SponsorBlock beállításai
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Névjegy'
|
About: 'Névjegy'
|
||||||
|
@ -346,7 +356,7 @@ About:
|
||||||
Latest FreeTube News: 'Legfrissebb FreeTube hírek'
|
Latest FreeTube News: 'Legfrissebb FreeTube hírek'
|
||||||
|
|
||||||
these people and projects: ezek emberek és projektek
|
these people and projects: ezek emberek és projektek
|
||||||
FreeTube is made possible by: 'A FreeTube engedélyezése:'
|
FreeTube is made possible by: 'A FreeTube engedélyezése'
|
||||||
Donate: Hozzájárulás
|
Donate: Hozzájárulás
|
||||||
Credits: Közreműködők
|
Credits: Közreműködők
|
||||||
Translate: Fordítás
|
Translate: Fordítás
|
||||||
|
@ -514,7 +524,7 @@ Video:
|
||||||
Upcoming: 'Az első előadás hamarosan lesz'
|
Upcoming: 'Az első előadás hamarosan lesz'
|
||||||
Published on: 'Megjelent'
|
Published on: 'Megjelent'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ % ezelőtt'
|
Publicationtemplate: '$ % ezelőtt'
|
||||||
#& Videos
|
#& Videos
|
||||||
Audio:
|
Audio:
|
||||||
Best: Legjobb
|
Best: Legjobb
|
||||||
|
@ -533,6 +543,15 @@ Video:
|
||||||
Video has been removed from your saved list: A videót eltávolítottuk a mentett listáról
|
Video has been removed from your saved list: A videót eltávolítottuk a mentett listáról
|
||||||
Video has been saved: A videó mentve
|
Video has been saved: A videó mentve
|
||||||
Save Video: Videó mentése
|
Save Video: Videó mentése
|
||||||
|
translated from English: angolról fordítva
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: témán kívüli zene
|
||||||
|
interaction: kölcsönhatás
|
||||||
|
self-promotion: önreklám
|
||||||
|
outro: kivezetés
|
||||||
|
intro: bevezetés
|
||||||
|
sponsor: szponzor
|
||||||
|
Skipped segment: Szegmens kihagyva
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -546,7 +565,7 @@ Playlist:
|
||||||
Videos: 'Videók'
|
Videos: 'Videók'
|
||||||
View: 'Megtekintés'
|
View: 'Megtekintés'
|
||||||
Views: 'Megtekintések'
|
Views: 'Megtekintések'
|
||||||
Last Updated On: 'Utoljára frissítve:'
|
Last Updated On: 'Utoljára frissítve'
|
||||||
Share Playlist:
|
Share Playlist:
|
||||||
Share Playlist: 'Lejátszási lista megosztása'
|
Share Playlist: 'Lejátszási lista megosztása'
|
||||||
Copy YouTube Link: 'YouTube hivatkozás másolása'
|
Copy YouTube Link: 'YouTube hivatkozás másolása'
|
||||||
|
@ -560,11 +579,13 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Mozi mód be-/kikapcsolása'
|
Toggle Theatre Mode: 'Mozi mód be-/kikapcsolása'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Videoformátumok módosítása'
|
Change Video Formats: 'Videoformátumok módosítása'
|
||||||
Use Dash Formats: 'Kötőjel formátumok használata'
|
Use Dash Formats: 'DASH (Dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n
|
||||||
|
keresztül) formátumok használata'
|
||||||
Use Legacy Formats: 'Örökölt formátumok használata'
|
Use Legacy Formats: 'Örökölt formátumok használata'
|
||||||
Use Audio Formats: 'Hangformátumok használata'
|
Use Audio Formats: 'Hangformátumok használata'
|
||||||
Dash formats are not available for this video: 'Kötőjel formátumok nem állnak rendelkezésre
|
Dash formats are not available for this video: 'DASH (Dinamikus adaptív sávszélességű
|
||||||
ehhez a videóhoz'
|
folyamatos átvitel HTTP-n keresztül) formátumok nem állnak rendelkezésre ehhez
|
||||||
|
a videóhoz'
|
||||||
Audio formats are not available for this video: 'Hangformátumok nem érhetők el ehhez
|
Audio formats are not available for this video: 'Hangformátumok nem érhetők el ehhez
|
||||||
a videóhoz'
|
a videóhoz'
|
||||||
Share:
|
Share:
|
||||||
|
@ -637,15 +658,15 @@ Tooltips:
|
||||||
használatához Invidious-kiszolgáló szükséges.
|
használatához Invidious-kiszolgáló szükséges.
|
||||||
Region for Trending: A népszerűk körzetével kiválaszthatja, mely ország népszerű
|
Region for Trending: A népszerűk körzetével kiválaszthatja, mely ország népszerű
|
||||||
videóit szeretné megjeleníteni. Nem minden megjelenített országot támogat a
|
videóit szeretné megjeleníteni. Nem minden megjelenített országot támogat a
|
||||||
YouTube
|
YouTube.
|
||||||
Invidious Instance: Invidious példány, amelyhez a FreeTube csatlakozni fog az
|
Invidious Instance: Invidious példány, amelyhez a FreeTube csatlakozni fog az
|
||||||
API-hívásokhoz. Törölje az aktuális példányt a nyilvános példányok listájának
|
API-hívásokhoz. Törölje az aktuális példányt a nyilvános példányok listájának
|
||||||
megjelenítéséhez
|
megjelenítéséhez.
|
||||||
Thumbnail Preference: A FreeTube összes miniatűrökét az alapértelmezett miniatűr
|
Thumbnail Preference: A FreeTube összes miniatűrökét az alapértelmezett miniatűr
|
||||||
helyett egy képkocka váltja fel
|
helyett egy képkocka váltja fel.
|
||||||
Fallback to Non-Preferred Backend on Failure: Ha az Ön által előnyben részesített
|
Fallback to Non-Preferred Backend on Failure: Ha az Ön által előnyben részesített
|
||||||
API-val hibába merül fel, a FreeTube önműködően megpróbálja a nem előnyben API-t
|
API-val hibába merül fel, a FreeTube önműködően megpróbálja a nem előnyben API-t
|
||||||
tartalékként használni, ha engedélyezve van
|
tartalékként használni, ha engedélyezve van.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Ha engedélyezve van, a FreeTube az alapértelmezett módszer
|
Fetch Feeds from RSS: Ha engedélyezve van, a FreeTube az alapértelmezett módszer
|
||||||
helyett RSS-t fog használni a feliratkozás hírcsatornájának megragadásához.
|
helyett RSS-t fog használni a feliratkozás hírcsatornájának megragadásához.
|
||||||
|
@ -653,19 +674,28 @@ Tooltips:
|
||||||
például a videó időtartamát vagy az élő állapotot
|
például a videó időtartamát vagy az élő állapotot
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Állítsa be a videó lejátszásakor használt formátumokat.
|
Default Video Format: Állítsa be a videó lejátszásakor használt formátumokat.
|
||||||
A kötőjel formátumok magasabb minőséget játszhatnak le. Az örökölt formátumok
|
A DASH (dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n keresztül)
|
||||||
legfeljebb 720 képpontra korlátozódnak, de kevesebb sávszélességet használnak.
|
formátumok magasabb minőséget játszhatnak le. Az örökölt formátumok legfeljebb
|
||||||
A hangformátumok csak hang-adatfolyamok
|
720 képpontra korlátozódnak, de kevesebb sávszélességet használnak. A hangformátumok
|
||||||
|
csak hang-adatfolyamok.
|
||||||
Proxy Videos Through Invidious: Csatlakozik az Invidious szolgáltatáshoz, hogy
|
Proxy Videos Through Invidious: Csatlakozik az Invidious szolgáltatáshoz, hogy
|
||||||
videókat szolgáltasson, ahelyett, hogy közvetlen kapcsolatot létesítene a YouTube
|
videókat szolgáltasson, ahelyett, hogy közvetlen kapcsolatot létesítene a YouTube
|
||||||
szolgáltatással. Felülbírálja az API beállítást
|
szolgáltatással. Felülbírálja az API beállítást.
|
||||||
Force Local Backend for Legacy Formats: Csak akkor működik, ha az Invidious API
|
Force Local Backend for Legacy Formats: Csak akkor működik, ha az Invidious API
|
||||||
az alapértelmezett. Ha engedélyezve van, a helyi API futni fog, és az általa
|
az alapértelmezett. Ha engedélyezve van, a helyi API futni fog, és az általa
|
||||||
visszaadott örökölt formátumokat fogja használni az Invidious által visszaadottak
|
visszaadott örökölt formátumokat fogja használni az Invidious által visszaadottak
|
||||||
helyett. Segít, ha az Invidious által visszaküldött videókat nem lehet lejátszani
|
helyett. Segít, ha az Invidious által visszaküldött videókat nem lehet lejátszani
|
||||||
az ország korlátozása miatt
|
az ország korlátozása miatt.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Ha engedélyezve van, a FreeTube önműködőén törli a videolejátszás
|
||||||
|
során létrehozott métafájlokat, amikor a nézési oldal bezárul.
|
||||||
Playing Next Video Interval: A következő videó lejátszása folyamatban van. Kattintson
|
Playing Next Video Interval: A következő videó lejátszása folyamatban van. Kattintson
|
||||||
a törléshez. | A következő videó lejátszása {nextVideoInterval} másodperc múlva
|
a törléshez. | A következő videó lejátszása {nextVideoInterval} másodperc múlva
|
||||||
történik. Kattintson a törléshez. | A következő videó lejátszása {nextVideoInterval}
|
történik. Kattintson a törléshez. | A következő videó lejátszása {nextVideoInterval}
|
||||||
másodperc múlva történik. Kattintson a törléshez.
|
másodperc múlva történik. Kattintson a törléshez.
|
||||||
More: Több
|
More: Több
|
||||||
|
Hashtags have not yet been implemented, try again later: A kettőskeresztescímke még
|
||||||
|
nincs megvalósítva. Próbálkozzon később.
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Ismeretlen YouTube URL-típusa,
|
||||||
|
nem nyitható meg az alkalmazásban
|
||||||
|
Open New Window: Új ablak megnyitása
|
||||||
|
|
|
@ -131,6 +131,7 @@ Settings:
|
||||||
Region for Trending: 'Wilayah untuk Sedang Tren'
|
Region for Trending: 'Wilayah untuk Sedang Tren'
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Lihat semua informasi situs Invidious
|
View all Invidious instance information: Lihat semua informasi situs Invidious
|
||||||
|
System Default: Sistem standar
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Pengaturan Tema'
|
Theme Settings: 'Pengaturan Tema'
|
||||||
Match Top Bar with Main Color: 'Samakan Bilah Atas dengan Warna Utama'
|
Match Top Bar with Main Color: 'Samakan Bilah Atas dengan Warna Utama'
|
||||||
|
@ -175,7 +176,7 @@ Settings:
|
||||||
Default Playback Rate: 'Laju Pemutaran Bawaan'
|
Default Playback Rate: 'Laju Pemutaran Bawaan'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Format Video Bawaan'
|
Default Video Format: 'Format Video Bawaan'
|
||||||
Dash Formats: 'Format Dash'
|
Dash Formats: 'Format DASH'
|
||||||
Legacy Formats: 'Format Lama'
|
Legacy Formats: 'Format Lama'
|
||||||
Audio Formats: 'Format Audio'
|
Audio Formats: 'Format Audio'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -191,6 +192,7 @@ Settings:
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Interval Video dalam Daftar Putar
|
Playlist Next Video Interval: Interval Video dalam Daftar Putar
|
||||||
|
Next Video Interval: Interval Video Selanjutnya
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Pengaturan Privasi'
|
Privacy Settings: 'Pengaturan Privasi'
|
||||||
Remember History: 'Ingat Riwayat'
|
Remember History: 'Ingat Riwayat'
|
||||||
|
@ -207,6 +209,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Apakah
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Apakah
|
||||||
Anda yakin ingin menghapus semua langganan dan profil? Tindakan ini tidak bisa
|
Anda yakin ingin menghapus semua langganan dan profil? Tindakan ini tidak bisa
|
||||||
diurungkan.'
|
diurungkan.'
|
||||||
|
Automatically Remove Video Meta Files: Secara Otomatis Hapus File Meta Video
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Pengaturan Langganan'
|
Subscription Settings: 'Pengaturan Langganan'
|
||||||
Hide Videos on Watch: 'Sembunyikan Video saat Menonton'
|
Hide Videos on Watch: 'Sembunyikan Video saat Menonton'
|
||||||
|
@ -403,6 +406,7 @@ Profile:
|
||||||
Anda yakin ingin menghapus kanal yang terpilih? Tindakan ini tidak akan menghapus
|
Anda yakin ingin menghapus kanal yang terpilih? Tindakan ini tidak akan menghapus
|
||||||
kanalnya dari profil lain.'
|
kanalnya dari profil lain.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Filter Profil
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Pelanggan'
|
Subscriber: 'Pelanggan'
|
||||||
Subscribers: 'Pelanggan'
|
Subscribers: 'Pelanggan'
|
||||||
|
@ -503,7 +507,7 @@ Video:
|
||||||
Upcoming: 'Segera tayang di'
|
Upcoming: 'Segera tayang di'
|
||||||
Published on: 'Dipublikasi pada'
|
Published on: 'Dipublikasi pada'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ % yang lalu'
|
Publicationtemplate: '$ % yang lalu'
|
||||||
#& Videos
|
#& Videos
|
||||||
Audio:
|
Audio:
|
||||||
Best: Terbaik
|
Best: Terbaik
|
||||||
|
@ -525,6 +529,7 @@ Video:
|
||||||
Anda
|
Anda
|
||||||
Video has been saved: Video telah disimpan
|
Video has been saved: Video telah disimpan
|
||||||
Save Video: Simpan Video
|
Save Video: Simpan Video
|
||||||
|
translated from English: diterjemahkan dari Bahasa Inggris
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -552,10 +557,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Mode Teater'
|
Toggle Theatre Mode: 'Mode Teater'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Ubah Format Video'
|
Change Video Formats: 'Ubah Format Video'
|
||||||
Use Dash Formats: 'Gunakan Format Dash'
|
Use Dash Formats: 'Gunakan Format DASH'
|
||||||
Use Legacy Formats: 'Gunakan Format Legasi'
|
Use Legacy Formats: 'Gunakan Format Legasi'
|
||||||
Use Audio Formats: 'Gunakan Format Audio'
|
Use Audio Formats: 'Gunakan Format Audio'
|
||||||
Dash formats are not available for this video: 'Format dash tidak tersedia untuk
|
Dash formats are not available for this video: 'Format DASH tidak tersedia untuk
|
||||||
video ini'
|
video ini'
|
||||||
Audio formats are not available for this video: 'Format audio tidak tersedia untuk
|
Audio formats are not available for this video: 'Format audio tidak tersedia untuk
|
||||||
video ini'
|
video ini'
|
||||||
|
@ -628,32 +633,39 @@ Tooltips:
|
||||||
IP, tetapi tidak menyediakan informasi tertentu seperti durasi video atau status
|
IP, tetapi tidak menyediakan informasi tertentu seperti durasi video atau status
|
||||||
siaran langsung
|
siaran langsung
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Atur format yang digunakan ketika video diputar. Format
|
Default Video Format: Atur format video. Format DASH bisa memutar kualitas yang
|
||||||
dash bisa memutar kualitas yang lebih tinggi. Format lama terbatas ke maks 720p
|
lebih tinggi. Format lama terbatas ke maks 720p tetapi dengan bandwidth yang
|
||||||
tetapi dengan bandwidth yang lebih rendah. Format audio hanya berisi stream
|
lebih rendah. Format audio hanya berisi stream audio.
|
||||||
audio
|
|
||||||
Proxy Videos Through Invidious: Akan menyambung ke Invidious daripada YouTube.
|
Proxy Videos Through Invidious: Akan menyambung ke Invidious daripada YouTube.
|
||||||
Menimpa preferensi API
|
Menimpa preferensi API.
|
||||||
Force Local Backend for Legacy Formats: Hanya bekerja jika APi Invidious diatur
|
Force Local Backend for Legacy Formats: Hanya bekerja jika APi Invidious diatur
|
||||||
sebagai default. Ketika diaktifkan, API lokal akan berjalan dan menggunakan
|
sebagai default. Ketika diaktifkan, API lokal akan berjalan dan menggunakan
|
||||||
format lama yang dihasilkan oleh API lokal daripada yang dihasilkan oleh API
|
format lama yang dihasilkan oleh API lokal daripada yang dihasilkan oleh API
|
||||||
Invidious. Membantu saat video yang ditampilkan oleh Invidious tidak bisa diputar
|
Invidious. Membantu saat video yang ditampilkan oleh Invidious tidak bisa diputar
|
||||||
karena dibatasi oleh wilayah pemutaran
|
karena dibatasi oleh wilayah pemutaran.
|
||||||
General Settings:
|
General Settings:
|
||||||
Region for Trending: Wilayah tren memungkinkan Anda memilih video yang sedang
|
Region for Trending: Wilayah tren memungkinkan Anda memilih video yang sedang
|
||||||
ngetren dari negara tersebut untuk ditampilkan. Tidak semua daftar negara didukung
|
ngetren dari negara tersebut untuk ditampilkan. Tidak semua daftar negara didukung
|
||||||
oleh YouTube
|
oleh YouTube.
|
||||||
Invidious Instance: Situs Invidious yang akan tersambung dengan FreeTube untuk
|
Invidious Instance: Situs Invidious yang akan tersambung dengan FreeTube untuk
|
||||||
panggilan API. Hapus situs saat ini untuk melihat daftar situs publik yang didukung
|
panggilan API. Hapus situs saat ini untuk melihat daftar situs publik yang didukung.
|
||||||
Thumbnail Preference: Semua thumbnail di dalam aplikasi FreeTube akan diganti
|
Thumbnail Preference: Semua thumbnail di dalam aplikasi FreeTube akan diganti
|
||||||
dengan frame dari video
|
dengan frame dari video.
|
||||||
Fallback to Non-Preferred Backend on Failure: Ketika API yang Anda pilih memiliki
|
Fallback to Non-Preferred Backend on Failure: Ketika API yang Anda pilih memiliki
|
||||||
masalah, FreeTube akan secara otomatis menggunakan layanan API lainnya sebagai
|
masalah, FreeTube akan secara otomatis menggunakan layanan API lainnya sebagai
|
||||||
cadangan jika diaktifkan
|
cadangan jika diaktifkan.
|
||||||
Preferred API Backend: Pilih layanan yang digunakan oleh FreeTube untuk mengambil
|
Preferred API Backend: Pilih layanan yang digunakan oleh FreeTube untuk mengambil
|
||||||
data. API lokal adalah ekstraktor bawaan. API Invidious membutuhkan sambungan
|
data. API lokal adalah ekstraktor bawaan. API Invidious membutuhkan sambungan
|
||||||
ke server Invidious.
|
ke server Invidious.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Saat diaktifkan, FreeTube secara otomatis menghapus file
|
||||||
|
meta yang dibuat selama pemutaran video, saat halaman tonton ditutup.
|
||||||
Playing Next Video Interval: Langsung putar video berikutnya. Klik untuk batal. |
|
Playing Next Video Interval: Langsung putar video berikutnya. Klik untuk batal. |
|
||||||
Putar video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal. | Putar
|
Putar video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal. | Putar
|
||||||
video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal.
|
video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal.
|
||||||
More: Lebih banyak
|
More: Lebih banyak
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtag belum diimplementasikan,
|
||||||
|
silakan coba lagi nanti
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Tipe URL YouTube tidak dikenal,
|
||||||
|
tidak bisa dibuka di aplikasi
|
||||||
|
Open New Window: Buka Jendela Baru
|
||||||
|
|
|
@ -0,0 +1,642 @@
|
||||||
|
# Put the name of your locale in the same language
|
||||||
|
Locale Name: 'Íslenska'
|
||||||
|
FreeTube: 'FreeTube'
|
||||||
|
# Currently on Subscriptions, Playlists, and History
|
||||||
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
|
Þessi hluti forritsins er ekki tilbúinn. Skoðaðu þetta seinna þegar meira hefur
|
||||||
|
verið unnið í þessu.
|
||||||
|
|
||||||
|
# Webkit Menu Bar
|
||||||
|
File: 'Skrá'
|
||||||
|
Quit: 'Hætta'
|
||||||
|
Edit: 'Breyta'
|
||||||
|
Undo: 'Afturkalla'
|
||||||
|
Redo: 'Endurtaka'
|
||||||
|
Cut: 'Klippa'
|
||||||
|
Copy: 'Afrita'
|
||||||
|
Paste: 'Líma'
|
||||||
|
Delete: 'Eyða'
|
||||||
|
Select all: 'Velja allt'
|
||||||
|
Reload: 'Endurlesa'
|
||||||
|
Force Reload: 'Þvinga endurlestur'
|
||||||
|
Toggle Developer Tools: 'Víxla forritaratólum af/á'
|
||||||
|
Actual size: 'Raunstærð'
|
||||||
|
Zoom in: 'Renna að'
|
||||||
|
Zoom out: 'Renna frá'
|
||||||
|
Toggle fullscreen: 'Víxla skjáfylli af/á'
|
||||||
|
Window: 'Gluggi'
|
||||||
|
Minimize: 'Lágmarka'
|
||||||
|
Close: 'Loka'
|
||||||
|
Back: 'Til baka'
|
||||||
|
Forward: 'Áfram'
|
||||||
|
|
||||||
|
Version $ is now available! Click for more details: 'Útgáfa $ er tiltæk! Smelltu
|
||||||
|
til að skoða nánar'
|
||||||
|
Download From Site: 'Sækja af vefsvæði'
|
||||||
|
A new blog is now available, $. Click to view more: 'Ný bloggfærsla er núna er tiltæk,
|
||||||
|
$. Smelltu til að skoða nánar'
|
||||||
|
|
||||||
|
# Search Bar
|
||||||
|
Search / Go to URL: 'Leita / Fara á slóð'
|
||||||
|
# In Filter Button
|
||||||
|
Search Filters:
|
||||||
|
Search Filters: 'Leitarsíur'
|
||||||
|
Sort By:
|
||||||
|
Sort By: 'Raða eftir'
|
||||||
|
Most Relevant: 'Mest viðeigandi'
|
||||||
|
Rating: 'Einkunn'
|
||||||
|
Upload Date: 'Dags. innsendingar'
|
||||||
|
View Count: 'Fjöldi áhorfa'
|
||||||
|
Time:
|
||||||
|
Time: 'Tími'
|
||||||
|
Any Time: 'Hvenær sem er'
|
||||||
|
Last Hour: 'Síðustu klukkustund'
|
||||||
|
Today: 'Í dag'
|
||||||
|
This Week: 'Í þessari viku'
|
||||||
|
This Month: 'Í þessum mánuði'
|
||||||
|
This Year: 'Á þessu ári'
|
||||||
|
Type:
|
||||||
|
Type: 'Tegund'
|
||||||
|
All Types: 'Allar tegundir'
|
||||||
|
Videos: 'Myndskeið'
|
||||||
|
Channels: 'Rásir'
|
||||||
|
#& Playlists
|
||||||
|
Duration:
|
||||||
|
Duration: 'Tímalengd'
|
||||||
|
All Durations: 'Allar tímalengdir'
|
||||||
|
Short (< 4 minutes): 'Stutt (< 4 mínútur)'
|
||||||
|
Long (> 20 minutes): 'Langt (> 20 mínútur)'
|
||||||
|
# On Search Page
|
||||||
|
Search Results: 'Leitarniðurstöður'
|
||||||
|
Fetching results. Please wait: 'Sæki niðurstöður. Hinkraðu aðeins'
|
||||||
|
Fetch more results: 'Sækja fleiri niðurstöður'
|
||||||
|
There are no more results for this search: 'Engar fleiri niðurstöður samsvara leitinni
|
||||||
|
þinni'
|
||||||
|
# Sidebar
|
||||||
|
Subscriptions:
|
||||||
|
# On Subscriptions Page
|
||||||
|
Subscriptions: 'Áskriftir'
|
||||||
|
Latest Subscriptions: 'Síðustu áskriftir'
|
||||||
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: 'Þetta
|
||||||
|
notkunarsnið er með mikinn fjölda áskrifta. Þvinga notkun á RSS til að forðast
|
||||||
|
takmarkanir á magni'
|
||||||
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Listi
|
||||||
|
með áskriftum er tómur í augnablikinu. Gerstu áskrifandi að rásum og þær munu
|
||||||
|
birtast hér.'
|
||||||
|
'Getting Subscriptions. Please wait.': 'Sæki áskriftir. Hinkraðu aðeins.'
|
||||||
|
Refresh Subscriptions: 'Endurlesa áskriftir'
|
||||||
|
Load More Videos: 'Hlaða inn fleiri myndskeiðum'
|
||||||
|
More: 'Meira'
|
||||||
|
Trending: 'Í umræðunni'
|
||||||
|
Most Popular: 'Vinsælast'
|
||||||
|
Playlists: 'Spilunarlistar'
|
||||||
|
User Playlists:
|
||||||
|
Your Playlists: 'Spilunarlistarnir þínir'
|
||||||
|
Playlist Message: 'Þessi síða endurspeglar ekki alveg fullvirka spilunarlista. Hún
|
||||||
|
telur aðeins upp þau myndskeið sem þú hefur vistað eða sett í eftirlæti. Þegar
|
||||||
|
verkinu er lokið munu öll þessi myndskeið færast yfir í ''Eftirlæti''-spilunarlista.'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 'Listinn
|
||||||
|
þinn yfir vistuð myndskeið er tómur. Smelltu á vistunarhnapp myndskeiðs til að
|
||||||
|
það birtist hér'
|
||||||
|
History:
|
||||||
|
# On History Page
|
||||||
|
History: 'Vinnsluferill'
|
||||||
|
Watch History: 'Áhorfsferill'
|
||||||
|
Your history list is currently empty.: 'Listi með vinnsluferli er tómur í augnablikinu.'
|
||||||
|
Settings:
|
||||||
|
# On Settings Page
|
||||||
|
Settings: 'Stillingar'
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: 'Þú
|
||||||
|
þarft að endurræsa forritið svo breytingarnar taki gildi. á að endurræsa og virkja
|
||||||
|
breytingar?'
|
||||||
|
General Settings:
|
||||||
|
General Settings: 'Almennar stillingar'
|
||||||
|
Check for Updates: 'Athuga með uppfærslur'
|
||||||
|
Check for Latest Blog Posts: 'Athuga með nýjustu bloggfærslur'
|
||||||
|
Fallback to Non-Preferred Backend on Failure: 'Nota varaleið um ekki-forgangsbakenda
|
||||||
|
þegar villa kemur upp'
|
||||||
|
Enable Search Suggestions: 'Virkja tillögur í leit'
|
||||||
|
Default Landing Page: 'Sjálfgefin upphafssíða'
|
||||||
|
Locale Preference: 'Umbeðin staðfærsla'
|
||||||
|
Preferred API Backend:
|
||||||
|
Preferred API Backend: 'Forgangsbakendi API-kerfisviðmóts'
|
||||||
|
Local API: 'Staðvært API-kerfisviðmót'
|
||||||
|
Invidious API: 'Invidious API-kerfisviðmót'
|
||||||
|
Video View Type:
|
||||||
|
Video View Type: 'Tegund myndskeiðsskoðunar'
|
||||||
|
Grid: 'Reitir'
|
||||||
|
List: 'Listi'
|
||||||
|
Thumbnail Preference:
|
||||||
|
Thumbnail Preference: 'Kjörstillingar smámynda'
|
||||||
|
Default: 'Sjálfgefið'
|
||||||
|
Beginning: 'Upphaf'
|
||||||
|
Middle: 'Miðja'
|
||||||
|
End: 'Endir'
|
||||||
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious-tilvik
|
||||||
|
(sjálfgefið er https://invidious.snopyta.org)'
|
||||||
|
View all Invidious instance information: 'Skoða allar upplýsingar um Invidious-tilvik'
|
||||||
|
Region for Trending: 'Landssvæði sem skal miða vinsældir við'
|
||||||
|
#! List countries
|
||||||
|
System Default: Sjálfgefið í kerfinu
|
||||||
|
Theme Settings:
|
||||||
|
Theme Settings: 'Þemastillingar'
|
||||||
|
Match Top Bar with Main Color: 'Láta toppstiku samsvara aðallit'
|
||||||
|
Expand Side Bar by Default: 'Fletta sjálfgefið út hliðarstiku'
|
||||||
|
Disable Smooth Scrolling: 'Gera mjúkt skrun óvirkt'
|
||||||
|
UI Scale: 'Kvörðun viðmóts'
|
||||||
|
Base Theme:
|
||||||
|
Base Theme: 'Grunnþema'
|
||||||
|
Black: 'Svart'
|
||||||
|
Dark: 'Dökkt'
|
||||||
|
Light: 'Ljóst'
|
||||||
|
Main Color Theme:
|
||||||
|
Main Color Theme: 'Aðallitur þema'
|
||||||
|
Red: 'Rautt'
|
||||||
|
Pink: 'Bleikt'
|
||||||
|
Purple: 'Purpurablátt'
|
||||||
|
Deep Purple: 'Dökkpurpurablátt'
|
||||||
|
Indigo: 'Djúpfjólublátt'
|
||||||
|
Blue: 'Blátt'
|
||||||
|
Light Blue: 'Ljósblátt'
|
||||||
|
Cyan: 'Blágrænt'
|
||||||
|
Teal: 'Djúpblágrænt'
|
||||||
|
Green: 'Grænt'
|
||||||
|
Light Green: 'Ljósgrænt'
|
||||||
|
Lime: 'Límónugrænt'
|
||||||
|
Yellow: 'Gult'
|
||||||
|
Amber: 'Raflitt'
|
||||||
|
Orange: 'Appelsínugult'
|
||||||
|
Deep Orange: 'Dimmappelsínugult'
|
||||||
|
Secondary Color Theme: 'Aukalitur þema'
|
||||||
|
#* Main Color Theme
|
||||||
|
Player Settings:
|
||||||
|
Player Settings: 'Stillingar spilara'
|
||||||
|
Force Local Backend for Legacy Formats: 'Þvinga notkun staðværs bakenda fyrir
|
||||||
|
eldri skráasnið'
|
||||||
|
Play Next Video: 'Spila næsta myndskeið'
|
||||||
|
Turn on Subtitles by Default: 'Sjálfgefið kveikja á skjátextum'
|
||||||
|
Autoplay Videos: 'Spila myndskeið sjálfkrafa'
|
||||||
|
Proxy Videos Through Invidious: 'Beina myndskeiðum í gegnum Invidious-milliþjón'
|
||||||
|
Autoplay Playlists: 'Spila spilunarlista sjálfkrafa'
|
||||||
|
Enable Theatre Mode by Default: 'Sjálfgefið virkja bíóham (theater mode)'
|
||||||
|
Playlist Next Video Interval: 'Millibil afspilunar næsta myndskeiðs í spilunarlista'
|
||||||
|
Default Volume: 'Sjálfgefinn hljóðstyrkur'
|
||||||
|
Default Playback Rate: 'Sjálfgefinn afspilunarhraði'
|
||||||
|
Default Video Format:
|
||||||
|
Default Video Format: 'Sjálfgefið skráasnið myndskeiða'
|
||||||
|
Dash Formats: 'DASH-skráasnið'
|
||||||
|
Legacy Formats: 'Eldri skráasnið'
|
||||||
|
Audio Formats: 'Hljóðskráasnið'
|
||||||
|
Default Quality:
|
||||||
|
Default Quality: 'Sjálfgefin gæði'
|
||||||
|
Auto: 'Sjálfvirkt'
|
||||||
|
144p: '144p'
|
||||||
|
240p: '240p'
|
||||||
|
360p: '360p'
|
||||||
|
480p: '480p'
|
||||||
|
720p: '720p'
|
||||||
|
1080p: '1080p'
|
||||||
|
1440p: '1440p'
|
||||||
|
4k: '4k'
|
||||||
|
8k: '8k'
|
||||||
|
Next Video Interval: Bil í næsta myndskeið
|
||||||
|
Privacy Settings:
|
||||||
|
Privacy Settings: 'Stillingar gagnaleyndar'
|
||||||
|
Remember History: 'Muna vinnsluferil'
|
||||||
|
Save Watched Progress: 'Vista framvindu áhorfs'
|
||||||
|
Clear Search Cache: 'Hreinsa skyndiminni leitar'
|
||||||
|
Are you sure you want to clear out your search cache?: 'Ertu viss um að þú viljir
|
||||||
|
eyða skyndiminni leitar?'
|
||||||
|
Search cache has been cleared: 'Skyndiminni leitar var hreinsað'
|
||||||
|
Remove Watch History: 'Fjarlægja áhorfsferil'
|
||||||
|
Are you sure you want to remove your entire watch history?: 'Ertu viss um að þú
|
||||||
|
viljir fjarlægja allan áhorfsferilinn þinn?'
|
||||||
|
Watch history has been cleared: 'Áhorfsferill var hreinsaður'
|
||||||
|
Remove All Subscriptions / Profiles: 'Fjarlægja allar áskriftir / notkunarsnið'
|
||||||
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ertu
|
||||||
|
viss um að þú viljir fjarlægja allar áskriftir og notkunarsnið? Ekki er hægt
|
||||||
|
að afturkalla þetta.'
|
||||||
|
Automatically Remove Video Meta Files: Sjálfvirkt fjarlægja lýsigögn úr myndskeiðaskrám
|
||||||
|
Subscription Settings:
|
||||||
|
Subscription Settings: 'Stillingar áskrifta'
|
||||||
|
Hide Videos on Watch: 'Fela myndskeið eftir áhorf'
|
||||||
|
Fetch Feeds from RSS: 'Ná í streymi úr RSS'
|
||||||
|
Manage Subscriptions: 'Sýsla með áskriftir'
|
||||||
|
Distraction Free Settings:
|
||||||
|
Distraction Free Settings: 'Truflanaminnkandi stillingar'
|
||||||
|
Hide Video Views: 'Fela fjölda áhorfa á myndskeið'
|
||||||
|
Hide Video Likes And Dislikes: 'Fela hve mörgum líkar eða mislíkar myndskeið'
|
||||||
|
Hide Channel Subscribers: 'Fela fjölda áskrifenda myndskeiða'
|
||||||
|
Hide Comment Likes: 'Fela hve mörgum líkar athugasemdir'
|
||||||
|
Hide Recommended Videos: 'Fela myndskeið sem mælt er með'
|
||||||
|
Hide Trending Videos: 'Fela myndskeið í umræðunni'
|
||||||
|
Hide Popular Videos: 'Fela vinsæl myndskeið'
|
||||||
|
Hide Playlists: 'Fela spilunarlista'
|
||||||
|
Hide Live Chat: 'Fela spjall í beinni'
|
||||||
|
Hide Active Subscriptions: 'Fela virkar áskriftir'
|
||||||
|
Data Settings:
|
||||||
|
Data Settings: 'Stillingar gagna'
|
||||||
|
Select Import Type: 'Veldu tegund innflutnings'
|
||||||
|
Select Export Type: 'Veldu tegund útflutnings'
|
||||||
|
Import Subscriptions: 'Flytja inn áskriftir'
|
||||||
|
Import FreeTube: 'Flytja inn FreeTube'
|
||||||
|
Import YouTube: 'Flytja inn YouTube'
|
||||||
|
Import NewPipe: 'Flytja inn NewPipe'
|
||||||
|
Check for Legacy Subscriptions: 'Athuga með eldri áskriftir'
|
||||||
|
Export Subscriptions: 'Flytja út áskriftir'
|
||||||
|
Export FreeTube: 'Flytja út FreeTube'
|
||||||
|
Export YouTube: 'Flytja út YouTube'
|
||||||
|
Export NewPipe: 'Flytja út NewPipe'
|
||||||
|
Import History: 'Flytja inn vinnsluferil'
|
||||||
|
Export History: 'Flytja út vinnsluferil'
|
||||||
|
Profile object has insufficient data, skipping item: 'Atriði notkunarsniðs er
|
||||||
|
ekki með næg gögn, sleppi þessu'
|
||||||
|
All subscriptions and profiles have been successfully imported: 'Innflutningur
|
||||||
|
á öllum áskriftum og notkunarsniðum tókst'
|
||||||
|
All subscriptions have been successfully imported: 'Innflutningur á öllum áskriftum
|
||||||
|
tókst'
|
||||||
|
One or more subscriptions were unable to be imported: 'Ekki tókst að flytja inn
|
||||||
|
eina eða fleiri áskriftir'
|
||||||
|
Invalid subscriptions file: 'Ógild áskriftaskrá'
|
||||||
|
This might take a while, please wait: 'Þetta getur tekið dálítinn tíma, sýndu
|
||||||
|
smá þolinmæði'
|
||||||
|
Invalid history file: 'Ógild vinnsluferilskrá'
|
||||||
|
Subscriptions have been successfully exported: 'Úflutningur á áskriftum tókst'
|
||||||
|
History object has insufficient data, skipping item: 'Atriði vinnsluferils er
|
||||||
|
ekki með næg gögn, sleppi þessu'
|
||||||
|
All watched history has been successfully imported: 'Allur áhorfsferillinn var
|
||||||
|
fluttur inn'
|
||||||
|
All watched history has been successfully exported: 'Allur áhorfsferillinn var
|
||||||
|
fluttur út'
|
||||||
|
Unable to read file: 'Gat ekki lesið skrá'
|
||||||
|
Unable to write file: 'Gat ekki skrifað skrá'
|
||||||
|
Unknown data key: 'Óþekktur gagnalykill'
|
||||||
|
How do I import my subscriptions?: 'Hvernig flyt ég inn áskriftirnar mínar?'
|
||||||
|
Manage Subscriptions: 'Sýsla með áskriftir'
|
||||||
|
Proxy Settings:
|
||||||
|
Proxy Settings: 'Stillingar milliþjóns (proxy)'
|
||||||
|
Enable Tor / Proxy: 'Virkja Tor / milliþjón'
|
||||||
|
Proxy Protocol: 'Samskiptamáti milliþjóns'
|
||||||
|
Proxy Host: 'Hýsilvél milliþjóns'
|
||||||
|
Proxy Port Number: 'Númer á gátt milliþjóns'
|
||||||
|
Clicking on Test Proxy will send a request to: 'Ef smellt er á ''Prófa milliþjón''
|
||||||
|
verður send beiðni á'
|
||||||
|
Test Proxy: 'Prófa milliþjón'
|
||||||
|
Your Info: 'Upplýsingar um þig'
|
||||||
|
Ip: 'IP-vistfang'
|
||||||
|
Country: 'Land'
|
||||||
|
Region: 'Hérað'
|
||||||
|
City: 'Borg/Sveitarfélag'
|
||||||
|
Error getting network information. Is your proxy configured properly?: 'Það tókst
|
||||||
|
ekki að sækja upplýsingar um netkerfið. Er milliþjónninn rétt uppsettur?'
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: Láta vita þegar kostaður bútur er hunsaður
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': SponsorBlock API-slóð
|
||||||
|
(sjálfgefið er https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: Virkja SponsorBlock
|
||||||
|
SponsorBlock Settings: Stillingar SponsorBlock
|
||||||
|
About:
|
||||||
|
#On About page
|
||||||
|
About: 'Um hugbúnaðinn'
|
||||||
|
Beta: 'Beta-prófunarútgáfa'
|
||||||
|
Source code: 'Grunnkóði'
|
||||||
|
Licensed under the AGPLv3: 'Gefið út með AGPLv3-notkunarleyfi'
|
||||||
|
View License: 'Skoða notkunarleyfi'
|
||||||
|
Downloads / Changelog: 'Sóttar skrár / Breytingaskrá'
|
||||||
|
GitHub releases: 'Útgáfur af GitHub'
|
||||||
|
Help: 'Hjálp'
|
||||||
|
FreeTube Wiki: 'FreeTube wikivefur'
|
||||||
|
FAQ: 'FAQ / Algengar spurningar'
|
||||||
|
Report a problem: 'Tilkynna vandamál'
|
||||||
|
GitHub issues: 'GitHub verkbeiðnir'
|
||||||
|
Please check for duplicates before posting: 'Athugaðu hvort fyrir séu eins fyrirspurnir
|
||||||
|
áður en þú sendir nýja'
|
||||||
|
Website: 'Vefsvæði'
|
||||||
|
Blog: 'Blogg'
|
||||||
|
Email: 'Tölvupóstur'
|
||||||
|
Mastodon: 'Mastodon'
|
||||||
|
Chat on Matrix: 'Spjall á Matrix'
|
||||||
|
Please read the: 'Endilega lestu'
|
||||||
|
room rules: 'reglur spjallsins'
|
||||||
|
Translate: 'Þýða'
|
||||||
|
Credits: 'Framlög'
|
||||||
|
FreeTube is made possible by: 'FreeTube er gert mögulegt af'
|
||||||
|
these people and projects: 'þessu fólki og verkefnum'
|
||||||
|
Donate: 'Styrkja'
|
||||||
|
|
||||||
|
Profile:
|
||||||
|
Profile Select: 'Val á notkunarsniði'
|
||||||
|
Profile Filter: 'Sía notkunarsnið'
|
||||||
|
All Channels: 'Allar rásir'
|
||||||
|
Profile Manager: 'Sýsla með notkunarsnið'
|
||||||
|
Create New Profile: 'Búa til nýtt notkunarsnið'
|
||||||
|
Edit Profile: 'Breyta notkunarsniði'
|
||||||
|
Color Picker: 'Litaplokkari'
|
||||||
|
Custom Color: 'Sérsniðinn litur'
|
||||||
|
Profile Preview: 'Forskoðun notkunarsniðs'
|
||||||
|
Create Profile: 'Búa til notkunarsnið'
|
||||||
|
Update Profile: 'Uppfæra notkunarsnið'
|
||||||
|
Make Default Profile: 'Gera að sjálfgefnu notkunarsniði'
|
||||||
|
Delete Profile: 'Eyða notkunarsniði'
|
||||||
|
Are you sure you want to delete this profile?: 'Ertu viss um að þú viljir eyða þessu
|
||||||
|
notkunarsniði?'
|
||||||
|
All subscriptions will also be deleted.: 'Öllum áskriftum verður einnig eytt.'
|
||||||
|
Profile could not be found: 'Notkunarsnið fannst ekki'
|
||||||
|
Your profile name cannot be empty: 'Nafn notkunarsniðsins má ekki vera tómt'
|
||||||
|
Profile has been created: 'Notkunarsnið hefur verið útbúið'
|
||||||
|
Profile has been updated: 'Notkunarsnið hefur verið uppfært'
|
||||||
|
Your default profile has been set to $: 'Sjálfgefið notandasnið þitt hefur stillt
|
||||||
|
sem $'
|
||||||
|
Removed $ from your profiles: 'Fjarlægði $ úr notkunarsniðunum þínum'
|
||||||
|
Your default profile has been changed to your primary profile: 'Sjálfgefið notandasnið
|
||||||
|
þitt hefur stillt á aðalnotkunarsniðið þitt'
|
||||||
|
$ is now the active profile: '$ er núna virka notkunarsniðið'
|
||||||
|
Subscription List: 'Áskriftalisti'
|
||||||
|
Other Channels: 'Aðrar rásir'
|
||||||
|
$ selected: '$ valið'
|
||||||
|
Select All: 'Velja allt'
|
||||||
|
Select None: 'Velja ekkert'
|
||||||
|
Delete Selected: 'Eyða völdu'
|
||||||
|
Add Selected To Profile: 'Breyta völdu við notkunarsnið'
|
||||||
|
No channel(s) have been selected: 'Engin rás hefur verið valin'
|
||||||
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
|
same channels will be deleted in any profile they are found in.
|
||||||
|
: 'Þetta er aðalnotkunarsnið þitt. Ertu viss um að þú viljir eyða völdu rásunum?
|
||||||
|
Þessum sömu rásum verður eytt úr öllum þeim notkunarsniðum þar sem þær finnast.'
|
||||||
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Ertu
|
||||||
|
viss um að þú viljir eyða völdu rásunum? Þetta mun ekki eyða rásunum úr öðrum
|
||||||
|
notkunarsniðum.'
|
||||||
|
#On Channel Page
|
||||||
|
Channel:
|
||||||
|
Subscriber: 'Áskrifandi'
|
||||||
|
Subscribers: 'Áskrifendur'
|
||||||
|
Subscribe: 'Gerast áskrifandi'
|
||||||
|
Unsubscribe: 'Segja upp áskrift'
|
||||||
|
Channel has been removed from your subscriptions: 'Rás var fjarlægð úr áskriftunum
|
||||||
|
þínum'
|
||||||
|
Removed subscription from $ other channel(s): 'Fjarlægði áskrift úr $ rás(um) til
|
||||||
|
viðbótar'
|
||||||
|
Added channel to your subscriptions: 'Bætti rás í áskriftirnar þínar'
|
||||||
|
Search Channel: 'Leita á rás'
|
||||||
|
Your search results have returned 0 results: 'Leitin skilaði 0 niðurstöðum'
|
||||||
|
Sort By: 'Raða eftir'
|
||||||
|
Videos:
|
||||||
|
Videos: 'Myndskeið'
|
||||||
|
This channel does not currently have any videos: 'Þessi rás er ekki með nein myndskeið'
|
||||||
|
Sort Types:
|
||||||
|
Newest: 'Nýjast'
|
||||||
|
Oldest: 'Elst'
|
||||||
|
Most Popular: 'Vinsælast'
|
||||||
|
Playlists:
|
||||||
|
Playlists: 'Spilunarlistar'
|
||||||
|
This channel does not currently have any playlists: 'Þessi rás er ekki með neina
|
||||||
|
spilunarlista'
|
||||||
|
Sort Types:
|
||||||
|
Last Video Added: 'Síðast viðbætta myndskeið'
|
||||||
|
Newest: 'Nýjast'
|
||||||
|
Oldest: 'Elst'
|
||||||
|
About:
|
||||||
|
About: 'Um rásina'
|
||||||
|
Channel Description: 'Lýsing á rás'
|
||||||
|
Featured Channels: 'Rásir í deiglunni'
|
||||||
|
Video:
|
||||||
|
Mark As Watched: 'Merkja sem búið að horfa á'
|
||||||
|
Remove From History: 'Fjarlægja úr vinnsluferli'
|
||||||
|
Video has been marked as watched: 'Myndskeið hefur verið merkt sem skoðað'
|
||||||
|
Video has been removed from your history: 'Myndskeið hefur verið fjarlægt úr vinnsluferlinum
|
||||||
|
þínum'
|
||||||
|
Save Video: 'Vista myndskeið'
|
||||||
|
Video has been saved: 'Myndskeið hefur verið vistað'
|
||||||
|
Video has been removed from your saved list: 'Myndskeið hefur verið fjarlægt úr
|
||||||
|
listanum yfir vistað'
|
||||||
|
Open in YouTube: 'Opna í YouTube'
|
||||||
|
Copy YouTube Link: 'Afrita YouTube-tengil'
|
||||||
|
Open YouTube Embedded Player: 'Opna ívafinn YouTube-spilara'
|
||||||
|
Copy YouTube Embedded Player Link: 'Afrita tengil á ívafinn YouTube-spilara'
|
||||||
|
Open in Invidious: 'Opna í Invidious'
|
||||||
|
Copy Invidious Link: 'Afrita Invidious-tengil'
|
||||||
|
Open Channel in YouTube: 'Opna rás í YouTube'
|
||||||
|
Copy YouTube Channel Link: 'Afrita tengil YouTube-rásar'
|
||||||
|
Open Channel in Invidious: 'Opna rás í Invidious'
|
||||||
|
Copy Invidious Channel Link: 'Afrita tengil Invidious-rásar'
|
||||||
|
View: 'Áhorf'
|
||||||
|
Views: 'Áhorf'
|
||||||
|
Loop Playlist: 'Endurtaka spilunarlista endalaust'
|
||||||
|
Shuffle Playlist: 'Stokka spilunarlista'
|
||||||
|
Reverse Playlist: 'Snúa við spilunarlista'
|
||||||
|
Play Next Video: 'Spila næsta myndskeið'
|
||||||
|
Play Previous Video: 'Spila fyrra myndskeið'
|
||||||
|
# Context is "X People Watching"
|
||||||
|
Watching: 'Verið að horfa'
|
||||||
|
Watched: 'Búið að horfa'
|
||||||
|
Autoplay: 'Spila sjálfkrafa'
|
||||||
|
Starting soon, please refresh the page to check again: 'Byrjar bráðum, endurlestu
|
||||||
|
síðuna til að fylgjast með'
|
||||||
|
# As in a Live Video
|
||||||
|
Live: 'Beint'
|
||||||
|
Live Now: 'Í beinni útsendingu núna'
|
||||||
|
Live Chat: 'Spjall í beinni'
|
||||||
|
Enable Live Chat: 'Virkja spjall í beinni'
|
||||||
|
Live Chat is currently not supported in this build.: 'Spjall í beinni er ekki stutt
|
||||||
|
í þ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 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.'
|
||||||
|
Download Video: 'Sækja myndskeið'
|
||||||
|
video only: 'einungis myndmerki'
|
||||||
|
audio only: 'einungis hljóð'
|
||||||
|
Audio:
|
||||||
|
Low: 'Lág'
|
||||||
|
Medium: 'Miðlungs'
|
||||||
|
High: 'Há'
|
||||||
|
Best: 'Besta'
|
||||||
|
Published:
|
||||||
|
Jan: 'Jan'
|
||||||
|
Feb: 'Feb'
|
||||||
|
Mar: 'Mar'
|
||||||
|
Apr: 'Apr'
|
||||||
|
May: 'Maí'
|
||||||
|
Jun: 'Jún'
|
||||||
|
Jul: 'Júl'
|
||||||
|
Aug: 'Ágú'
|
||||||
|
Sep: 'Sep'
|
||||||
|
Oct: 'Okt'
|
||||||
|
Nov: 'Nóv'
|
||||||
|
Dec: 'Des'
|
||||||
|
Second: 'sekúndu'
|
||||||
|
Seconds: 'sekúndum'
|
||||||
|
Minute: 'mínútu'
|
||||||
|
Minutes: 'mínútum'
|
||||||
|
Hour: 'klukkustund'
|
||||||
|
Hours: 'klukkustundum'
|
||||||
|
Day: 'degi'
|
||||||
|
Days: 'dögum'
|
||||||
|
Week: 'viku'
|
||||||
|
Weeks: 'vikum'
|
||||||
|
Month: 'mánuði'
|
||||||
|
Months: 'mánuðum'
|
||||||
|
Year: 'ári'
|
||||||
|
Years: 'árum'
|
||||||
|
Ago: 'síðan'
|
||||||
|
Upcoming: 'Frumsýnt'
|
||||||
|
Published on: 'Gefið út'
|
||||||
|
Streamed on: 'Streymt'
|
||||||
|
Started streaming on: 'Byrjaði streymi'
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: 'Fyrir $ % síðan'
|
||||||
|
#& Videos
|
||||||
|
translated from English: þýtt úr ensku
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: tónlist óskyld efni
|
||||||
|
interaction: gagnvirkni
|
||||||
|
self-promotion: sjálfskynning
|
||||||
|
intro: kynning
|
||||||
|
sponsor: kostunaraðili
|
||||||
|
Skipped segment: Búti sleppt
|
||||||
|
Videos:
|
||||||
|
#& Sort By
|
||||||
|
Sort By:
|
||||||
|
Newest: 'Nýjast'
|
||||||
|
Oldest: 'Elst'
|
||||||
|
#& Most Popular
|
||||||
|
#& Playlists
|
||||||
|
Playlist:
|
||||||
|
#& About
|
||||||
|
View Full Playlist: 'Sjá allan spilunarlistann'
|
||||||
|
Videos: 'Myndskeið'
|
||||||
|
View: 'Áhorf'
|
||||||
|
Views: 'Áhorf'
|
||||||
|
Last Updated On: 'Síðast uppfært'
|
||||||
|
Share Playlist:
|
||||||
|
Share Playlist: 'Deila spilunarlista'
|
||||||
|
Copy YouTube Link: 'Afrita YouTube-tengil'
|
||||||
|
Open in YouTube: 'Opna í YouTube'
|
||||||
|
Copy Invidious Link: 'Afrita Invidious-tengil'
|
||||||
|
Open in Invidious: 'Opna í Invidious'
|
||||||
|
|
||||||
|
# On Video Watch Page
|
||||||
|
#* Published
|
||||||
|
#& Views
|
||||||
|
Toggle Theatre Mode: 'Víxla bíóham af/á'
|
||||||
|
Change Format:
|
||||||
|
Change Video Formats: 'Skipta um myndskeiðasnið'
|
||||||
|
Use Dash Formats: 'Nota DASH-skráasnið'
|
||||||
|
Use Legacy Formats: 'Nota eldri skráasnið'
|
||||||
|
Use Audio Formats: 'Nota hljóðskráasnið'
|
||||||
|
Dash formats are not available for this video: 'DASH-skráasnið eru ekki tiltæk fyrir
|
||||||
|
þetta myndskeið'
|
||||||
|
Audio formats are not available for this video: 'Hljóðskráasnið eru ekki tiltæk
|
||||||
|
fyrir þetta myndskeið'
|
||||||
|
Share:
|
||||||
|
Share Video: 'Deila myndskeiði'
|
||||||
|
Include Timestamp: 'Hafa með tímamerki'
|
||||||
|
Copy Link: 'Afrita tengil'
|
||||||
|
Open Link: 'Opna tengil'
|
||||||
|
Copy Embed: 'Afrita ívafið'
|
||||||
|
Open Embed: 'Opna ívafið'
|
||||||
|
# On Click
|
||||||
|
Invidious URL copied to clipboard: 'Invidious-slóð afrituð á klippispjaldið'
|
||||||
|
Invidious Embed URL copied to clipboard: 'Ívafin Invidious-slóð afrituð á klippispjaldið'
|
||||||
|
Invidious Channel URL copied to clipboard: 'Slóð Invidious-rásar afrituð á klippispjaldið'
|
||||||
|
YouTube URL copied to clipboard: 'YouTube-slóð afrituð á klippispjaldið'
|
||||||
|
YouTube Embed URL copied to clipboard: 'Ívafin YouTube-slóð afrituð á klippispjaldið'
|
||||||
|
YouTube Channel URL copied to clipboard: 'Slóð YouTube-rásar afrituð á klippispjaldið'
|
||||||
|
|
||||||
|
Mini Player: 'Smáspilari'
|
||||||
|
Comments:
|
||||||
|
Comments: 'Athugasemdir'
|
||||||
|
Click to View Comments: 'Smelltu til að skoða athugasemdir'
|
||||||
|
Getting comment replies, please wait: 'Sæki svör við athugasemdum, bíddu aðeins'
|
||||||
|
There are no more comments for this video: 'Það eru engar fleiri athugasemdir við
|
||||||
|
þetta myndskeið'
|
||||||
|
Show Comments: 'Birta athugasemdir'
|
||||||
|
Hide Comments: 'Fela athugasemdir'
|
||||||
|
Sort by: 'Raða eftir'
|
||||||
|
Top comments: 'Efstu athugasemdir'
|
||||||
|
Newest first: 'Nýjasta fyrst'
|
||||||
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
View: 'Skoða'
|
||||||
|
Hide: 'Fela'
|
||||||
|
Replies: 'Svör'
|
||||||
|
Reply: 'Svara'
|
||||||
|
There are no comments available for this video: 'Engar athugasemdir eru tiltækar
|
||||||
|
fyrir þetta myndskeið'
|
||||||
|
Load More Comments: 'Hlaða inn fleiri athugasemdum'
|
||||||
|
No more comments available: 'Engar fleiri athugasemdir eru tiltækar'
|
||||||
|
Up Next: 'Næst í spilun'
|
||||||
|
|
||||||
|
#Tooltips
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Preferred API Backend: 'Veldu bakendann sem FreeTube notar til að ná í gögn. Staðværa
|
||||||
|
API-kerfisviðmótið er innbyggður skrapari. Invidious API-kerfisviðmótið krefst
|
||||||
|
tengingar við Invidious-netþjón.'
|
||||||
|
Fallback to Non-Preferred Backend on Failure: 'Þegar forgangsbakendi API-kerfisviðmóts
|
||||||
|
á í vandræðum, mun FreeTube reyna sjálfkrafa að nota ekki-forgangsbakenda API-kerfisviðmóts
|
||||||
|
sem varaleið, þegar þetta er virkjað.'
|
||||||
|
Thumbnail Preference: 'Öllum smámyndum í FreeTube verður skipt út fyrir ramma
|
||||||
|
með myndskeiðinu í stað sjálfgefinnar smámyndar.'
|
||||||
|
Invidious Instance: 'Tilvik Invidious-netþjóns sem FreeTube mun tengjast fyrir
|
||||||
|
beðnir í API-kerfisviðmót. Hreinsaðu út fyrirliggjandi tilvik til að sjá lista
|
||||||
|
yfir opinber tilvik sem hægt er að velja um.'
|
||||||
|
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.'
|
||||||
|
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ð
|
||||||
|
keyra og nota þau eldri skráasnið sem finnast í stað þeirra sem Invidious gefur
|
||||||
|
upp. Hjálpar til þegar myndskeið sem Invidious gefur upp spilast ekki vegna
|
||||||
|
landsháðra takmarkana.'
|
||||||
|
Proxy Videos Through Invidious: 'Mun tengjast við Invidious til að miðla myndskeiðum
|
||||||
|
í stað þess að tengjast beint við YouTube. Tekur fram fyrir valin API-kerfisviðmót.'
|
||||||
|
Default Video Format: 'Stillu skráasniðin sem notuð eru við afspilun myndskeiða.
|
||||||
|
DASH-snið (Dynamic Adaptive Streaming over HTTP) er hægt að spila í meiri gæðum.
|
||||||
|
Eldri snið takmarkast við 720p en nota minni bandbreidd. Hljóðsnið eru streymi
|
||||||
|
einungis með hljóði.'
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: 'Þegar þetta er virkt, mun FreeTube nota RSS í stað sjálfgefinnar
|
||||||
|
aðferðar við að safna streymi áskriftarinnar þinnar. RSS er hraðvirkara og kemur
|
||||||
|
í veg fyrir útilokun IP-vistfanga, en nær ekki að birta ákveðnar upplýsingar
|
||||||
|
á borð við tímalengd myndskeiða eða stöðu í beinni útsendingu'
|
||||||
|
|
||||||
|
# Toast Messages
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Þegar þetta er virkt, eyðir FreeTube sjálfkrafa lýsigagnaskrám
|
||||||
|
sem útbúnar eru við afspilun, þegar skoðunarsíðunni er lokað.
|
||||||
|
Local API Error (Click to copy): 'Villa í staðværu API-kerfisviðmóti (smella til að
|
||||||
|
afrita)'
|
||||||
|
Invidious API Error (Click to copy): 'Villa í Invidious API-kerfisviðmóti (smella
|
||||||
|
til að afrita)'
|
||||||
|
Falling back to Invidious API: 'Nota til vara Invidious API-kerfisviðmót'
|
||||||
|
Falling back to the local API: 'Nota til vara staðvært API-kerfisviðmót'
|
||||||
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Þetta
|
||||||
|
myndskeiðer ekki tiltækt vegna þess að það vantar skráasnið. Þetta getur gest ef
|
||||||
|
þau eru ekki tiltæk í viðkomandi landi.'
|
||||||
|
Subscriptions have not yet been implemented: 'Áskriftir eru enn ekki frágengnar'
|
||||||
|
Loop is now disabled: 'Endurtekning er núna óvirk'
|
||||||
|
Loop is now enabled: 'Endurtekning er núna virk'
|
||||||
|
Shuffle is now disabled: 'Stokkun er núna óvirk'
|
||||||
|
Shuffle is now enabled: 'Stokkun er núna virk'
|
||||||
|
The playlist has been reversed: 'Spilunarlistanum hefur verið snúið'
|
||||||
|
Playing Next Video: 'Spila næsta myndskeið'
|
||||||
|
Playing Previous Video: 'Spila fyrra myndskeið'
|
||||||
|
Playing Next Video Interval: 'Spila næsta myndskeið strax. Smelltu til að hætta við.
|
||||||
|
| Spila næsta myndskeið eftir {nextVideoInterval} sekúndu. Smelltu til að hætta
|
||||||
|
við. | Spila næsta myndskeið eftir {nextVideoInterval} sekúndur. Smelltu til að
|
||||||
|
hætta við.'
|
||||||
|
Canceled next video autoplay: 'Hætti við sjálfvirka afspilun næsta myndskeiðs'
|
||||||
|
'The playlist has ended. Enable loop to continue playing': 'Spilunarlistinn er kominn
|
||||||
|
út á enda. Virkjaðu óendanlega endurtekningu til að halda afspilun áfram'
|
||||||
|
|
||||||
|
Yes: 'Já'
|
||||||
|
No: 'Nei'
|
||||||
|
Hashtags have not yet been implemented, try again later: Ekki er ennþá stuðningur
|
||||||
|
við myllumerki (hashtags), prófaðu aftur síðar
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Óþekkt gerð YouTube-slóðar, er
|
||||||
|
ekki hægt að opna í forritinu
|
||||||
|
Open New Window: Opna í nýjum glugga
|
|
@ -65,7 +65,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Caricamento risultati. Attendi'
|
Fetching results. Please wait: 'Caricamento risultati. Attendi'
|
||||||
Fetch more results: 'Carica più risultati'
|
Fetch more results: 'Carica più risultati'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
There are no more results for this search: Non ci sono altri risultati per questa
|
There are no more results for this search: Non ci sono più risultati per questa
|
||||||
ricerca
|
ricerca
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
|
@ -86,11 +86,11 @@ Playlists: 'Playlist'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Le tue playlist'
|
Your Playlists: 'Le tue playlist'
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: La
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: La
|
||||||
lista preferiti è vuota. Clicca sul tasto salva in basso a destra di un video
|
lista preferiti è vuota. Clicca sul tasto Salva in basso a destra di un video
|
||||||
per vederlo qui
|
per vederlo qui
|
||||||
Playlist Message: Questa pagina non è rappresentativa di una playlist completa.
|
Playlist Message: Questa pagina non è rappresentativa di una playlist completa.
|
||||||
Mostra solo video che hai salvato o aggiunti ai preferiti. A lavoro finito, tutti
|
Mostra solo video che hai salvato o aggiunti ai preferiti. A lavoro finito, tutti
|
||||||
i video attualmente qui verrano spostati in una playlist dei 'preferiti'.
|
i video attualmente qui verrano spostati in una playlist dei «Preferiti».
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Cronologia'
|
History: 'Cronologia'
|
||||||
|
@ -126,7 +126,8 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
Check for Latest Blog Posts: Controlla gli ultimi post del blog
|
Check for Latest Blog Posts: Controlla gli ultimi post del blog
|
||||||
Check for Updates: Controlla gli aggiornamenti
|
Check for Updates: Controlla gli aggiornamenti
|
||||||
View all Invidious instance information: Espandi informazioni delle istanze Invidious
|
View all Invidious instance information: Visualizza tutti i dati della istanza
|
||||||
|
Invidious
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Impostazioni Tema'
|
Theme Settings: 'Impostazioni Tema'
|
||||||
Match Top Bar with Main Color: 'Abbina la barra superiore con il colore principale'
|
Match Top Bar with Main Color: 'Abbina la barra superiore con il colore principale'
|
||||||
|
@ -186,6 +187,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Intervallo video successivo nella playlist
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Impostazioni privacy'
|
Privacy Settings: 'Impostazioni privacy'
|
||||||
Remember History: 'Salva la Cronologia'
|
Remember History: 'Salva la Cronologia'
|
||||||
|
@ -293,6 +295,7 @@ Settings:
|
||||||
Hide Live Chat: Nascondi la chat live
|
Hide Live Chat: Nascondi la chat live
|
||||||
Hide Video Likes And Dislikes: Nascondi Mi piace e Non mi piace
|
Hide Video Likes And Dislikes: Nascondi Mi piace e Non mi piace
|
||||||
Hide Active Subscriptions: Nascondi le iscrizioni attive
|
Hide Active Subscriptions: Nascondi le iscrizioni attive
|
||||||
|
Hide Playlists: Nascondi le playlist
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione
|
The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione
|
||||||
deve essere riavviata per applicare i cambiamenti. Riavviare e applicare i cambiamenti
|
deve essere riavviata per applicare i cambiamenti. Riavviare e applicare i cambiamenti
|
||||||
ora?
|
ora?
|
||||||
|
@ -308,8 +311,8 @@ Settings:
|
||||||
Country: Paese
|
Country: Paese
|
||||||
Ip: Ip
|
Ip: Ip
|
||||||
Your Info: Le tue informazioni
|
Your Info: Le tue informazioni
|
||||||
Test Proxy: Test Proxy
|
Test Proxy: Testa proxy
|
||||||
Clicking on Test Proxy will send a request to: Cliccando su "Testa Proxy" verrà
|
Clicking on Test Proxy will send a request to: Cliccando su «Testa proxy» verrà
|
||||||
inviata una richiesta a
|
inviata una richiesta a
|
||||||
Proxy Port Number: Numero di porta Proxy
|
Proxy Port Number: Numero di porta Proxy
|
||||||
Proxy Host: Host Proxy
|
Proxy Host: Host Proxy
|
||||||
|
@ -349,7 +352,7 @@ About:
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
GitHub issues: Segnalazioni GitHub
|
GitHub issues: Segnalazioni GitHub
|
||||||
Report a problem: Segnala un problema
|
Report a problem: Segnala un problema
|
||||||
FAQ: Domande Frequenti
|
FAQ: Domande frequenti
|
||||||
FreeTube Wiki: Wiki FreeTube
|
FreeTube Wiki: Wiki FreeTube
|
||||||
Help: Aiuto
|
Help: Aiuto
|
||||||
Downloads / Changelog: Download / Changelog
|
Downloads / Changelog: Download / Changelog
|
||||||
|
@ -360,11 +363,11 @@ About:
|
||||||
Translate: Traduci
|
Translate: Traduci
|
||||||
room rules: Regole stanza
|
room rules: Regole stanza
|
||||||
Please read the: Si prega di leggere
|
Please read the: Si prega di leggere
|
||||||
Chat on Matrix: Chat su Matrix
|
Chat on Matrix: Chatta su Matrix
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: Email
|
Email: E-mail
|
||||||
Website: Sito web
|
Website: Sito web
|
||||||
Please check for duplicates before posting: Perfavore controlla se ci sono duplicati
|
Please check for duplicates before posting: Per favore controlla se ci sono duplicati
|
||||||
prima di pubblicare
|
prima di pubblicare
|
||||||
View License: Vedi licenza
|
View License: Vedi licenza
|
||||||
Licensed under the AGPLv3: Distribuito sotto la licenza AGPLv3
|
Licensed under the AGPLv3: Distribuito sotto la licenza AGPLv3
|
||||||
|
@ -631,6 +634,7 @@ Profile:
|
||||||
Profile Manager: Gestione Profili
|
Profile Manager: Gestione Profili
|
||||||
All Channels: Tutti i Canali
|
All Channels: Tutti i Canali
|
||||||
Profile Select: Seleziona il Profilo
|
Profile Select: Seleziona il Profilo
|
||||||
|
Profile Filter: Filtro profilo
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Questo
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Questo
|
||||||
video non è disponibile a causa di alcuni formati mancanti. Questo può succedere
|
video non è disponibile a causa di alcuni formati mancanti. Questo può succedere
|
||||||
in caso di mancata disponibilità del paese.
|
in caso di mancata disponibilità del paese.
|
||||||
|
@ -650,7 +654,7 @@ Tooltips:
|
||||||
Fetch Feeds from RSS: Quando abilitato, FreeTube userà gli RSS invece del metodo
|
Fetch Feeds from RSS: Quando abilitato, FreeTube userà gli RSS invece del metodo
|
||||||
standard per leggere la tua lista istrizioni. Gli RSS sono più veloci e impediscono
|
standard per leggere la tua lista istrizioni. Gli RSS sono più veloci e impediscono
|
||||||
il blocco dell'IP ma non mostrano informazioni come la durata video o lo stato
|
il blocco dell'IP ma non mostrano informazioni come la durata video o lo stato
|
||||||
delle live
|
delle dirette
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: L'istanza Invidious che FreeTube usa per le chiamate API.
|
Invidious Instance: L'istanza Invidious che FreeTube usa per le chiamate API.
|
||||||
Pulisci l'istanza attuale per vedere una lista di istanze pubbliche da cui scegliere
|
Pulisci l'istanza attuale per vedere una lista di istanze pubbliche da cui scegliere
|
||||||
|
@ -665,3 +669,8 @@ Tooltips:
|
||||||
Region for Trending: La regione delle tendenze permette di scegliere la nazione
|
Region for Trending: La regione delle tendenze permette di scegliere la nazione
|
||||||
di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate
|
di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate
|
||||||
sono ufficialmente supportate da YouTube
|
sono ufficialmente supportate da YouTube
|
||||||
|
Playing Next Video Interval: Riproduzione del video successivo in pochissimo tempo.
|
||||||
|
Fare clic per annullare. | Riproduzione del video successivo tra {nextVideoInterval}
|
||||||
|
secondo. Fare clic per annullare. | Riproduzione del video successivo tra {nextVideoInterval}
|
||||||
|
secondi. Fare clic per annullare.
|
||||||
|
More: Altro
|
||||||
|
|
|
@ -176,6 +176,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4K'
|
4k: '4K'
|
||||||
8k: '8K'
|
8k: '8K'
|
||||||
|
Playlist Next Video Interval: 次の再生リストを再生する間隔
|
||||||
|
Next Video Interval: 次のビデオまでの間隔
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: '登録チャンネルの設定'
|
Subscription Settings: '登録チャンネルの設定'
|
||||||
Hide Videos on Watch: '視聴済み動画の非表示'
|
Hide Videos on Watch: '視聴済み動画の非表示'
|
||||||
|
@ -224,6 +226,7 @@ Settings:
|
||||||
Privacy Settings: 個人情報の設定
|
Privacy Settings: 個人情報の設定
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: すべての登録チャンネルとプロファイルを削除しますか?元に戻せません。
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: すべての登録チャンネルとプロファイルを削除しますか?元に戻せません。
|
||||||
Remove All Subscriptions / Profiles: 登録とプロファイルをすべて削除
|
Remove All Subscriptions / Profiles: 登録とプロファイルをすべて削除
|
||||||
|
Automatically Remove Video Meta Files: 動画のメタファイルの自動削除
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: 私の登録情報を取り込むにはどうしたらいいですか?
|
How do I import my subscriptions?: 私の登録情報を取り込むにはどうしたらいいですか?
|
||||||
Unknown data key: 不明なデータ キー
|
Unknown data key: 不明なデータ キー
|
||||||
|
@ -266,6 +269,7 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: 評価の非表示
|
Hide Video Likes And Dislikes: 評価の非表示
|
||||||
Distraction Free Settings: 集中モード
|
Distraction Free Settings: 集中モード
|
||||||
Hide Active Subscriptions: 使用中の登録チャンネルの非表示
|
Hide Active Subscriptions: 使用中の登録チャンネルの非表示
|
||||||
|
Hide Playlists: 再生リストの非表示
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: 変更の反映には、アプリの再起動が必要です。再起動して変更を適用しますか?
|
The app needs to restart for changes to take effect. Restart and apply change?: 変更の反映には、アプリの再起動が必要です。再起動して変更を適用しますか?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Error getting network information. Is your proxy configured properly?: ネットワーク情報の取得中にエラーが発生しました。プロキシーを正しく設定してますか?
|
Error getting network information. Is your proxy configured properly?: ネットワーク情報の取得中にエラーが発生しました。プロキシーを正しく設定してますか?
|
||||||
|
@ -318,9 +322,9 @@ About:
|
||||||
Please read the: 確認してください
|
Please read the: 確認してください
|
||||||
Chat on Matrix: Matrix でチャット
|
Chat on Matrix: Matrix でチャット
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: メール アドレス
|
Email: 電子メール
|
||||||
Blog: ブログ
|
Blog: ブログ
|
||||||
Website: WEB サイト
|
Website: ウェブサイト
|
||||||
Please check for duplicates before posting: 投稿する前に重複を確認してください
|
Please check for duplicates before posting: 投稿する前に重複を確認してください
|
||||||
GitHub issues: GitHub の課題ツール
|
GitHub issues: GitHub の課題ツール
|
||||||
Report a problem: 問題の報告
|
Report a problem: 問題の報告
|
||||||
|
@ -415,7 +419,7 @@ Video:
|
||||||
Minute: 分
|
Minute: 分
|
||||||
Published on: '公開日'
|
Published on: '公開日'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ %前'
|
Publicationtemplate: '$ % 前'
|
||||||
#& Videos
|
#& Videos
|
||||||
Video has been removed from your history: 動画を履歴から削除しました
|
Video has been removed from your history: 動画を履歴から削除しました
|
||||||
Remove From History: 履歴から削除
|
Remove From History: 履歴から削除
|
||||||
|
@ -445,6 +449,7 @@ Video:
|
||||||
Video has been removed from your saved list: 動画を保存一覧から削除しました
|
Video has been removed from your saved list: 動画を保存一覧から削除しました
|
||||||
Video has been saved: ビデオを保存しました
|
Video has been saved: ビデオを保存しました
|
||||||
Save Video: 動画の保存
|
Save Video: 動画の保存
|
||||||
|
translated from English: 英語から翻訳
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -566,6 +571,7 @@ Profile:
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: これは上位のプロファイルです。選択したチャンネルを削除しますか?同じチャンネルがほかのプロファイルにも登録されていれば削除されます。
|
: これは上位のプロファイルです。選択したチャンネルを削除しますか?同じチャンネルがほかのプロファイルにも登録されていれば削除されます。
|
||||||
|
Profile Filter: プロファイルのフィルター
|
||||||
The playlist has been reversed: 再生リストを逆順にしました
|
The playlist has been reversed: 再生リストを逆順にしました
|
||||||
A new blog is now available, $. Click to view more: '新着ブログ公開、$。クリックしてブログを読む'
|
A new blog is now available, $. Click to view more: '新着ブログ公開、$。クリックしてブログを読む'
|
||||||
Download From Site: サイトからダウンロード
|
Download From Site: サイトからダウンロード
|
||||||
|
@ -588,3 +594,11 @@ Tooltips:
|
||||||
Fallback to Non-Preferred Backend on Failure: 有効にすると、選択した API で取得できなければ、FreeTube
|
Fallback to Non-Preferred Backend on Failure: 有効にすると、選択した API で取得できなければ、FreeTube
|
||||||
は自動的に他の API での取得を試みます。
|
は自動的に他の API での取得を試みます。
|
||||||
Region for Trending: 急上昇の地域設定では、急上昇動画を表示する国を選択できます。YouTube は、すべての国に対応していません。
|
Region for Trending: 急上昇の地域設定では、急上昇動画を表示する国を選択できます。YouTube は、すべての国に対応していません。
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: 有効にすると、FreeTube はビデオ再生中に作成したメタファイルは、再生ページを閉じるときに自動的に削除されます。
|
||||||
|
Playing Next Video Interval: すぐに次のビデオを再生します。クリックするとキャンセル。|次のビデオを {nextVideoInterval}
|
||||||
|
秒で再生します。クリックするとキャンセル。|次のビデオを {nextVideoInterval} 秒で再生します。クリックするとキャンセル。
|
||||||
|
More: もっと見る
|
||||||
|
Hashtags have not yet been implemented, try again later: ハッシュタグは未実装です。実装後に実行してください
|
||||||
|
Unknown YouTube url type, cannot be opened in app: 不明な YouTube URL の種類、アプリで実行できません
|
||||||
|
Open New Window: 新しいウィンドウを開く
|
||||||
|
|
|
@ -126,6 +126,7 @@ Settings:
|
||||||
(기본설정은 https://invidious.snopyta.org)'
|
(기본설정은 https://invidious.snopyta.org)'
|
||||||
Region for Trending: '트렌드 국가'
|
Region for Trending: '트렌드 국가'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
View all Invidious instance information: Indivious 서버의 전체 목록 보기
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: '테마 설정'
|
Theme Settings: '테마 설정'
|
||||||
Match Top Bar with Main Color: '상단바를 메인컬러와 동기화'
|
Match Top Bar with Main Color: '상단바를 메인컬러와 동기화'
|
||||||
|
@ -185,6 +186,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: 재생 목록 다음 비디오 간격
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: '개인정보 설정'
|
Privacy Settings: '개인정보 설정'
|
||||||
Remember History: '기록 저장하기'
|
Remember History: '기록 저장하기'
|
||||||
|
@ -213,36 +215,40 @@ Settings:
|
||||||
Hide Trending Videos: '현재 트렌딩 영상 숨기기'
|
Hide Trending Videos: '현재 트렌딩 영상 숨기기'
|
||||||
Hide Popular Videos: '인기 영상 숨기기'
|
Hide Popular Videos: '인기 영상 숨기기'
|
||||||
Hide Live Chat: '실시간 댓글 숨기기'
|
Hide Live Chat: '실시간 댓글 숨기기'
|
||||||
|
Hide Playlists: 재생 목록 숨기기
|
||||||
|
Hide Active Subscriptions: 활성 구독 숨기기
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: '데이터 설정'
|
Data Settings: '데이터 설정'
|
||||||
Select Import Type: '구독 및 재생 목록 가져오기 형식 고르기'
|
Select Import Type: '가져오기 유형 선택'
|
||||||
Select Export Type: '구독 및 재생 목록 내보내기 형식 고르기'
|
Select Export Type: '내보내기 유형 선택'
|
||||||
Import Subscriptions: '구독 목록 가져오기'
|
Import Subscriptions: '구독 목록 가져오기'
|
||||||
Import FreeTube: '구독 목록 가져오기: 형식 Freetube'
|
Import FreeTube: 'FreeTube 가져오기'
|
||||||
Import YouTube: '구독 목록 가져오기 형식: 유투브'
|
Import YouTube: 'YouTube 가져오기'
|
||||||
Import NewPipe: '구독 목록 가져오기 형식: NewPipe'
|
Import NewPipe: 'NewPipe 가져오기'
|
||||||
Check for Legacy Subscriptions: ''
|
Check for Legacy Subscriptions: '레거시 구독 확인'
|
||||||
Export Subscriptions: '구독 목록 내보내기'
|
Export Subscriptions: '구독 목록 내보내기'
|
||||||
Export FreeTube: '구독 목록 내보내기 형식: FreeTube'
|
Export FreeTube: 'FreeTube 내보내기'
|
||||||
Export YouTube: '구독 목록 내보내기 형식: 유투브'
|
Export YouTube: 'YouTube 내보내기'
|
||||||
Export NewPipe: '구독 목록 내보내기 형식: NewPipe'
|
Export NewPipe: 'NewPipe 내보내기'
|
||||||
Import History: '재생 기록 가져오기'
|
Import History: '재생 기록 가져오기'
|
||||||
Export History: '재생 기록 내보내기'
|
Export History: '재생 기록 내보내기'
|
||||||
Profile object has insufficient data, skipping item: ''
|
Profile object has insufficient data, skipping item: '프로필 개체에 데이터가 부족하여 항목을 건너뜁니다'
|
||||||
All subscriptions and profiles have been successfully imported: ''
|
All subscriptions and profiles have been successfully imported: '모든 구독 및 프로필을
|
||||||
All subscriptions have been successfully imported: ''
|
성공적으로 가져왔습니다'
|
||||||
One or more subscriptions were unable to be imported: ''
|
All subscriptions have been successfully imported: '모든 구독을 성공적으로 가져왔습니다'
|
||||||
Invalid subscriptions file: ''
|
One or more subscriptions were unable to be imported: '하나 이상의 구독을 가져올 수 없습니다'
|
||||||
This might take a while, please wait: ''
|
Invalid subscriptions file: '잘못된 구독 파일입니다'
|
||||||
Invalid history file: ''
|
This might take a while, please wait: '시간이 좀 걸릴 수 있습니다. 잠시 기다려 주십시오'
|
||||||
Subscriptions have been successfully exported: ''
|
Invalid history file: '잘못된 기록 파일입니다'
|
||||||
History object has insufficient data, skipping item: ''
|
Subscriptions have been successfully exported: '구독을 성공적으로 내보냈습니다'
|
||||||
All watched history has been successfully imported: ''
|
History object has insufficient data, skipping item: '기록 개체에 데이터가 부족하여 항목을 건너뜁니다'
|
||||||
All watched history has been successfully exported: ''
|
All watched history has been successfully imported: '시청한 모든 기록을 성공적으로 가져왔습니다'
|
||||||
Unable to read file: ''
|
All watched history has been successfully exported: '시청한 모든 기록이 성공적으로 내보내졌습니다'
|
||||||
Unable to write file: ''
|
Unable to read file: '파일을 읽을 수 없습니다'
|
||||||
Unknown data key: ''
|
Unable to write file: '파일을 쓸 수 없습니다'
|
||||||
How do I import my subscriptions?: ''
|
Unknown data key: '알 수 없는 데이터 키입니다'
|
||||||
|
How do I import my subscriptions?: '구독을 가져오려면 어떻게 해야 합니까?'
|
||||||
|
Manage Subscriptions: 구독 관리
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: ''
|
Advanced Settings: ''
|
||||||
Enable Debug Mode (Prints data to the console): ''
|
Enable Debug Mode (Prints data to the console): ''
|
||||||
|
@ -265,9 +271,24 @@ Settings:
|
||||||
#& Yes
|
#& Yes
|
||||||
#& No
|
#& No
|
||||||
|
|
||||||
|
Proxy Settings:
|
||||||
|
Error getting network information. Is your proxy configured properly?: 네트워크 정보를
|
||||||
|
가져오는 중 오류가 발생했습니다. 프록시가 올바르게 구성되어 있습니까?
|
||||||
|
City: 도시
|
||||||
|
Region: 지역
|
||||||
|
Country: 국가
|
||||||
|
Ip: Ip
|
||||||
|
Your Info: 사용자 정보
|
||||||
|
Test Proxy: 프록시 테스트
|
||||||
|
Clicking on Test Proxy will send a request to: 프록시 테스트를 클릭하면 다음 주소로 요청이 전송됩니다
|
||||||
|
Proxy Port Number: 프록시 포트 번호
|
||||||
|
Proxy Host: 프록시 호스트
|
||||||
|
Proxy Protocol: 프록시 프로토콜
|
||||||
|
Enable Tor / Proxy: Tor / Proxy 사용
|
||||||
|
Proxy Settings: 프록시 설정
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: ''
|
About: '정보'
|
||||||
#& About
|
#& About
|
||||||
'This software is FOSS and released under the GNU Affero General Public License v3.0.': ''
|
'This software is FOSS and released under the GNU Affero General Public License v3.0.': ''
|
||||||
|
|
||||||
|
@ -287,51 +308,78 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
|
Donate: 기부
|
||||||
|
these people and projects: 이 사람들과 프로젝트
|
||||||
|
FreeTube is made possible by: FreeTube는 가능합니다
|
||||||
|
Credits: 제작
|
||||||
|
Translate: 번역
|
||||||
|
room rules: 방 규정
|
||||||
|
Please read the: 읽어주세요
|
||||||
|
Chat on Matrix: 매트릭스 채팅
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Email: 이메일
|
||||||
|
Blog: 블로그
|
||||||
|
Website: 웹사이트
|
||||||
|
Please check for duplicates before posting: 게시하기 전에 중복 항목을 확인하십시오
|
||||||
|
GitHub issues: GitHub 이슈
|
||||||
|
Report a problem: 문제 보고
|
||||||
|
FAQ: FAQ
|
||||||
|
FreeTube Wiki: FreeTube Wiki
|
||||||
|
Help: 도움말
|
||||||
|
GitHub releases: GitHub 릴리스
|
||||||
|
Downloads / Changelog: 다운로드 / 변경 로그
|
||||||
|
View License: 라이센스 보기
|
||||||
|
Licensed under the AGPLv3: AGPLv3에 따라 라이센스가 부여됨
|
||||||
|
Source code: 소스 코드
|
||||||
|
Beta: 베타
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: ''
|
Profile Select: '프로필 선택'
|
||||||
All Channels: ''
|
All Channels: '모든 채널'
|
||||||
Profile Manager: ''
|
Profile Manager: '프로필 관리자'
|
||||||
Create New Profile: ''
|
Create New Profile: '새 프로파일 작성'
|
||||||
Edit Profile: ''
|
Edit Profile: '프로필 편집'
|
||||||
Color Picker: ''
|
Color Picker: '색상 선택기'
|
||||||
Custom Color: ''
|
Custom Color: '사용자 지정 색'
|
||||||
Profile Preview: ''
|
Profile Preview: '프로필 미리보기'
|
||||||
Create Profile: ''
|
Create Profile: '프로필 작성'
|
||||||
Update Profile: ''
|
Update Profile: '프로필 업데이트'
|
||||||
Make Default Profile: ''
|
Make Default Profile: '기본 프로파일 만들기'
|
||||||
Delete Profile: ''
|
Delete Profile: '프로필 삭제'
|
||||||
Are you sure you want to delete this profile?: ''
|
Are you sure you want to delete this profile?: '이 프로필을 삭제하시겠습니까?'
|
||||||
All subscriptions will also be deleted.: ''
|
All subscriptions will also be deleted.: '모든 구독도 삭제됩니다.'
|
||||||
Profile could not be found: ''
|
Profile could not be found: '프로필을 찾을 수 없습니다'
|
||||||
Your profile name cannot be empty: ''
|
Your profile name cannot be empty: '프로필 이름은 비워 둘 수 없습니다'
|
||||||
Profile has been created: ''
|
Profile has been created: '프로필이 생성되었습니다'
|
||||||
Profile has been updated: ''
|
Profile has been updated: '프로필이 업데이트되었습니다'
|
||||||
Your default profile has been set to $: ''
|
Your default profile has been set to $: '기본 프로필이 $로 설정되었습니다'
|
||||||
Removed $ from your profiles: ''
|
Removed $ from your profiles: '프로필에서 $가 제거되었습니다'
|
||||||
Your default profile has been changed to your primary profile: ''
|
Your default profile has been changed to your primary profile: '기본값 프로필이 기본 프로필로
|
||||||
$ is now the active profile: ''
|
변경되었습니다'
|
||||||
Subscription List: ''
|
$ is now the active profile: '$가 현재 활성 프로필입니다'
|
||||||
Other Channels: ''
|
Subscription List: '구독 목록'
|
||||||
$ selected: ''
|
Other Channels: '기타 채널'
|
||||||
Select All: ''
|
$ selected: '$선택되었습니다'
|
||||||
Select None: ''
|
Select All: '모두 선택'
|
||||||
Delete Selected: ''
|
Select None: '선택 안 함'
|
||||||
Add Selected To Profile: ''
|
Delete Selected: '선택한 항목 삭제'
|
||||||
No channel(s) have been selected: ''
|
Add Selected To Profile: '프로필에 선택한 항목 추가'
|
||||||
|
No channel(s) have been selected: '선택된 채널이 없습니다'
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: ''
|
: '이것은 귀하의 기본 프로필입니다. 선택한 채널을 삭제하시겠습니까? 동일한 채널이 발견되는 모든 프로필에서 삭제됩니다.'
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '선택한
|
||||||
|
채널을 삭제하시겠습니까? 다른 프로파일에서는 채널이 삭제되지 않습니다.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: 프로필 필터
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: ''
|
Subscriber: '구독자'
|
||||||
Subscribers: ''
|
Subscribers: '구독자'
|
||||||
Subscribe: ''
|
Subscribe: '구독'
|
||||||
Unsubscribe: ''
|
Unsubscribe: '구독 취소'
|
||||||
Channel has been removed from your subscriptions: ''
|
Channel has been removed from your subscriptions: '채널이 구독에서 제거되었습니다'
|
||||||
Removed subscription from $ other channel(s): ''
|
Removed subscription from $ other channel(s): '$ 다른 채널에서 구독을 제거했습니다'
|
||||||
Added channel to your subscriptions: ''
|
Added channel to your subscriptions: '구독에 채널을 추가했습니다'
|
||||||
Search Channel: ''
|
Search Channel: '채널 검색'
|
||||||
Your search results have returned 0 results: ''
|
Your search results have returned 0 results: ''
|
||||||
Sort By: ''
|
Sort By: ''
|
||||||
Videos:
|
Videos:
|
||||||
|
@ -534,3 +582,4 @@ Canceled next video autoplay: ''
|
||||||
|
|
||||||
Yes: ''
|
Yes: ''
|
||||||
No: ''
|
No: ''
|
||||||
|
More: 더 보기
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# Put the name of your locale in the same language
|
# Put the name of your locale in the same language
|
||||||
Locale Name: 'Latina'
|
Locale Name: 'Latina (LA)'
|
||||||
FreeTube: 'FreeTube'
|
FreeTube: 'FreeTube'
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
Haec programmatis pars perfecta non est. Remea cum in hac profectum sit.
|
Haec programmatis pars perfecta non est. Remea cum in hac profectum sit.
|
||||||
|
|
||||||
# Webkit Menu Bar
|
# Webkit Menu Bar
|
||||||
File: ''
|
File: 'volumen'
|
||||||
Quit: 'Exi'
|
Quit: 'Exi'
|
||||||
Edit: 'Muta'
|
Edit: 'Muta'
|
||||||
Undo: 'Tolle'
|
Undo: 'Tolle'
|
||||||
|
|
|
@ -18,11 +18,11 @@ Delete: 'Slett'
|
||||||
Select all: 'Velg alt'
|
Select all: 'Velg alt'
|
||||||
Reload: 'Last inn på nytt'
|
Reload: 'Last inn på nytt'
|
||||||
Force Reload: 'Tving gjeninnlasting'
|
Force Reload: 'Tving gjeninnlasting'
|
||||||
Toggle Developer Tools: 'Veksle utviklerverktøy'
|
Toggle Developer Tools: 'Utviklerverktøy'
|
||||||
Actual size: 'Faktisk størrelse'
|
Actual size: 'Faktisk størrelse'
|
||||||
Zoom in: 'Forstørr'
|
Zoom in: 'Forstørr'
|
||||||
Zoom out: 'Forminsk'
|
Zoom out: 'Forminsk'
|
||||||
Toggle fullscreen: 'Veksle fullskjermsvisning'
|
Toggle fullscreen: 'Fullskjermsvisning'
|
||||||
Window: 'Vindu'
|
Window: 'Vindu'
|
||||||
Minimize: 'Minimer'
|
Minimize: 'Minimer'
|
||||||
Close: 'Lukk'
|
Close: 'Lukk'
|
||||||
|
@ -30,7 +30,7 @@ Back: 'Tilbake'
|
||||||
Forward: 'Framover'
|
Forward: 'Framover'
|
||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
Search / Go to URL: 'Søk / gå til nettadresse'
|
Search / Go to URL: 'Søk/gå til nettadresse'
|
||||||
# In Filter Button
|
# In Filter Button
|
||||||
Search Filters:
|
Search Filters:
|
||||||
Search Filters: 'Søkefiltre'
|
Search Filters: 'Søkefiltre'
|
||||||
|
@ -61,11 +61,10 @@ Search Filters:
|
||||||
Long (> 20 minutes): 'Lang (> 20 minutter)'
|
Long (> 20 minutes): 'Lang (> 20 minutter)'
|
||||||
# On Search Page
|
# On Search Page
|
||||||
Search Results: 'Søkeresultater'
|
Search Results: 'Søkeresultater'
|
||||||
Fetching results. Please wait: 'Henter resultater. Vent.'
|
Fetching results. Please wait: 'Henter resultater …'
|
||||||
Fetch more results: 'Hent flere resultater'
|
Fetch more results: 'Hent flere resultater'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
There are no more results for this search: Det er ikke flere resultat for dette
|
There are no more results for this search: Søket ga ingen flere resultater
|
||||||
søket
|
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Abonnementer'
|
Subscriptions: 'Abonnementer'
|
||||||
|
@ -77,18 +76,18 @@ Subscriptions:
|
||||||
Getting Subscriptions. Please wait.: Henter abonnementer. Vent.
|
Getting Subscriptions. Please wait.: Henter abonnementer. Vent.
|
||||||
Load More Videos: Last flere videoer
|
Load More Videos: Last flere videoer
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Denne
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Denne
|
||||||
profilen har mange abonnementer. Påtvinger RSS for å unngå adgangsbegrensning.
|
profilen har mange abonnementer. Påtvinger RSS for å unngå adgangsbegrensning
|
||||||
Trending: 'På vei opp'
|
Trending: 'På vei opp'
|
||||||
Most Popular: 'Mest populært'
|
Most Popular: 'Mest populært'
|
||||||
Playlists: 'Spillelister'
|
Playlists: 'Spillelister'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Dine spillelister'
|
Your Playlists: 'Dine spillelister'
|
||||||
Playlist Message: Denne siden reflekterer ikke fullstendig fungerende spillelister.
|
Playlist Message: Denne siden reflekterer ikke fullstendig fungerende spillelister.
|
||||||
Den lister kun opp videoer du har lagret eller favorittmerket. Når arbeidet er
|
Den viser kun videoer du har lagret eller favorittmerket. Når arbeidet er fullført,
|
||||||
fullført, vil alle videoer som vises her bli flyttet til en «Favoritt»-spilleliste.
|
vil alle videoer som vises her bli flyttet til en «Favoritt»-spilleliste.
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Dine
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Du
|
||||||
lagrede videoer er tomme. klikk på "Lagre"-knappen i hjørnet av en video for å
|
har ikke lagret noen videoer enda. Trykk på «Lagre»-knappen i hjørnet av en video
|
||||||
liste den opp her.
|
for å sende den hit
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Historikk'
|
History: 'Historikk'
|
||||||
|
@ -118,15 +117,16 @@ Settings:
|
||||||
Beginning: 'Begynnelsen'
|
Beginning: 'Begynnelsen'
|
||||||
Middle: 'Midten'
|
Middle: 'Midten'
|
||||||
End: 'Slutten'
|
End: 'Slutten'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Individious-instans
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Individious-forekomst
|
||||||
(forvalget er https://invidious.snopyta.org)'
|
(forvalget er https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Region for På vei opp'
|
Region for Trending: 'Region for «På vei opp»'
|
||||||
#! List countries
|
#! List countries
|
||||||
Check for Updates: Se etter oppdateringer
|
Check for Updates: Se etter oppdateringer
|
||||||
View all Invidious instance information: Vis info om alle Invidious-instanser
|
View all Invidious instance information: Vis info om alle Invidious-forekomster
|
||||||
Check for Latest Blog Posts: Se etter nye bloggposter
|
Check for Latest Blog Posts: Se etter nye blogginnlegg
|
||||||
|
System Default: Systemforvalg
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Tema innstillinger'
|
Theme Settings: 'Draktvalg'
|
||||||
Match Top Bar with Main Color: 'Bruk hovedfarge i toppbjelke'
|
Match Top Bar with Main Color: 'Bruk hovedfarge i toppbjelke'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: 'Hovedtema'
|
Base Theme: 'Hovedtema'
|
||||||
|
@ -134,7 +134,7 @@ Settings:
|
||||||
Dark: 'Mørk'
|
Dark: 'Mørk'
|
||||||
Light: 'Lys'
|
Light: 'Lys'
|
||||||
Main Color Theme:
|
Main Color Theme:
|
||||||
Main Color Theme: 'Hovedfargedrakt'
|
Main Color Theme: 'Hovedfarge'
|
||||||
Red: 'Rød'
|
Red: 'Rød'
|
||||||
Pink: 'Rosa'
|
Pink: 'Rosa'
|
||||||
Purple: 'Lilla'
|
Purple: 'Lilla'
|
||||||
|
@ -143,38 +143,38 @@ Settings:
|
||||||
Blue: 'Blå'
|
Blue: 'Blå'
|
||||||
Light Blue: 'Lyseblå'
|
Light Blue: 'Lyseblå'
|
||||||
Cyan: 'Cyanblå'
|
Cyan: 'Cyanblå'
|
||||||
Teal: 'Turkis'
|
Teal: 'Blågrønn'
|
||||||
Green: 'Grønn'
|
Green: 'Grønn'
|
||||||
Light Green: 'Lysegrønn'
|
Light Green: 'Lysegrønn'
|
||||||
Lime: 'Limegrønn'
|
Lime: 'Lime'
|
||||||
Yellow: 'Gul'
|
Yellow: 'Gul'
|
||||||
Amber: 'Rav'
|
Amber: 'Ravgul'
|
||||||
Orange: 'Oransje'
|
Orange: 'Oransje'
|
||||||
Deep Orange: 'Dyp oransje'
|
Deep Orange: 'Dyp oransje'
|
||||||
Secondary Color Theme: 'Sekundær fargedrakt'
|
Secondary Color Theme: 'Sekundærfarge'
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
UI Scale: Grensesnittskala
|
UI Scale: Grensesnittskala
|
||||||
Disable Smooth Scrolling: Skru av myk rulling
|
Disable Smooth Scrolling: Slå av myk rulling
|
||||||
Expand Side Bar by Default: Utvid sidestolpe som forvalg
|
Expand Side Bar by Default: Utvidet sidefelt som forvalg
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: 'Spillerinnstillinger'
|
Player Settings: 'Videoavspillingsinnstillinger'
|
||||||
Force Local Backend for Legacy Formats: 'Påtving lokal bakende for forelede formater'
|
Force Local Backend for Legacy Formats: 'Påtving lokal bakende for forelede formater'
|
||||||
Play Next Video: 'Spill av neste video'
|
Play Next Video: 'Spill av neste video'
|
||||||
Turn on Subtitles by Default: 'Slå på undertekster som standard'
|
Turn on Subtitles by Default: 'Undertekster som forvalg'
|
||||||
Autoplay Videos: 'Auto-spill videoer'
|
Autoplay Videos: 'Spill av videoer automatisk'
|
||||||
Proxy Videos Through Invidious: 'Mellomtjen videoer gjennom Invidious'
|
Proxy Videos Through Invidious: 'Mellomtjen videoer gjennom Invidious'
|
||||||
Autoplay Playlists: 'Autospillings-spillelister'
|
Autoplay Playlists: 'Spill av spillelister automatisk'
|
||||||
Enable Theatre Mode by Default: 'Kinomodus som standardvalg'
|
Enable Theatre Mode by Default: 'Kinomodus som standardvalg'
|
||||||
Default Volume: 'Standardvolum'
|
Default Volume: 'Standardvolum'
|
||||||
Default Playback Rate: 'Forvalgt avspillingshastighet'
|
Default Playback Rate: 'Avspillingshastighet'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Forvalgt videoformat'
|
Default Video Format: 'Videoformat'
|
||||||
Dash Formats: 'DASH-formater'
|
Dash Formats: 'DASH-formater'
|
||||||
Legacy Formats: 'Gamle formater'
|
Legacy Formats: 'Gamle formater'
|
||||||
Audio Formats: 'Lydformater'
|
Audio Formats: 'Lydformater'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Forvalgt kvalitet'
|
Default Quality: 'Kvalitetsinnstilling'
|
||||||
Auto: 'Auto'
|
Auto: 'Automatisk'
|
||||||
144p: '144p'
|
144p: '144p'
|
||||||
240p: '240p'
|
240p: '240p'
|
||||||
360p: '360p'
|
360p: '360p'
|
||||||
|
@ -182,12 +182,14 @@ Settings:
|
||||||
720p: '720p'
|
720p: '720p'
|
||||||
1080p: '1080p'
|
1080p: '1080p'
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: 'UHD'
|
4k: '4k'
|
||||||
8k: '8k UHD'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Intervall for avspilling av neste i spilleliste
|
||||||
|
Next Video Interval: Intervall mellom videoer
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Personvernsinnstillinger'
|
Privacy Settings: 'Personvernsinnstillinger'
|
||||||
Remember History: 'Husk historikk'
|
Remember History: 'Husk historikk'
|
||||||
Save Watched Progress: 'Lagre framdriftsposisjon'
|
Save Watched Progress: 'Lagre visningsposisjon'
|
||||||
Clear Search Cache: 'Tøm søkehurtiglager'
|
Clear Search Cache: 'Tøm søkehurtiglager'
|
||||||
Are you sure you want to clear out your search cache?: 'Tøm søkehurtiglager?'
|
Are you sure you want to clear out your search cache?: 'Tøm søkehurtiglager?'
|
||||||
Search cache has been cleared: 'Søkehurtiglager tømt'
|
Search cache has been cleared: 'Søkehurtiglager tømt'
|
||||||
|
@ -198,6 +200,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Er
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Er
|
||||||
du sikker på at du vil fjerne alle abonnementer og profiler? Dette kan ikke
|
du sikker på at du vil fjerne alle abonnementer og profiler? Dette kan ikke
|
||||||
angres.
|
angres.
|
||||||
|
Automatically Remove Video Meta Files: Fjern metadata automatisk fra videoer
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Abonnementsinnstillinger'
|
Subscription Settings: 'Abonnementsinnstillinger'
|
||||||
Hide Videos on Watch: 'Skjul sette videoer'
|
Hide Videos on Watch: 'Skjul sette videoer'
|
||||||
|
@ -255,11 +258,11 @@ Settings:
|
||||||
Manage Subscriptions: Håndter abonnementer
|
Manage Subscriptions: Håndter abonnementer
|
||||||
Unable to read file: Kunne ikke lese fil
|
Unable to read file: Kunne ikke lese fil
|
||||||
Invalid subscriptions file: Ugyldig abonnementsfil
|
Invalid subscriptions file: Ugyldig abonnementsfil
|
||||||
Profile object has insufficient data, skipping item: Profilobjekt har utilstrekkelig
|
Profile object has insufficient data, skipping item: Hopper over profilobjektet
|
||||||
data. Hopper over element.
|
siden det har utilstrekkelig data.
|
||||||
Check for Legacy Subscriptions: Se etter foreldede abonnementer
|
Check for Legacy Subscriptions: Se etter foreldede abonnementer
|
||||||
Subscriptions have been successfully exported: Abonnementer eksportert
|
Subscriptions have been successfully exported: Abonnementer eksportert
|
||||||
This might take a while, please wait: Dette kan ta sin tid…
|
This might take a while, please wait: Dette kan ta litt tid …
|
||||||
Export History: Historikk-eksport
|
Export History: Historikk-eksport
|
||||||
Import History: Historikk-import
|
Import History: Historikk-import
|
||||||
Export NewPipe: NewPipe-eksport
|
Export NewPipe: NewPipe-eksport
|
||||||
|
@ -275,8 +278,8 @@ Settings:
|
||||||
Data Settings: Datainnstillinger
|
Data Settings: Datainnstillinger
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Region: Region
|
Region: Region
|
||||||
Clicking on Test Proxy will send a request to: Klikk på «Test mellomtjener» for
|
Clicking on Test Proxy will send a request to: Hvis du trykker på «Test mellomtjener»
|
||||||
å sende en forespørsel til
|
sender vi en forespørsel til
|
||||||
Error getting network information. Is your proxy configured properly?: Klarte
|
Error getting network information. Is your proxy configured properly?: Klarte
|
||||||
ikke å hente nettverksinfo. Er din mellomtjener satt opp riktig?
|
ikke å hente nettverksinfo. Er din mellomtjener satt opp riktig?
|
||||||
Test Proxy: Test mellomtjener
|
Test Proxy: Test mellomtjener
|
||||||
|
@ -290,7 +293,7 @@ Settings:
|
||||||
Enable Tor / Proxy: Skru på Tor/mellomtjener
|
Enable Tor / Proxy: Skru på Tor/mellomtjener
|
||||||
Proxy Settings: Mellomtjenerinnstillinger
|
Proxy Settings: Mellomtjenerinnstillinger
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Hide Trending Videos: Gjem På vei opp
|
Hide Trending Videos: Skjul «På vei opp»
|
||||||
Hide Video Likes And Dislikes: Skjul video-gunst
|
Hide Video Likes And Dislikes: Skjul video-gunst
|
||||||
Distraction Free Settings: Distraksjonsfri-innstillinger
|
Distraction Free Settings: Distraksjonsfri-innstillinger
|
||||||
Hide Active Subscriptions: Skjul aktive abonnementer
|
Hide Active Subscriptions: Skjul aktive abonnementer
|
||||||
|
@ -299,9 +302,10 @@ Settings:
|
||||||
Hide Channel Subscribers: Skjul kanalabonnementer
|
Hide Channel Subscribers: Skjul kanalabonnementer
|
||||||
Hide Popular Videos: Skjul populære videoer
|
Hide Popular Videos: Skjul populære videoer
|
||||||
Hide Video Views: Skjul videovisninger
|
Hide Video Views: Skjul videovisninger
|
||||||
Hide Live Chat: Gjem direktechat
|
Hide Live Chat: Skjul sanntidssludring
|
||||||
|
Hide Playlists: Skjul spillelister
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Start
|
The app needs to restart for changes to take effect. Restart and apply change?: Start
|
||||||
programmet på ny for å bruke de nye endringene?
|
programmet på ny for å ta i bruk endringene?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Om'
|
About: 'Om'
|
||||||
|
@ -389,8 +393,8 @@ Video:
|
||||||
din'
|
din'
|
||||||
Open in YouTube: 'Åpne i YouTube'
|
Open in YouTube: 'Åpne i YouTube'
|
||||||
Copy YouTube Link: 'Kopier YouTube-lenke'
|
Copy YouTube Link: 'Kopier YouTube-lenke'
|
||||||
Open YouTube Embedded Player: 'Åpne innebygd YouTube-spiller'
|
Open YouTube Embedded Player: 'Åpne innebygd YouTube-avspiller'
|
||||||
Copy YouTube Embedded Player Link: 'Kopier lenke til innebygd YouTube-spiller'
|
Copy YouTube Embedded Player Link: 'Kopier lenke til innebygd YouTube-avspiller'
|
||||||
Open in Invidious: 'Åpne i Invidious'
|
Open in Invidious: 'Åpne i Invidious'
|
||||||
Copy Invidious Link: 'Kopier Invidious-lenke'
|
Copy Invidious Link: 'Kopier Invidious-lenke'
|
||||||
View: 'Vis'
|
View: 'Vis'
|
||||||
|
@ -400,18 +404,17 @@ Video:
|
||||||
Watched: 'Sett'
|
Watched: 'Sett'
|
||||||
# As in a Live Video
|
# As in a Live Video
|
||||||
Live: 'Direkte'
|
Live: 'Direkte'
|
||||||
Live Now: 'Direkte nå'
|
Live Now: 'Direkte'
|
||||||
Live Chat: 'Direktechat'
|
Live Chat: 'Sanntidssludring'
|
||||||
Enable Live Chat: 'Slå på direktechat'
|
Enable Live Chat: 'Slå på sanntidssludring'
|
||||||
Live Chat is currently not supported in this build.: 'Direktechat er ikke støttet
|
Live Chat is currently not supported in this build.: 'Sanntidssludring støttes ikke
|
||||||
i den nåværende versjonen.'
|
i denne versjonen.'
|
||||||
'Chat is disabled or the Live Stream has ended.': 'Chatten er slått av eller direktesendingen
|
'Chat is disabled or the Live Stream has ended.': 'Sludringen er slått av, eller
|
||||||
er avsluttet.'
|
så er direktesendingen avsluttet.'
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: 'Direktechat er
|
Live chat is enabled. Chat messages will appear here once sent.: 'Sanntidssludring
|
||||||
slått på. Chatmeldinger vil bli vist her når de er sendt.'
|
er påslått. Meldinger vil vises her når de er sendt.'
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Sanntidssludring
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Sanntidssludring
|
||||||
støttes for tiden ikke med Invidious-API-et. En direkte tilkobling til YouTube
|
støttes for tiden ikke med Invidious-API-et. Direkte tilkobling til YouTube kreves.'
|
||||||
kreves.'
|
|
||||||
Published:
|
Published:
|
||||||
Jan: 'Jan'
|
Jan: 'Jan'
|
||||||
Feb: 'Feb'
|
Feb: 'Feb'
|
||||||
|
@ -443,7 +446,7 @@ Video:
|
||||||
Minute: Minutt
|
Minute: Minutt
|
||||||
Published on: 'Publisert'
|
Published on: 'Publisert'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ % siden'
|
Publicationtemplate: '$ % siden'
|
||||||
#& Videos
|
#& Videos
|
||||||
Audio:
|
Audio:
|
||||||
High: Høy
|
High: Høy
|
||||||
|
@ -471,6 +474,7 @@ Video:
|
||||||
Open Channel in YouTube: Åpne kanal i YouTube
|
Open Channel in YouTube: Åpne kanal i YouTube
|
||||||
Play Previous Video: Spill av forrige video
|
Play Previous Video: Spill av forrige video
|
||||||
Play Next Video: Spill av neste video
|
Play Next Video: Spill av neste video
|
||||||
|
translated from English: oversatt fra engelsk
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -495,7 +499,7 @@ Playlist:
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: 'Veksle teatermodus'
|
Toggle Theatre Mode: 'Teatermodus'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Endre videoformater'
|
Change Video Formats: 'Endre videoformater'
|
||||||
Use Dash Formats: 'Bruk DASH-formater'
|
Use Dash Formats: 'Bruk DASH-formater'
|
||||||
|
@ -509,24 +513,24 @@ Share:
|
||||||
Share Video: 'Del video'
|
Share Video: 'Del video'
|
||||||
Copy Link: 'Kopier lenke'
|
Copy Link: 'Kopier lenke'
|
||||||
Open Link: 'Åpne lenke'
|
Open Link: 'Åpne lenke'
|
||||||
Copy Embed: 'Kopier innebygd'
|
Copy Embed: 'Kopier innebyggingslenke'
|
||||||
Open Embed: 'Åpne innebygd'
|
Open Embed: 'Åpne innebyggingslenke'
|
||||||
# On Click
|
# On Click
|
||||||
Invidious URL copied to clipboard: 'Invidious-nettadresse kopiert til utklippstavle'
|
Invidious URL copied to clipboard: 'Invidious-nettadresse kopiert til utklippstavle'
|
||||||
Invidious Embed URL copied to clipboard: 'Innebygd Invidious-nettadresse kopiert
|
Invidious Embed URL copied to clipboard: 'Innebyggingslenke for Invidious kopiert
|
||||||
til utklippstavle'
|
til utklippstavle'
|
||||||
YouTube URL copied to clipboard: 'YouTube-nettadresse kopiert til utklippstavle'
|
YouTube URL copied to clipboard: 'YouTube-nettadresse kopiert til utklippstavle'
|
||||||
YouTube Embed URL copied to clipboard: 'Innebygd YouTube-nettadresse kopiert til
|
YouTube Embed URL copied to clipboard: 'Innebygd YouTube-nettadresse kopiert til
|
||||||
utklippstavle'
|
utklippstavle'
|
||||||
YouTube Channel URL copied to clipboard: YouTube-kanalnettadresse kopiert til utklippstavle
|
YouTube Channel URL copied to clipboard: YouTube-kanalnettadresse kopiert til utklippstavle
|
||||||
Include Timestamp: Inkluder tidsstempel
|
Include Timestamp: Inkluder tidsstempel
|
||||||
Invidious Channel URL copied to clipboard: Ugyldig kanalnettadresse kopiert til
|
Invidious Channel URL copied to clipboard: Invidious-kanalnettadresse kopiert til
|
||||||
utklippstavle
|
utklippstavle
|
||||||
Mini Player: 'Minispiller'
|
Mini Player: 'Miniavspiller'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Kommentarer'
|
Comments: 'Kommentarer'
|
||||||
Click to View Comments: 'Klikk for å vise kommentarer'
|
Click to View Comments: 'Klikk for å vise kommentarer'
|
||||||
Getting comment replies, please wait: 'Henter kommentarsvar, vent.'
|
Getting comment replies, please wait: 'Henter kommentarsvar …'
|
||||||
Show Comments: 'Vis kommentarer'
|
Show Comments: 'Vis kommentarer'
|
||||||
Hide Comments: 'Skjul kommentarer'
|
Hide Comments: 'Skjul kommentarer'
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
@ -534,8 +538,8 @@ Comments:
|
||||||
Hide: 'Skjul'
|
Hide: 'Skjul'
|
||||||
Replies: 'Svar'
|
Replies: 'Svar'
|
||||||
Reply: 'Svar'
|
Reply: 'Svar'
|
||||||
There are no comments available for this video: 'Det finnes ingen tilgjengelige
|
There are no comments available for this video: 'Det er ingen kommentarer tilgjengelige
|
||||||
kommentarer for denne videoen'
|
på denne videoen'
|
||||||
Load More Comments: 'Last inn flere kommentarer'
|
Load More Comments: 'Last inn flere kommentarer'
|
||||||
No more comments available: Ingen flere kommentarer tilgjengelig
|
No more comments available: Ingen flere kommentarer tilgjengelig
|
||||||
Newest first: Nyeste først
|
Newest first: Nyeste først
|
||||||
|
@ -581,7 +585,7 @@ Profile:
|
||||||
Are you sure you want to delete this profile?: Er du sikker på at du vil slette
|
Are you sure you want to delete this profile?: Er du sikker på at du vil slette
|
||||||
denne profilen?
|
denne profilen?
|
||||||
Delete Profile: Slett profil
|
Delete Profile: Slett profil
|
||||||
Make Default Profile: Gjør til forvalgt profil
|
Make Default Profile: Angi som forvalgt profil
|
||||||
Update Profile: Oppdater profil
|
Update Profile: Oppdater profil
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: Er
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: Er
|
||||||
du sikker på at du vil fjerne de valgte kanalene? Disse vil ikke bli slettet fra
|
du sikker på at du vil fjerne de valgte kanalene? Disse vil ikke bli slettet fra
|
||||||
|
@ -599,49 +603,62 @@ Profile:
|
||||||
All Channels: Alle kanaler
|
All Channels: Alle kanaler
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: Dette er din hovedprofil. Er du sikker på at du ønsker å slette valgte kanaler?
|
: Dette er din hovedprofil. Er du sikker på at du ønsker å slette de valgte kanalene?
|
||||||
De samme kanalene vil bli slettet i enhver profil de finnes i.
|
De samme kanalene vil bli slettet i enhver profil de finnes i.
|
||||||
Select None: Fravelg alt
|
Select None: Velg ingen
|
||||||
Delete Selected: Slett valgte
|
Delete Selected: Slett valgte
|
||||||
Add Selected To Profile: Legg til valgt i profil
|
Add Selected To Profile: Legg til valgt i profil
|
||||||
Subscription List: Abonnementsliste
|
Subscription List: Abonnementsliste
|
||||||
Profile Preview: Profilforhåndsvisning
|
Profile Preview: Profilforhåndsvisning
|
||||||
Custom Color: Egendefinert farge
|
Custom Color: Egendefinert farge
|
||||||
|
Profile Filter: Profilfilter
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Denne
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Denne
|
||||||
videoen er utilgjengelig grunnet manglende formater. Dette kan skyldes tilgangbegrensninger
|
videoen er utilgjengelig grunnet manglende formater. Dette kan skyldes tilgangbegrensninger
|
||||||
i ditt land.
|
i ditt land.
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: Invidious-forekomsten som FreeTube vil koble til for API-kall.
|
Invidious Instance: Invidious-forekomsten FreeTube kobler til for API-kall. Fjern
|
||||||
Fjern den gjeldene forekomsten for å se en liste over offentlige forekomster
|
den gjeldene forekomsten for å se en liste over offentlige forekomster å velge
|
||||||
å velge mellom
|
mellom.
|
||||||
Thumbnail Preference: Alle miniatyrbilder i FreeTube vil bli erstattet av et bilde
|
Thumbnail Preference: Alle miniatyrbilder i FreeTube vil bli erstattet av et bilde
|
||||||
av videoen i stedet for standardminiatyrbildet
|
av videoen i stedet for forvalgt miniatyrbilde.
|
||||||
Fallback to Non-Preferred Backend on Failure: Når ditt foretrukne API har et problem,
|
Fallback to Non-Preferred Backend on Failure: Når ditt foretrukne API har et problem,
|
||||||
vil FreeTube prøve å automatisk bruke ditt ikke-foretrukne API som en tilbakefallingsmetode
|
vil FreeTube automatisk prøve å bruke ditt ikke-foretrukne API som en tilbakefallsmetode
|
||||||
dersom det er aktivert
|
dersom det er aktivert.
|
||||||
Region for Trending: Trendregionen lar deg enkelt velge hvilkets lands populære
|
Region for Trending: Trendregionen lar deg enkelt velge hvilkets lands populære
|
||||||
videoer du ønsker å vise. Ikke alle land som vises støttes for tiden av YouTube.
|
videoer du ønsker å vise. Ikke alle land som vises støttes av YouTube.
|
||||||
Preferred API Backend: Velg bakenden FreeTube bruker til å hente data. Det lokale
|
Preferred API Backend: Velg metoden FreeTube bruker til å hente data. Det lokale
|
||||||
API-et er en innebygd utpakker. Invidious-API-et krever en Invidious-tjener
|
API-et er en innebygd utpakker. Invidious-API-et krever en Invidious-tjener
|
||||||
å koble til.
|
å koble til.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Når påskrudd, vil FreeTube bruke RSS istedenfor dens forvalgte
|
Fetch Feeds from RSS: Bruk RSS istedenfor FreeTube sin forvalgte metode for innhenting
|
||||||
metode for å hente din abonnementsstrøm. RSS er raskere og forhindrer IP-blokkering,
|
av din abonnementsstrøm. RSS er raskere og forhindrer IP-blokkering, men mangler
|
||||||
men har ikke gitt info som videovarighet, eller sanntidsstatus.
|
noe info som videovarighet og sanntidsstatus.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Sett formater brukt når en video spilles. DASH-formater
|
Default Video Format: Sett formater brukt når en video spilles. DASH-formater
|
||||||
kan spille høyere kvaliteter. Foreldede formater er begrenset til maks. 720p,
|
kan spille høyere kvaliteter. Foreldede formater er begrenset til maks. 720p,
|
||||||
men bruker mindre båndbredde. Lydformater er kun lydstrømmer.
|
men bruker mindre båndbredde. Lydformater er kun lydstrømmer.
|
||||||
Force Local Backend for Legacy Formats: Fungerer kun når Invidious-API-et er satt
|
Force Local Backend for Legacy Formats: Fungerer kun med Invidious-API-et som
|
||||||
som forvalg. Når påslått vil det lokale API-et kjøre og bruke de foreldede formatene
|
forvalg. Når påslått vil det lokale API-et kjøre og bruke de foreldede formatene
|
||||||
som returneres derfra, istedenfor dem returnert av Invidious. Hjelper når videoer
|
som returneres derfra, istedenfor dem returnert av Invidious. Hjelper når videoer
|
||||||
returnert av Invidious ikke spilles som følge av regionsrestriksjoner.
|
returnert av Invidious ikke spilles som følge av regionsrestriksjoner.
|
||||||
Proxy Videos Through Invidious: Kobler til Invidious for å vertstjene videoer
|
Proxy Videos Through Invidious: Kobler til Invidious for å servere videoer istedenfor
|
||||||
istedenfor å gjøre direkte tilkoblinger til YouTube. (Overskriver API-preferanse.)
|
å koble direkte til YouTube. Overstyrer API-innstilling.
|
||||||
A new blog is now available, $. Click to view more: En ny bloggpost er nå tilgjengelig,
|
Privacy Settings:
|
||||||
$. Klikk for å se den
|
Remove Video Meta Files: Hvis denne instillingen er på, vil FreeTube automatisk
|
||||||
|
slette metadata generert under videoavspilling når du lukker avspillingsiden.
|
||||||
|
A new blog is now available, $. Click to view more: Et nytt blogginnlegg er nå tilgjengelig,
|
||||||
|
$. Trykk her for å se mer
|
||||||
The playlist has been reversed: Spillelisten har blitt snudd
|
The playlist has been reversed: Spillelisten har blitt snudd
|
||||||
Download From Site: Last ned fra nettsiden
|
Download From Site: Last ned fra nettside
|
||||||
Version $ is now available! Click for more details: Versjon $ er nå tilgjengelig.
|
Version $ is now available! Click for more details: Versjon $ er nå tilgjengelig!
|
||||||
Klikk for flere detaljer.
|
Trykk her for detaljer
|
||||||
|
Playing Next Video Interval: Spiller av neste video nå. Klikk for å avbryte. | Spiller
|
||||||
|
av neste video om {nextVideoInterval} sekund. Klikk for å avbryte. | Spiller av
|
||||||
|
neste video om {nextVideoInterval} sekunder. Klikk for å avbryte.
|
||||||
|
More: Mer
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Ukjent YouTube-nettadressetype,
|
||||||
|
kan ikke åpnes i programmet
|
||||||
|
Hashtags have not yet been implemented, try again later: Emneknagger er ikke implementert
|
||||||
|
enda, prøv igjen senere
|
||||||
|
Open New Window: Åpne et nytt vindu
|
||||||
|
|
|
@ -44,7 +44,7 @@ Search Filters:
|
||||||
Time:
|
Time:
|
||||||
Time: 'Tijd'
|
Time: 'Tijd'
|
||||||
Any Time: 'Ooit'
|
Any Time: 'Ooit'
|
||||||
Last Hour: 'Laatste uur'
|
Last Hour: 'Afgelopen uur'
|
||||||
Today: 'Vandaag'
|
Today: 'Vandaag'
|
||||||
This Week: 'Deze week'
|
This Week: 'Deze week'
|
||||||
This Month: 'Deze maand'
|
This Month: 'Deze maand'
|
||||||
|
@ -62,7 +62,7 @@ Search Filters:
|
||||||
Long (> 20 minutes): 'Lang (> 20 minuten)'
|
Long (> 20 minutes): 'Lang (> 20 minuten)'
|
||||||
# On Search Page
|
# On Search Page
|
||||||
Search Results: 'Zoekresultaten'
|
Search Results: 'Zoekresultaten'
|
||||||
Fetching results. Please wait: 'Resultaten verzamelen. Een momentje'
|
Fetching results. Please wait: 'Resultaten verzamelen. Even geduld aub'
|
||||||
Fetch more results: 'Meer resultaten laden'
|
Fetch more results: 'Meer resultaten laden'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
There are no more results for this search: Er zijn geen verdere resultaten voor
|
There are no more results for this search: Er zijn geen verdere resultaten voor
|
||||||
|
@ -70,24 +70,24 @@ Search Filters:
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Abonnementen'
|
Subscriptions: 'Abonnementen'
|
||||||
Latest Subscriptions: 'Nieuwste Van Abonnementen'
|
Latest Subscriptions: 'Nieuwste Abonnementen'
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'U
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'U
|
||||||
heeft nog geen Abonnementen. Voeg abonnementen toe om ze hier te zien'
|
heeft nog geen Abonnementen. Voeg abonnementen toe om ze hier te zien'
|
||||||
'Getting Subscriptions. Please wait.': ''
|
'Getting Subscriptions. Please wait.': ''
|
||||||
Refresh Subscriptions: Vernieuw abonnementen
|
Refresh Subscriptions: Vernieuw abonnementen
|
||||||
Getting Subscriptions. Please wait.: Abonnementen verzamelen. Een momentje.
|
Getting Subscriptions. Please wait.: Abonnementen verzamelen. Even geduld aub.
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dit
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dit
|
||||||
profiel heeft een groot aantal abonnementen. RSS wordt geforceerd om tariefbeperkingen
|
profiel heeft een groot aantal abonnementen. Forceer RSS om snelheidsbeperking
|
||||||
te voorkomen
|
te vermijden
|
||||||
Load More Videos: Laad Meer Video's
|
Load More Videos: Meer Video's Laden
|
||||||
Trending: 'Trending'
|
Trending: 'Trending'
|
||||||
Most Popular: 'Populair'
|
Most Popular: 'Populair'
|
||||||
Playlists: 'Afspeellijsten'
|
Playlists: 'Afspeellijsten'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Uw afspeellijsten'
|
Your Playlists: 'Uw afspeellijsten'
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Je
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Je
|
||||||
opgeslagen video's is leeg. Klik op de video opslaan knop in de hoek van een video
|
opgeslagen video's is leeg. Klik op de opslaan knop in de hoek van een video om
|
||||||
om het hier in de lijst te plaatsen
|
het hier in de lijst te plaatsen
|
||||||
Playlist Message: Deze pagina is niet reflectief van volledig functionele afspeellijst.
|
Playlist Message: Deze pagina is niet reflectief van volledig functionele afspeellijst.
|
||||||
Er worden alleen video's weergegeven die jij hebt opgeslagen of gefavoriet. Wanneer
|
Er worden alleen video's weergegeven die jij hebt opgeslagen of gefavoriet. Wanneer
|
||||||
we klaar zijn met de ontwikkeling van deze feature zullen al deze video's worden
|
we klaar zijn met de ontwikkeling van deze feature zullen al deze video's worden
|
||||||
|
@ -112,7 +112,7 @@ Settings:
|
||||||
Local API: 'Lokale API'
|
Local API: 'Lokale API'
|
||||||
Invidious API: 'Invidious API'
|
Invidious API: 'Invidious API'
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: 'Video Toontype'
|
Video View Type: 'Type Videoweergave'
|
||||||
Grid: 'Raster'
|
Grid: 'Raster'
|
||||||
List: 'Lijst'
|
List: 'Lijst'
|
||||||
Thumbnail Preference:
|
Thumbnail Preference:
|
||||||
|
@ -130,14 +130,14 @@ Settings:
|
||||||
View all Invidious instance information: Bekijk alle Invidious-instantiegegevens
|
View all Invidious instance information: Bekijk alle Invidious-instantiegegevens
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Thema Instellingen'
|
Theme Settings: 'Thema Instellingen'
|
||||||
Match Top Bar with Main Color: 'Paar Bovenste Balk met Primaire Kleur'
|
Match Top Bar with Main Color: 'Laat de bovenste balk overeenkomen met de hoofdkleur'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: 'Basisthema'
|
Base Theme: 'Basisthema'
|
||||||
Black: 'Zwart'
|
Black: 'Zwart'
|
||||||
Dark: 'Donker'
|
Dark: 'Donker'
|
||||||
Light: 'Licht'
|
Light: 'Licht'
|
||||||
Main Color Theme:
|
Main Color Theme:
|
||||||
Main Color Theme: 'Primaire Themakleur'
|
Main Color Theme: 'Hoofdkleur Thema'
|
||||||
Red: 'Rood'
|
Red: 'Rood'
|
||||||
Pink: 'Roze'
|
Pink: 'Roze'
|
||||||
Purple: 'Paars'
|
Purple: 'Paars'
|
||||||
|
@ -161,7 +161,7 @@ Settings:
|
||||||
Disable Smooth Scrolling: Vloeiend Scrollen Uitschakelen
|
Disable Smooth Scrolling: Vloeiend Scrollen Uitschakelen
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: 'Speler Instellingen'
|
Player Settings: 'Speler Instellingen'
|
||||||
Force Local Backend for Legacy Formats: 'Forceer Lokale Backend Voor Legacy Indelingen'
|
Force Local Backend for Legacy Formats: 'Lokale Backend Forceren voor Oudere Formaten'
|
||||||
Play Next Video: 'Volgende Video Automatisch Afspelen'
|
Play Next Video: 'Volgende Video Automatisch Afspelen'
|
||||||
Turn on Subtitles by Default: 'Schakel Ondertiteling Standaard in'
|
Turn on Subtitles by Default: 'Schakel Ondertiteling Standaard in'
|
||||||
Autoplay Videos: 'Video''s Automatisch Afspelen'
|
Autoplay Videos: 'Video''s Automatisch Afspelen'
|
||||||
|
@ -171,10 +171,10 @@ Settings:
|
||||||
Default Volume: 'Standaard Volume'
|
Default Volume: 'Standaard Volume'
|
||||||
Default Playback Rate: 'Standaard Afspeelsnelheid'
|
Default Playback Rate: 'Standaard Afspeelsnelheid'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Standaard Video-Indeling'
|
Default Video Format: 'Standaard Videoformaat'
|
||||||
Dash Formats: 'Dash Indelingen'
|
Dash Formats: 'DASH Formaten'
|
||||||
Legacy Formats: 'Legacy Indelingen'
|
Legacy Formats: 'Verouderde formaten'
|
||||||
Audio Formats: 'Audio Indelingen'
|
Audio Formats: 'Audio Formaten'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Standaard Videokwaliteit'
|
Default Quality: 'Standaard Videokwaliteit'
|
||||||
Auto: 'Automatisch'
|
Auto: 'Automatisch'
|
||||||
|
@ -187,22 +187,25 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Afspeellijst Volgende Video Tussentijd
|
||||||
|
Next Video Interval: Volgende Video Tussenpauze Duur
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Privacy Instellingen'
|
Privacy Settings: 'Privacy Instellingen'
|
||||||
Remember History: 'Herinner Geschiedenis'
|
Remember History: 'Onthoud Geschiedenis'
|
||||||
Save Watched Progress: 'Herinner Video Voortgang'
|
Save Watched Progress: 'Bewaar Bekeken Voortgang'
|
||||||
Clear Search Cache: 'Verwijder Zoek-cache'
|
Clear Search Cache: 'Verwijder Zoek-Cache'
|
||||||
Are you sure you want to clear out your search cache?: 'Weet u zeker dat u de
|
Are you sure you want to clear out your search cache?: 'Weet u zeker dat u de
|
||||||
zoek-cache wil verwijderen?'
|
zoek-cache wil verwijderen?'
|
||||||
Search cache has been cleared: 'De zoek-cache is verwijdert'
|
Search cache has been cleared: 'De zoek-cache is verwijderd'
|
||||||
Remove Watch History: 'Verwijder Kijkgeschiedenis'
|
Remove Watch History: 'Verwijder Kijkgeschiedenis'
|
||||||
Are you sure you want to remove your entire watch history?: 'Weet u zeker dat
|
Are you sure you want to remove your entire watch history?: 'Weet u zeker dat
|
||||||
u uw volledige kijkgeschiedenis wil verwijderen?'
|
u uw volledige kijkgeschiedenis wil verwijderen?'
|
||||||
Watch history has been cleared: 'Kijkgeschiedenis is verwijdert'
|
Watch history has been cleared: 'Kijkgeschiedenis is verwijderd'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Weet
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Weet
|
||||||
u zeker dat u alle abonnementen en profielen wil verwijderen? Dit kan niet worden
|
u zeker dat u alle abonnementen en profielen wil verwijderen? Dit kan niet worden
|
||||||
ontdaan.
|
ontdaan.
|
||||||
Remove All Subscriptions / Profiles: Verwijder alle Abonnementen / Profielen
|
Remove All Subscriptions / Profiles: Verwijder alle Abonnementen / Profielen
|
||||||
|
Automatically Remove Video Meta Files: Video-Metabestanden Automatisch Verwijderen
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Abonnement instellingen'
|
Subscription Settings: 'Abonnement instellingen'
|
||||||
Hide Videos on Watch: 'Verberg Video''s Zodra Bekeken'
|
Hide Videos on Watch: 'Verberg Video''s Zodra Bekeken'
|
||||||
|
@ -248,7 +251,7 @@ Settings:
|
||||||
niet genoeg data, item word overgeslagen
|
niet genoeg data, item word overgeslagen
|
||||||
Subscriptions have been successfully exported: Abonnementen zijn met succes geïmporteerd
|
Subscriptions have been successfully exported: Abonnementen zijn met succes geïmporteerd
|
||||||
Invalid history file: Ongeldig geschiedenisbestand
|
Invalid history file: Ongeldig geschiedenisbestand
|
||||||
This might take a while, please wait: Dit kan eventjes duren, een momentje
|
This might take a while, please wait: Dit kan eventjes duren, even geduld aub
|
||||||
Invalid subscriptions file: Ongeldig abonnementenbestand
|
Invalid subscriptions file: Ongeldig abonnementenbestand
|
||||||
One or more subscriptions were unable to be imported: Een of meer abonnementen
|
One or more subscriptions were unable to be imported: Een of meer abonnementen
|
||||||
konden niet worden geïmporteerd
|
konden niet worden geïmporteerd
|
||||||
|
@ -292,9 +295,10 @@ Settings:
|
||||||
Hide Video Views: Verberg Weergaven
|
Hide Video Views: Verberg Weergaven
|
||||||
Distraction Free Settings: Afleidingsvrije Instellingen
|
Distraction Free Settings: Afleidingsvrije Instellingen
|
||||||
Hide Active Subscriptions: Verberg Actieve Abonnementen
|
Hide Active Subscriptions: Verberg Actieve Abonnementen
|
||||||
|
Hide Playlists: Verberg Afspeellijst
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: De
|
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
|
applicatie moet opnieuw opstarten om de veranderingen aan te brengen. Wilt u opnieuw
|
||||||
opstarten?
|
opstarten en verandering toepassen?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Error getting network information. Is your proxy configured properly?: Fout bij
|
Error getting network information. Is your proxy configured properly?: Fout bij
|
||||||
het opvragen van netwerk informatie. Is uw proxy correct geconfigureerd?
|
het opvragen van netwerk informatie. Is uw proxy correct geconfigureerd?
|
||||||
|
@ -305,7 +309,7 @@ Settings:
|
||||||
Your Info: Uw Informatie
|
Your Info: Uw Informatie
|
||||||
Test Proxy: Test Proxy
|
Test Proxy: Test Proxy
|
||||||
Clicking on Test Proxy will send a request to: Door op Test Proxy te klikken zal
|
Clicking on Test Proxy will send a request to: Door op Test Proxy te klikken zal
|
||||||
er een request worden verstuurd naar
|
er een verzoek worden verstuurd naar
|
||||||
Proxy Port Number: Proxy Poortnummer
|
Proxy Port Number: Proxy Poortnummer
|
||||||
Proxy Host: Proxy Host
|
Proxy Host: Proxy Host
|
||||||
Proxy Protocol: Proxy Protocol
|
Proxy Protocol: Proxy Protocol
|
||||||
|
@ -344,7 +348,7 @@ About:
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
Donate: Doneer
|
Donate: Doneer
|
||||||
these people and projects: deze mensen en project
|
these people and projects: deze mensen en projecten
|
||||||
FreeTube is made possible by: FreeTube is mogelijk gemaakt door
|
FreeTube is made possible by: FreeTube is mogelijk gemaakt door
|
||||||
Credits: Met dank aan
|
Credits: Met dank aan
|
||||||
Translate: Vertalen
|
Translate: Vertalen
|
||||||
|
@ -352,7 +356,7 @@ About:
|
||||||
Please read the: Lees alstublieft de
|
Please read the: Lees alstublieft de
|
||||||
Chat on Matrix: Chat op Matrix
|
Chat on Matrix: Chat op Matrix
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: Email
|
Email: E-mail
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
Website: Website
|
Website: Website
|
||||||
Please check for duplicates before posting: Controleer op duplicaten voordat u een
|
Please check for duplicates before posting: Controleer op duplicaten voordat u een
|
||||||
|
@ -375,18 +379,19 @@ Channel:
|
||||||
Unsubscribe: 'Afmelden'
|
Unsubscribe: 'Afmelden'
|
||||||
Search Channel: 'Zoek op Kanaal'
|
Search Channel: 'Zoek op Kanaal'
|
||||||
Your search results have returned 0 results: 'Uw zoekactie heeft 0 resultaten opgeleverd'
|
Your search results have returned 0 results: 'Uw zoekactie heeft 0 resultaten opgeleverd'
|
||||||
Sort By: 'Sorteer Bij'
|
Sort By: 'Sorteer Op'
|
||||||
Videos:
|
Videos:
|
||||||
Videos: 'Video''s'
|
Videos: 'Video''s'
|
||||||
This channel does not currently have any videos: 'Dit kanaal heeft nog geen video''s'
|
This channel does not currently have any videos: 'Dit kanaal heeft op dit moment
|
||||||
|
nog geen video''s'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Newest: 'Nieuwste'
|
Newest: 'Nieuwste'
|
||||||
Oldest: 'Oudste'
|
Oldest: 'Oudste'
|
||||||
Most Popular: 'Meest Populair'
|
Most Popular: 'Meest Populair'
|
||||||
Playlists:
|
Playlists:
|
||||||
Playlists: 'Afspeellijsten'
|
Playlists: 'Afspeellijsten'
|
||||||
This channel does not currently have any playlists: 'Dit kanaal heeft nog geen
|
This channel does not currently have any playlists: 'Dit kanaal heeft momenteel
|
||||||
afspeellijsten'
|
nog geen afspeellijsten'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Last Video Added: 'Laatst Toegevoegd'
|
Last Video Added: 'Laatst Toegevoegd'
|
||||||
Newest: 'Nieuwste'
|
Newest: 'Nieuwste'
|
||||||
|
@ -464,12 +469,12 @@ Video:
|
||||||
#& Videos
|
#& Videos
|
||||||
Autoplay: Automatisch Afspelen
|
Autoplay: Automatisch Afspelen
|
||||||
Play Previous Video: Speel Vorige Video af
|
Play Previous Video: Speel Vorige Video af
|
||||||
Play Next Video: Volgende Video Automatisch Afspelen
|
Play Next Video: Volgende Video Afspelen
|
||||||
Reverse Playlist: Playlist Omkeren
|
Reverse Playlist: Afspeellijst Omkeren
|
||||||
Shuffle Playlist: Schuifelen Playlist
|
Shuffle Playlist: Afspeellijst in willekeurige volgorde afspelen
|
||||||
Loop Playlist: Herhaal Playlist
|
Loop Playlist: Herhaal Playlist
|
||||||
Starting soon, please refresh the page to check again: Begint spoedig, a.u.b. herlaad
|
Starting soon, please refresh the page to check again: Start binnenkort, vernieuw
|
||||||
de pagina om nog maal te checken
|
de pagina om opnieuw te controleren
|
||||||
Audio:
|
Audio:
|
||||||
Best: Beste
|
Best: Beste
|
||||||
High: Hoog
|
High: Hoog
|
||||||
|
@ -488,6 +493,7 @@ Video:
|
||||||
video's lijst
|
video's lijst
|
||||||
Video has been saved: Video is opgeslagen
|
Video has been saved: Video is opgeslagen
|
||||||
Save Video: Video Opslaan
|
Save Video: Video Opslaan
|
||||||
|
translated from English: vertaald vanuit het engels
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -514,13 +520,13 @@ Playlist:
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: 'Schakel Theatermodus In'
|
Toggle Theatre Mode: 'Schakel Theatermodus In'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Verander Video indeling'
|
Change Video Formats: 'Verander Video Formaten'
|
||||||
Use Dash Formats: 'Gebruik Dash Indelingen'
|
Use Dash Formats: 'Gebruik DASH Formaten'
|
||||||
Use Legacy Formats: 'Gebruik Legacy Indelingen'
|
Use Legacy Formats: 'Gebruik Legacy Formaten'
|
||||||
Use Audio Formats: 'Gebruik Audio Indelingen'
|
Use Audio Formats: 'Gebruik Audio Formaten'
|
||||||
Audio formats are not available for this video: Audio indelingen zijn niet beschikbaar
|
Audio formats are not available for this video: Audio formaten zijn niet beschikbaar
|
||||||
voor deze video
|
voor deze video
|
||||||
Dash formats are not available for this video: Dash indelingen zijn niet beschikbaar
|
Dash formats are not available for this video: DASH formaten zijn niet beschikbaar
|
||||||
voor deze video
|
voor deze video
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Deel Video'
|
Share Video: 'Deel Video'
|
||||||
|
@ -535,7 +541,7 @@ Share:
|
||||||
YouTube URL copied to clipboard: 'YouTube URL is gekopieerd naar het klembord'
|
YouTube URL copied to clipboard: 'YouTube URL is gekopieerd naar het klembord'
|
||||||
YouTube Embed URL copied to clipboard: 'YouTube Insluitlink is gekopieerd naar het
|
YouTube Embed URL copied to clipboard: 'YouTube Insluitlink is gekopieerd naar het
|
||||||
klemboard'
|
klemboard'
|
||||||
Include Timestamp: Begrijp Tijdstempel In
|
Include Timestamp: Inclusief Tijdstempel
|
||||||
YouTube Channel URL copied to clipboard: YouTube URL is gekopieerd naar het klembord
|
YouTube Channel URL copied to clipboard: YouTube URL is gekopieerd naar het klembord
|
||||||
Invidious Channel URL copied to clipboard: Invidious Kanaal URL is gekopieerd naar
|
Invidious Channel URL copied to clipboard: Invidious Kanaal URL is gekopieerd naar
|
||||||
het klembord
|
het klembord
|
||||||
|
@ -543,7 +549,7 @@ Mini Player: 'Minispeler'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Reacties'
|
Comments: 'Reacties'
|
||||||
Click to View Comments: 'Klik om Reacties Te Tonen'
|
Click to View Comments: 'Klik om Reacties Te Tonen'
|
||||||
Getting comment replies, please wait: 'Reacties worden verzameld, een momentje'
|
Getting comment replies, please wait: 'Reacties worden verzameld, even geduld aub'
|
||||||
Show Comments: 'Toon Reacties'
|
Show Comments: 'Toon Reacties'
|
||||||
Hide Comments: 'Verberg Reacties'
|
Hide Comments: 'Verberg Reacties'
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
@ -551,14 +557,15 @@ Comments:
|
||||||
Hide: 'Verberg'
|
Hide: 'Verberg'
|
||||||
Replies: 'Reacties'
|
Replies: 'Reacties'
|
||||||
Reply: 'Reactie'
|
Reply: 'Reactie'
|
||||||
There are no comments available for this video: 'Er zijn geen reacties op deze video'
|
There are no comments available for this video: 'Er zijn geen reacties beschikbaar
|
||||||
Load More Comments: 'Laad Meer Reacties'
|
voor deze video'
|
||||||
|
Load More Comments: 'Meer Reacties Laden'
|
||||||
There are no more comments for this video: Er zijn geen verdere reacties op deze
|
There are no more comments for this video: Er zijn geen verdere reacties op deze
|
||||||
video
|
video
|
||||||
No more comments available: Er zijn niet meer reacties beschikbaar
|
No more comments available: Er zijn geen reacties meer beschikbaar
|
||||||
Newest first: Nieuwste Eerst
|
Newest first: Nieuwste Eerst
|
||||||
Top comments: Bovenste reacties
|
Top comments: Top Reacties
|
||||||
Sort by: Sorteer Bij
|
Sort by: Sorteer Op
|
||||||
Up Next: 'Volgende'
|
Up Next: 'Volgende'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
|
@ -569,8 +576,8 @@ Falling back to the local API: 'Terugvallen op lokale API'
|
||||||
Subscriptions have not yet been implemented: 'Abonnementen zijn nog niet geïmplementeerd'
|
Subscriptions have not yet been implemented: 'Abonnementen zijn nog niet geïmplementeerd'
|
||||||
Loop is now disabled: 'Herhalen is nu uitgeschakeld'
|
Loop is now disabled: 'Herhalen is nu uitgeschakeld'
|
||||||
Loop is now enabled: 'Herhalen is nu ingeschakeld'
|
Loop is now enabled: 'Herhalen is nu ingeschakeld'
|
||||||
Shuffle is now disabled: 'Schuifelen is nu uitgeschakeld'
|
Shuffle is now disabled: 'Willekeurig afspelen is nu uitgeschakeld'
|
||||||
Shuffle is now enabled: 'Schuifelen is nu ingeschakeld'
|
Shuffle is now enabled: 'Willekeurig afspelen is nu ingeschakeld'
|
||||||
Playing Next Video: 'Volgende Video Word Afgespeeld'
|
Playing Next Video: 'Volgende Video Word Afgespeeld'
|
||||||
Playing Previous Video: 'Vorige Video Word Afgespeeld'
|
Playing Previous Video: 'Vorige Video Word Afgespeeld'
|
||||||
Playing next video in 5 seconds. Click to cancel: 'Volgende Video Begint in 5 Seconden.
|
Playing next video in 5 seconds. Click to cancel: 'Volgende Video Begint in 5 Seconden.
|
||||||
|
@ -586,14 +593,14 @@ Profile:
|
||||||
$ is now the active profile: $ is nu het actieve profiel
|
$ is now the active profile: $ is nu het actieve profiel
|
||||||
Your default profile has been changed to your primary profile: Uw standaardprofiel
|
Your default profile has been changed to your primary profile: Uw standaardprofiel
|
||||||
is veranderd naar uw hoofdprofiel
|
is veranderd naar uw hoofdprofiel
|
||||||
Removed $ from your profiles: $ is verwijdert uit uw profielen
|
Removed $ from your profiles: $ is verwijderd uit uw profielen
|
||||||
Your default profile has been set to $: Uw standaard profiel is ingesteld op $
|
Your default profile has been set to $: Uw standaard profiel is ingesteld op $
|
||||||
Profile has been updated: Profiel is geüpdate
|
Profile has been updated: Profiel is geüpdate
|
||||||
Profile has been created: Profiel is aangemaakt
|
Profile has been created: Profiel is aangemaakt
|
||||||
Your profile name cannot be empty: U profiel naam kan niet leeg zijn
|
Your profile name cannot be empty: Uw profielnaam mag niet leeg zijn
|
||||||
Profile could not be found: Profiel kon niet worden gevonden
|
Profile could not be found: Profiel kon niet worden gevonden
|
||||||
All subscriptions will also be deleted.: Alle abonnementen zullen worden verwijderd.
|
All subscriptions will also be deleted.: Alle abonnementen zullen ook worden verwijderd.
|
||||||
Are you sure you want to delete this profile?: Weet u zeker dat u dit profiel wil
|
Are you sure you want to delete this profile?: Weet u zeker dat u dit profiel wilt
|
||||||
verwijderen?
|
verwijderen?
|
||||||
Delete Profile: Verwijder Profiel
|
Delete Profile: Verwijder Profiel
|
||||||
Make Default Profile: Creëer Standaard Profiel
|
Make Default Profile: Creëer Standaard Profiel
|
||||||
|
@ -603,7 +610,7 @@ Profile:
|
||||||
Custom Color: Eigen Kleur
|
Custom Color: Eigen Kleur
|
||||||
Color Picker: Kleur Kiezer
|
Color Picker: Kleur Kiezer
|
||||||
Edit Profile: Pas Profiel aan
|
Edit Profile: Pas Profiel aan
|
||||||
Create New Profile: Creëer een Nieuw Profile
|
Create New Profile: Creëer een Nieuw Profiel
|
||||||
Profile Manager: Beheer Profiel
|
Profile Manager: Beheer Profiel
|
||||||
All Channels: Alle Kanalen
|
All Channels: Alle Kanalen
|
||||||
Profile Select: Selecteer een Profiel
|
Profile Select: Selecteer een Profiel
|
||||||
|
@ -622,28 +629,29 @@ Profile:
|
||||||
$ selected: $ is geselecteerd
|
$ selected: $ is geselecteerd
|
||||||
Other Channels: Andere Kanalen
|
Other Channels: Andere Kanalen
|
||||||
Subscription List: Abonnementen
|
Subscription List: Abonnementen
|
||||||
|
Profile Filter: Profielfilter
|
||||||
A new blog is now available, $. Click to view more: Een nieuwe blogpost is beschikbaar,
|
A new blog is now available, $. Click to view more: Een nieuwe blogpost is beschikbaar,
|
||||||
$. Klik voor meer informatie
|
$. Klik voor meer informatie
|
||||||
Download From Site: Download van de Website
|
Download From Site: Download van de Website
|
||||||
Version $ is now available! Click for more details: Versie $ is nu beschikbaar! Klik
|
Version $ is now available! Click for more details: Versie $ is nu beschikbaar! Klik
|
||||||
voor meer informatie
|
voor meer informatie
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Deze
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Deze
|
||||||
video is niet beschikbaar vanwege ontbrekende video indelingen. Dit kan gebeuren
|
video is niet beschikbaar vanwege ontbrekende videoformaten. Dit kan gebeuren als
|
||||||
als de video niet in uw land beschikbaar is.
|
de video niet in uw land beschikbaar is.
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Selecteer de video indeling dat wordt gebruikt wanneer u
|
Default Video Format: Selecteer de video indeling die wordt gebruikt wanneer u
|
||||||
een video afspeelt. Dash kan video's afspelen met hogere kwaliteitsinstellingen.
|
een video afspeelt. DASH kan video's afspelen met hogere kwaliteitsinstellingen.
|
||||||
Legacy gaat niet hoger dan 720p maar gebruikt minder bandbreedte. Audio zal
|
Legacy gaat niet hoger dan 720p maar gebruikt minder bandbreedte. Audio zal
|
||||||
alleen het geluid streamen
|
alleen het geluid streamen.
|
||||||
Force Local Backend for Legacy Formats: Dit zal alleen werken wanneer Invidious
|
Force Local Backend for Legacy Formats: Dit zal alleen werken wanneer Invidious
|
||||||
is geselecteerd als de standaard API. Wanneer ingeschakeld zal de lokale API
|
is geselecteerd als de standaard API. Wanneer ingeschakeld zal de lokale API
|
||||||
legacy video indelingen gebruiken in plaats van de video indeling die worden
|
legacy video indelingen gebruiken in plaats van de video indeling die worden
|
||||||
teruggegeven door Invidious. Dit kan helpen wanneer een video die word gestreamed
|
teruggegeven door Invidious. Dit kan helpen wanneer een video die wordt gestreamed
|
||||||
via Invidious niet afspeelt in verband met regio restricties
|
via Invidious niet afspeelt in verband met regio restricties.
|
||||||
Proxy Videos Through Invidious: FreeTube zal verbinden met Invidious en via daar
|
Proxy Videos Through Invidious: FreeTube zal verbinden met Invidious en daar de
|
||||||
de video's downloaden in de plaats van de video's rechstreeks bij YouTube vandaan
|
video's downloaden in de plaats van de video's rechtstreeks bij YouTube vandaan
|
||||||
te halen. Dit overschrijft de ingestelde API voorkeur
|
te halen. Dit overschrijft de ingestelde API voorkeur.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Wanneer ingeschakeld zal FreeTube RSS gebruiken in plaats
|
Fetch Feeds from RSS: Wanneer ingeschakeld zal FreeTube RSS gebruiken in plaats
|
||||||
van de standaard methode om de videolijsten van je abonnementen te verzamelen.
|
van de standaard methode om de videolijsten van je abonnementen te verzamelen.
|
||||||
|
@ -652,15 +660,28 @@ Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: Dit is de Invidious instantie waar FreeTube mee zal verbinden
|
Invidious Instance: Dit is de Invidious instantie waar FreeTube mee zal verbinden
|
||||||
om API calls te maken. Verwijder de momenteel geselecteerd instantie om een
|
om API calls te maken. Verwijder de momenteel geselecteerd instantie om een
|
||||||
lijst van publieke instanties te tonen
|
lijst van publieke instanties te tonen.
|
||||||
Thumbnail Preference: Alle thumbnails in FreeTube zullen worden vervangen met
|
Thumbnail Preference: Alle thumbnails in FreeTube zullen worden vervangen met
|
||||||
een momentopname in plaats van de standaard thumbnail
|
een momentopname uit de video in plaats van de standaard thumbnail.
|
||||||
Fallback to Non-Preferred Backend on Failure: Wanneer het API met voorkeur problemen
|
Fallback to Non-Preferred Backend on Failure: Wanneer het API met voorkeur problemen
|
||||||
heeft dan zal FreeTube automatisch terugvallen op het alternatieve niet-voorkeur
|
geeft dan zal FreeTube automatisch terugvallen op het alternatieve niet-voorkeur
|
||||||
API als deze instelling is ingeschakeld
|
API wanneer deze instelling is ingeschakeld.
|
||||||
Preferred API Backend: Kies de backend die FreeTube gebruikt om data te verzamelen.
|
Preferred API Backend: Kies de backend die FreeTube gebruikt om data te verzamelen.
|
||||||
De lokale API is een ingebouwde extractor. De Invidious API moet worden verbonden
|
De lokale API is een ingebouwde extractor. De Invidious API moet worden verbonden
|
||||||
met een Invidious server.
|
met een Invidious server.
|
||||||
Region for Trending: Met trend regio kan je instellen uit welk land je trending
|
Region for Trending: Met trend regio kan je instellen uit welk land je trending
|
||||||
video's je wil zien. Niet alle weergegeven landen worden ook daadwerkelijk ondersteund
|
video's je wil zien. Niet alle weergegeven landen worden ook daadwerkelijk ondersteund
|
||||||
door YouTube
|
door YouTube.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Wanneer ingeschakeld zal FreeTube automatisch meta bestanden
|
||||||
|
die worden gecreëerd tijdens het afspelen van video's verwijderen zodra de pagina
|
||||||
|
wordt gesloten.
|
||||||
|
Playing Next Video Interval: Volgende video wordt afgespeeld. Klik om te onderbreken.
|
||||||
|
| Volgende video wordt afgespeeld in {nextVideoInterval} seconde. Klik om te onderbreken.
|
||||||
|
| Volgende video wordt afgespeeld in {nextVideoInterval} seconden. Klik om te onderbreken.
|
||||||
|
More: Meer
|
||||||
|
Hashtags have not yet been implemented, try again later: Hastags zijn nog niet geïmplementeerd,
|
||||||
|
probeer het later nogmaals
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Onbekende YouTube url type, de
|
||||||
|
url kan niet worden geopend in de app
|
||||||
|
Open New Window: Open Nieuw Venster
|
||||||
|
|
|
@ -132,13 +132,13 @@ Settings:
|
||||||
End: 'Slutt'
|
End: 'Slutt'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious-førekomst
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious-førekomst
|
||||||
(Standard er https://invidious.snopyta.org)'
|
(Standard er https://invidious.snopyta.org)'
|
||||||
View all Invidious instance information: 'Vis all Invidious-førekomstinformasjon'
|
View all Invidious instance information: 'Vis informasjon om alle Invidious-førekomstar'
|
||||||
Region for Trending: 'Region for På veg opp'
|
Region for Trending: 'Region for På veg opp'
|
||||||
#! List countries
|
#! List countries
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Temainnstillingar'
|
Theme Settings: 'Temainnstillingar'
|
||||||
Match Top Bar with Main Color: ''
|
Match Top Bar with Main Color: 'Match topplinja med hovudfargen.'
|
||||||
Expand Side Bar by Default: ''
|
Expand Side Bar by Default: 'Utvid sidefeltet som forval'
|
||||||
Disable Smooth Scrolling: 'Deaktiver jevn rulling'
|
Disable Smooth Scrolling: 'Deaktiver jevn rulling'
|
||||||
UI Scale: 'Skalering av brukargrensesnitt'
|
UI Scale: 'Skalering av brukargrensesnitt'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
|
@ -155,7 +155,7 @@ Settings:
|
||||||
Indigo: 'Indigo'
|
Indigo: 'Indigo'
|
||||||
Blue: 'Blå'
|
Blue: 'Blå'
|
||||||
Light Blue: 'Lyseblå'
|
Light Blue: 'Lyseblå'
|
||||||
Cyan: ''
|
Cyan: 'Turkis'
|
||||||
Teal: 'Blågrøn'
|
Teal: 'Blågrøn'
|
||||||
Green: 'Grøn'
|
Green: 'Grøn'
|
||||||
Light Green: 'Lysegrøn'
|
Light Green: 'Lysegrøn'
|
||||||
|
@ -167,12 +167,12 @@ Settings:
|
||||||
Secondary Color Theme: 'Sekundærfargetema'
|
Secondary Color Theme: 'Sekundærfargetema'
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: 'Videospelarinnstillingar'
|
Player Settings: 'Videoavspelingsinnstillingar'
|
||||||
Force Local Backend for Legacy Formats: ''
|
Force Local Backend for Legacy Formats: ''
|
||||||
Play Next Video: 'Spel av neste video'
|
Play Next Video: 'Spel av neste video'
|
||||||
Turn on Subtitles by Default: 'Slå på undertekst som standard'
|
Turn on Subtitles by Default: 'Slå på undertekst som standardval'
|
||||||
Autoplay Videos: 'Spel av videoar automatisk'
|
Autoplay Videos: 'Spel av videoar automatisk'
|
||||||
Proxy Videos Through Invidious: ''
|
Proxy Videos Through Invidious: 'Mellomtjen videoar gjennom Invidious'
|
||||||
Autoplay Playlists: 'Spel av spelelister automatisk'
|
Autoplay Playlists: 'Spel av spelelister automatisk'
|
||||||
Enable Theatre Mode by Default: 'Kinomodus som standardval'
|
Enable Theatre Mode by Default: 'Kinomodus som standardval'
|
||||||
Default Volume: 'Standardvolum'
|
Default Volume: 'Standardvolum'
|
||||||
|
@ -197,7 +197,7 @@ Settings:
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Personvernsinnstillingar'
|
Privacy Settings: 'Personvernsinnstillingar'
|
||||||
Remember History: 'Husk historikk'
|
Remember History: 'Husk historikk'
|
||||||
Save Watched Progress: ''
|
Save Watched Progress: 'Lagre framgangsdrift'
|
||||||
Clear Search Cache: 'Slett søkebuffer'
|
Clear Search Cache: 'Slett søkebuffer'
|
||||||
Are you sure you want to clear out your search cache?: 'Er du sikker på at du
|
Are you sure you want to clear out your search cache?: 'Er du sikker på at du
|
||||||
vil slette søkebufferen?'
|
vil slette søkebufferen?'
|
||||||
|
@ -206,24 +206,28 @@ Settings:
|
||||||
Are you sure you want to remove your entire watch history?: 'Er du sikker på at
|
Are you sure you want to remove your entire watch history?: 'Er du sikker på at
|
||||||
du vil fjerne heile sjåarhistorikken din?'
|
du vil fjerne heile sjåarhistorikken din?'
|
||||||
Watch history has been cleared: 'Sjåarhistorikk har blitt fjerna'
|
Watch history has been cleared: 'Sjåarhistorikk har blitt fjerna'
|
||||||
Remove All Subscriptions / Profiles: ''
|
Remove All Subscriptions / Profiles: 'Fjern alle abonnentar / profil'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Er
|
||||||
|
du sikker på at du vil fjerne alle abonnentar og profil? Dette kan ikkje bli
|
||||||
|
ugjort.'
|
||||||
|
Automatically Remove Video Meta Files: Fjern metadata automatisk frå videoar
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Abonnementinnstillingar'
|
Subscription Settings: 'Abonnementinnstillingar'
|
||||||
Hide Videos on Watch: ''
|
Hide Videos on Watch: 'Skjul sette videoar'
|
||||||
Fetch Feeds from RSS: 'Hent feedar frå RSS'
|
Fetch Feeds from RSS: 'Hent feedar frå RSS'
|
||||||
Manage Subscriptions: 'Behandle abonnement'
|
Manage Subscriptions: 'Behandle abonnement'
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Distraction Free Settings: ''
|
Distraction Free Settings: 'Distraksjonsfri-instillingar'
|
||||||
Hide Video Views: 'Gøym videovisingar'
|
Hide Video Views: 'Gøym videovisingar'
|
||||||
Hide Video Likes And Dislikes: ''
|
Hide Video Likes And Dislikes: ''
|
||||||
Hide Channel Subscribers: 'Gøym kanalabonnement'
|
Hide Channel Subscribers: 'Gøym kanalabonnement'
|
||||||
Hide Comment Likes: ''
|
Hide Comment Likes: ''
|
||||||
Hide Recommended Videos: 'Gøym anbefalte videoar'
|
Hide Recommended Videos: 'Gøym anbefalte videoar'
|
||||||
Hide Trending Videos: ''
|
Hide Trending Videos: 'Gøym På veg opp'
|
||||||
Hide Popular Videos: 'Gøym populære videoar'
|
Hide Popular Videos: 'Gøym populære videoar'
|
||||||
Hide Live Chat: 'Gøym direktechat'
|
Hide Live Chat: 'Gøym direktechat'
|
||||||
Hide Active Subscriptions: 'Gøym aktive abonnement'
|
Hide Active Subscriptions: 'Gøym aktive abonnement'
|
||||||
|
Hide Playlists: Skjul spelelister
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: 'Datainnstillingar'
|
Data Settings: 'Datainnstillingar'
|
||||||
Select Import Type: 'Vel importtype'
|
Select Import Type: 'Vel importtype'
|
||||||
|
@ -245,7 +249,8 @@ Settings:
|
||||||
og profila har blitt importert'
|
og profila har blitt importert'
|
||||||
All subscriptions have been successfully imported: 'Alle abonnement har blitt
|
All subscriptions have been successfully imported: 'Alle abonnement har blitt
|
||||||
importert'
|
importert'
|
||||||
One or more subscriptions were unable to be imported: ''
|
One or more subscriptions were unable to be imported: 'Eit eller fleire abonnentar
|
||||||
|
kunne ikkje importerast'
|
||||||
Invalid subscriptions file: 'Ugyldig abonnementfil'
|
Invalid subscriptions file: 'Ugyldig abonnementfil'
|
||||||
This might take a while, please wait: 'Dette kan ta ei stund, venleg vent'
|
This might take a while, please wait: 'Dette kan ta ei stund, venleg vent'
|
||||||
Invalid history file: 'Ugyldig historiefil'
|
Invalid history file: 'Ugyldig historiefil'
|
||||||
|
@ -262,14 +267,14 @@ Settings:
|
||||||
How do I import my subscriptions?: 'Korleis importerer eg abonnementa mine?'
|
How do I import my subscriptions?: 'Korleis importerer eg abonnementa mine?'
|
||||||
Manage Subscriptions: 'Behandle abonnement'
|
Manage Subscriptions: 'Behandle abonnement'
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Proxy Settings: 'Proxyinnstillingar'
|
Proxy Settings: 'Mellomtenarinnstillingar'
|
||||||
Enable Tor / Proxy: 'Aktiver Tor / Proxy'
|
Enable Tor / Proxy: 'Skru på Tor / Mellomtenar'
|
||||||
Proxy Protocol: 'Proxyprotokoll'
|
Proxy Protocol: 'Mellomtenarprotokoll'
|
||||||
Proxy Host: 'Proxyvert'
|
Proxy Host: 'Mellomtenarvert'
|
||||||
Proxy Port Number: 'Proxyportnummer'
|
Proxy Port Number: 'Mellomtenar-portnummer'
|
||||||
Clicking on Test Proxy will send a request to: 'Klikk på testproxyen du vil sende
|
Clicking on Test Proxy will send a request to: 'Klikk på testtenaren du vil sende
|
||||||
ein førespurnad til'
|
ein førespurnad til'
|
||||||
Test Proxy: 'Test proxy'
|
Test Proxy: 'Test mellomtenar'
|
||||||
Your Info: 'Din informasjon'
|
Your Info: 'Din informasjon'
|
||||||
Ip: 'IP-adresse'
|
Ip: 'IP-adresse'
|
||||||
Country: 'Land'
|
Country: 'Land'
|
||||||
|
@ -312,7 +317,7 @@ Profile:
|
||||||
Create New Profile: 'Lag ny profil'
|
Create New Profile: 'Lag ny profil'
|
||||||
Edit Profile: 'Rediger profil'
|
Edit Profile: 'Rediger profil'
|
||||||
Color Picker: 'Fargeveljar'
|
Color Picker: 'Fargeveljar'
|
||||||
Custom Color: ''
|
Custom Color: 'Eigendefinert farge'
|
||||||
Profile Preview: 'Forhandsvising av profil'
|
Profile Preview: 'Forhandsvising av profil'
|
||||||
Create Profile: 'Lag profil'
|
Create Profile: 'Lag profil'
|
||||||
Update Profile: 'Oppdater profil'
|
Update Profile: 'Oppdater profil'
|
||||||
|
@ -325,11 +330,11 @@ Profile:
|
||||||
Your profile name cannot be empty: 'Profilnamnet ditt kan ikkje vere tomt'
|
Your profile name cannot be empty: 'Profilnamnet ditt kan ikkje vere tomt'
|
||||||
Profile has been created: 'Profilet har blitt laga'
|
Profile has been created: 'Profilet har blitt laga'
|
||||||
Profile has been updated: 'Profilet har blitt oppdatert'
|
Profile has been updated: 'Profilet har blitt oppdatert'
|
||||||
Your default profile has been set to $: 'Standardprofilet ditt har blitt satt til
|
Your default profile has been set to $: 'Ditt standardprofil har blitt satt til
|
||||||
$'
|
$'
|
||||||
Removed $ from your profiles: 'Fjerna $ frå profila dine'
|
Removed $ from your profiles: 'Fjerna $ frå profila dine'
|
||||||
Your default profile has been changed to your primary profile: 'Standardprofilet
|
Your default profile has been changed to your primary profile: 'Standardprofilet
|
||||||
ditt har blitt endra til primærprofilet ditt'
|
ditt har blitt endra til ditt hovudprofil'
|
||||||
$ is now the active profile: '$ er no det aktive profilet'
|
$ is now the active profile: '$ er no det aktive profilet'
|
||||||
Subscription List: 'Abonnementliste'
|
Subscription List: 'Abonnementliste'
|
||||||
Other Channels: 'Andre kanalar'
|
Other Channels: 'Andre kanalar'
|
||||||
|
@ -347,6 +352,7 @@ Profile:
|
||||||
du sikker på at du vil fjerne dei valte kanalane? Dette vil ikkje slette kanalane
|
du sikker på at du vil fjerne dei valte kanalane? Dette vil ikkje slette kanalane
|
||||||
frå andre profil.'
|
frå andre profil.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Profilfilter
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Abonnent'
|
Subscriber: 'Abonnent'
|
||||||
Subscribers: 'Abonnentar'
|
Subscribers: 'Abonnentar'
|
||||||
|
@ -354,7 +360,7 @@ Channel:
|
||||||
Unsubscribe: 'Opphev abonnement'
|
Unsubscribe: 'Opphev abonnement'
|
||||||
Channel has been removed from your subscriptions: 'Kanalen har blitt fjerna frå
|
Channel has been removed from your subscriptions: 'Kanalen har blitt fjerna frå
|
||||||
dine abonnement'
|
dine abonnement'
|
||||||
Removed subscription from $ other channel(s): ''
|
Removed subscription from $ other channel(s): 'Fjerna abonnement frå $ kanal(ar)'
|
||||||
Added channel to your subscriptions: 'Lagt til kanal til dine abonnentar'
|
Added channel to your subscriptions: 'Lagt til kanal til dine abonnentar'
|
||||||
Search Channel: 'Søk i kanal'
|
Search Channel: 'Søk i kanal'
|
||||||
Your search results have returned 0 results: 'Søket gitt gav 0 resultat'
|
Your search results have returned 0 results: 'Søket gitt gav 0 resultat'
|
||||||
|
@ -390,8 +396,8 @@ Video:
|
||||||
over lagra videoar'
|
over lagra videoar'
|
||||||
Open in YouTube: 'Opne i YouTube'
|
Open in YouTube: 'Opne i YouTube'
|
||||||
Copy YouTube Link: 'Kopier YouTube-lenke'
|
Copy YouTube Link: 'Kopier YouTube-lenke'
|
||||||
Open YouTube Embedded Player: ''
|
Open YouTube Embedded Player: 'Opne innebygd YouTube-spelar'
|
||||||
Copy YouTube Embedded Player Link: ''
|
Copy YouTube Embedded Player Link: 'Kopier lenke til innebygd YouTube-spelar'
|
||||||
Open in Invidious: 'Opne i Invidious'
|
Open in Invidious: 'Opne i Invidious'
|
||||||
Copy Invidious Link: 'Kopier Invidious-lenke'
|
Copy Invidious Link: 'Kopier Invidious-lenke'
|
||||||
Open Channel in YouTube: 'Opne kanal i YouTube'
|
Open Channel in YouTube: 'Opne kanal i YouTube'
|
||||||
|
@ -402,7 +408,7 @@ Video:
|
||||||
Views: 'Visingar'
|
Views: 'Visingar'
|
||||||
Loop Playlist: 'Gjenta speleliste'
|
Loop Playlist: 'Gjenta speleliste'
|
||||||
Shuffle Playlist: 'Spel av tilfeldig frå spelelista'
|
Shuffle Playlist: 'Spel av tilfeldig frå spelelista'
|
||||||
Reverse Playlist: ''
|
Reverse Playlist: 'Snu spelelista'
|
||||||
Play Next Video: 'Spel av neste video'
|
Play Next Video: 'Spel av neste video'
|
||||||
Play Previous Video: 'Spel av førre video'
|
Play Previous Video: 'Spel av førre video'
|
||||||
# Context is "X People Watching"
|
# Context is "X People Watching"
|
||||||
|
@ -422,7 +428,9 @@ Video:
|
||||||
er avslutta.'
|
er avslutta.'
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: 'Direktechat er
|
Live chat is enabled. Chat messages will appear here once sent.: 'Direktechat er
|
||||||
slått på. Chatmeldingar vil bli vist her når dei er sendt.'
|
slått på. Chatmeldingar vil bli vist her når dei er sendt.'
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Direktechat
|
||||||
|
er førebels ikkje støtta av Invidious-API-et. Ei direkte tilkopling til YouTube
|
||||||
|
er krevja.'
|
||||||
Download Video: 'Last ned video'
|
Download Video: 'Last ned video'
|
||||||
video only: 'berre video'
|
video only: 'berre video'
|
||||||
audio only: 'berre lyd'
|
audio only: 'berre lyd'
|
||||||
|
@ -466,6 +474,7 @@ Video:
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ % sidan'
|
Publicationtemplate: '$ % sidan'
|
||||||
#& Videos
|
#& Videos
|
||||||
|
translated from English: omsett frå englesk
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -477,7 +486,7 @@ Playlist:
|
||||||
#& About
|
#& About
|
||||||
View Full Playlist: 'Vis heile spelelista'
|
View Full Playlist: 'Vis heile spelelista'
|
||||||
Videos: 'Videoar'
|
Videos: 'Videoar'
|
||||||
View: ''
|
View: 'Vising'
|
||||||
Views: 'Visingar'
|
Views: 'Visingar'
|
||||||
Last Updated On: 'Sist oppdatert'
|
Last Updated On: 'Sist oppdatert'
|
||||||
Share Playlist:
|
Share Playlist:
|
||||||
|
@ -551,7 +560,7 @@ Tooltips:
|
||||||
Thumbnail Preference: 'Alle miniatyrbilete i FreeTube vil bli erstatta av eit
|
Thumbnail Preference: 'Alle miniatyrbilete i FreeTube vil bli erstatta av eit
|
||||||
bilete av videoen i staden for standardminiatyrbiletet'
|
bilete av videoen i staden for standardminiatyrbiletet'
|
||||||
Invidious Instance: 'Invidious-førekomsten som FreeTube vil kople til for API-kall.
|
Invidious Instance: 'Invidious-førekomsten som FreeTube vil kople til for API-kall.
|
||||||
Fjern den gjeldene førekomsten for å sjå ei liste over offentlige førekomstar
|
Fjern den gjeldene førekomsten for å sjå ei liste over offentlege førekomstar
|
||||||
å velje mellom'
|
å velje mellom'
|
||||||
Region for Trending: ''
|
Region for Trending: ''
|
||||||
Player Settings:
|
Player Settings:
|
||||||
|
@ -586,3 +595,10 @@ Canceled next video autoplay: 'Avbryt automatisk avspeling av neste video'
|
||||||
|
|
||||||
Yes: 'Ja'
|
Yes: 'Ja'
|
||||||
No: 'Nei'
|
No: 'Nei'
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Ukjent type YouTube-nettadresse,
|
||||||
|
kan ikkje opnast i applikasjonen
|
||||||
|
Playing Next Video Interval: Speler av neste video no. Klikk for å avbryte. | Speler
|
||||||
|
av neste video om {nextVideoInterval} sekund. Klikk for å avbryte. | Speler av neste
|
||||||
|
video om {nextVideoInterval} sekund. Klikk for å avbryte.
|
||||||
|
More: Meir
|
||||||
|
Open New Window: Opne nytt vindauge
|
||||||
|
|
|
@ -172,7 +172,7 @@ Settings:
|
||||||
Default Playback Rate: 'Domyślna szybkość odtwarzania'
|
Default Playback Rate: 'Domyślna szybkość odtwarzania'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Domyślny format filmów'
|
Default Video Format: 'Domyślny format filmów'
|
||||||
Dash Formats: 'Formaty Dash'
|
Dash Formats: 'Formaty DASH'
|
||||||
Legacy Formats: 'Stare formaty'
|
Legacy Formats: 'Stare formaty'
|
||||||
Audio Formats: 'Formaty audio'
|
Audio Formats: 'Formaty audio'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -187,6 +187,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Przerwa przed kolejną pozycją playlisty
|
||||||
|
Next Video Interval: Czas do następnego filmu
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Ustawienia subskrypcji'
|
Subscription Settings: 'Ustawienia subskrypcji'
|
||||||
Hide Videos on Watch: 'Ukrywaj filmy po obejrzeniu'
|
Hide Videos on Watch: 'Ukrywaj filmy po obejrzeniu'
|
||||||
|
@ -243,6 +245,7 @@ Settings:
|
||||||
jesteś pewny/a, że chcesz usunąć wszystkie subskrypcje i profile? Nie będzie
|
jesteś pewny/a, że chcesz usunąć wszystkie subskrypcje i profile? Nie będzie
|
||||||
można tego cofnąć.
|
można tego cofnąć.
|
||||||
Remove All Subscriptions / Profiles: Usuń wszystkie subskrypcje / profile
|
Remove All Subscriptions / Profiles: Usuń wszystkie subskrypcje / profile
|
||||||
|
Automatically Remove Video Meta Files: Samoczynnie usuwaj pliki metadanych filmu
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: Jak mogę zaimportować swoje subskrypcje?
|
How do I import my subscriptions?: Jak mogę zaimportować swoje subskrypcje?
|
||||||
Unknown data key: Nieznany klucz danych
|
Unknown data key: Nieznany klucz danych
|
||||||
|
@ -293,6 +296,7 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Schowaj łapki w górę i w dół
|
Hide Video Likes And Dislikes: Schowaj łapki w górę i w dół
|
||||||
Hide Video Views: Schowaj obejrzenia filmu
|
Hide Video Views: Schowaj obejrzenia filmu
|
||||||
Hide Active Subscriptions: Schowaj aktywne subskrypcje
|
Hide Active Subscriptions: Schowaj aktywne subskrypcje
|
||||||
|
Hide Playlists: Ukryj playlistę
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Aplikacja
|
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
|
musi zostać ponownie uruchomiona, aby zmiany zostały wprowadzone. Uruchomić ponownie
|
||||||
i zastosować zmiany?
|
i zastosować zmiany?
|
||||||
|
@ -354,7 +358,7 @@ About:
|
||||||
Wiki: Wiki
|
Wiki: Wiki
|
||||||
Report an Issue: Zgłoś problem
|
Report an Issue: Zgłoś problem
|
||||||
Channel Rules: Zasady kanału
|
Channel Rules: Zasady kanału
|
||||||
Email: Email
|
Email: E-mail
|
||||||
License: Licencja
|
License: Licencja
|
||||||
Beta: Beta
|
Beta: Beta
|
||||||
Donate: Wesprzyj
|
Donate: Wesprzyj
|
||||||
|
@ -499,6 +503,7 @@ Video:
|
||||||
zachowanych
|
zachowanych
|
||||||
Video has been saved: Film został zachowany
|
Video has been saved: Film został zachowany
|
||||||
Save Video: Zachowaj film
|
Save Video: Zachowaj film
|
||||||
|
translated from English: przetłumaczone z angielskiego
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -526,12 +531,12 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Aktywuj tryb kinowy'
|
Toggle Theatre Mode: 'Aktywuj tryb kinowy'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Zmień formaty wideo'
|
Change Video Formats: 'Zmień formaty wideo'
|
||||||
Use Dash Formats: 'Użyj formatów Dash'
|
Use Dash Formats: 'Użyj formatów DASH'
|
||||||
Use Legacy Formats: 'Użyj starych formatów'
|
Use Legacy Formats: 'Użyj starych formatów'
|
||||||
Use Audio Formats: 'Użyj formatów audio'
|
Use Audio Formats: 'Użyj formatów audio'
|
||||||
Audio formats are not available for this video: Formaty audio nie są dostępne dla
|
Audio formats are not available for this video: Formaty audio nie są dostępne dla
|
||||||
tego filmu
|
tego filmu
|
||||||
Dash formats are not available for this video: Formaty Dash nie są dostępne dla
|
Dash formats are not available for this video: Formaty DASH nie są dostępne dla
|
||||||
tego filmu
|
tego filmu
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Podziel się filmem'
|
Share Video: 'Podziel się filmem'
|
||||||
|
@ -633,6 +638,7 @@ Profile:
|
||||||
$ selected: Wybrano $
|
$ selected: Wybrano $
|
||||||
Other Channels: Inne kanały
|
Other Channels: Inne kanały
|
||||||
Subscription List: Lista subskrypcji
|
Subscription List: Lista subskrypcji
|
||||||
|
Profile Filter: Filtr profilu
|
||||||
The playlist has been reversed: Playlista została odwrócona
|
The playlist has been reversed: Playlista została odwrócona
|
||||||
A new blog is now available, $. Click to view more: Nowy wpis na blogu jest dostępny,
|
A new blog is now available, $. Click to view more: Nowy wpis na blogu jest dostępny,
|
||||||
$. Kliknij, aby zobaczyć więcej
|
$. Kliknij, aby zobaczyć więcej
|
||||||
|
@ -651,24 +657,37 @@ Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Fallback to Non-Preferred Backend on Failure: Po włączeniu, kiedy twój preferowany
|
Fallback to Non-Preferred Backend on Failure: Po włączeniu, kiedy twój preferowany
|
||||||
API napotka problem, FreeTube samoczynnie spróbuje użyć niepreferowanego API
|
API napotka problem, FreeTube samoczynnie spróbuje użyć niepreferowanego API
|
||||||
jako metody zapasowej
|
jako metody zapasowej.
|
||||||
Preferred API Backend: Wybierz back-end , który FreeTube użyje do uzyskiwania
|
Preferred API Backend: Wybierz back-end , który FreeTube użyje do uzyskiwania
|
||||||
danych. Lokalne API jest wbudowanym ekstraktorem. API Invidious wymaga połączenia
|
danych. Lokalne API jest wbudowanym ekstraktorem. API Invidious wymaga połączenia
|
||||||
z serwerem Invidious.
|
z serwerem Invidious.
|
||||||
Region for Trending: Obszar filmów „Na czasie” pozwala wybrać kraj, z którego
|
Region for Trending: Obszar filmów „Na czasie” pozwala wybrać kraj, z którego
|
||||||
chciałbyś zobaczyć filmy zdobywające popularność. Nie wszystkie wyświetlone
|
chciałbyś zobaczyć filmy zdobywające popularność. Nie wszystkie wyświetlone
|
||||||
kraje są obsługiwane przez YouTube
|
kraje są obsługiwane przez YouTube.
|
||||||
Invidious Instance: Serwer Invidious, którym FreeTube będzie się łączył do wywołań
|
Invidious Instance: Serwer Invidious, którym FreeTube będzie się łączył do wywołań
|
||||||
API. Wyczyść pole z serwerem, by zobaczyć listę publicznych serwerów do wyboru
|
API. Wyczyść pole z serwerem, by zobaczyć listę publicznych serwerów do wyboru.
|
||||||
Thumbnail Preference: Wszystkie miniaturki na FreeTube zostaną zastąpione klatką
|
Thumbnail Preference: Wszystkie miniaturki na FreeTube zostaną zastąpione klatką
|
||||||
z filmu zamiast miniaturki domyślnej
|
z filmu zamiast miniaturki domyślnej.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: Działa tylko, kiedy API Invidious jest
|
Force Local Backend for Legacy Formats: Działa tylko, kiedy API Invidious jest
|
||||||
ustawiony jako domyślny. Gdy opcja jest włączona, do odtwarzania starych formatów
|
ustawiony jako domyślny. Gdy opcja jest włączona, do odtwarzania starych formatów
|
||||||
zostanie użyty lokalny API, zamiast API Invidious. Pomaga w przypadkach, gdy
|
zostanie użyty lokalny API, zamiast API Invidious. Pomaga w przypadkach, gdy
|
||||||
filmy zwracane przez Invidious nie odtwarzają się z powodu blokady regionalnej
|
filmy zwracane przez Invidious nie odtwarzają się z powodu blokady regionalnej.
|
||||||
Default Video Format: Ustaw formaty, które zostaną użyte do odtwarzania filmów.
|
Default Video Format: Ustaw formaty, które zostaną użyte do odtwarzania filmów.
|
||||||
Formaty Dash obsługują wyższe rozdzielczości. Stare formaty są ograniczone do
|
Formaty DASH obsługują wyższe rozdzielczości. Stare formaty są ograniczone do
|
||||||
720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk
|
720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk.
|
||||||
Proxy Videos Through Invidious: Będzie dostarczał filmy, łącząc się z Invidious,
|
Proxy Videos Through Invidious: Będzie dostarczał filmy, łącząc się z Invidious,
|
||||||
a nie bezpośrednio z YouTube. Nadpisuje ustawienia API
|
a nie bezpośrednio z YouTube. Nadpisuje ustawienia API.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Po włączeniu FreeTube samoczynnie usunie pliki metadanych
|
||||||
|
utworzone podczas odtwarzania filmu, gdy tylko strona odtwarzania zostanie zamknięta.
|
||||||
|
Playing Next Video Interval: Odtwarzanie kolejnego filmu już za chwilę. Wciśnij aby
|
||||||
|
przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekundę. Wciśnij
|
||||||
|
aby przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekund. Wciśnij
|
||||||
|
aby przerwać.
|
||||||
|
More: Więcej
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Nieznany typ adresu URL YouTube,
|
||||||
|
nie można go otworzyć w aplikacji
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtagi nie zostały jeszcze
|
||||||
|
wprowadzone, spróbuj później
|
||||||
|
Open New Window: Otwórz nowe okno
|
||||||
|
|
|
@ -185,6 +185,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Intervalo do próximo vídeo da lista de reprodução
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Configurações de inscrições'
|
Subscription Settings: 'Configurações de inscrições'
|
||||||
Hide Videos on Watch: 'Esconder vídeos após assisti-los'
|
Hide Videos on Watch: 'Esconder vídeos após assisti-los'
|
||||||
|
@ -241,6 +242,8 @@ Settings:
|
||||||
certeza de que quer apagar todas as inscrições e perfis? Esta ação não pode
|
certeza de que quer apagar todas as inscrições e perfis? Esta ação não pode
|
||||||
ser desfeita.
|
ser desfeita.
|
||||||
Remove All Subscriptions / Profiles: Remover Todas as Inscrições / Perfis
|
Remove All Subscriptions / Profiles: Remover Todas as Inscrições / Perfis
|
||||||
|
Automatically Remove Video Meta Files: Remover automaticamente os metarquivos
|
||||||
|
de vídeo
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Subscriptions have been successfully exported: Inscrições foram exportadas com
|
Subscriptions have been successfully exported: Inscrições foram exportadas com
|
||||||
sucesso
|
sucesso
|
||||||
|
@ -291,6 +294,7 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Ocultar curtidas e desgostos do vídeo
|
Hide Video Likes And Dislikes: Ocultar curtidas e desgostos do vídeo
|
||||||
Hide Video Views: Ocultar Visualizações de Vídeo
|
Hide Video Views: Ocultar Visualizações de Vídeo
|
||||||
Hide Active Subscriptions: Ocultar Inscrições Ativas
|
Hide Active Subscriptions: Ocultar Inscrições Ativas
|
||||||
|
Hide Playlists: Ocultar listas de reprodução
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: O
|
The app needs to restart for changes to take effect. Restart and apply change?: O
|
||||||
aplicativo necessita reiniciar para as mudanças fazerem efeito. Reiniciar e aplicar
|
aplicativo necessita reiniciar para as mudanças fazerem efeito. Reiniciar e aplicar
|
||||||
mudança?
|
mudança?
|
||||||
|
@ -343,7 +347,7 @@ About:
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
GitHub issues: Problemas com o GitHub
|
GitHub issues: Problemas com o GitHub
|
||||||
Report a problem: Reportar um problema
|
Report a problem: Reportar um problema
|
||||||
FAQ: FAQs
|
FAQ: Perguntas frequentes
|
||||||
FreeTube Wiki: Wiki do FreeTube
|
FreeTube Wiki: Wiki do FreeTube
|
||||||
Help: Ajuda
|
Help: Ajuda
|
||||||
GitHub releases: Lançamentos do GitHub
|
GitHub releases: Lançamentos do GitHub
|
||||||
|
@ -458,7 +462,7 @@ Video:
|
||||||
Minute: Minuto
|
Minute: Minuto
|
||||||
Published on: 'Publicado em'
|
Published on: 'Publicado em'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: 'Há $ % atrás'
|
Publicationtemplate: 'Há $ %'
|
||||||
#& Videos
|
#& Videos
|
||||||
Started streaming on: Transmissão iniciada em
|
Started streaming on: Transmissão iniciada em
|
||||||
Streamed on: Transmitido em
|
Streamed on: Transmitido em
|
||||||
|
@ -486,6 +490,7 @@ Video:
|
||||||
vídeos salvos
|
vídeos salvos
|
||||||
Video has been saved: O vídeo foi salvo
|
Video has been saved: O vídeo foi salvo
|
||||||
Save Video: Salvar vídeo
|
Save Video: Salvar vídeo
|
||||||
|
translated from English: Traduzido do inglês
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -518,7 +523,7 @@ Change Format:
|
||||||
Use Audio Formats: 'Usar formato de áudio'
|
Use Audio Formats: 'Usar formato de áudio'
|
||||||
Audio formats are not available for this video: Formatos de áudio não disponíveis
|
Audio formats are not available for this video: Formatos de áudio não disponíveis
|
||||||
para este vídeo
|
para este vídeo
|
||||||
Dash formats are not available for this video: Formatos Dash não disponíveis para
|
Dash formats are not available for this video: Formatos DASH não disponíveis para
|
||||||
este vídeo
|
este vídeo
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Compartilhar vídeo'
|
Share Video: 'Compartilhar vídeo'
|
||||||
|
@ -621,6 +626,7 @@ Profile:
|
||||||
Profile has been updated: Perfil atualizado
|
Profile has been updated: Perfil atualizado
|
||||||
Profile has been created: Perfil criado
|
Profile has been created: Perfil criado
|
||||||
Your profile name cannot be empty: Seu nome de perfil não pode ficar em branco
|
Your profile name cannot be empty: Seu nome de perfil não pode ficar em branco
|
||||||
|
Profile Filter: Filtro de Perfil
|
||||||
Version $ is now available! Click for more details: Versão $ está disponível agora!
|
Version $ is now available! Click for more details: Versão $ está disponível agora!
|
||||||
Clique para mais detalhes
|
Clique para mais detalhes
|
||||||
A new blog is now available, $. Click to view more: Um novo blog está disponível,
|
A new blog is now available, $. Click to view more: Um novo blog está disponível,
|
||||||
|
@ -633,34 +639,42 @@ This video is unavailable because of missing formats. This can happen due to cou
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Quando ativado, o FreeTube usará RSS em vez de seu método
|
Fetch Feeds from RSS: Quando ativado, o FreeTube usará RSS em vez de seu método
|
||||||
padrão para obter o feed de sua assinatura. O RSS é mais rápido e evita o bloqueio
|
padrão para obter o feed de sua assinatura. O RSS é mais rápido e evita bloqueio
|
||||||
de IP, mas não fornece certas informações como duração do vídeo ou status ao
|
de IP, mas não fornece certas informações como duração do vídeo ou status ao
|
||||||
vivo
|
vivo
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Define os formatos usados quando um vídeo é reproduzido.
|
Default Video Format: Define os formatos usados quando um vídeo é reproduzido.
|
||||||
Formatos Dash podem reproduzir qualidades mais altas. Os formatos antigos são
|
Formatos DASH podem reproduzir qualidades mais altas. Os formatos antigos são
|
||||||
limitados a um máximo de 720p, mas usam menos largura de banda. Formatos de
|
limitados a um máximo de 720p, mas usam menos largura de banda. Formatos de
|
||||||
áudio são para transmissões sem vídeo
|
áudio são para transmissões sem vídeo.
|
||||||
Proxy Videos Through Invidious: Conectar-se-á ao Invidious para obter vídeos em
|
Proxy Videos Through Invidious: Conectar-se-á ao Invidious para obter vídeos em
|
||||||
vez de fazer uma conexão direta com o YouTube. Ignora a preferência da API
|
vez de fazer uma conexão direta com o YouTube. Ignora a preferência da API.
|
||||||
Force Local Backend for Legacy Formats: Só funciona quando a API do Invidious
|
Force Local Backend for Legacy Formats: Só funciona quando a API do Invidious
|
||||||
é predefinida. Quando ativada, a API local será executada e usará os formatos
|
é predefinida. Quando ativada, a API local será executada e usará os formatos
|
||||||
antigos retornados por ela em vez dos retornados pelo Invidious. É útil quando
|
antigos retornados por ela em vez dos retornados pelo Invidious. É útil quando
|
||||||
os vídeos retornados pelo Invidious não são reproduzidos devido a restrições
|
os vídeos retornados pelo Invidious não são reproduzidos devido a restrições
|
||||||
de país
|
de país.
|
||||||
General Settings:
|
General Settings:
|
||||||
Region for Trending: A região de tendências permite escolher quais vídeos de tendências
|
Region for Trending: A região de tendências lhe permite de escolher quais vídeos
|
||||||
do país você quer exibir. Nem todos os países exibidos são realmente suportados
|
de tendências do país você quer exibir. Nem todos os países exibidos são realmente
|
||||||
pelo YouTube
|
suportados pelo YouTube.
|
||||||
Invidious Instance: A instância Invidious à qual o FreeTube se conectará para
|
Invidious Instance: A instância Invidious à qual o FreeTube se conectará para
|
||||||
chamadas de API. Limpe a instância atual para ver uma lista de instâncias públicas
|
chamadas de API. Apague a instância atual para ver uma lista de instâncias públicas
|
||||||
para escolher
|
para escolher.
|
||||||
Thumbnail Preference: Todas as miniaturas do FreeTube serão substituídas por um
|
Thumbnail Preference: Todas as miniaturas do FreeTube serão substituídas por um
|
||||||
quadro do vídeo em vez da miniatura padrão
|
quadro do vídeo em vez da miniatura padrão.
|
||||||
Fallback to Non-Preferred Backend on Failure: Quando a sua API preferida tiver
|
Fallback to Non-Preferred Backend on Failure: Quando a sua API preferida tiver
|
||||||
um problema, o FreeTube tentará automaticamente usar sua API não preferida como
|
um problema, o FreeTube tentará usar automaticamente sua API não preferida em
|
||||||
um método substituto quando ativado
|
substituição quando ativado.
|
||||||
Preferred API Backend: Escolha o backend que o FreeTube usa para obter os dados.
|
Preferred API Backend: Escolha o backend que o FreeTube usa para obter os dados.
|
||||||
A API local é um extrator integrado. A API Invidious requer um servidor Invidious
|
A API local é um extrator integrado. A API Invidious requer um servidor Invidious
|
||||||
para se conectar.
|
para se conectar.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Quando ativado, o FreeTube exclui automaticamente os
|
||||||
|
metarquivos criados durante a reprodução do vídeo quando a página de exibição
|
||||||
|
é fechada.
|
||||||
More: Mais
|
More: Mais
|
||||||
|
Playing Next Video Interval: Reproduzindo o próximo vídeo imediatamente. Clique para
|
||||||
|
cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundo(s). Clique
|
||||||
|
para cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundos. Clique
|
||||||
|
para cancelar.
|
||||||
|
|
|
@ -88,11 +88,12 @@ Most Popular: Mais Populares
|
||||||
Playlists: Listas de Reprodução
|
Playlists: Listas de Reprodução
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: As suas Listas de Reprodução
|
Your Playlists: As suas Listas de Reprodução
|
||||||
Playlist Message: Esta página não é indicativa do resultado final. Apenas mostra
|
Playlist Message: Esta página não é indicativa do resultado final. Apenas mostra
|
||||||
vídeos que foram guardados ou marcados como favoritos. Quando estiver pronta,
|
vídeos que foram guardados ou marcados como favoritos. Quando estiver pronta,
|
||||||
todos os vídeos que estiverem aqui serão postos numa lista chamada 'Favoritos'.
|
todos os vídeos que estiverem aqui serão postos numa lista chamada 'Favoritos'.
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: A sua lista está vazia. Carregue no botão com a estrela no canto de um vídeo para o
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Os
|
||||||
guardar aqui.
|
seus vídeos guardados estão vazios. Clique no botão gravar no canto de um vídeo
|
||||||
|
para ser listado aqui
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: Histórico
|
History: Histórico
|
||||||
|
@ -112,7 +113,7 @@ Settings:
|
||||||
Preferido em Caso de Falha
|
Preferido em Caso de Falha
|
||||||
Enable Search Suggestions: Activar Sugestões de Pesquisa
|
Enable Search Suggestions: Activar Sugestões de Pesquisa
|
||||||
Default Landing Page: Página Inicial
|
Default Landing Page: Página Inicial
|
||||||
Locale Preference: Localização
|
Locale Preference: Idioma
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: Sistema de Ligação Favorito
|
Preferred API Backend: Sistema de Ligação Favorito
|
||||||
Local API: API Local
|
Local API: API Local
|
||||||
|
@ -129,9 +130,11 @@ Settings:
|
||||||
End: Fim
|
End: Fim
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': Instância Invidious
|
'Invidious Instance (Default is https://invidious.snopyta.org)': Instância Invidious
|
||||||
(Por omissão é https://invidious.snopyta.org)
|
(Por omissão é https://invidious.snopyta.org)
|
||||||
View all Invidious instance information: Mostrar toda a informação sobre esta instância Invidious
|
View all Invidious instance information: Mostrar toda a informação sobre esta
|
||||||
|
instância Invidious
|
||||||
Region for Trending: Região para as tendências
|
Region for Trending: Região para as tendências
|
||||||
#! List countries
|
#! List countries
|
||||||
|
System Default: Definições do sistema
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: Definições de Tema
|
Theme Settings: Definições de Tema
|
||||||
Match Top Bar with Main Color: Utilizar Cor Principal Para Barra Superior
|
Match Top Bar with Main Color: Utilizar Cor Principal Para Barra Superior
|
||||||
|
@ -178,7 +181,7 @@ Settings:
|
||||||
Default Playback Rate: Velocidade de Reprodução
|
Default Playback Rate: Velocidade de Reprodução
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: Formato de Vídeo
|
Default Video Format: Formato de Vídeo
|
||||||
Dash Formats: Formato Dash
|
Dash Formats: Formatos DASH
|
||||||
Legacy Formats: Formato Antigo
|
Legacy Formats: Formato Antigo
|
||||||
Audio Formats: Formato de Áudio
|
Audio Formats: Formato de Áudio
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -193,6 +196,7 @@ Settings:
|
||||||
1440p: 1440p
|
1440p: 1440p
|
||||||
4k: 4k
|
4k: 4k
|
||||||
8k: 8k
|
8k: 8k
|
||||||
|
Next Video Interval: Próximo intervalo de vídeo
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: Definições de Privacidade
|
Privacy Settings: Definições de Privacidade
|
||||||
Remember History: Lembrar Histórico
|
Remember History: Lembrar Histórico
|
||||||
|
@ -209,6 +213,8 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Tem
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Tem
|
||||||
a certeza de que quer apagar todas as suas subscrições e perfis? Esta acção
|
a certeza de que quer apagar todas as suas subscrições e perfis? Esta acção
|
||||||
não pode ser revertida.
|
não pode ser revertida.
|
||||||
|
Automatically Remove Video Meta Files: Remover automaticamente os metficheiros
|
||||||
|
de vídeo
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: Definições de Subscrições
|
Subscription Settings: Definições de Subscrições
|
||||||
Hide Videos on Watch: Esconder Vídeos Visualisados
|
Hide Videos on Watch: Esconder Vídeos Visualisados
|
||||||
|
@ -230,6 +236,7 @@ Settings:
|
||||||
Hide Popular Videos: Esconder Mais Populares
|
Hide Popular Videos: Esconder Mais Populares
|
||||||
Hide Live Chat: Esconder Chat ao Vivo
|
Hide Live Chat: Esconder Chat ao Vivo
|
||||||
Hide Active Subscriptions: Esconder Subscrições da barra lateral
|
Hide Active Subscriptions: Esconder Subscrições da barra lateral
|
||||||
|
Hide Playlists: Ocultar listas de reprodução
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: Definições de dados
|
Data Settings: Definições de dados
|
||||||
Select Import Type: Escolher tipo de importação
|
Select Import Type: Escolher tipo de importação
|
||||||
|
@ -275,14 +282,16 @@ Settings:
|
||||||
Proxy Protocol: Protocolo do Intermediário
|
Proxy Protocol: Protocolo do Intermediário
|
||||||
Proxy Host: Endereço do Intermediário
|
Proxy Host: Endereço do Intermediário
|
||||||
Proxy Port Number: Porto do Intermediário
|
Proxy Port Number: Porto do Intermediário
|
||||||
Clicking on Test Proxy will send a request to: Carregar em Testar Intermediário irá enviar um pedido a
|
Clicking on Test Proxy will send a request to: Carregar em Testar Intermediário
|
||||||
|
irá enviar um pedido a
|
||||||
Test Proxy: Testar Intermediário
|
Test Proxy: Testar Intermediário
|
||||||
Your Info: A sua Informação
|
Your Info: A sua Informação
|
||||||
Ip: Ip
|
Ip: Ip
|
||||||
Country: País
|
Country: País
|
||||||
Region: Região
|
Region: Região
|
||||||
City: Cidade
|
City: Cidade
|
||||||
Error getting network information. Is your proxy configured properly?: Houve um erro a receber a informação sobre a sua rede. Verifique que o seu intermediário está configurado correctamente.
|
Error getting network information. Is your proxy configured properly?: Erro ao
|
||||||
|
obter informações da rede. O seu proxy está configurado corretamente?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: Sobre
|
About: Sobre
|
||||||
|
@ -293,14 +302,15 @@ About:
|
||||||
Downloads / Changelog: Descarregar / Mudanças
|
Downloads / Changelog: Descarregar / Mudanças
|
||||||
GitHub releases: Lançamentos no GitHub
|
GitHub releases: Lançamentos no GitHub
|
||||||
Help: Ajuda
|
Help: Ajuda
|
||||||
FreeTube Wiki: Wiki do FreeTube
|
FreeTube Wiki: Wiki do FreeTube
|
||||||
FAQ: Perguntas Frequentes
|
FAQ: Perguntas frequentes
|
||||||
Report a problem: Relatar um problema
|
Report a problem: Relatar um problema
|
||||||
GitHub issues: Problemas no GitHub
|
GitHub issues: Problemas no GitHub
|
||||||
Please check for duplicates before posting: É favor verificar se um problema já foi relatado
|
Please check for duplicates before posting: É favor verificar se um problema já
|
||||||
Website: Site
|
foi relatado
|
||||||
|
Website: Saite
|
||||||
Blog: Blogue
|
Blog: Blogue
|
||||||
Email: Email
|
Email: Correio eletrónico
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Chat on Matrix: Chat no Matrix
|
Chat on Matrix: Chat no Matrix
|
||||||
Please read the: Por favor leia as
|
Please read the: Por favor leia as
|
||||||
|
@ -352,6 +362,7 @@ Profile:
|
||||||
os canais em mais nenhum perfil.
|
os canais em mais nenhum perfil.
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
Profile Select: Selecção de perfil
|
Profile Select: Selecção de perfil
|
||||||
|
Profile Filter: Filtro de Perfil
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: Subscritor
|
Subscriber: Subscritor
|
||||||
Subscribers: Subscritores
|
Subscribers: Subscritores
|
||||||
|
@ -399,7 +410,7 @@ Video:
|
||||||
Copy Invidious Link: Copiar Ligação para Invidious
|
Copy Invidious Link: Copiar Ligação para Invidious
|
||||||
Open Channel in YouTube: Abrir Canal no Youtube
|
Open Channel in YouTube: Abrir Canal no Youtube
|
||||||
Copy YouTube Channel Link: Copiar Ligação para Youtube
|
Copy YouTube Channel Link: Copiar Ligação para Youtube
|
||||||
Open Channel in Invidious: Abrir Calan no Invidious
|
Open Channel in Invidious: Abrir Canal no Invidious
|
||||||
Copy Invidious Channel Link: Copiar Ligação para Invidious
|
Copy Invidious Channel Link: Copiar Ligação para Invidious
|
||||||
View: Visualização
|
View: Visualização
|
||||||
Views: Visualizações
|
Views: Visualizações
|
||||||
|
@ -459,7 +470,7 @@ Video:
|
||||||
Year: Ano
|
Year: Ano
|
||||||
Years: Anos
|
Years: Anos
|
||||||
Ago: Há
|
Ago: Há
|
||||||
Upcoming: Estreia em breve
|
Upcoming: Futuramente em
|
||||||
Published on: Publicado a
|
Published on: Publicado a
|
||||||
Streamed on: Transmitido a
|
Streamed on: Transmitido a
|
||||||
Started streaming on: Transmissão iniciada a
|
Started streaming on: Transmissão iniciada a
|
||||||
|
@ -471,6 +482,7 @@ Video:
|
||||||
Reverse Playlist: Inverter lista de reprodução
|
Reverse Playlist: Inverter lista de reprodução
|
||||||
Shuffle Playlist: Baralhar lista de reprodução
|
Shuffle Playlist: Baralhar lista de reprodução
|
||||||
Loop Playlist: Repetir lista de reprodução
|
Loop Playlist: Repetir lista de reprodução
|
||||||
|
translated from English: Traduzido do inglês
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -498,10 +510,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: Alternar Modo Cinema
|
Toggle Theatre Mode: Alternar Modo Cinema
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: Mudar Formato do Vídeo
|
Change Video Formats: Mudar Formato do Vídeo
|
||||||
Use Dash Formats: Utilizar Formato Dash
|
Use Dash Formats: Usar formatos DASH
|
||||||
Use Legacy Formats: Utilizar Formato Antigo
|
Use Legacy Formats: Utilizar Formato Antigo
|
||||||
Use Audio Formats: Utilizar Formatos de Áudio
|
Use Audio Formats: Utilizar Formatos de Áudio
|
||||||
Dash formats are not available for this video: Formato DASH não disponível para
|
Dash formats are not available for this video: Formatos DASH não disponíveis para
|
||||||
este vídeo
|
este vídeo
|
||||||
Audio formats are not available for this video: Formato áudio não disponível para
|
Audio formats are not available for this video: Formato áudio não disponível para
|
||||||
este vídeo
|
este vídeo
|
||||||
|
@ -549,39 +561,43 @@ Up Next: A Seguir
|
||||||
#Tooltips
|
#Tooltips
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Preferred API Backend: O sistema que FreeTube utilizará para se ligar ao Youtube.
|
Preferred API Backend: Escolha o backend que o FreeTube usa para obter os dados.
|
||||||
O API local existe como parte do FreeTube e faz ligações directas ao Youtube.
|
O API local é um extrator incorporado. A API Invidious requer um servidor Invidious
|
||||||
O API Invidious necessita de uma ligação a um servidor Invidious
|
para se conectar.
|
||||||
Fallback to Non-Preferred Backend on Failure: Quando o seu sistema preferido encontrar
|
Fallback to Non-Preferred Backend on Failure: Quando a sua API preferida tiver
|
||||||
um erro, o FreeTube vai automaticamente tentar usar o sistema não preferido
|
um problema, o FreeTube tentará usar automaticamente a sua API não preferida
|
||||||
como uma salvaguarda, caso esta opção esteja activada
|
em substituição quando ativado.
|
||||||
Thumbnail Preference: Todas as antevisões dos vídeos no FreeTube vão ser substituidas
|
Thumbnail Preference: Todas as miniaturas do FreeTube serão substituídas por um
|
||||||
por um fotograma do vídeo
|
quadro do vídeo em vez da miniatura padrão.
|
||||||
Invidious Instance: A instância Invidious à qual o FreeTube irá ligar-se para
|
Invidious Instance: A instância Invidious à qual o FreeTube se conectará para
|
||||||
ir buscar dados. Apague o que está escrito para ver uma lista de instâncias
|
chamadas de API. Apague a instância atual para ver uma lista de instâncias públicas
|
||||||
públicas disponíveis
|
para escolher.
|
||||||
Region for Trending: A região permite-lhe escolher de qual país quer que seja
|
Region for Trending: A região de tendências permite-lhe de escolher quais vídeos
|
||||||
utilizado pela secção das tendências. Nem todos os países apresentados estão
|
de tendências do país que quer exibir. Nem todos os países exibidos são realmente
|
||||||
de facto a funcionar devido ao Youtube
|
suportados pelo YouTube.
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: Apenas funciona quando o API Invidious
|
Force Local Backend for Legacy Formats: Só funciona quando a API do Invidious
|
||||||
é o seu sistema preferido. Quando activado, o API local irá ser usado para ir
|
é predefinida. Quando ativada, a API local será executada e usará os formatos
|
||||||
buscar os formatos antigos, invés daqueles devolvidos pelo Invidious. Útil quando
|
antigos retornados por ela em vez dos retornados pelo Invidious. É útil quando
|
||||||
os vídeos dados pelo Invidious não funcionam devido a restrições geográficas
|
os vídeos retornados pelo Invidious não são reproduzidos devido a restrições
|
||||||
Proxy Videos Through Invidious: O FreeTube irá ligar-se ao Invidious para apresentar
|
de país.
|
||||||
vídeos em vez de fazer uma ligação directa ao Youtube. Ignora a escolha de sistema
|
Proxy Videos Through Invidious: Conectar-se-á ao Invidious para obter vídeos em
|
||||||
preferido
|
vez de fazer uma conexão direta com o YouTube. Ignora a preferência da API.
|
||||||
Default Video Format: Define o formato utilizado quando um vídeo é reproduzido.
|
Default Video Format: Define os formatos usados quando um vídeo é reproduzido.
|
||||||
O formato DASH consegue reproduzir melhor qualidades. O formato antigo está
|
Formatos DASH podem reproduzir qualidades mais altas. Os formatos antigos são
|
||||||
limitado a 720p, mas utiliza menos rede. Formatos áudio são para transmissões
|
limitados a um máximo de 720p, mas usam menos largura de banda. Formatos de
|
||||||
sem vídeo
|
áudio são para transmissões sem vídeo.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Quando activado, o FreeTube irá buscar as suas subscrições
|
Fetch Feeds from RSS: Quando ativado, o FreeTube usará RSS em vez do método padrão
|
||||||
através de RSS em vez do método normal. RSS é mais rápido e previne ser limitado
|
dele para obter o feed da sua assinatura. O RSS é mais rápido e evita bloqueio
|
||||||
por fazer demasiadas ligações ao Youtube, mas não disponibiliza informação tal
|
de IP, mas não fornece certas informações como duração do vídeo ou estado ao
|
||||||
como a duração de um vídeo ou se este é ao vivo
|
vivo
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Quando ativado, o FreeTube exclui automaticamente os
|
||||||
|
metficheiros criados durante a reprodução do vídeo quando a página de exibição
|
||||||
|
é fechada.
|
||||||
Local API Error (Click to copy): API local encontrou um erro (Clique para copiar)
|
Local API Error (Click to copy): API local encontrou um erro (Clique para copiar)
|
||||||
Invidious API Error (Click to copy): API Invidious encontrou um erro (Clique para
|
Invidious API Error (Click to copy): API Invidious encontrou um erro (Clique para
|
||||||
copiar)
|
copiar)
|
||||||
|
@ -606,3 +622,13 @@ Canceled next video autoplay: Reprodução automática cancelada
|
||||||
Yes: Sim
|
Yes: Sim
|
||||||
No: Não
|
No: Não
|
||||||
The playlist has been reversed: A lista de reprodução foi invertida
|
The playlist has been reversed: A lista de reprodução foi invertida
|
||||||
|
Playing Next Video Interval: Reproduzindo o próximo vídeo imediatamente. Clique para
|
||||||
|
cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundo(s). Clique
|
||||||
|
para cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundos. Clique
|
||||||
|
para cancelar.
|
||||||
|
More: Mais
|
||||||
|
Hashtags have not yet been implemented, try again later: Os Hashtags ainda não foram
|
||||||
|
implementados, tente novamente mais tarde
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Tipo de url do YouTube desconhecido,
|
||||||
|
não pode ser aberto numa app
|
||||||
|
Open New Window: Abrir uma nova janela
|
||||||
|
|
|
@ -289,6 +289,10 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: 'Notícias recentes sobre FreeTube'
|
Latest FreeTube News: 'Notícias recentes sobre FreeTube'
|
||||||
|
|
||||||
|
FAQ: Perguntas frequentes
|
||||||
|
Blog: Blogue
|
||||||
|
Website: Sítio Web
|
||||||
|
Email: Correio eletrónico
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: 'Selecção de perfil'
|
Profile Select: 'Selecção de perfil'
|
||||||
All Channels: 'Todos os Canais'
|
All Channels: 'Todos os Canais'
|
||||||
|
|
|
@ -189,9 +189,10 @@ Settings:
|
||||||
Remember History: ''
|
Remember History: ''
|
||||||
Save Watched Progress: ''
|
Save Watched Progress: ''
|
||||||
Clear Search Cache: ''
|
Clear Search Cache: ''
|
||||||
Are you sure you want to clear out your search cache?: ''
|
Are you sure you want to clear out your search cache?: 'Sunteti siguri ca doriti
|
||||||
Search cache has been cleared: ''
|
sa stergeti chache-ul cautarilor ?'
|
||||||
Remove Watch History: ''
|
Search cache has been cleared: 'Cache-ul cautarilor a fost sters'
|
||||||
|
Remove Watch History: 'Sterge Istoricul Vizualizarilor'
|
||||||
Are you sure you want to remove your entire watch history?: ''
|
Are you sure you want to remove your entire watch history?: ''
|
||||||
Watch history has been cleared: ''
|
Watch history has been cleared: ''
|
||||||
Remove All Subscriptions / Profiles: ''
|
Remove All Subscriptions / Profiles: ''
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
FreeTube: 'FreeTube'
|
FreeTube: 'FreeTube'
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
Эта часть приложения еще не готова. Вернитесь позже, когда будет достигнут прогресс.
|
Эта часть приложения ещё не готова. Вернитесь позже, когда будет достигнут прогресс.
|
||||||
|
|
||||||
# Webkit Menu Bar
|
# Webkit Menu Bar
|
||||||
File: 'Файл'
|
File: 'Файл'
|
||||||
|
@ -127,21 +127,21 @@ Settings:
|
||||||
View all Invidious instance information: Показать все доступные экземпляры Invidious
|
View all Invidious instance information: Показать все доступные экземпляры Invidious
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Настройки темы'
|
Theme Settings: 'Настройки темы'
|
||||||
Match Top Bar with Main Color: 'Совместить верхнюю панель с основным цветом'
|
Match Top Bar with Main Color: 'Верхняя панель основного цвета'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: 'Базовая тема'
|
Base Theme: 'Базовая тема'
|
||||||
Black: 'Чёрная'
|
Black: 'Чёрная'
|
||||||
Dark: 'Тёмная'
|
Dark: 'Тёмная'
|
||||||
Light: 'Светлая'
|
Light: 'Светлая'
|
||||||
Main Color Theme:
|
Main Color Theme:
|
||||||
Main Color Theme: 'Основная цветовая тема'
|
Main Color Theme: 'Тема основного цвета'
|
||||||
Red: 'Красная'
|
Red: 'Красная'
|
||||||
Pink: 'Розовая'
|
Pink: 'Розовая'
|
||||||
Purple: 'Фиолетовая'
|
Purple: 'Фиолетовая'
|
||||||
Deep Purple: 'Тёмно-фиолетовая'
|
Deep Purple: 'Тёмно-фиолетовая'
|
||||||
Indigo: 'Индиго'
|
Indigo: 'Индиго'
|
||||||
Blue: 'Синия'
|
Blue: 'Синяя'
|
||||||
Light Blue: 'Светло-синия'
|
Light Blue: 'Светло-синяя'
|
||||||
Cyan: 'Голубая'
|
Cyan: 'Голубая'
|
||||||
Teal: 'Бирюзовая'
|
Teal: 'Бирюзовая'
|
||||||
Green: 'Зелёная'
|
Green: 'Зелёная'
|
||||||
|
@ -186,6 +186,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Задержка перед автовоспроизведением
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Настройки подписки'
|
Subscription Settings: 'Настройки подписки'
|
||||||
Hide Videos on Watch: 'Скрыть видео после просмотра'
|
Hide Videos on Watch: 'Скрыть видео после просмотра'
|
||||||
|
@ -241,6 +242,7 @@ Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Вы
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Вы
|
||||||
уверены, что хотите удалить все подписки и профили? Это нельзя отменить.
|
уверены, что хотите удалить все подписки и профили? Это нельзя отменить.
|
||||||
Remove All Subscriptions / Profiles: Удалить все подписки/профили
|
Remove All Subscriptions / Profiles: Удалить все подписки/профили
|
||||||
|
Automatically Remove Video Meta Files: Автоматическое удаление мета-файлов видео
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: Как мне импортировать свои подписки?
|
How do I import my subscriptions?: Как мне импортировать свои подписки?
|
||||||
Unknown data key: Неизвестный ключ данных
|
Unknown data key: Неизвестный ключ данных
|
||||||
|
@ -290,6 +292,7 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео
|
Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео
|
||||||
Hide Video Views: Скрыть просмотры видео
|
Hide Video Views: Скрыть просмотры видео
|
||||||
Hide Active Subscriptions: Скрыть активные подписки
|
Hide Active Subscriptions: Скрыть активные подписки
|
||||||
|
Hide Playlists: Скрыть плейлисты
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Чтобы
|
The app needs to restart for changes to take effect. Restart and apply change?: Чтобы
|
||||||
изменения вступили в силу, необходимо перезапустить приложение. Перезапустить
|
изменения вступили в силу, необходимо перезапустить приложение. Перезапустить
|
||||||
и применить изменения?
|
и применить изменения?
|
||||||
|
@ -297,7 +300,7 @@ Settings:
|
||||||
Error getting network information. Is your proxy configured properly?: Ошибка
|
Error getting network information. Is your proxy configured properly?: Ошибка
|
||||||
при получении информации о сети. Вы уверены, что прокси настроен правильно?
|
при получении информации о сети. Вы уверены, что прокси настроен правильно?
|
||||||
Your Info: Ваша информация
|
Your Info: Ваша информация
|
||||||
Clicking on Test Proxy will send a request to: Нажмите на rкнопку "Протестировать
|
Clicking on Test Proxy will send a request to: Нажмите на кнопку "Протестировать
|
||||||
соединение", чтобы отправить запрос на
|
соединение", чтобы отправить запрос на
|
||||||
Test Proxy: Протестировать соединение
|
Test Proxy: Протестировать соединение
|
||||||
Proxy Port Number: Порт прокси-сервера
|
Proxy Port Number: Порт прокси-сервера
|
||||||
|
@ -352,7 +355,7 @@ About:
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: Электронная почта
|
Email: Электронная почта
|
||||||
Blog: Блог
|
Blog: Блог
|
||||||
Website: Сайт
|
Website: Веб-сайт
|
||||||
Report a problem: Сообщить о проблеме
|
Report a problem: Сообщить о проблеме
|
||||||
FAQ: FAQ
|
FAQ: FAQ
|
||||||
FreeTube Wiki: Вики-сайт FreeTube
|
FreeTube Wiki: Вики-сайт FreeTube
|
||||||
|
@ -394,7 +397,7 @@ Channel:
|
||||||
About: 'О канале'
|
About: 'О канале'
|
||||||
Channel Description: 'Описание канала'
|
Channel Description: 'Описание канала'
|
||||||
Featured Channels: 'Избранные каналы'
|
Featured Channels: 'Избранные каналы'
|
||||||
Added channel to your subscriptions: Канаь добавлен в ваши подписки
|
Added channel to your subscriptions: Канал добавлен в ваши подписки
|
||||||
Removed subscription from $ other channel(s): Подписка удалена с $ другого(их) канала(ов)
|
Removed subscription from $ other channel(s): Подписка удалена с $ другого(их) канала(ов)
|
||||||
Channel has been removed from your subscriptions: Канал был удалён из ваших подписок
|
Channel has been removed from your subscriptions: Канал был удалён из ваших подписок
|
||||||
Video:
|
Video:
|
||||||
|
@ -464,9 +467,9 @@ Video:
|
||||||
Autoplay: Автовоспроизведение
|
Autoplay: Автовоспроизведение
|
||||||
Play Previous Video: Воспроизвести предыдущее видео
|
Play Previous Video: Воспроизвести предыдущее видео
|
||||||
Play Next Video: Воспроизводить следующее видео
|
Play Next Video: Воспроизводить следующее видео
|
||||||
Reverse Playlist: Обратный плейлист
|
Reverse Playlist: Обратный порядок плейлиста
|
||||||
Shuffle Playlist: Перемешанный плейлист
|
Shuffle Playlist: Перемешать плейлист
|
||||||
Loop Playlist: Циклический плейлист
|
Loop Playlist: Зациклить плейлист
|
||||||
Starting soon, please refresh the page to check again: Скоро начнётся, обновите
|
Starting soon, please refresh the page to check again: Скоро начнётся, обновите
|
||||||
страницу, чтобы проверить ещё раз
|
страницу, чтобы проверить ещё раз
|
||||||
Audio:
|
Audio:
|
||||||
|
@ -483,9 +486,10 @@ Video:
|
||||||
Open Channel in YouTube: Открыть канал в YouTube
|
Open Channel in YouTube: Открыть канал в YouTube
|
||||||
Streamed on: Транслировано
|
Streamed on: Транслировано
|
||||||
Started streaming on: Трансляция начата на
|
Started streaming on: Трансляция начата на
|
||||||
Video has been removed from your saved list: Видео было удалено из списка сохраненных
|
Video has been removed from your saved list: Видео было удалено из списка сохранённых
|
||||||
Video has been saved: Видео было добавлено в сохраненные
|
Video has been saved: Видео было добавлено в сохранённые
|
||||||
Save Video: Добавить видео в сохраненные
|
Save Video: Добавить видео в сохранённые
|
||||||
|
translated from English: переведен с Английского
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -566,17 +570,17 @@ Invidious API Error (Click to copy): 'Ошибка invidious API (Нажмите
|
||||||
Falling back to Invidious API: 'Возврат к Invidious API'
|
Falling back to Invidious API: 'Возврат к Invidious API'
|
||||||
Falling back to the local API: 'Возврат к локальному API'
|
Falling back to the local API: 'Возврат к локальному API'
|
||||||
Subscriptions have not yet been implemented: 'Подписки ещё не реализованы'
|
Subscriptions have not yet been implemented: 'Подписки ещё не реализованы'
|
||||||
Loop is now disabled: 'Цикл теперь отключён'
|
Loop is now disabled: 'Зацикливание теперь отключено'
|
||||||
Loop is now enabled: 'Цикл теперь включён'
|
Loop is now enabled: 'Зацикливание теперь включено'
|
||||||
Shuffle is now disabled: 'Перемешивание теперь отключено'
|
Shuffle is now disabled: 'Перемешивание теперь отключено'
|
||||||
Shuffle is now enabled: 'Перемешивание теперь включено'
|
Shuffle is now enabled: 'Перемешивание теперь включено'
|
||||||
Playing Next Video: 'Воспроизвести следующее видео'
|
Playing Next Video: 'Воспроизведение следующего видео'
|
||||||
Playing Previous Video: 'Воспроизвести предыдущее видео'
|
Playing Previous Video: 'Воспроизведение предыдущего видео'
|
||||||
Playing next video in 5 seconds. Click to cancel: 'Воспроизведение следующего видео
|
Playing next video in 5 seconds. Click to cancel: 'Воспроизведение следующего видео
|
||||||
через 5 секунд. Нажмите, чтобы отменить.'
|
через 5 секунд. Нажмите, чтобы отменить.'
|
||||||
Canceled next video autoplay: 'Отменено автовоспроизведение следующего видео'
|
Canceled next video autoplay: 'Отменено автовоспроизведение следующего видео'
|
||||||
'The playlist has ended. Enable loop to continue playing': 'Плейлист закончился.
|
'The playlist has ended. Enable loop to continue playing': 'Плейлист закончился.
|
||||||
Включите цикл, чтобы продолжить воспроизведение'
|
Включите зацикливание, чтобы продолжить воспроизведение'
|
||||||
|
|
||||||
Yes: 'Да'
|
Yes: 'Да'
|
||||||
No: 'Нет'
|
No: 'Нет'
|
||||||
|
@ -617,11 +621,12 @@ Profile:
|
||||||
No channel(s) have been selected: Канал(ы) не были выбраны
|
No channel(s) have been selected: Канал(ы) не были выбраны
|
||||||
Add Selected To Profile: Добавить выбранное в профиль
|
Add Selected To Profile: Добавить выбранное в профиль
|
||||||
Delete Selected: Удалить выбранное
|
Delete Selected: Удалить выбранное
|
||||||
Select None: Выбрать ничего
|
Select None: Не выбрано
|
||||||
Select All: Выбрать все
|
Select All: Выбрать все
|
||||||
$ selected: $ выбрано
|
$ selected: $ выбрано
|
||||||
Other Channels: Другие каналы
|
Other Channels: Другие каналы
|
||||||
Subscription List: Список подписок
|
Subscription List: Список подписок
|
||||||
|
Profile Filter: Фильтры профилей
|
||||||
The playlist has been reversed: Плейлист был перевёрнут
|
The playlist has been reversed: Плейлист был перевёрнут
|
||||||
A new blog is now available, $. Click to view more: Теперь доступен новый блог $.
|
A new blog is now available, $. Click to view more: Теперь доступен новый блог $.
|
||||||
Нажмите, чтобы увидеть больше
|
Нажмите, чтобы увидеть больше
|
||||||
|
@ -629,7 +634,7 @@ Download From Site: Скачать с сайта
|
||||||
Version $ is now available! Click for more details: Версия $ уже доступна! Нажмите,
|
Version $ is now available! Click for more details: Версия $ уже доступна! Нажмите,
|
||||||
чтобы узнать больше
|
чтобы узнать больше
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Это
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: Это
|
||||||
видео недоступно из-за отсутствия форматов. Это может произойти из-за недоступности
|
видео недоступно из-за отсутствия форматов. Это может произойти из-за ограничений
|
||||||
страны.
|
страны.
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
|
@ -644,14 +649,13 @@ Tooltips:
|
||||||
Preferred API Backend: Выберите серверную часть, которую FreeTube использует для
|
Preferred API Backend: Выберите серверную часть, которую FreeTube использует для
|
||||||
получения данных. Локальный API - это встроенный экстрактор. Invidious API требует
|
получения данных. Локальный API - это встроенный экстрактор. Invidious API требует
|
||||||
подключения к Invidious серверу.
|
подключения к Invidious серверу.
|
||||||
Region for Trending: Область тенденций позволяет вам выбрать популярные видео
|
Region for Trending: Регион трендов позволяет вам выбрать популярные видео из
|
||||||
из страны, которые вы хотите отображать. Не все отображаемые страны на самом
|
выбранной страны. Не все отображаемые страны поддерживаются YouTube
|
||||||
деле поддерживаются YouTube
|
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет использовать
|
Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет получать вашу
|
||||||
RSS вместо метода по умолчанию для получения вашего канала подписки. RSS работает
|
ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает
|
||||||
быстрее и предотвращает блокировку IP, но не предоставляет определенную информацию,
|
блокировку IP, но не предоставляет определенную информацию, такую как продолжительность
|
||||||
такую как продолжительность видео или статус в реальном времени
|
видео или сведения о том, транслируется ли видео в реальном времени
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Установите форматы, используемые при воспроизведении видео.
|
Default Video Format: Установите форматы, используемые при воспроизведении видео.
|
||||||
Формат dash может воспроизводить более высокое качество. Устаревшие форматы
|
Формат dash может воспроизводить более высокое качество. Устаревшие форматы
|
||||||
|
@ -664,3 +668,17 @@ Tooltips:
|
||||||
устаревшие форматы, возвращаемые им, вместо форматов, возвращаемых Invidious.
|
устаревшие форматы, возвращаемые им, вместо форматов, возвращаемых Invidious.
|
||||||
Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений
|
Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений
|
||||||
страны
|
страны
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Если этот параметр включен, FreeTube автоматически удаляет
|
||||||
|
метафайлы, созданные во время воспроизведения видео, когда страница просмотра
|
||||||
|
закрывается.
|
||||||
|
More: Больше
|
||||||
|
Playing Next Video Interval: Воспроизведение следующего видео без задержки. Нажмите
|
||||||
|
для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите
|
||||||
|
для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите
|
||||||
|
для отмены.
|
||||||
|
Hashtags have not yet been implemented, try again later: Хештеги еще не реализованы,
|
||||||
|
попробуйте позже
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Неизвестный тип URL-адреса YouTube,
|
||||||
|
не может быть открыт в приложении
|
||||||
|
Open New Window: Открыть новое окно
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Put the name of your locale in the same language
|
# Put the name of your locale in the same language
|
||||||
Locale Name: 'English (US)'
|
Locale Name: 'ᱥᱟᱱᱛᱟᱲᱤ'
|
||||||
FreeTube: 'FreeTube'
|
FreeTube: 'FreeTube'
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
|
|
|
@ -105,7 +105,7 @@ Settings:
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: 'Preferované API Backend'
|
Preferred API Backend: 'Preferované API Backend'
|
||||||
Local API: 'Lokálne API'
|
Local API: 'Lokálne API'
|
||||||
Invidious API: 'Invidious API'
|
Invidious API: 'API služby Invidious'
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: 'Typ zobrazenia videa'
|
Video View Type: 'Typ zobrazenia videa'
|
||||||
Grid: 'Mriežka'
|
Grid: 'Mriežka'
|
||||||
|
@ -184,6 +184,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Čas spustenia nasledujúceho videa v zozname videí
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Nastavenia Odberov'
|
Subscription Settings: 'Nastavenia Odberov'
|
||||||
Hide Videos on Watch: 'Skryť videá po zhliadnutí'
|
Hide Videos on Watch: 'Skryť videá po zhliadnutí'
|
||||||
|
@ -272,6 +273,7 @@ Settings:
|
||||||
Hide Video Views: Skryť počet zhliadnutí
|
Hide Video Views: Skryť počet zhliadnutí
|
||||||
Distraction Free Settings: Nastavenia nerušenia
|
Distraction Free Settings: Nastavenia nerušenia
|
||||||
Hide Active Subscriptions: Skryť aktívne odbery
|
Hide Active Subscriptions: Skryť aktívne odbery
|
||||||
|
Hide Playlists: Skryť zoznamy videí
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Naozaj
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Naozaj
|
||||||
chcete odstrániť všetky odbery a profily? Toto je nenávratná akcia.
|
chcete odstrániť všetky odbery a profily? Toto je nenávratná akcia.
|
||||||
|
@ -356,7 +358,7 @@ About:
|
||||||
room rules: pravidlá miestností
|
room rules: pravidlá miestností
|
||||||
Please read the: Prečítajte si
|
Please read the: Prečítajte si
|
||||||
Chat on Matrix: Napíšte nám na Matrix-e
|
Chat on Matrix: Napíšte nám na Matrix-e
|
||||||
Mastodon: Mastodon
|
Mastodon: Komunikačná platforma Mastodon
|
||||||
Email: Elektronická pošta
|
Email: Elektronická pošta
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
Website: Webstránka
|
Website: Webstránka
|
||||||
|
@ -649,9 +651,14 @@ Profile:
|
||||||
Profile Manager: Správca profilov
|
Profile Manager: Správca profilov
|
||||||
All Channels: Všetky kanály
|
All Channels: Všetky kanály
|
||||||
Profile Select: Vyberte profil
|
Profile Select: Vyberte profil
|
||||||
|
Profile Filter: Filter Profilov
|
||||||
A new blog is now available, $. Click to view more: Nový príspevok na blogu je k dispozícií,
|
A new blog is now available, $. Click to view more: Nový príspevok na blogu je k dispozícií,
|
||||||
$. Klikni pre viac informácií
|
$. Klikni pre viac informácií
|
||||||
Download From Site: Stiahnuť zo stránky
|
Download From Site: Stiahnuť zo stránky
|
||||||
Version $ is now available! Click for more details: Je k dispozícií verzia $ ! Klikni
|
Version $ is now available! Click for more details: Je k dispozícií verzia $ ! Klikni
|
||||||
pre viac informácií
|
pre viac informácií
|
||||||
Locale Name: Slovenčina
|
Locale Name: Slovenčina
|
||||||
|
Playing Next Video Interval: Prehrávanie ďalšieho videa za chvíľu. Kliknutím zrušíte.
|
||||||
|
| Prehráva sa ďalšie video o {nextVideoInterval} sekundu. Kliknutím zrušíte. | Prehráva
|
||||||
|
sa ďalšie video o {nextVideoInterval} sekúnd. Kliknutím zrušíte.
|
||||||
|
More: Viac
|
||||||
|
|
|
@ -30,8 +30,8 @@ Close: 'Zapri'
|
||||||
Back: 'Nazaj'
|
Back: 'Nazaj'
|
||||||
Forward: 'Naprej'
|
Forward: 'Naprej'
|
||||||
|
|
||||||
Version $ is now available! Click for more details: 'Na voljo je različica $!·· ··
|
Version $ is now available! Click for more details: 'Na voljo je različica $!· Za
|
||||||
Za več podrobnosti kliknite tukaj'
|
več podrobnosti kliknite tukaj'
|
||||||
Download From Site: 'Prenesi iz spletne strani'
|
Download From Site: 'Prenesi iz spletne strani'
|
||||||
A new blog is now available, $. Click to view more: 'Na voljo je nov članek, $. Kliknite
|
A new blog is now available, $. Click to view more: 'Na voljo je nov članek, $. Kliknite
|
||||||
tukaj, če ga želite prebrati'
|
tukaj, če ga želite prebrati'
|
||||||
|
@ -71,6 +71,7 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Pridobivamo rezultate. Prosimo, počakajte'
|
Fetching results. Please wait: 'Pridobivamo rezultate. Prosimo, počakajte'
|
||||||
Fetch more results: 'Pridobi več rezultatov'
|
Fetch more results: 'Pridobi več rezultatov'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: Nič več rezultatov
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Naročnine'
|
Subscriptions: 'Naročnine'
|
||||||
|
@ -81,14 +82,21 @@ Subscriptions:
|
||||||
'Getting Subscriptions. Please wait.': 'Pridobivamo naročnine. Prosimo, počakajte.'
|
'Getting Subscriptions. Please wait.': 'Pridobivamo naročnine. Prosimo, počakajte.'
|
||||||
Refresh Subscriptions: 'Osveži naročnine'
|
Refresh Subscriptions: 'Osveži naročnine'
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Ta
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Ta
|
||||||
profil ima veliko količino naročnin.·· ·· Da bi se izognili omejitvi hitrosti,
|
profil ima veliko količino naročnin.· Da bi se izognili omejitvi hitrosti, bo
|
||||||
bo uporabljen RSS
|
uporabljen RSS
|
||||||
Load More Videos: Naloži več videoposnetkov
|
Load More Videos: Naloži več videoposnetkov
|
||||||
Trending: 'Priljubljeno'
|
Trending: 'Priljubljeno'
|
||||||
Most Popular: 'Najbolj popularno'
|
Most Popular: 'Najbolj popularno'
|
||||||
Playlists: 'Seznami predvajanja'
|
Playlists: 'Seznami predvajanja'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Vaši seznami predvajanja'
|
Your Playlists: 'Vaši seznami predvajanja'
|
||||||
|
Playlist Message: Ta stran ne odraža stanja popolnoma delujočih seznamov predvajanja.
|
||||||
|
Na njej so prikazani zgolj videoposnetki, ki ste jih shranili ali označili kot
|
||||||
|
priljubljene. Ko bo delo končano, bodo ti videoposnetki preseljeni v Seznam priljubljenih
|
||||||
|
videoposnetkov.
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Nimate
|
||||||
|
shranjenih videoposnetkov. Kliknite na gumb Shrani v kotu videoposnetka, da bo
|
||||||
|
ta dodan tukaj
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Zgodovina'
|
History: 'Zgodovina'
|
||||||
|
@ -125,6 +133,7 @@ Settings:
|
||||||
(prevzeta je https://invidious.snopyta.org)'
|
(prevzeta je https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Regija za priljubljene videoposnetke'
|
Region for Trending: 'Regija za priljubljene videoposnetke'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
View all Invidious instance information: Prikaži vse podatke o Invidious domeni
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Nastavitve tem'
|
Theme Settings: 'Nastavitve tem'
|
||||||
Match Top Bar with Main Color: 'Uskladi zgornji trak z glavno barvo'
|
Match Top Bar with Main Color: 'Uskladi zgornji trak z glavno barvo'
|
||||||
|
@ -185,6 +194,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Razmik med videoposnetki v seznamu predvajanja
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Nastavitve zasebnosti'
|
Privacy Settings: 'Nastavitve zasebnosti'
|
||||||
Remember History: 'Zapomni si zgodovino'
|
Remember History: 'Zapomni si zgodovino'
|
||||||
|
@ -199,8 +209,8 @@ Settings:
|
||||||
Watch history has been cleared: 'Zgodovina gledanj je bila izbrisana'
|
Watch history has been cleared: 'Zgodovina gledanj je bila izbrisana'
|
||||||
Remove All Subscriptions / Profiles: 'Izbriši vse naročnine/profile'
|
Remove All Subscriptions / Profiles: 'Izbriši vse naročnine/profile'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ste
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ste
|
||||||
prepričani, da želite izbrisati vse naročnine in profile?·· ·· Te odločitve
|
prepričani, da želite izbrisati vse naročnine in profile?· Te odločitve ni
|
||||||
ni mogoče razveljaviti.'
|
mogoče razveljaviti.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Nastavitve naročnin'
|
Subscription Settings: 'Nastavitve naročnin'
|
||||||
Hide Videos on Watch: 'Skrij gledane videoposnetke'
|
Hide Videos on Watch: 'Skrij gledane videoposnetke'
|
||||||
|
@ -244,6 +254,7 @@ Settings:
|
||||||
Unknown data key: 'Neznan podatkovni ključ'
|
Unknown data key: 'Neznan podatkovni ključ'
|
||||||
How do I import my subscriptions?: 'Kako lahko uvozim moje naročnine?'
|
How do I import my subscriptions?: 'Kako lahko uvozim moje naročnine?'
|
||||||
Check for Legacy Subscriptions: Poišči zapuščinske naročnine
|
Check for Legacy Subscriptions: Poišči zapuščinske naročnine
|
||||||
|
Manage Subscriptions: Upravljaj z naročninami
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: 'Napredne nastavitve'
|
Advanced Settings: 'Napredne nastavitve'
|
||||||
Enable Debug Mode (Prints data to the console): 'Vklopi razhroščevalni način (podatke
|
Enable Debug Mode (Prints data to the console): 'Vklopi razhroščevalni način (podatke
|
||||||
|
@ -280,9 +291,28 @@ Settings:
|
||||||
Hide Channel Subscribers: Skrij število naročnikov
|
Hide Channel Subscribers: Skrij število naročnikov
|
||||||
Hide Video Views: Skrij število ogledov
|
Hide Video Views: Skrij število ogledov
|
||||||
Distraction Free Settings: Brezmotenjske nastavitve
|
Distraction Free Settings: Brezmotenjske nastavitve
|
||||||
|
Hide Active Subscriptions: Skrij aktivne naročnine
|
||||||
|
Hide Playlists: Skrij sezname predvajanja
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Program
|
The app needs to restart for changes to take effect. Restart and apply change?: Program
|
||||||
se mora ponovno zagnati, preden bodo spremembe uveljavljene. Ga želite ponovno
|
se mora ponovno zagnati, preden bodo spremembe uveljavljene. Ga želite ponovno
|
||||||
zagnati zdaj?
|
zagnati zdaj?
|
||||||
|
Proxy Settings:
|
||||||
|
Error getting network information. Is your proxy configured properly?: Prišlo
|
||||||
|
je do napake pri pridobivanju informacij o omrežju. Ali je vaš namestnik pravilno
|
||||||
|
nastavljen?
|
||||||
|
City: Mesto
|
||||||
|
Region: Regija
|
||||||
|
Country: Država
|
||||||
|
Ip: IP naslov
|
||||||
|
Your Info: Vaši podatki
|
||||||
|
Test Proxy: Preizkusi namestnik
|
||||||
|
Clicking on Test Proxy will send a request to: Ko kliknete na Preizkusi namestnik,
|
||||||
|
bo poizvedba poslana na
|
||||||
|
Proxy Port Number: Številka vrat namestnika
|
||||||
|
Proxy Settings: Nastavitve namestnika
|
||||||
|
Proxy Host: Gostitelj namestnika
|
||||||
|
Proxy Protocol: Protokol namestnika
|
||||||
|
Enable Tor / Proxy: Vklopi Tor/namestnik
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'O programu'
|
About: 'O programu'
|
||||||
|
@ -314,6 +344,31 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: 'Najnovejše FreeTube novice'
|
Latest FreeTube News: 'Najnovejše FreeTube novice'
|
||||||
|
|
||||||
|
Donate: Doniraj
|
||||||
|
these people and projects: teh ljudi in projektov
|
||||||
|
FreeTube is made possible by: FreeTube obstaja zaradi
|
||||||
|
Credits: Zahvale
|
||||||
|
Translate: Prevedi
|
||||||
|
room rules: sobna pravila
|
||||||
|
Please read the: Prosimo, preberite
|
||||||
|
Chat on Matrix: Klepetajte na Matrixu
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Email: E-pošta
|
||||||
|
Blog: Blog
|
||||||
|
Website: Spletna stran
|
||||||
|
Please check for duplicates before posting: Prosimo, da pred pošiljanjem preverite,
|
||||||
|
da ni dvojnikov
|
||||||
|
GitHub issues: GitHub težave
|
||||||
|
Report a problem: Prijavi napako
|
||||||
|
FAQ: Pogosto zastavljena vprašanja
|
||||||
|
FreeTube Wiki: FreeTube wiki
|
||||||
|
Help: Pomoč
|
||||||
|
GitHub releases: Github izdaje
|
||||||
|
Downloads / Changelog: Prenosi in dnevnik sprememb
|
||||||
|
View License: Ogled licence
|
||||||
|
Licensed under the AGPLv3: Licencirano pod AGPLv3
|
||||||
|
Source code: Izvirna koda
|
||||||
|
Beta: Beta
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: 'Izberi profil'
|
Profile Select: 'Izberi profil'
|
||||||
All Channels: 'Vsi kanali'
|
All Channels: 'Vsi kanali'
|
||||||
|
@ -350,12 +405,14 @@ Profile:
|
||||||
No channel(s) have been selected: 'Označili niste nobenih kanalov'
|
No channel(s) have been selected: 'Označili niste nobenih kanalov'
|
||||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
same channels will be deleted in any profile they are found in.
|
same channels will be deleted in any profile they are found in.
|
||||||
: 'To je vaš primarni profil.·· ·· Ste prepričani, da želite izbrisati označene
|
: 'To je vaš primarni profil.· Ste prepričani, da želite izbrisati označene kanale?· Kanali
|
||||||
kanale?·· ·· Kanali bodo izbrisani v vseh profilih, kjer se nahajajo.'
|
bodo izbrisani v vseh profilih, kjer se nahajajo.'
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Ste
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Ste
|
||||||
prepričani, da želite izbrisati označene kanale?·· ·· Kanali ne bodo izbrisani
|
prepričani, da želite izbrisati označene kanale?
|
||||||
iz drugih profilov.'
|
|
||||||
|
· Kanali ne bodo izbrisani iz drugih profilov.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Filter profilov
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Naročnik'
|
Subscriber: 'Naročnik'
|
||||||
Subscribers: 'Naročnikov'
|
Subscribers: 'Naročnikov'
|
||||||
|
@ -425,8 +482,9 @@ Video:
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: 'Pogovor v živo
|
Live chat is enabled. Chat messages will appear here once sent.: 'Pogovor v živo
|
||||||
je vklopljen.'
|
je vklopljen.'
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Pogovor
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Pogovor
|
||||||
v živo trenutno ni podprt v Invidious APV.·· ·· Potrebna je neposredna povezava
|
v živo trenutno ni podprt v Invidious APV.
|
||||||
z YouTube-om.'
|
|
||||||
|
· Potrebna je neposredna povezava z YouTubom.'
|
||||||
Published:
|
Published:
|
||||||
Jan: 'jan.'
|
Jan: 'jan.'
|
||||||
Feb: 'feb.'
|
Feb: 'feb.'
|
||||||
|
@ -468,6 +526,16 @@ Video:
|
||||||
audio only: Samo avdio
|
audio only: Samo avdio
|
||||||
video only: Samo video
|
video only: Samo video
|
||||||
Download Video: Prenesi videoposnetek
|
Download Video: Prenesi videoposnetek
|
||||||
|
Started streaming on: Pretok začet dne
|
||||||
|
Streamed on: Pretočeno dne
|
||||||
|
Copy Invidious Channel Link: Kopiraj povezavo Invidious kanala
|
||||||
|
Open Channel in Invidious: Odpri ta kanal v Invidiousu
|
||||||
|
Copy YouTube Channel Link: Kopiraj povezavo YouTube kanala
|
||||||
|
Open Channel in YouTube: Odpri ta kanal v YouTubu
|
||||||
|
Video has been removed from your saved list: Videoposnetek je bil odstranjen iz
|
||||||
|
seznama
|
||||||
|
Video has been saved: Videoposnetek je bil shranjen
|
||||||
|
Save Video: Shrani videoposnetek
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -514,6 +582,8 @@ Share:
|
||||||
Invidious Embed URL copied to clipboard: 'Invidious vložek URL kopiran'
|
Invidious Embed URL copied to clipboard: 'Invidious vložek URL kopiran'
|
||||||
YouTube URL copied to clipboard: 'YouTube URL kopiran'
|
YouTube URL copied to clipboard: 'YouTube URL kopiran'
|
||||||
YouTube Embed URL copied to clipboard: 'YouTube vložek URL kopiran'
|
YouTube Embed URL copied to clipboard: 'YouTube vložek URL kopiran'
|
||||||
|
YouTube Channel URL copied to clipboard: URL YouTube kanala je bil kopiran
|
||||||
|
Invidious Channel URL copied to clipboard: URL Invidious kanala je bil kopiran
|
||||||
Mini Player: 'Mini predvajalnik'
|
Mini Player: 'Mini predvajalnik'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Komentarji'
|
Comments: 'Komentarji'
|
||||||
|
@ -554,8 +624,14 @@ Playing Previous Video: 'Predvaja se prejšnji videoposnetek'
|
||||||
Playing next video in 5 seconds. Click to cancel: 'Naslednji videoposnetek čez 5
|
Playing next video in 5 seconds. Click to cancel: 'Naslednji videoposnetek čez 5
|
||||||
sekund. Kliknite za preklic.'
|
sekund. Kliknite za preklic.'
|
||||||
Canceled next video autoplay: 'Samodejno predvajanje preklicano'
|
Canceled next video autoplay: 'Samodejno predvajanje preklicano'
|
||||||
'The playlist has ended. Enable loop to continue playing': 'Seznama predvajanja je
|
'The playlist has ended. Enable loop to continue playing': "Seznama predvajanja je\
|
||||||
konec. ·· ·· Vklopite ponovno predvajanje, če želite nadaljevati'
|
\ konec. \n· Vklopite ponovno predvajanje, če želite nadaljevati"
|
||||||
|
|
||||||
Yes: 'Da'
|
Yes: 'Da'
|
||||||
No: 'Ne'
|
No: 'Ne'
|
||||||
|
More: Več
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Preferred API Backend: Izberite zaledje, ki ga FreeTube uporablja za pridobivanje
|
||||||
|
podatkov. Lokalni APV je vgrajeni . Invidious APV za delovanje potrebuje Invidious
|
||||||
|
strežnik.
|
||||||
|
|
|
@ -0,0 +1,574 @@
|
||||||
|
# Put the name of your locale in the same language
|
||||||
|
Locale Name: 'Српски'
|
||||||
|
FreeTube: 'FreeTube'
|
||||||
|
# Currently on Subscriptions, Playlists, and History
|
||||||
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
|
Овај део апликације још није спреман. Вратите се касније када буде постигнут напредак.
|
||||||
|
|
||||||
|
# Webkit Menu Bar
|
||||||
|
File: 'Датотека'
|
||||||
|
Quit: 'Затвори'
|
||||||
|
Edit: 'Промени'
|
||||||
|
Undo: 'Поништи'
|
||||||
|
Redo: 'Обнови'
|
||||||
|
Cut: 'Исеци'
|
||||||
|
Copy: 'Копирај'
|
||||||
|
Paste: 'Прилепи'
|
||||||
|
Delete: 'Избриши'
|
||||||
|
Select all: 'Све одабрати'
|
||||||
|
Reload: 'Освежи'
|
||||||
|
Force Reload: 'Натерај освежавање'
|
||||||
|
Toggle Developer Tools: 'Укључите/искључите алате за програмере'
|
||||||
|
Actual size: 'Тренутна величина'
|
||||||
|
Zoom in: 'Повећај'
|
||||||
|
Zoom out: 'Смањи'
|
||||||
|
Toggle fullscreen: 'Цео екран'
|
||||||
|
Window: 'Прозор'
|
||||||
|
Minimize: 'Минимизуј'
|
||||||
|
Close: 'Затвори'
|
||||||
|
Back: 'Назад'
|
||||||
|
Forward: 'Напред'
|
||||||
|
|
||||||
|
Version $ is now available! Click for more details: 'Верзија $ је сада достуна! Кликните
|
||||||
|
за више детаља'
|
||||||
|
Download From Site: 'Преузми са сајта'
|
||||||
|
A new blog is now available, $. Click to view more: 'Нови блог је сада доступан, $.
|
||||||
|
Кликни за приказ више'
|
||||||
|
|
||||||
|
# Search Bar
|
||||||
|
Search / Go to URL: 'Претражи / иди на УРЛ'
|
||||||
|
# In Filter Button
|
||||||
|
Search Filters:
|
||||||
|
Search Filters: 'Филтери претраге'
|
||||||
|
Sort By:
|
||||||
|
Sort By: 'Среди по'
|
||||||
|
Most Relevant: 'Најрелевантније'
|
||||||
|
Rating: 'Оцена'
|
||||||
|
Upload Date: 'Датум отпремања'
|
||||||
|
View Count: 'Број прегледа'
|
||||||
|
Time:
|
||||||
|
Time: 'Датум'
|
||||||
|
Any Time: 'Све'
|
||||||
|
Last Hour: 'Последњи сат'
|
||||||
|
Today: 'Данас'
|
||||||
|
This Week: 'Ове недеље'
|
||||||
|
This Month: 'Овај месец'
|
||||||
|
This Year: 'Ова година'
|
||||||
|
Type:
|
||||||
|
Type: 'Тип'
|
||||||
|
All Types: 'Сва'
|
||||||
|
Videos: 'Видео'
|
||||||
|
Channels: 'Канали'
|
||||||
|
#& Playlists
|
||||||
|
Duration:
|
||||||
|
Duration: 'Трајање'
|
||||||
|
All Durations: 'Све'
|
||||||
|
Short (< 4 minutes): 'Кратко (< 4 минута)'
|
||||||
|
Long (> 20 minutes): 'Дугачко (> 20 минута)'
|
||||||
|
# On Search Page
|
||||||
|
Search Results: 'Резултати претраге'
|
||||||
|
Fetching results. Please wait: 'Примање резултата. Сачекајте'
|
||||||
|
Fetch more results: 'Покажи још резултата'
|
||||||
|
There are no more results for this search: 'Нема више резултата за ову претрагу'
|
||||||
|
# Sidebar
|
||||||
|
Subscriptions:
|
||||||
|
# On Subscriptions Page
|
||||||
|
Subscriptions: 'Праћења'
|
||||||
|
Latest Subscriptions: 'Задња праћења'
|
||||||
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: 'Овај
|
||||||
|
профил има велики број праћења. Присиљавање RSS-а да се избегне ограничење'
|
||||||
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Ваша
|
||||||
|
листа прећења је тренутно празна. Почните да додајете прећење да бисте их видели
|
||||||
|
овде.'
|
||||||
|
'Getting Subscriptions. Please wait.': 'Примање праћења. Сачекајте.'
|
||||||
|
Refresh Subscriptions: 'Освежи праћења'
|
||||||
|
Load More Videos: 'Учитај више видео записа'
|
||||||
|
More: 'Још'
|
||||||
|
Trending: 'Тренда'
|
||||||
|
Most Popular: 'Нај популарније'
|
||||||
|
Playlists: 'Плејлисте'
|
||||||
|
User Playlists:
|
||||||
|
Your Playlists: 'Ваше плејлисте'
|
||||||
|
Playlist Message: 'Ова страница се не одражава у потпуности радне плејлисте. Она
|
||||||
|
само приказује видео записе које сте сачували или фаворизирали. Када је посао
|
||||||
|
завршио, сви видео записи одавде ће се преместити на плејлисту "Омиљени".'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 'Нисте
|
||||||
|
сачували ни један видео. Кликни на дугме Сачувај на углу видео записа да бисте
|
||||||
|
је овде навели'
|
||||||
|
History:
|
||||||
|
# On History Page
|
||||||
|
History: 'Историја'
|
||||||
|
Watch History: 'Види историју'
|
||||||
|
Your history list is currently empty.: 'Ваша историја је празна.'
|
||||||
|
Settings:
|
||||||
|
# On Settings Page
|
||||||
|
Settings: 'Подешавања'
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: 'Апликација
|
||||||
|
треба да се поново покрене како би промене ступиле на снагу. Поново покрените
|
||||||
|
и примените промене?'
|
||||||
|
General Settings:
|
||||||
|
General Settings: 'Општа подешавања'
|
||||||
|
Check for Updates: 'Провери ажурирања'
|
||||||
|
Check for Latest Blog Posts: 'Провери најновије поруке блога'
|
||||||
|
Fallback to Non-Preferred Backend on Failure: 'Повратак на неомиљени Backend на
|
||||||
|
неуспех'
|
||||||
|
Enable Search Suggestions: 'Покажи предлоге за претрагу'
|
||||||
|
Default Landing Page: 'Подразумевана почетна страница'
|
||||||
|
Locale Preference: 'Локална преференција'
|
||||||
|
Preferred API Backend:
|
||||||
|
Preferred API Backend: 'Омиљени API Backend'
|
||||||
|
Local API: 'Локални API'
|
||||||
|
Invidious API: 'Invidious API'
|
||||||
|
Video View Type:
|
||||||
|
Video View Type: 'Тип приказа видеа'
|
||||||
|
Grid: 'Решетка'
|
||||||
|
List: 'Листа'
|
||||||
|
Thumbnail Preference:
|
||||||
|
Thumbnail Preference: 'Преференције сличице'
|
||||||
|
Default: 'Подразумевано'
|
||||||
|
Beginning: 'Почетак'
|
||||||
|
Middle: 'Средина'
|
||||||
|
End: 'Крај'
|
||||||
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious инстанца
|
||||||
|
(Подразумевано је https://invidious.snopyta.org)'
|
||||||
|
View all Invidious instance information: 'Погледајте информације свих Invidious
|
||||||
|
инстанце'
|
||||||
|
Region for Trending: 'Регион за тренд'
|
||||||
|
#! List countries
|
||||||
|
Theme Settings:
|
||||||
|
Theme Settings: 'Подешавања теме'
|
||||||
|
Match Top Bar with Main Color: 'Усклади горњу траку са главном бојом'
|
||||||
|
Expand Side Bar by Default: 'Подразумевано прошири бочну траку'
|
||||||
|
Disable Smooth Scrolling: 'Онемогући глатко померање'
|
||||||
|
UI Scale: 'UI скала'
|
||||||
|
Base Theme:
|
||||||
|
Base Theme: 'Основна тема'
|
||||||
|
Black: 'Црна'
|
||||||
|
Dark: 'Тамна'
|
||||||
|
Light: 'Светла'
|
||||||
|
Main Color Theme:
|
||||||
|
Main Color Theme: 'Главна боја теме'
|
||||||
|
Red: 'Црвено'
|
||||||
|
Pink: 'Розе'
|
||||||
|
Purple: 'Љубичасто'
|
||||||
|
Deep Purple: 'Тамно љубичасто'
|
||||||
|
Indigo: 'Индиго'
|
||||||
|
Blue: 'Плаво'
|
||||||
|
Light Blue: 'Светло плаво'
|
||||||
|
Cyan: 'Цијан'
|
||||||
|
Teal: 'Teal'
|
||||||
|
Green: 'Зелено'
|
||||||
|
Light Green: 'Светло зелено'
|
||||||
|
Lime: 'Лимун зелено'
|
||||||
|
Yellow: 'Жуто'
|
||||||
|
Amber: 'Амбер'
|
||||||
|
Orange: 'Наранђасто'
|
||||||
|
Deep Orange: 'Тамно нарађасто'
|
||||||
|
Secondary Color Theme: 'Секундарна боја теме'
|
||||||
|
#* Main Color Theme
|
||||||
|
Player Settings:
|
||||||
|
Player Settings: 'Подешавања плејера'
|
||||||
|
Force Local Backend for Legacy Formats: 'форсирај локални Backend за Legacy формате'
|
||||||
|
Play Next Video: 'Пусти следећи видео'
|
||||||
|
Turn on Subtitles by Default: 'Подразумевано упали титлове'
|
||||||
|
Autoplay Videos: 'Ауто-пусти видео'
|
||||||
|
Proxy Videos Through Invidious: 'Прокси видео преко Invidious'
|
||||||
|
Autoplay Playlists: 'Ауто-пусти плејлисте'
|
||||||
|
Enable Theatre Mode by Default: 'Подразумевано активирај театар мод'
|
||||||
|
Playlist Next Video Interval: 'Интервал следећег видеа из плејлисте'
|
||||||
|
Default Volume: 'Подразумевана јачина'
|
||||||
|
Default Playback Rate: 'Подразумевана брзина репродукције'
|
||||||
|
Default Video Format:
|
||||||
|
Default Video Format: 'Подразумеван формат видеа'
|
||||||
|
Dash Formats: 'Dash формати'
|
||||||
|
Legacy Formats: 'Legacy формати'
|
||||||
|
Audio Formats: 'Аудио формати'
|
||||||
|
Default Quality:
|
||||||
|
Default Quality: 'Подразумеван квалитет'
|
||||||
|
Auto: 'Ауто'
|
||||||
|
144p: '144p'
|
||||||
|
240p: '240p'
|
||||||
|
360p: '360p'
|
||||||
|
480p: '480p'
|
||||||
|
720p: '720p'
|
||||||
|
1080p: '1080p'
|
||||||
|
1440p: '1440p'
|
||||||
|
4k: '4k'
|
||||||
|
8k: '8k'
|
||||||
|
Privacy Settings:
|
||||||
|
Privacy Settings: 'Подешавања приватности'
|
||||||
|
Remember History: 'Запамти историју'
|
||||||
|
Save Watched Progress: 'Сачувај напредак видеа'
|
||||||
|
Clear Search Cache: 'Испразни кеш претраге'
|
||||||
|
Are you sure you want to clear out your search cache?: 'Јесте ли сигурни да желите
|
||||||
|
да очистите кеш претраге?'
|
||||||
|
Search cache has been cleared: 'Кеш претраживања је обрисано'
|
||||||
|
Remove Watch History: 'Избриши историју гледања'
|
||||||
|
Are you sure you want to remove your entire watch history?: 'Сигурно желите да
|
||||||
|
избришете целу историју гледања?'
|
||||||
|
Watch history has been cleared: 'Историја је избрисана'
|
||||||
|
Remove All Subscriptions / Profiles: 'Обриши сва праћења/профили'
|
||||||
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Да
|
||||||
|
ли сте сигурни да желите уклонити сва праћења и профиле? Ово се не може поништити.'
|
||||||
|
Subscription Settings:
|
||||||
|
Subscription Settings: 'Подешавања праћења'
|
||||||
|
Hide Videos on Watch: 'Сакриј одгледани видео записи'
|
||||||
|
Fetch Feeds from RSS: 'Дохват RSS-а'
|
||||||
|
Manage Subscriptions: 'Управљај ста пратиш'
|
||||||
|
Distraction Free Settings:
|
||||||
|
Distraction Free Settings: 'Подешавања дистракције'
|
||||||
|
Hide Video Views: 'Сакриј број приказа видеа'
|
||||||
|
Hide Video Likes And Dislikes: 'Сакриј видео лајкове'
|
||||||
|
Hide Channel Subscribers: 'Сакриј број праћења канала'
|
||||||
|
Hide Comment Likes: 'Сакриј лајковање из коментара'
|
||||||
|
Hide Recommended Videos: 'Сакриј препоручене видее'
|
||||||
|
Hide Trending Videos: 'Сакриј видее у тренду'
|
||||||
|
Hide Popular Videos: 'Сакриј популарне видее'
|
||||||
|
Hide Playlists: 'Сакриј плејлисте'
|
||||||
|
Hide Live Chat: 'Сакриј уживо ћаскање'
|
||||||
|
Hide Active Subscriptions: 'Сакриј активна праћења'
|
||||||
|
Data Settings:
|
||||||
|
Data Settings: 'Подешавања података'
|
||||||
|
Select Import Type: 'Одабери тип увоза'
|
||||||
|
Select Export Type: 'Одабери тип извоза'
|
||||||
|
Import Subscriptions: 'Увоз праћења'
|
||||||
|
Import FreeTube: 'Увоз FreeTube'
|
||||||
|
Import YouTube: 'Увоз YouTube'
|
||||||
|
Import NewPipe: 'Увоз NewPipe'
|
||||||
|
Check for Legacy Subscriptions: 'Провери да ли постоје стара праћања'
|
||||||
|
Export Subscriptions: 'Извоз праћања'
|
||||||
|
Export FreeTube: 'Извоз FreeTube'
|
||||||
|
Export YouTube: 'Извоз YouTube'
|
||||||
|
Export NewPipe: 'Извоз NewPipe'
|
||||||
|
Import History: 'Увоз историје'
|
||||||
|
Export History: 'Извоз историје'
|
||||||
|
Profile object has insufficient data, skipping item: 'Објект профила нема довољно
|
||||||
|
података, прескакање'
|
||||||
|
All subscriptions and profiles have been successfully imported: 'Сва праћања и
|
||||||
|
профили су успешно увезени'
|
||||||
|
All subscriptions have been successfully imported: 'Сва праћања су успешно увезене'
|
||||||
|
One or more subscriptions were unable to be imported: 'Увоз једне или више праћења
|
||||||
|
није успео'
|
||||||
|
Invalid subscriptions file: 'Датотека праћења није добра'
|
||||||
|
This might take a while, please wait: 'Ово би могло потрајати неко време, молим
|
||||||
|
вас причекајте'
|
||||||
|
Invalid history file: 'Неважећа датотека историје'
|
||||||
|
Subscriptions have been successfully exported: 'Праћења су успешно извезени'
|
||||||
|
History object has insufficient data, skipping item: 'Објект историје нема довољно
|
||||||
|
података, прескакање'
|
||||||
|
All watched history has been successfully imported: 'Цела историја гледања је
|
||||||
|
успешно увезена'
|
||||||
|
All watched history has been successfully exported: 'Цела историја гледања је
|
||||||
|
успешно извезена'
|
||||||
|
Unable to read file: 'Није могуће читати датотеку'
|
||||||
|
Unable to write file: 'Није могуће писати датотеку'
|
||||||
|
Unknown data key: 'Непознат кључ података'
|
||||||
|
How do I import my subscriptions?: 'Како унети моја праћања?'
|
||||||
|
Manage Subscriptions: 'Управљај праћањима'
|
||||||
|
Proxy Settings:
|
||||||
|
Proxy Settings: 'Подешавања проксија'
|
||||||
|
Enable Tor / Proxy: 'Активирај Tor/Прокси'
|
||||||
|
Proxy Protocol: 'Протокол проксија'
|
||||||
|
Proxy Host: 'Хост проксија'
|
||||||
|
Proxy Port Number: 'Порт за прокси'
|
||||||
|
Clicking on Test Proxy will send a request to: 'Клик на „Пробај Прокси“ послаће
|
||||||
|
захтев на'
|
||||||
|
Test Proxy: 'Пробај Прокси'
|
||||||
|
Your Info: 'Ваше информације'
|
||||||
|
Ip: 'IP'
|
||||||
|
Country: 'Земља'
|
||||||
|
Region: 'Регион'
|
||||||
|
City: 'Град'
|
||||||
|
Error getting network information. Is your proxy configured properly?: 'Грешка
|
||||||
|
у добијању информација о мрежи. Да ли је ваш проки правилно подешен?'
|
||||||
|
About:
|
||||||
|
#On About page
|
||||||
|
About: 'О програму'
|
||||||
|
Beta: 'Бета'
|
||||||
|
Source code: 'Изворни код'
|
||||||
|
Licensed under the AGPLv3: 'Лиценциран под AGPLv3'
|
||||||
|
View License: 'Види лиценцу'
|
||||||
|
Downloads / Changelog: 'Преузимања/Листа промена'
|
||||||
|
GitHub releases: 'Доступна издања на GitHub'
|
||||||
|
Help: 'Помоћ'
|
||||||
|
FreeTube Wiki: 'Wiki од FreeTube-а'
|
||||||
|
FAQ: 'FAQ'
|
||||||
|
Report a problem: 'Пријави проблем'
|
||||||
|
GitHub issues: 'Проблеми које је заједничка идентификовала на GitHub'
|
||||||
|
Please check for duplicates before posting: 'Молимо проверите дупликате пре објављивања'
|
||||||
|
Website: 'Вебсајт'
|
||||||
|
Blog: 'Блог'
|
||||||
|
Email: 'Е-пошта'
|
||||||
|
Mastodon: 'Mastodon'
|
||||||
|
Chat on Matrix: 'Ћаскање на Matrix'
|
||||||
|
Please read the: 'Прочитајте'
|
||||||
|
room rules: 'правила собе'
|
||||||
|
Translate: 'Превод'
|
||||||
|
Credits: 'Призњања'
|
||||||
|
FreeTube is made possible by: 'FreeTube је омогућено од'
|
||||||
|
these people and projects: 'ови људи и пројекти'
|
||||||
|
Donate: 'Донација'
|
||||||
|
|
||||||
|
Profile:
|
||||||
|
Profile Select: 'Одабир профила'
|
||||||
|
Profile Filter: 'Филтер профила'
|
||||||
|
All Channels: 'Сви канали'
|
||||||
|
Profile Manager: 'Менаџер профила'
|
||||||
|
Create New Profile: 'Креирај нови профил'
|
||||||
|
Edit Profile: 'Уреди профил'
|
||||||
|
Color Picker: 'Селектор боја'
|
||||||
|
Custom Color: 'Прилагођена боја'
|
||||||
|
Profile Preview: 'Преглед профила'
|
||||||
|
Create Profile: 'Креирај профил'
|
||||||
|
Update Profile: 'Ажурирај профил'
|
||||||
|
Make Default Profile: 'Креирај подразумевани профил'
|
||||||
|
Delete Profile: 'Избриши профил'
|
||||||
|
Are you sure you want to delete this profile?: 'Сигурно желите да избришете овај
|
||||||
|
профил?'
|
||||||
|
All subscriptions will also be deleted.: 'Сва праћања ће такође бити избрисани.'
|
||||||
|
Profile could not be found: 'Профил не може да се нађе'
|
||||||
|
Your profile name cannot be empty: 'Име профила не може да буде празно'
|
||||||
|
Profile has been created: 'Профил је креиран'
|
||||||
|
Profile has been updated: 'Профил је ажуриран'
|
||||||
|
Your default profile has been set to $: 'Ваш подразумеван профил је постављен на
|
||||||
|
$'
|
||||||
|
Removed $ from your profiles: 'Уклоњено $ од ваших профила'
|
||||||
|
Your default profile has been changed to your primary profile: 'Ваш подразумевани
|
||||||
|
профил је промењен на ваш примарни профил'
|
||||||
|
$ is now the active profile: '$ је сада активан профил'
|
||||||
|
Subscription List: 'Листа праћања'
|
||||||
|
Other Channels: 'Остали канали'
|
||||||
|
$ selected: '$ одабрано'
|
||||||
|
Select All: 'Све одабрати'
|
||||||
|
Select None: 'Скини одабирање'
|
||||||
|
Delete Selected: 'Избриши одабрано'
|
||||||
|
Add Selected To Profile: 'Додај одабрано на профил'
|
||||||
|
No channel(s) have been selected: 'Ни један канал није одабран'
|
||||||
|
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||||
|
same channels will be deleted in any profile they are found in.
|
||||||
|
: 'Ово је ваш примарни профил. Јесте ли сигурни да желите да избришете одабране
|
||||||
|
канале? Исти канали биће избрисани у било којем профилу у којем се налазе.'
|
||||||
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Јесте
|
||||||
|
ли сигурни да желите да избришете одабране канале? Ово неће избрисати канал из
|
||||||
|
било којег другог профила.'
|
||||||
|
#On Channel Page
|
||||||
|
Channel:
|
||||||
|
Subscriber: 'Пратилац'
|
||||||
|
Subscribers: 'Пратиоци'
|
||||||
|
Subscribe: 'Прати'
|
||||||
|
Unsubscribe: 'Не прати више'
|
||||||
|
Channel has been removed from your subscriptions: 'Канал је уклоњен из праћања'
|
||||||
|
Removed subscription from $ other channel(s): 'Праћење уклоњен из $ остала канала'
|
||||||
|
Added channel to your subscriptions: 'Канал додат у прећења'
|
||||||
|
Search Channel: 'Тражи канал'
|
||||||
|
Your search results have returned 0 results: 'Резултати претраге вратили су 0 резултата'
|
||||||
|
Sort By: 'Среди по'
|
||||||
|
Videos:
|
||||||
|
Videos: 'Видео'
|
||||||
|
This channel does not currently have any videos: 'Овај канал тренутно нема видео'
|
||||||
|
Sort Types:
|
||||||
|
Newest: 'Најновије'
|
||||||
|
Oldest: 'Нај старије'
|
||||||
|
Most Popular: 'Нај популарније'
|
||||||
|
Playlists:
|
||||||
|
Playlists: 'Плејлиста'
|
||||||
|
This channel does not currently have any playlists: 'Овај канал тренутно нема
|
||||||
|
ни једну плејлисту'
|
||||||
|
Sort Types:
|
||||||
|
Last Video Added: 'Задњи додат видео'
|
||||||
|
Newest: 'Нај новије'
|
||||||
|
Oldest: 'Нај старије'
|
||||||
|
About:
|
||||||
|
About: 'О...'
|
||||||
|
Channel Description: 'Опис канала'
|
||||||
|
Featured Channels: 'Истакнути канали'
|
||||||
|
Video:
|
||||||
|
Mark As Watched: 'Означи као погледано'
|
||||||
|
Remove From History: 'Уклони из историје'
|
||||||
|
Video has been marked as watched: 'Видео је постављен као гледан'
|
||||||
|
Video has been removed from your history: 'Видео је уклоњеј из историје'
|
||||||
|
Save Video: 'Сачувај видео'
|
||||||
|
Video has been saved: 'Видео је сачуван'
|
||||||
|
Video has been removed from your saved list: 'Видео је уклоњен из сачуване листе'
|
||||||
|
Open in YouTube: 'Отвори у YouTube'
|
||||||
|
Copy YouTube Link: 'Копирај YouTube везу'
|
||||||
|
Open YouTube Embedded Player: 'Отвори у Youtube-NoCookie'
|
||||||
|
Copy YouTube Embedded Player Link: 'Копирај Youtube-NoCookie везу'
|
||||||
|
Open in Invidious: 'Отвори у Invidious'
|
||||||
|
Copy Invidious Link: 'Копирај Invidious везу'
|
||||||
|
Open Channel in YouTube: 'Отвори канал у YouTube'
|
||||||
|
Copy YouTube Channel Link: 'Копирај везу YouTube канала'
|
||||||
|
Open Channel in Invidious: 'Отвори канал у Invidious'
|
||||||
|
Copy Invidious Channel Link: 'Копирај везу Invidious канала'
|
||||||
|
View: 'Прегледа'
|
||||||
|
Views: 'Прегледа'
|
||||||
|
Loop Playlist: 'Безкрајна плејлиста'
|
||||||
|
Shuffle Playlist: 'Промешај плејлисту'
|
||||||
|
Reverse Playlist: 'Обрни плејлисту'
|
||||||
|
Play Next Video: 'Пусти следећи видео'
|
||||||
|
Play Previous Video: 'Пусти претходни видео'
|
||||||
|
# Context is "X People Watching"
|
||||||
|
Watching: 'Гледа се'
|
||||||
|
Watched: 'Одгледано'
|
||||||
|
Autoplay: 'Аутоматско покретање'
|
||||||
|
Starting soon, please refresh the page to check again: 'Ускоро почиње, освежите
|
||||||
|
страницу да бисте поново проверили'
|
||||||
|
# As in a Live Video
|
||||||
|
Live: 'Директно'
|
||||||
|
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.': 'Ћаскање је угашено или директан
|
||||||
|
пренос је завршен.'
|
||||||
|
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.': ''
|
||||||
|
Download Video: ''
|
||||||
|
video only: ''
|
||||||
|
audio only: ''
|
||||||
|
Audio:
|
||||||
|
Low: ''
|
||||||
|
Medium: ''
|
||||||
|
High: ''
|
||||||
|
Best: ''
|
||||||
|
Published:
|
||||||
|
Jan: ''
|
||||||
|
Feb: ''
|
||||||
|
Mar: ''
|
||||||
|
Apr: ''
|
||||||
|
May: ''
|
||||||
|
Jun: ''
|
||||||
|
Jul: ''
|
||||||
|
Aug: ''
|
||||||
|
Sep: ''
|
||||||
|
Oct: ''
|
||||||
|
Nov: ''
|
||||||
|
Dec: ''
|
||||||
|
Second: ''
|
||||||
|
Seconds: ''
|
||||||
|
Minute: ''
|
||||||
|
Minutes: ''
|
||||||
|
Hour: ''
|
||||||
|
Hours: ''
|
||||||
|
Day: ''
|
||||||
|
Days: ''
|
||||||
|
Week: ''
|
||||||
|
Weeks: ''
|
||||||
|
Month: ''
|
||||||
|
Months: ''
|
||||||
|
Year: ''
|
||||||
|
Years: ''
|
||||||
|
Ago: ''
|
||||||
|
Upcoming: ''
|
||||||
|
Published on: ''
|
||||||
|
Streamed on: ''
|
||||||
|
Started streaming on: ''
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: ''
|
||||||
|
#& Videos
|
||||||
|
Videos:
|
||||||
|
#& Sort By
|
||||||
|
Sort By:
|
||||||
|
Newest: ''
|
||||||
|
Oldest: ''
|
||||||
|
#& Most Popular
|
||||||
|
#& Playlists
|
||||||
|
Playlist:
|
||||||
|
#& About
|
||||||
|
View Full Playlist: ''
|
||||||
|
Videos: ''
|
||||||
|
View: ''
|
||||||
|
Views: ''
|
||||||
|
Last Updated On: ''
|
||||||
|
Share Playlist:
|
||||||
|
Share Playlist: ''
|
||||||
|
Copy YouTube Link: ''
|
||||||
|
Open in YouTube: ''
|
||||||
|
Copy Invidious Link: ''
|
||||||
|
Open in Invidious: ''
|
||||||
|
|
||||||
|
# On Video Watch Page
|
||||||
|
#* Published
|
||||||
|
#& Views
|
||||||
|
Toggle Theatre Mode: ''
|
||||||
|
Change Format:
|
||||||
|
Change Video Formats: ''
|
||||||
|
Use Dash Formats: ''
|
||||||
|
Use Legacy Formats: ''
|
||||||
|
Use Audio Formats: ''
|
||||||
|
Dash formats are not available for this video: ''
|
||||||
|
Audio formats are not available for this video: ''
|
||||||
|
Share:
|
||||||
|
Share Video: ''
|
||||||
|
Include Timestamp: ''
|
||||||
|
Copy Link: ''
|
||||||
|
Open Link: ''
|
||||||
|
Copy Embed: ''
|
||||||
|
Open Embed: ''
|
||||||
|
# On Click
|
||||||
|
Invidious URL copied to clipboard: ''
|
||||||
|
Invidious Embed URL copied to clipboard: ''
|
||||||
|
Invidious Channel URL copied to clipboard: ''
|
||||||
|
YouTube URL copied to clipboard: ''
|
||||||
|
YouTube Embed URL copied to clipboard: ''
|
||||||
|
YouTube Channel URL copied to clipboard: ''
|
||||||
|
|
||||||
|
Mini Player: ''
|
||||||
|
Comments:
|
||||||
|
Comments: ''
|
||||||
|
Click to View Comments: ''
|
||||||
|
Getting comment replies, please wait: ''
|
||||||
|
There are no more comments for this video: ''
|
||||||
|
Show Comments: ''
|
||||||
|
Hide Comments: ''
|
||||||
|
Sort by: ''
|
||||||
|
Top comments: ''
|
||||||
|
Newest first: ''
|
||||||
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
View: ''
|
||||||
|
Hide: ''
|
||||||
|
Replies: ''
|
||||||
|
Reply: ''
|
||||||
|
There are no comments available for this video: ''
|
||||||
|
Load More Comments: ''
|
||||||
|
No more comments available: ''
|
||||||
|
Up Next: ''
|
||||||
|
|
||||||
|
#Tooltips
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Preferred API Backend: ''
|
||||||
|
Fallback to Non-Preferred Backend on Failure: ''
|
||||||
|
Thumbnail Preference: ''
|
||||||
|
Invidious Instance: ''
|
||||||
|
Region for Trending: ''
|
||||||
|
Player Settings:
|
||||||
|
Force Local Backend for Legacy Formats: ''
|
||||||
|
Proxy Videos Through Invidious: ''
|
||||||
|
Default Video Format: ''
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: 'Када је омогућено, FreeTube ће користити РСС уместо свог
|
||||||
|
подразумеваног метода за прикупљање вашег праћења. РСС је бржи и спречава блокирање
|
||||||
|
ИП-а, али не пружа одређене информације попут трајања видеа или статуса уживо'
|
||||||
|
|
||||||
|
# Toast Messages
|
||||||
|
Local API Error (Click to copy): ''
|
||||||
|
Invidious API Error (Click to copy): ''
|
||||||
|
Falling back to Invidious API: ''
|
||||||
|
Falling back to the local API: ''
|
||||||
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: ''
|
||||||
|
Subscriptions have not yet been implemented: 'Праћења још увек нису примењени'
|
||||||
|
Loop is now disabled: ''
|
||||||
|
Loop is now enabled: ''
|
||||||
|
Shuffle is now disabled: ''
|
||||||
|
Shuffle is now enabled: ''
|
||||||
|
The playlist has been reversed: ''
|
||||||
|
Playing Next Video: ''
|
||||||
|
Playing Previous Video: ''
|
||||||
|
Playing Next Video Interval: ''
|
||||||
|
Canceled next video autoplay: ''
|
||||||
|
'The playlist has ended. Enable loop to continue playing': ''
|
||||||
|
|
||||||
|
Yes: ''
|
||||||
|
No: ''
|
|
@ -70,6 +70,8 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Hämtar resultat. Snälla vänta'
|
Fetching results. Please wait: 'Hämtar resultat. Snälla vänta'
|
||||||
Fetch more results: 'Hämta fler resultat'
|
Fetch more results: 'Hämta fler resultat'
|
||||||
# Sidebar
|
# Sidebar
|
||||||
|
There are no more results for this search: Det finns inte fler resultat för den
|
||||||
|
här sökningen
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Prenumerationer'
|
Subscriptions: 'Prenumerationer'
|
||||||
|
@ -342,7 +344,7 @@ About:
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: E-post
|
Email: E-post
|
||||||
Blog: Blogg
|
Blog: Blogg
|
||||||
Website: Webbsida
|
Website: Webbplats
|
||||||
Please check for duplicates before posting: Vänligen kontrollera om dubbletter innan
|
Please check for duplicates before posting: Vänligen kontrollera om dubbletter innan
|
||||||
du postar
|
du postar
|
||||||
GitHub issues: GitHub-problem
|
GitHub issues: GitHub-problem
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Put the name of your locale in the same language
|
# Put the name of your locale in the same language
|
||||||
Locale Name: 'Türkçe'
|
Locale Name: 'Türkçe'
|
||||||
FreeTube: 'Freetube'
|
FreeTube: 'FreeTube'
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
'This part of the app is not ready yet. Come back later when progress has been made.': >-
|
||||||
Uygulamanın bu bölümü henüz hazır değil. Tamamlanınca geri gel.
|
Uygulamanın bu bölümü henüz hazır değil. Tamamlanınca geri gel.
|
||||||
|
@ -76,7 +76,7 @@ Subscriptions:
|
||||||
Subscriptions: 'Abonelikler'
|
Subscriptions: 'Abonelikler'
|
||||||
Latest Subscriptions: 'En Yeni'
|
Latest Subscriptions: 'En Yeni'
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Abonelik
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Abonelik
|
||||||
listeniz şu anda boş. Burada görmek için abone olmaya başlayın.'
|
listeniz şu anda boş. Aboneliklerinizi görebilmek için abone olmaya başlayın.'
|
||||||
'Getting Subscriptions. Please wait.': 'Abonelikler yükleniyor. Lütfen bekleyin.'
|
'Getting Subscriptions. Please wait.': 'Abonelikler yükleniyor. Lütfen bekleyin.'
|
||||||
Refresh Subscriptions: 'Abonelikleri Yenile'
|
Refresh Subscriptions: 'Abonelikleri Yenile'
|
||||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Bu
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Bu
|
||||||
|
@ -88,8 +88,8 @@ Playlists: 'Oynatma Listeleri'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Oynatma Listelerin'
|
Your Playlists: 'Oynatma Listelerin'
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Kaydedilen
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Kaydedilen
|
||||||
videolarınız boş. Burada listelenmesi için videonun köşesindeki kaydet düğmesine
|
videolarınız boş. Kaydedilen videolarınızın burada listelenmesi için videonun
|
||||||
tıklayın
|
köşesindeki kaydet düğmesine tıklayın
|
||||||
Playlist Message: Bu sayfa, tam olarak çalışan oynatma listelerini yansıtmamaktadır.
|
Playlist Message: Bu sayfa, tam olarak çalışan oynatma listelerini yansıtmamaktadır.
|
||||||
Yalnızca kaydettiğiniz veya favorilerinize eklediğiniz videoları listeler. İş
|
Yalnızca kaydettiğiniz veya favorilerinize eklediğiniz videoları listeler. İş
|
||||||
bittiğinde, şu anda burada bulunan tüm videolar bir 'Favoriler' oynatma listesine
|
bittiğinde, şu anda burada bulunan tüm videolar bir 'Favoriler' oynatma listesine
|
||||||
|
@ -109,7 +109,7 @@ Settings:
|
||||||
Fallback to Non-Preferred Backend on Failure: 'Hata Durumunda Tercih Edilmeyen
|
Fallback to Non-Preferred Backend on Failure: 'Hata Durumunda Tercih Edilmeyen
|
||||||
Arka Uca Geç'
|
Arka Uca Geç'
|
||||||
Enable Search Suggestions: 'Arama Önerilerini Etkinleştir'
|
Enable Search Suggestions: 'Arama Önerilerini Etkinleştir'
|
||||||
Default Landing Page: 'Varsayılan Açılış Ekranı'
|
Default Landing Page: 'Öntanımlı Açılış Ekranı'
|
||||||
Locale Preference: 'Tercih Edilen Yerel Ayar'
|
Locale Preference: 'Tercih Edilen Yerel Ayar'
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: 'Tercih Edilen API Arka Ucu'
|
Preferred API Backend: 'Tercih Edilen API Arka Ucu'
|
||||||
|
@ -121,15 +121,16 @@ Settings:
|
||||||
List: 'Liste'
|
List: 'Liste'
|
||||||
Thumbnail Preference:
|
Thumbnail Preference:
|
||||||
Thumbnail Preference: 'Küçük Resim Tercihi'
|
Thumbnail Preference: 'Küçük Resim Tercihi'
|
||||||
Default: 'Varsayılan'
|
Default: 'Öntanımlı'
|
||||||
Beginning: 'Başlangıç'
|
Beginning: 'Başlangıç'
|
||||||
Middle: 'Orta'
|
Middle: 'Orta'
|
||||||
End: 'Bitiş'
|
End: 'Bitiş'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious Örneği
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious Örneği
|
||||||
(Varsayılan https://invidious.snopyta.org)'
|
(Öntanımlı olarak https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Trendler İçin Bölge Tercihi'
|
Region for Trending: 'Trendler İçin Bölge Tercihi'
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Tüm Invidious örnek bilgilerini görüntüle
|
View all Invidious instance information: Tüm Invidious örnek bilgilerini görüntüle
|
||||||
|
System Default: Sistem Öntanımlı Değeri
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Tema Ayarları'
|
Theme Settings: 'Tema Ayarları'
|
||||||
Match Top Bar with Main Color: 'Üst Barı Ana Renk ile Eşleştir'
|
Match Top Bar with Main Color: 'Üst Barı Ana Renk ile Eşleştir'
|
||||||
|
@ -166,20 +167,20 @@ Settings:
|
||||||
Force Local Backend for Legacy Formats: 'Eski Biçimler için Yerel Arka Ucu Kullanmaya
|
Force Local Backend for Legacy Formats: 'Eski Biçimler için Yerel Arka Ucu Kullanmaya
|
||||||
Zorla'
|
Zorla'
|
||||||
Play Next Video: 'Sonraki Videoyu Oynat'
|
Play Next Video: 'Sonraki Videoyu Oynat'
|
||||||
Turn on Subtitles by Default: 'Altyazıyı Varsayılan Olarak Aç'
|
Turn on Subtitles by Default: 'Alt Yazıları Öntanımlı Olarak Aç'
|
||||||
Autoplay Videos: 'Videoları Otomatik Başlat'
|
Autoplay Videos: 'Videoları Otomatik Başlat'
|
||||||
Proxy Videos Through Invidious: 'Videolari Invidious Üzerinden Aktar'
|
Proxy Videos Through Invidious: 'Videolari Invidious Üzerinden Aktar'
|
||||||
Autoplay Playlists: 'Oytma Listelerini Otomatik Başlat'
|
Autoplay Playlists: 'Oytma Listelerini Otomatik Başlat'
|
||||||
Enable Theatre Mode by Default: 'Sinema Modunu Varsayılan Olarak Etkinleştir'
|
Enable Theatre Mode by Default: 'Sinema Modunu Öntanımlı Olarak Etkinleştir'
|
||||||
Default Volume: 'Varsayılan Ses Düzeyi'
|
Default Volume: 'Öntanımlı Ses Düzeyi'
|
||||||
Default Playback Rate: 'Varsayılan Oynatma Hızı'
|
Default Playback Rate: 'Öntanımlı Oynatma Hızı'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Varsayılan Video Biçimi'
|
Default Video Format: 'Öntanımlı Video Biçimi'
|
||||||
Dash Formats: 'Dash Biçimleri'
|
Dash Formats: 'DASH Biçimleri'
|
||||||
Legacy Formats: 'Eski Biçimler'
|
Legacy Formats: 'Eski Biçimler'
|
||||||
Audio Formats: 'Ses Biçimi'
|
Audio Formats: 'Ses Biçimleri'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Varsayılan Kalite'
|
Default Quality: 'Öntanımlı Kalite'
|
||||||
Auto: 'Otomatik'
|
Auto: 'Otomatik'
|
||||||
144p: '144p'
|
144p: '144p'
|
||||||
240p: '240p'
|
240p: '240p'
|
||||||
|
@ -191,6 +192,7 @@ Settings:
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Oynatma Listesi Sonraki Video Aralığı
|
Playlist Next Video Interval: Oynatma Listesi Sonraki Video Aralığı
|
||||||
|
Next Video Interval: Sonraki Video Aralığı
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Gizlilik Ayarları'
|
Privacy Settings: 'Gizlilik Ayarları'
|
||||||
Remember History: 'Geçmişi Hatırla'
|
Remember History: 'Geçmişi Hatırla'
|
||||||
|
@ -206,6 +208,8 @@ Settings:
|
||||||
Remove All Subscriptions / Profiles: 'Tüm Abonelikler/Profilleri Temizle'
|
Remove All Subscriptions / Profiles: 'Tüm Abonelikler/Profilleri Temizle'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Tüm
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Tüm
|
||||||
abonelikler/profilleri temizlemek istediğinizden emin misiniz? Geri alınamaz.'
|
abonelikler/profilleri temizlemek istediğinizden emin misiniz? Geri alınamaz.'
|
||||||
|
Automatically Remove Video Meta Files: Video Meta Dosyalarını Otomatik Olarak
|
||||||
|
Kaldır
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Abonelik Ayarları'
|
Subscription Settings: 'Abonelik Ayarları'
|
||||||
Hide Videos on Watch: 'İzlenmiş Videoları Gizle'
|
Hide Videos on Watch: 'İzlenmiş Videoları Gizle'
|
||||||
|
@ -309,6 +313,12 @@ Settings:
|
||||||
Proxy Protocol: Vekil Sunucu Protokolü
|
Proxy Protocol: Vekil Sunucu Protokolü
|
||||||
Enable Tor / Proxy: Tor / Vekil Sunucu Etkinleştir
|
Enable Tor / Proxy: Tor / Vekil Sunucu Etkinleştir
|
||||||
Proxy Settings: Vekil Sunucu Ayarları
|
Proxy Settings: Vekil Sunucu Ayarları
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: Sponsor bölümü atlandığında bildir
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': SponsorBlock API
|
||||||
|
URL'si (Öntanımlı olarak https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: SponsorBlock'u Etkinleştir
|
||||||
|
SponsorBlock Settings: SponsorBlock Ayarları
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Hakkında'
|
About: 'Hakkında'
|
||||||
|
@ -340,7 +350,7 @@ About:
|
||||||
Latest FreeTube News: 'En Yeni FreeTube Haberleri'
|
Latest FreeTube News: 'En Yeni FreeTube Haberleri'
|
||||||
|
|
||||||
Translate via Weblate: Weblate'de Çevir
|
Translate via Weblate: Weblate'de Çevir
|
||||||
Website: Web Sitesi
|
Website: İnternet Sitesi
|
||||||
Source Code: Kaynak Kodları
|
Source Code: Kaynak Kodları
|
||||||
Release Notes: Sürüm Notları
|
Release Notes: Sürüm Notları
|
||||||
Blog: Blog
|
Blog: Blog
|
||||||
|
@ -363,8 +373,8 @@ About:
|
||||||
Please read the: Lütfen okuyun
|
Please read the: Lütfen okuyun
|
||||||
Chat on Matrix: Matrix'te sohbet et
|
Chat on Matrix: Matrix'te sohbet et
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Please check for duplicates before posting: Lütfen göndermeden önce yinelenmeleri
|
Please check for duplicates before posting: Lütfen bildirmeden önce bildirilmiş
|
||||||
denetleyin
|
olup olmadığını kontrol edin
|
||||||
GitHub issues: GitHub sorunları
|
GitHub issues: GitHub sorunları
|
||||||
Report a problem: Sorun bildir
|
Report a problem: Sorun bildir
|
||||||
FreeTube Wiki: FreeTube Wiki
|
FreeTube Wiki: FreeTube Wiki
|
||||||
|
@ -384,7 +394,7 @@ Profile:
|
||||||
Profile Preview: 'Profil Önizleme'
|
Profile Preview: 'Profil Önizleme'
|
||||||
Create Profile: 'Profil Oluştur'
|
Create Profile: 'Profil Oluştur'
|
||||||
Update Profile: 'Profili Güncelle'
|
Update Profile: 'Profili Güncelle'
|
||||||
Make Default Profile: 'Varsayılan Profil Yap'
|
Make Default Profile: 'Öntanımlı Profil Yap'
|
||||||
Delete Profile: 'Profili Sil'
|
Delete Profile: 'Profili Sil'
|
||||||
Are you sure you want to delete this profile?: 'Bu profili silmek istediğinizden
|
Are you sure you want to delete this profile?: 'Bu profili silmek istediğinizden
|
||||||
emin misiniz?'
|
emin misiniz?'
|
||||||
|
@ -393,9 +403,9 @@ Profile:
|
||||||
Your profile name cannot be empty: 'Profil adı boş bırakılamaz'
|
Your profile name cannot be empty: 'Profil adı boş bırakılamaz'
|
||||||
Profile has been created: 'Profil oluşturuldu'
|
Profile has been created: 'Profil oluşturuldu'
|
||||||
Profile has been updated: 'Profil güncellendi'
|
Profile has been updated: 'Profil güncellendi'
|
||||||
Your default profile has been set to $: 'Varsayılan profiliniz $ olarak ayarlandı'
|
Your default profile has been set to $: 'Öntanımlı profiliniz $ olarak ayarlandı'
|
||||||
Removed $ from your profiles: '$ Profillerinizden kaldırıldı'
|
Removed $ from your profiles: '$ Profillerinizden kaldırıldı'
|
||||||
Your default profile has been changed to your primary profile: 'Varsayılan profiliniz
|
Your default profile has been changed to your primary profile: 'Öntanımlı profiliniz
|
||||||
birincil profiliniz olarak değiştirildi'
|
birincil profiliniz olarak değiştirildi'
|
||||||
$ is now the active profile: '$ artık etkin profil'
|
$ is now the active profile: '$ artık etkin profil'
|
||||||
Subscription List: 'Abonelik Listesi'
|
Subscription List: 'Abonelik Listesi'
|
||||||
|
@ -417,13 +427,13 @@ Profile:
|
||||||
Profile Filter: Profil Filtresi
|
Profile Filter: Profil Filtresi
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Abone'
|
Subscriber: 'Abone'
|
||||||
Subscribers: 'Aboneler'
|
Subscribers: 'Abone'
|
||||||
Subscribe: 'Abone ol'
|
Subscribe: 'Abone ol'
|
||||||
Unsubscribe: 'Abonelikten çık'
|
Unsubscribe: 'Abonelikten çık'
|
||||||
Channel has been removed from your subscriptions: 'Kanal aboneliklerinizden kaldırıldı'
|
Channel has been removed from your subscriptions: 'Kanal aboneliklerinizden kaldırıldı'
|
||||||
Removed subscription from $ other channel(s): 'Diğer $ kanallarından abonelik kaldırıldı'
|
Removed subscription from $ other channel(s): 'Diğer $ kanallarından abonelik kaldırıldı'
|
||||||
Added channel to your subscriptions: 'Kanal aboneliklerinize eklendi'
|
Added channel to your subscriptions: 'Kanal aboneliklerinize eklendi'
|
||||||
Search Channel: 'Kanal ara'
|
Search Channel: 'Kanalda ara'
|
||||||
Your search results have returned 0 results: 'Arama sonuçlarınız 0 sonuç verdi'
|
Your search results have returned 0 results: 'Arama sonuçlarınız 0 sonuç verdi'
|
||||||
Sort By: 'Sırala'
|
Sort By: 'Sırala'
|
||||||
Videos:
|
Videos:
|
||||||
|
@ -514,7 +524,7 @@ Video:
|
||||||
Upcoming: 'İlk gösterim tarihi'
|
Upcoming: 'İlk gösterim tarihi'
|
||||||
Published on: 'Yayımlanma tarihi'
|
Published on: 'Yayımlanma tarihi'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ % önce'
|
Publicationtemplate: '$ % önce'
|
||||||
#& Videos
|
#& Videos
|
||||||
Audio:
|
Audio:
|
||||||
Best: En iyi
|
Best: En iyi
|
||||||
|
@ -533,6 +543,15 @@ Video:
|
||||||
Video has been removed from your saved list: Video, kaydedilen listenizden kaldırıldı
|
Video has been removed from your saved list: Video, kaydedilen listenizden kaldırıldı
|
||||||
Video has been saved: Video kaydedildi
|
Video has been saved: Video kaydedildi
|
||||||
Save Video: Videoyu Kaydet
|
Save Video: Videoyu Kaydet
|
||||||
|
translated from English: İngilizceden çevrildi
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: müzik konu dışı
|
||||||
|
interaction: etkileşim
|
||||||
|
self-promotion: kendini tanıtma
|
||||||
|
outro: çıkış
|
||||||
|
intro: giriş
|
||||||
|
sponsor: sponsor
|
||||||
|
Skipped segment: Atlanan bölüm
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -559,13 +578,13 @@ Playlist:
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: 'Tiyatro Modunu Aç/Kapat'
|
Toggle Theatre Mode: 'Tiyatro Modunu Aç/Kapat'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Video Biçimini Değiştir'
|
Change Video Formats: 'Video Biçimlerini Değiştir'
|
||||||
Use Dash Formats: 'Dash Biçimi Kullan'
|
Use Dash Formats: 'DASH Biçimlerini Kullan'
|
||||||
Use Legacy Formats: 'Eski Biçimleri Kullan'
|
Use Legacy Formats: 'Eski Biçimleri Kullan'
|
||||||
Use Audio Formats: 'Ses Biçimi Kullan'
|
Use Audio Formats: 'Ses Biçimlerini Kullan'
|
||||||
Dash formats are not available for this video: 'Dash biçimi bu video için kullanılabilir
|
Dash formats are not available for this video: 'DASH biçimleri bu video için kullanılabilir
|
||||||
değil'
|
değil'
|
||||||
Audio formats are not available for this video: 'Ses biçimi bu video için kullanılabilir
|
Audio formats are not available for this video: 'Ses biçimleri bu video için kullanılabilir
|
||||||
değil'
|
değil'
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Videoyu Paylaş'
|
Share Video: 'Videoyu Paylaş'
|
||||||
|
@ -635,34 +654,42 @@ Tooltips:
|
||||||
önüne geçer, ancak video süresi veya canlı yayın durumu gibi belirli bilgileri
|
önüne geçer, ancak video süresi veya canlı yayın durumu gibi belirli bilgileri
|
||||||
sağlamaz
|
sağlamaz
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: Bir video oynatılırken kullanılan biçimleri ayarlayın. Dash
|
Default Video Format: Bir video oynatılırken kullanılan biçimleri ayarlayın. DASH
|
||||||
biçimleri daha yüksek kalitelerde oynatabilir. Eski biçimler en fazla 720p ile
|
biçimleri daha yüksek kalitelerde oynatabilir. Eski biçimler en fazla 720p ile
|
||||||
sınırlıdır ancak daha az bant genişliği kullanır. Ses biçimleri yalnızca ses
|
sınırlıdır ancak daha az bant genişliği kullanır. Ses biçimleri yalnızca ses
|
||||||
akışlarıdır
|
akışlarıdır.
|
||||||
Proxy Videos Through Invidious: Videoları sunmak için YouTube ile doğrudan bağlantı
|
Proxy Videos Through Invidious: Videoları sunmak için YouTube ile doğrudan bağlantı
|
||||||
kurmak yerine Invidious'a bağlanılacak. API tercihini geçersiz kılar
|
kurmak yerine Invidious'a bağlanılacak. API tercihini geçersiz kılar.
|
||||||
Force Local Backend for Legacy Formats: Yalnızca Invidious API'si öntanımlı seçeneğiniz
|
Force Local Backend for Legacy Formats: Yalnızca Invidious API'si öntanımlı seçeneğiniz
|
||||||
olduğunda çalışır. Etkinleştirildiğinde, yerel API çalışacak ve Invidious tarafından
|
olduğunda çalışır. Etkinleştirildiğinde, yerel API çalışacak ve Invidious tarafından
|
||||||
döndürülen biçimler yerine onun döndürdüğü eski biçimler kullanılacaktır. Invidious
|
döndürülen biçimler yerine onun döndürdüğü eski biçimler kullanılacaktır. Invidious
|
||||||
tarafından döndürülen videolar ülke kısıtlamaları nedeniyle oynatılmadığında
|
tarafından döndürülen videolar ülke kısıtlamaları nedeniyle oynatılmadığında
|
||||||
yardımcı olur
|
yardımcı olur.
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: FreeTube'un API çağrıları için bağlanacağı Invidious örneği.
|
Invidious Instance: FreeTube'un API çağrıları için bağlanacağı Invidious örneği.
|
||||||
Aralarından seçim yapabileceğiniz herkese açık örneklerin bir listesini görmek
|
Aralarından seçim yapabileceğiniz herkese açık örneklerin bir listesini görmek
|
||||||
için geçerli örneği temizleyin
|
için geçerli örneği temizleyin.
|
||||||
Thumbnail Preference: FreeTube'daki tüm küçük resimler, öntanımlı küçük resim
|
Thumbnail Preference: FreeTube'daki tüm küçük resimler, öntanımlı küçük resim
|
||||||
yerine videonun bir karesiyle değiştirilecektir
|
yerine videonun bir karesiyle değiştirilecektir.
|
||||||
Fallback to Non-Preferred Backend on Failure: Etkinleştirildiğinde, tercih ettiğiniz
|
Fallback to Non-Preferred Backend on Failure: Etkinleştirildiğinde, tercih ettiğiniz
|
||||||
API'de bir sorun olduğunda FreeTube otomatik olarak tercih edilmeyen API'nizi
|
API'de bir sorun olduğunda FreeTube otomatik olarak tercih edilmeyen API'nizi
|
||||||
yedek yöntem olarak kullanmaya çalışır
|
yedek yöntem olarak kullanmaya çalışır.
|
||||||
Preferred API Backend: FreeTube'un veri elde etmek için kullandığı arka ucu seçin.
|
Preferred API Backend: FreeTube'un veri elde etmek için kullandığı arka ucu seçin.
|
||||||
Yerel API yerleşik bir çıkarıcıdır. Invidious API'si, bağlanmak için bir Invidious
|
Yerel API yerleşik bir çıkarıcıdır. Invidious API'si, bağlanmak için bir Invidious
|
||||||
sunucusu gerektirir.
|
sunucusu gerektirir.
|
||||||
Region for Trending: Trendlerin bölgesi, hangi ülkenin trend videolarını görüntülemek
|
Region for Trending: Trendlerin bölgesi, hangi ülkenin trend videolarını görüntülemek
|
||||||
istediğinizi seçmenize olanak tanır. Görüntülenen ülkelerden bazıları YouTube
|
istediğinizi seçmenize olanak tanır. Görüntülenen ülkelerden bazıları YouTube
|
||||||
tarafından desteklenmemektedir
|
tarafından desteklenmemektedir.
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Etkinleştirildiğinde, izleme sayfası kapatıldığında video
|
||||||
|
oynatma sırasında oluşturulan meta dosyaları otomatik olarak silinir.
|
||||||
Playing Next Video Interval: Sonraki video hemen oynatılıyor. İptal etmek için tıklayın.
|
Playing Next Video Interval: Sonraki video hemen oynatılıyor. İptal etmek için tıklayın.
|
||||||
| Sonraki video {nextVideoInterval} saniye içinde oynatılıyor. İptal etmek için
|
| Sonraki video {nextVideoInterval} saniye içinde oynatılıyor. İptal etmek için
|
||||||
tıklayın. | Sonraki video {nextVideoInterval} saniye içinde oynatılıyor. İptal etmek
|
tıklayın. | Sonraki video {nextVideoInterval} saniye içinde oynatılıyor. İptal etmek
|
||||||
için tıklayın.
|
için tıklayın.
|
||||||
More: Daha Fazla
|
More: Daha Fazla
|
||||||
|
Hashtags have not yet been implemented, try again later: Hashtag'ler henüz uygulanmadı,
|
||||||
|
daha sonra tekrar deneyin
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Bilinmeyen YouTube URL türü, uygulamada
|
||||||
|
açılamıyor
|
||||||
|
Open New Window: Yeni Pencere Aç
|
||||||
|
|
|
@ -85,15 +85,15 @@ Subscriptions:
|
||||||
Load More Videos: 'Завантажити більше відео'
|
Load More Videos: 'Завантажити більше відео'
|
||||||
Trending: 'Популярне'
|
Trending: 'Популярне'
|
||||||
Most Popular: 'Найпопулярніші'
|
Most Popular: 'Найпопулярніші'
|
||||||
Playlists: 'Списки відтворення'
|
Playlists: 'Добірки'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: 'Ваші списки відтворення'
|
Your Playlists: 'Ваші добірки'
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Збережені
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Збережені
|
||||||
відео порожні. Клацніть на кнопку збереження у куті відео, щоб воно було перелічено
|
відео порожні. Клацніть на кнопку збереження у куті відео, щоб воно було перелічено
|
||||||
тут
|
тут
|
||||||
Playlist Message: Ця сторінка не відображає повністю робочих списків відтворення.
|
Playlist Message: Ця сторінка не показує повністю робочих добірок. На ній перелічено
|
||||||
На ній перелічено лише відео, які ви зберегли або вибрали. Коли робота закінчиться,
|
лише відео, які ви зберегли або вибрали. Коли робота завершиться, усі відео, які
|
||||||
усі відео, які зараз знаходяться тут, буде переміщено до списку відтворення "Вибране".
|
зараз знаходяться тут, буде переміщено до добірки "Вибране".
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Історія'
|
History: 'Історія'
|
||||||
|
@ -113,8 +113,8 @@ Settings:
|
||||||
проблема, FreeTube спробує автоматично використати допоміжний API у якості резервного,
|
проблема, FreeTube спробує автоматично використати допоміжний API у якості резервного,
|
||||||
якщо він увімкнений'
|
якщо він увімкнений'
|
||||||
Enable Search Suggestions: 'Увімкнути рекомендації пошуку'
|
Enable Search Suggestions: 'Увімкнути рекомендації пошуку'
|
||||||
Default Landing Page: 'Головна сторінка за замовчуванням'
|
Default Landing Page: 'Типова головна сторінка'
|
||||||
Locale Preference: 'Локальні преференції'
|
Locale Preference: 'Локальні налаштування'
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: 'Головний API бекенд'
|
Preferred API Backend: 'Головний API бекенд'
|
||||||
Local API: 'Локальний API'
|
Local API: 'Локальний API'
|
||||||
|
@ -135,6 +135,7 @@ Settings:
|
||||||
#! List countries
|
#! List countries
|
||||||
View all Invidious instance information: Перегляд усіх відомостей про екземпляр
|
View all Invidious instance information: Перегляд усіх відомостей про екземпляр
|
||||||
Invidious
|
Invidious
|
||||||
|
System Default: За системними налаштуваннями
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Налаштування теми'
|
Theme Settings: 'Налаштування теми'
|
||||||
Match Top Bar with Main Color: 'Верхня панель основного кольору'
|
Match Top Bar with Main Color: 'Верхня панель основного кольору'
|
||||||
|
@ -174,17 +175,17 @@ Settings:
|
||||||
Turn on Subtitles by Default: 'Увімкнути субтитри за замовченням'
|
Turn on Subtitles by Default: 'Увімкнути субтитри за замовченням'
|
||||||
Autoplay Videos: 'Автоматичне відтворення відео'
|
Autoplay Videos: 'Автоматичне відтворення відео'
|
||||||
Proxy Videos Through Invidious: 'Проксі-відео через Invidious'
|
Proxy Videos Through Invidious: 'Проксі-відео через Invidious'
|
||||||
Autoplay Playlists: 'Автоматичне відтворення списків'
|
Autoplay Playlists: 'Автоматичне відтворення добірок'
|
||||||
Enable Theatre Mode by Default: 'Усталено увімкнений режим театру'
|
Enable Theatre Mode by Default: 'Типово увімкнути режим театру'
|
||||||
Default Volume: 'Гучніть за замовченням'
|
Default Volume: 'Типова гучність'
|
||||||
Default Playback Rate: 'Усталена швидкість відтворення'
|
Default Playback Rate: 'Типова швидкість відтворення'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: 'Формат відео за замовченням'
|
Default Video Format: 'Типовий формат відео'
|
||||||
Dash Formats: 'Формати Dash'
|
Dash Formats: 'Формати DASH'
|
||||||
Legacy Formats: 'Застарілі формати'
|
Legacy Formats: 'Застарілі формати'
|
||||||
Audio Formats: 'Аудіо формати'
|
Audio Formats: 'Аудіо формати'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Якість за замовченням'
|
Default Quality: 'Типова якість'
|
||||||
Auto: 'Автоматично'
|
Auto: 'Автоматично'
|
||||||
144p: '144p'
|
144p: '144p'
|
||||||
240p: '240p'
|
240p: '240p'
|
||||||
|
@ -196,6 +197,7 @@ Settings:
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
Playlist Next Video Interval: Інтервал відтворення наступного відео
|
Playlist Next Video Interval: Інтервал відтворення наступного відео
|
||||||
|
Next Video Interval: Інтервал до наступного відео
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Налаштування приватності'
|
Privacy Settings: 'Налаштування приватності'
|
||||||
Remember History: 'Збрігати історію'
|
Remember History: 'Збрігати історію'
|
||||||
|
@ -211,6 +213,7 @@ Settings:
|
||||||
Remove All Subscriptions / Profiles: 'Видалити всі підписки / профілі'
|
Remove All Subscriptions / Profiles: 'Видалити всі підписки / профілі'
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Справді
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Справді
|
||||||
хочете вилучити всі підписки та профілі? Цю дію не можна скасувати.'
|
хочете вилучити всі підписки та профілі? Цю дію не можна скасувати.'
|
||||||
|
Automatically Remove Video Meta Files: Автоматично вилучати метафайли відео
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Налаштування підписки'
|
Subscription Settings: 'Налаштування підписки'
|
||||||
Hide Videos on Watch: 'Ховати відео при перегляді'
|
Hide Videos on Watch: 'Ховати відео при перегляді'
|
||||||
|
@ -227,7 +230,7 @@ Settings:
|
||||||
Hide Popular Videos: 'Не показувати популярні відео'
|
Hide Popular Videos: 'Не показувати популярні відео'
|
||||||
Hide Live Chat: 'Не показувати живий чат'
|
Hide Live Chat: 'Не показувати живий чат'
|
||||||
Hide Active Subscriptions: Сховати активні підписки
|
Hide Active Subscriptions: Сховати активні підписки
|
||||||
Hide Playlists: Сховати списки відтворення
|
Hide Playlists: Сховати добірки
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: 'Налаштування даних'
|
Data Settings: 'Налаштування даних'
|
||||||
Select Import Type: 'Оберіть тип імпорту'
|
Select Import Type: 'Оберіть тип імпорту'
|
||||||
|
@ -303,6 +306,12 @@ Settings:
|
||||||
Proxy Protocol: Проксі-протокол
|
Proxy Protocol: Проксі-протокол
|
||||||
Enable Tor / Proxy: Увімкнути Tor / Проксі
|
Enable Tor / Proxy: Увімкнути Tor / Проксі
|
||||||
Proxy Settings: Налаштування проксі
|
Proxy Settings: Налаштування проксі
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: Сповіщати про пропуск спонсорованого відтинка
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': URL-адреса API SponsorBlock
|
||||||
|
(типово https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: Увімкнути SponsorBlock
|
||||||
|
SponsorBlock Settings: Налаштування SponsorBlock
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Про'
|
About: 'Про'
|
||||||
|
@ -410,9 +419,8 @@ Channel:
|
||||||
Oldest: 'Найдавніші'
|
Oldest: 'Найдавніші'
|
||||||
Most Popular: 'Найпопулярніші'
|
Most Popular: 'Найпопулярніші'
|
||||||
Playlists:
|
Playlists:
|
||||||
Playlists: 'Списки відтворення'
|
Playlists: 'Добірки'
|
||||||
This channel does not currently have any playlists: 'Цей канал наразі не має списків
|
This channel does not currently have any playlists: 'Цей канал наразі не має добірок'
|
||||||
відтворення'
|
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Last Video Added: 'Останнє додане відео'
|
Last Video Added: 'Останнє додане відео'
|
||||||
Newest: 'Найновіші'
|
Newest: 'Найновіші'
|
||||||
|
@ -438,9 +446,9 @@ Video:
|
||||||
Copy Invidious Channel Link: 'Копіювати посилання на канал Invidious'
|
Copy Invidious Channel Link: 'Копіювати посилання на канал Invidious'
|
||||||
View: 'Перегляд'
|
View: 'Перегляд'
|
||||||
Views: 'Перегляди'
|
Views: 'Перегляди'
|
||||||
Loop Playlist: 'Циклічний список відтворення'
|
Loop Playlist: 'Зациклити добірку'
|
||||||
Shuffle Playlist: 'Перемішати список відтворення'
|
Shuffle Playlist: 'Перемішати добірку'
|
||||||
Reverse Playlist: 'Змінити напрямок списку відтворення'
|
Reverse Playlist: 'Змінити напрямок добірки'
|
||||||
Play Next Video: 'Відтворити наступне відео'
|
Play Next Video: 'Відтворити наступне відео'
|
||||||
Play Previous Video: 'Відтворити попереднє відео'
|
Play Previous Video: 'Відтворити попереднє відео'
|
||||||
# Context is "X People Watching"
|
# Context is "X People Watching"
|
||||||
|
@ -509,6 +517,15 @@ Video:
|
||||||
Video has been removed from your saved list: Відео вилучено зі списку збережених
|
Video has been removed from your saved list: Відео вилучено зі списку збережених
|
||||||
Video has been saved: Відео збережено
|
Video has been saved: Відео збережено
|
||||||
Save Video: Зберегти відео
|
Save Video: Зберегти відео
|
||||||
|
translated from English: перекладено з англійської
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: музика по за темою
|
||||||
|
interaction: взаємодія
|
||||||
|
self-promotion: самореклама
|
||||||
|
outro: кінцівка
|
||||||
|
intro: вступ
|
||||||
|
sponsor: спонсор
|
||||||
|
Skipped segment: Пропущений відтинок
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -518,13 +535,13 @@ Videos:
|
||||||
#& Playlists
|
#& Playlists
|
||||||
Playlist:
|
Playlist:
|
||||||
#& About
|
#& About
|
||||||
View Full Playlist: 'Переглянути повний список відтворення'
|
View Full Playlist: 'Переглянути всю добірку'
|
||||||
Videos: 'Відео'
|
Videos: 'Відео'
|
||||||
View: 'Перегляд'
|
View: 'Перегляд'
|
||||||
Views: 'Переглядів'
|
Views: 'Переглядів'
|
||||||
Last Updated On: 'Востаннє оновлено'
|
Last Updated On: 'Востаннє оновлено'
|
||||||
Share Playlist:
|
Share Playlist:
|
||||||
Share Playlist: 'Поділитися списком відтворення'
|
Share Playlist: 'Поділитися добіркою'
|
||||||
Copy YouTube Link: 'Копіювати посилання youTube'
|
Copy YouTube Link: 'Копіювати посилання youTube'
|
||||||
Open in YouTube: 'Відкрити в YouTube'
|
Open in YouTube: 'Відкрити в YouTube'
|
||||||
Copy Invidious Link: 'Копіювати посилання Invidious'
|
Copy Invidious Link: 'Копіювати посилання Invidious'
|
||||||
|
@ -536,10 +553,10 @@ Playlist:
|
||||||
Toggle Theatre Mode: 'Перемкнути режим театру'
|
Toggle Theatre Mode: 'Перемкнути режим театру'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Зміна форматів відео'
|
Change Video Formats: 'Зміна форматів відео'
|
||||||
Use Dash Formats: 'Використовувати формати Dash'
|
Use Dash Formats: 'Використовувати формати DASH'
|
||||||
Use Legacy Formats: 'Використовувати застарілі формати'
|
Use Legacy Formats: 'Використовувати застарілі формати'
|
||||||
Use Audio Formats: 'Використовувати аудіоформати'
|
Use Audio Formats: 'Використовувати аудіоформати'
|
||||||
Dash formats are not available for this video: 'Формати Dash недоступні для цього
|
Dash formats are not available for this video: 'Формати DASH недоступні для цього
|
||||||
відео'
|
відео'
|
||||||
Audio formats are not available for this video: 'Аудіоформати недоступні для цього
|
Audio formats are not available for this video: 'Аудіоформати недоступні для цього
|
||||||
відео'
|
відео'
|
||||||
|
@ -587,36 +604,39 @@ Up Next: 'Далі вгору'
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Preferred API Backend: 'Виберіть сервер, який FreeTube використовує для отримання
|
Preferred API Backend: 'Виберіть сервер, який FreeTube використовує для отримання
|
||||||
даних. Локальний API є вбудованим витягувачем. Для API Invidious потрібен сервер
|
даних. Локальний API є вбудованим видобувачем. Для API Invidious потрібен сервер
|
||||||
Invidious для з'' єднання.'
|
Invidious для з'' єднання.'
|
||||||
Fallback to Non-Preferred Backend on Failure: 'Коли бажаний API має проблеми,
|
Fallback to Non-Preferred Backend on Failure: 'Коли бажаний API має проблеми,
|
||||||
FreeTube автоматично спробує використовувати ваш не вибраний API як запасний
|
FreeTube автоматично спробує використовувати ваш не вибраний API як запасний
|
||||||
метод, коли його увімкнено'
|
метод, коли його увімкнено.'
|
||||||
Thumbnail Preference: 'Усі ескізи у FreeTube заміняться на кадр відео, а не на
|
Thumbnail Preference: 'Усі ескізи у FreeTube заміняться на кадр відео, а не на
|
||||||
типову мініатюру'
|
типову мініатюру.'
|
||||||
Invidious Instance: 'Сервер Invidious, до якого FreeTube під''єднуватиметься для
|
Invidious Instance: 'Сервер Invidious, до якого FreeTube під''єднуватиметься для
|
||||||
викликів API. Очистьте поточний сервер, щоб побачити список загальнодоступних
|
викликів API. Очистьте поточний сервер, щоб побачити список загальнодоступних
|
||||||
серверів на вибір'
|
серверів на вибір.'
|
||||||
Region for Trending: 'Регіон популярного дозволяє вам вибрати популярні відео
|
Region for Trending: 'Регіон популярного дозволяє вам вибрати популярні відео
|
||||||
країни, які ви хочете бачити. Не всі показані країни насправді підтримуються
|
країни, які ви хочете бачити. Не всі показані країни насправді підтримуються
|
||||||
YouTube'
|
YouTube.'
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: 'Працює, лише якщо API Invidious використовується
|
Force Local Backend for Legacy Formats: 'Працює, лише якщо API Invidious використовується
|
||||||
типовим. Якщо увімкнено, локальний API буде запущено і використовуватиме застарілі
|
типовим. Якщо увімкнено, локальний API буде запущено і використовуватиме застарілі
|
||||||
формати, які було повернуто Invidious. Допомагає, коли відео, повернуті Invidious,
|
формати, які було повернуто Invidious. Допомагає, коли відео, повернуті Invidious,
|
||||||
не відтворюються через обмеження в країні'
|
не відтворюються через обмеження в країні.'
|
||||||
Proxy Videos Through Invidious: 'Під’єднається до Invidious, щоб дивитися відео,
|
Proxy Videos Through Invidious: 'Під’єднається до Invidious, щоб дивитися відео,
|
||||||
а не встановлювати пряме з’єднання з YouTube. Замінює налаштування API'
|
а не встановлювати пряме з’єднання з YouTube. Замінює налаштування API.'
|
||||||
Default Video Format: 'Встановіть формати, що використовуються під час відтворення
|
Default Video Format: 'Встановіть формати, що використовуються під час відтворення
|
||||||
відео. Формати Dash можуть відтворюватися в кращій якості. Старі формати мають
|
відео. Формати DASH можуть відтворюватися в кращій якості. Старі формати мають
|
||||||
обмеження у 720p, але використовують меншу пропускну здатність. Формати аудіо
|
обмеження у 720p, але використовують меншу пропускну здатність. Формати аудіо
|
||||||
— це лише аудіопотоки'
|
— це лише аудіопотоки.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: 'Якщо ввімкнено, FreeTube використовуватиме RSS замість
|
Fetch Feeds from RSS: 'Якщо ввімкнено, FreeTube використовуватиме RSS замість
|
||||||
стандартного способу захоплення каналу підписки. RSS швидше і запобігає блокуванню
|
стандартного способу захоплення каналу підписки. RSS швидше і запобігає блокуванню
|
||||||
ІР, але не надає дані, як-от тривалість відео або стан трансляції'
|
ІР, але не надає дані, як-от тривалість відео або стан трансляції'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: Якщо увімкнено, FreeTube автоматично видаляє метафайли,
|
||||||
|
створені під час відтворення відео, коли сторінку перегляду закрито.
|
||||||
Local API Error (Click to copy): 'Помилка локального API (натисніть, щоб скопіювати)'
|
Local API Error (Click to copy): 'Помилка локального API (натисніть, щоб скопіювати)'
|
||||||
Invidious API Error (Click to copy): 'Помилка Invidious API (натисніть, щоб скопіювати)'
|
Invidious API Error (Click to copy): 'Помилка Invidious API (натисніть, щоб скопіювати)'
|
||||||
Falling back to Invidious API: 'Повернення до API Invidious'
|
Falling back to Invidious API: 'Повернення до API Invidious'
|
||||||
|
@ -629,13 +649,13 @@ Loop is now disabled: 'Цикл вимкнено'
|
||||||
Loop is now enabled: 'Цикл увімкнено'
|
Loop is now enabled: 'Цикл увімкнено'
|
||||||
Shuffle is now disabled: 'Випадковий порядок вимкнено'
|
Shuffle is now disabled: 'Випадковий порядок вимкнено'
|
||||||
Shuffle is now enabled: 'Випадковий порядок увімкнено'
|
Shuffle is now enabled: 'Випадковий порядок увімкнено'
|
||||||
The playlist has been reversed: 'Список відтворення обернено'
|
The playlist has been reversed: 'Добірку обернено'
|
||||||
Playing Next Video: 'Відтворення наступного відео'
|
Playing Next Video: 'Відтворення наступного відео'
|
||||||
Playing Previous Video: 'Відтворення попереднього відео'
|
Playing Previous Video: 'Відтворення попереднього відео'
|
||||||
Playing next video in 5 seconds. Click to cancel: 'Відтворення наступного відео за
|
Playing next video in 5 seconds. Click to cancel: 'Відтворення наступного відео за
|
||||||
5 секунд. Клацніть, щоб скасувати операцію.'
|
5 секунд. Клацніть, щоб скасувати операцію.'
|
||||||
Canceled next video autoplay: 'Скасовано автовідтворення наступного відео'
|
Canceled next video autoplay: 'Скасовано автовідтворення наступного відео'
|
||||||
'The playlist has ended. Enable loop to continue playing': 'Список відтворення закінчився.
|
'The playlist has ended. Enable loop to continue playing': 'Добірка завершилася.
|
||||||
Увімкніть цикл, щоб продовжити відтворення'
|
Увімкніть цикл, щоб продовжити відтворення'
|
||||||
|
|
||||||
Yes: 'Так'
|
Yes: 'Так'
|
||||||
|
@ -645,3 +665,8 @@ Playing Next Video Interval: Відтворення наступного від
|
||||||
Клацніть, щоб скасувати. | Відтворення наступного відео через {nextVideoInterval}
|
Клацніть, щоб скасувати. | Відтворення наступного відео через {nextVideoInterval}
|
||||||
секунд. Клацніть, щоб скасувати.
|
секунд. Клацніть, щоб скасувати.
|
||||||
More: Докладніше
|
More: Докладніше
|
||||||
|
Hashtags have not yet been implemented, try again later: Хештеги ще не впроваджені,
|
||||||
|
спробуйте пізніше
|
||||||
|
Unknown YouTube url type, cannot be opened in app: Невідомий тип URL-адреси YouTube,
|
||||||
|
його не можна відкрити в застосункові
|
||||||
|
Open New Window: Відкрити нове вікно
|
||||||
|
|
|
@ -175,6 +175,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: 播放列表 下一个影片时间间隔
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: '订阅设置'
|
Subscription Settings: '订阅设置'
|
||||||
Hide Videos on Watch: '观看时隐藏视频'
|
Hide Videos on Watch: '观看时隐藏视频'
|
||||||
|
@ -222,6 +223,7 @@ Settings:
|
||||||
Clear Search Cache: 清除搜索缓存
|
Clear Search Cache: 清除搜索缓存
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您确定您想移除所有订阅和配置文件吗?这无法撤销。
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您确定您想移除所有订阅和配置文件吗?这无法撤销。
|
||||||
Remove All Subscriptions / Profiles: 移除所有订阅 / 配置文件
|
Remove All Subscriptions / Profiles: 移除所有订阅 / 配置文件
|
||||||
|
Automatically Remove Video Meta Files: 自动删除硬盘元数据文件
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Subscriptions have been successfully exported: 订阅已成功导出
|
Subscriptions have been successfully exported: 订阅已成功导出
|
||||||
This might take a while, please wait: 这可能需要一段时间,请稍候
|
This might take a while, please wait: 这可能需要一段时间,请稍候
|
||||||
|
@ -264,6 +266,7 @@ Settings:
|
||||||
Hide Video Views: 隐藏视频观看数量
|
Hide Video Views: 隐藏视频观看数量
|
||||||
Distraction Free Settings: 零打扰设置
|
Distraction Free Settings: 零打扰设置
|
||||||
Hide Active Subscriptions: 隐藏活跃的订阅
|
Hide Active Subscriptions: 隐藏活跃的订阅
|
||||||
|
Hide Playlists: 隐藏播放列表
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: 应用需要重启让修改生效。重启以应用修改?
|
The app needs to restart for changes to take effect. Restart and apply change?: 应用需要重启让修改生效。重启以应用修改?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Proxy Protocol: 代理协议
|
Proxy Protocol: 代理协议
|
||||||
|
@ -278,6 +281,7 @@ Settings:
|
||||||
Test Proxy: 测试代理
|
Test Proxy: 测试代理
|
||||||
Clicking on Test Proxy will send a request to: 点击测试代理将会发送一个请求给
|
Clicking on Test Proxy will send a request to: 点击测试代理将会发送一个请求给
|
||||||
Proxy Port Number: 代理端口号
|
Proxy Port Number: 代理端口号
|
||||||
|
Proxy Host: 代理主机
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: '关于'
|
About: '关于'
|
||||||
|
@ -305,6 +309,21 @@ About:
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
Source code: 源代码
|
Source code: 源代码
|
||||||
Beta: 测试版
|
Beta: 测试版
|
||||||
|
Website: 网站
|
||||||
|
Blog: 博客
|
||||||
|
Email: 电子邮件
|
||||||
|
Donate: 捐款
|
||||||
|
Credits: 贡献者
|
||||||
|
Translate: 翻译
|
||||||
|
Please read the: 请阅读
|
||||||
|
Chat on Matrix: 在 Matrix 上聊天
|
||||||
|
Mastodon: Mastodon
|
||||||
|
FAQ: 常见问题
|
||||||
|
FreeTube Wiki: FreeTube维基
|
||||||
|
Help: 说明
|
||||||
|
GitHub releases: GitHub 版本
|
||||||
|
View License: 查看授权
|
||||||
|
Licensed under the AGPLv3: 以 AGPLv3 协议授权
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: '订阅者'
|
Subscriber: '订阅者'
|
||||||
Subscribers: '订阅者'
|
Subscribers: '订阅者'
|
||||||
|
@ -414,6 +433,9 @@ Video:
|
||||||
Open Channel in YouTube: 在YouTube打开频道
|
Open Channel in YouTube: 在YouTube打开频道
|
||||||
Started streaming on: 开始在线直播于
|
Started streaming on: 开始在线直播于
|
||||||
Streamed on: 在线直播于
|
Streamed on: 在线直播于
|
||||||
|
Video has been removed from your saved list: 视频已从你的播放列表移除
|
||||||
|
Video has been saved: 视频已保存
|
||||||
|
Save Video: 保存视频到播放列表
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
|
|
@ -116,14 +116,15 @@ Settings:
|
||||||
Check for Latest Blog Posts: 檢查最新的部落格貼文
|
Check for Latest Blog Posts: 檢查最新的部落格貼文
|
||||||
Check for Updates: 檢查更新
|
Check for Updates: 檢查更新
|
||||||
View all Invidious instance information: 檢視所有 Invidious 站台的資訊
|
View all Invidious instance information: 檢視所有 Invidious 站台的資訊
|
||||||
|
System Default: 系統預設值
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: '主題設定'
|
Theme Settings: '主題設定'
|
||||||
Match Top Bar with Main Color: '頂部功能表欄對應主色彩'
|
Match Top Bar with Main Color: '頂部功能表欄對應主色彩'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: '基本主題'
|
Base Theme: '基本主題'
|
||||||
Black: '黑'
|
Black: '黑色'
|
||||||
Dark: '深'
|
Dark: '深色'
|
||||||
Light: '淺'
|
Light: '淺色'
|
||||||
Main Color Theme:
|
Main Color Theme:
|
||||||
Main Color Theme: '主題色'
|
Main Color Theme: '主題色'
|
||||||
Red: '紅'
|
Red: '紅'
|
||||||
|
@ -161,7 +162,7 @@ Settings:
|
||||||
Default Playback Rate: '預設播放速度'
|
Default Playback Rate: '預設播放速度'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: '預設影片格式'
|
Default Video Format: '預設影片格式'
|
||||||
Dash Formats: 'Dash格式'
|
Dash Formats: 'DASH 格式'
|
||||||
Legacy Formats: '傳統格式'
|
Legacy Formats: '傳統格式'
|
||||||
Audio Formats: '音訊格式'
|
Audio Formats: '音訊格式'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
|
@ -176,6 +177,8 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: 播放清單 下一個影片間隔時間
|
||||||
|
Next Video Interval: 下一個影片區段
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: '訂閱設定'
|
Subscription Settings: '訂閱設定'
|
||||||
Hide Videos on Watch: '觀看時隱藏影片'
|
Hide Videos on Watch: '觀看時隱藏影片'
|
||||||
|
@ -223,6 +226,7 @@ Settings:
|
||||||
Privacy Settings: 隱私設定
|
Privacy Settings: 隱私設定
|
||||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您確定要移除所有訂閱與設定檔嗎嗎? 注意:這無法復原。
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您確定要移除所有訂閱與設定檔嗎嗎? 注意:這無法復原。
|
||||||
Remove All Subscriptions / Profiles: 移除所有訂閱/設定檔
|
Remove All Subscriptions / Profiles: 移除所有訂閱/設定檔
|
||||||
|
Automatically Remove Video Meta Files: 自動刪除影片元檔案
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: 我要如何匯入我的訂閱?
|
How do I import my subscriptions?: 我要如何匯入我的訂閱?
|
||||||
Unknown data key: 未知的資料金鑰
|
Unknown data key: 未知的資料金鑰
|
||||||
|
@ -265,6 +269,7 @@ Settings:
|
||||||
Hide Recommended Videos: 隱藏推薦影片
|
Hide Recommended Videos: 隱藏推薦影片
|
||||||
Hide Channel Subscribers: 隱藏頻道訂閱者
|
Hide Channel Subscribers: 隱藏頻道訂閱者
|
||||||
Hide Active Subscriptions: 隱藏作用中的訂閱
|
Hide Active Subscriptions: 隱藏作用中的訂閱
|
||||||
|
Hide Playlists: 隱藏播放清單
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: 此變更需要重啟讓修改生效。重啟並且套用變更?
|
The app needs to restart for changes to take effect. Restart and apply change?: 此變更需要重啟讓修改生效。重啟並且套用變更?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
Error getting network information. Is your proxy configured properly?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎?
|
Error getting network information. Is your proxy configured properly?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎?
|
||||||
|
@ -280,6 +285,12 @@ Settings:
|
||||||
Proxy Protocol: 代理伺服器協定
|
Proxy Protocol: 代理伺服器協定
|
||||||
Enable Tor / Proxy: 啟用 Tor 或代理伺服器
|
Enable Tor / Proxy: 啟用 Tor 或代理伺服器
|
||||||
Proxy Settings: 代理伺服器設定
|
Proxy Settings: 代理伺服器設定
|
||||||
|
SponsorBlock Settings:
|
||||||
|
Notify when sponsor segment is skipped: 當贊助商片段被跳過時通知
|
||||||
|
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': SponsorBlock API
|
||||||
|
網址(預設為 https://sponsor.ajay.app)
|
||||||
|
Enable SponsorBlock: 啟用 SponsorBlock
|
||||||
|
SponsorBlock Settings: SponsorBlock 設定
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: '關於'
|
About: '關於'
|
||||||
|
@ -328,7 +339,7 @@ About:
|
||||||
room rules: 聊天室規則
|
room rules: 聊天室規則
|
||||||
Please read the: 請閱讀
|
Please read the: 請閱讀
|
||||||
Chat on Matrix: 在 Matrix 上聊天
|
Chat on Matrix: 在 Matrix 上聊天
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon(長毛象/萬象)
|
||||||
Please check for duplicates before posting: 提交前請檢查有無重複的問題
|
Please check for duplicates before posting: 提交前請檢查有無重複的問題
|
||||||
GitHub issues: GitHub 問題追蹤器
|
GitHub issues: GitHub 問題追蹤器
|
||||||
Report a problem: 回報問題
|
Report a problem: 回報問題
|
||||||
|
@ -363,7 +374,7 @@ Channel:
|
||||||
About:
|
About:
|
||||||
About: '關於'
|
About: '關於'
|
||||||
Channel Description: '頻道說明'
|
Channel Description: '頻道說明'
|
||||||
Featured Channels: '列出頻道'
|
Featured Channels: '推薦頻道'
|
||||||
Added channel to your subscriptions: 已新增頻道至您的訂閱
|
Added channel to your subscriptions: 已新增頻道至您的訂閱
|
||||||
Removed subscription from $ other channel(s): 從$個其他頻道移除訂閱
|
Removed subscription from $ other channel(s): 從$個其他頻道移除訂閱
|
||||||
Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除
|
Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除
|
||||||
|
@ -420,7 +431,7 @@ Video:
|
||||||
Minute: 分鐘
|
Minute: 分鐘
|
||||||
Published on: '發布於'
|
Published on: '發布於'
|
||||||
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
Publicationtemplate: '$ %前'
|
Publicationtemplate: '$ % 前'
|
||||||
#& Videos
|
#& Videos
|
||||||
Video has been removed from your history: 影片已從您的歷史紀錄中移除
|
Video has been removed from your history: 影片已從您的歷史紀錄中移除
|
||||||
Video has been marked as watched: 影片標記為已觀看
|
Video has been marked as watched: 影片標記為已觀看
|
||||||
|
@ -445,11 +456,20 @@ Video:
|
||||||
Open Channel in Invidious: 在Invidious開啟頻道
|
Open Channel in Invidious: 在Invidious開啟頻道
|
||||||
Copy YouTube Channel Link: 複製YouTube頻道連結
|
Copy YouTube Channel Link: 複製YouTube頻道連結
|
||||||
Open Channel in YouTube: 在YouTube開啟頻道
|
Open Channel in YouTube: 在YouTube開啟頻道
|
||||||
Started streaming on: '開始直播時間:'
|
Started streaming on: '開始直播時間'
|
||||||
Streamed on: 直播於
|
Streamed on: 直播於
|
||||||
Video has been removed from your saved list: 影片已從您的播放清單移除
|
Video has been removed from your saved list: 影片已從您的播放清單移除
|
||||||
Video has been saved: 影片已儲存
|
Video has been saved: 影片已儲存
|
||||||
Save Video: 儲存影片至播放清單
|
Save Video: 儲存影片至播放清單
|
||||||
|
translated from English: 從英文翻譯
|
||||||
|
Sponsor Block category:
|
||||||
|
music offtopic: 音樂離題
|
||||||
|
interaction: 互動
|
||||||
|
self-promotion: 自我推廣
|
||||||
|
outro: 其他
|
||||||
|
intro: 介紹
|
||||||
|
sponsor: 贊助商
|
||||||
|
Skipped segment: 已跳過的片段
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -477,11 +497,11 @@ Playlist:
|
||||||
Toggle Theatre Mode: '切換為劇院模式'
|
Toggle Theatre Mode: '切換為劇院模式'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: '變更影片格式'
|
Change Video Formats: '變更影片格式'
|
||||||
Use Dash Formats: '使用Dash格式'
|
Use Dash Formats: '使用 DASH 格式'
|
||||||
Use Legacy Formats: '使用傳統格式'
|
Use Legacy Formats: '使用傳統格式'
|
||||||
Use Audio Formats: '使用音訊格式'
|
Use Audio Formats: '使用音訊格式'
|
||||||
Audio formats are not available for this video: 這個影片沒有音訊格式
|
Audio formats are not available for this video: 這個影片沒有音訊格式
|
||||||
Dash formats are not available for this video: 這個影片沒有Dash格式
|
Dash formats are not available for this video: 這個影片沒有 DASH 格式
|
||||||
Share:
|
Share:
|
||||||
Share Video: '分享影片'
|
Share Video: '分享影片'
|
||||||
Copy Link: '複製連結'
|
Copy Link: '複製連結'
|
||||||
|
@ -500,7 +520,7 @@ Mini Player: '迷你播放器'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: '留言'
|
Comments: '留言'
|
||||||
Click to View Comments: '點擊查看留言'
|
Click to View Comments: '點擊查看留言'
|
||||||
Getting comment replies, please wait: '獲取留言中,請稍候...'
|
Getting comment replies, please wait: '擷取留言中,請稍候...'
|
||||||
Show Comments: '查看留言'
|
Show Comments: '查看留言'
|
||||||
Hide Comments: '隱藏留言'
|
Hide Comments: '隱藏留言'
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
@ -572,6 +592,7 @@ Profile:
|
||||||
$ selected: $個選取的
|
$ selected: $個選取的
|
||||||
Other Channels: 其他頻道
|
Other Channels: 其他頻道
|
||||||
Subscription List: 訂閱清單
|
Subscription List: 訂閱清單
|
||||||
|
Profile Filter: 設定檔篩選器
|
||||||
The playlist has been reversed: 播放清單已反轉
|
The playlist has been reversed: 播放清單已反轉
|
||||||
A new blog is now available, $. Click to view more: 已有新的部落格文章,$。點擊以檢視更多
|
A new blog is now available, $. Click to view more: 已有新的部落格文章,$。點擊以檢視更多
|
||||||
Download From Site: 從網站下載
|
Download From Site: 從網站下載
|
||||||
|
@ -579,17 +600,25 @@ Version $ is now available! Click for more details: 版本更新囉! 最新版
|
||||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: 沒有這個影片因為缺少格式。這個可能發生由於國家不可用。
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: 沒有這個影片因為缺少格式。這個可能發生由於國家不可用。
|
||||||
Tooltips:
|
Tooltips:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: 啟用後,FreeTube 將使用 RSS 而非預設方式來取得您的訂閱推送。RSS 更快而且可避免 IP 封鎖,但不提供某些訊息,如影片長度與即時狀態
|
Fetch Feeds from RSS: 啟用後,FreeTube將使用RSS代替它的預設方法來抓取您的訂閱來源。RSS的速度較快,而且可以防止IP封鎖,但它可能不會提供某些資訊,例如影片長度或是直播狀態。
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Default Video Format: 設定要用於影片播放的格式。Dash格式有更高的品質。傳統格式會限制在 720p但頻寬需求更低。音訊格式為僅有音訊的串流
|
Default Video Format: 設定要用於影片播放的格式。DASH 格式有更高的畫質。傳統格式會限制在 720p 但頻寬需求更低。音訊格式為僅有音訊的串流。
|
||||||
Proxy Videos Through Invidious: 將連線到 Invidious而非直接連線到 YouTube 來提供影片。覆寫 API 偏好
|
Proxy Videos Through Invidious: 將連線到 Invidious 而非直接連線到 YouTube 來提供影片。覆寫 API 偏好。
|
||||||
Force Local Backend for Legacy Formats: 僅當 Invidious API是您預設 API 時才有效。啟用後,區域 API
|
Force Local Backend for Legacy Formats: 僅當 Invidious API 是您預設 API 時才有效。啟用後,區域
|
||||||
將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious回傳的影片時有幫助
|
API 將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious 回傳的影片時有幫助。
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: FreeTube將連線為 API呼叫的Invidious實例。清除目前的實例以檢視可供選擇的公用實例清單
|
Invidious Instance: FreeTube 將連線到 Invidious 站台進行 API 呼叫。清除目前的站台以檢視可供選擇的公開站台清單。
|
||||||
Thumbnail Preference: FreeTube中所有縮圖都會被替換為影片畫面而非預設縮圖
|
Thumbnail Preference: FreeTube 中所有縮圖都會被替換為影片畫面而非預設縮圖。
|
||||||
Fallback to Non-Preferred Backend on Failure: 當您的偏好API 有問題時,FreeTube將自動嘗試使用您的非偏好API
|
Fallback to Non-Preferred Backend on Failure: 當您的偏好 API 有問題時,FreeTube 將自動嘗試使用您的非偏好
|
||||||
作為汰退方案
|
API 作為汰退方案。
|
||||||
Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious
|
Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious
|
||||||
API 需要 Invidious 伺服器才能連線。
|
API 需要 Invidious 伺服器才能連線。
|
||||||
Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援
|
Region for Trending: 熱門影片區域可以讓您選擇想要顯示哪個國家的熱門影片。注意:並非所有國家都被 YouTube 支援。
|
||||||
|
Privacy Settings:
|
||||||
|
Remove Video Meta Files: 如果啟用,FreeTube會在關閉觀看頁面時,自動刪除影片播放過程中建立的暫存檔案。
|
||||||
|
Playing Next Video Interval: 馬上播放下一個影片。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。|
|
||||||
|
播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。
|
||||||
|
More: 更多
|
||||||
|
Hashtags have not yet been implemented, try again later: 尚未實作主題標籤,請稍後再試
|
||||||
|
Unknown YouTube url type, cannot be opened in app: 未知的 YouTube url 類型,無法在應用程式開啟
|
||||||
|
Open New Window: 開啟新視窗
|
||||||
|
|
Loading…
Reference in New Issue