mirror of
https://github.com/woodchen-ink/clash-and-dashboard.git
synced 2025-07-18 14:01:56 +08:00
Add: settings page
This commit is contained in:
parent
582d82868d
commit
1de3969391
0
src/containers/Settings/components/index.ts
Normal file
0
src/containers/Settings/components/index.ts
Normal file
@ -1,7 +1,25 @@
|
||||
import * as React from 'react'
|
||||
import { Header, Card } from '@components'
|
||||
import { translate } from 'react-i18next'
|
||||
import { I18nProps } from '@i18n'
|
||||
|
||||
class Settings extends React.Component<I18nProps, {}> {
|
||||
|
||||
state = {
|
||||
startAtLogin: false
|
||||
}
|
||||
|
||||
export default class Settings extends React.Component<{}, {}> {
|
||||
render () {
|
||||
return 'Settings'
|
||||
const { t } = this.props
|
||||
|
||||
return (
|
||||
<div className="page">
|
||||
<Header title={t('title')} />
|
||||
<Card style={{ marginTop: 25 }}>
|
||||
</Card>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default translate(['Settings'])(Settings)
|
||||
|
12
src/containers/Settings/style.scss
Normal file
12
src/containers/Settings/style.scss
Normal file
@ -0,0 +1,12 @@
|
||||
@import '~@styles/variables';
|
||||
|
||||
.proxies-list {
|
||||
margin: 10px 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
margin: 20px 15px 20px 0;
|
||||
}
|
||||
}
|
@ -18,9 +18,9 @@ class Sidebar extends React.Component<SidebarProps, {}> {
|
||||
render () {
|
||||
const { routes, t } = this.props
|
||||
return (
|
||||
<div className="slidebar">
|
||||
<img src={logo} className="slidebar-logo" />
|
||||
<ul className="slidebar-menu">
|
||||
<div className="sidebar">
|
||||
<img src={logo} className="sidebar-logo" />
|
||||
<ul className="sidebar-menu">
|
||||
{
|
||||
routes.map(
|
||||
({ path, name, exact }) => (
|
||||
@ -36,4 +36,4 @@ class Sidebar extends React.Component<SidebarProps, {}> {
|
||||
}
|
||||
}
|
||||
|
||||
export default translate(['slidebar'])(Sidebar)
|
||||
export default translate(['SideBar'])(Sidebar)
|
||||
|
@ -1,6 +1,6 @@
|
||||
@import '~@styles/variables';
|
||||
|
||||
.slidebar {
|
||||
.sidebar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@ -8,13 +8,13 @@
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.slidebar-logo {
|
||||
.sidebar-logo {
|
||||
margin-top: 50px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.slidebar-menu {
|
||||
.sidebar-menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-top: 12px;
|
||||
|
31
src/i18n/en_US.ts
Normal file
31
src/i18n/en_US.ts
Normal file
@ -0,0 +1,31 @@
|
||||
export default {
|
||||
SideBar: {
|
||||
Proxies: 'Proxies',
|
||||
Overview: 'Overview',
|
||||
Logs: 'Logs',
|
||||
Rules: 'Rules',
|
||||
Settings: 'Setting'
|
||||
},
|
||||
Settings: {
|
||||
title: 'Settings',
|
||||
labels: {
|
||||
startAtLogin: 'Start at login',
|
||||
language: 'language',
|
||||
setAsSystemProxy: 'Set as system proxy',
|
||||
allowConnectFromLan: 'Allow connect from Lan',
|
||||
proxyMode: 'Mode',
|
||||
socketProxyPort: 'Socket proxy port',
|
||||
httpProxyPort: 'HTTP proxy port',
|
||||
externalController: 'External controller'
|
||||
},
|
||||
values: {
|
||||
cn: '中文',
|
||||
en: 'English',
|
||||
global: 'Global',
|
||||
rules: 'Rules',
|
||||
direct: 'Direct'
|
||||
},
|
||||
versionString: 'Current ClashX is the latest version:{{version}}',
|
||||
checkUpdate: 'Check Update'
|
||||
}
|
||||
}
|
@ -1,30 +1,23 @@
|
||||
import * as i18n from 'i18next'
|
||||
import * as LanguageDetector from 'i18next-browser-languagedetector'
|
||||
|
||||
const options = {
|
||||
fallbackLng: 'en',
|
||||
// locales
|
||||
import en_US from './en_US'
|
||||
import zh_CN from './zh_CN'
|
||||
|
||||
const options = {
|
||||
fallbackLng: 'en_US',
|
||||
|
||||
ns: [
|
||||
'SideBar',
|
||||
'Settings'
|
||||
],
|
||||
|
||||
ns: ['slidebar'],
|
||||
resources: {
|
||||
en: {
|
||||
slidebar: {
|
||||
Proxies: 'Proxies',
|
||||
Overview: 'Overview',
|
||||
Logs: 'Logs',
|
||||
Rules: 'Rules',
|
||||
Settings: 'Setting'
|
||||
}
|
||||
},
|
||||
'zh-CN': {
|
||||
slidebar: {
|
||||
Proxies: '代理',
|
||||
Overview: '总览',
|
||||
Logs: '日志',
|
||||
Rules: '规则',
|
||||
Settings: '设置'
|
||||
}
|
||||
}
|
||||
en: en_US,
|
||||
zh: zh_CN
|
||||
},
|
||||
|
||||
react: {
|
||||
wait: true
|
||||
}
|
||||
|
31
src/i18n/zh_CN.ts
Normal file
31
src/i18n/zh_CN.ts
Normal file
@ -0,0 +1,31 @@
|
||||
export default {
|
||||
SideBar: {
|
||||
Proxies: '代理',
|
||||
Overview: '总览',
|
||||
Logs: '日志',
|
||||
Rules: '规则',
|
||||
Settings: '设置'
|
||||
},
|
||||
Settings: {
|
||||
title: '设置',
|
||||
labels: {
|
||||
startAtLogin: '开机时启动',
|
||||
language: '语言',
|
||||
setAsSystemProxy: '设置为系统代理',
|
||||
allowConnectFromLan: '允许来自局域网的连接',
|
||||
proxyMode: '代理模式',
|
||||
socketProxyPort: 'Socket 代理端口',
|
||||
httpProxyPort: 'HTTP 代理端口',
|
||||
externalController: '外部控制设置'
|
||||
},
|
||||
values: {
|
||||
cn: '中文',
|
||||
en: 'English',
|
||||
global: '全局',
|
||||
rules: '规则',
|
||||
direct: '直连'
|
||||
},
|
||||
versionString: '当前 ClashX 已是最新版本:{{version}}',
|
||||
checkUpdate: '检查更新'
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user