Heim > Web-Frontend > View.js > Hauptteil

Wie kann man mit Vue Mehrsprachigkeit und Internationalisierung erreichen?

WBOY
Freigeben: 2023-06-27 21:39:40
Original
2646 Leute haben es durchsucht

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
Nach dem Login kopieren

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;
Nach dem Login kopieren

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"
}
Nach dem Login kopieren

zh.json

{
  "hello": "你好",
  "world": "世界",
  "welcome": "欢迎"
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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 dem Login kopieren

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,
});
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage