mirror of https://github.com/VueTubeApp/VueTube
Merge branch 'main' of https://github.com/VueTubeApp/VueTube into main
This commit is contained in:
commit
c48086cf86
|
@ -6,12 +6,14 @@
|
|||
*/
|
||||
|
||||
export default {
|
||||
//--- Bettertube Stuff ---//
|
||||
//--- VueTube Stuff ---//
|
||||
env: {
|
||||
appVersion: "dev-local",
|
||||
},
|
||||
|
||||
target: "static",
|
||||
ssr: false,
|
||||
|
||||
plugins: [
|
||||
{ src: "~/plugins/youtube", mode: "client" },
|
||||
{ src: "~/plugins/vuetube", mode: "client" },
|
||||
|
@ -23,7 +25,7 @@ export default {
|
|||
dir: "../dist",
|
||||
},
|
||||
|
||||
//--- Bettertube Debugging ---//
|
||||
//--- VueTube Debugging ---//
|
||||
server: {
|
||||
port: 80, // default: 3000 (Note: Running on ports below 1024 requires root privileges!)
|
||||
host: "0.0.0.0", // default: localhost,
|
||||
|
@ -53,8 +55,6 @@ export default {
|
|||
buildModules: ["@nuxtjs/vuetify"],
|
||||
modules: [],
|
||||
|
||||
ssr: false,
|
||||
|
||||
vuetify: {
|
||||
customVariables: ["~/assets/variables.scss"],
|
||||
treeShake: true,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "bettertube",
|
||||
"name": "vuetube",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
|
|
@ -25,12 +25,12 @@ export default {
|
|||
|
||||
this.$store.commit("tweaks/initTweaks");
|
||||
|
||||
await this.theming;
|
||||
await this.theming();
|
||||
await this.$youtube.getAPI();
|
||||
await this.$vuetube.launchBackHandling();
|
||||
this.progressMsg = this.$lang("index").launching;
|
||||
|
||||
this.$router.replace(`/${localStorage.getItem("startPage") || "home"}`); // Prevent user from navigating back to the splash screen
|
||||
this.$router.replace('/'+ (localStorage.getItem("startPage") || "home") ); // Prevent user from navigating back to the splash screen
|
||||
},
|
||||
methods: {
|
||||
theming() { return new Promise((resolve) =>
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
"
|
||||
:style="{ borderRadius: `${roundTweak / 2}rem` }"
|
||||
>
|
||||
<v-card-title>{{ languagePack.mods.about.appinformation }}</v-card-title>
|
||||
<v-card-title>{{ lang.appinformation }}</v-card-title>
|
||||
<v-card-text>
|
||||
<h3>{{ languagePack.mods.about.appversion }}</h3>
|
||||
<h3>{{ lang.appversion }}</h3>
|
||||
{{ version.substring(0, 7) || "Unknown" }}
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
@ -40,20 +40,20 @@
|
|||
:style="{ borderRadius: `${roundTweak / 2}rem` }"
|
||||
>
|
||||
<v-card-title>{{
|
||||
languagePack.mods.about.deviceinformation
|
||||
lang.deviceinformation
|
||||
}}</v-card-title>
|
||||
<v-card-text>
|
||||
<h3>{{ languagePack.mods.about.platform }}</h3>
|
||||
<h3>{{ lang.platform }}</h3>
|
||||
{{ deviceInfo.platform || "Unknown" }}<br />
|
||||
<h3>{{ languagePack.mods.about.os }}</h3>
|
||||
<h3>{{ lang.os }}</h3>
|
||||
{{ deviceInfo.operatingSystem || "Unknown" }} ({{
|
||||
deviceInfo.osVersion || "Unknown"
|
||||
}})<br />
|
||||
<h3>{{ languagePack.mods.about.model }}</h3>
|
||||
<h3>{{ lang.model }}</h3>
|
||||
{{ deviceInfo.model || "Unknown" }}<br />
|
||||
<h3>{{ languagePack.mods.about.manufacturer }}</h3>
|
||||
<h3>{{ lang.manufacturer }}</h3>
|
||||
{{ deviceInfo.manufacturer || "Unknown" }}<br />
|
||||
<h3>{{ languagePack.mods.about.emulator }}</h3>
|
||||
<h3>{{ lang.emulator }}</h3>
|
||||
{{ deviceInfo.isVirtual ? "yes" : "no" }}
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
@ -71,7 +71,7 @@
|
|||
@click="openExternal('https://github.com/Frontesque/VueTube')"
|
||||
>
|
||||
<v-icon x-large class="actionIcon">mdi-github</v-icon>
|
||||
{{ languagePack.mods.about.github }}
|
||||
{{ lang.github }}
|
||||
</v-btn>
|
||||
<v-btn
|
||||
depressed
|
||||
|
@ -83,7 +83,7 @@
|
|||
@click="openExternal('https://discord.gg/7P8KJrdd5W')"
|
||||
>
|
||||
<v-icon x-large class="actionIcon">mdi-discord</v-icon>
|
||||
{{ languagePack.mods.about.discord }}
|
||||
{{ lang.discord }}
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -98,7 +98,7 @@ export default {
|
|||
return {
|
||||
version: process.env.appVersion,
|
||||
deviceInfo: "",
|
||||
languagePack: { mods: { about: {} } },
|
||||
lang: {},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -111,7 +111,7 @@ export default {
|
|||
const info = await Device.getInfo();
|
||||
this.deviceInfo = info;
|
||||
|
||||
this.languagePack = this.$lang();
|
||||
this.lang = this.$lang().mods.about;
|
||||
},
|
||||
methods: {
|
||||
async openExternal(url) {
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
<template>
|
||||
<div class="mainContainer pt-1">
|
||||
<v-card flat class="pb-5 background" :class="$vuetify.theme.dark ? 'lighten-1' : 'darken-1'" :style="{borderRadius: `${roundTweak / 2}rem`}">
|
||||
<v-card-title>{{ lang.language }}</v-card-title>
|
||||
<v-card-text>
|
||||
<v-select v-model="selectedLang" background-color="background" :items="langs" label="App Language" solo></v-select>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
computed: {
|
||||
roundTweak() {
|
||||
return this.$store.state.tweaks.roundTweak;
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
langs: [],
|
||||
lang: { mods: { general: { language: "" } } },
|
||||
selectedLang: null
|
||||
};
|
||||
},
|
||||
|
||||
watch: {
|
||||
//--- Update Stored Language Value ---//
|
||||
selectedLang: function (newVal) {
|
||||
const langs = this.$lang(null, true);
|
||||
let lang = new String();
|
||||
for (const i in langs) {
|
||||
if (langs[i].name == newVal) {
|
||||
lang = i;
|
||||
console.log(lang)
|
||||
}
|
||||
}
|
||||
localStorage.setItem("language", lang);
|
||||
},
|
||||
//--- End Update Stored Language Value ---//
|
||||
},
|
||||
|
||||
mounted() {
|
||||
const lang = this.$lang(); this.lang = lang.mods.general;
|
||||
const langs = this.$lang(null, true);
|
||||
for (const i in langs) {
|
||||
this.langs.push(langs[i].name);
|
||||
}
|
||||
|
||||
this.selectedLang = this.$lang().name;
|
||||
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.v-card {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 0 1em 1em 1em;
|
||||
}
|
||||
|
||||
</style>
|
|
@ -25,7 +25,7 @@
|
|||
:class="$vuetify.theme.dark ? 'lighten-1' : 'darken-1'"
|
||||
:style="{borderRadius: `${roundTweak / 2}rem`}"
|
||||
>
|
||||
<v-expansion-panel-header>More</v-expansion-panel-header>
|
||||
<v-expansion-panel-header>{{ lang.more }}</v-expansion-panel-header>
|
||||
<v-expansion-panel-content class="logContent" v-text="item.data" />
|
||||
</v-expansion-panel>
|
||||
</v-expansion-panels>
|
||||
|
@ -63,11 +63,14 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
logs: new Array(),
|
||||
lang: {}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
const logs = this.$youtube.logs;
|
||||
this.logs = logs;
|
||||
|
||||
this.lang = this.$lang("mods").logs
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
class="pa-4 ma-2 rounded-lg"
|
||||
:value="$vuetify.theme.dark ? adaptiveDark : adaptiveLight"
|
||||
/>
|
||||
Adaptive
|
||||
{{ lang.adaptive }}
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<!-- Custom Background -->
|
||||
|
@ -142,13 +142,13 @@
|
|||
"
|
||||
>
|
||||
<div class="my-auto">
|
||||
<div>Dark Mode</div>
|
||||
<div>{{ lang.darkmode }}</div>
|
||||
<div
|
||||
class="background--text"
|
||||
:class="$vuetify.theme.dark ? 'text--lighten-4' : 'text--darken-4'"
|
||||
style="font-size: 0.75rem; margin-top: -0.25rem !important"
|
||||
>
|
||||
Bravo Six, Going Dark.
|
||||
{{ lang.darkmodetagline }}
|
||||
</div>
|
||||
</div>
|
||||
<v-spacer />
|
||||
|
@ -186,8 +186,15 @@ export default {
|
|||
adaptiveDark: "",
|
||||
pickerState: false,
|
||||
pickerMode: "bg",
|
||||
lang: {}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.lang = this.$lang("mods").theme;
|
||||
this.backgroundsLight[0].name = this.lang.normal;
|
||||
this.backgroundsDark[0].name = this.lang.dark;
|
||||
this.backgroundsDark[1].name = this.lang.black;
|
||||
},
|
||||
watch: {
|
||||
// also triggers background and primary watcher, unless primary colors match
|
||||
"$vuetify.theme.dark"(value) {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
class="my-auto background--text"
|
||||
:class="$vuetify.theme.dark ? 'text--lighten-3' : 'text--darken-3'"
|
||||
>
|
||||
Fullscreen (Soon™)
|
||||
{{ lang.fullscreen }}
|
||||
</h3>
|
||||
<v-spacer />
|
||||
<v-switch
|
||||
|
@ -54,7 +54,7 @@
|
|||
class="my-auto background--text"
|
||||
:class="$vuetify.theme.dark ? 'text--lighten-3' : 'text--darken-3'"
|
||||
>
|
||||
Navbar Blur (Soon™)
|
||||
{{ lang.navbarblur }}
|
||||
</h3>
|
||||
<v-spacer />
|
||||
<v-switch
|
||||
|
@ -68,7 +68,7 @@
|
|||
|
||||
<v-divider v-if="!roundTweak" />
|
||||
|
||||
<h3 class="ml-8 mt-8">Rounded Corners</h3>
|
||||
<h3 class="ml-8 mt-8">{{ lang.roundedcorners }}</h3>
|
||||
|
||||
<v-card
|
||||
flat
|
||||
|
@ -100,7 +100,7 @@
|
|||
class="my-auto background--text"
|
||||
:class="$vuetify.theme.dark ? 'text--lighten-4' : 'text--darken-4'"
|
||||
>
|
||||
Round Thumbnails
|
||||
{{ lang.roundthumbnails }}
|
||||
</div>
|
||||
<v-spacer />
|
||||
<v-switch
|
||||
|
@ -128,7 +128,7 @@
|
|||
class="my-auto background--text"
|
||||
:class="$vuetify.theme.dark ? 'text--lighten-4' : 'text--darken-4'"
|
||||
>
|
||||
Round Watch Page Components
|
||||
{{ lang.roundwatchpagecomponents }}
|
||||
</div>
|
||||
<v-spacer />
|
||||
<v-switch
|
||||
|
@ -143,7 +143,7 @@
|
|||
v-model="roundTweak"
|
||||
class="pr-4 pl-4 pt-4 pb-1 background"
|
||||
:max="4"
|
||||
label="Radius"
|
||||
:label="lang.radius"
|
||||
step=".25"
|
||||
thumb-size="64"
|
||||
:class="
|
||||
|
@ -167,6 +167,14 @@
|
|||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
lang: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.lang = this.$lang("mods").tweaks
|
||||
},
|
||||
computed: {
|
||||
roundTweak: {
|
||||
get() {
|
||||
|
|
|
@ -26,14 +26,14 @@
|
|||
</div>
|
||||
|
||||
<v-card-actions>
|
||||
<v-chip v-if="index == 0" class="tags" color="orange" style="border-radius: 0.5rem; border: 2px var(--v-orange-base)">Latest</v-chip>
|
||||
<v-chip v-if="item.sha == installedVersion" class="tags" color="green" style="border-radius: 0.5rem; border: 2px var(--v-green-base)">Installed</v-chip>
|
||||
<v-chip v-if="index == 0" class="tags" color="orange" style="border-radius: 0.5rem; border: 2px var(--v-orange-base)">{{ lang.latest }}</v-chip>
|
||||
<v-chip v-if="item.sha == installedVersion" class="tags" color="green" style="border-radius: 0.5rem; border: 2px var(--v-green-base)">{{ lang.installed }}</v-chip>
|
||||
<v-spacer />
|
||||
<v-btn @click="openExternal(item)" class="background">
|
||||
<v-icon class="btn-icon">mdi-github</v-icon>View
|
||||
<v-icon class="btn-icon">mdi-github</v-icon>{{ lang.view }}
|
||||
</v-btn>
|
||||
<v-btn disabled @click="install(item)">
|
||||
<v-icon class="btn-icon">mdi-download</v-icon>Install
|
||||
<v-icon class="btn-icon">mdi-download</v-icon>{{ lang.install }}
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
|
@ -78,6 +78,7 @@ export default {
|
|||
return {
|
||||
commits: new Array(),
|
||||
installedVersion: process.env.appVersion,
|
||||
lang: {}
|
||||
};
|
||||
},
|
||||
async mounted() {
|
||||
|
@ -88,6 +89,8 @@ export default {
|
|||
} else {
|
||||
console.log(commits);
|
||||
}
|
||||
|
||||
this.lang = this.$lang("mods").updates;
|
||||
},
|
||||
methods: {
|
||||
async openExternal(item) {
|
||||
|
|
|
@ -78,8 +78,7 @@ export default {
|
|||
{
|
||||
name: "General",
|
||||
icon: "mdi-cog",
|
||||
to: "",
|
||||
disabled: true,
|
||||
to: "/mods/general"
|
||||
},
|
||||
{
|
||||
name: "Theme",
|
||||
|
@ -105,7 +104,8 @@ export default {
|
|||
{
|
||||
name: "Plugins",
|
||||
icon: "mdi-puzzle",
|
||||
to: "/mods/plugins"
|
||||
to: "/mods/plugins",
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
name: "Updates",
|
||||
|
|
|
@ -1,4 +1,17 @@
|
|||
function module(text) {
|
||||
const packs = {
|
||||
english: require('./languages/english'),
|
||||
spanish: require('./languages/spanish'),
|
||||
italian: require('./languages/italian'),
|
||||
polish: require('./languages/polish'),
|
||||
"chinese-traditional": require('./languages/chinese-traditional')
|
||||
}
|
||||
|
||||
function module(text, listPacks) {
|
||||
|
||||
//--- List All Packs ---//
|
||||
if (listPacks === true) return packs;
|
||||
|
||||
//--- Return Language Pack ---//
|
||||
const selectedLanguage = localStorage.getItem("language") || "english";
|
||||
const languagePack = require('./languages/'+selectedLanguage);
|
||||
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
module.exports = {
|
||||
name: "中文繁體",
|
||||
|
||||
global: {
|
||||
home: "主頁",
|
||||
subscriptions: "訂閲項目",
|
||||
library: "媒體庫"
|
||||
},
|
||||
|
||||
index: {
|
||||
connecting: "連接中",
|
||||
launching: "啟動中"
|
||||
},
|
||||
|
||||
settings: {
|
||||
general: "一般",
|
||||
theme: "主題",
|
||||
player: "播放器",
|
||||
uitweaker: "界面調較",
|
||||
startupoptions: "啟動選項",
|
||||
plugins: "插件",
|
||||
updates: "更新",
|
||||
logs: "日誌",
|
||||
about: "關於",
|
||||
devmode: "登錄檔編輯"
|
||||
},
|
||||
|
||||
mods: {
|
||||
general: {
|
||||
language: "語言"
|
||||
},
|
||||
theme: {
|
||||
normal: "Normal",
|
||||
adaptive: "Adaptive",
|
||||
custom: "Custom",
|
||||
dark: "Dark",
|
||||
black: "Black",
|
||||
darkmode: "Dark Mode",
|
||||
darkmodetagline: "Bravo Six, Going Dark."
|
||||
},
|
||||
tweaks: {
|
||||
fullscreen: "Fullscreen",
|
||||
navbarblur: "Navbar Blur",
|
||||
roundedcorners: "Rounded Corners",
|
||||
roundthumbnails: "Round Thumbnails",
|
||||
roundwatchpagecomponents: "Round Watch PAge Components",
|
||||
radius: "Radius"
|
||||
},
|
||||
startup: {
|
||||
defaultpage: "默認頁"
|
||||
},
|
||||
updates: {
|
||||
install: "Install",
|
||||
view: "View",
|
||||
latest: "Latest",
|
||||
installed: "Installed"
|
||||
},
|
||||
logs: {
|
||||
more: "More"
|
||||
},
|
||||
about: {
|
||||
appinformation: "程式資訊",
|
||||
appversion: "程式版本",
|
||||
deviceinformation: "裝置資訊",
|
||||
platform: "平台",
|
||||
os: "作業系統",
|
||||
model: "型號",
|
||||
manufacturer: "製造商",
|
||||
emulator: "模擬器",
|
||||
github: "GitHub",
|
||||
discord: "Discord"
|
||||
}
|
||||
},
|
||||
|
||||
events: {
|
||||
welcome: "歡迎來到 VueTube",
|
||||
tagline: "流媒體的未來",
|
||||
next: "下一個",
|
||||
updated: "VueTube 已更新!",
|
||||
awesome: "真棒!"
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -26,9 +26,38 @@ module.exports = {
|
|||
},
|
||||
|
||||
mods: {
|
||||
general: {
|
||||
language: "Language"
|
||||
},
|
||||
theme: {
|
||||
normal: "Normal",
|
||||
adaptive: "Adaptive",
|
||||
custom: "Custom",
|
||||
dark: "Dark",
|
||||
black: "Black",
|
||||
darkmode: "Dark Mode",
|
||||
darkmodetagline: "Bravo Six, Going Dark."
|
||||
},
|
||||
tweaks: {
|
||||
fullscreen: "Fullscreen",
|
||||
navbarblur: "Navbar Blur",
|
||||
roundedcorners: "Rounded Corners",
|
||||
roundthumbnails: "Round Thumbnails",
|
||||
roundwatchpagecomponents: "Round Watch Page Components",
|
||||
radius: "Radius"
|
||||
},
|
||||
startup: {
|
||||
defaultpage: "Default Page"
|
||||
},
|
||||
updates: {
|
||||
install: "Install",
|
||||
view: "View",
|
||||
latest: "Latest",
|
||||
installed: "Installed"
|
||||
},
|
||||
logs: {
|
||||
more: "More"
|
||||
},
|
||||
about: {
|
||||
appinformation: "App Information",
|
||||
appversion: "App Version",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module.exports = {
|
||||
name: "Italian",
|
||||
name: "Italiano",
|
||||
|
||||
global: {
|
||||
home: "Casa",
|
||||
|
@ -26,9 +26,39 @@ module.exports = {
|
|||
},
|
||||
|
||||
mods: {
|
||||
general: {
|
||||
language: "Lingua"
|
||||
},
|
||||
theme: {
|
||||
normal: "Normale",
|
||||
adaptive: "Adattabile",
|
||||
custom: "Abitudine",
|
||||
dark: "Buio",
|
||||
black: "Nero",
|
||||
darkmode: "Modalità scura",
|
||||
darkmodetagline: "Bravo Six, Going Dark."
|
||||
},
|
||||
tweaks: {
|
||||
fullscreen: "A Schermo Intero",
|
||||
navbarblur: "Navbar Blur", // Note From Front: As a native english speaker, i don't know this one
|
||||
roundedcorners: "Spigolo Tondeggiante",
|
||||
roundthumbnails: "Anteprima Tondeggiante",
|
||||
roundwatchpagecomponents: "Componenti Rotondi Della Pagina Di Controllo",
|
||||
radius: "Raggio"
|
||||
},
|
||||
startup: {
|
||||
defaultpage: "Pagina Predefinita"
|
||||
},
|
||||
updates: {
|
||||
install: "Ultimo",
|
||||
view: "Visionare",
|
||||
latest: "Più Recente",
|
||||
installed: "Installare"
|
||||
},
|
||||
logs: {
|
||||
more: "Più"
|
||||
},
|
||||
|
||||
about: {
|
||||
appinformation: "Informazioni Applicazione",
|
||||
appversion: "Versione Applicazione",
|
||||
|
@ -44,10 +74,10 @@ module.exports = {
|
|||
},
|
||||
|
||||
events: {
|
||||
welcome: "Welcome to VueTube",
|
||||
tagline: "The future of video streaming",
|
||||
welcome: "Benvenuto su VueTube",
|
||||
tagline: "Il Futuro Dello Streaming Video",
|
||||
next: "Prossimo",
|
||||
updated: "VueTube Was Updated!",
|
||||
updated: "VueTube e Stato Aggiornato",
|
||||
awesome: "Imponente!"
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module.exports = {
|
||||
name: "Polish",
|
||||
name: "Polski",
|
||||
|
||||
global: {
|
||||
home: "Główna",
|
||||
|
@ -26,13 +26,43 @@ module.exports = {
|
|||
},
|
||||
|
||||
mods: {
|
||||
general: {
|
||||
language: "Język"
|
||||
},
|
||||
theme: {
|
||||
normal: "Normalny",
|
||||
adaptive: "Adaptacyjny",
|
||||
custom: "Custom",
|
||||
dark: "Ciemny",
|
||||
black: "Czarny",
|
||||
darkmode: "Tryb Ciemny",
|
||||
darkmodetagline: "Brawo ty, przejdź na ciemną stronę mocy."
|
||||
},
|
||||
tweaks: {
|
||||
fullscreen: "Pełny Ekran",
|
||||
navbarblur: "Rozmycie Paska Nawigacyjnego",
|
||||
roundedcorners: "Zaokrąglone Krawędzie",
|
||||
roundthumbnails: "Zaokrąglone Miniaturki",
|
||||
roundwatchpagecomponents: "Round Watch PAge Components",
|
||||
radius: "Radius"
|
||||
},
|
||||
startup: {
|
||||
defaultpage: "Strona Domyślna",
|
||||
},
|
||||
updates: {
|
||||
install: "Install",
|
||||
view: "Zobacz",
|
||||
latest: "Najnowsza",
|
||||
installed: "Zainstalowana"
|
||||
},
|
||||
logs: {
|
||||
more: "Więcej"
|
||||
},
|
||||
|
||||
about: {
|
||||
appinformation: "Informacje O Aplikacji",
|
||||
appinformation: "Informacje o aplikacji",
|
||||
appversion: "Wersja Aplikacji",
|
||||
deviceinformation: "Informacje O Urządzeniu",
|
||||
deviceinformation: "Informacje o Urządzeniu",
|
||||
platform: "Platforma",
|
||||
os: "System Operacyjny",
|
||||
model: "Model",
|
||||
|
@ -45,8 +75,8 @@ module.exports = {
|
|||
|
||||
events: {
|
||||
welcome: "Witaj w VueTube",
|
||||
tagline: "Przyszłość Streamingu Wideo",
|
||||
next: "DALEJ",
|
||||
tagline: "Przyszłośći Streamingu Wideo",
|
||||
next: "Dalej",
|
||||
updated: "VueTube został zaktualizowany!",
|
||||
awesome: "Świetnie!",
|
||||
},
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
module.exports = {
|
||||
name: "Español",
|
||||
|
||||
global: {
|
||||
home: "Inicio",
|
||||
subscriptions: "Suscripciones",
|
||||
library: "Librería"
|
||||
},
|
||||
|
||||
index: {
|
||||
connecting: "Conectando",
|
||||
launching: "Iniciando"
|
||||
},
|
||||
|
||||
settings: {
|
||||
general: "General",
|
||||
theme: "Tema",
|
||||
player: "Reproductor",
|
||||
uitweaker: "Interfaz",
|
||||
startupoptions: "Opciones de inicio",
|
||||
plugins: "Complementos",
|
||||
updates: "Actualizaciones",
|
||||
logs: "Logs",
|
||||
about: "Acerca de",
|
||||
devmode: "Editor del registro"
|
||||
},
|
||||
|
||||
mods: {
|
||||
general: {
|
||||
language: "Idioma"
|
||||
},
|
||||
theme: {
|
||||
normal: "Normal",
|
||||
adaptive: "Adaptado",
|
||||
custom: "Personalizado",
|
||||
dark: "Oscuro",
|
||||
black: "Negro",
|
||||
darkmode: "Modo oscuro",
|
||||
darkmodetagline: "Bravo Six, haciéndote oscuro."
|
||||
},
|
||||
tweaks: {
|
||||
fullscreen: "Pantalla completa",
|
||||
navbarblur: "Desenfocar barra",
|
||||
roundedcorners: "Esquinas redondeadas",
|
||||
roundthumbnails: "Redondear miniaturas",
|
||||
roundwatchpagecomponents: "Redondear componentes del vídeo",
|
||||
radius: "Radio"
|
||||
},
|
||||
startup: {
|
||||
defaultpage: "Pagina predeterminada"
|
||||
},
|
||||
updates: {
|
||||
install: "Instalar",
|
||||
view: "Ver",
|
||||
latest: "Última",
|
||||
installed: "Instalada"
|
||||
},
|
||||
logs: {
|
||||
more: "Más"
|
||||
},
|
||||
|
||||
about: {
|
||||
appinformation: "Información de la app",
|
||||
appversion: "Versión de la app",
|
||||
deviceinformation: "Información del dispositivo",
|
||||
platform: "Plataforma",
|
||||
os: "Sistema operativo",
|
||||
model: "Modelo",
|
||||
manufacturer: "Fabricante",
|
||||
emulator: "Emulador",
|
||||
github: "GitHub",
|
||||
discord: "Discord"
|
||||
}
|
||||
},
|
||||
|
||||
events: {
|
||||
welcome: "¡Bienvenido a VueTube!",
|
||||
tagline: "El futuro del streaming de vídeo",
|
||||
next: "Siguiente",
|
||||
updated: "¡VueTube se ha actualizado!",
|
||||
awesome: "¡Increíble!"
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -22,7 +22,7 @@ const module = {
|
|||
//--- List Plugins ---//
|
||||
list: new Promise(async (resolve, reject) => {
|
||||
|
||||
await ensureStructure();
|
||||
await ensureStructure;
|
||||
|
||||
const plugins = await Filesystem.readdir({
|
||||
path: fs.plugins,
|
||||
|
@ -35,7 +35,7 @@ const module = {
|
|||
|
||||
async addPlugin(content) {
|
||||
|
||||
await ensureStructure();
|
||||
await ensureStructure;
|
||||
new Promise(async (resolve, reject) => {
|
||||
const fileName = require("./utils").getCpn(); // Im not sure what this is actually meant for but im using it as a random string generator
|
||||
console.log("Saving Plugin As"+ fileName)
|
||||
|
|
|
@ -2,9 +2,5 @@
|
|||
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<access origin="*" />
|
||||
|
||||
<feature name="CDVOrientation">
|
||||
<param name="android-package" value="cordova.plugins.screenorientation.CDVOrientation"/>
|
||||
</feature>
|
||||
|
||||
|
||||
</widget>
|
|
@ -1,98 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package cordova.plugins.screenorientation;
|
||||
|
||||
import org.apache.cordova.CallbackContext;
|
||||
import org.apache.cordova.CordovaPlugin;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.util.Log;
|
||||
|
||||
public class CDVOrientation extends CordovaPlugin {
|
||||
|
||||
private static final String TAG = "YoikScreenOrientation";
|
||||
|
||||
/**
|
||||
* Screen Orientation Constants
|
||||
*/
|
||||
|
||||
private static final String ANY = "any";
|
||||
private static final String PORTRAIT_PRIMARY = "portrait-primary";
|
||||
private static final String PORTRAIT_SECONDARY = "portrait-secondary";
|
||||
private static final String LANDSCAPE_PRIMARY = "landscape-primary";
|
||||
private static final String LANDSCAPE_SECONDARY = "landscape-secondary";
|
||||
private static final String PORTRAIT = "portrait";
|
||||
private static final String LANDSCAPE = "landscape";
|
||||
|
||||
@Override
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
|
||||
|
||||
Log.d(TAG, "execute action: " + action);
|
||||
|
||||
// Route the Action
|
||||
if (action.equals("screenOrientation")) {
|
||||
return routeScreenOrientation(args, callbackContext);
|
||||
}
|
||||
|
||||
// Action not found
|
||||
callbackContext.error("action not recognised");
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean routeScreenOrientation(JSONArray args, CallbackContext callbackContext) {
|
||||
|
||||
String action = args.optString(0);
|
||||
|
||||
|
||||
|
||||
String orientation = args.optString(1);
|
||||
|
||||
Log.d(TAG, "Requested ScreenOrientation: " + orientation);
|
||||
|
||||
Activity activity = cordova.getActivity();
|
||||
|
||||
if (orientation.equals(ANY)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
|
||||
} else if (orientation.equals(LANDSCAPE_PRIMARY)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||
} else if (orientation.equals(PORTRAIT_PRIMARY)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
||||
} else if (orientation.equals(LANDSCAPE)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
|
||||
} else if (orientation.equals(PORTRAIT)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
||||
} else if (orientation.equals(LANDSCAPE_SECONDARY)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
|
||||
} else if (orientation.equals(PORTRAIT_SECONDARY)) {
|
||||
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
|
||||
}
|
||||
|
||||
callbackContext.success();
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -2,9 +2,5 @@
|
|||
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<access origin="*" />
|
||||
|
||||
<feature name="CDVOrientation">
|
||||
<param name="ios-package" value="CDVOrientation"/>
|
||||
</feature>
|
||||
|
||||
|
||||
</widget>
|
|
@ -9,18 +9,17 @@ install! 'cocoapods', :disable_input_output_paths => true
|
|||
def capacitor_pods
|
||||
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
|
||||
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
|
||||
pod 'CapacitorCommunityHttp', :path => '../../node_modules/@capacitor-community/http'
|
||||
pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
|
||||
pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser'
|
||||
pod 'CapacitorDevice', :path => '../../node_modules/@capacitor/device'
|
||||
pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem'
|
||||
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
|
||||
pod 'CapacitorShare', :path => '../../node_modules/@capacitor/share'
|
||||
pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'
|
||||
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
|
||||
pod 'CapacitorToast', :path => '../../node_modules/@capacitor/toast'
|
||||
pod 'HugotomaziCapacitorNavigationBar', :path => '../../node_modules/@hugotomazi/capacitor-navigation-bar'
|
||||
pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
|
||||
pod 'CapacitorCommunityHttp', :path => '..\..\node_modules\@capacitor-community\http'
|
||||
pod 'CapacitorApp', :path => '..\..\node_modules\@capacitor\app'
|
||||
pod 'CapacitorBrowser', :path => '..\..\node_modules\@capacitor\browser'
|
||||
pod 'CapacitorDevice', :path => '..\..\node_modules\@capacitor\device'
|
||||
pod 'CapacitorFilesystem', :path => '..\..\node_modules\@capacitor\filesystem'
|
||||
pod 'CapacitorHaptics', :path => '..\..\node_modules\@capacitor\haptics'
|
||||
pod 'CapacitorShare', :path => '..\..\node_modules\@capacitor\share'
|
||||
pod 'CapacitorSplashScreen', :path => '..\..\node_modules\@capacitor\splash-screen'
|
||||
pod 'CapacitorStatusBar', :path => '..\..\node_modules\@capacitor\status-bar'
|
||||
pod 'CapacitorToast', :path => '..\..\node_modules\@capacitor\toast'
|
||||
pod 'HugotomaziCapacitorNavigationBar', :path => '..\..\node_modules\@hugotomazi\capacitor-navigation-bar'
|
||||
end
|
||||
|
||||
target 'App' do
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<img src="https://cdn.discordapp.com/attachments/751596360108605500/980418672331988992/VueTube_Dark.svg" alt="VueTube icon" width="500"/>
|
||||
</a>
|
||||
</br>
|
||||
<sub>Logo por <a href="https://github.com/afnzmn">@afnzmn</a></sub>
|
||||
<sub>Logo por <a href="https://github.com/afnzmn">@afnzmn</a>, traducción por <a href="https://github.com/gayolgate">@gayolgate</a></sub>
|
||||
</br>
|
||||
</br>
|
||||
<strong>Un cliente sencillo de streaming de vídeo FOSS diseñado para recrear TODAS las características de sus respectivas aplicaciones (y más) </strong>
|
||||
|
|
Loading…
Reference in New Issue