From 6cbd6685bc3a680e856420a35cf6a2c281d39c69 Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Thu, 7 Mar 2024 14:07:38 +0800 Subject: [PATCH] add language switch in settings page --- src/pages/user/settings/settings.tsx | 44 ++++++++++++++++++++++++++-- src/plain-text/index.ts | 4 +++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/pages/user/settings/settings.tsx b/src/pages/user/settings/settings.tsx index 7cbf6f9..787167b 100644 --- a/src/pages/user/settings/settings.tsx +++ b/src/pages/user/settings/settings.tsx @@ -1,10 +1,36 @@ -import { AtButton } from 'taro-ui'; +import { AtButton, AtList, AtListItem } from 'taro-ui'; import { Component, ReactNode } from 'react'; import './settings.scss'; import Taro from '@tarojs/taro'; -import { View } from '@tarojs/components'; +import { View, Picker } from '@tarojs/components'; +import pt, { Lang } from '@/plain-text'; export default class SettingsPage extends Component { + showLangDict: Record = { + 简体中文: 'zh_CN', + English: 'en_US', + }; + + reversedShowLangDict: Record = { + zh_CN: '简体中文', + en_US: 'English', + }; + + state = { + selector: ['简体中文', 'English'], + selectorChecked: this.reversedShowLangDict[pt.getCurLang()], + }; + + onSelect = (e: { detail: { value: string | number } }) => { + this.setState({ + selectorChecked: this.state.selector[e.detail.value], + }); + pt.setLang(this.showLangDict[this.state.selector[e.detail.value]]); + Taro.reLaunch({ + url: '/pages/index/index', + }); + }; + handleQuit() { console.log('Quit'); } @@ -17,6 +43,20 @@ export default class SettingsPage extends Component { render(): ReactNode { return ( + + + + + + + 关于 EVA Notify diff --git a/src/plain-text/index.ts b/src/plain-text/index.ts index 02514ce..14c6bf6 100644 --- a/src/plain-text/index.ts +++ b/src/plain-text/index.ts @@ -46,6 +46,10 @@ class PlainText { } return this.textZhCn; } + + getCurLang(): Lang { + return this.lang; + } } const pt = new PlainText();