Как перевести текст с помощью gettext в VUE? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть много компонентов, которые содержат статические тексты, я хотел бы перевести этот текст с польского языка на английский и наоборот, используя плагин gettext.

Вот как выглядят тексты в моих компонентах.

<h1>   {{ __('Mail kontaktowy') }}</h1>

<p>   {{ __('Dziękujemy za kontakt') }}</p>

<h3>   {{ __('Twoja wiadomość') }}</h3>

Решение, которое я пробовал согласно документации онлайн

установленный плагин:

 npm install vue-gettext

Вот конфигурация в соответствии с моими потребностями

// ES6
import Vue from 'vue'
import GetTextPlugin from 'vue-gettext'
import translations from './path/to/translations.json'

Vue.use(GetTextPlugin, {
  availableLanguages: {
    en_GB: 'British English',
    en_US: 'American English',
    pl_PL: 'Polish',
  },
  defaultLanguage: 'pl_PL',
  languageVmMixin: {
    computed: {
      currentKebabCase: function () {
        return this.current.toLowerCase().replace('_', '-')
      },
    },
  },
  translations: translations,
  silent: True,
})

HTML, вызывающий gettextперевести эти тексты

   <h1 v-translate>{{ __('Mail kontaktowy') }}</h1>

Это не работает, что я делаю неправильно в моих реализациях?Пожалуйста, помогите новичку в vue, я изо всех сил пытаюсь перевести этот текст (предположим, у меня много статического текста).

1 Ответ

0 голосов
/ 11 октября 2018

Я искал vue-gettext и из документации здесь: https://vuejsexamples.com/translate-your-vue-js-applications-with-gettext/, вы можете перевести текст, используя компонент перевода:

<translate>Hello!</translate>

или используя директиву v-translate:

<span v-translate>Hello!</span>

Я не вижу смысла в __ в вашем коде, если у вас нет функции для этого.Я думаю, что это будет работать уже:

<h1 v-translate>Mail kontaktowy</h1>
...