LanguageSelector.vue 716 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <v-select
  3. v-model="locale"
  4. :items="items"
  5. :key="`locale-${locale}`"
  6. density="compact"
  7. variant="plain"
  8. :hide-details="true"
  9. />
  10. </template>
  11. <script setup lang="ts">
  12. const items = [
  13. { value: 'fr', title: 'FR' },
  14. { value: 'en', title: 'EN' },
  15. ]
  16. const { setLocale } = useI18n()
  17. const locale = ref('fr')
  18. watch(locale, () => {
  19. setLocale(locale.value)
  20. });
  21. </script>
  22. <style scoped lang="scss">
  23. :deep(.v-field__input) {
  24. padding: 0;
  25. }
  26. :deep(.v-field__append-inner) {
  27. padding-top: 3px !important;
  28. }
  29. :deep(.v-select__menu-icon) {
  30. font-size: 13px;
  31. margin-top: 8px;
  32. }
  33. :deep(.v-list) {
  34. width: 72px;
  35. }
  36. :deep(.v-list-item) {
  37. padding: 24px;
  38. }
  39. </style>