@unvuetify/nuxt-i18n-utils
Version:
Nuxt I18n utilities for Vuetify
148 lines (119 loc) • 4.45 kB
Markdown
<br>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/userquin/unvuetify-monorepo/blob/main/vuetify-logo-dark-atom.svg" height="100px" />
<img height="100px" src="https://github.com/userquin/unvuetify-monorepo/blob/main/vuetify-logo-light-atom.svg">
</picture>
</p>
<h1 align="center">@unvuetify/nuxt-i18n-utils</h1>
<p align="center">
Nuxt I18n utilities.
</p>
<p align='center'>
<a href='https://www.npmjs.com/package/@unvuetify/nuxt-i18n-utils' target="__blank">
<img src='https://img.shields.io/npm/v/@unvuetify/nuxt-i18n-utils.svg?style=flat&colorA=18181B&colorB=1867C0' alt="NPM version">
</a>
<a href="https://npm.chart.dev/@unvuetify/nuxt-i18n-utils" target="__blank">
<img alt="NPM Downloads" src="https://img.shields.io/npm/dm/@unvuetify/nuxt-i18n-utils.svg?style=flat&colorA=18181B&colorB=1867C0">
</a>
<a href="https://github.com/userquin/unvuetify-monorepo/tree/main/LICENSE" target="__blank">
<img alt="MIT LICENSE" src="https://img.shields.io/npm/l/@unvuetify/nuxt-i18n-utils.svg?style=flat&colorA=18181B&colorB=1867C0">
</a>
</p>
```bash
pnpm add @unvuetify/nuxt-i18n-utils
npm i @unvuetify/nuxt-i18n-utils
yarn add @unvuetify/nuxt-i18n-utils
bun add @unvuetify/nuxt-i18n-utils
```
We suggest you to use [vuetify-nuxt-module](https://nuxt.vuetifyjs.com/), there are a lot of options to configure Vuetify including SSR support and [HTTP Client Hints](https://nuxt.vuetifyjs.com/guide/server-side-rendering.html#server-side-rendering-ssr).
If you just want to use Vuetify with `@nuxtjs/i18n`, you can use the `configureI18n` function in a new module, create the following module in your Nuxt modules folder:
```ts
// modules/vuetify.ts
import type { VuetifyNuxtOptions } from '@unvuetify/nuxt-utils'
import { defineNuxtModule } from '@nuxt/kit'
import { configureI18n } from '@unvuetify/nuxt-i18n-utils'
import { configureVuetify } from '@unvuetify/nuxt-utils'
export interface ModuleOptions extends VuetifyNuxtOptions {
}
export default defineNuxtModule<ModuleOptions>({
meta: {
name: 'vuetify:nuxt-module',
configKey: 'vuetify',
compatibility: {
nuxt: '>=3.0.0',
},
default: {},
},
setup(options, nuxt) {
configureVuetify(nuxt, options)
configureI18n(nuxt)
},
})
```
then, run the `nuxt/nuxi prepare` command and add the options to your `nuxt.config.ts` using the `vuetify` key:
```ts
// nuxt.config.ts
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
modules: ['@nuxtjs/i18n'],
i18n: {
/* i18n options */
},
/* other nuxt options */
vuetify: {
composables: { /* composables options */ },
components: { /* components options */ },
directives: { /* directives options */ },
styles: { /* styles options */ }
}
})
```
and finally, you also need to add a Nuxt plugin to register the Vuetify plugin:
```ts
// plugins/vuetify.ts
import type { VuetifyOptions } from 'vuetify'
import { configureVuetifyI18nAdapter } from '@unvuetify/nuxt-i18n-utils/runtime'
import { createVuetify } from 'vuetify'
export default defineNuxtPlugin((nuxtApp) => {
const options = {
theme: {
defaultTheme: 'dark',
},
} satisfies VuetifyOptions
configureVuetifyI18nAdapter(options)
const vuetify = createVuetify(options)
nuxtApp.vueApp.use(vuetify)
})
```
Check the `nuxt-i18n` playground:
- [nuxt-i18n](https://github.com/userquin/unvuetify-monorepo/tree/main/playgrounds/nuxt-i18n)
If you want to use `@nuxtjs/i18n` version 8, you need to pin Nuxt and Vuetify versions, otherwise you will get `unhead` version 2 errors:
- Nuxt 3.15.4 or any previous version: Nuxt 3.16.0 updated to use `unhead` version 2
- Vuetify 3.7.16 or any previous version: Vuetify 3.7.17 updated to use `unhead` version 2
```json
{
"dependencies": {
"@nuxtjs/i18n": "^8",
"nuxt": "3.15.4",
"vuetify": "3.7.16"
}
}
```
If you want to prefix Vuetify directives, you will need to override `unimport` to use `^5.0.1` version via `resolutions` or `pnpm.overrides` in your `package.json` file (via `@unvuetify/unimport-presets`):
```json
{
"resolutions": {
"unimport": "^5.0.1"
}
}
```
[](https://github.com/userquin/unvuetify-monorepo/blob/main/LICENSE) License © 2025-PRESENT [Joaquín Sánchez](https://github.com/userquin)