Reglas
Una regla es una convención lingüística con nombre que el motor de localización aplica a un idioma de destino: «abreviar Straße como Str. en las direcciones», no «usar un tono más informal». Las reglas viven en conjuntos de reglas: contenedores de la organización que un motor aplica al asociarlos, de modo que un mismo conjunto de reglas puede regir todos los motores que lo necesiten.
Las reglas antes se llamaban instrucciones
En el panel se llaman reglas y se agrupan en conjuntos de reglas. La API REST sigue exponiendo una regla individual en /instructions con los nombres de campo sin cambios; lo que ha cambiado es dónde se escribe una regla: rulesetId ha sustituido a ownerEngineId.
Cómo funciona#
Un conjunto de reglas pertenece a tu organización, no a un motor. Asociarlo a un motor es lo que hace que sus reglas se apliquen; no se copia nada en el motor.
| Objeto | Campos |
|---|---|
| Conjunto de reglas | Nombre, descripción. Puede contener cualquier número de reglas. |
| Regla | Nombre, idioma de destino (o *), texto. |
Cuando llega una solicitud de traducción, el motor recopila todas las reglas de todos los conjuntos de reglas asociados cuyo idioma de destino coincida con el targetLocale de la solicitud y las incluye en el prompt del LLM junto con la voz de marca y el glosario. Las reglas no compiten entre sí: se incluyen todas las que coinciden, ordenadas primero por la coincidencia de idioma más precisa para que la orientación más ajustada vaya delante.
| 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 (Cualquier idioma en el panel) |
| Texto | La regla lingüística, redactada en lenguaje natural |
Muchas reglas por idioma
Crea tantas reglas como necesite un idioma. Cada regla debe abordar una sola cuestión: eso es lo que permite probarla de forma individual, puntuarla mediante la evaluación de IA de reglas y eliminarla con seguridad.
Los conjuntos de reglas pertenecen a 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 asocia |
| Asociarlo a un motor | Todas sus reglas se aplican a las traducciones de ese motor |
| Asociarlo a varios motores | Las mismas reglas rigen todos ellos: editas una vez y todos los motores las siguen |
| Asociar varios conjuntos de reglas a un motor | Todas sus reglas se combinan |
| Desasociarlo 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: desasócialo primero. Al eliminarlo, sus reglas también se eliminan. |
| Eliminar un motor | Los conjuntos de reglas y las reglas se conservan. Pertenecen a la organización, no al motor. |
Gestiona los conjuntos de reglas en Infrastructure → Rulesets. La pestaña Rules de un conjunto de reglas contiene sus reglas; en la pestaña Settings se muestran los motores de la organización, donde puedes aplicar el conjunto de reglas a un motor o dejar de aplicarlo. A su vez, la pestaña Settings de un motor incluye una sección Rulesets que muestra qué conjuntos de reglas aplica, con Add ruleset para añadir otro.
Reglas predefinidas#
Lingo.dev mantiene un catálogo de reglas listas para usar: convenciones de idioma que la mayoría de los equipos necesitan y que pocas veces se les ocurre documentar. Se adjuntan directamente a un motor, en lugar de hacerlo mediante un conjunto de reglas, y puedes desadjuntarlas en cualquier momento.
El panel no incluye ninguna pantalla para las reglas predefinidas. Puedes explorar el catálogo y adjuntar entradas mediante la API o el servidor MCP:
| Llamada | Herramienta MCP | Propósito |
|---|---|---|
GET /predefined-instructions | predefinedInstructions_list | Ver el catálogo |
GET /engines/:id/predefined-instructions | engines_listPredefinedInstructions | Ver las reglas predefinidas que aplica un motor |
PUT /engines/:id/predefined-instructions | predefinedInstructions_setForEngine | Sustituir el conjunto que aplica un motor: envía la lista completa de ids; todo lo que se deje fuera se desadjuntará |
DELETE /engines/:id/predefined-instructions/:predefinedInstructionId | predefinedInstructions_detach | Dejar de aplicar una entrada a un motor |
GET /predefined-instructions/:id/engines?organizationId= | predefinedInstructions_listEngines | Ver los motores de tu organización que aplican una entrada |
Cada entrada del catálogo tiene un idioma de destino, un nombre, una descripción, un type (standard, convention o preference) y un category. Las entradas que comparten un groupKey son alternativas para el mismo idioma: un motor solo puede aplicar una de ellas, y cualquier solicitud que seleccione dos se rechazará. Para adjuntar y desadjuntar hace falta engine:edit en el motor; cualquier persona que haya iniciado sesión puede consultar el catálogo.
Las reglas seleccionadas se colocan en el prompt antes que las tuyas, de modo que una regla que escribas refine o sustituya la base en lugar de entrar en conflicto con ella.
Reglas vs. voces de marca#
Ambas modelan el resultado de la traducción, pero a distintos niveles:
| Voz de marca | Regla | |
|---|---|---|
| Alcance | Tono general, estilo, formalidad | Una regla lingüística concreta |
| Por idioma | Un texto por idioma, una voz por idioma y por 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 voz predeterminada) | Sí (* se aplica a todos los idiomas) |
| Ejemplo | «Usa du en tono informal, con tono técnico» | «Abrevia siempre Straße como Str. en las direcciones» |
Usa una voz de marca para definir cómo habla tu producto en un idioma: formalidad, registro y estilo de frase.
Usa reglas para recoger convenciones concretas que, de otro modo, el modelo pasaría por alto: abreviaturas, puntuación, formato de unidades o patrones gramaticales específicos de cada idioma.
Funcionan juntas: la voz de marca marca el tono y las reglas se ocupan de los casos límite.
Cómo redactar reglas eficaces#
Cada regla debe expresar una sola idea, de forma 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 solapan con la voz de marca («ser más informal»): eso va en la voz de marca
- Varias convenciones 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#
Establece el idioma de destino en * (Cualquier idioma en el panel) 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 de un idioma como las reglas comodín se incluyen cuando el motor procesa una solicitud: se combinan, no se anulan.
Uso de reglas con la API#
Las reglas se aplican automáticamente cuando llamas al endpoint localize. El motor recopila todas las reglas que coinciden con el targetLocale de la solicitud (además de cualquier regla de *) de los conjuntos de reglas que aplica, junto con cualquier regla predefinida adjunta. No hace falta ningún parámetro adicional.
| Llamada | Finalidad |
|---|---|
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 número de reglas y motores |
GET /rulesets/:id/rules | Mostrar las reglas de un conjunto de reglas |
POST /instructions con rulesetId | Añadir una regla a un conjunto de reglas |
PUT /engines/:id/rulesets | Sustituir 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 | Ver todas las reglas que aplica un motor a través de sus conjuntos de reglas (las reglas predefinidas se muestran por separado) |
ownerEngineId en POST /instructions sigue funcionando: escribe en el conjunto de reglas propio del motor y crea uno si el motor no tiene ninguno. Es mejor usar rulesetId.
Acceso#
org:ruleset:read y org:ruleset:edit rigen los conjuntos de reglas y las reglas que contienen; para adjuntar uno a un motor también hace falta engine:edit en ese motor. Un permiso por conjunto de reglas da a una persona acceso de lectura y edición sobre un único conjunto de reglas, en lugar de sobre todos los conjuntos de reglas de la organización; los permisos se configuran mediante la API o MCP, no desde el panel. Consulta Roles y permisos.
Gestionar reglas con MCP#
Si utilizas 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.""List the predefined rules for German and attach the ones
you recommend to the marketing engine."