feat: 添加语言管理功能,更新系统设置页面,优化用户体验

This commit is contained in:
2025-12-20 02:23:55 +07:00
parent 2703e6d007
commit 916cbe9d24
10 changed files with 210 additions and 16 deletions

View File

@@ -0,0 +1,58 @@
<script lang="ts" setup>
import { useIonRouter } from "@ionic/vue";
const { t } = useI18n();
const router = useIonRouter();
const { languages, locale, setLanguage } = useLanguage();
function handleLanguageChange(event: CustomEvent) {
const langCode = event.detail.value;
setLanguage(langCode);
// 返回上一页
setTimeout(() => {
router.back();
}, 300);
}
</script>
<template>
<ion-page>
<ion-header>
<ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" />
<ion-title>{{ t("settings.languageTitle") }}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content :fullscreen="true" class="ion-padding">
<ion-list lines="full">
<ion-radio-group :value="locale" @ion-change="handleLanguageChange">
<ion-item v-for="lang in languages" :key="lang.code">
<ion-radio :value="lang.code">
<div class="language-item">
<div class="font-semibold">
{{ lang.nativeName }}
</div>
<div class="text-xs text-gray-500">
{{ lang.name }}
</div>
</div>
</ion-radio>
</ion-item>
</ion-radio-group>
</ion-list>
</ion-content>
</ion-page>
</template>
<style lang='css' scoped></style>
"css" scoped>
@reference "tailwindcss";
.language-item {
@apply py-1;
}
ion-radio {
width: 100%;
}