mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 23:03:51 +02:00
Change VR overlay language with main app
This commit is contained in:
@@ -13277,7 +13277,8 @@ speechSynthesis.getVoices();
|
|||||||
notificationTheme,
|
notificationTheme,
|
||||||
backgroundEnabled: this.vrBackgroundEnabled,
|
backgroundEnabled: this.vrBackgroundEnabled,
|
||||||
dtHour12: this.dtHour12,
|
dtHour12: this.dtHour12,
|
||||||
pcUptimeOnFeed: this.pcUptimeOnFeed
|
pcUptimeOnFeed: this.pcUptimeOnFeed,
|
||||||
|
appLanguage: this.appLanguage
|
||||||
};
|
};
|
||||||
var json = JSON.stringify(VRConfigVars);
|
var json = JSON.stringify(VRConfigVars);
|
||||||
AppApi.ExecuteVrFeedFunction('configUpdate', json);
|
AppApi.ExecuteVrFeedFunction('configUpdate', json);
|
||||||
@@ -24267,6 +24268,7 @@ speechSynthesis.getVoices();
|
|||||||
this.appLanguage = language;
|
this.appLanguage = language;
|
||||||
i18n.locale = language;
|
i18n.locale = language;
|
||||||
configRepository.setString('VRCX_appLanguage', language);
|
configRepository.setString('VRCX_appLanguage', language);
|
||||||
|
this.updateVRConfigVars();
|
||||||
};
|
};
|
||||||
|
|
||||||
$app = new Vue($app);
|
$app = new Vue($app);
|
||||||
|
|||||||
@@ -2446,7 +2446,7 @@ html
|
|||||||
template(slot="title")
|
template(slot="title")
|
||||||
span(style="font-size:16px") {{ $t('dialog.social_status.history') }}
|
span(style="font-size:16px") {{ $t('dialog.social_status.history') }}
|
||||||
data-tables(v-bind="socialStatusHistoryTable" @row-click="setSocialStatusFromHistory" style="cursor:pointer")
|
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-table-column(:label="$t('table.social_status.status')" prop="status")
|
||||||
el-select(v-model="socialStatusDialog.status" style="dispaly:block;margin-top:10px")
|
el-select(v-model="socialStatusDialog.status" style="dispaly:block;margin-top:10px")
|
||||||
el-option(:label="$t('dialog.user.status.online')" value="active").
|
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') }}
|
el-button(type="primary" size="small" :disabled="bioDialog.loading" @click="saveBio") {{ $t('dialog.bio.update') }}
|
||||||
|
|
||||||
//- dialog: new instance
|
//- 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(v-if="newInstanceDialog.visible" :model="newInstanceDialog" label-width="130px")
|
||||||
el-form-item(:label="$t('dialog.new_instance.access_type')")
|
el-form-item(:label="$t('dialog.new_instance.access_type')")
|
||||||
el-radio-group(v-model="newInstanceDialog.accessType" size="mini" @change="buildInstance")
|
el-radio-group(v-model="newInstanceDialog.accessType" size="mini" @change="buildInstance")
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ Vue.component('marquee-text', MarqueeText);
|
|||||||
messages: localizedStrings
|
messages: localizedStrings
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var $t = i18n.t.bind(i18n);
|
||||||
|
|
||||||
Vue.use(ElementUI, {
|
Vue.use(ElementUI, {
|
||||||
i18n: (key, value) => i18n.t(key, value)
|
i18n: (key, value) => i18n.t(key, value)
|
||||||
});
|
});
|
||||||
@@ -177,6 +179,7 @@ Vue.component('marquee-text', MarqueeText);
|
|||||||
// 1 = 대시보드랑 손목에 보이는거
|
// 1 = 대시보드랑 손목에 보이는거
|
||||||
// 2 = 항상 화면에 보이는 거
|
// 2 = 항상 화면에 보이는 거
|
||||||
appType: location.href.substr(-1),
|
appType: location.href.substr(-1),
|
||||||
|
appLanguage: 'en',
|
||||||
currentTime: new Date().toJSON(),
|
currentTime: new Date().toJSON(),
|
||||||
cpuUsage: 0,
|
cpuUsage: 0,
|
||||||
pcUptime: '',
|
pcUptime: '',
|
||||||
@@ -320,6 +323,7 @@ Vue.component('marquee-text', MarqueeText);
|
|||||||
this.hudFeed = [];
|
this.hudFeed = [];
|
||||||
this.hudTimeout = [];
|
this.hudTimeout = [];
|
||||||
this.setDatetimeFormat();
|
this.setDatetimeFormat();
|
||||||
|
this.setAppLanguage(this.config.appLanguage);
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.updateOnlineFriendCount = function (count) {
|
$app.methods.updateOnlineFriendCount = function (count) {
|
||||||
@@ -709,37 +713,15 @@ Vue.component('marquee-text', MarqueeText);
|
|||||||
Vue.filter('formatDate', formatDate);
|
Vue.filter('formatDate', formatDate);
|
||||||
};
|
};
|
||||||
|
|
||||||
// App: Language
|
$app.methods.setAppLanguage = function (appLanguage) {
|
||||||
|
if (!appLanguage) {
|
||||||
$app.data.appLanguage = 'en';
|
return;
|
||||||
/*
|
}
|
||||||
if (configRepository.getString('VRCX_appLanguage')) {
|
if (appLanguage !== this.appLanguage) {
|
||||||
$app.data.appLanguage = configRepository.getString('VRCX_appLanguage');
|
this.appLanguage = appLanguage;
|
||||||
i18n.locale = $app.data.appLanguage;
|
i18n.locale = this.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 = new Vue($app);
|
$app = new Vue($app);
|
||||||
window.$app = $app;
|
window.$app = $app;
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ html
|
|||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] ✔
|
| #[span.name(v-text="feed.displayName")] ✔
|
||||||
template(v-if="feed.worldName")
|
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 }")
|
div(v-else-if="feed.type === 'Status'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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")
|
template(v-if="feed.statusDescription === feed.previousStatusDescription")
|
||||||
i.x-user-status(:class="statusClass(feed.previousStatus)")
|
i.x-user-status(:class="statusClass(feed.previousStatus)")
|
||||||
i.el-icon-right
|
i.el-icon-right
|
||||||
@@ -69,7 +69,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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")
|
template(v-if="feed.videoName")
|
||||||
| #[span(v-text="feed.videoName")]
|
| #[span(v-text="feed.videoName")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
@@ -144,7 +144,7 @@ html
|
|||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
template(v-if="feed.displayName")
|
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")]
|
| #[location(:location="feed.instanceId" :hint="feed.worldName")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
| ✨ User has spawned a portal
|
| ✨ User has spawned a portal
|
||||||
@@ -152,7 +152,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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'")
|
template(v-if="feed.releaseStatus === 'public'")
|
||||||
| #[i.x-user-status.online]
|
| #[i.x-user-status.online]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
@@ -229,14 +229,15 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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")
|
template(v-if="feed.worldName")
|
||||||
| to #[location(:location="feed.location" :hint="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 }")
|
div(v-else-if="feed.type === 'Status'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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")
|
template(v-if="feed.statusDescription === feed.previousStatusDescription")
|
||||||
i.x-user-status(:class="statusClass(feed.previousStatus)")
|
i.x-user-status(:class="statusClass(feed.previousStatus)")
|
||||||
i.el-icon-right
|
i.el-icon-right
|
||||||
@@ -267,7 +268,8 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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")
|
template(v-if="feed.videoName")
|
||||||
| #[span(v-text="feed.videoName")]
|
| #[span(v-text="feed.videoName")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
@@ -343,14 +345,15 @@ html
|
|||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
template(v-if="feed.displayName")
|
template(v-if="feed.displayName")
|
||||||
| #[span.name(v-text="feed.displayName")] has spawned a portal to
|
| #[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)
|
template(v-else)
|
||||||
| User has spawned a portal
|
| User has spawned a portal
|
||||||
div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
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'")
|
template(v-if="feed.releaseStatus === 'public'")
|
||||||
| #[i.x-user-status.online]
|
| #[i.x-user-status.online]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
|
|||||||
Reference in New Issue
Block a user