Next.js 參考
init(options)
從 @18ways/next/server 匯入。
import { init } from '@18ways/next/server';常見選項:
| 選項 | 類型 | 備註 |
|---|---|---|
apiKey | 字串 | 必填。 |
baseLocale | 字串 | 應用程式的來源語言環境。 |
區域設定 | 字串 | 可選的固定區域設置覆蓋。 |
acceptedLocales | 字串[] | 可選的明確地區列表。 |
persistLocaleCookie | 布林值 | ((請求) => 布林值) | 中介軟體和客戶端語言變更的預設區域性 Cookie 政策。 |
cacheTtl | 數字 | 適配器請求的快取有效時間(TTL)。 |
fetcher | typeof fetch | 自訂的擷取實作。 |
路徑路由 | WaysPathRoutingConfig | 包含或排除區域前綴路由。 |
WaysRoot
在您的 App Router 佈局中使用 WaysRoot,以便適配器可以為當前請求提供運行時狀態。
htmlAttrs()
htmlAttrs() 解析當前 lang 和 dir 值,用於文檔元素。
generateWaysMetadata()
在需要翻譯標題、描述以及考慮地區的標準或替代 URL 時,請在 generateMetadata() 中使用 generateWaysMetadata()。
waysMiddleware()
waysMiddleware() 是從 init() 返回的請求時間中介 API。它解析地區狀態,應用地區 cookie,並返回最終的 NextResponse。當您需要自定義行為時,請使用 transformRequestHeaders 或 transformResponse。
init() 返回值
init() 返回這些欄位:
| 字段 | 它的功能 |
|---|---|
WaysRoot | 應用路由佈局的根包裝器。 |
htmlAttrs() | 解析當前請求的 lang 和 dir。 |
generateWaysMetadata() | 構建區域感知的元數據並可以翻譯元數據字符串。 |
waysMiddleware() | 解決區域感知的中介軟體行為並返回回應。 |
客戶助手
從 @18ways/next/client 匯入。
useLocale()
閱讀並更改當前語言環境。這是您與 LanguageSwitcher 或您自己的自定義選擇器 UI 配對的鉤子。
useUnlocalizedPathname()
讀取當前的路徑名稱,不包含語言前綴。
useLocalizedHref()
將內部 href 轉換為當前區域感知的 href。
localizePathname()
純粹的幫手,用於在 React 之外構建本地化的路徑名稱。
stripLocalePrefix()
純粹的助手,用於從路徑名稱中移除區域前綴。
Path routing config
WaysPathRoutingConfig 接受:
{
include?: Array<string | RegExp>;
exclude?: Array<string | RegExp>;
}當公共 URL 需要帶有地區前綴時使用它。當您希望使用基於 cookie 或標頭的地區選擇而不進行路徑重寫時,則可以省略它。
Lower-level exports
在 @18ways/next/rsc 和 @18ways/next/server 中也有 RSC 和中介軟體的匯出,但對於大多數應用程式來說,上面的 init() 表面是正確的抽象。