better Mkjs locale handling

This commit is contained in:
vapormusic 2022-02-10 20:48:03 +07:00
parent 81239fa900
commit 58652594bc

View file

@ -314,12 +314,12 @@ const app = new Vue({
return text return text
// stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100}) // stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100})
}, },
setLz(lang) { async setLz(lang) {
if (lang == "") { if (lang == "") {
lang = this.cfg.general.language lang = this.cfg.general.language
} }
this.lz = ipcRenderer.sendSync("get-i18n", lang) this.lz = ipcRenderer.sendSync("get-i18n", lang)
this.mklang = this.MKJSLang() this.mklang = await this.MKJSLang()
}, },
getLz(message) { getLz(message) {
if (this.lz[message]) { if (this.lz[message]) {
@ -576,7 +576,7 @@ const app = new Vue({
this.mk._services.timing.mode = 0 this.mk._services.timing.mode = 0
this.platform = ipcRenderer.sendSync('cider-platform'); this.platform = ipcRenderer.sendSync('cider-platform');
this.mklang = this.MKJSLang() this.mklang = await this.MKJSLang()
try { try {
// Set profile name // Set profile name
@ -3614,8 +3614,26 @@ const app = new Vue({
if (!this.isDev) // disable in dev mode to keep my sanity if (!this.isDev) // disable in dev mode to keep my sanity
MusicKitInterop.playPause(); MusicKitInterop.playPause();
}, },
MKJSLang(){ async MKJSLang(){
let u = this.cfg.general.language; let u = this.cfg.general.language;
// use MusicKit.getInstance or crash
try {
item = await MusicKit.getInstance().api.v3.music(`v1/storefronts/${app.mk.storefrontId}`)
let langcodes = item.data.data[0].attributes.supportedLanguageTags;
if (langcodes) langcodes = langcodes.map(function (u) { return u.toLowerCase() })
console.log(langcodes)
let sellang = ""
if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) {
sellang = ((u.toLowerCase()).replace('_', "-"))
} else if (u && u.includes('_') && langcodes.includes(((u.toLowerCase()).replace('_', "-")).split("-")[0])) {
sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0]
}
if (sellang == "") sellang = (item.data.data[0].attributes.defaultLanguageTag).toLowerCase()
console.log(sellang)
return await sellang
}
catch (err) {
console.log('locale err', err)
let langcodes = ['af', 'sq', 'ar', 'eu', 'bg', 'be', 'ca', 'zh', 'zh-tw', 'zh-cn', 'zh-hk', 'zh-sg', 'hr', 'cs', 'da', 'nl', 'nl-be', 'en', 'en-us', 'en-eg', 'en-au', 'en-gb', 'en-ca', 'en-nz', 'en-ie', 'en-za', 'en-jm', 'en-bz', 'en-tt', 'en-001', 'et', 'fo', 'fa', 'fi', 'fr', 'fr-ca', 'gd', 'de', 'de-ch', 'el', 'he', 'hi', 'hu', 'is', 'id', 'it', 'ja', 'ko', 'lv', 'lt', 'mk', 'mt', 'no', 'nb', 'nn', 'pl', 'pt-br', 'pt', 'rm', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'es-mx', 'es-419', 'sv', 'th', 'ts', 'tn', 'tr', 'uk', 'ur', 've', 'vi', 'xh', 'yi', 'zu', 'ms', 'iw', 'lo', 'tl', 'kk', 'ta', 'te', 'bn', 'ga', 'ht', 'la', 'pa', 'sa']; let langcodes = ['af', 'sq', 'ar', 'eu', 'bg', 'be', 'ca', 'zh', 'zh-tw', 'zh-cn', 'zh-hk', 'zh-sg', 'hr', 'cs', 'da', 'nl', 'nl-be', 'en', 'en-us', 'en-eg', 'en-au', 'en-gb', 'en-ca', 'en-nz', 'en-ie', 'en-za', 'en-jm', 'en-bz', 'en-tt', 'en-001', 'et', 'fo', 'fa', 'fi', 'fr', 'fr-ca', 'gd', 'de', 'de-ch', 'el', 'he', 'hi', 'hu', 'is', 'id', 'it', 'ja', 'ko', 'lv', 'lt', 'mk', 'mt', 'no', 'nb', 'nn', 'pl', 'pt-br', 'pt', 'rm', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'es-mx', 'es-419', 'sv', 'th', 'ts', 'tn', 'tr', 'uk', 'ur', 've', 'vi', 'xh', 'yi', 'zu', 'ms', 'iw', 'lo', 'tl', 'kk', 'ta', 'te', 'bn', 'ga', 'ht', 'la', 'pa', 'sa'];
let sellang = "en" let sellang = "en"
if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) { if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) {
@ -3624,7 +3642,8 @@ const app = new Vue({
sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0] sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0]
} }
if (sellang.startsWith("en") && this.mk.storefrontId != "en-us") sellang = "en-gb" if (sellang.startsWith("en") && this.mk.storefrontId != "en-us") sellang = "en-gb"
return sellang return await sellang
}
} }
} }
}) })