@intl-t/next
Version:
A Fully-Typed Object-Based i18n Translation Library for Next.js
26 lines (25 loc) • 1.7 kB
TypeScript
import type { Locale } from "@intl-t/locales";
import { match } from "@intl-t/tools/match";
import { ResolveConfig } from "@intl-t/tools/resolvers";
import { I18NDomains } from "next/dist/server/config-shared";
import { MiddlewareConfig as MG, NextFetchEvent, NextRequest, NextResponse } from "next/server";
export declare const LOCALE_COOKIE_KEY = "locale";
export type Middleware = (req: NextRequest, ev: NextFetchEvent, res?: NextResponse) => NextResponse | Promise<NextResponse> | undefined;
export type MiddlewareFactory = (middleware: Middleware) => Middleware;
export interface MiddlewareConfig<L extends Locale> extends MG, ResolveConfig<L> {
pathBase?: "always-default" | "detect-default" | "detect-latest" | "always-detect";
strategy?: "domain" | "param" | "headers";
detect?: false | string | string[] | ((req: NextRequest) => string[] | string);
domains?: I18NDomains;
config?: MG;
middleware?: Middleware;
withMiddleware?: MiddlewareFactory;
match?: typeof match;
}
export declare const middlewareConfig: MG;
export declare function detect(req: NextRequest, domains?: I18NDomains): string[];
export declare function createMiddleware<L extends Locale>(settings: MiddlewareConfig<L>): Middleware & MiddlewareConfig<L> & MG;
export declare function middleware<L extends Locale>(req: NextRequest, ev: NextFetchEvent, res?: NextResponse): NextResponse<unknown>;
export declare const i18nMiddleware: typeof middleware;
export declare function withMiddleware(middleware: Middleware): (req: NextRequest, ev: NextFetchEvent, res?: NextResponse) => NextResponse<unknown> | Promise<NextResponse<unknown>> | undefined;
export { withMiddleware as withI18nMiddleware };