LanguageSelector.vue
620 Bytes
<template>
<div class="lang-selector">
<van-dropdown-menu>
<van-dropdown-item v-model="lang" :options="options" @change="changeLang" />
</van-dropdown-menu>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
const lang = ref(locale.value)
const options = [
{ text: 'English', value: 'en' },
{ text: 'العربية', value: 'ar' }
]
function changeLang(val) {
locale.value = val
lang.value = val
document.dir = val === 'ar' ? 'rtl' : 'ltr'
}
</script>
<style scoped>
.lang-selector {
min-width: 100px;
}
</style>