Saya menerapkan situs web di mana pengguna dapat mengubah pilihan bahasa. Preferensi bahasa yang dipilih kemudian dikirim ke API dengan parameter lang
- Jika Bahasa diatur ke Bahasa Inggris
/api/test?lang=en
- Jika Bahasa diatur ke Bahasa Thailand
/api/test?lang=th
Saya telah menyimpan bahasa tersebut di penyimpanan lokal dan manajemen negara bagian Vuex.
Karena parameter ?lang diperlukan untuk dikirim dalam setiap permintaan, saya memutuskan untuk menggunakan parameter lang sebagai parameter default axios
mutasi.js
let mutations = {
UPDATE_LANGUAGE_PREFERENCE(state, language) {
if (language.toLowerCase() === ENGLISH_LANGUAGE_CODE) {
state.languagePreference = ENGLISH_LANGUAGE_CODE;
} else {
state.languagePreference = THAI_LANGUAGE_CODE;
}
Vue.prototype.$http = axios
let languagePreference = store.getters.languagePreference
if (!languagePreference) {
languagePreference = LANGUAGE_PREFERENCE
}
Vue.prototype.$http.interceptors.request.use((config) => {
config.params = config.params || {}
config.params['lang'] = languagePreference
return config
})
},
}
Dengan melakukan hal itu, ia sekarang mengirimkan bahasa awal default ke setiap permintaan. Tapi itu tidak mencerminkan perubahan saat pengguna mengganti bahasa
NavbarComponent.vue
<script>
...
methods: {
updateLanguagePreference() {
if (!this.isThai) {
this.$store.dispatch('updateLanguagePreference', THAI_LANGUAGE_CODE)
} else {
this.$store.dispatch('updateLanguagePreference', ENGLISH_LANGUAGE_CODE)
}
axios.get('/test', {
})
}
},
...
</script>
axios
dalam mutasi? - person sugars   schedule 24.08.2020lang
setiap kali pengguna mengubahlang
- person Lizesh Shakya   schedule 24.08.2020