vue.js: Sprachen mit vue-i18n

Unterstütze Sprachen in Vue.js Applikatonen.

Es liegen eine handvoll Pakete in der Welt, die uns helfen in Vue andere Sprachen zu unterstützen.

Zum Beispiel: vue-i18n. Die Docs sind der Hammer, also falls du etwas Tiefergehendes brauchst bediene dich am besten dort.

Einführung vue-i18n

Zuerst sollten wir wissen wie wir vue-i18n Übersetzungen mitteilen.

Und zwar lässt und das Package einfach ein JSON übergeben. Die Anforderung an das JSON Object simple:

{
    "en_US": {
        "Hello world": "Hello world",
    },
    "de_DE": {
        "Hello world": "Hallo Welt",
    },
}

Damit erklären wir Vue das wir einen Text „Hello world“ in Englisch ins Deutsche übersetzen können.

Sobald wir nun einen Text auch übersetzen möchten, kommt die Funktion $t(...) ins Spiel.

So einfach kann es sein.

Nun da wir wissen wie wir Übersetzungen mitteilen können wir anfangen Dinge zu machen.

Dafür:

  • Installiere das Package:
npm i -D vue-i18n
  • Erstelle eine Konfiguration für vue-i18n. Es bietet sich der Name vue-i18n.js an.
  • Paste folgendes Snippet:
import Vue from 'vue';
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

export const i18n = new VueI18n({
    locale: 'en_US',
    messages: {
        "en_US": {
            "Hello world": "Hello world",
        },
        "de_DE": {
            "Hello world": "Hallo Welt",
        },
    },
});
  • Importiere i18n in dein Bootstrap wie z. B.:
import {
    i18n
} from './vue-i18n';

new Vue({
    el: '#applicationContainer',
    i18n,
});

Nun haben wir Vue mitgeteilt in was „Hello world“ vom Englischen ins Deutsche übersetzt wird.

Sprachen können einfach via $i18n.locale angepasst werden:

{
    methods: {
        changeLocale(locale) {
            // please validate stuff before doing anything :O

            this.$i18n.locale = locale;
        }
    }
}

Kudos

  • Big thanks to kazupoon for publishing and maintaining that package.

Schreibe einen Kommentar