Regras
Uma regra é uma convenção linguística identificada que o motor de localização aplica a um idioma de destino — "abreviar Straße para Str. em moradas", e não "ser mais informal". As regras vivem em conjuntos de regras: contentores da organização que o motor aplica por associação, para que um único conjunto de regras possa orientar todos os motores que dele precisem.
As regras antes chamavam-se instruções
No dashboard, chamam-se regras e são agrupadas em conjuntos de regras. A API REST continua a expor uma regra individual em /instructions, com os nomes dos campos inalterados — o que mudou foi o local onde a regra é escrita: rulesetId substituiu ownerEngineId.
Como funciona#
Um conjunto de regras pertence à sua organização, não a um motor. É ao associá-lo a um motor que as respetivas regras passam a ser aplicadas - nada é copiado para o motor.
| Objeto | Campos |
|---|---|
| Conjunto de regras | Nome, descrição. Pode conter qualquer número de regras. |
| Regra | Nome, idioma de destino (ou *), texto. |
Quando chega um pedido de tradução, o motor recolhe todas as regras de todos os conjuntos de regras associados cujo idioma de destino corresponde ao targetLocale do pedido e inclui-as no prompt do LLM, juntamente com a voz da marca e o glossário. As regras não competem entre si: todas as regras correspondentes são incluídas, ordenadas pelo idioma com melhor correspondência primeiro, para que a orientação mais específica venha à frente.
| Campo | Descrição |
|---|---|
| Nome | Uma designação curta que identifica a regra (por exemplo, "tratamento formal em alemão") |
| Idioma de destino | O idioma a que esta regra se aplica, ou * para todos os idiomas (Qualquer idioma no dashboard) |
| Texto | A regra linguística, escrita em linguagem natural |
Muitas regras por idioma
Crie tantas regras quantas forem necessárias para cada idioma. Cada regra deve tratar de um único aspeto - é isso que a torna testável individualmente, passível de avaliação pela avaliação por IA de regras e segura de eliminar.
Os conjuntos de regras pertencem à organização#
| Ação | Efeito |
|---|---|
| Criar um conjunto de regras | Existe ao nível da organização e não se aplica a nada até ser associado |
| Associá-lo a um motor | Todas as regras nele contidas passam a aplicar-se às traduções desse motor |
| Associá-lo a vários motores | As mesmas regras orientam todos eles - edite uma vez, todos os motores seguem |
| Associar vários conjuntos de regras a um motor | Todas as regras se combinam |
| Desassociá-lo de um motor | O motor deixa de o aplicar. O conjunto de regras e as respetivas regras são mantidos. |
| Eliminar um conjunto de regras | É recusado enquanto algum motor ainda o estiver a aplicar - desassocie-o primeiro. Ao eliminá-lo, elimina também as respetivas regras. |
| Eliminar um motor | Os conjuntos de regras e as regras mantêm-se. Pertencem à organização, não ao motor. |
Faça a gestão dos conjuntos de regras em Infrastructure → Rulesets. O separador Rules de um conjunto de regras reúne as respetivas regras; o separador Definições lista os motores da organização, onde pode aplicar o conjunto de regras a um motor ou deixar de o aplicar. Já o separador Definições de um motor inclui uma secção Rulesets que mostra o que o motor aplica, com Add ruleset para associar outro.
Regras predefinidas#
A Lingo.dev mantém um catálogo de regras prontas a usar — convenções de idioma de que a maioria das equipas precisa e que poucas se lembram de pôr por escrito. Estas são associadas diretamente a um motor, em vez de serem aplicadas através de um conjunto de regras, e podem ser removidas a qualquer momento.
O dashboard não tem um ecrã para regras predefinidas. Consulte o catálogo e associe entradas através da API ou do servidor MCP:
| Chamada | Ferramenta MCP | Finalidade |
|---|---|---|
GET /predefined-instructions | predefinedInstructions_list | Listar o catálogo |
GET /engines/:id/predefined-instructions | engines_listPredefinedInstructions | Listar as regras predefinidas aplicadas por um motor |
PUT /engines/:id/predefined-instructions | predefinedInstructions_setForEngine | Substituir o conjunto aplicado por um motor — envie a lista completa de ids; tudo o que ficar de fora é removido |
DELETE /engines/:id/predefined-instructions/:predefinedInstructionId | predefinedInstructions_detach | Deixar de aplicar uma entrada a um motor |
GET /predefined-instructions/:id/engines?organizationId= | predefinedInstructions_listEngines | Listar os motores da sua organização que aplicam uma entrada |
Cada entrada do catálogo tem um idioma de destino, um nome, uma descrição, um type (standard, convention ou preference) e um category. As entradas que partilham um groupKey são alternativas para o mesmo idioma — um motor pode aplicar, no máximo, uma delas, e um pedido que selecione duas é rejeitado. Associar e remover requer engine:edit no motor; qualquer pessoa com sessão iniciada pode consultar o catálogo.
As regras selecionadas são colocadas no prompt antes das suas, para que uma regra criada por si refine ou substitua a base, em vez de entrar em conflito com ela.
Regras vs. voz da marca#
Ambas moldam o resultado da tradução, mas em níveis diferentes:
| Voz da Marca | Regra | |
|---|---|---|
| Âmbito | Tom geral, estilo, formalidade | Uma regra linguística específica |
| Por idioma | Um texto por idioma, uma voz por idioma por motor | Muitas regras por idioma |
| Aplicação | O único texto com melhor correspondência | Todas as regras correspondentes se combinam |
| Wildcard | Sim (* funciona como voz predefinida) | Sim (* aplica-se a todos os idiomas) |
| Exemplo | "Use informal du, technical tone" | "Always abbreviate Straße to Str. in addresses" |
Use uma voz da marca para definir como o seu produto comunica num idioma - formalidade, registo, estilo de frase.
Use regras para codificar convenções específicas que, de outra forma, o modelo poderia falhar - abreviaturas, pontuação, formatação de unidades ou padrões gramaticais específicos do idioma.
Funcionam em conjunto: a voz da marca define a voz, e as regras tratam dos casos limite.
Como escrever regras eficazes#
Cada regra deve ser uma única instrução, clara e inequívoca. O motor inclui o texto completo no prompt do LLM, por isso a clareza faz toda a diferença.
Boas regras#
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 %.O que evitar#
- Orientações vagas que se sobrepõem à voz da marca ("be more casual") - nesse caso, coloque isso na voz da marca
- Várias convenções sem relação entre si na mesma regra — separe-as para que cada uma possa ser testada de forma independente
- Regras que contradizem o glossário - os termos do glossário têm prioridade na hierarquia do motor
Idioma wildcard#
Defina o idioma de destino como * (Qualquer idioma no dashboard) para aplicar uma regra a todos os idiomas. Útil para convenções independentes da língua:
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.As regras específicas do idioma e as regras wildcard são ambas incluídas quando o motor processa um pedido - combinam-se, não se sobrepõem.
Usar regras com a API#
As regras são aplicadas automaticamente quando chama o endpoint localize. O motor recolhe todas as regras que correspondem ao targetLocale do pedido (mais quaisquer regras *) dos conjuntos de regras aplicados pelo motor, juntamente com quaisquer regras predefinidas que lhe estejam associadas. Não são necessários parâmetros adicionais.
| Chamada | Objetivo |
|---|---|
POST /rulesets | Criar um conjunto de regras para a organização |
GET /organizations/:id/rulesets | Listar os conjuntos de regras da organização com contagem de regras e de motores |
GET /rulesets/:id/rules | Listar as regras de um conjunto de regras |
POST /instructions com rulesetId | Adicionar uma regra a um conjunto de regras |
PUT /engines/:id/rulesets | Substituir o conjunto de conjuntos de regras que um motor aplica |
DELETE /engines/:id/rulesets/:rulesetId | Deixar de aplicar um conjunto de regras a um motor |
GET /engines/:id/instructions | Listar todas as regras que um motor aplica através dos seus conjuntos de regras (as regras predefinidas são listadas em separado) |
ownerEngineId em POST /instructions continua a funcionar - escreve no conjunto de regras do próprio motor, criando um se o motor não tiver nenhum. Dê preferência a rulesetId.
Acesso#
org:ruleset:read e org:ruleset:edit regem os conjuntos de regras e as regras dentro deles; associar um deles a um motor também requer engine:edit nesse motor. Uma permissão por conjunto de regras dá a alguém acesso de leitura e edição a um único conjunto de regras, em vez de a todos os conjuntos de regras da organização; estas permissões são definidas através da API ou do MCP, não no dashboard. Consulte Funções e permissões.
Gerir regras via MCP#
Se utilizar o servidor MCP da Lingo.dev, o seu assistente de programação com IA pode criar, atualizar e eliminar regras e conjuntos de regras diretamente:
"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."