Создавая приложение с Framework7, я хотел иметь возможность локализовать строки для поддержки других языков. Я нашел пакет Vue I18n, и на самом деле его довольно легко применить к проекту Framework7 Vue.

Ниже вы найдете шаги для этого. Я предполагаю, что вы уже создали приложение Vue Framework7. Если нет, следуйте инструкциям по установке.

Установить Vue I18n

В терминале (из папки вашего приложения) выполните следующую команду, чтобы установить vue-i18n.

npm install vue-i18n

Измените свой app.js

Затем в `src / js / app.js` обязательно импортируйте vue-i8n, как это, сразу после vue-import.

import VueI18n from 'vue-i18n';

Затем сразу после этого вы добавляете это:

Vue.use(VueI18n);

Далее нам нужно создать экземпляр VueI18n. Мы даем этим экземплярам переводы и текущую локаль. Во-первых, давайте быстро создадим объект, содержащий наши переводы.

const messages = {
  en: {
    message: {
      hello: 'Mark Knopfler is awesome'
    }
  },
  nl: {
    message: {
      hello: 'Mark Knopfler is te gek!'
    }
  }
};

Теперь давайте создадим экземпляр VueI18n:

const i18n = new VueI18n({
  locale: 'nl', // set locale
  messages, // set locale messages
});

Внизу вашего app.js вы найдете основной экземпляр Vue вашего приложения. Нам нужно добавить i18n к этому экземпляру, например:

new Vue({
    el: '#app',
    render: (h) => h(App),
    components: {
        app: App
    },
    i18n
});

Использование переводов в ваших компонентах

Теперь в ваших компонентах (наши страницы - это компоненты) вы можете получить свои переводы следующим образом:

{{ $t("message.hello") }}

Отдельный файл для переводов

По мере того, как ваш объект сообщений становится больше, вы можете поместить их в отдельный файл. Вы можете сделать это, например, создав файл messages.js в своей js-папке. Этот файл будет выглядеть примерно так:

const messages = {
  en: {
    message: {
      hello: 'Mark Knopfler is awesome'
    }
  },
  nl: {
    message: {
      hello: 'Mark Knopfler is te gek!'
    }
  }
};
export { messages };

Затем в своем app.js вы можете импортировать такие сообщения (до экземпляра Vuei18n):

import { messages } from './messages.js'

Надеюсь, это кому-нибудь поможет!