Introdução à declaração do seu conteúdo

    Extensões de arquivos

    Por padrão, o Intlayer monitora todos os arquivos com as seguintes extensões para declarações de conteúdo:

    • .content.ts
    • .content.tsx
    • .content.js
    • .content.mjs
    • .content.cjs

    O aplicativo buscará arquivos que correspondam ao padrão glob ./src/**/*.content.{ts,tsx,js,jsx,mjs,cjs} por padrão.

    Essas extensões padrão são adequadas para a maioria das aplicações. No entanto, se você tiver requisitos específicos, consulte o guia de personalização de extensões de conteúdo para obter instruções sobre como gerenciá-las.

    Para uma lista completa de opções de configuração, visite a documentação de configuração.

    Declare Seu Conteúdo

    Crie e gerencie seus dicionários:

    src/example.content.ts
    import { t, enu, cond, nest, md, type Dictionary } from "intlayer";interface Content {  imbricatedContent: {    imbricatedContent2: {      stringContent: string;      numberContent: number;      booleanContent: boolean;    };    multilingualContent: string;    quantityContent: string;    conditionalContent: string;    nestedContent: string;    markdownContent: string;    externalContent: string;  };}export default {  key: "page",  content: {    imbricatedContent: {      imbricatedContent2: {        stringContent: "Olá Mundo",        numberContent: 123,        booleanContent: true,        javaScriptContent: `${process.env.NODE_ENV}`,      },    },    multilingualContent: t({      en: "English content",      "en-GB": "English content (UK)",      fr: "French content",      es: "Spanish content",      pt: "Conteúdo em Português",    }),    quantityContent: enu({      "<-1": "Menos de menos um carro",      "-1": "Menos um carro",      "0": "Nenhum carro",      "1": "Um carro",      ">5": "Alguns carros",      ">19": "Muitos carros",    }),    conditionalContent: cond({      true: "Validação está habilitada",      false: "Validação está desabilitada",    }),    nestedContent: nest(      "navbar", // A chave do dicionário a ser aninhada      "login.button" // [Opcional] O caminho para o conteúdo a ser aninhado    ),    externalContent: async () => await fetch("https://example.com"),    markdownContent: md("# Exemplo de Markdown"),    /*     * Disponível apenas usando `react-intlayer` ou `next-intlayer`     */    jsxContent: <h1>Meu título</h1>,  },} satisfies Dictionary<Content>; // [opcional] Dictionary é genérico e permite fortalecer o formato do seu dicionário

    Imbricação de funções

    Você pode, sem problemas, imbricar funções dentro de outras.

    Exemplo:

    src/example.content.ts
    import { t, enu, cond, nest, md, type Dictionary } from "intlayer";const getName = async () => "João Silva";export default {  key: "page",  content: {    // `getIntlayer('page','pt').hiMessage` retorna `['Oi', ' ', 'João Silva']`    hiMessage: [      t({        en: "Hi",        fr: "Salut",        es: "Hola",        pt: "Oi",      }),      " ",      getName(),    ],    // Conteúdo composto imbricando condição, enumeração e conteúdo multilíngue    // `getIntlayer('page','pt').advancedContent(true)(10) retorna 'Vários itens encontrados'`    advancedContent: cond({      true: enu({        "0": t({          en: "No items found",          fr: "Aucun article trouvé",          es: "No se encontraron artículos",          pt: "Nenhum item encontrado",        }),        "1": t({          en: "One item found",          fr: "Un article trouvé",          es: "Se encontró un artículo",          pt: "Um item encontrado",        }),        ">1": t({          en: "Multiple items found",          fr: "Plusieurs articles trouvés",          es: "Se encontraron múltiples artículos",          pt: "Vários itens encontrados",        }),      }),      false: t({        en: "No valid data available",        fr: "Aucune donnée valide disponible",        es: "No hay datos válidos disponibles",        pt: "Nenhum dado válido disponível",      }),    }),  },} satisfies Dictionary;

    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