Skip to content

फुमाडॉक्स एकीकरण

Next.js ऐप राउटर पर फुमाडॉक्स 4 दस्तावेज़ साइटों के लिए init -t ui-fumadocs और docsOutput.style: "fumadocs" का उपयोग करें। प्रीसेट एक खाली localeSubpath और संरक्षित BCP-47 या लघु लोकेल कोड (localePathLowercase डिफ़ॉल्ट रूप से false पर सेट है) के साथ doc-system के लिए एक उपनाम है।

दस्तावेज़ और चलाने योग्य उदाहरण/फुमाडॉक्स-डॉक्स डेमो (डॉट पार्सर, पोर्ट 3080) भी देखें।

त्वरित शुरुआत

bash
ai-i18n-tools init -t ui-fumadocs [-P <provider>]
# edit ai-i18n-tools.config.json (targetLocales, providers, contentPaths)
pnpm run i18n:sync   # or: ai-i18n-tools sync
pnpm run build       # Next.js build (project-specific script)

जब आप पृष्ठ सामग्री, meta.json साइडबार लेबल, और फुमाडॉक्स UI ओवरराइड को एक sync रन में अनुवादित करते हैं तो features.translateDocs सक्षम करें।

पेज लेआउट

फुमाडॉक्स docsOutput.fumadocsParser के माध्यम से दो i18n सामग्री लेआउट का समर्थन करता है। डॉट पार्सर डिफ़ॉल्ट है (फुमाडॉक्स अंतर्निहित और उत्पादन साइटें जैसे SWR)।

डॉट पार्सर (डिफ़ॉल्ट)

अंग्रेजी MDX संग्रह रूट पर रहता है। अनुवादित प्रतियां उसी निर्देशिका में एक लोकेल प्रत्यय का उपयोग करती हैं:

text
content/docs/index.mdx                    →  content/docs/index.pt.mdx
content/docs/guide/getting-started.mdx    →  content/docs/guide/getting-started.zh.mdx
json
{
  "contentPaths": ["content/docs"],
  "outputDir": "content/docs",
  "docsOutput": {
    "style": "fumadocs",
    "docsRoot": "content/docs",
    "fumadocsParser": "dot",
    "rewriteFumadocsLinks": true
  }
}

lib/i18n.ts में targetLocales को defineI18n().languages के साथ ठीक से संरेखित करें (उदाहरण में लघु कोड pt और zh का उपयोग किया गया है)।

Dir पार्सर (नेक्स्ट्रा-शैली)

लोकेल फ़ोल्डरों (content/docs/en/content/docs/pt-BR/) के आदी टीमों के लिए, fumadocsParser को "dir" पर सेट करें:

text
content/docs/en/index.mdx           →  content/docs/pt-BR/index.mdx
content/docs/en/guide/foo.mdx       →  content/docs/zh-Hans/guide/foo.mdx
json
{
  "contentPaths": ["content/docs/en"],
  "outputDir": "content/docs",
  "docsOutput": {
    "style": "fumadocs",
    "docsRoot": "content/docs/en",
    "fumadocsParser": "dir",
    "rewriteFumadocsLinks": true
  }
}

कॉपी-पेस्ट dir कॉन्फ़िग के लिए उदाहरण/फुमाडॉक्स-डॉक्स में ai-i18n-tools.config.dir.example.json देखें। मानसिक मॉडल नेक्स्ट्रा एकीकरण से मेल खाता है।

साइडबार (meta.json)

फुमाडॉक्स साइडबार संरचना और शीर्षकों के लिए JSON meta.json फ़ाइलों का उपयोग करता है। जब docsOutput.style "fumadocs" होता है, तो translate-docs docsRoot (या docs[].fumadocsMetaGlob) के तहत meta.json एकत्र करता है, docs[].fumadocsMetaTranslatableKeys (डिफ़ॉल्ट: title, description) में सूचीबद्ध कुंजियों के लिए स्ट्रिंग मानों का अनुवाद करता है, और लोकेल आउटपुट लिखता है:

पार्सरअंग्रेजी स्रोतआउटपुट
डॉटcontent/docs/**/meta.jsoncontent/docs/**/meta.{locale}.json
dircontent/docs/en/**/meta.jsoncontent/docs/{locale}/**/meta.json

pages स्लग सरणियों, root, icon, defaultOpen, या अन्य संरचनात्मक कुंजियों का अनुवाद न करें — केवल मानव-पठनीय लेबल का।

UI कैटलॉग

फुमाडॉक्स लेआउट क्रोम (खोज प्लेसहोल्डर, लोकेल डिस्प्ले नाम, और lib/layout.shared.ts में अन्य defineTranslations / i18n.translations() ओवरराइड) को मार्कडाउन से नहीं निकाला जाता है। docsOutput.fumadocsUiCatalog को कॉन्फ़िगर करें ताकि translate-docs sourcePath से अंग्रेजी कैटलॉग को बूटस्ट्रैप करे और प्रति-लोकेल JSON का अनुवाद करे:

json
{
  "features": {
    "translateDocs": true
  },
  "docs": [
    {
      "contentPaths": ["content/docs"],
      "outputDir": "content/docs",
      "docsOutput": {
        "style": "fumadocs",
        "docsRoot": "content/docs",
        "fumadocsParser": "dot",
        "fumadocsUiCatalog": {
          "sourcePath": "lib/layout.shared.ts",
          "catalogPath": "lib/i18n/ui.en.json"
        }
      }
    }
  ]
}
  • catalogPath — जेनरेटेड अंग्रेजी फ्लैट JSON (बूटस्ट्रैप आउटपुट)। जब layout.shared.ts में अंग्रेजी ओवरराइड बदलते हैं तो sync को फिर से चलाएँ।
  • outputPathTemplate (वैकल्पिक) — प्रति-लोकेल आउटपुट; डिफ़ॉल्ट: catalogPath के बगल में ui.{locale}.json

layout.shared.ts में loadUiCatalog(locale) के माध्यम से प्रति-लोकेल JSON लोड करें और अपने रूट लेआउट में i18nProvider(translations, lang) के साथ मर्ज करें। उदाहरण/फुमाडॉक्स-डॉक्स/lib/layout.shared.ts देखें।

मानक लोकेल को LLM लागत के बिना @fumadocs/language/* प्रीसेट द्वारा कवर किया जा सकता है; कैटलॉग केवल अंग्रेजी ब्लॉक में प्रोजेक्ट ओवरराइड का अनुवाद करता है।

फ्यूमाडॉक्स UI स्ट्रिंग्स के लिए json[] का उपयोग न करें — वह पाइपलाइन असंबंधित ऐप लोकेल बंडलों के लिए है।

लिंक कन्वेंशन

फ्यूमाडॉक्स Next.js मिडलवेयर (/docs/getting-started, /pt/docs/getting-started) के माध्यम से लोकेल-प्रीफिक्स्ड रूट प्रदान करता है। इन-पेज लिंक लोकेल-न्यूट्रल रहने चाहिए (/docs/getting-started) ताकि सक्रिय लोकेल प्रीफिक्स स्वचालित रूप से लागू हो।

बिल्ट-इन नॉर्मलाइज़र को सक्षम करें ताकि translate-docs हर अनुवादित फ़ाइल में लिंक को स्वचालित रूप से ठीक कर दे:

json
"docsOutput": {
  "style": "fumadocs",
  "docsRoot": "content/docs",
  "rewriteFumadocsLinks": true
}

जब style "fumadocs" हो तो rewriteFumadocsLinks डिफ़ॉल्ट रूप से सक्षम होता है।

अंग्रेजी स्रोत में लेखकनॉर्मलाइज़र के बाद
[Guide](content/docs/guide/getting-started.mdx)[Guide](/docs/guide/getting-started)
[Home](content/docs/index.mdx)[Home](/docs)
[Guide](/hi/guide/getting-started.mdx)[Guide](/docs/guide/getting-started)
[Demo](https://github.com/org/repo)अपरिवर्तित (पूरा URL)

लेखन नियम

  • क्रॉस-पेज डॉक लिंक: अंग्रेजी MDX में लोकेल-न्यूट्रल साइट रूट (/docs/…) का उपयोग करें, या content/docs/… / रिलेटिव .mdx पाथ का उपयोग करें और नॉर्मलाइज़र को sync के दौरान उन्हें फिर से लिखने दें।
  • सामग्री ट्री के बाहर रेपो फ़ाइलें: पूरे URL का उपयोग करें।
  • लोकेल-सफिक्स वाली प्रतियों (*.pt.mdx) या content/{locale}/ ट्री में लिंक को मैन्युअल रूप से संपादित न करेंsync / translate-docs के साथ फिर से जनरेट करें।

यह भी देखें दस्तावेज़ — लिंक पुनर्लेखन और कॉन्फ़िगरेशन — docsOutput

लोकेल कोड

अपने फ्यूमाडॉक्स ऐप में ai-i18n-tools.config.json में targetLocales को defineI18n().languages के साथ ठीक से संरेखित रखें। डॉट उदाहरण छोटे कोड (pt, zh) का उपयोग करता है; dir कॉन्फ़िग BCP-47 फ़ोल्डर (pt-BR, zh-Hans) का उपयोग कर सकते हैं। कोई जबरन सामान्यीकरण नहीं है — बेमेल कोड गलत आउटपुट पाथ या गायब पेज उत्पन्न करते हैं।

एकाधिक संग्रह

फ्यूमाडॉक्स प्रोजेक्ट source.config.ts में कई defineDocs ब्लॉक (डॉक्स, ब्लॉग, उदाहरण) को परिभाषित कर सकते हैं। आपके द्वारा अनुवादित प्रत्येक संग्रह के लिए एक docs[] ब्लॉक जोड़ें, प्रत्येक अपने स्वयं के contentPaths, outputDir, और docsRoot के साथ।

उदाहरण प्रोजेक्ट

उदाहरण/फ्यूमाडॉक्स-डॉक्सcontent/docs/ पर अंग्रेजी MDX, कमिटेड pt और zh डॉट-सफिक्स पेज, meta.json, और lib/i18n/ui.{locale}.json। पोर्ट 3080 पर pnpm run dev चलाएँ।

क्रॉस-रेफरेंस

एमआईटी लाइसेंस के तहत जारी किया गया।