InícioAmbiente de testeVitrineAppDocBlog
    • Englishinglês
      EN
    • русскийrusso
      RU
    • 日本語japonês
      JA
    • françaisfrancês
      FR
    • 한국어coreano
      KO
    • 中文chinês
      ZH
    • españolespanhol
      ES
    • Deutschalemão
      DE
    • العربيةárabe
      AR
    • italianoitaliano
      IT
    • British Englishinglês (Reino Unido)
      EN-GB
    • portuguêsportuguês
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolonês
      PL
    • Indonesiaindonésio
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraniano
      UK
    /
    Filtrar documentação por framework
    Alt+←
    Por que Intlayer?
    Começar
    Conceito
    • Como o Intlayer funciona
    • Configuração
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Integração CI/CD
    • TraduçãoPluralEnumeraçãoCondiçãoGêneroInserçãoArquivoAninhamentoMarkdownHTMLBusca de função
    • Arquivo por locale
    • Compilador
    • Preenchimento automático
    • Testes
    • Otimização de bundle
    Ambiente
    • Next.js 14 e App Router
      Next.js 15
      Next.js sem locale URL
      Next.js e Page Router
      Compiler
    • Tanstack Start Solid
    • Astro e React
      Astro e Svelte
      Astro e Vue
      Astro e Solid
      Astro e Preact
      Astro e Lit
      Astro e Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt e Vue
    • Vite e Solid
    • SvelteKit
    • Vite e Preact
    • Vite e Vanilla JS
    • Vite e Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native e Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx e React
    Plugins
    • JSON
    • gettext (.po)
    Extensão VS Code
    Agente
    • Servidor MCP
    • Habilidades do agente
    Versões
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Faça uma pergunta
    1. Documentation
    2. Conceito
    3. Arquivo por locale
    Criação:2025-04-18Última atualização:2025-06-29
    Referência esta documentação ao seu assistente AI favorito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha

    Histórico de versões

    1. "Histórico inicial"
      v5.5.1029/06/2025

    O conteúdo desta página foi traduzido com uma IA.

    Veja a última versão do conteúdo original em inglês
    Editar esta documentação

    Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.

    Link do GitHub para a documentação
    Copiar

    Copiar o Markdown do documento para a área de transferência

    Declaração de Conteúdo Por Localidade no Intlayer

    O Intlayer suporta duas formas de declarar conteúdo multilíngue:

    • Arquivo único com todas as traduções
    • Um arquivo por localidade (formato por-localidade)

    Essa flexibilidade permite:

    • Migração fácil a partir de outras ferramentas de i18n
    • Suporte para fluxos de trabalho de tradução automatizados
    • Organização clara das traduções em arquivos separados, específicos por localidade

    Arquivo Único com Múltiplas Traduções

    Este formato é ideal para:

    • Iteração rápida no código.
    • Integração perfeita com o CMS.

    Esta é a abordagem recomendada para a maioria dos casos de uso. Centraliza as traduções, facilitando a iteração e a integração com o CMS.

    hello-world.content.ts
    Copiar código

    Copiar o código para a área de transferência

    import { t, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      content: {
        multilingualContent: t({
          en: "Title of my component",
          es: "Título de mi componente",
        }),
      },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Recomendado: Este formato é o melhor quando se utiliza o editor visual do Intlayer ou se gerenciam traduções diretamente no código.

    Configuração Global para Arquivos por Localidade

    Você pode configurar a configuração global para arquivos por localidade adicionando o seguinte ao seu arquivo intlayer.config.ts:

    ts
    Copiar código

    Copiar o código para a área de transferência

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;

    Usando essa configuração, todos os arquivos por localidade serão gerados com a localidade padrão definida como Inglês. Isso também inclui a geração de arquivos .content usando o comando extract e o compiler. (Veja Compiler ou Extract para mais informações.)

    Formato Por Localidade

    Este formato é útil quando:

    • Você deseja versionar ou sobrescrever traduções de forma independente.
    • Você está integrando fluxos de trabalho de tradução automática ou humana.

    Você também pode dividir as traduções em arquivos individuais por localidade especificando o campo locale:

    hello-world.es.content.ts
    Copiar código

    Copiar o código para a área de transferência

    import { t, Locales, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      locale: Locales.SPANISH, // Importante
      content: { multilingualContent: "Título de mi componente" },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Importante: Certifique-se de que o campo locale está definido. Ele informa ao Intlayer qual idioma o arquivo representa.
    Nota: Em ambos os casos, o arquivo de declaração de conteúdo deve seguir o padrão de nomenclatura *.content.{ts,tsx,js,jsx,mjs,cjs,json} para ser reconhecido pelo Intlayer. O sufixo .[locale] é opcional e usado apenas como convenção de nomenclatura.

    Misturando Formatos

    Você pode combinar ambas as abordagens de declaração para a mesma chave de conteúdo. Por exemplo:

    • Declare seu conteúdo base estaticamente em um arquivo como index.content.ts.
    • Adicione ou substitua traduções específicas em arquivos separados, como index.fr.content.ts ou index.content.json.

    Esta configuração é especialmente útil quando:

    • Você deseja definir a estrutura inicial do conteúdo no código.
    • Você planeja enriquecer ou completar traduções posteriormente usando o CMS ou ferramentas automatizadas.
    bash
    Copiar código

    Copiar o código para a área de transferência

    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    Exemplo

    Aqui um arquivo de declaração de conteúdo multilíngue:

    Components/MyComponent/index.content.ts
    Copiar código

    Copiar o código para a área de transferência

    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Título do meu componente",    projectName: "Meu projeto",  },} satisfies Dictionary;export default helloWorldContent;
    Components/MyComponent/index.content.json
    Copiar código

    Copiar o código para a área de transferência

    {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}

    O Intlayer mescla automaticamente arquivos multilíngues e por localidade.

    Components/MyComponent/index.ts
    Copiar código

    Copiar o código para a área de transferência

    import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // O locale padrão é INGLÊS, então ele retornará o conteúdo em INGLÊSconsole.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Título do meu componente",//  "projectName": "Meu projeto"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Meu projeto"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Meu projeto"// }

    Geração Automática de Tradução

    Use o intlayer CLI para preencher automaticamente as traduções faltantes com base nos seus serviços preferidos.

    Busca de função
    Compilador
    Alt+→

    Nesta página

      As discussões são anônimas e regularmente revisadas para resolver problemas comuns. Sinta-se à vontade para compartilhar ideias de funcionalidades, feedback sobre a documentação ou qualquer coisa relacionada ao Intlayer, usamos essas informações para moldar nosso roadmap e melhorar o produto.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;
      .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts
      import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Título do meu componente",    projectName: "Meu projeto",  },} satisfies Dictionary;export default helloWorldContent;
      {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}
      import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // O locale padrão é INGLÊS, então ele retornará o conteúdo em INGLÊSconsole.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Título do meu componente",//  "projectName": "Meu projeto"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Meu projeto"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Resultado:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Meu projeto"// }