From e2481ef442cf25ddb02eb02252f17875f8c14181 Mon Sep 17 00:00:00 2001 From: Natsumi Date: Sun, 1 Jan 2023 21:53:02 +1300 Subject: [PATCH] Change VR overlay language with main app --- html/src/app.js | 4 +++- html/src/index.pug | 4 ++-- html/src/vr.js | 42 ++++++++++++------------------------------ html/src/vr.pug | 23 +++++++++++++---------- 4 files changed, 30 insertions(+), 43 deletions(-) diff --git a/html/src/app.js b/html/src/app.js index a2e9fd0c..0c35bece 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -13277,7 +13277,8 @@ speechSynthesis.getVoices(); notificationTheme, backgroundEnabled: this.vrBackgroundEnabled, dtHour12: this.dtHour12, - pcUptimeOnFeed: this.pcUptimeOnFeed + pcUptimeOnFeed: this.pcUptimeOnFeed, + appLanguage: this.appLanguage }; var json = JSON.stringify(VRConfigVars); AppApi.ExecuteVrFeedFunction('configUpdate', json); @@ -24267,6 +24268,7 @@ speechSynthesis.getVoices(); this.appLanguage = language; i18n.locale = language; configRepository.setString('VRCX_appLanguage', language); + this.updateVRConfigVars(); }; $app = new Vue($app); diff --git a/html/src/index.pug b/html/src/index.pug index 1bd371d9..217c48c9 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -2446,7 +2446,7 @@ html template(slot="title") span(style="font-size:16px") {{ $t('dialog.social_status.history') }} data-tables(v-bind="socialStatusHistoryTable" @row-click="setSocialStatusFromHistory" style="cursor:pointer") - el-table-column(:label="$t('table.social_status.no')" prop="no" width="40") + el-table-column(:label="$t('table.social_status.no')" prop="no" width="50") el-table-column(:label="$t('table.social_status.status')" prop="status") el-select(v-model="socialStatusDialog.status" style="dispaly:block;margin-top:10px") el-option(:label="$t('dialog.user.status.online')" value="active"). @@ -2492,7 +2492,7 @@ html el-button(type="primary" size="small" :disabled="bioDialog.loading" @click="saveBio") {{ $t('dialog.bio.update') }} //- dialog: new instance - el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="newInstanceDialog" :visible.sync="newInstanceDialog.visible" :title="$t('dialog.new_instance.header')" width="600px") + el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="newInstanceDialog" :visible.sync="newInstanceDialog.visible" :title="$t('dialog.new_instance.header')" width="650px") el-form(v-if="newInstanceDialog.visible" :model="newInstanceDialog" label-width="130px") el-form-item(:label="$t('dialog.new_instance.access_type')") el-radio-group(v-model="newInstanceDialog.accessType" size="mini" @change="buildInstance") diff --git a/html/src/vr.js b/html/src/vr.js index 7d9c1949..4eff4194 100644 --- a/html/src/vr.js +++ b/html/src/vr.js @@ -38,6 +38,8 @@ Vue.component('marquee-text', MarqueeText); messages: localizedStrings }); + var $t = i18n.t.bind(i18n); + Vue.use(ElementUI, { i18n: (key, value) => i18n.t(key, value) }); @@ -177,6 +179,7 @@ Vue.component('marquee-text', MarqueeText); // 1 = 대시보드랑 손목에 보이는거 // 2 = 항상 화면에 보이는 거 appType: location.href.substr(-1), + appLanguage: 'en', currentTime: new Date().toJSON(), cpuUsage: 0, pcUptime: '', @@ -320,6 +323,7 @@ Vue.component('marquee-text', MarqueeText); this.hudFeed = []; this.hudTimeout = []; this.setDatetimeFormat(); + this.setAppLanguage(this.config.appLanguage); }; $app.methods.updateOnlineFriendCount = function (count) { @@ -709,37 +713,15 @@ Vue.component('marquee-text', MarqueeText); Vue.filter('formatDate', formatDate); }; - // App: Language - - $app.data.appLanguage = 'en'; - /* - if (configRepository.getString('VRCX_appLanguage')) { - $app.data.appLanguage = configRepository.getString('VRCX_appLanguage'); - i18n.locale = $app.data.appLanguage; - } else { - AppApi.CurrentLanguage().then((result) => { - if (!result) { - console.error('Failed to get current language'); - $app.changeAppLanguage('en'); - return; - } - var lang = result.split('-')[0]; - i18n.availableLocales.forEach((ref) => { - var refLang = ref.split('_')[0]; - if (refLang === lang) { - $app.changeAppLanguage(ref); - } - }); - }); - } - - $app.methods.changeAppLanguage = function (language) { - console.log('Language changed:', language); - this.appLanguage = language; - i18n.locale = language; - configRepository.setString('VRCX_appLanguage', language); + $app.methods.setAppLanguage = function (appLanguage) { + if (!appLanguage) { + return; + } + if (appLanguage !== this.appLanguage) { + this.appLanguage = appLanguage; + i18n.locale = this.appLanguage; + } }; - */ $app = new Vue($app); window.$app = $app; diff --git a/html/src/vr.pug b/html/src/vr.pug index dd69044b..c309db29 100644 --- a/html/src/vr.pug +++ b/html/src/vr.pug @@ -32,12 +32,12 @@ html span.time {{ feed.created_at | formatDate }} | #[span.name(v-text="feed.displayName")] ✔ template(v-if="feed.worldName") - | #[location(:location="feed.location" :hint="feed.worldName")] + | #[location(:location="feed.location" :hint="feed.worldName" style="margin-left:5px")] div(v-else-if="feed.type === 'Status'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") .detail span.extra span.time {{ feed.created_at | formatDate }} - | #[span.name(v-text="feed.displayName")] + | #[span.name(v-text="feed.displayName" style="margin-right:5px")] template(v-if="feed.statusDescription === feed.previousStatusDescription") i.x-user-status(:class="statusClass(feed.previousStatus)") i.el-icon-right @@ -69,7 +69,7 @@ html .detail span.extra span.time {{ feed.created_at | formatDate }} - | 🎵 #[span.name(v-text="feed.displayName")] + | 🎵 #[span.name(v-text="feed.displayName" style="margin-right:5px")] template(v-if="feed.videoName") | #[span(v-text="feed.videoName")] template(v-else) @@ -144,7 +144,7 @@ html span.extra span.time {{ feed.created_at | formatDate }} template(v-if="feed.displayName") - | ✨ #[span.name(v-text="feed.displayName")] + | ✨ #[span.name(v-text="feed.displayName" style="margin-right:5px")] | #[location(:location="feed.instanceId" :hint="feed.worldName")] template(v-else) | ✨ User has spawned a portal @@ -152,7 +152,7 @@ html .detail span.extra span.time {{ feed.created_at | formatDate }} - | 🧍 #[span.name(v-text="feed.displayName")] + | 🧍 #[span.name(v-text="feed.displayName" style="margin-right:5px")] template(v-if="feed.releaseStatus === 'public'") | #[i.x-user-status.online] template(v-else) @@ -229,14 +229,15 @@ html .detail span.extra span.time {{ feed.created_at | formatDate }} - | #[span.name(v-text="feed.displayName")] has logged in + | #[span.name(v-text="feed.displayName")] + span(style="margin-left:5px;margin-right:5px") has logged in template(v-if="feed.worldName") | to #[location(:location="feed.location" :hint="feed.worldName")] div(v-else-if="feed.type === 'Status'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") .detail span.extra span.time {{ feed.created_at | formatDate }} - | #[span.name(v-text="feed.displayName")] + | #[span.name(v-text="feed.displayName" style="margin-right:5px")] template(v-if="feed.statusDescription === feed.previousStatusDescription") i.x-user-status(:class="statusClass(feed.previousStatus)") i.el-icon-right @@ -267,7 +268,8 @@ html .detail span.extra span.time {{ feed.created_at | formatDate }} - | #[span.name(v-text="feed.displayName")] changed video to + | #[span.name(v-text="feed.displayName")] + span(style="margin-left:5px;margin-right:5px") changed video to template(v-if="feed.videoName") | #[span(v-text="feed.videoName")] template(v-else) @@ -343,14 +345,15 @@ html span.time {{ feed.created_at | formatDate }} template(v-if="feed.displayName") | #[span.name(v-text="feed.displayName")] has spawned a portal to - | #[location(:location="feed.instanceId" :hint="feed.worldName")] + | #[location(:location="feed.instanceId" :hint="feed.worldName" style="margin-left:5px")] template(v-else) | User has spawned a portal div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") .detail span.extra span.time {{ feed.created_at | formatDate }} - | #[span.name(v-text="feed.displayName")] changed into avatar + | #[span.name(v-text="feed.displayName")] + span(style="margin-left:5px;margin-right:5px") changed into avatar template(v-if="feed.releaseStatus === 'public'") | #[i.x-user-status.online] template(v-else)