mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-17 13:53:52 +02:00
feat(localization): add more dialog tokens
player_list world_export world_import avatar_export avatar_import friend_export friend_import note_export
This commit is contained in:
@@ -90,15 +90,15 @@ html
|
||||
div
|
||||
span.x-link(v-text="currentInstanceWorld.ref.authorName" @click="showUserDialog(currentInstanceWorld.ref.authorId)" style="color:#909399;font-family:monospace")
|
||||
div(style="margin-top:5px")
|
||||
el-tag(v-if="currentInstanceWorld.ref.$isLabs" type="primary" effect="plain" size="mini" style="margin-right:5px") Labs
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'public'" type="success" effect="plain" size="mini" style="margin-right:5px") Public
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'private'" type="danger" effect="plain" size="mini" style="margin-right:5px") Private
|
||||
el-tag(v-if="currentInstanceWorld.ref.$isLabs" type="primary" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.labs') }}
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'public'" type="success" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.public') }}
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'private'" type="danger" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.private') }}
|
||||
el-tag.x-tag-platform-pc(v-if="currentInstanceWorld.isPC" type="info" effect="plain" size="mini" style="margin-right:5px") PC
|
||||
el-tag.x-tag-platform-quest(v-if="currentInstanceWorld.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px") Quest
|
||||
el-tag(type="info" effect="plain" size="mini" v-text="currentInstanceWorld.fileSize" style="margin-right:5px")
|
||||
el-tag(v-if="currentInstanceWorld.inCache" type="info" effect="plain" size="mini" style="margin-right:5px")
|
||||
span(v-text="currentInstanceWorld.cacheSize")
|
||||
| Cache
|
||||
| {{ $t('dialog.world.tags.cache') }}
|
||||
br
|
||||
location-world(:locationobject="currentInstanceLocation" :currentuserid="API.currentUser.id")
|
||||
span(v-if="lastLocation.playerList.size > 0" style="margin-left:5px")
|
||||
@@ -110,29 +110,29 @@ html
|
||||
div(style="display:flex;flex-direction:column;margin-left:20px")
|
||||
.x-friend-item(style="cursor:default")
|
||||
.detail
|
||||
span.name Capacity
|
||||
span.name {{ $t('dialog.world.info.capacity') }}
|
||||
span.extra {{ currentInstanceWorld.ref.capacity | commaNumber }} ({{ currentInstanceWorld.ref.capacity * 2 | commaNumber }})
|
||||
.x-friend-item(style="cursor:default")
|
||||
.detail
|
||||
span.name Last Updated
|
||||
span.name {{ $t('dialog.world.info.last_updated') }}
|
||||
span.extra {{ currentInstanceWorld.fileCreatedAt | formatDate('long') }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
.detail
|
||||
span.name Created
|
||||
span.name {{ $t('dialog.world.info.created_at') }}
|
||||
span.extra {{ currentInstanceWorld.ref.created_at | formatDate('long') }}
|
||||
div.photon-event-table(v-if="photonLoggingEnabled")
|
||||
div(style="position:absolute;width:600px;margin-left:195px;z-index:1")
|
||||
el-select(v-model="photonEventTableTypeFilter" @change="photonEventTableFilterChange" multiple clearable collapse-tags style="flex:1;width:220px" placeholder="Filter")
|
||||
el-select(v-model="photonEventTableTypeFilter" @change="photonEventTableFilterChange" multiple clearable collapse-tags style="flex:1;width:220px" :placeholder="$t('view.player_list.photon.filter_placeholder')")
|
||||
el-option(v-once v-for="type in photonEventTableTypeFilterList" :key="type" :label="type" :value="type")
|
||||
el-input(v-model="photonEventTableFilter" @input="photonEventTableFilterChange" placeholder="Search" clearable style="width:150px;margin-left:10px")
|
||||
el-button(@click="showChatboxBlacklistDialog" style="margin-left:10px") Chatbox Blacklist
|
||||
el-tooltip(placement="bottom" content="VRCX Companion Status" :disabled="hideTooltips")
|
||||
el-input(v-model="photonEventTableFilter" @input="photonEventTableFilterChange" :placeholder="$t('view.player_list.photon.search_placeholder')" clearable style="width:150px;margin-left:10px")
|
||||
el-button(@click="showChatboxBlacklistDialog" style="margin-left:10px") {{ $t('view.player_list.photon.chatbox_blacklist') }}
|
||||
el-tooltip(placement="bottom" :content="$t('view.player_list.photon.status_tooltip')" :disabled="hideTooltips")
|
||||
div(style="display:inline-block;margin-left:15px;font-size:14px;vertical-align:text-top;margin-top:1px")
|
||||
span(v-if="ipcEnabled && !photonEventIcon") 🟢
|
||||
span(v-else-if="ipcEnabled") ⚪
|
||||
span(v-else) 🔴
|
||||
el-tabs(type="card")
|
||||
el-tab-pane(label="Current")
|
||||
el-tab-pane(:label="$t('view.player_list.photon.current')")
|
||||
data-tables(v-bind="photonEventTable" style="margin-bottom:10px")
|
||||
el-table-column(:label="$t('table.playerList.date')" prop="created_at" width="120")
|
||||
template(v-once #default="scope")
|
||||
@@ -150,19 +150,19 @@ html
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") (Public)
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") (Private)
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
template(v-if="scope.row.avatar.description && scope.row.avatar.name !== scope.row.avatar.description")
|
||||
| - {{ scope.row.avatar.description }}
|
||||
template(v-else-if="scope.row.type === 'ChangeStatus'")
|
||||
template(v-if="scope.row.status !== scope.row.previousStatus")
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") Active
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span
|
||||
i.el-icon-right
|
||||
@@ -182,11 +182,11 @@ html
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") (Public)
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") (Private)
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
span(v-else-if="scope.row.color === 'yellow'" v-text="scope.row.text" style="color:yellow")
|
||||
span(v-else v-text="scope.row.text")
|
||||
el-tab-pane(label="Previous")
|
||||
el-tab-pane(:label="$t('view.player_list.photon.previous')")
|
||||
data-tables(v-bind="photonEventTablePrevious" style="margin-bottom:10px")
|
||||
el-table-column(:label="$t('table.playerList.date')" prop="created_at" width="120")
|
||||
template(v-once #default="scope")
|
||||
@@ -194,11 +194,11 @@ html
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(label="User" prop="photonId" width="160")
|
||||
el-table-column(:label="$t('table.playerList.user')" prop="photonId" width="160")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="lookupUser(scope.row)" style="padding-right:10px")
|
||||
el-table-column(label="Type" prop="type" width="140")
|
||||
el-table-column(label="Details" prop="text")
|
||||
el-table-column(:label="$t('table.playerList.type')" prop="type" width="140")
|
||||
el-table-column(:label="$t('table.playerList.detail')" prop="text")
|
||||
template(v-once #default="scope")
|
||||
template(v-if="scope.row.type === 'ChangeAvatar'")
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
@@ -212,21 +212,21 @@ html
|
||||
template(v-if="scope.row.status !== scope.row.previousStatus")
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") Active
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") Active
|
||||
span(v-else-if="scope.row.status === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.status === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.status === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)")
|
||||
span(v-if="scope.row.statusDescription !== scope.row.previousStatusDescription" v-text="scope.row.statusDescription" style="margin-left:5px")
|
||||
span.x-link(v-else-if="scope.row.type === 'PortalSpawn'" @click="showWorldDialog(scope.row.location, scope.row.shortName)")
|
||||
@@ -347,11 +347,11 @@ html
|
||||
template(v-else-if="scope.row.type === 'Status'")
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") Active
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span(v-text="scope.row.previousStatusDescription")
|
||||
br
|
||||
@@ -359,11 +359,11 @@ html
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") Active
|
||||
span(v-else-if="scope.row.status === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.status === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.status === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)")
|
||||
span(v-text="scope.row.statusDescription")
|
||||
template(v-else-if="scope.row.type === 'Bio'")
|
||||
@@ -391,30 +391,30 @@ html
|
||||
template(v-if="scope.row.statusDescription === scope.row.previousStatusDescription")
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") Active
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") Active
|
||||
span(v-else-if="scope.row.status === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.status === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.status === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)")
|
||||
template(v-else)
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") Online
|
||||
span(v-else-if="scope.row.status === 'join me'") Join Me
|
||||
span(v-else-if="scope.row.status === 'ask me'") Ask Me
|
||||
span(v-else-if="scope.row.status === 'busy'") Do Not Disturb
|
||||
span(v-else) Offline
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)")
|
||||
span
|
||||
span(v-text="scope.row.statusDescription")
|
||||
@@ -3421,7 +3421,7 @@ html
|
||||
span(v-text="scope.row.count")
|
||||
|
||||
//- dialog: export world list
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="worldExportDialogRef" :visible.sync="worldExportDialogVisible" title="World Favorites Export" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="worldExportDialogRef" :visible.sync="worldExportDialogVisible" :title="$t('dialog.world_export.header')" width="650px")
|
||||
el-dropdown(@click.native.stop trigger="click" size="small")
|
||||
el-button(size="mini")
|
||||
span(v-if="worldExportFavoriteGroup") {{ worldExportFavoriteGroup.displayName }} ({{ worldExportFavoriteGroup.count }}/{{ worldExportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
@@ -3442,60 +3442,60 @@ html
|
||||
el-input(type="textarea" v-if="worldExportDialogVisible" v-model="worldExportContent" size="mini" rows="15" resize="none" readonly style="margin-top:15px" @click.native="$event.target.tagName === 'TEXTAREA' && $event.target.select()")
|
||||
|
||||
//- dialog: World import dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="worldImportDialog" :visible.sync="worldImportDialog.visible" title="World Favorites Import" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="worldImportDialog" :visible.sync="worldImportDialog.visible" :title="$t('dialog.world_import.header')" width="650px")
|
||||
div(style="font-size:12px")
|
||||
| Enter a list of world IDs
|
||||
| {{ $t('dialog.world_import.description') }}
|
||||
el-input(type="textarea" v-model="worldImportDialog.input" size="mini" rows="10" resize="none" style="margin-top:15px")
|
||||
el-button(size="small" @click="processWorldImportList" :disabled="!worldImportDialog.input") Process List
|
||||
span(v-if="worldImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] Progress: {{ worldImportDialog.progress }}/{{ worldImportDialog.progressTotal }}
|
||||
el-button(size="small" @click="processWorldImportList" :disabled="!worldImportDialog.input") {{ $t('dialog.world_import.process_list') }}
|
||||
span(v-if="worldImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.world_import.process_progress') }} {{ worldImportDialog.progress }}/{{ worldImportDialog.progressTotal }}
|
||||
br
|
||||
el-dropdown(@click.native.stop trigger="click" size="small" style="margin-right:5px")
|
||||
el-button(size="mini")
|
||||
span(v-if="worldImportDialog.worldImportFavoriteGroup") {{ worldImportDialog.worldImportFavoriteGroup.displayName }} ({{ worldImportDialog.worldImportFavoriteGroup.count }}/{{ worldImportDialog.worldImportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) Select Group #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) {{ $t('dialog.world_import.select_vrchat_group_placeholder') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
template(v-for="groupAPI in API.favoriteWorldGroups" :key="groupAPI.name")
|
||||
el-dropdown-item(style="display:block;margin:10px 0" @click.native="selectWorldImportGroup(groupAPI)" :disabled="groupAPI.count >= groupAPI.capacity") {{ groupAPI.displayName }} ({{ groupAPI.count }}/{{ groupAPI.capacity }})
|
||||
el-dropdown(@click.native.stop trigger="click" size="small" style="margin:5px")
|
||||
el-button(size="mini")
|
||||
span(v-if="worldImportDialog.worldImportLocalFavoriteGroup") {{ worldImportDialog.worldImportLocalFavoriteGroup }} ({{ getLocalWorldFavoriteGroupLength(worldImportDialog.worldImportLocalFavoriteGroup) }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) Select Group #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) {{ $t('dialog.world_import.select_local_group_placeholder') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
template(v-for="group in localWorldFavoriteGroups" :key="group")
|
||||
el-dropdown-item(style="display:block;margin:10px 0" @click.native="selectWorldImportLocalGroup(group)" ) {{ group }} ({{ getLocalWorldFavoriteGroupLength(group) }})
|
||||
el-button(size="small" @click="importWorldImportTable" style="margin:5px" :disabled="worldImportTable.data.length === 0 || (!worldImportDialog.worldImportFavoriteGroup && !worldImportDialog.worldImportLocalFavoriteGroup)") Import Worlds
|
||||
el-button(v-if="worldImportDialog.loading" size="small" @click="cancelWorldImport" style="margin-top:10px") Cancel
|
||||
el-button(size="small" @click="importWorldImportTable" style="margin:5px" :disabled="worldImportTable.data.length === 0 || (!worldImportDialog.worldImportFavoriteGroup && !worldImportDialog.worldImportLocalFavoriteGroup)") {{ $t('dialog.world_import.import') }}
|
||||
el-button(v-if="worldImportDialog.loading" size="small" @click="cancelWorldImport" style="margin-top:10px") {{ $t('dialog.world_import.cancel') }}
|
||||
span(v-if="worldImportDialog.worldImportFavoriteGroup") {{ worldImportTable.data.length }} / {{ worldImportDialog.worldImportFavoriteGroup.capacity - worldImportDialog.worldImportFavoriteGroup.count }}
|
||||
span(v-if="worldImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] Import Progress: {{ worldImportDialog.importProgress }}/{{ worldImportDialog.importProgressTotal }}
|
||||
span(v-if="worldImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.world_import.import_progress') }} {{ worldImportDialog.importProgress }}/{{ worldImportDialog.importProgressTotal }}
|
||||
br
|
||||
el-button(size="small" @click="clearWorldImportTable") Clear Table
|
||||
el-button(size="small" @click="clearWorldImportTable") {{ $t('dialog.world_import.clear_table') }}
|
||||
template(v-if="worldImportDialog.errors")
|
||||
el-button(size="small" @click="worldImportDialog.errors = ''" style="margin-left:5px") Clear Errors
|
||||
h2(style="font-weight:bold;margin:0") Errors:
|
||||
el-button(size="small" @click="worldImportDialog.errors = ''" style="margin-left:5px") {{ $t('dialog.world_import.clear_errors') }}
|
||||
h2(style="font-weight:bold;margin:0") {{ $t('dialog.world_import.errors') }}
|
||||
pre(v-text="worldImportDialog.errors" style="white-space:pre-wrap;font-size:12px")
|
||||
data-tables(v-if="worldImportDialog.visible" v-bind="worldImportTable" v-loading="worldImportDialog.loading" style="margin-top:10px")
|
||||
el-table-column(label="Image" width="70" prop="thumbnailImageUrl")
|
||||
el-table-column(:label="$t('table.import.image')" width="70" prop="thumbnailImageUrl")
|
||||
template(v-once #default="scope")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="scope.row.thumbnailImageUrl")
|
||||
img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(scope.row.imageUrl)")
|
||||
el-table-column(label="Name" prop="name")
|
||||
el-table-column(:label="$t('table.import.name')" prop="name")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.name" @click="showWorldDialog(scope.row.id)")
|
||||
el-table-column(label="Author" width="120" prop="authorName")
|
||||
el-table-column(:label="$t('table.import.author')" width="120" prop="authorName")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.authorName" @click="showUserDialog(scope.row.authorId)")
|
||||
el-table-column(label="Status" width="70" prop="releaseStatus")
|
||||
el-table-column(:label="$t('table.import.status')" width="70" prop="releaseStatus")
|
||||
template(v-once #default="scope")
|
||||
span(v-text="scope.row.releaseStatus" v-if="scope.row.releaseStatus === 'public'" style="color:#67c23a")
|
||||
span(v-text="scope.row.releaseStatus" v-else-if="scope.row.releaseStatus === 'private'" style="color:#f56c6c")
|
||||
span(v-text="scope.row.releaseStatus" v-else)
|
||||
el-table-column(label="Action" width="90" align="right")
|
||||
el-table-column(:label="$t('table.import.action')" width="90" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-close" size="mini" @click="deleteItemWorldImport(scope.row)")
|
||||
|
||||
//- dialog: export avatar list
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="avatarExportDialogRef" :visible.sync="avatarExportDialogVisible" title="Avatar Favorites Export" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="avatarExportDialogRef" :visible.sync="avatarExportDialogVisible" :title="$t('dialog.avatar_export.header')" width="650px")
|
||||
el-dropdown(@click.native.stop trigger="click" size="small")
|
||||
el-button(size="mini")
|
||||
span(v-if="avatarExportFavoriteGroup") {{ avatarExportFavoriteGroup.displayName }} ({{ avatarExportFavoriteGroup.count }}/{{ avatarExportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
@@ -3508,53 +3508,53 @@ html
|
||||
el-input(type="textarea" v-if="avatarExportDialogVisible" v-model="avatarExportContent" size="mini" rows="15" resize="none" readonly style="margin-top:15px" @click.native="$event.target.tagName === 'TEXTAREA' && $event.target.select()")
|
||||
|
||||
//- dialog: Avatar import dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="avatarImportDialog" :visible.sync="avatarImportDialog.visible" title="Avatar Favorites Import" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="avatarImportDialog" :visible.sync="avatarImportDialog.visible" :title="$t('dialog.avatar_import.header')" width="650px")
|
||||
div(style="font-size:12px")
|
||||
| Enter a list of avatar IDs
|
||||
| {{ $t('dialog.avatar_import.description') }}
|
||||
el-input(type="textarea" v-model="avatarImportDialog.input" size="mini" rows="10" resize="none" style="margin-top:15px")
|
||||
el-button(size="small" @click="processAvatarImportList" :disabled="!avatarImportDialog.input") Process List
|
||||
span(v-if="avatarImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] Progress: {{ avatarImportDialog.progress }}/{{ avatarImportDialog.progressTotal }}
|
||||
el-button(size="small" @click="processAvatarImportList" :disabled="!avatarImportDialog.input") {{ $t('dialog.avatar_import.process_list') }}
|
||||
span(v-if="avatarImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.avatar_import.process_progress') }} {{ avatarImportDialog.progress }}/{{ avatarImportDialog.progressTotal }}
|
||||
br
|
||||
el-dropdown(@click.native.stop trigger="click" size="small")
|
||||
el-button(size="mini")
|
||||
span(v-if="avatarImportDialog.avatarImportFavoriteGroup") {{ avatarImportDialog.avatarImportFavoriteGroup.displayName }} ({{ avatarImportDialog.avatarImportFavoriteGroup.count }}/{{ avatarImportDialog.avatarImportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) Select Group #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) {{ $t('dialog.avatar_import.select_group_placeholder') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
template(v-for="groupAPI in API.favoriteAvatarGroups" :key="groupAPI.name")
|
||||
el-dropdown-item(style="display:block;margin:10px 0" @click.native="selectAvatarImportGroup(groupAPI)" :disabled="groupAPI.count >= groupAPI.capacity") {{ groupAPI.displayName }} ({{ groupAPI.count }}/{{ groupAPI.capacity }})
|
||||
el-button(size="small" @click="importAvatarImportTable" style="margin:5px" :disabled="avatarImportTable.data.length === 0 || !avatarImportDialog.avatarImportFavoriteGroup") Import Avatars
|
||||
el-button(v-if="avatarImportDialog.loading" size="small" @click="cancelAvatarImport" style="margin-top:10px") Cancel
|
||||
el-button(size="small" @click="importAvatarImportTable" style="margin:5px" :disabled="avatarImportTable.data.length === 0 || !avatarImportDialog.avatarImportFavoriteGroup") {{ $t('dialog.avatar_import.import') }}
|
||||
el-button(v-if="avatarImportDialog.loading" size="small" @click="cancelAvatarImport" style="margin-top:10px") {{ $t('dialog.avatar_import.cancel') }}
|
||||
span(v-if="avatarImportDialog.avatarImportFavoriteGroup") {{ avatarImportTable.data.length }} / {{ avatarImportDialog.avatarImportFavoriteGroup.capacity - avatarImportDialog.avatarImportFavoriteGroup.count }}
|
||||
span(v-if="avatarImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] Import Progress: {{ avatarImportDialog.importProgress }}/{{ avatarImportDialog.importProgressTotal }}
|
||||
span(v-if="avatarImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.avatar_import.import_progress') }} {{ avatarImportDialog.importProgress }}/{{ avatarImportDialog.importProgressTotal }}
|
||||
br
|
||||
el-button(size="small" @click="clearAvatarImportTable") Clear Table
|
||||
el-button(size="small" @click="clearAvatarImportTable") {{ $t('dialog.avatar_import.clear_table') }}
|
||||
template(v-if="avatarImportDialog.errors")
|
||||
el-button(size="small" @click="avatarImportDialog.errors = ''" style="margin-left:5px") Clear Errors
|
||||
h2(style="font-weight:bold;margin:0") Errors:
|
||||
el-button(size="small" @click="avatarImportDialog.errors = ''" style="margin-left:5px") {{ $t('dialog.avatar_import.clear_errors') }}
|
||||
h2(style="font-weight:bold;margin:0") {{ $t('dialog.avatar_import.errors') }}
|
||||
pre(v-text="avatarImportDialog.errors" style="white-space:pre-wrap;font-size:12px")
|
||||
data-tables(v-if="avatarImportDialog.visible" v-bind="avatarImportTable" v-loading="avatarImportDialog.loading" style="margin-top:10px")
|
||||
el-table-column(label="Image" width="70" prop="thumbnailImageUrl")
|
||||
el-table-column(:label="$t('table.import.image')" width="70" prop="thumbnailImageUrl")
|
||||
template(v-once #default="scope")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="scope.row.thumbnailImageUrl")
|
||||
img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(scope.row.imageUrl)")
|
||||
el-table-column(label="Name" prop="name")
|
||||
el-table-column(:label="$t('table.import.name')" prop="name")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.name" @click="showAvatarDialog(scope.row.id)")
|
||||
el-table-column(label="Author" width="120" prop="authorName")
|
||||
el-table-column(:label="$t('table.import.author')" width="120" prop="authorName")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.authorName" @click="showUserDialog(scope.row.authorId)")
|
||||
el-table-column(label="Status" width="70" prop="releaseStatus")
|
||||
el-table-column(:label="$t('table.import.status')" width="70" prop="releaseStatus")
|
||||
template(v-once #default="scope")
|
||||
span(v-text="scope.row.releaseStatus" v-if="scope.row.releaseStatus === 'public'" style="color:#67c23a")
|
||||
span(v-text="scope.row.releaseStatus" v-else-if="scope.row.releaseStatus === 'private'" style="color:#f56c6c")
|
||||
span(v-text="scope.row.releaseStatus" v-else)
|
||||
el-table-column(label="Action" width="90" align="right")
|
||||
el-table-column(:label="$t('table.import.action')" width="90" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-close" size="mini" @click="deleteItemAvatarImport(scope.row)")
|
||||
|
||||
//- dialog: export friend list
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="friendExportDialogRef" :visible.sync="friendExportDialogVisible" title="Friend Favorites Export" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="friendExportDialogRef" :visible.sync="friendExportDialogVisible" :title="$t('dialog.friend_export.header')" width="650px")
|
||||
el-dropdown(@click.native.stop trigger="click" size="small")
|
||||
el-button(size="mini")
|
||||
span(v-if="friendExportFavoriteGroup") {{ friendExportFavoriteGroup.displayName }} ({{ friendExportFavoriteGroup.count }}/{{ friendExportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
@@ -3567,75 +3567,75 @@ html
|
||||
el-input(type="textarea" v-if="friendExportDialogVisible" v-model="friendExportContent" size="mini" rows="15" resize="none" readonly style="margin-top:15px" @click.native="$event.target.tagName === 'TEXTAREA' && $event.target.select()")
|
||||
|
||||
//- dialog: Friend import dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="friendImportDialog" :visible.sync="friendImportDialog.visible" title="Friend Favorites Import" width="650px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="friendImportDialog" :visible.sync="friendImportDialog.visible" :title="$t('dialog.friend_import.header')" width="650px")
|
||||
div(style="font-size:12px")
|
||||
| Enter a list of user IDs
|
||||
| {{ $t('dialog.friend_import.description') }}
|
||||
el-input(type="textarea" v-model="friendImportDialog.input" size="mini" rows="10" resize="none" style="margin-top:15px")
|
||||
el-button(size="small" @click="processFriendImportList" :disabled="!friendImportDialog.input") Process List
|
||||
span(v-if="friendImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] Progress: {{ friendImportDialog.progress }}/{{ friendImportDialog.progressTotal }}
|
||||
el-button(size="small" @click="processFriendImportList" :disabled="!friendImportDialog.input") {{ $t('dialog.friend_import.process_list') }}
|
||||
span(v-if="friendImportDialog.progress" style="margin-top:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.friend_import.process_progress') }} {{ friendImportDialog.progress }}/{{ friendImportDialog.progressTotal }}
|
||||
br
|
||||
el-dropdown(@click.native.stop trigger="click" size="small")
|
||||
el-button(size="mini")
|
||||
span(v-if="friendImportDialog.friendImportFavoriteGroup") {{ friendImportDialog.friendImportFavoriteGroup.displayName }} ({{ friendImportDialog.friendImportFavoriteGroup.count }}/{{ friendImportDialog.friendImportFavoriteGroup.capacity }}) #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) Select Group #[i.el-icon-arrow-down.el-icon--right]
|
||||
span(v-else) {{ $t('dialog.friend_import.select_group_placeholder') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
template(v-for="groupAPI in API.favoriteFriendGroups" :key="groupAPI.name")
|
||||
el-dropdown-item(style="display:block;margin:10px 0" @click.native="selectFriendImportGroup(groupAPI)" :disabled="groupAPI.count >= groupAPI.capacity") {{ groupAPI.displayName }} ({{ groupAPI.count }}/{{ groupAPI.capacity }})
|
||||
el-button(size="small" @click="importFriendImportTable" style="margin:5px" :disabled="friendImportTable.data.length === 0 || !friendImportDialog.friendImportFavoriteGroup") Import Friends
|
||||
el-button(v-if="friendImportDialog.loading" size="small" @click="cancelFriendImport" style="margin-top:10px") Cancel
|
||||
el-button(size="small" @click="importFriendImportTable" style="margin:5px" :disabled="friendImportTable.data.length === 0 || !friendImportDialog.friendImportFavoriteGroup") {{ $t('dialog.friend_import.import') }}
|
||||
el-button(v-if="friendImportDialog.loading" size="small" @click="cancelFriendImport" style="margin-top:10px") {{ $t('dialog.friend_import.cancel') }}
|
||||
span(v-if="friendImportDialog.friendImportFavoriteGroup") {{ friendImportTable.data.length }} / {{ friendImportDialog.friendImportFavoriteGroup.capacity - friendImportDialog.friendImportFavoriteGroup.count }}
|
||||
span(v-if="friendImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] Import Progress: {{ friendImportDialog.importProgress }}/{{ friendImportDialog.importProgressTotal }}
|
||||
span(v-if="friendImportDialog.importProgress" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.friend_import.import_progress') }} {{ friendImportDialog.importProgress }}/{{ friendImportDialog.importProgressTotal }}
|
||||
br
|
||||
el-button(size="small" @click="clearFriendImportTable") Clear Table
|
||||
el-button(size="small" @click="clearFriendImportTable") {{ $t('dialog.friend_import.clear_table') }}
|
||||
template(v-if="friendImportDialog.errors")
|
||||
el-button(size="small" @click="friendImportDialog.errors = ''" style="margin-left:5px") Clear Errors
|
||||
h2(style="font-weight:bold;margin:0") Errors:
|
||||
el-button(size="small" @click="friendImportDialog.errors = ''" style="margin-left:5px") {{ $t('dialog.friend_import.clear_errors') }}
|
||||
h2(style="font-weight:bold;margin:0") {{ $t('dialog.friend_import.errors') }}
|
||||
pre(v-text="friendImportDialog.errors" style="white-space:pre-wrap;font-size:12px")
|
||||
data-tables(v-if="friendImportDialog.visible" v-bind="friendImportTable" v-loading="friendImportDialog.loading" style="margin-top:10px")
|
||||
el-table-column(label="Image" width="70" prop="currentAvatarThumbnailImageUrl")
|
||||
el-table-column(:label="$t('table.import.image')" width="70" prop="currentAvatarThumbnailImageUrl")
|
||||
template(v-once #default="scope")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row)")
|
||||
img.friends-list-avatar(v-lazy="userImageFull(scope.row)" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(userImageFull(scope.row))")
|
||||
el-table-column(label="Name" prop="displayName")
|
||||
el-table-column(:label="$t('table.import.name')" prop="displayName")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="showUserDialog(scope.row.id)")
|
||||
el-table-column(label="Action" width="90" align="right")
|
||||
el-table-column(:label="$t('table.import.action')" width="90" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-close" size="mini" @click="deleteItemFriendImport(scope.row)")
|
||||
|
||||
//- dialog: Note export dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="noteExportDialog" :visible.sync="noteExportDialog.visible" title="Note Export" width="1000px")
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="noteExportDialog" :visible.sync="noteExportDialog.visible" :title="$t('dialog.note_export.header')" width="1000px")
|
||||
div(style="font-size:12px")
|
||||
| This process will export all of your VRCX memos and import them into VRChat notes. #[br]
|
||||
| Be warned of the following limitations: #[br]
|
||||
| - API endpoint has a rate limit that requires a large delay between requests. #[br]
|
||||
| - Character limit of 256 per note. #[br]
|
||||
| - Swear words filter (no fun allowed). #[br]
|
||||
| - No new lines (they will replaced with a space). #[br]
|
||||
| - This will overwrite any existing VRChat notes for these users. #[br]
|
||||
| - Any edits made here wont affect VRCX memos but will affect VRChat notes once exported. #[br]
|
||||
el-button(size="small" @click="updateNoteExportDialog" :disabled="noteExportDialog.loading" style="margin-top:10px") Refresh
|
||||
el-button(size="small" @click="exportNoteExport" :disabled="noteExportDialog.loading" style="margin-top:10px") Export
|
||||
el-button(v-if="noteExportDialog.loading" size="small" @click="cancelNoteExport" style="margin-top:10px") Cancel
|
||||
span(v-if="noteExportDialog.loading" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] Progress: {{ noteExportDialog.progress }}/{{ noteExportDialog.progressTotal }}
|
||||
| {{ $t('dialog.note_export.description1') }} #[br]
|
||||
| {{ $t('dialog.note_export.description2') }} #[br]
|
||||
| {{ $t('dialog.note_export.description3') }} #[br]
|
||||
| {{ $t('dialog.note_export.description4') }} #[br]
|
||||
| {{ $t('dialog.note_export.description5') }} #[br]
|
||||
| {{ $t('dialog.note_export.description6') }} #[br]
|
||||
| {{ $t('dialog.note_export.description7') }} #[br]
|
||||
| {{ $t('dialog.note_export.description8') }} #[br]
|
||||
el-button(size="small" @click="updateNoteExportDialog" :disabled="noteExportDialog.loading" style="margin-top:10px") {{ $t('dialog.note_export.refresh') }}
|
||||
el-button(size="small" @click="exportNoteExport" :disabled="noteExportDialog.loading" style="margin-top:10px") {{ $t('dialog.note_export.export') }}
|
||||
el-button(v-if="noteExportDialog.loading" size="small" @click="cancelNoteExport" style="margin-top:10px") {{ $t('dialog.note_export.cancel') }}
|
||||
span(v-if="noteExportDialog.loading" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.note_export.progress') }} {{ noteExportDialog.progress }}/{{ noteExportDialog.progressTotal }}
|
||||
template(v-if="noteExportDialog.errors")
|
||||
el-button(size="small" @click="noteExportDialog.errors = ''") Clear Errors
|
||||
h2(style="font-weight:bold;margin:0") Errors:
|
||||
el-button(size="small" @click="noteExportDialog.errors = ''") {{ $t('dialog.note_export.clear_errors') }}
|
||||
h2(style="font-weight:bold;margin:0") {{ $t('dialog.note_export.errors') }}
|
||||
pre(v-text="noteExportDialog.errors" style="white-space:pre-wrap;font-size:12px")
|
||||
data-tables(v-if="noteExportDialog.visible" v-bind="noteExportTable" v-loading="noteExportDialog.loading" style="margin-top:10px")
|
||||
el-table-column(label="Image" width="70" prop="currentAvatarThumbnailImageUrl")
|
||||
el-table-column(:label="$t('table.import.image')" width="70" prop="currentAvatarThumbnailImageUrl")
|
||||
template(v-once #default="scope")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row.ref)")
|
||||
img.friends-list-avatar(v-lazy="userImageFull(scope.row.ref)" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(userImageFull(scope.row.ref))")
|
||||
el-table-column(label="Name" width="170" prop="name")
|
||||
el-table-column(:label="$t('table.import.name')" width="170" prop="name")
|
||||
template(v-once #default="scope")
|
||||
span.x-link(v-text="scope.row.name" @click="showUserDialog(scope.row.id)")
|
||||
el-table-column(label="Note" prop="memo")
|
||||
el-table-column(:label="$t('table.import.note')" prop="memo")
|
||||
template(v-once #default="scope")
|
||||
el-input(v-model="scope.row.memo" type="textarea" maxlength="256" show-word-limit :rows="2" :autosize="{ minRows: 1, maxRows: 10 }" size="mini" resize="none")
|
||||
el-table-column(label="Skip Export" width="90" align="right")
|
||||
el-table-column(:label="$t('table.import.skip_export')" width="90" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-close" size="mini" @click="removeFromNoteExportTable(scope.row)")
|
||||
|
||||
|
||||
@@ -38,6 +38,19 @@
|
||||
"filter_placeholder": "Filter",
|
||||
"search_placeholder": "Search"
|
||||
},
|
||||
"player_list": {
|
||||
"capacity": "Capacoty",
|
||||
"last_updated": "Last Updated",
|
||||
"created_at": "Created At",
|
||||
"photon": {
|
||||
"current": "Current",
|
||||
"previous": "Previous",
|
||||
"search_placeholder": "Search",
|
||||
"filter_placeholder": "Filter",
|
||||
"chatbox_blacklist": "Chatbox Blacklist",
|
||||
"status_tooltip": "VRCX Companion Status"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"search_placeholder": "Search",
|
||||
"clear_results_tooltip": "Clear Search Results",
|
||||
@@ -114,7 +127,8 @@
|
||||
"search_placeholder": "Search",
|
||||
"filter_placeholder": "Filter",
|
||||
"refresh_tooltip": "Refresh",
|
||||
"clear_tooltip": "Clear Results"
|
||||
"clear_tooltip": "Clear Results",
|
||||
"cancel_tooltip": "Cancel"
|
||||
},
|
||||
"profile": {
|
||||
"profile": {
|
||||
@@ -616,6 +630,11 @@
|
||||
"fallback": "Fallback",
|
||||
"cache": "Cache"
|
||||
},
|
||||
"labels": {
|
||||
"public": "(Public)",
|
||||
"private": "(Private)",
|
||||
"own": "(Own)"
|
||||
},
|
||||
"actions": {
|
||||
"delete_cache_tooltip": "Delete avatar from cache",
|
||||
"favorite_tooltip": "Add to favorites",
|
||||
@@ -805,6 +824,72 @@
|
||||
"discord_names": {
|
||||
"header": "Discord Names",
|
||||
"description": "Click load missing entries in the Friends List tab to search entire friends list"
|
||||
},
|
||||
"world_export": {
|
||||
"header": "World Favorites Export"
|
||||
},
|
||||
"world_import": {
|
||||
"header": "World Favorites Import",
|
||||
"description": "Enter a list of world IDs",
|
||||
"process_list": "Process List",
|
||||
"process_progress": "Progress:",
|
||||
"select_vrchat_group_placeholder": "Select Group",
|
||||
"select_local_group_placeholder": "Select Group",
|
||||
"import": "Import Worlds",
|
||||
"cancel": "Cancel",
|
||||
"import_progress": "Import Progress:",
|
||||
"clear_table": "Clear Table",
|
||||
"errors": "Errors:",
|
||||
"clear_errors": "Clear Errors"
|
||||
},
|
||||
"avatar_export": {
|
||||
"header": "Avatar Favorites Export"
|
||||
},
|
||||
"avatar_import": {
|
||||
"header": "Avatar Favorites Import",
|
||||
"description": "Enter a list of avatar IDs",
|
||||
"process_list": "Process List",
|
||||
"process_progress": "Progress:",
|
||||
"select_group_placeholder": "Select Group",
|
||||
"import": "Import Avatars",
|
||||
"cancel": "Cancel",
|
||||
"import_progress": "Import Progress:",
|
||||
"clear_table": "Clear Table",
|
||||
"errors": "Errors:",
|
||||
"clear_errors": "Clear Errors"
|
||||
},
|
||||
"friend_export": {
|
||||
"header": "Friend Favorites Export"
|
||||
},
|
||||
"friend_import": {
|
||||
"header": "Friend Favorites Import",
|
||||
"description": "Enter a list of user IDs",
|
||||
"process_list": "Process List",
|
||||
"process_progress": "Progress:",
|
||||
"select_group_placeholder": "Select Group",
|
||||
"import": "Import Friends",
|
||||
"cancel": "Cancel",
|
||||
"import_progress": "Import Progress:",
|
||||
"clear_table": "Clear Table",
|
||||
"errors": "Errors:",
|
||||
"clear_errors": "Clear Errors"
|
||||
},
|
||||
"note_export": {
|
||||
"header": "Note Export",
|
||||
"description1": "This process will export all of your VRCX memos and import them into VRChat notes.",
|
||||
"description2": "Be warned of the following limitations:",
|
||||
"description3": "- API endpoint has a rate limit that requires a large delay between requests.",
|
||||
"description4": "- Character limit of 256 per note.",
|
||||
"description5": "- Swear words filter (no fun allowed).",
|
||||
"description6": "- No new lines (they will replaced with a space).",
|
||||
"description7": "- This will overwrite any existing VRChat notes for these users.",
|
||||
"description8": "- Any edits made here wont affect VRCX memos but will affect VRChat notes once exported.",
|
||||
"refresh": "Refresh",
|
||||
"export": "Export",
|
||||
"cancel": "Cancel",
|
||||
"progress": "Progress:",
|
||||
"errors": "Errors:",
|
||||
"clear_errors": "Clear Errors"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -830,7 +915,11 @@
|
||||
"status": "Status",
|
||||
"rank": "Rank",
|
||||
"language": "Language",
|
||||
"bioLink": "Bio Links"
|
||||
"bioLink": "Bio Links",
|
||||
"date": "Date",
|
||||
"user": "User",
|
||||
"type": "Type",
|
||||
"detail": "Detail"
|
||||
},
|
||||
"friendLog": {
|
||||
"date": "Date",
|
||||
@@ -872,6 +961,15 @@
|
||||
"social_status": {
|
||||
"no": "No.",
|
||||
"status": "Status"
|
||||
},
|
||||
"import": {
|
||||
"image": "Image",
|
||||
"name": "Name",
|
||||
"author": "Author",
|
||||
"status": "Status",
|
||||
"note": "Note",
|
||||
"skip_export": "Skip Export",
|
||||
"action": "Action"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
"filter_placeholder": "篩選遊戲紀錄",
|
||||
"search_placeholder": "搜尋遊戲紀錄"
|
||||
},
|
||||
"player_list": {
|
||||
"photon": {
|
||||
"current": "目前",
|
||||
"previous": "上一個",
|
||||
"search_placeholder": "搜尋",
|
||||
"filter_placeholder": "篩選",
|
||||
"chatbox_blacklist": "聊天框黑名單",
|
||||
"status_tooltip": "VRCX Companion 狀態"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"search_placeholder": "搜尋",
|
||||
"clear_results_tooltip": "清除搜尋結果",
|
||||
@@ -411,7 +421,7 @@
|
||||
"filter_everyone": "所有人",
|
||||
"message_timeout": "訊息時長"
|
||||
},
|
||||
"event_hud": {
|
||||
"timeout_hud": {
|
||||
"header": "玩家愈時 HUD",
|
||||
"enable": "啟用",
|
||||
"enable_tooltip": "需要啟用 SteamVR 疊層選項",
|
||||
@@ -467,7 +477,7 @@
|
||||
"invite_to_group": "邀情到群組",
|
||||
"manage_gallery_icon": "管理相簿 / 圖示",
|
||||
"accept_friend_request": "接受好友邀請",
|
||||
"deny_friend_request": "回絕好友邀請",
|
||||
"decline_friend_request": "回絕好友邀請",
|
||||
"cancel_friend_request": "取消好友邀請",
|
||||
"send_friend_request": "傳送好友邀請",
|
||||
"show_avatar_author": "顯示角色作者",
|
||||
@@ -611,13 +621,17 @@
|
||||
}
|
||||
},
|
||||
"avatar": {
|
||||
"header": "角色",
|
||||
"tags": {
|
||||
"public": "公開",
|
||||
"private": "私人",
|
||||
"fallback": "備用",
|
||||
"cache": "快取"
|
||||
},
|
||||
"labels": {
|
||||
"public": "(公開)",
|
||||
"private": "(私人)",
|
||||
"own": "(自有)"
|
||||
},
|
||||
"actions": {
|
||||
"delete_cache_tooltip": "從快取中刪除角色",
|
||||
"favorite_tooltip": "添加到我的收藏",
|
||||
@@ -807,6 +821,72 @@
|
||||
"discord_names": {
|
||||
"header": "Discord 名稱",
|
||||
"description": "點擊好友列表中的「讀取缺失的項目」來搜尋整個好友列表"
|
||||
},
|
||||
"world_export": {
|
||||
"header": "世界收藏匯出"
|
||||
},
|
||||
"world_import": {
|
||||
"header": "世界收藏匯入",
|
||||
"description": "輸入世界 ID 列表",
|
||||
"process_list": "讀取列表",
|
||||
"process_progress": "進度:",
|
||||
"select_vrchat_group_placeholder": "選擇 VRChat 群組",
|
||||
"select_local_group_placeholder": "選擇本地群組",
|
||||
"import": "匯入世界",
|
||||
"cancel": "取消",
|
||||
"import_progress": "匯入進度:",
|
||||
"clear_table": "清除表格",
|
||||
"errors": "錯誤:",
|
||||
"clear_errors": "清除錯誤"
|
||||
},
|
||||
"avatar_export": {
|
||||
"header": "角色收藏匯出"
|
||||
},
|
||||
"avatar_import": {
|
||||
"header": "角色收藏匯入",
|
||||
"description": "輸入角色 ID 列表",
|
||||
"process_list": "讀取列表",
|
||||
"process_progress": "進度:",
|
||||
"select_group_placeholder": "選擇群組",
|
||||
"import": "匯入角色",
|
||||
"cancel": "取消",
|
||||
"import_progress": "匯入進度:",
|
||||
"clear_table": "清除表格",
|
||||
"errors": "錯誤:",
|
||||
"clear_errors": "清除錯誤"
|
||||
},
|
||||
"friend_export": {
|
||||
"header": "好友收藏匯出"
|
||||
},
|
||||
"friend_import": {
|
||||
"header": "好友收藏匯入",
|
||||
"description": "輸入玩家 ID 列表",
|
||||
"process_list": "讀取列表",
|
||||
"process_progress": "進度:",
|
||||
"select_group_placeholder": "選擇群組",
|
||||
"import": "匯入好友",
|
||||
"cancel": "取消",
|
||||
"import_progress": "匯入進度:",
|
||||
"clear_table": "清除表格",
|
||||
"errors": "錯誤:",
|
||||
"clear_errors": "清除錯誤"
|
||||
},
|
||||
"note_export": {
|
||||
"header": "備註匯出",
|
||||
"description1": "這個過程將匯出你所有的 VRCX 備忘錄並將它們匯入到 VRChat 備註中。",
|
||||
"description2": "請注意以下限制:",
|
||||
"description3": "- API 接口有速率限制,每個請求之間會有很大的延遲。",
|
||||
"description4": "- 每個備註的字數限制為 256 個字元。",
|
||||
"description5": "- 髒話過濾器(沒有樂趣)。",
|
||||
"description6": "- 不能換行(將會被替換成空格)。",
|
||||
"description7": "- 這將會覆蓋這些玩家現有的任何 VRChat 備註。",
|
||||
"description8": "- 在這裡所做的任何編輯都不會影響 VRCX 備忘錄,但會在匯出後會影響 VRChat 備註。",
|
||||
"refresh": "重新整理",
|
||||
"export": "匯出",
|
||||
"cancel": "取消",
|
||||
"progress": "進度:",
|
||||
"errors": "錯誤:",
|
||||
"clear_errors": "清除錯誤"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -832,7 +912,11 @@
|
||||
"status": "狀態",
|
||||
"rank": "階級",
|
||||
"language": "語言",
|
||||
"bioLink": "社交連結"
|
||||
"bioLink": "社交連結",
|
||||
"user": "玩家",
|
||||
"type": "種類",
|
||||
"detail": "詳細",
|
||||
"date": "時間"
|
||||
},
|
||||
"friendLog": {
|
||||
"date": "時間",
|
||||
@@ -874,6 +958,15 @@
|
||||
"social_status": {
|
||||
"no": "No.",
|
||||
"status": "狀蓋"
|
||||
},
|
||||
"import": {
|
||||
"image": "圖片",
|
||||
"name": "名稱",
|
||||
"author": "作者",
|
||||
"status": "狀態",
|
||||
"note": "備註",
|
||||
"skip_export": "跳過匯出",
|
||||
"action": "動作"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user