dsh-eslat
Verifieddsh-eslat · v2.0.0 · MIT · Web UI
EsLat — traducción al español de Latinoamérica de toda la interfaz web de DeepSeek Harness (DSH): 1615 etiquetas en 36 namespaces del cliente
Install
dsh plugin add dsh-eslat Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-eslat · EsLat
English summary — EsLat is a DeepSeek Harness language bundle that translates the whole web GUI into neutral Latin American Spanish: 1,615 labels across all 36 client namespaces shipped by DSH 0.2.0-rc.2 — conversation, sidebar, settings, trajectory, tool calls, status summaries, dialogs, errors and empty states. Nothing is left falling back to English. Install with
dsh plugin add dsh-eslat, or from the Plugins page in the sidebar. Revert to English with Settings → Idioma → English. Full documentation below is in Spanish.
Traducción completa al español neutro de Latinoamérica de la interfaz web de DSH. Es un paquete
de idioma: registra el idioma es y un diccionario para cada namespace que el cliente de DSH
publica, de modo que la interfaz entera —no solo las herramientas— aparece en español.
Conversación → Escribe un mensaje o una tarea, / para comandos, @ para archivos o sesiones
Barra lateral → Espacios de trabajo · Sesiones · Archivar · Fijar · Cambiar nombre
Ajustes → Configuración · Apariencia · Permisos · Tamaño de letra · Atajos
Trayectoria → Turnos · Llamadas · Solicitudes · Mediciones · Uso de tokens
Herramientas → Leer / Escribir / Editar / Buscar en el contenido / PowerShell / Crear subagente
Estados → En ejecución / Preparando la llamada / Fallida / Detenida
Resúmenes → Leyendo archivos · Completado en 12 s · Se leyeron archivos y se ejecutaron comandos
Instalación
Es un bundle de DSH (dsh.bundle.patch), así que se instala como cualquier otro plugin.
Desde npm
dsh plugin add dsh-eslat
o en la interfaz web: barra lateral → Plugins → Add plugin → escribe el nombre del paquete → Install. El diálogo acepta también una dirección Git, un tarball o una ruta local absoluta.
Desde un tarball
Sin cuenta de npm y sin permisos de compilación: el tarball trae la mitad Cliente ya construida.
dsh plugin add ./dsh-eslat-2.0.0.tgz
Desde un repositorio Git
dsh plugin add github:Amador-Aguilar/dsh-eslat
Este paquete no necesita prepare ni autorizar scripts de compilación: el bundle del navegador
(lib/client.js) se publica construido, no se genera al instalar.
En este equipo (desarrollo)
En el perfil desktop está instalado desde el registro ("dsh-eslat": "^2.0.0"). Para probar
cambios locales sin publicar, instálalo desde la ruta del proyecto con el gestor de plugins: queda
como link: y los cambios de src/ + node tools/build.mjs se aplican al recargar la página.
Activación
Al montarse, el plugin registra el idioma y sus diccionarios, y selecciona Español una sola vez,
sustituyendo únicamente el idioma por defecto (en). Después:
| Situación | Qué ocurre |
|---|---|
| La interfaz estaba en inglés (por defecto) | Pasa a Español; toda la interfaz cambia |
| Ya estaba en chino u otro idioma elegido | No se toca nada: solo sustituye el idioma por defecto |
| El usuario cambia a otro idioma en Configuración → Idioma | Se respeta para siempre; el plugin no vuelve a forzar el español |
| Un shell nativo vuelve a anunciar su idioma por defecto | El plugin recupera el español, porque la elección no fue del usuario |
La memoria de esa decisión vive en localStorage del navegador (dsh-eslat:activation). Si el
almacenamiento no está disponible, el plugin selecciona español en cada carga cuando la interfaz está
en inglés.
Para volver atrás: Configuración → General → Idioma → English. Para desinstalarlo, página Plugins.
Cobertura
1.615 de 1.615 claves (100 %) en 36 de 36 namespaces. La verificación por clave lo garantiza y falla si alguna falta.
| Grupo | Namespaces | Claves |
|---|---|---|
| Conversación y chat | conversation 367 · chat 186 |
553 |
| Trayectoria y entregables | trajectory 192 · deliverables 60 |
252 |
| Navegación y paneles | workspace 112 · sidebarRight 34 · sidebarBrowser 19 · sidebarFiles 11 · sidebarDocumentPreview 11 · sidebar 5 · sidebarTerminal 1 |
193 |
| Ajustes y preferencias | settings 34 · shortcuts 28 · permission.access 17 · settings.permission 12 · settings.theme 9 |
100 |
| Tareas y automatización | schedule.manager 133 · job 39 · workflowRun 18 · schedule.catalog 16 |
206 |
| Herramientas y agentes | cordis 51 · subagent 39 · model 23 · slash.menu 9 · skill 8 |
130 |
| Comandos y diálogos | question 31 · command 28 · feedback 20 · plan 17 · goal 12 · approval 1 |
109 |
| Base compartida | common 41 · open-in-app 15 · reference 11 · documentMarkdown 4 · settings.locale 1 |
72 |
Dialecto
Español neutro de Latinoamérica, con estas decisiones aplicadas en todo el paquete:
| Se usa | En lugar de |
|---|---|
| Configuración | Ajustes |
| presiona / haz clic | pulsa / pincha |
| agregar | añadir |
| computadora, celular | ordenador, móvil |
| archivo | fichero |
| costo | coste |
dd/mm/aaaa, millar con punto (1.615) |
formato inglés |
Términos que se mantienen: Bash, PowerShell, JSON, ZIP, TTFT, tok/s, Markdown,
Cordis, sandbox, preset y los nombres de modelos.
test/verify.mjs incluye un guardián de dialecto: falla si reaparece un lexema peninsular
(ordenador, fichero, puls…, añad…, vosotros, móvil, coger, pinch…, zumo, patata,
coche).
Identidad del plugin
| Capa | Valor | Dónde se define |
|---|---|---|
| Nombre visible | EsLat | locale/{en,es}.json → meta.title |
| Nombre técnico (npm y id del módulo del navegador) | dsh-eslat |
package.json → name |
| Icono | «Es» sobre «Lat»: degradado azul + cian, 36×36 | icon.svg |
| Autor | Amador Aguilar (@amador_aguilar en npm, Amador-Aguilar en GitHub) |
package.json → author |
| Repositorio | github.com/Amador-Aguilar/dsh-eslat | package.json → repository |
La autoría formal la registra npm al publicar (npm owner ls dsh-eslat); la tarjeta de Plugins solo
muestra icono, título y descripción.
Estructura
package.json manifiesto: dsh.bundle.patch + dsh.client (platform web)
cordis.patch.yml capa de parche del bundle: inserta la fila eslat
lib/index.js mitad Host: inerte, solo mantiene el paquete en el árbol del Loader
lib/client.js mitad Cliente construida (generada) — todo el comportamiento vive aquí
lib/client.js.map source map de identidad del bundle
locale/{en,es}.json título y descripción del plugin en la página Plugins
icon.svg icono de la tarjeta (36×36, convención de DSH)
src/<namespace>.es.json un diccionario por namespace; añadir cobertura es añadir un archivo
src/language.json definición del idioma: id, etiqueta y respaldo
tools/build.mjs construye lib/client.js y su map a partir de src/
tools/extract-shipped-keys.mjs descubre los namespaces de DSH y regenera la instantánea de claves
test/verify.mjs claves, marcadores, dialecto, frescura del bundle y requisitos de publicación
test/smoke.mjs ejecuta la mitad Cliente contra dobles de prueba
test/shipped-en.json instantánea de los diccionarios ingleses de DSH 0.2.0-rc.2
Solo se publica la primera mitad: src/, tools/ y test/ son material del repositorio.
Por qué la mitad Cliente es un archivo construido
DSH sirve cada plugin del navegador como un bundle lazy-CJS ya construido: el host lee
exports["./client"] y el navegador evalúa el archivo, que debe estar en la forma del cargador de
módulos (window.__ModuleLoader__.load({ id, factory })) y no puede importar nada, porque el
protocolo no admite require relativos entre bundles. Por eso los diccionarios viven en src/ y se
incorporan al bundle generado.
Desarrollo
node tools/build.mjs # regenera lib/client.js y su map
node test/verify.mjs # claves, marcadores, dialecto, frescura, publicación
node test/verify.mjs --strict # además exige cobertura 100 %
node test/smoke.mjs # comportamiento de la mitad Cliente
node tools/extract-shipped-keys.mjs # re-descubre los namespaces de la imagen instalada
verify distingue errores (clave inexistente, marcador {…} que no cuadra, bundle obsoleto,
lexema peninsular) de cobertura pendiente, que informa; --strict la exige y es lo que corre
prepublishOnly.
test/shipped-en.json es una instantánea extraída de DSH 0.2.0-rc.2. Si una versión futura
renombra o añade claves, node tools/extract-shipped-keys.mjs refresca la instantánea y verify
dice exactamente qué falta.
Publicar
prepublishOnly encadena build + verify --strict + smoke, así que no puede salir una versión con
cobertura incompleta.
npm run verify # build + verificación + pruebas
npm publish # con OTP: npm publish --otp=123456
Requisitos que verify comprueba: dsh.bundle.patch presente, la fila del patch con el nombre del
paquete, name/version válidos, mitad Cliente construida y en files, engines.dsh, licencia y
prepublishOnly.
Limitaciones
- Claves atadas a una versión — la verificación está anclada a DSH
0.2.0-rc.2. Una clave renombrada aguas arriba revierte esa etiqueta al inglés hasta que se actualice el diccionario; el extractor y el verificador lo detectan. - Los datos no se traducen — rutas de archivos, descripciones de comandos, resúmenes derivados de los argumentos de cada herramienta y la respuesta del modelo siguen en el idioma en que lleguen.
- Enumeraciones de tres o más elementos — DSH une los resúmenes cerrados con un separador fijo, sin ranura para la conjunción final, así que una lista de tres sale con comas en lugar de «y».
- Sin reglas de plural propias — se usan las ranuras
.one/.otherque DSH consulta;escomparte conenla regla singular/plural. - Sin configuración — el plugin no declara esquema: activarlo o desactivarlo en la página Plugins es el único mando.