Merge pull request #40 from Pandipipas/translate-all-spanish-texts-to-english

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