Как NuxtLink использовать в качестве переменной в $t()?

Для использования 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".