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

  • @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.
  • @VueI18nComposition

Released under the MIT License.