Для использования NuxtLink как переменной в $t() вам потребуется использовать дополнительные шаги.
1. Установите пакет "vue-i18n" в свой проект Nuxt.js:
npm install vue-i18n
2. Создайте файл "plugins/i18n.js" в корневом каталоге своего проекта Nuxt.js, если его еще нет, и добавьте следующий код:
import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) export default async ({ app }) => { app.i18n = new VueI18n({ locale: 'en', fallbackLocale: 'en', messages: { en: require('~/locales/en.json') // ...добавьте другие языки и файлы перевода по аналогии }, }) }
3. Создайте файл "locales/en.json" (или любой другой выбранный язык) в каталоге "locales" вашего проекта и добавьте следующий код:
{ "hello": "Hello!", "about": "About", "contact": "Contact" }
4. Вставьте следующий код в основной компонент вашего проекта (например, "pages/index.vue"):
<template> <div> <nuxt-link :to="`/${$t('about')}`">{{ $t('hello') }}</nuxt-link> <br> <nuxt-link :to="`/${$t('contact')}`">{{ $t('hello') }}</nuxt-link> </div> </template>
5. Теперь вы можете использовать переводы, содержащиеся в файлах "locales/en.json" (и других выбранных языках), внутри компонента и передавать значения NuxtLink как переменные в $t(). В приведенном выше примере ссылки NuxtLink будут рендериться с переводами "About" и "Contact".
6. Запустите свой проект Nuxt.js и вы увидите переводы, созданные с использованием NuxtLink в качестве переменной в $t().
Обратите внимание, что в приведенном выше примере использованы только английские переводы. Вам нужно будет добавить другие языки и файлы перевода, используя подходящее значение для "свойства сообщений" при создании экземпляра VueI18n в файле "plugins/i18n.js".