Heim  >  Artikel  >  Web-Frontend  >  Wie kann man mit Vue Mehrsprachigkeit und Internationalisierung erreichen?

Wie kann man mit Vue Mehrsprachigkeit und Internationalisierung erreichen?

WBOY
WBOYOriginal
2023-06-27 21:39:402631Durchsuche

Mit der Entwicklung der Globalisierung sind Mehrsprachigkeit und Internationalisierung zunehmend zu einer der notwendigen Funktionen einer Website oder Anwendung geworden. Als beliebtes Frontend-Framework bietet Vue auch diesbezüglich flexible Lösungen. In diesem Artikel wird erläutert, wie Sie mit Vue Mehrsprachigkeit und Internationalisierung erreichen.

1. Installieren Sie Vue-i18n

Vue-i18n ist ein Internationalisierungs-Plug-in für Vue.js, das uns dabei helfen kann, Mehrsprachigkeit und Internationalisierung zu erreichen. Zuerst müssen Sie Vue-i18n im Projekt installieren.

npm install vue-i18n --save

2. Sprachdateien erstellen

Erstellen Sie einen i18n-Ordner im Projekt, um Sprachdateien zu speichern.

Erstellen Sie eine Datei mit dem Namen index.js im i18n-Ordner, um Vue-i18n zu konfigurieren.

import Vue from 'vue';
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

const i18n = new VueI18n({
  locale: 'en', // 默认使用英文
  messages: {
    en: require('./en.json'),
    zh: require('./zh.json'),
  },
});

export default i18n;

Im obigen Code gibt locale die aktuell verwendete Sprache an und Englisch wird standardmäßig verwendet. message stellt die verwendete Sprachdatei dar, in der en.json (Englisch) bzw. zh.json (Chinesisch) eingeführt werden.

Sie können jetzt en.json- und zh.json-Dateien im i18n-Ordner erstellen und Sprachinhalte schreiben.

en.json

{
  "hello": "Hello",
  "world": "World",
  "welcome": "Welcome"
}

zh.json

{
  "hello": "你好",
  "world": "世界",
  "welcome": "欢迎"
}

3. Die Verwendung von Vue-i18n

Die Verwendung von Vue-i18n in Komponenten ist sehr einfach. Fügen Sie einfach $tc (Übersetzung) oder $t (Formatierung) zur Vorlage hinzu. Das war’s .

<template>
  <div>
    <p>{{ $t('hello') }}</p>
    <p>{{ $tc('world', 1) }}</p>
    <p>{{ greeting }}</p>
  </div>
</template>

<script>
import i18n from '@/i18n';

export default {
  computed: {
    greeting() {
      return this.$t('welcome', { name: 'Vue' });
    },
  },
  created() {
    // 设置语言为中文
    i18n.locale = 'zh';
  },
};
</script>

Im obigen Code können sowohl $t als auch $tc für die Übersetzung verwendet werden. Der Unterschied besteht darin, dass $t formatiert und $tc entsprechend den Parametern pluralisiert werden kann. Außerdem wird die Verwendung der $t-Methode im berechneten Attribut und die Änderung der Sprache im erstellten Lebenszyklus der Komponente demonstriert.

4. Verwenden Sie das Vue CLI-Plug-in

Vue CLI bietet das offizielle Plug-in vue-cli-plugin-i18n, das schnell Mehrsprachigkeit und Internationalisierung integrieren kann.

Sie müssen zuerst das Plug-in installieren.

vue add i18n

Nach erfolgreicher Installation wird im Projekt ein Locales-Ordner zum Speichern von Sprachdateien generiert.

Ändern Sie die Datei src/i18n.js.

import Vue from 'vue';
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

function loadLocaleMessages() {
  const locales = require.context('@/locales', true, /[A-Za-z0-9-_,s]+.json$/i);
  const messages = {};
  locales.keys().forEach((key) => {
    const matched = key.match(/([A-Za-z0-9-_]+)./i);
    if (matched && matched.length > 1) {
      const locale = matched[1];
      messages[locale] = locales(key);
    }
  });
  return messages;
}

export default new VueI18n({
  locale: process.env.VUE_APP_I18N_LOCALE || 'en',
  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
  messages: loadLocaleMessages(),
  silentFallbackWarn: true,
});

Im obigen Code wird die Funktion „loadLocaleMessages“ verwendet, um die Sprachdateien automatisch in den Ordner „locales“ zu laden und das Nachrichtenobjekt zurückzugeben. Darüber hinaus können die Standardsprache und die Fallback-Sprache über die Umgebungsvariablen VUE_APP_I18N_LOCALE und VUE_APP_I18N_FALLBACK_LOCALE festgelegt werden.

Verwenden Sie die Methode $te in der Komponente, um zu bestimmen, ob der Schlüsselwert vorhanden ist, und die Methode $d, um das Datum zu formatieren.

<template>
  <div>
    <p v-if="$te('hello')">Hello</p>
    <p>{{ $d(new Date(), 'short') }}</p>
  </div>
</template>

<script>
export default {};
</script>

Das Obige ist die grundlegende Methode zur Verwendung von Vue, um Mehrsprachigkeit und Internationalisierung zu erreichen. Mit dem Vue-i18n-Plugin oder dem Vue CLI-Plugin können Sie problemlos Mehrsprachen- und Internationalisierungsfunktionen implementieren und so die Website oder Anwendung besser an den Trend der Globalisierung anpassen.

Das obige ist der detaillierte Inhalt vonWie kann man mit Vue Mehrsprachigkeit und Internationalisierung erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn