The LocaleSelect component extends the SelectMenu component, so you can pass any property such as color, variant, size, etc.
Use the locales prop with an array of locales from @nuxt/ui/locale.
<script setup lang="ts">
import * as locales from '@nuxt/ui/locale'
const locale = ref('en')
</script>
<template>
  <ULocaleSelect v-model="locale" :locales="Object.values(locales)" class="w-48" />
</template>
You can pass only the locales you need in your application:
<script setup lang="ts">
import { en, es, fr } from '@nuxt/ui/locale'
const locale = ref('en')
</script>
<template>
  <ULocaleSelect v-model="locale" :locales="[en, es, fr]" />
</template>
You can use it with Nuxt i18n:
<script setup lang="ts">
import * as locales from '@nuxt/ui/locale'
const { locale, setLocale } = useI18n()
</script>
<template>
  <ULocaleSelect
    v-model="locale"
    :locales="Object.values(locales)"
    @update:model-value="setLocale($event)"
  />
</template>
You can use it with Vue i18n:
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
import * as locales from '@nuxt/ui/locale'
const { locale, setLocale } = useI18n()
</script>
<template>
  <ULocaleSelect
    v-model="locale"
    :locales="Object.values(locales)"
    @update:model-value="setLocale($event)"
  />
</template>
| Prop | Default | Type | 
|---|---|---|
| locales | 
 
 | |
| size | 
 | 
 | 
| color | 
 | 
 | 
| variant | 
 | 
 | 
| trailingIcon | 
 | 
 The icon displayed to open the menu. | 
| selectedIcon | 
 | 
 The icon displayed when an item is selected. | 
| content | 
 | 
 The content of the menu. 
 | 
| arrow | 
 | 
 Display an arrow alongside the menu. | 
| portal | 
 | 
 Render the menu in a portal. | 
| disabled | 
 When  | |
| modelValue | 
 | |
| ui | 
 | 
5cb65 — feat: import @nuxt/ui-pro components