mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-05 19:20:12 +08:00
feat(i18n): implement language selector
This commit is contained in:
1 parent
a3c69764c8
commit
0fddc05443
4 files changed
+47
-3
No files matched your search
@@ -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>
|
||||
@@ -1,6 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import { defineProps, ref } from 'vue'
|
||||
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import LanguageSelector from '../LanguageSelector.vue'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
@@ -19,9 +24,10 @@ const toggleMenu = () => {
|
||||
</script>
|
||||
<template>
|
||||
<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 }">
|
||||
<LanguageSelector />
|
||||
<img src="../../img/icon_totem.svg" class="h-8 justify-self-start" />
|
||||
<RouterLink
|
||||
to="/"
|
||||
|
||||
@@ -1 +1,7 @@
|
||||
{}
|
||||
{
|
||||
"language": {
|
||||
"change": "Change language",
|
||||
"traditionalChinese": "繁體中文",
|
||||
"english": "English"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,7 @@
|
||||
{}
|
||||
{
|
||||
"language": {
|
||||
"change": "切換語言",
|
||||
"traditionalChinese": "繁體中文",
|
||||
"english": "English"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user