Skip to content

Function: createI18n()

Call Signature

ts
export function createI18n<
  Options extends I18nOptions = I18nOptions,
  Messages extends Record<string, unknown> = Options['messages'] extends Record<string, unknown>
    ? Options['messages']
    : {},
  DateTimeFormats extends Record<string, unknown> = Options['datetimeFormats'] extends Record<
    string,
    unknown
  >
    ? Options['datetimeFormats']
    : {},
  NumberFormats extends Record<string, unknown> = Options['numberFormats'] extends Record<
    string,
    unknown
  >
    ? Options['numberFormats']
    : {},
  OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale
>(options: Options): I18n<Messages, DateTimeFormats, NumberFormats, OptionLocale>

Type Parameters

Name
Options extends I18nOptions = I18nOptions
Messages extends Record<string, unknown> = Options['messages'] extends Record<string, unknown> ? Options['messages'] : {}
DateTimeFormats extends Record<string, unknown> = Options['datetimeFormats'] extends Record<string, unknown> ? Options['datetimeFormats'] : {}
NumberFormats extends Record<string, unknown> = Options['numberFormats'] extends Record<string, unknown> ? Options['numberFormats'] : {}
OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale

Parameters

NameTypeDescription
optionsOptions

Returns

I18n<Messages, DateTimeFormats, NumberFormats, OptionLocale>

Call Signature

ts
export function createI18n<
  Schema extends object = DefaultLocaleMessageSchema,
  Locales extends string | object = 'en-US',
  Options extends I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> =
    I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>,
  Messages extends Record<string, unknown> = NonNullable<Options['messages']> extends Record<
    string,
    unknown
  >
    ? NonNullable<Options['messages']>
    : {},
  DateTimeFormats extends Record<string, unknown> = NonNullable<
    Options['datetimeFormats']
  > extends Record<string, unknown>
    ? NonNullable<Options['datetimeFormats']>
    : {},
  NumberFormats extends Record<string, unknown> = NonNullable<
    Options['numberFormats']
  > extends Record<string, unknown>
    ? NonNullable<Options['numberFormats']>
    : {},
  OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale
>(options: Options): I18n<Messages, DateTimeFormats, NumberFormats, OptionLocale>

Vue I18n factory

Type Parameters

NameDescription
Schema extends object = DefaultLocaleMessageSchemaThe i18n resources (messages, datetimeFormats, numberFormats) schema, default LocaleMessage
Locales extends string | object = 'en-US'The locales of i18n resource schema, default en-US
Options extends I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> = I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>-
Messages extends Record<string, unknown> = NonNullable<Options['messages']> extends Record<string, unknown> ? NonNullable<Options['messages']> : {}-
DateTimeFormats extends Record<string, unknown> = NonNullable<Options['datetimeFormats']> extends Record<string, unknown> ? NonNullable<Options['datetimeFormats']> : {}-
NumberFormats extends Record<string, unknown> = NonNullable<Options['numberFormats']> extends Record<string, unknown> ? NonNullable<Options['numberFormats']> : {}-
OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale-

Parameters

NameTypeDescription
optionsOptionsAn options, see the I18nOptions

Returns

I18n<Messages, DateTimeFormats, NumberFormats, OptionLocale> — instance See about: - Getting Started - Composition API

Examples

js
import { createApp } from 'vue'
import { createI18n, useI18n } from 'vue-i18n'

// call with I18n option
const i18n = createI18n({
  locale: 'ja',
  messages: {
    en: { ... },
    ja: { ... }
  }
})

const App = {
  setup() {
    // ...
    const { t } = useI18n({ ... })
    return { ... , t }
  }
}

const app = createApp(App)

// install!
app.use(i18n)
app.mount('#app')

Tags

  • @VueI18nGeneral

Released under the MIT License.