Skip to content

Function: useI18n() ​

Call Signature ​

ts
export function useI18n<Options extends UseI18nOptions = UseI18nOptions>(options?: Options): Composer<
  NonNullable<Options['messages']>,
  NonNullable<Options['datetimeFormats']>,
  NonNullable<Options['numberFormats']>,
  Options['locale'] extends unknown ? string : Options['locale']
>

Type Parameters ​

Name
Options extends UseI18nOptions = UseI18nOptions

Parameters ​

NameTypeDescription
optionsOptionsoptional

Returns ​

Composer<NonNullable<Options['messages']>, NonNullable<Options['datetimeFormats']>, NonNullable<Options['numberFormats']>, Options['locale'] extends unknown ? string : Options['locale']>

Call Signature ​

ts
export function useI18n<
  Schema = DefaultLocaleMessageSchema,
  Locales = 'en-US',
  Options extends UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> =
    UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>
>(options?: Options): Composer<
  NonNullable<Options['messages']>,
  NonNullable<Options['datetimeFormats']>,
  NonNullable<Options['numberFormats']>,
  NonNullable<Options['locale']>
>

Use Composition API for Vue I18n

Type Parameters ​

NameDescription
Schema = DefaultLocaleMessageSchemaThe i18n resources (messages, datetimeFormats, numberFormats) schema, default LocaleMessage
Locales = 'en-US'The locales of i18n resource schema, default en-US
Options extends UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> = UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>-

Parameters ​

NameTypeDescription
optionsOptionsAn options, see UseI18nOptions (optional)

Returns ​

Composer<NonNullable<Options['messages']>, NonNullable<Options['datetimeFormats']>, NonNullable<Options['numberFormats']>, NonNullable<Options['locale']>> — instance

Examples ​

case: Component resource base localization

html
<template>
  <form>
    <label>{{ t('language') }}</label>
    <select v-model="locale">
      <option value="en">en</option>
      <option value="ja">ja</option>
    </select>
  </form>
  <p>message: {{ t('hello') }}</p>
</template>

<script>
import { useI18n } from 'vue-i18n'

export default {
 setup() {
   const { t, locale } = useI18n({
     locale: 'ja',
     messages: {
       en: { ... },
       ja: { ... }
     }
   })
   // Something to do ...

   return { ..., t, locale }
 }
}
</script>

Tags ​

  • @VueI18nComposition
  • @remarks — This function is mainly used by setup. If options are specified, Composer instance is created for each component and you can be localized on the component. If options are not specified, you can be localized using the global Composer.

Released under the MIT License.