feat: Major Language Overhaul

Performance Optimisations, Fix Plugin Loader Bugs, Add More Translations, Fix Translation Related Bugs
This commit is contained in:
Kenny 2022-06-15 15:00:26 -04:00
parent 9d22c10dd8
commit 38d67fbf97
10 changed files with 174 additions and 27 deletions

View File

@ -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) {

View File

@ -1,9 +1,9 @@
<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.mods.general.language }}</v-card-title>
<v-card-title>{{ lang.language }}</v-card-title>
<v-card-text>
<v-select v-model="page" background-color="background" :items="pages" label="Default Page" solo></v-select>
<v-select v-model="selectedLang" background-color="background" :items="langs" label="App Language" solo></v-select>
</v-card-text>
</v-card>
</div>
@ -20,22 +20,36 @@
data() {
return {
page: "home",
langs: [],
lang: { mods: { startup: {} } }
lang: { mods: { general: { language: "" } } },
selectedLang: null
};
},
watch: {
page: function (newVal) {
localStorage.setItem("startPage", newVal);
//--- 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() {
this.langs = this.$lang(null, true);
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);
}
const lang = this.$lang(); this.lang = lang;
this.selectedLang = this.$lang().name;

View File

@ -78,8 +78,7 @@ export default {
{
name: "General",
icon: "mdi-cog",
to: "/mods/general",
disabled: true,
to: "/mods/general"
},
{
name: "Theme",

View File

@ -2,7 +2,8 @@ const packs = {
english: require('./languages/english'),
spanish: require('./languages/spanish'),
italian: require('./languages/italian'),
polish: require('./languages/polish')
polish: require('./languages/polish'),
"chinese-traditional": require('./languages/chinese-traditional')
}
function module(text, listPacks) {

View File

@ -29,9 +29,35 @@ module.exports = {
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: "程式版本",

View File

@ -29,9 +29,35 @@ module.exports = {
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",

View File

@ -29,9 +29,36 @@ module.exports = {
general: {
language: "Lingua"
},
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: "Pagina Predefinita"
},
updates: {
install: "Install",
view: "View",
latest: "Latest",
installed: "Installed"
},
logs: {
more: "More"
},
about: {
appinformation: "Informazioni Applicazione",
appversion: "Versione Applicazione",

View File

@ -1,5 +1,5 @@
module.exports = {
name: "Polish",
name: "Polski",
global: {
home: "Główna",
@ -29,9 +29,36 @@ module.exports = {
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: "Strona Domyślna",
},
updates: {
install: "Install",
view: "View",
latest: "Latest",
installed: "Installed"
},
logs: {
more: "More"
},
about: {
appinformation: "Informacje O Aplikacji",
appversion: "Wersja Aplikacji",

View File

@ -1,5 +1,5 @@
module.exports = {
name: "Spanish",
name: "Español",
global: {
home: "Inicio",
@ -29,9 +29,36 @@ module.exports = {
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: "Pagina predeterminada"
},
updates: {
install: "Install",
view: "View",
latest: "Latest",
installed: "Installed"
},
logs: {
more: "More"
},
about: {
appinformation: "Información de la app",
appversion: "Versión de la app",

View File

@ -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)