Skip to content

Commit af2a24f

Browse files
committed
feat: add link based language switch
1 parent 4939d57 commit af2a24f

File tree

4 files changed

+37
-14
lines changed

4 files changed

+37
-14
lines changed

app/pages/index.vue

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
<script setup lang="ts">
2-
const runtimeConfig = useRuntimeConfig()
3-
const colors = ['#f87171', '#fb923c', '#fbbf24', '#facc15', '#a3e635', '#4ade80', '#34d399', '#2dd4bf', '#22d3ee', '#38bdf8', '#60a5fa', '#818cf8', '#a78bfa', '#c084fc', '#e879f9', '#f472b6', '#fb7185']
4-
const color = useState('color', () => colors[Math.floor(Math.random() * colors.length)])
5-
const { t } = useI18n()
2+
const { t, locale, locales } = useI18n()
3+
const switchLocalePath = useSwitchLocalePath()
4+
5+
const availableLocales = computed(() => {
6+
return locales.value.filter(i => i.code !== locale.value)
7+
})
68
</script>
79

810
<template>
9-
<div class="centered">
10-
<h1 :style="{ color }">
11-
{{ runtimeConfig.public.helloText }}
12-
</h1>
13-
<NuxtLink to="/" external>
14-
{{ t('Refresh') }}
15-
</NuxtLink>
11+
<div>
12+
<nav>
13+
<NuxtLink v-for="availableLocale in availableLocales" :key="availableLocale.code" :to="switchLocalePath(availableLocale.code)">
14+
{{ t(`Locales.${availableLocale.code}`) }}
15+
</NuxtLink>
16+
</nav>
17+
<main>
18+
<div class="centered">
19+
<NuxtLink to="/" external>
20+
{{ t('Refresh') }}
21+
</NuxtLink>
22+
</div>
23+
</main>
1624
</div>
1725
</template>
1826

i18n/locales/de.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
{
2-
"Refresh": "Aktualisieren"
2+
"Refresh": "Aktualisieren",
3+
"Locales": {
4+
"en": "Englisch",
5+
"es": "Spanisch",
6+
"de": "Deutsch"
7+
}
38
}

i18n/locales/en.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
{
2-
"Refresh": "Refresh"
2+
"Refresh": "Refresh",
3+
"Locales": {
4+
"en": "English",
5+
"es": "Spanish",
6+
"de": "German"
7+
}
38
}

i18n/locales/es.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
{
2-
"Refresh": "Refrescar"
2+
"Refresh": "Refrescar",
3+
"Locales": {
4+
"en": "Inglés",
5+
"es": "Español",
6+
"de": "Alemán"
7+
}
38
}

0 commit comments

Comments
 (0)