Una regla es una instrucción lingüística con nombre que el motor de localización aplica a un idioma de destino: "abrevia Straße como Str. en direcciones", no "sé más casual". Las reglas viven en conjuntos de reglas: contenedores propiedad de la organización que un motor aplica al adjuntarlos, para que un mismo conjunto de reglas pueda regir todos los motores que lo necesiten.
Antes, las reglas se llamaban instrucciones
En el dashboard se llaman reglas y se agrupan en conjuntos de reglas. La API REST todavía expone una regla individual en /instructions con los mismos nombres de campos; lo que cambió fue dónde se escribe una regla: rulesetId reemplazó a ownerEngineId.
Cómo funciona#
Un conjunto de reglas le pertenece a tu organización, no a un motor. Al adjuntarlo a un motor es cuando sus reglas empiezan a aplicarse; no se copia nada al motor.
| Objeto | Campos |
|---|---|
| Conjunto de reglas | Nombre, descripción. Puede contener cualquier cantidad de reglas. |
| Regla | Nombre, idioma de destino (o *), texto. |
Cuando llega una solicitud de traducción, el motor recopila cada regla de cada conjunto de reglas adjunto cuyo idioma de destino coincide con el targetLocale de la solicitud y la incluye en el prompt del LLM junto con la voz de marca y el glosario. Las reglas no compiten: se incluyen todas las que coinciden, ordenadas primero por el idioma con mejor coincidencia, para que la guía más precisa vaya primero.
| Campo | Descripción |
|---|---|
| Nombre | Una etiqueta breve para identificar la regla (por ejemplo, "tratamiento formal en alemán") |
| Idioma de destino | El idioma al que se aplica esta regla, o * para todos los idiomas |
| Texto | La regla lingüística, escrita en lenguaje natural |
Muchas reglas por idioma
Crea tantas reglas como necesite un idioma. Cada regla debe abordar un solo aspecto: eso es lo que hace que pueda probarse de forma individual, que la evaluación de IA de reglas pueda puntuarla y que sea seguro eliminarla.
Los conjuntos de reglas son propiedad de la organización#
| Acción | Efecto |
|---|---|
| Crear un conjunto de reglas | Existe a nivel de organización y no se aplica a nada hasta que se adjunta |
| Adjuntarlo a un motor | Cada una de sus reglas se aplica a las traducciones de ese motor |
| Adjuntarlo a varios motores | Las mismas reglas rigen para todos: edita una vez y todos los motores las siguen |
| Adjuntar varios conjuntos de reglas a un motor | Todas sus reglas se combinan |
| Desvincularlo de un motor | El motor deja de aplicarlo. El conjunto de reglas y sus reglas se conservan. |
| Eliminar un conjunto de reglas | Se rechaza mientras algún motor siga aplicándolo; primero desvincúlalo. Al eliminarlo, sus reglas se eliminan con él. |
| Eliminar un motor | Los conjuntos de reglas y las reglas siguen existiendo. Le pertenecen a la organización, no al motor. |
Administra los conjuntos de reglas en Rules desde la barra lateral de la organización. La pestaña Rules de un motor muestra lo que ese motor aplica actualmente y permite adjuntar o desvincular conjuntos de reglas.
Instrucciones predefinidas#
Lingo.dev mantiene un catálogo de reglas listas para usar: convenciones de idioma que la mayoría de los equipos necesita y que pocas personas piensan en documentar. Abre Predefined Instructions desde la pestaña Rules de un motor y elige las que quieras. Se adjuntan directamente al motor en lugar de hacerlo mediante un conjunto de reglas, y puedes desvincularlas en cualquier momento.
Las reglas curadas se colocan en el prompt antes que las tuyas, para que una regla que escribas refine o anule la base en lugar de competir con ella.
Reglas vs. voces de marca#
Ambas influyen en el resultado de la traducción, pero en distintos niveles:
| Voz de marca | Regla | |
|---|---|---|
| Alcance | Tono general, estilo, formalidad | Una regla lingüística específica |
| Por idioma | Un texto por idioma, una voz por idioma para cada motor | Muchas reglas por idioma |
| Aplicación | El único texto con la mejor coincidencia | Se combinan todas las reglas coincidentes |
| Comodín | Sí (* actúa como la voz predeterminada) | Sí (* se aplica a todos los idiomas) |
| Ejemplo | "Usa du informal, tono técnico" | "Siempre abrevia Straße como Str. en direcciones" |
Usa una voz de marca para definir cómo habla tu producto en un idioma: formalidad, registro y estilo de las oraciones.
Usa reglas para plasmar convenciones específicas que el modelo, de otro modo, pasaría por alto: abreviaturas, puntuación, formato de unidades o patrones gramaticales propios del idioma.
Funcionan juntas: la voz de marca marca el tono; las reglas se encargan de los casos límite.
Cómo escribir reglas efectivas#
Cada regla debe ser una sola instrucción, clara y sin ambigüedades. El motor incluye el texto completo en el prompt del LLM, así que la claridad importa.
Buenas reglas#
Always use the Oxford comma in English lists.In Japanese, use full-width parentheses ()instead of half-width ().For German addresses, abbreviate "Straße" to "Str." and
"Nummer" to "Nr."When translating percentage values for French, add a
non-breaking space before the percent sign: 42 %.Qué evitar#
- Indicaciones vagas que se superponen con la voz de marca ("sé más casual"): eso va en la voz de marca
- Varias instrucciones no relacionadas en una sola regla: sepáralas para que cada una pueda probarse de forma independiente
- Reglas que contradicen el glosario: los términos del glosario tienen prioridad en la jerarquía del motor
Idioma comodín#
Configura el idioma de destino como * para aplicar una regla a todos los idiomas. Es útil para convenciones independientes del idioma:
Never translate product feature names: "Smart Compose",
"Quick Actions", "Flow Builder".Preserve Markdown formatting in all translated strings.
Keep bold (**), italic (*), and link syntax [text](url) intact.Tanto las reglas específicas por idioma como las reglas comodín se incluyen cuando el motor procesa una solicitud: se combinan, no se reemplazan.
Usar reglas con la API#
Las reglas se aplican automáticamente cuando llamas al localize endpoint. El motor recopila cada regla que coincide con el targetLocale de la solicitud (más cualquier regla *) de los conjuntos de reglas que el motor aplica. No necesitas parámetros adicionales.
| Llamada | Propósito |
|---|---|
POST /rulesets | Crear un conjunto de reglas para la organización |
GET /organizations/:id/rulesets | Mostrar los conjuntos de reglas de la organización con el recuento de reglas y motores |
GET /rulesets/:id/rules | Mostrar las reglas de un conjunto de reglas |
POST /instructions con rulesetId | Agregar una regla a un conjunto de reglas |
PUT /engines/:id/rulesets | Reemplazar el conjunto de conjuntos de reglas que aplica un motor |
DELETE /engines/:id/rulesets/:rulesetId | Dejar de aplicar un conjunto de reglas a un motor |
GET /engines/:id/instructions | Mostrar cada regla que un motor aplica actualmente |
ownerEngineId en POST /instructions todavía funciona: escribe en el conjunto de reglas propio del motor y crea uno si el motor no tiene ninguno. Es preferible usar rulesetId.
Acceso#
org:ruleset:read y org:ruleset:edit controlan los conjuntos de reglas y las reglas dentro de ellos; adjuntar uno a un motor también requiere engine:edit en ese motor. Un permiso por conjunto de reglas le da a una persona acceso de lectura y edición sobre un solo conjunto de reglas en lugar de todos los conjuntos de reglas de la organización. Consulta Roles & Permissions.
Administrar reglas mediante MCP#
Si usas el servidor MCP de Lingo.dev, tu asistente de programación con IA puede crear, actualizar y eliminar reglas y conjuntos de reglas directamente:
"Create a ruleset called German conventions and apply it to
the marketing engine.""Add a rule to that ruleset: always abbreviate Straße to Str.
in addresses.""Add a wildcard rule: never translate the term Smart Compose."