Next.js संदर्भ
18ways.config.*
अपने ऐप रूट में 18ways.config.ts, 18ways.config.js, या 18ways.config.cjs बनाएँ और अपनी 18ways config को वहाँ से export करें.
import type { WaysConfig } from '@18ways/next/config';
export default {
apiKey: process.env.NEXT_PUBLIC_18WAYS_PUBLIC_API_KEY,
baseLocale: 'en-GB',
router: 'app', // 'app', 'path', or 'none' depending on if you use app router, path router, or if you don't want the router to sync with locale at all
} satisfies WaysConfig;withWays()
@18ways/next/config से इम्पोर्ट करें और इसे next.config.js से कॉल करें।
import { withWays } from '@18ways/next/config';जब 18ways.config.* मौजूद होता है, withWays() उसे अपने-आप लोड कर देता है। router: 'path' के लिए यह लोकल-डिटेक्शन बंद करके नैटिव Next i18n कॉन्फ़िग लौटाता है। router: 'app' और router: 'none' के लिए, यह @18ways/next/server से सीधे इम्पोर्ट्स के लिए ज़रूरी एलियास इंजेक्ट करता है।
सामान्य विकल्प:
| विकल्प | टाइप | नोट्स |
|---|---|---|
apiKey | स्ट्रिंग | आवश्यक। |
baseLocale | स्ट्रिंग | रूटिंग के लिए स्रोत लोकेल और डिफ़ॉल्ट लोकेल। |
राउटर | 'ऐप' | 'पथ' | 'कोई नहीं' | लोकेल-रूटिंग मोड। जब कोई दूसरा राउटर पहले से ही लोकेल URL का मालिक हो, तब none का उपयोग करें. |
स्वीकृतLocales | string[] | स्पष्ट लोकेल सूची। path के लिए आवश्यक, अन्यथा वैकल्पिक। path मोड को अपने 18ways डैशबोर्ड में सक्षम भाषाओं के साथ सिंक में रखें। |
डोमेन | Array<{domain, defaultLocale}> | वैकल्पिक डोमेन रूटिंग मानचित्र। |
localeParamName | स्ट्रिंग | ऐप राउटर लोकेल सेगमेंट पैरामीटर। डिफ़ॉल्ट रूप से lang। |
persistLocaleCookie | बूलियन | ((अनुरोध) => बूलियन) | सर्वर और क्लाइंट लोकेल परिवर्तनों के लिए लोकेल-कुकी दृढ़ता नीति। |
cacheTtl | संख्या | एडैप्टर अनुरोधों के लिए कैश TTL. |
fetcher | fetch का प्रकार | कस्टम फ़ेच कार्यान्वयन. |
init(config)
@18ways/next/server से इम्पोर्ट करें।
जब आप किसी config object को स्पष्ट रूप से bind करना चाहते हैं, तब इसका उपयोग करें।
WaysRoot
अपने लेआउट में WaysRoot को सीधे @18ways/next/server से इम्पोर्ट करें, next.config.js को withWays(...) से रैप करने के बाद।
अपनी लेआउट में WaysRoot का उपयोग करें, ताकि adapter मौजूदा अनुरोध के लिए runtime state seed कर सके।
App Router locale routing के साथ, इसका आम तौर पर मतलब app/[lang]/layout.tsx होता है।
getLocale()
सर्वर पर वर्तमान लोकेल को resolve करें। जब आपको WaysRoot के बाहर लोकेल state की ज़रूरत हो, उदाहरण के लिए server-only SEO helpers या अन्य request-bound server code में, तब यही helper इस्तेमाल करना है।
htmlAttrs()
htmlAttrs() दस्तावेज़ तत्व के लिए वर्तमान lang और dir मानों का समाधान करता है.
generateWaysMetadata()
जब आप अनुवादित शीर्षक,
विवरण, और लोकेल-जानकारी वाले canonical या alternate URL चाहते हों, तब generateWaysMetadata() को generateMetadata() के अंदर इस्तेमाल करें।
proxy.ts
router: 'app' के लिए, proxy.ts अनुरोध-समय locale redirects के लिए सुझाया गया एंट्रीपॉइंट है।
@18ways/next/proxy से re-export करें ताकि / -> /{locale} और डोमेन canonicalization को संभाला जा सके।
export { default, config } from '@18ways/next/proxy';अगर आपके पास पहले से अपना प्रोजेक्ट proxy.ts या middleware.ts है, तो
getWaysProxyResponse(request) का उपयोग करें और अपनी बाकी लॉजिक से पहले इसे लौटाएँ।
क्लाइंट सहायक
इम्पोर्ट करें @18ways/next/client से।
useLocale()
वर्तमान लोकेल पढ़ें और बदलें। यह वही हुक है जिसे आप LanguageSwitcher या अपने स्वयं के
कस्टम सिलेक्टर UI के साथ जोड़ते हैं।
useRouter()
Next नेविगेशन के लिए लोकल-समझदार रैपर। स्थानीयकृत लक्ष्य को ज़बरदस्ती लागू करने के लिए locale="fr-FR" पास करें या
अस्थानीयकृत लक्ष्य को ज़बरदस्ती लागू करने के लिए locale={false} पास करें।
Link
next/link के चारों ओर लोकेल-जागरूक रैपर, जिसमें useRouter() जैसा ही ओवरराइड मॉडल है।
useUnlocalizedPathname()
लोकैल प्रीफिक्स के बिना मौजूदा pathname पढ़ें।
useLocalizedHref()
एक आंतरिक href को वर्तमान locale-सचेत href में बदलने के लिए निचले-स्तर का सहायक।
Path routing config
router: 'app' मोड में एडाप्टर आपके रूट ट्री का पालन करता है:
app/[lang]/...के अंतर्गत routes स्थानीयकृत हैं- उस खंड के बाहर के मार्ग स्थानीयकृत नहीं रहते
Link, useRouter(), और setLocale() आंतरिक रूट्स को डिफ़ॉल्ट रूप से स्थानीयकृत मानते हैं। locale={false} का उपयोग केवल तब करें जब आपको किसी गैर-स्थानीयकृत रूट को स्पष्ट रूप से लक्ष्य करना हो।