Intlayer Configuration Documentation
Overview
Os arquivos de configuração do Intlayer permitem a personalização de vários aspectos do plugin, como internacionalização, middleware e manipulação de conteúdo. Este documento fornece uma descrição detalhada de cada propriedade na configuração.
Suporte ao Arquivo de Configuração
O Intlayer aceita os 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
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.PORTUGUESE], }, 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 as configurações relacionadas à internacionalização, incluindo locais disponíveis e o local padrão para o aplicativo.
Propriedades
- locales:
- Tipo: string[]
- Padrão: ['pt']
- Descrição: A lista de locais suportados no aplicativo.
- Exemplo: ['pt', 'en', 'es']
strictMode:
- Tipo: string
- Padrão: required_only
- Descrição: Garantir implementações fortes de conteúdo internacionalizado usando TypeScript.
- Nota: Se definido como "strict", a função de tradução t exigirá que cada local declarado seja definido. Se um local estiver faltando, ou se um local não estiver declarado em sua configuração, gerará um erro.
- Nota: Se definido como "required_only", a função de tradução t exigirá que cada local declarado seja definido. Se um local estiver faltando, gerará um aviso. Mas aceitará se um local não estiver declarado em sua configuração, mas existir.
- Nota: Se definido como "loose", a função de tradução t aceitará qualquer local existente.
defaultLocale:
- Tipo: string
- Padrão: 'pt'
- Descrição: O local padrão usado como fallback se o local solicitado não for encontrado.
- Exemplo: 'pt'
- Nota: Isso é usado para determinar o local quando nenhum é especificado na URL, cookie ou cabeçalho.
Configuração do Editor
Define as configurações relacionadas ao editor integrado, incluindo porta do servidor e status ativo.
Propriedades
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 o editor está ativo.
- Exemplo: true
- Nota: Pode ser definido usando NODE_ENV ou outra variável de ambiente dedicada
clientId:
- Tipo: string | undefined
- Padrão: undefined
- Descrição: clientId e clientSecret permitem que os pacotes do Intlayer se autentiquem com o backend usando a autenticação oAuth2. Um token de acesso é usado para autenticar o usuário relacionado ao projeto. Para obter um token de acesso, vá para /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 se autentiquem com o backend usando a autenticação oAuth2. Um token de acesso é usado para autenticar o usuário relacionado ao projeto. Para obter um token de acesso, vá para /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.
Configuração do Middleware
Configurações que controlam o comportamento do middleware, incluindo como o aplicativo manipula cookies, cabeçalhos e prefixos de URL para gerenciamento de locais.
Propriedades
- headerName:
- Tipo: string
- Padrão: 'x-intlayer-locale'
- Descrição: O nome do cabeçalho HTTP usado para determinar o local.
- Exemplo: 'x-custom-locale'
- Nota: Isso é útil para a determinação do local baseada em API.
- cookieName:
- Tipo: string
- Padrão: 'intlayer-locale'
- Descrição: O nome do cookie usado para armazenar o local.
- Exemplo: 'custom-locale'
- Nota: Usado para persistir o local entre sessões.
- prefixDefault:
- Tipo: boolean
- Padrão: true
- Descrição: Se deve incluir o local padrão na URL.
- Exemplo: false
- Nota: Se false, URLs para o local padrão não terão um prefixo de local.
- basePath:
- Tipo: string
- Padrão: ''
- Descrição: O caminho base para as URLs do aplicativo.
- Exemplo: '/meu-aplicativo'
- Nota: Isso afeta como as URLs são construídas para o aplicativo.
- serverSetCookie:
- Tipo: string
- Padrão: 'always'
- Descrição: Regra para definir o cookie de local no servidor.
- Opções: 'always', 'never'
- Exemplo: 'never'
- Nota: Controla se o cookie de local é definido em cada solicitação ou nunca.
- noPrefix:
- Tipo: boolean
- Padrão: false
- Descrição: Se deve omitir o prefixo de local das URLs.
- Exemplo: true
- Nota: Se true, as URLs não conterão informações de local.
Configuração de Conteúdo
Configurações relacionadas à manipulação de conteúdo dentro do aplicativo, incluindo nomes de diretórios, extensões de arquivo e configurações derivadas.
Propriedades
- watch:
- Tipo: boolean
- Padrão: process.env.NODE_ENV === 'development'
- Descrição: Indica se o Intlayer deve monitorar mudanças nos arquivos de declaração de conteúdo no aplicativo 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: '/caminho/para/projeto'
- Nota: Isso é 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'.
- contentDirName:
- Tipo: string
- Padrão: 'src'
- Descrição: O nome do diretório onde o conteúdo é armazenado.
- Exemplo: 'data', 'content', 'locales'
- Nota: Se não estiver no nível do diretório base, atualize o contentDir.
contentDir:
- Tipo: string
- DerivedFrom: 'baseDir' / 'contentDirName'
- Descrição: O caminho do diretório onde o conteúdo é armazenado.
- resultDirName:
- Tipo: string
- Padrão: '.intlayer'
- Descrição: O nome do diretório onde os resultados são armazenados.
- Exemplo: 'outputOFIntlayer'
- Nota: Se este diretório não estiver no nível base, atualize resultDir.
resultDir:
- Tipo: string
- DerivedFrom: 'baseDir' / 'resultDirName'
- Descrição: O caminho do diretório para armazenar resultados intermediários ou de saída.
moduleAugmentationDirName:
- Tipo: string
- Padrão: '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.
moduleAugmentationDir:
- Tipo: string
- DerivedFrom: 'baseDir' / 'moduleAugmentationDirName'
- Descrição: O caminho para aumento de módulo e definições de tipo adicionais.
- dictionariesDirName:
- Tipo: string
- Padrão: 'dictionary'
- Descrição: Diretório para armazenar dicionários.
- Exemplo: 'translations'
- Nota: Se não estiver no nível do diretório de resultados, atualize dictionariesDir.
dictionariesDir:
- Tipo: string
- DerivedFrom: 'resultDir' / 'dictionariesDirName'
- Descrição: O diretório para armazenar dicionários de localização.
- i18nextResourcesDirName:
- Tipo: string
- Padrão: 'i18next_dictionary'
- Descrição: Diretório para armazenar dicionários i18n.
- Exemplo: 'translations'
- Nota: Se não estiver no nível do diretório de resultados, atualize i18nextResourcesDir.
- Nota: Certifique-se de que a saída dos dicionários i18n inclua i18next para construir os dicionários para i18next
i18nextResourcesDir:
- Tipo: string
- DerivedFrom: 'resultDir' / 'i18nextResourcesDirName'
- Descrição: O diretório para armazenar dicionários i18n.
- Nota: Certifique-se de que este diretório está configurado para o tipo de saída i18next.
typeDirName:
- Tipo: string
- Padrão: 'types'
- Descrição: Diretório para armazenar tipos de dicionário.
- Exemplo: 'intlayer-types'
- Nota: Se não estiver no nível do diretório de resultados, atualize typesDir.
typesDir:
- Tipo: string
- DerivedFrom: 'resultDir' / 'typeDirName'
- Descrição: O diretório para armazenar tipos de dicionário.
- mainDirName:
- Tipo: string
- Padrão: 'main'
- Descrição: Diretório para armazenar arquivos principais.
- Exemplo: 'intlayer-main'
- Nota: Se não estiver no nível do diretório de resultados, atualize mainDir.
- mainDir:
- Tipo: string
- DerivedFrom: 'resultDir' / 'mainDirName'
- Descrição: O diretório onde os arquivos principais do aplicativo são armazenados.
- 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 está em uso, mas está planejada para implementação futura.
Configuração do Logger
Configurações que controlam o logger, incluindo o nível de logging e o prefixo a ser usado.
Propriedades
- enabled:
- Tipo: boolean
- Padrão: true
- Descrição: Indica se o logger está habilitado.
- Exemplo: true
- Nota: Pode ser definido usando NODE_ENV ou outra variável de ambiente dedicada
- level:
- Tipo: 'info' | 'warn' | 'debug' | 'log'
- Padrão: 'log'
- Descrição: O nível do logger.
- Exemplo: 'info'
- Nota: O nível do logger. Pode ser 'log', 'info', 'warn', 'error' ou 'debug'.
- prefix:
- Tipo: string
- Padrão: '[intlayer] '
- Descrição: O prefixo do logger.
- Exemplo: '[meu prefixo personalizado] '
- Nota: O prefixo do logger.
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