Newer
Older
<div class="dropdown-container">
<label for="language-select"><i>{{ $t('text.readIn') }}</i></label>
<select id="language-select" v-model="selectedLanguage" @change="handleLanguageChange" >
<option value="en">English</option>
<option value="es">Español</option>
</select>
<script setup>
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRouter, useRoute } from 'vue-router';
const { locale } = useI18n();
const router = useRouter();
const route = useRoute();
// Create a reactive variable to track the selected language
const selectedLanguage = ref(locale.value);
function handleLanguageChange(event) {
switchLanguage(selectedLanguage.value);
}
function switchLanguage(lang) {
if (locale.value !== lang) {
// Remove any existing language prefix from the current path
const currentPath = route.path.replace(/^\/(en|es)/, '');
// Construct the new path with the selected language
.dropdown-container {
display: flex;
justify-content: flex-end; /* Align to the right */
align-items: center;
padding: 0px;
select {
margin-left: 10px;
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
font-weight: bold;
cursor: pointer;
transition: all 0.2s;
select:focus {
outline: none;
border-color: #007bff;