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

    Veja a última versão do conteúdo original em inglês

    Documentação de Configuração do Intlayer

    Visão Geral

    Os arquivos de configuração do Intlayer permitem a personalização de vários aspectos do plugin, como internacionalização, middleware e gerenciamento de conteúdo. Este documento fornece uma descrição detalhada de cada propriedade na configuração.


    Suporte a Arquivos de Configuração

    O Intlayer aceita formatos de arquivo de configuração JSON, JS, MJS e TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Exemplo de arquivo de configuração

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    typesDir: "content/types",  },  middleware: {    noPrefix: false,  },};export default config;

    Referência de Configuração

    As seções a seguir descrevem as várias configurações disponíveis para o Intlayer.


    Configuração de Internacionalização

    Define configurações relacionadas à internacionalização, incluindo os idiomas disponíveis e o idioma padrão para a aplicação.

    Propriedades

    • locales:

      • Tipo: string[]
      • Padrão: ['en']
      • Descrição: A lista de idiomas suportados na aplicação.
      • Exemplo: ['en', 'fr', 'es']
    • requiredLocales:

      • Tipo: string[]
      • Padrão: []
      • Descrição: A lista de idiomas obrigatórios na aplicação.
      • Exemplo: []
      • Nota: Se estiver vazio, todos os idiomas serão obrigatórios no modo strict.
      • Nota: Certifique-se de que os idiomas obrigatórios também estejam definidos no campo locales.
    • strictMode:

      • Tipo: string
      • Padrão: inclusive
      • Descrição: Garante implementações rigorosas de conteúdo internacionalizado usando TypeScript.
      • Nota: Se definido como "strict", a função de tradução t exigirá que cada idioma declarado seja definido. Se um idioma estiver ausente ou não for declarado na sua configuração, será lançado um erro.
      • Nota: Se definido como "inclusive", a função de tradução t exigirá que cada idioma declarado seja definido. Se um idioma estiver ausente, será exibido um aviso. Mas aceitará se um idioma não for declarado na sua configuração, mas existir.
      • Nota: Se definido como "loose", a função de tradução t aceitará qualquer idioma existente.
    • defaultLocale:

      • Tipo: string
      • Padrão: 'en'
      • Descrição: O idioma padrão usado como fallback se o idioma solicitado não for encontrado.
      • Exemplo: 'en'
      • Nota: Isso é usado para determinar o idioma quando nenhum é especificado na URL, cookie ou cabeçalho.

    Configuração do Editor

    Define configurações relacionadas ao editor integrado, incluindo porta do servidor e status ativo.

    Propriedades

    • applicationURL:

      • Tipo: string
      • Padrão: http://localhost:3000
      • Descrição: A URL da aplicação. Usada para restringir a origem do editor por razões de segurança.
      • Exemplo:
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Nota: A URL da aplicação. Usada para restringir a origem do editor por razões de segurança. Se definido como '*', o editor estará acessível de qualquer origem.
    • port:

      • Tipo: number
      • Padrão: 8000
      • Descrição: A porta usada pelo servidor do editor visual.
    • editorURL:

      • Tipo: string
      • Padrão: 'http://localhost:8000'
      • Descrição: A URL do servidor do editor. Usada para restringir a origem do editor por razões de segurança.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Nota: A URL do servidor do editor para acessar a partir da aplicação. Usada para restringir as origens que podem interagir com a aplicação por razões de segurança. Se definido como '*', o editor estará acessível de qualquer origem. Deve ser configurado se a porta for alterada ou se o editor estiver hospedado em um domínio diferente.
    • cmsURL:

      • Tipo: string
      • Padrão: 'https://intlayer.org'
      • Descrição: A URL do CMS do Intlayer.
      • Exemplo: 'https://intlayer.org'
      • Nota: A URL do CMS do Intlayer.
    • backendURL:

      • Tipo: string
      • Padrão: https://back.intlayer.org
      • Descrição: A URL do servidor backend.
      • Exemplo: http://localhost:4000
    • enabled:

      • Tipo: boolean
      • Padrão: true
      • Descrição: Indica se a aplicação interage com o editor visual.
      • Exemplo: process.env.NODE_ENV !== 'production'
      • Nota: Se verdadeiro, o editor poderá interagir com a aplicação. Se falso, o editor não poderá interagir com a aplicação. Em qualquer caso, o editor só pode ser ativado pelo editor visual. Desativar o editor para ambientes específicos é uma forma de reforçar a segurança.
    • clientId:

      • Tipo: string | undefined
      • Padrão: undefined
      • Descrição: clientId e clientSecret permitem que os pacotes do Intlayer autentiquem com o backend usando autenticação oAuth2. Um token de acesso é usado para autenticar o usuário relacionado ao projeto. Para obter um token de acesso, acesse /dashboard/project e crie uma conta.
      • Exemplo: true
      • Nota: Importante: O clientId e o clientSecret devem ser mantidos em segredo e não compartilhados publicamente. Certifique-se de mantê-los em um local seguro, como variáveis de ambiente.
    • clientSecret:

      • Tipo: string | undefined
      • Padrão: undefined
      • Descrição: clientId e clientSecret permitem que os pacotes do Intlayer autentiquem com o backend usando autenticação oAuth2. Um token de acesso é usado para autenticar o usuário relacionado ao projeto. Para obter um token de acesso, acesse /dashboard/project e crie uma conta.
      • Exemplo: true
      • Nota: Importante: O clientId e o clientSecret devem ser mantidos em segredo e não compartilhados publicamente. Certifique-se de mantê-los em um local seguro, como variáveis de ambiente.
    • hotReload:

      • Tipo: boolean
      • Padrão: false
      • Descrição: Indica se a aplicação deve recarregar automaticamente as configurações de idioma quando uma alteração for detectada.
      • Exemplo: true
      • Nota: Por exemplo, quando um novo dicionário é adicionado ou atualizado, a aplicação atualizará o conteúdo exibido na página.
      • Nota: Como o recarregamento automático requer uma conexão contínua com o servidor, ele está disponível apenas para clientes do plano enterprise.
    • dictionaryPriorityStrategy:

      • Tipo: string
      • Padrão: 'local_first'
      • Descrição: A estratégia para priorizar dicionários no caso de dicionários locais e remotos estarem presentes. Se definido como 'distant_first', a aplicação priorizará dicionários remotos sobre dicionários locais. Se definido como 'local_first', a aplicação priorizará dicionários locais sobre dicionários remotos.
      • Exemplo: 'distant_first'

    Configuração de Middleware

    Configurações que controlam o comportamento do middleware, incluindo como a aplicação lida com cookies, cabeçalhos e prefixos de URL para gerenciamento de idiomas.

    Propriedades

    • headerName:

      • Tipo: string
      • Padrão: 'x-intlayer-locale'
      • Descrição: O nome do cabeçalho HTTP usado para determinar o idioma.
      • Exemplo: 'x-custom-locale'
      • Nota: Isso é útil para determinação de idioma baseada em API.

      • Tipo: string
      • Padrão: 'intlayer-locale'
      • Descrição: O nome do cookie usado para armazenar o idioma.
      • Exemplo: 'custom-locale'
      • Nota: Usado para persistir o idioma entre sessões.
    • prefixDefault:

      • Tipo: boolean
      • Padrão: true
      • Descrição: Indica se o idioma padrão deve ser incluído na URL.
      • Exemplo: false
      • Nota: Se false, as URLs para o idioma padrão não terão um prefixo de idioma.
    • basePath:

      • Tipo: string
      • Padrão: ''
      • Descrição: O caminho base para as URLs da aplicação.
      • Exemplo: '/my-app'
      • Nota: Isso afeta como as URLs são construídas para a aplicação.
    • serverSetCookie:

      • Tipo: string
      • Padrão: 'always'
      • Descrição: Regra para definir o cookie de idioma no servidor.
      • Opções: 'always', 'never'
      • Exemplo: 'never'
      • Nota: Controla se o cookie de idioma é definido em todas as requisições ou nunca.
    • noPrefix:

      • Tipo: boolean
      • Padrão: false
      • Descrição: Indica se o prefixo de idioma deve ser omitido das URLs.
      • Exemplo: true
      • Nota: Se true, as URLs não conterão informações de idioma.

    Configuração de Conteúdo

    Configurações relacionadas ao gerenciamento de conteúdo dentro da aplicação, incluindo nomes de diretórios, extensões de arquivos e configurações derivadas.

    Propriedades

    • watch:

      • Tipo: boolean
      • Padrão: process.env.NODE_ENV === 'development'
      • Descrição: Indica se o Intlayer deve monitorar alterações nos arquivos de declaração de conteúdo na aplicação para reconstruir os dicionários relacionados.
    • fileExtensions:

      • Tipo: string[]
      • Padrão: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • Descrição: Extensões de arquivo a serem procuradas ao construir dicionários.
      • Exemplo: ['.data.ts', '.data.js', '.data.json']
      • Nota: Personalizar as extensões de arquivo pode ajudar a evitar conflitos.
    • baseDir:

      • Tipo: string
      • Padrão: process.cwd()
      • Descrição: O diretório base para o projeto.
      • Exemplo: '/path/to/project'
      • Nota: Usado para resolver todos os diretórios relacionados ao Intlayer.
    • dictionaryOutput:

      • Tipo: string[]
      • Padrão: ['intlayer']
      • Descrição: O tipo de saída de dicionário a ser usado, por exemplo, 'intlayer' ou 'i18next'.
    • contentDir:

      • Tipo: string[]
      • Padrão: ['src']
      • Descrição: O caminho do diretório onde o conteúdo é armazenado.
    • dictionariesDir:

      • Tipo: string
      • Padrão: '.intlayer/dictionaries'
      • Descrição: O caminho do diretório para armazenar resultados intermediários ou de saída.
    • moduleAugmentationDir:

      • Tipo: string
      • Padrão: '.intlayer/types'
      • Descrição: Diretório para aumento de módulo, permitindo melhores sugestões de IDE e verificação de tipos.
      • Exemplo: 'intlayer-types'
      • Nota: Certifique-se de incluir isso no tsconfig.json.
    • unmergedDictionariesDir:

      • Tipo: string
      • Padrão: '.intlayer/unmerged_dictionary'
      • Descrição: O diretório para armazenar dicionários não mesclados.
      • Exemplo: 'translations'
    • dictionariesDir:

      • Tipo: string
      • Padrão: '.intlayer/dictionary'
      • Descrição: O diretório para armazenar dicionários de localização.
      • Exemplo: 'translations'
    • i18nextResourcesDir:

      • Tipo: string
      • Padrão: 'i18next_dictionary'
      • Descrição: O diretório para armazenar dicionários i18n.
      • Exemplo: 'translations'
      • Nota: Certifique-se de que este diretório esteja configurado para o tipo de saída i18next.
    • typesDir:

      • Tipo: string
      • Padrão: 'types'
      • Descrição: O diretório para armazenar tipos de dicionário.
      • Exemplo: 'intlayer-types'
    • mainDir:

      • Tipo: string
      • Padrão: 'main'
      • Descrição: O diretório onde os arquivos principais da aplicação são armazenados.
      • Exemplo: 'intlayer-main'
    • excludedPath:

      • Tipo: string[]
      • Padrão: ['node_modules']
      • Descrição: Diretórios excluídos da busca de conteúdo.
      • Nota: Esta configuração ainda não é usada, mas está planejada para implementação futura.

    Configuração do Logger

    Configurações que controlam o logger, incluindo o prefixo a ser usado.

    Propriedades

    • mode:

      • Tipo: string
      • Padrão: default
      • Descrição: Indica o modo do logger.
      • Opções: default, verbose, disabled
      • Exemplo: default
      • Nota: O modo do logger. O modo verbose registrará mais informações, mas pode ser usado para fins de depuração. O modo disabled desativará o logger.
    • prefix:

      • Tipo: string
      • Padrão: '[intlayer] '
      • Descrição: O prefixo do logger.
      • Exemplo: '[my custom prefix] '
      • Nota: O prefixo do logger.

    Configuração de IA

    Configurações que controlam os recursos de IA do Intlayer, incluindo o provedor, modelo e chave de API.

    Esta configuração é opcional se você estiver registrado no Painel do Intlayer usando uma chave de acesso. O Intlayer gerenciará automaticamente a solução de IA mais eficiente e econômica para suas necessidades. Usar as opções padrão garante melhor manutenção a longo prazo, pois o Intlayer atualiza continuamente para usar os modelos mais relevantes.

    Se preferir usar sua própria chave de API ou modelo específico, você pode definir sua configuração personalizada de IA. Esta configuração de IA será usada globalmente em todo o ambiente do Intlayer. Comandos CLI usarão essas configurações como padrão para os comandos (por exemplo, fill), bem como o SDK, Editor Visual e CMS. Você pode substituir esses valores padrão para casos de uso específicos usando parâmetros de comando.

    O Intlayer suporta vários provedores de IA para maior flexibilidade e escolha. Os provedores atualmente suportados são:

    • OpenAI (padrão)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Meta Llama

    Propriedades

    • provider:

      • Tipo: string
      • Padrão: 'openai'
      • Descrição: O provedor a ser usado para os recursos de IA do Intlayer.
      • Opções: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
      • Exemplo: 'anthropic'
      • Nota: Diferentes provedores podem exigir diferentes chaves de API e ter diferentes modelos de preços.
    • model:

      • Tipo: string
      • Padrão: Nenhum
      • Descrição: O modelo a ser usado para os recursos de IA do Intlayer.
      • Exemplo: 'gpt-4o-2024-11-20'
      • Nota: O modelo específico a ser usado varia de acordo com o provedor.
    • temperature:

      • Tipo: number
      • Padrão: Nenhum
      • Descrição: A temperatura controla a aleatoriedade das respostas da IA.
      • Exemplo: 0.1
      • Nota: Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
    • apiKey:

      • Tipo: string
      • Padrão: Nenhum
      • Descrição: Sua chave de API para o provedor selecionado.
      • Exemplo: process.env.OPENAI_API_KEY
      • Nota: Importante: As chaves de API devem ser mantidas em segredo e não compartilhadas publicamente. Certifique-se de mantê-las em um local seguro, como variáveis de ambiente.
    • applicationContext:

      • Tipo: string
      • Padrão: Nenhum
      • Descrição: Fornece contexto adicional sobre sua aplicação ao modelo de IA, ajudando-o a gerar traduções mais precisas e contextualmente apropriadas. Isso pode incluir informações sobre o domínio do seu aplicativo, público-alvo, tom ou terminologia específica.

    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