Reglas

Max PrilutskiyCEO y cofundador7 min de lectura

Una regla es una convención lingüística específica con nombre que el motor de localización aplica a un idioma de destino: "abreviar Straße como Str. en las direcciones", no "ser más casual". Las reglas viven en conjuntos de reglas: contenedores propiedad de la organización que un motor aplica al adjuntarlos, de modo que un solo conjunto de reglas puede 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.

ObjetoCampos
Conjunto de reglasNombre, descripción. Puede contener cualquier cantidad de reglas.
ReglaNombre, 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.

CampoDescripción
NombreUna etiqueta breve para identificar la regla (por ejemplo, "tratamiento formal en alemán")
Idioma de destinoEl idioma al que se aplica esta regla, o * para todos los idiomas (Cualquier idioma en el panel)
TextoLa 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ónEfecto
Crear un conjunto de reglasExiste a nivel de organización y no se aplica a nada hasta que se adjunta
Adjuntarlo a un motorCada una de sus reglas se aplica a las traducciones de ese motor
Adjuntarlo a varios motoresLas mismas reglas rigen para todos: edita una vez y todos los motores las siguen
Adjuntar varios conjuntos de reglas a un motorTodas sus reglas se combinan
Desvincularlo de un motorEl motor deja de aplicarlo. El conjunto de reglas y sus reglas se conservan.
Eliminar un conjunto de reglasSe rechaza mientras algún motor siga aplicándolo; primero desvincúlalo. Al eliminarlo, sus reglas se eliminan con él.
Eliminar un motorLos conjuntos de reglas y las reglas siguen existiendo. Le pertenecen a la organización, no al motor.

Administra los conjuntos de reglas en Infrastructure → Rulesets. La pestaña Rules de un conjunto de reglas contiene sus reglas; la pestaña Settings muestra 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é aplica ese motor, con Add ruleset para adjuntar otro.

Reglas predefinidas#

Lingo.dev selecciona un catálogo de reglas listas para usar: convenciones de idioma que la mayoría de los equipos necesitan y que pocas veces alguien piensa en documentar. Se adjuntan directamente a un motor, en lugar de hacerlo mediante un conjunto de reglas, y puedes quitarlas en cualquier momento.

El panel no tiene una pantalla para las reglas predefinidas. Explora el catálogo y adjunta entradas mediante la API o el servidor MCP:

LlamadaHerramienta de MCPPropósito
GET /predefined-instructionspredefinedInstructions_listMostrar el catálogo
GET /engines/:id/predefined-instructionsengines_listPredefinedInstructionsMostrar las reglas predefinidas que aplica un motor
PUT /engines/:id/predefined-instructionspredefinedInstructions_setForEngineReemplazar el conjunto de entradas que aplica un motor: envía la lista completa de ids; todo lo que se omita se quita
DELETE /engines/:id/predefined-instructions/:predefinedInstructionIdpredefinedInstructions_detachDejar de aplicar una entrada a un motor
GET /predefined-instructions/:id/engines?organizationId=predefinedInstructions_listEnginesMostrar 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 puede aplicar como máximo una de ellas, y se rechaza cualquier solicitud que elija dos. Para adjuntar y quitar entradas se necesita engine:edit en el motor; cualquier persona que haya iniciado sesión puede consultar el catálogo.

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 marcaRegla
AlcanceTono general, estilo, formalidadUna regla lingüística específica
Por idiomaUn texto por idioma, una voz por idioma para cada motorMuchas reglas por idioma
AplicaciónEl único texto con la mejor coincidenciaSe combinan todas las reglas coincidentes
ComodínSí (* 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 afirmación clara e inequívoca. El motor incluye el texto completo en el prompt del LLM, así que la claridad importa.

Buenas reglas#

text
Always use the Oxford comma in English lists.
text
In Japanese, use full-width parentheses ()instead of half-width ().
text
For German addresses, abbreviate "Straße" to "Str." and
"Nummer" to "Nr."
text
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 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#

Configura el idioma de destino como * (Cualquier idioma en el panel) para aplicar una regla a todos los idiomas. Es útil para convenciones independientes del idioma:

text
Never translate product feature names: "Smart Compose",
"Quick Actions", "Flow Builder".
text
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 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 a ese motor. No se necesitan parámetros adicionales.

LlamadaPropósito
POST /rulesetsCrear un conjunto de reglas para la organización
GET /organizations/:id/rulesetsMostrar los conjuntos de reglas de la organización con el recuento de reglas y motores
GET /rulesets/:id/rulesMostrar las reglas de un conjunto de reglas
POST /instructions con rulesetIdAgregar una regla a un conjunto de reglas
PUT /engines/:id/rulesetsReemplazar el conjunto de conjuntos de reglas que aplica un motor
DELETE /engines/:id/rulesets/:rulesetIdDejar de aplicar un conjunto de reglas a un motor
GET /engines/:id/instructionsMostrar 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 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 rigen los conjuntos de reglas y las reglas que contienen; para adjuntar uno a un motor también se necesita engine:edit en ese motor. Un permiso por conjunto de reglas le da a una persona acceso de lectura y edición a un solo conjunto de reglas, en lugar de a todos los conjuntos de reglas de la organización; estos permisos se configuran mediante la API o MCP, no desde el panel. Consulta Roles y permisos.

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:

text
"Create a ruleset called German conventions and apply it to
the marketing engine."
text
"Add a rule to that ruleset: always abbreviate Straße to Str.
in addresses."
text
"Add a wildcard rule: never translate the term Smart Compose."
text
"List the predefined rules for German and attach the ones
you recommend to the marketing engine."

Próximos pasos#