feat(i18n): implement language selector

This commit is contained in:
neilchen0812 committed 2026-09-21 01:49:48 +09:30
1 parent a3c69764c8
commit 0fddc05443
4 files changed
+47 -3

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
import { setLocale, type SupportedLocale } from '../i18n'
const { locale } = useI18n({ useScope: 'global' })
function changeLanguage(event: Event) {
const selectedLocale = (event.target as HTMLSelectElement)
.value as SupportedLocale
setLocale(selectedLocale)
}
</script>
<template>
<select
:value="locale"
class="bg-bg-secondary px-3 py-2 font-mono text-sm text-text shadow-md outline-none"
aria-label="Language"
@change="changeLanguage"
style="font-size: 2vh"
>
<option value="en">English</option>
<option value="zh-TW">繁體中文</option>
</select>
</template>
+7 -1
View File
@@ -1,6 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { defineProps, ref } from 'vue' import { defineProps, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import LanguageSelector from '../LanguageSelector.vue'
const { t } = useI18n()
defineProps({ defineProps({
title: { title: {
type: String, type: String,
@@ -19,9 +24,10 @@ const toggleMenu = () => {
</script> </script>
<template> <template>
<div <div
class="w-full top-0 px-5 fixed flex flex-row flex-wrap bg-bg-secondary justify-between items-center sm:justify-between" class="w-full top-0 px-2 fixed flex flex-row flex-wrap bg-bg-secondary justify-between items-center sm:justify-between"
> >
<div class="flex flex-row items-center gap-3" :class="{ hidden: menuOpen }"> <div class="flex flex-row items-center gap-3" :class="{ hidden: menuOpen }">
<LanguageSelector />
<img src="../../img/icon_totem.svg" class="h-8 justify-self-start" /> <img src="../../img/icon_totem.svg" class="h-8 justify-self-start" />
<RouterLink <RouterLink
to="/" to="/"
+7 -1
View File
@@ -1 +1,7 @@
{} {
"language": {
"change": "Change language",
"traditionalChinese": "繁體中文",
"english": "English"
}
}
+7 -1
View File
@@ -1 +1,7 @@
{} {
"language": {
"change": "切換語言",
"traditionalChinese": "繁體中文",
"english": "English"
}
}