mirror of
https://github.com/FreeTubeApp/FreeTube
synced 2024-12-23 18:45:05 +01:00
Fix Locales File and Implement Locales file with app
This commit is contained in:
parent
e1e34a7212
commit
64b877fe27
51
.travis.yml
51
.travis.yml
@ -1,51 +0,0 @@
|
|||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode9.3
|
|
||||||
language: node_js
|
|
||||||
node_js: '12'
|
|
||||||
env:
|
|
||||||
- ELECTRON_CACHE=$HOME/.cache/electron
|
|
||||||
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
services: docker
|
|
||||||
language: node_js
|
|
||||||
node_js: '12'
|
|
||||||
env:
|
|
||||||
- ELECTRON_CACHE=$HOME/.cache/electron
|
|
||||||
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- node_modules
|
|
||||||
- $HOME/.cache/electron
|
|
||||||
- $HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1
|
|
||||||
export PATH="/tmp/git-lfs:$PATH"
|
|
||||||
fi
|
|
||||||
before_script:
|
|
||||||
- git lfs pull
|
|
||||||
|
|
||||||
script:
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
|
||||||
docker run --rm \
|
|
||||||
--env-file <(env | grep -v '\r' | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') \
|
|
||||||
-v ${PWD}:/project \
|
|
||||||
-v ~/.cache/electron:/root/.cache/electron \
|
|
||||||
-v ~/.cache/electron-builder:/root/.cache/electron-builder \
|
|
||||||
electronuserland/builder:wine
|
|
||||||
fi
|
|
||||||
- npm run build
|
|
||||||
|
|
||||||
before_cache:
|
|
||||||
- rm -rf $HOME/.cache/electron-builder/wine
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- "/^v\\d+\\.\\d+\\.\\d+$/"
|
|
@ -133,6 +133,7 @@ const config = {
|
|||||||
src: path.join(__dirname, '../src/'),
|
src: path.join(__dirname, '../src/'),
|
||||||
icons: path.join(__dirname, '../_icons/'),
|
icons: path.join(__dirname, '../_icons/'),
|
||||||
images: path.join(__dirname, '../src/renderer/assets/img/'),
|
images: path.join(__dirname, '../src/renderer/assets/img/'),
|
||||||
|
static: path.join(__dirname, '../static/'),
|
||||||
},
|
},
|
||||||
extensions: ['.ts', '.js', '.vue', '.json'],
|
extensions: ['.ts', '.js', '.vue', '.json'],
|
||||||
},
|
},
|
||||||
@ -165,6 +166,13 @@ if (isDevMode) {
|
|||||||
ignore: ['.*', 'pwabuilder-sw.js'],
|
ignore: ['.*', 'pwabuilder-sw.js'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
from: path.join(__dirname, '../static'),
|
||||||
|
to: path.join(__dirname, '../dist/static'),
|
||||||
|
globOptions: {
|
||||||
|
ignore: ['.*', 'pwabuilder-sw.js'],
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: path.join(__dirname, '../_icons'),
|
from: path.join(__dirname, '../_icons'),
|
||||||
to: path.join(__dirname, '../dist/web/_icons'),
|
to: path.join(__dirname, '../dist/web/_icons'),
|
||||||
|
@ -136,6 +136,7 @@ const config = {
|
|||||||
src: path.join(__dirname, '../src/'),
|
src: path.join(__dirname, '../src/'),
|
||||||
icons: path.join(__dirname, '../_icons/'),
|
icons: path.join(__dirname, '../_icons/'),
|
||||||
images: path.join(__dirname, '../src/renderer/assets/img/'),
|
images: path.join(__dirname, '../src/renderer/assets/img/'),
|
||||||
|
static: path.join(__dirname, '../static/'),
|
||||||
},
|
},
|
||||||
extensions: ['.js', '.vue', '.json', '.css'],
|
extensions: ['.js', '.vue', '.json', '.css'],
|
||||||
},
|
},
|
||||||
|
19
package-lock.json
generated
19
package-lock.json
generated
@ -3357,7 +3357,6 @@
|
|||||||
"version": "1.0.10",
|
"version": "1.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"sprintf-js": "~1.0.2"
|
"sprintf-js": "~1.0.2"
|
||||||
},
|
},
|
||||||
@ -3365,8 +3364,7 @@
|
|||||||
"sprintf-js": {
|
"sprintf-js": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -8195,8 +8193,7 @@
|
|||||||
"esprima": {
|
"esprima": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||||
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
|
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"esquery": {
|
"esquery": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
@ -12726,10 +12723,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"js-yaml": {
|
"js-yaml": {
|
||||||
"version": "3.13.1",
|
"version": "3.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
|
||||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
"integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"argparse": "^1.0.7",
|
"argparse": "^1.0.7",
|
||||||
"esprima": "^4.0.0"
|
"esprima": "^4.0.0"
|
||||||
@ -18805,6 +18801,11 @@
|
|||||||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"vue-i18n": {
|
||||||
|
"version": "8.20.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.20.0.tgz",
|
||||||
|
"integrity": "sha512-ZiAOoeR4d/JtKpbjipx3I80ey7cYG1ki5gQ7HwzWm4YFio9brA15BEYHjalEoBaEfzF5OBEZP+Y2MvAaWnyXXg=="
|
||||||
|
},
|
||||||
"vue-loader": {
|
"vue-loader": {
|
||||||
"version": "15.9.3",
|
"version": "15.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz",
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
"dateformat": "^3.0.3",
|
"dateformat": "^3.0.3",
|
||||||
"electron-context-menu": "^2.2.0",
|
"electron-context-menu": "^2.2.0",
|
||||||
"jquery": "^3.5.1",
|
"jquery": "^3.5.1",
|
||||||
|
"js-yaml": "^3.14.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
"material-design-icons": "^3.0.1",
|
"material-design-icons": "^3.0.1",
|
||||||
@ -31,6 +32,7 @@
|
|||||||
"videojs-vtt-thumbnails": "0.0.13",
|
"videojs-vtt-thumbnails": "0.0.13",
|
||||||
"vue": "^2.6.11",
|
"vue": "^2.6.11",
|
||||||
"vue-electron": "^1.0.6",
|
"vue-electron": "^1.0.6",
|
||||||
|
"vue-i18n": "^8.20.0",
|
||||||
"vue-router": "^3.3.4",
|
"vue-router": "^3.3.4",
|
||||||
"vuex": "^3.5.1",
|
"vuex": "^3.5.1",
|
||||||
"xml2json": "^0.12.0",
|
"xml2json": "^0.12.0",
|
||||||
|
@ -3,6 +3,8 @@ import TopNav from './components/top-nav/top-nav.vue'
|
|||||||
import SideNav from './components/side-nav/side-nav.vue'
|
import SideNav from './components/side-nav/side-nav.vue'
|
||||||
import FtToast from './components/ft-toast/ft-toast.vue'
|
import FtToast from './components/ft-toast/ft-toast.vue'
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
|
import yaml from 'js-yaml'
|
||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
let useElectron
|
let useElectron
|
||||||
let shell
|
let shell
|
||||||
@ -37,6 +39,13 @@ export default Vue.extend({
|
|||||||
this.activateKeyboardShortcuts()
|
this.activateKeyboardShortcuts()
|
||||||
this.openAllLinksExternally()
|
this.openAllLinksExternally()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const doc = yaml.safeLoad(fs.readFileSync('./static/locales/en-US.yaml'))
|
||||||
|
console.log(doc)
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
checkThemeSettings: function () {
|
checkThemeSettings: function () {
|
||||||
|
@ -7,6 +7,9 @@ import 'material-design-icons/iconfont/material-icons.css'
|
|||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { fas } from '@fortawesome/free-solid-svg-icons'
|
import { fas } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
||||||
|
import VueI18n from 'vue-i18n'
|
||||||
|
import yaml from 'js-yaml'
|
||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
const isDev = process.env.NODE_ENV === 'development'
|
const isDev = process.env.NODE_ENV === 'development'
|
||||||
|
|
||||||
@ -17,12 +20,51 @@ Vue.config.productionTip = isDev
|
|||||||
library.add(fas)
|
library.add(fas)
|
||||||
|
|
||||||
Vue.component('font-awesome-icon', FontAwesomeIcon)
|
Vue.component('font-awesome-icon', FontAwesomeIcon)
|
||||||
|
Vue.use(VueI18n)
|
||||||
|
|
||||||
|
fs.readdir('.', (err, dir) => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
console.log(dir)
|
||||||
|
for (const filePath of dir) {
|
||||||
|
console.log(filePath)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// List of locales approved for use
|
||||||
|
const activeLocales = ['en-US']
|
||||||
|
const messages = {}
|
||||||
|
|
||||||
|
// Take active locales and load respective YAML file
|
||||||
|
activeLocales.forEach((locale) => {
|
||||||
|
try {
|
||||||
|
// File location when running in dev
|
||||||
|
const doc = yaml.safeLoad(fs.readFileSync(`static/locales/${locale}.yaml`))
|
||||||
|
messages[locale] = doc
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
try {
|
||||||
|
// File location when compiled
|
||||||
|
const doc = yaml.safeLoad(fs.readFileSync(`${__dirname}/static/locales/${locale}.yaml`))
|
||||||
|
messages[locale] = doc
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const i18n = new VueI18n({
|
||||||
|
locale: 'en-US', // set locale
|
||||||
|
messages // set locale messages
|
||||||
|
})
|
||||||
|
|
||||||
/* eslint-disable-next-line */
|
/* eslint-disable-next-line */
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
router,
|
router,
|
||||||
store,
|
store,
|
||||||
|
i18n,
|
||||||
render: h => h(App)
|
render: h => h(App)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<h3>Subscriptions</h3>
|
<h3>Subscriptions</h3>
|
||||||
<ft-flex-box>
|
<ft-flex-box>
|
||||||
<p class="message">
|
<p class="message">
|
||||||
This part of the app is not ready yet. Come back later when progress has been made.
|
{{ $t("This part of the app is not ready yet. Come back later when progress has been made.") }}
|
||||||
</p>
|
</p>
|
||||||
</ft-flex-box>
|
</ft-flex-box>
|
||||||
</ft-card>
|
</ft-card>
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
{
|
|
||||||
"File": "File",
|
|
||||||
"Quit": "Quit",
|
|
||||||
"Edit": "Edit",
|
|
||||||
"Undo": "Undo",
|
|
||||||
"Redo": "Redo",
|
|
||||||
"Cut": "Cut",
|
|
||||||
"Copy": "Copy",
|
|
||||||
"Paste": "Paste",
|
|
||||||
"Delete": "Delete",
|
|
||||||
"Select all": "Select all",
|
|
||||||
"View": "View",
|
|
||||||
"Reload": "Reload",
|
|
||||||
"Force Reload": "Force Reload",
|
|
||||||
"Toggle Developer Tools": "Toggle Developer Tools",
|
|
||||||
"Actual size": "Actual size",
|
|
||||||
"Zoom in": "Zoom in",
|
|
||||||
"Zoom out": "Zoom out",
|
|
||||||
"Toggle fullscreen": "Toggle fullscreen",
|
|
||||||
"Window": "Window",
|
|
||||||
"Minimize": "Minimize",
|
|
||||||
"Close": "Close",
|
|
||||||
"FreeTube": "FreeTube",
|
|
||||||
"Subscriptions": "Subscriptions",
|
|
||||||
"Featured": "Featured",
|
|
||||||
"Most Popular": "Most Popular",
|
|
||||||
"Saved": "Saved",
|
|
||||||
"Playlists": "Playlists",
|
|
||||||
"History": "History",
|
|
||||||
"Settings": "Settings",
|
|
||||||
"About": "About",
|
|
||||||
"Search / Go to URL": "Search / Go to URL",
|
|
||||||
"Search Results": "Search Results",
|
|
||||||
"Subscriber": "Subscriber",
|
|
||||||
"Subscribers": "Subscribers",
|
|
||||||
"Video": "Video",
|
|
||||||
"Videos": "Videos",
|
|
||||||
"View Full Playlist": "View Full Playlist",
|
|
||||||
"Live Now": "Live Now",
|
|
||||||
"Fetch more results": "Fetch more results",
|
|
||||||
"Fetching results. Please wait": "Fetching results. Please wait",
|
|
||||||
"Latest Subscriptions": "Latest Subscriptions",
|
|
||||||
"Save Video": "Save Video",
|
|
||||||
"Remove Saved Video": "Remove Saved Video",
|
|
||||||
"Open in YouTube": "Open in YouTube",
|
|
||||||
"Copy YouTube Link": "Copy YouTube Link",
|
|
||||||
"Open in Invidious": "Open in Invidious",
|
|
||||||
"Copy Invidious Link": "Copy Invidious Link",
|
|
||||||
"URL has been copied to the clipboard": "URL copied to clipboard",
|
|
||||||
"Found valid URL for 480p, but returned a 404. Video type might be available in the future.": "Found valid URL for 480p, but returned a 404. Video type might be available in the future.",
|
|
||||||
"Save": "Save",
|
|
||||||
"Mini Player": "Mini Player",
|
|
||||||
"View": "View",
|
|
||||||
"Views": "Views",
|
|
||||||
"Subscribe": "Subscribe",
|
|
||||||
"Unsubscribe": "Unsubscribe",
|
|
||||||
"Published on": "Published on",
|
|
||||||
"Jan": "Jan",
|
|
||||||
"Feb": "Feb",
|
|
||||||
"Mar": "Mar",
|
|
||||||
"Apr": "Apr",
|
|
||||||
"May": "May",
|
|
||||||
"Jun": "Jun",
|
|
||||||
"Jul": "Jul",
|
|
||||||
"Aug": "Aug",
|
|
||||||
"Sep": "Sep",
|
|
||||||
"Oct": "Oct",
|
|
||||||
"Nov": "Nov",
|
|
||||||
"Dec": "Dec",
|
|
||||||
"Show Comments": "Show Comments",
|
|
||||||
"Max of 100": "Max of 100",
|
|
||||||
"Recommendations": "Recommendations",
|
|
||||||
"Latest Subscriptions": "Latest Subscriptions",
|
|
||||||
"Getting Subscriptions. Please wait...": "Getting Subscriptions. Please wait…",
|
|
||||||
"Your Subscription list is currently empty. Start adding subscriptions to see them here.": "Add subscriptions to see them here.",
|
|
||||||
"Saved Videos": "Saved Videos",
|
|
||||||
"Watch History": "Watch History",
|
|
||||||
"Use Dark Theme": "Use Dark Theme",
|
|
||||||
"Import Subscriptions": "Import Subscriptions",
|
|
||||||
"Export Subscriptions": "Export Subscriptions",
|
|
||||||
"Clear History": "Clear History",
|
|
||||||
"Are you sure you want to delete your history?": "Are you sure you want to delete your history?",
|
|
||||||
"Clear Saved Videos": "Clear Favorited Videos",
|
|
||||||
"Are you sure you want to remove all saved videos?": "Are you sure you want to remove all saved videos?",
|
|
||||||
"Clear Subscriptions": "Clear Subscriptions",
|
|
||||||
"Are you sure you want to remove all subscriptions?": "Are you sure you want to remove all subscriptions?",
|
|
||||||
"Save Settings": "Save Settings",
|
|
||||||
"Yes": "Yes",
|
|
||||||
"No": "No",
|
|
||||||
"Beta": "Beta",
|
|
||||||
"This software is FOSS and released under the GNU Affero General Public License v3.0.": "This copylefted software is freely licensed AGPL-3.0.",
|
|
||||||
"Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests are welcome.": "Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests welcome."
|
|
||||||
}
|
|
@ -19,7 +19,7 @@
|
|||||||
FreeTube: FreeTube
|
FreeTube: FreeTube
|
||||||
# Currently on Subscriptions, Playlists, and History
|
# Currently on Subscriptions, Playlists, and History
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.': >
|
'This part of the app is not ready yet. Come back later when progress has been made.': >
|
||||||
'This part of the app is not ready yet. Come back later when progress has been made.'
|
This part of the app is not ready yet. Come back later when progress has been made.
|
||||||
|
|
||||||
# Webkit Menu Bar
|
# Webkit Menu Bar
|
||||||
File: File
|
File: File
|
||||||
@ -47,44 +47,50 @@ Forward: Forward
|
|||||||
|
|
||||||
# Search Bar
|
# Search Bar
|
||||||
Search / Go to URL: Search / Go to URL
|
Search / Go to URL: Search / Go to URL
|
||||||
# In Filter Button
|
# In Filter Button
|
||||||
Search Filters: Search Filters
|
Search Filters:
|
||||||
|
Search Filters: Search Filters
|
||||||
|
Sort By:
|
||||||
Sort By: Sort By
|
Sort By: Sort By
|
||||||
Most Relevant: Most Relevant
|
Most Relevant: Most Relevant
|
||||||
Rating: Rating
|
Rating: Rating
|
||||||
Upload Date: Upload Date
|
Upload Date: Upload Date
|
||||||
View Count: View Count
|
View Count: View Count
|
||||||
|
Time:
|
||||||
Time: Time
|
Time: Time
|
||||||
Any Time: Any Time
|
Any Time: Any Time
|
||||||
Last Hour: Last Hour
|
Last Hour: Last Hour
|
||||||
Today: Today
|
Today: Today
|
||||||
This Week: This Week
|
This Week: This Week
|
||||||
This Month: This Month
|
This Month: This Month
|
||||||
This Year: This Year
|
This Year: This Year
|
||||||
|
Type:
|
||||||
Type: Type
|
Type: Type
|
||||||
All Types: All Types
|
All Types: All Types
|
||||||
Videos: Videos
|
Videos: Videos
|
||||||
Channels: Channels
|
Channels: Channels
|
||||||
#& Playlists
|
#& Playlists
|
||||||
|
Duration:
|
||||||
Duration: Duration
|
Duration: Duration
|
||||||
All Durations: All Durations
|
All Durations: All Durations
|
||||||
Short (< 4 minutes): Short (< 4 minutes)
|
Short (< 4 minutes): Short (< 4 minutes)
|
||||||
Long (> 20 minutes): Long (> 20 minutes)
|
Long (> 20 minutes): Long (> 20 minutes)
|
||||||
# On Search Page
|
# On Search Page
|
||||||
Search Results: Search Results
|
Search Results: Search Results
|
||||||
Fetching results. Please wait: Fetching results. Please wait
|
Fetching results. Please wait: Fetching results. Please wait
|
||||||
Fetch more results: Fetch more results
|
Fetch more results: Fetch more results
|
||||||
# Sidebar
|
# Sidebar
|
||||||
Subscriptions: Subscriptions
|
Subscriptions:
|
||||||
# On Subscriptions Page
|
# On Subscriptions Page
|
||||||
|
Subscriptions: Subscriptions
|
||||||
Latest Subscriptions: Latest Subscriptions
|
Latest Subscriptions: Latest Subscriptions
|
||||||
|
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': >
|
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': >
|
||||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.'
|
Your Subscription list is currently empty. Start adding subscriptions to see them here.
|
||||||
|
|
||||||
'Getting Subscriptions. Please wait...': 'Getting Subscriptions. Please wait…'
|
'Getting Subscriptions. Please wait...': Getting Subscriptions. Please wait…
|
||||||
Live Now: Live Now
|
Live Now: Live Now
|
||||||
Published: Published
|
Published:
|
||||||
Jan: Jan
|
Jan: Jan
|
||||||
Feb: Feb
|
Feb: Feb
|
||||||
Mar: Mar
|
Mar: Mar
|
||||||
@ -112,99 +118,154 @@ Subscriptions: Subscriptions
|
|||||||
Featured: Featured
|
Featured: Featured
|
||||||
Most Popular: Most Popular
|
Most Popular: Most Popular
|
||||||
Playlists: Playlists
|
Playlists: Playlists
|
||||||
History: History
|
History:
|
||||||
# On History Page
|
# On History Page
|
||||||
Watch History: Watch History
|
History: History
|
||||||
Settings: Settings
|
Watch History: Watch History
|
||||||
# On Settings Page
|
Settings:
|
||||||
|
# On Settings Page
|
||||||
|
Settings: Settings
|
||||||
|
General Settings:
|
||||||
General Settings: General Settings
|
General Settings: General Settings
|
||||||
Fallback to Non-Preferred Backend on Failure: Fallback to Non-Preferred Backend on Failure
|
Fallback to Non-Preferred Backend on Failure: Fallback to Non-Preferred Backend on Failure
|
||||||
Enable Search Suggestions: Enable Search Suggestions
|
Enable Search Suggestions: Enable Search Suggestions
|
||||||
Perferred API Backend: Perferred API Backend
|
Default Landing Page: Default Landing Page
|
||||||
Local API: Local API
|
Perferred API Backend:
|
||||||
Invidious API: Invidious API
|
Perferred API Backend: Perferred API Backend
|
||||||
Video View Type: Video View Type
|
Local API: Local API
|
||||||
Grid: Grid
|
Invidious API: Invidious API
|
||||||
List: List
|
Video View Type:
|
||||||
Thumbnail Preference: Thumbnail Preference
|
Video View Type: Video View Type
|
||||||
Default: Default
|
Grid: Grid
|
||||||
Beginning: Beginning
|
List: List
|
||||||
Middle: Middle
|
Thumbnail Preference:
|
||||||
End: End
|
Thumbnail Preference: Thumbnail Preference
|
||||||
'Invidious Instance (Default is https://invidio.us)': 'Invidious Instance (Default is https://invidio.us)'
|
Default: Default
|
||||||
|
Beginning: Beginning
|
||||||
|
Middle: Middle
|
||||||
|
End: End
|
||||||
|
'Invidious Instance (Default is https://invidio.us)': Invidious Instance (Default is https://invidio.us)
|
||||||
|
Region for Trending: Region for Trending
|
||||||
|
#! List countries
|
||||||
|
Theme Settings:
|
||||||
Theme Settings: Theme Settings
|
Theme Settings: Theme Settings
|
||||||
Match Top Bar with Main Color: Match Top Bar with Main Color
|
Match Top Bar with Main Color: Match Top Bar with Main Color
|
||||||
Base Theme: Base Theme
|
Base Theme:
|
||||||
Black: Black
|
Base Theme: Base Theme
|
||||||
Dark: Dark
|
Black: Black
|
||||||
Light: Light
|
Dark: Dark
|
||||||
Main Color Theme: Main Color Theme
|
Light: Light
|
||||||
Red: Red
|
Main Color Theme:
|
||||||
Pink: Pink
|
Main Color Theme: Main Color Theme
|
||||||
Purple: Purple
|
Red: Red
|
||||||
Dark Purple: Dark Purple
|
Pink: Pink
|
||||||
Indigo: Indigo
|
Purple: Purple
|
||||||
Blue: Blue
|
Dark Purple: Dark Purple
|
||||||
Light Blue: Light Blue
|
Indigo: Indigo
|
||||||
Cyan: Cyan
|
Blue: Blue
|
||||||
Teal: Teal
|
Light Blue: Light Blue
|
||||||
Green: Green
|
Cyan: Cyan
|
||||||
Light Green: Light Green
|
Teal: Teal
|
||||||
Lime: Lime
|
Green: Green
|
||||||
Yellow: Yellow
|
Light Green: Light Green
|
||||||
Amber: Amber
|
Lime: Lime
|
||||||
Orange: Orange
|
Yellow: Yellow
|
||||||
Deep Orange: Deep Orange
|
Amber: Amber
|
||||||
Secondary Color Theme: Secondary Color Theme
|
Orange: Orange
|
||||||
|
Deep Orange: Deep Orange
|
||||||
|
Secondary Color Theme: Secondary Color Theme
|
||||||
#* Main Color Theme
|
#* Main Color Theme
|
||||||
|
Player Settings:
|
||||||
Player Settings: Player Settings
|
Player Settings: Player Settings
|
||||||
Force Local Backend for Legacy Formats: Force Local Backend for Legacy Formats
|
Force Local Backend for Legacy Formats: Force Local Backend for Legacy Formats
|
||||||
Autoplay Videos: Autoplay Videos
|
Remember History: Remember History
|
||||||
Proxy Videos Through Invidious: Proxy Videos Through Invidious
|
Play Next Video: Play Next Video
|
||||||
Autoplay Playlists: Autoplay Playlists
|
Turn on Subtitles by Default: Turn on Subtitles by Default
|
||||||
Enable Theatre Mode by Default: Enable Theatre Mode by Default
|
Autoplay Videos: Autoplay Videos
|
||||||
Default Volume: Default Volume
|
Proxy Videos Through Invidious: Proxy Videos Through Invidious
|
||||||
Default Playback Rate: Default Playback Rate
|
Autoplay Playlists: Autoplay Playlists
|
||||||
Default Video Format: Default Video Format
|
Enable Theatre Mode by Default: Enable Theatre Mode by Default
|
||||||
Dash Formats: Dash Formats
|
Default Volume: Default Volume
|
||||||
Legacy Formats: Legacy Formats
|
Default Playback Rate: Default Playback Rate
|
||||||
Audio Formats: Audio Formats
|
Default Video Format:
|
||||||
Default Quality: Default Quality
|
Default Video Format: Default Video Format
|
||||||
Auto: Auto
|
Dash Formats: Dash Formats
|
||||||
144p: 144p
|
Legacy Formats: Legacy Formats
|
||||||
240p: 240p
|
Audio Formats: Audio Formats
|
||||||
360p: 360p
|
Default Quality:
|
||||||
480p: 480p
|
Default Quality: Default Quality
|
||||||
720p: 720p
|
Auto: Auto
|
||||||
1080p: 1080p
|
144p: 144p
|
||||||
1440p: 1440p
|
240p: 240p
|
||||||
4k: 4k
|
360p: 360p
|
||||||
8k: 8k
|
480p: 480p
|
||||||
|
720p: 720p
|
||||||
|
1080p: 1080p
|
||||||
|
1440p: 1440p
|
||||||
|
4k: 4k
|
||||||
|
8k: 8k
|
||||||
|
Subscription Settings:
|
||||||
|
Subscription Settings: Subscription Settings
|
||||||
|
Hide Videos on Watch: Hide Videos on Watch
|
||||||
|
Subscriptions Export Format:
|
||||||
|
Subscriptions Export Format: Subscriptions Export Format
|
||||||
|
#& Freetube
|
||||||
|
Newpipe: Newpipe
|
||||||
|
OPML: OPML
|
||||||
|
Manage Subscriptions: Manage Subscriptions
|
||||||
|
Import Subscriptions: Import Subscriptions
|
||||||
|
Export Subscriptions: Export Subscriptions
|
||||||
|
How do I import my subscriptions?: How do I import my subscriptions?
|
||||||
|
Advanced Settings:
|
||||||
|
Advanced Settings: Advanced Settings
|
||||||
|
Enable Debug Mode (Prints data to the console): Enable Debug Mode (Prints data to the console)
|
||||||
|
'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )': 'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )'
|
||||||
|
'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': >
|
||||||
|
Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json
|
||||||
|
Use Tor / Proxy for API calls: Use Tor / Proxy for API calls
|
||||||
|
TEST PROXY: TEST PROXY
|
||||||
|
#& Invidious Instance (Default is https://invidio.us)
|
||||||
|
See Public Instances: See Public Instances
|
||||||
|
Clear History:
|
||||||
|
Clear History: Clear History
|
||||||
|
# On Click
|
||||||
|
Are you sure you want to delete your history?: Are you sure you want to delete your history?
|
||||||
|
#& Yes
|
||||||
|
#& No
|
||||||
|
Clear Subscriptions:
|
||||||
|
Clear Subscriptions: Clear Subscriptions
|
||||||
|
# On Click
|
||||||
|
Are you sure you want to remove all subscriptions?: Are you sure you want to remove all subscriptions?
|
||||||
|
#& Yes
|
||||||
|
#& No
|
||||||
|
|
||||||
About: About
|
About:
|
||||||
#On About Page
|
#On About page
|
||||||
#& About
|
About: About
|
||||||
'This software is FOSS and released under the GNU Public License v3+.': >
|
#& About
|
||||||
'This copylefted software is freely licensed GPLv3+.'
|
'This software is FOSS and released under the GNU Public License v3+.': >
|
||||||
|
This copylefted software is freely licensed GPLv3+.
|
||||||
|
|
||||||
'Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests are welcome.': >-
|
'Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests are welcome.': >-
|
||||||
'Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub
|
Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub
|
||||||
page. Pull requests welcome.'
|
page. Pull requests welcome.
|
||||||
|
|
||||||
Thank you very much to the People and Projects that make FreeTube possible!: >
|
Thank you very much to the People and Projects that make FreeTube possible!: >
|
||||||
Thank you very much to the People and Projects that make FreeTube possible!
|
Thank you very much to the People and Projects that make FreeTube possible!
|
||||||
|
|
||||||
'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.': >
|
'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.': >
|
||||||
'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.'
|
Want to chat? Join our Element / Matrix Server . Please check the rules before joining.
|
||||||
|
|
||||||
'Looking for help? Check out our Wiki page.': 'Looking for help? Check out our Wiki page.'
|
'Looking for help? Check out our Wiki page.': Looking for help? Check out our Wiki page.
|
||||||
|
|
||||||
Check out our Firefox extension!: Check out our Firefox extension!
|
Check out our Firefox extension!: Check out our Firefox extension!
|
||||||
|
|
||||||
'If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.': >
|
'If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.': >
|
||||||
'If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.'
|
If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.
|
||||||
|
|
||||||
#~ 'BTC: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS'
|
#~ 'BTC: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS'
|
||||||
|
|
||||||
|
Latest FreeTube News: Latest FreeTube News
|
||||||
|
|
||||||
#On Channel Page
|
#On Channel Page
|
||||||
Subscriber: Subscriber
|
Subscriber: Subscriber
|
||||||
@ -213,38 +274,44 @@ Subscribe: Subscribe
|
|||||||
Unsubscribe: Unsubscribe
|
Unsubscribe: Unsubscribe
|
||||||
Video: Video
|
Video: Video
|
||||||
#& Videos
|
#& Videos
|
||||||
#& Sort By
|
Videos:
|
||||||
Newest: Newest
|
#& Sort By
|
||||||
Oldest: Oldest
|
Sort By:
|
||||||
#& Most Popular
|
Newest: Newest
|
||||||
|
Oldest: Oldest
|
||||||
|
#& Most Popular
|
||||||
#& Playlists
|
#& Playlists
|
||||||
#& About
|
Playlist:
|
||||||
Channel Description: Channel Description
|
#& About
|
||||||
Featured Channels: Featured Channels
|
Channel Description: Channel Description
|
||||||
Search Channel: Search Channel
|
Featured Channels: Featured Channels
|
||||||
View Full Playlist: View Full Playlist
|
Search Channel: Search Channel
|
||||||
|
View Full Playlist: View Full Playlist
|
||||||
|
|
||||||
# On Channel Playlist Page
|
# On Channel Playlist Page
|
||||||
Share Playlist: Share Playlist
|
Share Playlist:
|
||||||
Copy YouTube Link: Copy YouTube Link
|
Share Playlist: Share Playlist
|
||||||
Open in YouTube: Open in YouTube
|
Copy YouTube Link: Copy YouTube Link
|
||||||
Copy Invidious Link: Copy Invidious Link
|
Open in YouTube: Open in YouTube
|
||||||
Open in Invidious: Open in Invidious
|
Copy Invidious Link: Copy Invidious Link
|
||||||
|
Open in Invidious: Open in Invidious
|
||||||
|
|
||||||
# On Video Watch Page
|
# On Video Watch Page
|
||||||
#* Published
|
#* Published
|
||||||
#& Views
|
#& Views
|
||||||
Change Format: Change Format
|
Change Format:
|
||||||
Use Dash Formats: Use Dash Formats
|
Change Format: Change Format
|
||||||
Use Legacy Formats: Use Legacy Formats
|
Use Dash Formats: Use Dash Formats
|
||||||
Use Audio Formats: Use Audio Formats
|
Use Legacy Formats: Use Legacy Formats
|
||||||
Share: Share
|
Use Audio Formats: Use Audio Formats
|
||||||
Copy Link: Copy Link
|
Share:
|
||||||
Open Link: Open Link
|
Share: Share
|
||||||
Copy Embed: Copy Embed
|
Copy Link: Copy Link
|
||||||
Open Embed: Open Embed
|
Open Link: Open Link
|
||||||
# On Click
|
Copy Embed: Copy Embed
|
||||||
URL has been copied to the clipboard: URL copied to clipboard
|
Open Embed: Open Embed
|
||||||
|
# On Click
|
||||||
|
URL has been copied to the clipboard: URL has been copied to clipboard
|
||||||
Mini Player: Mini Player
|
Mini Player: Mini Player
|
||||||
Click to View Comments: Click to View Comments
|
Click to View Comments: Click to View Comments
|
||||||
Show Comments: Show Comments
|
Show Comments: Show Comments
|
||||||
@ -264,54 +331,5 @@ Playing previous video: Playing previous video
|
|||||||
Playing next video in 5 seconds. Click to cancel: Playing next video in 5 seconds. Click to cancel
|
Playing next video in 5 seconds. Click to cancel: Playing next video in 5 seconds. Click to cancel
|
||||||
Canceled next video autoplay: Canceled next video autoplay
|
Canceled next video autoplay: Canceled next video autoplay
|
||||||
|
|
||||||
# Currently Not Added from Live
|
Yes: Yes
|
||||||
# On Settings Page
|
No: No
|
||||||
# General Settings
|
|
||||||
Default Landing Page: Default Landing Page
|
|
||||||
#& Subscriptions
|
|
||||||
#& Trending
|
|
||||||
#& Most Popular
|
|
||||||
#& Playlists
|
|
||||||
#& History
|
|
||||||
Region for Trending: Region for Trending
|
|
||||||
#! List countries
|
|
||||||
# Player Settings
|
|
||||||
Remember History: Remember History
|
|
||||||
Autoplay Videos: Autoplay Videos
|
|
||||||
Autoplay Playlists: Autoplay Playlists
|
|
||||||
Play Next Video: Play Next Video
|
|
||||||
Turn on Subtitles by Default: Turn on Subtitles by Default
|
|
||||||
Force Local backend for legacy formats: Force Local backend for legacy formats
|
|
||||||
Proxy Videos Through Invidious: Proxy Videos Through Invidious
|
|
||||||
# Subscription Settings
|
|
||||||
Hide Videos on Watch: Hide Videos on Watch
|
|
||||||
Subscriptions Export Format: Subscriptions Export Format
|
|
||||||
#& Freetube
|
|
||||||
Newpipe: Newpipe
|
|
||||||
OPML: OPML
|
|
||||||
Manage Subscriptions: Manage Subscriptions
|
|
||||||
Import Subscriptions: Import Subscriptions
|
|
||||||
Export Subscriptions: Export Subscriptions
|
|
||||||
How do I import my subscriptions?: How do I import my subscriptions?
|
|
||||||
# Advanced Settings
|
|
||||||
Enable Debug Mode (Prints data to the console): Enable Debug Mode (Prints data to the console)
|
|
||||||
'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )': 'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )'
|
|
||||||
'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': >
|
|
||||||
'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json'
|
|
||||||
Use Tor / Proxy for API calls: Use Tor / Proxy for API calls
|
|
||||||
TEST PROXY: TEST PROXY
|
|
||||||
#& Invidious Instance (Default is https://invidio.us)
|
|
||||||
See Public Instances: See Public Instances
|
|
||||||
Clear History: Clear History
|
|
||||||
# On Click
|
|
||||||
Are you sure you want to delete your history?: Are you sure you want to delete your history?
|
|
||||||
'Yes': 'Yes'
|
|
||||||
'No': 'No'
|
|
||||||
Clear Subscriptions: Clear Subscriptions
|
|
||||||
# On Click
|
|
||||||
Are you sure you want to remove all subscriptions?: Are you sure you want to remove all subscriptions?
|
|
||||||
#& Yes
|
|
||||||
#& No
|
|
||||||
Save Settings: Save Settings
|
|
||||||
# On About Page
|
|
||||||
Latest FreeTube News: Latest FreeTube News
|
|
||||||
|
Loading…
Reference in New Issue
Block a user