mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-26 02:03:49 +02:00
167 lines
4.1 KiB
JavaScript
167 lines
4.1 KiB
JavaScript
import { baseClass, $app, API, $t, $utils } from './baseClass.js';
|
|
import { userRequest } from './request';
|
|
|
|
export default class extends baseClass {
|
|
constructor(_app, _API, _t) {
|
|
super(_app, _API, _t);
|
|
}
|
|
|
|
init() {
|
|
API.$on('CONFIG', function (args) {
|
|
var languages =
|
|
args.ref?.constants?.LANGUAGE?.SPOKEN_LANGUAGE_OPTIONS;
|
|
if (!languages) {
|
|
return;
|
|
}
|
|
$app.subsetOfLanguages = languages;
|
|
var data = [];
|
|
for (var key in languages) {
|
|
var value = languages[key];
|
|
data.push({
|
|
key,
|
|
value
|
|
});
|
|
}
|
|
$app.languageDialog.languages = data;
|
|
});
|
|
|
|
API.$on('LOGOUT', function () {
|
|
$app.languageDialog.visible = false;
|
|
});
|
|
}
|
|
|
|
_data = {
|
|
// vrchat to famfamfam language mappings
|
|
languageMappings: {
|
|
eng: 'us',
|
|
kor: 'kr',
|
|
rus: 'ru',
|
|
spa: 'es',
|
|
por: 'pt',
|
|
zho: 'cn',
|
|
deu: 'de',
|
|
jpn: 'jp',
|
|
fra: 'fr',
|
|
swe: 'se',
|
|
nld: 'nl',
|
|
pol: 'pl',
|
|
dan: 'dk',
|
|
nor: 'no',
|
|
ita: 'it',
|
|
tha: 'th',
|
|
fin: 'fi',
|
|
hun: 'hu',
|
|
ces: 'cz',
|
|
tur: 'tr',
|
|
ara: 'ae',
|
|
ron: 'ro',
|
|
vie: 'vn',
|
|
ukr: 'ua',
|
|
ase: 'us',
|
|
bfi: 'gb',
|
|
dse: 'nl',
|
|
fsl: 'fr',
|
|
jsl: 'jp',
|
|
kvk: 'kr',
|
|
|
|
mlt: 'mt',
|
|
ind: 'id',
|
|
hrv: 'hr',
|
|
heb: 'he',
|
|
afr: 'af',
|
|
ben: 'be',
|
|
bul: 'bg',
|
|
cmn: 'cn',
|
|
cym: 'cy',
|
|
ell: 'el',
|
|
est: 'et',
|
|
fil: 'ph',
|
|
gla: 'gd',
|
|
gle: 'ga',
|
|
hin: 'hi',
|
|
hmn: 'cn',
|
|
hye: 'hy',
|
|
isl: 'is',
|
|
lav: 'lv',
|
|
lit: 'lt',
|
|
ltz: 'lb',
|
|
mar: 'hi',
|
|
mkd: 'mk',
|
|
msa: 'my',
|
|
sco: 'gd',
|
|
slk: 'sk',
|
|
slv: 'sl',
|
|
tel: 'hi',
|
|
mri: 'nz',
|
|
wuu: 'cn',
|
|
yue: 'cn',
|
|
tws: 'cn',
|
|
asf: 'au',
|
|
nzs: 'nz',
|
|
gsg: 'de',
|
|
epo: 'eo',
|
|
tok: 'tok'
|
|
},
|
|
|
|
subsetOfLanguages: [],
|
|
|
|
languageDialog: {
|
|
visible: false,
|
|
loading: false,
|
|
languageChoice: false,
|
|
languages: []
|
|
}
|
|
};
|
|
|
|
_methods = {
|
|
languageClass(language) {
|
|
var style = {};
|
|
var mapping = this.languageMappings[language];
|
|
if (typeof mapping !== 'undefined') {
|
|
style[mapping] = true;
|
|
} else {
|
|
style.unknown = true;
|
|
}
|
|
return style;
|
|
},
|
|
|
|
addUserLanguage(language) {
|
|
if (language !== String(language)) {
|
|
return;
|
|
}
|
|
const D = this.languageDialog;
|
|
D.loading = true;
|
|
userRequest
|
|
.addUserTags({
|
|
tags: [`language_${language}`]
|
|
})
|
|
.finally(function () {
|
|
D.loading = false;
|
|
});
|
|
},
|
|
|
|
removeUserLanguage(language) {
|
|
if (language !== String(language)) {
|
|
return;
|
|
}
|
|
const D = this.languageDialog;
|
|
D.loading = true;
|
|
userRequest
|
|
.removeUserTags({
|
|
tags: [`language_${language}`]
|
|
})
|
|
.finally(function () {
|
|
D.loading = false;
|
|
});
|
|
},
|
|
|
|
showLanguageDialog() {
|
|
this.$nextTick(() =>
|
|
$app.adjustDialogZ(this.$refs.languageDialog.$el)
|
|
);
|
|
var D = this.languageDialog;
|
|
D.visible = true;
|
|
}
|
|
};
|
|
}
|