Next.js 參考

init(options)

@18ways/next/server 匯入。

ts
import { init } from '@18ways/next/server';

常見選項:

選項類型備註
apiKey字串必填。
baseLocale字串應用程式的來源語言環境。
區域設定字串可選的固定區域設置覆蓋。
acceptedLocales字串[]可選的明確地區列表。
persistLocaleCookie布林值 | ((請求) => 布林值)中介軟體和客戶端語言變更的預設區域性 Cookie 政策。
cacheTtl數字適配器請求的快取有效時間(TTL)。
fetchertypeof fetch自訂的擷取實作。
路徑路由WaysPathRoutingConfig包含或排除區域前綴路由。

WaysRoot

在您的 App Router 佈局中使用 WaysRoot,以便適配器可以為當前請求提供運行時狀態。

htmlAttrs()

htmlAttrs() 解析當前 langdir 值,用於文檔元素。

generateWaysMetadata()

在需要翻譯標題、描述以及考慮地區的標準或替代 URL 時,請在 generateMetadata() 中使用 generateWaysMetadata()

waysMiddleware()

waysMiddleware() 是從 init() 返回的請求時間中介 API。它解析地區狀態,應用地區 cookie,並返回最終的 NextResponse。當您需要自定義行為時,請使用 transformRequestHeaderstransformResponse

init() 返回值

init() 返回這些欄位:

字段它的功能
WaysRoot應用路由佈局的根包裝器。
htmlAttrs()解析當前請求的 langdir
generateWaysMetadata()構建區域感知的元數據並可以翻譯元數據字符串。
waysMiddleware()解決區域感知的中介軟體行為並返回回應。

客戶助手

@18ways/next/client 匯入。

useLocale()

閱讀並更改當前語言環境。這是您與 LanguageSwitcher 或您自己的自定義選擇器 UI 配對的鉤子。

useUnlocalizedPathname()

讀取當前的路徑名稱,不包含語言前綴。

useLocalizedHref()

將內部 href 轉換為當前區域感知的 href。

localizePathname()

純粹的幫手,用於在 React 之外構建本地化的路徑名稱。

stripLocalePrefix()

純粹的助手,用於從路徑名稱中移除區域前綴。

Path routing config

WaysPathRoutingConfig 接受:

ts
{
  include?: Array<string | RegExp>;
  exclude?: Array<string | RegExp>;
}

當公共 URL 需要帶有地區前綴時使用它。當您希望使用基於 cookie 或標頭的地區選擇而不進行路徑重寫時,則可以省略它。

Lower-level exports

@18ways/next/rsc@18ways/next/server 中也有 RSC 和中介軟體的匯出,但對於大多數應用程式來說,上面的 init() 表面是正確的抽象。