Skip to content

Remix / server: RemixI18nServer

Functions, types, and exports for Remix / server: RemixI18nServer.

Page outline
import type { RemixI18nServer } from "@palamedes/remix/server"

type RemixI18nServer<TLocale extends string> = {
    resolveLocale(input: RemixI18nRunInput): RemixResolvedLocale<TLocale>;
    run<Result>(input: RemixI18nRunInput, callback: (context: RemixI18nContextValue<TLocale, PalamedesI18n>) => Result | Promise<Result>): Promise<Result>;
    middleware(): Middleware<{
        key: typeof remixI18nContext;
        value: RemixI18nContextValue<TLocale, PalamedesI18n>;
        property: "palamedes";
    }>;
    get(context?: RemixI18nContextReader): RemixI18nContextValue<TLocale, PalamedesI18n> | undefined;
    createClientCatalogAsset(locale: TLocale): RemixClientCatalogAsset<TLocale>;
    /**
     * Render the catalog preload link. The bootstrap loads the catalog from
     * `catalogAssets.basePath` through its import-map data, never from this link,
     * so a `basePath` override changes only the preload URL.
     */
    renderClientCatalog(locale: TLocale, options?: {
        basePath?: string;
    }): string;
    /** Render the stable Remix import map and external adapter bootstrap for an entry file. */
    renderClientEntry(entryPath: string, options: RemixClientEntryOptions): Promise<string>;
    serveClientCatalogAsset(request: Request): Response | undefined;
    serializeLocaleCookie(locale: TLocale): string;
};

resolveLocale

resolveLocale(input: RemixI18nRunInput): RemixResolvedLocale<TLocale>

Parameters

NameTypeRequired
inputRemixI18nRunInputYes

Returns

RemixResolvedLocale<TLocale>

run

run<Result>(input: RemixI18nRunInput, callback: (context: RemixI18nContextValue<TLocale, PalamedesI18n>) => Result | Promise<Result>): Promise<Result>

Parameters

NameTypeRequired
inputRemixI18nRunInputYes
callback(context: RemixI18nContextValue<TLocale, PalamedesI18n>) => Result | Promise<Result>Yes

Returns

Promise<Result>

middleware

middleware(): Middleware<{
        key: typeof remixI18nContext;
        value: RemixI18nContextValue<TLocale, PalamedesI18n>;
        property: "palamedes";
    }>

Returns

Middleware<{ key: typeof remixI18nContext; value: RemixI18nContextValue<TLocale, PalamedesI18n>; property: "palamedes" }>

get

get(context?: RemixI18nContextReader): RemixI18nContextValue<TLocale, PalamedesI18n> | undefined

Parameters

NameTypeRequired
contextRemixI18nContextReaderNo

Returns

RemixI18nContextValue<TLocale, PalamedesI18n> | undefined

createClientCatalogAsset

createClientCatalogAsset(locale: TLocale): RemixClientCatalogAsset<TLocale>

Parameters

NameTypeRequired
localeTLocaleYes

Returns

RemixClientCatalogAsset<TLocale>

renderClientCatalog

Render the catalog preload link. The bootstrap loads the catalog from catalogAssets.basePath through its import-map data, never from this link, so a basePath override changes only the preload URL.

renderClientCatalog(locale: TLocale, options?: {
        basePath?: string;
    }): string

Parameters

NameTypeRequired
localeTLocaleYes
options{ basePath?: string }No

Returns

string

renderClientEntry

Render the stable Remix import map and external adapter bootstrap for an entry file.

renderClientEntry(entryPath: string, options: RemixClientEntryOptions): Promise<string>

Parameters

NameTypeRequired
entryPathstringYes
optionsRemixClientEntryOptionsYes

Returns

Promise<string>

serveClientCatalogAsset

serveClientCatalogAsset(request: Request): Response | undefined

Parameters

NameTypeRequired
requestRequestYes

Returns

Response | undefined

serializeLocaleCookie

serializeLocaleCookie(locale: TLocale): string

Parameters

NameTypeRequired
localeTLocaleYes

Returns

string

Source entry on GitHub

Last updated: November 1, 2026