mirror of
https://github.com/woodchen-ink/clash-and-dashboard.git
synced 2025-07-18 22:11:56 +08:00
Merge branch 'master' of github.com:Dreamacro/clash-dashboard
This commit is contained in:
commit
8a8506c3f3
84
package-lock.json
generated
84
package-lock.json
generated
@ -1859,7 +1859,7 @@
|
||||
},
|
||||
"browserify-aes": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -1896,7 +1896,7 @@
|
||||
},
|
||||
"browserify-rsa": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
|
||||
"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -2623,7 +2623,7 @@
|
||||
},
|
||||
"create-hash": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
|
||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -2636,7 +2636,7 @@
|
||||
},
|
||||
"create-hmac": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -3271,7 +3271,7 @@
|
||||
},
|
||||
"diffie-hellman": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
|
||||
"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -6929,6 +6929,22 @@
|
||||
"xtend": "4.0.1"
|
||||
}
|
||||
},
|
||||
"load-bmfont": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "http://registry.npm.taobao.org/load-bmfont/download/load-bmfont-1.4.0.tgz",
|
||||
"integrity": "sha1-dfFwcLFKjHhf5/W+4ub9T5gJO2s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-equal": "0.0.1",
|
||||
"mime": "^1.3.4",
|
||||
"parse-bmfont-ascii": "^1.0.3",
|
||||
"parse-bmfont-binary": "^1.0.5",
|
||||
"parse-bmfont-xml": "^1.1.4",
|
||||
"phin": "^2.9.1",
|
||||
"xhr": "^2.0.1",
|
||||
"xtend": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||
@ -7827,7 +7843,7 @@
|
||||
},
|
||||
"buffer": {
|
||||
"version": "4.9.1",
|
||||
"resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
|
||||
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -8407,7 +8423,7 @@
|
||||
},
|
||||
"parse-asn1": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
|
||||
"integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -8440,6 +8456,28 @@
|
||||
"xml2js": "0.4.19"
|
||||
}
|
||||
},
|
||||
"parse-bmfont-ascii": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "http://registry.npm.taobao.org/parse-bmfont-ascii/download/parse-bmfont-ascii-1.0.6.tgz",
|
||||
"integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=",
|
||||
"dev": true
|
||||
},
|
||||
"parse-bmfont-binary": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "http://registry.npm.taobao.org/parse-bmfont-binary/download/parse-bmfont-binary-1.0.6.tgz",
|
||||
"integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=",
|
||||
"dev": true
|
||||
},
|
||||
"parse-bmfont-xml": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "http://registry.npm.taobao.org/parse-bmfont-xml/download/parse-bmfont-xml-1.1.4.tgz",
|
||||
"integrity": "sha1-AVMZeX4+EvnnOcTVE4cs0vo184k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"xml-parse-from-string": "^1.0.0",
|
||||
"xml2js": "^0.4.5"
|
||||
}
|
||||
},
|
||||
"parse-entities": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz",
|
||||
@ -8635,6 +8673,15 @@
|
||||
"pngjs": "3.3.3"
|
||||
}
|
||||
},
|
||||
"pixelmatch": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "http://registry.npm.taobao.org/pixelmatch/download/pixelmatch-4.0.2.tgz",
|
||||
"integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pngjs": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"pkg-dir": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
|
||||
@ -9383,7 +9430,7 @@
|
||||
},
|
||||
"public-encrypt": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
|
||||
"integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -10333,7 +10380,7 @@
|
||||
},
|
||||
"sha.js": {
|
||||
"version": "2.4.11",
|
||||
"resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
|
||||
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
|
||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -13459,6 +13506,25 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"webpack-pwa-manifest": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "http://registry.npm.taobao.org/webpack-pwa-manifest/download/webpack-pwa-manifest-3.7.1.tgz",
|
||||
"integrity": "sha1-7zykVxsfeZpHAiW+U3wMpqGslQU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"css-color-names": "0.0.4",
|
||||
"jimp": "^0.2.28",
|
||||
"mime": "^1.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
|
||||
"integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"webpack-sources": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
|
||||
|
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