Règles

Max PrilutskiyPDG et cofondateur8 min de lecture

Une règle est une convention linguistique nommée que le moteur de localisation applique à une langue cible — « abréger Straße en Str. dans les adresses », et non « adopter un ton plus décontracté ». Les règles sont regroupées dans des rulesets : des conteneurs appartenant à l’organisation qu’un moteur applique par association, afin qu’un même ensemble de règles puisse régir tous les moteurs qui en ont besoin.

Les règles s’appelaient auparavant instructions

Dans le tableau de bord, elles s’appellent désormais règles et sont regroupées en jeux de règles. L’API REST expose toujours une règle individuelle à /instructions avec les mêmes noms de champs qu’avant — le changement porte sur l’endroit où la règle est rédigée : rulesetId remplace désormais ownerEngineId.

Fonctionnement#

Un jeu de règles appartient à votre organisation, pas à un moteur. C’est son association à un moteur qui rend ses règles actives — rien n’est copié dans le moteur.

ObjetChamps
Jeu de règlesNom, description. Peut contenir autant de règles que nécessaire.
RègleNom, langue cible (ou *), texte.

Lorsqu’une demande de traduction arrive, le moteur rassemble toutes les règles de tous les jeux de règles associés dont la langue cible correspond à la targetLocale de la demande, puis les ajoute au prompt du LLM aux côtés de la voix de marque et du glossaire. Les règles n’entrent pas en concurrence : toutes les règles correspondantes sont incluses, en commençant par la langue la plus précise, afin que les consignes les plus ciblées passent en premier.

ChampDescription
NomUn libellé court qui identifie la règle (par ex. « adresse formelle en allemand »)
Langue cibleLa langue à laquelle cette règle s’applique, ou * pour toutes les langues (N’importe quelle langue dans le tableau de bord)
TexteLa règle linguistique, rédigée en langage naturel

Plusieurs règles par langue

Créez autant de règles que nécessaire pour une langue. Chaque règle doit traiter un seul point — c’est ce qui permet de la tester individuellement, de l’évaluer avec la évaluation IA des règles et de la supprimer sans risque.

Les jeux de règles appartiennent à l’organisation#

ActionEffet
Créer un jeu de règlesIl existe au niveau de l’organisation et ne s’applique à rien tant qu’il n’est pas associé
L’associer à un moteurToutes les règles qu’il contient s’appliquent aux traductions de ce moteur
L’associer à plusieurs moteursLes mêmes règles s’appliquent à tous — une seule modification, et chaque moteur suit
Associer plusieurs jeux de règles à un moteurToutes leurs règles se combinent
Le dissocier d’un moteurLe moteur cesse de l’appliquer. Le jeu de règles et ses règles sont conservés.
Supprimer un jeu de règlesOpération refusée tant qu’un moteur l’applique encore — dissociez-le d’abord. Sa suppression entraîne aussi celle de ses règles.
Supprimer un moteurLes jeux de règles et les règles restent en place. Ils appartiennent à l’organisation, pas au moteur.

Gérez les ensembles de règles dans Infrastructure → Ensembles de règles. L’onglet Règles d’un ensemble de règles contient ses règles ; son onglet Paramètres répertorie les moteurs de l’organisation, où vous pouvez appliquer l’ensemble de règles à un moteur ou cesser de l’appliquer. À l’inverse, l’onglet Paramètres d’un moteur comporte une section Ensembles de règles qui indique ce que le moteur applique, avec Ajouter un ensemble de règles pour en associer un autre.

Règles prédéfinies#

Lingo.dev propose un catalogue de règles prêtes à l’emploi — des conventions propres à chaque langue dont la plupart des équipes ont besoin, sans toujours penser à les formaliser. Elles s’attachent directement à un moteur plutôt que via un ensemble de règles, et vous pouvez les détacher à tout moment.

Le tableau de bord ne propose pas d’écran dédié aux règles prédéfinies. Parcourez le catalogue et associez des entrées via l’API ou le serveur MCP :

AppelOutil MCPObjectif
GET /predefined-instructionspredefinedInstructions_listLister le catalogue
GET /engines/:id/predefined-instructionsengines_listPredefinedInstructionsLister les règles prédéfinies appliquées par un moteur
PUT /engines/:id/predefined-instructionspredefinedInstructions_setForEngineRemplacer l’ensemble appliqué par un moteur — envoyez la liste complète des ids ; tout élément omis est détaché
DELETE /engines/:id/predefined-instructions/:predefinedInstructionIdpredefinedInstructions_detachCesser d’appliquer une entrée à un moteur
GET /predefined-instructions/:id/engines?organizationId=predefinedInstructions_listEnginesLister les moteurs de votre organisation qui appliquent une entrée

Chaque entrée du catalogue comporte une langue cible, un nom, une description, un type (standard, convention ou preference) et un category. Les entrées qui partagent un groupKey sont des alternatives pour une même langue — un moteur ne peut en appliquer qu’une seule à la fois, et toute requête qui en sélectionne deux est rejetée. Associer ou détacher une entrée nécessite engine:edit sur le moteur ; toute personne connectée peut consulter le catalogue.

Les règles sélectionnées sont placées dans le prompt avant les vôtres, afin qu’une règle que vous rédigez vienne affiner ou remplacer la base de départ, au lieu d’entrer en conflit avec elle.

Règles ou voix de marque#

Les deux influencent le résultat de la traduction, mais à des niveaux différents :

Voix de marqueRègle
PortéeTon général, style, niveau de formalitéUne règle linguistique précise
Par langueUn texte par langue, une voix par langue et par moteurPlusieurs règles par langue
AppliquéUn seul texte, celui qui correspond le mieuxToutes les règles correspondantes se combinent
JokerOui (* sert de voix par défaut)Oui (* s’applique à toutes les langues)
Exemple« Utiliser le tutoiement, avec un ton technique »« Toujours abréger Straße en Str. dans les adresses »

Utilisez une voix de marque pour définir la manière dont votre produit s’exprime dans une langue — niveau de formalité, registre, style de phrase.

Utilisez des règles pour formaliser des conventions précises que le modèle risquerait sinon de manquer — abréviations, ponctuation, formatage des unités ou structures grammaticales propres à une langue.

Elles fonctionnent ensemble : la voix de marque donne le ton, les règles gèrent les cas particuliers.

Rédiger des règles efficaces#

Chaque règle doit formuler une seule consigne, sans ambiguïté. Le moteur inclut le texte complet dans le prompt du LLM, donc la clarté est essentielle.

Bonnes règles#

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 %.

À éviter#

  • Les consignes vagues qui recoupent la voix de marque (« être plus décontracté ») — mettez-les plutôt dans la voix de marque
  • Plusieurs conventions sans lien réunies dans une seule règle — séparez-les pour que chacune puisse être testée indépendamment
  • Les règles qui contredisent le glossaire — dans la hiérarchie du moteur, les termes du glossaire ont priorité

Langue générique#

Définissez la langue cible sur * (N’importe quelle langue dans le tableau de bord) pour appliquer une règle à toutes les langues. Pratique pour les conventions indépendantes de la langue :

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.

Les règles spécifiques à une langue et les règles génériques sont toutes deux incluses lorsque le moteur traite une demande — elles se combinent, elles ne se remplacent pas.

Utiliser les règles avec l’API#

Les règles sont appliquées automatiquement lorsque vous appelez le point de terminaison localize. Le moteur collecte toutes les règles qui correspondent à la targetLocale de la requête (ainsi que toutes les règles *) à partir des ensembles de règles qu’il applique, ainsi que toutes les règles prédéfinies qui y sont associées. Aucun paramètre supplémentaire n’est nécessaire.

AppelObjectif
POST /rulesetsCréer un jeu de règles pour l’organisation
GET /organizations/:id/rulesetsLister les jeux de règles de l’organisation avec le nombre de règles et de moteurs
GET /rulesets/:id/rulesLister les règles d’un jeu de règles
POST /instructions avec rulesetIdAjouter une règle à un jeu de règles
PUT /engines/:id/rulesetsRemplacer l’ensemble des jeux de règles appliqués par un moteur
DELETE /engines/:id/rulesets/:rulesetIdCesser d’appliquer un jeu de règles à un moteur
GET /engines/:id/instructionsLister toutes les règles qu’un moteur applique via ses ensembles de règles (les règles prédéfinies sont répertoriées séparément)

ownerEngineId sur POST /instructions fonctionne toujours — cela écrit dans le jeu de règles propre au moteur, en en créant un s’il n’en a pas encore. Préférez rulesetId.

Accès#

org:ruleset:read et org:ruleset:edit régissent les ensembles de règles et les règles qu’ils contiennent ; associer l’un d’eux à un moteur nécessite aussi engine:edit sur ce moteur. Une autorisation par ensemble de règles permet à une personne d’avoir un accès en lecture et en modification à un seul ensemble de règles, au lieu de tous les ensembles de règles de l’organisation ; ces autorisations se configurent via l’API ou MCP, pas depuis le tableau de bord. Voir Rôles et autorisations.

Gérer les règles via MCP#

Si vous utilisez le serveur MCP Lingo.dev, votre assistant de code IA peut créer, mettre à jour et supprimer directement des règles et des jeux de règles :

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."

Étapes suivantes#