mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
Translate Spanish UI and runtime strings to English
This commit is contained in:
+7
-7
@@ -34,7 +34,7 @@ function waitForServer(url, timeoutMs = 30_000) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Date.now() - started > timeoutMs) {
|
if (Date.now() - started > timeoutMs) {
|
||||||
rejectPromise(new Error('NodeCG no respondió a tiempo.'));
|
rejectPromise(new Error('NodeCG did not respond in time.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ function waitForServer(url, timeoutMs = 30_000) {
|
|||||||
|
|
||||||
request.on('error', () => {
|
request.on('error', () => {
|
||||||
if (Date.now() - started > timeoutMs) {
|
if (Date.now() - started > timeoutMs) {
|
||||||
rejectPromise(new Error('No fue posible conectar a NodeCG.'));
|
rejectPromise(new Error('Could not connect to NodeCG.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,8 +71,8 @@ function startNodeCG() {
|
|||||||
nodecgProcess.on('exit', (code) => {
|
nodecgProcess.on('exit', (code) => {
|
||||||
if (!app.isQuiting) {
|
if (!app.isQuiting) {
|
||||||
dialog.showErrorBox(
|
dialog.showErrorBox(
|
||||||
'NodeCG finalizado',
|
'NodeCG exited',
|
||||||
`El proceso de NodeCG terminó inesperadamente con código ${code ?? 'desconocido'}.`
|
`The NodeCG process ended unexpectedly with code ${code ?? 'unknown'}.`
|
||||||
);
|
);
|
||||||
app.quit();
|
app.quit();
|
||||||
}
|
}
|
||||||
@@ -80,8 +80,8 @@ function startNodeCG() {
|
|||||||
|
|
||||||
nodecgProcess.on('error', (error) => {
|
nodecgProcess.on('error', (error) => {
|
||||||
dialog.showErrorBox(
|
dialog.showErrorBox(
|
||||||
'No se pudo iniciar NodeCG',
|
'Could not start NodeCG',
|
||||||
`No se pudo ejecutar \"${runtimeBinary}\". ${useElectronNodeForNodeCG ? 'Desactivá NODECG_USE_ELECTRON_NODE o revisá Electron.' : 'Definí NODE_BINARY con la ruta de Node.js.'}\n\nDetalle: ${error.message}`
|
`Could not run \"${runtimeBinary}\". ${useElectronNodeForNodeCG ? 'Disable NODECG_USE_ELECTRON_NODE or check your Electron setup.' : 'Set NODE_BINARY to your Node.js path.'}\n\nDetails: ${error.message}`
|
||||||
);
|
);
|
||||||
app.quit();
|
app.quit();
|
||||||
});
|
});
|
||||||
@@ -117,7 +117,7 @@ app.whenReady().then(async () => {
|
|||||||
await waitForServer(`http://127.0.0.1:${nodecgPort}`);
|
await waitForServer(`http://127.0.0.1:${nodecgPort}`);
|
||||||
await createWindow();
|
await createWindow();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
dialog.showErrorBox('No se pudo iniciar', error instanceof Error ? error.message : String(error));
|
dialog.showErrorBox('Could not start', error instanceof Error ? error.message : String(error));
|
||||||
app.quit();
|
app.quit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -482,7 +482,7 @@ watchEffect(() => {
|
|||||||
>
|
>
|
||||||
<QCardSection>
|
<QCardSection>
|
||||||
<div class="text-subtitle1 text-weight-bold">
|
<div class="text-subtitle1 text-weight-bold">
|
||||||
Lado izquierdo
|
Left side
|
||||||
</div>
|
</div>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QSeparator />
|
<QSeparator />
|
||||||
@@ -491,7 +491,7 @@ watchEffect(() => {
|
|||||||
v-model="scoreboardStore.scoreboard.leftPlayerId"
|
v-model="scoreboardStore.scoreboard.leftPlayerId"
|
||||||
v-model:input-value="leftInput"
|
v-model:input-value="leftInput"
|
||||||
:options="leftPlayerOptions"
|
:options="leftPlayerOptions"
|
||||||
label="Jugador"
|
label="Player"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
emit-value
|
emit-value
|
||||||
@@ -535,7 +535,7 @@ watchEffect(() => {
|
|||||||
v-if="leftCanSave"
|
v-if="leftCanSave"
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="save"
|
icon="save"
|
||||||
label="Guardar jugador"
|
label="Save player"
|
||||||
class="q-mt-sm"
|
class="q-mt-sm"
|
||||||
@click="saveLeftPlayer"
|
@click="saveLeftPlayer"
|
||||||
/>
|
/>
|
||||||
@@ -543,7 +543,7 @@ watchEffect(() => {
|
|||||||
v-if="leftHasSelectedPlayerChanges"
|
v-if="leftHasSelectedPlayerChanges"
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="save"
|
icon="save"
|
||||||
label="Guardar cambios del jugador"
|
label="Save player changes"
|
||||||
class="q-mt-sm q-ml-sm"
|
class="q-mt-sm q-ml-sm"
|
||||||
@click="saveLeftSelectedPlayerChanges"
|
@click="saveLeftSelectedPlayerChanges"
|
||||||
/>
|
/>
|
||||||
@@ -567,7 +567,7 @@ watchEffect(() => {
|
|||||||
>
|
>
|
||||||
<QCardSection>
|
<QCardSection>
|
||||||
<div class="text-subtitle1 text-weight-bold">
|
<div class="text-subtitle1 text-weight-bold">
|
||||||
Lado derecho
|
Right side
|
||||||
</div>
|
</div>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QSeparator />
|
<QSeparator />
|
||||||
@@ -576,7 +576,7 @@ watchEffect(() => {
|
|||||||
v-model="scoreboardStore.scoreboard.rightPlayerId"
|
v-model="scoreboardStore.scoreboard.rightPlayerId"
|
||||||
v-model:input-value="rightInput"
|
v-model:input-value="rightInput"
|
||||||
:options="rightPlayerOptions"
|
:options="rightPlayerOptions"
|
||||||
label="Jugador"
|
label="Player"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
emit-value
|
emit-value
|
||||||
@@ -620,7 +620,7 @@ watchEffect(() => {
|
|||||||
v-if="rightCanSave"
|
v-if="rightCanSave"
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="save"
|
icon="save"
|
||||||
label="Guardar jugador"
|
label="Save player"
|
||||||
class="q-mt-sm"
|
class="q-mt-sm"
|
||||||
@click="saveRightPlayer"
|
@click="saveRightPlayer"
|
||||||
/>
|
/>
|
||||||
@@ -628,7 +628,7 @@ watchEffect(() => {
|
|||||||
v-if="rightHasSelectedPlayerChanges"
|
v-if="rightHasSelectedPlayerChanges"
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="save"
|
icon="save"
|
||||||
label="Guardar cambios del jugador"
|
label="Save player changes"
|
||||||
class="q-mt-sm q-ml-sm"
|
class="q-mt-sm q-ml-sm"
|
||||||
@click="saveRightSelectedPlayerChanges"
|
@click="saveRightSelectedPlayerChanges"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ useHead({ title: 'About' });
|
|||||||
About
|
About
|
||||||
</div>
|
</div>
|
||||||
<div class="text-body1">
|
<div class="text-body1">
|
||||||
Información del bundle y enlaces relevantes.
|
Bundle information and relevant links.
|
||||||
</div>
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -71,14 +71,14 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
|
|||||||
Graphics
|
Graphics
|
||||||
</div>
|
</div>
|
||||||
<div class="text-body1 q-mb-lg">
|
<div class="text-body1 q-mb-lg">
|
||||||
Controles y estado de gráficos del bundle.
|
Bundle graphics controls and status.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="graphics.length === 0"
|
v-if="graphics.length === 0"
|
||||||
class="text-body2 text-grey-5"
|
class="text-body2 text-grey-5"
|
||||||
>
|
>
|
||||||
No hay gráficos configurados en el bundle.
|
There are no graphics configured in this bundle.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row q-col-gutter-md">
|
<div class="row q-col-gutter-md">
|
||||||
@@ -122,7 +122,7 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
|
|||||||
<QBtn
|
<QBtn
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="content_copy"
|
icon="content_copy"
|
||||||
label="Copiar URL"
|
label="Copy URL"
|
||||||
@click="copyUrl(graphic)"
|
@click="copyUrl(graphic)"
|
||||||
/>
|
/>
|
||||||
<QBtn
|
<QBtn
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ const savePlayer = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const deletePlayer = (row: PlayerRow) => {
|
const deletePlayer = (row: PlayerRow) => {
|
||||||
const confirmed = window.confirm(`¿Eliminar a ${row.gamertag || 'este jugador'}?`);
|
const confirmed = window.confirm(`Delete ${row.gamertag || 'this player'}?`);
|
||||||
if (!confirmed) {
|
if (!confirmed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -134,7 +134,7 @@ const handleImport = async (event: Event) => {
|
|||||||
const parsed = JSON.parse(text) as unknown;
|
const parsed = JSON.parse(text) as unknown;
|
||||||
playersStore.setPlayers(parsed as PlayersMap);
|
playersStore.setPlayers(parsed as PlayersMap);
|
||||||
} catch {
|
} catch {
|
||||||
window.alert('No se pudo importar el JSON. Verifica el formato.');
|
window.alert('Could not import JSON. Check the format.');
|
||||||
} finally {
|
} finally {
|
||||||
if (target) {
|
if (target) {
|
||||||
target.value = '';
|
target.value = '';
|
||||||
@@ -153,7 +153,7 @@ const handleImport = async (event: Event) => {
|
|||||||
<QBtn
|
<QBtn
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="add"
|
icon="add"
|
||||||
label="Nuevo jugador"
|
label="New player"
|
||||||
class="q-ml-sm"
|
class="q-ml-sm"
|
||||||
@click="openCreateDialog"
|
@click="openCreateDialog"
|
||||||
/>
|
/>
|
||||||
@@ -164,7 +164,7 @@ const handleImport = async (event: Event) => {
|
|||||||
v-model="filter"
|
v-model="filter"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
placeholder="Buscar..."
|
placeholder="Search..."
|
||||||
class="players-search"
|
class="players-search"
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
@@ -176,14 +176,14 @@ const handleImport = async (event: Event) => {
|
|||||||
color="secondary"
|
color="secondary"
|
||||||
outline
|
outline
|
||||||
icon="file_upload"
|
icon="file_upload"
|
||||||
label="Importar JSON"
|
label="Import JSON"
|
||||||
@click="triggerImport"
|
@click="triggerImport"
|
||||||
/>
|
/>
|
||||||
<QBtn
|
<QBtn
|
||||||
color="secondary"
|
color="secondary"
|
||||||
outline
|
outline
|
||||||
icon="file_download"
|
icon="file_download"
|
||||||
label="Exportar JSON"
|
label="Export JSON"
|
||||||
@click="exportPlayers"
|
@click="exportPlayers"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
@@ -227,7 +227,7 @@ const handleImport = async (event: Event) => {
|
|||||||
<QCard class="players-dialog">
|
<QCard class="players-dialog">
|
||||||
<QCardSection>
|
<QCardSection>
|
||||||
<div class="text-h6">
|
<div class="text-h6">
|
||||||
{{ editingId ? 'Editar jugador' : 'Nuevo jugador' }}
|
{{ editingId ? 'Edit player' : 'New player' }}
|
||||||
</div>
|
</div>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QSeparator />
|
<QSeparator />
|
||||||
@@ -294,13 +294,13 @@ const handleImport = async (event: Event) => {
|
|||||||
<QCardActions align="right">
|
<QCardActions align="right">
|
||||||
<QBtn
|
<QBtn
|
||||||
flat
|
flat
|
||||||
label="Cancelar"
|
label="Cancel"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
@click="isDialogOpen = false"
|
@click="isDialogOpen = false"
|
||||||
/>
|
/>
|
||||||
<QBtn
|
<QBtn
|
||||||
color="primary"
|
color="primary"
|
||||||
label="Guardar"
|
label="Save"
|
||||||
@click="savePlayer"
|
@click="savePlayer"
|
||||||
/>
|
/>
|
||||||
</QCardActions>
|
</QCardActions>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ useHead({ title: 'Settings' });
|
|||||||
Settings
|
Settings
|
||||||
</div>
|
</div>
|
||||||
<div class="text-body1">
|
<div class="text-body1">
|
||||||
Configuración del dashboard y del bundle.
|
Dashboard and bundle configuration.
|
||||||
</div>
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const leftName = computed(() => {
|
|||||||
return scoreboard.value.leftNameOverride;
|
return scoreboard.value.leftNameOverride;
|
||||||
}
|
}
|
||||||
const player = players.value[scoreboard.value.leftPlayerId];
|
const player = players.value[scoreboard.value.leftPlayerId];
|
||||||
return player?.gamertag || 'Jugador 1';
|
return player?.gamertag || 'Player 1';
|
||||||
});
|
});
|
||||||
|
|
||||||
const rightName = computed(() => {
|
const rightName = computed(() => {
|
||||||
@@ -37,7 +37,7 @@ const rightName = computed(() => {
|
|||||||
return scoreboard.value.rightNameOverride;
|
return scoreboard.value.rightNameOverride;
|
||||||
}
|
}
|
||||||
const player = players.value[scoreboard.value.rightPlayerId];
|
const player = players.value[scoreboard.value.rightPlayerId];
|
||||||
return player?.gamertag || 'Jugador 2';
|
return player?.gamertag || 'Player 2';
|
||||||
});
|
});
|
||||||
|
|
||||||
const leftTeam = computed(() => scoreboard.value.leftTeamOverride || '');
|
const leftTeam = computed(() => scoreboard.value.leftTeamOverride || '');
|
||||||
|
|||||||
Reference in New Issue
Block a user