Internacionalización (i18n)
Uso
locale.Localidad
Utilice el prop locale con la configuración regional que desea utilizar desde @nuxt/ui/locale:
<script setup lang="ts">
import { fr } from '@nuxt/ui/locale'
</script>
<template>
<UApp :locale="fr">
<NuxtPage />
</UApp>
</template>
code (por ejemplo, en, en-GB, fr) que determina el formato de fecha/hora en componentes como Calendar, InputDate y InputTime.Localización personalizada
Puede crear su propia configuración regional utilizando la utilidad defineLocale:
<script setup lang="ts">
import type { Messages } from '@nuxt/ui'
const locale = defineLocale<Messages>({
name: 'My custom locale',
code: 'en',
dir: 'ltr',
messages: {
// implement pairs
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
code, allí necesitas pasar el código ISO del idioma. Ejemplo:- x
hiEspañol (idioma) de-AT: alemán (idioma) como se usa en Austria (región)
Extend Localidad
Puede personalizar una configuración regional existente anulando su messages o code utilizando la utilidad extendLocale:
<script setup lang="ts">
import { en } from '@nuxt/ui/locale'
const locale = extendLocale(en, {
code: 'en-AU',
messages: {
commandPalette: {
placeholder: 'Search a component...'
}
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
Localidad dinámica
Para cambiar dinámicamente entre idiomas, puede usar el módulo Nuxt I18n.
Instalar el paquete Nuxt I18n
pnpm add @nuxtjs/i18n
yarn add @nuxtjs/i18n
npm install @nuxtjs/i18n
bun add @nuxtjs/i18n
Añadir el módulo Nuxt I18n en su nuxt.config.ts
export default defineNuxtConfig({
modules: [
'@nuxt/ui',
'@nuxtjs/i18n'
],
css: ['~/assets/css/main.css'],
i18n: {
locales: [{
code: 'de',
name: 'Deutsch'
}, {
code: 'en',
name: 'English'
}, {
code: 'fr',
name: 'Français'
}]
}
})
Configurar el accesorio locale usando useI18n
<script setup lang="ts">
import * as locales from '@nuxt/ui/locale'
const { locale } = useI18n()
</script>
<template>
<UApp :locale="locales[locale]">
<NuxtPage />
</UApp>
</template>
Localización automática de enlaces: badge{label="4.7+" class="align-text-top"}
Cuando se instala @nuxtjs/i18n, el componente Link localiza automáticamente los enlaces internos utilizando el ayudante $localePath.Esto significa que no necesita envolver manualmente sus enlaces con localePath() o localeRoute().
<template>
<!-- Automatically becomes /en/about or /fr/about based on current locale -->
<ULink to="/about">About</ULink>
<UButton to="/contact">Contact</UButton>
</template>
localePath() o localeRoute() si es necesario.Dirección dinámica
Cada locale tiene una propiedad dir que será utilizada por el componente App para establecer la direccionalidad de todos los componentes.
En una aplicación multilingüe, es posible que desee establecer los atributos lang y dir en el elemento <html> de forma dinámica en función de la configuración regional del usuario, lo que puede hacer con el componente useHead:
<script setup lang="ts">
import * as locales from '@nuxt/ui/locale'
const { locale } = useI18n()
const lang = computed(() => locales[locale.value].code)
const dir = computed(() => locales[locale.value].dir)
useHead({
htmlAttrs: {
lang,
dir
}
})
</script>
<template>
<UApp :locale="locales[locale]">
<NuxtPage />
</UApp>
</template>
Idiomas soportados
By default, the en locale is used.
arazbebgbncackbcsdadede-ATde-CHelenen-GBeseteufa-IRfifrglhehihrhuhyidisitjakakkkmkokylbloltlvmnmsnb-NOnlplptpt-BRroruskslsqsvtgthtrug-CNukuruzvizh-CNzh-TWsrc/runtime/locale/. pnpm cli make locale --code <code>