From 014eee7990cd0d5803841325292424f7fcdc122b Mon Sep 17 00:00:00 2001 From: Dragibus Noir Date: Sun, 7 Mar 2021 00:03:55 +0000 Subject: [PATCH 001/297] Translated using Weblate (French) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 177937c0..6a98430c 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -191,6 +191,8 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Intervalle de la prochaine vidéo dans la liste de + lecture Subscription Settings: Subscription Settings: 'Paramètres des abonnements' Hide Videos on Watch: 'Masquer les vidéos visionnées' @@ -298,6 +300,7 @@ Settings: Hide Recommended Videos: Masquer les vidéos recommandées Distraction Free Settings: Mode sans distraction Hide Active Subscriptions: Masquer les abonnements actifs + Hide Playlists: Masquer les listes de lecture The app needs to restart for changes to take effect. Restart and apply change?: L'application doit être redémarrée pour que les changements prennent effet. Redémarrer et appliquer les changements ? @@ -647,6 +650,7 @@ Profile: Select All: Tout sélectionner $ selected: $ sélectionné(s) Other Channels: Autres chaînes + Profile Filter: Filtre de profil The playlist has been reversed: La liste de lecture a été inversée A new blog is now available, $. Click to view more: Un nouveau billet est maintenant disponible, $. Cliquez pour en savoir plus @@ -690,3 +694,8 @@ Tooltips: Region for Trending: Ceci vous permet de choisir les vidéos tendance du pays que vous souhaitez afficher. Attention, certains pays affichés ne sont pas pris en charge par YouTube +More: Plus +Playing Next Video Interval: Lecture de la prochaine vidéo en un rien de temps. Cliquez + pour annuler. | Lecture de la prochaine vidéo dans {nextVideoInterval} seconde. + Cliquer pour annuler. | Lecture de la vidéo suivante dans {l'intervalle vidéo suivant} + secondes. Cliquer pour annuler. From 90685ab7c113b68e86ab56520f03313daec6b2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Sun, 7 Mar 2021 08:17:13 +0000 Subject: [PATCH 002/297] Translated using Weblate (Polish) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index e3153866..a47f762c 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -187,6 +187,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Przerwa przed kolejną pozycją listy Subscription Settings: Subscription Settings: 'Ustawienia subskrypcji' Hide Videos on Watch: 'Ukrywaj filmy po obejrzeniu' @@ -293,6 +294,7 @@ Settings: Hide Video Likes And Dislikes: Schowaj łapki w górę i w dół Hide Video Views: Schowaj obejrzenia filmu Hide Active Subscriptions: Schowaj aktywne subskrypcje + Hide Playlists: Ukryj listę The app needs to restart for changes to take effect. Restart and apply change?: Aplikacja musi zostać ponownie uruchomiona, aby zmiany zostały wprowadzone. Uruchomić ponownie i zastosować zmiany? @@ -633,6 +635,7 @@ Profile: $ selected: Wybrano $ Other Channels: Inne kanały Subscription List: Lista subskrypcji + Profile Filter: Filtr profilu The playlist has been reversed: Playlista została odwrócona A new blog is now available, $. Click to view more: Nowy wpis na blogu jest dostępny, $. Kliknij, aby zobaczyć więcej @@ -672,3 +675,8 @@ Tooltips: 720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk Proxy Videos Through Invidious: Będzie dostarczał filmy, łącząc się z Invidious, a nie bezpośrednio z YouTube. Nadpisuje ustawienia API +Playing Next Video Interval: Odtwarzanie kolejnego filmu już za chwilę. Wciśnij aby + przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekundę. Wciśnij + aby przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekund. Wciśnij + aby przerwać. +More: Więcej From 4ee2cc5e5f56e9c8a98f396afdaa35bbe5408359 Mon Sep 17 00:00:00 2001 From: Reza Almanda Date: Sun, 7 Mar 2021 08:02:24 +0000 Subject: [PATCH 003/297] Translated using Weblate (Indonesian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/id/ --- static/locales/id.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/id.yaml b/static/locales/id.yaml index e25675e1..04342b9a 100644 --- a/static/locales/id.yaml +++ b/static/locales/id.yaml @@ -403,6 +403,7 @@ Profile: Anda yakin ingin menghapus kanal yang terpilih? Tindakan ini tidak akan menghapus kanalnya dari profil lain.' #On Channel Page + Profile Filter: Filter Profil Channel: Subscriber: 'Pelanggan' Subscribers: 'Pelanggan' From 6ed3dac1b8f4d0a2da206fab774eddf39c659e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Sun, 7 Mar 2021 10:06:23 +0000 Subject: [PATCH 004/297] Translated using Weblate (Polish) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index a47f762c..db0cf040 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -187,7 +187,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' - Playlist Next Video Interval: Przerwa przed kolejną pozycją listy + Playlist Next Video Interval: Przerwa przed kolejną pozycją playlisty Subscription Settings: Subscription Settings: 'Ustawienia subskrypcji' Hide Videos on Watch: 'Ukrywaj filmy po obejrzeniu' @@ -294,7 +294,7 @@ Settings: Hide Video Likes And Dislikes: Schowaj łapki w górę i w dół Hide Video Views: Schowaj obejrzenia filmu Hide Active Subscriptions: Schowaj aktywne subskrypcje - Hide Playlists: Ukryj listę + Hide Playlists: Ukryj playlistę The app needs to restart for changes to take effect. Restart and apply change?: Aplikacja musi zostać ponownie uruchomiona, aby zmiany zostały wprowadzone. Uruchomić ponownie i zastosować zmiany? From 986053ad030ed3786d6c79ba8e2822735ee978f9 Mon Sep 17 00:00:00 2001 From: Dennis ten Hoove Date: Sun, 7 Mar 2021 11:26:46 +0000 Subject: [PATCH 005/297] Translated using Weblate (Dutch) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index 26dcd362..dc211420 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -187,6 +187,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Afspeellijst Volgende Video Tussentijd Privacy Settings: Privacy Settings: 'Privacy Instellingen' Remember History: 'Herinner Geschiedenis' @@ -292,6 +293,7 @@ Settings: Hide Video Views: Verberg Weergaven Distraction Free Settings: Afleidingsvrije Instellingen Hide Active Subscriptions: Verberg Actieve Abonnementen + Hide Playlists: Verberg Afspeellijst The app needs to restart for changes to take effect. Restart and apply change?: De applicatie moet opnieuw opstarten om de veranderingen aan te brengen. Wilt u opnieuw opstarten? @@ -622,6 +624,7 @@ Profile: $ selected: $ is geselecteerd Other Channels: Andere Kanalen Subscription List: Abonnementen + Profile Filter: Profielfilter A new blog is now available, $. Click to view more: Een nieuwe blogpost is beschikbaar, $. Klik voor meer informatie Download From Site: Download van de Website @@ -664,3 +667,7 @@ Tooltips: Region for Trending: Met trend regio kan je instellen uit welk land je trending video's je wil zien. Niet alle weergegeven landen worden ook daadwerkelijk ondersteund door YouTube +Playing Next Video Interval: Volgende video wordt afgespeeld. Klik om te onderbreken. + | Volgende video wordt afgespeeld in {nextVideoInterval} seconde. Klik om te onderbreken. + | Volgende video wordt afgespeeld in {nextVideoInterval} seconden. Klik om te onderbreken. +More: Meer From 3734bad6ef8a478cc5dbdd047b90f23b3fee9967 Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Sun, 7 Mar 2021 16:07:09 +0000 Subject: [PATCH 006/297] Support for version flag --- src/main/index.js | 905 +++++++++++++++++++++++----------------------- 1 file changed, 457 insertions(+), 448 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 2bc48625..8b320793 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -2,74 +2,152 @@ import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron' import { productName } from '../../package.json' import Datastore from 'nedb' -require('@electron/remote/main').initialize() - -require('electron-context-menu')({ - showSearchWithGoogle: false, - showSaveImageAs: true, - showCopyImageAddress: true, - prepend: (params, browserWindow) => [] -}) - -const localDataStorage = app.getPath('userData') // Grabs the userdata directory based on the user's OS - -const settingsDb = new Datastore({ - filename: localDataStorage + '/settings.db', - autoload: true -}) - -// set app name -app.setName(productName) - -// disable electron warning -process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true' -const path = require('path') -const isDev = process.env.NODE_ENV === 'development' -const isDebug = process.argv.includes('--debug') -let mainWindow -let startupUrl - -// CORS somehow gets re-enabled in Electron v9.0.4 -// This line disables it. -// This line can possible be removed if the issue is fixed upstream -app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') - -app.commandLine.appendSwitch('enable-accelerated-video-decode') -app.commandLine.appendSwitch('ignore-gpu-blacklist') - -// See: https://stackoverflow.com/questions/45570589/electron-protocol-handler-not-working-on-windows -// remove so we can register each time as we run the app. -app.removeAsDefaultProtocolClient('freetube') - -// If we are running a non-packaged version of the app && on windows -if (isDev && process.platform === 'win32') { - // Set the path of electron.exe and your app. - // These two additional parameters are only available on windows. - app.setAsDefaultProtocolClient('freetube', process.execPath, [path.resolve(process.argv[1])]) +if (process.argv.includes('--version')) { + console.log(`v${app.getVersion()}`) + app.exit(0) } else { - app.setAsDefaultProtocolClient('freetube') + runApp() } -// TODO: Uncomment if needed -// only allow single instance of application -if (!isDev) { - const gotTheLock = app.requestSingleInstanceLock() +function runApp() { + require('@electron/remote/main').initialize() - if (gotTheLock) { - app.on('second-instance', (event, commandLine, workingDirectory) => { - // Someone tried to run a second instance, we should focus our window. - if (mainWindow && typeof (commandLine) !== 'undefined') { - if (mainWindow.isMinimized()) mainWindow.restore() - mainWindow.focus() + require('electron-context-menu')({ + showSearchWithGoogle: false, + showSaveImageAs: true, + showCopyImageAddress: true, + prepend: (params, browserWindow) => [] + }) - const url = getLinkUrl(commandLine) - if (url) { - mainWindow.webContents.send('openUrl', url) + const localDataStorage = app.getPath('userData') // Grabs the userdata directory based on the user's OS + + const settingsDb = new Datastore({ + filename: localDataStorage + '/settings.db', + autoload: true + }) + + // set app name + app.setName(productName) + + // disable electron warning + process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true' + const path = require('path') + const isDev = process.env.NODE_ENV === 'development' + const isDebug = process.argv.includes('--debug') + let mainWindow + let startupUrl + + // CORS somehow gets re-enabled in Electron v9.0.4 + // This line disables it. + // This line can possible be removed if the issue is fixed upstream + app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') + + app.commandLine.appendSwitch('enable-accelerated-video-decode') + app.commandLine.appendSwitch('ignore-gpu-blacklist') + + // See: https://stackoverflow.com/questions/45570589/electron-protocol-handler-not-working-on-windows + // remove so we can register each time as we run the app. + app.removeAsDefaultProtocolClient('freetube') + + // If we are running a non-packaged version of the app && on windows + if (isDev && process.platform === 'win32') { + // Set the path of electron.exe and your app. + // These two additional parameters are only available on windows. + app.setAsDefaultProtocolClient('freetube', process.execPath, [path.resolve(process.argv[1])]) + } else { + app.setAsDefaultProtocolClient('freetube') + } + + // TODO: Uncomment if needed + // only allow single instance of application + if (!isDev) { + const gotTheLock = app.requestSingleInstanceLock() + + if (gotTheLock) { + app.on('second-instance', (event, commandLine, workingDirectory) => { + // Someone tried to run a second instance, we should focus our window. + if (mainWindow && typeof (commandLine) !== 'undefined') { + if (mainWindow.isMinimized()) mainWindow.restore() + mainWindow.focus() + + const url = getLinkUrl(commandLine) + if (url) { + mainWindow.webContents.send('openUrl', url) + } } - } + }) + + app.on('ready', (event, commandLine, workingDirectory) => { + settingsDb.find({ + $or: [ + { _id: 'disableSmoothScrolling' }, + { _id: 'useProxy' }, + { _id: 'proxyProtocol' }, + { _id: 'proxyHostname' }, + { _id: 'proxyPort' } + ] + }, function (err, doc) { + if (err) { + app.exit(0) + return + } + + let disableSmoothScrolling = false + let useProxy = false + let proxyProtocol = 'socks5' + let proxyHostname = '127.0.0.1' + let proxyPort = '9050' + + if (typeof doc === 'object' && doc.length > 0) { + doc.forEach((dbItem) => { + switch (dbItem._id) { + case 'disableSmoothScrolling': + disableSmoothScrolling = dbItem.value + break + case 'useProxy': + useProxy = dbItem.value + break + case 'proxyProtocol': + proxyProtocol = dbItem.value + break + case 'proxyHostname': + proxyHostname = dbItem.value + break + case 'proxyPort': + proxyPort = dbItem.value + break + } + }) + } + + if (disableSmoothScrolling) { + app.commandLine.appendSwitch('disable-smooth-scrolling') + } else { + app.commandLine.appendSwitch('enable-smooth-scrolling') + } + + const proxyUrl = `${proxyProtocol}://${proxyHostname}:${proxyPort}` + + createWindow(useProxy, proxyUrl) + + if (isDev) { + installDevTools() + } + + if (isDebug) { + mainWindow.webContents.openDevTools() + } + }) + }) + } else { + app.quit() + } + } else { + require('electron-debug')({ + showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true') }) - app.on('ready', (event, commandLine, workingDirectory) => { + app.on('ready', () => { settingsDb.find({ $or: [ { _id: 'disableSmoothScrolling' }, @@ -131,426 +209,357 @@ if (!isDev) { } }) }) - } else { - app.quit() - } -} else { - require('electron-debug')({ - showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true') - }) - - app.on('ready', () => { - settingsDb.find({ - $or: [ - { _id: 'disableSmoothScrolling' }, - { _id: 'useProxy' }, - { _id: 'proxyProtocol' }, - { _id: 'proxyHostname' }, - { _id: 'proxyPort' } - ] - }, function (err, doc) { - if (err) { - app.exit(0) - return - } - - let disableSmoothScrolling = false - let useProxy = false - let proxyProtocol = 'socks5' - let proxyHostname = '127.0.0.1' - let proxyPort = '9050' - - if (typeof doc === 'object' && doc.length > 0) { - doc.forEach((dbItem) => { - switch (dbItem._id) { - case 'disableSmoothScrolling': - disableSmoothScrolling = dbItem.value - break - case 'useProxy': - useProxy = dbItem.value - break - case 'proxyProtocol': - proxyProtocol = dbItem.value - break - case 'proxyHostname': - proxyHostname = dbItem.value - break - case 'proxyPort': - proxyPort = dbItem.value - break - } - }) - } - - if (disableSmoothScrolling) { - app.commandLine.appendSwitch('disable-smooth-scrolling') - } else { - app.commandLine.appendSwitch('enable-smooth-scrolling') - } - - const proxyUrl = `${proxyProtocol}://${proxyHostname}:${proxyPort}` - - createWindow(useProxy, proxyUrl) - - if (isDev) { - installDevTools() - } - - if (isDebug) { - mainWindow.webContents.openDevTools() - } - }) - }) -} - -async function installDevTools () { - try { - /* eslint-disable */ - require('devtron').install() - require('vue-devtools').install() - /* eslint-enable */ - } catch (err) { - console.log(err) - } -} - -function createWindow (useProxy = false, proxyUrl = '') { - /** - * Initial window options - */ - mainWindow = new BrowserWindow({ - backgroundColor: '#fff', - icon: isDev - ? path.join(__dirname, '../../_icons/iconColor.png') - /* eslint-disable-next-line */ - : `${__dirname}/_icons/iconColor.png`, - autoHideMenuBar: true, - // useContentSize: true, - webPreferences: { - nodeIntegration: true, - nodeIntegrationInWorker: false, - webSecurity: false, - backgroundThrottling: false, - enableRemoteModule: true, - contextIsolation: false - }, - show: false - }) - - mainWindow.setBounds({ - width: 1200, - height: 800 - }) - - if (useProxy) { - mainWindow.webContents.session.setProxy({ - proxyRules: proxyUrl - }) } - settingsDb.findOne({ - _id: 'bounds' - }, function (err, doc) { - if (doc === null || err) { - return + async function installDevTools () { + try { + /* eslint-disable */ + require('devtron').install() + require('vue-devtools').install() + /* eslint-enable */ + } catch (err) { + console.log(err) } + } - if (typeof doc !== 'object' || typeof doc.value !== 'object') { - return - } + function createWindow (useProxy = false, proxyUrl = '') { + /** + * Initial window options + */ + mainWindow = new BrowserWindow({ + backgroundColor: '#fff', + icon: isDev + ? path.join(__dirname, '../../_icons/iconColor.png') + /* eslint-disable-next-line */ + : `${__dirname}/_icons/iconColor.png`, + autoHideMenuBar: true, + // useContentSize: true, + webPreferences: { + nodeIntegration: true, + nodeIntegrationInWorker: false, + webSecurity: false, + backgroundThrottling: false, + enableRemoteModule: true, + contextIsolation: false + }, + show: false + }) - const { maximized, ...bounds } = doc.value - const allDisplaysSummaryWidth = screen - .getAllDisplays() - .reduce((accumulator, { size: { width } }) => accumulator + width, 0) + mainWindow.setBounds({ + width: 1200, + height: 800 + }) - if (allDisplaysSummaryWidth >= bounds.x) { - mainWindow.setBounds({ - x: bounds.x, - y: bounds.y, - width: bounds.width, - height: bounds.height + if (useProxy) { + mainWindow.webContents.session.setProxy({ + proxyRules: proxyUrl }) } - if (maximized) { - mainWindow.maximize() - } - }) - - // eslint-disable-next-line - setMenu() - - // load root file/url - if (isDev) { - mainWindow.loadURL('http://localhost:9080') - } else { - /* eslint-disable-next-line */ - mainWindow.loadFile(`${__dirname}/index.html`) - - global.__static = path - .join(__dirname, '/static') - .replace(/\\/g, '\\\\') - } - - // Show when loaded - mainWindow.on('ready-to-show', () => { - mainWindow.show() - mainWindow.focus() - }) - - mainWindow.on('closed', () => { - console.log('closed') - }) - - ipcMain.on('setBounds', (_e, data) => { - const value = { - ...mainWindow.getBounds(), - maximized: mainWindow.isMaximized() - } settingsDb.findOne({ _id: 'bounds' }, function (err, doc) { - if (err) { + if (doc === null || err) { return } - if (doc !== null) { - settingsDb.update({ - _id: 'bounds' - }, { - $set: { - value - } - }, {}) - } else { - settingsDb.insert({ - _id: 'bounds', - value + + if (typeof doc !== 'object' || typeof doc.value !== 'object') { + return + } + + const { maximized, ...bounds } = doc.value + const allDisplaysSummaryWidth = screen + .getAllDisplays() + .reduce((accumulator, { size: { width } }) => accumulator + width, 0) + + if (allDisplaysSummaryWidth >= bounds.x) { + mainWindow.setBounds({ + x: bounds.x, + y: bounds.y, + width: bounds.width, + height: bounds.height }) } + if (maximized) { + mainWindow.maximize() + } }) - }) - ipcMain.on('appReady', () => { - if (startupUrl) { - mainWindow.webContents.send('openUrl', startupUrl) + // eslint-disable-next-line + setMenu() + + // load root file/url + if (isDev) { + mainWindow.loadURL('http://localhost:9080') + } else { + /* eslint-disable-next-line */ + mainWindow.loadFile(`${__dirname}/index.html`) + + global.__static = path + .join(__dirname, '/static') + .replace(/\\/g, '\\\\') } - }) - ipcMain.on('disableSmoothScrolling', () => { - app.commandLine.appendSwitch('disable-smooth-scrolling') - mainWindow.close() - createWindow() - }) - - ipcMain.on('enableSmoothScrolling', () => { - app.commandLine.appendSwitch('enable-smooth-scrolling') - mainWindow.close() - createWindow() - }) - - ipcMain.on('enableProxy', (event, url) => { - console.log(url) - mainWindow.webContents.session.setProxy({ - proxyRules: url + // Show when loaded + mainWindow.on('ready-to-show', () => { + mainWindow.show() + mainWindow.focus() }) - }) - ipcMain.on('disableProxy', () => { - mainWindow.webContents.session.setProxy({}) - }) -} + mainWindow.on('closed', () => { + console.log('closed') + }) -app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { - app.quit() + ipcMain.on('setBounds', (_e, data) => { + const value = { + ...mainWindow.getBounds(), + maximized: mainWindow.isMaximized() + } + + settingsDb.findOne({ + _id: 'bounds' + }, function (err, doc) { + if (err) { + return + } + if (doc !== null) { + settingsDb.update({ + _id: 'bounds' + }, { + $set: { + value + } + }, {}) + } else { + settingsDb.insert({ + _id: 'bounds', + value + }) + } + }) + }) + + ipcMain.on('appReady', () => { + if (startupUrl) { + mainWindow.webContents.send('openUrl', startupUrl) + } + }) + + ipcMain.on('disableSmoothScrolling', () => { + app.commandLine.appendSwitch('disable-smooth-scrolling') + mainWindow.close() + createWindow() + }) + + ipcMain.on('enableSmoothScrolling', () => { + app.commandLine.appendSwitch('enable-smooth-scrolling') + mainWindow.close() + createWindow() + }) + + ipcMain.on('enableProxy', (event, url) => { + console.log(url) + mainWindow.webContents.session.setProxy({ + proxyRules: url + }) + }) + + ipcMain.on('disableProxy', () => { + mainWindow.webContents.session.setProxy({}) + }) } - mainWindow.webContents.session.clearCache() - mainWindow.webContents.session.clearStorageData({ - storages: [ - 'appcache', - 'cookies', - 'filesystem', - 'indexdb', - 'shadercache', - 'websql', - 'serviceworkers', - 'cachestorage' - ] - }) -}) - -app.on('activate', () => { - if (mainWindow === null) { - createWindow() - } -}) - -/* - * Callback when processing a freetube:// link (macOS) - */ -app.on('open-url', (event, url) => { - event.preventDefault() - - if (mainWindow && mainWindow.webContents) { - mainWindow.webContents.send('openUrl', baseUrl(url)) - } else { - startupUrl = baseUrl(url) - } -}) - -/* - * Check if an argument was passed and send it over to the GUI (Linux / Windows). - * Remove freetube:// protocol if present - */ -const url = getLinkUrl(process.argv) -if (url) { - startupUrl = url -} - -function baseUrl(arg) { - return arg.replace('freetube://', '') -} - -function getLinkUrl(argv) { - if (argv.length > 1) { - return baseUrl(argv[argv.length - 1]) - } else { - return null - } -} - -/** - * Auto Updater - * - * Uncomment the following code below and install `electron-updater` to - * support auto updating. Code Signing with a valid certificate is required. - * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating - */ - -/* -import { autoUpdater } from 'electron-updater' -autoUpdater.on('update-downloaded', () => { - autoUpdater.quitAndInstall() -}) - -app.on('ready', () => { - if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates() -}) - */ - -/* eslint-disable-next-line */ -const sendMenuEvent = async data => { - mainWindow.webContents.send('change-view', data) -} - -const template = [{ - label: 'File', - submenu: [ - { - role: 'quit' + app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() } - ] -}, -{ - label: 'Edit', - submenu: [{ - role: 'cut' - }, - { - role: 'copy', - accelerator: 'CmdOrCtrl+C', - selector: 'copy:' - }, - { - role: 'paste', - accelerator: 'CmdOrCtrl+V', - selector: 'paste:' - }, - { - role: 'pasteandmatchstyle' - }, - { - role: 'delete' - }, - { - role: 'selectall' - } - ] -}, -{ - label: 'View', - submenu: [{ - role: 'reload' - }, - { - role: 'forcereload', - accelerator: 'CmdOrCtrl+Shift+R' - }, - { - role: 'toggledevtools' - }, - { - type: 'separator' - }, - { - role: 'resetzoom' - }, - { - role: 'zoomin' - }, - { - role: 'zoomout' - }, - { - type: 'separator' - }, - { - role: 'togglefullscreen' - } - ] -}, -{ - role: 'window', - submenu: [{ - role: 'minimize' - }, - { - role: 'close' - } - ] -} -] -function setMenu () { - if (process.platform === 'darwin') { - template.unshift({ - label: app.getName(), - submenu: [ - { role: 'about' }, - { type: 'separator' }, - { role: 'services' }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideothers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'quit' } + mainWindow.webContents.session.clearCache() + mainWindow.webContents.session.clearStorageData({ + storages: [ + 'appcache', + 'cookies', + 'filesystem', + 'indexdb', + 'shadercache', + 'websql', + 'serviceworkers', + 'cachestorage' ] }) + }) - template.push({ - role: 'window' - }) + app.on('activate', () => { + if (mainWindow === null) { + createWindow() + } + }) - template.push({ - role: 'help' - }) + /* + * Callback when processing a freetube:// link (macOS) + */ + app.on('open-url', (event, url) => { + event.preventDefault() - template.push({ role: 'services' }) + if (mainWindow && mainWindow.webContents) { + mainWindow.webContents.send('openUrl', baseUrl(url)) + } else { + startupUrl = baseUrl(url) + } + }) + + /* + * Check if an argument was passed and send it over to the GUI (Linux / Windows). + * Remove freetube:// protocol if present + */ + const url = getLinkUrl(process.argv) + if (url) { + startupUrl = url } - const menu = Menu.buildFromTemplate(template) - Menu.setApplicationMenu(menu) + function baseUrl(arg) { + return arg.replace('freetube://', '') + } + + function getLinkUrl(argv) { + if (argv.length > 1) { + return baseUrl(argv[argv.length - 1]) + } else { + return null + } + } + + /** + * Auto Updater + * + * Uncomment the following code below and install `electron-updater` to + * support auto updating. Code Signing with a valid certificate is required. + * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating + */ + + /* + import { autoUpdater } from 'electron-updater' + autoUpdater.on('update-downloaded', () => { + autoUpdater.quitAndInstall() + }) + + app.on('ready', () => { + if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates() + }) + */ + + /* eslint-disable-next-line */ + const sendMenuEvent = async data => { + mainWindow.webContents.send('change-view', data) + } + + const template = [{ + label: 'File', + submenu: [ + { + role: 'quit' + } + ] + }, + { + label: 'Edit', + submenu: [{ + role: 'cut' + }, + { + role: 'copy', + accelerator: 'CmdOrCtrl+C', + selector: 'copy:' + }, + { + role: 'paste', + accelerator: 'CmdOrCtrl+V', + selector: 'paste:' + }, + { + role: 'pasteandmatchstyle' + }, + { + role: 'delete' + }, + { + role: 'selectall' + } + ] + }, + { + label: 'View', + submenu: [{ + role: 'reload' + }, + { + role: 'forcereload', + accelerator: 'CmdOrCtrl+Shift+R' + }, + { + role: 'toggledevtools' + }, + { + type: 'separator' + }, + { + role: 'resetzoom' + }, + { + role: 'zoomin' + }, + { + role: 'zoomout' + }, + { + type: 'separator' + }, + { + role: 'togglefullscreen' + } + ] + }, + { + role: 'window', + submenu: [{ + role: 'minimize' + }, + { + role: 'close' + } + ] + } + ] + + function setMenu () { + if (process.platform === 'darwin') { + template.unshift({ + label: app.getName(), + submenu: [ + { role: 'about' }, + { type: 'separator' }, + { role: 'services' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideothers' }, + { role: 'unhide' }, + { type: 'separator' }, + { role: 'quit' } + ] + }) + + template.push({ + role: 'window' + }) + + template.push({ + role: 'help' + }) + + template.push({ role: 'services' }) + } + + const menu = Menu.buildFromTemplate(template) + Menu.setApplicationMenu(menu) + } } From cb29074a08f82f39fc6add08c2d5447544bca68d Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Sun, 7 Mar 2021 16:08:03 +0000 Subject: [PATCH 007/297] Remove unnecessary call to app.setName --- src/main/index.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 8b320793..c2e8d1e9 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,5 +1,4 @@ import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron' -import { productName } from '../../package.json' import Datastore from 'nedb' if (process.argv.includes('--version')) { @@ -26,9 +25,6 @@ function runApp() { autoload: true }) - // set app name - app.setName(productName) - // disable electron warning process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true' const path = require('path') From 317532b6bdfa614230a17c84b9e8a6db4eee2ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=98=E8=8F=98?= Date: Sun, 7 Mar 2021 14:26:22 +0000 Subject: [PATCH 008/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 510213a8..b12a47de 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -176,6 +176,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: 播放清單 下一個影片間隔時間 Subscription Settings: Subscription Settings: '訂閱設定' Hide Videos on Watch: '觀看時隱藏影片' @@ -265,6 +266,7 @@ Settings: Hide Recommended Videos: 隱藏推薦影片 Hide Channel Subscribers: 隱藏頻道訂閱者 Hide Active Subscriptions: 隱藏作用中的訂閱 + Hide Playlists: 隱藏播放清單 The app needs to restart for changes to take effect. Restart and apply change?: 此變更需要重啟讓修改生效。重啟並且套用變更? Proxy Settings: Error getting network information. Is your proxy configured properly?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎? @@ -328,7 +330,7 @@ About: room rules: 聊天室規則 Please read the: 請閱讀 Chat on Matrix: 在 Matrix 上聊天 - Mastodon: Mastodon + Mastodon: Mastodon(長毛象/萬象) Please check for duplicates before posting: 提交前請檢查有無重複的問題 GitHub issues: GitHub 問題追蹤器 Report a problem: 回報問題 @@ -445,7 +447,7 @@ Video: Open Channel in Invidious: 在Invidious開啟頻道 Copy YouTube Channel Link: 複製YouTube頻道連結 Open Channel in YouTube: 在YouTube開啟頻道 - Started streaming on: '開始直播時間:' + Started streaming on: '開始直播時間' Streamed on: 直播於 Video has been removed from your saved list: 影片已從您的播放清單移除 Video has been saved: 影片已儲存 @@ -500,7 +502,7 @@ Mini Player: '迷你播放器' Comments: Comments: '留言' Click to View Comments: '點擊查看留言' - Getting comment replies, please wait: '獲取留言中,請稍候...' + Getting comment replies, please wait: '擷取留言中,請稍候...' Show Comments: '查看留言' Hide Comments: '隱藏留言' # Context: View 10 Replies, View 1 Reply @@ -572,6 +574,7 @@ Profile: $ selected: $個選取的 Other Channels: 其他頻道 Subscription List: 訂閱清單 + Profile Filter: 設定檔篩選器 The playlist has been reversed: 播放清單已反轉 A new blog is now available, $. Click to view more: 已有新的部落格文章,$。點擊以檢視更多 Download From Site: 從網站下載 @@ -579,7 +582,7 @@ Version $ is now available! Click for more details: 版本更新囉! 最新版 This video is unavailable because of missing formats. This can happen due to country unavailability.: 沒有這個影片因為缺少格式。這個可能發生由於國家不可用。 Tooltips: Subscription Settings: - Fetch Feeds from RSS: 啟用後,FreeTube 將使用 RSS 而非預設方式來取得您的訂閱推送。RSS 更快而且可避免 IP 封鎖,但不提供某些訊息,如影片長度與即時狀態 + Fetch Feeds from RSS: 啟用後,FreeTube將使用RSS代替它的預設方法來抓取您的訂閱來源。RSS的速度較快,而且可以防止IP封鎖,但它可能不會提供某些資訊,例如影片長度或是直播狀態。 Player Settings: Default Video Format: 設定要用於影片播放的格式。Dash格式有更高的品質。傳統格式會限制在 720p但頻寬需求更低。音訊格式為僅有音訊的串流 Proxy Videos Through Invidious: 將連線到 Invidious而非直接連線到 YouTube 來提供影片。覆寫 API 偏好 @@ -593,3 +596,6 @@ Tooltips: Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious API 需要 Invidious 伺服器才能連線。 Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援 +Playing Next Video Interval: 馬上播放下一個影片。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。| + 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。 +More: 更多 From 674e456738e893e6a2ee8d7ed0ada5bc868fa36b Mon Sep 17 00:00:00 2001 From: Leonid Date: Sun, 7 Mar 2021 15:42:12 +0000 Subject: [PATCH 009/297] Translated using Weblate (Russian) Currently translated at 99.3% (445 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index b7770c24..fc90bb10 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -290,6 +290,7 @@ Settings: Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео Hide Video Views: Скрыть просмотры видео Hide Active Subscriptions: Скрыть активные подписки + Hide Playlists: Спрятать плейлисты The app needs to restart for changes to take effect. Restart and apply change?: Чтобы изменения вступили в силу, необходимо перезапустить приложение. Перезапустить и применить изменения? @@ -297,7 +298,7 @@ Settings: Error getting network information. Is your proxy configured properly?: Ошибка при получении информации о сети. Вы уверены, что прокси настроен правильно? Your Info: Ваша информация - Clicking on Test Proxy will send a request to: Нажмите на rкнопку "Протестировать + Clicking on Test Proxy will send a request to: Нажмите на кнопку "Протестировать соединение", чтобы отправить запрос на Test Proxy: Протестировать соединение Proxy Port Number: Порт прокси-сервера @@ -622,6 +623,7 @@ Profile: $ selected: $ выбрано Other Channels: Другие каналы Subscription List: Список подписок + Profile Filter: Фильтры профилей The playlist has been reversed: Плейлист был перевёрнут A new blog is now available, $. Click to view more: Теперь доступен новый блог $. Нажмите, чтобы увидеть больше @@ -648,10 +650,10 @@ Tooltips: из страны, которые вы хотите отображать. Не все отображаемые страны на самом деле поддерживаются YouTube Subscription Settings: - Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет использовать - RSS вместо метода по умолчанию для получения вашего канала подписки. RSS работает - быстрее и предотвращает блокировку IP, но не предоставляет определенную информацию, - такую как продолжительность видео или статус в реальном времени + Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет получать вашу + ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает + блокировку IP, но не предоставляет определенную информацию, такую как продолжительность + видео или сведения о том, транслируется ли видео в реальном времени Player Settings: Default Video Format: Установите форматы, используемые при воспроизведении видео. Формат dash может воспроизводить более высокое качество. Устаревшие форматы @@ -664,3 +666,4 @@ Tooltips: устаревшие форматы, возвращаемые им, вместо форматов, возвращаемых Invidious. Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений страны +More: Больше From c0faad02f23cbd9ef408dbca17028c79451c56f6 Mon Sep 17 00:00:00 2001 From: Jakub Date: Sun, 7 Mar 2021 13:01:19 +0000 Subject: [PATCH 010/297] Translated using Weblate (Slovak) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sk/ --- static/locales/sk.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/static/locales/sk.yaml b/static/locales/sk.yaml index 6617565e..1a41eb01 100644 --- a/static/locales/sk.yaml +++ b/static/locales/sk.yaml @@ -105,7 +105,7 @@ Settings: Preferred API Backend: Preferred API Backend: 'Preferované API Backend' Local API: 'Lokálne API' - Invidious API: 'Invidious API' + Invidious API: 'API služby Invidious' Video View Type: Video View Type: 'Typ zobrazenia videa' Grid: 'Mriežka' @@ -184,6 +184,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Čas spustenia nasledujúceho videa v zozname videí Subscription Settings: Subscription Settings: 'Nastavenia Odberov' Hide Videos on Watch: 'Skryť videá po zhliadnutí' @@ -272,6 +273,7 @@ Settings: Hide Video Views: Skryť počet zhliadnutí Distraction Free Settings: Nastavenia nerušenia Hide Active Subscriptions: Skryť aktívne odbery + Hide Playlists: Skryť zoznamy videí Privacy Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Naozaj chcete odstrániť všetky odbery a profily? Toto je nenávratná akcia. @@ -356,7 +358,7 @@ About: room rules: pravidlá miestností Please read the: Prečítajte si Chat on Matrix: Napíšte nám na Matrix-e - Mastodon: Mastodon + Mastodon: Komunikačná platforma Mastodon Email: Elektronická pošta Blog: Blog Website: Webstránka @@ -649,9 +651,14 @@ Profile: Profile Manager: Správca profilov All Channels: Všetky kanály Profile Select: Vyberte profil + Profile Filter: Filter Profilov A new blog is now available, $. Click to view more: Nový príspevok na blogu je k dispozícií, $. Klikni pre viac informácií Download From Site: Stiahnuť zo stránky Version $ is now available! Click for more details: Je k dispozícií verzia $ ! Klikni pre viac informácií Locale Name: Slovenčina +Playing Next Video Interval: Prehrávanie ďalšieho videa za chvíľu. Kliknutím zrušíte. + | Prehráva sa ďalšie video o {nextVideoInterval} sekundu. Kliknutím zrušíte. | Prehráva + sa ďalšie video o {nextVideoInterval} sekúnd. Kliknutím zrušíte. +More: Viac From 565cb9fecae30b6fd028f82d56c41a019e4416cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 7 Mar 2021 13:02:56 +0000 Subject: [PATCH 011/297] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 92.8% (416 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nb_NO/ --- static/locales/nb_NO.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/static/locales/nb_NO.yaml b/static/locales/nb_NO.yaml index 37c9c699..17b01624 100644 --- a/static/locales/nb_NO.yaml +++ b/static/locales/nb_NO.yaml @@ -184,6 +184,7 @@ Settings: 1440p: '1440p' 4k: 'UHD' 8k: '8k UHD' + Playlist Next Video Interval: Intervall for avspilling av neste i spilleliste Privacy Settings: Privacy Settings: 'Personvernsinnstillinger' Remember History: 'Husk historikk' @@ -300,6 +301,7 @@ Settings: Hide Popular Videos: Skjul populære videoer Hide Video Views: Skjul videovisninger Hide Live Chat: Gjem direktechat + Hide Playlists: Skjul spillelister The app needs to restart for changes to take effect. Restart and apply change?: Start programmet på ny for å bruke de nye endringene? About: @@ -607,6 +609,7 @@ Profile: Subscription List: Abonnementsliste Profile Preview: Profilforhåndsvisning Custom Color: Egendefinert farge + Profile Filter: Profilfilter 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. @@ -645,3 +648,7 @@ 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. +Playing Next Video Interval: Spiller neste video nå. Klikk for å avbryte. | Spiller + neste video om {nextVideoInterval} sekund. Klikk for å avbryte. | Spiller neste + video om {nextVideoInterval} sekunder. Klikk for å avbryte. +More: Mer From 3ac09ad574dd5090be8fa0d29945cd2e40ab49ac Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Sun, 7 Mar 2021 16:38:51 +0000 Subject: [PATCH 012/297] Translated using Weblate (Croatian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 87f49ed3..622710eb 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -185,6 +185,7 @@ Settings: 1440p: '1440 p' 4k: '4 k' 8k: '8 k' + Playlist Next Video Interval: Interval sljedećeg videa zbirke Privacy Settings: Privacy Settings: 'Postavke privatnosti' Remember History: 'Zapamti povijest' @@ -287,6 +288,7 @@ Settings: Hide Video Views: Sakrij broj gledanja videa Distraction Free Settings: Postavke za nesmetan rad Hide Active Subscriptions: Sakrij aktivne pretplate + Hide Playlists: Sakrij zbirke The app needs to restart for changes to take effect. Restart and apply change?: Promjene će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program? Proxy Settings: @@ -410,6 +412,7 @@ Profile: $ selected: $ je odabran Other Channels: Ostali kanali Subscription List: Popis pretplata + Profile Filter: Filtar profila Channel: Subscriber: 'Pretplatnik' Subscribers: 'Pretplatnici' @@ -660,3 +663,7 @@ Tooltips: standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava blokiranje IP adresa, ali ne pruža određene podatke kao što su trajanje videa ili stanja „uživo” +Playing Next Video Interval: Trenutna reprodukcija sljedećeg videa. Pritisni za prekid. + | Reprodukcija sljedećeg videa za {nextVideoInterval} sekunde. Pritisni za prekid. + | Reprodukcija sljedećeg videa za {nextVideoInterval} sekundi. Pritisni za prekid. +More: Još From 154c9cd133736ab4bcffc71f43313f540e8d4624 Mon Sep 17 00:00:00 2001 From: alium Date: Sun, 7 Mar 2021 13:25:54 +0000 Subject: [PATCH 013/297] Translated using Weblate (Czech) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index c623a18c..59a5ed67 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -192,7 +192,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' - Playlist Next Video Interval: Interval dalšího seznamu videí + Playlist Next Video Interval: Interval pro další video na playlistu Privacy Settings: Privacy Settings: 'Nastavení soukromí' Remember History: 'Zapamatovat historii' @@ -653,7 +653,7 @@ Canceled next video autoplay: 'Automatické přehrávání dalšího videa bylo Yes: 'Ano' No: 'Ne' -Playing Next Video Interval: Přehrávání dalšího videa v žádném čase. Kliknutím zrušíte. +Playing Next Video Interval: Přehrávání dalšího videa bez prodlevy Kliknutím zrušíte. | Přehrávání dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte. | Přehrávání dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte. More: Více From 24fe4912d55617cebcea74ff657973414d981e02 Mon Sep 17 00:00:00 2001 From: Aryan L Date: Mon, 8 Mar 2021 10:41:31 +0000 Subject: [PATCH 014/297] Translated using Weblate (Hindi) Currently translated at 15.8% (71 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hi/ --- static/locales/hi.yaml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index f35c82f1..510154ca 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -90,15 +90,24 @@ Most Popular: 'सबसे ज़्यादा देखा हुआ' Playlists: 'प्लेलिस्टे (playlists)' User Playlists: Your Playlists: 'आपके प्लेलिस्टे' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: आपके + पास बचाए गए वीडियोए नहीं हैं। एक वीडियो के कोने पर सेव बटन पर क्लिक (click) करें, + यहां लिस्ट पर वही आएगा + Playlist Message: यह पृष्ठ पूरी तरह से काम करने वाली प्लेलिस्ट को प्रतिबिंबित नहीं + करता है। यह केवल उन वीडियो को सूचीबद्ध करता है जिन्हें आपने सहेजा है या पसंदीदा + है। जब काम समाप्त हो जाता है, तो वर्तमान में यहां सभी वीडियो 'पसंदीदा' प्लेलिस्ट + में स्थानांतरित हो जाएंगे। History: # On History Page - History: '' + History: 'इतिहास' Watch History: '' Your history list is currently empty.: '' Settings: # On Settings Page - Settings: '' - The app needs to restart for changes to take effect. Restart and apply change?: '' + Settings: 'स्थापना' + The app needs to restart for changes to take effect. Restart and apply change?: 'ऐप + को प्रभावी होने वाले परिवर्तनों के लिए पुनः आरंभ करने की आवश्यकता है। Restart + और परिवर्तन लागू करें?' General Settings: General Settings: '' Check for Updates: '' @@ -531,3 +540,4 @@ Canceled next video autoplay: '' Yes: '' No: '' +More: ज़्यादा From fc6630bd55c2e8fcbfcfe2d328f23a5a0a85781f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=98=E8=8F=98?= Date: Tue, 9 Mar 2021 12:46:34 +0000 Subject: [PATCH 015/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index b12a47de..f260d885 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -365,7 +365,7 @@ Channel: About: About: '關於' Channel Description: '頻道說明' - Featured Channels: '列出頻道' + Featured Channels: '推薦頻道' Added channel to your subscriptions: 已新增頻道至您的訂閱 Removed subscription from $ other channel(s): 從$個其他頻道移除訂閱 Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除 From 74deb11fc4a8cc814d326d968e2379df7b2f9ac8 Mon Sep 17 00:00:00 2001 From: Leonid Date: Tue, 9 Mar 2021 21:52:39 +0000 Subject: [PATCH 016/297] Translated using Weblate (Russian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index fc90bb10..19739547 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -186,6 +186,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Задержка перед автовоспроизведением Subscription Settings: Subscription Settings: 'Настройки подписки' Hide Videos on Watch: 'Скрыть видео после просмотра' @@ -290,7 +291,7 @@ Settings: Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео Hide Video Views: Скрыть просмотры видео Hide Active Subscriptions: Скрыть активные подписки - Hide Playlists: Спрятать плейлисты + Hide Playlists: Скрыть плейлисты The app needs to restart for changes to take effect. Restart and apply change?: Чтобы изменения вступили в силу, необходимо перезапустить приложение. Перезапустить и применить изменения? @@ -571,8 +572,8 @@ Loop is now disabled: 'Цикл теперь отключён' Loop is now enabled: 'Цикл теперь включён' Shuffle is now disabled: 'Перемешивание теперь отключено' Shuffle is now enabled: 'Перемешивание теперь включено' -Playing Next Video: 'Воспроизвести следующее видео' -Playing Previous Video: 'Воспроизвести предыдущее видео' +Playing Next Video: 'Воспроизведение следующего видео' +Playing Previous Video: 'Воспроизведение предыдущего видео' Playing next video in 5 seconds. Click to cancel: 'Воспроизведение следующего видео через 5 секунд. Нажмите, чтобы отменить.' Canceled next video autoplay: 'Отменено автовоспроизведение следующего видео' @@ -667,3 +668,7 @@ Tooltips: Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений страны More: Больше +Playing Next Video Interval: Воспроизведение следующего видео без задержки. Нажмите + для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите + для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите + для отмены. From 08f9364356a8e63a32c094fcf9a6974537d36246 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 10 Mar 2021 02:42:44 +0000 Subject: [PATCH 017/297] Translated using Weblate (Bulgarian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index ddaa2988..24d8ea43 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -30,10 +30,10 @@ Close: 'Затваряне' Back: 'Назад' Forward: 'Напред' -Version $ is now available! Click for more details: 'Версия $ е вече налична! Щракнете +Version $ is now available! Click for more details: 'Версия $ е вече налична! Кликнете за повече детайли' Download From Site: 'Сваляне от сайта' -A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Щракнете +A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Кликнете за преглед' # Search Bar @@ -90,7 +90,7 @@ Playlists: 'Плейлисти' User 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: Тази страница не отразява напълно работещи плейлисти. В него са изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист @@ -305,7 +305,7 @@ Settings: Ip: Ip Your Info: Вашата информация Test Proxy: Тестване на прокси - Clicking on Test Proxy will send a request to: Щракването върху "Тестване на прокси" + Clicking on Test Proxy will send a request to: Кликването върху "Тестване на прокси" ще изпрати заявка до Proxy Port Number: Номер на прокси порта Proxy Host: Прокси хост @@ -583,7 +583,7 @@ Share: Mini Player: 'Мини плейър' Comments: Comments: 'Коментари' - Click to View Comments: 'Щракнете, за да видите коментарите' + Click to View Comments: 'Кликнете, за да видите коментарите' Getting comment replies, please wait: 'Получаване на отговори на коментара, моля изчакайте' There are no more comments for this video: 'Към това видео няма повече коментари' @@ -603,8 +603,8 @@ Comments: Up Next: 'Следващ' # Toast Messages -Local API Error (Click to copy): 'Грешка в локалния интерфейс (щракнете за копиране)' -Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (щракнете за копиране)' +Local API Error (Click to copy): 'Грешка в локалния интерфейс (кликни за копиране)' +Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (кликнете за копиране)' Falling back to Invidious API: 'Връщане към Invidious интерфейса' Falling back to the local API: 'Връщане към локалния интерфейс' This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Видеото @@ -658,6 +658,6 @@ Tooltips: Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious сървър, към който да се свърже. More: Още -Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ. - | Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказl. - | Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ. +Playing Next Video Interval: Пускане на следващото видео веднага. Кликнете за отказ. + | Пускане на следващото видео след {nextVideoInterval} секунда. Кликнете за отказl. + | Пускане на следващото видео след {nextVideoInterval} секунди. Кликнете за отказ. From 16eada950b527c66d7ef427f138392bb6fff1d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=98=E8=8F=98?= Date: Wed, 10 Mar 2021 12:28:13 +0000 Subject: [PATCH 018/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index f260d885..cf43977b 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -422,7 +422,7 @@ Video: Minute: 分鐘 Published on: '發布於' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: '$ %前' + Publicationtemplate: '$ % 前' #& Videos Video has been removed from your history: 影片已從您的歷史紀錄中移除 Video has been marked as watched: 影片標記為已觀看 From cb180874c532a1afed3f9485360478effbd2923a Mon Sep 17 00:00:00 2001 From: Jun-Seong Lee Date: Wed, 10 Mar 2021 15:09:43 +0000 Subject: [PATCH 019/297] Translated using Weblate (Korean) Currently translated at 39.9% (179 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ko/ --- static/locales/ko.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/ko.yaml b/static/locales/ko.yaml index 7b7ead49..bd25407b 100644 --- a/static/locales/ko.yaml +++ b/static/locales/ko.yaml @@ -534,3 +534,4 @@ Canceled next video autoplay: '' Yes: '' No: '' +More: 더 보기 From 3521adb1a57354ac3ad095d8efe16a69cd5b4b0d Mon Sep 17 00:00:00 2001 From: Jun-Seong Lee Date: Wed, 10 Mar 2021 15:14:11 +0000 Subject: [PATCH 020/297] Translated using Weblate (Korean) Currently translated at 40.1% (180 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ko/ --- static/locales/ko.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/ko.yaml b/static/locales/ko.yaml index bd25407b..af0e3671 100644 --- a/static/locales/ko.yaml +++ b/static/locales/ko.yaml @@ -126,6 +126,7 @@ Settings: (기본설정은 https://invidious.snopyta.org)' Region for Trending: '트렌드 국가' #! List countries + View all Invidious instance information: Indivious 서버의 전체 목록 보기 Theme Settings: Theme Settings: '테마 설정' Match Top Bar with Main Color: '상단바를 메인컬러와 동기화' From d01e766e21a775a3affa8ab901014dde9fd1e0c2 Mon Sep 17 00:00:00 2001 From: Michalis Date: Wed, 10 Mar 2021 21:23:36 +0000 Subject: [PATCH 021/297] Translated using Weblate (Greek) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/el/ --- static/locales/el.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/static/locales/el.yaml b/static/locales/el.yaml index 5c767141..005ff3c8 100644 --- a/static/locales/el.yaml +++ b/static/locales/el.yaml @@ -190,6 +190,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Παύση μεταξύ Βίντεο στη λίστα αναπαραγωγής Privacy Settings: Privacy Settings: 'Ρυθμίσεις απορρήτου' Remember History: 'Διατήρηση ιστορικού' @@ -290,6 +291,7 @@ Settings: Hide Channel Subscribers: Απόκρυψη συνδρομών καναλιού Hide Video Views: Απόκρυψη προβολών βίντεο Hide Active Subscriptions: Απόκρυψη ενεργών συνδρομών + Hide Playlists: Απόκρυψη λιστών αναπαραγωγής The app needs to restart for changes to take effect. Restart and apply change?: Η εφαρμογή πρέπει να κάνει επανεκκίνηση για να εφαρμοστούν οι αλλαγές. Επανεκκίνηση και εφαρμογή αλλαγών; @@ -411,6 +413,7 @@ Profile: βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα κανάλια; Αυτό δε θα διαγράψει το κανάλι από οποιοδήποτε άλλο προφίλ.' #On Channel Page + Profile Filter: Φίλτρο προφίλ Channel: Subscriber: 'Συνδρομητής' Subscribers: 'Συνδρομητές' @@ -462,7 +465,7 @@ Video: View: 'Προβολή' Views: 'Προβολές' Loop Playlist: 'Επανάληψη λίστας αναπαραγωγής' - Shuffle Playlist: 'Τυχαία αναπαραγωγή' + Shuffle Playlist: 'Τυχαία σειρά στη λίστα αναπαραγωγής' Reverse Playlist: 'Αντιστροφή της λίστας αναπαραγωγής' Play Next Video: 'Αναπαραγωγή επόμενου βίντεο' Play Previous Video: 'Αναπαραγωγή προηγούμενου βίντεο' @@ -677,3 +680,8 @@ Tooltips: Invidious Instance: Το στιγμιότυπο Invidious στο οποίο το FreeTube θα συνδεθεί για κλήσεις διεπαφής. Καθαρίστε το παρόν στιγμιότυπο για να δείτε μια λίστα δημόσιων στιγμιότυπων προς επιλογή +Playing Next Video Interval: Αναπαραγωγή επόμενου βίντεο άμεσα. Κάντε κλικ για ακύρωση. + | Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτο. Κάντε κλικ για + ακύρωση. | Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτα. Κάντε + κλικ για ακύρωση. +More: Περισσότερα From dfc45ee9a68619c2659a0014bbe6d2383b7bcc60 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 10 Mar 2021 21:01:21 -0500 Subject: [PATCH 022/297] Fix: Store proper windows bounds when maximized --- src/main/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index 2bc48625..1ff88842 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -304,7 +304,7 @@ function createWindow (useProxy = false, proxyUrl = '') { ipcMain.on('setBounds', (_e, data) => { const value = { - ...mainWindow.getBounds(), + ...mainWindow.getNormalBounds(), maximized: mainWindow.isMaximized() } From f7da2d94176c69e1dfd2c55475bf2bc76084c931 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 11 Mar 2021 17:03:59 +0100 Subject: [PATCH 023/297] Enabled Norweguan Bokmal and ukrainian as languages --- src/renderer/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/main.js b/src/renderer/main.js index 478f3121..9513d603 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -27,7 +27,7 @@ Vue.component('FontAwesomeIcon', FontAwesomeIcon) Vue.use(VueI18n) // List of locales approved for use -const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'vi', 'zh-CN', 'zh-TW'] +const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nb_NO', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW'] const messages = {} /* eslint-disable-next-line */ const fileLocation = isDev ? 'static/locales/' : `${__dirname}/static/locales/` From e0a3ef92c6c2759b05a3afea6a00f37162701877 Mon Sep 17 00:00:00 2001 From: Preston Date: Fri, 12 Mar 2021 16:09:08 -0500 Subject: [PATCH 024/297] Test custom solution for quality change --- .../ft-video-player/ft-video-player.js | 121 +++++++++++++++--- src/renderer/videoJS.css | 40 ++++++ 2 files changed, 144 insertions(+), 17 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 4009c081..cc57f376 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -73,6 +73,7 @@ export default Vue.extend({ useDash: false, useHls: false, selectedDefaultQuality: '', + selectedQuality: '', maxFramerate: 0, activeSourceList: [], mouseTimeout: null, @@ -198,7 +199,8 @@ export default Vue.extend({ vhs: { limitRenditionByPlayerDimensions: false, smoothQualityChange: false, - allowSeeksWithinUnsafeLiveWindow: true + allowSeeksWithinUnsafeLiveWindow: true, + handlePartialData: true } } }) @@ -214,14 +216,12 @@ export default Vue.extend({ } if (this.useDash) { - this.dataSetup.plugins.httpSourceSelector = { - default: 'auto' - } + // this.dataSetup.plugins.httpSourceSelector = { + // default: 'auto' + // } - this.player.httpSourceSelector() - setTimeout(() => { - this.determineDefaultQualityDash() - }, 400) + // this.player.httpSourceSelector() + this.createDashQualitySelector(this.player.qualityLevels()) } if (this.autoplayVideos) { @@ -417,7 +417,7 @@ export default Vue.extend({ determineDefaultQualityDash: function () { if (this.defaultQuality === 'auto') { - return + this.setDashQualityLevel('auto') } this.player.qualityLevels().levels_.sort((a, b) => { @@ -433,27 +433,62 @@ export default Vue.extend({ } if (this.defaultQuality === quality) { - ql.enabled = true + this.setDashQualityLevel(height) } else if (upperLevel !== null) { const upperHeight = upperLevel.height const upperWidth = upperLevel.width const upperQuality = upperWidth < upperHeight ? upperWidth : upperHeight if (this.defaultQuality >= quality && this.defaultQuality < upperQuality) { - ql.enabled = true - } else { - ql.enabled = false + this.setDashQualityLevel(height) } } else if (index === 0 && quality > this.defaultQuality) { - ql.enabled = true + this.setDashQualityLevel(height) } else if (index === (arr.length - 1) && quality < this.defaultQuality) { - ql.enabled = true - } else { - ql.enabled = false + this.setDashQualityLevel(height) } }) }, + setDashQualityLevel: function (qualityLevel) { + if (this.selectedQuality === qualityLevel) { + return + } + this.player.qualityLevels().levels_.sort((a, b) => { + return a.height - b.height + }).forEach((ql, index, arr) => { + if (qualityLevel === 'auto' || ql.height === qualityLevel) { + ql.enabled = true + ql.enabled_(true) + } else { + ql.enabled = false + ql.enabled_(false) + } + }) + + const selectedQuality = qualityLevel === 'auto' ? 'auto' : qualityLevel + 'p' + + const qualityElement = document.getElementById('vjs-current-quality') + qualityElement.innerText = selectedQuality + this.selectedQuality = qualityLevel + + const qualityItems = $('.quality-item').get() + + $('.quality-item').removeClass('quality-selected') + + qualityItems.forEach((item) => { + const qualityText = $(item).find('.vjs-menu-item-text').get(0) + if (qualityText.innerText === selectedQuality) { + $(item).addClass('quality-selected') + } + }) + + // const currentTime = this.player.currentTime() + + // this.player.currentTime(0) + // this.player.currentTime(currentTime) + }, + enableDashFormat: function () { if (this.dashSrc === null) { console.log('No dash format available.') @@ -629,6 +664,58 @@ export default Vue.extend({ videojs.registerComponent('fullWindowButton', fullWindowButton) }, + createDashQualitySelector: function (levels) { + const v = this + if (levels.levels_.length === 0) { + setTimeout(() => { + this.createDashQualitySelector(this.player.qualityLevels()) + }, 200) + return + } + const VjsButton = videojs.getComponent('Button') + const dashQualitySelector = videojs.extend(VjsButton, { + constructor: function(player, options) { + VjsButton.call(this, player, options) + }, + handleClick: function(event) { + const selectedQuality = event.target.innerText + const quality = selectedQuality === 'auto' ? 'auto' : parseInt(selectedQuality.replace('p', '')) + v.setDashQualityLevel(quality) + // console.log(this.player().qualityLevels()) + }, + createControlTextEl: function (button) { + const beginningHtml = `
+ 1080p +
+
+
' + + let qualityHtml = `
  • + Auto + +
  • ` + + levels.levels_.sort((a, b) => { + return b.height - a.height + }).forEach((quality) => { + qualityHtml = qualityHtml + `
  • + ${quality.height}p + +
  • ` + }) + return $(button).html( + $(beginningHtml + qualityHtml + endingHtml).attr( + 'title', + 'Select Quality' + )) + } + }) + videojs.registerComponent('dashQualitySelector', dashQualitySelector) + this.player.controlBar.addChild('dashQualitySelector', {}, this.player.controlBar.children_.length - 1) + this.determineDefaultQualityDash() + }, + toggleFullWindow: function() { if (!this.player.isFullscreen_) { if (this.player.isFullWindow) { diff --git a/src/renderer/videoJS.css b/src/renderer/videoJS.css index 767006db..3203ae64 100644 --- a/src/renderer/videoJS.css +++ b/src/renderer/videoJS.css @@ -643,6 +643,46 @@ body.vjs-full-window { display: none; } +.vjs-quality-level-value { + width: 100%; + height: 100%; +} + +.vjs-quality-level-value span { + line-height: 40px; +} + +.vjs-quality-level-value:hover + .vjs-quality-level-menu { + display: block; +} + +.vjs-quality-level-menu { + display: none; + position: absolute; + bottom: 30px; + left: -8px; + z-index: 5; + background-color: #151b17; + width: 50px; +} + +.vjs-quality-level-menu:hover { + display: block; +} + +.vjs-quality-level-menu .vjs-menu-item { + padding: 5px; +} + +.quality-selected { + background-color: var(--primary-color); + color: var(--text-with-main-color); +} + +.quality-selected:hover { + background-color: var(--primary-color-hover) !important; +} + .vjs-menu .vjs-menu-content { display: block; padding: 0; From da89e5bd56a266a7e37196a3f0f25575c12cc824 Mon Sep 17 00:00:00 2001 From: VenusGirl Date: Sun, 14 Mar 2021 00:05:47 +0000 Subject: [PATCH 025/297] Translated using Weblate (Korean) Currently translated at 62.5% (280 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ko/ --- static/locales/ko.yaml | 177 ++++++++++++++++++++++++++--------------- 1 file changed, 112 insertions(+), 65 deletions(-) diff --git a/static/locales/ko.yaml b/static/locales/ko.yaml index af0e3671..c0b01508 100644 --- a/static/locales/ko.yaml +++ b/static/locales/ko.yaml @@ -186,6 +186,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: 재생 목록 다음 비디오 간격 Privacy Settings: Privacy Settings: '개인정보 설정' Remember History: '기록 저장하기' @@ -214,36 +215,40 @@ Settings: Hide Trending Videos: '현재 트렌딩 영상 숨기기' Hide Popular Videos: '인기 영상 숨기기' Hide Live Chat: '실시간 댓글 숨기기' + Hide Playlists: 재생 목록 숨기기 + Hide Active Subscriptions: 활성 구독 숨기기 Data Settings: Data Settings: '데이터 설정' - Select Import Type: '구독 및 재생 목록 가져오기 형식 고르기' - Select Export Type: '구독 및 재생 목록 내보내기 형식 고르기' + Select Import Type: '가져오기 유형 선택' + Select Export Type: '내보내기 유형 선택' Import Subscriptions: '구독 목록 가져오기' - Import FreeTube: '구독 목록 가져오기: 형식 Freetube' - Import YouTube: '구독 목록 가져오기 형식: 유투브' - Import NewPipe: '구독 목록 가져오기 형식: NewPipe' - Check for Legacy Subscriptions: '' + Import FreeTube: 'FreeTube 가져오기' + Import YouTube: 'YouTube 가져오기' + Import NewPipe: 'NewPipe 가져오기' + Check for Legacy Subscriptions: '레거시 구독 확인' Export Subscriptions: '구독 목록 내보내기' - Export FreeTube: '구독 목록 내보내기 형식: FreeTube' - Export YouTube: '구독 목록 내보내기 형식: 유투브' - Export NewPipe: '구독 목록 내보내기 형식: NewPipe' + Export FreeTube: 'FreeTube 내보내기' + Export YouTube: 'YouTube 내보내기' + Export NewPipe: 'NewPipe 내보내기' Import History: '재생 기록 가져오기' Export History: '재생 기록 내보내기' - Profile object has insufficient data, skipping item: '' - All subscriptions and profiles have been successfully imported: '' - All subscriptions have been successfully imported: '' - One or more subscriptions were unable to be imported: '' - Invalid subscriptions file: '' - This might take a while, please wait: '' - Invalid history file: '' - Subscriptions have been successfully exported: '' - History object has insufficient data, skipping item: '' - All watched history has been successfully imported: '' - All watched history has been successfully exported: '' - Unable to read file: '' - Unable to write file: '' - Unknown data key: '' - How do I import my subscriptions?: '' + Profile object has insufficient data, skipping item: '프로필 개체에 데이터가 부족하여 항목을 건너뜁니다' + All subscriptions and profiles have been successfully imported: '모든 구독 및 프로필을 + 성공적으로 가져왔습니다' + All subscriptions have been successfully imported: '모든 구독을 성공적으로 가져왔습니다' + One or more subscriptions were unable to be imported: '하나 이상의 구독을 가져올 수 없습니다' + Invalid subscriptions file: '잘못된 구독 파일입니다' + This might take a while, please wait: '시간이 좀 걸릴 수 있습니다. 잠시 기다려 주십시오' + Invalid history file: '잘못된 기록 파일입니다' + Subscriptions have been successfully exported: '구독을 성공적으로 내보냈습니다' + History object has insufficient data, skipping item: '기록 개체에 데이터가 부족하여 항목을 건너뜁니다' + All watched history has been successfully imported: '시청한 모든 기록을 성공적으로 가져왔습니다' + All watched history has been successfully exported: '시청한 모든 기록이 성공적으로 내보내졌습니다' + Unable to read file: '파일을 읽을 수 없습니다' + Unable to write file: '파일을 쓸 수 없습니다' + Unknown data key: '알 수 없는 데이터 키입니다' + How do I import my subscriptions?: '구독을 가져오려면 어떻게 해야 합니까?' + Manage Subscriptions: 구독 관리 Advanced Settings: Advanced Settings: '' Enable Debug Mode (Prints data to the console): '' @@ -266,9 +271,24 @@ Settings: #& Yes #& No + Proxy Settings: + Error getting network information. Is your proxy configured properly?: 네트워크 정보를 + 가져오는 중 오류가 발생했습니다. 프록시가 올바르게 구성되어 있습니까? + City: 도시 + Region: 지역 + Country: 국가 + Ip: Ip + Your Info: 사용자 정보 + Test Proxy: 프록시 테스트 + Clicking on Test Proxy will send a request to: 프록시 테스트를 클릭하면 다음 주소로 요청이 전송됩니다 + Proxy Port Number: 프록시 포트 번호 + Proxy Host: 프록시 호스트 + Proxy Protocol: 프록시 프로토콜 + Enable Tor / Proxy: Tor / Proxy 사용 + Proxy Settings: 프록시 설정 About: #On About page - About: '' + About: '정보' #& About 'This software is FOSS and released under the GNU Affero General Public License v3.0.': '' @@ -288,51 +308,78 @@ About: Latest FreeTube News: '' + Donate: 기부 + these people and projects: 이 사람들과 프로젝트 + FreeTube is made possible by: FreeTube는 가능합니다 + Credits: 제작 + Translate: 번역 + room rules: 방 규정 + Please read the: 읽어주세요 + Chat on Matrix: 매트릭스 채팅 + Mastodon: Mastodon + Email: 이메일 + Blog: 블로그 + Website: 웹사이트 + Please check for duplicates before posting: 게시하기 전에 중복 항목을 확인하십시오 + GitHub issues: GitHub 이슈 + Report a problem: 문제 보고 + FAQ: FAQ + FreeTube Wiki: FreeTube Wiki + Help: 도움말 + GitHub releases: GitHub 릴리스 + Downloads / Changelog: 다운로드 / 변경 로그 + View License: 라이센스 보기 + Licensed under the AGPLv3: AGPLv3에 따라 라이센스가 부여됨 + Source code: 소스 코드 + Beta: 베타 Profile: - Profile Select: '' - All Channels: '' - Profile Manager: '' - Create New Profile: '' - Edit Profile: '' - Color Picker: '' - Custom Color: '' - Profile Preview: '' - Create Profile: '' - Update Profile: '' - Make Default Profile: '' - Delete Profile: '' - Are you sure you want to delete this profile?: '' - All subscriptions will also be deleted.: '' - Profile could not be found: '' - Your profile name cannot be empty: '' - Profile has been created: '' - Profile has been updated: '' - Your default profile has been set to $: '' - Removed $ from your profiles: '' - Your default profile has been changed to your primary profile: '' - $ is now the active profile: '' - Subscription List: '' - Other Channels: '' - $ selected: '' - Select All: '' - Select None: '' - Delete Selected: '' - Add Selected To Profile: '' - No channel(s) have been selected: '' + Profile Select: '프로필 선택' + All Channels: '모든 채널' + Profile Manager: '프로필 관리자' + Create New Profile: '새 프로파일 작성' + Edit Profile: '프로필 편집' + Color Picker: '색상 선택기' + Custom Color: '사용자 지정 색' + Profile Preview: '프로필 미리보기' + Create Profile: '프로필 작성' + Update Profile: '프로필 업데이트' + Make Default Profile: '기본 프로파일 만들기' + Delete Profile: '프로필 삭제' + Are you sure you want to delete this profile?: '이 프로필을 삭제하시겠습니까?' + All subscriptions will also be deleted.: '모든 구독도 삭제됩니다.' + Profile could not be found: '프로필을 찾을 수 없습니다' + Your profile name cannot be empty: '프로필 이름은 비워 둘 수 없습니다' + Profile has been created: '프로필이 생성되었습니다' + Profile has been updated: '프로필이 업데이트되었습니다' + Your default profile has been set to $: '기본 프로필이 $로 설정되었습니다' + Removed $ from your profiles: '프로필에서 $가 제거되었습니다' + Your default profile has been changed to your primary profile: '기본값 프로필이 기본 프로필로 + 변경되었습니다' + $ is now the active profile: '$가 현재 활성 프로필입니다' + Subscription List: '구독 목록' + Other Channels: '기타 채널' + $ selected: '$선택되었습니다' + Select All: '모두 선택' + Select None: '선택 안 함' + Delete Selected: '선택한 항목 삭제' + Add Selected To Profile: '프로필에 선택한 항목 추가' + No channel(s) have been selected: '선택된 채널이 없습니다' ? This is your primary profile. Are you sure you want to delete the selected channels? The same channels will be deleted in any profile they are found in. - : '' - Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' + : '이것은 귀하의 기본 프로필입니다. 선택한 채널을 삭제하시겠습니까? 동일한 채널이 발견되는 모든 프로필에서 삭제됩니다.' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '선택한 + 채널을 삭제하시겠습니까? 다른 프로파일에서는 채널이 삭제되지 않습니다.' #On Channel Page + Profile Filter: 프로필 필터 Channel: - Subscriber: '' - Subscribers: '' - Subscribe: '' - Unsubscribe: '' - Channel has been removed from your subscriptions: '' - Removed subscription from $ other channel(s): '' - Added channel to your subscriptions: '' - Search Channel: '' + Subscriber: '구독자' + Subscribers: '구독자' + Subscribe: '구독' + Unsubscribe: '구독 취소' + Channel has been removed from your subscriptions: '채널이 구독에서 제거되었습니다' + Removed subscription from $ other channel(s): '$ 다른 채널에서 구독을 제거했습니다' + Added channel to your subscriptions: '구독에 채널을 추가했습니다' + Search Channel: '채널 검색' Your search results have returned 0 results: '' Sort By: '' Videos: From aab30e3fcdcdced8c2d41b806883562c0953b2fd Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Sun, 14 Mar 2021 18:41:17 +0000 Subject: [PATCH 026/297] Set a fixed width for side-bar icons --- src/renderer/components/side-nav/side-nav.vue | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/renderer/components/side-nav/side-nav.vue b/src/renderer/components/side-nav/side-nav.vue index 057099d9..c016b231 100644 --- a/src/renderer/components/side-nav/side-nav.vue +++ b/src/renderer/components/side-nav/side-nav.vue @@ -12,6 +12,7 @@
    Date: Wed, 17 Mar 2021 01:30:35 +0000 Subject: [PATCH 033/297] Remove unnecessary packages and snippets of code --- package-lock.json | 5 ----- package.json | 1 - .../components/ft-video-player/ft-video-player.js | 10 ---------- .../components/ft-video-player/ft-video-player.vue | 9 --------- src/renderer/views/Watch/Watch.js | 1 - 5 files changed, 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67ce048c..5800ad72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18399,11 +18399,6 @@ } } }, - "yt-xml2vtt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/yt-xml2vtt/-/yt-xml2vtt-1.2.0.tgz", - "integrity": "sha512-4ZzqHIUfdPFa0Xb+8M3vsbokXooOhQuFuXa8bw4CJ5V0xWjRA/CPlZ3u0VTYoce4sUmMgoOVN7Xcj8NpUNujXA==" - }, "ytdl-core": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.5.0.tgz", diff --git a/package.json b/package.json index 807f023c..4f146d1f 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "yt-comment-scraper": "^3.0.2", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^1.1.1", - "yt-xml2vtt": "^1.2.0", "ytdl-core": "^4.5.0", "ytpl": "^2.0.5", "ytsr": "^3.3.1" diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 46716955..c50ea7b1 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -145,16 +145,6 @@ export default Vue.extend({ return this.$store.getters.getAutoplayVideos } }, - watch: { - sourceList: function () { - this.determineFormatType() - }, - captionList: function () { - this.player.caption({ - data: this.captionList - }) - } - }, mounted: function () { this.id = this._uid diff --git a/src/renderer/components/ft-video-player/ft-video-player.vue b/src/renderer/components/ft-video-player/ft-video-player.vue index 06674ac6..60c63a88 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.vue +++ b/src/renderer/components/ft-video-player/ft-video-player.vue @@ -18,15 +18,6 @@ :label="source.qualityLabel" :selected="source.qualityLabel === selectedDefaultQuality" > -
    diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index 979ffa97..b7fd1bb0 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -1,6 +1,5 @@ import Vue from 'vue' import { mapActions } from 'vuex' -import xml2vtt from 'yt-xml2vtt' import $ from 'jquery' import fs from 'fs' import ytDashGen from 'yt-dash-manifest-generator' From d2ee285e45cad683d32ded6edc46fffbe00e282b Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 17 Mar 2021 23:15:36 +0100 Subject: [PATCH 034/297] Added fix for wrongly applied publishedText template --- src/renderer/store/modules/ytdl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js index 6ce2edd6..5d6bceb9 100644 --- a/src/renderer/store/modules/ytdl.js +++ b/src/renderer/store/modules/ytdl.js @@ -347,7 +347,7 @@ const actions = { } ytdl.getInfo(videoId, { - lang: localStorage.getItem('locale'), + lang: 'en-US', requestOptions: { agent } }).then((result) => { resolve(result) From 6743bd21d12f6dae8f0f43fcfabad90dcba5ba08 Mon Sep 17 00:00:00 2001 From: Luca Hohmann Date: Thu, 18 Mar 2021 12:09:52 +0000 Subject: [PATCH 035/297] Translated using Weblate (German) Currently translated at 99.7% (447 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index fdab66af..85b1e804 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -189,6 +189,7 @@ Settings: 1440p: 1440p 4k: 4k 8k: 8k + Playlist Next Video Interval: Zeit zwischen automatischer Playlist-Videowiedergabe Subscription Settings: Subscription Settings: Abonnement-Einstellungen Hide Videos on Watch: Verstecke Videos bei Wiedergabe @@ -295,6 +296,7 @@ Settings: Hide Video Views: Video-Aufrufe verbergen Distraction Free Settings: Einstellungen für ablenkungsfreien Modus Hide Active Subscriptions: Aktive Abonnements ausblenden + Hide Playlists: Playlists ausblenden The app needs to restart for changes to take effect. Restart and apply change?: Um die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und Änderungen aktivieren? @@ -649,6 +651,7 @@ Profile: Other Channels: Andere Kanäle Subscription List: Abonnement-Liste Profile Select: Profilauswahl + Profile Filter: Profilfilter The playlist has been reversed: Die Wiedergabeliste wurde umgedreht A new blog is now available, $. Click to view more: Ein neuer Blogeintrag ist verfügbar, $. Um ihn zu öffnen klicken @@ -687,3 +690,8 @@ Tooltips: Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund von Landesbeschränkungen. +Playing Next Video Interval: Nächstes Video wird sofort abgespielt. Zum Abbrechen + klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen + klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen + klicken. +More: Weiteres From 02d192ae2c2ac4a6365947b241a57b8c4946b60a Mon Sep 17 00:00:00 2001 From: Joe Bill Date: Thu, 18 Mar 2021 16:49:08 +0100 Subject: [PATCH 036/297] Added translation using Weblate (Serbian) --- static/locales/sr.yaml | 535 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 static/locales/sr.yaml diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml new file mode 100644 index 00000000..c25b63a3 --- /dev/null +++ b/static/locales/sr.yaml @@ -0,0 +1,535 @@ +# Put the name of your locale in the same language +Locale Name: '' +FreeTube: '' +# Currently on Subscriptions, Playlists, and History +'This part of the app is not ready yet. Come back later when progress has been made.': > + +# Webkit Menu Bar +File: '' +Quit: '' +Edit: '' +Undo: '' +Redo: '' +Cut: '' +Copy: '' +Paste: '' +Delete: '' +Select all: '' +Reload: '' +Force Reload: '' +Toggle Developer Tools: '' +Actual size: '' +Zoom in: '' +Zoom out: '' +Toggle fullscreen: '' +Window: '' +Minimize: '' +Close: '' +Back: '' +Forward: '' + +Version $ is now available! Click for more details: '' +Download From Site: '' +A new blog is now available, $. Click to view more: '' + +# Search Bar +Search / Go to URL: '' + # In Filter Button +Search Filters: + Search Filters: '' + Sort By: + Sort By: '' + Most Relevant: '' + Rating: '' + Upload Date: '' + View Count: '' + Time: + Time: '' + Any Time: '' + Last Hour: '' + Today: '' + This Week: '' + This Month: '' + This Year: '' + Type: + Type: '' + All Types: '' + Videos: '' + Channels: '' + #& Playlists + Duration: + Duration: '' + All Durations: '' + Short (< 4 minutes): '' + Long (> 20 minutes): '' + # On Search Page + Search Results: '' + Fetching results. Please wait: '' + Fetch more results: '' + There are no more results for this search: '' +# Sidebar +Subscriptions: + # On Subscriptions Page + Subscriptions: '' + Latest Subscriptions: '' + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' + 'Getting Subscriptions. Please wait.': '' + Refresh Subscriptions: '' + Load More Videos: '' +More: '' +Trending: '' +Most Popular: '' +Playlists: '' +User Playlists: + Your Playlists: '' + Playlist Message: '' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' +History: + # On History Page + History: '' + Watch History: '' + Your history list is currently empty.: '' +Settings: + # On Settings Page + Settings: '' + The app needs to restart for changes to take effect. Restart and apply change?: '' + General Settings: + General Settings: '' + Check for Updates: '' + Check for Latest Blog Posts: '' + Fallback to Non-Preferred Backend on Failure: '' + Enable Search Suggestions: '' + Default Landing Page: '' + Locale Preference: '' + Preferred API Backend: + Preferred API Backend: '' + Local API: '' + Invidious API: '' + Video View Type: + Video View Type: '' + Grid: '' + List: '' + Thumbnail Preference: + Thumbnail Preference: '' + Default: '' + Beginning: '' + Middle: '' + End: '' + 'Invidious Instance (Default is https://invidious.snopyta.org)': '' + View all Invidious instance information: '' + Region for Trending: '' + #! List countries + Theme Settings: + Theme Settings: '' + Match Top Bar with Main Color: '' + Expand Side Bar by Default: '' + Disable Smooth Scrolling: '' + UI Scale: '' + Base Theme: + Base Theme: '' + Black: '' + Dark: '' + Light: '' + Main Color Theme: + Main Color Theme: '' + Red: '' + Pink: '' + Purple: '' + Deep Purple: '' + Indigo: '' + Blue: '' + Light Blue: '' + Cyan: '' + Teal: '' + Green: '' + Light Green: '' + Lime: '' + Yellow: '' + Amber: '' + Orange: '' + Deep Orange: '' + Secondary Color Theme: '' + #* Main Color Theme + Player Settings: + Player Settings: '' + Force Local Backend for Legacy Formats: '' + Play Next Video: '' + Turn on Subtitles by Default: '' + Autoplay Videos: '' + Proxy Videos Through Invidious: '' + Autoplay Playlists: '' + Enable Theatre Mode by Default: '' + Playlist Next Video Interval: '' + Default Volume: '' + Default Playback Rate: '' + Default Video Format: + Default Video Format: '' + Dash Formats: '' + Legacy Formats: '' + Audio Formats: '' + Default Quality: + Default Quality: '' + Auto: '' + 144p: '' + 240p: '' + 360p: '' + 480p: '' + 720p: '' + 1080p: '' + 1440p: '' + 4k: '' + 8k: '' + Privacy Settings: + Privacy Settings: '' + Remember History: '' + Save Watched Progress: '' + Clear Search Cache: '' + Are you sure you want to clear out your search cache?: '' + Search cache has been cleared: '' + Remove Watch History: '' + Are you sure you want to remove your entire watch history?: '' + Watch history has been cleared: '' + Remove All Subscriptions / Profiles: '' + Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' + Subscription Settings: + Subscription Settings: '' + Hide Videos on Watch: '' + Fetch Feeds from RSS: '' + Manage Subscriptions: '' + Distraction Free Settings: + Distraction Free Settings: '' + Hide Video Views: '' + Hide Video Likes And Dislikes: '' + Hide Channel Subscribers: '' + Hide Comment Likes: '' + Hide Recommended Videos: '' + Hide Trending Videos: '' + Hide Popular Videos: '' + Hide Playlists: '' + Hide Live Chat: '' + Hide Active Subscriptions: '' + Data Settings: + Data Settings: '' + Select Import Type: '' + Select Export Type: '' + Import Subscriptions: '' + Import FreeTube: '' + Import YouTube: '' + Import NewPipe: '' + Check for Legacy Subscriptions: '' + Export Subscriptions: '' + Export FreeTube: '' + Export YouTube: '' + Export NewPipe: '' + Import History: '' + Export History: '' + Profile object has insufficient data, skipping item: '' + All subscriptions and profiles have been successfully imported: '' + All subscriptions have been successfully imported: '' + One or more subscriptions were unable to be imported: '' + Invalid subscriptions file: '' + This might take a while, please wait: '' + Invalid history file: '' + Subscriptions have been successfully exported: '' + History object has insufficient data, skipping item: '' + All watched history has been successfully imported: '' + All watched history has been successfully exported: '' + Unable to read file: '' + Unable to write file: '' + Unknown data key: '' + How do I import my subscriptions?: '' + Manage Subscriptions: '' + Proxy Settings: + Proxy Settings: '' + Enable Tor / Proxy: '' + Proxy Protocol: '' + Proxy Host: '' + Proxy Port Number: '' + Clicking on Test Proxy will send a request to: '' + Test Proxy: '' + Your Info: '' + Ip: '' + Country: '' + Region: '' + City: '' + Error getting network information. Is your proxy configured properly?: '' +About: + #On About page + About: '' + Beta: '' + Source code: '' + Licensed under the AGPLv3: '' + View License: '' + Downloads / Changelog: '' + GitHub releases: '' + Help: '' + FreeTube Wiki: '' + FAQ: '' + Report a problem: '' + GitHub issues: '' + Please check for duplicates before posting: '' + Website: '' + Blog: '' + Email: '' + Mastodon: '' + Chat on Matrix: '' + Please read the: '' + room rules: '' + Translate: '' + Credits: '' + FreeTube is made possible by: '' + these people and projects: '' + Donate: '' + +Profile: + Profile Select: '' + Profile Filter: '' + All Channels: '' + Profile Manager: '' + Create New Profile: '' + Edit Profile: '' + Color Picker: '' + Custom Color: '' + Profile Preview: '' + Create Profile: '' + Update Profile: '' + Make Default Profile: '' + Delete Profile: '' + Are you sure you want to delete this profile?: '' + All subscriptions will also be deleted.: '' + Profile could not be found: '' + Your profile name cannot be empty: '' + Profile has been created: '' + Profile has been updated: '' + Your default profile has been set to $: '' + Removed $ from your profiles: '' + Your default profile has been changed to your primary profile: '' + $ is now the active profile: '' + Subscription List: '' + Other Channels: '' + $ selected: '' + Select All: '' + Select None: '' + Delete Selected: '' + Add Selected To Profile: '' + No channel(s) have been selected: '' + ? This is your primary profile. Are you sure you want to delete the selected channels? The + same channels will be deleted in any profile they are found in. + : '' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' +#On Channel Page +Channel: + Subscriber: '' + Subscribers: '' + Subscribe: '' + Unsubscribe: '' + Channel has been removed from your subscriptions: '' + Removed subscription from $ other channel(s): '' + Added channel to your subscriptions: '' + Search Channel: '' + Your search results have returned 0 results: '' + Sort By: '' + Videos: + Videos: '' + This channel does not currently have any videos: '' + Sort Types: + Newest: '' + Oldest: '' + Most Popular: '' + Playlists: + Playlists: '' + This channel does not currently have any playlists: '' + Sort Types: + Last Video Added: '' + Newest: '' + Oldest: '' + About: + About: '' + Channel Description: '' + Featured Channels: '' +Video: + Mark As Watched: '' + Remove From History: '' + Video has been marked as watched: '' + Video has been removed from your history: '' + Save Video: '' + Video has been saved: '' + Video has been removed from your saved list: '' + Open in YouTube: '' + Copy YouTube Link: '' + Open YouTube Embedded Player: '' + Copy YouTube Embedded Player Link: '' + Open in Invidious: '' + Copy Invidious Link: '' + Open Channel in YouTube: '' + Copy YouTube Channel Link: '' + Open Channel in Invidious: '' + Copy Invidious Channel Link: '' + View: '' + Views: '' + Loop Playlist: '' + Shuffle Playlist: '' + Reverse Playlist: '' + Play Next Video: '' + Play Previous Video: '' + # Context is "X People Watching" + Watching: '' + Watched: '' + Autoplay: '' + Starting soon, please refresh the page to check again: '' + # As in a Live Video + Live: '' + Live Now: '' + Live Chat: '' + Enable Live Chat: '' + Live Chat is currently not supported in this build.: '' + 'Chat is disabled or the Live Stream has ended.': '' + Live chat is enabled. Chat messages will appear here once sent.: '' + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' + Download Video: '' + video only: '' + audio only: '' + Audio: + Low: '' + Medium: '' + High: '' + Best: '' + Published: + Jan: '' + Feb: '' + Mar: '' + Apr: '' + May: '' + Jun: '' + Jul: '' + Aug: '' + Sep: '' + Oct: '' + Nov: '' + Dec: '' + Second: '' + Seconds: '' + Minute: '' + Minutes: '' + Hour: '' + Hours: '' + Day: '' + Days: '' + Week: '' + Weeks: '' + Month: '' + Months: '' + Year: '' + Years: '' + Ago: '' + Upcoming: '' + Published on: '' + Streamed on: '' + Started streaming on: '' + # $ is replaced with the number and % with the unit (days, hours, minutes...) + Publicationtemplate: '' +#& Videos +Videos: + #& Sort By + Sort By: + Newest: '' + Oldest: '' + #& Most Popular +#& Playlists +Playlist: + #& About + View Full Playlist: '' + Videos: '' + View: '' + Views: '' + Last Updated On: '' + Share Playlist: + Share Playlist: '' + Copy YouTube Link: '' + Open in YouTube: '' + Copy Invidious Link: '' + Open in Invidious: '' + +# On Video Watch Page +#* Published +#& Views +Toggle Theatre Mode: '' +Change Format: + Change Video Formats: '' + Use Dash Formats: '' + Use Legacy Formats: '' + Use Audio Formats: '' + Dash formats are not available for this video: '' + Audio formats are not available for this video: '' +Share: + Share Video: '' + Include Timestamp: '' + Copy Link: '' + Open Link: '' + Copy Embed: '' + Open Embed: '' + # On Click + Invidious URL copied to clipboard: '' + Invidious Embed URL copied to clipboard: '' + Invidious Channel URL copied to clipboard: '' + YouTube URL copied to clipboard: '' + YouTube Embed URL copied to clipboard: '' + YouTube Channel URL copied to clipboard: '' + +Mini Player: '' +Comments: + Comments: '' + Click to View Comments: '' + Getting comment replies, please wait: '' + There are no more comments for this video: '' + Show Comments: '' + Hide Comments: '' + Sort by: '' + Top comments: '' + Newest first: '' + # Context: View 10 Replies, View 1 Reply + View: '' + Hide: '' + Replies: '' + Reply: '' + There are no comments available for this video: '' + Load More Comments: '' + No more comments available: '' +Up Next: '' + +#Tooltips +Tooltips: + General Settings: + Preferred API Backend: '' + Fallback to Non-Preferred Backend on Failure: '' + Thumbnail Preference: '' + Invidious Instance: '' + Region for Trending: '' + Player Settings: + Force Local Backend for Legacy Formats: '' + Proxy Videos Through Invidious: '' + Default Video Format: '' + Subscription Settings: + Fetch Feeds from RSS: '' + +# Toast Messages +Local API Error (Click to copy): '' +Invidious API Error (Click to copy): '' +Falling back to Invidious API: '' +Falling back to the local API: '' +This video is unavailable because of missing formats. This can happen due to country unavailability.: '' +Subscriptions have not yet been implemented: '' +Loop is now disabled: '' +Loop is now enabled: '' +Shuffle is now disabled: '' +Shuffle is now enabled: '' +The playlist has been reversed: '' +Playing Next Video: '' +Playing Previous Video: '' +Playing Next Video Interval: '' +Canceled next video autoplay: '' +'The playlist has ended. Enable loop to continue playing': '' + +Yes: '' +No: '' From 9d6f6e78e778eb4e54b6a17347f9d4017d980080 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 18 Mar 2021 17:47:28 +0100 Subject: [PATCH 037/297] Reimplementation of goToChannel from PR 850 --- .../watch-video-comments/watch-video-comments.css | 2 ++ .../watch-video-comments/watch-video-comments.js | 7 +++++++ .../watch-video-comments/watch-video-comments.vue | 5 ++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.css b/src/renderer/components/watch-video-comments/watch-video-comments.css index 3e1fe750..f19ca320 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.css +++ b/src/renderer/components/watch-video-comments/watch-video-comments.css @@ -34,6 +34,7 @@ height: 60px; border-radius: 200px 200px 200px 200px; -webkit-border-radius: 200px 200px 200px 200px; + cursor: pointer; } .commentAuthor { @@ -41,6 +42,7 @@ font-size: 14px; margin-left: 68px; margin-top: 0px; + cursor: pointer; } .commentText { diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.js b/src/renderer/components/watch-video-comments/watch-video-comments.js index e31ae917..6a8bb9b5 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.js +++ b/src/renderer/components/watch-video-comments/watch-video-comments.js @@ -227,6 +227,7 @@ export default Vue.extend({ parseLocalCommentData: function (response, index = null) { const commentData = response.comments.map((comment) => { + comment.authorLink = comment.authorId comment.showReplies = false comment.authorThumb = comment.authorThumb[0].url comment.replies = [] @@ -273,6 +274,7 @@ export default Vue.extend({ this.invidiousAPICall(payload).then((response) => { const commentData = response.comments.map((comment) => { comment.showReplies = false + comment.authorLink = comment.authorId comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`) if (this.hideCommentLikes) { comment.likes = null @@ -338,6 +340,7 @@ export default Vue.extend({ this.$store.dispatch('invidiousAPICall', payload).then((response) => { const commentData = response.comments.map((comment) => { comment.showReplies = false + comment.authorLink = comment.authorId comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`) if (this.hideCommentLikes) { comment.likes = null @@ -372,6 +375,10 @@ export default Vue.extend({ }) }, + goToChannel: function (channelId) { + this.$router.push({ path: `/channel/${channelId}` }) + }, + ...mapActions([ 'showToast', 'toLocalePublicationString', diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index 4b32e51c..20b96740 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -45,8 +45,11 @@ +

    -

    {{ comment.author }} {{ comment.time }} From ca4fc9974fa6bbe6e216bde557d848c86d7bfce4 Mon Sep 17 00:00:00 2001 From: Joe Bill Date: Thu, 18 Mar 2021 17:46:19 +0000 Subject: [PATCH 038/297] Translated using Weblate (Serbian) Currently translated at 18.0% (81 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sr/ --- static/locales/sr.yaml | 173 ++++++++++++++++++++++------------------- 1 file changed, 92 insertions(+), 81 deletions(-) diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index c25b63a3..df99a837 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -1,81 +1,87 @@ # Put the name of your locale in the same language -Locale Name: '' -FreeTube: '' +Locale Name: 'Француски' +FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History -'This part of the app is not ready yet. Come back later when progress has been made.': > +'This part of the app is not ready yet. Come back later when progress has been made.': >- + Овај део апликације још није спреман. Вратите се касније када буде постигнут напредак. # Webkit Menu Bar -File: '' -Quit: '' -Edit: '' -Undo: '' +File: 'Датотека' +Quit: 'Затвори' +Edit: 'Промени' +Undo: 'Поништи' Redo: '' -Cut: '' -Copy: '' -Paste: '' -Delete: '' -Select all: '' -Reload: '' -Force Reload: '' -Toggle Developer Tools: '' -Actual size: '' -Zoom in: '' -Zoom out: '' -Toggle fullscreen: '' -Window: '' -Minimize: '' -Close: '' -Back: '' -Forward: '' +Cut: 'Исеци' +Copy: 'Копирај' +Paste: 'Прилепи' +Delete: 'Избриши' +Select all: 'Све одабрати' +Reload: 'Освежи' +Force Reload: 'Натерај освежавање' +Toggle Developer Tools: 'Укључите/искључите алате за програмере' +Actual size: 'Тренутна величина' +Zoom in: 'Повећај' +Zoom out: 'Смањи' +Toggle fullscreen: 'Цео екран' +Window: 'Прозор' +Minimize: 'Минимизуј' +Close: 'Затвори' +Back: 'Назад' +Forward: 'Напред' -Version $ is now available! Click for more details: '' -Download From Site: '' -A new blog is now available, $. Click to view more: '' +Version $ is now available! Click for more details: 'Верзија $ је сада достуна! Кликните + за више детаља' +Download From Site: 'Преузми са сајта' +A new blog is now available, $. Click to view more: 'Нови блог је сада доступан, $. + Кликни за приказ више' # Search Bar -Search / Go to URL: '' +Search / Go to URL: 'Претражи / иди на УРЛ' # In Filter Button Search Filters: - Search Filters: '' + Search Filters: 'Филтери претраге' Sort By: - Sort By: '' - Most Relevant: '' - Rating: '' - Upload Date: '' - View Count: '' + Sort By: 'Среди по' + Most Relevant: 'Најрелевантније' + Rating: 'Оцена' + Upload Date: 'Датум отпремања' + View Count: 'Број прегледа' Time: - Time: '' - Any Time: '' - Last Hour: '' - Today: '' - This Week: '' - This Month: '' - This Year: '' + Time: 'Датум' + Any Time: 'Све' + Last Hour: 'Последњи сат' + Today: 'Данас' + This Week: 'Ове недеље' + This Month: 'Овај месец' + This Year: 'Ова година' Type: - Type: '' - All Types: '' - Videos: '' - Channels: '' + Type: 'Тип' + All Types: 'Сва' + Videos: 'Видео' + Channels: 'Канали' #& Playlists Duration: - Duration: '' - All Durations: '' - Short (< 4 minutes): '' - Long (> 20 minutes): '' + Duration: 'Трајање' + All Durations: 'Све' + Short (< 4 minutes): 'Кратко (< 4 минута)' + Long (> 20 minutes): 'Дугачко (> 20 минута)' # On Search Page - Search Results: '' - Fetching results. Please wait: '' - Fetch more results: '' - There are no more results for this search: '' + Search Results: 'Резултати претраге' + Fetching results. Please wait: 'Примање резултата. Сачекајте' + Fetch more results: 'Покажи још резултата' + There are no more results for this search: 'Нема више резултата за ову претрагу' # Sidebar Subscriptions: # On Subscriptions Page - Subscriptions: '' - Latest Subscriptions: '' - This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' - 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' - 'Getting Subscriptions. Please wait.': '' - Refresh Subscriptions: '' + Subscriptions: 'Праћења' + Latest Subscriptions: 'Задња праћења' + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: 'Овај + профил има велики број праћења. Присиљавање RSS-а да се избегне ограничење' + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Ваша + листа прећења је тренутно празна. Почните да додајете прећење да бисте их видели + овде.' + 'Getting Subscriptions. Please wait.': 'Примање праћења. Сачекајте.' + Refresh Subscriptions: 'Освежи праћења' Load More Videos: '' More: '' Trending: '' @@ -190,13 +196,14 @@ Settings: Remove Watch History: '' Are you sure you want to remove your entire watch history?: '' Watch history has been cleared: '' - Remove All Subscriptions / Profiles: '' - Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' + Remove All Subscriptions / Profiles: 'Обриши сва праћења/профили' + Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Да + ли сте сигурни да желите уклонити сва праћења и профиле? Ово се не може поништити.' Subscription Settings: - Subscription Settings: '' + Subscription Settings: 'Подешавања праћења' Hide Videos on Watch: '' Fetch Feeds from RSS: '' - Manage Subscriptions: '' + Manage Subscriptions: 'Управљај ста пратиш' Distraction Free Settings: Distraction Free Settings: '' Hide Video Views: '' @@ -208,38 +215,40 @@ Settings: Hide Popular Videos: '' Hide Playlists: '' Hide Live Chat: '' - Hide Active Subscriptions: '' + Hide Active Subscriptions: 'Сакриј активна праћења' Data Settings: Data Settings: '' Select Import Type: '' Select Export Type: '' - Import Subscriptions: '' + Import Subscriptions: 'Увоз праћења' Import FreeTube: '' Import YouTube: '' Import NewPipe: '' - Check for Legacy Subscriptions: '' - Export Subscriptions: '' + Check for Legacy Subscriptions: 'Провери да ли постоје стара праћања' + Export Subscriptions: 'Извоз праћања' Export FreeTube: '' Export YouTube: '' Export NewPipe: '' Import History: '' Export History: '' Profile object has insufficient data, skipping item: '' - All subscriptions and profiles have been successfully imported: '' - All subscriptions have been successfully imported: '' - One or more subscriptions were unable to be imported: '' - Invalid subscriptions file: '' + All subscriptions and profiles have been successfully imported: 'Сва праћања и + профили су успешно увезени' + All subscriptions have been successfully imported: 'Сва праћања су успешно увезене' + One or more subscriptions were unable to be imported: 'Увоз једне или више праћења + није успео' + Invalid subscriptions file: 'Датотека праћења није добра' This might take a while, please wait: '' Invalid history file: '' - Subscriptions have been successfully exported: '' + Subscriptions have been successfully exported: 'Праћења су успешно извезени' History object has insufficient data, skipping item: '' All watched history has been successfully imported: '' All watched history has been successfully exported: '' Unable to read file: '' Unable to write file: '' Unknown data key: '' - How do I import my subscriptions?: '' - Manage Subscriptions: '' + How do I import my subscriptions?: 'Како унети моја праћања?' + Manage Subscriptions: 'Управљај праћањима' Proxy Settings: Proxy Settings: '' Enable Tor / Proxy: '' @@ -297,7 +306,7 @@ Profile: Make Default Profile: '' Delete 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: '' Your profile name cannot be empty: '' Profile has been created: '' @@ -306,7 +315,7 @@ Profile: Removed $ from your profiles: '' Your default profile has been changed to your primary profile: '' $ is now the active profile: '' - Subscription List: '' + Subscription List: 'Листа праћања' Other Channels: '' $ selected: '' Select All: '' @@ -324,9 +333,9 @@ Channel: Subscribers: '' Subscribe: '' Unsubscribe: '' - Channel has been removed from your subscriptions: '' - Removed subscription from $ other channel(s): '' - Added channel to your subscriptions: '' + Channel has been removed from your subscriptions: 'Канал је уклоњен из праћања' + Removed subscription from $ other channel(s): 'Праћење уклоњен из $ остала канала' + Added channel to your subscriptions: 'Канал додат у прећења' Search Channel: '' Your search results have returned 0 results: '' Sort By: '' @@ -511,7 +520,9 @@ Tooltips: Proxy Videos Through Invidious: '' Default Video Format: '' Subscription Settings: - Fetch Feeds from RSS: '' + Fetch Feeds from RSS: 'Када је омогућено, FreeTube ће користити РСС уместо свог + подразумеваног метода за прикупљање вашег праћења. РСС је бржи и спречава блокирање + ИП-а, али не пружа одређене информације попут трајања видеа или статуса уживо' # Toast Messages Local API Error (Click to copy): '' @@ -519,7 +530,7 @@ Invidious API Error (Click to copy): '' Falling back to Invidious API: '' Falling back to the local API: '' This video is unavailable because of missing formats. This can happen due to country unavailability.: '' -Subscriptions have not yet been implemented: '' +Subscriptions have not yet been implemented: 'Праћења још увек нису примењени' Loop is now disabled: '' Loop is now enabled: '' Shuffle is now disabled: '' From 24d12a435768f91ab2a6121f869919025b2053ad Mon Sep 17 00:00:00 2001 From: Luca Date: Sun, 14 Mar 2021 20:18:46 +0100 Subject: [PATCH 039/297] Started investigating default profile loading inconsistency --- src/renderer/App.js | 37 ++++++++++--------- .../watch-video-info/watch-video-info.js | 1 + src/renderer/store/modules/history.js | 2 +- src/renderer/store/modules/profile.js | 10 +++-- src/renderer/store/modules/settings.js | 1 + 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/renderer/App.js b/src/renderer/App.js index c821fad6..7f97e842 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -85,26 +85,27 @@ export default Vue.extend({ } }, mounted: function () { - this.$store.dispatch('grabUserSettings') - this.$store.dispatch('grabHistory') - this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels')) - this.$store.dispatch('grabAllPlaylists') - this.$store.commit('setUsingElectron', useElectron) - this.checkThemeSettings() - this.checkLocale() + this.$store.dispatch('grabUserSettings').then(() => { + this.$store.dispatch('grabHistory') + this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels')) + this.$store.dispatch('grabAllPlaylists') + this.$store.commit('setUsingElectron', useElectron) + this.checkThemeSettings() + this.checkLocale() - if (useElectron) { - console.log('User is using Electron') - this.activateKeyboardShortcuts() - this.openAllLinksExternally() - this.enableOpenUrl() - this.setBoundsOnClose() - } + if (useElectron) { + console.log('User is using Electron') + this.activateKeyboardShortcuts() + this.openAllLinksExternally() + this.enableOpenUrl() + this.setBoundsOnClose() + } - setTimeout(() => { - this.checkForNewUpdates() - this.checkForNewBlogPosts() - }, 500) + setTimeout(() => { + this.checkForNewUpdates() + this.checkForNewBlogPosts() + }, 500) + }) }, methods: { checkLocale: function () { diff --git a/src/renderer/components/watch-video-info/watch-video-info.js b/src/renderer/components/watch-video-info/watch-video-info.js index 0c35afb8..1471c231 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.js +++ b/src/renderer/components/watch-video-info/watch-video-info.js @@ -263,6 +263,7 @@ export default Vue.extend({ const currentProfile = JSON.parse(JSON.stringify(this.profileList[this.activeProfile])) const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0])) + console.log("PRIMARY PROFILE:", primaryProfile) if (this.isSubscribed) { currentProfile.subscriptions = currentProfile.subscriptions.filter((channel) => { diff --git a/src/renderer/store/modules/history.js b/src/renderer/store/modules/history.js index 42088578..24841d16 100644 --- a/src/renderer/store/modules/history.js +++ b/src/renderer/store/modules/history.js @@ -13,7 +13,7 @@ if (window && window.process && window.process.type === 'renderer') { const remote = require('@electron/remote') dbLocation = remote.app.getPath('userData') - + console.log("DB", dbLocation) dbLocation = dbLocation + '/history.db' } else { dbLocation = 'history.db' diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js index fe5b25fd..991bd53a 100644 --- a/src/renderer/store/modules/profile.js +++ b/src/renderer/store/modules/profile.js @@ -27,7 +27,7 @@ const profileDb = new Datastore({ const state = { profileList: [{ _id: 'allChannels', - name: 'All Channels', + name: 'Brudi Channels', bgColor: '#000000', textColor: '#FFFFFF', subscriptions: [] @@ -54,6 +54,7 @@ const actions = { } else { // We want the primary profile to always be first // So sort with that then sort alphabetically by profile name + console.log('PROFILE DB RESULTS', results) const profiles = results.sort((a, b) => { if (a._id === 'allChannels') { return -1 @@ -67,10 +68,13 @@ const actions = { }) if (state.profileList.length < profiles.length) { + console.log("STATE LIST LESS RTHAN PROFILES LENGTH") + console.log(profiles, state.profileList) + console.log("ROOTSTATE:SETTINGDEFATL", rootState.settings.defaultProfile) const profileIndex = profiles.findIndex((profile) => { return profile._id === rootState.settings.defaultProfile }) - + console.log("INDEX", profileIndex) if (profileIndex !== -1) { dispatch('updateActiveProfile', profileIndex) } @@ -103,7 +107,7 @@ const actions = { textColor: textColor, subscriptions: [] } - console.log(defaultProfile) + console.log('DIS DEFAULT', defaultProfile) profileDb.update({ _id: 'allChannels' }, defaultProfile, { upsert: true }, (err, numReplaced) => { if (!err) { dispatch('grabAllProfiles') diff --git a/src/renderer/store/modules/settings.js b/src/renderer/store/modules/settings.js index bb4d2d2d..aefb4809 100644 --- a/src/renderer/store/modules/settings.js +++ b/src/renderer/store/modules/settings.js @@ -280,6 +280,7 @@ const actions = { commit('setBackendFallback', result.value) break case 'defaultProfile': + console.log("IN SETTING DEFAULT:", result.value) commit('setDefaultProfile', result.value) break case 'checkForUpdates': From 9e251cd176a0f33554e220819b4aca418f0e3bc2 Mon Sep 17 00:00:00 2001 From: Joe Bill Date: Fri, 19 Mar 2021 14:14:06 +0000 Subject: [PATCH 040/297] Translated using Weblate (Serbian) Currently translated at 53.5% (240 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sr/ --- static/locales/sr.yaml | 336 ++++++++++++++++++++++------------------- 1 file changed, 177 insertions(+), 159 deletions(-) diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index df99a837..5d7aa9b7 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -82,207 +82,225 @@ Subscriptions: овде.' 'Getting Subscriptions. Please wait.': 'Примање праћења. Сачекајте.' Refresh Subscriptions: 'Освежи праћења' - Load More Videos: '' -More: '' -Trending: '' -Most Popular: '' -Playlists: '' + Load More Videos: 'Учитај више видео записа' +More: 'Још' +Trending: 'Тренда' +Most Popular: 'Нај популарније' +Playlists: 'Плејлисте' User Playlists: - Your Playlists: '' - Playlist Message: '' - Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' + Your Playlists: 'Ваше плејлисте' + Playlist Message: 'Ова страница се не одражава у потпуности радне плејлисте. Она + само приказује видео записе које сте сачували или фаворизирали. Када је посао + завршио, сви видео записи одавде ће се преместити на плејлисту "Омиљени".' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 'Нисте + сачували ни један видео. Кликни на дугме Сачувај на углу видео записа да бисте + је овде навели' History: # On History Page - History: '' - Watch History: '' - Your history list is currently empty.: '' + History: 'Историја' + Watch History: 'Види историју' + Your history list is currently empty.: 'Ваша историја је празна.' Settings: # On Settings Page - Settings: '' - The app needs to restart for changes to take effect. Restart and apply change?: '' + Settings: 'Подешавања' + The app needs to restart for changes to take effect. Restart and apply change?: 'Апликација + треба да се поново покрене како би промене ступиле на снагу. Поново покрените + и примените промене?' General Settings: - General Settings: '' - Check for Updates: '' - Check for Latest Blog Posts: '' - Fallback to Non-Preferred Backend on Failure: '' - Enable Search Suggestions: '' - Default Landing Page: '' - Locale Preference: '' + General Settings: 'Општа подешавања' + Check for Updates: 'Провери ажурирања' + Check for Latest Blog Posts: 'Провери најновије поруке блога' + Fallback to Non-Preferred Backend on Failure: 'Повратак на неомиљени Backend на + неуспех' + Enable Search Suggestions: 'Покажи предлоге за претрагу' + Default Landing Page: 'Подразумевана почетна страница' + Locale Preference: 'Локална преференција' Preferred API Backend: - Preferred API Backend: '' - Local API: '' - Invidious API: '' + Preferred API Backend: 'Омиљени API Backend' + Local API: 'Локални API' + Invidious API: 'Invidious API' Video View Type: - Video View Type: '' - Grid: '' - List: '' + Video View Type: 'Тип приказа видеа' + Grid: 'Решетка' + List: 'Листа' Thumbnail Preference: - Thumbnail Preference: '' - Default: '' - Beginning: '' - Middle: '' - End: '' - 'Invidious Instance (Default is https://invidious.snopyta.org)': '' - View all Invidious instance information: '' - Region for Trending: '' + Thumbnail Preference: 'Преференције сличице' + Default: 'Подразумевано' + Beginning: 'Почетак' + Middle: 'Средина' + End: 'Крај' + 'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious инстанца + (Подразумевано је https://invidious.snopyta.org)' + View all Invidious instance information: 'Погледајте информације свих Invidious + инстанце' + Region for Trending: 'Регион за тренд' #! List countries Theme Settings: - Theme Settings: '' - Match Top Bar with Main Color: '' - Expand Side Bar by Default: '' - Disable Smooth Scrolling: '' - UI Scale: '' + Theme Settings: 'Подешавања теме' + Match Top Bar with Main Color: 'Усклади горњу траку са главном бојом' + Expand Side Bar by Default: 'Подразумевано прошири бочну траку' + Disable Smooth Scrolling: 'Онемогући глатко померање' + UI Scale: 'UI скала' Base Theme: - Base Theme: '' - Black: '' - Dark: '' - Light: '' + Base Theme: 'Основна тема' + Black: 'Црна' + Dark: 'Тамна' + Light: 'Светла' Main Color Theme: - Main Color Theme: '' - Red: '' - Pink: '' - Purple: '' - Deep Purple: '' - Indigo: '' - Blue: '' - Light Blue: '' - Cyan: '' - Teal: '' - Green: '' - Light Green: '' - Lime: '' - Yellow: '' - Amber: '' - Orange: '' - Deep Orange: '' - Secondary Color Theme: '' + Main Color Theme: 'Главна боја теме' + Red: 'Црвено' + Pink: 'Розе' + Purple: 'Љубичасто' + Deep Purple: 'Тамно љубичасто' + Indigo: 'Индиго' + Blue: 'Плаво' + Light Blue: 'Светло плаво' + Cyan: 'Цијан' + Teal: 'Teal' + Green: 'Зелено' + Light Green: 'Светло зелено' + Lime: 'Лимун зелено' + Yellow: 'Жуто' + Amber: 'Амбер' + Orange: 'Наранђасто' + Deep Orange: 'Тамно нарађасто' + Secondary Color Theme: 'Секундарна боја теме' #* Main Color Theme Player Settings: - Player Settings: '' - Force Local Backend for Legacy Formats: '' - Play Next Video: '' - Turn on Subtitles by Default: '' - Autoplay Videos: '' - Proxy Videos Through Invidious: '' - Autoplay Playlists: '' - Enable Theatre Mode by Default: '' - Playlist Next Video Interval: '' - Default Volume: '' - Default Playback Rate: '' + Player Settings: 'Подешавања плејера' + Force Local Backend for Legacy Formats: 'форсирај локални Backend за Legacy формате' + Play Next Video: 'Пусти следећи видео' + Turn on Subtitles by Default: 'Подразумевано упали титлове' + Autoplay Videos: 'Ауто-пусти видео' + Proxy Videos Through Invidious: 'Прокси видео преко Invidious' + Autoplay Playlists: 'Ауто-пусти плејлисте' + Enable Theatre Mode by Default: 'Подразумевано активирај театар мод' + Playlist Next Video Interval: 'Интервал следећег видеа из плејлисте' + Default Volume: 'Подразумевана јачина' + Default Playback Rate: 'Подразумевана брзина репродукције' Default Video Format: - Default Video Format: '' - Dash Formats: '' - Legacy Formats: '' - Audio Formats: '' + Default Video Format: 'Подразумеван формат видеа' + Dash Formats: 'Dash формати' + Legacy Formats: 'Legacy формати' + Audio Formats: 'Аудио формати' Default Quality: - Default Quality: '' - Auto: '' - 144p: '' - 240p: '' - 360p: '' - 480p: '' - 720p: '' - 1080p: '' - 1440p: '' - 4k: '' - 8k: '' + Default Quality: 'Подразумеван квалитет' + Auto: 'Ауто' + 144p: '144p' + 240p: '240p' + 360p: '360p' + 480p: '480p' + 720p: '720p' + 1080p: '1080p' + 1440p: '1440p' + 4k: '4k' + 8k: '8k' Privacy Settings: - Privacy Settings: '' - Remember History: '' - Save Watched Progress: '' - Clear Search Cache: '' - Are you sure you want to clear out your search cache?: '' - Search cache has been cleared: '' - Remove Watch History: '' - Are you sure you want to remove your entire watch history?: '' - Watch history has been cleared: '' + Privacy Settings: 'Подешавања приватности' + Remember History: 'Запамти историју' + Save Watched Progress: 'Сачувај напредак видеа' + Clear Search Cache: 'Испразни кеш претраге' + Are you sure you want to clear out your search cache?: 'Јесте ли сигурни да желите + да очистите кеш претраге?' + Search cache has been cleared: 'Кеш претраживања је обрисано' + Remove Watch History: 'Избриши историју гледања' + Are you sure you want to remove your entire watch history?: 'Сигурно желите да + избришете целу историју гледања?' + Watch history has been cleared: 'Историја је избрисана' Remove All Subscriptions / Profiles: 'Обриши сва праћења/профили' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Да ли сте сигурни да желите уклонити сва праћења и профиле? Ово се не може поништити.' Subscription Settings: Subscription Settings: 'Подешавања праћења' - Hide Videos on Watch: '' - Fetch Feeds from RSS: '' + Hide Videos on Watch: 'Сакриј одгледани видео записи' + Fetch Feeds from RSS: 'Дохват RSS-а' Manage Subscriptions: 'Управљај ста пратиш' Distraction Free Settings: - Distraction Free Settings: '' - Hide Video Views: '' - Hide Video Likes And Dislikes: '' - Hide Channel Subscribers: '' - Hide Comment Likes: '' - Hide Recommended Videos: '' - Hide Trending Videos: '' - Hide Popular Videos: '' - Hide Playlists: '' - Hide Live Chat: '' + Distraction Free Settings: 'Подешавања дистракције' + Hide Video Views: 'Сакриј број приказа видеа' + Hide Video Likes And Dislikes: 'Сакриј видео лајкове' + Hide Channel Subscribers: 'Сакриј број праћења канала' + Hide Comment Likes: 'Сакриј лајковање из коментара' + Hide Recommended Videos: 'Сакриј препоручене видее' + Hide Trending Videos: 'Сакриј видее у тренду' + Hide Popular Videos: 'Сакриј популарне видее' + Hide Playlists: 'Сакриј плејлисте' + Hide Live Chat: 'Сакриј уживо ћаскање' Hide Active Subscriptions: 'Сакриј активна праћења' Data Settings: - Data Settings: '' - Select Import Type: '' - Select Export Type: '' + Data Settings: 'Подешавања података' + Select Import Type: 'Одабери тип увоза' + Select Export Type: 'Одабери тип извоза' Import Subscriptions: 'Увоз праћења' - Import FreeTube: '' - Import YouTube: '' - Import NewPipe: '' + Import FreeTube: 'Увоз FreeTube' + Import YouTube: 'Увоз YouTube' + Import NewPipe: 'Увоз NewPipe' Check for Legacy Subscriptions: 'Провери да ли постоје стара праћања' Export Subscriptions: 'Извоз праћања' - Export FreeTube: '' - Export YouTube: '' - Export NewPipe: '' - Import History: '' - Export History: '' - Profile object has insufficient data, skipping item: '' + Export FreeTube: 'Извоз FreeTube' + Export YouTube: 'Извоз YouTube' + Export NewPipe: 'Извоз NewPipe' + Import History: 'Увоз историје' + Export History: 'Извоз историје' + Profile object has insufficient data, skipping item: 'Објект профила нема довољно + података, прескакање' All subscriptions and profiles have been successfully imported: 'Сва праћања и профили су успешно увезени' All subscriptions have been successfully imported: 'Сва праћања су успешно увезене' One or more subscriptions were unable to be imported: 'Увоз једне или више праћења није успео' Invalid subscriptions file: 'Датотека праћења није добра' - This might take a while, please wait: '' - Invalid history file: '' + This might take a while, please wait: 'Ово би могло потрајати неко време, молим + вас причекајте' + Invalid history file: 'Неважећа датотека историје' Subscriptions have been successfully exported: 'Праћења су успешно извезени' - History object has insufficient data, skipping item: '' - All watched history has been successfully imported: '' - All watched history has been successfully exported: '' - Unable to read file: '' - Unable to write file: '' - Unknown data key: '' + History object has insufficient data, skipping item: 'Објект историје нема довољно + података, прескакање' + All watched history has been successfully imported: 'Цела историја гледања је + успешно увезена' + All watched history has been successfully exported: 'Цела историја гледања је + успешно извезена' + Unable to read file: 'Није могуће читати датотеку' + Unable to write file: 'Није могуће писати датотеку' + Unknown data key: 'Непознат кључ података' How do I import my subscriptions?: 'Како унети моја праћања?' Manage Subscriptions: 'Управљај праћањима' Proxy Settings: - Proxy Settings: '' - Enable Tor / Proxy: '' - Proxy Protocol: '' - Proxy Host: '' - Proxy Port Number: '' - Clicking on Test Proxy will send a request to: '' - Test Proxy: '' - Your Info: '' - Ip: '' - Country: '' - Region: '' - City: '' - Error getting network information. Is your proxy configured properly?: '' + Proxy Settings: 'Подешавања проксија' + Enable Tor / Proxy: 'Активирај Tor/Прокси' + Proxy Protocol: 'Протокол проксија' + Proxy Host: 'Хост проксија' + Proxy Port Number: 'Порт за прокси' + Clicking on Test Proxy will send a request to: 'Клик на „Пробај Прокси“ послаће + захтев на' + Test Proxy: 'Пробај Прокси' + Your Info: 'Ваше информације' + Ip: 'IP' + Country: 'Земља' + Region: 'Регион' + City: 'Град' + Error getting network information. Is your proxy configured properly?: 'Грешка + у добијању информација о мрежи. Да ли је ваш проки правилно подешен?' About: #On About page - About: '' - Beta: '' - Source code: '' - Licensed under the AGPLv3: '' - View License: '' - Downloads / Changelog: '' - GitHub releases: '' - Help: '' - FreeTube Wiki: '' - FAQ: '' - Report a problem: '' - GitHub issues: '' - Please check for duplicates before posting: '' - Website: '' - Blog: '' - Email: '' - Mastodon: '' - Chat on Matrix: '' + About: 'О програму' + Beta: 'Бета' + Source code: 'Изворни код' + Licensed under the AGPLv3: 'Лиценциран под AGPLv3' + View License: 'Види лиценцу' + Downloads / Changelog: 'Преузимања/Листа промена' + GitHub releases: 'Доступна издања на GitHub' + Help: 'Помоћ' + FreeTube Wiki: 'Wiki од FreeTube-а' + FAQ: 'FAQ' + Report a problem: 'Пријави проблем' + GitHub issues: 'Проблеми које је заједничка идентификовала на GitHub' + Please check for duplicates before posting: 'Молимо проверите дупликате пре објављивања' + Website: 'Вебсајт' + Blog: 'Блог' + Email: 'Имејл' + Mastodon: 'Mastodon' + Chat on Matrix: 'Ћаскање на Matrix' Please read the: '' room rules: '' Translate: '' From becf86e9459c76235632f3be60a1b10b0c798a97 Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Fri, 19 Mar 2021 02:36:45 +0000 Subject: [PATCH 041/297] Provide translated caption for user's locale --- src/renderer/views/Watch/Watch.js | 51 +++++++++++++++++++++++++++++-- static/locales/en-US.yaml | 1 + 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index b7fd1bb0..cbe1e48f 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -382,6 +382,16 @@ export default Vue.extend({ .captionTracks if (typeof captionTracks !== 'undefined') { + const standardLocale = localStorage.getItem('locale').replace('_', '-') + const noLocaleCaption = !captionTracks.some(track => + track.languageCode === standardLocale && track.kind !== 'asr' + ) + + if (!standardLocale.startsWith('en') && noLocaleCaption) { + const baseUrl = result.player_response.captions.playerCaptionsRenderer.baseUrl + this.tryAddingAutoGeneratedLocaleCaption(captionTracks, standardLocale, baseUrl) + } + this.captionHybridList = this.createCaptionPromiseList(captionTracks) const captionLinks = captionTracks.map((caption) => { @@ -1041,14 +1051,51 @@ export default Vue.extend({ }) }, + tryAddingAutoGeneratedLocaleCaption: function (captionTracks, locale, baseUrl) { + const enCaptionIdx = captionTracks.findIndex(track => + track.languageCode === 'en' && track.kind !== 'asr' + ) + + const enCaptionExists = enCaptionIdx !== -1 + const asrEnabled = captionTracks.some(track => track.kind === 'asr') + + if (enCaptionExists || asrEnabled) { + let label + let url + + if (this.$te('Video.translated from English') && this.$t('Video.translated from English') !== '') { + label = `${this.$t('Locale Name')} (${this.$t('Video.translated from English')})` + } else { + label = `${this.$t('Locale Name')} (translated from English)` + } + + if (enCaptionExists) { + url = new URL(captionTracks[enCaptionIdx].baseUrl) + } else { + url = new URL(baseUrl) + url.searchParams.set('lang', 'en') + url.searchParams.set('kind', 'asr') + } + + url.searchParams.set('tlang', locale) + captionTracks.unshift({ + baseUrl: url.toString(), + name: { simpleText: label }, + languageCode: locale + }) + } + }, + createCaptionPromiseList: function (captionTracks) { return captionTracks.map(caption => new Promise((resolve, reject) => { caption.type = 'text/vtt' caption.charset = 'charset=utf-8' caption.dataSource = 'local' - caption.baseUrl += '&fmt=vtt' - $.get(caption.baseUrl, response => { + const url = new URL(caption.baseUrl) + url.searchParams.set('fmt', 'vtt') + + $.get(url.toString(), response => { // The character '#' needs to be percent-encoded in a (data) URI // because it signals an identifier, which means anything after it // is automatically removed when the URI is used as a source diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index 4b969536..7dcf4bee 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -466,6 +466,7 @@ Video: Published on: Published on Streamed on: Streamed on Started streaming on: Started streaming on + translated from English: translated from English # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: $ % ago #& Videos From 39811f6ee4e6ff0f287723aa41cfe426816f1757 Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Fri, 19 Mar 2021 19:18:21 +0000 Subject: [PATCH 042/297] Change locale caption function name --- src/renderer/views/Watch/Watch.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index cbe1e48f..5d69623f 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -389,7 +389,7 @@ export default Vue.extend({ if (!standardLocale.startsWith('en') && noLocaleCaption) { const baseUrl = result.player_response.captions.playerCaptionsRenderer.baseUrl - this.tryAddingAutoGeneratedLocaleCaption(captionTracks, standardLocale, baseUrl) + this.tryAddingTranslatedLocaleCaption(captionTracks, standardLocale, baseUrl) } this.captionHybridList = this.createCaptionPromiseList(captionTracks) @@ -1051,7 +1051,7 @@ export default Vue.extend({ }) }, - tryAddingAutoGeneratedLocaleCaption: function (captionTracks, locale, baseUrl) { + tryAddingTranslatedLocaleCaption: function (captionTracks, locale, baseUrl) { const enCaptionIdx = captionTracks.findIndex(track => track.languageCode === 'en' && track.kind !== 'asr' ) From eeedfbb71dae1e9861e8214dd12a21884b65a4e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maja=20Ko=C5=A1ir=20Habjan?= Date: Sat, 20 Mar 2021 11:59:32 +0000 Subject: [PATCH 043/297] Translated using Weblate (Slovenian) Currently translated at 97.7% (438 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sl/ --- static/locales/sl.yaml | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/static/locales/sl.yaml b/static/locales/sl.yaml index 5f63f9ff..0da0ff89 100644 --- a/static/locales/sl.yaml +++ b/static/locales/sl.yaml @@ -71,6 +71,7 @@ Search Filters: Fetching results. Please wait: 'Pridobivamo rezultate. Prosimo, počakajte' Fetch more results: 'Pridobi več rezultatov' # Sidebar + There are no more results for this search: Nič več rezultatov Subscriptions: # On Subscriptions Page Subscriptions: 'Naročnine' @@ -89,6 +90,13 @@ Most Popular: 'Najbolj popularno' Playlists: 'Seznami predvajanja' User Playlists: Your Playlists: 'Vaši seznami predvajanja' + Playlist Message: Ta stran ne odraža stanja popolnoma delujočih seznamov predvajanja. + Na njej so prikazani zgolj videoposnetki, ki ste jih shranili ali označili kot + priljubljene. Ko bo delo končano, bodo ti videoposnetki preseljeni v Seznam priljubljenih + videoposnetkov. + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Nimate + shranjenih videoposnetkov. Kliknite na gumb Shrani v kotu videoposnetka, da bo + ta dodan tukaj History: # On History Page History: 'Zgodovina' @@ -125,6 +133,7 @@ Settings: (prevzeta je https://invidious.snopyta.org)' Region for Trending: 'Regija za priljubljene videoposnetke' #! List countries + View all Invidious instance information: Prikaži vse podatke o Invidious domeni Theme Settings: Theme Settings: 'Nastavitve tem' Match Top Bar with Main Color: 'Uskladi zgornji trak z glavno barvo' @@ -185,6 +194,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Razmik med videoposnetki v seznamu predvajanja Privacy Settings: Privacy Settings: 'Nastavitve zasebnosti' Remember History: 'Zapomni si zgodovino' @@ -244,6 +254,7 @@ Settings: Unknown data key: 'Neznan podatkovni ključ' How do I import my subscriptions?: 'Kako lahko uvozim moje naročnine?' Check for Legacy Subscriptions: Poišči zapuščinske naročnine + Manage Subscriptions: Upravljaj z naročninami Advanced Settings: Advanced Settings: 'Napredne nastavitve' Enable Debug Mode (Prints data to the console): 'Vklopi razhroščevalni način (podatke @@ -280,9 +291,28 @@ Settings: Hide Channel Subscribers: Skrij število naročnikov Hide Video Views: Skrij število ogledov Distraction Free Settings: Brezmotenjske nastavitve + Hide Active Subscriptions: Skrij aktivne naročnine + Hide Playlists: Skrij sezname predvajanja The app needs to restart for changes to take effect. Restart and apply change?: Program se mora ponovno zagnati, preden bodo spremembe uveljavljene. Ga želite ponovno zagnati zdaj? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Prišlo + je do napake pri pridobivanju informacij o omrežju. Ali je vaš namestnik pravilno + nastavljen? + City: Mesto + Region: Regija + Country: Država + Ip: IP naslov + Your Info: Vaši podatki + Test Proxy: Preizkusi namestnik + Clicking on Test Proxy will send a request to: Ko kliknete na Preizkusi namestnik, + bo poizvedba poslana na + Proxy Port Number: Številka vrat namestnika + Proxy Settings: Nastavitve namestnika + Proxy Host: Gostitelj namestnika + Proxy Protocol: Protokol namestnika + Enable Tor / Proxy: Vklopi Tor/namestnik About: #On About page About: 'O programu' @@ -314,6 +344,31 @@ About: Latest FreeTube News: 'Najnovejše FreeTube novice' + Donate: Doniraj + these people and projects: teh ljudi in projektov + FreeTube is made possible by: FreeTube obstaja zaradi + Credits: Zahvale + Translate: Prevedi + room rules: sobna pravila + Please read the: Prosimo, preberite + Chat on Matrix: Klepetajte na Matrixu + Mastodon: Mastodon + Email: E-pošta + Blog: Blog + Website: Spletna stran + Please check for duplicates before posting: Prosimo, da pred pošiljanjem preverite, + da ni dvojnikov + GitHub issues: GitHub težave + Report a problem: Prijavi napako + FAQ: Pogosto zastavljena vprašanja + FreeTube Wiki: FreeTube wiki + Help: Pomoč + GitHub releases: Github izdaje + Downloads / Changelog: Prenosi in dnevnik sprememb + View License: Ogled licence + Licensed under the AGPLv3: Licencirano pod AGPLv3 + Source code: Izvirna koda + Beta: Beta Profile: Profile Select: 'Izberi profil' All Channels: 'Vsi kanali' @@ -356,6 +411,7 @@ Profile: prepričani, da želite izbrisati označene kanale?·· ·· Kanali ne bodo izbrisani iz drugih profilov.' #On Channel Page + Profile Filter: Filter profilov Channel: Subscriber: 'Naročnik' Subscribers: 'Naročnikov' @@ -468,6 +524,16 @@ Video: audio only: Samo avdio video only: Samo video Download Video: Prenesi videoposnetek + Started streaming on: Pretok začet dne + Streamed on: Pretočeno dne + Copy Invidious Channel Link: Kopiraj povezavo Invidious kanala + Open Channel in Invidious: Odpri ta kanal v Invidiousu + Copy YouTube Channel Link: Kopiraj povezavo YouTube kanala + Open Channel in YouTube: Odpri ta kanal v YouTubu + Video has been removed from your saved list: Videoposnetek je bil odstranjen iz + seznama + Video has been saved: Videoposnetek je bil shranjen + Save Video: Shrani videoposnetek Videos: #& Sort By Sort By: @@ -514,6 +580,8 @@ Share: Invidious Embed URL copied to clipboard: 'Invidious vložek URL kopiran' YouTube URL copied to clipboard: 'YouTube URL kopiran' YouTube Embed URL copied to clipboard: 'YouTube vložek URL kopiran' + YouTube Channel URL copied to clipboard: URL YouTube kanala je bil kopiran + Invidious Channel URL copied to clipboard: URL Invidious kanala je bil kopiran Mini Player: 'Mini predvajalnik' Comments: Comments: 'Komentarji' @@ -559,3 +627,4 @@ Canceled next video autoplay: 'Samodejno predvajanje preklicano' Yes: 'Da' No: 'Ne' +More: Več From e4f042c5326ec63a05b582911ef323381a388b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maja=20Ko=C5=A1ir=20Habjan?= Date: Sat, 20 Mar 2021 13:38:24 +0000 Subject: [PATCH 044/297] Translated using Weblate (Slovenian) Currently translated at 97.9% (439 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sl/ --- static/locales/sl.yaml | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/static/locales/sl.yaml b/static/locales/sl.yaml index 0da0ff89..930f5c3e 100644 --- a/static/locales/sl.yaml +++ b/static/locales/sl.yaml @@ -30,8 +30,8 @@ Close: 'Zapri' Back: 'Nazaj' Forward: 'Naprej' -Version $ is now available! Click for more details: 'Na voljo je različica $!·· ·· - Za več podrobnosti kliknite tukaj' +Version $ is now available! Click for more details: 'Na voljo je različica $!· Za + več podrobnosti kliknite tukaj' Download From Site: 'Prenesi iz spletne strani' A new blog is now available, $. Click to view more: 'Na voljo je nov članek, $. Kliknite tukaj, če ga želite prebrati' @@ -82,8 +82,8 @@ Subscriptions: 'Getting Subscriptions. Please wait.': 'Pridobivamo naročnine. Prosimo, počakajte.' Refresh Subscriptions: 'Osveži naročnine' This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Ta - profil ima veliko količino naročnin.·· ·· Da bi se izognili omejitvi hitrosti, - bo uporabljen RSS + profil ima veliko količino naročnin.· Da bi se izognili omejitvi hitrosti, bo + uporabljen RSS Load More Videos: Naloži več videoposnetkov Trending: 'Priljubljeno' Most Popular: 'Najbolj popularno' @@ -209,8 +209,8 @@ Settings: Watch history has been cleared: 'Zgodovina gledanj je bila izbrisana' Remove All Subscriptions / Profiles: 'Izbriši vse naročnine/profile' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ste - prepričani, da želite izbrisati vse naročnine in profile?·· ·· Te odločitve - ni mogoče razveljaviti.' + prepričani, da želite izbrisati vse naročnine in profile?· Te odločitve ni + mogoče razveljaviti.' Subscription Settings: Subscription Settings: 'Nastavitve naročnin' Hide Videos on Watch: 'Skrij gledane videoposnetke' @@ -405,11 +405,12 @@ Profile: No channel(s) have been selected: 'Označili niste nobenih kanalov' ? This is your primary profile. Are you sure you want to delete the selected channels? The same channels will be deleted in any profile they are found in. - : 'To je vaš primarni profil.·· ·· Ste prepričani, da želite izbrisati označene - kanale?·· ·· Kanali bodo izbrisani v vseh profilih, kjer se nahajajo.' + : 'To je vaš primarni profil.· Ste prepričani, da želite izbrisati označene kanale?· Kanali + bodo izbrisani v vseh profilih, kjer se nahajajo.' Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Ste - prepričani, da želite izbrisati označene kanale?·· ·· Kanali ne bodo izbrisani - iz drugih profilov.' + prepričani, da želite izbrisati označene kanale? + + · Kanali ne bodo izbrisani iz drugih profilov.' #On Channel Page Profile Filter: Filter profilov Channel: @@ -481,8 +482,9 @@ Video: Live chat is enabled. Chat messages will appear here once sent.: 'Pogovor v živo je vklopljen.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Pogovor - v živo trenutno ni podprt v Invidious APV.·· ·· Potrebna je neposredna povezava - z YouTube-om.' + v živo trenutno ni podprt v Invidious APV. + + · Potrebna je neposredna povezava z YouTubom.' Published: Jan: 'jan.' Feb: 'feb.' @@ -622,9 +624,14 @@ Playing Previous Video: 'Predvaja se prejšnji videoposnetek' Playing next video in 5 seconds. Click to cancel: 'Naslednji videoposnetek čez 5 sekund. Kliknite za preklic.' Canceled next video autoplay: 'Samodejno predvajanje preklicano' -'The playlist has ended. Enable loop to continue playing': 'Seznama predvajanja je - konec. ·· ·· Vklopite ponovno predvajanje, če želite nadaljevati' +'The playlist has ended. Enable loop to continue playing': "Seznama predvajanja je\ + \ konec. \n· Vklopite ponovno predvajanje, če želite nadaljevati" Yes: 'Da' No: 'Ne' More: Več +Tooltips: + General Settings: + Preferred API Backend: Izberite zaledje, ki ga FreeTube uporablja za pridobivanje + podatkov. Lokalni APV je vgrajeni . Invidious APV za delovanje potrebuje Invidious + strežnik. From 636fc251287001ac0db470fff9456d095fac4d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=20Daniel=20Velasquez=20Mej=C3=ADa?= Date: Mon, 22 Mar 2021 00:18:36 +0000 Subject: [PATCH 045/297] Translated using Weblate (Spanish) Currently translated at 99.7% (447 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 105 ++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 49 deletions(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index fa1403f7..95061b1b 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -171,7 +171,7 @@ Settings: Legacy Formats: 'Legacy' Audio Formats: 'Solo audio' Default Quality: - Default Quality: 'Calidad predeterminada' + Default Quality: 'Calidad Predeterminada' Auto: 'Automático' 144p: '144p' 240p: '240p' @@ -182,36 +182,37 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Intervalo de Siguiente Video en Playlist Privacy Settings: - Privacy Settings: 'Privacidad' - Remember History: 'Recordar historial' + Privacy Settings: 'Ajustes de Privacidad' + Remember History: 'Recordar Historial' Save Watched Progress: 'Guardar progreso reproducido' - Clear Search Cache: 'Borrar cache de búsqueda' + Clear Search Cache: 'Borrar Cache de Búsqueda' Are you sure you want to clear out your search cache?: '¿Seguro de que quieres borrar la cache de búsqueda?' - Search cache has been cleared: '¡Hecho!' + Search cache has been cleared: 'El cache de búsqueda ha sido eliminado' Remove Watch History: 'Borrar historial de reproducción' Are you sure you want to remove your entire watch history?: '¿Seguro de que quieres borrar el historial de reproducción?' - Watch history has been cleared: '¡Hecho!' + Watch history has been cleared: 'El Historial de Reproducción ha sido eliminado' Remove All Subscriptions / Profiles: 'Borrar todas las suscripciones y perfiles' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '¿Estás seguro de que quieres borrar todas las suscripciones y perfiles? Esta operación será irreversible.' Subscription Settings: - Subscription Settings: 'Suscripciones' + Subscription Settings: 'Ajustes de Suscripciones' Hide Videos on Watch: 'Ocultar videos vistos' Fetch Feeds from RSS: 'Obtener suscripciones usando RSS' - Manage Subscriptions: 'Administrar suscripciones' + Manage Subscriptions: 'Administrar Suscripciones' Data Settings: - Data Settings: 'Datos locales' - Select Import Type: 'Tipo de importación' - Select Export Type: 'Tipo de exportación' - Import Subscriptions: 'Importar suscripciones' + Data Settings: 'Ajustes de Datos' + Select Import Type: 'Seleccionar Tipo de Importación' + Select Export Type: 'Seleccionar Tipo de Exportación' + Import Subscriptions: 'Importar Suscripciones' Import FreeTube: 'Importar FreeTube' Import YouTube: 'Importar YouTube' Import NewPipe: 'Importar NewPipe' - Export Subscriptions: 'Exportar suscripciones' + Export Subscriptions: 'Exportar Suscripciones' Export FreeTube: 'Exportar FreeTube' Export YouTube: 'Exportar YouTube' Export NewPipe: 'Exportar NewPipe' @@ -270,16 +271,17 @@ Settings: #& No Distraction Free Settings: - Hide Video Likes And Dislikes: No mostrar likes/dislikes en videos - Hide Video Views: No mostrar visitas en videos - Hide Live Chat: No mostrar chat - Hide Popular Videos: No mostrar más populares - Hide Trending Videos: No mostrar tendencias - Hide Recommended Videos: No mostrar videos recomendados - Hide Comment Likes: No mostrar likes de comentarios - Hide Channel Subscribers: No mostrar suscriptores en canales - Distraction Free Settings: No distraer - Hide Active Subscriptions: Ocultar suscripciones activas + Hide Video Likes And Dislikes: Ocultar Likes/Dislikes del Video + Hide Video Views: Ocultar las Vistas del Video + Hide Live Chat: Ocultar Chat en Vivo + Hide Popular Videos: Ocultar Videos Populares + Hide Trending Videos: Ocultar Tendencias + Hide Recommended Videos: Ocultar Videos Recomendados + Hide Comment Likes: Ocultar Likes de Comentarios + Hide Channel Subscribers: Ocultar Suscriptores de Canales + Distraction Free Settings: Sin Distracción + Hide Active Subscriptions: Ocultar Suscripciones Activas + Hide Playlists: Ocultar las Playlists The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres reiniciar FreeTube ahora para aplicar los cambios? Proxy Settings: @@ -396,6 +398,7 @@ Profile: Other Channels: Otros canales Subscription List: Lista de suscripciones Profile Select: Seleccionar perfil + Profile Filter: Filtro de Perfil Channel: Subscriber: 'Suscriptor' Subscribers: 'Suscriptores' @@ -488,7 +491,7 @@ Video: Year: 'Año' Years: 'Años' Ago: 'Hace' - Upcoming: 'Comenzará el' + Upcoming: 'Se estrenará el' Published on: 'Publicado el' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'Hace $ %' @@ -529,20 +532,20 @@ Playlist: #& About View Full Playlist: 'Ver la lista de reproducción completa' Videos: 'Videos' - View: 'Vista' + View: 'Ver' Views: 'Vistas' Last Updated On: 'Se actualizó por última vez el' Share Playlist: Share Playlist: 'Compartir lista de reproducción' Copy YouTube Link: 'Copiar enlace YouTube' Open in YouTube: 'Abrir en YouTube' - Copy Invidious Link: 'Copiar enlace Invidious' + Copy Invidious Link: 'Copiar Enlace de Invidious' Open in Invidious: 'Abrir en Invidious' # On Video Watch Page #* Published #& Views -Toggle Theatre Mode: 'Pasar al modo cine' +Toggle Theatre Mode: 'Activar Modo Cine' Change Format: Change Video Formats: 'Cambiar formato de video' Use Dash Formats: 'Usar formato Dash' @@ -553,41 +556,43 @@ Change Format: Dash formats are not available for this video: El formato Dash no está disponible para este video Share: - Share Video: 'Compartir video' + Share Video: 'Compartir Video' Copy Link: 'Copiar enlace' Open Link: 'Abrir enlace' Copy Embed: 'Copiar código encrustado' Open Embed: 'Abrir código encrustado' # On Click - Invidious URL copied to clipboard: 'El enlace de Invidious ha sido copiado al portapapeles' - Invidious Embed URL copied to clipboard: 'El enlace encrustada de Invidious ha sido - copiada al portapapeles' - YouTube URL copied to clipboard: 'El enlace de Youtube ha sido copiado al portapapeles' - YouTube Embed URL copied to clipboard: 'El enlace encrustado de Youtube ha sido - copiado al portapapeles' + Invidious URL copied to clipboard: 'Enlace de Invidious copiado al porta-papeles' + Invidious Embed URL copied to clipboard: 'Enlace Incrustado de Invidious copiado + al porta-papeles' + YouTube URL copied to clipboard: 'Enlace de YouTube copiado al porta-papeles' + YouTube Embed URL copied to clipboard: 'Enlace Incrustado de YouTube copiado al + porta-papeles' Include Timestamp: Incluir marcas de tiempo - YouTube Channel URL copied to clipboard: Enlace youtube copiado - Invidious Channel URL copied to clipboard: Enlace Invidious copiado -Mini Player: 'Reproductor Mini' + YouTube Channel URL copied to clipboard: Enlace del Canal de YouTube copiado al + porta-papeles + Invidious Channel URL copied to clipboard: Enlace del Canal de Invidious copiado + al porta-papeles +Mini Player: 'Mini Reproductor' Comments: Comments: 'Comentarios' - Click to View Comments: 'Ver comentarios' - Getting comment replies, please wait: 'Obteniendo las respuestas. Por favor, espera' - Show Comments: 'Ver comentarios' - Hide Comments: 'Esconder comentarios' + Click to View Comments: 'Ver Comentarios' + Getting comment replies, please wait: 'Obteniendo las respuestas. Por favor, espera...' + Show Comments: 'Ver Comentarios' + Hide Comments: 'Ocultar Comentarios' # Context: View 10 Replies, View 1 Reply View: 'Ver' - Hide: 'Esconder' + Hide: 'Ocultar' Replies: 'Respuestas' - Reply: 'Respuesta' + Reply: 'Responder' There are no comments available for this video: 'Aún no hay comentarios' Load More Comments: 'Más comentarios' There are no more comments for this video: No hay más comentarios en este video - Newest first: Comentarios más recientes + Newest first: Los más Recientes Primero Top comments: Mejores comentarios Sort by: Ordenar por No more comments available: No hay más comentarios -Up Next: 'Siguientes' +Up Next: 'A Continuación' # Toast Messages Local API Error (Click to copy): 'Error de la API local (Click para copiar el código)' @@ -615,15 +620,16 @@ A new blog is now available, $. Click to view more: Nueva publicación del blog Download From Site: Descargar de la web Version $ is now available! Click for more details: La versión $ está disponible! Click para saber más -The playlist has been reversed: Orden invertido +The playlist has been reversed: Orden de Playlist invertido This video is unavailable because of missing formats. This can happen due to country unavailability.: Este video no está disponible por no tener un formato válido. Esto puede suceder por la falta de acceso de este formato a tu región. Tooltips: Subscription Settings: - Fetch Feeds from RSS: Si lo habilitas, FreeTube usará RSS por defecto para obtener - tus suscripciones. RSS es más rápido e impide el bloqueo de IP, pero no podrá - obtener cierta información como la duración de videos o si un video es en directo + Fetch Feeds from RSS: Si lo habilitas, FreeTube usará RSS en lugar de su método + por defecto para obtener tus actualizaciones de suscripciones. RSS es más rápido + e impide el bloqueo de IP, pero no provee cierta información como la duración + de un video o si es en directo Player Settings: Default Video Format: Selecciona el formato usado para reproducir videos. El formato Dash proporciona resoluciones más altas. El formato Legacy está limitado a 720p, @@ -648,3 +654,4 @@ Tooltips: Preferred API Backend: Elige el backend que FreeTube utiliza para obtener datos. La API local es un extractor incluido. La API Invidious requiere un servidor Invidious al que conectarse. +More: Más From c8f6d4721a413403bf2fe4dac7d29291b71d25fb Mon Sep 17 00:00:00 2001 From: Joe Bill Date: Mon, 22 Mar 2021 22:11:31 +0000 Subject: [PATCH 046/297] Translated using Weblate (Serbian) Currently translated at 74.3% (333 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sr/ --- static/locales/sr.yaml | 196 ++++++++++++++++++++++------------------- 1 file changed, 103 insertions(+), 93 deletions(-) diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index 5d7aa9b7..00e4f93a 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -10,7 +10,7 @@ File: 'Датотека' Quit: 'Затвори' Edit: 'Промени' Undo: 'Поништи' -Redo: '' +Redo: 'Обнови' Cut: 'Исеци' Copy: 'Копирај' Paste: 'Прилепи' @@ -301,117 +301,127 @@ About: Email: 'Имејл' Mastodon: 'Mastodon' Chat on Matrix: 'Ћаскање на Matrix' - Please read the: '' - room rules: '' - Translate: '' - Credits: '' - FreeTube is made possible by: '' - these people and projects: '' - Donate: '' + Please read the: 'Прочитајте' + room rules: 'правила собе' + Translate: 'Превод' + Credits: 'Призњања' + FreeTube is made possible by: 'FreeTube је омогућено од' + these people and projects: 'ови људи и пројекти' + Donate: 'Донација' Profile: - Profile Select: '' - Profile Filter: '' - All Channels: '' - Profile Manager: '' - Create New Profile: '' - Edit Profile: '' - Color Picker: '' - Custom Color: '' - Profile Preview: '' - Create Profile: '' - Update Profile: '' - Make Default Profile: '' - Delete Profile: '' - Are you sure you want to delete this profile?: '' + Profile Select: 'Одабир профила' + Profile Filter: 'Филтер профила' + All Channels: 'Сви канали' + Profile Manager: 'Менаџер профила' + Create New Profile: 'Креирај нови профил' + Edit Profile: 'Уреди профил' + Color Picker: 'Селектор боја' + Custom Color: 'Прилагођена боја' + Profile Preview: 'Преглед профила' + Create Profile: 'Креирај профил' + Update Profile: 'Ажурирај профил' + Make Default Profile: 'Креирај подразумевани профил' + Delete Profile: 'Избриши профил' + Are you sure you want to delete this profile?: 'Сигурно желите да избришете овај + профил?' All subscriptions will also be deleted.: 'Сва праћања ће такође бити избрисани.' - Profile could not be found: '' - Your profile name cannot be empty: '' - Profile has been created: '' - Profile has been updated: '' - Your default profile has been set to $: '' - Removed $ from your profiles: '' - Your default profile has been changed to your primary profile: '' - $ is now the active profile: '' + Profile could not be found: 'Профил не може да се нађе' + Your profile name cannot be empty: 'Име профила не може да буде празно' + Profile has been created: 'Профил је креиран' + Profile has been updated: 'Профил је ажуриран' + Your default profile has been set to $: 'Ваш подразумеван профил је постављен на + $' + Removed $ from your profiles: 'Уклоњено $ од ваших профила' + Your default profile has been changed to your primary profile: 'Ваш подразумевани + профил је промењен на ваш примарни профил' + $ is now the active profile: '$ је сада активан профил' Subscription List: 'Листа праћања' - Other Channels: '' - $ selected: '' - Select All: '' - Select None: '' - Delete Selected: '' - Add Selected To Profile: '' - No channel(s) have been selected: '' + Other Channels: 'Остали канали' + $ selected: '$ одабрано' + Select All: 'Све одабрати' + Select None: 'Скини одабирање' + Delete Selected: 'Избриши одабрано' + Add Selected To Profile: 'Додај одабрано на профил' + No channel(s) have been selected: 'Ни један канал није одабран' ? This is your primary profile. Are you sure you want to delete the selected channels? The same channels will be deleted in any profile they are found in. - : '' - Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' + : 'Ово је ваш примарни профил. Јесте ли сигурни да желите да избришете одабране + канале? Исти канали биће избрисани у било којем профилу у којем се налазе.' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Јесте + ли сигурни да желите да избришете одабране канале? Ово неће избрисати канал из + било којег другог профила.' #On Channel Page Channel: - Subscriber: '' - Subscribers: '' - Subscribe: '' - Unsubscribe: '' + Subscriber: 'Пратилац' + Subscribers: 'Пратиоци' + Subscribe: 'Прати' + Unsubscribe: 'Не прати више' Channel has been removed from your subscriptions: 'Канал је уклоњен из праћања' Removed subscription from $ other channel(s): 'Праћење уклоњен из $ остала канала' Added channel to your subscriptions: 'Канал додат у прећења' - Search Channel: '' - Your search results have returned 0 results: '' - Sort By: '' + Search Channel: 'Тражи канал' + Your search results have returned 0 results: 'Резултати претраге вратили су 0 резултата' + Sort By: 'Среди по' Videos: - Videos: '' - This channel does not currently have any videos: '' + Videos: 'Видео' + This channel does not currently have any videos: 'Овај канал тренутно нема видео' Sort Types: - Newest: '' - Oldest: '' - Most Popular: '' + Newest: 'Најновије' + Oldest: 'Нај старије' + Most Popular: 'Нај популарније' Playlists: - Playlists: '' - This channel does not currently have any playlists: '' + Playlists: 'Плејлиста' + This channel does not currently have any playlists: 'Овај канал тренутно нема + ни једну плејлисту' Sort Types: - Last Video Added: '' - Newest: '' - Oldest: '' + Last Video Added: 'Задњи додат видео' + Newest: 'Нај новије' + Oldest: 'Нај старије' About: - About: '' - Channel Description: '' - Featured Channels: '' + About: 'О...' + Channel Description: 'Опис канала' + Featured Channels: 'Истакнути канали' Video: - Mark As Watched: '' - Remove From History: '' - Video has been marked as watched: '' - Video has been removed from your history: '' - Save Video: '' - Video has been saved: '' - Video has been removed from your saved list: '' - Open in YouTube: '' - Copy YouTube Link: '' - Open YouTube Embedded Player: '' - Copy YouTube Embedded Player Link: '' - Open in Invidious: '' - Copy Invidious Link: '' - Open Channel in YouTube: '' - Copy YouTube Channel Link: '' - Open Channel in Invidious: '' - Copy Invidious Channel Link: '' - View: '' - Views: '' - Loop Playlist: '' - Shuffle Playlist: '' - Reverse Playlist: '' - Play Next Video: '' - Play Previous Video: '' + Mark As Watched: 'Означи као погледано' + Remove From History: 'Уклони из историје' + Video has been marked as watched: 'Видео је постављен као гледан' + Video has been removed from your history: 'Видео је уклоњеј из историје' + Save Video: 'Сачувај видео' + Video has been saved: 'Видео је сачуван' + Video has been removed from your saved list: 'Видео је уклоњен из сачуване листе' + Open in YouTube: 'Отвори у YouTube' + Copy YouTube Link: 'Копирај YouTube везу' + Open YouTube Embedded Player: 'Отвори у Youtube-NoCookie' + Copy YouTube Embedded Player Link: 'Копирај Youtube-NoCookie везу' + Open in Invidious: 'Отвори у Invidious' + Copy Invidious Link: 'Копирај Invidious везу' + Open Channel in YouTube: 'Отвори канал у YouTube' + Copy YouTube Channel Link: 'Копирај везу YouTube канала' + Open Channel in Invidious: 'Отвори канал у Invidious' + Copy Invidious Channel Link: 'Копирај везу Invidious канала' + View: 'Прегледа' + Views: 'Прегледа' + Loop Playlist: 'Безкрајна плејлиста' + Shuffle Playlist: 'Промешај плејлисту' + Reverse Playlist: 'Обрни плејлисту' + Play Next Video: 'Пусти следећи видео' + Play Previous Video: 'Пусти претходни видео' # Context is "X People Watching" - Watching: '' - Watched: '' - Autoplay: '' - Starting soon, please refresh the page to check again: '' + Watching: 'Гледа се' + Watched: 'Одгледано' + Autoplay: 'Аутоматско покретање' + Starting soon, please refresh the page to check again: 'Ускоро почиње, освежите + страницу да бисте поново проверили' # As in a Live Video - Live: '' - Live Now: '' - Live Chat: '' - Enable Live Chat: '' - Live Chat is currently not supported in this build.: '' - 'Chat is disabled or the Live Stream has ended.': '' + Live: 'Директно' + Live Now: 'Директно сада' + Live Chat: 'Директно ћаскање' + Enable Live Chat: 'Упали директно ћаскање' + Live Chat is currently not supported in this build.: 'Директно ћаскање тренутно + није подржан у овој изградњи.' + 'Chat is disabled or the Live Stream has ended.': 'Ћаскање је угашено или директан + пренос је завршен.' Live chat is enabled. Chat messages will appear here once sent.: '' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' Download Video: '' From 28a3a1eb5a86ca263301c010164a8e91712d89ec Mon Sep 17 00:00:00 2001 From: My Random Thoughts Date: Thu, 25 Mar 2021 23:21:12 +0000 Subject: [PATCH 047/297] Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/en_GB/ --- static/locales/en_GB.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/static/locales/en_GB.yaml b/static/locales/en_GB.yaml index 14888422..20576cf3 100644 --- a/static/locales/en_GB.yaml +++ b/static/locales/en_GB.yaml @@ -70,6 +70,7 @@ Search Filters: Fetching results. Please wait: 'Fetching results. Please wait' Fetch more results: 'Fetch more results' # Sidebar + There are no more results for this search: There are no more results for this search Subscriptions: # On Subscriptions Page Subscriptions: 'Subscriptions' @@ -86,6 +87,12 @@ Most Popular: 'Most Popular' Playlists: 'Playlists' User Playlists: Your Playlists: 'Your Playlists' + Playlist Message: This page is not reflective of fully working playlists. It only + lists videos that you have saved or favourited. When the work has finished, all + videos currently here will be migrated to a 'Favourites' playlist. + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your + saved videos are empty. Click on the save button on the corner of a video to have + it listed here History: # On History Page History: 'History' @@ -121,6 +128,7 @@ Settings: (Default is https://invidious.snopyta.org)' Region for Trending: 'Region for Trending' #! List countries + View all Invidious instance information: View all Invidious instance information Theme Settings: Theme Settings: 'Theme Settings' Match Top Bar with Main Color: 'Match top bar with main colour' @@ -180,6 +188,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Playlist Next Video Interval Privacy Settings: Privacy Settings: 'Privacy Settings' Remember History: 'Remember History' @@ -239,6 +248,7 @@ Settings: Unknown data key: 'Unknown data key' How do I import my subscriptions?: 'How do I import my subscriptions?' Check for Legacy Subscriptions: Check for Legacy Subscriptions + Manage Subscriptions: Manage Subscriptions Advanced Settings: Advanced Settings: 'Advanced Settings' Enable Debug Mode (Prints data to the console): 'Enable Debug Mode (Prints data @@ -277,9 +287,26 @@ Settings: Hide Video Views: Hide Video Views Hide Active Subscriptions: Hide Active Subscriptions Distraction Free Settings: Distraction Free Settings + Hide Playlists: Hide Playlists The app needs to restart for changes to take effect. Restart and apply change?: The app needs to restart for changes to take effect. Do you want to restart and apply the changes? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Error getting + network information. Is your proxy configured properly? + City: City + Region: Region + Country: Country + Ip: Ip + Your Info: Your Info + Test Proxy: Test Proxy + Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send + a request to + Proxy Port Number: Proxy Port Number + Proxy Host: Proxy Host + Proxy Protocol: Proxy Protocol + Enable Tor / Proxy: Enable Tor / Proxy + Proxy Settings: Proxy Settings About: #On About page About: About @@ -301,6 +328,22 @@ About: Website: Website Translate via Weblate: Translate via Weblate + these people and projects: these people and projects + FreeTube is made possible by: FreeTube is made possible by + Translate: Translate + room rules: room rules + Please read the: Please read the + Chat on Matrix: Chat on Matrix + Mastodon: Mastodon + Please check for duplicates before posting: Please check for duplicates before posting + GitHub issues: GitHub issues + Report a problem: Report a problem + FreeTube Wiki: FreeTube Wiki + GitHub releases: GitHub releases + Downloads / Changelog: Downloads / Changelog + View License: View Licence + Licensed under the AGPLv3: Licensed under the AGPLv3 + Source code: Source code Profile: Profile Select: 'Profile Select' All Channels: 'All Channels' @@ -342,6 +385,7 @@ Profile: you sure you want to delete the selected channels? This will not delete the channel from any other profile.' #On Channel Page + Profile Filter: Profile Filter Channel: Subscriber: 'Subscriber' Subscribers: 'Subscribers' @@ -461,6 +505,10 @@ Video: Open Channel in Invidious: Open this Channel in Invidious Copy YouTube Channel Link: Copy the Link of this YouTube Channel Open Channel in YouTube: Open this Channel in YouTube + Video has been removed from your saved list: Video has been removed from your saved + list + Video has been saved: Video has been saved + Save Video: Save Video Videos: #& Sort By Sort By: @@ -586,3 +634,7 @@ Tooltips: Preferred API Backend: Choose the back-end that FreeTube uses to obtain data. The local API is a built-in extractor. The Invidious API requires an Invidious server to connect to. +Playing Next Video Interval: Playing next video in no time. Click to cancel. | Playing + next video in {nextVideoInterval} second. Click to cancel. | Playing next video + in {nextVideoInterval} seconds. Click to cancel. +More: More From 8972e7347b643db194c844110e1c69ab43fabfbf Mon Sep 17 00:00:00 2001 From: My Random Thoughts Date: Thu, 25 Mar 2021 23:25:19 +0000 Subject: [PATCH 048/297] Translated using Weblate (Hungarian) Currently translated at 99.7% (447 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 565e3796..798ac30e 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -304,7 +304,7 @@ Settings: Ip: IP-cím Your Info: Az Ön adatai Clicking on Test Proxy will send a request to: 'A Meghatalmazás-ellenőrzés gombra - kattintva kérést küld a következő címre:' + kattintva kérést küld a következő címre' Test Proxy: Meghatalmazás-ellenőrzés Proxy Port Number: Meghatalmazás kikötőszáma Proxy Host: Meghatalmazás gazdaszámítógép @@ -346,7 +346,7 @@ About: 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:' + 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 @@ -546,7 +546,7 @@ Playlist: Videos: 'Videók' View: 'Megtekintés' Views: 'Megtekintések' - Last Updated On: 'Utoljára frissítve:' + Last Updated On: 'Utoljára frissítve' Share Playlist: Share Playlist: 'Lejátszási lista megosztása' Copy YouTube Link: 'YouTube hivatkozás másolása' From 4e11233f3e64d7ed27c9ef9bd21908cceb4386e4 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 26 Mar 2021 19:30:44 +0100 Subject: [PATCH 049/297] Verify check --- src/renderer/App.js | 3 +- src/renderer/store/modules/profile.js | 2 +- src/renderer/store/modules/settings.js | 298 +++++++++++++------------ src/renderer/store/modules/ytdl.js | 2 + 4 files changed, 156 insertions(+), 149 deletions(-) diff --git a/src/renderer/App.js b/src/renderer/App.js index 7f97e842..da30e444 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -85,7 +85,8 @@ export default Vue.extend({ } }, mounted: function () { - this.$store.dispatch('grabUserSettings').then(() => { + this.$store.dispatch('grabUserSettings').then((result) => { + console.log('AFTER GRABBING', result) this.$store.dispatch('grabHistory') this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels')) this.$store.dispatch('grabAllPlaylists') diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js index 991bd53a..b28b568b 100644 --- a/src/renderer/store/modules/profile.js +++ b/src/renderer/store/modules/profile.js @@ -27,7 +27,7 @@ const profileDb = new Datastore({ const state = { profileList: [{ _id: 'allChannels', - name: 'Brudi Channels', + name: 'All Channels', bgColor: '#000000', textColor: '#FFFFFF', subscriptions: [] diff --git a/src/renderer/store/modules/settings.js b/src/renderer/store/modules/settings.js index aefb4809..1c427b05 100644 --- a/src/renderer/store/modules/settings.js +++ b/src/renderer/store/modules/settings.js @@ -264,153 +264,157 @@ const getters = { const actions = { grabUserSettings ({ dispatch, commit, rootState }) { - settingsDb.find({}, (err, results) => { - if (!err) { - console.log(results) - results.forEach((result) => { - switch (result._id) { - case 'invidiousInstance': - if (result.value === '') { - dispatch('updateInvidiousInstance', 'https://invidious.snopyta.org') - } else { - commit('setInvidiousInstance', result.value) - } - break - case 'backendFallback': - commit('setBackendFallback', result.value) - break - case 'defaultProfile': - console.log("IN SETTING DEFAULT:", result.value) - commit('setDefaultProfile', result.value) - break - case 'checkForUpdates': - commit('setCheckForUpdates', result.value) - break - case 'checkForBlogPosts': - commit('setCheckForBlogPosts', result.value) - break - case 'enableSearchSuggestions': - commit('setEnableSearchSuggestions', result.value) - break - case 'backendPreference': - commit('setBackendPreference', result.value) - break - case 'landingPage': - commit('setLandingPage', result.value) - break - case 'region': - commit('setRegion', result.value) - break - case 'listType': - commit('setListType', result.value) - break - case 'thumbnailPreference': - commit('setThumbnailPreference', result.value) - break - case 'barColor': - commit('setBarColor', result.value) - break - case 'uiScale': - webframe.setZoomFactor(parseInt(result.value) / 100) - commit('setUiScale', result.value) - break - case 'disableSmoothScrolling': - commit('setDisableSmoothScrolling', result.value) - break - case 'hideWatchedSubs': - commit('setHideWatchedSubs', result.value) - break - case 'useRssFeeds': - commit('setUseRssFeeds', result.value) - break - case 'rememberHistory': - commit('setRememberHistory', result.value) - break - case 'saveWatchedProgress': - commit('setSaveWatchedProgress', result.value) - break - case 'autoplayVideos': - commit('setAutoplayVideos', result.value) - break - case 'autoplayPlaylists': - commit('setAutoplayPlaylists', result.value) - break - case 'playNextVideo': - commit('setPlayNextVideo', result.value) - break - case 'enableSubtitles': - commit('setEnableSubtitles', result.value) - break - case 'forceLocalBackendForLegacy': - commit('setForceLocalBackendForLegacy', result.value) - break - case 'proxyVideos': - commit('setProxyVideos', result.value) - break - case 'useProxy': - commit('setUseProxy', result.value) - break - case 'proxyProtocol': - commit('setProxyProtocol', result.value) - break - case 'proxyHostname': - commit('setProxyHostname', result.value) - break - case 'proxyPort': - commit('setProxyPort', result.value) - break - case 'defaultTheatreMode': - commit('setDefaultTheatreMode', result.value) - break - case 'defaultInterval': - commit('setDefaultInterval', result.value) - break - case 'defaultVolume': - commit('setDefaultVolume', result.value) - sessionStorage.setItem('volume', result.value) - break - case 'defaultPlayback': - commit('setDefaultPlayback', result.value) - break - case 'defaultVideoFormat': - commit('setDefaultVideoFormat', result.value) - break - case 'defaultQuality': - commit('setDefaultQuality', result.value) - break - case 'hideVideoViews': - commit('setHideVideoViews', result.value) - break - case 'hideVideoLikesAndDislikes': - commit('setHideVideoLikesAndDislikes', result.value) - break - case 'hideChannelSubscriptions': - commit('setHideChannelSubscriptions', result.value) - break - case 'hideCommentLikes': - commit('setHideCommentLikes', result.value) - break - case 'hideRecommendedVideos': - commit('setHideRecommendedVideos', result.value) - break - case 'hideTrendingVideos': - commit('setHideTrendingVideos', result.value) - break - case 'hidePopularVideos': - commit('setHidePopularVideos', result.value) - break - case 'hidePlaylists': - commit('setHidePlaylists', result.value) - break - case 'hideLiveChat': - commit('setHideLiveChat', result.value) - break - case 'hideActiveSubscriptions': - commit('setHideActiveSubscriptions', result.value) - break - } - }) - } + return new Promise((resolve, reject) => { + settingsDb.find({}, (err, results) => { + if (!err) { + console.log(results) + results.forEach((result) => { + switch (result._id) { + case 'invidiousInstance': + if (result.value === '') { + dispatch('updateInvidiousInstance', 'https://invidious.snopyta.org') + } else { + commit('setInvidiousInstance', result.value) + } + break + case 'backendFallback': + commit('setBackendFallback', result.value) + break + case 'defaultProfile': + console.log('IN SETTING DEFAULT:', result.value) + commit('setDefaultProfile', result.value) + break + case 'checkForUpdates': + commit('setCheckForUpdates', result.value) + break + case 'checkForBlogPosts': + commit('setCheckForBlogPosts', result.value) + break + case 'enableSearchSuggestions': + commit('setEnableSearchSuggestions', result.value) + break + case 'backendPreference': + commit('setBackendPreference', result.value) + break + case 'landingPage': + commit('setLandingPage', result.value) + break + case 'region': + commit('setRegion', result.value) + break + case 'listType': + commit('setListType', result.value) + break + case 'thumbnailPreference': + commit('setThumbnailPreference', result.value) + break + case 'barColor': + commit('setBarColor', result.value) + break + case 'uiScale': + webframe.setZoomFactor(parseInt(result.value) / 100) + commit('setUiScale', result.value) + break + case 'disableSmoothScrolling': + commit('setDisableSmoothScrolling', result.value) + break + case 'hideWatchedSubs': + commit('setHideWatchedSubs', result.value) + break + case 'useRssFeeds': + commit('setUseRssFeeds', result.value) + break + case 'rememberHistory': + commit('setRememberHistory', result.value) + break + case 'saveWatchedProgress': + commit('setSaveWatchedProgress', result.value) + break + case 'autoplayVideos': + commit('setAutoplayVideos', result.value) + break + case 'autoplayPlaylists': + commit('setAutoplayPlaylists', result.value) + break + case 'playNextVideo': + commit('setPlayNextVideo', result.value) + break + case 'enableSubtitles': + commit('setEnableSubtitles', result.value) + break + case 'forceLocalBackendForLegacy': + commit('setForceLocalBackendForLegacy', result.value) + break + case 'proxyVideos': + commit('setProxyVideos', result.value) + break + case 'useProxy': + commit('setUseProxy', result.value) + break + case 'proxyProtocol': + commit('setProxyProtocol', result.value) + break + case 'proxyHostname': + commit('setProxyHostname', result.value) + break + case 'proxyPort': + commit('setProxyPort', result.value) + break + case 'defaultTheatreMode': + commit('setDefaultTheatreMode', result.value) + break + case 'defaultInterval': + commit('setDefaultInterval', result.value) + break + case 'defaultVolume': + commit('setDefaultVolume', result.value) + sessionStorage.setItem('volume', result.value) + break + case 'defaultPlayback': + commit('setDefaultPlayback', result.value) + break + case 'defaultVideoFormat': + commit('setDefaultVideoFormat', result.value) + break + case 'defaultQuality': + commit('setDefaultQuality', result.value) + break + case 'hideVideoViews': + commit('setHideVideoViews', result.value) + break + case 'hideVideoLikesAndDislikes': + commit('setHideVideoLikesAndDislikes', result.value) + break + case 'hideChannelSubscriptions': + commit('setHideChannelSubscriptions', result.value) + break + case 'hideCommentLikes': + commit('setHideCommentLikes', result.value) + break + case 'hideRecommendedVideos': + commit('setHideRecommendedVideos', result.value) + break + case 'hideTrendingVideos': + commit('setHideTrendingVideos', result.value) + break + case 'hidePopularVideos': + commit('setHidePopularVideos', result.value) + break + case 'hidePlaylists': + commit('setHidePlaylists', result.value) + break + case 'hideLiveChat': + commit('setHideLiveChat', result.value) + break + case 'hideActiveSubscriptions': + commit('setHideActiveSubscriptions', result.value) + break + } + }) + resolve() + } + reject(err) + }) }) }, diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js index 5d6bceb9..eefeb60a 100644 --- a/src/renderer/store/modules/ytdl.js +++ b/src/renderer/store/modules/ytdl.js @@ -252,6 +252,7 @@ const actions = { }, ytGetPlaylistInfo ({ rootState }, playlistId) { + console.log("PALYLIST INTOFOF") return new Promise((resolve, reject) => { console.log(playlistId) console.log('Getting playlist info please wait...') @@ -297,6 +298,7 @@ const actions = { limit: 'Infinity', requestOptions: { agent } }).then((result) => { + console.log("RESULT PLAYLIST", result) resolve(result) }).catch((err) => { reject(err) From b3249f6719fc9d95fbc2c7bf1fbc8a43e0727a1d Mon Sep 17 00:00:00 2001 From: Onni Date: Fri, 26 Mar 2021 22:47:26 +0000 Subject: [PATCH 050/297] Translated using Weblate (Finnish) Currently translated at 89.0% (399 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fi/ --- static/locales/fi.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/static/locales/fi.yaml b/static/locales/fi.yaml index 51cd58a8..86580c7c 100644 --- a/static/locales/fi.yaml +++ b/static/locales/fi.yaml @@ -62,6 +62,7 @@ Search Filters: Fetching results. Please wait: 'Haetaan tuloksia. Odota hetki' Fetch more results: 'Hae lisää tuloksia' # Sidebar + There are no more results for this search: Ei lisää tuloksia tällä haulla Subscriptions: # On Subscriptions Page Subscriptions: 'Tilaukset' @@ -79,6 +80,12 @@ Most Popular: 'Suosituimmat' Playlists: 'Soittolistat' User Playlists: Your Playlists: 'Omat soittolistat' + Playlist Message: Tämä sivu ei kuvasta täysin toimivia soittolistoja. Se listaa + vain tallentamasi tai tykkäämäsi videot. Kun tämä on valmis, kaikki täällä olevat + videot siirretään "Tykkäykset"soittolistaan. + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Et + ole tallentanut videoita. Paina "Tallenna" painiketta videon kulmassa tallentaaksesi + sen tänne History: # On History Page History: 'Historia' @@ -276,7 +283,7 @@ Settings: Distraction Free Settings: Häiriöttömän tilan asetukset Hide Video Views: Piilota videon katselukerrat The app needs to restart for changes to take effect. Restart and apply change?: Sovellus - on käynnistettävä uudelleen, jotta sovellukset tulevat voimaan. Käynnistetäänkö + on käynnistettävä uudelleen, jotta muutokset tulevat voimaan. Käynnistetäänkö uudelleen? About: #On About page @@ -585,3 +592,4 @@ Tooltips: Kun valittuna, paikallinen API käyttää vanhoja formaatteja Invidiousin käyttämien sijaan. Tämä auttaa, jos Invidiousin palauttamat videot eivät toimi maarajoituksien takia +More: Lisää From c6f4401f4afb8106517363210af76e23239efd6f Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:34:08 +0000 Subject: [PATCH 051/297] Translated using Weblate (German) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 85b1e804..eeed1408 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -85,12 +85,12 @@ Playlists: Wiedergabelisten User Playlists: Your Playlists: Deine Wiedergabelisten Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Deine - gespeicherten Videos sind leer. Klicken Sie auf die Schaltfläche "Speichern" in + gespeicherten Videos sind leer. Klicken Sie auf die Schaltfläche „Speichern“ in der Ecke eines Videos, damit es hier aufgelistet wird Playlist Message: Diese Seite spiegelt nicht die vollständig funktionierenden Wiedergabelisten wider. Sie listet nur Videos auf, die Sie gespeichert oder favorisiert haben. Wenn die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier - befinden, in eine Wiedergabeliste "Favoriten" migriert. + befinden, in eine Wiedergabeliste „Favoriten“ migriert. History: # On History Page History: Verlauf @@ -189,7 +189,7 @@ Settings: 1440p: 1440p 4k: 4k 8k: 8k - Playlist Next Video Interval: Zeit zwischen automatischer Playlist-Videowiedergabe + Playlist Next Video Interval: Zeit zwischen automatischer Videowiedergabe Subscription Settings: Subscription Settings: Abonnement-Einstellungen Hide Videos on Watch: Verstecke Videos bei Wiedergabe @@ -296,7 +296,7 @@ Settings: Hide Video Views: Video-Aufrufe verbergen Distraction Free Settings: Einstellungen für ablenkungsfreien Modus Hide Active Subscriptions: Aktive Abonnements ausblenden - Hide Playlists: Playlists ausblenden + Hide Playlists: Wiedergabelisten ausblenden The app needs to restart for changes to take effect. Restart and apply change?: Um die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und Änderungen aktivieren? @@ -352,7 +352,7 @@ About: This software is FOSS and released under the GNU Affero General Public License v3.0.: Diese freie Software ist unter der AGPL-3.0 lizenziert. Translate via Weblate: Auf Weblate übersetzen - Website: Webseite + Website: Website Source Code: Quellcode Release Notes: Versionshinweise Blog: Blog @@ -361,7 +361,7 @@ About: Wiki: Wiki Report an Issue: Fehler melden Channel Rules: Kanalregeln - Email: Email + Email: E-Mail License: Lizenz Beta: Beta Donate: Spenden @@ -377,7 +377,7 @@ About: Mastodon: Mastodon Please check for duplicates before posting: Bitte überprüfe vor dem Absenden, ob es Duplikate gibt - GitHub issues: GitHub Issues + GitHub issues: GitHub-Probleme Report a problem: Problem melden FreeTube Wiki: FreeTube Wiki GitHub releases: GitHub Veröffentlichungen @@ -675,9 +675,9 @@ Tooltips: die Trends angezeigt werden sollen. Nicht alle Optionen werden auch von YouTube unterstützt Subscription Settings: - Fetch Feeds from RSS: Mit dieser Option nutzt FreeTube einen RSS-Feed von Youtube + Fetch Feeds from RSS: Mit dieser Option nutzt FreeTube einen RSS-Feed von YouTube, um deine Abonnements zu aktualisieren. RSS ist sowohl schneller als auch sicherer, - wenn du oft temporär von YouTube geblockt wirst(Error 429). Allerdings sind + wenn du oft temporär von YouTube geblockt wirst (Error 429). Allerdings sind nicht alle Videoinformationen, wie Videodauer oder Live-Status, verfügbar. Player Settings: Default Video Format: Auswahl der Formate bei der Videowiedergabe. Dash-Formate From 8ef3c1f8012130674938c5f7f7814869fa3ff828 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:32:27 +0000 Subject: [PATCH 052/297] Translated using Weblate (Portuguese (Portugal)) Currently translated at 98.2% (440 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_PT/ --- static/locales/pt-PT.yaml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/static/locales/pt-PT.yaml b/static/locales/pt-PT.yaml index 2bd9cbc2..e7b64010 100644 --- a/static/locales/pt-PT.yaml +++ b/static/locales/pt-PT.yaml @@ -88,11 +88,12 @@ Most Popular: Mais Populares Playlists: Listas de Reprodução User Playlists: 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, + 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. + 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: # On History Page History: Histórico @@ -129,7 +130,8 @@ Settings: End: Fim 'Invidious Instance (Default is https://invidious.snopyta.org)': Instância Invidious (Por omissão é https://invidious.snopyta.org) - View all Invidious instance information: Mostrar toda a informação sobre esta instância Invidious + View all Invidious instance information: Mostrar toda a informação sobre esta + instância Invidious Region for Trending: Região para as tendências #! List countries Theme Settings: @@ -275,14 +277,17 @@ Settings: Proxy Protocol: Protocolo do Intermediário Proxy Host: Endereço do Intermediário Proxy Port Number: Porto do Intermediário - Clicking on Test Proxy will send a request to: Carregar em Testar Intermediário irá enviar um pedido a + Clicking on Test Proxy will send a request to: Carregar em Testar Intermediário + irá enviar um pedido a Test Proxy: Testar Intermediário Your Info: A sua Informação Ip: Ip Country: País Region: Região City: Cidade - Error getting network information. Is your proxy configured properly?: Houve um erro a receber a informação sobre a sua rede. Verifique que o seu intermediário está configurado correctamente. + Error getting network information. Is your proxy configured properly?: Houve um + erro a receber a informação sobre a sua rede. Verifique que o seu intermediário + está configurado correctamente. About: #On About page About: Sobre @@ -293,14 +298,15 @@ About: Downloads / Changelog: Descarregar / Mudanças GitHub releases: Lançamentos no GitHub Help: Ajuda - FreeTube Wiki: Wiki do FreeTube - FAQ: Perguntas Frequentes + FreeTube Wiki: Wiki do FreeTube + FAQ: Perguntas frequentes Report a problem: Relatar um problema GitHub issues: Problemas no GitHub - Please check for duplicates before posting: É favor verificar se um problema já foi relatado - Website: Site + Please check for duplicates before posting: É favor verificar se um problema já + foi relatado + Website: Saite Blog: Blogue - Email: Email + Email: Correio eletrónico Mastodon: Mastodon Chat on Matrix: Chat no Matrix Please read the: Por favor leia as From 8aa84ff35ffe1af8de0ecc8e5595be2284562cd2 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:31:31 +0000 Subject: [PATCH 053/297] Translated using Weblate (Japanese) Currently translated at 98.6% (442 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ja/ --- static/locales/ja.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/ja.yaml b/static/locales/ja.yaml index 3f8a722f..dfd664e5 100644 --- a/static/locales/ja.yaml +++ b/static/locales/ja.yaml @@ -318,9 +318,9 @@ About: Please read the: 確認してください Chat on Matrix: Matrix でチャット Mastodon: Mastodon - Email: メール アドレス + Email: 電子メール Blog: ブログ - Website: WEB サイト + Website: ウェブサイト Please check for duplicates before posting: 投稿する前に重複を確認してください GitHub issues: GitHub の課題ツール Report a problem: 問題の報告 From 648c5d3e346f0550d23262848eb185bc363a9d70 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:28:04 +0000 Subject: [PATCH 054/297] Translated using Weblate (Chinese (Simplified)) Currently translated at 93.5% (419 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/ --- static/locales/zh-CN.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/zh-CN.yaml b/static/locales/zh-CN.yaml index 3770f8a3..d25d8b8d 100644 --- a/static/locales/zh-CN.yaml +++ b/static/locales/zh-CN.yaml @@ -305,6 +305,9 @@ About: #On Channel Page Source code: 源代码 Beta: 测试版 + Website: 网站 + Blog: 博客 + Email: 电子邮件 Channel: Subscriber: '订阅者' Subscribers: '订阅者' From b70864f782c31e72d398135dc9c32c05782dcf97 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:33:42 +0000 Subject: [PATCH 055/297] Translated using Weblate (Finnish) Currently translated at 90.1% (404 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fi/ --- static/locales/fi.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/locales/fi.yaml b/static/locales/fi.yaml index 86580c7c..0f39d595 100644 --- a/static/locales/fi.yaml +++ b/static/locales/fi.yaml @@ -314,6 +314,11 @@ About: Latest FreeTube News: 'Viimeisimmät Freetube-uutiset' #On Channel Page + GitHub issues: GitHub-ongelmat + Report a problem: Ilmoita ongelmasta + FAQ: UKK + Blog: Blogi + Email: Sähköposti Channel: Subscriber: 'Tilaaja' Subscribers: 'Tilaajat' From f9e5ffa8de0e0334202130173ae75a5a01e4e1c9 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:20:43 +0000 Subject: [PATCH 056/297] Translated using Weblate (French) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 6a98430c..36a4dab0 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -91,7 +91,7 @@ User Playlists: Playlist Message: Cette page ne reflète pas les listes de lecture entièrement fonctionnelles. Elle ne répertorie que les vidéos que vous avez enregistrées ou mises en favoris. Une fois le travail terminé, toutes les vidéos actuellement présentes ici seront - migrées vers une liste de lecture «Favoris». + migrées vers une liste de lecture « Favoris ». History: # On History Page History: 'Historique' @@ -294,7 +294,7 @@ Settings: Hide Comment Likes: Masquer les J'aime dans les commentaires Hide Channel Subscribers: Masquer le nombre d'abonnés des chaînes Hide Video Views: Masquer les vues des vidéos - Hide Live Chat: Masquer le chat en direct + Hide Live Chat: Masquer le tchat en direct Hide Popular Videos: Masquer les vidéos populaires Hide Trending Videos: Masquer les tendances Hide Recommended Videos: Masquer les vidéos recommandées @@ -356,7 +356,7 @@ About: #On Channel Page Channel Rules: Règles du salon - Website: Site internet + Website: Site web Source Code: Code source Release Notes: Notes de version Email: Courriel @@ -373,7 +373,7 @@ About: Donate: Faire un don Useful Links: Liens utiles Translate: Aidez-nous à traduire FreeTube - Chat on Matrix: Chatter sur Matrix + Chat on Matrix: Discuter sur Matrix Mastodon: Mastodon Report a problem: Signaler un problème View License: Voir la license @@ -384,7 +384,7 @@ About: room rules: règles du salon Please read the: Veuillez lire les Please check for duplicates before posting: Veuillez vérifier s'il y a des doublons - avant de poster + avant de publier GitHub issues: Les problèmes identifiés par la communauté sur GitHub FreeTube Wiki: Wiki de FreeTube GitHub releases: Les différentes versions de FreeTube disponibles sur GitHub From 9cd85fcc36290aba1572ed20953d05083e4967c0 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:32:45 +0000 Subject: [PATCH 057/297] Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.8% (443 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_BR/ --- static/locales/pt-BR.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/pt-BR.yaml b/static/locales/pt-BR.yaml index 515ae532..3063bf7a 100644 --- a/static/locales/pt-BR.yaml +++ b/static/locales/pt-BR.yaml @@ -343,7 +343,7 @@ About: #On Channel Page GitHub issues: Problemas com o GitHub Report a problem: Reportar um problema - FAQ: FAQs + FAQ: Perguntas frequentes FreeTube Wiki: Wiki do FreeTube Help: Ajuda GitHub releases: Lançamentos do GitHub @@ -363,7 +363,7 @@ About: Mastodon: Mastodon Email: E-mail Blog: Blog - Website: Site web + Website: Saite web Please check for duplicates before posting: Verifique se há duplicatas antes de postar Channel: From 1b97b1628e63ad1fd4ffcc395c690ac7901209ba Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:11:20 +0000 Subject: [PATCH 058/297] Translated using Weblate (Russian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 19739547..9ac7e6d2 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -354,7 +354,7 @@ About: Mastodon: Mastodon Email: Электронная почта Blog: Блог - Website: Сайт + Website: Веб-сайт Report a problem: Сообщить о проблеме FAQ: FAQ FreeTube Wiki: Вики-сайт FreeTube From be847ab06a227691a350f25d71d0b9b79deb1f81 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:07:25 +0000 Subject: [PATCH 059/297] Translated using Weblate (Spanish (Mexico)) Currently translated at 77.6% (348 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es_MX/ --- static/locales/es-MX.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/es-MX.yaml b/static/locales/es-MX.yaml index a756a41f..cceefbba 100644 --- a/static/locales/es-MX.yaml +++ b/static/locales/es-MX.yaml @@ -294,6 +294,9 @@ About: Latest FreeTube News: 'Últimas noticias de FreeTube' #On Channel Page + Blog: Blog + Website: Sitio web + Email: Correo electrónico Channel: Subscriber: 'Suscriptor' Subscribers: 'Suscriptores' From 34e3441616b6908d41a1def68728430f53a81aba Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:03:21 +0000 Subject: [PATCH 060/297] Translated using Weblate (Polish) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index db0cf040..d2103d2b 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -356,7 +356,7 @@ About: Wiki: Wiki Report an Issue: Zgłoś problem Channel Rules: Zasady kanału - Email: Email + Email: E-mail License: Licencja Beta: Beta Donate: Wesprzyj From c453f447f8ff9ef1c9b2075cc3931a561aa09d3d Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:03:35 +0000 Subject: [PATCH 061/297] Translated using Weblate (Dutch) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index dc211420..69703964 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -354,7 +354,7 @@ About: Please read the: Lees alstublieft de Chat on Matrix: Chat op Matrix Mastodon: Mastodon - Email: Email + Email: E-mail Blog: Blog Website: Website Please check for duplicates before posting: Controleer op duplicaten voordat u een From e31c3638563e19f32c5f345f1d484b1582dd5a00 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:24:36 +0000 Subject: [PATCH 062/297] Translated using Weblate (Italian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index a414bbf0..9243bb25 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -65,7 +65,7 @@ Search Filters: Fetching results. Please wait: 'Caricamento risultati. Attendi' Fetch more results: 'Carica più risultati' # Sidebar - There are no more results for this search: Non ci sono altri risultati per questa + There are no more results for this search: Non ci sono più risultati per questa ricerca Subscriptions: # On Subscriptions Page @@ -86,11 +86,11 @@ Playlists: 'Playlist' User Playlists: Your Playlists: 'Le tue playlist' Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: La - lista preferiti è vuota. Clicca sul tasto salva in basso a destra di un video + lista preferiti è vuota. Clicca sul tasto Salva in basso a destra di un video per vederlo qui Playlist Message: Questa pagina non è rappresentativa di una playlist completa. Mostra solo video che hai salvato o aggiunti ai preferiti. A lavoro finito, tutti - i video attualmente qui verrano spostati in una playlist dei 'preferiti'. + i video attualmente qui verrano spostati in una playlist dei «Preferiti». History: # On History Page History: 'Cronologia' @@ -126,7 +126,8 @@ Settings: #! List countries Check for Latest Blog Posts: Controlla gli ultimi post del blog Check for Updates: Controlla gli aggiornamenti - View all Invidious instance information: Espandi informazioni delle istanze Invidious + View all Invidious instance information: Visualizza tutti i dati della istanza + Invidious Theme Settings: Theme Settings: 'Impostazioni Tema' Match Top Bar with Main Color: 'Abbina la barra superiore con il colore principale' @@ -186,6 +187,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Intervallo video successivo nella playlist Privacy Settings: Privacy Settings: 'Impostazioni privacy' Remember History: 'Salva la Cronologia' @@ -293,6 +295,7 @@ Settings: Hide Live Chat: Nascondi la chat live Hide Video Likes And Dislikes: Nascondi Mi piace e Non mi piace Hide Active Subscriptions: Nascondi le iscrizioni attive + Hide Playlists: Nascondi le playlist The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione deve essere riavviata per applicare i cambiamenti. Riavviare e applicare i cambiamenti ora? @@ -308,8 +311,8 @@ Settings: Country: Paese Ip: Ip Your Info: Le tue informazioni - Test Proxy: Test Proxy - Clicking on Test Proxy will send a request to: Cliccando su "Testa Proxy" verrà + Test Proxy: Testa proxy + Clicking on Test Proxy will send a request to: Cliccando su «Testa proxy» verrà inviata una richiesta a Proxy Port Number: Numero di porta Proxy Proxy Host: Host Proxy @@ -349,7 +352,7 @@ About: Blog: Blog GitHub issues: Segnalazioni GitHub Report a problem: Segnala un problema - FAQ: Domande Frequenti + FAQ: Domande frequenti FreeTube Wiki: Wiki FreeTube Help: Aiuto Downloads / Changelog: Download / Changelog @@ -360,11 +363,11 @@ About: Translate: Traduci room rules: Regole stanza Please read the: Si prega di leggere - Chat on Matrix: Chat su Matrix + Chat on Matrix: Chatta su Matrix Mastodon: Mastodon - Email: Email + Email: E-mail Website: Sito web - Please check for duplicates before posting: Perfavore controlla se ci sono duplicati + Please check for duplicates before posting: Per favore controlla se ci sono duplicati prima di pubblicare View License: Vedi licenza Licensed under the AGPLv3: Distribuito sotto la licenza AGPLv3 @@ -631,6 +634,7 @@ Profile: Profile Manager: Gestione Profili All Channels: Tutti i Canali Profile Select: Seleziona il Profilo + Profile Filter: Filtro profilo This video is unavailable because of missing formats. This can happen due to country unavailability.: Questo video non è disponibile a causa di alcuni formati mancanti. Questo può succedere in caso di mancata disponibilità del paese. @@ -650,7 +654,7 @@ Tooltips: Fetch Feeds from RSS: Quando abilitato, FreeTube userà gli RSS invece del metodo standard per leggere la tua lista istrizioni. Gli RSS sono più veloci e impediscono il blocco dell'IP ma non mostrano informazioni come la durata video o lo stato - delle live + delle dirette General Settings: Invidious Instance: L'istanza Invidious che FreeTube usa per le chiamate API. Pulisci l'istanza attuale per vedere una lista di istanze pubbliche da cui scegliere @@ -665,3 +669,8 @@ Tooltips: Region for Trending: La regione delle tendenze permette di scegliere la nazione di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate sono ufficialmente supportate da YouTube +Playing Next Video Interval: Riproduzione del video successivo in pochissimo tempo. + Fare clic per annullare. | Riproduzione del video successivo tra {nextVideoInterval} + secondo. Fare clic per annullare. | Riproduzione del video successivo tra {nextVideoInterval} + secondi. Fare clic per annullare. +More: Altro From e4d26f14880d229c0b3dcfc31ba1e32082891d36 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:26:51 +0000 Subject: [PATCH 063/297] Translated using Weblate (Spanish (Argentina)) Currently translated at 38.8% (174 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es_AR/ --- static/locales/es_AR.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/static/locales/es_AR.yaml b/static/locales/es_AR.yaml index fecf1c90..ce2438c4 100644 --- a/static/locales/es_AR.yaml +++ b/static/locales/es_AR.yaml @@ -273,7 +273,7 @@ Settings: Distraction Free Settings: Configuraciones para evitar distraerse The app needs to restart for changes to take effect. Restart and apply change?: Esta aplicación necesita reiniciarse para que los cambios entren en efecto. ¿Reiniciar - y aplicar cambios? + y aplicar el cambio? About: #On About page About: '' @@ -296,6 +296,9 @@ About: Latest FreeTube News: '' + Website: Sitio web + Email: Correo electrónico + Blog: Blog Profile: All Channels: '' Profile Manager: '' @@ -477,8 +480,8 @@ Playing next video in 5 seconds. Click to cancel: '' Canceled next video autoplay: '' 'The playlist has ended. Enable loop to continue playing': '' -Yes: '' -No: '' +Yes: 'Sí' +No: 'No' A new blog is now available, $. Click to view more: Un nuevo blog está disponible, $. Hacé click para ver más Download From Site: Descargar desde el sitio From 1239e72df1ea987ef74891341687e5aac3cffa37 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:06:41 +0000 Subject: [PATCH 064/297] Translated using Weblate (Spanish) Currently translated at 99.7% (447 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 95061b1b..ba10fdaa 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -342,7 +342,7 @@ About: Mastodon: Mastodon Email: Correo electrónico Blog: Blog - Website: Página web + Website: Sitio web Please check for duplicates before posting: Por favor, antes de publicar asegúrate de no duplicar temas GitHub issues: Sugerencias en GitHub From 94ebc0310b66ed791fe3611b14c13b49ba038094 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:32:59 +0000 Subject: [PATCH 065/297] Translated using Weblate (Portuguese) Currently translated at 79.4% (356 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt/ --- static/locales/pt.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/pt.yaml b/static/locales/pt.yaml index f9896ff4..7cc20d47 100644 --- a/static/locales/pt.yaml +++ b/static/locales/pt.yaml @@ -289,6 +289,10 @@ About: Latest FreeTube News: 'Notícias recentes sobre FreeTube' + FAQ: Perguntas frequentes + Blog: Blogue + Website: Sítio Web + Email: Correio eletrónico Profile: Profile Select: 'Selecção de perfil' All Channels: 'Todos os Canais' From 289a5fdb4234b4b745be6fe0b655970cec4b93d4 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:10:46 +0000 Subject: [PATCH 066/297] Translated using Weblate (Esperanto) Currently translated at 0.6% (3 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/eo/ --- static/locales/eo.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/eo.yaml b/static/locales/eo.yaml index ad2921fb..6a27acb1 100644 --- a/static/locales/eo.yaml +++ b/static/locales/eo.yaml @@ -258,6 +258,9 @@ About: Latest FreeTube News: '' + Blog: Blogo + Website: Retejo + Email: Retpoŝto Profile: Profile Select: '' All Channels: '' From ba12fcbc5dcdd1f27fef952aa20d7bc0a2e521ff Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:30:30 +0000 Subject: [PATCH 067/297] Translated using Weblate (Catalan) Currently translated at 20.7% (93 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ca/ --- static/locales/ca.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/ca.yaml b/static/locales/ca.yaml index 34a3cfe2..4fda4de6 100644 --- a/static/locales/ca.yaml +++ b/static/locales/ca.yaml @@ -273,6 +273,9 @@ About: Latest FreeTube News: '' + Blog: Blog + Website: Lloc web + Email: Correu-e Profile: Profile Select: '' All Channels: '' From e4de7c3450ed639380ec79d08658bcf9061aff00 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:39:19 +0000 Subject: [PATCH 068/297] Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/en_GB/ --- static/locales/en_GB.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/static/locales/en_GB.yaml b/static/locales/en_GB.yaml index 20576cf3..5f78a831 100644 --- a/static/locales/en_GB.yaml +++ b/static/locales/en_GB.yaml @@ -44,7 +44,7 @@ Search Filters: Sort By: 'Sort By' Most Relevant: 'Most Relevant' Rating: 'Rating' - Upload Date: 'Upload Date' + Upload Date: 'Upload date' View Count: 'View Count' Time: Time: 'Time' @@ -89,7 +89,7 @@ User Playlists: Your Playlists: 'Your Playlists' Playlist Message: This page is not reflective of fully working playlists. It only lists videos that you have saved or favourited. When the work has finished, all - videos currently here will be migrated to a 'Favourites' playlist. + videos currently here will be migrated to a ‘Favourites’ playlist. Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your saved videos are empty. Click on the save button on the corner of a video to have it listed here @@ -316,7 +316,7 @@ About: Donate: Donate Beta: Beta License: License - Email: Email + Email: E-mail Channel Rules: Channel Rules Report an Issue: Report an Issue Wiki: Wiki @@ -608,19 +608,19 @@ Tooltips: Subscription Settings: Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of its default method to grab your subscription feed. RSS is faster and prevents IP blocking, - but it doesn't provide certain information like video duration, or live status + but it doesn’t provide certain information like video duration, or live status Player Settings: Default Video Format: Set the formats used when a video plays. Dash formats can play much higher qualities. Legacy formats are limited to a maximum of 720p, but use less bandwidth. Audio formats stream only audio Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead of making a direct connection to YouTube. Overrides API preference - Force Local Backend for Legacy Formats: This only works when the Invidious API - is your default. When enabled, the local API will run and use the legacy formats - returned by that instead of the ones returned by Invidious. It helps when the - videos returned by Invidious can't play because of regional restrictions + Force Local Backend for Legacy Formats: Only works when the Invidious API is your + default. When enabled, the local API will run and use the legacy formats returned + by that instead of the ones returned by Invidious. Helps when the videos returned + by Invidious don’t play due to country restrictions General Settings: - Region for Trending: The region of trends allows you to pick which country's trending + Region for Trending: The region of trends allows you to pick which country’s trending videos you want to have displayed. Not all countries displayed are actually supported by YouTube Invidious Instance: The Invidious instance that FreeTube will connect to for API @@ -630,7 +630,7 @@ Tooltips: a frame of the video instead of the default thumbnail Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem, FreeTube will automatically attempt to use your non-preferred API as a fallback - method when it's enabled + method when enabled Preferred API Backend: Choose the back-end that FreeTube uses to obtain data. The local API is a built-in extractor. The Invidious API requires an Invidious server to connect to. From cac79b601b77d7ab1b50d9cd742d38bf3cfa353f Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:10:12 +0000 Subject: [PATCH 069/297] Translated using Weblate (Swedish) Currently translated at 98.2% (440 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sv/ --- static/locales/sv.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/sv.yaml b/static/locales/sv.yaml index 937a9ffa..1a401a95 100644 --- a/static/locales/sv.yaml +++ b/static/locales/sv.yaml @@ -342,7 +342,7 @@ About: Mastodon: Mastodon Email: E-post Blog: Blogg - Website: Webbsida + Website: Webbplats Please check for duplicates before posting: Vänligen kontrollera om dubbletter innan du postar GitHub issues: GitHub-problem From f9233c19c1eb427774373f635e8b50905f8918dc Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:03:05 +0000 Subject: [PATCH 070/297] Translated using Weblate (Estonian) Currently translated at 20.7% (93 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/et/ --- static/locales/et.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/et.yaml b/static/locales/et.yaml index e55de676..0907d44a 100644 --- a/static/locales/et.yaml +++ b/static/locales/et.yaml @@ -266,6 +266,7 @@ About: Latest FreeTube News: '' + Email: E-post Profile: Profile Select: '' All Channels: '' From 802eb31bafbbffb5372d4bb91054bb56a111a743 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:08:09 +0000 Subject: [PATCH 071/297] Translated using Weblate (Czech) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 59a5ed67..1d7cc26c 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -345,8 +345,8 @@ About: room rules: pravidla místnosti Please read the: Prosím, přečtěte si Chat on Matrix: Chat na síti Matrix - Mastodon: mastodon - Email: Email + Mastodon: Mastodon + Email: E-mail Blog: Blog Website: Webová stránka FAQ: Často kladené dotazy From 3114fae4caa80a9ee66fc67378043f03cb3dd1fc Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:04:02 +0000 Subject: [PATCH 072/297] Translated using Weblate (Hindi) Currently translated at 16.0% (72 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hi/ --- static/locales/hi.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index 510154ca..7a465c9d 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -293,6 +293,7 @@ About: Latest FreeTube News: '' + Email: ईमेल Profile: Profile Select: '' All Channels: '' From 4cb677e6e2c02c1b7d2b4808a390f12d1d8be150 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:01:52 +0000 Subject: [PATCH 073/297] Translated using Weblate (Bengali) Currently translated at 4.9% (22 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bn/ --- static/locales/bn.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/bn.yaml b/static/locales/bn.yaml index a3d3fc37..84be091f 100644 --- a/static/locales/bn.yaml +++ b/static/locales/bn.yaml @@ -259,7 +259,7 @@ About: Donate: '' Beta: '' License: '' - Email: '' + Email: 'ই-মেইল' Channel Rules: '' Report an Issue: '' Wiki: '' From dd4c265dc94fd3cd17940786ceac9e69cd52aa75 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sat, 27 Mar 2021 01:14:41 +0000 Subject: [PATCH 074/297] Translated using Weblate (Serbian) Currently translated at 74.3% (333 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sr/ --- static/locales/sr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index 00e4f93a..0003cb04 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -298,7 +298,7 @@ About: Please check for duplicates before posting: 'Молимо проверите дупликате пре објављивања' Website: 'Вебсајт' Blog: 'Блог' - Email: 'Имејл' + Email: 'Е-пошта' Mastodon: 'Mastodon' Chat on Matrix: 'Ћаскање на Matrix' Please read the: 'Прочитајте' From 61407ee72f91bac719d77e25fb2fdb62292a2896 Mon Sep 17 00:00:00 2001 From: Leonid Date: Sat, 27 Mar 2021 11:38:48 +0000 Subject: [PATCH 075/297] Translated using Weblate (Russian) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 9ac7e6d2..5938ce74 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -396,7 +396,7 @@ Channel: About: 'О канале' Channel Description: 'Описание канала' Featured Channels: 'Избранные каналы' - Added channel to your subscriptions: Канаь добавлен в ваши подписки + Added channel to your subscriptions: Канал добавлен в ваши подписки Removed subscription from $ other channel(s): Подписка удалена с $ другого(их) канала(ов) Channel has been removed from your subscriptions: Канал был удалён из ваших подписок Video: From 271a45e2b05c72f82430bd0ac003668da3687555 Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 27 Mar 2021 18:58:14 +0100 Subject: [PATCH 076/297] Cleanup --- src/renderer/App.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderer/App.js b/src/renderer/App.js index da30e444..eca320ba 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -86,7 +86,6 @@ export default Vue.extend({ }, mounted: function () { this.$store.dispatch('grabUserSettings').then((result) => { - console.log('AFTER GRABBING', result) this.$store.dispatch('grabHistory') this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels')) this.$store.dispatch('grabAllPlaylists') From 3cca33eac34f95663bc0c12d2b648860c73b8b7d Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 27 Mar 2021 19:01:05 +0100 Subject: [PATCH 077/297] More cleanup --- src/renderer/components/watch-video-info/watch-video-info.js | 1 - src/renderer/store/modules/history.js | 1 - src/renderer/store/modules/profile.js | 4 ---- src/renderer/store/modules/ytdl.js | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/renderer/components/watch-video-info/watch-video-info.js b/src/renderer/components/watch-video-info/watch-video-info.js index 1471c231..0c35afb8 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.js +++ b/src/renderer/components/watch-video-info/watch-video-info.js @@ -263,7 +263,6 @@ export default Vue.extend({ const currentProfile = JSON.parse(JSON.stringify(this.profileList[this.activeProfile])) const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0])) - console.log("PRIMARY PROFILE:", primaryProfile) if (this.isSubscribed) { currentProfile.subscriptions = currentProfile.subscriptions.filter((channel) => { diff --git a/src/renderer/store/modules/history.js b/src/renderer/store/modules/history.js index 24841d16..3869c0c5 100644 --- a/src/renderer/store/modules/history.js +++ b/src/renderer/store/modules/history.js @@ -13,7 +13,6 @@ if (window && window.process && window.process.type === 'renderer') { const remote = require('@electron/remote') dbLocation = remote.app.getPath('userData') - console.log("DB", dbLocation) dbLocation = dbLocation + '/history.db' } else { dbLocation = 'history.db' diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js index b28b568b..59ba16a4 100644 --- a/src/renderer/store/modules/profile.js +++ b/src/renderer/store/modules/profile.js @@ -54,7 +54,6 @@ const actions = { } else { // We want the primary profile to always be first // So sort with that then sort alphabetically by profile name - console.log('PROFILE DB RESULTS', results) const profiles = results.sort((a, b) => { if (a._id === 'allChannels') { return -1 @@ -68,13 +67,10 @@ const actions = { }) if (state.profileList.length < profiles.length) { - console.log("STATE LIST LESS RTHAN PROFILES LENGTH") console.log(profiles, state.profileList) - console.log("ROOTSTATE:SETTINGDEFATL", rootState.settings.defaultProfile) const profileIndex = profiles.findIndex((profile) => { return profile._id === rootState.settings.defaultProfile }) - console.log("INDEX", profileIndex) if (profileIndex !== -1) { dispatch('updateActiveProfile', profileIndex) } diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js index eefeb60a..5d6bceb9 100644 --- a/src/renderer/store/modules/ytdl.js +++ b/src/renderer/store/modules/ytdl.js @@ -252,7 +252,6 @@ const actions = { }, ytGetPlaylistInfo ({ rootState }, playlistId) { - console.log("PALYLIST INTOFOF") return new Promise((resolve, reject) => { console.log(playlistId) console.log('Getting playlist info please wait...') @@ -298,7 +297,6 @@ const actions = { limit: 'Infinity', requestOptions: { agent } }).then((result) => { - console.log("RESULT PLAYLIST", result) resolve(result) }).catch((err) => { reject(err) From dcef4261a72dca4dea77b485efb17dc7314dcabc Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 27 Mar 2021 19:02:53 +0100 Subject: [PATCH 078/297] Final adjustments --- src/renderer/store/modules/profile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js index 59ba16a4..8509b3a6 100644 --- a/src/renderer/store/modules/profile.js +++ b/src/renderer/store/modules/profile.js @@ -71,6 +71,7 @@ const actions = { const profileIndex = profiles.findIndex((profile) => { return profile._id === rootState.settings.defaultProfile }) + if (profileIndex !== -1) { dispatch('updateActiveProfile', profileIndex) } @@ -103,7 +104,7 @@ const actions = { textColor: textColor, subscriptions: [] } - console.log('DIS DEFAULT', defaultProfile) + profileDb.update({ _id: 'allChannels' }, defaultProfile, { upsert: true }, (err, numReplaced) => { if (!err) { dispatch('grabAllProfiles') From a27fc9215ccd0fa84522f334f778a54edb55ba5b Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 27 Mar 2021 19:03:57 +0100 Subject: [PATCH 079/297] Unnecessary print removed --- src/renderer/store/modules/profile.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js index 8509b3a6..d934aedd 100644 --- a/src/renderer/store/modules/profile.js +++ b/src/renderer/store/modules/profile.js @@ -67,7 +67,6 @@ const actions = { }) if (state.profileList.length < profiles.length) { - console.log(profiles, state.profileList) const profileIndex = profiles.findIndex((profile) => { return profile._id === rootState.settings.defaultProfile }) From c4bf2424cf57c77d6b0235851319021526ba89ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Marcelo=20Alvarenga?= Date: Sat, 27 Mar 2021 22:40:56 +0000 Subject: [PATCH 080/297] Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.8% (443 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_BR/ --- static/locales/pt-BR.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/pt-BR.yaml b/static/locales/pt-BR.yaml index 3063bf7a..37778548 100644 --- a/static/locales/pt-BR.yaml +++ b/static/locales/pt-BR.yaml @@ -363,7 +363,7 @@ About: Mastodon: Mastodon Email: E-mail Blog: Blog - Website: Saite web + Website: Site web Please check for duplicates before posting: Verifique se há duplicatas antes de postar Channel: From 79665c0323848a66b4d62b3a0f2c0ad5d4a69d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Sun, 28 Mar 2021 23:47:32 +0200 Subject: [PATCH 081/297] Added translation using Weblate (Icelandic) --- static/locales/is.yaml | 535 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 static/locales/is.yaml diff --git a/static/locales/is.yaml b/static/locales/is.yaml new file mode 100644 index 00000000..c25b63a3 --- /dev/null +++ b/static/locales/is.yaml @@ -0,0 +1,535 @@ +# Put the name of your locale in the same language +Locale Name: '' +FreeTube: '' +# Currently on Subscriptions, Playlists, and History +'This part of the app is not ready yet. Come back later when progress has been made.': > + +# Webkit Menu Bar +File: '' +Quit: '' +Edit: '' +Undo: '' +Redo: '' +Cut: '' +Copy: '' +Paste: '' +Delete: '' +Select all: '' +Reload: '' +Force Reload: '' +Toggle Developer Tools: '' +Actual size: '' +Zoom in: '' +Zoom out: '' +Toggle fullscreen: '' +Window: '' +Minimize: '' +Close: '' +Back: '' +Forward: '' + +Version $ is now available! Click for more details: '' +Download From Site: '' +A new blog is now available, $. Click to view more: '' + +# Search Bar +Search / Go to URL: '' + # In Filter Button +Search Filters: + Search Filters: '' + Sort By: + Sort By: '' + Most Relevant: '' + Rating: '' + Upload Date: '' + View Count: '' + Time: + Time: '' + Any Time: '' + Last Hour: '' + Today: '' + This Week: '' + This Month: '' + This Year: '' + Type: + Type: '' + All Types: '' + Videos: '' + Channels: '' + #& Playlists + Duration: + Duration: '' + All Durations: '' + Short (< 4 minutes): '' + Long (> 20 minutes): '' + # On Search Page + Search Results: '' + Fetching results. Please wait: '' + Fetch more results: '' + There are no more results for this search: '' +# Sidebar +Subscriptions: + # On Subscriptions Page + Subscriptions: '' + Latest Subscriptions: '' + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' + 'Getting Subscriptions. Please wait.': '' + Refresh Subscriptions: '' + Load More Videos: '' +More: '' +Trending: '' +Most Popular: '' +Playlists: '' +User Playlists: + Your Playlists: '' + Playlist Message: '' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' +History: + # On History Page + History: '' + Watch History: '' + Your history list is currently empty.: '' +Settings: + # On Settings Page + Settings: '' + The app needs to restart for changes to take effect. Restart and apply change?: '' + General Settings: + General Settings: '' + Check for Updates: '' + Check for Latest Blog Posts: '' + Fallback to Non-Preferred Backend on Failure: '' + Enable Search Suggestions: '' + Default Landing Page: '' + Locale Preference: '' + Preferred API Backend: + Preferred API Backend: '' + Local API: '' + Invidious API: '' + Video View Type: + Video View Type: '' + Grid: '' + List: '' + Thumbnail Preference: + Thumbnail Preference: '' + Default: '' + Beginning: '' + Middle: '' + End: '' + 'Invidious Instance (Default is https://invidious.snopyta.org)': '' + View all Invidious instance information: '' + Region for Trending: '' + #! List countries + Theme Settings: + Theme Settings: '' + Match Top Bar with Main Color: '' + Expand Side Bar by Default: '' + Disable Smooth Scrolling: '' + UI Scale: '' + Base Theme: + Base Theme: '' + Black: '' + Dark: '' + Light: '' + Main Color Theme: + Main Color Theme: '' + Red: '' + Pink: '' + Purple: '' + Deep Purple: '' + Indigo: '' + Blue: '' + Light Blue: '' + Cyan: '' + Teal: '' + Green: '' + Light Green: '' + Lime: '' + Yellow: '' + Amber: '' + Orange: '' + Deep Orange: '' + Secondary Color Theme: '' + #* Main Color Theme + Player Settings: + Player Settings: '' + Force Local Backend for Legacy Formats: '' + Play Next Video: '' + Turn on Subtitles by Default: '' + Autoplay Videos: '' + Proxy Videos Through Invidious: '' + Autoplay Playlists: '' + Enable Theatre Mode by Default: '' + Playlist Next Video Interval: '' + Default Volume: '' + Default Playback Rate: '' + Default Video Format: + Default Video Format: '' + Dash Formats: '' + Legacy Formats: '' + Audio Formats: '' + Default Quality: + Default Quality: '' + Auto: '' + 144p: '' + 240p: '' + 360p: '' + 480p: '' + 720p: '' + 1080p: '' + 1440p: '' + 4k: '' + 8k: '' + Privacy Settings: + Privacy Settings: '' + Remember History: '' + Save Watched Progress: '' + Clear Search Cache: '' + Are you sure you want to clear out your search cache?: '' + Search cache has been cleared: '' + Remove Watch History: '' + Are you sure you want to remove your entire watch history?: '' + Watch history has been cleared: '' + Remove All Subscriptions / Profiles: '' + Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' + Subscription Settings: + Subscription Settings: '' + Hide Videos on Watch: '' + Fetch Feeds from RSS: '' + Manage Subscriptions: '' + Distraction Free Settings: + Distraction Free Settings: '' + Hide Video Views: '' + Hide Video Likes And Dislikes: '' + Hide Channel Subscribers: '' + Hide Comment Likes: '' + Hide Recommended Videos: '' + Hide Trending Videos: '' + Hide Popular Videos: '' + Hide Playlists: '' + Hide Live Chat: '' + Hide Active Subscriptions: '' + Data Settings: + Data Settings: '' + Select Import Type: '' + Select Export Type: '' + Import Subscriptions: '' + Import FreeTube: '' + Import YouTube: '' + Import NewPipe: '' + Check for Legacy Subscriptions: '' + Export Subscriptions: '' + Export FreeTube: '' + Export YouTube: '' + Export NewPipe: '' + Import History: '' + Export History: '' + Profile object has insufficient data, skipping item: '' + All subscriptions and profiles have been successfully imported: '' + All subscriptions have been successfully imported: '' + One or more subscriptions were unable to be imported: '' + Invalid subscriptions file: '' + This might take a while, please wait: '' + Invalid history file: '' + Subscriptions have been successfully exported: '' + History object has insufficient data, skipping item: '' + All watched history has been successfully imported: '' + All watched history has been successfully exported: '' + Unable to read file: '' + Unable to write file: '' + Unknown data key: '' + How do I import my subscriptions?: '' + Manage Subscriptions: '' + Proxy Settings: + Proxy Settings: '' + Enable Tor / Proxy: '' + Proxy Protocol: '' + Proxy Host: '' + Proxy Port Number: '' + Clicking on Test Proxy will send a request to: '' + Test Proxy: '' + Your Info: '' + Ip: '' + Country: '' + Region: '' + City: '' + Error getting network information. Is your proxy configured properly?: '' +About: + #On About page + About: '' + Beta: '' + Source code: '' + Licensed under the AGPLv3: '' + View License: '' + Downloads / Changelog: '' + GitHub releases: '' + Help: '' + FreeTube Wiki: '' + FAQ: '' + Report a problem: '' + GitHub issues: '' + Please check for duplicates before posting: '' + Website: '' + Blog: '' + Email: '' + Mastodon: '' + Chat on Matrix: '' + Please read the: '' + room rules: '' + Translate: '' + Credits: '' + FreeTube is made possible by: '' + these people and projects: '' + Donate: '' + +Profile: + Profile Select: '' + Profile Filter: '' + All Channels: '' + Profile Manager: '' + Create New Profile: '' + Edit Profile: '' + Color Picker: '' + Custom Color: '' + Profile Preview: '' + Create Profile: '' + Update Profile: '' + Make Default Profile: '' + Delete Profile: '' + Are you sure you want to delete this profile?: '' + All subscriptions will also be deleted.: '' + Profile could not be found: '' + Your profile name cannot be empty: '' + Profile has been created: '' + Profile has been updated: '' + Your default profile has been set to $: '' + Removed $ from your profiles: '' + Your default profile has been changed to your primary profile: '' + $ is now the active profile: '' + Subscription List: '' + Other Channels: '' + $ selected: '' + Select All: '' + Select None: '' + Delete Selected: '' + Add Selected To Profile: '' + No channel(s) have been selected: '' + ? This is your primary profile. Are you sure you want to delete the selected channels? The + same channels will be deleted in any profile they are found in. + : '' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' +#On Channel Page +Channel: + Subscriber: '' + Subscribers: '' + Subscribe: '' + Unsubscribe: '' + Channel has been removed from your subscriptions: '' + Removed subscription from $ other channel(s): '' + Added channel to your subscriptions: '' + Search Channel: '' + Your search results have returned 0 results: '' + Sort By: '' + Videos: + Videos: '' + This channel does not currently have any videos: '' + Sort Types: + Newest: '' + Oldest: '' + Most Popular: '' + Playlists: + Playlists: '' + This channel does not currently have any playlists: '' + Sort Types: + Last Video Added: '' + Newest: '' + Oldest: '' + About: + About: '' + Channel Description: '' + Featured Channels: '' +Video: + Mark As Watched: '' + Remove From History: '' + Video has been marked as watched: '' + Video has been removed from your history: '' + Save Video: '' + Video has been saved: '' + Video has been removed from your saved list: '' + Open in YouTube: '' + Copy YouTube Link: '' + Open YouTube Embedded Player: '' + Copy YouTube Embedded Player Link: '' + Open in Invidious: '' + Copy Invidious Link: '' + Open Channel in YouTube: '' + Copy YouTube Channel Link: '' + Open Channel in Invidious: '' + Copy Invidious Channel Link: '' + View: '' + Views: '' + Loop Playlist: '' + Shuffle Playlist: '' + Reverse Playlist: '' + Play Next Video: '' + Play Previous Video: '' + # Context is "X People Watching" + Watching: '' + Watched: '' + Autoplay: '' + Starting soon, please refresh the page to check again: '' + # As in a Live Video + Live: '' + Live Now: '' + Live Chat: '' + Enable Live Chat: '' + Live Chat is currently not supported in this build.: '' + 'Chat is disabled or the Live Stream has ended.': '' + Live chat is enabled. Chat messages will appear here once sent.: '' + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' + Download Video: '' + video only: '' + audio only: '' + Audio: + Low: '' + Medium: '' + High: '' + Best: '' + Published: + Jan: '' + Feb: '' + Mar: '' + Apr: '' + May: '' + Jun: '' + Jul: '' + Aug: '' + Sep: '' + Oct: '' + Nov: '' + Dec: '' + Second: '' + Seconds: '' + Minute: '' + Minutes: '' + Hour: '' + Hours: '' + Day: '' + Days: '' + Week: '' + Weeks: '' + Month: '' + Months: '' + Year: '' + Years: '' + Ago: '' + Upcoming: '' + Published on: '' + Streamed on: '' + Started streaming on: '' + # $ is replaced with the number and % with the unit (days, hours, minutes...) + Publicationtemplate: '' +#& Videos +Videos: + #& Sort By + Sort By: + Newest: '' + Oldest: '' + #& Most Popular +#& Playlists +Playlist: + #& About + View Full Playlist: '' + Videos: '' + View: '' + Views: '' + Last Updated On: '' + Share Playlist: + Share Playlist: '' + Copy YouTube Link: '' + Open in YouTube: '' + Copy Invidious Link: '' + Open in Invidious: '' + +# On Video Watch Page +#* Published +#& Views +Toggle Theatre Mode: '' +Change Format: + Change Video Formats: '' + Use Dash Formats: '' + Use Legacy Formats: '' + Use Audio Formats: '' + Dash formats are not available for this video: '' + Audio formats are not available for this video: '' +Share: + Share Video: '' + Include Timestamp: '' + Copy Link: '' + Open Link: '' + Copy Embed: '' + Open Embed: '' + # On Click + Invidious URL copied to clipboard: '' + Invidious Embed URL copied to clipboard: '' + Invidious Channel URL copied to clipboard: '' + YouTube URL copied to clipboard: '' + YouTube Embed URL copied to clipboard: '' + YouTube Channel URL copied to clipboard: '' + +Mini Player: '' +Comments: + Comments: '' + Click to View Comments: '' + Getting comment replies, please wait: '' + There are no more comments for this video: '' + Show Comments: '' + Hide Comments: '' + Sort by: '' + Top comments: '' + Newest first: '' + # Context: View 10 Replies, View 1 Reply + View: '' + Hide: '' + Replies: '' + Reply: '' + There are no comments available for this video: '' + Load More Comments: '' + No more comments available: '' +Up Next: '' + +#Tooltips +Tooltips: + General Settings: + Preferred API Backend: '' + Fallback to Non-Preferred Backend on Failure: '' + Thumbnail Preference: '' + Invidious Instance: '' + Region for Trending: '' + Player Settings: + Force Local Backend for Legacy Formats: '' + Proxy Videos Through Invidious: '' + Default Video Format: '' + Subscription Settings: + Fetch Feeds from RSS: '' + +# Toast Messages +Local API Error (Click to copy): '' +Invidious API Error (Click to copy): '' +Falling back to Invidious API: '' +Falling back to the local API: '' +This video is unavailable because of missing formats. This can happen due to country unavailability.: '' +Subscriptions have not yet been implemented: '' +Loop is now disabled: '' +Loop is now enabled: '' +Shuffle is now disabled: '' +Shuffle is now enabled: '' +The playlist has been reversed: '' +Playing Next Video: '' +Playing Previous Video: '' +Playing Next Video Interval: '' +Canceled next video autoplay: '' +'The playlist has ended. Enable loop to continue playing': '' + +Yes: '' +No: '' From 7a93fc4afac63db121ead2e771c6ab83855bb362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Sun, 28 Mar 2021 21:48:19 +0000 Subject: [PATCH 082/297] Translated using Weblate (Icelandic) Currently translated at 0.4% (2 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index c25b63a3..12abfd52 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -1,6 +1,6 @@ # Put the name of your locale in the same language -Locale Name: '' -FreeTube: '' +Locale Name: 'Íslenska' +FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': > From db7d38aabfee3745aea549273fb33c851bd72394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Sun, 28 Mar 2021 22:51:05 +0000 Subject: [PATCH 083/297] Translated using Weblate (Icelandic) Currently translated at 61.6% (276 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 550 +++++++++++++++++++++-------------------- 1 file changed, 276 insertions(+), 274 deletions(-) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 12abfd52..86ae6f0e 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -5,98 +5,99 @@ FreeTube: 'FreeTube' 'This part of the app is not ready yet. Come back later when progress has been made.': > # Webkit Menu Bar -File: '' -Quit: '' -Edit: '' -Undo: '' -Redo: '' -Cut: '' -Copy: '' -Paste: '' -Delete: '' -Select all: '' -Reload: '' -Force Reload: '' -Toggle Developer Tools: '' -Actual size: '' -Zoom in: '' -Zoom out: '' -Toggle fullscreen: '' -Window: '' -Minimize: '' -Close: '' -Back: '' -Forward: '' +File: 'Skrá' +Quit: 'Hætta' +Edit: 'Breyta' +Undo: 'Afturkalla' +Redo: 'Endurtaka' +Cut: 'Klippa' +Copy: 'Afrita' +Paste: 'Líma' +Delete: 'Eyða' +Select all: 'Velja allt' +Reload: 'Endurlesa' +Force Reload: 'Þvinga endurlestur' +Toggle Developer Tools: 'Víxla forritaratólum af/á' +Actual size: 'Raunstærð' +Zoom in: 'Renna að' +Zoom out: 'Renna frá' +Toggle fullscreen: 'Víxla skjáfylli af/á' +Window: 'Gluggi' +Minimize: 'Lágmarka' +Close: 'Loka' +Back: 'Til baka' +Forward: 'Áfram' -Version $ is now available! Click for more details: '' -Download From Site: '' +Version $ is now available! Click for more details: 'Útgáfa $ er tiltæk! Smelltu + til að skoða nánar' +Download From Site: 'Sækja af vefsvæði' A new blog is now available, $. Click to view more: '' # Search Bar -Search / Go to URL: '' +Search / Go to URL: 'Leita / Fara á slóð' # In Filter Button Search Filters: Search Filters: '' Sort By: - Sort By: '' + Sort By: 'Raða eftir' Most Relevant: '' - Rating: '' - Upload Date: '' - View Count: '' + Rating: 'Einkunn' + Upload Date: 'Dags. innsendingar' + View Count: 'Fjöldi áhorfa' Time: - Time: '' - Any Time: '' - Last Hour: '' - Today: '' - This Week: '' - This Month: '' - This Year: '' + Time: 'Tími' + Any Time: 'Hvenær sem er' + Last Hour: 'Síðustu klukkustund' + Today: 'Í dag' + This Week: 'Í þessari viku' + This Month: 'Í þessum mánuði' + This Year: 'Á þessu ári' Type: - Type: '' - All Types: '' - Videos: '' - Channels: '' + Type: 'Tegund' + All Types: 'Allar tegundir' + Videos: 'Myndskeið' + Channels: 'Rásir' #& Playlists Duration: - Duration: '' - All Durations: '' - Short (< 4 minutes): '' - Long (> 20 minutes): '' + Duration: 'Tímalengd' + All Durations: 'Allar tímalengdir' + Short (< 4 minutes): 'Stutt (< 4 mínútur)' + Long (> 20 minutes): 'Langt (> 20 mínútur)' # On Search Page - Search Results: '' - Fetching results. Please wait: '' - Fetch more results: '' + Search Results: 'Leitarniðurstöður' + Fetching results. Please wait: 'Sæki niðurstöður. Hinkraðu aðeins' + Fetch more results: 'Sækja fleiri niðurstöður' There are no more results for this search: '' # Sidebar Subscriptions: # On Subscriptions Page - Subscriptions: '' - Latest Subscriptions: '' + Subscriptions: 'Áskriftir' + Latest Subscriptions: 'Síðustu áskriftir' This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' - 'Getting Subscriptions. Please wait.': '' - Refresh Subscriptions: '' - Load More Videos: '' -More: '' -Trending: '' -Most Popular: '' -Playlists: '' + 'Getting Subscriptions. Please wait.': 'Sæki áskriftir. Hinkraðu aðeins.' + Refresh Subscriptions: 'Endurlesa áskriftir' + Load More Videos: 'Hlaða inn fleiri myndskeiðum' +More: 'Meira' +Trending: 'Í umræðunni' +Most Popular: 'Vinsælast' +Playlists: 'Spilunarlistar' User Playlists: - Your Playlists: '' + Your Playlists: 'Spilunarlistarnir þínir' Playlist Message: '' Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' History: # On History Page - History: '' - Watch History: '' + History: 'Ferill' + Watch History: 'Áhorfsferill' Your history list is currently empty.: '' Settings: # On Settings Page - Settings: '' + Settings: 'Stillingar' The app needs to restart for changes to take effect. Restart and apply change?: '' General Settings: - General Settings: '' - Check for Updates: '' + General Settings: 'Almennar stillingar' + Check for Updates: 'Athuga með uppfærslur' Check for Latest Blog Posts: '' Fallback to Non-Preferred Backend on Failure: '' Enable Search Suggestions: '' @@ -108,61 +109,61 @@ Settings: Invidious API: '' Video View Type: Video View Type: '' - Grid: '' - List: '' + Grid: 'Reitir' + List: 'Listi' Thumbnail Preference: - Thumbnail Preference: '' - Default: '' - Beginning: '' - Middle: '' - End: '' + Thumbnail Preference: 'Kjörstillingar smámynda' + Default: 'Sjálfgefið' + Beginning: 'Upphaf' + Middle: 'Miðja' + End: 'Endir' 'Invidious Instance (Default is https://invidious.snopyta.org)': '' View all Invidious instance information: '' Region for Trending: '' #! List countries Theme Settings: - Theme Settings: '' + Theme Settings: 'Þemastillingar' Match Top Bar with Main Color: '' Expand Side Bar by Default: '' Disable Smooth Scrolling: '' - UI Scale: '' + UI Scale: 'Kvörðun viðmóts' Base Theme: - Base Theme: '' - Black: '' - Dark: '' - Light: '' + Base Theme: 'Grunnþema' + Black: 'Svart' + Dark: 'Dökkt' + Light: 'Ljóst' Main Color Theme: - Main Color Theme: '' - Red: '' - Pink: '' - Purple: '' - Deep Purple: '' - Indigo: '' - Blue: '' - Light Blue: '' - Cyan: '' - Teal: '' - Green: '' - Light Green: '' - Lime: '' - Yellow: '' - Amber: '' - Orange: '' - Deep Orange: '' - Secondary Color Theme: '' + Main Color Theme: 'Aðallitur þema' + Red: 'Rautt' + Pink: 'Bleikt' + Purple: 'Purpurablátt' + Deep Purple: 'Dökkpurpurablátt' + Indigo: 'Djúpfjólublátt' + Blue: 'Blátt' + Light Blue: 'Ljósblátt' + Cyan: 'Blágrænt' + Teal: 'Djúpblágrænt' + Green: 'Grænt' + Light Green: 'Ljósgrænt' + Lime: 'Límónugrænt' + Yellow: 'Gult' + Amber: 'Raflitt' + Orange: 'Appelsínugult' + Deep Orange: 'Dimmappelsínugult' + Secondary Color Theme: 'Aukalitur þema' #* Main Color Theme Player Settings: - Player Settings: '' + Player Settings: 'Stillingar spilara' Force Local Backend for Legacy Formats: '' - Play Next Video: '' + Play Next Video: 'Spila næsta myndskeið' Turn on Subtitles by Default: '' - Autoplay Videos: '' - Proxy Videos Through Invidious: '' + Autoplay Videos: 'Spila myndskeið sjálfkrafa' + Proxy Videos Through Invidious: 'Beina myndskeiðum í gegnum Invidious-milliþjón' Autoplay Playlists: '' Enable Theatre Mode by Default: '' Playlist Next Video Interval: '' - Default Volume: '' - Default Playback Rate: '' + Default Volume: 'Sjálfgefinn hljóðstyrkur' + Default Playback Rate: 'Sjálfgefinn afspilunarhraði' Default Video Format: Default Video Format: '' Dash Formats: '' @@ -170,19 +171,19 @@ Settings: Audio Formats: '' Default Quality: Default Quality: '' - Auto: '' - 144p: '' - 240p: '' - 360p: '' - 480p: '' - 720p: '' - 1080p: '' - 1440p: '' - 4k: '' - 8k: '' + Auto: 'Sjálfvirkt' + 144p: '144p' + 240p: '240p' + 360p: '360p' + 480p: '480p' + 720p: '720p' + 1080p: '1080p' + 1440p: '1440p' + 4k: '4k' + 8k: '8k' Privacy Settings: - Privacy Settings: '' - Remember History: '' + Privacy Settings: 'Stillingar gagnaleyndar' + Remember History: 'Muna vinnsluferil' Save Watched Progress: '' Clear Search Cache: '' Are you sure you want to clear out your search cache?: '' @@ -194,7 +195,7 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' Subscription Settings: Subscription Settings: '' - Hide Videos on Watch: '' + Hide Videos on Watch: 'Fela myndskeið eftir áhorf' Fetch Feeds from RSS: '' Manage Subscriptions: '' Distraction Free Settings: @@ -235,67 +236,68 @@ Settings: History object has insufficient data, skipping item: '' All watched history has been successfully imported: '' All watched history has been successfully exported: '' - Unable to read file: '' - Unable to write file: '' + Unable to read file: 'Gat ekki lesið skrá' + Unable to write file: 'Gat ekki skrifað skrá' Unknown data key: '' How do I import my subscriptions?: '' - Manage Subscriptions: '' + Manage Subscriptions: 'Sýsla með áskriftir' Proxy Settings: - Proxy Settings: '' - Enable Tor / Proxy: '' - Proxy Protocol: '' - Proxy Host: '' - Proxy Port Number: '' + Proxy Settings: 'Stillingar milliþjóns (proxy)' + Enable Tor / Proxy: 'Virkja Tor / milliþjón' + Proxy Protocol: 'Samskiptamáti milliþjóns' + Proxy Host: 'Hýsilvél milliþjóns' + Proxy Port Number: 'Númer á gátt milliþjóns' Clicking on Test Proxy will send a request to: '' - Test Proxy: '' - Your Info: '' - Ip: '' - Country: '' - Region: '' - City: '' + Test Proxy: 'Prófa milliþjón' + Your Info: 'Upplýsingar um þig' + Ip: 'IP-vistfang' + Country: 'Land' + Region: 'Hérað' + City: 'Borg/Sveitarfélag' Error getting network information. Is your proxy configured properly?: '' About: #On About page - About: '' - Beta: '' - Source code: '' - Licensed under the AGPLv3: '' - View License: '' - Downloads / Changelog: '' - GitHub releases: '' - Help: '' - FreeTube Wiki: '' - FAQ: '' - Report a problem: '' - GitHub issues: '' - Please check for duplicates before posting: '' - Website: '' - Blog: '' - Email: '' - Mastodon: '' - Chat on Matrix: '' - Please read the: '' - room rules: '' - Translate: '' - Credits: '' - FreeTube is made possible by: '' - these people and projects: '' - Donate: '' + About: 'Um hugbúnaðinn' + Beta: 'Beta-prófunarútgáfa' + Source code: 'Grunnkóði' + Licensed under the AGPLv3: 'Gefið út með AGPLv3-notkunarleyfi' + View License: 'Skoða notkunarleyfi' + Downloads / Changelog: 'Sóttar skrár / Breytingaskrá' + GitHub releases: 'Útgáfur af GitHub' + Help: 'Hjálp' + FreeTube Wiki: 'FreeTube wikivefur' + FAQ: 'FAQ / Algengar spurningar' + Report a problem: 'Tilkynna vandamál' + GitHub issues: 'GitHub verkbeiðnir' + Please check for duplicates before posting: 'Athugaðu hvort fyrir séu eins fyrirspurnir + áður en þú sendir nýja' + Website: 'Vefsvæði' + Blog: 'Blogg' + Email: 'Tölvupóstur' + Mastodon: 'Mastodon' + Chat on Matrix: 'Spjall á Matrix' + Please read the: 'Endilega lestu' + room rules: 'reglur spjallsins' + Translate: 'Þýða' + Credits: 'Framlög' + FreeTube is made possible by: 'FreeTube er gert mögulegt af' + these people and projects: 'þessu fólki og verkefnum' + Donate: 'Styrkja' Profile: Profile Select: '' Profile Filter: '' - All Channels: '' - Profile Manager: '' - Create New Profile: '' - Edit Profile: '' - Color Picker: '' - Custom Color: '' - Profile Preview: '' - Create Profile: '' - Update Profile: '' - Make Default Profile: '' - Delete Profile: '' + All Channels: 'Allar rásir' + Profile Manager: 'Sýsla með snið' + Create New Profile: 'Búa til nýtt snið' + Edit Profile: 'Breyta sniði' + Color Picker: 'Litaplokkari' + Custom Color: 'Sérsniðinn litur' + Profile Preview: 'Forskoðun sniðs' + Create Profile: 'Búa til snið' + Update Profile: 'Uppfæra snið' + Make Default Profile: 'Gera að sjálfgefnu sniði' + Delete Profile: 'Eyða sniði' Are you sure you want to delete this profile?: '' All subscriptions will also be deleted.: '' Profile could not be found: '' @@ -306,13 +308,13 @@ Profile: Removed $ from your profiles: '' Your default profile has been changed to your primary profile: '' $ is now the active profile: '' - Subscription List: '' - Other Channels: '' - $ selected: '' - Select All: '' - Select None: '' - Delete Selected: '' - Add Selected To Profile: '' + Subscription List: 'Áskriftalisti' + Other Channels: 'Aðrar rásir' + $ selected: '$ valið' + Select All: 'Velja allt' + Select None: 'Velja ekkert' + Delete Selected: 'Eyða völdu' + Add Selected To Profile: 'Breyta völdu við snið' No channel(s) have been selected: '' ? This is your primary profile. Are you sure you want to delete the selected channels? The same channels will be deleted in any profile they are found in. @@ -320,136 +322,136 @@ Profile: Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' #On Channel Page Channel: - Subscriber: '' - Subscribers: '' - Subscribe: '' - Unsubscribe: '' + Subscriber: 'Áskrifandi' + Subscribers: 'Áskrifendur' + Subscribe: 'Gerast áskrifandi' + Unsubscribe: 'Segja upp áskrift' Channel has been removed from your subscriptions: '' Removed subscription from $ other channel(s): '' Added channel to your subscriptions: '' Search Channel: '' Your search results have returned 0 results: '' - Sort By: '' + Sort By: 'Raða eftir' Videos: - Videos: '' + Videos: 'Myndskeið' This channel does not currently have any videos: '' Sort Types: - Newest: '' - Oldest: '' - Most Popular: '' + Newest: 'Nýjast' + Oldest: 'Elst' + Most Popular: 'Vinsælast' Playlists: - Playlists: '' + Playlists: 'Spilunarlistar' This channel does not currently have any playlists: '' Sort Types: - Last Video Added: '' - Newest: '' - Oldest: '' + Last Video Added: 'Síðast viðbætta myndskeið' + Newest: 'Nýjast' + Oldest: 'Elst' About: - About: '' - Channel Description: '' - Featured Channels: '' + About: 'Um rásina' + Channel Description: 'Lýsing á rás' + Featured Channels: 'Rásir í deiglunni' Video: - Mark As Watched: '' + Mark As Watched: 'Merkja sem búið að horfa á' Remove From History: '' Video has been marked as watched: '' Video has been removed from your history: '' - Save Video: '' - Video has been saved: '' + Save Video: 'Vista myndskeið' + Video has been saved: 'Myndskeið hefur verið vistað' Video has been removed from your saved list: '' - Open in YouTube: '' - Copy YouTube Link: '' + Open in YouTube: 'Opna í YouTube' + Copy YouTube Link: 'Afrita YouTube-tengil' Open YouTube Embedded Player: '' Copy YouTube Embedded Player Link: '' - Open in Invidious: '' - Copy Invidious Link: '' + Open in Invidious: 'Opna í Invidious' + Copy Invidious Link: 'Afrita Invidious-tengil' Open Channel in YouTube: '' Copy YouTube Channel Link: '' - Open Channel in Invidious: '' + Open Channel in Invidious: 'Opna rás í Invidious' Copy Invidious Channel Link: '' - View: '' - Views: '' + View: 'Áhorf' + Views: 'Áhorf' Loop Playlist: '' - Shuffle Playlist: '' - Reverse Playlist: '' - Play Next Video: '' - Play Previous Video: '' + Shuffle Playlist: 'Stokka spilunarlista' + Reverse Playlist: 'Snúa við spilunarlista' + Play Next Video: 'Spila næsta myndskeið' + Play Previous Video: 'Spila fyrra myndskeið' # Context is "X People Watching" - Watching: '' - Watched: '' - Autoplay: '' + Watching: 'Verið að horfa' + Watched: 'Búið að horfa' + Autoplay: 'Spila sjálfkrafa' Starting soon, please refresh the page to check again: '' # As in a Live Video - Live: '' - Live Now: '' + Live: 'Beint' + Live Now: 'Í beinni núna' Live Chat: '' Enable Live Chat: '' Live Chat is currently not supported in this build.: '' 'Chat is disabled or the Live Stream has ended.': '' Live chat is enabled. Chat messages will appear here once sent.: '' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' - Download Video: '' - video only: '' - audio only: '' + Download Video: 'Sækja myndskeið' + video only: 'einungis myndmerki' + audio only: 'einungis hljóð' Audio: - Low: '' - Medium: '' - High: '' - Best: '' + Low: 'Lág' + Medium: 'Miðlungs' + High: 'Há' + Best: 'Best' Published: - Jan: '' - Feb: '' - Mar: '' - Apr: '' - May: '' - Jun: '' - Jul: '' - Aug: '' - Sep: '' - Oct: '' - Nov: '' - Dec: '' - Second: '' - Seconds: '' - Minute: '' - Minutes: '' - Hour: '' - Hours: '' - Day: '' - Days: '' - Week: '' - Weeks: '' - Month: '' - Months: '' - Year: '' - Years: '' - Ago: '' - Upcoming: '' - Published on: '' - Streamed on: '' + Jan: 'Jan' + Feb: 'Feb' + Mar: 'Mar' + Apr: 'Apr' + May: 'Maí' + Jun: 'Jún' + Jul: 'Júl' + Aug: 'Ágú' + Sep: 'Sep' + Oct: 'Okt' + Nov: 'Nóv' + Dec: 'Des' + Second: 'sekúndu' + Seconds: 'sekúndum' + Minute: 'mínútu' + Minutes: 'mínútum' + Hour: 'klukkustund' + Hours: 'klukkustundum' + Day: 'degi' + Days: 'dögum' + Week: 'viku' + Weeks: 'vikum' + Month: 'mánuði' + Months: 'mánuðum' + Year: 'ári' + Years: 'árum' + Ago: 'síðan' + Upcoming: 'Frumsýnt' + Published on: 'Gefið út' + Streamed on: 'Streymt' Started streaming on: '' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: '' + Publicationtemplate: '$ % síðan' #& Videos Videos: #& Sort By Sort By: - Newest: '' - Oldest: '' + Newest: 'Nýjast' + Oldest: 'Elst' #& Most Popular #& Playlists Playlist: #& About - View Full Playlist: '' - Videos: '' - View: '' - Views: '' - Last Updated On: '' + View Full Playlist: 'Sjá allan spilunarlistann' + Videos: 'Myndskeið' + View: 'Áhorf' + Views: 'Áhorf' + Last Updated On: 'Síðast uppfært' Share Playlist: - Share Playlist: '' - Copy YouTube Link: '' - Open in YouTube: '' - Copy Invidious Link: '' - Open in Invidious: '' + Share Playlist: 'Deila spilunarlista' + Copy YouTube Link: 'Afrita YouTube-tengil' + Open in YouTube: 'Opna í YouTube' + Copy Invidious Link: 'Afrita Invidious-tengil' + Open in Invidious: 'Opna í Invidious' # On Video Watch Page #* Published @@ -463,10 +465,10 @@ Change Format: Dash formats are not available for this video: '' Audio formats are not available for this video: '' Share: - Share Video: '' - Include Timestamp: '' - Copy Link: '' - Open Link: '' + Share Video: 'Deila myndskeiði' + Include Timestamp: 'Hafa með tímamerki' + Copy Link: 'Afrita tengil' + Open Link: 'Opna tengil' Copy Embed: '' Open Embed: '' # On Click @@ -477,26 +479,26 @@ Share: YouTube Embed URL copied to clipboard: '' YouTube Channel URL copied to clipboard: '' -Mini Player: '' +Mini Player: 'Smáspilari' Comments: - Comments: '' - Click to View Comments: '' + Comments: 'Athugasemdir' + Click to View Comments: 'Smelltu til að skoða athugasemdir' Getting comment replies, please wait: '' There are no more comments for this video: '' - Show Comments: '' - Hide Comments: '' - Sort by: '' - Top comments: '' - Newest first: '' + Show Comments: 'Birta athugasemdir' + Hide Comments: 'Fela athugasemdir' + Sort by: 'Raða eftir' + Top comments: 'Efstu athugasemdir' + Newest first: 'Nýjasta fyrst' # Context: View 10 Replies, View 1 Reply - View: '' - Hide: '' - Replies: '' - Reply: '' + View: 'Skoða' + Hide: 'Fela' + Replies: 'Svör' + Reply: 'Svara' There are no comments available for this video: '' - Load More Comments: '' + Load More Comments: 'Hlaða inn fleiri athugasemdum' No more comments available: '' -Up Next: '' +Up Next: 'Næst í spilun' #Tooltips Tooltips: @@ -531,5 +533,5 @@ Playing Next Video Interval: '' Canceled next video autoplay: '' 'The playlist has ended. Enable loop to continue playing': '' -Yes: '' -No: '' +Yes: 'Já' +No: 'Nei' From 0c418a1cea398afa620b0c2c61b16f0fc1ad87dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 29 Mar 2021 11:41:21 +0000 Subject: [PATCH 084/297] Translated using Weblate (Icelandic) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 446 ++++++++++++++++++++++++----------------- 1 file changed, 263 insertions(+), 183 deletions(-) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 86ae6f0e..5f235dc8 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -2,7 +2,9 @@ Locale Name: 'Íslenska' FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History -'This part of the app is not ready yet. Come back later when progress has been made.': > +'This part of the app is not ready yet. Come back later when progress has been made.': >- + Þessi hluti forritsins er ekki tilbúinn. Skoðaðu þetta seinna þegar meira hefur + verið unnið í þessu. # Webkit Menu Bar File: 'Skrá' @@ -31,16 +33,17 @@ Forward: 'Áfram' Version $ is now available! Click for more details: 'Útgáfa $ er tiltæk! Smelltu til að skoða nánar' Download From Site: 'Sækja af vefsvæði' -A new blog is now available, $. Click to view more: '' +A new blog is now available, $. Click to view more: 'Ný bloggfærsla er núna er tiltæk, + $. Smelltu til að skoða nánar' # Search Bar Search / Go to URL: 'Leita / Fara á slóð' # In Filter Button Search Filters: - Search Filters: '' + Search Filters: 'Leitarsíur' Sort By: Sort By: 'Raða eftir' - Most Relevant: '' + Most Relevant: 'Mest viðeigandi' Rating: 'Einkunn' Upload Date: 'Dags. innsendingar' View Count: 'Fjöldi áhorfa' @@ -67,14 +70,19 @@ Search Filters: Search Results: 'Leitarniðurstöður' Fetching results. Please wait: 'Sæki niðurstöður. Hinkraðu aðeins' Fetch more results: 'Sækja fleiri niðurstöður' - There are no more results for this search: '' + There are no more results for this search: 'Engar fleiri niðurstöður samsvara leitinni + þinni' # Sidebar Subscriptions: # On Subscriptions Page Subscriptions: 'Áskriftir' Latest Subscriptions: 'Síðustu áskriftir' - This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' - 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: 'Þetta + notkunarsnið er með mikinn fjölda áskrifta. Þvinga notkun á RSS til að forðast + takmarkanir á magni' + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'Listi + með áskriftum er tómur í augnablikinu. Gerstu áskrifandi að rásum og þær munu + birtast hér.' 'Getting Subscriptions. Please wait.': 'Sæki áskriftir. Hinkraðu aðeins.' Refresh Subscriptions: 'Endurlesa áskriftir' Load More Videos: 'Hlaða inn fleiri myndskeiðum' @@ -84,31 +92,38 @@ Most Popular: 'Vinsælast' Playlists: 'Spilunarlistar' User Playlists: Your Playlists: 'Spilunarlistarnir þínir' - Playlist Message: '' - Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' + Playlist Message: 'Þessi síða endurspeglar ekki alveg fullvirka spilunarlista. Hún + telur aðeins upp þau myndskeið sem þú hefur vistað eða sett í eftirlæti. Þegar + verkinu er lokið munu öll þessi myndskeið færast yfir í ''Eftirlæti''-spilunarlista.' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 'Listinn + þinn yfir vistuð myndskeið er tómur. Smelltu á vistunarhnapp myndskeiðs til að + það birtist hér' History: # On History Page - History: 'Ferill' + History: 'Vinnsluferill' Watch History: 'Áhorfsferill' - Your history list is currently empty.: '' + Your history list is currently empty.: 'Listi með vinnsluferli er tómur í augnablikinu.' Settings: # On Settings Page Settings: 'Stillingar' - The app needs to restart for changes to take effect. Restart and apply change?: '' + The app needs to restart for changes to take effect. Restart and apply change?: 'Þú + þarft að endurræsa forritið svo breytingarnar taki gildi. á að endurræsa og virkja + breytingar?' General Settings: General Settings: 'Almennar stillingar' Check for Updates: 'Athuga með uppfærslur' - Check for Latest Blog Posts: '' - Fallback to Non-Preferred Backend on Failure: '' - Enable Search Suggestions: '' - Default Landing Page: '' - Locale Preference: '' + Check for Latest Blog Posts: 'Athuga með nýjustu bloggfærslur' + Fallback to Non-Preferred Backend on Failure: 'Nota varaleið um ekki-forgangsbakenda + þegar villa kemur upp' + Enable Search Suggestions: 'Virkja tillögur í leit' + Default Landing Page: 'Sjálfgefin upphafssíða' + Locale Preference: 'Umbeðin staðfærsla' Preferred API Backend: - Preferred API Backend: '' - Local API: '' - Invidious API: '' + Preferred API Backend: 'Forgangsbakendi API-kerfisviðmóts' + Local API: 'Staðvært API-kerfisviðmót' + Invidious API: 'Invidious API-kerfisviðmót' Video View Type: - Video View Type: '' + Video View Type: 'Tegund myndskeiðsskoðunar' Grid: 'Reitir' List: 'Listi' Thumbnail Preference: @@ -117,15 +132,16 @@ Settings: Beginning: 'Upphaf' Middle: 'Miðja' End: 'Endir' - 'Invidious Instance (Default is https://invidious.snopyta.org)': '' - View all Invidious instance information: '' - Region for Trending: '' + 'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious-tilvik + (sjálfgefið er https://invidious.snopyta.org)' + View all Invidious instance information: 'Skoða allar upplýsingar um Invidious-tilvik' + Region for Trending: 'Landssvæði sem skal miða vinsældir við' #! List countries Theme Settings: Theme Settings: 'Þemastillingar' - Match Top Bar with Main Color: '' - Expand Side Bar by Default: '' - Disable Smooth Scrolling: '' + Match Top Bar with Main Color: 'Láta toppstiku samsvara aðallit' + Expand Side Bar by Default: 'Fletta sjálfgefið út hliðarstiku' + Disable Smooth Scrolling: 'Gera mjúkt skrun óvirkt' UI Scale: 'Kvörðun viðmóts' Base Theme: Base Theme: 'Grunnþema' @@ -154,23 +170,24 @@ Settings: #* Main Color Theme Player Settings: Player Settings: 'Stillingar spilara' - Force Local Backend for Legacy Formats: '' + Force Local Backend for Legacy Formats: 'Þvinga notkun staðværs bakenda fyrir + eldri skráasnið' Play Next Video: 'Spila næsta myndskeið' - Turn on Subtitles by Default: '' + Turn on Subtitles by Default: 'Sjálfgefið kveikja á skjátextum' Autoplay Videos: 'Spila myndskeið sjálfkrafa' Proxy Videos Through Invidious: 'Beina myndskeiðum í gegnum Invidious-milliþjón' - Autoplay Playlists: '' - Enable Theatre Mode by Default: '' - Playlist Next Video Interval: '' + Autoplay Playlists: 'Spila spilunarlista sjálfkrafa' + Enable Theatre Mode by Default: 'Sjálfgefið virkja bíóham (theater mode)' + Playlist Next Video Interval: 'Millibil afspilunar næsta myndskeiðs í spilunarlista' Default Volume: 'Sjálfgefinn hljóðstyrkur' Default Playback Rate: 'Sjálfgefinn afspilunarhraði' Default Video Format: - Default Video Format: '' - Dash Formats: '' - Legacy Formats: '' - Audio Formats: '' + Default Video Format: 'Sjálfgefið skráasnið myndskeiða' + Dash Formats: 'DASH-skráasnið' + Legacy Formats: 'Eldri skráasnið' + Audio Formats: 'Hljóðskráasnið' Default Quality: - Default Quality: '' + Default Quality: 'Sjálfgefin gæði' Auto: 'Sjálfvirkt' 144p: '144p' 240p: '240p' @@ -184,62 +201,74 @@ Settings: Privacy Settings: Privacy Settings: 'Stillingar gagnaleyndar' Remember History: 'Muna vinnsluferil' - Save Watched Progress: '' - Clear Search Cache: '' - Are you sure you want to clear out your search cache?: '' - Search cache has been cleared: '' - Remove Watch History: '' - Are you sure you want to remove your entire watch history?: '' - Watch history has been cleared: '' - Remove All Subscriptions / Profiles: '' - Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' + Save Watched Progress: 'Vist aframvindu áhorfs' + Clear Search Cache: 'Hreinsa skyndiminni leitar' + Are you sure you want to clear out your search cache?: 'Ertu viss um að þú viljir + eyða skyndiminni leitar?' + Search cache has been cleared: 'Skyndiminni leitar var hreinsað' + Remove Watch History: 'Fjarlægja áhorfsferil' + Are you sure you want to remove your entire watch history?: 'Ertu viss um að þú + viljir fjarlægja allan áhorfsferilinn þinn?' + Watch history has been cleared: 'Áhorfsferill var hreinsaður' + Remove All Subscriptions / Profiles: 'Fjarlægja allar áskriftir / notkunarsnið' + Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ertu + viss um að þú viljir fjarlægja allar áskriftir og notkunarsnið? Ekki er hægt + að afturkalla þetta.' Subscription Settings: - Subscription Settings: '' + Subscription Settings: 'Stillingar áskrifta' Hide Videos on Watch: 'Fela myndskeið eftir áhorf' - Fetch Feeds from RSS: '' - Manage Subscriptions: '' + Fetch Feeds from RSS: 'Ná í streymi úr RSS' + Manage Subscriptions: 'Sýsla með áskriftir' Distraction Free Settings: - Distraction Free Settings: '' - Hide Video Views: '' - Hide Video Likes And Dislikes: '' - Hide Channel Subscribers: '' - Hide Comment Likes: '' - Hide Recommended Videos: '' - Hide Trending Videos: '' - Hide Popular Videos: '' - Hide Playlists: '' - Hide Live Chat: '' - Hide Active Subscriptions: '' + Distraction Free Settings: 'Truflanaminnkandi stillingar' + Hide Video Views: 'Fela fjölda áhorfa á myndskeið' + Hide Video Likes And Dislikes: 'Fela hve mörgum líkar eða mislíkar myndskeið' + Hide Channel Subscribers: 'Fela fjölda áskrifenda myndskeiða' + Hide Comment Likes: 'Fela hve mörgum líkar athugasemdir' + Hide Recommended Videos: 'Fela myndskeið sem mælt er með' + Hide Trending Videos: 'Fela myndskeið í umræðunni' + Hide Popular Videos: 'Fela vinsæl myndskeið' + Hide Playlists: 'Fela spilunarlista' + Hide Live Chat: 'Fela spjall í beinni' + Hide Active Subscriptions: 'Fela virkar áskriftir' Data Settings: - Data Settings: '' - Select Import Type: '' - Select Export Type: '' - Import Subscriptions: '' - Import FreeTube: '' - Import YouTube: '' - Import NewPipe: '' - Check for Legacy Subscriptions: '' - Export Subscriptions: '' - Export FreeTube: '' - Export YouTube: '' - Export NewPipe: '' - Import History: '' - Export History: '' - Profile object has insufficient data, skipping item: '' - All subscriptions and profiles have been successfully imported: '' - All subscriptions have been successfully imported: '' - One or more subscriptions were unable to be imported: '' - Invalid subscriptions file: '' - This might take a while, please wait: '' - Invalid history file: '' - Subscriptions have been successfully exported: '' - History object has insufficient data, skipping item: '' - All watched history has been successfully imported: '' - All watched history has been successfully exported: '' + Data Settings: 'Stillingar gagna' + Select Import Type: 'Veldu tegund innflutnings' + Select Export Type: 'Veldu tegund útflutnings' + Import Subscriptions: 'Flytja inn áskriftir' + Import FreeTube: 'Flytja inn FreeTube' + Import YouTube: 'Flytja inn YouTube' + Import NewPipe: 'Flytja inn NewPipe' + Check for Legacy Subscriptions: 'Athuga með eldri áskriftir' + Export Subscriptions: 'Flytja út áskriftir' + Export FreeTube: 'Flytja út FreeTube' + Export YouTube: 'Flytja út YouTube' + Export NewPipe: 'Flytja út NewPipe' + Import History: 'Flytja inn vinnsluferil' + Export History: 'Flytja út vinnsluferil' + Profile object has insufficient data, skipping item: 'Atriði notkunarsniðs er + ekki með næg gögn, sleppi þessu' + All subscriptions and profiles have been successfully imported: 'Innflutningur + á öllum áskriftum og notkunarsniðum tókst' + All subscriptions have been successfully imported: 'Innflutningur á öllum áskriftum + tókst' + One or more subscriptions were unable to be imported: 'Ekki tókst að flytja inn + eina eða fleiri áskriftir' + Invalid subscriptions file: 'Ógild áskriftaskrá' + This might take a while, please wait: 'Þetta getur tekið dálítinn tíma, sýndu + smá þolinmæði' + Invalid history file: 'Ógild vinnsluferilskrá' + Subscriptions have been successfully exported: 'Úflutningur á áskriftum tókst' + History object has insufficient data, skipping item: 'Atriði vinnsluferils er + ekki með næg gögn, sleppi þessu' + All watched history has been successfully imported: 'Allur áhorfsferillinn var + fluttur inn' + All watched history has been successfully exported: 'Allur áhorfsferillinn var + fluttur út' Unable to read file: 'Gat ekki lesið skrá' Unable to write file: 'Gat ekki skrifað skrá' - Unknown data key: '' - How do I import my subscriptions?: '' + Unknown data key: 'Óþekktur gagnalykill' + How do I import my subscriptions?: 'Hvernig flyt ég inn áskriftirnar mínar?' Manage Subscriptions: 'Sýsla með áskriftir' Proxy Settings: Proxy Settings: 'Stillingar milliþjóns (proxy)' @@ -247,14 +276,16 @@ Settings: Proxy Protocol: 'Samskiptamáti milliþjóns' Proxy Host: 'Hýsilvél milliþjóns' Proxy Port Number: 'Númer á gátt milliþjóns' - Clicking on Test Proxy will send a request to: '' + Clicking on Test Proxy will send a request to: 'Ef smellt er á ''Prófa milliþjón'' + verður send beiðni á' Test Proxy: 'Prófa milliþjón' Your Info: 'Upplýsingar um þig' Ip: 'IP-vistfang' Country: 'Land' Region: 'Hérað' City: 'Borg/Sveitarfélag' - Error getting network information. Is your proxy configured properly?: '' + Error getting network information. Is your proxy configured properly?: 'Það tókst + ekki að sækja upplýsingar um netkerfið. Er milliþjónninn rétt uppsettur?' About: #On About page About: 'Um hugbúnaðinn' @@ -285,63 +316,72 @@ About: Donate: 'Styrkja' Profile: - Profile Select: '' - Profile Filter: '' + Profile Select: 'Val á notkunarsniði' + Profile Filter: 'Sía notkunarsnið' All Channels: 'Allar rásir' - Profile Manager: 'Sýsla með snið' - Create New Profile: 'Búa til nýtt snið' - Edit Profile: 'Breyta sniði' + Profile Manager: 'Sýsla með notkunarsnið' + Create New Profile: 'Búa til nýtt notkunarsnið' + Edit Profile: 'Breyta notkunarsniði' Color Picker: 'Litaplokkari' Custom Color: 'Sérsniðinn litur' - Profile Preview: 'Forskoðun sniðs' - Create Profile: 'Búa til snið' - Update Profile: 'Uppfæra snið' - Make Default Profile: 'Gera að sjálfgefnu sniði' - Delete Profile: 'Eyða sniði' - Are you sure you want to delete this profile?: '' - All subscriptions will also be deleted.: '' - Profile could not be found: '' - Your profile name cannot be empty: '' - Profile has been created: '' - Profile has been updated: '' - Your default profile has been set to $: '' - Removed $ from your profiles: '' - Your default profile has been changed to your primary profile: '' - $ is now the active profile: '' + Profile Preview: 'Forskoðun notkunarsniðs' + Create Profile: 'Búa til notkunarsnið' + Update Profile: 'Uppfæra notkunarsnið' + Make Default Profile: 'Gera að sjálfgefnu notkunarsniði' + Delete Profile: 'Eyða notkunarsniði' + Are you sure you want to delete this profile?: 'Ertu viss um að þú viljir eyða þessu + notkunarsniði?' + All subscriptions will also be deleted.: 'Öllum áskriftum verður einnig eytt.' + Profile could not be found: 'Notkunarsnið fannst ekki' + Your profile name cannot be empty: 'Nafn notkunarsniðsins má ekki vera tómt' + Profile has been created: 'Notkunarsnið hefur verið útbúið' + Profile has been updated: 'Notkunarsnið hefur verið uppfært' + Your default profile has been set to $: 'Sjálfgefið notandasnið þitt hefur stillt + sem $' + Removed $ from your profiles: 'Fjarlægði $ úr notkunarsniðunum þínum' + Your default profile has been changed to your primary profile: 'Sjálfgefið notandasnið + þitt hefur stillt á aðalnotkunarsniðið þitt' + $ is now the active profile: '$ er núna virka notkunarsniðið' Subscription List: 'Áskriftalisti' Other Channels: 'Aðrar rásir' $ selected: '$ valið' Select All: 'Velja allt' Select None: 'Velja ekkert' Delete Selected: 'Eyða völdu' - Add Selected To Profile: 'Breyta völdu við snið' - No channel(s) have been selected: '' + Add Selected To Profile: 'Breyta völdu við notkunarsnið' + No channel(s) have been selected: 'Engin rás hefur verið valin' ? This is your primary profile. Are you sure you want to delete the selected channels? The same channels will be deleted in any profile they are found in. - : '' - Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' + : 'Þetta er aðalnotkunarsnið þitt. Ertu viss um að þú viljir eyða völdu rásunum? + Þessum sömu rásum verður eytt úr öllum þeim notkunarsniðum þar sem þær finnast.' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: 'Ertu + viss um að þú viljir eyða völdu rásunum? Þetta mun ekki eyða rásunum úr öðrum + notkunarsniðum.' #On Channel Page Channel: Subscriber: 'Áskrifandi' Subscribers: 'Áskrifendur' Subscribe: 'Gerast áskrifandi' Unsubscribe: 'Segja upp áskrift' - Channel has been removed from your subscriptions: '' - Removed subscription from $ other channel(s): '' - Added channel to your subscriptions: '' - Search Channel: '' - Your search results have returned 0 results: '' + Channel has been removed from your subscriptions: 'Rás var fjarlægð úr áskriftunum + þínum' + Removed subscription from $ other channel(s): 'Fjarlægði áskrift úr $ rás(um) til + viðbótar' + Added channel to your subscriptions: 'Bætti rás í áskriftirnar þínar' + Search Channel: 'Leita á rás' + Your search results have returned 0 results: 'Leitin skilaði 0 niðurstöðum' Sort By: 'Raða eftir' Videos: Videos: 'Myndskeið' - This channel does not currently have any videos: '' + This channel does not currently have any videos: 'Þessi rás er ekki með nein myndskeið' Sort Types: Newest: 'Nýjast' Oldest: 'Elst' Most Popular: 'Vinsælast' Playlists: Playlists: 'Spilunarlistar' - This channel does not currently have any playlists: '' + This channel does not currently have any playlists: 'Þessi rás er ekki með neina + spilunarlista' Sort Types: Last Video Added: 'Síðast viðbætta myndskeið' Newest: 'Nýjast' @@ -352,25 +392,27 @@ Channel: Featured Channels: 'Rásir í deiglunni' Video: Mark As Watched: 'Merkja sem búið að horfa á' - Remove From History: '' - Video has been marked as watched: '' - Video has been removed from your history: '' + Remove From History: 'Fjarlægja úr vinnsluferli' + Video has been marked as watched: 'Myndskeið hefur verið merkt sem skoðað' + Video has been removed from your history: 'Myndskeið hefur verið fjarlægt úr vinnsluferlinum + þínum' Save Video: 'Vista myndskeið' Video has been saved: 'Myndskeið hefur verið vistað' - Video has been removed from your saved list: '' + Video has been removed from your saved list: 'Myndskeið hefur verið fjarlægt úr + listanum yfir vistað' Open in YouTube: 'Opna í YouTube' Copy YouTube Link: 'Afrita YouTube-tengil' - Open YouTube Embedded Player: '' - Copy YouTube Embedded Player Link: '' + Open YouTube Embedded Player: 'Opna ívafinn YouTube-spilara' + Copy YouTube Embedded Player Link: 'Afrita tengil á ívafinn YouTube-spilara' Open in Invidious: 'Opna í Invidious' Copy Invidious Link: 'Afrita Invidious-tengil' - Open Channel in YouTube: '' - Copy YouTube Channel Link: '' + Open Channel in YouTube: 'Opna rás í YouTube' + Copy YouTube Channel Link: 'Afrita tengil YouTube-rásar' Open Channel in Invidious: 'Opna rás í Invidious' - Copy Invidious Channel Link: '' + Copy Invidious Channel Link: 'Afrita tengil Invidious-rásar' View: 'Áhorf' Views: 'Áhorf' - Loop Playlist: '' + Loop Playlist: 'Endurtaka spilunarlista endalaust' Shuffle Playlist: 'Stokka spilunarlista' Reverse Playlist: 'Snúa við spilunarlista' Play Next Video: 'Spila næsta myndskeið' @@ -379,16 +421,22 @@ Video: Watching: 'Verið að horfa' Watched: 'Búið að horfa' Autoplay: 'Spila sjálfkrafa' - Starting soon, please refresh the page to check again: '' + Starting soon, please refresh the page to check again: 'Byrjar bráðum, endurlestu + síðuna til að fylgjast með' # As in a Live Video Live: 'Beint' - Live Now: 'Í beinni núna' - Live Chat: '' - Enable Live Chat: '' - Live Chat is currently not supported in this build.: '' - 'Chat is disabled or the Live Stream has ended.': '' - Live chat is enabled. Chat messages will appear here once sent.: '' - 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' + Live Now: 'Í beinni útsendingu núna' + Live Chat: 'Spjall í beinni' + Enable Live Chat: 'Virkja spjall í beinni' + Live Chat is currently not supported in this build.: 'Spjall í beinni er ekki stutt + í þessari byggingarútgáfu.' + 'Chat is disabled or the Live Stream has ended.': 'Spjall er óvirkt eða að beinu + streymi er lokið.' + Live chat is enabled. Chat messages will appear here once sent.: 'Beint spjall + er virkt. Skilaboð spjallsins munu birtast hér.' + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Spjall + í beinni er ekki stutt í Invidious API-kerfisviðmótinu. Nauðsynlegt er að vera + með beina tengingu við YouTube.' Download Video: 'Sækja myndskeið' video only: 'einungis myndmerki' audio only: 'einungis hljóð' @@ -428,7 +476,7 @@ Video: Upcoming: 'Frumsýnt' Published on: 'Gefið út' Streamed on: 'Streymt' - Started streaming on: '' + Started streaming on: 'Byrjaði streymi' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % síðan' #& Videos @@ -456,35 +504,38 @@ Playlist: # On Video Watch Page #* Published #& Views -Toggle Theatre Mode: '' +Toggle Theatre Mode: 'Víxla bíóham af/á' Change Format: - Change Video Formats: '' - Use Dash Formats: '' - Use Legacy Formats: '' - Use Audio Formats: '' - Dash formats are not available for this video: '' - Audio formats are not available for this video: '' + Change Video Formats: 'Skipta um myndskeiðasnið' + Use Dash Formats: 'Nota DASH-skráasnið' + Use Legacy Formats: 'Nota eldri skráasnið' + Use Audio Formats: 'Nota hljóðskráasnið' + Dash formats are not available for this video: 'DASH-skráasnið eru ekki tiltæk fyrir + þetta myndskeið' + Audio formats are not available for this video: 'Hljóðskráasnið eru ekki tiltæk + fyrir þetta myndskeið' Share: Share Video: 'Deila myndskeiði' Include Timestamp: 'Hafa með tímamerki' Copy Link: 'Afrita tengil' Open Link: 'Opna tengil' - Copy Embed: '' - Open Embed: '' + Copy Embed: 'Afrita ívafið' + Open Embed: 'Opna ívafið' # On Click - Invidious URL copied to clipboard: '' - Invidious Embed URL copied to clipboard: '' - Invidious Channel URL copied to clipboard: '' - YouTube URL copied to clipboard: '' - YouTube Embed URL copied to clipboard: '' - YouTube Channel URL copied to clipboard: '' + Invidious URL copied to clipboard: 'Invidious-slóð afrituð á klippispjaldið' + Invidious Embed URL copied to clipboard: 'Ívafin Invidious-slóð afrituð á klippispjaldið' + Invidious Channel URL copied to clipboard: 'Slóð Invidious-rásar afrituð á klippispjaldið' + YouTube URL copied to clipboard: 'YouTube-slóð afrituð á klippispjaldið' + YouTube Embed URL copied to clipboard: 'Ívafin YouTube-slóð afrituð á klippispjaldið' + YouTube Channel URL copied to clipboard: 'Slóð YouTube-rásar afrituð á klippispjaldið' Mini Player: 'Smáspilari' Comments: Comments: 'Athugasemdir' Click to View Comments: 'Smelltu til að skoða athugasemdir' - Getting comment replies, please wait: '' - There are no more comments for this video: '' + Getting comment replies, please wait: 'Sæki svör við athugasemdum, bíddu aðeins' + There are no more comments for this video: 'Það eru engar fleiri athugasemdir við + þetta myndskeið' Show Comments: 'Birta athugasemdir' Hide Comments: 'Fela athugasemdir' Sort by: 'Raða eftir' @@ -495,43 +546,72 @@ Comments: Hide: 'Fela' Replies: 'Svör' Reply: 'Svara' - There are no comments available for this video: '' + There are no comments available for this video: 'Engar athugasemdir eru tiltækar + fyrir þetta myndskeið' Load More Comments: 'Hlaða inn fleiri athugasemdum' - No more comments available: '' + No more comments available: 'Engar fleiri athugasemdir eru tiltækar' Up Next: 'Næst í spilun' #Tooltips Tooltips: General Settings: - Preferred API Backend: '' - Fallback to Non-Preferred Backend on Failure: '' - Thumbnail Preference: '' - Invidious Instance: '' - Region for Trending: '' + Preferred API Backend: 'Veldu bakendann sem FreeTube notar til að ná í gögn. Staðværa + API-kerfisviðmótið er innbyggður skrapari. Invidious API-kerfisviðmótið krefst + tengingar við Invidious-netþjón.' + Fallback to Non-Preferred Backend on Failure: 'Þegar forgangsbakendi API-kerfisviðmóts + á í vandræðum, mun FreeTube reyna sjálfkrafa að nota ekki-forgangsbakenda API-kerfisviðmóts + sem varaleið, þegar þetta er virkjað' + Thumbnail Preference: 'Öllum smámyndum í FreeTube verður skipt út fyrir ramma + með myndskeiðinu í stað sjálfgefinnar smámyndar' + Invidious Instance: 'Tilvik Invidious-netþjóns sem FreeTube mun tengjast fyrir + beðnir í API-kerfisviðmót. Hreinsaðu út fyrirliggjandi tilvik til að sjá lista + yfir opinber tilvik sem hægt er að velja um' + Region for Trending: 'Landssvæði sem skal miða vinsældir við gerir þér kleift + að velja í hvaða landi aukning á vinsældum í umræðunni skal miða við. Ekki eru + öll löndin sem birtast raunverulega studd af YouTube' Player Settings: - Force Local Backend for Legacy Formats: '' - Proxy Videos Through Invidious: '' - Default Video Format: '' + Force Local Backend for Legacy Formats: 'Virkar bara þegar Invidious API-kerfisviðmótið + er sjálfgefið hjá þér. Þegar þetta er virkt, mun staðværa API-kerfisviðmótið + keyra og nota þau eldri skráasnið sem finnast í stað þeirra sem Invidious gefur + upp. Hjálpar til þegar myndskeið sem Invidious gefur upp spilast ekki vegna + landsháðra takmarkana' + Proxy Videos Through Invidious: 'Mun tengjast við Invidious til að miðla myndskeiðum + í stað þess að tengjast beint við YouTube. Tekur fram fyrir valin API-kerfisviðmót' + Default Video Format: 'Stillu skráasniðin sem notuð eru við afspilun myndskeiða. + DASH-snið (Dynamic Adaptive Streaming over HTTP) er hægt að spila í meiri gæðum. + Eldri snið takmarkast við 720p en nota minni bandbreidd. Hljóðsnið eru streymi + einungis með hljóði' Subscription Settings: - Fetch Feeds from RSS: '' + Fetch Feeds from RSS: 'Þegar þetta er virkt, mun FreeTube nota RSS í stað sjálfgefinnar + aðferðar við að safna streymi áskriftarinnar þinnar. RSS er hraðvirkara og kemur + í veg fyrir útilokun IP-vistfanga, en nær ekki að birta ákveðnar upplýsingar + á borð við tímalengd myndskeiða eða stöðu í beinni útsendingu' # Toast Messages -Local API Error (Click to copy): '' -Invidious API Error (Click to copy): '' -Falling back to Invidious API: '' -Falling back to the local API: '' -This video is unavailable because of missing formats. This can happen due to country unavailability.: '' -Subscriptions have not yet been implemented: '' -Loop is now disabled: '' -Loop is now enabled: '' -Shuffle is now disabled: '' -Shuffle is now enabled: '' -The playlist has been reversed: '' -Playing Next Video: '' -Playing Previous Video: '' -Playing Next Video Interval: '' -Canceled next video autoplay: '' -'The playlist has ended. Enable loop to continue playing': '' +Local API Error (Click to copy): 'Villa í staðværu API-kerfisviðmóti (smella til að + afrita)' +Invidious API Error (Click to copy): 'Villa í Invidious API-kerfisviðmóti (smella + til að afrita)' +Falling back to Invidious API: 'Nota til vara Invidious API-kerfisviðmót' +Falling back to the local API: 'Nota til vara staðvært API-kerfisviðmót' +This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Þetta + myndskeiðer ekki tiltækt vegna þess að það vantar skráasnið. Þetta getur gest ef + þau eru ekki tiltæk í viðkomandi landi.' +Subscriptions have not yet been implemented: 'Áskriftir eru enn ekki frágengnar' +Loop is now disabled: 'Endurtekning er núna óvirk' +Loop is now enabled: 'Endurtekning er núna virk' +Shuffle is now disabled: 'Stokkun er núna óvirk' +Shuffle is now enabled: 'Stokkun er núna virk' +The playlist has been reversed: 'Spilunarlistanum hefur verið snúið' +Playing Next Video: 'Spila næsta myndskeið' +Playing Previous Video: 'Spila fyrra myndskeið' +Playing Next Video Interval: 'Spila næsta myndskeið strax. Smelltu til að hætta við. + | Spila næsta myndskeið eftir {nextVideoInterval} sekúndu. Smelltu til að hætta + við. | Spila næsta myndskeið eftir {nextVideoInterval} sekúndur. Smelltu til að + hætta við.' +Canceled next video autoplay: 'Hætti við sjálfvirka afspilun næsta myndskeiðs' +'The playlist has ended. Enable loop to continue playing': 'Spilunarlistinn er kominn + út á enda. Virkjaðu óendanlega endurtekningu til að halda afspilun áfram' Yes: 'Já' No: 'Nei' From f2330e477521c467e0cb812c44fd557b7b648f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 29 Mar 2021 11:54:29 +0000 Subject: [PATCH 085/297] Translated using Weblate (Icelandic) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 5f235dc8..dc8b8371 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -201,7 +201,7 @@ Settings: Privacy Settings: Privacy Settings: 'Stillingar gagnaleyndar' Remember History: 'Muna vinnsluferil' - Save Watched Progress: 'Vist aframvindu áhorfs' + Save Watched Progress: 'Vista framvindu áhorfs' Clear Search Cache: 'Hreinsa skyndiminni leitar' Are you sure you want to clear out your search cache?: 'Ertu viss um að þú viljir eyða skyndiminni leitar?' From 69e6ea30dabc7409afc2be40dc9062b694ee7e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 29 Mar 2021 16:02:02 +0000 Subject: [PATCH 086/297] Create countries.json Icelandic translation of countries.json --- static/geolocations/is/countries.json | 195 ++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 static/geolocations/is/countries.json diff --git a/static/geolocations/is/countries.json b/static/geolocations/is/countries.json new file mode 100644 index 00000000..d5d5f097 --- /dev/null +++ b/static/geolocations/is/countries.json @@ -0,0 +1,195 @@ +[{"id":4,"name":"Afganistan","alpha2":"af","alpha3":"afg"}, +{"id":8,"name":"Albanía","alpha2":"al","alpha3":"alb"}, +{"id":12,"name":"Alsír","alpha2":"dz","alpha3":"dza"}, +{"id":20,"name":"Andorra","alpha2":"ad","alpha3":"and"}, +{"id":24,"name":"Angóla","alpha2":"ao","alpha3":"ago"}, +{"id":28,"name":"Antígva og Barbúda","alpha2":"ag","alpha3":"atg"}, +{"id":32,"name":"Argentína","alpha2":"ar","alpha3":"arg"}, +{"id":51,"name":"Armenía","alpha2":"am","alpha3":"arm"}, +{"id":36,"name":"Ástralía","alpha2":"au","alpha3":"aus"}, +{"id":40,"name":"Austurríki","alpha2":"at","alpha3":"aut"}, +{"id":31,"name":"Aserbædsjan","alpha2":"az","alpha3":"aze"}, +{"id":44,"name":"Bahamaeyjar","alpha2":"bs","alpha3":"bhs"}, +{"id":48,"name":"Barein","alpha2":"bh","alpha3":"bhr"}, +{"id":50,"name":"Bangladess","alpha2":"bd","alpha3":"bgd"}, +{"id":52,"name":"Barbados","alpha2":"bb","alpha3":"brb"}, +{"id":112,"name":"Belarús","alpha2":"by","alpha3":"blr"}, +{"id":56,"name":"Belgía","alpha2":"be","alpha3":"bel"}, +{"id":84,"name":"Belís","alpha2":"bz","alpha3":"blz"}, +{"id":204,"name":"Benín","alpha2":"bj","alpha3":"ben"}, +{"id":64,"name":"Bútan","alpha2":"bt","alpha3":"btn"}, +{"id":68,"name":"Bólivía (Fjölþjóðaríkið)","alpha2":"bo","alpha3":"bol"}, +{"id":70,"name":"Bosnía og Herzegóvína","alpha2":"ba","alpha3":"bih"}, +{"id":72,"name":"Botsvana","alpha2":"bw","alpha3":"bwa"}, +{"id":76,"name":"Brasilía","alpha2":"br","alpha3":"bra"}, +{"id":96,"name":"Brunei-Daresalam","alpha2":"bn","alpha3":"brn"}, +{"id":100,"name":"Búlgaría","alpha2":"bg","alpha3":"bgr"}, +{"id":854,"name":"Burkína Fasó","alpha2":"bf","alpha3":"bfa"}, +{"id":108,"name":"Búrundí","alpha2":"bi","alpha3":"bdi"}, +{"id":132,"name":"Grænhöfðaeyjar","alpha2":"cv","alpha3":"cpv"}, +{"id":116,"name":"Kambódía","alpha2":"kh","alpha3":"khm"}, +{"id":120,"name":"Kamerún","alpha2":"cm","alpha3":"cmr"}, +{"id":124,"name":"Kanada","alpha2":"ca","alpha3":"can"}, +{"id":140,"name":"Miðafríkulýðveldið","alpha2":"cf","alpha3":"caf"}, +{"id":148,"name":"Tsjad","alpha2":"td","alpha3":"tcd"}, +{"id":152,"name":"Síle","alpha2":"cl","alpha3":"chl"}, +{"id":156,"name":"Kína","alpha2":"cn","alpha3":"chn"}, +{"id":170,"name":"Kólumbía","alpha2":"co","alpha3":"col"}, +{"id":174,"name":"Kómorróeyjar","alpha2":"km","alpha3":"com"}, +{"id":178,"name":"Kongó","alpha2":"cg","alpha3":"cog"}, +{"id":180,"name":"Kongó, Lýðstjórnarlýðveldið","alpha2":"cd","alpha3":"cod"}, +{"id":188,"name":"Kosta Ríka","alpha2":"cr","alpha3":"cri"}, +{"id":384,"name":"Fílabeinsströndin","alpha2":"ci","alpha3":"civ"}, +{"id":191,"name":"Króatía","alpha2":"hr","alpha3":"hrv"}, +{"id":192,"name":"Kúba","alpha2":"cu","alpha3":"cub"}, +{"id":196,"name":"Kýpur","alpha2":"cy","alpha3":"cyp"}, +{"id":203,"name":"Tékkland","alpha2":"cz","alpha3":"cze"}, +{"id":208,"name":"Danmörk","alpha2":"dk","alpha3":"dnk"}, +{"id":262,"name":"Djibútí","alpha2":"dj","alpha3":"dji"}, +{"id":212,"name":"Dóminíka","alpha2":"dm","alpha3":"dma"}, +{"id":214,"name":"Dóminíkanska lýðveldið","alpha2":"do","alpha3":"dom"}, +{"id":218,"name":"Ekvador","alpha2":"ec","alpha3":"ecu"}, +{"id":818,"name":"Egyptaland","alpha2":"eg","alpha3":"egy"}, +{"id":222,"name":"El Salvador","alpha2":"sv","alpha3":"slv"}, +{"id":226,"name":"Miðbaugs-Gínea","alpha2":"gq","alpha3":"gnq"}, +{"id":232,"name":"Erítrea","alpha2":"er","alpha3":"eri"}, +{"id":233,"name":"Eistland","alpha2":"ee","alpha3":"est"}, +{"id":748,"name":"Esvatíní","alpha2":"sz","alpha3":"swz"}, +{"id":231,"name":"Eþíópía","alpha2":"et","alpha3":"eth"}, +{"id":242,"name":"Fídjíeyjar","alpha2":"fj","alpha3":"fji"}, +{"id":246,"name":"Finnland","alpha2":"fi","alpha3":"fin"}, +{"id":250,"name":"Frakkland","alpha2":"fr","alpha3":"fra"}, +{"id":266,"name":"Gabon","alpha2":"ga","alpha3":"gab"}, +{"id":270,"name":"Gambía","alpha2":"gm","alpha3":"gmb"}, +{"id":268,"name":"Georgía","alpha2":"ge","alpha3":"geo"}, +{"id":276,"name":"Þýskaland","alpha2":"de","alpha3":"deu"}, +{"id":288,"name":"Gana","alpha2":"gh","alpha3":"gha"}, +{"id":300,"name":"Grikkland","alpha2":"gr","alpha3":"grc"}, +{"id":308,"name":"Grenada","alpha2":"gd","alpha3":"grd"}, +{"id":320,"name":"Gvatemala","alpha2":"gt","alpha3":"gtm"}, +{"id":324,"name":"Gínea","alpha2":"gn","alpha3":"gin"}, +{"id":624,"name":"Gínea-Bissá","alpha2":"gw","alpha3":"gnb"}, +{"id":328,"name":"Gvæjana","alpha2":"gy","alpha3":"guy"}, +{"id":332,"name":"Haítí","alpha2":"ht","alpha3":"hti"}, +{"id":340,"name":"Hondúras","alpha2":"hn","alpha3":"hnd"}, +{"id":344,"name":"Hong Kong","alpha2":"hk","alpha3":"hkg"}, +{"id":348,"name":"Ungverjaland","alpha2":"hu","alpha3":"hun"}, +{"id":352,"name":"Ísland","alpha2":"is","alpha3":"isl"}, +{"id":356,"name":"Indland","alpha2":"in","alpha3":"ind"}, +{"id":360,"name":"Indónesía","alpha2":"id","alpha3":"idn"}, +{"id":364,"name":"Íran (Íslamska lýðveldið)","alpha2":"ir","alpha3":"irn"}, +{"id":368,"name":"Írak","alpha2":"iq","alpha3":"irq"}, +{"id":372,"name":"Írland","alpha2":"ie","alpha3":"irl"}, +{"id":376,"name":"Ísrael","alpha2":"il","alpha3":"isr"}, +{"id":380,"name":"Ítala","alpha2":"it","alpha3":"ita"}, +{"id":388,"name":"Jamaíka","alpha2":"jm","alpha3":"jam"}, +{"id":392,"name":"Japan","alpha2":"jp","alpha3":"jpn"}, +{"id":400,"name":"Jórdanía","alpha2":"jo","alpha3":"jor"}, +{"id":398,"name":"Kasakstan","alpha2":"kz","alpha3":"kaz"}, +{"id":404,"name":"Kenýa","alpha2":"ke","alpha3":"ken"}, +{"id":296,"name":"Kíríbatí","alpha2":"ki","alpha3":"kir"}, +{"id":408,"name":"Kórea (Alþýðulýðveldið, Norður)","alpha2":"kp","alpha3":"prk"}, +{"id":410,"name":"Kórea (Lýðveldið, Suður)","alpha2":"kr","alpha3":"kor"}, +{"id":414,"name":"Kúveit","alpha2":"kw","alpha3":"kwt"}, +{"id":417,"name":"Kirgistan","alpha2":"kg","alpha3":"kgz"}, +{"id":418,"name":"Laos (Alþýðulýðveldið)","alpha2":"la","alpha3":"lao"}, +{"id":428,"name":"Lettland","alpha2":"lv","alpha3":"lva"}, +{"id":422,"name":"Líbanon","alpha2":"lb","alpha3":"lbn"}, +{"id":426,"name":"Lesótó","alpha2":"ls","alpha3":"lso"}, +{"id":430,"name":"Líbería","alpha2":"lr","alpha3":"lbr"}, +{"id":434,"name":"Líbía","alpha2":"ly","alpha3":"lby"}, +{"id":438,"name":"Liechtenstein","alpha2":"li","alpha3":"lie"}, +{"id":440,"name":"Litháen","alpha2":"lt","alpha3":"ltu"}, +{"id":442,"name":"Luxembúrg","alpha2":"lu","alpha3":"lux"}, +{"id":450,"name":"Madagaskar","alpha2":"mg","alpha3":"mdg"}, +{"id":454,"name":"Malaví","alpha2":"mw","alpha3":"mwi"}, +{"id":458,"name":"Malasía","alpha2":"my","alpha3":"mys"}, +{"id":462,"name":"Maldíveyjar","alpha2":"mv","alpha3":"mdv"}, +{"id":466,"name":"Malí","alpha2":"ml","alpha3":"mli"}, +{"id":470,"name":"Malta","alpha2":"mt","alpha3":"mlt"}, +{"id":584,"name":"Marshalleyjar","alpha2":"mh","alpha3":"mhl"}, +{"id":478,"name":"Máritanía","alpha2":"mr","alpha3":"mrt"}, +{"id":480,"name":"Máritíus","alpha2":"mu","alpha3":"mus"}, +{"id":484,"name":"Mexíkó","alpha2":"mx","alpha3":"mex"}, +{"id":583,"name":"Míkrónesía (Sambandsríkið)","alpha2":"fm","alpha3":"fsm"}, +{"id":498,"name":"Moldóvía, Lýðveldið","alpha2":"md","alpha3":"mda"}, +{"id":492,"name":"Mónakó","alpha2":"mc","alpha3":"mco"}, +{"id":496,"name":"Mongólía","alpha2":"mn","alpha3":"mng"}, +{"id":499,"name":"Svartfjallaland","alpha2":"me","alpha3":"mne"}, +{"id":504,"name":"Marokkó","alpha2":"ma","alpha3":"mar"}, +{"id":508,"name":"Mósambík","alpha2":"mz","alpha3":"moz"}, +{"id":104,"name":"Mjanmar","alpha2":"mm","alpha3":"mmr"}, +{"id":516,"name":"Namibía","alpha2":"na","alpha3":"nam"}, +{"id":520,"name":"Nárú","alpha2":"nr","alpha3":"nru"}, +{"id":524,"name":"Nepal","alpha2":"np","alpha3":"npl"}, +{"id":528,"name":"Holland","alpha2":"nl","alpha3":"nld"}, +{"id":554,"name":"Nýja-Sjáland","alpha2":"nz","alpha3":"nzl"}, +{"id":558,"name":"Níkaragva","alpha2":"ni","alpha3":"nic"}, +{"id":562,"name":"Níger","alpha2":"ne","alpha3":"ner"}, +{"id":566,"name":"Nígería","alpha2":"ng","alpha3":"nga"}, +{"id":807,"name":"Norður-Makedónía","alpha2":"mk","alpha3":"mkd"}, +{"id":578,"name":"Noregur","alpha2":"no","alpha3":"nor"}, +{"id":512,"name":"Óman","alpha2":"om","alpha3":"omn"}, +{"id":586,"name":"Pakistan","alpha2":"pk","alpha3":"pak"}, +{"id":585,"name":"Palá","alpha2":"pw","alpha3":"plw"}, +{"id":591,"name":"Panama","alpha2":"pa","alpha3":"pan"}, +{"id":598,"name":"Papúa Nýja-Gínea","alpha2":"pg","alpha3":"png"}, +{"id":600,"name":"Paragvæ","alpha2":"py","alpha3":"pry"}, +{"id":604,"name":"Perú","alpha2":"pe","alpha3":"per"}, +{"id":608,"name":"Filippseyjar","alpha2":"ph","alpha3":"phl"}, +{"id":616,"name":"Pólland","alpha2":"pl","alpha3":"pol"}, +{"id":620,"name":"Portúgal","alpha2":"pt","alpha3":"prt"}, +{"id":634,"name":"Katar","alpha2":"qa","alpha3":"qat"}, +{"id":642,"name":"Rúmenía","alpha2":"ro","alpha3":"rou"}, +{"id":643,"name":"Rússland, Sambandsríkið","alpha2":"ru","alpha3":"rus"}, +{"id":646,"name":"Rúanda","alpha2":"rw","alpha3":"rwa"}, +{"id":659,"name":"Sankti Kitts og Nevis","alpha2":"kn","alpha3":"kna"}, +{"id":662,"name":"Sankti Lúsía","alpha2":"lc","alpha3":"lca"}, +{"id":670,"name":"Sankti Vinsent og Grenadínur","alpha2":"vc","alpha3":"vct"}, +{"id":882,"name":"Samóa","alpha2":"ws","alpha3":"wsm"}, +{"id":674,"name":"San Marínó","alpha2":"sm","alpha3":"smr"}, +{"id":678,"name":"Saó Tóme og Prinsípe","alpha2":"st","alpha3":"stp"}, +{"id":682,"name":"Sádí-Arabía","alpha2":"sa","alpha3":"sau"}, +{"id":686,"name":"Senegal","alpha2":"sn","alpha3":"sen"}, +{"id":688,"name":"Serbía","alpha2":"rs","alpha3":"srb"}, +{"id":690,"name":"Seychelles-eyjar","alpha2":"sc","alpha3":"syc"}, +{"id":694,"name":"Síerra Leóne","alpha2":"sl","alpha3":"sle"}, +{"id":702,"name":"Singapúr","alpha2":"sg","alpha3":"sgp"}, +{"id":703,"name":"Slóvakía","alpha2":"sk","alpha3":"svk"}, +{"id":705,"name":"Slóvenía","alpha2":"si","alpha3":"svn"}, +{"id":90,"name":"Salómonseyjar","alpha2":"sb","alpha3":"slb"}, +{"id":706,"name":"Sómalía","alpha2":"so","alpha3":"som"}, +{"id":710,"name":"Suður-Afríka","alpha2":"za","alpha3":"zaf"}, +{"id":728,"name":"Suður-Súdan","alpha2":"ss","alpha3":"ssd"}, +{"id":724,"name":"Spánn","alpha2":"es","alpha3":"esp"}, +{"id":144,"name":"Srí Lanka","alpha2":"lk","alpha3":"lka"}, +{"id":729,"name":"Súdan","alpha2":"sd","alpha3":"sdn"}, +{"id":740,"name":"Súrínam","alpha2":"sr","alpha3":"sur"}, +{"id":752,"name":"Svíþjóð","alpha2":"se","alpha3":"swe"}, +{"id":756,"name":"Sviss","alpha2":"ch","alpha3":"che"}, +{"id":760,"name":"Sýrland, Arabalýðveldið","alpha2":"sy","alpha3":"syr"}, +{"id":762,"name":"Tadsíkistan","alpha2":"tj","alpha3":"tjk"}, +{"id":834,"name":"Tansanía, Sambandslýðveldið","alpha2":"tz","alpha3":"tza"}, +{"id":764,"name":"Tæland","alpha2":"th","alpha3":"tha"}, +{"id":626,"name":"Tímor-Leste","alpha2":"tl","alpha3":"tls"}, +{"id":768,"name":"Tógó","alpha2":"tg","alpha3":"tgo"}, +{"id":776,"name":"Tonga","alpha2":"to","alpha3":"ton"}, +{"id":780,"name":"Trínídad og Tóbagó","alpha2":"tt","alpha3":"tto"}, +{"id":788,"name":"Túnis","alpha2":"tn","alpha3":"tun"}, +{"id":792,"name":"Tyrkland","alpha2":"tr","alpha3":"tur"}, +{"id":795,"name":"Túrkmenistan","alpha2":"tm","alpha3":"tkm"}, +{"id":798,"name":"Túvalú","alpha2":"tv","alpha3":"tuv"}, +{"id":800,"name":"Úganda","alpha2":"ug","alpha3":"uga"}, +{"id":804,"name":"Úkraína","alpha2":"ua","alpha3":"ukr"}, +{"id":784,"name":"Sameinuðu arabísku furstadæmin","alpha2":"ae","alpha3":"are"}, +{"id":826,"name":"Bretland (Sameinaða konungsríkið Stóra-Bretland og Norður-Írland)","alpha2":"gb","alpha3":"gbr"}, +{"id":840,"name":"Bandaríkin","alpha2":"us","alpha3":"usa"}, +{"id":858,"name":"Úrúgvæ","alpha2":"uy","alpha3":"ury"}, +{"id":860,"name":"Úsbekistan","alpha2":"uz","alpha3":"uzb"}, +{"id":548,"name":"Vanúatú","alpha2":"vu","alpha3":"vut"}, +{"id":862,"name":"Venesúela (Bólivarska lýðveldið)","alpha2":"ve","alpha3":"ven"}, +{"id":704,"name":"Víetnam","alpha2":"vn","alpha3":"vnm"}, +{"id":887,"name":"Jemen","alpha2":"ye","alpha3":"yem"}, +{"id":894,"name":"Sambía","alpha2":"zm","alpha3":"zmb"}, +{"id":716,"name":"Simbabve","alpha2":"zw","alpha3":"zwe"}, +{"id": 158, "name":"Taiwan", "alpha2": "tw", "alpha3": "twn"}] From f1cc94edeb1bec49bf3c8c561b5f7f43a1757da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 29 Mar 2021 17:26:56 +0000 Subject: [PATCH 087/297] Update en-US.yaml As discussed in #1144 --- static/locales/en-US.yaml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index 4b969536..967f457d 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -176,7 +176,7 @@ Settings: Default Playback Rate: Default Playback Rate Default Video Format: Default Video Format: Default Video Format - Dash Formats: Dash Formats + Dash Formats: DASH Formats Legacy Formats: Legacy Formats Audio Formats: Audio Formats Default Quality: @@ -467,7 +467,7 @@ Video: Streamed on: Streamed on Started streaming on: Started streaming on # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: $ % ago + Publicationtemplate: $ % ago #& Videos Videos: #& Sort By @@ -496,10 +496,10 @@ Playlist: Toggle Theatre Mode: Toggle Theatre Mode Change Format: Change Video Formats: Change Video Formats - Use Dash Formats: Use Dash Formats + Use Dash Formats: Use DASH Formats Use Legacy Formats: Use Legacy Formats Use Audio Formats: Use Audio Formats - Dash formats are not available for this video: Dash formats are not available for + Dash formats are not available for this video: DASH formats are not available for this video Audio formats are not available for this video: Audio formats are not available for this video @@ -548,29 +548,29 @@ Tooltips: to connect to. Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem, FreeTube will automatically attempt to use your non-preferred API as a fallback - method when enabled + method when enabled. Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with - a frame of the video instead of the default thumbnail + a frame of the video instead of the default thumbnail. Invidious Instance: The Invidious instance that FreeTube will connect to for API calls. Clear the current instance to see a list of public instances to choose - from + from. Region for Trending: The region of trends allows you to pick which country's trending videos you want to have displayed. Not all countries displayed are actually - supported by YouTube + supported by YouTube. Player Settings: Force Local Backend for Legacy Formats: Only works when the Invidious API is your default. When enabled, the local API will run and use the legacy formats returned by that instead of the ones returned by Invidious. Helps when the videos returned - by Invidious don't play due to country restrictions + by Invidious don't play due to country restrictions. Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead - of making a direct connection to YouTube. Overrides API preference - Default Video Format: Set the formats used when a video plays. Dash formats can + of making a direct connection to YouTube. Overrides API preference. + Default Video Format: Set the formats used when a video plays. DASH formats can play higher qualities. Legacy formats are limited to a max of 720p but use less - bandwidth. Audio formats are audio only streams + bandwidth. Audio formats are audio only streams. Subscription Settings: 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, - but doesn't provide certain information like video duration or live status + but doesn't provide certain information like video duration or live status. # Toast Messages Local API Error (Click to copy): Local API Error (Click to copy) From f39579c6d22c5bdf00918816f4d5e5eb706a7a37 Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Tue, 30 Mar 2021 03:31:35 +0100 Subject: [PATCH 088/297] Stop replacing YouTube hrefs for protocol links --- .../watch-video-description/watch-video-description.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/watch-video-description/watch-video-description.js b/src/renderer/components/watch-video-description/watch-video-description.js index 3773e52d..e7a2eccb 100644 --- a/src/renderer/components/watch-video-description/watch-video-description.js +++ b/src/renderer/components/watch-video-description/watch-video-description.js @@ -55,9 +55,8 @@ export default Vue.extend({ descriptionText = descriptionText.replace(/&v.+?(?=")/g, '') descriptionText = descriptionText.replace(/&redirect-token.+?(?=")/g, '') descriptionText = descriptionText.replace(/&redir_token.+?(?=")/g, '') - descriptionText = descriptionText.replace(/href="http(s)?:\/\/youtube\.com/g, 'href="freetube://https://youtube.com') - descriptionText = descriptionText.replace(/href="\/watch/g, 'href="freetube://https://youtube.com') - descriptionText = descriptionText.replace(/href="\/results\?search_query=/g, 'href="freetube://') + descriptionText = descriptionText.replace(/href="\//g, 'href="https://www.youtube.com/') + // TODO: Implement hashtag support descriptionText = descriptionText.replace(/href="\/hashtag\//g, 'href="freetube://') descriptionText = descriptionText.replace(/yt\.www\.watch\.player\.seekTo/g, 'changeDuration') From f9f49a5f6d75c7a71772f3eae6d59ebcff76cb2c Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Tue, 30 Mar 2021 03:32:17 +0100 Subject: [PATCH 089/297] Link app views to related YouTube url navigations --- src/renderer/App.js | 122 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 118 insertions(+), 4 deletions(-) diff --git a/src/renderer/App.js b/src/renderer/App.js index eca320ba..7d8b6891 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -269,14 +269,128 @@ export default Vue.extend({ }, openAllLinksExternally: function () { - // Open links externally by default $(document).on('click', 'a[href^="http"]', (event) => { const el = event.currentTarget console.log(useElectron) console.log(el) - if (typeof (shell) !== 'undefined') { - event.preventDefault() - shell.openExternal(el.href) + event.preventDefault() + + // Check if YouTube video, channel or playlist + const youtubeUrlPattern = /^https?:\/\/((www\.)?youtube\.com(\/embed)?|youtu\.be)\/.*$/ + const isYoutubeLink = youtubeUrlPattern.test(el.href) + + if (isYoutubeLink) { + this.handleYoutubeLink(el.href) + } else { + // Open links externally by default + if (typeof (shell) !== 'undefined') { + shell.openExternal(el.href) + } + } + }) + }, + + handleYoutubeLink: function (href) { + const v = this + + // Assume it's a video + this.$store.dispatch('getVideoParamsFromUrl', href).then(({ videoId, timestamp }) => { + if (videoId) { + v.$router.push({ + path: `/watch/${videoId}`, + query: timestamp ? { timestamp } : {} + }) + } else { + // Could be playlist, search, hashtag or channel + // For now, ignore hashtags + + const url = new URL(href) + + let urlType + const typePatterns = new Map([ + ['playlist', /\/playlist$/], + ['search', /\/results$/], + // ['hashtag', /\/hashtag\/([^/?&#]+)/], + ['channel', /\/(?:c\/|channel\/)?([^/?&#]+).*$/] + ]) + + for (const [type, pattern] of typePatterns) { + const isAMatch = pattern.test(url.pathname) + if (isAMatch) { + urlType = type + break + } + } + + switch (urlType) { + case 'playlist': { + if (!url.searchParams.has('list')) { + return + } + + const playlistId = url.searchParams.get('list') + url.searchParams.delete('list') + + const query = {} + for (const [param, value] of url.searchParams) { + query[param] = value + } + + v.$router.push({ + path: `/playlist/${playlistId}`, + query + }) + break + } + + case 'search': { + if (!url.searchParams.has('search_query')) { + return + } + + const searchQuery = url.searchParams.get('search_query') + url.searchParams.delete('search_query') + + const query = { + sortBy: this.searchSettings.sortBy, + time: this.searchSettings.time, + type: this.searchSettings.type, + duration: this.searchSettings.duration + } + + for (const [param, value] of url.searchParams) { + query[param] = value + } + + v.$router.push({ + path: `/search/${encodeURIComponent(searchQuery)}`, + query + }) + break + } + /* case 'hashtag': { + // placeholder + break + } */ + case 'channel': { + const channelId = url.pathname.match(/\/(?:c\/|channel\/)?([^/?&#]+).*$/)[1] + if (!channelId) { + return + } + + v.$router.push({ + path: `/channel/${channelId}` + }) + break + } + + default: { + if (typeof (shell) !== 'undefined') { + shell.openExternal(href) + } + break + } + } } }) }, From c56cb87f7c43af6fce24df0400858cf98220d547 Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Tue, 30 Mar 2021 03:34:56 +0100 Subject: [PATCH 090/297] Gilgus did this and left it there for days -_-' --- .../components/watch-video-comments/watch-video-comments.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index 20b96740..a993a373 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -47,8 +47,9 @@ class="commentThumbnail" @click="goToChannel(comment.authorLink)" > -

    {{ comment.author }} From 36567a4291a25ea1979f0034320ba840acdd974a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=98=E8=8F=98?= Date: Tue, 30 Mar 2021 08:16:56 +0000 Subject: [PATCH 091/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (448 of 448 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index cf43977b..06fc1726 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -121,9 +121,9 @@ Settings: Match Top Bar with Main Color: '頂部功能表欄對應主色彩' Base Theme: Base Theme: '基本主題' - Black: '黑' - Dark: '深' - Light: '淺' + Black: '黑色' + Dark: '深色' + Light: '淺色' Main Color Theme: Main Color Theme: '主題色' Red: '紅' @@ -161,7 +161,7 @@ Settings: Default Playback Rate: '預設播放速度' Default Video Format: Default Video Format: '預設影片格式' - Dash Formats: 'Dash格式' + Dash Formats: '儀錶盤格式' Legacy Formats: '傳統格式' Audio Formats: '音訊格式' Default Quality: @@ -479,11 +479,11 @@ Playlist: Toggle Theatre Mode: '切換為劇院模式' Change Format: Change Video Formats: '變更影片格式' - Use Dash Formats: '使用Dash格式' + Use Dash Formats: '使用儀錶盤格式' Use Legacy Formats: '使用傳統格式' Use Audio Formats: '使用音訊格式' Audio formats are not available for this video: 這個影片沒有音訊格式 - Dash formats are not available for this video: 這個影片沒有Dash格式 + Dash formats are not available for this video: 這個影片沒有儀錶盤格式 Share: Share Video: '分享影片' Copy Link: '複製連結' @@ -584,7 +584,7 @@ Tooltips: Subscription Settings: Fetch Feeds from RSS: 啟用後,FreeTube將使用RSS代替它的預設方法來抓取您的訂閱來源。RSS的速度較快,而且可以防止IP封鎖,但它可能不會提供某些資訊,例如影片長度或是直播狀態。 Player Settings: - Default Video Format: 設定要用於影片播放的格式。Dash格式有更高的品質。傳統格式會限制在 720p但頻寬需求更低。音訊格式為僅有音訊的串流 + Default Video Format: 設定要用於影片播放的格式。儀錶盤格式有更高的畫質。傳統格式會限制在 720p 但頻寬需求更低。音訊格式為僅有音訊的串流 Proxy Videos Through Invidious: 將連線到 Invidious而非直接連線到 YouTube 來提供影片。覆寫 API 偏好 Force Local Backend for Legacy Formats: 僅當 Invidious API是您預設 API 時才有效。啟用後,區域 API 將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious回傳的影片時有幫助 From f6f9ba7a6cf5fef9c01ffdc5194a778ebd05f8e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Mar 2021 14:25:59 -0400 Subject: [PATCH 092/297] Bump y18n from 4.0.0 to 4.0.1 (#1150) Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67ce048c..7534ee68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10734,9 +10734,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -11499,9 +11499,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { From c5fac9fcd7d8e0a10d922592006b007daf2deedf Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Thu, 1 Apr 2021 15:54:45 +0200 Subject: [PATCH 093/297] Video meta file removal option (#1154) * Implemented video meta file removal option * Lint fix --- .../privacy-settings/privacy-settings.js | 12 ++++++++ .../privacy-settings/privacy-settings.vue | 9 ++++++ src/renderer/store/modules/settings.js | 21 +++++++++++++ src/renderer/views/Watch/Watch.js | 30 +++++++++++++++++-- static/locales/en-US.yaml | 4 +++ 5 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/privacy-settings/privacy-settings.js b/src/renderer/components/privacy-settings/privacy-settings.js index 53b4421f..3e9f42b6 100644 --- a/src/renderer/components/privacy-settings/privacy-settings.js +++ b/src/renderer/components/privacy-settings/privacy-settings.js @@ -33,6 +33,10 @@ export default Vue.extend({ saveWatchedProgress: function () { return this.$store.getters.getSaveWatchedProgress }, + removeVideoMetaFiles: function () { + return this.$store.getters.getRemoveVideoMetaFiles + }, + profileList: function () { return this.$store.getters.getProfileList }, @@ -66,6 +70,13 @@ export default Vue.extend({ this.updateRememberHistory(value) }, + handleVideoMetaFiles: function (value) { + if (!value) { + this.updateRemoveVideoMetaFiles(false) + } + this.updateRemoveVideoMetaFiles(value) + }, + handleRemoveHistory: function (option) { this.showRemoveHistoryPrompt = false @@ -102,6 +113,7 @@ export default Vue.extend({ ...mapActions([ 'updateRememberHistory', + 'updateRemoveVideoMetaFiles', 'removeAllHistory', 'updateSaveWatchedProgress', 'clearSessionSearchHistory', diff --git a/src/renderer/components/privacy-settings/privacy-settings.vue b/src/renderer/components/privacy-settings/privacy-settings.vue index e0191eda..d39b7214 100644 --- a/src/renderer/components/privacy-settings/privacy-settings.vue +++ b/src/renderer/components/privacy-settings/privacy-settings.vue @@ -23,6 +23,15 @@ @change="updateSaveWatchedProgress" /> +

    + +

    diff --git a/src/renderer/store/modules/settings.js b/src/renderer/store/modules/settings.js index 1c427b05..bd12ed7c 100644 --- a/src/renderer/store/modules/settings.js +++ b/src/renderer/store/modules/settings.js @@ -47,6 +47,7 @@ const state = { enableSearchSuggestions: true, rememberHistory: true, saveWatchedProgress: true, + removeVideoMetaFiles: true, autoplayVideos: true, autoplayPlaylists: true, playNextVideo: false, @@ -141,6 +142,10 @@ const getters = { return state.saveWatchedProgress }, + getRemoveVideoMetaFiles: () => { + return state.removeVideoMetaFiles + }, + getAutoplayVideos: () => { return state.autoplayVideos }, @@ -330,6 +335,9 @@ const actions = { case 'saveWatchedProgress': commit('setSaveWatchedProgress', result.value) break + case 'removeVideoMetaFiles': + commit('setRemoveVideoMetaFiles', result.value) + break case 'autoplayVideos': commit('setAutoplayVideos', result.value) break @@ -555,6 +563,14 @@ const actions = { }) }, + updateRemoveVideoMetaFiles ({ commit }, removeVideoMetaFiles) { + settingsDb.update({ _id: 'removeVideoMetaFiles' }, { _id: 'removeVideoMetaFiles', value: removeVideoMetaFiles }, { upsert: true }, (err, numReplaced) => { + if (!err) { + commit('setRemoveVideoMetaFiles', removeVideoMetaFiles) + } + }) + }, + updateAutoplayVideos ({ commit }, autoplayVideos) { settingsDb.update({ _id: 'autoplayVideos' }, { _id: 'autoplayVideos', value: autoplayVideos }, { upsert: true }, (err, numReplaced) => { if (!err) { @@ -822,6 +838,11 @@ const mutations = { setSaveWatchedProgress (state, saveWatchedProgress) { state.saveWatchedProgress = saveWatchedProgress }, + + setRemoveVideoMetaFiles (state, removeVideoMetaFiles) { + state.removeVideoMetaFiles = removeVideoMetaFiles + }, + setAutoplayVideos (state, autoplayVideos) { state.autoplayVideos = autoplayVideos }, diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index 00745b4d..1e5c4990 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -91,6 +91,9 @@ export default Vue.extend({ rememberHistory: function () { return this.$store.getters.getRememberHistory }, + removeVideoMetaFiles: function () { + return this.$store.getters.getRemoveVideoMetaFiles + }, saveWatchedProgress: function () { return this.$store.getters.getSaveWatchedProgress }, @@ -899,8 +902,6 @@ export default Vue.extend({ videoId: this.videoId, watchProgress: currentTime } - - console.log('update watch progress') this.updateWatchProgress(payload) } } @@ -928,6 +929,31 @@ export default Vue.extend({ }, 200) } } + + if (this.removeVideoMetaFiles) { + const userData = remote.app.getPath('userData') + if (this.isDev) { + const dashFileLocation = `dashFiles/${this.videoId}.xml` + const vttFileLocation = `storyboards/${this.videoId}.vtt` + // only delete the file it actually exists + if (fs.existsSync('dashFiles/') && fs.existsSync(dashFileLocation)) { + fs.rmSync(dashFileLocation) + } + if (fs.existsSync('storyboards/') && fs.existsSync(vttFileLocation)) { + fs.rmSync(vttFileLocation) + } + } else { + const dashFileLocation = `${userData}/dashFiles/${this.videoId}.xml` + const vttFileLocation = `${userData}/storyboards/${this.videoId}.vtt` + + if (fs.existsSync(`${userData}/dashFiles/`) && fs.existsSync(dashFileLocation)) { + fs.rmSync(dashFileLocation) + } + if (fs.existsSync(`${userData}/storyboards/`) && fs.existsSync(vttFileLocation)) { + fs.rmSync(vttFileLocation) + } + } + } }, handleVideoError: function (error) { diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index 4b969536..d73f551e 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -195,6 +195,7 @@ Settings: Privacy Settings: Privacy Settings Remember History: Remember History Save Watched Progress: Save Watched Progress + Automatically Remove Video Meta Files: Automatically Remove Video Meta Files 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? @@ -571,6 +572,9 @@ Tooltips: 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, but doesn't provide certain information like video duration or live status + Privacy Settings: + Remove Video Meta Files: When enabled, FreeTube automatically deletes meta files created during video playback, + when the watch page is closed. # Toast Messages Local API Error (Click to copy): Local API Error (Click to copy) From 039cd9874d36b2d4da4975728d8be2147987eb95 Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Thu, 1 Apr 2021 16:21:04 +0200 Subject: [PATCH 094/297] New languages and yt-channel-info bump (#1155) --- package-lock.json | 12 ++++++------ package.json | 2 +- src/renderer/main.js | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7534ee68..019b63cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18302,9 +18302,9 @@ } }, "yt-channel-info": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/yt-channel-info/-/yt-channel-info-1.3.0.tgz", - "integrity": "sha512-75ML9snDZhXSkaczR3mgcq6EyI2jjPYzjXcz5TV9C9gSRkhCv2gxVhJVPXfeUQuAa0YGySE3F1V0Yz2HyY3zfg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yt-channel-info/-/yt-channel-info-2.0.0.tgz", + "integrity": "sha512-Qrd9ONv9NbVPGGwCWPDwuQds43iXcNQHMB4iE9VqBtDt9WuMKoZd6BvoZDT10QCKisknByO1XIkM1hxbKyZNnA==", "requires": { "axios": "^0.21.1", "querystring": "^0.2.0" @@ -18377,9 +18377,9 @@ } }, "yt-trending-scraper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.1.1.tgz", - "integrity": "sha512-ElD3MIZ1ukjOcexYm5VIdLtY22hskrtHA9+8t/5Ox8CG7+vGlTJy2N5MUVAhh0ucoOl8cfkVrsuEUQbzXeABig==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.1.2.tgz", + "integrity": "sha512-kRR/bBhNBq/GAvHDSdKE9MxJcwg+CxWb/JZtr2J3xZZ5UF3txdUc3zCLxqf+RRVcdJuObxEv0MgReCwspoFoAg==", "requires": { "axios": "^0.21.1" }, diff --git a/package.json b/package.json index 807f023c..a6dc199f 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "xml2json": "^0.12.0", "youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git", "youtube-suggest": "^1.1.1", - "yt-channel-info": "^1.3.0", + "yt-channel-info": "^2.0.0", "yt-comment-scraper": "^3.0.2", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^1.1.1", diff --git a/src/renderer/main.js b/src/renderer/main.js index 9513d603..4404b54c 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -27,7 +27,7 @@ Vue.component('FontAwesomeIcon', FontAwesomeIcon) Vue.use(VueI18n) // List of locales approved for use -const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nb_NO', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW'] +const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'is', 'it', 'ja', 'nb_NO', 'nl', 'nn', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW'] const messages = {} /* eslint-disable-next-line */ const fileLocation = isDev ? 'static/locales/' : `${__dirname}/static/locales/` From bfa44b2c0a505098da6794c78e857d76033f564b Mon Sep 17 00:00:00 2001 From: Luca Hohmann Date: Thu, 1 Apr 2021 14:26:22 +0000 Subject: [PATCH 095/297] Translated using Weblate (German) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index eeed1408..250e1317 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -246,6 +246,7 @@ Settings: du sicher, dass du alle Abonnements und Profile löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden. Remove All Subscriptions / Profiles: Alle Abonnements / Profile löschen + Automatically Remove Video Meta Files: Meta-Dateien von Videos automatisch löschen Data Settings: How do I import my subscriptions?: Wie importiere ich meine Abonnements? Unknown data key: Unbekannter Datenschlüssel @@ -690,6 +691,10 @@ Tooltips: Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund von Landesbeschränkungen. + Privacy Settings: + Remove Video Meta Files: Bei Aktivierung löscht FreeTube alle Meta-Dateien die + während der Videowiedergabe erzeugt werden, sobald die Videoseite verlassen + wird. Playing Next Video Interval: Nächstes Video wird sofort abgespielt. Zum Abbrechen klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen From 1dcefe90e9a0f13192190733ca196d72c0dea205 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Thu, 1 Apr 2021 14:25:42 +0000 Subject: [PATCH 096/297] Translated using Weblate (Ukrainian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/ --- static/locales/uk.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/uk.yaml b/static/locales/uk.yaml index 84f44844..511b36c1 100644 --- a/static/locales/uk.yaml +++ b/static/locales/uk.yaml @@ -211,6 +211,7 @@ Settings: Remove All Subscriptions / Profiles: 'Видалити всі підписки / профілі' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Справді хочете вилучити всі підписки та профілі? Цю дію не можна скасувати.' + Automatically Remove Video Meta Files: Автоматично вилучати метафайли відео Subscription Settings: Subscription Settings: 'Налаштування підписки' Hide Videos on Watch: 'Ховати відео при перегляді' @@ -617,6 +618,9 @@ Tooltips: ІР, але не надає дані, як-от тривалість відео або стан трансляції' # Toast Messages + Privacy Settings: + Remove Video Meta Files: Якщо увімкнено, FreeTube автоматично видаляє метафайли, + створені під час відтворення відео, коли сторінку перегляду закрито. Local API Error (Click to copy): 'Помилка локального API (натисніть, щоб скопіювати)' Invidious API Error (Click to copy): 'Помилка Invidious API (натисніть, щоб скопіювати)' Falling back to Invidious API: 'Повернення до API Invidious' From 421b655519bd3d43c7a02b957fa3ea35552b9708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 1 Apr 2021 15:29:45 +0000 Subject: [PATCH 097/297] Translated using Weblate (Turkish) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index ff7a23c0..3090f6ba 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -206,6 +206,8 @@ Settings: Remove All Subscriptions / Profiles: 'Tüm Abonelikler/Profilleri Temizle' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Tüm abonelikler/profilleri temizlemek istediğinizden emin misiniz? Geri alınamaz.' + Automatically Remove Video Meta Files: Video Meta Dosyalarını Otomatik Olarak + Kaldır Subscription Settings: Subscription Settings: 'Abonelik Ayarları' Hide Videos on Watch: 'İzlenmiş Videoları Gizle' @@ -661,6 +663,9 @@ Tooltips: 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 tarafından desteklenmemektedir + Privacy Settings: + Remove Video Meta Files: Etkinleştirildiğinde, izleme sayfası kapatıldığında video + oynatma sırasında oluşturulan meta dosyaları otomatik olarak silinir. Playing Next Video Interval: Sonraki video hemen oynatılıyor. İptal etmek için tıklayın. | 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 From e93090a459cadde9ae262a53b3c7da7e5c927e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Thu, 1 Apr 2021 16:28:37 +0000 Subject: [PATCH 098/297] Translated using Weblate (Icelandic) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index dc8b8371..5ce703e8 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -214,6 +214,7 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Ertu viss um að þú viljir fjarlægja allar áskriftir og notkunarsnið? Ekki er hægt að afturkalla þetta.' + Automatically Remove Video Meta Files: Sjálfvirkt fjarlægja lýsigögn úr myndskeiðaskrám Subscription Settings: Subscription Settings: 'Stillingar áskrifta' Hide Videos on Watch: 'Fela myndskeið eftir áhorf' @@ -588,6 +589,9 @@ Tooltips: á borð við tímalengd myndskeiða eða stöðu í beinni útsendingu' # Toast Messages + Privacy Settings: + Remove Video Meta Files: Þegar þetta er virkt, eyðir FreeTube sjálfkrafa lýsigagnaskrám + sem útbúnar eru við afspilun, þegar skoðunarsíðunni er lokað. Local API Error (Click to copy): 'Villa í staðværu API-kerfisviðmóti (smella til að afrita)' Invidious API Error (Click to copy): 'Villa í Invidious API-kerfisviðmóti (smella From c3d608a8b65f05ef6f4dbc8ba8f27eaaaa2b0a63 Mon Sep 17 00:00:00 2001 From: ovari Date: Thu, 1 Apr 2021 20:02:58 +0000 Subject: [PATCH 099/297] Translated using Weblate (Hungarian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 798ac30e..5152ba75 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -211,6 +211,7 @@ Settings: Remove All Subscriptions / Profiles: 'Összes feliratkozás és profil eltávolítása' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Biztosan törli az összes feliratkozást és profilt? A művelet nem vonható vissza.' + Automatically Remove Video Meta Files: Videométafájlok önműködő eltávolítása Subscription Settings: Subscription Settings: 'Feliratkozás beállításai' Hide Videos on Watch: 'Videók elrejtése megtekintés után' @@ -664,6 +665,9 @@ Tooltips: 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 az ország korlátozása miatt + Privacy Settings: + Remove Video Meta Files: Ha engedélyezve van, a FreeTube önműködőén törli a videolejátszás + során létrehozott métafájlokat, amikor a nézési oldal bezárul. Playing Next Video Interval: A következő videó lejátszása folyamatban van. Kattintson 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} From de089c1dcb907536368e2e8cc9594ed0adb501f4 Mon Sep 17 00:00:00 2001 From: Reza Almanda Date: Fri, 2 Apr 2021 03:59:08 +0000 Subject: [PATCH 100/297] Translated using Weblate (Indonesian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/id/ --- static/locales/id.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/id.yaml b/static/locales/id.yaml index 04342b9a..f3bac887 100644 --- a/static/locales/id.yaml +++ b/static/locales/id.yaml @@ -207,6 +207,7 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Apakah Anda yakin ingin menghapus semua langganan dan profil? Tindakan ini tidak bisa diurungkan.' + Automatically Remove Video Meta Files: Secara Otomatis Hapus File Meta Video Subscription Settings: Subscription Settings: 'Pengaturan Langganan' Hide Videos on Watch: 'Sembunyikan Video saat Menonton' @@ -654,6 +655,9 @@ Tooltips: Preferred API Backend: Pilih layanan yang digunakan oleh FreeTube untuk mengambil data. API lokal adalah ekstraktor bawaan. API Invidious membutuhkan sambungan ke server Invidious. + Privacy Settings: + Remove Video Meta Files: Saat diaktifkan, FreeTube secara otomatis menghapus file + meta yang dibuat selama pemutaran video, saat halaman tonton ditutup. Playing Next Video Interval: Langsung putar video berikutnya. Klik untuk batal. | Putar video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal. | Putar video berikutnya dalam {nextVideoInterval} detik. Klik untuk batal. From ec6710838a7ed1eedbd55ea2f07233280735af84 Mon Sep 17 00:00:00 2001 From: alium Date: Fri, 2 Apr 2021 07:48:36 +0000 Subject: [PATCH 101/297] Translated using Weblate (Czech) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 1d7cc26c..b166ade6 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -208,6 +208,7 @@ Settings: Remove All Subscriptions / Profiles: 'Odstranit všechna odebírání / profily' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Chcete opravdu odstranit všechna odebírání a profily? Toto nelze vrátit zpět.' + Automatically Remove Video Meta Files: Automaticky odstranit meta soubory videa Subscription Settings: Subscription Settings: 'Nastavení odebírání' Hide Videos on Watch: 'Skrýt videa při přehrávání' @@ -630,6 +631,9 @@ Tooltips: IP, ale neposkytuje určité informace, jako je délka videa a podobně' # Toast Messages + Privacy Settings: + Remove Video Meta Files: Pokud je povoleno, FreeTube automaticky odstraní meta + soubory vytvořené během přehrávání videa, když se stránka sledování zavře. Local API Error (Click to copy): 'Chyba lokálního API (kliknutím zkopírujete)' Invidious API Error (Click to copy): 'Chyba Invidious API (kliknutím zkopírujete)' Falling back to Invidious API: 'Přepínám na Invidious API' From b77d0b33793d35ade16955f70befada1dfe957be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=98=E8=8F=98?= Date: Fri, 2 Apr 2021 09:58:42 +0000 Subject: [PATCH 102/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 06fc1726..17dfc93c 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -224,6 +224,7 @@ Settings: Privacy Settings: 隱私設定 Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您確定要移除所有訂閱與設定檔嗎嗎? 注意:這無法復原。 Remove All Subscriptions / Profiles: 移除所有訂閱/設定檔 + Automatically Remove Video Meta Files: 自動刪除影片元檔案 Data Settings: How do I import my subscriptions?: 我要如何匯入我的訂閱? Unknown data key: 未知的資料金鑰 @@ -596,6 +597,8 @@ Tooltips: Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious API 需要 Invidious 伺服器才能連線。 Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援 + Privacy Settings: + Remove Video Meta Files: 如果啟用,FreeTube會在關閉觀看頁面時,自動刪除影片播放過程中建立的暫存檔案。 Playing Next Video Interval: 馬上播放下一個影片。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。 More: 更多 From e84d6ece789a2a8cbae90e89aa93dc656ff960c2 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Fri, 2 Apr 2021 11:51:45 +0000 Subject: [PATCH 103/297] Translated using Weblate (Croatian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 622710eb..a8de7c80 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -201,6 +201,8 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Stvarno želiš ukloniti sve pretplate i profile? Ovo je nepovratna radnja. Remove All Subscriptions / Profiles: Ukloni sve pretplate/profile + Automatically Remove Video Meta Files: Automatski ukloni datoteke metapodataka + videa Subscription Settings: Subscription Settings: 'Postavke pretplata' Hide Videos on Watch: 'Sakrij video nakon gledanja' @@ -663,6 +665,10 @@ Tooltips: standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava blokiranje IP adresa, ali ne pruža određene podatke kao što su trajanje videa ili stanja „uživo” + Privacy Settings: + Remove Video Meta Files: Kad je aktivirano, FreeTube automatski uklanja datoteke + metapodataka koji su stvoreni tijekom reprodukcije videa, kad se zatvori stranica + gledanja. Playing Next Video Interval: Trenutna reprodukcija sljedećeg videa. Pritisni za prekid. | Reprodukcija sljedećeg videa za {nextVideoInterval} sekunde. Pritisni za prekid. | Reprodukcija sljedećeg videa za {nextVideoInterval} sekundi. Pritisni za prekid. From de48af85167aca7a082e2f3f449a5cb4f377528c Mon Sep 17 00:00:00 2001 From: Dennis ten Hoove Date: Sat, 3 Apr 2021 03:40:44 +0000 Subject: [PATCH 104/297] Translated using Weblate (Dutch) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index 69703964..8d80fab9 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -79,7 +79,7 @@ Subscriptions: This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dit profiel heeft een groot aantal abonnementen. RSS wordt geforceerd om tariefbeperkingen te voorkomen - Load More Videos: Laad Meer Video's + Load More Videos: Meer Video's Laden Trending: 'Trending' Most Popular: 'Populair' Playlists: 'Afspeellijsten' @@ -204,6 +204,7 @@ Settings: u zeker dat u alle abonnementen en profielen wil verwijderen? Dit kan niet worden ontdaan. Remove All Subscriptions / Profiles: Verwijder alle Abonnementen / Profielen + Automatically Remove Video Meta Files: Verwijder Video Meta-bestanden Automatisch Subscription Settings: Subscription Settings: 'Abonnement instellingen' Hide Videos on Watch: 'Verberg Video''s Zodra Bekeken' @@ -554,7 +555,7 @@ Comments: Replies: 'Reacties' Reply: 'Reactie' There are no comments available for this video: 'Er zijn geen reacties op deze video' - Load More Comments: 'Laad Meer Reacties' + Load More Comments: 'Meer Reacties Laden' There are no more comments for this video: Er zijn geen verdere reacties op deze video No more comments available: Er zijn niet meer reacties beschikbaar @@ -667,6 +668,10 @@ Tooltips: Region for Trending: Met trend regio kan je instellen uit welk land je trending video's je wil zien. Niet alle weergegeven landen worden ook daadwerkelijk ondersteund door YouTube + Privacy Settings: + Remove Video Meta Files: Wanneer ingeschakeld zal FreeTube automatisch meta bestanden + die worden gecreëerd tijdens het afspelen van video's verwijderen zodra de pagina + wordt gesloten. Playing Next Video Interval: Volgende video wordt afgespeeld. Klik om te onderbreken. | Volgende video wordt afgespeeld in {nextVideoInterval} seconde. Klik om te onderbreken. | Volgende video wordt afgespeeld in {nextVideoInterval} seconden. Klik om te onderbreken. From c56d71fecf86bbed462f7f8d161d97122be2fc4c Mon Sep 17 00:00:00 2001 From: davidhjelm Date: Sat, 3 Apr 2021 09:27:59 +0000 Subject: [PATCH 105/297] Translated using Weblate (Swedish) Currently translated at 98.0% (441 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sv/ --- static/locales/sv.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/sv.yaml b/static/locales/sv.yaml index 1a401a95..8879fa7d 100644 --- a/static/locales/sv.yaml +++ b/static/locales/sv.yaml @@ -70,6 +70,8 @@ Search Filters: Fetching results. Please wait: 'Hämtar resultat. Snälla vänta' Fetch more results: 'Hämta fler resultat' # Sidebar + There are no more results for this search: Det finns inte fler resultat för den + här sökningen Subscriptions: # On Subscriptions Page Subscriptions: 'Prenumerationer' From eb5d5485a2c2a69bc55ee9ddf6279a349d513ab1 Mon Sep 17 00:00:00 2001 From: jilv220 Date: Sat, 3 Apr 2021 16:32:33 +0000 Subject: [PATCH 106/297] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.3% (438 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/ --- static/locales/zh-CN.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/static/locales/zh-CN.yaml b/static/locales/zh-CN.yaml index d25d8b8d..62529036 100644 --- a/static/locales/zh-CN.yaml +++ b/static/locales/zh-CN.yaml @@ -175,6 +175,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: 播放列表 下一个影片时间间隔 Subscription Settings: Subscription Settings: '订阅设置' Hide Videos on Watch: '观看时隐藏视频' @@ -222,6 +223,7 @@ Settings: Clear Search Cache: 清除搜索缓存 Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 您确定您想移除所有订阅和配置文件吗?这无法撤销。 Remove All Subscriptions / Profiles: 移除所有订阅 / 配置文件 + Automatically Remove Video Meta Files: 自动删除硬盘元数据文件 Data Settings: Subscriptions have been successfully exported: 订阅已成功导出 This might take a while, please wait: 这可能需要一段时间,请稍候 @@ -264,6 +266,7 @@ Settings: Hide Video Views: 隐藏视频观看数量 Distraction Free Settings: 零打扰设置 Hide Active Subscriptions: 隐藏活跃的订阅 + Hide Playlists: 隐藏播放列表 The app needs to restart for changes to take effect. Restart and apply change?: 应用需要重启让修改生效。重启以应用修改? Proxy Settings: Proxy Protocol: 代理协议 @@ -278,6 +281,7 @@ Settings: Test Proxy: 测试代理 Clicking on Test Proxy will send a request to: 点击测试代理将会发送一个请求给 Proxy Port Number: 代理端口号 + Proxy Host: 代理主机 About: #On About page About: '关于' @@ -308,6 +312,18 @@ About: Website: 网站 Blog: 博客 Email: 电子邮件 + Donate: 捐款 + Credits: 贡献者 + Translate: 翻译 + Please read the: 请阅读 + Chat on Matrix: 在 Matrix 上聊天 + Mastodon: Mastodon + FAQ: 常见问题 + FreeTube Wiki: FreeTube维基 + Help: 说明 + GitHub releases: GitHub 版本 + View License: 查看授权 + Licensed under the AGPLv3: 以 AGPLv3 协议授权 Channel: Subscriber: '订阅者' Subscribers: '订阅者' @@ -417,6 +433,9 @@ Video: Open Channel in YouTube: 在YouTube打开频道 Started streaming on: 开始在线直播于 Streamed on: 在线直播于 + Video has been removed from your saved list: 视频已从你的播放列表移除 + Video has been saved: 视频已保存 + Save Video: 保存视频到播放列表 Videos: #& Sort By Sort By: From ff9ca8ddf746f1c770e4772b167396464fa9dcb7 Mon Sep 17 00:00:00 2001 From: Sebastian Riehm Date: Sun, 4 Apr 2021 07:16:52 +0000 Subject: [PATCH 107/297] Translated using Weblate (German) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 250e1317..46766b15 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -1,7 +1,7 @@ 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.': >- - Dieser Teil des Programms ist noch nicht fertig. Bitte komme zu einem späteren Zeitpunkt + Dieser Teil des Programms ist noch nicht fertig. Bitte komm zu einem späteren Zeitpunkt wieder. # Webkit Menu Bar @@ -70,13 +70,13 @@ Subscriptions: Subscriptions: Abonnements Latest Subscriptions: Neueste Abonnements 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': Deine - Abonnementliste ist aktuell leer. Beginne Abonnements hinzuzufügen um sie hier + Abonnementliste ist aktuell leer. Beginne Abonnements hinzuzufügen, um sie hier zu sehen. 'Getting Subscriptions. Please wait.': Rufe Abonnements ab. Bitte warten. Refresh Subscriptions: Abonnements aktualisieren Getting Subscriptions. Please wait.: Lade Abonnements. Bitte warten. This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dieses - Profil hat eine große Anzahl von Abonnenten. RSS zur Vermeidung von Tarifbeschränkungen + Profil hat eine große Anzahl von Abonnements. RSS zur Vermeidung von Geschwindigkeitsbeschränkungen erzwingen Load More Videos: Lade mehr Videos Trending: Trends @@ -85,12 +85,12 @@ Playlists: Wiedergabelisten User Playlists: Your Playlists: Deine Wiedergabelisten Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Deine - gespeicherten Videos sind leer. Klicken Sie auf die Schaltfläche „Speichern“ in - der Ecke eines Videos, damit es hier aufgelistet wird + gespeicherten Videos sind leer. Klicke auf die Schaltfläche „Speichern“ in der + Ecke eines Videos, damit es hier aufgelistet wird Playlist Message: Diese Seite spiegelt nicht die vollständig funktionierenden Wiedergabelisten - wider. Sie listet nur Videos auf, die Sie gespeichert oder favorisiert haben. - Wenn die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier - befinden, in eine Wiedergabeliste „Favoriten“ migriert. + wider. Sie listet nur Videos auf, die Du gespeichert oder favorisiert hast. Wenn + die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier befinden, + in eine Wiedergabeliste „Favoriten“ migriert. History: # On History Page History: Verlauf @@ -110,7 +110,7 @@ Settings: Preferred API Backend: Preferred API Backend: Bevorzugtes API-System Local API: Lokale API - Invidious API: Invidious API + Invidious API: Invidious-API Video View Type: Video View Type: Videoansichtstyp Grid: Gitter @@ -130,7 +130,7 @@ Settings: View all Invidious instance information: Alle Informationen zur Invidious-Instanz anzeigen Theme Settings: - Theme Settings: Thema Einstellungen + Theme Settings: Thema-Einstellungen Match Top Bar with Main Color: Obere Leiste an Hauptfarbe anpassen Base Theme: Base Theme: Grundlegendes Thema @@ -670,8 +670,8 @@ Tooltips: API nicht verfügbar sein sollte, automatisch die nicht bevorzugte Alternative zu nutzen. Preferred API Backend: Wähle das Backend, welches FreeTube zum Laden der Daten - nutzen soll. Die lokale API ist ein integrierter Extrahierer. Die Invidious - API dagegen verwendet einen externen Server. + nutzen soll. Die lokale API ist ein integrierter Extrahierer. Die Invidious-API + dagegen verwendet einen externen Server. Region for Trending: Die Trendregion erlaubt es dir auszuwählen, aus welchem Land die Trends angezeigt werden sollen. Nicht alle Optionen werden auch von YouTube unterstützt @@ -686,11 +686,10 @@ Tooltips: dafür aber auch weniger Bandbreite. Audioformate umfassen reine Audiostreams. Proxy Videos Through Invidious: Zu Invidious verbinden, um Videos abzurufen, anstatt eine direkten Verbindung zu YouTube aufzubauen. Überschreibt die API-Präferenz. - Force Local Backend for Legacy Formats: Dies funktioniert nur wenn du die Invidious - API als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von - Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies - hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund - von Landesbeschränkungen. + Force Local Backend for Legacy Formats: Dies funktioniert nur, wenn du die Invidious-API + als Standard ausgewählt hast. Die lokale API wird bei der Verwendung von Legacy + -Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies hilft + dann, wenn Videos von Invidious nicht abspielbar sind aufgrund von Landesbeschränkungen. Privacy Settings: Remove Video Meta Files: Bei Aktivierung löscht FreeTube alle Meta-Dateien die während der Videowiedergabe erzeugt werden, sobald die Videoseite verlassen From 7e9540f250c422fb781a71b39a683664095fe085 Mon Sep 17 00:00:00 2001 From: Rusi Dimitrov Date: Sun, 4 Apr 2021 15:40:11 +0000 Subject: [PATCH 108/297] Translated using Weblate (Bulgarian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index 92213a04..c67c6682 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -210,6 +210,7 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Сигурни ли сте, че искате да премахнете всички абонаменти и профили? Това не може да бъде възстановено.' + Automatically Remove Video Meta Files: Автоматично премахване на видео метафайловете Subscription Settings: Subscription Settings: 'Настройки на абонаменти' Hide Videos on Watch: 'Скриване на видеата при гледане' @@ -628,10 +629,10 @@ Yes: 'Да' No: 'Не' Tooltips: Subscription Settings: - Fetch Feeds from RSS: Когато е активирано, FreeTube ще използва RSS вместо метода - по подразбиране за получаване на абонаментите. RSS е по-бърз метод и преодолява - блокиранията на IP адреса, но не получава някои съпътстващи данни, като продължителност - на видеото или дали е на живо + Fetch Feeds from RSS: FreeTube ще използва RSS вместо метода по подразбиране за + получаване на абонаментите. RSS е по-бърз метод и преодолява блокиранията на + IP адреса, но не получава някои съпътстващи данни, като продължителност на видеото + или дали е на живо Player Settings: Default Video Format: Настройка на използваните формати. Dash форматите могат да показват видеа с по-високо качество. Старите формати са ограничени до макс. @@ -657,6 +658,10 @@ Tooltips: Preferred API Backend: Избиране на начина, по който FreeTube получава данните. Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious сървър, към който да се свърже. + Privacy Settings: + Remove Video Meta Files: Когато страницата за гледане бъде затворена, FreeTube + автоматично ще изтрива метафайловете, създадени по време на възпроизвеждане + на видеото. More: Още Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ. | Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказ. From 276295861571a4cb748b1af47d83193ebafaa8b7 Mon Sep 17 00:00:00 2001 From: Kami Date: Mon, 5 Apr 2021 18:37:35 +0000 Subject: [PATCH 109/297] Translated using Weblate (Arabic) Currently translated at 99.7% (449 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 65 +++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index ae869862..6cd59410 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -18,7 +18,7 @@ Delete: 'حذف' Select all: 'تحديد الكل' Reload: 'إعادة تحميل' Force Reload: 'فرض إعادة التحميل' -Toggle Developer Tools: 'تفعيل أدوات المطوّر' +Toggle Developer Tools: 'فتح أدوات المطوّر' Actual size: 'الحجم الأصلي' Zoom in: 'تكبير' Zoom out: 'تصغير' @@ -64,6 +64,7 @@ Search Filters: Fetching results. Please wait: 'جاري إحضار النتائج. الرجاء الانتظار' Fetch more results: 'إحضار المزيد من النتائج' # Sidebar + There are no more results for this search: لم يتبقى المزيد من النتائج لهذا البحث Subscriptions: # On Subscriptions Page Subscriptions: 'الاشتراكات' @@ -80,6 +81,11 @@ Most Popular: 'الأكثر شعبية' Playlists: 'قوائم التشغيل' User 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: # On History Page History: 'السجلّ' @@ -115,6 +121,7 @@ Settings: #! List countries Check for Latest Blog Posts: تحقق من أحدث منشورات المدونة Check for Updates: تحقّق من وجود تحديثات + View all Invidious instance information: عرض جميع نماذج Invidious Theme Settings: Theme Settings: 'إعدادات السِمة' Match Top Bar with Main Color: 'طابق الشريط العلوي مع اللون الأساسي' @@ -175,6 +182,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '‍8k' + Playlist Next Video Interval: الفاصل الزمني لتشغيل الفيديو التالي في قائمة التشغيل Privacy Settings: Privacy Settings: 'إعدادات الخصوصية' Remember History: 'تذّكر سجلّ المشاهدة' @@ -191,6 +199,7 @@ Settings: أنت متأكد أنك تريد إزالة جميع الاشتراكات والملفات الشخصية؟ لا يمكن التراجع عن هذا. Remove All Subscriptions / Profiles: إزالة جميع الاشتراكات \ الملفات الشخصية + Automatically Remove Video Meta Files: إزالة ملفات تعريف الفيديو تلقائيًا Subscription Settings: Subscription Settings: 'إعدادات الاشتراك' Hide Videos on Watch: 'أخفِ الفيديوهات عند مشاهدتها' @@ -273,10 +282,12 @@ Settings: Hide Trending Videos: اخفي الفيديوهات الرائجة Hide Recommended Videos: اخفي الفيديوهات الموصّى بها Hide Comment Likes: اخفي اعجابات التعليقات - Hide Channel Subscribers: اخفي اشتراكات القنوات - Hide Video Views: اخفي عدد مشاهدات الفيديوهات + Hide Channel Subscribers: اخف عدد اشتراكات القناة + Hide Video Views: اخف عدد مشاهدات الفيديو Hide Video Likes And Dislikes: إخفاء الإعجاب وعدم الإعجاب للفيديو Distraction Free Settings: إعدادات عدم الإزعاج + Hide Active Subscriptions: اخفي الإشتراكات الناشطة + Hide Playlists: إخفاء قوائم التشغيل The app needs to restart for changes to take effect. Restart and apply change?: البرنامج يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟ Proxy Settings: @@ -291,6 +302,10 @@ Settings: Proxy Protocol: بروتوكول البروكسي Enable Tor / Proxy: تفعيل تور / البروكسي Proxy Settings: خيارات البروكسي + Error getting network information. Is your proxy configured properly?: هنالك خطأ + في جلب معلومات الشبكة. هل ضبطت إعدادات وكيلك بصورة صحيحة؟ + Clicking on Test Proxy will send a request to: النقر على اختبار البروكسي سيؤدي + إلى إرسال طلب إلى About: #On About page About: 'حول' @@ -335,6 +350,17 @@ About: View License: اعرض الرخصة Source code: الشفرة المصدرية Beta: تجريبي + these people and projects: هؤلاء الناس والمشاريع + FreeTube is made possible by: Freetube أصبح ممكنا بواسطة + Credits: الاعتمادات + room rules: قواعد الغرفة + Please read the: يرجى قراءة + Please check for duplicates before posting: يرجى التحقق من التكرارات قبل النشر + GitHub issues: مشاكل GitHub + FreeTube Wiki: ويكي Freetube + GitHub releases: إصدارات GitHub + Downloads / Changelog: التحميلات\التغييرات + Licensed under the AGPLv3: مرخّص تحت رخصة أفيرو جيبيإل النسخة الثالثة Profile: All Channels: 'جميع القنوات' Profile Manager: 'مدير الملف الشخصي' @@ -376,6 +402,7 @@ Profile: $ selected: $ تم اختياره Other Channels: قنوات أُخرى Subscription List: قائمة الاشتراكات + Profile Filter: مرشح الملف الشخصي Channel: Subscriber: 'مُشترِك' Subscribers: 'مُشترِكين' @@ -465,7 +492,7 @@ Video: Year: 'سنة' Years: 'سنوات' Ago: 'منذ' - Upcoming: 'العرض الأول في' + Upcoming: 'يبدأ العرض' Published on: 'نُشر في' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'قبل $ %' @@ -480,12 +507,12 @@ Video: الصفحة للتحقق مرة أخرى Audio: Best: الأفضل - High: عالٍ + High: عال Medium: متوسط Low: منخفض - audio only: صوت فقط - video only: فيديو فقط - Download Video: نزّل الفيديو + audio only: الصوت فقط + video only: الفيديو فقط + Download Video: تحميل الفيديو Started streaming on: بدأ البث على Streamed on: تبث على Copy Invidious Channel Link: انسخ رابط قناة انفيديوس @@ -494,6 +521,7 @@ Video: Open Channel in YouTube: افتح القناة على يوتيوب Video has been saved: تم حفظ الفيديو Save Video: احفظ الفيديو + Video has been removed from your saved list: تمت إزالة الفيديو من قائمتك المحفوظة Videos: #& Sort By Sort By: @@ -591,9 +619,9 @@ Tooltips: General Settings: Thumbnail Preference: كلّ الصّور المصغّرة في FreeTube سيتمّ استبدالها بإطار من الفيديو بدل من الصّورة المصغّرة الافتراضيّة - Preferred API Backend: اختر الواجهة الخلفية التي يستخدمها FreeTube لجلب البيانات - . الAPI المحلي هو مستخرج محلي . الAPI التابع لInvidious يتطلب التواصل مع خادم - شبكة Invidious . + Preferred API Backend: اختر الواجهة الخلفية التي يستخدمها FreeTube لجلب البيانات. + الواجهة البرمجية المحلية للتطبيق هي مستخرج محلي. الواجهة البرمجية للتطبيق التابعة + لInvidious (بديل لموقع يوتيوب) يتطلب التواصل مع خادم شبكة Invidious Invidious Instance: واجهة Invidious البرمجية المستخدمة من قبل FreeTube. امسح الواجهة البرمجية الحالية للاختيار من قائمة الواجهات Fallback to Non-Preferred Backend on Failure: عند تواجد مشكلة مع الواجهة البرمجية @@ -608,3 +636,18 @@ Tooltips: باستخدام التنسيقات القديمة التي تم إرجاعها من قبلها بدلاً من أن تستخدم الصيغ التي تم إرجاعها من قبل Invidious . يساعد هذا الخيار عندما لا تعمل الفيديوهات التي تم إرجاعها من قبل Invidious بسبب قيود البلد + Default Video Format: حدّد التنسيقات المستخدمة عند تشغيل الفيديو. تنسيق داش (التدفق + الميكانيكي المتكيّف عبر بروتوكول نقل النص التشعبي) يمكنها أن تُشغِّل جودات أعلى. + التنسيقات القديمة محدودة بجودة 720p كحدّ أقصى لكنها تستخدم عرضًا أقل للنطاق. + التنسيقات الصوتية هي للتدفق الصوتي فقط + Privacy Settings: + Remove Video Meta Files: عندما يمكن، يحذف Freetube تلقائيًا ملفات التعريف التي + تم إنشاؤها أثناء تشغيل الفيديو ، عندما تكون صفحة المشاهدة مغلقة. + Subscription Settings: + Fetch Feeds from RSS: عند تفعيلها، سوف يستخدم فريتيوب طريقة RSS بدلًا من طريقته + المعتادة لجلب صفحة اشتراكاتك. طريقة RSS أسرع وتتخطى حجب الآي بي IP، لكنها لا + تقدّم معلومات معينة مثل مدّة الفيديو أو حالة البث المباشر. +This video is unavailable because of missing formats. This can happen due to country unavailability.: هذا + الفيديو غير متوفر لفقدان بعض التنسيقات. من الممكن لهذا أن يحدث بسبب الحظر في دولة + معيّنة. +More: المزيد From cd902e099c76d734c2c4e8bf0e1d4bdd553d6a19 Mon Sep 17 00:00:00 2001 From: Az Date: Mon, 5 Apr 2021 18:23:31 +0000 Subject: [PATCH 110/297] Translated using Weblate (Arabic) Currently translated at 99.7% (449 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index 6cd59410..fc27a3b4 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -274,7 +274,7 @@ Settings: Data Settings: إعدادات البيانات One or more subscriptions were unable to be imported: تعذر استيراد واحد أو أكثر من الاشتراكات - Check for Legacy Subscriptions: تحقق من وجود اشتراك قديم + Check for Legacy Subscriptions: تحقق من وجود اشتراكات بالصيغة القديمة Manage Subscriptions: إدارة الإشتراكات Distraction Free Settings: Hide Live Chat: اخفي الدردشة المباشرة From eff45f749536c0775ab93650ac9ae0287f8728b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Wed, 7 Apr 2021 17:15:58 +0000 Subject: [PATCH 111/297] Translated using Weblate (Polish) Currently translated at 99.5% (448 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index d2103d2b..083bc548 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -244,6 +244,7 @@ Settings: jesteś pewny/a, że chcesz usunąć wszystkie subskrypcje i profile? Nie będzie można tego cofnąć. Remove All Subscriptions / Profiles: Usuń wszystkie subskrypcje / profile + Automatically Remove Video Meta Files: Samoczynnie usuwaj pliki metadanych filmu Data Settings: How do I import my subscriptions?: Jak mogę zaimportować swoje subskrypcje? Unknown data key: Nieznany klucz danych @@ -675,6 +676,9 @@ Tooltips: 720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk Proxy Videos Through Invidious: Będzie dostarczał filmy, łącząc się z Invidious, a nie bezpośrednio z YouTube. Nadpisuje ustawienia API + Privacy Settings: + Remove Video Meta Files: Po włączeniu FreeTube samoczynnie usunie pliki metadanych + utworzone podczas odtwarzania filmu, gdy tylko strona odtwarzania zostanie zamknięta. Playing Next Video Interval: Odtwarzanie kolejnego filmu już za chwilę. Wciśnij aby przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekundę. Wciśnij aby przerwać. | Odtwarzanie kolejnego filmu za {nextVideoInterval} sekund. Wciśnij From 7b3f67073b351acf9366268af2a1e7f4a11d5099 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 7 Apr 2021 16:39:14 -0400 Subject: [PATCH 112/297] Add consent cookie to fix comments and various problems --- src/main/index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index 1ff88842..093e9923 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,4 +1,4 @@ -import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron' +import { app, BrowserWindow, Menu, ipcMain, session, screen } from 'electron' import { productName } from '../../package.json' import Datastore from 'nedb' @@ -248,6 +248,12 @@ function createWindow (useProxy = false, proxyUrl = '') { }) } + mainWindow.webContents.session.cookies.set({ + url: 'https://www.youtube.com', + name: 'CONSENT', + value: 'YES+' + }) + settingsDb.findOne({ _id: 'bounds' }, function (err, doc) { From e1554267000f8c465fd49188cc676ddad065792c Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 7 Apr 2021 17:33:56 -0400 Subject: [PATCH 113/297] Add second consent cookie for compatibility --- src/main/index.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/index.js b/src/main/index.js index 093e9923..a8daed35 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -253,6 +253,12 @@ function createWindow (useProxy = false, proxyUrl = '') { name: 'CONSENT', value: 'YES+' }) + + mainWindow.webContents.session.cookies.set({ + url: 'https://consent.youtube.com', + name: 'CONSENT', + value: 'YES+' + }) settingsDb.findOne({ _id: 'bounds' From 8f64b083aa673e60abbc63e45a9af4a49dff5927 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 7 Apr 2021 17:38:09 -0400 Subject: [PATCH 114/297] Remove trailing spaces --- src/main/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index a8daed35..47fbc0ca 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -253,7 +253,7 @@ function createWindow (useProxy = false, proxyUrl = '') { name: 'CONSENT', value: 'YES+' }) - + mainWindow.webContents.session.cookies.set({ url: 'https://consent.youtube.com', name: 'CONSENT', From 3048e39106701486eabf7df774ff6f66e1c97d61 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 7 Apr 2021 17:54:44 -0400 Subject: [PATCH 115/297] Add 'enable-file-cookies' flag --- src/main/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/index.js b/src/main/index.js index 47fbc0ca..ae3623df 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -35,6 +35,7 @@ let startupUrl app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') app.commandLine.appendSwitch('enable-accelerated-video-decode') +app.commandLine.appendSwitch('enable-file-cookies') app.commandLine.appendSwitch('ignore-gpu-blacklist') // See: https://stackoverflow.com/questions/45570589/electron-protocol-handler-not-working-on-windows From 01da5277ee64dace1922c6d51a2af7c76223ef72 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 7 Apr 2021 22:40:35 -0400 Subject: [PATCH 116/297] Add more URLs for consent cookie --- src/main/index.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index ae3623df..1867325c 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -249,16 +249,18 @@ function createWindow (useProxy = false, proxyUrl = '') { }) } - mainWindow.webContents.session.cookies.set({ - url: 'https://www.youtube.com', - name: 'CONSENT', - value: 'YES+' - }) - - mainWindow.webContents.session.cookies.set({ - url: 'https://consent.youtube.com', - name: 'CONSENT', - value: 'YES+' + // Set CONSENT cookie on reasonable domains + [ + 'http://www.youtube.com', + 'https://www.youtube.com', + 'http://youtube.com', + 'https://youtube.com' + ].forEach(url => { + mainWindow.webContents.session.cookies.set({ + url: url, + name: 'CONSENT', + value: 'YES+' + }) }) settingsDb.findOne({ From 9b92db35227c13c030744b2ba36789f51846384f Mon Sep 17 00:00:00 2001 From: Svallinn <41585298+Svallinn@users.noreply.github.com> Date: Thu, 8 Apr 2021 03:13:40 +0000 Subject: [PATCH 117/297] Remove stray spaces --- src/main/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index 2b6b5d54..3c4b1c3b 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -252,7 +252,7 @@ function runApp() { proxyRules: proxyUrl }) } - + // Set CONSENT cookie on reasonable domains [ 'http://www.youtube.com', From 2b1d8e499f57c022396de78299fb89d42e75216a Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Thu, 8 Apr 2021 13:54:30 +0200 Subject: [PATCH 118/297] Added board automation for Bugs and Features (#1146) * Added board automation for Bugs and Features * Added correct github secret to automation * Linter fix --- .github/workflows/report.yml | 50 +++++++++++++++++++ .../watch-video-comments.vue | 5 +- 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/report.yml diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml new file mode 100644 index 00000000..e24f0b48 --- /dev/null +++ b/.github/workflows/report.yml @@ -0,0 +1,50 @@ +# This is a basic workflow to help you get started with Actions + +name: Project Board Automation + +on: + issues: + types: [labeled, unlabeled, closed, deleted] + +jobs: + assign-issues-to-projects: + runs-on: ubuntu-latest + steps: + + # For bug reports + - name: New bug issue + uses: alex-page/github-project-automation-plus@v0.5.1 + if: github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'bug') + with: + project: Bug Reports + column: To assign + repo-token: ${{ secrets.PUSH_TOKEN }} + action: update + + - name: Bug label removed + uses: alex-page/github-project-automation-plus@v0.5.1 + if: github.event.action == 'unlabeled' || github.event.action == 'closed' || github.event.action == 'deleted' + with: + action: delete + project: Bug Reports + column: To assign + repo-token: ${{ secrets.PUSH_TOKEN }} + + # For feature requests + - name: New feature issue + uses: alex-page/github-project-automation-plus@v0.5.1 + if: github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'enhancement') + with: + project: Feature Requests + column: To assign + repo-token: ${{ secrets.PUSH_TOKEN }} + action: update + + - name: Feature request label removed + uses: alex-page/github-project-automation-plus@v0.5.1 + if: github.event.action == 'unlabeled' || github.event.action == 'closed' || github.event.action == 'deleted' + with: + action: delete + project: Feature Requests + column: To assign + repo-token: ${{ secrets.PUSH_TOKEN }} diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index 20b96740..a993a373 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -47,8 +47,9 @@ class="commentThumbnail" @click="goToChannel(comment.authorLink)" > -

    {{ comment.author }} From 6d2ec8da6bb92b8f04c3610f5489bfbaf8464136 Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Thu, 8 Apr 2021 10:50:41 +0000 Subject: [PATCH 119/297] Translated using Weblate (Russian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 5938ce74..3034da1a 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -242,6 +242,7 @@ Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Вы уверены, что хотите удалить все подписки и профили? Это нельзя отменить. Remove All Subscriptions / Profiles: Удалить все подписки/профили + Automatically Remove Video Meta Files: Автоматическое удаление мета-файлов видео Data Settings: How do I import my subscriptions?: Как мне импортировать свои подписки? Unknown data key: Неизвестный ключ данных @@ -667,6 +668,10 @@ Tooltips: устаревшие форматы, возвращаемые им, вместо форматов, возвращаемых Invidious. Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений страны + Privacy Settings: + Remove Video Meta Files: Если этот параметр включен, FreeTube автоматически удаляет + метафайлы, созданные во время воспроизведения видео, когда страница просмотра + закрывается. More: Больше Playing Next Video Interval: Воспроизведение следующего видео без задержки. Нажмите для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите From ae76aebc97a1dec22172f95959aae271493cd7ff Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 8 Apr 2021 09:42:24 -0400 Subject: [PATCH 120/297] Remove unneeded session import --- src/main/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index 1867325c..c180b851 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,4 +1,4 @@ -import { app, BrowserWindow, Menu, ipcMain, session, screen } from 'electron' +import { app, BrowserWindow, Menu, ipcMain, screen } from 'electron' import { productName } from '../../package.json' import Datastore from 'nedb' From f07210e951539c966d4c8a15ea85ff5705076456 Mon Sep 17 00:00:00 2001 From: The Cats Date: Thu, 8 Apr 2021 14:34:23 +0000 Subject: [PATCH 121/297] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_BR/ --- static/locales/pt-BR.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/static/locales/pt-BR.yaml b/static/locales/pt-BR.yaml index 37778548..06d0f0f5 100644 --- a/static/locales/pt-BR.yaml +++ b/static/locales/pt-BR.yaml @@ -185,6 +185,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: Intervalo do próximo vídeo da lista de reprodução Subscription Settings: Subscription Settings: 'Configurações de inscrições' Hide Videos on Watch: 'Esconder vídeos após assisti-los' @@ -241,6 +242,8 @@ Settings: certeza de que quer apagar todas as inscrições e perfis? Esta ação não pode ser desfeita. Remove All Subscriptions / Profiles: Remover Todas as Inscrições / Perfis + Automatically Remove Video Meta Files: Remover automaticamente os metarquivos + de vídeo Data Settings: Subscriptions have been successfully exported: Inscrições foram exportadas com sucesso @@ -291,6 +294,7 @@ Settings: Hide Video Likes And Dislikes: Ocultar curtidas e desgostos do vídeo Hide Video Views: Ocultar Visualizações de Vídeo Hide Active Subscriptions: Ocultar Inscrições Ativas + Hide Playlists: Ocultar listas de reprodução The app needs to restart for changes to take effect. Restart and apply change?: O aplicativo necessita reiniciar para as mudanças fazerem efeito. Reiniciar e aplicar mudança? @@ -621,6 +625,7 @@ Profile: Profile has been updated: Perfil atualizado Profile has been created: Perfil criado Your profile name cannot be empty: Seu nome de perfil não pode ficar em branco + Profile Filter: Filtro de Perfil Version $ is now available! Click for more details: Versão $ está disponível agora! Clique para mais detalhes A new blog is now available, $. Click to view more: Um novo blog está disponível, @@ -633,7 +638,7 @@ This video is unavailable because of missing formats. This can happen due to cou Tooltips: Subscription Settings: Fetch Feeds from RSS: Quando ativado, o FreeTube usará RSS em vez de seu método - padrão para obter o feed de sua assinatura. O RSS é mais rápido e evita o bloqueio + padrão para obter o feed de sua assinatura. O RSS é mais rápido e evita bloqueio de IP, mas não fornece certas informações como duração do vídeo ou status ao vivo Player Settings: @@ -663,4 +668,12 @@ Tooltips: 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 para se conectar. + Privacy Settings: + Remove Video Meta Files: Quando ativado, o FreeTube exclui automaticamente os + metarquivos criados durante a reprodução do vídeo quando a página de exibição + é fechada. More: Mais +Playing Next Video Interval: Reproduzindo o próximo vídeo imediatamente. Clique para + cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundo(s). Clique + para cancelar. | Reproduzindo o próximo vídeo em {nextVideoInterval} segundos. Clique + para cancelar. From 9b5f2a4715956db340c347b1c7bf1bf3ba06bbde Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Thu, 8 Apr 2021 19:51:45 +0200 Subject: [PATCH 122/297] Bumped yt-comment-scraper version (#1179) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 019b63cc..91669a7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18326,9 +18326,9 @@ } }, "yt-comment-scraper": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yt-comment-scraper/-/yt-comment-scraper-3.0.2.tgz", - "integrity": "sha512-vWg/2D0eCJ0DTRayBmxqjZdBXSjArDFp/UAlK/r9tOq+x89hyQwuvP5r5URzLeRXGyv0g0COXsNapZGQR5aaPA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/yt-comment-scraper/-/yt-comment-scraper-4.0.1.tgz", + "integrity": "sha512-5uReiiLnaBhTBBsTfxIYcoV62EATe8dXAkkUCkCG3pgLU+qty9iCjNQvSgY8tZhnCPNAPO+lJaxzbGJ3hJRm4g==", "requires": { "axios": "^0.21.1", "node-html-parser": "^2.0.2" diff --git a/package.json b/package.json index a6dc199f..e5dd3365 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git", "youtube-suggest": "^1.1.1", "yt-channel-info": "^2.0.0", - "yt-comment-scraper": "^3.0.2", + "yt-comment-scraper": "^4.0.1", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^1.1.1", "yt-xml2vtt": "^1.2.0", From 35394d75223812d165ee47367612dc9522a78434 Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <4325fabc-8049-4884-ae2c-0d0474681285@anonaddy.me> Date: Thu, 8 Apr 2021 20:53:49 +0000 Subject: [PATCH 123/297] Translated using Weblate (Dutch) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 114 +++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 56 deletions(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index 8d80fab9..358aee42 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -44,7 +44,7 @@ Search Filters: Time: Time: 'Tijd' Any Time: 'Ooit' - Last Hour: 'Laatste uur' + Last Hour: 'Afgelopen uur' Today: 'Vandaag' This Week: 'Deze week' This Month: 'Deze maand' @@ -62,7 +62,7 @@ Search Filters: Long (> 20 minutes): 'Lang (> 20 minuten)' # On Search Page Search Results: 'Zoekresultaten' - Fetching results. Please wait: 'Resultaten verzamelen. Een momentje' + Fetching results. Please wait: 'Resultaten verzamelen. Even geduld aub' Fetch more results: 'Meer resultaten laden' # Sidebar There are no more results for this search: Er zijn geen verdere resultaten voor @@ -70,15 +70,15 @@ Search Filters: Subscriptions: # On Subscriptions Page Subscriptions: 'Abonnementen' - Latest Subscriptions: 'Nieuwste Van Abonnementen' + Latest Subscriptions: 'Nieuwste Abonnementen' 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': 'U heeft nog geen Abonnementen. Voeg abonnementen toe om ze hier te zien' 'Getting Subscriptions. Please wait.': '' Refresh Subscriptions: Vernieuw abonnementen - Getting Subscriptions. Please wait.: Abonnementen verzamelen. Een momentje. + Getting Subscriptions. Please wait.: Abonnementen verzamelen. Even geduld aub. This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dit - profiel heeft een groot aantal abonnementen. RSS wordt geforceerd om tariefbeperkingen - te voorkomen + profiel heeft een groot aantal abonnementen. Forceer RSS om snelheidsbeperking + te vermijden Load More Videos: Meer Video's Laden Trending: 'Trending' Most Popular: 'Populair' @@ -86,8 +86,8 @@ Playlists: 'Afspeellijsten' User Playlists: Your Playlists: 'Uw afspeellijsten' Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Je - opgeslagen video's is leeg. Klik op de video opslaan knop in de hoek van een video - om het hier in de lijst te plaatsen + opgeslagen video's is leeg. Klik op de opslaan knop in de hoek van een video om + het hier in de lijst te plaatsen Playlist Message: Deze pagina is niet reflectief van volledig functionele afspeellijst. Er worden alleen video's weergegeven die jij hebt opgeslagen of gefavoriet. Wanneer we klaar zijn met de ontwikkeling van deze feature zullen al deze video's worden @@ -112,7 +112,7 @@ Settings: Local API: 'Lokale API' Invidious API: 'Invidious API' Video View Type: - Video View Type: 'Video Toontype' + Video View Type: 'Type Videoweergave' Grid: 'Raster' List: 'Lijst' Thumbnail Preference: @@ -130,14 +130,14 @@ Settings: View all Invidious instance information: Bekijk alle Invidious-instantiegegevens Theme Settings: Theme Settings: 'Thema Instellingen' - Match Top Bar with Main Color: 'Paar Bovenste Balk met Primaire Kleur' + Match Top Bar with Main Color: 'Laat de bovenste balk overeenkomen met de hoofdkleur' Base Theme: Base Theme: 'Basisthema' Black: 'Zwart' Dark: 'Donker' Light: 'Licht' Main Color Theme: - Main Color Theme: 'Primaire Themakleur' + Main Color Theme: 'Hoofdkleur Thema' Red: 'Rood' Pink: 'Roze' Purple: 'Paars' @@ -161,7 +161,7 @@ Settings: Disable Smooth Scrolling: Vloeiend Scrollen Uitschakelen Player Settings: Player Settings: 'Speler Instellingen' - Force Local Backend for Legacy Formats: 'Forceer Lokale Backend Voor Legacy Indelingen' + Force Local Backend for Legacy Formats: 'Lokale Backend Forceren voor Oudere Formaten' Play Next Video: 'Volgende Video Automatisch Afspelen' Turn on Subtitles by Default: 'Schakel Ondertiteling Standaard in' Autoplay Videos: 'Video''s Automatisch Afspelen' @@ -171,10 +171,10 @@ Settings: Default Volume: 'Standaard Volume' Default Playback Rate: 'Standaard Afspeelsnelheid' Default Video Format: - Default Video Format: 'Standaard Video-Indeling' - Dash Formats: 'Dash Indelingen' - Legacy Formats: 'Legacy Indelingen' - Audio Formats: 'Audio Indelingen' + Default Video Format: 'Standaard Videoformaat' + Dash Formats: 'Dash Formaten' + Legacy Formats: 'Verouderde formaten' + Audio Formats: 'Audio Formaten' Default Quality: Default Quality: 'Standaard Videokwaliteit' Auto: 'Automatisch' @@ -190,21 +190,21 @@ Settings: Playlist Next Video Interval: Afspeellijst Volgende Video Tussentijd Privacy Settings: Privacy Settings: 'Privacy Instellingen' - Remember History: 'Herinner Geschiedenis' - Save Watched Progress: 'Herinner Video Voortgang' - Clear Search Cache: 'Verwijder Zoek-cache' + Remember History: 'Onthoud Geschiedenis' + Save Watched Progress: 'Bewaar Bekeken Voortgang' + Clear Search Cache: 'Verwijder Zoek-Cache' Are you sure you want to clear out your search cache?: 'Weet u zeker dat u de zoek-cache wil verwijderen?' - Search cache has been cleared: 'De zoek-cache is verwijdert' + Search cache has been cleared: 'De zoek-cache is verwijderd' Remove Watch History: 'Verwijder Kijkgeschiedenis' Are you sure you want to remove your entire watch history?: 'Weet u zeker dat u uw volledige kijkgeschiedenis wil verwijderen?' - Watch history has been cleared: 'Kijkgeschiedenis is verwijdert' + Watch history has been cleared: 'Kijkgeschiedenis is verwijderd' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Weet u zeker dat u alle abonnementen en profielen wil verwijderen? Dit kan niet worden ontdaan. Remove All Subscriptions / Profiles: Verwijder alle Abonnementen / Profielen - Automatically Remove Video Meta Files: Verwijder Video Meta-bestanden Automatisch + Automatically Remove Video Meta Files: Video-Metabestanden Automatisch Verwijderen Subscription Settings: Subscription Settings: 'Abonnement instellingen' Hide Videos on Watch: 'Verberg Video''s Zodra Bekeken' @@ -250,7 +250,7 @@ Settings: niet genoeg data, item word overgeslagen Subscriptions have been successfully exported: Abonnementen zijn met succes geïmporteerd Invalid history file: Ongeldig geschiedenisbestand - This might take a while, please wait: Dit kan eventjes duren, een momentje + This might take a while, please wait: Dit kan eventjes duren, even geduld aub Invalid subscriptions file: Ongeldig abonnementenbestand One or more subscriptions were unable to be imported: Een of meer abonnementen konden niet worden geïmporteerd @@ -297,7 +297,7 @@ Settings: Hide Playlists: Verberg Afspeellijst The app needs to restart for changes to take effect. Restart and apply change?: De applicatie moet opnieuw opstarten om de veranderingen aan te brengen. Wilt u opnieuw - opstarten? + opstarten en verandering toepassen? Proxy Settings: Error getting network information. Is your proxy configured properly?: Fout bij het opvragen van netwerk informatie. Is uw proxy correct geconfigureerd? @@ -308,7 +308,7 @@ Settings: Your Info: Uw Informatie Test Proxy: Test Proxy Clicking on Test Proxy will send a request to: Door op Test Proxy te klikken zal - er een request worden verstuurd naar + er een verzoek worden verstuurd naar Proxy Port Number: Proxy Poortnummer Proxy Host: Proxy Host Proxy Protocol: Proxy Protocol @@ -347,7 +347,7 @@ About: #On Channel Page Donate: Doneer - these people and projects: deze mensen en project + these people and projects: deze mensen en projecten FreeTube is made possible by: FreeTube is mogelijk gemaakt door Credits: Met dank aan Translate: Vertalen @@ -378,18 +378,19 @@ Channel: Unsubscribe: 'Afmelden' Search Channel: 'Zoek op Kanaal' Your search results have returned 0 results: 'Uw zoekactie heeft 0 resultaten opgeleverd' - Sort By: 'Sorteer Bij' + Sort By: 'Sorteer Op' Videos: Videos: 'Video''s' - This channel does not currently have any videos: 'Dit kanaal heeft nog geen video''s' + This channel does not currently have any videos: 'Dit kanaal heeft op dit moment + nog geen video''s' Sort Types: Newest: 'Nieuwste' Oldest: 'Oudste' Most Popular: 'Meest Populair' Playlists: Playlists: 'Afspeellijsten' - This channel does not currently have any playlists: 'Dit kanaal heeft nog geen - afspeellijsten' + This channel does not currently have any playlists: 'Dit kanaal heeft momenteel + nog geen afspeellijsten' Sort Types: Last Video Added: 'Laatst Toegevoegd' Newest: 'Nieuwste' @@ -467,12 +468,12 @@ Video: #& Videos Autoplay: Automatisch Afspelen Play Previous Video: Speel Vorige Video af - Play Next Video: Volgende Video Automatisch Afspelen - Reverse Playlist: Playlist Omkeren - Shuffle Playlist: Schuifelen Playlist + Play Next Video: Volgende Video Afspelen + Reverse Playlist: Afspeellijst Omkeren + Shuffle Playlist: Afspeellijst in willekeurige volgorde afspelen Loop Playlist: Herhaal Playlist - Starting soon, please refresh the page to check again: Begint spoedig, a.u.b. herlaad - de pagina om nog maal te checken + Starting soon, please refresh the page to check again: Start binnenkort, vernieuw + de pagina om opnieuw te controleren Audio: Best: Beste High: Hoog @@ -517,13 +518,13 @@ Playlist: #& Views Toggle Theatre Mode: 'Schakel Theatermodus In' Change Format: - Change Video Formats: 'Verander Video indeling' - Use Dash Formats: 'Gebruik Dash Indelingen' - Use Legacy Formats: 'Gebruik Legacy Indelingen' - Use Audio Formats: 'Gebruik Audio Indelingen' - Audio formats are not available for this video: Audio indelingen zijn niet beschikbaar + Change Video Formats: 'Verander Video Formaten' + Use Dash Formats: 'Gebruik Dash Formaten' + Use Legacy Formats: 'Gebruik Legacy Formaten' + Use Audio Formats: 'Gebruik Audio Formaten' + Audio formats are not available for this video: Audio formaten zijn niet beschikbaar voor deze video - Dash formats are not available for this video: Dash indelingen zijn niet beschikbaar + Dash formats are not available for this video: Dash formaten zijn niet beschikbaar voor deze video Share: Share Video: 'Deel Video' @@ -538,7 +539,7 @@ Share: YouTube URL copied to clipboard: 'YouTube URL is gekopieerd naar het klembord' YouTube Embed URL copied to clipboard: 'YouTube Insluitlink is gekopieerd naar het klemboard' - Include Timestamp: Begrijp Tijdstempel In + Include Timestamp: Inclusief Tijdstempel YouTube Channel URL copied to clipboard: YouTube URL is gekopieerd naar het klembord Invidious Channel URL copied to clipboard: Invidious Kanaal URL is gekopieerd naar het klembord @@ -546,7 +547,7 @@ Mini Player: 'Minispeler' Comments: Comments: 'Reacties' Click to View Comments: 'Klik om Reacties Te Tonen' - Getting comment replies, please wait: 'Reacties worden verzameld, een momentje' + Getting comment replies, please wait: 'Reacties worden verzameld, even geduld aub' Show Comments: 'Toon Reacties' Hide Comments: 'Verberg Reacties' # Context: View 10 Replies, View 1 Reply @@ -554,14 +555,15 @@ Comments: Hide: 'Verberg' Replies: 'Reacties' Reply: 'Reactie' - There are no comments available for this video: 'Er zijn geen reacties op deze video' + There are no comments available for this video: 'Er zijn geen reacties beschikbaar + voor deze video' Load More Comments: 'Meer Reacties Laden' There are no more comments for this video: Er zijn geen verdere reacties op deze video - No more comments available: Er zijn niet meer reacties beschikbaar + No more comments available: Er zijn geen reacties meer beschikbaar Newest first: Nieuwste Eerst - Top comments: Bovenste reacties - Sort by: Sorteer Bij + Top comments: Top Reacties + Sort by: Sorteer Op Up Next: 'Volgende' # Toast Messages @@ -572,8 +574,8 @@ Falling back to the local API: 'Terugvallen op lokale API' Subscriptions have not yet been implemented: 'Abonnementen zijn nog niet geïmplementeerd' Loop is now disabled: 'Herhalen is nu uitgeschakeld' Loop is now enabled: 'Herhalen is nu ingeschakeld' -Shuffle is now disabled: 'Schuifelen is nu uitgeschakeld' -Shuffle is now enabled: 'Schuifelen is nu ingeschakeld' +Shuffle is now disabled: 'Willekeurig afspelen is nu uitgeschakeld' +Shuffle is now enabled: 'Willekeurig afspelen is nu ingeschakeld' Playing Next Video: 'Volgende Video Word Afgespeeld' Playing Previous Video: 'Vorige Video Word Afgespeeld' Playing next video in 5 seconds. Click to cancel: 'Volgende Video Begint in 5 Seconden. @@ -589,14 +591,14 @@ Profile: $ is now the active profile: $ is nu het actieve profiel Your default profile has been changed to your primary profile: Uw standaardprofiel is veranderd naar uw hoofdprofiel - Removed $ from your profiles: $ is verwijdert uit uw profielen + Removed $ from your profiles: $ is verwijderd uit uw profielen Your default profile has been set to $: Uw standaard profiel is ingesteld op $ Profile has been updated: Profiel is geüpdate Profile has been created: Profiel is aangemaakt - Your profile name cannot be empty: U profiel naam kan niet leeg zijn + Your profile name cannot be empty: Uw profielnaam mag niet leeg zijn Profile could not be found: Profiel kon niet worden gevonden - All subscriptions will also be deleted.: Alle abonnementen zullen worden verwijderd. - Are you sure you want to delete this profile?: Weet u zeker dat u dit profiel wil + All subscriptions will also be deleted.: Alle abonnementen zullen ook worden verwijderd. + Are you sure you want to delete this profile?: Weet u zeker dat u dit profiel wilt verwijderen? Delete Profile: Verwijder Profiel Make Default Profile: Creëer Standaard Profiel @@ -606,7 +608,7 @@ Profile: Custom Color: Eigen Kleur Color Picker: Kleur Kiezer Edit Profile: Pas Profiel aan - Create New Profile: Creëer een Nieuw Profile + Create New Profile: Creëer een Nieuw Profiel Profile Manager: Beheer Profiel All Channels: Alle Kanalen Profile Select: Selecteer een Profiel @@ -632,8 +634,8 @@ Download From Site: Download van de Website Version $ is now available! Click for more details: Versie $ is nu beschikbaar! Klik voor meer informatie This video is unavailable because of missing formats. This can happen due to country unavailability.: Deze - video is niet beschikbaar vanwege ontbrekende video indelingen. Dit kan gebeuren - als de video niet in uw land beschikbaar is. + video is niet beschikbaar vanwege ontbrekende videoformaten. Dit kan gebeuren als + de video niet in uw land beschikbaar is. Tooltips: Player Settings: Default Video Format: Selecteer de video indeling dat wordt gebruikt wanneer u From fd64195c069810d32884790e32a86b7283deec7b Mon Sep 17 00:00:00 2001 From: Ash Ed Date: Fri, 9 Apr 2021 16:31:47 +0000 Subject: [PATCH 124/297] Translated using Weblate (Russian) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 3034da1a..8bae27dc 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -1,7 +1,7 @@ FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- - Эта часть приложения еще не готова. Вернитесь позже, когда будет достигнут прогресс. + Эта часть приложения ещё не готова. Вернитесь позже, когда будет достигнут прогресс. # Webkit Menu Bar File: 'Файл' @@ -127,21 +127,21 @@ Settings: View all Invidious instance information: Показать все доступные экземпляры Invidious Theme Settings: Theme Settings: 'Настройки темы' - Match Top Bar with Main Color: 'Совместить верхнюю панель с основным цветом' + Match Top Bar with Main Color: 'Верхняя панель основного цвета' Base Theme: Base Theme: 'Базовая тема' Black: 'Чёрная' Dark: 'Тёмная' Light: 'Светлая' Main Color Theme: - Main Color Theme: 'Основная цветовая тема' + Main Color Theme: 'Тема основного цвета' Red: 'Красная' Pink: 'Розовая' Purple: 'Фиолетовая' Deep Purple: 'Тёмно-фиолетовая' Indigo: 'Индиго' - Blue: 'Синия' - Light Blue: 'Светло-синия' + Blue: 'Синяя' + Light Blue: 'Светло-синяя' Cyan: 'Голубая' Teal: 'Бирюзовая' Green: 'Зелёная' @@ -467,9 +467,9 @@ Video: Autoplay: Автовоспроизведение Play Previous Video: Воспроизвести предыдущее видео Play Next Video: Воспроизводить следующее видео - Reverse Playlist: Обратный плейлист - Shuffle Playlist: Перемешанный плейлист - Loop Playlist: Циклический плейлист + Reverse Playlist: Обратный порядок плейлиста + Shuffle Playlist: Перемешать плейлист + Loop Playlist: Зациклить плейлист Starting soon, please refresh the page to check again: Скоро начнётся, обновите страницу, чтобы проверить ещё раз Audio: @@ -486,9 +486,9 @@ Video: Open Channel in YouTube: Открыть канал в YouTube Streamed on: Транслировано Started streaming on: Трансляция начата на - Video has been removed from your saved list: Видео было удалено из списка сохраненных - Video has been saved: Видео было добавлено в сохраненные - Save Video: Добавить видео в сохраненные + Video has been removed from your saved list: Видео было удалено из списка сохранённых + Video has been saved: Видео было добавлено в сохранённые + Save Video: Добавить видео в сохранённые Videos: #& Sort By Sort By: @@ -569,8 +569,8 @@ Invidious API Error (Click to copy): 'Ошибка invidious API (Нажмите Falling back to Invidious API: 'Возврат к Invidious API' Falling back to the local API: 'Возврат к локальному API' Subscriptions have not yet been implemented: 'Подписки ещё не реализованы' -Loop is now disabled: 'Цикл теперь отключён' -Loop is now enabled: 'Цикл теперь включён' +Loop is now disabled: 'Зацикливание теперь отключено' +Loop is now enabled: 'Зацикливание теперь включено' Shuffle is now disabled: 'Перемешивание теперь отключено' Shuffle is now enabled: 'Перемешивание теперь включено' Playing Next Video: 'Воспроизведение следующего видео' @@ -579,7 +579,7 @@ Playing next video in 5 seconds. Click to cancel: 'Воспроизведени через 5 секунд. Нажмите, чтобы отменить.' Canceled next video autoplay: 'Отменено автовоспроизведение следующего видео' 'The playlist has ended. Enable loop to continue playing': 'Плейлист закончился. - Включите цикл, чтобы продолжить воспроизведение' + Включите зацикливание, чтобы продолжить воспроизведение' Yes: 'Да' No: 'Нет' @@ -620,7 +620,7 @@ Profile: No channel(s) have been selected: Канал(ы) не были выбраны Add Selected To Profile: Добавить выбранное в профиль Delete Selected: Удалить выбранное - Select None: Выбрать ничего + Select None: Не выбрано Select All: Выбрать все $ selected: $ выбрано Other Channels: Другие каналы @@ -633,7 +633,7 @@ Download From Site: Скачать с сайта Version $ is now available! Click for more details: Версия $ уже доступна! Нажмите, чтобы узнать больше This video is unavailable because of missing formats. This can happen due to country unavailability.: Это - видео недоступно из-за отсутствия форматов. Это может произойти из-за недоступности + видео недоступно из-за отсутствия форматов. Это может произойти из-за ограничений страны. Tooltips: General Settings: @@ -648,9 +648,8 @@ Tooltips: Preferred API Backend: Выберите серверную часть, которую FreeTube использует для получения данных. Локальный API - это встроенный экстрактор. Invidious API требует подключения к Invidious серверу. - Region for Trending: Область тенденций позволяет вам выбрать популярные видео - из страны, которые вы хотите отображать. Не все отображаемые страны на самом - деле поддерживаются YouTube + Region for Trending: Регион трендов позволяет вам выбрать популярные видео из + выбранной страны. Не все отображаемые страны поддерживаются YouTube Subscription Settings: Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет получать вашу ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает From 2e472850cd3b5c1856dc95f89a5cd7963598efb9 Mon Sep 17 00:00:00 2001 From: Preston Date: Fri, 9 Apr 2021 12:58:06 -0400 Subject: [PATCH 125/297] Update youtube-suggest module --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a6dc199f..a38df1d3 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "vuex": "^3.6.2", "xml2json": "^0.12.0", "youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git", - "youtube-suggest": "^1.1.1", + "youtube-suggest": "^1.1.2", "yt-channel-info": "^2.0.0", "yt-comment-scraper": "^3.0.2", "yt-dash-manifest-generator": "1.1.0", From 7f8b740e5121330eddea4dab30318f804972402f Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Sat, 10 Apr 2021 00:09:25 +0200 Subject: [PATCH 126/297] Fixed package-lock (#1185) --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 91669a7c..d2d0d70e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18293,9 +18293,9 @@ } }, "youtube-suggest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/youtube-suggest/-/youtube-suggest-1.1.1.tgz", - "integrity": "sha512-nMkXJV24xe0QZ67YAfEtVfdGCtuyhOMcvX4GkO824TivwQbkHMNaWlMGlUkePSXCu2vPReP6nYhknoHzmD0/Aw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/youtube-suggest/-/youtube-suggest-1.1.2.tgz", + "integrity": "sha512-U1CrSIDf9q4H7lx84YiAPfGyMLIXDmSlOLrwcXBkGJFEUodzrD+ZSYMEpJK5UNVWyzE73yxvwGtqrV0dbNQ6LA==", "requires": { "node-fetch": "^2.6.0", "smol-jsonp": "^1.0.0" From 90292ec293e1091a395eb6f5aa129e7b8fe8afa0 Mon Sep 17 00:00:00 2001 From: Mihail Date: Sat, 10 Apr 2021 02:05:38 +0000 Subject: [PATCH 127/297] Translated using Weblate (Romanian) Currently translated at 27.3% (123 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ro/ --- static/locales/ro.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/static/locales/ro.yaml b/static/locales/ro.yaml index 54b78abb..1c49a012 100644 --- a/static/locales/ro.yaml +++ b/static/locales/ro.yaml @@ -189,9 +189,10 @@ Settings: Remember History: '' Save Watched Progress: '' Clear Search Cache: '' - Are you sure you want to clear out your search cache?: '' - Search cache has been cleared: '' - Remove Watch History: '' + Are you sure you want to clear out your search cache?: 'Sunteti siguri ca doriti + sa stergeti chache-ul cautarilor ?' + Search cache has been cleared: 'Cache-ul cautarilor a fost sters' + Remove Watch History: 'Sterge Istoricul Vizualizarilor' Are you sure you want to remove your entire watch history?: '' Watch history has been cleared: '' Remove All Subscriptions / Profiles: '' From 35ac70da0945fe26b914a5c5615d46e289514123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sat, 10 Apr 2021 17:15:25 +0000 Subject: [PATCH 128/297] Translated using Weblate (Turkish) Currently translated at 100.0% (450 of 450 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index 3090f6ba..1d6b485b 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -175,9 +175,9 @@ Settings: Default Playback Rate: 'Varsayılan Oynatma Hızı' Default Video Format: Default Video Format: 'Varsayılan Video Biçimi' - Dash Formats: 'Dash Biçimleri' + Dash Formats: 'DASH Biçimleri' Legacy Formats: 'Eski Biçimler' - Audio Formats: 'Ses Biçimi' + Audio Formats: 'Ses Biçimleri' Default Quality: Default Quality: 'Varsayılan Kalite' Auto: 'Otomatik' @@ -516,7 +516,7 @@ Video: Upcoming: 'İlk gösterim tarihi' Published on: 'Yayımlanma tarihi' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: '$ % önce' + Publicationtemplate: '$ % önce' #& Videos Audio: Best: En iyi @@ -561,13 +561,13 @@ Playlist: #& Views Toggle Theatre Mode: 'Tiyatro Modunu Aç/Kapat' Change Format: - Change Video Formats: 'Video Biçimini Değiştir' - Use Dash Formats: 'Dash Biçimi Kullan' + Change Video Formats: 'Video Biçimlerini Değiştir' + Use Dash Formats: 'DASH Biçimlerini Kullan' Use Legacy Formats: 'Eski Biçimleri Kullan' - Use Audio Formats: 'Ses Biçimi Kullan' - Dash formats are not available for this video: 'Dash biçimi bu video için kullanılabilir + Use Audio Formats: 'Ses Biçimlerini Kullan' + Dash formats are not available for this video: 'DASH biçimleri bu video için kullanılabilir değil' - Audio formats are not available for this video: 'Ses biçimi bu video için kullanılabilir + Audio formats are not available for this video: 'Ses biçimleri bu video için kullanılabilir değil' Share: Share Video: 'Videoyu Paylaş' @@ -637,32 +637,32 @@ Tooltips: önüne geçer, ancak video süresi veya canlı yayın durumu gibi belirli bilgileri sağlamaz Player Settings: - Default Video Format: Bir video oynatılırken kullanılan biçimleri ayarlayın. Dash + Default Video Format: Bir video oynatılırken kullanılan biçimleri ayarlayın. DASH biçimleri daha yüksek kalitelerde oynatabilir. Eski biçimler en fazla 720p ile sınırlıdır ancak daha az bant genişliği kullanır. Ses biçimleri yalnızca ses - akışlarıdır + akışlarıdır. Proxy Videos Through Invidious: Videoları sunmak için YouTube ile doğrudan bağlantı - kurmak yerine Invidious'a bağlanılacak. API tercihini geçersiz kılar + kurmak yerine Invidious'a bağlanılacak. API tercihini geçersiz kılar. Force Local Backend for Legacy Formats: Yalnızca Invidious API'si öntanımlı seçeneğiniz olduğunda çalışır. Etkinleştirildiğinde, yerel API çalışacak ve Invidious tarafından döndürülen biçimler yerine onun döndürdüğü eski biçimler kullanılacaktır. Invidious tarafından döndürülen videolar ülke kısıtlamaları nedeniyle oynatılmadığında - yardımcı olur + yardımcı olur. General Settings: Invidious Instance: FreeTube'un API çağrıları için bağlanacağı Invidious örneği. Aralarından seçim yapabileceğiniz herkese açık örneklerin bir listesini görmek - için geçerli örneği temizleyin + için geçerli örneği temizleyin. Thumbnail Preference: FreeTube'daki tüm küçük resimler, öntanımlı küçük resim - yerine videonun bir karesiyle değiştirilecektir + yerine videonun bir karesiyle değiştirilecektir. Fallback to Non-Preferred Backend on Failure: Etkinleştirildiğinde, tercih ettiğiniz API'de bir sorun olduğunda FreeTube otomatik olarak tercih edilmeyen API'nizi - yedek yöntem olarak kullanmaya çalışır + yedek yöntem olarak kullanmaya çalışır. Preferred API Backend: FreeTube'un veri elde etmek için kullandığı arka ucu seçin. Yerel API yerleşik bir çıkarıcıdır. Invidious API'si, bağlanmak için bir Invidious sunucusu gerektirir. 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 - tarafından desteklenmemektedir + tarafından desteklenmemektedir. Privacy Settings: Remove Video Meta Files: Etkinleştirildiğinde, izleme sayfası kapatıldığında video oynatma sırasında oluşturulan meta dosyaları otomatik olarak silinir. From 58882b3e169f5865497a8c97f42900d2c4f0477c Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 10 Apr 2021 22:04:59 +0200 Subject: [PATCH 129/297] Fix for missing import of marked as watched videos --- src/renderer/components/data-settings/data-settings.js | 2 +- src/renderer/components/ft-list-video/ft-list-video.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 78b32b6c..f5068f20 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -929,7 +929,7 @@ export default Vue.extend({ } }) - if (Object.keys(historyObject).length < requiredKeys.length) { + if (Object.keys(historyObject).length < (requiredKeys.length - 2)) { this.showToast({ message: this.$t('Settings.Data Settings.History object has insufficient data, skipping item') }) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 50c4c2de..9ec57bce 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -383,7 +383,7 @@ export default Vue.extend({ title: this.title, author: this.channelName, authorId: this.channelId, - published: '', + published: this.publishedText.split(',')[0], description: this.description, viewCount: this.viewCount, lengthSeconds: this.data.lengthSeconds, @@ -393,9 +393,7 @@ export default Vue.extend({ paid: false, type: 'video' } - this.updateHistory(videoData) - this.showToast({ message: this.$t('Video.Video has been marked as watched') }) From 388b80d809e38b934ed149adc204180ac61ae4fa Mon Sep 17 00:00:00 2001 From: Dragibus Noir Date: Sat, 10 Apr 2021 21:15:45 +0000 Subject: [PATCH 130/297] Translated using Weblate (French) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 36a4dab0..135752df 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -176,7 +176,7 @@ Settings: Default Playback Rate: 'Vitesse de lecture par défaut' Default Video Format: Default Video Format: 'Format de vidéo par défaut' - Dash Formats: 'Format Dash' + Dash Formats: 'Format DASH' Legacy Formats: 'Format Legacy' Audio Formats: 'Format Audio' Default Quality: @@ -249,6 +249,8 @@ Settings: sûr(e) de vouloir supprimer tous les abonnements et les profils ? Cette action est définitive. Remove All Subscriptions / Profiles: Supprimer tous les Abonnements / Profils + Automatically Remove Video Meta Files: Suppression automatique des MétaFichiers + vidéo Data Settings: How do I import my subscriptions?: Comment importer mes abonnements ? Subscriptions have been successfully exported: Les abonnements ont été exportés @@ -512,6 +514,7 @@ Video: enregistrée Video has been saved: La vidéo a été enregistrée Save Video: Enregistrer la vidéo + translated from English: traduit de l’anglais Videos: #& Sort By Sort By: @@ -539,12 +542,12 @@ Playlist: Toggle Theatre Mode: 'Mode Cinéma' Change Format: Change Video Formats: 'Changer le format de la vidéo' - Use Dash Formats: 'Utiliser le format Dash' + Use Dash Formats: 'Utiliser le format DASH' Use Legacy Formats: 'Utiliser le format Legacy' Use Audio Formats: 'Utiliser le format Audio' Audio formats are not available for this video: Le format Audio n'est pas disponible pour cette vidéo - Dash formats are not available for this video: Le format Dash n'est pas disponible + Dash formats are not available for this video: Le format DASH n'est pas disponible pour cette vidéo Share: Share Video: 'Partager la vidéo' @@ -668,32 +671,36 @@ Tooltips: comme la durée de la vidéo ou le statut en direct Player Settings: Default Video Format: Définir les formats utilisés lors de la lecture d'une vidéo. - Les formats Dash peuvent être lus en qualité supérieure. Les formats Legacy + Les formats DASH peuvent être lus en qualité supérieure. Les formats Legacy sont limités à un maximum de 720p mais utilisent moins de bande passante. Les - formats audio sont des flux audio uniquement + formats audio sont des flux audio uniquement. Proxy Videos Through Invidious: Se connectera à Invidious pour lire des vidéos au lieu d'établir une connexion directe avec YouTube. Remplace les préférences - de l'API + de l'API. Force Local Backend for Legacy Formats: Ne fonctionne que lorsque l'API Invidious est activée par défaut. Lorsqu'elle est activée, l'API locale s'exécute et utilise les formats Legacy renvoyés par celle-ci au lieu de ceux renvoyés par Invidious. Utile lorsque les vidéos renvoyées par Invidious ne sont pas lues en raison - de restrictions pays + de restrictions pays. General Settings: Invidious Instance: L'instance Invidious à laquelle FreeTube se connectera pour les appels d'API. Effacez l'instance actuelle pour voir une liste d'instances - publiques parmi lesquelles choisir + publiques parmi lesquelles choisir. Thumbnail Preference: Toutes les miniatures de FreeTube seront remplacées par - une image de la vidéo au lieu de la vignette par défaut + une image de la vidéo au lieu de la vignette par défaut. Fallback to Non-Preferred Backend on Failure: Lorsque votre API préférée a un problème, FreeTube tentera automatiquement d'utiliser votre API non préférée - comme méthode de secours lorsqu'elle est activée + comme méthode de secours lorsqu'elle est activée. Preferred API Backend: Choisissez le backend que FreeTube utilise pour obtenir les données. L'API locale est un extracteur intégré. L'API Invidious nécessite un serveur Invidious pour se connecter. Region for Trending: Ceci vous permet de choisir les vidéos tendance du pays que vous souhaitez afficher. Attention, certains pays affichés ne sont pas pris - en charge par YouTube + en charge par YouTube. + Privacy Settings: + Remove Video Meta Files: Lorsqu'il est activé, FreeTube supprime automatiquement + les MétaFichiers créés pendant la lecture de la vidéo, dès que la page de la + vidéo est quittée. More: Plus Playing Next Video Interval: Lecture de la prochaine vidéo en un rien de temps. Cliquez pour annuler. | Lecture de la prochaine vidéo dans {nextVideoInterval} seconde. From 93ff11bc92089f844a2fd7ac005e87c61fee8791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Sat, 10 Apr 2021 20:59:57 +0000 Subject: [PATCH 131/297] Translated using Weblate (Polish) Currently translated at 99.5% (449 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index 083bc548..08a129ce 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -172,7 +172,7 @@ Settings: Default Playback Rate: 'Domyślna szybkość odtwarzania' Default Video Format: Default Video Format: 'Domyślny format filmów' - Dash Formats: 'Formaty Dash' + Dash Formats: 'Formaty DASH' Legacy Formats: 'Stare formaty' Audio Formats: 'Formaty audio' Default Quality: @@ -502,6 +502,7 @@ Video: zachowanych Video has been saved: Film został zachowany Save Video: Zachowaj film + translated from English: przetłumaczone z angielskiego Videos: #& Sort By Sort By: @@ -529,12 +530,12 @@ Playlist: Toggle Theatre Mode: 'Aktywuj tryb kinowy' Change Format: Change Video Formats: 'Zmień formaty wideo' - Use Dash Formats: 'Użyj formatów Dash' + Use Dash Formats: 'Użyj formatów DASH' Use Legacy Formats: 'Użyj starych formatów' Use Audio Formats: 'Użyj formatów audio' Audio formats are not available for this video: Formaty audio nie są dostępne dla tego filmu - Dash formats are not available for this video: Formaty Dash nie są dostępne dla + Dash formats are not available for this video: Formaty DASH nie są dostępne dla tego filmu Share: Share Video: 'Podziel się filmem' @@ -655,27 +656,27 @@ Tooltips: General Settings: Fallback to Non-Preferred Backend on Failure: Po włączeniu, kiedy twój preferowany API napotka problem, FreeTube samoczynnie spróbuje użyć niepreferowanego API - jako metody zapasowej + jako metody zapasowej. Preferred API Backend: Wybierz back-end , który FreeTube użyje do uzyskiwania danych. Lokalne API jest wbudowanym ekstraktorem. API Invidious wymaga połączenia z serwerem Invidious. Region for Trending: Obszar filmów „Na czasie” pozwala wybrać kraj, z którego chciałbyś zobaczyć filmy zdobywające popularność. Nie wszystkie wyświetlone - kraje są obsługiwane przez YouTube + kraje są obsługiwane przez YouTube. Invidious Instance: Serwer Invidious, którym FreeTube będzie się łączył do wywołań - API. Wyczyść pole z serwerem, by zobaczyć listę publicznych serwerów do wyboru + API. Wyczyść pole z serwerem, by zobaczyć listę publicznych serwerów do wyboru. Thumbnail Preference: Wszystkie miniaturki na FreeTube zostaną zastąpione klatką - z filmu zamiast miniaturki domyślnej + z filmu zamiast miniaturki domyślnej. Player Settings: Force Local Backend for Legacy Formats: Działa tylko, kiedy API Invidious jest ustawiony jako domyślny. Gdy opcja jest włączona, do odtwarzania starych formatów zostanie użyty lokalny API, zamiast API Invidious. Pomaga w przypadkach, gdy - filmy zwracane przez Invidious nie odtwarzają się z powodu blokady regionalnej + filmy zwracane przez Invidious nie odtwarzają się z powodu blokady regionalnej. Default Video Format: Ustaw formaty, które zostaną użyte do odtwarzania filmów. - Formaty Dash obsługują wyższe rozdzielczości. Stare formaty są ograniczone do - 720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk + Formaty DASH obsługują wyższe rozdzielczości. Stare formaty są ograniczone do + 720p, ale zużywają mniej przepustowości. Formaty audio odtwarzają tylko dźwięk. Proxy Videos Through Invidious: Będzie dostarczał filmy, łącząc się z Invidious, - a nie bezpośrednio z YouTube. Nadpisuje ustawienia API + a nie bezpośrednio z YouTube. Nadpisuje ustawienia API. Privacy Settings: Remove Video Meta Files: Po włączeniu FreeTube samoczynnie usunie pliki metadanych utworzone podczas odtwarzania filmu, gdy tylko strona odtwarzania zostanie zamknięta. From c577508e9c44d2d0abbadc38ac187f9349f8fe30 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Sat, 10 Apr 2021 19:43:47 +0000 Subject: [PATCH 132/297] Translated using Weblate (Ukrainian) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/ --- static/locales/uk.yaml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/static/locales/uk.yaml b/static/locales/uk.yaml index 511b36c1..62508966 100644 --- a/static/locales/uk.yaml +++ b/static/locales/uk.yaml @@ -180,7 +180,7 @@ Settings: Default Playback Rate: 'Усталена швидкість відтворення' Default Video Format: Default Video Format: 'Формат відео за замовченням' - Dash Formats: 'Формати Dash' + Dash Formats: 'Формати DASH' Legacy Formats: 'Застарілі формати' Audio Formats: 'Аудіо формати' Default Quality: @@ -510,6 +510,7 @@ Video: Video has been removed from your saved list: Відео вилучено зі списку збережених Video has been saved: Відео збережено Save Video: Зберегти відео + translated from English: перекладено з англійської Videos: #& Sort By Sort By: @@ -537,10 +538,10 @@ Playlist: Toggle Theatre Mode: 'Перемкнути режим театру' Change Format: Change Video Formats: 'Зміна форматів відео' - Use Dash Formats: 'Використовувати формати Dash' + Use Dash Formats: 'Використовувати формати DASH' Use Legacy Formats: 'Використовувати застарілі формати' Use Audio Formats: 'Використовувати аудіоформати' - Dash formats are not available for this video: 'Формати Dash недоступні для цього + Dash formats are not available for this video: 'Формати DASH недоступні для цього відео' Audio formats are not available for this video: 'Аудіоформати недоступні для цього відео' @@ -592,26 +593,26 @@ Tooltips: Invidious для з'' єднання.' Fallback to Non-Preferred Backend on Failure: 'Коли бажаний API має проблеми, FreeTube автоматично спробує використовувати ваш не вибраний API як запасний - метод, коли його увімкнено' + метод, коли його увімкнено.' Thumbnail Preference: 'Усі ескізи у FreeTube заміняться на кадр відео, а не на - типову мініатюру' + типову мініатюру.' Invidious Instance: 'Сервер Invidious, до якого FreeTube під''єднуватиметься для викликів API. Очистьте поточний сервер, щоб побачити список загальнодоступних - серверів на вибір' + серверів на вибір.' Region for Trending: 'Регіон популярного дозволяє вам вибрати популярні відео країни, які ви хочете бачити. Не всі показані країни насправді підтримуються - YouTube' + YouTube.' Player Settings: Force Local Backend for Legacy Formats: 'Працює, лише якщо API Invidious використовується типовим. Якщо увімкнено, локальний API буде запущено і використовуватиме застарілі формати, які було повернуто Invidious. Допомагає, коли відео, повернуті Invidious, - не відтворюються через обмеження в країні' + не відтворюються через обмеження в країні.' Proxy Videos Through Invidious: 'Під’єднається до Invidious, щоб дивитися відео, - а не встановлювати пряме з’єднання з YouTube. Замінює налаштування API' + а не встановлювати пряме з’єднання з YouTube. Замінює налаштування API.' Default Video Format: 'Встановіть формати, що використовуються під час відтворення - відео. Формати Dash можуть відтворюватися в кращій якості. Старі формати мають + відео. Формати DASH можуть відтворюватися в кращій якості. Старі формати мають обмеження у 720p, але використовують меншу пропускну здатність. Формати аудіо - — це лише аудіопотоки' + — це лише аудіопотоки.' Subscription Settings: Fetch Feeds from RSS: 'Якщо ввімкнено, FreeTube використовуватиме RSS замість стандартного способу захоплення каналу підписки. RSS швидше і запобігає блокуванню From b094c278e94eb176ef92b287a40a25ba2458c1a9 Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Sun, 11 Apr 2021 02:53:31 +0000 Subject: [PATCH 133/297] Translated using Weblate (Arabic) Currently translated at 99.7% (450 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index fc27a3b4..89936230 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -522,6 +522,7 @@ Video: Video has been saved: تم حفظ الفيديو Save Video: احفظ الفيديو Video has been removed from your saved list: تمت إزالة الفيديو من قائمتك المحفوظة + translated from English: مترجمة من الإنجليزية Videos: #& Sort By Sort By: @@ -624,7 +625,7 @@ Tooltips: لInvidious (بديل لموقع يوتيوب) يتطلب التواصل مع خادم شبكة Invidious Invidious Instance: واجهة Invidious البرمجية المستخدمة من قبل FreeTube. امسح الواجهة البرمجية الحالية للاختيار من قائمة الواجهات - Fallback to Non-Preferred Backend on Failure: عند تواجد مشكلة مع الواجهة البرمجية + Fallback to Non-Preferred Backend on Failure: عند مواجهة مشكلة مع الواجهة البرمجية المفضلة لك، سوف يقوم فريتيوب باستخدام الواجهات الأخرى عند تفعيل هذا الخيار Region for Trending: يمكّنك اختيار الدولة من عرض الفيديوهات الشائعة التابعة للدولة التي تفضل . ليست كل البلدان المعروضة في هذه القائمة مدعومة من قبل يوتيوب @@ -651,3 +652,6 @@ This video is unavailable because of missing formats. This can happen due to cou الفيديو غير متوفر لفقدان بعض التنسيقات. من الممكن لهذا أن يحدث بسبب الحظر في دولة معيّنة. More: المزيد +Playing Next Video Interval: تشغيل الفيديو التالي في أي وقت من الأوقات. انقر للإلغاء. + | يتم تشغيل الفيديو التالي في غضون {nextVideoInterval} ثانية. انقر للإلغاء. | يتم + تشغيل الفيديو التالي بعد {nextVideoInterval} ثانية. انقر للإلغاء. From 30f27feaf1adc2e6bc2e41277561bf21cabe93a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sun, 11 Apr 2021 06:11:32 +0000 Subject: [PATCH 134/297] Translated using Weblate (Turkish) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index 1d6b485b..9c2bcdae 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -535,6 +535,7 @@ Video: Video has been removed from your saved list: Video, kaydedilen listenizden kaldırıldı Video has been saved: Video kaydedildi Save Video: Videoyu Kaydet + translated from English: İngilizceden çevrildi Videos: #& Sort By Sort By: From 73f827444e246b87992f225bf7ac4bdc3133b3c8 Mon Sep 17 00:00:00 2001 From: Rusi Dimitrov Date: Sun, 11 Apr 2021 07:27:36 +0000 Subject: [PATCH 135/297] Translated using Weblate (Bulgarian) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index c67c6682..0b6b4aa9 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -178,7 +178,7 @@ Settings: Default Playback Rate: 'Скорост на възпроизвеждане' Default Video Format: Default Video Format: 'Видео формат' - Dash Formats: 'Dash формати' + Dash Formats: 'DASH формати' Legacy Formats: 'Стари формати' Audio Formats: 'Аудио формати' Default Quality: @@ -533,6 +533,7 @@ Video: списък Video has been saved: Видеото е запазено Save Video: Запазване на видео + translated from English: преведено от английски Videos: #& Sort By Sort By: @@ -560,10 +561,10 @@ Playlist: Toggle Theatre Mode: 'Режим "Широк екран"' Change Format: Change Video Formats: 'Смяна видео формати' - Use Dash Formats: 'Използване на Dash формати' + Use Dash Formats: 'Използване на DASH формати' Use Legacy Formats: 'Използване на стари формати' Use Audio Formats: 'Използване на аудио формати' - Dash formats are not available for this video: 'Dash форматите не са достъпни за + Dash formats are not available for this video: 'DASH форматите не са достъпни за това видео' Audio formats are not available for this video: 'Аудио форматите не са достъпни за това видео' @@ -634,27 +635,27 @@ Tooltips: IP адреса, но не получава някои съпътстващи данни, като продължителност на видеото или дали е на живо Player Settings: - Default Video Format: Настройка на използваните формати. Dash форматите могат + Default Video Format: Настройка на използваните формати. DASH форматите могат да показват видеа с по-високо качество. Старите формати са ограничени до макс. - 720р, но пък генерират по-малък трафик. Аудио форматите предават само звук + 720р, но пък генерират по-малък трафик. Аудио форматите предават само звук. Proxy Videos Through Invidious: Ще се свърже с Invidious, за да изтегли видеото, вместо да прави дирекна връзка с YouTube. Пренебрегва настройките на локалния - интерфейс + интерфейс. Force Local Backend for Legacy Formats: Действа само когато по подразбиране е избран Invidious интерфейс. Когато е активиран, локалният интерфейс ще използва старите формати вместо тези на Invidious. Това помага когато видеата, получавани - от Invidious не вървят поради регионални ограничения + от Invidious не вървят поради регионални ограничения. General Settings: Region for Trending: Регионът на набиращите популярност дава възможност да се избере страната, за която това се отнася. Не всички страни показани тук се поддържат - от YouTube + от YouTube. Invidious Instance: Сървър на Invidious, към който FreeTube ще се свързва. Премахнете - настоящия избор, за да видите списък с други възможни сървъри + настоящия избор, за да видите списък с други възможни сървъри. Thumbnail Preference: Всички миниатюри във FreeTube ще бъдат подменени с кадър - от клипа вместо тези по подразбиране + от клипа вместо тези по подразбиране. Fallback to Non-Preferred Backend on Failure: Когато избраният интерфейс срещне проблем, FreeTube ще опита да премине автоматично към друг метод, ако има избран - такъв + такъв. Preferred API Backend: Избиране на начина, по който FreeTube получава данните. Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious сървър, към който да се свърже. From 519128a99a5b7a44dc918ccf499f556fe0ee0f8c Mon Sep 17 00:00:00 2001 From: Preston Date: Sun, 11 Apr 2021 18:49:56 -0400 Subject: [PATCH 136/297] Fix issue with live videos causing errors in search results --- src/renderer/views/Search/Search.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/renderer/views/Search/Search.js b/src/renderer/views/Search/Search.js index 16855e45..b43e69df 100644 --- a/src/renderer/views/Search/Search.js +++ b/src/renderer/views/Search/Search.js @@ -136,17 +136,18 @@ export default Vue.extend({ return null }) - const returnDataInvidious = [] + const dataToShow = [] returnData.forEach((video) => { if (video.type === 'video') { + console.log(video) const authId = video.author.channelID const publishDate = video.uploadedAt let videoDuration = video.duration const videoId = video.id - if (video.duration !== null && video.duration !== '') { + if (videoDuration !== null && videoDuration !== '' && videoDuration !== 'LIVE') { videoDuration = ytTrendScraper.calculate_length_in_seconds(video.duration) } - returnDataInvidious.push( + dataToShow.push( { videoId: videoId, title: video.title, @@ -160,22 +161,22 @@ export default Vue.extend({ published: publishDate, publishedText: publishDate, lengthSeconds: videoDuration, - liveNow: video.isLive, + liveNow: video.isLive || videoDuration === 'LIVE', paid: false, premium: false, isUpcoming: false, - timeText: video.duration + timeText: videoDuration } ) } else { - returnDataInvidious.push(video) + dataToShow.push(video) } }) if (payload.nextPage) { - this.shownResults = this.shownResults.concat(returnDataInvidious) + this.shownResults = this.shownResults.concat(dataToShow) } else { - this.shownResults = returnDataInvidious + this.shownResults = dataToShow } this.nextPageRef = result.continuation From cd78017540690e9883d3f9a4e970b144dd8ed384 Mon Sep 17 00:00:00 2001 From: Preston Date: Sun, 11 Apr 2021 18:51:50 -0400 Subject: [PATCH 137/297] Remove console.log --- src/renderer/views/Search/Search.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderer/views/Search/Search.js b/src/renderer/views/Search/Search.js index b43e69df..01d2e065 100644 --- a/src/renderer/views/Search/Search.js +++ b/src/renderer/views/Search/Search.js @@ -139,7 +139,6 @@ export default Vue.extend({ const dataToShow = [] returnData.forEach((video) => { if (video.type === 'video') { - console.log(video) const authId = video.author.channelID const publishDate = video.uploadedAt let videoDuration = video.duration From c3f9c2eb4f34979e8eb99662e7811d4a5ea21aef Mon Sep 17 00:00:00 2001 From: ovari Date: Mon, 12 Apr 2021 04:18:11 +0000 Subject: [PATCH 138/297] Translated using Weblate (Hungarian) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 5152ba75..351436c9 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -180,7 +180,8 @@ Settings: Default Playback Rate: 'Alapértelmezett lejátszási sebesség' Default Video Format: Default Video Format: 'Alapértelmezett videóformátum' - Dash Formats: 'Kötőjel formátumok' + Dash Formats: 'DASH (Dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n + keresztül) formátumok' Legacy Formats: 'Örökölt formátumok' Audio Formats: 'Hangformátumok' Default Quality: @@ -515,7 +516,7 @@ Video: Upcoming: 'Az első előadás hamarosan lesz' Published on: 'Megjelent' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: '$ % ezelőtt' + Publicationtemplate: '$ % ezelőtt' #& Videos Audio: Best: Legjobb @@ -534,6 +535,7 @@ Video: 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 + translated from English: angolról fordítva Videos: #& Sort By Sort By: @@ -561,11 +563,13 @@ Playlist: Toggle Theatre Mode: 'Mozi mód be-/kikapcsolása' Change Format: Change Video Formats: 'Videoformátumok módosítása' - Use Dash Formats: 'Kötőjel formátumok használata' + Use Dash Formats: 'DASH (Dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n + keresztül) formátumok használata' Use Legacy Formats: 'Örökölt formátumok használata' Use Audio Formats: 'Hangformátumok használata' - Dash formats are not available for this video: 'Kötőjel formátumok nem állnak rendelkezésre - ehhez a videóhoz' + Dash formats are not available for this video: 'DASH (Dinamikus adaptív sávszélességű + folyamatos átvitel HTTP-n keresztül) formátumok nem állnak rendelkezésre ehhez + a videóhoz' Audio formats are not available for this video: 'Hangformátumok nem érhetők el ehhez a videóhoz' Share: @@ -638,15 +642,15 @@ Tooltips: használatához Invidious-kiszolgáló szükséges. Region for Trending: A népszerűk körzetével kiválaszthatja, mely ország népszerű videóit szeretné megjeleníteni. Nem minden megjelenített országot támogat a - YouTube + YouTube. Invidious Instance: Invidious példány, amelyhez a FreeTube csatlakozni fog az API-hívásokhoz. Törölje az aktuális példányt a nyilvános példányok listájának - megjelenítéséhez + megjelenítéséhez. Thumbnail Preference: A FreeTube összes miniatűrökét az alapértelmezett miniatűr - helyett egy képkocka váltja fel + helyett egy képkocka váltja fel. Fallback to Non-Preferred Backend on Failure: Ha az Ön által előnyben részesített API-val hibába merül fel, a FreeTube önműködően megpróbálja a nem előnyben API-t - tartalékként használni, ha engedélyezve van + tartalékként használni, ha engedélyezve van. Subscription Settings: Fetch Feeds from RSS: Ha engedélyezve van, a FreeTube az alapértelmezett módszer helyett RSS-t fog használni a feliratkozás hírcsatornájának megragadásához. @@ -654,17 +658,18 @@ Tooltips: például a videó időtartamát vagy az élő állapotot Player Settings: Default Video Format: Állítsa be a videó lejátszásakor használt formátumokat. - A kötőjel formátumok magasabb minőséget játszhatnak le. Az örökölt formátumok - legfeljebb 720 képpontra korlátozódnak, de kevesebb sávszélességet használnak. - A hangformátumok csak hang-adatfolyamok + A DASH (dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n keresztül) + formátumok magasabb minőséget játszhatnak le. Az örökölt formátumok legfeljebb + 720 képpontra korlátozódnak, de kevesebb sávszélességet használnak. A hangformátumok + csak hang-adatfolyamok. Proxy Videos Through Invidious: Csatlakozik az Invidious szolgáltatáshoz, hogy videókat szolgáltasson, ahelyett, hogy közvetlen kapcsolatot létesítene a YouTube - szolgáltatással. Felülbírálja az API beállítást + szolgáltatással. Felülbírálja az API beállítást. Force Local Backend for Legacy Formats: Csak akkor működik, ha az Invidious API az alapértelmezett. Ha engedélyezve van, a helyi API futni fog, és az általa visszaadott örökölt formátumokat fogja használni az Invidious által visszaadottak helyett. Segít, ha az Invidious által visszaküldött videókat nem lehet lejátszani - az ország korlátozása miatt + az ország korlátozása miatt. Privacy Settings: Remove Video Meta Files: Ha engedélyezve van, a FreeTube önműködőén törli a videolejátszás során létrehozott métafájlokat, amikor a nézési oldal bezárul. From 9f0a9da85c252b1bc48eadb35ea80cbb78eec8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 12 Apr 2021 14:57:46 +0000 Subject: [PATCH 139/297] Translated using Weblate (Icelandic) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 5ce703e8..77b14d0b 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -479,8 +479,9 @@ Video: Streamed on: 'Streymt' Started streaming on: 'Byrjaði streymi' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: '$ % síðan' + Publicationtemplate: 'Fyrir $ % síðan' #& Videos + translated from English: þýtt úr ensku Videos: #& Sort By Sort By: @@ -561,27 +562,27 @@ Tooltips: tengingar við Invidious-netþjón.' Fallback to Non-Preferred Backend on Failure: 'Þegar forgangsbakendi API-kerfisviðmóts á í vandræðum, mun FreeTube reyna sjálfkrafa að nota ekki-forgangsbakenda API-kerfisviðmóts - sem varaleið, þegar þetta er virkjað' + sem varaleið, þegar þetta er virkjað.' Thumbnail Preference: 'Öllum smámyndum í FreeTube verður skipt út fyrir ramma - með myndskeiðinu í stað sjálfgefinnar smámyndar' + með myndskeiðinu í stað sjálfgefinnar smámyndar.' Invidious Instance: 'Tilvik Invidious-netþjóns sem FreeTube mun tengjast fyrir beðnir í API-kerfisviðmót. Hreinsaðu út fyrirliggjandi tilvik til að sjá lista - yfir opinber tilvik sem hægt er að velja um' + yfir opinber tilvik sem hægt er að velja um.' Region for Trending: 'Landssvæði sem skal miða vinsældir við gerir þér kleift að velja í hvaða landi aukning á vinsældum í umræðunni skal miða við. Ekki eru - öll löndin sem birtast raunverulega studd af YouTube' + öll löndin sem birtast raunverulega studd af YouTube.' Player Settings: Force Local Backend for Legacy Formats: 'Virkar bara þegar Invidious API-kerfisviðmótið er sjálfgefið hjá þér. Þegar þetta er virkt, mun staðværa API-kerfisviðmótið keyra og nota þau eldri skráasnið sem finnast í stað þeirra sem Invidious gefur upp. Hjálpar til þegar myndskeið sem Invidious gefur upp spilast ekki vegna - landsháðra takmarkana' + landsháðra takmarkana.' Proxy Videos Through Invidious: 'Mun tengjast við Invidious til að miðla myndskeiðum - í stað þess að tengjast beint við YouTube. Tekur fram fyrir valin API-kerfisviðmót' + í stað þess að tengjast beint við YouTube. Tekur fram fyrir valin API-kerfisviðmót.' Default Video Format: 'Stillu skráasniðin sem notuð eru við afspilun myndskeiða. DASH-snið (Dynamic Adaptive Streaming over HTTP) er hægt að spila í meiri gæðum. Eldri snið takmarkast við 720p en nota minni bandbreidd. Hljóðsnið eru streymi - einungis með hljóði' + einungis með hljóði.' Subscription Settings: Fetch Feeds from RSS: 'Þegar þetta er virkt, mun FreeTube nota RSS í stað sjálfgefinnar aðferðar við að safna streymi áskriftarinnar þinnar. RSS er hraðvirkara og kemur From 49aab11acb8db0d636b55bc795177ed63177aea0 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 12 Apr 2021 23:00:07 +0200 Subject: [PATCH 140/297] Svallinns locale fix --- src/renderer/views/Watch/Watch.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index 180096d8..ea97a86b 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -385,14 +385,17 @@ export default Vue.extend({ .captionTracks if (typeof captionTracks !== 'undefined') { - const standardLocale = localStorage.getItem('locale').replace('_', '-') - const noLocaleCaption = !captionTracks.some(track => - track.languageCode === standardLocale && track.kind !== 'asr' - ) + const locale = localStorage.getItem('locale') + if (locale !== null) { + const standardLocale = locale.replace('_', '-') + const noLocaleCaption = !captionTracks.some(track => + track.languageCode === standardLocale && track.kind !== 'asr' + ) - if (!standardLocale.startsWith('en') && noLocaleCaption) { - const baseUrl = result.player_response.captions.playerCaptionsRenderer.baseUrl - this.tryAddingTranslatedLocaleCaption(captionTracks, standardLocale, baseUrl) + if (!standardLocale.startsWith('en') && noLocaleCaption) { + const baseUrl = result.player_response.captions.playerCaptionsRenderer.baseUrl + this.tryAddingTranslatedLocaleCaption(captionTracks, standardLocale, baseUrl) + } } this.captionHybridList = this.createCaptionPromiseList(captionTracks) From 339b449ce2816766b0a3fd8f959ec131f74335c7 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Mon, 12 Apr 2021 19:20:15 +0000 Subject: [PATCH 141/297] Translated using Weblate (Croatian) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index a8de7c80..1e6f7198 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -170,7 +170,7 @@ Settings: Default Playback Rate: 'Standardna brzina reprodukcije' Default Video Format: Default Video Format: 'Standardni videoformat' - Dash Formats: 'Dash formati' + Dash Formats: 'DASH formati' Legacy Formats: 'Stari formati' Audio Formats: 'Audioformati' Default Quality: @@ -507,7 +507,7 @@ Video: Upcoming: 'Premijera' Published on: 'Objavljeno' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: 'prije $ %' + Publicationtemplate: 'prije $ %' #& Videos Autoplay: Automatska reprodukcija Play Previous Video: Reproduciraj prethodni video @@ -535,6 +535,7 @@ Video: spremljenih Video has been saved: Video je spremljen Save Video: Spremi video + translated from English: prevedeno iz engleskog Videos: #& Sort By Sort By: @@ -562,12 +563,12 @@ Playlist: Toggle Theatre Mode: 'Uključi/isključi kazališni modus' Change Format: Change Video Formats: 'Promijeni videoformate' - Use Dash Formats: 'Koristi Dash-formate' + Use Dash Formats: 'Koristi DASH formate' Use Legacy Formats: 'Koristi stare formate' Use Audio Formats: 'Koristi audioformate' Audio formats are not available for this video: Audioformati nisu dostupni za ovaj video - Dash formats are not available for this video: Dash formati nisu dostupni za ovaj + Dash formats are not available for this video: DASH formati nisu dostupni za ovaj video Share: Share Video: 'Dijeli video' @@ -637,29 +638,29 @@ This video is unavailable because of missing formats. This can happen due to cou u zemlji. Tooltips: Player Settings: - Default Video Format: Postavi formate za reprodukciju videa. Dash formati mogu + Default Video Format: Postavi formate za reprodukciju videa. DASH formati mogu reproducirati višu kvalitetu slike. Stari formati su ograničeni na 720 p, ali - su zato brži. Audioformati sadrže samo audiosnimke + su zato brži. Audioformati sadrže samo audiosnimke. Proxy Videos Through Invidious: Za reprodukciju videa povezat će se s Invidiousom - umjesto izravnog povezivanja s YouTubeom. Zanemaruje postavke sučelja + umjesto izravnog povezivanja s YouTubeom. Zanemaruje postavke sučelja. Force Local Backend for Legacy Formats: Radi samo, kad se Invidious postavi kao standardno sučelje. Kad je aktivirano, lokalno sučelje će pokretati i koristiti stare formate umjesto onih koje dostavlja Invidious. Pomaže u slučajevima, kad - je reprodukcija videa koje dostavlja Invidious u zemlji zabranjena/ograničena + je reprodukcija videa koje dostavlja Invidious u zemlji zabranjena/ograničena. General Settings: Invidious Instance: Invidious primjerak na koji će se FreeTube povezati za pozive sučelja. Isprazni trenutačni primjerak za prikaz popisa javnih primjeraka koje - možeš odabrati + možeš odabrati. Thumbnail Preference: U FreeTubeu će se sve minijature zamijeniti s jednim kadrom - videa umjesto standardne minijature + videa umjesto standardne minijature. Fallback to Non-Preferred Backend on Failure: Ako primarno odabrano sučelje ima problema, FreeTube će automatski pokušati koristiti sekundarno sučelje kao zamjensku - metodu, ako je aktivirano + metodu, ako je aktivirano. Preferred API Backend: Odaberi pozadinski sustav koji FreeTube koristi za dobivanje podataka. Lokalno sučelje je ugrađeni sustav. Invidious sučelje zahtijeva Invidious poslužitelja na koji će se povezati. Region for Trending: 'Regija trendova omogućuje biranje prikaza videa u trendu - za određenu zemlju. YouTube zapravo ne podržava sve prikazane zemlje' + za određenu zemlju. YouTube zapravo ne podržava sve prikazane zemlje.' Subscription Settings: Fetch Feeds from RSS: Kad je aktivirano, FreeTube će koristiti RSS umjesto vlastite standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava From a0d47ba64356e20555771c93acfb879e2958626e Mon Sep 17 00:00:00 2001 From: Michalis Date: Mon, 12 Apr 2021 19:46:55 +0000 Subject: [PATCH 142/297] Translated using Weblate (Greek) Currently translated at 96.8% (437 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/el/ --- static/locales/el.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/el.yaml b/static/locales/el.yaml index 005ff3c8..5161be34 100644 --- a/static/locales/el.yaml +++ b/static/locales/el.yaml @@ -47,7 +47,7 @@ Search Filters: Last Hour: 'Τελευταίας ώρας' Today: 'Σήμερα' This Week: 'Τρέχουσα Εβδομάδα' - This Month: 'Αυτό το μήνα' + This Month: 'Τρέχων μήνα' This Year: 'Τρέχων έτος' Type: Type: 'Είδος' From 22beb1fc6b84c65efc5234a696faad1b1346ebaf Mon Sep 17 00:00:00 2001 From: Luca Hohmann <34301369+GilgusMaximus@users.noreply.github.com> Date: Tue, 13 Apr 2021 00:16:10 +0200 Subject: [PATCH 143/297] Bumped yt-channel-info (#1196) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 057aacf3..12891c67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18302,9 +18302,9 @@ } }, "yt-channel-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yt-channel-info/-/yt-channel-info-2.0.0.tgz", - "integrity": "sha512-Qrd9ONv9NbVPGGwCWPDwuQds43iXcNQHMB4iE9VqBtDt9WuMKoZd6BvoZDT10QCKisknByO1XIkM1hxbKyZNnA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/yt-channel-info/-/yt-channel-info-2.1.0.tgz", + "integrity": "sha512-e7rDJUw+GoOMojQYLG/SlD4gwXiRChmRj+tMzfLyoHUuvELZKq3bayTkepFDNls/0dLwc/vU6Xr9uAIXRGLvBw==", "requires": { "axios": "^0.21.1", "querystring": "^0.2.0" diff --git a/package.json b/package.json index f4c86a62..1a6e7d73 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "xml2json": "^0.12.0", "youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git", "youtube-suggest": "^1.1.2", - "yt-channel-info": "^2.0.0", + "yt-channel-info": "^2.1.0", "yt-comment-scraper": "^4.0.1", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^1.1.1", From 61e059d83b561dc933430ff76d2e048b59382727 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 13 Apr 2021 01:32:48 +0000 Subject: [PATCH 144/297] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 17dfc93c..3f9ac38c 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -161,7 +161,7 @@ Settings: Default Playback Rate: '預設播放速度' Default Video Format: Default Video Format: '預設影片格式' - Dash Formats: '儀錶盤格式' + Dash Formats: 'DASH 格式' Legacy Formats: '傳統格式' Audio Formats: '音訊格式' Default Quality: @@ -453,6 +453,7 @@ Video: Video has been removed from your saved list: 影片已從您的播放清單移除 Video has been saved: 影片已儲存 Save Video: 儲存影片至播放清單 + translated from English: 從英文翻譯 Videos: #& Sort By Sort By: @@ -480,11 +481,11 @@ Playlist: Toggle Theatre Mode: '切換為劇院模式' Change Format: Change Video Formats: '變更影片格式' - Use Dash Formats: '使用儀錶盤格式' + Use Dash Formats: '使用 DASH 格式' Use Legacy Formats: '使用傳統格式' Use Audio Formats: '使用音訊格式' Audio formats are not available for this video: 這個影片沒有音訊格式 - Dash formats are not available for this video: 這個影片沒有儀錶盤格式 + Dash formats are not available for this video: 這個影片沒有 DASH 格式 Share: Share Video: '分享影片' Copy Link: '複製連結' @@ -585,18 +586,18 @@ Tooltips: Subscription Settings: Fetch Feeds from RSS: 啟用後,FreeTube將使用RSS代替它的預設方法來抓取您的訂閱來源。RSS的速度較快,而且可以防止IP封鎖,但它可能不會提供某些資訊,例如影片長度或是直播狀態。 Player Settings: - Default Video Format: 設定要用於影片播放的格式。儀錶盤格式有更高的畫質。傳統格式會限制在 720p 但頻寬需求更低。音訊格式為僅有音訊的串流 - Proxy Videos Through Invidious: 將連線到 Invidious而非直接連線到 YouTube 來提供影片。覆寫 API 偏好 - Force Local Backend for Legacy Formats: 僅當 Invidious API是您預設 API 時才有效。啟用後,區域 API - 將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious回傳的影片時有幫助 + Default Video Format: 設定要用於影片播放的格式。DASH 格式有更高的畫質。傳統格式會限制在 720p 但頻寬需求更低。音訊格式為僅有音訊的串流。 + Proxy Videos Through Invidious: 將連線到 Invidious 而非直接連線到 YouTube 來提供影片。覆寫 API 偏好。 + Force Local Backend for Legacy Formats: 僅當 Invidious API 是您預設 API 時才有效。啟用後,區域 + API 將會執行並使用由其回傳的的傳統格式,而非 Invidious 回傳的格式。對因為國家地區限制而無法播放 Invidious 回傳的影片時有幫助。 General Settings: - Invidious Instance: FreeTube將連線為 API呼叫的Invidious實例。清除目前的實例以檢視可供選擇的公用實例清單 - Thumbnail Preference: FreeTube中所有縮圖都會被替換為影片畫面而非預設縮圖 - Fallback to Non-Preferred Backend on Failure: 當您的偏好API 有問題時,FreeTube將自動嘗試使用您的非偏好API - 作為汰退方案 + Invidious Instance: FreeTube 將連線到 Invidious 站台進行 API 呼叫。清除目前的站台以檢視可供選擇的公開站台清單。 + Thumbnail Preference: FreeTube 中所有縮圖都會被替換為影片畫面而非預設縮圖。 + Fallback to Non-Preferred Backend on Failure: 當您的偏好 API 有問題時,FreeTube 將自動嘗試使用您的非偏好 + API 作為汰退方案。 Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious API 需要 Invidious 伺服器才能連線。 - Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援 + Region for Trending: 熱門影片區域可以讓您選擇想要顯示哪個國家的熱門影片。注意:並非所有國家都被 YouTube 支援。 Privacy Settings: Remove Video Meta Files: 如果啟用,FreeTube會在關閉觀看頁面時,自動刪除影片播放過程中建立的暫存檔案。 Playing Next Video Interval: 馬上播放下一個影片。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。| From e16eef29ff0284a2ba6d288faff78b14e6e6fce1 Mon Sep 17 00:00:00 2001 From: Oymate Date: Tue, 13 Apr 2021 09:15:09 +0000 Subject: [PATCH 145/297] Translated using Weblate (Bengali) Currently translated at 7.0% (32 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bn/ --- static/locales/bn.yaml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/static/locales/bn.yaml b/static/locales/bn.yaml index 84be091f..116fdb63 100644 --- a/static/locales/bn.yaml +++ b/static/locales/bn.yaml @@ -22,19 +22,21 @@ Toggle Developer Tools: 'ডেভেলপার যন্ত্র টগল Actual size: 'প্রকৃত আকার' Zoom in: 'সম্প্রসারিত করো (জুম)' Zoom out: 'সংকুচিত করো(জুম)' -Toggle fullscreen: '' +Toggle fullscreen: 'পূর্ণ-স্ক্রিন' Window: 'উইন্ডো' -Minimize: '' -Close: '' -Back: '' -Forward: '' +Minimize: 'ক্ষুদ্রকরণ' +Close: 'বন্ধ' +Back: 'পিছনে' +Forward: 'সামনে' -Version $ is now available! Click for more details: '' -Download From Site: '' -A new blog is now available, $. Click to view more: '' +Version $ is now available! Click for more details: 'সংস্করণ $ এসে গেছে! আরো জানতে + টিপ দাও' +Download From Site: 'সাইট থেকে ডাউনলোড করো' +A new blog is now available, $. Click to view more: 'নতুন ব্লগ আছে, $. আরো দেখতে টিপ + দাও' # Search Bar -Search / Go to URL: '' +Search / Go to URL: 'অনুসন্ধান / ইউআরএলে যাও' # In Filter Button Search Filters: Search Filters: '' @@ -86,7 +88,7 @@ User Playlists: Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' History: # On History Page - History: '' + History: 'ইতিহাস' Watch History: '' Your history list is currently empty.: '' Settings: From 20ae8bfe522f0ec86f95c5dfeab25534747d8a0e Mon Sep 17 00:00:00 2001 From: alium Date: Wed, 14 Apr 2021 07:09:36 +0000 Subject: [PATCH 146/297] Translated using Weblate (Czech) Currently translated at 100.0% (451 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index b166ade6..c367449e 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -177,7 +177,7 @@ Settings: Default Playback Rate: 'Výchozí rychlost přehrávání' Default Video Format: Default Video Format: 'Výchozí formát videa' - Dash Formats: 'Formát Dash' + Dash Formats: 'Formát DASH' Legacy Formats: 'Starší formáty' Audio Formats: 'Zvukové formáty' Default Quality: @@ -514,7 +514,7 @@ Video: Upcoming: 'Premiéra' Published on: 'Publikováno' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: 'před $ %' + Publicationtemplate: 'před $ %' #& Videos Started streaming on: Začátek vysílání Streamed on: Vysíláno @@ -522,6 +522,7 @@ Video: Save Video: Uložit video Video has been removed from your saved list: Video bylo odstraněno z vašeho uloženého seznamu + translated from English: přeloženo z angličtiny Videos: #& Sort By Sort By: @@ -549,10 +550,10 @@ Playlist: Toggle Theatre Mode: 'Přepnout režim divadla' Change Format: Change Video Formats: 'Změnit formát videa' - Use Dash Formats: 'Použít Dash formáty' + Use Dash Formats: 'Použít DASH formáty' Use Legacy Formats: 'Použít starší formáty' Use Audio Formats: 'Použít zvukové formáty' - Dash formats are not available for this video: 'Dash formáty nejsou pro toto video + Dash formats are not available for this video: 'DASH formáty nejsou pro toto video dostupné' Audio formats are not available for this video: 'Zvukové formáty nejsou pro toto video dostupné' @@ -606,25 +607,26 @@ Tooltips: Invidious.' Fallback to Non-Preferred Backend on Failure: 'Pokud má vaše preferované API problém, FreeTube se automaticky pokusí použít vaše nepreferované API jako záložní metodu, - pokud je povoleno' - Thumbnail Preference: 'Všechny miniatury v celém FreeTube budou nahrazeny rámečkem - videa namísto výchozí miniatury' - Invidious Instance: 'Invidious instance, ke které se FreeTube připojí pro volání - API. Smazáním aktuální instance zobrazíte seznam veřejných instancí, ze kterých - si můžete vybrat' - Region for Trending: 'Region trendů vám umožní vybrat si videa trendů jednotlivých - zemí, které chcete zobrazit. Ne všechny zobrazené země ale YouTube aktuálně - podporuje' + pokud je povoleno.' + Thumbnail Preference: 'Všechny miniatury v celém FreeTube budou nahrazeny snímkem + z videa namísto výchozí miniatury.' + Invidious Instance: 'Invidious instance, ke které se FreeTube připojí za účelem + volání API. Smazáním aktuální instance zobrazíte seznam veřejných instancí, + ze kterých si můžete vybrat.' + Region for Trending: 'Region trendů vám umožní vybrat si zemi, ze které si přejete + zobrazovat videa trendů. Ne všechny zobrazené země jsou ale službou YouTube + reálně podporovány.' Player Settings: Force Local Backend for Legacy Formats: 'Funguje pouze v případě, že je výchozím nastavením API Invidious. Je-li povoleno, spustí se místní API a použije starší - formáty místo těch, které vrátí Invidious. V některých zemích je zakázáno přehrání, - toto může překonat toto omezení' + formáty místo těch, které vrátí Invidious. Může pomoci, pokud videa z Invidious + nemohou být přehrána kvůli regionálnímu omezení.' Proxy Videos Through Invidious: 'Připojí se k Invidious, aby poskytoval videa - namísto přímého připojení k YouTube. Toto přepíše předvolby API' + namísto přímého připojení k YouTube. Toto přepíše předvolby API.' Default Video Format: 'Nastavte formáty použité při přehrávání videa. Formáty - Dash mohou hrát vyšší kvality. Starší formáty jsou omezeny na maximálně 720p, - ale používají menší šířku pásma. Zvukové formáty jsou pouze zvukové streamy' + DASH umožní přehrávat vyšší kvality. Starší formáty jsou omezeny na maximálně + 720p, ale používají menší šířku pásma. Zvukové formáty jsou streamy obsahující + pouze audio.' Subscription Settings: Fetch Feeds from RSS: 'Je-li povoleno, FreeTube použije RSS místo své výchozí metody pro získání vašeho odebírání kanálů. RSS je rychlejší a brání blokování From b5d58255a6a33eea9648df9fc89613f366c224bd Mon Sep 17 00:00:00 2001 From: "Omer I.S" Date: Wed, 14 Apr 2021 13:45:23 +0000 Subject: [PATCH 147/297] Translated using Weblate (Hebrew) Currently translated at 98.0% (442 of 451 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index 2b1eb3d8..4984edd5 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -171,7 +171,7 @@ Settings: Default Playback Rate: 'ברירת המחדל למהירות הצפייה' Default Video Format: Default Video Format: 'תצורת הסרטונים כברירת־המחדל' - Dash Formats: 'תצורות Dash' + Dash Formats: 'תצורות DASH' Legacy Formats: 'תצורות מיושנות' Audio Formats: 'תצורות שמע' Default Quality: @@ -186,6 +186,7 @@ Settings: 1440p: '1440p' 4k: '4k' 8k: '8k' + Playlist Next Video Interval: מרווח זמן לפני ניגון הסרטון הבא בפלייליסט Privacy Settings: Privacy Settings: 'הגדרות פרטיות' Remember History: 'זכור את היסטוריית הצפייה' @@ -281,6 +282,7 @@ Settings: Distraction Free Settings: הגדרות להשבתת הסחות Hide Video Views: הסתרת תצוגות סרטונים Hide Active Subscriptions: הסתרת מינויים פעילים + Hide Playlists: הסתרת פלייליסטים The app needs to restart for changes to take effect. Restart and apply change?: צריך להפעיל את היישומון מחדש כדי שהשינויים ייכנסו לתוקף. להפעיל מחדש ולהחיל את השינוי? Proxy Settings: @@ -497,7 +499,7 @@ Video: Upcoming: 'שידור הבכורה ישודר ב־' Published on: 'פורסם' # $ is replaced with the number and % with the unit (days, hours, minutes...) - Publicationtemplate: 'לפני $ %' + Publicationtemplate: 'לפני $ %' #& Videos Audio: Best: איכות הכי טובה @@ -543,10 +545,10 @@ Playlist: Toggle Theatre Mode: 'הפעלו / בטלו מצב קולנוע' Change Format: Change Video Formats: 'שינוי תצורות הסרטונים' - Use Dash Formats: 'שימוש בתצורות Dash' + Use Dash Formats: 'שימוש בתצורות DASH' Use Legacy Formats: 'שימוש בתצורות המיושנות' Use Audio Formats: 'שימוש בתצורות שמע' - Dash formats are not available for this video: 'לא קיימות תצורות Dash לסרטון הזה' + Dash formats are not available for this video: 'לא קיימות תצורות DASH לסרטון הזה' Audio formats are not available for this video: 'לא קיימות תצורות שמע לסרטון הזה' Share: Share Video: 'שתפו את הסרטון' @@ -610,15 +612,15 @@ Tooltips: General Settings: Fallback to Non-Preferred Backend on Failure: כאשר ל־API המועדף עליך יש בעיה, FreeTube ינסה להשתמש ב־API בעדיפות הנמוכה יותר באופן אוטומטי כשיטת נסיגה כאשר - האפשרות פעילה + האפשרות פעילה. Preferred API Backend: נא לבחור את המנגנון לשימוש FreeTube כדי לקבל נתונים. ה־API המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious. Region for Trending: מגמות אזוריות מאפשר לך לבחור סרטונים חמים של איזו מדינה מעניין אותך לראות. לא כל המדינות שמוצגות אכן נתמכות על ידי YouTube Invidious Instance: העותק של Invidious שאליו FreeTube יתחבר לפניות API. מחיקת העותק הנוכחי תעלה רשימה של עותקים ציבוריים לבחור מביניהם - Thumbnail Preference: כל התמונות הייצוגיות ברחבי FreeTube תוחלפנה בתמונית מתוך - הסרטון במקום התמונה הייצוגית כבררת המחדל + Thumbnail Preference: כל התמונות הממוזערות ברחבי FreeTube יוחלפו בפריים מתוך הסרטון + במקום התמונה הממוזערת כברירת המחדל. Player Settings: Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא ברירת המחדל שלך. כאשר האפשרות פעילה, ה־API המקומי יופעל וישתמש בתצורות המיושנות שהוחזרו @@ -626,9 +628,9 @@ Tooltips: ידי Invidious לא מתנגנים עקב מגבלות חוקיות במדינה Proxy Videos Through Invidious: יתבצע חיבור ל־Invidious כדי להגיש סרטונים במקום להתחבר ישירות ל־YouTube. דורס את העדפת ה־API - Default Video Format: קביעת התצורות בעת ניגון סרטונים. תצורות Dash יכולות לנגן + Default Video Format: קביעת התצורות בעת ניגון סרטונים. תצורות DASH יכולות לנגן באיכויות גבוהות יותר. התצורות המיושנות מוגבלות ל־720 פיקסלים לכל היותר אך משתמשות - בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד + בפחות רוחב פס. תצורות שמע הן הזרמות של שמע בלבד. Subscription Settings: Fetch Feeds from RSS: כאשר אפשרות זו פעילה. FreeTube ישתמש ב־RSS במקום בשיטת ברירת המחדל לאיסוף הזנת המינויים שלך. RSS היא שיטה מהירה יותר ומונעת חסימת IP אבל From ebc829cef04e5d6d55c5048cbb0b2f35fe6de7cf Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Fri, 16 Apr 2021 02:28:35 +0800 Subject: [PATCH 148/297] Add "open new window" button (#1153) --- src/main/index.js | 168 +++++++++++-------- src/renderer/components/top-nav/top-nav.js | 5 + src/renderer/components/top-nav/top-nav.sass | 5 + src/renderer/components/top-nav/top-nav.vue | 5 + 4 files changed, 110 insertions(+), 73 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 7e116cb2..a4c7c072 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -31,6 +31,7 @@ function runApp() { const isDev = process.env.NODE_ENV === 'development' const isDebug = process.argv.includes('--debug') let mainWindow + let openedWindows = [] let startupUrl // CORS somehow gets re-enabled in Electron v9.0.4 @@ -219,11 +220,11 @@ function runApp() { } } - function createWindow (useProxy = false, proxyUrl = '') { + function createWindow (useProxy = false, proxyUrl = '', replaceMainWindow = true) { /** * Initial window options */ - mainWindow = new BrowserWindow({ + const newWindow = new BrowserWindow({ backgroundColor: '#fff', icon: isDev ? path.join(__dirname, '../../_icons/iconColor.png') @@ -241,14 +242,18 @@ function runApp() { }, show: false }) + openedWindows.push(newWindow) + if (replaceMainWindow) { + mainWindow = newWindow + } - mainWindow.setBounds({ + newWindow.setBounds({ width: 1200, height: 800 }) if (useProxy) { - mainWindow.webContents.session.setProxy({ + newWindow.webContents.session.setProxy({ proxyRules: proxyUrl }) } @@ -260,7 +265,7 @@ function runApp() { 'http://youtube.com', 'https://youtube.com' ].forEach(url => { - mainWindow.webContents.session.cookies.set({ + newWindow.webContents.session.cookies.set({ url: url, name: 'CONSENT', value: 'YES+' @@ -284,7 +289,7 @@ function runApp() { .reduce((accumulator, { size: { width } }) => accumulator + width, 0) if (allDisplaysSummaryWidth >= bounds.x) { - mainWindow.setBounds({ + newWindow.setBounds({ x: bounds.x, y: bounds.y, width: bounds.width, @@ -292,19 +297,23 @@ function runApp() { }) } if (maximized) { - mainWindow.maximize() + newWindow.maximize() } }) - // eslint-disable-next-line - setMenu() + // If called multiple times + // Duplicate menu items will be added + if (replaceMainWindow) { + // eslint-disable-next-line + setMenu() + } // load root file/url if (isDev) { - mainWindow.loadURL('http://localhost:9080') + newWindow.loadURL('http://localhost:9080') } else { /* eslint-disable-next-line */ - mainWindow.loadFile(`${__dirname}/index.html`) + newWindow.loadFile(`${__dirname}/index.html`) global.__static = path .join(__dirname, '/static') @@ -312,74 +321,87 @@ function runApp() { } // Show when loaded - mainWindow.on('ready-to-show', () => { - mainWindow.show() - mainWindow.focus() + newWindow.on('ready-to-show', () => { + newWindow.show() + newWindow.focus() }) - mainWindow.on('closed', () => { + newWindow.on('closed', () => { + // Remove closed window + openedWindows = openedWindows.filter((window) => window !== newWindow) + if (newWindow === mainWindow) { + // Replace mainWindow to avoid accessing `mainWindow.webContents` + // Which raises "Object has been destroyed" error + mainWindow = openedWindows[0] + } + console.log('closed') }) - - ipcMain.on('setBounds', (_e, data) => { - const value = { - ...mainWindow.getNormalBounds(), - maximized: mainWindow.isMaximized() - } - - settingsDb.findOne({ - _id: 'bounds' - }, function (err, doc) { - if (err) { - return - } - if (doc !== null) { - settingsDb.update({ - _id: 'bounds' - }, { - $set: { - value - } - }, {}) - } else { - settingsDb.insert({ - _id: 'bounds', - value - }) - } - }) - }) - - ipcMain.on('appReady', () => { - if (startupUrl) { - mainWindow.webContents.send('openUrl', startupUrl) - } - }) - - ipcMain.on('disableSmoothScrolling', () => { - app.commandLine.appendSwitch('disable-smooth-scrolling') - mainWindow.close() - createWindow() - }) - - ipcMain.on('enableSmoothScrolling', () => { - app.commandLine.appendSwitch('enable-smooth-scrolling') - mainWindow.close() - createWindow() - }) - - ipcMain.on('enableProxy', (event, url) => { - console.log(url) - mainWindow.webContents.session.setProxy({ - proxyRules: url - }) - }) - - ipcMain.on('disableProxy', () => { - mainWindow.webContents.session.setProxy({}) - }) } + // Save closing window bounds & maximized status + ipcMain.on('setBounds', (_e, data) => { + const value = { + ...mainWindow.getNormalBounds(), + maximized: mainWindow.isMaximized() + } + + settingsDb.findOne({ + _id: 'bounds' + }, function (err, doc) { + if (err) { + return + } + if (doc !== null) { + settingsDb.update({ + _id: 'bounds' + }, { + $set: { + value + } + }, {}) + } else { + settingsDb.insert({ + _id: 'bounds', + value + }) + } + }) + }) + + ipcMain.on('appReady', () => { + if (startupUrl) { + mainWindow.webContents.send('openUrl', startupUrl) + } + }) + + ipcMain.on('disableSmoothScrolling', () => { + app.commandLine.appendSwitch('disable-smooth-scrolling') + mainWindow.close() + createWindow() + }) + + ipcMain.on('enableSmoothScrolling', () => { + app.commandLine.appendSwitch('enable-smooth-scrolling') + mainWindow.close() + createWindow() + }) + + ipcMain.on('enableProxy', (event, url) => { + console.log(url) + mainWindow.webContents.session.setProxy({ + proxyRules: url + }) + }) + + ipcMain.on('disableProxy', () => { + mainWindow.webContents.session.setProxy({}) + }) + + ipcMain.on('createNewWindow', () => { + createWindow(false, '', false) + }) + app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() diff --git a/src/renderer/components/top-nav/top-nav.js b/src/renderer/components/top-nav/top-nav.js index 653df6ec..0eb39716 100644 --- a/src/renderer/components/top-nav/top-nav.js +++ b/src/renderer/components/top-nav/top-nav.js @@ -6,6 +6,7 @@ import $ from 'jquery' import router from '../../router/index.js' import debounce from 'lodash.debounce' import ytSuggest from 'youtube-suggest' +const { ipcRenderer } = require('electron') export default Vue.extend({ name: 'TopNav', @@ -195,6 +196,10 @@ export default Vue.extend({ toggleSideNav: function () { this.$store.commit('toggleSideNav') + }, + + createNewWindow: function () { + ipcRenderer.send('createNewWindow') } } }) diff --git a/src/renderer/components/top-nav/top-nav.sass b/src/renderer/components/top-nav/top-nav.sass index 3197cbce..018e27f2 100644 --- a/src/renderer/components/top-nav/top-nav.sass +++ b/src/renderer/components/top-nav/top-nav.sass @@ -66,6 +66,11 @@ @media only screen and (min-width: 681px) display: none + .navNewWindowIcon + // Hidden when "History" menu item also hidden + @media only screen and (max-width: 279px) + display: none + .logo // parts that make up the logo display: flex align-items: center diff --git a/src/renderer/components/top-nav/top-nav.vue b/src/renderer/components/top-nav/top-nav.vue index 9a4ed144..96f638e1 100644 --- a/src/renderer/components/top-nav/top-nav.vue +++ b/src/renderer/components/top-nav/top-nav.vue @@ -24,6 +24,11 @@ icon="search" @click="toggleSearchContainer" /> +