A note on language
Why the Spanish pages here say «haz un commit» and not «confirma los cambios»
Writing about software in Spanish has no settled convention. No authority dictates it, the big style guides contradict each other at the edges, and every team ends up deciding text by text. So did we. This is what we decided instead.
The criterion
A word stays in English for two DIFFERENT reasons. Conflating them is easy, and it is the mistake that made us rewrite this policy from scratch.
One: it is an identifier. It appears verbatim in the command line, in an API, in an error message you are about to paste into a search box. Translating it breaks the REFERENCE: the text reads well and is useless, because you can no longer get from it to the tool. This holds in every language — it is not an opinion about Spanish.
Two: there is no faithful word. No Spanish word carries the concept without displacing it. Translating it breaks the CONCEPT. «Compuerta» sends it to electronics; «puerta» already means something else here; «umbral» loses the typed policy; «punto de control» loses that it BLOCKS. Every candidate looks reasonable and each loses something different. This one IS a claim about Spanish, and in another language it might be false.
And if Spanish does have the word, we use it. A term that happens to resemble a directory name is not thereby untranslatable.
It also settles the question that seemed to have no answer. «How do you say run in Spanish?» has none BECAUSE IT IS NOT A TERM: it is an ordinary English word. But a Run with an id and a log IS an entity, and it stays. We were looking for one translation of two different things; that is why it never turned up.
What we do not translate
These stay in English, and the last column says by which of the two roads.
| Term | What it is | Why it stays |
|---|---|---|
gate | una gate — la comprobación que corta el paso: si no se cumple, el cambio no llega a ocurrir; no avisa, impide | no hay palabra española fiel — traducirlo rompe el concepto |
sensor | un sensor — la comprobación que se dispara después de generar; en ontoref, además, declara qué miró | SourceLanguage |
ambient affordances | ambient affordances — propiedades que hacen un entorno legible sin instrucciones; se ve qué se puede hacer con solo mirar | no hay palabra española fiel — traducirlo rompe el concepto |
Hard | `Hard` — severidad tipada de una restricción: vincula, y una violación rompe; su par es `Soft`, que se audita y no bloquea | es un identificador — traducirlo rompe la referencia |
commit | un commit — cada vez que guardas un cambio en git queda uno: una foto del proyecto en ese instante, con su mensaje y su autor | es un identificador — traducirlo rompe la referencia |
push | un push — subir tus commits al servidor donde vive el repositorio compartido; hasta entonces solo existen en tu máquina | es un identificador — traducirlo rompe la referencia |
rebase | un rebase — coger tus commits y volver a aplicarlos encima de la rama ya actualizada, como si los hubieras hecho después | es un identificador — traducirlo rompe la referencia |
pull request | un Pull Request — pedir que tus cambios entren en la rama principal, y que alguien los mire antes de que entren | es un identificador — traducirlo rompe la referencia |
hook | un hook — un programa que la herramienta ejecuta sola en un momento fijo: por ejemplo, justo antes de aceptar un commit | es un identificador — traducirlo rompe la referencia |
NCL | NCL — el lenguaje de configuración tipada en el que se declara todo esto | es un identificador — traducirlo rompe la referencia |
ADR | un ADR — el registro de una decisión de arquitectura, con sus restricciones | es un identificador — traducirlo rompe la referencia |
DAG | un DAG — grafo dirigido acíclico: pasos con dependencias y sin ciclos; la forma que tiene un modo | es un identificador — traducirlo rompe la referencia |
JSONL | JSONL — un objeto JSON por línea; el formato del testigo | es un identificador — traducirlo rompe la referencia |
Ed25519 | Ed25519 — la firma criptográfica con la que se sella un testigo: cualquiera puede comprobar que nadie lo ha tocado después | es un identificador — traducirlo rompe la referencia |
exit | exit — el código de salida de un proceso (0 = pasa) | es un identificador — traducirlo rompe la referencia |
CustomerSupplier | CustomerSupplier — dependencia de una vía: un dominio consume a otro sin reciprocidad; un plano degenerado. | es un identificador — traducirlo rompe la referencia |
Partnership | Partnership — vínculo mutuo: ninguno gobierna al otro pero cada uno exige al otro para existir; el 2-ciclo que constituye un plano. | es un identificador — traducirlo rompe la referencia |
OpenHostService | OpenHostService — un dominio publica un servicio/protocolo abierto que varios consumidores usan sin negociar caso a caso. | es un identificador — traducirlo rompe la referencia |
Conformist | Conformist — el consumidor se pliega al modelo del proveedor sin traducción, aceptando su lenguaje tal cual. | es un identificador — traducirlo rompe la referencia |
SharedKernel | SharedKernel — dos dominios comparten un núcleo común de modelo/código, con cambios coordinados. | es un identificador — traducirlo rompe la referencia |
AnticorruptionLayer | AnticorruptionLayer — capa de traducción que aísla el modelo propio del de otro dominio para no contaminarlo (p. ej. la frontera del deck). | es un identificador — traducirlo rompe la referencia |
What we do translate
Spanish carries the whole concept. There is nothing to preserve.
| In English | We write |
|---|---|
| witness | testigo |
| door | puerta |
| bond | vínculo |
| node | nodo |
| plane | plano |
| axis | eje |
| edge | arista |
| guide | guía |
| harness | arnés |
| harnessability | arnesabilidad |
| drift | deriva |
| workflow | flujo de trabajo |
| fixture | configuración de prueba |
| guardrail | salvaguarda |
| guardrails | salvaguardas |
| red-team | prueba adversaria |
| onboarding | incorporación |
| onboarded | incorporado |
| scripted | automatizado |
| FSM | máquina de estados |
| flag | opción de línea de comandos |
| runtime | tiempo de ejecución |
| backlog | cartera de pendientes |
| seed | semilla |
| constraint | restricción |
| constraints | restricciones |
| modes | modos |
| schema | esquema |
| reflection | reflexión |
| ontology | ontología |
| merge | fusión |
| parse | analizar |
| deploy | desplegar |
| link | enlazar |
| log | registrar |
| build | compilar |
| debug | depurar |
| test | prueba |
| fork | bifurcación |
| library | biblioteca |
| run | ejecución |
The verbs, which are the real problem
This is where everyone gets stuck, and the fix is grammatical, not a matter of taste.
A borrowed NOUN is harmless: it enters Spanish, picks a gender, and is done.
A borrowed VERB must pick a conjugation — and in Spanish that is -ear, which drags a colloquial register in with it. That is why «commitear» grates and «commit» does not: it is not the loanword, it is the MORPHOLOGY.
The way out is a construction Spanish already uses productively: LIGHT SPANISH VERB + ENGLISH NOUN. «Hacer un commit». Spanish supplies the grammar; the loanword stays a noun and keeps pointing at the artifact.
| We do not write | We write | Why |
|---|---|---|
| evaluar la gate / poner una gate | calco | |
| deriva | calco | |
| hacer un commit | calco | |
| hacer un commit | calco | |
| hacer un push | calco | |
| aplicar un rebase | calco | |
| fusionar | calco | |
| analizar | calco | |
| desplegar | calco | |
| desplegar | calco | |
| enlazar | calco | |
| registrar | calco | |
| compilar | calco | |
| depurar | calco | |
| probar | calco | |
| bifurcar | calco | |
| bifurcar | calco |
And the ones that do not grate — the truly dangerous
A calque announces itself. A FALSE FRIEND does not: it looks like the right translation, reads fluently, and displaces the meaning unnoticed. «Librería» is a SHOP; the word is «biblioteca». Languages evolve their cognates apart, and that drift is invisible precisely because the word still looks like its source.
Others are true cognates borrowed from ANOTHER discipline: «compuerta» comes from electronics, and drags a logic-circuit reading into a sentence about state transitions.
| We do not write | We write | Why |
|---|---|---|
| gate | desplaza — Cognato de la ELECTRÓNICA (logic gate). Arrastra la lectura de circuito a una frase sobre transiciones de estado. | |
| gate | desplaza — Ya la usa `door` (la entrada de embudo, ADR-064). Traducir así fusionaría dos conceptos en una palabra. | |
| arnés | desplaza — «armazón» es estructura inerte; el arnés dirige y corrige, no sostiene. | |
| Hard | falso amigo — Traduce el nombre de un valor de tipo como si fuera adjetivo; «fallar en duro» no deja nada que un lector pueda buscar. gateable=false: «d… | |
| Soft | falso amigo — Mismo defecto que «duro», y además sugiere una severidad intermedia que no existe. | |
| hacer un commit | falso amigo — git ENVÍA este locale español y dice «confirmar» — y casi nadie lo usa, porque corta al lector de todo mensaje de error y de toda la do… | |
| hacer un push | falso amigo — «enviar» pierde que el destino es el remoto declarado, no un destinatario cualquiera. NO gateable: la web está llena de «Enviar Mensaje»… | |
| Pull Request | falso amigo — Literal y sin referente: nadie lo reconocería en la forja. | |
| hook | desplaza — «enganche» no nombra nada en la herramienta; el lector no puede volver de la palabra al fichero. | |
| biblioteca | falso amigo — Una librería es una TIENDA. El cognado derivó, y el desplazamiento es invisible precisamente porque la palabra sigue pareciéndose a su ori… | |
| ejecución | regional — Válido en varias variantes americanas; en España evoca la tauromaquia y rompe la frase. Es una elección de REGISTRO, no una corrección �… | |
| ejecuciones | regional — |
Speech is another matter
None of the above applies to a conversation. A calque spoken communicates perfectly and is jargon on the page. The policy says exactly that: denied in writing, permitted in the mouth. A rule that pretended otherwise would be lying about how its own authors speak, and nobody obeys a rule that lies to them.
A false friend, by contrast, misleads a listener exactly as much as a reader. That one is always flagged.
The same goes for pronunciation. Saying «ráuter» inside a Spanish sentence is not ignorance: it is phonological accommodation, and every borrowing language does it.
This is not a legal notice
The page next door is the privacy policy, and it exists because the law compels it. This one does not. This is a STYLE CONTRACT: the right analogy is the licence or the code of conduct — normative, published, versioned, referenced.
With one difference from either: this one is EXECUTED.
The tables you just read are not hand-written. They are generated from the same declared file that checks every Spanish text on this site before it ships, and that fails the build if it finds a word that should not be there — or if this page stops matching the rule it claims to explain.
That a project's language policy is itself a declared, versioned and verified artifact is not bureaucracy. It is the project's thesis applied to itself.
This page is a projection of the project's lexical policy. If it contradicts what you read elsewhere on the site, that is a bug and we want to know. ontoref@jesusperez.pro