md
# Démarrage pour déclarer votre contenu## Extensions de fichiersPar défaut, Intlayer surveille tous les fichiers avec les extensions suivantes pour les déclarations de contenu :- `.content.ts`- `.content.tsx`- `.content.js`- `.content.mjs`- `.content.cjs`L'application recherchera par défaut des fichiers correspondant au motif glob `./src/**/*.content.{ts,tsx,js,jsx,mjs,cjs}`.Ces extensions par défaut conviennent à la plupart des applications. Cependant, si vous avez des exigences spécifiques, référez-vous au [guide de personnalisation des extensions de contenu](/fr/doc/concept/configuration#content-configuration) pour des instructions sur leur gestion.Pour une liste complète des options de configuration, consultez la documentation de configuration.## Déclarez votre contenuCréez et gérez vos dictionnaires :```tsx fileName="src/example.content.ts" codeFormat="typescript"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: "Bonjour le monde", // Traduction numberContent: 123, booleanContent: true, javaScriptContent: `${process.env.NODE_ENV}`, }, }, multilingualContent: t({ en: "Contenu en anglais", "en-GB": "Contenu anglais (Royaume-Uni)", fr: "Contenu en français", es: "Contenu en espagnol", }), quantityContent: enu({ "<-1": "Moins d'une voiture", "-1": "Moins une voiture", "0": "Aucune voiture", "1": "Une voiture", ">5": "Quelques voitures", ">19": "De nombreuses voitures", }), conditionalContent: cond({ true: "La validation est activée", false: "La validation est désactivée", }), nestedContent: nest( "navbar", // La clé du dictionnaire à imbriquer "login.button" // [Optionnel] Le chemin du contenu à imbriquer ), externalContent: async () => await fetch("https://example.com"), markdownContent: md("# Exemple de Markdown"), /* * Uniquement disponible avec `react-intlayer` ou `next-intlayer` */ jsxContent: <h1>Mon titre</h1>, },} satisfies Dictionary<Content>; // [optionnel] Le dictionnaire est générique et permet de renforcer le formatage de votre dictionnaire```
Fonction imbriquée
Vous pouvez sans problème imbriquer des fonctions dans d'autres.
Exemple :
src/example.content.ts
import { t, enu, cond, nest, md, type Dictionary } from "intlayer";const getName = async () => "John Doe"; // Exempleexport default { key: "page", content: { ... }} satisfies Dictionary;
Si vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentation