ホームページ > ウェブフロントエンド > フロントエンドQ&A > Vue は言語切り替えを実装します

Vue は言語切り替えを実装します

WBOY
リリース: 2023-05-11 11:04:37
オリジナル
2068 人が閲覧しました

多言語 Web サイト開発では、言語の切り替えは非常に重要な機能です。最新のフロントエンド フレームワークとして、Vue は言語切り替え機能を自然に実装できます。この記事では、Vueを使って言語切り替えを実装する方法を紹介します。

1. 言語切り替えの原理

Web サイトで言語切り替えを実装するには、次の手順を実行する必要があります:

  1. 言語リソース ファイルを作成し、変換する別の言語のテキスト 別のファイルに保存;
  2. 現在の言語タイプをローカル ストレージに保存;
  3. Vue テンプレートで、対応する言語リソース ファイルを使用して元のテキストを置き換えます。

2. 言語切り替えの実装

  1. 言語リソース ファイルの作成

/src ディレクトリに言語リソースを保存する lang ディレクトリを作成します。 。言語リソース ファイルには、JSON 形式のファイルまたは JS 形式のファイルを使用できます。この記事ではJSON形式のファイルを使用します。

lang ディレクトリに、中国語テキスト リソースを保存する zh-cn.json ファイルを作成します。内容は次のとおりです。

{
  "welcome": "欢迎使用Vue",
  "description": "这是一个演示Vue实现语言切换的例子",
  "button_text": "切换语言"
}
ログイン後にコピー

次に、英語のテキスト リソースを保存するために、lang ディレクトリに en-us.json ファイルを作成します。内容は次のとおりです。

{
  "welcome": "Welcome to Vue",
  "description": "This is an example of implementing language switch with Vue",
  "button_text": "Switch Language"
}
ログイン後にコピー
  1. 現在の言語タイプを保存する

Vuex ストアでは、localStorage を使用して現在の言語タイプを保存できます。 store.js ファイルに、次のコードを追加します。

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    language: localStorage.getItem('language') || 'zh-cn', // 默认为中文
  },
  mutations: {
    // 切换语言类型
    switchLanguage(state, language) {
      state.language = language
      localStorage.setItem('language', language)
    },
  },
})
ログイン後にコピー
  1. テンプレート内のテキストを置換

Vue コンポーネントのテンプレートでは、$vuetify を使用できます。 lang.get 関数を使用して、対応するテキスト リソースを取得します。 $vuetify.lang は、テキスト リソースを取得するために Vuetify によって提供されるオブジェクトです。この記事では、Vue の UI フレームワークとして Vuetify を使用します。

<template>
  <div>
    <h1>{{ $vuetify.lang.t('welcome') }}</h1>
    <p>{{ $vuetify.lang.t('description') }}</p>
    <v-btn @click="toggleLanguage()">{{ $vuetify.lang.t('button_text') }}</v-btn>
  </div>
</template>
ログイン後にコピー
  1. 言語切り替えを実装する関数

Vue コンポーネントでは、言語を切り替える関数を定義する必要があります。この記事では、実際のニーズに応じて拡張できる中国語と英語を切り替えます。

<script>
export default {
  methods: {
    // 切换语言
    toggleLanguage() {
      const language = this.$store.state.language === 'zh-cn' ? 'en-us' : 'zh-cn'
      this.$store.commit('switchLanguage', language)
      this.$vuetify.lang.current = language
    },
  },
}
</script>
ログイン後にコピー

後で対応するテキスト リソースを取得できるように、$vuetify.lang.current の値を現在の言語に設定する必要があることに注意してください。

3. 完全なコード

<template>
  <div>
    <h1>{{ $vuetify.lang.t('welcome') }}</h1>
    <p>{{ $vuetify.lang.t('description') }}</p>
    <v-btn @click="toggleLanguage()">{{ $vuetify.lang.t('button_text') }}</v-btn>
  </div>
</template>

<script>
export default {
  methods: {
    // 切换语言
    toggleLanguage() {
      const language = this.$store.state.language === 'zh-cn' ? 'en-us' : 'zh-cn'
      this.$store.commit('switchLanguage', language)
      this.$vuetify.lang.current = language
    },
  },
}
</script>

ログイン後にコピー

4. 概要

この記事では、Vue を使用して言語切り替えを実装する方法を紹介します。言語切り替えを実装するときは、言語リソース ファイルを作成し、現在の言語タイプを保存し、テンプレート内のテキストを置き換える必要があります。言語切り替えを実装する関数では、後で対応するテキスト リソースを取得できるように、$vuetify.lang.current の値を現在の言語に設定する必要があります。

以上がVue は言語切り替えを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート