O CLI traduz seis formatos de ficheiro. O formato é inferido a partir da extensão do ficheiro; para o substituir, defina format numa entrada files[].
| Formato | Extensões | valor de format | Notas |
|---|---|---|---|
| JSON | .json | json | Chave/valor. Suporta controlos de chave. |
| JSONC | .jsonc | jsonc | JSON com comentários. Os comentários são preservados e funcionam também como notas para tradutores. |
| Markdown | .md | md | A prosa é traduzida; o frontmatter é opcional. |
| MDX | .mdx | mdx | Markdown + JSX. As props dos componentes são opcionais. |
| Markdoc | .mdoc | markdoc | Markdown + tags. Frontmatter + atributos de tags. |
| OpenAPI YAML | .yaml | yaml-openapi | Especificações OpenAPI. Defina sempre format explicitamente. |
Veja o processo completo
O projeto de demonstração inclui um ficheiro por formato com exatamente a configuração de que cada um precisa. Clone-o com npx degit lingodotdev/lingo.dev/demo/new-cli my-lingo-demo e execute um push.
npx degit lingodotdev/lingo.dev/demo/new-cli my-lingo-demo
cd my-lingo-demoJSON e JSONC#
Tradução simples de chave/valor. Todos os valores de string são traduzidos, salvo indicação em contrário de um controlo de chave.
{ "pattern": "content/en/app.json", "lockedKeys": ["meta.version"] }O JSONC também preserva os comentários, que o motor lê como contexto — veja notas para tradutores.
{ "pattern": "content/en/settings.jsonc", "preservedKeys": ["featureFlags"] }Markdown, MDX e Markdoc#
A prosa do corpo é traduzida por predefinição. O frontmatter e os componentes incorporados não são traduzidos, a menos que opte por isso.
Frontmatter#
Liste os campos de frontmatter a traduzir com translateFrontmatterFields:
{
"pattern": "content/en/guide.md",
"translateFrontmatterFields": ["title", "description"]
}Props de componentes MDX#
No MDX, traduza props específicas em componentes específicos com translateComponentProps:
{
"pattern": "content/en/landing.mdx",
"translateFrontmatterFields": ["title"],
"translateComponentProps": [{ "component": ["Hero", "Callout"], "props": ["title", "body"] }]
}Isto traduz as props title e body em <Hero> e <Callout> e deixa todas as outras props inalteradas.
Markdoc#
O Markdoc funciona como o Markdown, com o frontmatter e os atributos das tags preservados:
{
"pattern": "content/en/changelog.mdoc",
"translateFrontmatterFields": ["title"]
}OpenAPI YAML#
O YAML genérico é ambíguo, por isso as especificações OpenAPI exigem um format explícito:
{ "pattern": "content/en/api.yaml", "format": "yaml-openapi" }O motor traduz os campos visíveis para o utilizador (resumos, descrições) e mantém intactos as chaves do esquema, os paths e os IDs das operações.
Paths de saída#
Os destinos são escritos substituindo o segmento de idioma do padrão de origem — content/en/app.json → content/de/app.json. Mantenha o idioma de origem no path para que o CLI saiba para onde devem ir os destinos. Veja Configuração.
Vem do CLI legado?#
O CLI legado suportava ~25 formatos (CSV, PO, XLIFF, strings de Android/Xcode, Flutter ARB, HTML e outros). O suporte a esses formatos está a ser adicionado ao CLI atual com base no consumo; enquanto o seu formato não estiver disponível, consulte a documentação do CLI legado.
