@intlify/h3 / defineI18nMiddleware
function defineI18nMiddleware<Schema, Locales, Message, Options>(options): I18nMiddleware;define i18n middleware for h3
| Type Parameter | Default type |
|---|---|
Schema |
RemoveIndexSignature<{ [key: string]: LocaleMessageValue<string>; hello: string; nest: { foo: { bar: string; }; }; test: string; }> |
Locales |
string |
Message |
string |
Options extends CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>, LocaleParams<Locales> extends object ? M : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, LocaleParams<Locales> extends object ? D : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, LocaleParams<Locales> extends object ? N : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, SchemaParams<Schema, Message> extends object ? M : LocaleMessage<string>, SchemaParams<Schema, Message> extends object ? D : DateTimeFormat, SchemaParams<Schema, Message> extends object ? N : NumberFormat, LocaleMessages<SchemaParams<Schema, Message> extends object ? M : LocaleMessage<string>, LocaleParams<Locales> extends object ? M : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, Message>, DateTimeFormats<SchemaParams<Schema, Message> extends object ? D : DateTimeFormat, LocaleParams<Locales> extends object ? D : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string>, NumberFormats<SchemaParams<Schema, Message> extends object ? N : NumberFormat, LocaleParams<Locales> extends object ? N : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string>> |
CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>, LocaleParams<Locales> extends object ? M : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, LocaleParams<Locales> extends object ? D : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, LocaleParams<Locales> extends object ? N : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, SchemaParams<Schema, Message> extends object ? M : LocaleMessage<string>, SchemaParams<Schema, Message> extends object ? D : DateTimeFormat, SchemaParams<Schema, Message> extends object ? N : NumberFormat, LocaleMessages<SchemaParams<Schema, Message> extends object ? M : LocaleMessage<string>, LocaleParams<Locales> extends object ? M : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string, Message>, DateTimeFormats<SchemaParams<Schema, Message> extends object ? D : DateTimeFormat, LocaleParams<Locales> extends object ? D : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string>, NumberFormats<SchemaParams<Schema, Message> extends object ? N : NumberFormat, LocaleParams<Locales> extends object ? N : LocaleParams<Locales> extends string ? string & LocaleParams<Locales> : string>> |
| Parameter | Type | Description |
|---|---|---|
options |
Options |
An i18n options like vue-i18n createI18n, which are passed to createCoreContext of @intlify/core, see about details CoreOptions of @intlify/core |
A defined i18n middleware, which is included onRequest and onAfterResponse options of createApp
import { defineI18nMiddleware } from '@intlify/h3'
const middleware = defineI18nMiddleware({
messages: {
en: {
hello: 'Hello {name}!',
},
ja: {
hello: 'こんにちは、{name}!',
},
},
// your locale detection logic here
locale: (event) => {
// ...
},
})
const app = createApp({ ...middleware })Define the middleware to be specified for h3 createApp