mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 22:33:50 +02:00
Add Spanish localization (synchronized with crowdin) (#734)
* Add files via upload * Update README.es_ES.md * Create en.json * Update README.es_ES.md * Update README.es_ES.md * Update en.json * updated spanish json, added lang * Rename README.es_ES.md to README.es.md * Update README.md Spanish has been added to the list of available languages. * Update README.fr.md Spanish has been added to the list of available languages. * Update README.it.md Spanish has been added to the list of available languages. * Update README.jp.md Spanish has been added to the list of available languages. * Update README.ru_RU.md Spanish has been added to the list of available languages. * Update README.zh_CN.md Spanish has been added to the list of available languages. * Fixed translation tags on profile tab * [Implem. Fix] Past names * Updating strings * Update localization strings in en.json * Temporary fix to world clasification dropdown localization * Updating spanish translations * Update translations * Removing things my vscode changed lol * Updating spanish translations --------- Co-authored-by: Miguel Campo (migue802) <contact@migue802.com> Co-authored-by: migue802 <54627022+migue802@users.noreply.github.com>
This commit is contained in:
@@ -639,12 +639,12 @@ speechSynthesis.getVoices();
|
||||
if (
|
||||
args.json.length > 0 &&
|
||||
((options.params.offset += args.json.length),
|
||||
// eslint-disable-next-line no-nested-ternary
|
||||
options.N > 0
|
||||
? options.N > options.params.offset
|
||||
: options.N < 0
|
||||
? args.json.length
|
||||
: options.params.n === args.json.length)
|
||||
// eslint-disable-next-line no-nested-ternary
|
||||
options.N > 0
|
||||
? options.N > options.params.offset
|
||||
: options.N < 0
|
||||
? args.json.length
|
||||
: options.params.n === args.json.length)
|
||||
) {
|
||||
this.bulk(options);
|
||||
} else if ('done' in options) {
|
||||
@@ -1029,7 +1029,7 @@ speechSynthesis.getVoices();
|
||||
(this.worlddialogshortname &&
|
||||
this.locationobject.shortName &&
|
||||
this.worlddialogshortname ===
|
||||
this.locationobject.shortName) ||
|
||||
this.locationobject.shortName) ||
|
||||
this.currentuserid === this.locationobject.userId
|
||||
) {
|
||||
this.isUnlocked = true;
|
||||
@@ -5355,7 +5355,7 @@ speechSynthesis.getVoices();
|
||||
if (
|
||||
!this.enablePrimaryPassword &&
|
||||
(await configRepository.getString('lastUserLoggedIn')) !==
|
||||
null
|
||||
null
|
||||
) {
|
||||
// login at startup
|
||||
this.loginForm.loading = true;
|
||||
@@ -5771,7 +5771,7 @@ speechSynthesis.getVoices();
|
||||
if (i > 0) {
|
||||
if (
|
||||
data[i - 1].created_at ===
|
||||
this.sharedFeed.gameLog.lastEntryDate &&
|
||||
this.sharedFeed.gameLog.lastEntryDate &&
|
||||
forceUpdate === false
|
||||
) {
|
||||
return;
|
||||
@@ -5804,9 +5804,9 @@ speechSynthesis.getVoices();
|
||||
if (
|
||||
feedItem.type === 'OnPlayerLeft' &&
|
||||
Date.parse(feedItem.created_at) >=
|
||||
currentUserLeaveTime &&
|
||||
currentUserLeaveTime &&
|
||||
Date.parse(feedItem.created_at) <=
|
||||
currentUserLeaveTimeOffset
|
||||
currentUserLeaveTimeOffset
|
||||
) {
|
||||
wristArr.splice(k, 1);
|
||||
w--;
|
||||
@@ -5823,7 +5823,7 @@ speechSynthesis.getVoices();
|
||||
feedItem.type === 'OnPlayerJoined' &&
|
||||
Date.parse(feedItem.created_at) >= locationJoinTime &&
|
||||
Date.parse(feedItem.created_at) <=
|
||||
locationJoinTimeOffset
|
||||
locationJoinTimeOffset
|
||||
) {
|
||||
wristArr.splice(k, 1);
|
||||
w--;
|
||||
@@ -5989,7 +5989,7 @@ speechSynthesis.getVoices();
|
||||
if (i > 0) {
|
||||
if (
|
||||
data[i - 1].created_at ===
|
||||
this.sharedFeed.feedTable.lastEntryDate &&
|
||||
this.sharedFeed.feedTable.lastEntryDate &&
|
||||
forceUpdate === false
|
||||
) {
|
||||
return;
|
||||
@@ -6069,7 +6069,7 @@ speechSynthesis.getVoices();
|
||||
if (i > 0) {
|
||||
if (
|
||||
data[i - 1].created_at ===
|
||||
this.sharedFeed.notificationTable.lastEntryDate &&
|
||||
this.sharedFeed.notificationTable.lastEntryDate &&
|
||||
forceUpdate === false
|
||||
) {
|
||||
return;
|
||||
@@ -6135,7 +6135,7 @@ speechSynthesis.getVoices();
|
||||
if (i > 0) {
|
||||
if (
|
||||
data[i - 1].created_at ===
|
||||
this.sharedFeed.friendLogTable.lastEntryDate &&
|
||||
this.sharedFeed.friendLogTable.lastEntryDate &&
|
||||
forceUpdate === false
|
||||
) {
|
||||
return;
|
||||
@@ -6204,7 +6204,7 @@ speechSynthesis.getVoices();
|
||||
if (i > 0) {
|
||||
if (
|
||||
data[i - 1].created_at ===
|
||||
this.sharedFeed.moderationAgainstTable.lastEntryDate &&
|
||||
this.sharedFeed.moderationAgainstTable.lastEntryDate &&
|
||||
forceUpdate === false
|
||||
) {
|
||||
return;
|
||||
@@ -7340,7 +7340,7 @@ speechSynthesis.getVoices();
|
||||
if (this.loginForm.lastUserLoggedIn) {
|
||||
var user =
|
||||
this.loginForm.savedCredentials[
|
||||
this.loginForm.lastUserLoggedIn
|
||||
this.loginForm.lastUserLoggedIn
|
||||
];
|
||||
if (typeof user !== 'undefined') {
|
||||
await webApiService.clearCookies();
|
||||
@@ -7790,8 +7790,8 @@ speechSynthesis.getVoices();
|
||||
savedCredentials:
|
||||
(await configRepository.getString('savedCredentials')) !== null
|
||||
? JSON.parse(
|
||||
await configRepository.getString('savedCredentials')
|
||||
)
|
||||
await configRepository.getString('savedCredentials')
|
||||
)
|
||||
: {},
|
||||
lastUserLoggedIn: await configRepository.getString('lastUserLoggedIn'),
|
||||
rules: {
|
||||
@@ -7843,9 +7843,9 @@ speechSynthesis.getVoices();
|
||||
.then(({ value }) => {
|
||||
let saveCredential =
|
||||
this.loginForm.savedCredentials[
|
||||
Object.keys(
|
||||
this.loginForm.savedCredentials
|
||||
)[0]
|
||||
Object.keys(
|
||||
this.loginForm.savedCredentials
|
||||
)[0]
|
||||
];
|
||||
security
|
||||
.decrypt(
|
||||
@@ -10096,7 +10096,7 @@ speechSynthesis.getVoices();
|
||||
if (
|
||||
ref.location !== this.lastLocation.location &&
|
||||
ref.travelingToLocation !==
|
||||
this.lastLocation.location
|
||||
this.lastLocation.location
|
||||
) {
|
||||
// fix $location_at with private
|
||||
ref.$location_at = joinTime;
|
||||
@@ -11452,7 +11452,7 @@ speechSynthesis.getVoices();
|
||||
var displayName = this.getDisplayNameFromPhotonId(senderId);
|
||||
var feed = `RPC ${displayName} ${
|
||||
this.photonEventType[eventData.EventType]
|
||||
}${eventName}`;
|
||||
}${eventName}`;
|
||||
console.log('VrcRpc:', feed);
|
||||
}
|
||||
}
|
||||
@@ -12507,8 +12507,8 @@ speechSynthesis.getVoices();
|
||||
|
||||
$app.methods.formatSeconds = function (duration) {
|
||||
var pad = function (num, size) {
|
||||
return `000${num}`.slice(size * -1);
|
||||
},
|
||||
return `000${num}`.slice(size * -1);
|
||||
},
|
||||
time = parseFloat(duration).toFixed(3),
|
||||
hours = Math.floor(time / 60 / 60),
|
||||
minutes = Math.floor(time / 60) % 60,
|
||||
@@ -12735,7 +12735,7 @@ speechSynthesis.getVoices();
|
||||
(this.nowPlaying.startTime -
|
||||
this.nowPlaying.offset +
|
||||
this.nowPlaying.length) *
|
||||
1000
|
||||
1000
|
||||
);
|
||||
}
|
||||
} else if (!this.discordHideImage && L.thumbnailImageUrl) {
|
||||
@@ -14607,7 +14607,7 @@ speechSynthesis.getVoices();
|
||||
speechSynthesis.cancel();
|
||||
if (
|
||||
(await configRepository.getString('VRCX_notificationTTS')) ===
|
||||
'Never' &&
|
||||
'Never' &&
|
||||
this.notificationTTS !== 'Never'
|
||||
) {
|
||||
this.speak('Notification text-to-speech enabled');
|
||||
@@ -17231,7 +17231,7 @@ speechSynthesis.getVoices();
|
||||
var response = await webApiService.execute({
|
||||
url: `${
|
||||
this.avatarRemoteDatabaseProvider
|
||||
}?${type}=${encodeURIComponent(search)}&n=5000`,
|
||||
}?${type}=${encodeURIComponent(search)}&n=5000`,
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Referer: 'https://vrcx.pypy.moe'
|
||||
@@ -28946,6 +28946,41 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// reload translations - temporary solution
|
||||
|
||||
$app.userDialogWorldSortingOptions = {
|
||||
updated: {
|
||||
name: $t('dialog.user.worlds.sorting.updated'),
|
||||
value: 'updated'
|
||||
},
|
||||
created: {
|
||||
name: $t('dialog.user.worlds.sorting.created'),
|
||||
value: 'created'
|
||||
},
|
||||
favorites: {
|
||||
name: $t('dialog.user.worlds.sorting.favorites'),
|
||||
value: 'favorites'
|
||||
},
|
||||
popularity: {
|
||||
name: $t('dialog.user.worlds.sorting.popularity'),
|
||||
value: 'popularity'
|
||||
}
|
||||
};
|
||||
|
||||
$app.userDialogWorldOrderOptions = {
|
||||
descending: {
|
||||
name: $t('dialog.user.worlds.order.descending'),
|
||||
value: 'descending'
|
||||
},
|
||||
ascending: {
|
||||
name: $t('dialog.user.worlds.order.ascending'),
|
||||
value: 'ascending'
|
||||
}
|
||||
};
|
||||
|
||||
$app.userDialog.worldSorting = $app.userDialogWorldSortingOptions.updated;
|
||||
$app.userDialog.worldOrder = $app.userDialogWorldOrderOptions.descending;
|
||||
};
|
||||
initLanguage();
|
||||
|
||||
|
||||
1623
html/src/localization/es/en.json
Normal file
1623
html/src/localization/es/en.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,9 @@ import elements_vi from 'element-ui/lib/locale/lang/vi';
|
||||
import ru_RU from './ru/en.json' assert { type: 'JSON' };
|
||||
import elements_ru from 'element-ui/lib/locale/lang/ru-RU';
|
||||
|
||||
import es from './es/en.json' assert { type: 'JSON' };
|
||||
import elements_es from 'element-ui/lib/locale/lang/es';
|
||||
|
||||
const localized_en = { ...en, ...elements_en };
|
||||
const localized_zh_TW = { ...zh_TW, ...elements_zh_TW };
|
||||
const localized_zh_CN = { ...zh_CN, ...elements_zh_CN };
|
||||
@@ -30,6 +33,7 @@ const localized_ja = { ...ja, ...elements_ja };
|
||||
const localized_fr = { ...fr, ...elements_fr };
|
||||
const localized_vi = { ...vi, ...elements_vi };
|
||||
const localized_ru = { ...ru_RU, ...elements_ru };
|
||||
const localized_es = { ...es, ...elements_es };
|
||||
|
||||
export {
|
||||
localized_en as en,
|
||||
@@ -39,5 +43,7 @@ export {
|
||||
localized_ja as ja_JP,
|
||||
localized_fr as fr,
|
||||
localized_vi as vi,
|
||||
localized_ru as ru_RU
|
||||
localized_ru as ru_RU,
|
||||
localized_es as es
|
||||
|
||||
};
|
||||
|
||||
@@ -60,12 +60,12 @@ mixin profileTab()
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteMessageTable.visible" v-bind="inviteMessageTable" style="margin-top:10px")
|
||||
el-table-column(label="Slot" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(label="Message" prop="message")
|
||||
el-table-column(label="Cool Down" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(v-once #default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(label="Action" width="60" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('message', scope.row)")
|
||||
div.options-container
|
||||
@@ -75,12 +75,12 @@ mixin profileTab()
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteResponseMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteResponseMessageTable.visible" v-bind="inviteResponseMessageTable" style="margin-top:10px")
|
||||
el-table-column(label="Slot" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(label="Message" prop="message")
|
||||
el-table-column(label="Cool Down" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(v-once #default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(label="Action" width="60" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('response', scope.row)")
|
||||
div.options-container
|
||||
@@ -90,12 +90,12 @@ mixin profileTab()
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteRequestMessageTable.visible" v-bind="inviteRequestMessageTable" style="margin-top:10px")
|
||||
el-table-column(label="Slot" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(label="Message" prop="message")
|
||||
el-table-column(label="Cool Down" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(v-once #default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(label="Action" width="60" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('request', scope.row)")
|
||||
div.options-container
|
||||
@@ -105,21 +105,21 @@ mixin profileTab()
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestResponseMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteRequestResponseMessageTable.visible" v-bind="inviteRequestResponseMessageTable" style="margin-top:10px")
|
||||
el-table-column(label="Slot" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(label="Message" prop="message")
|
||||
el-table-column(label="Cool Down" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(v-once #default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(label="Action" width="60" align="right")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(v-once #default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('requestResponse', scope.row)")
|
||||
div.options-container
|
||||
span.header {{ $t('view.profile.past_display_names') }}
|
||||
data-tables(v-bind="pastDisplayNameTable" style="margin-top:10px")
|
||||
el-table-column(label="Date" prop="updated_at" sortable="custom")
|
||||
el-table-column(:label="$t('table.profile.previous_display_name.date')" prop="updated_at" sortable="custom")
|
||||
template(v-once #default="scope")
|
||||
span {{ scope.row.updated_at | formatDate('long') }}
|
||||
el-table-column(label="Name" prop="displayName")
|
||||
el-table-column(:label="$t('table.profile.previous_display_name.name')" prop="displayName")
|
||||
div.options-container
|
||||
span.header {{ $t('view.profile.config_json') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
|
||||
Reference in New Issue
Block a user