Merge branch 'development'
This commit is contained in:
commit
91b7570823
|
@ -22,7 +22,6 @@ module.exports = {
|
||||||
// order matters: from least important to most important in terms of overriding
|
// order matters: from least important to most important in terms of overriding
|
||||||
// Prettier + Vue: https://medium.com/@gogl.alex/how-to-properly-set-up-eslint-with-prettier-for-vue-or-nuxt-in-vscode-e42532099a9c
|
// Prettier + Vue: https://medium.com/@gogl.alex/how-to-properly-set-up-eslint-with-prettier-for-vue-or-nuxt-in-vscode-e42532099a9c
|
||||||
extends: [
|
extends: [
|
||||||
'prettier/vue',
|
|
||||||
'prettier',
|
'prettier',
|
||||||
'eslint:recommended',
|
'eslint:recommended',
|
||||||
'plugin:vue/recommended',
|
'plugin:vue/recommended',
|
||||||
|
|
|
@ -156,12 +156,12 @@ jobs:
|
||||||
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.pacman
|
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.pacman
|
||||||
path: build/freetube-${{ steps.versionNumber.outputs.result }}.pacman
|
path: build/freetube-${{ steps.versionNumber.outputs.result }}.pacman
|
||||||
|
|
||||||
- name: Upload Web Build
|
# - name: Upload Web Build
|
||||||
uses: actions/upload-artifact@v2
|
# uses: actions/upload-artifact@v2
|
||||||
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
|
# if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
|
||||||
with:
|
# with:
|
||||||
name: freetube_${{ steps.versionNumber.outputs.result }}_static_web
|
# name: freetube_${{ steps.versionNumber.outputs.result }}_static_web
|
||||||
path: dist/web
|
# path: dist/web
|
||||||
|
|
||||||
- name: Upload Windows .exe Artifact
|
- name: Upload Windows .exe Artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://freetubeapp.github.io/images/logoColor.png" width=500 align="center">
|
<img src="https://docs.freetubeapp.io/images/logoColor.png" width=500 align="center">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
FreeTube is an open source desktop YouTube player built with privacy in mind.
|
FreeTube is an open source desktop YouTube player built with privacy in mind.
|
||||||
|
|
BIN
_icons/icon.ico
BIN
_icons/icon.ico
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 162 KiB |
|
@ -0,0 +1,9 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" version="1">
|
||||||
|
<path style="opacity:0.2" d="M 8.2,5 C 5.8732,5 4,6.8732001 4,9.2000001 V 21.8 44.2 56.8 C 4,59.1268 5.8732,61 8.2,61 H 20.8 33.960547 43.2 C 52.5072,61 60,53.5072 60,44.2 V 36.921093 21.8 9.2000001 C 60,6.8732001 58.1268,5 55.8,5 H 43.2 20.8 Z"/>
|
||||||
|
<path style="fill:#e4e4e4" d="M 8.2,4 C 5.8732,4 4,5.8732001 4,8.2000001 V 20.8 43.2 55.8 C 4,58.1268 5.8732,60 8.2,60 H 20.8 33.960547 43.2 C 52.5072,60 60,52.5072 60,43.2 V 35.921093 20.8 8.2000001 C 60,5.8732001 58.1268,4 55.8,4 H 43.2 20.8 Z"/>
|
||||||
|
<path style="opacity:0.1" d="M 14.75,13 C 13.2265,13 12,14.274565 12,15.857422 v 30 C 12,50.143136 17.5,53 20.25,53 H 23 v -2.857422 -4.285156 -30 C 23,14.274565 21.7735,13 20.25,13 Z m 14.091797,0 C 27.267271,13 26,14.2265 26,15.75 v 5.5 C 26,22.7735 27.267271,24 28.841797,24 H 45.894531 C 50.157689,24 53,18.5 53,15.75 V 13 H 50.158203 45.894531 Z M 27.320312,27 A 1.2913161,1.1414724 0 0 0 26,28.142578 v 7.359375 7.359375 a 1.2913161,1.1414724 0 0 0 1.935547,0.986328 l 7.210937,-3.679687 7.208985,-3.679688 a 1.2913161,1.1414724 0 0 0 0,-1.976562 L 35.146484,30.833984 27.935547,27.154297 A 1.2913161,1.1414724 0 0 0 27.320312,27 Z"/>
|
||||||
|
<path style="fill:#f04242" d="M 14.75,12 C 13.2265,12 12,13.274286 12,14.857143 v 30 C 12,49.142857 17.5,52 20.25,52 H 23 v -2.857143 -4.285714 -30 C 23,13.274286 21.7735,12 20.25,12 Z"/>
|
||||||
|
<path style="fill:#f04242" d="M 26,20.25 C 26,21.7735 27.267579,23 28.842105,23 H 45.894737 C 50.157895,23 53,17.5 53,14.75 V 12 H 50.157895 45.894737 28.842105 C 27.267579,12 26,13.2265 26,14.75 Z"/>
|
||||||
|
<path style="fill:#14a4df" d="m 27.321275,26.000307 a 1.2913161,1.1414724 0 0 0 -1.321274,1.142629 v 7.358815 7.358816 a 1.2913161,1.1414724 0 0 0 1.936147,0.986925 l 7.209509,-3.679407 7.209511,-3.679409 a 1.2913161,1.1414724 0 0 0 0,-1.976244 l -7.209511,-3.679408 -7.209509,-3.679407 a 1.2913161,1.1414724 0 0 0 -0.614873,-0.15331 z"/>
|
||||||
|
<path style="fill:#ffffff;opacity:0.2" d="M 8.1992188 4 C 5.8724189 4 4 5.8724189 4 8.1992188 L 4 9.1992188 C 4 6.8724189 5.8724189 5 8.1992188 5 L 55.800781 5 C 58.127581 5 60 6.8724189 60 9.1992188 L 60 8.1992188 C 60 5.8724189 58.127581 4 55.800781 4 L 8.1992188 4 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -16,10 +16,14 @@ if (platform == 'darwin') {
|
||||||
} else if (platform == 'linux') {
|
} else if (platform == 'linux') {
|
||||||
let arch = Arch.x64
|
let arch = Arch.x64
|
||||||
|
|
||||||
if (args[2] === 'arm') {
|
if (args[2] === 'arm64') {
|
||||||
arch = Arch.arm64
|
arch = Arch.arm64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args[3] === 'arm32') {
|
||||||
|
arch = Arch.armv7l
|
||||||
|
}
|
||||||
|
|
||||||
targets = Platform.LINUX.createTarget(['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'], arch)
|
targets = Platform.LINUX.createTarget(['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'], arch)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +44,7 @@ const config = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
files: ['_icons/iconColor.*', './dist/**/*', '!./dist/web/**/*'],
|
files: ['_icons/iconColor.*', 'icon.svg', './dist/**/*', '!./dist/web/**/*'],
|
||||||
dmg: {
|
dmg: {
|
||||||
contents: [
|
contents: [
|
||||||
{
|
{
|
||||||
|
@ -62,7 +66,7 @@ const config = {
|
||||||
},
|
},
|
||||||
linux: {
|
linux: {
|
||||||
category: 'Network',
|
category: 'Network',
|
||||||
icon: '_icons/icon.png',
|
icon: '_icons/icon.svg',
|
||||||
target: ['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'],
|
target: ['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'],
|
||||||
},
|
},
|
||||||
mac: {
|
mac: {
|
||||||
|
@ -80,7 +84,7 @@ const config = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
win: {
|
win: {
|
||||||
icon: '_icons/iconColor.ico',
|
icon: '_icons/icon.ico',
|
||||||
target: ['nsis', 'zip', 'portable', 'squirrel'],
|
target: ['nsis', 'zip', 'portable', 'squirrel'],
|
||||||
},
|
},
|
||||||
nsis: {
|
nsis: {
|
||||||
|
|
|
@ -15,7 +15,7 @@ const whiteListedModules = []
|
||||||
const config = {
|
const config = {
|
||||||
name: 'main',
|
name: 'main',
|
||||||
mode: process.env.NODE_ENV,
|
mode: process.env.NODE_ENV,
|
||||||
devtool: isDevMode ? '#cheap-module-eval-source-map' : false,
|
devtool: isDevMode ? 'eval-cheap-module-source-map' : false,
|
||||||
entry: {
|
entry: {
|
||||||
main: path.join(__dirname, '../src/main/index.js'),
|
main: path.join(__dirname, '../src/main/index.js'),
|
||||||
},
|
},
|
||||||
|
@ -24,18 +24,19 @@ const config = {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.(j|t)s$/,
|
test: /\.(j|t)s$/,
|
||||||
loader: ['babel-loader'],
|
use: 'babel-loader',
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.node$/,
|
test: /\.node$/,
|
||||||
use: 'node-loader',
|
loader: 'node-loader',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
node: {
|
node: {
|
||||||
__dirname: isDevMode,
|
__dirname: isDevMode,
|
||||||
__filename: isDevMode,
|
__filename: isDevMode,
|
||||||
|
global: isDevMode,
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
|
|
|
@ -18,7 +18,7 @@ const whiteListedModules = ['vue']
|
||||||
const config = {
|
const config = {
|
||||||
name: 'renderer',
|
name: 'renderer',
|
||||||
mode: process.env.NODE_ENV,
|
mode: process.env.NODE_ENV,
|
||||||
devtool: isDevMode ? '#cheap-module-eval-source-map' : false,
|
devtool: isDevMode ? 'eval-cheap-module-source-map' : false,
|
||||||
entry: {
|
entry: {
|
||||||
renderer: path.join(__dirname, '../src/renderer/main.js'),
|
renderer: path.join(__dirname, '../src/renderer/main.js'),
|
||||||
},
|
},
|
||||||
|
@ -37,7 +37,7 @@ const config = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.node$/,
|
test: /\.node$/,
|
||||||
use: 'node-loader',
|
loader: 'node-loader',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.vue$/,
|
test: /\.vue$/,
|
||||||
|
@ -102,6 +102,7 @@ const config = {
|
||||||
node: {
|
node: {
|
||||||
__dirname: isDevMode,
|
__dirname: isDevMode,
|
||||||
__filename: isDevMode,
|
__filename: isDevMode,
|
||||||
|
global: isDevMode,
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
// new WriteFilePlugin(),
|
// new WriteFilePlugin(),
|
||||||
|
|
|
@ -13,7 +13,7 @@ const isDevMode = process.env.NODE_ENV === 'development'
|
||||||
const config = {
|
const config = {
|
||||||
name: 'workers',
|
name: 'workers',
|
||||||
mode: process.env.NODE_ENV,
|
mode: process.env.NODE_ENV,
|
||||||
devtool: isDevMode ? '#cheap-module-eval-source-map' : false,
|
devtool: isDevMode ? 'eval-cheap-module-source-map' : false,
|
||||||
entry: {
|
entry: {
|
||||||
workerSample: path.join(__dirname, '../src/utilities/workerSample.ts'),
|
workerSample: path.join(__dirname, '../src/utilities/workerSample.ts'),
|
||||||
},
|
},
|
||||||
|
@ -32,13 +32,14 @@ const config = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.node$/,
|
test: /\.node$/,
|
||||||
use: 'node-loader',
|
loader: 'node-loader',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
node: {
|
node: {
|
||||||
__dirname: isDevMode,
|
__dirname: isDevMode,
|
||||||
__filename: isDevMode,
|
__filename: isDevMode,
|
||||||
|
global: isDevMode,
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
// new WriteFilePlugin(),
|
// new WriteFilePlugin(),
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
101
package.json
101
package.json
|
@ -8,6 +8,7 @@
|
||||||
"url": "https://github.com/FreeTubeApp/FreeTube/issues"
|
"url": "https://github.com/FreeTubeApp/FreeTube/issues"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@electron/remote": "^1.0.4",
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.34",
|
"@fortawesome/fontawesome-svg-core": "^1.2.34",
|
||||||
"@fortawesome/free-brands-svg-icons": "^5.15.2",
|
"@fortawesome/free-brands-svg-icons": "^5.15.2",
|
||||||
"@fortawesome/free-solid-svg-icons": "^5.15.2",
|
"@fortawesome/free-solid-svg-icons": "^5.15.2",
|
||||||
|
@ -15,11 +16,11 @@
|
||||||
"@silvermine/videojs-quality-selector": "^1.2.4",
|
"@silvermine/videojs-quality-selector": "^1.2.4",
|
||||||
"autolinker": "^3.14.2",
|
"autolinker": "^3.14.2",
|
||||||
"bulma-pro": "^0.2.0",
|
"bulma-pro": "^0.2.0",
|
||||||
"dateformat": "^4.4.1",
|
"dateformat": "^4.5.1",
|
||||||
"electron-context-menu": "^2.4.0",
|
"electron-context-menu": "^2.5.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.5.1",
|
"jquery": "^3.6.0",
|
||||||
"js-yaml": "^4.0.0",
|
"js-yaml": "^4.0.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
|
@ -27,8 +28,8 @@
|
||||||
"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",
|
||||||
"opml-to-json": "1.0.1",
|
"opml-to-json": "^1.0.1",
|
||||||
"rss-parser": "^3.10.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",
|
||||||
|
@ -39,73 +40,73 @@
|
||||||
"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.22.4",
|
"vue-i18n": "^8.23.0",
|
||||||
"vue-observe-visibility": "^1.0.0",
|
"vue-observe-visibility": "^1.0.0",
|
||||||
"vue-router": "^3.4.9",
|
"vue-router": "^3.5.1",
|
||||||
"vuex": "^3.6.0",
|
"vuex": "^3.6.2",
|
||||||
"xml2json": "^0.12.0",
|
"xml2json": "^0.12.0",
|
||||||
"youtube-chat": "^1.1.0",
|
"youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git",
|
||||||
"youtube-suggest": "^1.1.0",
|
"youtube-suggest": "^1.1.0",
|
||||||
"yt-channel-info": "^1.2.2",
|
"yt-channel-info": "^1.3.0",
|
||||||
"yt-comment-scraper": "^3.0.0",
|
"yt-comment-scraper": "^3.0.2",
|
||||||
"yt-dash-manifest-generator": "1.1.0",
|
"yt-dash-manifest-generator": "1.1.0",
|
||||||
"yt-trending-scraper": "1.1.0",
|
"yt-trending-scraper": "^1.1.0",
|
||||||
"yt-xml2vtt": "^1.2.0",
|
"yt-xml2vtt": "^1.2.0",
|
||||||
"ytdl-core": "^4.4.5",
|
"ytdl-core": "^4.5.0",
|
||||||
"ytpl": "^2.0.5",
|
"ytpl": "^2.0.5",
|
||||||
"ytsr": "^3.2.4"
|
"ytsr": "^3.3.1"
|
||||||
},
|
},
|
||||||
"description": "A private YouTube client",
|
"description": "A private YouTube client",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.10",
|
"@babel/core": "^7.13.8",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
"@babel/plugin-proposal-class-properties": "^7.13.0",
|
||||||
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
"@babel/plugin-proposal-object-rest-spread": "^7.13.8",
|
||||||
"@babel/preset-env": "^7.12.11",
|
"@babel/preset-env": "^7.13.9",
|
||||||
"@babel/preset-typescript": "^7.12.7",
|
"@babel/preset-typescript": "^7.13.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.14.0",
|
"@typescript-eslint/eslint-plugin": "^4.16.1",
|
||||||
"@typescript-eslint/parser": "^4.14.0",
|
"@typescript-eslint/parser": "^4.16.1",
|
||||||
"acorn": "^8.0.4",
|
"acorn": "^8.0.5",
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"babel-loader": "^8.2.2",
|
"babel-loader": "^8.2.2",
|
||||||
"copy-webpack-plugin": "6.4.0",
|
"copy-webpack-plugin": "8.0.0",
|
||||||
"css-loader": "^5.0.1",
|
"css-loader": "^5.1.1",
|
||||||
"devtron": "^1.4.0",
|
"devtron": "^1.4.0",
|
||||||
"electron": "11.1.1",
|
"electron": "^12.0.0",
|
||||||
"electron-builder": "^22.9.1",
|
"electron-builder": "^22.10.5",
|
||||||
"electron-builder-squirrel-windows": "^22.10.4",
|
"electron-builder-squirrel-windows": "^22.10.5",
|
||||||
"electron-debug": "^3.2.0",
|
"electron-debug": "^3.2.0",
|
||||||
"electron-rebuild": "^2.3.4",
|
"electron-rebuild": "^2.3.5",
|
||||||
"eslint": "^7.18.0",
|
"eslint": "^7.21.0",
|
||||||
"eslint-config-prettier": "^7.2.0",
|
"eslint-config-prettier": "^8.1.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
"eslint-plugin-import": "^2.22.1",
|
"eslint-plugin-import": "^2.22.1",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-prettier": "^3.3.1",
|
"eslint-plugin-prettier": "^3.3.1",
|
||||||
"eslint-plugin-promise": "^4.2.1",
|
"eslint-plugin-promise": "^4.3.1",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"eslint-plugin-vue": "^7.4.1",
|
"eslint-plugin-vue": "^7.7.0",
|
||||||
"fast-glob": "^3.2.5",
|
"fast-glob": "^3.2.5",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"html-webpack-plugin": "^4.5.1",
|
"html-webpack-plugin": "^5.2.0",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
"mini-css-extract-plugin": "^1.3.4",
|
"mini-css-extract-plugin": "^1.3.9",
|
||||||
"node-abi": "^2.19.3",
|
"node-abi": "^2.20.0",
|
||||||
"node-loader": "^1.0.2",
|
"node-loader": "^1.0.2",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
"sass": "^1.32.5",
|
"sass": "^1.32.8",
|
||||||
"sass-loader": "^10.1.1",
|
"sass-loader": "^11.0.1",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
"tree-kill": "1.2.2",
|
"tree-kill": "1.2.2",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "^4.2.2",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"vue-devtools": "^5.1.4",
|
"vue-devtools": "^5.1.4",
|
||||||
"vue-eslint-parser": "^7.4.1",
|
"vue-eslint-parser": "^7.6.0",
|
||||||
"vue-loader": "^15.9.6",
|
"vue-loader": "^15.9.6",
|
||||||
"vue-style-loader": "^4.1.2",
|
"vue-style-loader": "^4.1.3",
|
||||||
"vue-template-compiler": "^2.6.12",
|
"vue-template-compiler": "^2.6.12",
|
||||||
"webpack": "4.44.2",
|
"webpack": "^5.24.3",
|
||||||
"webpack-cli": "3.3.12",
|
"webpack-cli": "^4.5.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",
|
||||||
|
@ -119,9 +120,11 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "run-s rebuild:electron pack build-release",
|
"build": "run-s rebuild:electron pack build-release",
|
||||||
"build:arm": "run-s rebuild:electron pack build-release:arm",
|
"build:arm64": "run-s rebuild:electron pack build-release:arm64",
|
||||||
|
"build:arm32": "run-s rebuild:electron pack build-release:arm32",
|
||||||
"build-release": "node _scripts/build.js",
|
"build-release": "node _scripts/build.js",
|
||||||
"build-release:arm": "node _scripts/build.js arm",
|
"build-release:arm64": "node _scripts/build.js arm64",
|
||||||
|
"build-release:arm32": "node _scripts/build.js arm32",
|
||||||
"debug": "run-s rebuild:electron debug-runner",
|
"debug": "run-s rebuild:electron debug-runner",
|
||||||
"debug-runner": "node _scripts/dev-runner.js --remote-debug",
|
"debug-runner": "node _scripts/dev-runner.js --remote-debug",
|
||||||
"dev": "run-s rebuild:electron dev-runner",
|
"dev": "run-s rebuild:electron dev-runner",
|
||||||
|
@ -133,11 +136,11 @@
|
||||||
"jest:watch": "jest --watch",
|
"jest:watch": "jest --watch",
|
||||||
"lint-fix": "eslint --fix --ext .js,.ts,.vue ./",
|
"lint-fix": "eslint --fix --ext .js,.ts,.vue ./",
|
||||||
"lint": "eslint --ext .js,.ts,.vue ./",
|
"lint": "eslint --ext .js,.ts,.vue ./",
|
||||||
"pack": "run-p pack:main pack:renderer pack:web pack:workers",
|
"pack": "run-p pack:main pack:renderer pack:workers",
|
||||||
"pack:main": "webpack --mode=production --env.NODE_ENV=production --hide-modules --config _scripts/webpack.main.config.js",
|
"pack:main": "webpack --mode=production --node-env=production --config _scripts/webpack.main.config.js",
|
||||||
"pack:renderer": "webpack --mode=production --env.NODE_ENV=production --hide-modules --config _scripts/webpack.renderer.config.js",
|
"pack:renderer": "webpack --mode=production --node-env=production --config _scripts/webpack.renderer.config.js",
|
||||||
"pack:web": "webpack --mode=production --env.NODE_ENV=production --hide-modules --config _scripts/webpack.web.config.js",
|
"pack:web": "webpack --mode=production --node-env=production --config _scripts/webpack.web.config.js",
|
||||||
"pack:workers": "webpack --mode=production --env.NODE_ENV=production --hide-modules --config _scripts/webpack.workers.config.js",
|
"pack:workers": "webpack --mode=production --node-env=production --config _scripts/webpack.workers.config.js",
|
||||||
"postinstall": "electron-rebuild",
|
"postinstall": "electron-rebuild",
|
||||||
"prettier": "prettier --write \"{src,_scripts}/**/*.{js,ts,vue}\"",
|
"prettier": "prettier --write \"{src,_scripts}/**/*.{js,ts,vue}\"",
|
||||||
"rebuild:electron": "run-s electron-builder-install electron-rebuild",
|
"rebuild:electron": "run-s electron-builder-install electron-rebuild",
|
||||||
|
|
|
@ -2,6 +2,8 @@ import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron'
|
||||||
import { productName } from '../../package.json'
|
import { productName } from '../../package.json'
|
||||||
import Datastore from 'nedb'
|
import Datastore from 'nedb'
|
||||||
|
|
||||||
|
require('@electron/remote/main').initialize()
|
||||||
|
|
||||||
require('electron-context-menu')({
|
require('electron-context-menu')({
|
||||||
showSearchWithGoogle: false,
|
showSearchWithGoogle: false,
|
||||||
showSaveImageAs: true,
|
showSaveImageAs: true,
|
||||||
|
@ -32,6 +34,9 @@ let startupUrl
|
||||||
// This line can possible be removed if the issue is fixed upstream
|
// This line can possible be removed if the issue is fixed upstream
|
||||||
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors')
|
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
|
// 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.
|
// remove so we can register each time as we run the app.
|
||||||
app.removeAsDefaultProtocolClient('freetube')
|
app.removeAsDefaultProtocolClient('freetube')
|
||||||
|
@ -226,7 +231,8 @@ function createWindow (useProxy = false, proxyUrl = '') {
|
||||||
nodeIntegrationInWorker: false,
|
nodeIntegrationInWorker: false,
|
||||||
webSecurity: false,
|
webSecurity: false,
|
||||||
backgroundThrottling: false,
|
backgroundThrottling: false,
|
||||||
enableRemoteModule: true
|
enableRemoteModule: true,
|
||||||
|
contextIsolation: false
|
||||||
},
|
},
|
||||||
show: false
|
show: false
|
||||||
})
|
})
|
||||||
|
|
|
@ -284,20 +284,11 @@ 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('getVideoIdFromUrl', url).then((result) => {
|
v.$store.dispatch('getVideoParamsFromUrl', url).then(({ videoId, timestamp }) => {
|
||||||
if (result) {
|
if (videoId) {
|
||||||
v.$router.push({
|
v.$router.push({
|
||||||
path: `/watch/${result}`
|
path: `/watch/${videoId}`,
|
||||||
})
|
query: timestamp ? { timestamp } : {}
|
||||||
} else {
|
|
||||||
v.$router.push({
|
|
||||||
path: `/search/${encodeURIComponent(url)}`,
|
|
||||||
query: {
|
|
||||||
sortBy: v.searchSettings.sortBy,
|
|
||||||
time: v.searchSettings.time,
|
|
||||||
type: v.searchSettings.type,
|
|
||||||
duration: v.searchSettings.duration
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -6,11 +6,11 @@ import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
|
||||||
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
|
||||||
import FtPrompt from '../ft-prompt/ft-prompt.vue'
|
import FtPrompt from '../ft-prompt/ft-prompt.vue'
|
||||||
|
|
||||||
import { remote } from 'electron'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import { opmlToJSON } from 'opml-to-json'
|
import { opmlToJSON } from 'opml-to-json'
|
||||||
import ytch from 'yt-channel-info'
|
import ytch from 'yt-channel-info'
|
||||||
|
|
||||||
|
const remote = require('@electron/remote')
|
||||||
const app = remote.app
|
const app = remote.app
|
||||||
const dialog = remote.dialog
|
const dialog = remote.dialog
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,9 @@ export default Vue.extend({
|
||||||
hidePopularVideos: function () {
|
hidePopularVideos: function () {
|
||||||
return this.$store.getters.getHidePopularVideos
|
return this.$store.getters.getHidePopularVideos
|
||||||
},
|
},
|
||||||
|
hidePlaylists: function () {
|
||||||
|
return this.$store.getters.getHidePlaylists
|
||||||
|
},
|
||||||
hideLiveChat: function () {
|
hideLiveChat: function () {
|
||||||
return this.$store.getters.getHideLiveChat
|
return this.$store.getters.getHideLiveChat
|
||||||
},
|
},
|
||||||
|
@ -61,6 +64,7 @@ export default Vue.extend({
|
||||||
'updateHideRecommendedVideos',
|
'updateHideRecommendedVideos',
|
||||||
'updateHideTrendingVideos',
|
'updateHideTrendingVideos',
|
||||||
'updateHidePopularVideos',
|
'updateHidePopularVideos',
|
||||||
|
'updateHidePlaylists',
|
||||||
'updateHideLiveChat',
|
'updateHideLiveChat',
|
||||||
'updateHideActiveSubscriptions',
|
'updateHideActiveSubscriptions',
|
||||||
'updatePlayNextVideo',
|
'updatePlayNextVideo',
|
||||||
|
|
|
@ -59,6 +59,12 @@
|
||||||
:default-value="hidePopularVideos"
|
:default-value="hidePopularVideos"
|
||||||
@change="updateHidePopularVideos"
|
@change="updateHidePopularVideos"
|
||||||
/>
|
/>
|
||||||
|
<ft-toggle-switch
|
||||||
|
:label="$t('Settings.Distraction Free Settings.Hide Playlists')"
|
||||||
|
:compact="true"
|
||||||
|
:default-value="hidePlaylists"
|
||||||
|
@change="updateHidePlaylists"
|
||||||
|
/>
|
||||||
<ft-toggle-switch
|
<ft-toggle-switch
|
||||||
:label="$t('Settings.Distraction Free Settings.Hide Live Chat')"
|
:label="$t('Settings.Distraction Free Settings.Hide Live Chat')"
|
||||||
:compact="true"
|
:compact="true"
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
.card {
|
|
||||||
width: 85%;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
.card {
|
||||||
|
width: 85%;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .select-label {
|
||||||
|
width: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .select {
|
||||||
|
text-align-last: center;
|
||||||
|
}
|
|
@ -6,15 +6,17 @@ import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue'
|
||||||
import FtChannelBubble from '../../components/ft-channel-bubble/ft-channel-bubble.vue'
|
import FtChannelBubble from '../../components/ft-channel-bubble/ft-channel-bubble.vue'
|
||||||
import FtButton from '../../components/ft-button/ft-button.vue'
|
import FtButton from '../../components/ft-button/ft-button.vue'
|
||||||
import FtPrompt from '../../components/ft-prompt/ft-prompt.vue'
|
import FtPrompt from '../../components/ft-prompt/ft-prompt.vue'
|
||||||
|
import FtSelect from '../ft-select/ft-select.vue'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'FtProfileAllChannelsList',
|
name: 'FtProfileFilterChannelsList',
|
||||||
components: {
|
components: {
|
||||||
'ft-card': FtCard,
|
'ft-card': FtCard,
|
||||||
'ft-flex-box': FtFlexBox,
|
'ft-flex-box': FtFlexBox,
|
||||||
'ft-channel-bubble': FtChannelBubble,
|
'ft-channel-bubble': FtChannelBubble,
|
||||||
'ft-button': FtButton,
|
'ft-button': FtButton,
|
||||||
'ft-prompt': FtPrompt
|
'ft-prompt': FtPrompt,
|
||||||
|
'ft-select': FtSelect
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
profile: {
|
profile: {
|
||||||
|
@ -25,7 +27,8 @@ export default Vue.extend({
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
channels: [],
|
channels: [],
|
||||||
selectedLength: 0
|
selectedLength: 0,
|
||||||
|
filteredProfileIndex: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -38,44 +41,21 @@ export default Vue.extend({
|
||||||
profileList: function () {
|
profileList: function () {
|
||||||
return this.$store.getters.getProfileList
|
return this.$store.getters.getProfileList
|
||||||
},
|
},
|
||||||
|
profileNameList: function () {
|
||||||
|
return this.profileList.flatMap((profile) => profile.name !== this.profile.name ? [profile.name] : [])
|
||||||
|
},
|
||||||
selectedText: function () {
|
selectedText: function () {
|
||||||
const localeText = this.$t('Profile.$ selected')
|
const localeText = this.$t('Profile.$ selected')
|
||||||
return localeText.replace('$', this.selectedLength)
|
return localeText.replace('$', this.selectedLength)
|
||||||
},
|
|
||||||
primaryProfile: function () {
|
|
||||||
return JSON.parse(JSON.stringify(this.profileList[0]))
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
profile: function () {
|
profile: 'updateChannelList',
|
||||||
this.channels = JSON.parse(JSON.stringify(this.primaryProfile.subscriptions)).sort((a, b) => {
|
filteredProfileIndex: 'updateChannelList'
|
||||||
const nameA = a.name.toLowerCase()
|
|
||||||
const nameB = b.name.toLowerCase()
|
|
||||||
if (nameA < nameB) {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
if (nameA > nameB) {
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}).filter((channel) => {
|
|
||||||
const index = this.profile.subscriptions.findIndex((sub) => {
|
|
||||||
return sub.id === channel.id
|
|
||||||
})
|
|
||||||
|
|
||||||
return index === -1
|
|
||||||
}).map((channel) => {
|
|
||||||
if (this.backendPreference === 'invidious') {
|
|
||||||
channel.thumbnail = channel.thumbnail.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
|
||||||
}
|
|
||||||
channel.selected = false
|
|
||||||
return channel
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
if (typeof this.profile.subscriptions !== 'undefined') {
|
if (typeof this.profile.subscriptions !== 'undefined') {
|
||||||
this.channels = JSON.parse(JSON.stringify(this.profileList[0].subscriptions)).sort((a, b) => {
|
this.channels = JSON.parse(JSON.stringify(this.profileList[this.filteredProfileIndex].subscriptions)).sort((a, b) => {
|
||||||
const nameA = a.name.toLowerCase()
|
const nameA = a.name.toLowerCase()
|
||||||
const nameB = b.name.toLowerCase()
|
const nameB = b.name.toLowerCase()
|
||||||
if (nameA < nameB) {
|
if (nameA < nameB) {
|
||||||
|
@ -101,6 +81,32 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
updateChannelList () {
|
||||||
|
this.channels = JSON.parse(JSON.stringify(this.profileList[this.filteredProfileIndex].subscriptions)).sort((a, b) => {
|
||||||
|
const nameA = a.name.toLowerCase()
|
||||||
|
const nameB = b.name.toLowerCase()
|
||||||
|
if (nameA < nameB) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
if (nameA > nameB) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}).filter((channel) => {
|
||||||
|
const index = this.profile.subscriptions.findIndex((sub) => {
|
||||||
|
return sub.id === channel.id
|
||||||
|
})
|
||||||
|
|
||||||
|
return index === -1
|
||||||
|
}).map((channel) => {
|
||||||
|
if (this.backendPreference === 'invidious') {
|
||||||
|
channel.thumbnail = channel.thumbnail.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
|
||||||
|
}
|
||||||
|
channel.selected = false
|
||||||
|
return channel
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
handleChannelClick: function (index) {
|
handleChannelClick: function (index) {
|
||||||
this.channels[index].selected = !this.channels[index].selected
|
this.channels[index].selected = !this.channels[index].selected
|
||||||
this.selectedLength = this.channels.filter((channel) => {
|
this.selectedLength = this.channels.filter((channel) => {
|
||||||
|
@ -108,6 +114,10 @@ export default Vue.extend({
|
||||||
}).length
|
}).length
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleProfileFilterChange: function (change) {
|
||||||
|
this.filteredProfileIndex = this.profileList.findIndex(profile => profile.name === change)
|
||||||
|
},
|
||||||
|
|
||||||
addChannelToProfile: function () {
|
addChannelToProfile: function () {
|
||||||
if (this.selectedLength === 0) {
|
if (this.selectedLength === 0) {
|
||||||
this.showToast({
|
this.showToast({
|
|
@ -4,7 +4,16 @@
|
||||||
<h2>
|
<h2>
|
||||||
{{ $t("Profile.Other Channels") }}
|
{{ $t("Profile.Other Channels") }}
|
||||||
</h2>
|
</h2>
|
||||||
<p>
|
<ft-flex-box>
|
||||||
|
<ft-select
|
||||||
|
:placeholder="$t('Profile.Profile Filter')"
|
||||||
|
:value="profileNameList[0]"
|
||||||
|
:select-names="profileNameList"
|
||||||
|
:select-values="profileNameList"
|
||||||
|
@change="handleProfileFilterChange"
|
||||||
|
/>
|
||||||
|
</ft-flex-box>
|
||||||
|
<p class="selected">
|
||||||
{{ selectedText }}
|
{{ selectedText }}
|
||||||
</p>
|
</p>
|
||||||
<ft-flex-box>
|
<ft-flex-box>
|
||||||
|
@ -38,5 +47,5 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script src="./ft-profile-all-channels-list.js" />
|
<script src="./ft-profile-filter-channels-list.js" />
|
||||||
<style scoped src="./ft-profile-all-channels-list.css" />
|
<style scoped src="./ft-profile-filter-channels-list.css" />
|
|
@ -62,6 +62,10 @@ export default Vue.extend({
|
||||||
return this.$store.getters.getProxyVideos
|
return this.$store.getters.getProxyVideos
|
||||||
},
|
},
|
||||||
|
|
||||||
|
defaultInterval: function () {
|
||||||
|
return parseInt(this.$store.getters.getDefaultInterval)
|
||||||
|
},
|
||||||
|
|
||||||
defaultVolume: function () {
|
defaultVolume: function () {
|
||||||
return parseFloat(this.$store.getters.getDefaultVolume) * 100
|
return parseFloat(this.$store.getters.getDefaultVolume) * 100
|
||||||
},
|
},
|
||||||
|
@ -119,6 +123,7 @@ export default Vue.extend({
|
||||||
'updateForceLocalBackendForLegacy',
|
'updateForceLocalBackendForLegacy',
|
||||||
'updateProxyVideos',
|
'updateProxyVideos',
|
||||||
'updateDefaultTheatreMode',
|
'updateDefaultTheatreMode',
|
||||||
|
'updateDefaultInterval',
|
||||||
'updateDefaultVolume',
|
'updateDefaultVolume',
|
||||||
'updateDefaultPlayback',
|
'updateDefaultPlayback',
|
||||||
'updateDefaultVideoFormat',
|
'updateDefaultVideoFormat',
|
||||||
|
|
|
@ -61,6 +61,15 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ft-flex-box>
|
<ft-flex-box>
|
||||||
|
<ft-slider
|
||||||
|
:label="$t('Settings.Player Settings.Playlist Next Video Interval')"
|
||||||
|
:default-value="defaultInterval"
|
||||||
|
:min-value="0"
|
||||||
|
:max-value="60"
|
||||||
|
:step="1"
|
||||||
|
value-extension="s"
|
||||||
|
@change="updateDefaultInterval"
|
||||||
|
/>
|
||||||
<ft-slider
|
<ft-slider
|
||||||
:label="$t('Settings.Player Settings.Default Volume')"
|
:label="$t('Settings.Player Settings.Default Volume')"
|
||||||
:default-value="defaultVolume"
|
:default-value="defaultVolume"
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
More
|
{{ $t("More") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
Trending
|
{{ $t("Trending") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
Most Popular
|
{{ $t("Most Popular") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
About
|
{{ $t("About.About") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
History
|
{{ $t("History.History") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
Settings
|
{{ $t("Settings.Settings") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
class="navIcon"
|
class="navIcon"
|
||||||
/>
|
/>
|
||||||
<p class="navLabel">
|
<p class="navLabel">
|
||||||
About
|
{{ $t("About.About") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,6 +48,9 @@ export default Vue.extend({
|
||||||
hidePopularVideos: function () {
|
hidePopularVideos: function () {
|
||||||
return this.$store.getters.getHidePopularVideos
|
return this.$store.getters.getHidePopularVideos
|
||||||
},
|
},
|
||||||
|
hidePlaylists: function () {
|
||||||
|
return this.$store.getters.getHidePlaylists
|
||||||
|
},
|
||||||
hideTrendingVideos: function () {
|
hideTrendingVideos: function () {
|
||||||
return this.$store.getters.getHideTrendingVideos
|
return this.$store.getters.getHideTrendingVideos
|
||||||
},
|
},
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
v-if="!hidePlaylists"
|
||||||
class="navOption mobileShow"
|
class="navOption mobileShow"
|
||||||
@click="navigate('userplaylists')"
|
@click="navigate('userplaylists')"
|
||||||
>
|
>
|
||||||
|
|
|
@ -89,14 +89,15 @@ export default Vue.extend({
|
||||||
searchInput.blur()
|
searchInput.blur()
|
||||||
}
|
}
|
||||||
|
|
||||||
const videoId = await this.$store.dispatch('getVideoIdFromUrl', query)
|
const { videoId, timestamp } = await this.$store.dispatch('getVideoParamsFromUrl', query)
|
||||||
const playlistId = await this.$store.dispatch('getPlaylistIdFromUrl', query)
|
const playlistId = await this.$store.dispatch('getPlaylistIdFromUrl', query)
|
||||||
|
|
||||||
console.log(playlistId)
|
console.log(playlistId)
|
||||||
|
|
||||||
if (videoId) {
|
if (videoId) {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: `/watch/${videoId}`
|
path: `/watch/${videoId}`,
|
||||||
|
query: timestamp ? { timestamp } : {}
|
||||||
})
|
})
|
||||||
} else if (playlistId) {
|
} else if (playlistId) {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
|
|
|
@ -58,6 +58,7 @@ export default Vue.extend({
|
||||||
descriptionText = descriptionText.replace(/href="http(s)?:\/\/youtube\.com/g, 'href="freetube://https://youtube.com')
|
descriptionText = descriptionText.replace(/href="http(s)?:\/\/youtube\.com/g, 'href="freetube://https://youtube.com')
|
||||||
descriptionText = descriptionText.replace(/href="\/watch/g, 'href="freetube://https://youtube.com')
|
descriptionText = descriptionText.replace(/href="\/watch/g, 'href="freetube://https://youtube.com')
|
||||||
descriptionText = descriptionText.replace(/href="\/results\?search_query=/g, 'href="freetube://')
|
descriptionText = descriptionText.replace(/href="\/results\?search_query=/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')
|
||||||
|
|
||||||
return descriptionText
|
return descriptionText
|
||||||
|
|
|
@ -90,6 +90,10 @@ export default Vue.extend({
|
||||||
lengthSeconds: {
|
lengthSeconds: {
|
||||||
type: Number,
|
type: Number,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
videoThumbnail: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
|
@ -223,6 +227,22 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted: function () {
|
||||||
|
if ('mediaSession' in navigator) {
|
||||||
|
/* eslint-disable-next-line */
|
||||||
|
navigator.mediaSession.metadata = new MediaMetadata({
|
||||||
|
title: this.title,
|
||||||
|
artist: this.channelName,
|
||||||
|
artwork: [
|
||||||
|
{
|
||||||
|
src: this.videoThumbnail,
|
||||||
|
sizes: '128x128',
|
||||||
|
type: 'image/png'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
goToChannel: function () {
|
goToChannel: function () {
|
||||||
this.$router.push({ path: `/channel/${this.channelId}` })
|
this.$router.push({ path: `/channel/${this.channelId}` })
|
||||||
|
|
|
@ -11,8 +11,8 @@ if (window && window.process && window.process.type === 'renderer') {
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
dbLocation = electron.remote.app.getPath('userData')
|
||||||
} */
|
} */
|
||||||
|
|
||||||
const electron = require('electron')
|
const remote = require('@electron/remote')
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
dbLocation = remote.app.getPath('userData')
|
||||||
|
|
||||||
dbLocation = dbLocation + '/history.db'
|
dbLocation = dbLocation + '/history.db'
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -13,8 +13,8 @@ if (window && window.process && window.process.type === 'renderer') {
|
||||||
//
|
//
|
||||||
// dbLocation += '/playlists.db'
|
// dbLocation += '/playlists.db'
|
||||||
|
|
||||||
const electron = require('electron')
|
const remote = require('@electron/remote')
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
dbLocation = remote.app.getPath('userData')
|
||||||
|
|
||||||
dbLocation = dbLocation + '/playlists.db'
|
dbLocation = dbLocation + '/playlists.db'
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -11,8 +11,8 @@ if (window && window.process && window.process.type === 'renderer') {
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
dbLocation = electron.remote.app.getPath('userData')
|
||||||
} */
|
} */
|
||||||
|
|
||||||
const electron = require('electron')
|
const remote = require('@electron/remote')
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
dbLocation = remote.app.getPath('userData')
|
||||||
|
|
||||||
dbLocation = dbLocation + '/profiles.db'
|
dbLocation = dbLocation + '/profiles.db'
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -15,7 +15,8 @@ if (window && window.process && window.process.type === 'renderer') {
|
||||||
|
|
||||||
electron = require('electron')
|
electron = require('electron')
|
||||||
webframe = electron.webFrame
|
webframe = electron.webFrame
|
||||||
dbLocation = electron.remote.app.getPath('userData')
|
const remote = require('@electron/remote')
|
||||||
|
dbLocation = remote.app.getPath('userData')
|
||||||
|
|
||||||
dbLocation = dbLocation + '/settings.db'
|
dbLocation = dbLocation + '/settings.db'
|
||||||
} else {
|
} else {
|
||||||
|
@ -53,6 +54,7 @@ const state = {
|
||||||
forceLocalBackendForLegacy: false,
|
forceLocalBackendForLegacy: false,
|
||||||
proxyVideos: false,
|
proxyVideos: false,
|
||||||
defaultTheatreMode: false,
|
defaultTheatreMode: false,
|
||||||
|
defaultInterval: 5,
|
||||||
defaultVolume: 1,
|
defaultVolume: 1,
|
||||||
defaultPlayback: 1,
|
defaultPlayback: 1,
|
||||||
defaultVideoFormat: 'dash',
|
defaultVideoFormat: 'dash',
|
||||||
|
@ -73,6 +75,7 @@ const state = {
|
||||||
hideRecommendedVideos: false,
|
hideRecommendedVideos: false,
|
||||||
hideTrendingVideos: false,
|
hideTrendingVideos: false,
|
||||||
hidePopularVideos: false,
|
hidePopularVideos: false,
|
||||||
|
hidePlaylists: false,
|
||||||
hideLiveChat: false,
|
hideLiveChat: false,
|
||||||
hideActiveSubscriptions: false
|
hideActiveSubscriptions: false
|
||||||
}
|
}
|
||||||
|
@ -182,6 +185,10 @@ const getters = {
|
||||||
return state.defaultTheatreMode
|
return state.defaultTheatreMode
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getDefaultInterval: () => {
|
||||||
|
return state.defaultInterval
|
||||||
|
},
|
||||||
|
|
||||||
getDefaultVolume: () => {
|
getDefaultVolume: () => {
|
||||||
return state.defaultVolume
|
return state.defaultVolume
|
||||||
},
|
},
|
||||||
|
@ -241,9 +248,15 @@ const getters = {
|
||||||
getHidePopularVideos: () => {
|
getHidePopularVideos: () => {
|
||||||
return state.hidePopularVideos
|
return state.hidePopularVideos
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getHidePlaylists: () => {
|
||||||
|
return state.hidePlaylists
|
||||||
|
},
|
||||||
|
|
||||||
getHideLiveChat: () => {
|
getHideLiveChat: () => {
|
||||||
return state.hideLiveChat
|
return state.hideLiveChat
|
||||||
},
|
},
|
||||||
|
|
||||||
getHideActiveSubscriptions: () => {
|
getHideActiveSubscriptions: () => {
|
||||||
return state.hideActiveSubscriptions
|
return state.hideActiveSubscriptions
|
||||||
}
|
}
|
||||||
|
@ -348,6 +361,9 @@ const actions = {
|
||||||
case 'defaultTheatreMode':
|
case 'defaultTheatreMode':
|
||||||
commit('setDefaultTheatreMode', result.value)
|
commit('setDefaultTheatreMode', result.value)
|
||||||
break
|
break
|
||||||
|
case 'defaultInterval':
|
||||||
|
commit('setDefaultInterval', result.value)
|
||||||
|
break
|
||||||
case 'defaultVolume':
|
case 'defaultVolume':
|
||||||
commit('setDefaultVolume', result.value)
|
commit('setDefaultVolume', result.value)
|
||||||
sessionStorage.setItem('volume', result.value)
|
sessionStorage.setItem('volume', result.value)
|
||||||
|
@ -382,6 +398,9 @@ const actions = {
|
||||||
case 'hidePopularVideos':
|
case 'hidePopularVideos':
|
||||||
commit('setHidePopularVideos', result.value)
|
commit('setHidePopularVideos', result.value)
|
||||||
break
|
break
|
||||||
|
case 'hidePlaylists':
|
||||||
|
commit('setHidePlaylists', result.value)
|
||||||
|
break
|
||||||
case 'hideLiveChat':
|
case 'hideLiveChat':
|
||||||
commit('setHideLiveChat', result.value)
|
commit('setHideLiveChat', result.value)
|
||||||
break
|
break
|
||||||
|
@ -587,6 +606,14 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateDefaultInterval ({ commit }, defaultInterval) {
|
||||||
|
settingsDb.update({ _id: 'defaultInterval' }, { _id: 'defaultInterval', value: defaultInterval }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setDefaultInterval', defaultInterval)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
updateDefaultVolume ({ commit }, defaultVolume) {
|
updateDefaultVolume ({ commit }, defaultVolume) {
|
||||||
settingsDb.update({ _id: 'defaultVolume' }, { _id: 'defaultVolume', value: defaultVolume }, { upsert: true }, (err, numReplaced) => {
|
settingsDb.update({ _id: 'defaultVolume' }, { _id: 'defaultVolume', value: defaultVolume }, { upsert: true }, (err, numReplaced) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
@ -716,6 +743,14 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateHidePlaylists ({ commit }, hidePlaylists) {
|
||||||
|
settingsDb.update({ _id: 'hidePlaylists' }, { _id: 'hidePlaylists', value: hidePlaylists }, { upsert: true }, (err, numReplaced) => {
|
||||||
|
if (!err) {
|
||||||
|
commit('setHidePlaylists', hidePlaylists)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
updateHideActiveSubscriptions ({ commit }, hideActiveSubscriptions) {
|
updateHideActiveSubscriptions ({ commit }, hideActiveSubscriptions) {
|
||||||
settingsDb.update({ _id: 'hideActiveSubscriptions' }, { _id: 'hideActiveSubscriptions', value: hideActiveSubscriptions }, { upsert: true }, (err, numReplaced) => {
|
settingsDb.update({ _id: 'hideActiveSubscriptions' }, { _id: 'hideActiveSubscriptions', value: hideActiveSubscriptions }, { upsert: true }, (err, numReplaced) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
@ -800,6 +835,9 @@ const mutations = {
|
||||||
setProxyVideos (state, proxyVideos) {
|
setProxyVideos (state, proxyVideos) {
|
||||||
state.proxyVideos = proxyVideos
|
state.proxyVideos = proxyVideos
|
||||||
},
|
},
|
||||||
|
setDefaultInterval (state, defaultInterval) {
|
||||||
|
state.defaultInterval = defaultInterval
|
||||||
|
},
|
||||||
setDefaultVolume (state, defaultVolume) {
|
setDefaultVolume (state, defaultVolume) {
|
||||||
state.defaultVolume = defaultVolume
|
state.defaultVolume = defaultVolume
|
||||||
},
|
},
|
||||||
|
@ -872,6 +910,9 @@ const mutations = {
|
||||||
setHidePopularVideos (state, hidePopularVideos) {
|
setHidePopularVideos (state, hidePopularVideos) {
|
||||||
state.hidePopularVideos = hidePopularVideos
|
state.hidePopularVideos = hidePopularVideos
|
||||||
},
|
},
|
||||||
|
setHidePlaylists (state, hidePlaylists) {
|
||||||
|
state.hidePlaylists = hidePlaylists
|
||||||
|
},
|
||||||
setHideLiveChat (state, hideLiveChat) {
|
setHideLiveChat (state, hideLiveChat) {
|
||||||
state.hideLiveChat = hideLiveChat
|
state.hideLiveChat = hideLiveChat
|
||||||
},
|
},
|
||||||
|
|
|
@ -190,43 +190,53 @@ const actions = {
|
||||||
return date.getTime() - timeSpan
|
return date.getTime() - timeSpan
|
||||||
},
|
},
|
||||||
|
|
||||||
getVideoIdFromUrl (_, url) {
|
getVideoParamsFromUrl (_, url) {
|
||||||
/** @type {URL} */
|
/** @type {URL} */
|
||||||
let urlObject
|
let urlObject
|
||||||
|
const paramsObject = { videoId: null, timestamp: null }
|
||||||
try {
|
try {
|
||||||
urlObject = new URL(url)
|
urlObject = new URL(url)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false
|
return paramsObject
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractParams(videoId) {
|
||||||
|
paramsObject.videoId = videoId
|
||||||
|
paramsObject.timestamp = urlObject.searchParams.get('t')
|
||||||
}
|
}
|
||||||
|
|
||||||
const extractors = [
|
const extractors = [
|
||||||
// anything with /watch?v=
|
// anything with /watch?v=
|
||||||
function() {
|
function() {
|
||||||
if (urlObject.pathname === '/watch' && urlObject.searchParams.has('v')) {
|
if (urlObject.pathname === '/watch' && urlObject.searchParams.has('v')) {
|
||||||
return urlObject.searchParams.get('v')
|
extractParams(urlObject.searchParams.get('v'))
|
||||||
|
return paramsObject
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// youtu.be
|
// youtu.be
|
||||||
function() {
|
function() {
|
||||||
if (urlObject.host === 'youtu.be' && urlObject.pathname.match(/^\/[A-Za-z0-9_-]+$/)) {
|
if (urlObject.host === 'youtu.be' && urlObject.pathname.match(/^\/[A-Za-z0-9_-]+$/)) {
|
||||||
return urlObject.pathname.slice(1)
|
extractParams(urlObject.pathname.slice(1))
|
||||||
|
return paramsObject
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// youtube.com/embed
|
// youtube.com/embed
|
||||||
function() {
|
function() {
|
||||||
if (urlObject.pathname.match(/^\/embed\/[A-Za-z0-9_-]+$/)) {
|
if (urlObject.pathname.match(/^\/embed\/[A-Za-z0-9_-]+$/)) {
|
||||||
return urlObject.pathname.replace('/embed/', '')
|
extractParams(urlObject.pathname.replace('/embed/', ''))
|
||||||
|
return paramsObject
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// cloudtube
|
// cloudtube
|
||||||
function() {
|
function() {
|
||||||
if (urlObject.host.match(/^cadence\.(gq|moe)$/) && urlObject.pathname.match(/^\/cloudtube\/video\/[A-Za-z0-9_-]+$/)) {
|
if (urlObject.host.match(/^cadence\.(gq|moe)$/) && urlObject.pathname.match(/^\/cloudtube\/video\/[A-Za-z0-9_-]+$/)) {
|
||||||
return urlObject.pathname.slice('/cloudtube/video/'.length)
|
extractParams(urlObject.pathname.slice('/cloudtube/video/'.length))
|
||||||
|
return paramsObject
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
return extractors.reduce((a, c) => a || c(), null) || false
|
return extractors.reduce((a, c) => a || c(), null) || paramsObject
|
||||||
},
|
},
|
||||||
|
|
||||||
getPlaylistIdFromUrl (_, url) {
|
getPlaylistIdFromUrl (_, url) {
|
||||||
|
|
|
@ -56,8 +56,7 @@ export default Vue.extend({
|
||||||
],
|
],
|
||||||
playlistSelectValues: [
|
playlistSelectValues: [
|
||||||
'last',
|
'last',
|
||||||
'newest',
|
'newest'
|
||||||
'oldest'
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -121,8 +120,7 @@ export default Vue.extend({
|
||||||
playlistSelectNames: function () {
|
playlistSelectNames: function () {
|
||||||
return [
|
return [
|
||||||
this.$t('Channel.Playlists.Sort Types.Last Video Added'),
|
this.$t('Channel.Playlists.Sort Types.Last Video Added'),
|
||||||
this.$t('Channel.Playlists.Sort Types.Newest'),
|
this.$t('Channel.Playlists.Sort Types.Newest')
|
||||||
this.$t('Channel.Playlists.Sort Types.Oldest')
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { mapActions } from 'vuex'
|
||||||
import FtLoader from '../../components/ft-loader/ft-loader.vue'
|
import FtLoader from '../../components/ft-loader/ft-loader.vue'
|
||||||
import FtProfileEdit from '../../components/ft-profile-edit/ft-profile-edit.vue'
|
import FtProfileEdit from '../../components/ft-profile-edit/ft-profile-edit.vue'
|
||||||
import FtProfileChannelList from '../../components/ft-profile-channel-list/ft-profile-channel-list.vue'
|
import FtProfileChannelList from '../../components/ft-profile-channel-list/ft-profile-channel-list.vue'
|
||||||
import FtProfileAllChannelsList from '../../components/ft-profile-all-channels-list/ft-profile-all-channels-list.vue'
|
import FtProfileFilterChannelsList from '../../components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'ProfileEdit',
|
name: 'ProfileEdit',
|
||||||
|
@ -11,7 +11,7 @@ export default Vue.extend({
|
||||||
'ft-loader': FtLoader,
|
'ft-loader': FtLoader,
|
||||||
'ft-profile-edit': FtProfileEdit,
|
'ft-profile-edit': FtProfileEdit,
|
||||||
'ft-profile-channel-list': FtProfileChannelList,
|
'ft-profile-channel-list': FtProfileChannelList,
|
||||||
'ft-profile-all-channels-list': FtProfileAllChannelsList
|
'ft-profile-filter-channels-list': FtProfileFilterChannelsList
|
||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
:profile="profile"
|
:profile="profile"
|
||||||
:is-main-profile="isMainProfile"
|
:is-main-profile="isMainProfile"
|
||||||
/>
|
/>
|
||||||
<ft-profile-all-channels-list
|
<ft-profile-filter-channels-list
|
||||||
v-if="!isNew && !isMainProfile"
|
v-if="!isNew && !isMainProfile"
|
||||||
:profile="profile"
|
:profile="profile"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -3,7 +3,6 @@ import { mapActions } from 'vuex'
|
||||||
import xml2vtt from 'yt-xml2vtt'
|
import xml2vtt from 'yt-xml2vtt'
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import electron from 'electron'
|
|
||||||
import ytDashGen from 'yt-dash-manifest-generator'
|
import ytDashGen from 'yt-dash-manifest-generator'
|
||||||
import FtLoader from '../../components/ft-loader/ft-loader.vue'
|
import FtLoader from '../../components/ft-loader/ft-loader.vue'
|
||||||
import FtCard from '../../components/ft-card/ft-card.vue'
|
import FtCard from '../../components/ft-card/ft-card.vue'
|
||||||
|
@ -16,6 +15,8 @@ import WatchVideoLiveChat from '../../components/watch-video-live-chat/watch-vid
|
||||||
import WatchVideoPlaylist from '../../components/watch-video-playlist/watch-video-playlist.vue'
|
import WatchVideoPlaylist from '../../components/watch-video-playlist/watch-video-playlist.vue'
|
||||||
import WatchVideoRecommendations from '../../components/watch-video-recommendations/watch-video-recommendations.vue'
|
import WatchVideoRecommendations from '../../components/watch-video-recommendations/watch-video-recommendations.vue'
|
||||||
|
|
||||||
|
const remote = require('@electron/remote')
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'Watch',
|
name: 'Watch',
|
||||||
components: {
|
components: {
|
||||||
|
@ -73,6 +74,7 @@ export default Vue.extend({
|
||||||
downloadLinks: [],
|
downloadLinks: [],
|
||||||
watchingPlaylist: false,
|
watchingPlaylist: false,
|
||||||
playlistId: '',
|
playlistId: '',
|
||||||
|
timestamp: null,
|
||||||
playNextTimeout: null
|
playNextTimeout: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -104,6 +106,9 @@ export default Vue.extend({
|
||||||
proxyVideos: function () {
|
proxyVideos: function () {
|
||||||
return this.$store.getters.getProxyVideos
|
return this.$store.getters.getProxyVideos
|
||||||
},
|
},
|
||||||
|
defaultInterval: function () {
|
||||||
|
return this.$store.getters.getDefaultInterval
|
||||||
|
},
|
||||||
defaultTheatreMode: function () {
|
defaultTheatreMode: function () {
|
||||||
return this.$store.getters.getDefaultTheatreMode
|
return this.$store.getters.getDefaultTheatreMode
|
||||||
},
|
},
|
||||||
|
@ -152,6 +157,7 @@ export default Vue.extend({
|
||||||
this.downloadLinks = []
|
this.downloadLinks = []
|
||||||
|
|
||||||
this.checkIfPlaylist()
|
this.checkIfPlaylist()
|
||||||
|
this.checkIfTimestamp()
|
||||||
|
|
||||||
switch (this.backendPreference) {
|
switch (this.backendPreference) {
|
||||||
case 'local':
|
case 'local':
|
||||||
|
@ -173,6 +179,7 @@ export default Vue.extend({
|
||||||
this.useTheatreMode = this.defaultTheatreMode
|
this.useTheatreMode = this.defaultTheatreMode
|
||||||
|
|
||||||
this.checkIfPlaylist()
|
this.checkIfPlaylist()
|
||||||
|
this.checkIfTimestamp()
|
||||||
|
|
||||||
if (!this.usingElectron) {
|
if (!this.usingElectron) {
|
||||||
this.getVideoInformationInvidious()
|
this.getVideoInformationInvidious()
|
||||||
|
@ -269,6 +276,7 @@ export default Vue.extend({
|
||||||
video.viewCount = video.view_count
|
video.viewCount = video.view_count
|
||||||
video.lengthSeconds = video.length_seconds
|
video.lengthSeconds = video.length_seconds
|
||||||
video.author = video.author.name
|
video.author = video.author.name
|
||||||
|
video.publishedText = video.published
|
||||||
return video
|
return video
|
||||||
})
|
})
|
||||||
if (this.hideVideoLikesAndDislikes) {
|
if (this.hideVideoLikesAndDislikes) {
|
||||||
|
@ -677,19 +685,33 @@ export default Vue.extend({
|
||||||
|
|
||||||
console.log(historyIndex)
|
console.log(historyIndex)
|
||||||
|
|
||||||
if (historyIndex !== -1 && !this.isLive) {
|
if (!this.isLive) {
|
||||||
|
if (this.timestamp) {
|
||||||
|
if (this.timestamp < 0) {
|
||||||
|
this.$refs.videoPlayer.player.currentTime(0)
|
||||||
|
} else if (this.timestamp > (this.videoLengthSeconds - 10)) {
|
||||||
|
this.$refs.videoPlayer.player.currentTime(this.videoLengthSeconds - 10)
|
||||||
|
} else {
|
||||||
|
this.$refs.videoPlayer.player.currentTime(this.timestamp)
|
||||||
|
}
|
||||||
|
} else if (historyIndex !== -1) {
|
||||||
const watchProgress = this.historyCache[historyIndex].watchProgress
|
const watchProgress = this.historyCache[historyIndex].watchProgress
|
||||||
|
|
||||||
if (watchProgress < (this.videoLengthSeconds - 10)) {
|
if (watchProgress < (this.videoLengthSeconds - 10)) {
|
||||||
this.$refs.videoPlayer.player.currentTime(watchProgress)
|
this.$refs.videoPlayer.player.currentTime(watchProgress)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (this.rememberHistory && historyIndex !== -1) {
|
if (this.rememberHistory) {
|
||||||
|
if (this.timestamp) {
|
||||||
|
this.addToHistory(this.timestamp)
|
||||||
|
} else if (historyIndex !== -1) {
|
||||||
this.addToHistory(this.historyCache[historyIndex].watchProgress)
|
this.addToHistory(this.historyCache[historyIndex].watchProgress)
|
||||||
} else if (this.rememberHistory) {
|
} else {
|
||||||
this.addToHistory(0)
|
this.addToHistory(0)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
checkIfPlaylist: function () {
|
checkIfPlaylist: function () {
|
||||||
|
@ -706,6 +728,16 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
checkIfTimestamp: function () {
|
||||||
|
if (typeof (this.$route.query) !== 'undefined') {
|
||||||
|
try {
|
||||||
|
this.timestamp = parseInt(this.$route.query.timestamp)
|
||||||
|
} catch {
|
||||||
|
this.timestamp = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
getLegacyFormats: function () {
|
getLegacyFormats: function () {
|
||||||
this.$store
|
this.$store
|
||||||
.dispatch('ytGetVideoInformation', this.videoId)
|
.dispatch('ytGetVideoInformation', this.videoId)
|
||||||
|
@ -807,14 +839,18 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
handleVideoEnded: function () {
|
handleVideoEnded: function () {
|
||||||
|
const nextVideoInterval = this.defaultInterval
|
||||||
if (this.watchingPlaylist) {
|
if (this.watchingPlaylist) {
|
||||||
this.playNextTimeout = setTimeout(() => {
|
this.playNextTimeout = setTimeout(() => {
|
||||||
|
const player = this.$refs.videoPlayer.player
|
||||||
|
if (player !== null && player.paused()) {
|
||||||
this.$refs.watchVideoPlaylist.playNextVideo()
|
this.$refs.watchVideoPlaylist.playNextVideo()
|
||||||
}, 5000)
|
}
|
||||||
|
}, nextVideoInterval * 1000)
|
||||||
|
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Playing next video in 5 seconds. Click to cancel'),
|
message: this.$tc('Playing Next Video Interval', nextVideoInterval, { nextVideoInterval: nextVideoInterval }),
|
||||||
time: 5500,
|
time: (nextVideoInterval * 1000) + 500,
|
||||||
action: () => {
|
action: () => {
|
||||||
clearTimeout(this.playNextTimeout)
|
clearTimeout(this.playNextTimeout)
|
||||||
this.showToast({
|
this.showToast({
|
||||||
|
@ -824,6 +860,8 @@ export default Vue.extend({
|
||||||
})
|
})
|
||||||
} else if (this.playNextVideo) {
|
} else if (this.playNextVideo) {
|
||||||
this.playNextTimeout = setTimeout(() => {
|
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(
|
||||||
{
|
{
|
||||||
|
@ -833,6 +871,7 @@ export default Vue.extend({
|
||||||
this.showToast({
|
this.showToast({
|
||||||
message: this.$t('Playing Next Video')
|
message: this.$t('Playing Next Video')
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}, 5000)
|
}, 5000)
|
||||||
|
|
||||||
this.showToast({
|
this.showToast({
|
||||||
|
@ -911,7 +950,7 @@ export default Vue.extend({
|
||||||
|
|
||||||
createLocalDashManifest: function (formats) {
|
createLocalDashManifest: function (formats) {
|
||||||
const xmlData = ytDashGen.generate_dash_file_from_formats(formats, this.videoLengthSeconds)
|
const xmlData = ytDashGen.generate_dash_file_from_formats(formats, this.videoLengthSeconds)
|
||||||
const userData = electron.remote.app.getPath('userData')
|
const userData = remote.app.getPath('userData')
|
||||||
let fileLocation
|
let fileLocation
|
||||||
let uriSchema
|
let uriSchema
|
||||||
if (this.isDev) {
|
if (this.isDev) {
|
||||||
|
@ -982,7 +1021,7 @@ export default Vue.extend({
|
||||||
})
|
})
|
||||||
// TODO: MAKE A VARIABLE WHICH CAN CHOOSE BETWEEN STROYBOARD ARRAY ELEMENTS
|
// TODO: MAKE A VARIABLE WHICH CAN CHOOSE BETWEEN STROYBOARD ARRAY ELEMENTS
|
||||||
this.buildVTTFileLocally(storyboardArray[1]).then((results) => {
|
this.buildVTTFileLocally(storyboardArray[1]).then((results) => {
|
||||||
const userData = electron.remote.app.getPath('userData')
|
const userData = remote.app.getPath('userData')
|
||||||
let fileLocation
|
let fileLocation
|
||||||
let uriSchema
|
let uriSchema
|
||||||
|
|
||||||
|
|
|
@ -82,6 +82,7 @@
|
||||||
:watching-playlist="watchingPlaylist"
|
:watching-playlist="watchingPlaylist"
|
||||||
:theatre-possible="theatrePossible"
|
:theatre-possible="theatrePossible"
|
||||||
:length-seconds="videoLengthSeconds"
|
:length-seconds="videoLengthSeconds"
|
||||||
|
:video-thumbnail="thumbnail"
|
||||||
class="watchVideo"
|
class="watchVideo"
|
||||||
:class="{ theatreWatchVideo: useTheatreMode }"
|
:class="{ theatreWatchVideo: useTheatreMode }"
|
||||||
@theatre-mode="toggleTheatreMode"
|
@theatre-mode="toggleTheatreMode"
|
||||||
|
|
|
@ -30,10 +30,10 @@ Close: 'Затваряне'
|
||||||
Back: 'Назад'
|
Back: 'Назад'
|
||||||
Forward: 'Напред'
|
Forward: 'Напред'
|
||||||
|
|
||||||
Version $ is now available! Click for more details: 'Версия $ е вече налична! Кликни
|
Version $ is now available! Click for more details: 'Версия $ е вече налична! Щракнете
|
||||||
за повече детайли'
|
за повече детайли'
|
||||||
Download From Site: 'Сваляне от сайта'
|
Download From Site: 'Сваляне от сайта'
|
||||||
A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Кликни
|
A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Щракнете
|
||||||
за преглед'
|
за преглед'
|
||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
|
@ -90,7 +90,7 @@ 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: Тази страница не отразява напълно работещи плейлисти. В него са
|
||||||
изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата
|
изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата
|
||||||
приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист
|
приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист
|
||||||
|
@ -114,8 +114,8 @@ Settings:
|
||||||
Locale Preference: 'Език'
|
Locale Preference: 'Език'
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: 'Предпочитан вътрешен интерфейс'
|
Preferred API Backend: 'Предпочитан вътрешен интерфейс'
|
||||||
Local API: 'Локален API'
|
Local API: 'Локален'
|
||||||
Invidious API: 'Invidious Интерфейс'
|
Invidious API: 'Invidious'
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: 'Подредба на видеата'
|
Video View Type: 'Подредба на видеата'
|
||||||
Grid: 'Решетка'
|
Grid: 'Решетка'
|
||||||
|
@ -130,7 +130,8 @@ Settings:
|
||||||
(по подразбиране е https://invidious.snopyta.org)'
|
(по подразбиране е https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Регион за набиращи популярност'
|
Region for Trending: 'Регион за набиращи популярност'
|
||||||
#! List countries
|
#! List countries
|
||||||
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: 'Съвпадане на горната лента с основната цветова
|
||||||
|
@ -192,6 +193,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: 'Запазване на историята'
|
||||||
|
@ -289,7 +291,8 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Скриване оценките на видеата
|
Hide Video Likes And Dislikes: Скриване оценките на видеата
|
||||||
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:
|
||||||
|
@ -301,13 +304,13 @@ Settings:
|
||||||
Country: Държава
|
Country: Държава
|
||||||
Ip: Ip
|
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: Активирайте Tor / Proxy
|
Enable Tor / Proxy: Активиране на Tor / Proxy
|
||||||
Proxy Settings: Настройки на прокси
|
Proxy Settings: Настройки на прокси
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
|
@ -342,20 +345,20 @@ About:
|
||||||
|
|
||||||
Donate: Дарете
|
Donate: Дарете
|
||||||
these people and projects: тези хора и проекти
|
these people and projects: тези хора и проекти
|
||||||
FreeTube is made possible by: FreeTube е възможен чрез
|
FreeTube is made possible by: FreeTube благодарение на
|
||||||
Translate: Превод
|
Translate: Превод
|
||||||
room rules: правилата за стаите
|
room rules: Правилата за общуване
|
||||||
Please read the: Моля, прочетете
|
Please read the: Моля, прочетете
|
||||||
Chat on Matrix: Чат в Matrix
|
Chat on Matrix: Чат в Matrix
|
||||||
Mastodon: мастодонт
|
Mastodon: Mastodon
|
||||||
Email: Имейл
|
Email: Електронна поща
|
||||||
Blog: Блог
|
Blog: Блог
|
||||||
Website: Уебсайт
|
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: Съобщете за проблем
|
||||||
FAQ: ЧЗВ
|
FAQ: ЧЗВ
|
||||||
FreeTube Wiki: FreeTube Уики
|
FreeTube Wiki: FreeTube Wiki
|
||||||
Help: Помощ
|
Help: Помощ
|
||||||
GitHub releases: GitHub издания
|
GitHub releases: GitHub издания
|
||||||
Downloads / Changelog: Изтегляния / Дневник с промени
|
Downloads / Changelog: Изтегляния / Дневник с промени
|
||||||
|
@ -392,7 +395,7 @@ Profile:
|
||||||
$ is now the active profile: 'Активният профил сега е $'
|
$ is now the active profile: 'Активният профил сега е $'
|
||||||
Subscription List: 'Списък с абонаменти'
|
Subscription List: 'Списък с абонаменти'
|
||||||
Other Channels: 'Други канали'
|
Other Channels: 'Други канали'
|
||||||
$ selected: '$ избран'
|
$ selected: '$ избран(и)'
|
||||||
Select All: 'Избиране на всички'
|
Select All: 'Избиране на всички'
|
||||||
Select None: 'Без избиране'
|
Select None: 'Без избиране'
|
||||||
Delete Selected: 'Изтриване на избраните'
|
Delete Selected: 'Изтриване на избраните'
|
||||||
|
@ -406,6 +409,7 @@ Profile:
|
||||||
ли сте, че искате да изтриете избраните канали? Така каналът няма да бъде изтрит
|
ли сте, че искате да изтриете избраните канали? Така каналът няма да бъде изтрит
|
||||||
от другите профили.'
|
от другите профили.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Профилен филтър
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Абонат'
|
Subscriber: 'Абонат'
|
||||||
Subscribers: 'Абонати'
|
Subscribers: 'Абонати'
|
||||||
|
@ -432,9 +436,9 @@ Channel:
|
||||||
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: 'Най-нови'
|
||||||
Oldest: 'Най-старо'
|
Oldest: 'Най-стари'
|
||||||
About:
|
About:
|
||||||
About: 'Относно'
|
About: 'Относно'
|
||||||
Channel Description: 'Описание на канала'
|
Channel Description: 'Описание на канала'
|
||||||
|
@ -505,7 +509,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: 'Преди $ %'
|
||||||
|
@ -522,8 +526,8 @@ 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: Видеото е запазено
|
||||||
|
@ -552,7 +556,7 @@ Playlist:
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: 'Режим "Театър"'
|
Toggle Theatre Mode: 'Режим "Широк екран"'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Смяна видео формати'
|
Change Video Formats: 'Смяна видео формати'
|
||||||
Use Dash Formats: 'Използване на Dash формати'
|
Use Dash Formats: 'Използване на Dash формати'
|
||||||
|
@ -570,16 +574,16 @@ Share:
|
||||||
Copy Embed: 'Копиране за вграждане'
|
Copy Embed: 'Копиране за вграждане'
|
||||||
Open Embed: 'Отваряне на връзка за вграждане'
|
Open Embed: 'Отваряне на връзка за вграждане'
|
||||||
# On Click
|
# On Click
|
||||||
Invidious URL copied to clipboard: 'Адреса за Invidious е копиран'
|
Invidious URL copied to clipboard: 'Invidious адресът е копиран'
|
||||||
Invidious Embed URL copied to clipboard: 'Адреса на Invidious за вграждане е копиран'
|
Invidious Embed URL copied to clipboard: 'Invidious адресът за вграждане е копиран'
|
||||||
YouTube URL copied to clipboard: 'Адреса за YouTube е копиран'
|
YouTube URL copied to clipboard: 'YouTube адресът е копиран'
|
||||||
YouTube Embed URL copied to clipboard: 'Адреса на YouTube за вграждане е копиран'
|
YouTube Embed URL copied to clipboard: 'YouTube адресът за вграждане е копиран'
|
||||||
YouTube Channel URL copied to clipboard: Адреса на YouTube канала е копиран
|
YouTube Channel URL copied to clipboard: YouTube адресът на канала е копиран
|
||||||
Invidious Channel URL copied to clipboard: Адреса на Invidious канала е копиран
|
Invidious Channel URL copied to clipboard: Invidious адресът на канала е копиран
|
||||||
Mini Player: 'Мини плейър'
|
Mini Player: 'Мини плейър'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Коментари'
|
Comments: 'Коментари'
|
||||||
Click to View Comments: 'Кликни, за да видиш коментарите'
|
Click to View Comments: 'Щракнете, за да видите коментарите'
|
||||||
Getting comment replies, please wait: 'Получаване на отговори на коментара, моля
|
Getting comment replies, please wait: 'Получаване на отговори на коментара, моля
|
||||||
изчакайте'
|
изчакайте'
|
||||||
There are no more comments for this video: 'Към това видео няма повече коментари'
|
There are no more comments for this video: 'Към това видео няма повече коментари'
|
||||||
|
@ -599,8 +603,8 @@ Comments:
|
||||||
Up Next: 'Следващ'
|
Up Next: 'Следващ'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): 'Грешка в локалния интерфейс (кликни за копиране)'
|
Local API Error (Click to copy): 'Грешка в локалния интерфейс (щракнете за копиране)'
|
||||||
Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (кликни за копиране)'
|
Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (щракнете за копиране)'
|
||||||
Falling back to Invidious API: 'Връщане към Invidious интерфейса'
|
Falling back to Invidious API: 'Връщане към Invidious интерфейса'
|
||||||
Falling back to the local API: 'Връщане към локалния интерфейс'
|
Falling back to the local API: 'Връщане към локалния интерфейс'
|
||||||
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.: 'Видеото
|
||||||
|
@ -615,7 +619,7 @@ 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: 'Следващо видео започва след 5
|
Playing next video in 5 seconds. Click to cancel: 'Следващо видео започва след 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': 'Плейлиста приключи. Включете
|
||||||
повторението за да продължи'
|
повторението за да продължи'
|
||||||
|
@ -653,3 +657,7 @@ Tooltips:
|
||||||
Preferred API Backend: Избиране на начина, по който FreeTube получава данните.
|
Preferred API Backend: Избиране на начина, по който FreeTube получава данните.
|
||||||
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
|
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
|
||||||
сървър, към който да се свърже.
|
сървър, към който да се свърже.
|
||||||
|
More: Още
|
||||||
|
Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ.
|
||||||
|
| Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказl.
|
||||||
|
| Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ.
|
||||||
|
|
|
@ -192,6 +192,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Interval dalšího seznamu videí
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Nastavení soukromí'
|
Privacy Settings: 'Nastavení soukromí'
|
||||||
Remember History: 'Zapamatovat historii'
|
Remember History: 'Zapamatovat historii'
|
||||||
|
@ -223,6 +224,7 @@ Settings:
|
||||||
Hide Popular Videos: 'Skrýt populární videa'
|
Hide Popular Videos: 'Skrýt populární videa'
|
||||||
Hide Live Chat: 'Skrýt chat'
|
Hide Live Chat: 'Skrýt chat'
|
||||||
Hide Active Subscriptions: Skrýt aktivní odběry
|
Hide Active Subscriptions: Skrýt aktivní odběry
|
||||||
|
Hide Playlists: Skrýt playlist
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: 'Nastavení dat'
|
Data Settings: 'Nastavení dat'
|
||||||
Select Import Type: 'Vybrat typ importu'
|
Select Import Type: 'Vybrat typ importu'
|
||||||
|
@ -399,6 +401,7 @@ Profile:
|
||||||
chcete odstranit vybrané kanály? Tím nebude kanál odstraněn z žádného jiného
|
chcete odstranit vybrané kanály? Tím nebude kanál odstraněn z žádného jiného
|
||||||
profilu.'
|
profilu.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Filtr profilu
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Odběratel'
|
Subscriber: 'Odběratel'
|
||||||
Subscribers: 'Odběratelé'
|
Subscribers: 'Odběratelé'
|
||||||
|
@ -650,3 +653,7 @@ 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.
|
||||||
|
| 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.
|
||||||
|
More: Více
|
||||||
|
|
|
@ -63,11 +63,11 @@ Search Filters:
|
||||||
Fetching results. Please wait: Lade Ergebnisse. Bitte warten
|
Fetching results. Please wait: Lade Ergebnisse. Bitte warten
|
||||||
Fetch more results: Lade mehr Ergebnisse
|
Fetch more results: Lade mehr Ergebnisse
|
||||||
# Sidebar
|
# Sidebar
|
||||||
There are no more results for this search: Es gibt keine weiteren Ergebnisse für
|
There are no more results for this search: Keine weiteren Ergebnisse für diese Suche
|
||||||
diese Suche
|
vorhanden
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: Abonnement
|
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
|
||||||
|
@ -76,7 +76,7 @@ Subscriptions:
|
||||||
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 Abonnementen. RSS zur Vermeidung von Tarifbeschränkungen
|
Profil hat eine große Anzahl von Abonnenten. RSS zur Vermeidung von Tarifbeschränkungen
|
||||||
erzwingen
|
erzwingen
|
||||||
Load More Videos: Lade mehr Videos
|
Load More Videos: Lade mehr Videos
|
||||||
Trending: Trends
|
Trending: Trends
|
||||||
|
@ -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
|
||||||
|
@ -131,7 +131,7 @@ Settings:
|
||||||
anzeigen
|
anzeigen
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: Thema Einstellungen
|
Theme Settings: Thema Einstellungen
|
||||||
Match Top Bar with Main Color: Passe obere Leiste an Hauptfarbe an
|
Match Top Bar with Main Color: Obere Leiste an Hauptfarbe anpassen
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: Grundlegendes Thema
|
Base Theme: Grundlegendes Thema
|
||||||
Black: Schwarz
|
Black: Schwarz
|
||||||
|
@ -146,11 +146,11 @@ Settings:
|
||||||
Indigo: Indigo
|
Indigo: Indigo
|
||||||
Blue: Blau
|
Blue: Blau
|
||||||
Light Blue: Hellblau
|
Light Blue: Hellblau
|
||||||
Cyan: Mittleres Zyan
|
Cyan: Türkis
|
||||||
Teal: Dunkles Türkis
|
Teal: Türkisblau
|
||||||
Green: Grün
|
Green: Grün
|
||||||
Light Green: Hellgrün
|
Light Green: Hellgrün
|
||||||
Lime: Lindgrün
|
Lime: Limette
|
||||||
Yellow: Gelb
|
Yellow: Gelb
|
||||||
Amber: Bernsteingelb
|
Amber: Bernsteingelb
|
||||||
Orange: Orange
|
Orange: Orange
|
||||||
|
@ -175,7 +175,7 @@ Settings:
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: Standard-Videoformat
|
Default Video Format: Standard-Videoformat
|
||||||
Dash Formats: DASH-Formate
|
Dash Formats: DASH-Formate
|
||||||
Legacy Formats: Altformate
|
Legacy Formats: Legacy Formate
|
||||||
Audio Formats: Audioformate
|
Audio Formats: Audioformate
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: Standardqualität
|
Default Quality: Standardqualität
|
||||||
|
@ -197,7 +197,7 @@ Settings:
|
||||||
#& Freetube
|
#& Freetube
|
||||||
Newpipe: Newpipe
|
Newpipe: Newpipe
|
||||||
OPML: OPML
|
OPML: OPML
|
||||||
Manage Subscriptions: Verwalte Abonnements
|
Manage Subscriptions: Abonnements verwalten
|
||||||
Import Subscriptions: Importiere Abonnements
|
Import Subscriptions: Importiere Abonnements
|
||||||
Export Subscriptions: Exportiere Abonnements
|
Export Subscriptions: Exportiere Abonnements
|
||||||
How do I import my subscriptions?: Wie importiere ich meine Abonnements?
|
How do I import my subscriptions?: Wie importiere ich meine Abonnements?
|
||||||
|
@ -234,10 +234,10 @@ Settings:
|
||||||
Are you sure you want to remove your entire watch history?: Bist du sicher, dass
|
Are you sure you want to remove your entire watch history?: Bist du sicher, dass
|
||||||
du deinen gesamten Verlauf löschen willst?
|
du deinen gesamten Verlauf löschen willst?
|
||||||
Remove Watch History: Verlauf löschen
|
Remove Watch History: Verlauf löschen
|
||||||
Search cache has been cleared: Suchzwischenspeicher wurde geleert
|
Search cache has been cleared: Suchanfragen wurden gelöscht
|
||||||
Are you sure you want to clear out your search cache?: Bist du sicher, dass du
|
Are you sure you want to clear out your search cache?: Bist du sicher, dass du
|
||||||
deinen Suchzwischenspeicher leeren möchtest?
|
deine Suchanfragen löschen möchtest?
|
||||||
Clear Search Cache: Suchzwischenspeicher löschen
|
Clear Search Cache: Suchanfragen löschen
|
||||||
Save Watched Progress: Videofortschritt speichern
|
Save Watched Progress: Videofortschritt speichern
|
||||||
Remember History: Verlauf speichern
|
Remember History: Verlauf speichern
|
||||||
Privacy Settings: Datenschutzeinstellungen
|
Privacy Settings: Datenschutzeinstellungen
|
||||||
|
@ -274,15 +274,15 @@ Settings:
|
||||||
Export NewPipe: Exportiere NewPipe
|
Export NewPipe: Exportiere NewPipe
|
||||||
Export YouTube: Exportiere YouTube
|
Export YouTube: Exportiere YouTube
|
||||||
Export FreeTube: Exportiere FreeTube
|
Export FreeTube: Exportiere FreeTube
|
||||||
Export Subscriptions: Exportiere Abonnements
|
Export Subscriptions: Abonnements exportieren
|
||||||
Import NewPipe: Importiere NewPipe
|
Import NewPipe: Importiere NewPipe
|
||||||
Import YouTube: Importiere YouTube
|
Import YouTube: Importiere YouTube
|
||||||
Import FreeTube: Importiere FreeTube
|
Import FreeTube: Importiere FreeTube
|
||||||
Import Subscriptions: Importiere Abonnements
|
Import Subscriptions: Abonnements importieren
|
||||||
Select Export Type: Wähle Exporttyp
|
Select Export Type: Wähle Exporttyp
|
||||||
Select Import Type: Wähle Importtyp
|
Select Import Type: Wähle Importtyp
|
||||||
Data Settings: Dateneinstellungen
|
Data Settings: Dateneinstellungen
|
||||||
Check for Legacy Subscriptions: Prüfung auf Altabonnements
|
Check for Legacy Subscriptions: Auf ältere Abonnements prüfen
|
||||||
Manage Subscriptions: Abonnements verwalten
|
Manage Subscriptions: Abonnements verwalten
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Hide Live Chat: Live-Chat verbergen
|
Hide Live Chat: Live-Chat verbergen
|
||||||
|
@ -373,7 +373,7 @@ About:
|
||||||
Please read the: Bitte lese die
|
Please read the: Bitte lese die
|
||||||
Chat on Matrix: Chatten bei Matrix
|
Chat on Matrix: Chatten bei Matrix
|
||||||
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 Issues
|
||||||
Report a problem: Problem melden
|
Report a problem: Problem melden
|
||||||
|
@ -567,7 +567,7 @@ Mini Player: Mini-Abspieler
|
||||||
Comments:
|
Comments:
|
||||||
Comments: Kommentare
|
Comments: Kommentare
|
||||||
Click to View Comments: Klicke um Kommentare anzuzeigen
|
Click to View Comments: Klicke um Kommentare anzuzeigen
|
||||||
Getting comment replies, please wait: Kommentare werden geledan, bitte warten
|
Getting comment replies, please wait: Kommentare werden geladen, bitte warten
|
||||||
Show Comments: Zeige Kommentare
|
Show Comments: Zeige Kommentare
|
||||||
Hide Comments: Verstecke Kommentare
|
Hide Comments: Verstecke Kommentare
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
@ -686,4 +686,4 @@ Tooltips:
|
||||||
API als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von
|
API als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von
|
||||||
Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies
|
Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies
|
||||||
hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund
|
hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund
|
||||||
von Landesrestiktionen.
|
von Landesbeschränkungen.
|
||||||
|
|
|
@ -399,7 +399,7 @@ Profile:
|
||||||
Other Channels: 'Άλλα κανάλια'
|
Other Channels: 'Άλλα κανάλια'
|
||||||
$ selected: '$ επιλεγμένο'
|
$ selected: '$ επιλεγμένο'
|
||||||
Select All: 'Επιλογή όλων'
|
Select All: 'Επιλογή όλων'
|
||||||
Select None: 'Επιλογή καμίας'
|
Select None: 'Επιλογή κανενός'
|
||||||
Delete Selected: 'Διαγραφή επιλεγμένου στοιχείου'
|
Delete Selected: 'Διαγραφή επιλεγμένου στοιχείου'
|
||||||
Add Selected To Profile: 'Προσθήκη επιλεγμένου στοιχείου στο προφίλ'
|
Add Selected To Profile: 'Προσθήκη επιλεγμένου στοιχείου στο προφίλ'
|
||||||
No channel(s) have been selected: 'Δεν έχει γίνει επιλογή κάποιου καναλιού'
|
No channel(s) have been selected: 'Δεν έχει γίνει επιλογή κάποιου καναλιού'
|
||||||
|
|
|
@ -82,6 +82,7 @@ Subscriptions:
|
||||||
'Getting Subscriptions. Please wait.': Getting Subscriptions. Please wait.
|
'Getting Subscriptions. Please wait.': Getting Subscriptions. Please wait.
|
||||||
Refresh Subscriptions: Refresh Subscriptions
|
Refresh Subscriptions: Refresh Subscriptions
|
||||||
Load More Videos: Load More Videos
|
Load More Videos: Load More Videos
|
||||||
|
More: More
|
||||||
Trending: Trending
|
Trending: Trending
|
||||||
Most Popular: Most Popular
|
Most Popular: Most Popular
|
||||||
Playlists: Playlists
|
Playlists: Playlists
|
||||||
|
@ -170,6 +171,7 @@ 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
|
||||||
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:
|
||||||
|
@ -219,6 +221,7 @@ Settings:
|
||||||
Hide Recommended Videos: Hide Recommended Videos
|
Hide Recommended Videos: Hide Recommended Videos
|
||||||
Hide Trending Videos: Hide Trending Videos
|
Hide Trending Videos: Hide Trending Videos
|
||||||
Hide Popular Videos: Hide Popular Videos
|
Hide Popular Videos: Hide Popular Videos
|
||||||
|
Hide Playlists: Hide Playlists
|
||||||
Hide Live Chat: Hide Live Chat
|
Hide Live Chat: Hide Live Chat
|
||||||
Hide Active Subscriptions: Hide Active Subscriptions
|
Hide Active Subscriptions: Hide Active Subscriptions
|
||||||
Data Settings:
|
Data Settings:
|
||||||
|
@ -304,6 +307,7 @@ About:
|
||||||
|
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: Profile Select
|
Profile Select: Profile Select
|
||||||
|
Profile Filter: Profile Filter
|
||||||
All Channels: All Channels
|
All Channels: All Channels
|
||||||
Profile Manager: Profile Manager
|
Profile Manager: Profile Manager
|
||||||
Create New Profile: Create New Profile
|
Create New Profile: Create New Profile
|
||||||
|
@ -564,7 +568,7 @@ Tooltips:
|
||||||
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 it's 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
|
||||||
|
|
||||||
|
@ -584,8 +588,7 @@ Shuffle is now enabled: Shuffle is now enabled
|
||||||
The playlist has been reversed: The playlist has been reversed
|
The playlist has been reversed: The playlist has been reversed
|
||||||
Playing Next Video: Playing Next Video
|
Playing Next Video: Playing Next Video
|
||||||
Playing Previous Video: Playing Previous Video
|
Playing Previous Video: Playing Previous Video
|
||||||
Playing next video in 5 seconds. Click to cancel: Playing next video in 5 seconds.
|
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.
|
||||||
Click to cancel.
|
|
||||||
Canceled next video autoplay: Canceled next video autoplay
|
Canceled next video autoplay: Canceled next video autoplay
|
||||||
'The playlist has ended. Enable loop to continue playing': 'The playlist has ended. Enable
|
'The playlist has ended. Enable loop to continue playing': 'The playlist has ended. Enable
|
||||||
loop to continue playing'
|
loop to continue playing'
|
||||||
|
|
|
@ -630,6 +630,7 @@ Tooltips:
|
||||||
באיכויות גבוהות יותר. התצורות המיושנות מוגבלות ל־720 פיקסלים לכל היותר אך משתמשות
|
באיכויות גבוהות יותר. התצורות המיושנות מוגבלות ל־720 פיקסלים לכל היותר אך משתמשות
|
||||||
בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד
|
בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: כאשר אפשרות זו פעילה. FreeTube ישתמש ב־RSS במקום בשיטת בררת
|
Fetch Feeds from RSS: כאשר אפשרות זו פעילה. FreeTube ישתמש ב־RSS במקום בשיטת ברירת
|
||||||
המחדל ללכידת הזנת המינויים שלך. RSS זו שיטה מהירה יותר ומונעת חסימות IP אבל
|
המחדל לאיסוף הזנת המינויים שלך. RSS היא שיטה מהירה יותר ומונעת חסימת IP אבל
|
||||||
לא מספקת חלק מהמידע כמו אורך הסרטון או מצב שידור חי
|
לא מספקת חלק מהמידע כמו אורך הסרטון או מצב שידור חי
|
||||||
|
More: עוד
|
||||||
|
|
|
@ -14,74 +14,82 @@ Redo: 'फिर से करें'
|
||||||
Cut: 'कट'
|
Cut: 'कट'
|
||||||
Copy: 'प्रतिलिपि'
|
Copy: 'प्रतिलिपि'
|
||||||
Paste: 'पेस्ट करें'
|
Paste: 'पेस्ट करें'
|
||||||
Delete: ''
|
Delete: 'निकाले'
|
||||||
Select all: 'सबको चुनें'
|
Select all: 'सबको चुनें'
|
||||||
Reload: ''
|
Reload: 'फिरसे लोड करे'
|
||||||
Force Reload: ''
|
Force Reload: 'फ़ोर्स से फिरसे लोड करे'
|
||||||
Toggle Developer Tools: ''
|
Toggle Developer Tools: 'Developer tools टॉगल करे'
|
||||||
Actual size: ''
|
Actual size: 'वास्तविक आकार'
|
||||||
Zoom in: ''
|
Zoom in: 'Zoom in'
|
||||||
Zoom out: ''
|
Zoom out: 'Zoom out'
|
||||||
Toggle fullscreen: ''
|
Toggle fullscreen: 'फ़ुलस्क्रीन टॉगल करे'
|
||||||
Window: ''
|
Window: 'विंडो'
|
||||||
Minimize: ''
|
Minimize: 'मिनिमाइज़ (Minimize) करे'
|
||||||
Close: ''
|
Close: 'बंद करे'
|
||||||
Back: ''
|
Back: 'पीछे'
|
||||||
Forward: ''
|
Forward: 'आगे'
|
||||||
|
|
||||||
Version $ is now available! Click for more details: ''
|
Version $ is now available! Click for more details: 'Version $ आ गया है! और details
|
||||||
Download From Site: ''
|
के लिए इधर click करे।'
|
||||||
A new blog is now available, $. Click to view more: ''
|
Download From Site: 'साइट से डाउनलोड (download) करे'
|
||||||
|
A new blog is now available, $. Click to view more: 'एक नया ब्लॉग है, $। और जानने
|
||||||
|
के लिए इधर click करिए'
|
||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
Search / Go to URL: ''
|
Search / Go to URL: 'Search / URL पर जाए'
|
||||||
# In Filter Button
|
# In Filter Button
|
||||||
Search Filters:
|
Search Filters:
|
||||||
Search Filters: ''
|
Search Filters: 'Search फ़िल्टर'
|
||||||
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.': ''
|
प्रोफ़ाइल (profile)के पास बहुत सारे सब्सक्रिप्शने है। RSS को बल से रटे लिमिटिंग
|
||||||
'Getting Subscriptions. Please wait.': ''
|
(rate limiting) से बचाए'
|
||||||
Refresh Subscriptions: ''
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'आपकेय
|
||||||
Load More Videos: ''
|
सब्सक्रिप्शन लिस्ट अब के लिए ख़ाली है। सब्सक्रिप्शन add करने से इधर देख सक्ते
|
||||||
Trending: ''
|
है।'
|
||||||
Most Popular: ''
|
'Getting Subscriptions. Please wait.': 'सब्सक्रिप्शने (subscriptions) ढूंड रहे है।
|
||||||
Playlists: ''
|
कृपया रुके।'
|
||||||
|
Refresh Subscriptions: 'सब्सक्रिप्शने Refresh करे'
|
||||||
|
Load More Videos: 'ज़्यादा विडीओए लोड करे'
|
||||||
|
Trending: 'ट्रेनडिंग'
|
||||||
|
Most Popular: 'सबसे ज़्यादा देखा हुआ'
|
||||||
|
Playlists: 'प्लेलिस्टे (playlists)'
|
||||||
User Playlists:
|
User Playlists:
|
||||||
Your Playlists: ''
|
Your Playlists: 'आपके प्लेलिस्टे'
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: ''
|
History: ''
|
||||||
|
|
|
@ -195,6 +195,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Lejátszási lista következő videó intervalluma
|
||||||
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'
|
||||||
|
@ -292,6 +293,7 @@ Settings:
|
||||||
Hide Video Views: Videó nézetek elrejtése
|
Hide Video Views: Videó nézetek elrejtése
|
||||||
Distraction Free Settings: Zavartalan beállítások
|
Distraction Free Settings: Zavartalan beállítások
|
||||||
Hide Active Subscriptions: Elérhető feliratkozások elrejtése
|
Hide Active Subscriptions: Elérhető feliratkozások elrejtése
|
||||||
|
Hide Playlists: Lejátszási listák elrejtése
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Az
|
The app needs to restart for changes to take effect. Restart and apply change?: Az
|
||||||
alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa
|
alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa
|
||||||
újra és alkalmazza a módosítást?
|
újra és alkalmazza a módosítást?
|
||||||
|
@ -309,6 +311,8 @@ Settings:
|
||||||
Proxy Protocol: Meghatalmazás protokoll
|
Proxy Protocol: Meghatalmazás protokoll
|
||||||
Enable Tor / Proxy: Tor/meghatalmazás engedélyezése
|
Enable Tor / Proxy: Tor/meghatalmazás engedélyezése
|
||||||
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
|
||||||
|
hálózati adatok lekérésekor. Megfelelő a meghatalmazás beállítása?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Névjegy'
|
About: 'Névjegy'
|
||||||
|
@ -341,6 +345,32 @@ About:
|
||||||
|
|
||||||
Latest FreeTube News: 'Legfrissebb FreeTube hírek'
|
Latest FreeTube News: 'Legfrissebb FreeTube hírek'
|
||||||
|
|
||||||
|
these people and projects: ezek emberek és projektek
|
||||||
|
FreeTube is made possible by: 'A FreeTube engedélyezése:'
|
||||||
|
Donate: Hozzájárulás
|
||||||
|
Credits: Közreműködők
|
||||||
|
Translate: Fordítás
|
||||||
|
room rules: szobaszabályok
|
||||||
|
Please read the: Kérjük, olvassa el a(z)
|
||||||
|
Chat on Matrix: Matrix csevegése
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Blog: Napló
|
||||||
|
Email: E-mail
|
||||||
|
Website: Honlap
|
||||||
|
Please check for duplicates before posting: Feladás előtt ellenőrizze, hogy vannak-e
|
||||||
|
másolatok
|
||||||
|
GitHub issues: GitHub kérdések
|
||||||
|
Help: Súgó
|
||||||
|
GitHub releases: GitHub kiadások
|
||||||
|
Downloads / Changelog: Letöltések/Változásnapló
|
||||||
|
View License: Licenc megtekintése
|
||||||
|
Licensed under the AGPLv3: Az AGPL (GNU Affero General Public License - GNU Affero
|
||||||
|
általános nyilvános licenc) 3. verziója alatt licencelt
|
||||||
|
FreeTube Wiki: FreeTube Wiki
|
||||||
|
Source code: Forráskód
|
||||||
|
Beta: Béta
|
||||||
|
FAQ: GyIK
|
||||||
|
Report a problem: Probléma jelentése
|
||||||
Profile:
|
Profile:
|
||||||
Profile Select: 'Profil kiválasztása'
|
Profile Select: 'Profil kiválasztása'
|
||||||
All Channels: 'Összes csatorna'
|
All Channels: 'Összes csatorna'
|
||||||
|
@ -381,6 +411,7 @@ Profile:
|
||||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Biztosan
|
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Biztosan
|
||||||
törli a kijelölt csatornákat? Ez nem törli a csatornát más profilokból.'
|
törli a kijelölt csatornákat? Ez nem törli a csatornát más profilokból.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Profilszűrő
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Feliratkozó'
|
Subscriber: 'Feliratkozó'
|
||||||
Subscribers: 'Feliratkozók'
|
Subscribers: 'Feliratkozók'
|
||||||
|
@ -499,6 +530,9 @@ Video:
|
||||||
Open Channel in Invidious: Csatorna megnyitása az Invidious oldalán
|
Open Channel in Invidious: Csatorna megnyitása az Invidious oldalán
|
||||||
Started streaming on: Folyamatos átvitel indult
|
Started streaming on: Folyamatos átvitel indult
|
||||||
Streamed on: Folyamatos átvitele
|
Streamed on: Folyamatos átvitele
|
||||||
|
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
|
||||||
|
Save Video: Videó mentése
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -630,3 +664,8 @@ Tooltips:
|
||||||
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
|
||||||
|
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
|
||||||
|
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.
|
||||||
|
More: Több
|
||||||
|
|
|
@ -3,14 +3,15 @@ Locale Name: 'Bahasa Indonesia'
|
||||||
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.': >-
|
||||||
Bagian aplikasi ini belum tersedia. Kembali lagi jika sudah ada kemajuan.
|
Bagian dari aplikasi ini belum disiapkan. Kembali lagi nanti saat kemajuan telah
|
||||||
|
dibuat.
|
||||||
|
|
||||||
# Webkit Menu Bar
|
# Webkit Menu Bar
|
||||||
File: 'Berkas'
|
File: 'Berkas'
|
||||||
Quit: 'Keluar'
|
Quit: 'Keluar'
|
||||||
Edit: 'Sunting'
|
Edit: 'Sunting'
|
||||||
Undo: 'Urungkan'
|
Undo: 'Urungkan'
|
||||||
Redo: 'Redo'
|
Redo: 'Majukan'
|
||||||
Cut: 'Potong'
|
Cut: 'Potong'
|
||||||
Copy: 'Salin'
|
Copy: 'Salin'
|
||||||
Paste: 'Tempel'
|
Paste: 'Tempel'
|
||||||
|
@ -189,6 +190,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Interval Video dalam Daftar Putar
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Privacy Settings: 'Pengaturan Privasi'
|
Privacy Settings: 'Pengaturan Privasi'
|
||||||
Remember History: 'Ingat Riwayat'
|
Remember History: 'Ingat Riwayat'
|
||||||
|
@ -247,7 +249,7 @@ Settings:
|
||||||
Unable to write file: 'Tidak dapat menulis berkas'
|
Unable to write file: 'Tidak dapat menulis berkas'
|
||||||
Unknown data key: 'Kunci data tidak diketahui'
|
Unknown data key: 'Kunci data tidak diketahui'
|
||||||
How do I import my subscriptions?: 'Bagaimana saya mengimpor langganan saya?'
|
How do I import my subscriptions?: 'Bagaimana saya mengimpor langganan saya?'
|
||||||
Check for Legacy Subscriptions: Periksa langganan lawas
|
Check for Legacy Subscriptions: Periksa Langganan Lawas
|
||||||
Manage Subscriptions: Kelola Langganan
|
Manage Subscriptions: Kelola Langganan
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: 'Pengaturan Lanjutan'
|
Advanced Settings: 'Pengaturan Lanjutan'
|
||||||
|
@ -287,6 +289,7 @@ Settings:
|
||||||
Hide Video Likes And Dislikes: Sembunyikan Suka dan Tidak Suka Video
|
Hide Video Likes And Dislikes: Sembunyikan Suka dan Tidak Suka Video
|
||||||
Hide Video Views: Sembunyikan Tinjauan Video
|
Hide Video Views: Sembunyikan Tinjauan Video
|
||||||
Hide Active Subscriptions: Sembunyikan Langganan Aktif
|
Hide Active Subscriptions: Sembunyikan Langganan Aktif
|
||||||
|
Hide Playlists: Sembunyikan Daftar Putar
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Aplikasi
|
The app needs to restart for changes to take effect. Restart and apply change?: Aplikasi
|
||||||
butuh dimulai ulang agar perbubahan diterapkan. Mulai ulang dan terapkan perubahan?
|
butuh dimulai ulang agar perbubahan diterapkan. Mulai ulang dan terapkan perubahan?
|
||||||
Proxy Settings:
|
Proxy Settings:
|
||||||
|
@ -650,3 +653,7 @@ Tooltips:
|
||||||
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.
|
||||||
|
Playing Next Video Interval: Langsung putar video berikutnya. Klik untuk batal. |
|
||||||
|
Putar video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal. | Putar
|
||||||
|
video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal.
|
||||||
|
More: Lebih banyak
|
||||||
|
|
|
@ -315,7 +315,7 @@ About:
|
||||||
Credits: クレジット
|
Credits: クレジット
|
||||||
Translate: 翻訳
|
Translate: 翻訳
|
||||||
room rules: ルームの規則
|
room rules: ルームの規則
|
||||||
Please read the: ご覧ください
|
Please read the: 確認してください
|
||||||
Chat on Matrix: Matrix でチャット
|
Chat on Matrix: Matrix でチャット
|
||||||
Mastodon: Mastodon
|
Mastodon: Mastodon
|
||||||
Email: メール アドレス
|
Email: メール アドレス
|
||||||
|
@ -569,7 +569,7 @@ Profile:
|
||||||
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: サイトからダウンロード
|
||||||
Version $ is now available! Click for more details: 最新の Ver. $ 登場! 詳細はクリックしてご覧ください
|
Version $ is now available! Click for more details: 最新の Ver. $ 登場! 詳細はクリックして確認
|
||||||
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:
|
||||||
|
|
|
@ -16,7 +16,7 @@ Copy: 'Kopier'
|
||||||
Paste: 'Lim inn'
|
Paste: 'Lim inn'
|
||||||
Delete: 'Slett'
|
Delete: 'Slett'
|
||||||
Select all: 'Velg alt'
|
Select all: 'Velg alt'
|
||||||
Reload: 'Gjeninnlast'
|
Reload: 'Last inn på nytt'
|
||||||
Force Reload: 'Tving gjeninnlasting'
|
Force Reload: 'Tving gjeninnlasting'
|
||||||
Toggle Developer Tools: 'Veksle utviklerverktøy'
|
Toggle Developer Tools: 'Veksle utviklerverktøy'
|
||||||
Actual size: 'Faktisk størrelse'
|
Actual size: 'Faktisk størrelse'
|
||||||
|
@ -43,7 +43,7 @@ Search Filters:
|
||||||
Time:
|
Time:
|
||||||
Time: 'Tid'
|
Time: 'Tid'
|
||||||
Any Time: 'Når som helst'
|
Any Time: 'Når som helst'
|
||||||
Last Hour: 'Siste time'
|
Last Hour: 'Den siste timen'
|
||||||
Today: 'I dag'
|
Today: 'I dag'
|
||||||
This Week: 'Denne uken'
|
This Week: 'Denne uken'
|
||||||
This Month: 'Denne måneden'
|
This Month: 'Denne måneden'
|
||||||
|
@ -64,20 +64,31 @@ Search Filters:
|
||||||
Fetching results. Please wait: 'Henter resultater. Vent.'
|
Fetching results. Please wait: 'Henter resultater. Vent.'
|
||||||
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
|
||||||
|
søket
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
Subscriptions: 'Abonnementer'
|
Subscriptions: 'Abonnementer'
|
||||||
Latest Subscriptions: 'Siste abonnementer'
|
Latest Subscriptions: 'Siste abonnementer'
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Din
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Din
|
||||||
abbonementsliste er for tiden tom. Legg til noen for å se dem her.'
|
abonnementsliste er for tiden tom. Legg til noen for å se dem her.'
|
||||||
'Getting Subscriptions. Please wait.': 'Henter abonnementer. Vent.'
|
'Getting Subscriptions. Please wait.': 'Henter abonnementer. Vent.'
|
||||||
Refresh Subscriptions: Gjenoppfrisk abonnementer
|
Refresh Subscriptions: Oppdater abonnementer
|
||||||
Getting Subscriptions. Please wait.: Henter abonnementer. Vent.
|
Getting Subscriptions. Please wait.: Henter abonnementer. Vent.
|
||||||
Trending: 'Populært'
|
Load More Videos: Last flere videoer
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
Den lister kun opp videoer du har lagret eller favorittmerket. Når arbeidet er
|
||||||
|
fullført, 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
|
||||||
|
lagrede videoer er tomme. klikk på "Lagre"-knappen i hjørnet av en video for å
|
||||||
|
liste den opp her.
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Historikk'
|
History: 'Historikk'
|
||||||
|
@ -90,9 +101,9 @@ Settings:
|
||||||
General Settings: 'Generelle innstillinger'
|
General Settings: 'Generelle innstillinger'
|
||||||
Fallback to Non-Preferred Backend on Failure: 'Tilbakefall til ikke-foretrukken
|
Fallback to Non-Preferred Backend on Failure: 'Tilbakefall til ikke-foretrukken
|
||||||
bakende ved feil'
|
bakende ved feil'
|
||||||
Enable Search Suggestions: 'Skru på søkeforslag'
|
Enable Search Suggestions: 'Slå på søkeforslag'
|
||||||
Default Landing Page: 'Forvalgt landingsside'
|
Default Landing Page: 'Forvalgt landingsside'
|
||||||
Locale Preference: 'Lokale-innstilling'
|
Locale Preference: 'Språkinnstilling'
|
||||||
Preferred API Backend:
|
Preferred API Backend:
|
||||||
Preferred API Backend: 'Foretrukket API-bakende'
|
Preferred API Backend: 'Foretrukket API-bakende'
|
||||||
Local API: 'Lokalt API'
|
Local API: 'Lokalt API'
|
||||||
|
@ -109,11 +120,14 @@ Settings:
|
||||||
End: 'Slutten'
|
End: 'Slutten'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Individious-instans
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Individious-instans
|
||||||
(forvalget er https://invidious.snopyta.org)'
|
(forvalget er https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Region for populære'
|
Region for Trending: 'Region for På vei opp'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
Check for Updates: Se etter oppdateringer
|
||||||
|
View all Invidious instance information: Vis info om alle Invidious-instanser
|
||||||
|
Check for Latest Blog Posts: Se etter nye bloggposter
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
Theme Settings: 'Tema innstillinger'
|
Theme Settings: 'Tema innstillinger'
|
||||||
Match Top Bar with Main Color: ''
|
Match Top Bar with Main Color: 'Bruk hovedfarge i toppbjelke'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
Base Theme: 'Hovedtema'
|
Base Theme: 'Hovedtema'
|
||||||
Black: 'Svart'
|
Black: 'Svart'
|
||||||
|
@ -128,36 +142,39 @@ Settings:
|
||||||
Indigo: 'Indigo'
|
Indigo: 'Indigo'
|
||||||
Blue: 'Blå'
|
Blue: 'Blå'
|
||||||
Light Blue: 'Lyseblå'
|
Light Blue: 'Lyseblå'
|
||||||
Cyan: ''
|
Cyan: 'Cyanblå'
|
||||||
Teal: ''
|
Teal: 'Turkis'
|
||||||
Green: 'Grønn'
|
Green: 'Grønn'
|
||||||
Light Green: 'Lysegrønn'
|
Light Green: 'Lysegrønn'
|
||||||
Lime: ''
|
Lime: 'Limegrønn'
|
||||||
Yellow: 'Gul'
|
Yellow: 'Gul'
|
||||||
Amber: ''
|
Amber: 'Rav'
|
||||||
Orange: ''
|
Orange: 'Oransje'
|
||||||
Deep Orange: ''
|
Deep Orange: 'Dyp oransje'
|
||||||
Secondary Color Theme: ''
|
Secondary Color Theme: 'Sekundær fargedrakt'
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
|
UI Scale: Grensesnittskala
|
||||||
|
Disable Smooth Scrolling: Skru av myk rulling
|
||||||
|
Expand Side Bar by Default: Utvid sidestolpe som forvalg
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: 'Spillerinnstillinger'
|
Player Settings: 'Spillerinnstillinger'
|
||||||
Force Local Backend for Legacy Formats: ''
|
Force Local Backend for Legacy Formats: 'Påtving lokal bakende for forelede formater'
|
||||||
Play Next Video: 'Spill neste video'
|
Play Next Video: 'Spill av neste video'
|
||||||
Turn on Subtitles by Default: ''
|
Turn on Subtitles by Default: 'Slå på undertekster som standard'
|
||||||
Autoplay Videos: ''
|
Autoplay Videos: 'Auto-spill videoer'
|
||||||
Proxy Videos Through Invidious: ''
|
Proxy Videos Through Invidious: 'Mellomtjen videoer gjennom Invidious'
|
||||||
Autoplay Playlists: ''
|
Autoplay Playlists: 'Autospillings-spillelister'
|
||||||
Enable Theatre Mode by Default: ''
|
Enable Theatre Mode by Default: 'Kinomodus som standardvalg'
|
||||||
Default Volume: 'Forvalgt lydstyrke'
|
Default Volume: 'Standardvolum'
|
||||||
Default Playback Rate: ''
|
Default Playback Rate: 'Forvalgt avspillingshastighet'
|
||||||
Default Video Format:
|
Default Video Format:
|
||||||
Default Video Format: ''
|
Default Video Format: 'Forvalgt videoformat'
|
||||||
Dash Formats: ''
|
Dash Formats: 'DASH-formater'
|
||||||
Legacy Formats: ''
|
Legacy Formats: 'Gamle formater'
|
||||||
Audio Formats: 'Lydformater'
|
Audio Formats: 'Lydformater'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Forvalgt kvalitet'
|
Default Quality: 'Forvalgt kvalitet'
|
||||||
Auto: ''
|
Auto: 'Auto'
|
||||||
144p: '144p'
|
144p: '144p'
|
||||||
240p: '240p'
|
240p: '240p'
|
||||||
360p: '360p'
|
360p: '360p'
|
||||||
|
@ -165,21 +182,25 @@ Settings:
|
||||||
720p: '720p'
|
720p: '720p'
|
||||||
1080p: '1080p'
|
1080p: '1080p'
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: ''
|
4k: 'UHD'
|
||||||
8k: ''
|
8k: '8k UHD'
|
||||||
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 framdriftsposisjon'
|
||||||
Clear Search Cache: ''
|
Clear Search Cache: 'Tøm søkehurtiglager'
|
||||||
Are you sure you want to clear out your search cache?: ''
|
Are you sure you want to clear out your search cache?: 'Tøm søkehurtiglager?'
|
||||||
Search cache has been cleared: ''
|
Search cache has been cleared: 'Søkehurtiglager tømt'
|
||||||
Remove Watch History: ''
|
Remove Watch History: 'Fjern visningshistorikk'
|
||||||
Are you sure you want to remove your entire watch history?: ''
|
Are you sure you want to remove your entire watch history?: 'Fjern hele visningshistorikken?'
|
||||||
Watch history has been cleared: ''
|
Watch history has been cleared: 'VIsningshistorikk fjernet'
|
||||||
|
Remove All Subscriptions / Profiles: Fjern alle abonnementer/profiler
|
||||||
|
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
|
||||||
|
angres.
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: ''
|
Subscription Settings: 'Abonnementsinnstillinger'
|
||||||
Hide Videos on Watch: ''
|
Hide Videos on Watch: 'Skjul sette videoer'
|
||||||
Subscriptions Export Format:
|
Subscriptions Export Format:
|
||||||
Subscriptions Export Format: ''
|
Subscriptions Export Format: ''
|
||||||
#& Freetube
|
#& Freetube
|
||||||
|
@ -189,6 +210,7 @@ Settings:
|
||||||
Import Subscriptions: 'Importer abonnementer'
|
Import Subscriptions: 'Importer abonnementer'
|
||||||
Export Subscriptions: 'Eksporter abonnementer'
|
Export Subscriptions: 'Eksporter abonnementer'
|
||||||
How do I import my subscriptions?: 'Hvordan importerer jeg mine abonnementer?'
|
How do I import my subscriptions?: 'Hvordan importerer jeg mine abonnementer?'
|
||||||
|
Fetch Feeds from RSS: Hent informasjonskanaler fra RSS
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: 'Avanserte innstillinger'
|
Advanced Settings: 'Avanserte innstillinger'
|
||||||
Enable Debug Mode (Prints data to the console): ''
|
Enable Debug Mode (Prints data to the console): ''
|
||||||
|
@ -219,6 +241,67 @@ Settings:
|
||||||
Unknown data key: Ukjent datanøkkel
|
Unknown data key: Ukjent datanøkkel
|
||||||
Unable to write file: Kunne ikke skrive fil
|
Unable to write file: Kunne ikke skrive fil
|
||||||
Invalid history file: Ugyldig historikkfil
|
Invalid history file: Ugyldig historikkfil
|
||||||
|
All watched history has been successfully exported: All visningshistorikk har
|
||||||
|
blitt eksportert
|
||||||
|
All watched history has been successfully imported: All visningshistorikk importert
|
||||||
|
History object has insufficient data, skipping item: Hopper over historikkobjekt
|
||||||
|
med utilstrekkelig data
|
||||||
|
One or more subscriptions were unable to be imported: Ett eller flere abonnement
|
||||||
|
kunne ikke importeres
|
||||||
|
All subscriptions have been successfully imported: Alle abonnementer har blitt
|
||||||
|
importert
|
||||||
|
All subscriptions and profiles have been successfully imported: Importerte alle
|
||||||
|
abonnementer og profiler
|
||||||
|
Manage Subscriptions: Håndter abonnementer
|
||||||
|
Unable to read file: Kunne ikke lese fil
|
||||||
|
Invalid subscriptions file: Ugyldig abonnementsfil
|
||||||
|
Profile object has insufficient data, skipping item: Profilobjekt har utilstrekkelig
|
||||||
|
data. Hopper over element.
|
||||||
|
Check for Legacy Subscriptions: Se etter foreldede abonnementer
|
||||||
|
Subscriptions have been successfully exported: Abonnementer eksportert
|
||||||
|
This might take a while, please wait: Dette kan ta sin tid…
|
||||||
|
Export History: Historikk-eksport
|
||||||
|
Import History: Historikk-import
|
||||||
|
Export NewPipe: NewPipe-eksport
|
||||||
|
Export YouTube: YouTube-eksport
|
||||||
|
Export FreeTube: FreeTube-eksport
|
||||||
|
Export Subscriptions: Eksporter abonnementer
|
||||||
|
Import NewPipe: Importer NewPipe
|
||||||
|
Import YouTube: Importer YouTube
|
||||||
|
Import FreeTube: Importer FreeTube
|
||||||
|
Import Subscriptions: Importer abonnementer
|
||||||
|
Select Export Type: Velg eksporttype
|
||||||
|
Select Import Type: Velg importtype
|
||||||
|
Data Settings: Datainnstillinger
|
||||||
|
Proxy Settings:
|
||||||
|
Region: Region
|
||||||
|
Clicking on Test Proxy will send a request to: Klikk på «Test mellomtjener» for
|
||||||
|
å sende en forespørsel til
|
||||||
|
Error getting network information. Is your proxy configured properly?: Klarte
|
||||||
|
ikke å hente nettverksinfo. Er din mellomtjener satt opp riktig?
|
||||||
|
Test Proxy: Test mellomtjener
|
||||||
|
City: By
|
||||||
|
Country: Land
|
||||||
|
Ip: IP
|
||||||
|
Your Info: Din info
|
||||||
|
Proxy Port Number: Mellomtjener-portnummer
|
||||||
|
Proxy Host: Mellomtjenervert
|
||||||
|
Proxy Protocol: Mellomtjenerprotokoll
|
||||||
|
Enable Tor / Proxy: Skru på Tor/mellomtjener
|
||||||
|
Proxy Settings: Mellomtjenerinnstillinger
|
||||||
|
Distraction Free Settings:
|
||||||
|
Hide Trending Videos: Gjem På vei opp
|
||||||
|
Hide Video Likes And Dislikes: Skjul video-gunst
|
||||||
|
Distraction Free Settings: Distraksjonsfri-innstillinger
|
||||||
|
Hide Active Subscriptions: Skjul aktive abonnementer
|
||||||
|
Hide Recommended Videos: Skjul anbefalte videoer
|
||||||
|
Hide Comment Likes: Skjul kommentargunst
|
||||||
|
Hide Channel Subscribers: Skjul kanalabonnementer
|
||||||
|
Hide Popular Videos: Skjul populære videoer
|
||||||
|
Hide Video Views: Skjul videovisninger
|
||||||
|
Hide Live Chat: Gjem direktechat
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: Start
|
||||||
|
programmet på ny for å bruke de nye endringene?
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Om'
|
About: 'Om'
|
||||||
|
@ -243,13 +326,37 @@ About:
|
||||||
Latest FreeTube News: ''
|
Latest FreeTube News: ''
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
FAQ: Ofte stilte spørsmål
|
||||||
|
Downloads / Changelog: Nedlastninger / Endringslogg
|
||||||
|
Licensed under the AGPLv3: Lisensiert under AGPLv3
|
||||||
|
Help: Hjelp
|
||||||
|
View License: Vis lisens
|
||||||
|
Donate: Doner
|
||||||
|
Website: Nettsted
|
||||||
|
Report a problem: Rapporter et problem
|
||||||
|
Source code: Kildekode
|
||||||
|
Please read the: Vennligst les
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Email: E-post
|
||||||
|
Blog: Blogg
|
||||||
|
Translate: Oversett
|
||||||
|
Please check for duplicates before posting: Se etter duplikater før innsendelse
|
||||||
|
these people and projects: disse folkene og prosjektene
|
||||||
|
FreeTube is made possible by: FreeTube er gjort mulig av
|
||||||
|
Credits: Bidragsytere
|
||||||
|
room rules: romregler
|
||||||
|
GitHub issues: GitHub-problemsporer
|
||||||
|
FreeTube Wiki: FreeTube-wiki
|
||||||
|
GitHub releases: GitHub-utgivelser
|
||||||
|
Beta: Beta
|
||||||
|
Chat on Matrix: Snakk med oss på Matrix
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Abonnent'
|
Subscriber: 'Abonnent'
|
||||||
Subscribers: 'Abonnenter'
|
Subscribers: 'Abonnenter'
|
||||||
Subscribe: 'Abonner'
|
Subscribe: 'Abonner'
|
||||||
Unsubscribe: 'Opphev abonnement'
|
Unsubscribe: 'Opphev abonnement'
|
||||||
Search Channel: 'Søk i kanal'
|
Search Channel: 'Søk i kanal'
|
||||||
Your search results have returned 0 results: 'Resultatløst søk'
|
Your search results have returned 0 results: 'Søktet ditt ga 0 resultater'
|
||||||
Sort By: 'Sorter etter'
|
Sort By: 'Sorter etter'
|
||||||
Videos:
|
Videos:
|
||||||
Videos: 'Videoer'
|
Videos: 'Videoer'
|
||||||
|
@ -270,11 +377,16 @@ Channel:
|
||||||
About: 'Om'
|
About: 'Om'
|
||||||
Channel Description: 'Kanalbeskrivelse'
|
Channel Description: 'Kanalbeskrivelse'
|
||||||
Featured Channels: 'Framhevede kanaler'
|
Featured Channels: 'Framhevede kanaler'
|
||||||
|
Added channel to your subscriptions: Lagt til kanal til dine abonnenter
|
||||||
|
Removed subscription from $ other channel(s): Fjernet abonnement fra $ andre kanal(er)
|
||||||
|
Channel has been removed from your subscriptions: Kanalen har blitt fjernet fra
|
||||||
|
dine abonnement
|
||||||
Video:
|
Video:
|
||||||
Mark As Watched: 'Marker som sett'
|
Mark As Watched: 'Marker som sett'
|
||||||
Remove From History: 'Fjern fra historikk'
|
Remove From History: 'Fjern fra historikk'
|
||||||
Video has been marked as watched: 'Videoen har blitt markert som sett'
|
Video has been marked as watched: 'Videoen har blitt markert som sett'
|
||||||
Video has been removed from your history: ''
|
Video has been removed from your history: 'Videoen har blitt fjernet fra historikken
|
||||||
|
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-spiller'
|
||||||
|
@ -284,17 +396,22 @@ Video:
|
||||||
View: 'Vis'
|
View: 'Vis'
|
||||||
Views: 'Visninger'
|
Views: 'Visninger'
|
||||||
# Context is "X People Watching"
|
# Context is "X People Watching"
|
||||||
Watching: ''
|
Watching: 'Ser på'
|
||||||
Watched: ''
|
Watched: 'Sett'
|
||||||
# As in a Live Video
|
# As in a Live Video
|
||||||
Live: 'Direktesendt'
|
Live: 'Direkte'
|
||||||
Live Now: 'Direktesendt nå'
|
Live Now: 'Direkte nå'
|
||||||
Live Chat: 'Sanntidssludring'
|
Live Chat: 'Direktechat'
|
||||||
Enable Live Chat: 'Skru på sanntidssludring'
|
Enable Live Chat: 'Slå på direktechat'
|
||||||
Live Chat is currently not supported in this build.: ''
|
Live Chat is currently not supported in this build.: 'Direktechat er ikke støttet
|
||||||
'Chat is disabled or the Live Stream has ended.': ''
|
i den nåværende versjonen.'
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: ''
|
'Chat is disabled or the Live Stream has ended.': 'Chatten er slått av eller direktesendingen
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
er avsluttet.'
|
||||||
|
Live chat is enabled. Chat messages will appear here once sent.: 'Direktechat er
|
||||||
|
slått på. Chatmeldinger vil bli vist her når de er sendt.'
|
||||||
|
'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
|
||||||
|
kreves.'
|
||||||
Published:
|
Published:
|
||||||
Jan: 'Jan'
|
Jan: 'Jan'
|
||||||
Feb: 'Feb'
|
Feb: 'Feb'
|
||||||
|
@ -321,11 +438,39 @@ Video:
|
||||||
Year: 'År'
|
Year: 'År'
|
||||||
Years: 'År'
|
Years: 'År'
|
||||||
Ago: 'Siden'
|
Ago: 'Siden'
|
||||||
Upcoming: ''
|
Upcoming: 'Har premiere'
|
||||||
Published on: ''
|
Minutes: Minutter
|
||||||
|
Minute: Minutt
|
||||||
|
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:
|
||||||
|
High: Høy
|
||||||
|
Medium: Middels
|
||||||
|
Low: Lav
|
||||||
|
Best: Beste
|
||||||
|
audio only: Bare lyd
|
||||||
|
video only: Bare video
|
||||||
|
Download Video: Last ned video
|
||||||
|
Video has been saved: Videoen har blitt lagret
|
||||||
|
Save Video: Lagre video
|
||||||
|
Copy Invidious Channel Link: Kopier Invidious-kanallenke
|
||||||
|
Reverse Playlist: Snu spillelisten
|
||||||
|
Started streaming on: Startet strømming
|
||||||
|
Streamed on: Strømmet
|
||||||
|
Starting soon, please refresh the page to check again: Starter snart, vennligst
|
||||||
|
oppdater siden for å sjekke igjen
|
||||||
|
Autoplay: Automatisk avspilling
|
||||||
|
Shuffle Playlist: Spill av tilfeldig fra spillelisten
|
||||||
|
Loop Playlist: Gjenta spilleliste
|
||||||
|
Open Channel in Invidious: Opne kanal i Invidious
|
||||||
|
Copy YouTube Channel Link: Kopier YouTube-kanallenke
|
||||||
|
Video has been removed from your saved list: Videoen har blitt fjernet fra din liste
|
||||||
|
over lagrede videoer
|
||||||
|
Open Channel in YouTube: Åpne kanal i YouTube
|
||||||
|
Play Previous Video: Spill av forrige video
|
||||||
|
Play Next Video: Spill av neste video
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -350,12 +495,16 @@ Playlist:
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: ''
|
Toggle Theatre Mode: 'Veksle teatermodus'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: 'Endre videoformater'
|
Change Video Formats: 'Endre videoformater'
|
||||||
Use Dash Formats: ''
|
Use Dash Formats: 'Bruk DASH-formater'
|
||||||
Use Legacy Formats: ''
|
Use Legacy Formats: 'Bruk foreldede formater'
|
||||||
Use Audio Formats: ''
|
Use Audio Formats: 'Bruk lydformater'
|
||||||
|
Audio formats are not available for this video: Lydformater er ikke tilgjengelig
|
||||||
|
for denne videoen
|
||||||
|
Dash formats are not available for this video: DASH-formater er ikke tilgjengelig
|
||||||
|
for denne videoen
|
||||||
Share:
|
Share:
|
||||||
Share Video: 'Del video'
|
Share Video: 'Del video'
|
||||||
Copy Link: 'Kopier lenke'
|
Copy Link: 'Kopier lenke'
|
||||||
|
@ -369,6 +518,10 @@ Share:
|
||||||
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
|
||||||
|
Include Timestamp: Inkluder tidsstempel
|
||||||
|
Invidious Channel URL copied to clipboard: Ugyldig kanalnettadresse kopiert til
|
||||||
|
utklippstavle
|
||||||
Mini Player: 'Minispiller'
|
Mini Player: 'Minispiller'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: 'Kommentarer'
|
Comments: 'Kommentarer'
|
||||||
|
@ -381,25 +534,35 @@ Comments:
|
||||||
Hide: 'Skjul'
|
Hide: 'Skjul'
|
||||||
Replies: 'Svar'
|
Replies: 'Svar'
|
||||||
Reply: 'Svar'
|
Reply: 'Svar'
|
||||||
There are no comments available for this video: ''
|
There are no comments available for this video: 'Det finnes ingen tilgjengelige
|
||||||
|
kommentarer for denne videoen'
|
||||||
Load More Comments: 'Last inn flere kommentarer'
|
Load More Comments: 'Last inn flere kommentarer'
|
||||||
Up Next: ''
|
No more comments available: Ingen flere kommentarer tilgjengelig
|
||||||
|
Newest first: Nyeste først
|
||||||
|
There are no more comments for this video: Det finnes ingen flere kommentarer for
|
||||||
|
denne videoen
|
||||||
|
Sort by: Sorter etter
|
||||||
|
Top comments: Toppkommentarer
|
||||||
|
Up Next: 'Neste'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): ''
|
Local API Error (Click to copy): 'Lokal API-feil (Klikk for å kopiere)'
|
||||||
Invidious API Error (Click to copy): ''
|
Invidious API Error (Click to copy): 'Invidious-API-feil (Klikk for å kopiere)'
|
||||||
Falling back to Invidious API: ''
|
Falling back to Invidious API: 'Faller tilbake til Invidious-API-et'
|
||||||
Falling back to the local API: ''
|
Falling back to the local API: 'Faller tilbake til det lokale API-et'
|
||||||
Subscriptions have not yet been implemented: ''
|
Subscriptions have not yet been implemented: 'Abonnement har ikke blitt implementert
|
||||||
Loop is now disabled: ''
|
enda'
|
||||||
Loop is now enabled: ''
|
Loop is now disabled: 'Gjenta er nå deaktivert'
|
||||||
Shuffle is now disabled: ''
|
Loop is now enabled: 'Gjenta er nå aktivert'
|
||||||
Shuffle is now enabled: ''
|
Shuffle is now disabled: 'Tilfeldig avspilling er nå deaktivert'
|
||||||
Playing Next Video: ''
|
Shuffle is now enabled: 'Tilfeldig avspilling er nå aktivert'
|
||||||
Playing Previous Video: ''
|
Playing Next Video: 'Spiller av neste video'
|
||||||
Playing next video in 5 seconds. Click to cancel: ''
|
Playing Previous Video: 'Spiller av forrige video'
|
||||||
Canceled next video autoplay: ''
|
Playing next video in 5 seconds. Click to cancel: 'Spiller av neste video om 5 sekunder.
|
||||||
'The playlist has ended. Enable loop to continue playing': ''
|
Klikk for å avbryte.'
|
||||||
|
Canceled next video autoplay: 'Avbryter automatisk avspilling av neste video'
|
||||||
|
'The playlist has ended. Enable loop to continue playing': 'Spillelisten har nådd
|
||||||
|
sin ende. Klikk på «Gjenta» for å fortsette spillingen'
|
||||||
|
|
||||||
Yes: 'Ja'
|
Yes: 'Ja'
|
||||||
No: 'Nei'
|
No: 'Nei'
|
||||||
|
@ -420,3 +583,65 @@ Profile:
|
||||||
Delete Profile: Slett profil
|
Delete Profile: Slett profil
|
||||||
Make Default Profile: Gjør til forvalgt profil
|
Make Default Profile: Gjør til 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
|
||||||
|
du sikker på at du vil fjerne de valgte kanalene? Disse vil ikke bli slettet fra
|
||||||
|
noen andre profiler.
|
||||||
|
No channel(s) have been selected: Ingen kanal(er) har blitt valgt
|
||||||
|
Select All: Velg alle
|
||||||
|
$ selected: $ valgt
|
||||||
|
Other Channels: Andre kanaler
|
||||||
|
Color Picker: Fargevelger
|
||||||
|
Profile Select: Velg profil
|
||||||
|
Create Profile: Lag profil
|
||||||
|
Edit Profile: Rediger profil
|
||||||
|
Create New Profile: Lag ny profil
|
||||||
|
Profile Manager: Profilbehandler
|
||||||
|
All Channels: Alle kanaler
|
||||||
|
? 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.
|
||||||
|
: Dette er din hovedprofil. Er du sikker på at du ønsker å slette valgte kanaler?
|
||||||
|
De samme kanalene vil bli slettet i enhver profil de finnes i.
|
||||||
|
Select None: Fravelg alt
|
||||||
|
Delete Selected: Slett valgte
|
||||||
|
Add Selected To Profile: Legg til valgt i profil
|
||||||
|
Subscription List: Abonnementsliste
|
||||||
|
Profile Preview: Profilforhåndsvisning
|
||||||
|
Custom Color: Egendefinert farge
|
||||||
|
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
|
||||||
|
i ditt land.
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Invidious Instance: Invidious-forekomsten som FreeTube vil koble til for API-kall.
|
||||||
|
Fjern den gjeldene forekomsten for å se en liste over offentlige forekomster
|
||||||
|
å velge mellom
|
||||||
|
Thumbnail Preference: Alle miniatyrbilder i FreeTube vil bli erstattet av et bilde
|
||||||
|
av videoen i stedet for standardminiatyrbildet
|
||||||
|
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
|
||||||
|
dersom det er aktivert
|
||||||
|
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.
|
||||||
|
Preferred API Backend: Velg bakenden FreeTube bruker til å hente data. Det lokale
|
||||||
|
API-et er en innebygd utpakker. Invidious-API-et krever en Invidious-tjener
|
||||||
|
å koble til.
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: Når påskrudd, vil FreeTube bruke RSS istedenfor dens forvalgte
|
||||||
|
metode for å hente din abonnementsstrøm. RSS er raskere og forhindrer IP-blokkering,
|
||||||
|
men har ikke gitt info som videovarighet, eller sanntidsstatus.
|
||||||
|
Player Settings:
|
||||||
|
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,
|
||||||
|
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
|
||||||
|
som 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
|
||||||
|
returnert av Invidious ikke spilles som følge av regionsrestriksjoner.
|
||||||
|
Proxy Videos Through Invidious: Kobler til Invidious for å vertstjene videoer
|
||||||
|
istedenfor å gjøre direkte tilkoblinger til YouTube. (Overskriver API-preferanse.)
|
||||||
|
A new blog is now available, $. Click to view more: En ny bloggpost er nå tilgjengelig,
|
||||||
|
$. Klikk for å se den
|
||||||
|
The playlist has been reversed: Spillelisten har blitt snudd
|
||||||
|
Download From Site: Last ned fra nettsiden
|
||||||
|
Version $ is now available! Click for more details: Versjon $ er nå tilgjengelig.
|
||||||
|
Klikk for flere detaljer.
|
||||||
|
|
|
@ -0,0 +1,588 @@
|
||||||
|
# Put the name of your locale in the same language
|
||||||
|
Locale Name: 'Norsk nynorsk'
|
||||||
|
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.': >-
|
||||||
|
Denne delen av applikasjonen er ikkje klar enda. Ver venleg og kom tilbake på eit
|
||||||
|
seinare tidspunkt.
|
||||||
|
|
||||||
|
# Webkit Menu Bar
|
||||||
|
File: 'Fil'
|
||||||
|
Quit: 'Avslutt'
|
||||||
|
Edit: 'Rediger'
|
||||||
|
Undo: 'Angre'
|
||||||
|
Redo: 'Gjenta'
|
||||||
|
Cut: 'Klipp'
|
||||||
|
Copy: 'Kopier'
|
||||||
|
Paste: 'Lim'
|
||||||
|
Delete: 'Fjern'
|
||||||
|
Select all: 'Vel alle'
|
||||||
|
Reload: 'Oppdater'
|
||||||
|
Force Reload: 'Tving oppdatering'
|
||||||
|
Toggle Developer Tools: 'Veksle utviklarverktøy'
|
||||||
|
Actual size: 'Originalstorleik'
|
||||||
|
Zoom in: 'Forstørr'
|
||||||
|
Zoom out: 'Forminsk'
|
||||||
|
Toggle fullscreen: 'Veksle fullskjerm'
|
||||||
|
Window: 'Vindauge'
|
||||||
|
Minimize: 'Minimer'
|
||||||
|
Close: 'Lukk'
|
||||||
|
Back: 'Tilbake'
|
||||||
|
Forward: 'Framover'
|
||||||
|
|
||||||
|
Version $ is now available! Click for more details: 'Versjon $ er no tilgjengeleg!
|
||||||
|
Klikk for meir informasjon'
|
||||||
|
Download From Site: 'Last ned frå nettstaden'
|
||||||
|
A new blog is now available, $. Click to view more: 'Eit nytt blogginnlegg er tilgjengeleg,
|
||||||
|
$. Klikk for å opne det'
|
||||||
|
|
||||||
|
# Search Bar
|
||||||
|
Search / Go to URL: 'Søk / Gå til nettadresse'
|
||||||
|
# In Filter Button
|
||||||
|
Search Filters:
|
||||||
|
Search Filters: 'Søkfilter'
|
||||||
|
Sort By:
|
||||||
|
Sort By: 'Sorter etter'
|
||||||
|
Most Relevant: 'Mest relevant'
|
||||||
|
Rating: 'Vurdering'
|
||||||
|
Upload Date: 'Opplastingsdato'
|
||||||
|
View Count: 'Sjåartal'
|
||||||
|
Time:
|
||||||
|
Time: 'Tid'
|
||||||
|
Any Time: 'Når som helst'
|
||||||
|
Last Hour: 'Den siste timen'
|
||||||
|
Today: 'I dag'
|
||||||
|
This Week: 'Denne veka'
|
||||||
|
This Month: 'Denne månaden'
|
||||||
|
This Year: 'Dette året'
|
||||||
|
Type:
|
||||||
|
Type: 'Type'
|
||||||
|
All Types: 'Alle typar'
|
||||||
|
Videos: 'Videoar'
|
||||||
|
Channels: 'Kanalar'
|
||||||
|
#& Playlists
|
||||||
|
Duration:
|
||||||
|
Duration: 'Varigheit'
|
||||||
|
All Durations: 'Alle varigheitene'
|
||||||
|
Short (< 4 minutes): 'Kort (< 4 minutt)'
|
||||||
|
Long (> 20 minutes): 'Lang (> 20 minutt)'
|
||||||
|
# On Search Page
|
||||||
|
Search Results: 'Søkeresultat'
|
||||||
|
Fetching results. Please wait: 'Henter resultat. Ver venleg og vent'
|
||||||
|
Fetch more results: 'Hent fleire resultat'
|
||||||
|
There are no more results for this search: 'Det er inga fleire resultat for dette
|
||||||
|
søket'
|
||||||
|
# Sidebar
|
||||||
|
Subscriptions:
|
||||||
|
# On Subscriptions Page
|
||||||
|
Subscriptions: 'Abonnement'
|
||||||
|
Latest Subscriptions: 'Siste abonnement'
|
||||||
|
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: 'Denne
|
||||||
|
profilen har ei stor mengd abonnentar. Tvinger RSS til å unngå å avgrense hastigheita'
|
||||||
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Di
|
||||||
|
abonnementliste er tom for augeblikket. Start å legge til fleire abonnement for
|
||||||
|
å sjå dei her.'
|
||||||
|
'Getting Subscriptions. Please wait.': 'Henter abonnement. Ver venleg og vent.'
|
||||||
|
Refresh Subscriptions: 'Oppdater abonnement'
|
||||||
|
Load More Videos: 'Last inn fleire videoar'
|
||||||
|
Trending: 'På veg opp'
|
||||||
|
Most Popular: 'Mest populært'
|
||||||
|
Playlists: 'Spelelister'
|
||||||
|
User Playlists:
|
||||||
|
Your Playlists: 'Dine spelelister'
|
||||||
|
Playlist Message: 'Denne sida reflekterer ikkje ei fullt fungerande speleliste.
|
||||||
|
Den viser berre videoar som du har lagra eller lagt til favorittar. Når arbeidet
|
||||||
|
er ferdig, blir alle videoane som for augeblikket er her overført til ei "favoritt"
|
||||||
|
speleliste.'
|
||||||
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 'Du
|
||||||
|
har ingen lagra videoar for augeblikket. Klikk på lagringsknappen i hjørnet av
|
||||||
|
ein video slik at den bli oppført her'
|
||||||
|
History:
|
||||||
|
# On History Page
|
||||||
|
History: 'Historikk'
|
||||||
|
Watch History: 'Sjåarhistorikk'
|
||||||
|
Your history list is currently empty.: 'Historikken din er tom for augeblikket.'
|
||||||
|
Settings:
|
||||||
|
# On Settings Page
|
||||||
|
Settings: 'Innstillingar'
|
||||||
|
The app needs to restart for changes to take effect. Restart and apply change?: 'Applikasjonen
|
||||||
|
må restarte for at endringane skal tre i kraft. Start på nytt og ta i bruk endringane?'
|
||||||
|
General Settings:
|
||||||
|
General Settings: 'Generelle innstillingar'
|
||||||
|
Check for Updates: 'Sjå etter oppdateringar'
|
||||||
|
Check for Latest Blog Posts: 'Sjå etter siste blogginnlegg'
|
||||||
|
Fallback to Non-Preferred Backend on Failure: 'Tilbakefall til ikkje-føretrekte
|
||||||
|
backend ved feil'
|
||||||
|
Enable Search Suggestions: 'Slå på søkeforslag'
|
||||||
|
Default Landing Page: 'Forvalt landingsside'
|
||||||
|
Locale Preference: 'Språkinnstilling'
|
||||||
|
Preferred API Backend:
|
||||||
|
Preferred API Backend: 'Føretrekte API-backend'
|
||||||
|
Local API: 'Lokalt API'
|
||||||
|
Invidious API: 'Invidious-API'
|
||||||
|
Video View Type:
|
||||||
|
Video View Type: 'Videovisingstype'
|
||||||
|
Grid: 'Rutenett'
|
||||||
|
List: 'Liste'
|
||||||
|
Thumbnail Preference:
|
||||||
|
Thumbnail Preference: 'Miniatyrbiletepreferanse'
|
||||||
|
Default: 'Standard'
|
||||||
|
Beginning: 'Begynning'
|
||||||
|
Middle: 'Mellom'
|
||||||
|
End: 'Slutt'
|
||||||
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious-førekomst
|
||||||
|
(Standard er https://invidious.snopyta.org)'
|
||||||
|
View all Invidious instance information: 'Vis all Invidious-førekomstinformasjon'
|
||||||
|
Region for Trending: 'Region for På veg opp'
|
||||||
|
#! List countries
|
||||||
|
Theme Settings:
|
||||||
|
Theme Settings: 'Temainnstillingar'
|
||||||
|
Match Top Bar with Main Color: ''
|
||||||
|
Expand Side Bar by Default: ''
|
||||||
|
Disable Smooth Scrolling: 'Deaktiver jevn rulling'
|
||||||
|
UI Scale: 'Skalering av brukargrensesnitt'
|
||||||
|
Base Theme:
|
||||||
|
Base Theme: 'Hovudtema'
|
||||||
|
Black: 'Svart'
|
||||||
|
Dark: 'Mørk'
|
||||||
|
Light: 'Lys'
|
||||||
|
Main Color Theme:
|
||||||
|
Main Color Theme: 'Hovudfargetema'
|
||||||
|
Red: 'Raud'
|
||||||
|
Pink: 'Rosa'
|
||||||
|
Purple: 'Lilla'
|
||||||
|
Deep Purple: 'Djuplilla'
|
||||||
|
Indigo: 'Indigo'
|
||||||
|
Blue: 'Blå'
|
||||||
|
Light Blue: 'Lyseblå'
|
||||||
|
Cyan: ''
|
||||||
|
Teal: 'Blågrøn'
|
||||||
|
Green: 'Grøn'
|
||||||
|
Light Green: 'Lysegrøn'
|
||||||
|
Lime: 'Lime'
|
||||||
|
Yellow: 'Gul'
|
||||||
|
Amber: 'Rav'
|
||||||
|
Orange: 'Oransje'
|
||||||
|
Deep Orange: 'Djuporansje'
|
||||||
|
Secondary Color Theme: 'Sekundærfargetema'
|
||||||
|
#* Main Color Theme
|
||||||
|
Player Settings:
|
||||||
|
Player Settings: 'Videospelarinnstillingar'
|
||||||
|
Force Local Backend for Legacy Formats: ''
|
||||||
|
Play Next Video: 'Spel av neste video'
|
||||||
|
Turn on Subtitles by Default: 'Slå på undertekst som standard'
|
||||||
|
Autoplay Videos: 'Spel av videoar automatisk'
|
||||||
|
Proxy Videos Through Invidious: ''
|
||||||
|
Autoplay Playlists: 'Spel av spelelister automatisk'
|
||||||
|
Enable Theatre Mode by Default: 'Kinomodus som standardval'
|
||||||
|
Default Volume: 'Standardvolum'
|
||||||
|
Default Playback Rate: 'Standard avspelingsfrekvens'
|
||||||
|
Default Video Format:
|
||||||
|
Default Video Format: 'Standard videoformat'
|
||||||
|
Dash Formats: 'DASH-format'
|
||||||
|
Legacy Formats: 'Eldre format'
|
||||||
|
Audio Formats: 'Lydformat'
|
||||||
|
Default Quality:
|
||||||
|
Default Quality: 'Standardkvalitet'
|
||||||
|
Auto: 'Automatisk'
|
||||||
|
144p: '144p'
|
||||||
|
240p: '240p'
|
||||||
|
360p: '360p'
|
||||||
|
480p: '480p'
|
||||||
|
720p: '720p'
|
||||||
|
1080p: '1080p'
|
||||||
|
1440p: '1440p'
|
||||||
|
4k: '4k'
|
||||||
|
8k: '8k'
|
||||||
|
Privacy Settings:
|
||||||
|
Privacy Settings: 'Personvernsinnstillingar'
|
||||||
|
Remember History: 'Husk historikk'
|
||||||
|
Save Watched Progress: ''
|
||||||
|
Clear Search Cache: 'Slett søkebuffer'
|
||||||
|
Are you sure you want to clear out your search cache?: 'Er du sikker på at du
|
||||||
|
vil slette søkebufferen?'
|
||||||
|
Search cache has been cleared: 'Søkebufferen har blitt sletta'
|
||||||
|
Remove Watch History: 'Slett sjåarhistorikk'
|
||||||
|
Are you sure you want to remove your entire watch history?: 'Er du sikker på at
|
||||||
|
du vil fjerne heile sjåarhistorikken din?'
|
||||||
|
Watch history has been cleared: 'Sjåarhistorikk har blitt fjerna'
|
||||||
|
Remove All Subscriptions / Profiles: ''
|
||||||
|
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
|
||||||
|
Subscription Settings:
|
||||||
|
Subscription Settings: 'Abonnementinnstillingar'
|
||||||
|
Hide Videos on Watch: ''
|
||||||
|
Fetch Feeds from RSS: 'Hent feedar frå RSS'
|
||||||
|
Manage Subscriptions: 'Behandle abonnement'
|
||||||
|
Distraction Free Settings:
|
||||||
|
Distraction Free Settings: ''
|
||||||
|
Hide Video Views: 'Gøym videovisingar'
|
||||||
|
Hide Video Likes And Dislikes: ''
|
||||||
|
Hide Channel Subscribers: 'Gøym kanalabonnement'
|
||||||
|
Hide Comment Likes: ''
|
||||||
|
Hide Recommended Videos: 'Gøym anbefalte videoar'
|
||||||
|
Hide Trending Videos: ''
|
||||||
|
Hide Popular Videos: 'Gøym populære videoar'
|
||||||
|
Hide Live Chat: 'Gøym direktechat'
|
||||||
|
Hide Active Subscriptions: 'Gøym aktive abonnement'
|
||||||
|
Data Settings:
|
||||||
|
Data Settings: 'Datainnstillingar'
|
||||||
|
Select Import Type: 'Vel importtype'
|
||||||
|
Select Export Type: 'Vel eksporttype'
|
||||||
|
Import Subscriptions: 'Importer abonnement'
|
||||||
|
Import FreeTube: 'Importer FreeTube'
|
||||||
|
Import YouTube: 'Importer YouTube'
|
||||||
|
Import NewPipe: 'Importer NewPipe'
|
||||||
|
Check for Legacy Subscriptions: ''
|
||||||
|
Export Subscriptions: 'Eksporter abonnement'
|
||||||
|
Export FreeTube: 'Eksporter FreeTube'
|
||||||
|
Export YouTube: 'Eksporter YouTube'
|
||||||
|
Export NewPipe: 'Eksporter NewPipe'
|
||||||
|
Import History: 'Importer historikk'
|
||||||
|
Export History: 'Eksporter historikk'
|
||||||
|
Profile object has insufficient data, skipping item: 'Eit profilobjekt manglar
|
||||||
|
data, hoppar over objektet'
|
||||||
|
All subscriptions and profiles have been successfully imported: 'Alle abonnement
|
||||||
|
og profila har blitt importert'
|
||||||
|
All subscriptions have been successfully imported: 'Alle abonnement har blitt
|
||||||
|
importert'
|
||||||
|
One or more subscriptions were unable to be imported: ''
|
||||||
|
Invalid subscriptions file: 'Ugyldig abonnementfil'
|
||||||
|
This might take a while, please wait: 'Dette kan ta ei stund, venleg vent'
|
||||||
|
Invalid history file: 'Ugyldig historiefil'
|
||||||
|
Subscriptions have been successfully exported: 'Abonnement har blitt importert'
|
||||||
|
History object has insufficient data, skipping item: 'Eit historieobjekt manglar
|
||||||
|
data, hoppar over objektet'
|
||||||
|
All watched history has been successfully imported: 'Visingshistorikken har blitt
|
||||||
|
importert'
|
||||||
|
All watched history has been successfully exported: 'Visingshistorikken har blitt
|
||||||
|
eksportert'
|
||||||
|
Unable to read file: 'Kan ikkje lese fil'
|
||||||
|
Unable to write file: 'Kan ikkje skrive til fil'
|
||||||
|
Unknown data key: 'Ukjent datanøkkel'
|
||||||
|
How do I import my subscriptions?: 'Korleis importerer eg abonnementa mine?'
|
||||||
|
Manage Subscriptions: 'Behandle abonnement'
|
||||||
|
Proxy Settings:
|
||||||
|
Proxy Settings: 'Proxyinnstillingar'
|
||||||
|
Enable Tor / Proxy: 'Aktiver Tor / Proxy'
|
||||||
|
Proxy Protocol: 'Proxyprotokoll'
|
||||||
|
Proxy Host: 'Proxyvert'
|
||||||
|
Proxy Port Number: 'Proxyportnummer'
|
||||||
|
Clicking on Test Proxy will send a request to: 'Klikk på testproxyen du vil sende
|
||||||
|
ein førespurnad til'
|
||||||
|
Test Proxy: 'Test proxy'
|
||||||
|
Your Info: 'Din informasjon'
|
||||||
|
Ip: 'IP-adresse'
|
||||||
|
Country: 'Land'
|
||||||
|
Region: 'Region'
|
||||||
|
City: 'By'
|
||||||
|
Error getting network information. Is your proxy configured properly?: 'Kunne
|
||||||
|
ikkje hente nettverksinformasjon. Er proxyen din konfigurert skikkeleg?'
|
||||||
|
About:
|
||||||
|
#On About page
|
||||||
|
About: 'Om'
|
||||||
|
Beta: 'Beta'
|
||||||
|
Source code: 'Kjeldekode'
|
||||||
|
Licensed under the AGPLv3: 'Lisensiert under AGPLv3'
|
||||||
|
View License: 'Vis lisens'
|
||||||
|
Downloads / Changelog: 'Nedlastingar / Endringslogg'
|
||||||
|
GitHub releases: 'GitHub-utgjevingar'
|
||||||
|
Help: 'Hjelp'
|
||||||
|
FreeTube Wiki: 'FreeTube-wiki'
|
||||||
|
FAQ: 'Ofte stilte spørsmål'
|
||||||
|
Report a problem: 'Rapporter eit problem'
|
||||||
|
GitHub issues: 'GitHub issues'
|
||||||
|
Please check for duplicates before posting: 'Sjå etter duplikat før du poster noko'
|
||||||
|
Website: 'Nettstad'
|
||||||
|
Blog: 'Blogg'
|
||||||
|
Email: 'E-post'
|
||||||
|
Mastodon: 'Mastodon'
|
||||||
|
Chat on Matrix: 'Snakk med oss på Matrix'
|
||||||
|
Please read the: 'Ver venleg og les'
|
||||||
|
room rules: 'Romreglar'
|
||||||
|
Translate: 'Omsetje'
|
||||||
|
Credits: 'Bidrag'
|
||||||
|
FreeTube is made possible by: 'FreeTube er mogleggjort av'
|
||||||
|
these people and projects: 'desse folka og prosjekta'
|
||||||
|
Donate: 'Doner'
|
||||||
|
|
||||||
|
Profile:
|
||||||
|
Profile Select: 'Profilval'
|
||||||
|
All Channels: 'Alle kanalar'
|
||||||
|
Profile Manager: 'Profilbehandlar'
|
||||||
|
Create New Profile: 'Lag ny profil'
|
||||||
|
Edit Profile: 'Rediger profil'
|
||||||
|
Color Picker: 'Fargeveljar'
|
||||||
|
Custom Color: ''
|
||||||
|
Profile Preview: 'Forhandsvising av profil'
|
||||||
|
Create Profile: 'Lag profil'
|
||||||
|
Update Profile: 'Oppdater profil'
|
||||||
|
Make Default Profile: 'Angi som standardprofil'
|
||||||
|
Delete Profile: 'Fjern profil'
|
||||||
|
Are you sure you want to delete this profile?: 'Er du sikker på at du vil fjerne
|
||||||
|
denne profilet?'
|
||||||
|
All subscriptions will also be deleted.: 'Alle abonnement vil òg bli sletta.'
|
||||||
|
Profile could not be found: 'Profil ikkje funne'
|
||||||
|
Your profile name cannot be empty: 'Profilnamnet ditt kan ikkje vere tomt'
|
||||||
|
Profile has been created: 'Profilet har blitt laga'
|
||||||
|
Profile has been updated: 'Profilet har blitt oppdatert'
|
||||||
|
Your default profile has been set to $: 'Standardprofilet ditt har blitt satt til
|
||||||
|
$'
|
||||||
|
Removed $ from your profiles: 'Fjerna $ frå profila dine'
|
||||||
|
Your default profile has been changed to your primary profile: 'Standardprofilet
|
||||||
|
ditt har blitt endra til primærprofilet ditt'
|
||||||
|
$ is now the active profile: '$ er no det aktive profilet'
|
||||||
|
Subscription List: 'Abonnementliste'
|
||||||
|
Other Channels: 'Andre kanalar'
|
||||||
|
$ selected: '$ valt'
|
||||||
|
Select All: 'Vel alle'
|
||||||
|
Select None: 'Vel ingen'
|
||||||
|
Delete Selected: 'Slett valte'
|
||||||
|
Add Selected To Profile: 'Legg til valt i profilen'
|
||||||
|
No channel(s) have been selected: 'Ingen kanal(ar) har blitt valt'
|
||||||
|
? 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.
|
||||||
|
: 'Dette er primærprofilet ditt. Er du sikker på at du vil fjerne dei valte kanalane?
|
||||||
|
Dei same kanalane vil bli sletta i profila dei er funne i.'
|
||||||
|
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 dei valte kanalane? Dette vil ikkje slette kanalane
|
||||||
|
frå andre profil.'
|
||||||
|
#On Channel Page
|
||||||
|
Channel:
|
||||||
|
Subscriber: 'Abonnent'
|
||||||
|
Subscribers: 'Abonnentar'
|
||||||
|
Subscribe: 'Abonner'
|
||||||
|
Unsubscribe: 'Opphev abonnement'
|
||||||
|
Channel has been removed from your subscriptions: 'Kanalen har blitt fjerna frå
|
||||||
|
dine abonnement'
|
||||||
|
Removed subscription from $ other channel(s): ''
|
||||||
|
Added channel to your subscriptions: 'Lagt til kanal til dine abonnentar'
|
||||||
|
Search Channel: 'Søk i kanal'
|
||||||
|
Your search results have returned 0 results: 'Søket gitt gav 0 resultat'
|
||||||
|
Sort By: 'Sorter etter'
|
||||||
|
Videos:
|
||||||
|
Videos: 'Videoar'
|
||||||
|
This channel does not currently have any videos: 'Kanalen har ingen videoar enda'
|
||||||
|
Sort Types:
|
||||||
|
Newest: 'Nyaste'
|
||||||
|
Oldest: 'Eldste'
|
||||||
|
Most Popular: 'Mest populære'
|
||||||
|
Playlists:
|
||||||
|
Playlists: 'Spelelister'
|
||||||
|
This channel does not currently have any playlists: 'Denne kanalen har ingen spelelister
|
||||||
|
enda'
|
||||||
|
Sort Types:
|
||||||
|
Last Video Added: 'Siste video lagt til'
|
||||||
|
Newest: 'Nyaste'
|
||||||
|
Oldest: 'Eldste'
|
||||||
|
About:
|
||||||
|
About: 'Om'
|
||||||
|
Channel Description: 'Kanalbeskriving'
|
||||||
|
Featured Channels: 'Utvalte kanalar'
|
||||||
|
Video:
|
||||||
|
Mark As Watched: 'Marker som sett'
|
||||||
|
Remove From History: 'Fjern frå historikk'
|
||||||
|
Video has been marked as watched: 'Videoen har blitt markert som sett'
|
||||||
|
Video has been removed from your history: 'Videoen har blitt fjerna frå historikken
|
||||||
|
din'
|
||||||
|
Save Video: 'Lagre video'
|
||||||
|
Video has been saved: 'Videoen har blitt lagra'
|
||||||
|
Video has been removed from your saved list: 'Videoen har blitt fjerna frå di liste
|
||||||
|
over lagra videoar'
|
||||||
|
Open in YouTube: 'Opne i YouTube'
|
||||||
|
Copy YouTube Link: 'Kopier YouTube-lenke'
|
||||||
|
Open YouTube Embedded Player: ''
|
||||||
|
Copy YouTube Embedded Player Link: ''
|
||||||
|
Open in Invidious: 'Opne i Invidious'
|
||||||
|
Copy Invidious Link: 'Kopier Invidious-lenke'
|
||||||
|
Open Channel in YouTube: 'Opne kanal i YouTube'
|
||||||
|
Copy YouTube Channel Link: 'Kopier YouTube-kanallenke'
|
||||||
|
Open Channel in Invidious: 'Opne kanal i Invidious'
|
||||||
|
Copy Invidious Channel Link: 'Kopier Invidious-kanallenke'
|
||||||
|
View: 'Vis'
|
||||||
|
Views: 'Visingar'
|
||||||
|
Loop Playlist: 'Gjenta speleliste'
|
||||||
|
Shuffle Playlist: 'Spel av tilfeldig frå spelelista'
|
||||||
|
Reverse Playlist: ''
|
||||||
|
Play Next Video: 'Spel av neste video'
|
||||||
|
Play Previous Video: 'Spel av førre video'
|
||||||
|
# Context is "X People Watching"
|
||||||
|
Watching: 'Ser på'
|
||||||
|
Watched: 'Såg'
|
||||||
|
Autoplay: 'Automatisk avspeling'
|
||||||
|
Starting soon, please refresh the page to check again: 'Starter snart, venleg oppdater
|
||||||
|
sida for å sjekke igjen'
|
||||||
|
# As in a Live Video
|
||||||
|
Live: 'Direkte'
|
||||||
|
Live Now: 'Direkte no'
|
||||||
|
Live Chat: 'Direktechat'
|
||||||
|
Enable Live Chat: 'Slå på direktechat'
|
||||||
|
Live Chat is currently not supported in this build.: 'Direktechat er ikkje støtta
|
||||||
|
i den noverande versjonen.'
|
||||||
|
'Chat is disabled or the Live Stream has ended.': 'Chatten er slått av eller direktesendinga
|
||||||
|
er avslutta.'
|
||||||
|
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.'
|
||||||
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
||||||
|
Download Video: 'Last ned video'
|
||||||
|
video only: 'berre video'
|
||||||
|
audio only: 'berre lyd'
|
||||||
|
Audio:
|
||||||
|
Low: 'Låg'
|
||||||
|
Medium: 'Middels'
|
||||||
|
High: 'Høg'
|
||||||
|
Best: 'Beste'
|
||||||
|
Published:
|
||||||
|
Jan: 'Jan'
|
||||||
|
Feb: 'Feb'
|
||||||
|
Mar: 'Mar'
|
||||||
|
Apr: 'Apr'
|
||||||
|
May: 'Mai'
|
||||||
|
Jun: 'Jun'
|
||||||
|
Jul: 'Jul'
|
||||||
|
Aug: 'Aug'
|
||||||
|
Sep: 'Sep'
|
||||||
|
Oct: 'Okt'
|
||||||
|
Nov: 'Nov'
|
||||||
|
Dec: 'Des'
|
||||||
|
Second: 'Sekund'
|
||||||
|
Seconds: 'Sekund'
|
||||||
|
Minute: 'Minutt'
|
||||||
|
Minutes: 'Minutt'
|
||||||
|
Hour: 'Time'
|
||||||
|
Hours: 'Timar'
|
||||||
|
Day: 'Dag'
|
||||||
|
Days: 'Dagar'
|
||||||
|
Week: 'Veke'
|
||||||
|
Weeks: 'Veke'
|
||||||
|
Month: 'Månad'
|
||||||
|
Months: 'Månadar'
|
||||||
|
Year: 'År'
|
||||||
|
Years: 'År'
|
||||||
|
Ago: 'Sidan'
|
||||||
|
Upcoming: 'Har premiere på'
|
||||||
|
Published on: 'Publisert på'
|
||||||
|
Streamed on: 'Strauma på'
|
||||||
|
Started streaming on: 'Begynte å straume på'
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: '$ % sidan'
|
||||||
|
#& Videos
|
||||||
|
Videos:
|
||||||
|
#& Sort By
|
||||||
|
Sort By:
|
||||||
|
Newest: 'Nyaste'
|
||||||
|
Oldest: 'Eldste'
|
||||||
|
#& Most Popular
|
||||||
|
#& Playlists
|
||||||
|
Playlist:
|
||||||
|
#& About
|
||||||
|
View Full Playlist: 'Vis heile spelelista'
|
||||||
|
Videos: 'Videoar'
|
||||||
|
View: ''
|
||||||
|
Views: 'Visingar'
|
||||||
|
Last Updated On: 'Sist oppdatert'
|
||||||
|
Share Playlist:
|
||||||
|
Share Playlist: 'Del speleliste'
|
||||||
|
Copy YouTube Link: 'Kopier YouTube-lenke'
|
||||||
|
Open in YouTube: 'Opne i YouTube'
|
||||||
|
Copy Invidious Link: 'Kopier Invidious-lenke'
|
||||||
|
Open in Invidious: 'Opne i Invidious'
|
||||||
|
|
||||||
|
# On Video Watch Page
|
||||||
|
#* Published
|
||||||
|
#& Views
|
||||||
|
Toggle Theatre Mode: 'Veksle teatermodus'
|
||||||
|
Change Format:
|
||||||
|
Change Video Formats: 'Endre videoformat'
|
||||||
|
Use Dash Formats: 'Bruk DASH-format'
|
||||||
|
Use Legacy Formats: 'Bruk gamle format'
|
||||||
|
Use Audio Formats: 'Bruk lydformat'
|
||||||
|
Dash formats are not available for this video: 'DASH-format er ikkje tilgjengeleg
|
||||||
|
for denne videoen'
|
||||||
|
Audio formats are not available for this video: 'Lydformat er ikkje tilgjengeleg
|
||||||
|
for denne videoen'
|
||||||
|
Share:
|
||||||
|
Share Video: 'Del video'
|
||||||
|
Include Timestamp: 'Inkluder tidsstempel'
|
||||||
|
Copy Link: 'Kopier lenke'
|
||||||
|
Open Link: 'Opne lenke'
|
||||||
|
Copy Embed: 'Kopier innebygd versjon'
|
||||||
|
Open Embed: 'Opne innebygde versjon'
|
||||||
|
# On Click
|
||||||
|
Invidious URL copied to clipboard: 'Invidious-URL kopiert til utklippstavle'
|
||||||
|
Invidious Embed URL copied to clipboard: 'Innebygd Invidious-nettadresse kopiert
|
||||||
|
til utklippstavle'
|
||||||
|
Invidious Channel URL copied to clipboard: 'Invidious-kanalnettadresse kopiert til
|
||||||
|
utklippstavle'
|
||||||
|
YouTube URL copied to clipboard: 'YouTube-nettadresse kopiert til utklippstavle'
|
||||||
|
YouTube Embed URL copied to clipboard: 'Innebygd YouTube-nettadresse kopiert til
|
||||||
|
utklippstavle'
|
||||||
|
YouTube Channel URL copied to clipboard: 'YouTube-kanalnettadresse kopiert til utklippstavle'
|
||||||
|
|
||||||
|
Mini Player: 'Minispelar'
|
||||||
|
Comments:
|
||||||
|
Comments: 'Kommentarar'
|
||||||
|
Click to View Comments: 'Klikk for å sjå kommentarar'
|
||||||
|
Getting comment replies, please wait: 'Laster inn kommentarar, ver venleg og vent'
|
||||||
|
There are no more comments for this video: 'Det finst ingen fleire kommentarar for
|
||||||
|
denne videoen'
|
||||||
|
Show Comments: 'Vis kommentarar'
|
||||||
|
Hide Comments: 'Gøym kommentarar'
|
||||||
|
Sort by: 'Sorter etter'
|
||||||
|
Top comments: 'Toppkommentar'
|
||||||
|
Newest first: 'Nyaste først'
|
||||||
|
# Context: View 10 Replies, View 1 Reply
|
||||||
|
View: 'Vis'
|
||||||
|
Hide: 'Gøym'
|
||||||
|
Replies: 'Svar'
|
||||||
|
Reply: 'Svar'
|
||||||
|
There are no comments available for this video: 'Det er ingen kommentarar tilgjengeleg
|
||||||
|
for denne videoen'
|
||||||
|
Load More Comments: 'Last inn fleire kommentarar'
|
||||||
|
No more comments available: 'Ingen fleire kommentarar tilgjengeleg'
|
||||||
|
Up Next: 'Neste'
|
||||||
|
|
||||||
|
#Tooltips
|
||||||
|
Tooltips:
|
||||||
|
General Settings:
|
||||||
|
Preferred API Backend: ''
|
||||||
|
Fallback to Non-Preferred Backend on Failure: 'Når ditt føretrekte API har eit
|
||||||
|
problem, vil FreeTube prøve å automatisk bruke ditt ikkje-føretrekte API som
|
||||||
|
ein tilbakefallingsmetode dersom det er aktivert'
|
||||||
|
Thumbnail Preference: 'Alle miniatyrbilete i FreeTube vil bli erstatta av eit
|
||||||
|
bilete av videoen i staden for standardminiatyrbiletet'
|
||||||
|
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
|
||||||
|
å velje mellom'
|
||||||
|
Region for Trending: ''
|
||||||
|
Player Settings:
|
||||||
|
Force Local Backend for Legacy Formats: ''
|
||||||
|
Proxy Videos Through Invidious: ''
|
||||||
|
Default Video Format: ''
|
||||||
|
Subscription Settings:
|
||||||
|
Fetch Feeds from RSS: ''
|
||||||
|
|
||||||
|
# Toast Messages
|
||||||
|
Local API Error (Click to copy): 'Lokal API-feil (Klikk for å kopiere)'
|
||||||
|
Invidious API Error (Click to copy): 'Invidious-API-feil (Klikk for å kopiere)'
|
||||||
|
Falling back to Invidious API: 'Faller tilbake til Invidious-API'
|
||||||
|
Falling back to the local API: 'Faller tilbake til det lokale API-et'
|
||||||
|
This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Denne
|
||||||
|
videoen er utilgjengeleg grunna manglande format. Dette kan skuldast tilgangsavgrensingar
|
||||||
|
i ditt land.'
|
||||||
|
Subscriptions have not yet been implemented: 'Abonnement har ikkje blitt implementert
|
||||||
|
enda'
|
||||||
|
Loop is now disabled: 'Gjenta er no deaktivert'
|
||||||
|
Loop is now enabled: 'Gjenta er no aktivert'
|
||||||
|
Shuffle is now disabled: 'Tilfeldig avspeling er no deaktivert'
|
||||||
|
Shuffle is now enabled: 'Tilfeldig avspeling er no aktivert'
|
||||||
|
The playlist has been reversed: 'Spelelista har blitt snudd'
|
||||||
|
Playing Next Video: 'Speler av neste video'
|
||||||
|
Playing Previous Video: 'Speler av førre video'
|
||||||
|
Playing next video in 5 seconds. Click to cancel: 'Speler av neste video om 5 sekund.
|
||||||
|
Klikk for å avbryte.'
|
||||||
|
Canceled next video autoplay: 'Avbryt automatisk avspeling av neste video'
|
||||||
|
'The playlist has ended. Enable loop to continue playing': 'Spelelista har nådd si
|
||||||
|
ende. Klikk på gjenta for å fortsette spelinga'
|
||||||
|
|
||||||
|
Yes: 'Ja'
|
||||||
|
No: 'Nei'
|
|
@ -85,6 +85,9 @@ User Playlists:
|
||||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Os
|
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Os
|
||||||
seus vídeos guardados estão vazios. Clique no botão salvar no canto de um vídeo
|
seus vídeos guardados estão vazios. Clique no botão salvar no canto de um vídeo
|
||||||
para que ele seja listado aqui
|
para que ele seja listado aqui
|
||||||
|
Playlist Message: Esta página não reflete listas de reprodução totalmente funcionais.
|
||||||
|
Ele só lista vídeos que você salvou ou favoritos. Quando o trabalho estiver concluído,
|
||||||
|
todos os vídeos atualmente aqui serão migrados para uma playlist 'Favoritos'.
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'Histórico'
|
History: 'Histórico'
|
||||||
|
@ -303,6 +306,10 @@ Settings:
|
||||||
Proxy Protocol: Protocolo de Proxy
|
Proxy Protocol: Protocolo de Proxy
|
||||||
Enable Tor / Proxy: Ativar Tor / Proxy
|
Enable Tor / Proxy: Ativar Tor / Proxy
|
||||||
Proxy Settings: Configurações de Proxy
|
Proxy Settings: Configurações de Proxy
|
||||||
|
Error getting network information. Is your proxy configured properly?: Erro ao
|
||||||
|
obter informações da rede. O seu proxy está configurado corretamente?
|
||||||
|
City: Cidade
|
||||||
|
Region: Região
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: 'Sobre'
|
About: 'Sobre'
|
||||||
|
@ -334,6 +341,31 @@ About:
|
||||||
Latest FreeTube News: 'Ultimas notícias sobre o FreeTube'
|
Latest FreeTube News: 'Ultimas notícias sobre o FreeTube'
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
GitHub issues: Problemas com o GitHub
|
||||||
|
Report a problem: Reportar um problema
|
||||||
|
FAQ: FAQs
|
||||||
|
FreeTube Wiki: Wiki do FreeTube
|
||||||
|
Help: Ajuda
|
||||||
|
GitHub releases: Lançamentos do GitHub
|
||||||
|
Downloads / Changelog: Downloads / Modificações
|
||||||
|
View License: Ver Licença
|
||||||
|
Licensed under the AGPLv3: Licença AGPLv3
|
||||||
|
Source code: Código-fonte
|
||||||
|
Beta: Beta
|
||||||
|
Donate: Doar
|
||||||
|
these people and projects: estas pessoas e projetos
|
||||||
|
FreeTube is made possible by: O FreeTube é possível graças a
|
||||||
|
Credits: Créditos
|
||||||
|
Translate: Traduzir
|
||||||
|
room rules: regras da sala
|
||||||
|
Please read the: Favor ler o
|
||||||
|
Chat on Matrix: Bate-papo na Matrix
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Email: E-mail
|
||||||
|
Blog: Blog
|
||||||
|
Website: Site web
|
||||||
|
Please check for duplicates before posting: Verifique se há duplicatas antes de
|
||||||
|
postar
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Inscrito'
|
Subscriber: 'Inscrito'
|
||||||
Subscribers: 'Inscritos'
|
Subscribers: 'Inscritos'
|
||||||
|
@ -450,6 +482,10 @@ Video:
|
||||||
Open Channel in Invidious: Abrir Canal no Invidious
|
Open Channel in Invidious: Abrir Canal no Invidious
|
||||||
Copy YouTube Channel Link: Copiar o link do canal no YouTube
|
Copy YouTube Channel Link: Copiar o link do canal no YouTube
|
||||||
Open Channel in YouTube: Abrir canal no YouTube
|
Open Channel in YouTube: Abrir canal no YouTube
|
||||||
|
Video has been removed from your saved list: O vídeo foi removido da sua lista de
|
||||||
|
vídeos salvos
|
||||||
|
Video has been saved: O vídeo foi salvo
|
||||||
|
Save Video: Salvar vídeo
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
|
@ -627,3 +663,4 @@ Tooltips:
|
||||||
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.
|
||||||
|
More: Mais
|
||||||
|
|
|
@ -69,6 +69,7 @@ Search Filters:
|
||||||
Search Results: Resultados
|
Search Results: Resultados
|
||||||
Fetching results. Please wait: A procurar. Por favor aguarde
|
Fetching results. Please wait: A procurar. Por favor aguarde
|
||||||
Fetch more results: Procurar mais resultados
|
Fetch more results: Procurar mais resultados
|
||||||
|
There are no more results for this search: Não existem mais resultados
|
||||||
# Sidebar
|
# Sidebar
|
||||||
Subscriptions:
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
|
@ -87,6 +88,11 @@ 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
|
||||||
|
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'.
|
||||||
|
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
|
||||||
|
guardar aqui.
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: Histórico
|
History: Histórico
|
||||||
|
@ -123,6 +129,7 @@ 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
|
||||||
Region for Trending: Região para as tendências
|
Region for Trending: Região para as tendências
|
||||||
#! List countries
|
#! List countries
|
||||||
Theme Settings:
|
Theme Settings:
|
||||||
|
@ -222,6 +229,7 @@ Settings:
|
||||||
Hide Trending Videos: Esconder Tendências
|
Hide Trending Videos: Esconder Tendências
|
||||||
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
|
||||||
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
|
||||||
|
@ -260,67 +268,48 @@ Settings:
|
||||||
Unable to write file: Ficheiro não pôde ser escrito
|
Unable to write file: Ficheiro não pôde ser escrito
|
||||||
Unknown data key: Chave dada é desconhecida
|
Unknown data key: Chave dada é desconhecida
|
||||||
How do I import my subscriptions?: Como posso importar as minhas subscrições?
|
How do I import my subscriptions?: Como posso importar as minhas subscrições?
|
||||||
Advanced Settings:
|
Manage Subscriptions: Gerir Subscrições
|
||||||
Advanced Settings: Definições Avançadas
|
Proxy Settings:
|
||||||
Enable Debug Mode (Prints data to the console): Ligar Modo de Depuração (Escreve
|
Proxy Settings: Definições de Intermediários
|
||||||
dados à consola)
|
Enable Tor / Proxy: Ligar Tor / Intermediário
|
||||||
'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )': 'Endereço de intermediário
|
Proxy Protocol: Protocolo do Intermediário
|
||||||
(Exemplo: SOCKS5://127.0.0.1:9050 )'
|
Proxy Host: Endereço do Intermediário
|
||||||
'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': >-
|
Proxy Port Number: Porto do Intermediário
|
||||||
Ao Carregar "TESTAR INTERMEDIÁRIO" um pedido vai ser enviado a https://ipinfo.io/json
|
Clicking on Test Proxy will send a request to: Carregar em Testar Intermediário irá enviar um pedido a
|
||||||
Use Tor / Proxy for API calls: Usar Tor / Intermediário para Chamadas API
|
Test Proxy: Testar Intermediário
|
||||||
TEST PROXY: TESTAR INTERMEDIÁRIO
|
Your Info: A sua Informação
|
||||||
#& Invidious Instance (Default is https://invidious.snopyta.org)
|
Ip: Ip
|
||||||
See Public Instances: Ver Instâncias Públicas
|
Country: País
|
||||||
Clear History:
|
Region: Região
|
||||||
Clear History: Limpar Histórico
|
City: Cidade
|
||||||
# On Click
|
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.
|
||||||
Are you sure you want to delete your history?: Tem a certeza de que quer apagar
|
|
||||||
o seu histórico?
|
|
||||||
#& Yes
|
|
||||||
#& No
|
|
||||||
Clear Subscriptions:
|
|
||||||
Clear Subscriptions: Limpar Subscrições
|
|
||||||
# On Click
|
|
||||||
Are you sure you want to remove all subscriptions?: Tem a certeza de que quer
|
|
||||||
apagar as suas subscrições?
|
|
||||||
#& Yes
|
|
||||||
#& No
|
|
||||||
|
|
||||||
About:
|
About:
|
||||||
#On About page
|
#On About page
|
||||||
About: Sobre
|
About: Sobre
|
||||||
#& About
|
Beta: Beta
|
||||||
'This software is FOSS and released under the GNU Public License v3+.': >-
|
Source code: Código fonte
|
||||||
This copylefted software is freely licensed GPLv3+.
|
Licensed under the AGPLv3: Está sobre a licensa AGPLv3
|
||||||
|
View License: Ver a Licensa
|
||||||
'Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests are welcome.': >-
|
Downloads / Changelog: Descarregar / Mudanças
|
||||||
Encontraste um bug? Queres sugerir uma funcionalidade? Queres ajudar-nos? Vai
|
GitHub releases: Lançamentos no GitHub
|
||||||
á nossa página de GitHub. Pull requests são bem vindos.
|
Help: Ajuda
|
||||||
|
FreeTube Wiki: Wiki do FreeTube
|
||||||
Thank you very much to the People and Projects that make FreeTube possible!: >-
|
FAQ: Perguntas Frequentes
|
||||||
Agradeço imenso a todas as pessoas e projetos que façam com que o FreeTube seja
|
Report a problem: Relatar um problema
|
||||||
possivel!
|
GitHub issues: Problemas no GitHub
|
||||||
|
Please check for duplicates before posting: É favor verificar se um problema já foi relatado
|
||||||
'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.': >-
|
Website: Site
|
||||||
Queres conversar? Junta-te ao nosso servidor Element / Matrix. Por favor verifica
|
Blog: Blogue
|
||||||
as regras antes de te juntares.
|
Email: Email
|
||||||
|
Mastodon: Mastodon
|
||||||
'Looking for help? Check out our Wiki page.': Há procura de ajuda? Vê a nossa página
|
Chat on Matrix: Chat no Matrix
|
||||||
Wiki.
|
Please read the: Por favor leia as
|
||||||
|
room rules: regras da sala de chat
|
||||||
Check out our Firefox extension!: Experimenta a nossa extensão Firefox!
|
Translate: Traduzir
|
||||||
|
Credits: Créditos
|
||||||
'If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.': >-
|
FreeTube is made possible by: FreeTube existe graças a
|
||||||
Se gostas de usar FreeTube, considera doar via Liberapay ou através do nosso endereço
|
these people and projects: estas pessoas e projectos
|
||||||
Bitcoin.
|
Donate: Doar
|
||||||
|
|
||||||
#~ 'BTC: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS'
|
|
||||||
|
|
||||||
Latest FreeTube News: Notícias recentes sobre FreeTube
|
|
||||||
|
|
||||||
This software is FOSS and released under the GNU Affero General Public License v3.0.: Este
|
|
||||||
software é licenciado livremente via AGPL-3.0.
|
|
||||||
Profile:
|
Profile:
|
||||||
All Channels: Todos os Canais
|
All Channels: Todos os Canais
|
||||||
Profile Manager: Gestor de Perfis
|
Profile Manager: Gestor de Perfis
|
||||||
|
@ -399,6 +388,9 @@ Video:
|
||||||
Remove From History: Apagar do histórico
|
Remove From History: Apagar do histórico
|
||||||
Video has been marked as watched: O vídeo foi marcado como visto
|
Video has been marked as watched: O vídeo foi marcado como visto
|
||||||
Video has been removed from your history: O vídeo foi removido do seu histórico
|
Video has been removed from your history: O vídeo foi removido do seu histórico
|
||||||
|
Save Video: Guardar Vídeo
|
||||||
|
Video has been saved: Vídeo guardado
|
||||||
|
Video has been removed from your saved list: Vídeo removido da sua lista
|
||||||
Open in YouTube: Abrir no Youtube
|
Open in YouTube: Abrir no Youtube
|
||||||
Copy YouTube Link: Copiar Ligação para Youtube
|
Copy YouTube Link: Copiar Ligação para Youtube
|
||||||
Open YouTube Embedded Player: Abrir Reprodutor Youtube Embutido
|
Open YouTube Embedded Player: Abrir Reprodutor Youtube Embutido
|
||||||
|
@ -468,7 +460,9 @@ Video:
|
||||||
Years: Anos
|
Years: Anos
|
||||||
Ago: Há
|
Ago: Há
|
||||||
Upcoming: Estreia em breve
|
Upcoming: Estreia em breve
|
||||||
Published on: Publicado em
|
Published on: Publicado a
|
||||||
|
Streamed on: Transmitido a
|
||||||
|
Started streaming on: Transmissão iniciada a
|
||||||
# $ 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á $ %
|
Publicationtemplate: Há $ %
|
||||||
#& Videos
|
#& Videos
|
||||||
|
|
|
@ -85,6 +85,10 @@ 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: У
|
||||||
вас нет сохранных видео. Нажмите на кнопку сохранения в углу видео, чтобы оно
|
вас нет сохранных видео. Нажмите на кнопку сохранения в углу видео, чтобы оно
|
||||||
появилось здесь
|
появилось здесь
|
||||||
|
Playlist Message: Эта страница не отражает полную функциональность плейлистов. Она
|
||||||
|
показывает только видео которые вы сохранили или добавили в избранное. После переработки
|
||||||
|
этой страницы все видео, которые сейчас находятся здесь, переместятся в плейлист
|
||||||
|
"Избранное".
|
||||||
History:
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
History: 'История'
|
History: 'История'
|
||||||
|
@ -359,6 +363,9 @@ About:
|
||||||
Licensed under the AGPLv3: Лицензия AGPLv3
|
Licensed under the AGPLv3: Лицензия AGPLv3
|
||||||
Source code: Исходный код
|
Source code: Исходный код
|
||||||
Beta: Бета
|
Beta: Бета
|
||||||
|
Please check for duplicates before posting: Пожалуйста, проверьте наличие дубликатов
|
||||||
|
перед публикацией
|
||||||
|
GitHub issues: Проблемы на GitHub
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Подписчик'
|
Subscriber: 'Подписчик'
|
||||||
Subscribers: 'Подписчиков'
|
Subscribers: 'Подписчиков'
|
||||||
|
|
|
@ -190,6 +190,7 @@ Settings:
|
||||||
1440p: '1440p'
|
1440p: '1440p'
|
||||||
4k: '4k'
|
4k: '4k'
|
||||||
8k: '8k'
|
8k: '8k'
|
||||||
|
Playlist Next Video Interval: Oynatma Listesi 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'
|
||||||
|
@ -288,6 +289,7 @@ Settings:
|
||||||
Hide Video Views: Video Görüntülenme Sayılarını Gizle
|
Hide Video Views: Video Görüntülenme Sayılarını Gizle
|
||||||
Distraction Free Settings: Dikkat Dağıtmama Ayarları
|
Distraction Free Settings: Dikkat Dağıtmama Ayarları
|
||||||
Hide Active Subscriptions: Etkin Abonelikleri Gizle
|
Hide Active Subscriptions: Etkin Abonelikleri Gizle
|
||||||
|
Hide Playlists: Oynatma Listelerini Gizle
|
||||||
The app needs to restart for changes to take effect. Restart and apply change?: Değişikliklerin
|
The app needs to restart for changes to take effect. Restart and apply change?: Değişikliklerin
|
||||||
etkili olması için uygulamanın yeniden başlatılması gerekiyor. Yeniden başlatılsın
|
etkili olması için uygulamanın yeniden başlatılması gerekiyor. Yeniden başlatılsın
|
||||||
ve değişiklikler uygulansın mı?
|
ve değişiklikler uygulansın mı?
|
||||||
|
@ -412,6 +414,7 @@ Profile:
|
||||||
kanalları silmek istediğinizden emin misiniz? Bu, kanalı başka bir profilden
|
kanalları silmek istediğinizden emin misiniz? Bu, kanalı başka bir profilden
|
||||||
silmez.'
|
silmez.'
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
|
Profile Filter: Profil Filtresi
|
||||||
Channel:
|
Channel:
|
||||||
Subscriber: 'Abone'
|
Subscriber: 'Abone'
|
||||||
Subscribers: 'Aboneler'
|
Subscribers: 'Aboneler'
|
||||||
|
@ -658,3 +661,8 @@ Tooltips:
|
||||||
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
|
||||||
|
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
|
||||||
|
tıklayın. | Sonraki video {nextVideoInterval} saniye içinde oynatılıyor. İptal etmek
|
||||||
|
için tıklayın.
|
||||||
|
More: Daha Fazla
|
||||||
|
|
|
@ -70,6 +70,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: 'Підписки'
|
||||||
|
@ -87,6 +88,12 @@ 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: 'Історія'
|
||||||
|
@ -126,10 +133,12 @@ Settings:
|
||||||
(За замовчуванням https://invidious.snopyta.org)'
|
(За замовчуванням https://invidious.snopyta.org)'
|
||||||
Region for Trending: 'Регіон для Популярних'
|
Region for Trending: 'Регіон для Популярних'
|
||||||
#! List countries
|
#! List countries
|
||||||
|
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: 'Верхня панель основного кольору'
|
||||||
Expand Side Bar by Default: ''
|
Expand Side Bar by Default: 'Усталено розгортати бічну панель'
|
||||||
Disable Smooth Scrolling: 'Відключити плавну прокрутку'
|
Disable Smooth Scrolling: 'Відключити плавну прокрутку'
|
||||||
UI Scale: 'Масштаб інтерфейсу'
|
UI Scale: 'Масштаб інтерфейсу'
|
||||||
Base Theme:
|
Base Theme:
|
||||||
|
@ -159,19 +168,20 @@ Settings:
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: 'Налаштування програвача'
|
Player Settings: 'Налаштування програвача'
|
||||||
Force Local Backend for Legacy Formats: ''
|
Force Local Backend for Legacy Formats: 'Примусово використовувати локальний сервер
|
||||||
|
для застарілих форматів'
|
||||||
Play Next Video: 'Грати наступне відео'
|
Play Next Video: 'Грати наступне відео'
|
||||||
Turn on Subtitles by Default: 'Увімкнути субтитри за замовченням'
|
Turn on Subtitles by Default: 'Увімкнути субтитри за замовченням'
|
||||||
Autoplay Videos: 'Автоматичне відтворення відео'
|
Autoplay Videos: 'Автоматичне відтворення відео'
|
||||||
Proxy Videos Through 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 Formats: 'Формати Dash'
|
||||||
Legacy Formats: ''
|
Legacy Formats: 'Застарілі формати'
|
||||||
Audio Formats: 'Аудіо формати'
|
Audio Formats: 'Аудіо формати'
|
||||||
Default Quality:
|
Default Quality:
|
||||||
Default Quality: 'Якість за замовченням'
|
Default Quality: 'Якість за замовченням'
|
||||||
|
@ -185,33 +195,39 @@ 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: 'Збрігати історію'
|
||||||
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?: 'Дійсно бажаєте очистити
|
||||||
Search cache has been cleared: ''
|
кеш пошуку?'
|
||||||
|
Search cache has been cleared: 'Кеш пошуку очищено'
|
||||||
Remove Watch History: 'Видалити історію переглядів'
|
Remove Watch History: 'Видалити історію переглядів'
|
||||||
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: 'Видалити всі підписки / профілі'
|
||||||
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.: 'Справді
|
||||||
|
хочете вилучити всі підписки та профілі? Цю дію не можна скасувати.'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Subscription Settings: 'Налаштування підписки'
|
Subscription Settings: 'Налаштування підписки'
|
||||||
Hide Videos on Watch: 'Ховати відео при перегляді'
|
Hide Videos on Watch: 'Ховати відео при перегляді'
|
||||||
Fetch Feeds from RSS: ''
|
Fetch Feeds from RSS: 'Отримати канали з RSS'
|
||||||
Manage Subscriptions: 'Керування підписками'
|
Manage Subscriptions: 'Керування підписками'
|
||||||
Distraction Free Settings:
|
Distraction Free Settings:
|
||||||
Distraction Free Settings: ''
|
Distraction Free Settings: 'Налаштування зосередження'
|
||||||
Hide Video Views: 'Сховати перегляди відео'
|
Hide Video Views: 'Сховати перегляди відео'
|
||||||
Hide Video Likes And Dislikes: ''
|
Hide Video Likes And Dislikes: 'Приховати вподобайки до відео'
|
||||||
Hide Channel Subscribers: 'Не показувати підписників каналу'
|
Hide Channel Subscribers: 'Не показувати підписників каналу'
|
||||||
Hide Comment Likes: 'Не показувати уподобання коментарів'
|
Hide Comment Likes: 'Не показувати уподобання коментарів'
|
||||||
Hide Recommended Videos: 'Не показувати рекомендовані відео'
|
Hide Recommended Videos: 'Не показувати рекомендовані відео'
|
||||||
Hide Trending Videos: 'Не показувати тренди відео'
|
Hide Trending Videos: 'Не показувати тренди відео'
|
||||||
Hide Popular Videos: 'Не показувати популярні відео'
|
Hide Popular Videos: 'Не показувати популярні відео'
|
||||||
Hide Live Chat: 'Не показувати живий чат'
|
Hide Live Chat: 'Не показувати живий чат'
|
||||||
|
Hide Active Subscriptions: Сховати активні підписки
|
||||||
|
Hide Playlists: Сховати списки відтворення
|
||||||
Data Settings:
|
Data Settings:
|
||||||
Data Settings: 'Налаштування даних'
|
Data Settings: 'Налаштування даних'
|
||||||
Select Import Type: 'Оберіть тип імпорту'
|
Select Import Type: 'Оберіть тип імпорту'
|
||||||
|
@ -220,28 +236,35 @@ Settings:
|
||||||
Import FreeTube: 'Імпортувати FreeTube'
|
Import FreeTube: 'Імпортувати FreeTube'
|
||||||
Import YouTube: 'Імпортувати 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: 'Експортувати 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 have been successfully imported: ''
|
All subscriptions and profiles have been successfully imported: 'Усі підписки
|
||||||
One or more subscriptions were unable to be imported: ''
|
та профілі успішно імпортовано'
|
||||||
Invalid subscriptions file: ''
|
All subscriptions have been successfully imported: 'Усі підписки успішно імпортовано'
|
||||||
This might take a while, please wait: ''
|
One or more subscriptions were unable to be imported: 'Не вдалося імпортувати
|
||||||
Invalid history file: ''
|
одну або кілька підписок'
|
||||||
Subscriptions have been successfully exported: ''
|
Invalid subscriptions file: 'Недійсний файл підписок'
|
||||||
History object has insufficient data, skipping item: ''
|
This might take a while, please wait: 'Це може тривати деякий час, зачекайте'
|
||||||
All watched history has been successfully imported: ''
|
Invalid history file: 'Недійсний файл історії'
|
||||||
All watched history has been successfully exported: ''
|
Subscriptions have been successfully exported: 'Підписки успішно експортовано'
|
||||||
Unable to read file: ''
|
History object has insufficient data, skipping item: 'У об’єкта історії недостатньо
|
||||||
Unable to write file: ''
|
даних, пропуск елемента'
|
||||||
Unknown data key: ''
|
All watched history has been successfully imported: 'Всю історію переглядів успішно
|
||||||
How do I import my subscriptions?: ''
|
імпортовано'
|
||||||
|
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: Керування підписками
|
||||||
Advanced Settings:
|
Advanced Settings:
|
||||||
Advanced Settings: ''
|
Advanced Settings: ''
|
||||||
Enable Debug Mode (Prints data to the console): ''
|
Enable Debug Mode (Prints data to the console): ''
|
||||||
|
@ -264,9 +287,25 @@ 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 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.': ''
|
||||||
|
|
||||||
|
@ -286,248 +325,323 @@ 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: Чат у Matrix
|
||||||
|
Mastodon: Mastodon
|
||||||
|
Email: Електронна пошта
|
||||||
|
Blog: Блог
|
||||||
|
Website: Вебсайт
|
||||||
|
Please check for duplicates before posting: Будь ласка, перевірте наявність повторів
|
||||||
|
перед публікацією
|
||||||
|
GitHub issues: Проблеми на GitHub
|
||||||
|
Report a problem: Повідомити про проблему
|
||||||
|
FAQ: ЧаПи
|
||||||
|
FreeTube Wiki: Вікі FreeTube
|
||||||
|
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: 'Пошук дав 0 результатів'
|
||||||
Sort By: ''
|
Sort By: 'Сортувати за'
|
||||||
Videos:
|
Videos:
|
||||||
Videos: ''
|
Videos: 'Відео'
|
||||||
This channel does not currently have any videos: ''
|
This channel does not currently have any videos: 'Наразі на цьому каналі немає
|
||||||
|
жодного відео'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Newest: ''
|
Newest: 'Найновіші'
|
||||||
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: 'Найновіші'
|
||||||
Oldest: ''
|
Oldest: 'Найдавніші'
|
||||||
About:
|
About:
|
||||||
About: ''
|
About: 'Про'
|
||||||
Channel Description: ''
|
Channel Description: 'Опис каналу'
|
||||||
Featured Channels: ''
|
Featured Channels: 'Рекомендовані канали'
|
||||||
Video:
|
Video:
|
||||||
Mark As Watched: ''
|
Mark As Watched: 'Позначити переглянутим'
|
||||||
Remove From History: ''
|
Remove From History: 'Прибрати з історії'
|
||||||
Video has been marked as watched: ''
|
Video has been marked as watched: 'Відео позначено переглянутим'
|
||||||
Video has been removed from your history: ''
|
Video has been removed from your history: 'Відео вилучено з історії'
|
||||||
Open in YouTube: ''
|
Open in YouTube: 'Відкрити в YouTube'
|
||||||
Copy YouTube Link: ''
|
Copy YouTube Link: 'Копіювати посилання youTube'
|
||||||
Open YouTube Embedded Player: ''
|
Open YouTube Embedded Player: 'Відкрити вбудований програвач YouTube'
|
||||||
Copy YouTube Embedded Player Link: ''
|
Copy YouTube Embedded Player Link: 'Копіювати посилання вбудованого програвача YouTube'
|
||||||
Open in Invidious: ''
|
Open in Invidious: 'Відкрито в Invidious'
|
||||||
Copy Invidious Link: ''
|
Copy Invidious Link: 'Копіювати посилання Invidious'
|
||||||
Open Channel in YouTube: ''
|
Open Channel in YouTube: 'Відкрити канал на YouTube'
|
||||||
Copy YouTube Channel Link: ''
|
Copy YouTube Channel Link: 'Копіювати посилання на канал YouTube'
|
||||||
Open Channel in Invidious: ''
|
Open Channel in Invidious: 'Відкрити канал у Invidious'
|
||||||
Copy Invidious Channel Link: ''
|
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"
|
||||||
Watching: ''
|
Watching: 'Переглядає'
|
||||||
Watched: ''
|
Watched: 'Переглянуто'
|
||||||
Autoplay: ''
|
Autoplay: 'Автовідтворення'
|
||||||
Starting soon, please refresh the page to check again: ''
|
Starting soon, please refresh the page to check again: 'Початок незабаром, оновіть
|
||||||
|
сторінку, щоб перевірити ще раз'
|
||||||
# As in a Live Video
|
# As in a Live Video
|
||||||
Live: ''
|
Live: 'Наживо'
|
||||||
Live Now: ''
|
Live Now: 'Зараз в етері'
|
||||||
Live Chat: ''
|
Live Chat: 'Чат в режимі реального часу'
|
||||||
Enable Live Chat: ''
|
Enable Live Chat: 'Увімкнути чат у реальному часі'
|
||||||
Live Chat is currently not supported in this build.: ''
|
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.: ''
|
'Chat is disabled or the Live Stream has ended.': 'Чат вимкнено, а пряму трансляцію
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
завершено.'
|
||||||
Download Video: ''
|
Live chat is enabled. Chat messages will appear here once sent.: 'Чат увімкнено. Повідомлення
|
||||||
video only: ''
|
чату з''являться тут після надсилання.'
|
||||||
audio only: ''
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Чат
|
||||||
|
в режимі реального часу наразі не підтримується API Invidious. Потрібне пряме
|
||||||
|
з''єднання з YouTube.'
|
||||||
|
Download Video: 'Завантажити відео'
|
||||||
|
video only: 'лише відео'
|
||||||
|
audio only: 'лише звук'
|
||||||
Audio:
|
Audio:
|
||||||
Low: ''
|
Low: 'Низька'
|
||||||
Medium: ''
|
Medium: 'Середня'
|
||||||
High: ''
|
High: 'Висока'
|
||||||
Best: ''
|
Best: 'Найкраща'
|
||||||
Published:
|
Published:
|
||||||
Jan: ''
|
Jan: 'Ян'
|
||||||
Feb: ''
|
Feb: 'Лют'
|
||||||
Mar: ''
|
Mar: 'Бер'
|
||||||
Apr: ''
|
Apr: 'Кві'
|
||||||
May: ''
|
May: 'Тра'
|
||||||
Jun: ''
|
Jun: 'Чер'
|
||||||
Jul: ''
|
Jul: 'Лип'
|
||||||
Aug: ''
|
Aug: 'Сер'
|
||||||
Sep: ''
|
Sep: 'Вер'
|
||||||
Oct: ''
|
Oct: 'Жов'
|
||||||
Nov: ''
|
Nov: 'Лис'
|
||||||
Dec: ''
|
Dec: 'Гру'
|
||||||
Second: ''
|
Second: 'Секунда'
|
||||||
Seconds: ''
|
Seconds: 'Секунд'
|
||||||
Minute: ''
|
Minute: 'Хвилина'
|
||||||
Minutes: ''
|
Minutes: 'Хвилин'
|
||||||
Hour: ''
|
Hour: 'Година'
|
||||||
Hours: ''
|
Hours: 'Годин'
|
||||||
Day: ''
|
Day: 'День'
|
||||||
Days: ''
|
Days: 'Днів'
|
||||||
Week: ''
|
Week: 'Тиждень'
|
||||||
Weeks: ''
|
Weeks: 'Тижнів'
|
||||||
Month: ''
|
Month: 'Місяць'
|
||||||
Months: ''
|
Months: 'Місяців'
|
||||||
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: '$ % тому'
|
||||||
#& Videos
|
#& Videos
|
||||||
|
Started streaming 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:
|
||||||
Newest: ''
|
Newest: 'Найновіші'
|
||||||
Oldest: ''
|
Oldest: 'Найдавніші'
|
||||||
#& Most Popular
|
#& Most Popular
|
||||||
#& 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: ''
|
Copy YouTube Link: 'Копіювати посилання youTube'
|
||||||
Open in YouTube: ''
|
Open in YouTube: 'Відкрити в YouTube'
|
||||||
Copy Invidious Link: ''
|
Copy Invidious Link: 'Копіювати посилання Invidious'
|
||||||
Open in Invidious: ''
|
Open in Invidious: 'Відкрити в Invidious'
|
||||||
|
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Toggle Theatre Mode: ''
|
Toggle Theatre Mode: 'Перемкнути режим театру'
|
||||||
Change Format:
|
Change Format:
|
||||||
Change Video Formats: ''
|
Change Video Formats: 'Зміна форматів відео'
|
||||||
Use Dash Formats: ''
|
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 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: 'Поділитися відео'
|
||||||
Include Timestamp: ''
|
Include Timestamp: 'Включити позначку часу'
|
||||||
Copy Link: ''
|
Copy Link: 'Копіювати посилання'
|
||||||
Open Link: ''
|
Open Link: 'Відкрити посилання'
|
||||||
Copy Embed: ''
|
Copy Embed: 'Копіювати вбудоване'
|
||||||
Open Embed: ''
|
Open Embed: 'Відкрити вбудовуване'
|
||||||
# On Click
|
# On Click
|
||||||
Invidious URL copied to clipboard: ''
|
Invidious URL copied to clipboard: 'URL-адресу Invidious скопійовано в буфер обміну'
|
||||||
Invidious Embed URL copied to clipboard: ''
|
Invidious Embed URL copied to clipboard: 'URL-адресу вбудовування Invidious скопійовано
|
||||||
Invidious Channel URL copied to clipboard: ''
|
до буфера обміну'
|
||||||
YouTube URL copied to clipboard: ''
|
Invidious Channel URL copied to clipboard: 'URL-адресу каналу Invidious скопійовано
|
||||||
YouTube Embed URL copied to clipboard: ''
|
в буфер обміну'
|
||||||
YouTube Channel URL copied to clipboard: ''
|
YouTube URL copied to clipboard: 'URL-адресу YouTube скопійовано до буфера обміну'
|
||||||
|
YouTube Embed URL copied to clipboard: 'URL-адресу вбудовування YouTube скопійовано
|
||||||
|
до буфера обміну'
|
||||||
|
YouTube Channel URL copied to clipboard: 'URL-адресу каналу YouTube скопійовано
|
||||||
|
до буфера обміну'
|
||||||
|
|
||||||
Mini Player: ''
|
Mini Player: 'Мініпрогравач'
|
||||||
Comments:
|
Comments:
|
||||||
Comments: ''
|
Comments: 'Коментарі'
|
||||||
Click to View Comments: ''
|
Click to View Comments: 'Клацніть, щоб переглянути коментарі'
|
||||||
Getting comment replies, please wait: ''
|
Getting comment replies, please wait: 'Отримання відповідей на коментарі, зачекайте'
|
||||||
There are no more comments for this video: ''
|
There are no more comments for this video: 'Більше немає коментарів до цього відео'
|
||||||
Show Comments: ''
|
Show Comments: 'Показати коментарі'
|
||||||
Hide Comments: ''
|
Hide Comments: 'Сховати коментарі'
|
||||||
Sort by: ''
|
Sort by: 'Сортувати за'
|
||||||
Top comments: ''
|
Top comments: 'Найпопулярніші коментарі'
|
||||||
Newest first: ''
|
Newest first: 'Спочатку новіші'
|
||||||
# Context: View 10 Replies, View 1 Reply
|
# Context: View 10 Replies, View 1 Reply
|
||||||
View: ''
|
View: 'Перегляд'
|
||||||
Hide: ''
|
Hide: 'Сховати'
|
||||||
Replies: ''
|
Replies: 'Відповіді'
|
||||||
Reply: ''
|
Reply: 'Відповідь'
|
||||||
There are no comments available for this video: ''
|
There are no comments available for this video: 'Немає коментарів до цього відео'
|
||||||
Load More Comments: ''
|
Load More Comments: 'Завантажити більше коментарів'
|
||||||
No more comments available: ''
|
No more comments available: 'Більше немає коментарів'
|
||||||
Up Next: ''
|
Up Next: 'Далі вгору'
|
||||||
|
|
||||||
#Tooltips
|
#Tooltips
|
||||||
Tooltips:
|
Tooltips:
|
||||||
General Settings:
|
General Settings:
|
||||||
Preferred API Backend: ''
|
Preferred API Backend: 'Виберіть сервер, який FreeTube використовує для отримання
|
||||||
Fallback to Non-Preferred Backend on Failure: ''
|
даних. Локальний API є вбудованим витягувачем. Для API Invidious потрібен сервер
|
||||||
Thumbnail Preference: ''
|
Invidious для з'' єднання.'
|
||||||
Invidious Instance: ''
|
Fallback to Non-Preferred Backend on Failure: 'Коли бажаний API має проблеми,
|
||||||
Region for Trending: ''
|
FreeTube автоматично спробує використовувати ваш не вибраний API як запасний
|
||||||
|
метод, коли його увімкнено'
|
||||||
|
Thumbnail Preference: 'Усі ескізи у FreeTube заміняться на кадр відео, а не на
|
||||||
|
типову мініатюру'
|
||||||
|
Invidious Instance: 'Сервер Invidious, до якого FreeTube під''єднуватиметься для
|
||||||
|
викликів API. Очистьте поточний сервер, щоб побачити список загальнодоступних
|
||||||
|
серверів на вибір'
|
||||||
|
Region for Trending: 'Регіон популярного дозволяє вам вибрати популярні відео
|
||||||
|
країни, які ви хочете бачити. Не всі показані країни насправді підтримуються
|
||||||
|
YouTube'
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Force Local Backend for Legacy Formats: ''
|
Force Local Backend for Legacy Formats: 'Працює, лише якщо API Invidious використовується
|
||||||
Proxy Videos Through Invidious: ''
|
типовим. Якщо увімкнено, локальний API буде запущено і використовуватиме застарілі
|
||||||
Default Video Format: ''
|
формати, які було повернуто Invidious. Допомагає, коли відео, повернуті Invidious,
|
||||||
|
не відтворюються через обмеження в країні'
|
||||||
|
Proxy Videos Through Invidious: 'Під’єднається до Invidious, щоб дивитися відео,
|
||||||
|
а не встановлювати пряме з’єднання з YouTube. Замінює налаштування API'
|
||||||
|
Default Video Format: 'Встановіть формати, що використовуються під час відтворення
|
||||||
|
відео. Формати Dash можуть відтворюватися в кращій якості. Старі формати мають
|
||||||
|
обмеження у 720p, але використовують меншу пропускну здатність. Формати аудіо
|
||||||
|
— це лише аудіопотоки'
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
Fetch Feeds from RSS: ''
|
Fetch Feeds from RSS: 'Якщо ввімкнено, FreeTube використовуватиме RSS замість
|
||||||
|
стандартного способу захоплення каналу підписки. RSS швидше і запобігає блокуванню
|
||||||
|
ІР, але не надає дані, як-от тривалість відео або стан трансляції'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): ''
|
Local API Error (Click to copy): 'Помилка локального API (натисніть, щоб скопіювати)'
|
||||||
Invidious API Error (Click to copy): ''
|
Invidious API Error (Click to copy): 'Помилка Invidious API (натисніть, щоб скопіювати)'
|
||||||
Falling back to Invidious API: ''
|
Falling back to Invidious API: 'Повернення до API Invidious'
|
||||||
Falling back to the local API: ''
|
Falling back to the local API: 'Повернення до локального API'
|
||||||
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.: 'Це
|
||||||
Subscriptions have not yet been implemented: ''
|
відео недоступне через відсутність форматів. Це може статися через недоступність
|
||||||
Loop is now disabled: ''
|
країни.'
|
||||||
Loop is now enabled: ''
|
Subscriptions have not yet been implemented: 'Підписки ще не впроваджено'
|
||||||
Shuffle is now disabled: ''
|
Loop is now disabled: 'Цикл вимкнено'
|
||||||
Shuffle is now enabled: ''
|
Loop is now enabled: 'Цикл увімкнено'
|
||||||
The playlist has been reversed: ''
|
Shuffle is now disabled: 'Випадковий порядок вимкнено'
|
||||||
Playing Next Video: ''
|
Shuffle is now enabled: 'Випадковий порядок увімкнено'
|
||||||
Playing Previous Video: ''
|
The playlist has been reversed: 'Список відтворення обернено'
|
||||||
Playing next video in 5 seconds. Click to cancel: ''
|
Playing Next Video: 'Відтворення наступного відео'
|
||||||
Canceled next video autoplay: ''
|
Playing Previous Video: 'Відтворення попереднього відео'
|
||||||
'The playlist has ended. Enable loop to continue playing': ''
|
Playing next video in 5 seconds. Click to cancel: 'Відтворення наступного відео за
|
||||||
|
5 секунд. Клацніть, щоб скасувати операцію.'
|
||||||
|
Canceled next video autoplay: 'Скасовано автовідтворення наступного відео'
|
||||||
|
'The playlist has ended. Enable loop to continue playing': 'Список відтворення закінчився.
|
||||||
|
Увімкніть цикл, щоб продовжити відтворення'
|
||||||
|
|
||||||
Yes: ''
|
Yes: 'Так'
|
||||||
No: ''
|
No: 'Ні'
|
||||||
|
Playing Next Video Interval: Відтворення наступного відео в будь-який час. Клацніть,
|
||||||
|
щоб скасувати. | Відтворення наступного відео через {nextVideoInterval} секунду.
|
||||||
|
Клацніть, щоб скасувати. | Відтворення наступного відео через {nextVideoInterval}
|
||||||
|
секунд. Клацніть, щоб скасувати.
|
||||||
|
More: Докладніше
|
||||||
|
|
|
@ -1,51 +1,51 @@
|
||||||
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: '檔案'
|
||||||
Quit: '結束'
|
Quit: '結束'
|
||||||
Edit: '編輯'
|
Edit: '編輯'
|
||||||
Undo: '復原'
|
Undo: '復原'
|
||||||
Redo: '回復'
|
Redo: '恢復'
|
||||||
Cut: '剪下'
|
Cut: '剪下'
|
||||||
Copy: '複製'
|
Copy: '複製'
|
||||||
Paste: '黏貼'
|
Paste: '貼上'
|
||||||
Delete: '刪除'
|
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: '縮小'
|
||||||
Toggle fullscreen: '切換全屏'
|
Toggle fullscreen: '切換至全螢幕'
|
||||||
Window: '視窗'
|
Window: '視窗'
|
||||||
Minimize: '最小化'
|
Minimize: '最小化'
|
||||||
Close: '關閉'
|
Close: '關閉'
|
||||||
Back: '后退'
|
Back: '返回'
|
||||||
Forward: '前進'
|
Forward: '前進'
|
||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
Search / Go to URL: '搜索 / 前往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: '所有類別'
|
||||||
|
@ -53,13 +53,13 @@ Search Filters:
|
||||||
Channels: '頻道'
|
Channels: '頻道'
|
||||||
#& Playlists
|
#& Playlists
|
||||||
Duration:
|
Duration:
|
||||||
Duration: '時長'
|
Duration: '影片長度'
|
||||||
All Durations: '所有時長'
|
All Durations: '所有長度'
|
||||||
Short (< 4 minutes): '短(< 4分鐘)'
|
Short (< 4 minutes): '短(小於4分鐘)'
|
||||||
Long (> 20 minutes): '長(> 20分鐘)'
|
Long (> 20 minutes): '長(大於20分鐘)'
|
||||||
# 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: 此搜尋無更多結果
|
There are no more results for this search: 此搜尋無更多結果
|
||||||
|
@ -69,48 +69,49 @@ Subscriptions:
|
||||||
Latest Subscriptions: '最新訂閱'
|
Latest Subscriptions: '最新訂閱'
|
||||||
'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: 重新整理訂閱內容的影片
|
||||||
Getting Subscriptions. Please wait.: 正在取得訂閱。請稍候。
|
Getting Subscriptions. Please wait.: 正在取得訂閱中,請稍候....
|
||||||
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: 這個設定檔有大量訂閱。
|
||||||
強制RSS已防止速率限制
|
強制RSS已防止速率限制
|
||||||
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: '歷史紀錄'
|
||||||
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: '設定'
|
||||||
General Settings:
|
General Settings:
|
||||||
General Settings: '常規設定'
|
General Settings: '一般設定'
|
||||||
Fallback to Non-Preferred Backend on Failure: '失敗時回撤到非偏好后端'
|
Fallback to Non-Preferred Backend on Failure: '連線失敗時連線到非預設伺服器'
|
||||||
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'
|
||||||
Invidious API: 'Invidious API'
|
Invidious API: 'Invidious API(應用程式介面)'
|
||||||
Video View Type:
|
Video View Type:
|
||||||
Video View Type: '影片觀看類別'
|
Video View Type: '影片觀看類別'
|
||||||
Grid: '網格'
|
Grid: '網格'
|
||||||
List: '清單'
|
List: '清單'
|
||||||
Thumbnail Preference:
|
Thumbnail Preference:
|
||||||
Thumbnail Preference: '縮略圖偏好'
|
Thumbnail Preference: '影片縮圖偏好'
|
||||||
Default: '預設'
|
Default: '預設'
|
||||||
Beginning: '開始'
|
Beginning: '片頭'
|
||||||
Middle: '中間'
|
Middle: '中間'
|
||||||
End: '結尾'
|
End: '結尾'
|
||||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious實例(預設https://invidious.snopyta.org)'
|
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious實例(預設為
|
||||||
Region for Trending: '熱門區域'
|
https://invidious.snopyta.org )'
|
||||||
|
Region for Trending: '發燒影片區域'
|
||||||
#! List countries
|
#! List countries
|
||||||
Check for Latest Blog Posts: 檢查最新的部落格貼文
|
Check for Latest Blog Posts: 檢查最新的部落格貼文
|
||||||
Check for Updates: 檢查更新
|
Check for Updates: 檢查更新
|
||||||
|
@ -141,30 +142,30 @@ Settings:
|
||||||
Amber: '黃褐'
|
Amber: '黃褐'
|
||||||
Orange: '橙'
|
Orange: '橙'
|
||||||
Deep Orange: '深橙'
|
Deep Orange: '深橙'
|
||||||
Secondary Color Theme: '次主題色'
|
Secondary Color Theme: '次要主題色'
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
UI Scale: UI縮放
|
UI Scale: UI縮放
|
||||||
Expand Side Bar by Default: 預設展開側邊欄
|
Expand Side Bar by Default: 預設展開側邊欄
|
||||||
Disable Smooth Scrolling: 禁用平滑捲動
|
Disable Smooth Scrolling: 禁用平滑捲動
|
||||||
Player Settings:
|
Player Settings:
|
||||||
Player Settings: '播放器選項'
|
Player Settings: '播放器選項'
|
||||||
Force Local Backend for Legacy Formats: '強制區域后端給傳統格式'
|
Force Local Backend for Legacy Formats: '強制使用傳統格式的區域伺服器'
|
||||||
Remember History: '記住曆史'
|
Remember History: '記住曆史'
|
||||||
Play Next Video: '播放下一影片'
|
Play Next Video: '播放下一部影片'
|
||||||
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'
|
||||||
|
@ -211,28 +212,28 @@ Settings:
|
||||||
#& No
|
#& No
|
||||||
|
|
||||||
Privacy Settings:
|
Privacy Settings:
|
||||||
Watch history has been cleared: 觀看歷史紀錄已清除
|
Watch history has been cleared: 觀看紀錄已清除
|
||||||
Are you sure you want to remove your entire watch history?: 您確定您想移除您全部的觀看歷史紀錄?
|
Are you sure you want to remove your entire watch history?: 您確定要移除全部的觀看歷史紀錄嗎?
|
||||||
Remove Watch History: 移除觀看歷史紀錄
|
Remove Watch History: 移除觀看歷史紀錄
|
||||||
Search cache has been cleared: 搜尋快取已清除
|
Search cache has been cleared: 搜尋快取已清除
|
||||||
Are you sure you want to clear out your search cache?: 您確定您想清除您的搜尋快取?
|
Are you sure you want to clear out your search cache?: 您確定要清除搜尋快取嗎?
|
||||||
Clear Search Cache: 清除搜尋快取
|
Clear Search Cache: 清除搜尋快取
|
||||||
Save Watched Progress: 儲存觀看進度
|
Save Watched Progress: 儲存觀看進度
|
||||||
Remember History: 記住歷史紀錄
|
Remember History: 儲存歷史紀錄
|
||||||
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: 移除所有訂閱/設定檔
|
||||||
Data Settings:
|
Data Settings:
|
||||||
How do I import my subscriptions?: 我要如何匯入我的訂閱?
|
How do I import my subscriptions?: 我要如何匯入我的訂閱?
|
||||||
Unknown data key: 未知的資料金鑰
|
Unknown data key: 未知的資料金鑰
|
||||||
Unable to write file: 無法寫入檔案
|
Unable to write file: 無法寫入檔案
|
||||||
Unable to read file: 無法讀取檔案
|
Unable to read file: 無法讀取檔案
|
||||||
All watched history has been successfully exported: 所有觀看的曆史紀錄已成功匯出
|
All watched history has been successfully exported: 所有觀看紀錄已成功匯出
|
||||||
All watched history has been successfully imported: 所有觀看的歷史紀錄已成功匯入
|
All watched history has been successfully imported: 所有觀看紀錄已成功匯入
|
||||||
History object has insufficient data, skipping item: 歷史紀錄物件資料不足,正在跳過項目
|
History object has insufficient data, skipping item: 歷史紀錄物件資料不足,正在跳過項目
|
||||||
Subscriptions have been successfully exported: 訂閱已成功匯出
|
Subscriptions have been successfully exported: 訂閱已成功匯出
|
||||||
Invalid history file: 無效的歷史紀錄檔案
|
Invalid history file: 無效的歷史紀錄檔案
|
||||||
This might take a while, please wait: 這可能需要一段時間,請稍候
|
This might take a while, please wait: 這可能需要一段時間,請稍候...
|
||||||
Invalid subscriptions file: 無效的訂閱檔案
|
Invalid subscriptions file: 無效的訂閱檔案
|
||||||
All subscriptions have been successfully imported: 所有訂閱已成功匯入
|
All subscriptions have been successfully imported: 所有訂閱已成功匯入
|
||||||
All subscriptions and profiles have been successfully imported: 所有訂閱與設定檔已成功匯入
|
All subscriptions and profiles have been successfully imported: 所有訂閱與設定檔已成功匯入
|
||||||
|
@ -250,21 +251,21 @@ Settings:
|
||||||
Select Export Type: 選取匯出類型
|
Select Export Type: 選取匯出類型
|
||||||
Select Import Type: 選取匯入類型
|
Select Import Type: 選取匯入類型
|
||||||
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 Video Likes And Dislikes: 隱藏影片喜歡與不喜歡
|
Hide Video Likes And Dislikes: 隱藏影片喜歡與不喜歡
|
||||||
Distraction Free Settings: 零打擾設定
|
Distraction Free Settings: 勿擾設定
|
||||||
Hide Video Views: 隱藏影片觀看數量
|
Hide Video Views: 隱藏影片觀看次數
|
||||||
Hide Popular Videos: 隱藏流行影片
|
Hide Popular Videos: 隱藏流行影片
|
||||||
Hide Trending Videos: 隱藏熱門影片
|
Hide Trending Videos: 隱藏熱門影片
|
||||||
Hide Live Chat: 隱藏在線聊天
|
Hide Live Chat: 隱藏直播聊天室
|
||||||
Hide Comment Likes: 隱藏評論點讚
|
Hide Comment Likes: 隱藏留言的按讚數量
|
||||||
Hide Recommended Videos: 隱藏推薦影片
|
Hide Recommended Videos: 隱藏推薦影片
|
||||||
Hide Channel Subscribers: 隱藏頻道訂閱者
|
Hide Channel Subscribers: 隱藏頻道訂閱者
|
||||||
Hide Active Subscriptions: 隱藏作用中的訂閱
|
Hide Active Subscriptions: 隱藏作用中的訂閱
|
||||||
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?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎?
|
||||||
City: 城市
|
City: 城市
|
||||||
|
@ -310,7 +311,7 @@ About:
|
||||||
Release Notes: 版本註記
|
Release Notes: 版本註記
|
||||||
Blog: 部落格
|
Blog: 部落格
|
||||||
Credits: 貢獻者
|
Credits: 貢獻者
|
||||||
FAQ: FAQ
|
FAQ: 常見問題
|
||||||
Wiki: Wiki
|
Wiki: Wiki
|
||||||
Report an Issue: 回報問題
|
Report an Issue: 回報問題
|
||||||
Channel Rules: 頻道規則
|
Channel Rules: 頻道規則
|
||||||
|
@ -322,16 +323,16 @@ About:
|
||||||
Help: 說明
|
Help: 說明
|
||||||
Contact: 聯絡
|
Contact: 聯絡
|
||||||
these people and projects: 這些人與專案
|
these people and projects: 這些人與專案
|
||||||
FreeTube is made possible by: FreeTube 被做出來是因為
|
FreeTube is made possible by: FreeTube 誕生都要感謝這些人
|
||||||
Translate: 翻譯
|
Translate: 翻譯
|
||||||
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: 回報問題
|
||||||
FreeTube Wiki: FreeTube Wiki
|
FreeTube Wiki: FreeTube 維基百科
|
||||||
GitHub releases: GitHub 版本
|
GitHub releases: GitHub 版本
|
||||||
Downloads / Changelog: 下載 / 變更紀錄
|
Downloads / Changelog: 下載 / 變更紀錄
|
||||||
View License: 檢視授權條款
|
View License: 檢視授權條款
|
||||||
|
@ -342,23 +343,23 @@ Channel:
|
||||||
Subscribers: '訂閱者'
|
Subscribers: '訂閱者'
|
||||||
Subscribe: '訂閱'
|
Subscribe: '訂閱'
|
||||||
Unsubscribe: '取消訂閱'
|
Unsubscribe: '取消訂閱'
|
||||||
Search Channel: '搜索頻道'
|
Search Channel: '搜尋頻道'
|
||||||
Your search results have returned 0 results: '您的搜索結果是0結果'
|
Your search results have returned 0 results: '搜尋結果為零'
|
||||||
Sort By: '排序方式'
|
Sort By: '排序方式'
|
||||||
Videos:
|
Videos:
|
||||||
Videos: '影片'
|
Videos: '影片'
|
||||||
This channel does not currently have any videos: '這個頻道目前沒有任何影片'
|
This channel does not currently have any videos: '這個頻道目前沒有任何影片'
|
||||||
Sort Types:
|
Sort Types:
|
||||||
Newest: '最新'
|
Newest: '最新'
|
||||||
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: '最新'
|
||||||
Oldest: '最老'
|
Oldest: '最舊'
|
||||||
About:
|
About:
|
||||||
About: '關於'
|
About: '關於'
|
||||||
Channel Description: '頻道說明'
|
Channel Description: '頻道說明'
|
||||||
|
@ -368,11 +369,11 @@ Channel:
|
||||||
Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除
|
Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除
|
||||||
Video:
|
Video:
|
||||||
Open in YouTube: '在YouTube中開啟'
|
Open in YouTube: '在YouTube中開啟'
|
||||||
Copy YouTube Link: '複製YouTube鏈結'
|
Copy YouTube Link: '複製YouTube連結'
|
||||||
Open YouTube Embedded Player: '開啟YouTube內嵌播放器'
|
Open YouTube Embedded Player: '開啟YouTube內嵌播放器'
|
||||||
Copy YouTube Embedded Player Link: '複製YouTube內嵌播放器鏈結'
|
Copy YouTube Embedded Player Link: '複製YouTube內嵌播放器連結'
|
||||||
Open in Invidious: '在Invidious中開啟'
|
Open in Invidious: '在Invidious中開啟'
|
||||||
Copy Invidious Link: '複製Invidious鏈結'
|
Copy Invidious Link: '複製Invidious連結'
|
||||||
View: '觀看'
|
View: '觀看'
|
||||||
Views: '觀看'
|
Views: '觀看'
|
||||||
# Context is "X People Watching"
|
# Context is "X People Watching"
|
||||||
|
@ -381,12 +382,12 @@ Video:
|
||||||
# As in a Live Video
|
# As in a Live Video
|
||||||
Live: '直播'
|
Live: '直播'
|
||||||
Live Now: '現在直播'
|
Live Now: '現在直播'
|
||||||
Live Chat: '在線聊天'
|
Live Chat: '直播聊天室'
|
||||||
Enable Live Chat: '允許在線聊天'
|
Enable Live Chat: '啟用直播聊天室'
|
||||||
Live Chat is currently not supported in this build.: '在線聊天在此版本中目前不被支援。'
|
Live Chat is currently not supported in this build.: '直播聊天室在此版本中目前不被支援。'
|
||||||
'Chat is disabled or the Live Stream has ended.': '聊天被禁用或者在線直播已結束。'
|
'Chat is disabled or the Live Stream has ended.': '直播聊天室功能被禁用或者直播已經結束。'
|
||||||
Live chat is enabled. Chat messages will appear here once sent.: '在線聊天結束。 聊天資訊一旦傳送將出現在這裡。'
|
Live chat is enabled. Chat messages will appear here once sent.: '直播聊天結束。 聊天訊息一旦傳送將出現在這裡。'
|
||||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '在線聊天目前不被Invidious
|
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '直播聊天室目前不被Invidious
|
||||||
API支援。 需要直接連線YouTube。'
|
API支援。 需要直接連線YouTube。'
|
||||||
Published:
|
Published:
|
||||||
Jan: '一月'
|
Jan: '一月'
|
||||||
|
@ -414,24 +415,24 @@ Video:
|
||||||
Year: '年'
|
Year: '年'
|
||||||
Years: '年'
|
Years: '年'
|
||||||
Ago: '前'
|
Ago: '前'
|
||||||
Upcoming: '首映於'
|
Upcoming: '首播於'
|
||||||
Minutes: 分鐘
|
Minutes: 分鐘
|
||||||
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: 影片標記為已觀看
|
||||||
Remove From History: 從曆史紀錄中移除
|
Remove From History: 從歷史紀錄中移除
|
||||||
Mark As Watched: 記號為已觀看
|
Mark As Watched: 標記為已觀看
|
||||||
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:
|
||||||
Best: 最佳
|
Best: 最佳
|
||||||
High: 高
|
High: 高
|
||||||
|
@ -444,16 +445,16 @@ 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: 儲存影片至播放清單
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
Sort By:
|
Sort By:
|
||||||
Newest: '最新'
|
Newest: '最新'
|
||||||
Oldest: '最老'
|
Oldest: '最舊'
|
||||||
#& Most Popular
|
#& Most Popular
|
||||||
#& Playlists
|
#& Playlists
|
||||||
Playlist:
|
Playlist:
|
||||||
|
@ -462,20 +463,20 @@ 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連結'
|
||||||
Open in Invidious: '在Invidious中開啟'
|
Open in Invidious: '在Invidious中開啟'
|
||||||
|
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
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: '使用音訊格式'
|
||||||
|
@ -483,8 +484,8 @@ Change Format:
|
||||||
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: '複製連結'
|
||||||
Open Link: '開啟鏈結'
|
Open Link: '開啟連結'
|
||||||
Copy Embed: '複製內嵌'
|
Copy Embed: '複製內嵌'
|
||||||
Open Embed: '開啟內嵌'
|
Open Embed: '開啟內嵌'
|
||||||
# On Click
|
# On Click
|
||||||
|
@ -497,24 +498,24 @@ Share:
|
||||||
Invidious Channel URL copied to clipboard: Invidious頻道URL已複製到剪貼簿
|
Invidious Channel URL copied to clipboard: Invidious頻道URL已複製到剪貼簿
|
||||||
Mini Player: '迷你播放器'
|
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
|
||||||
View: '觀看'
|
View: '觀看'
|
||||||
Hide: '隱藏'
|
Hide: '隱藏'
|
||||||
Replies: '回覆'
|
Replies: '回覆'
|
||||||
Reply: '回覆'
|
Reply: '回覆'
|
||||||
There are no comments available for this video: '這個影片沒有評論'
|
There are no comments available for this video: '這個影片沒有留言'
|
||||||
Load More Comments: '加載更多評論'
|
Load More Comments: '載入更多留言'
|
||||||
There are no more comments for this video: 此影片無更多評論
|
There are no more comments for this video: 此影片無更多留言
|
||||||
Newest first: 最新優先
|
Newest first: 最新優先
|
||||||
Top comments: 最熱評論
|
Top comments: 最熱門留言
|
||||||
Sort by: 排序方式
|
Sort by: 排序方式
|
||||||
No more comments available: 沒有更多評論
|
No more comments available: 沒有更多留言
|
||||||
Up Next: 'Up Next'
|
Up Next: '觀看其他類似影片'
|
||||||
|
|
||||||
# Toast Messages
|
# Toast Messages
|
||||||
Local API Error (Click to copy): '區域API錯誤(點擊複製)'
|
Local API Error (Click to copy): '區域API錯誤(點擊複製)'
|
||||||
|
@ -523,18 +524,18 @@ 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: '下一影片將在5秒后播放。點擊取消。'
|
Playing next video in 5 seconds. Click to cancel: '下一部影片將在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: '否'
|
||||||
Locale Name: 正體中文
|
Locale Name: 繁體(正體)中文
|
||||||
Profile:
|
Profile:
|
||||||
$ is now the active profile: $現在是作用中的設定檔
|
$ is now the active profile: $現在是作用中的設定檔
|
||||||
Your default profile has been changed to your primary profile: 您的預設設定檔已變更為您的主要設定檔
|
Your default profile has been changed to your primary profile: 您的預設設定檔已變更為您的主要設定檔
|
||||||
|
@ -562,7 +563,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.
|
||||||
: 這是您的主設定檔。 您確定您想移除選取的頻道? 相同的頻道中任何找到的設定檔會被移除。
|
: 這是您的主要設定檔。 您確定要移除選取的頻道? 相同的頻道中任何找到的設定檔會被移除。
|
||||||
No channel(s) have been selected: 無頻道已選取
|
No channel(s) have been selected: 無頻道已選取
|
||||||
Add Selected To Profile: 添加選取的到設定檔
|
Add Selected To Profile: 添加選取的到設定檔
|
||||||
Delete Selected: 移除選取的
|
Delete Selected: 移除選取的
|
||||||
|
@ -574,7 +575,7 @@ Profile:
|
||||||
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: 從網站下載
|
||||||
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:
|
||||||
Subscription Settings:
|
Subscription Settings:
|
||||||
|
@ -582,13 +583,13 @@ Tooltips:
|
||||||
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 時才有效。啟用後,區域 API
|
||||||
將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious回傳的影片時有幫助
|
將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious回傳的影片時有幫助
|
||||||
General Settings:
|
General Settings:
|
||||||
Invidious Instance: FreeTube將連線為 API呼叫的Invidious實例。清除目前的實例以檢視可供選擇的公用實例清單
|
Invidious Instance: FreeTube將連線為 API呼叫的Invidious實例。清除目前的實例以檢視可供選擇的公用實例清單
|
||||||
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 要用於取得資料的後端。本地 API 是內建擷取器。Invidious API 需要 Invidious
|
Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious
|
||||||
伺服器才能連線。
|
API 需要 Invidious 伺服器才能連線。
|
||||||
Region for Trending: 熱門區域讓您挑選您想要顯示哪個國家的熱門影片。並非所有顯示的國家都被YouTube支援
|
Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援
|
||||||
|
|
Loading…
Reference in New Issue