languages now automatically populate in settings
This commit is contained in:
parent
20ccda2ea5
commit
6e34a72a09
4 changed files with 50 additions and 14 deletions
|
@ -1,8 +1,8 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "English", // name of language in native language
|
||||
"i18n.languageNameEnglish": "English", // name of language in English
|
||||
"i18n.languageName": "English US", // name of language in native language
|
||||
"i18n.languageNameEnglish": "English US", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
|
@ -97,6 +97,7 @@
|
|||
"term.clearAll": "Clear All",
|
||||
"term.recentStations": "Recent Stations",
|
||||
"term.language": "Language",
|
||||
"term.funLanguages": "Fun",
|
||||
"term.noLyrics": "Loading... / Lyrics not found./ Instrumental.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "All Rights Reserved.",
|
||||
|
@ -173,6 +174,13 @@
|
|||
"action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
|
||||
"action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "General",
|
||||
"settings.option.general.language": "Language",
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Languages",
|
||||
"settings.option.general.language.fun": "Fun Languages",
|
||||
"settings.option.general.language.unsorted": "Unsorted",
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Adjust the audio settings for Cider.",
|
||||
|
|
|
@ -288,8 +288,6 @@ export class Win {
|
|||
event.returnValue = process.platform;
|
||||
});
|
||||
|
||||
console.warn(path.join(__dirname, "../../src/i18n/en_US.jsonc"))
|
||||
|
||||
electron.ipcMain.on("get-i18n", (event, key) => {
|
||||
let i18nBase = fs.readFileSync(path.join(__dirname, "../../src/i18n/en_US.jsonc"), "utf8");
|
||||
i18nBase = jsonc.parse(i18nBase)
|
||||
|
@ -306,6 +304,24 @@ export class Win {
|
|||
|
||||
});
|
||||
|
||||
electron.ipcMain.on("get-i18n-listing", event => {
|
||||
let i18nFiles = fs.readdirSync(path.join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".jsonc"));
|
||||
// read all the files and parse them
|
||||
let i18nListing = []
|
||||
for (let i = 0; i < i18nFiles.length; i++) {
|
||||
let i18n = fs.readFileSync(path.join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8");
|
||||
i18n = jsonc.parse(i18n)
|
||||
i18nListing.push({
|
||||
"code": i18nFiles[i].replace(".jsonc", ""),
|
||||
"nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".jsonc", ""),
|
||||
"nameEnglish": i18n["i18n.languageNameEnglish"] ?? i18nFiles[i].replace(".jsonc", ""),
|
||||
"category": i18n["i18n.category"] ?? "",
|
||||
"authors": i18n["i18n.authors"] ?? ""
|
||||
})
|
||||
}
|
||||
event.returnValue = i18nListing;
|
||||
})
|
||||
|
||||
electron.ipcMain.on("get-gpu-mode", (event) => {
|
||||
event.returnValue = process.platform;
|
||||
});
|
||||
|
|
|
@ -135,6 +135,7 @@ const app = new Vue({
|
|||
mk: {},
|
||||
quickPlayQuery: "",
|
||||
lz: ipcRenderer.sendSync("get-i18n", "en_US"),
|
||||
lzListing: ipcRenderer.sendSync("get-i18n-listing"),
|
||||
search: {
|
||||
term: "",
|
||||
hints: [],
|
||||
|
|
|
@ -534,16 +534,9 @@
|
|||
</div>
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<select class="md-select" @change="$root.setLz('')" v-model="app.cfg.general.language">
|
||||
<option value="en_US">en_US</option>
|
||||
<option value="el_GR">el_GR</option>
|
||||
<option value="ja_JP">ja_JP</option>
|
||||
<option value="pt_BR">pt_BR</option>
|
||||
<option value="tr_TR">tr_TR</option>
|
||||
<option value="zh_CN">zh_CN</option>
|
||||
<option value="zh_TW">zh_TW</option>
|
||||
<option value="zh_HK">zh_HK</option>
|
||||
<option value="en_HODOR">HODOR?</option>
|
||||
<option value="en_SGA">Galactic</option>
|
||||
<optgroup :label="index" v-for="(categories, index) in getLanguages()">
|
||||
<option v-for="lang in categories" :value="lang.code">{{lang.nameNative}} ({{ lang.nameEnglish }})</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -649,6 +642,24 @@
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
getLanguages: function () {
|
||||
let langs = this.$root.lzListing
|
||||
let categories = {
|
||||
"main": [],
|
||||
"fun": [],
|
||||
"unsorted": []
|
||||
}
|
||||
// sort by category if category is undefined or empty put it in "unsorted"
|
||||
for (let i = 0; i < langs.length; i++) {
|
||||
if (langs[i].category === undefined || langs[i].category === "") {
|
||||
categories.unsorted.push(langs[i])
|
||||
} else {
|
||||
categories[langs[i].category].push(langs[i])
|
||||
}
|
||||
}
|
||||
// return
|
||||
return categories
|
||||
},
|
||||
addExperiment(flag) {
|
||||
app.cfg.advanced.experiments.push(flag);
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue