@electerm/electerm-react 1.39.88 → 1.39.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/client/common/constants.js +2 -1
  2. package/client/common/create-title.jsx +2 -3
  3. package/client/common/init-setting-item.js +3 -6
  4. package/client/common/new-terminal.js +1 -2
  5. package/client/common/terminal-theme.js +2 -3
  6. package/client/components/auth/login.jsx +2 -3
  7. package/client/components/batch-op/batch-op.jsx +18 -36
  8. package/client/components/bookmark-form/form-ssh-common.jsx +4 -7
  9. package/client/components/bookmark-form/form-tabs.jsx +4 -8
  10. package/client/components/bookmark-form/index.jsx +5 -9
  11. package/client/components/bookmark-form/local-form-ui.jsx +3 -6
  12. package/client/components/bookmark-form/proxy.jsx +1 -2
  13. package/client/components/bookmark-form/quick-command.jsx +7 -8
  14. package/client/components/bookmark-form/rdp-form-ui.jsx +2 -4
  15. package/client/components/bookmark-form/render-auth-ssh.jsx +1 -2
  16. package/client/components/bookmark-form/render-connection-hopping.jsx +9 -11
  17. package/client/components/bookmark-form/render-delayed-scripts.jsx +1 -2
  18. package/client/components/bookmark-form/render-ssh-tunnel.jsx +9 -12
  19. package/client/components/bookmark-form/serial-form-ui.jsx +4 -8
  20. package/client/components/bookmark-form/sftp-enable.jsx +1 -2
  21. package/client/components/bookmark-form/telnet-form-ui.jsx +2 -4
  22. package/client/components/bookmark-form/tree-delete.jsx +3 -4
  23. package/client/components/bookmark-form/use-quick-commands.jsx +5 -6
  24. package/client/components/bookmark-form/use-submit.jsx +1 -2
  25. package/client/components/bookmark-form/use-ui.jsx +4 -6
  26. package/client/components/bookmark-form/vnc-form-ui.jsx +2 -4
  27. package/client/components/bookmark-form/web-form-ui.jsx +2 -4
  28. package/client/components/common/markdown.jsx +1 -1
  29. package/client/components/context-menu/context-menu.jsx +3 -4
  30. package/client/components/context-menu/menu-btn.jsx +13 -18
  31. package/client/components/footer/batch-input.jsx +1 -2
  32. package/client/components/footer/footer-entry.jsx +2 -3
  33. package/client/components/main/error-wrapper.jsx +2 -4
  34. package/client/components/main/upgrade.jsx +2 -4
  35. package/client/components/main/upgrade.styl +4 -1
  36. package/client/components/profile/profile-form-elem.jsx +28 -10
  37. package/client/components/quick-commands/quick-commands-box.jsx +1 -2
  38. package/client/components/quick-commands/quick-commands-form-elem.jsx +7 -12
  39. package/client/components/quick-commands/quick-commands-list-form.jsx +5 -6
  40. package/client/components/quick-commands/quick-commands-list.jsx +2 -3
  41. package/client/components/quick-commands/quick-commands-select.jsx +1 -2
  42. package/client/components/rdp/rdp-session.jsx +0 -3
  43. package/client/components/rdp/resolution-form.jsx +3 -6
  44. package/client/components/session/session.jsx +2 -4
  45. package/client/components/session/sessions.jsx +4 -6
  46. package/client/components/setting-panel/keywords-form.jsx +2 -3
  47. package/client/components/setting-panel/list.jsx +3 -6
  48. package/client/components/setting-panel/setting-common.jsx +10 -14
  49. package/client/components/setting-panel/setting-modal.jsx +7 -11
  50. package/client/components/setting-panel/setting-terminal.jsx +13 -16
  51. package/client/components/setting-panel/start-session-select.jsx +1 -2
  52. package/client/components/setting-panel/tab-history.jsx +2 -3
  53. package/client/components/setting-sync/data-import.jsx +4 -7
  54. package/client/components/setting-sync/data-select.jsx +4 -16
  55. package/client/components/setting-sync/setting-sync-form.jsx +8 -12
  56. package/client/components/sftp/address-bar.jsx +1 -2
  57. package/client/components/sftp/confirm-modal-store.jsx +1 -2
  58. package/client/components/sftp/file-item.jsx +6 -8
  59. package/client/components/sftp/file-mode-modal.jsx +1 -2
  60. package/client/components/sftp/file-props-modal.jsx +1 -2
  61. package/client/components/sftp/list-table-ui.jsx +1 -2
  62. package/client/components/sftp/permission-render.jsx +1 -2
  63. package/client/components/sftp/sftp-entry.jsx +21 -7
  64. package/client/components/sftp/transfer-tag.jsx +1 -2
  65. package/client/components/shortcuts/shortcuts.jsx +5 -28
  66. package/client/components/sidebar/bookmark.jsx +6 -9
  67. package/client/components/sidebar/history.jsx +4 -6
  68. package/client/components/sidebar/index.jsx +9 -16
  69. package/client/components/sidebar/info-modal.jsx +10 -15
  70. package/client/components/sidebar/transfer-history-modal.jsx +3 -6
  71. package/client/components/sidebar/transfer-list-control.jsx +1 -2
  72. package/client/components/sidebar/transfer-list.jsx +1 -2
  73. package/client/components/sidebar/transfer-modal.jsx +2 -4
  74. package/client/components/sidebar/transport-ui.jsx +1 -2
  75. package/client/components/tabs/index.jsx +28 -20
  76. package/client/components/tabs/tab.jsx +5 -9
  77. package/client/components/tabs/window-control.jsx +4 -5
  78. package/client/components/terminal/index.jsx +5 -7
  79. package/client/components/terminal/term-search.jsx +2 -3
  80. package/client/components/terminal/terminal-interactive.jsx +2 -4
  81. package/client/components/terminal-info/activity.jsx +4 -5
  82. package/client/components/terminal-info/base.jsx +3 -4
  83. package/client/components/terminal-info/terminal-info.styl +1 -0
  84. package/client/components/terminal-theme/index.jsx +6 -9
  85. package/client/components/terminal-theme/theme-list.jsx +1 -2
  86. package/client/components/text-editor/text-editor-form.jsx +4 -8
  87. package/client/components/text-editor/text-editor.jsx +2 -3
  88. package/client/components/tree-list/bookmark-transport.jsx +4 -7
  89. package/client/components/tree-list/tree-list-item.jsx +4 -7
  90. package/client/components/tree-list/tree-list.jsx +3 -6
  91. package/client/components/vnc/vnc-form.jsx +2 -4
  92. package/client/components/vnc/vnc-session.jsx +1 -2
  93. package/client/entry/basic.js +4 -6
  94. package/client/store/common.js +10 -12
  95. package/client/store/index.js +4 -7
  96. package/client/store/init-state.js +2 -3
  97. package/client/store/load-data.js +10 -0
  98. package/client/store/setting.js +2 -3
  99. package/client/store/system-menu.js +4 -6
  100. package/client/store/terminal-theme.js +2 -4
  101. package/package.json +1 -1
@@ -10,8 +10,7 @@ import highlight from '../common/highlight'
10
10
  import QmTransport from './quick-command-transport'
11
11
 
12
12
  const { Option } = Select
13
- const { prefix } = window
14
- const q = prefix('quickCommands')
13
+ const e = window.translate
15
14
 
16
15
  export default class QuickCommandsList extends List {
17
16
  del = (item, e) => {
@@ -114,7 +113,7 @@ export default class QuickCommandsList extends List {
114
113
  renderLabels = () => {
115
114
  const arr = this.getLabels()
116
115
  const props = {
117
- placeholder: q('labels'),
116
+ placeholder: e('labels'),
118
117
  mode: 'multiple',
119
118
  value: this.state.labels,
120
119
  onChange: this.handleChange,
@@ -6,8 +6,7 @@ import { PureComponent } from 'react'
6
6
  import { Button } from 'antd'
7
7
  import './qm.styl'
8
8
 
9
- const { prefix } = window
10
- const e = prefix('quickCommands')
9
+ const e = window.translate
11
10
 
12
11
  export default class QuickCommandsFooter extends PureComponent {
13
12
  handleOpen = () => {
@@ -23,9 +23,6 @@ import scanCode from './code-scan'
23
23
  import resolutions from './resolutions'
24
24
 
25
25
  const { Option } = Select
26
- // const { prefix } = window
27
- // const e = prefix('ssh')
28
- // const m = prefix('menu')
29
26
 
30
27
  export default class RdpSession extends Component {
31
28
  constructor (props) {
@@ -11,10 +11,7 @@ import { formItemLayout, tailFormItemLayout } from '../../common/form-layout'
11
11
  import resolutions from './resolutions'
12
12
 
13
13
  const FormItem = Form.Item
14
- const { prefix } = window
15
- const e = prefix('ssh')
16
- const c = prefix('common')
17
- const m = prefix('menu')
14
+ const e = window.translate
18
15
 
19
16
  export default function ResolutionForm (props) {
20
17
  const {
@@ -43,7 +40,7 @@ export default function ResolutionForm (props) {
43
40
  return `${item.width}x${item.height}`
44
41
  }
45
42
  }, {
46
- title: m('del'),
43
+ title: e('del'),
47
44
  key: 'op',
48
45
  dataIndex: 'id',
49
46
  render: (id, item) => {
@@ -91,7 +88,7 @@ export default function ResolutionForm (props) {
91
88
  initialValues={initialValues}
92
89
  >
93
90
  <FormItem
94
- label={c('resolutions')}
91
+ label={e('resolutions')}
95
92
  {...formItemLayout}
96
93
  required
97
94
  className='ssh-tunnels-host'
@@ -60,9 +60,7 @@ const getPrevTerminal = terminals => {
60
60
  return last(terminals)
61
61
  }
62
62
 
63
- const { prefix } = window
64
- const e = prefix('ssh')
65
- const m = prefix('menu')
63
+ const e = window.translate
66
64
 
67
65
  export default class SessionWrapper extends Component {
68
66
  constructor (props) {
@@ -615,7 +613,7 @@ export default class SessionWrapper extends Component {
615
613
  <CloseSquareFilled
616
614
  className='mg1r icon-trash font16 iblock pointer spliter'
617
615
  onClick={() => this.delSplit()}
618
- title={m('del')}
616
+ title={e('del')}
619
617
  />
620
618
  )
621
619
  }
@@ -25,9 +25,7 @@ import { Button } from 'antd'
25
25
  import toSimpleObj from '../../common/to-simple-obj'
26
26
  import { shortcutExtend } from '../shortcuts/shortcut-handler.js'
27
27
 
28
- const { prefix } = window
29
- const e = prefix('tabs')
30
- const c = prefix('control')
28
+ const e = window.translate
31
29
 
32
30
  class Sessions extends Component {
33
31
  state = {
@@ -187,8 +185,8 @@ class Sessions extends Component {
187
185
  })
188
186
  }
189
187
 
190
- onDuplicateTab = (tabToDup) => {
191
- this.setState(oldState => {
188
+ onDuplicateTab = async (tabToDup) => {
189
+ this.setState(async oldState => {
192
190
  const defaultStatus = statusMap.processing
193
191
  let tab = copy(tabToDup)
194
192
  updateCount(tab)
@@ -317,7 +315,7 @@ class Sessions extends Component {
317
315
  size='large'
318
316
  className='mg1r mg1b'
319
317
  >
320
- {c('newBookmark')}
318
+ {e('newBookmark')}
321
319
  </Button>
322
320
  <div className='pd3'>
323
321
  <LogoElem />
@@ -14,8 +14,7 @@ import {
14
14
  const FormItem = Form.Item
15
15
  const FormList = Form.List
16
16
  const OptionSel = Select.Option
17
- const { prefix } = window
18
- const f = prefix('form')
17
+ const e = window.translate
19
18
 
20
19
  export default function KeywordForm (props) {
21
20
  const {
@@ -131,7 +130,7 @@ export default function KeywordForm (props) {
131
130
  })}
132
131
  icon={<PlusOutlined />}
133
132
  >
134
- {f('keyword')}
133
+ {e('keyword')}
135
134
  </Button>
136
135
  </FormItem>
137
136
  </div>
@@ -12,10 +12,7 @@ import highlight from '../common/highlight'
12
12
  import { settingSyncId, settingCommonId } from '../../common/constants'
13
13
  import './list.styl'
14
14
 
15
- const { prefix } = window
16
- const e = prefix('menu')
17
- const c = prefix('common')
18
- const s = prefix('setting')
15
+ const e = window.translate
19
16
 
20
17
  export default class ItemList extends React.PureComponent {
21
18
  state = {
@@ -88,7 +85,7 @@ export default class ItemList extends React.PureComponent {
88
85
  title={e('del') + '?'}
89
86
  onConfirm={e => this.del(item, e)}
90
87
  okText={e('del')}
91
- cancelText={c('cancel')}
88
+ cancelText={e('cancel')}
92
89
  placement='top'
93
90
  >
94
91
  {icon}
@@ -124,7 +121,7 @@ export default class ItemList extends React.PureComponent {
124
121
  title={title}
125
122
  className='elli pd1y pd2x list-item-title'
126
123
  >
127
- {tag}{titleHighlight || s('new')}
124
+ {tag}{titleHighlight || e('new')}
128
125
  </div>
129
126
  {this.renderDelBtn(item)}
130
127
  {this.renderEditBtn(item, isGroup)}
@@ -29,11 +29,7 @@ import delay from '../../common/wait.js'
29
29
  import './setting.styl'
30
30
 
31
31
  const { Option } = Select
32
- const { prefix } = window
33
- const e = prefix('setting')
34
- const f = prefix('form')
35
- const p = prefix('sftp')
36
- const t = prefix('terminalThemes')
32
+ const e = window.translate
37
33
 
38
34
  const modifiers = [
39
35
  'Command',
@@ -55,7 +51,7 @@ export default class SettingCommon extends Component {
55
51
  passwordChanged: false,
56
52
  submittingPass: false,
57
53
  passInputFocused: false,
58
- placeholderLogin: window.pre.requireAuth ? '********' : f('notSet'),
54
+ placeholderLogin: window.pre.requireAuth ? '********' : e('notSet'),
59
55
  loginPass: ''
60
56
  }
61
57
 
@@ -92,7 +88,7 @@ export default class SettingCommon extends Component {
92
88
  loginPass: pass ? '********' : '',
93
89
  submittingPass: false,
94
90
  passwordChanged: true,
95
- placeholderLogin: pass ? '********' : f('notSet')
91
+ placeholderLogin: pass ? '********' : e('notSet')
96
92
  }, () => {
97
93
  this.submitting = false
98
94
  })
@@ -417,7 +413,7 @@ export default class SettingCommon extends Component {
417
413
  <div className='pd1b'>
418
414
  <div className='pd1b'>
419
415
  <span className='pd1r'>
420
- {e('global')} {f('proxy')}
416
+ {e('global')} {e('proxy')}
421
417
  <HelpIcon
422
418
  title={table}
423
419
  overlayInnerStyle={style}
@@ -478,7 +474,7 @@ export default class SettingCommon extends Component {
478
474
  }
479
475
  return (
480
476
  <div>
481
- <div className='pd1b'>{f('loginPassword')}</div>
477
+ <div className='pd1b'>{e('loginPassword')}</div>
482
478
  <div className='pd2b'>
483
479
  <Input.Password
484
480
  {...props}
@@ -575,7 +571,7 @@ export default class SettingCommon extends Component {
575
571
  }
576
572
 
577
573
  <div className='pd2b'>
578
- <span className='inline-title mg1r'>{t('uiThemes')}</span>
574
+ <span className='inline-title mg1r'>{e('uiThemes')}</span>
579
575
  <Select
580
576
  onChange={this.handleChangeTerminalTheme}
581
577
  popupMatchSelectWidth={false}
@@ -617,18 +613,18 @@ export default class SettingCommon extends Component {
617
613
  })
618
614
  }
619
615
  </Select>
620
- <Link className='mg1l' to={createEditLangLink(language)}>{p('edit')}</Link>
616
+ <Link className='mg1l' to={createEditLangLink(language)}>{e('edit')}</Link>
621
617
  </div>
622
618
  {this.renderRestart('languageChanged')}
623
- <div className='pd1b'>{t('default')} {e('execWindows')}</div>
619
+ <div className='pd1b'>{e('default')} {e('execWindows')}</div>
624
620
  {
625
621
  this.renderTextExec('execWindows')
626
622
  }
627
- <div className='pd1b'>{t('default')} {e('execMac')}</div>
623
+ <div className='pd1b'>{e('default')} {e('execMac')}</div>
628
624
  {
629
625
  this.renderTextExec('execMac')
630
626
  }
631
- <div className='pd1b'>{t('default')} {e('execLinux')}</div>
627
+ <div className='pd1b'>{e('default')} {e('execLinux')}</div>
632
628
  {
633
629
  this.renderTextExec('execLinux')
634
630
  }
@@ -17,11 +17,7 @@ import TabSettings from './tab-settings'
17
17
  import TabThemes from './tab-themes'
18
18
  import TabProfiles from './tab-profiles'
19
19
 
20
- const { prefix } = window
21
- const m = prefix('common')
22
- const t = prefix('terminalThemes')
23
- const q = prefix('quickCommands')
24
- const f = prefix('form')
20
+ const e = window.translate
25
21
 
26
22
  export default class SettingModalWrap extends Component {
27
23
  selectItem = (item) => {
@@ -72,32 +68,32 @@ export default class SettingModalWrap extends Component {
72
68
  const items = [
73
69
  {
74
70
  key: settingMap.history,
75
- label: m(settingMap.history),
71
+ label: e(settingMap.history),
76
72
  children: null
77
73
  },
78
74
  {
79
75
  key: settingMap.bookmarks,
80
- label: m(settingMap.bookmarks),
76
+ label: e(settingMap.bookmarks),
81
77
  children: null
82
78
  },
83
79
  {
84
80
  key: settingMap.setting,
85
- label: m(settingMap.setting),
81
+ label: e(settingMap.setting),
86
82
  children: null
87
83
  },
88
84
  {
89
85
  key: settingMap.terminalThemes,
90
- label: t('uiThemes'),
86
+ label: e('uiThemes'),
91
87
  children: null
92
88
  },
93
89
  {
94
90
  key: settingMap.quickCommands,
95
- label: q(settingMap.quickCommands),
91
+ label: e(settingMap.quickCommands),
96
92
  children: null
97
93
  },
98
94
  {
99
95
  key: settingMap.profiles,
100
- label: f(settingMap.profiles),
96
+ label: e(settingMap.profiles),
101
97
  children: null
102
98
  }
103
99
  ]
@@ -31,12 +31,7 @@ import HelpIcon from '../common/help-icon'
31
31
  import './setting.styl'
32
32
 
33
33
  const { Option } = Select
34
- const { prefix } = window
35
- const e = prefix('setting')
36
- const s = prefix('ssh')
37
- const p = prefix('sftp')
38
- const t = prefix('terminalThemes')
39
- const f = prefix('form')
34
+ const e = window.translate
40
35
 
41
36
  export default class SettingTerminal extends Component {
42
37
  state = {
@@ -107,12 +102,13 @@ export default class SettingTerminal extends Component {
107
102
 
108
103
  renderToggle = (name, extra = null) => {
109
104
  const checked = !!this.props.config[name]
105
+ const txt = e(name)
110
106
  return (
111
107
  <div className='pd2b' key={'rt' + name}>
112
108
  <Switch
113
109
  checked={checked}
114
- checkedChildren={e(name)}
115
- unCheckedChildren={e(name)}
110
+ checkedChildren={txt}
111
+ unCheckedChildren={txt}
116
112
  onChange={v => this.onChangeValue(v, name)}
117
113
  />
118
114
  {isNumber(extra) ? null : extra}
@@ -207,7 +203,7 @@ export default class SettingTerminal extends Component {
207
203
  const dataSource = [
208
204
  {
209
205
  value: '',
210
- desc: t('default')
206
+ desc: e('default')
211
207
  },
212
208
  {
213
209
  value: noTerminalBgValue,
@@ -423,7 +419,7 @@ export default class SettingTerminal extends Component {
423
419
  : window.et.sessionLogPath
424
420
  const tip = (
425
421
  <div>
426
- <span className='mg1r'>{f('supportRegexp')}</span>
422
+ <span className='mg1r'>{e('supportRegexp')}</span>
427
423
  <Link to={regexHelpLink}>wiki</Link>
428
424
  </div>
429
425
  )
@@ -431,7 +427,7 @@ export default class SettingTerminal extends Component {
431
427
  <div className='form-wrap pd1y pd2x'>
432
428
  <div className='pd1y font16 bold'>
433
429
  <CodeOutlined className='mg1r' />
434
- {s('terminal')} {e('settings')}
430
+ {e('terminal')} {e('settings')}
435
431
  </div>
436
432
  {
437
433
  this.renderNumber('scrollback', {
@@ -459,17 +455,17 @@ export default class SettingTerminal extends Component {
459
455
  this.renderNumber('fontSize', {
460
456
  step: 1,
461
457
  min: 9
462
- }, `${t('default')} ${e('fontSize')}`, 400)
458
+ }, `${e('default')} ${e('fontSize')}`, 400)
463
459
  }
464
460
  <div className='pd2b'>
465
- <span className='inline-title mg1r'>{t('default')} {e('fontFamily')}</span>
461
+ <span className='inline-title mg1r'>{e('default')} {e('fontFamily')}</span>
466
462
  {
467
463
  this.renderFontFamily()
468
464
  }
469
465
  </div>
470
466
  <div className='pd2b'>
471
467
  <div className='pd1b'>
472
- <span className='inline-title mg1r'>{f('keywordsHighlight')}</span>
468
+ <span className='inline-title mg1r'>{e('keywordsHighlight')}</span>
473
469
  <HelpIcon
474
470
  title={tip}
475
471
  />
@@ -496,7 +492,7 @@ export default class SettingTerminal extends Component {
496
492
  this.renderCursorStyleSelect()
497
493
  }
498
494
  {this.renderToggle('saveTerminalLogToFile', (
499
- <ShowItem to={terminalLogPath} className='mg1l'>{p('open')}</ShowItem>
495
+ <ShowItem to={terminalLogPath} className='mg1l'>{e('open')}</ShowItem>
500
496
  ))}
501
497
  {this.renderToggle('addTimeStampToTermLog')}
502
498
  {
@@ -505,7 +501,8 @@ export default class SettingTerminal extends Component {
505
501
  'rightClickSelectsWord',
506
502
  'pasteWhenContextMenu',
507
503
  'copyWhenSelect',
508
- 'ctrlOrMetaOpenTerminalLink'
504
+ 'ctrlOrMetaOpenTerminalLink',
505
+ 'sftpPathFollowSsh'
509
506
  ].map(this.renderToggle)
510
507
  }
511
508
  <div className='pd1b'>{e('terminalBackSpaceMode')}</div>
@@ -3,8 +3,7 @@ import { Component } from '../common/react-subx'
3
3
  import copy from 'json-deep-copy'
4
4
  import { createTitleWithTag } from '../../common/create-title'
5
5
 
6
- const { prefix } = window
7
- const e = prefix('setting')
6
+ const e = window.translate
8
7
  const { SHOW_CHILD } = TreeSelect
9
8
 
10
9
  export default class StartSessionSelect extends Component {
@@ -5,8 +5,7 @@ import {
5
5
  settingMap
6
6
  } from '../../common/constants'
7
7
 
8
- const { prefix } = window
9
- const c = prefix('control')
8
+ const e = window.translate
10
9
 
11
10
  export default function TabHistory (props) {
12
11
  const {
@@ -36,7 +35,7 @@ export default function TabHistory (props) {
36
35
  {...formProps}
37
36
  />
38
37
  )
39
- : <div className='form-wrap pd2 aligncenter'>{c('notFoundContent')}</div>
38
+ : <div className='form-wrap pd2 aligncenter'>{e('notFoundContent')}</div>
40
39
  }
41
40
  </SettingCol>
42
41
  </div>
@@ -15,14 +15,11 @@ import {
15
15
  } from '@ant-design/icons'
16
16
  import { Component } from '../common/react-subx'
17
17
 
18
- const { prefix } = window
19
- const e = prefix('form')
20
- const t = prefix('terminalThemes')
21
- const s = prefix('settingSync')
18
+ const e = window.translate
22
19
 
23
20
  export class DataTransport extends Component {
24
21
  render () {
25
- const txt = s('autoSync')
22
+ const txt = e('autoSync')
26
23
  const {
27
24
  store
28
25
  } = this.props
@@ -34,7 +31,7 @@ export class DataTransport extends Component {
34
31
  className='mg1r'
35
32
  onClick={store.handleExportAllData}
36
33
  >
37
- {t('export')}
34
+ {e('export')}
38
35
  </Button>
39
36
  <Upload
40
37
  beforeUpload={store.importAll}
@@ -55,7 +52,7 @@ export class DataTransport extends Component {
55
52
  unCheckedChildren={txt}
56
53
  className='mg3l mg1r'
57
54
  />
58
- <Tooltip title={s('autoSyncTip')}>
55
+ <Tooltip title={e('autoSyncTip')}>
59
56
  <InfoCircleOutlined />
60
57
  </Tooltip>
61
58
  </div>
@@ -3,26 +3,14 @@ import {
3
3
  } from '../../common/constants'
4
4
  import DataSelectItem from './data-select-item'
5
5
 
6
- const { prefix } = window
7
- const e = prefix('common')
8
- const f = prefix('config')
9
- const t = prefix('terminalThemes')
10
- const q = prefix('quickCommands')
11
-
12
- const translateMap = {
13
- settings: f,
14
- terminalThemes: t,
15
- quickCommands: q,
16
- bookmarks: e,
17
- addressBookmarks: e
18
- }
6
+ const e = window.translate
19
7
 
20
8
  export default function DataSelect (props) {
21
9
  const {
22
10
  dataSyncSelected
23
11
  } = props
24
- function onChange (e) {
25
- const key = e.target['data-key']
12
+ function onChange (evt) {
13
+ const key = evt.target['data-key']
26
14
  window.store.toggleDataSyncSelected(key)
27
15
  }
28
16
  return (
@@ -31,7 +19,7 @@ export default function DataSelect (props) {
31
19
  Object.keys(syncDataMaps)
32
20
  .map(d => {
33
21
  const checked = dataSyncSelected.includes(d)
34
- const title = translateMap[d](d)
22
+ const title = e(d)
35
23
  const boxProps = {
36
24
  checked,
37
25
  onChange,
@@ -16,11 +16,7 @@ import './sync.styl'
16
16
  import HelpIcon from '../common/help-icon'
17
17
 
18
18
  const FormItem = Form.Item
19
- const { prefix } = window
20
- const e = prefix('form')
21
- const ss = prefix('settingSync')
22
- const s = prefix('setting')
23
- const sh = prefix('ssh')
19
+ const e = window.translate
24
20
 
25
21
  export default function SyncForm (props) {
26
22
  const [form] = Form.useForm()
@@ -154,7 +150,7 @@ export default function SyncForm (props) {
154
150
  : 'gist ID'
155
151
  const tokenLabel = createLabel('token', desc)
156
152
  const gistLabel = createLabel('gist', idDesc)
157
- const syncPasswordName = s('encrypt') + ' ' + e('password')
153
+ const syncPasswordName = e('encrypt') + ' ' + e('password')
158
154
  const syncPasswordLabel = createLabel(syncPasswordName, '')
159
155
  return (
160
156
  <Form
@@ -207,7 +203,7 @@ export default function SyncForm (props) {
207
203
  </FormItem>
208
204
  {/* <FormItem
209
205
  {...formItemLayout}
210
- label={ss('autoSync')}
206
+ label={e('autoSync')}
211
207
  >
212
208
  <Switch
213
209
  checked={autoSync}
@@ -231,14 +227,14 @@ export default function SyncForm (props) {
231
227
  className='mg1r'
232
228
  loading={isSyncingSetting}
233
229
  icon='swap'
234
- >{ss('sync')}</Button> */}
230
+ >{e('sync')}</Button> */}
235
231
  <Button
236
232
  type='dashed'
237
233
  onClick={upload}
238
234
  disabled={disabled()}
239
235
  className='mg1r mg1b'
240
236
  icon={<ArrowUpOutlined />}
241
- >{ss('uploadSettings')}
237
+ >{e('uploadSettings')}
242
238
  </Button>
243
239
  <Button
244
240
  type='dashed'
@@ -246,7 +242,7 @@ export default function SyncForm (props) {
246
242
  disabled={disabled()}
247
243
  className='mg1r mg1b sync-btn-down'
248
244
  icon={<ArrowDownOutlined />}
249
- >{ss('downloadSettings')}
245
+ >{e('downloadSettings')}
250
246
  </Button>
251
247
  <Button
252
248
  type='dashed'
@@ -254,11 +250,11 @@ export default function SyncForm (props) {
254
250
  disabled={disabled()}
255
251
  className='mg1r mg1b sync-btn-clear'
256
252
  icon={<ClearOutlined />}
257
- >{sh('clear')}
253
+ >{e('clear')}
258
254
  </Button>
259
255
  </p>
260
256
  <p>
261
- {ss('lastSyncTime')}: {timeFormatted}
257
+ {e('lastSyncTime')}: {timeFormatted}
262
258
  </p>
263
259
  <p>
264
260
  {renderGistUrl()}
@@ -16,8 +16,7 @@ import {
16
16
  import classnames from 'classnames'
17
17
  import AddrBookmark from './address-bookmark'
18
18
 
19
- const { prefix } = window
20
- const e = prefix('sftp')
19
+ const e = window.translate
21
20
 
22
21
  function renderAddonBefore (props, realPath) {
23
22
  const {
@@ -14,8 +14,7 @@ import {
14
14
  } from '../../common/constants'
15
15
  import postMessage from '../../common/post-msg'
16
16
 
17
- const { prefix } = window
18
- const e = prefix('sftp')
17
+ const e = window.translate
19
18
 
20
19
  function formatTimeAuto (strOrDigit) {
21
20
  if (isString(strOrDigit)) {
@@ -36,9 +36,7 @@ import { filesize } from 'filesize'
36
36
  import { createTransferProps } from './transfer-common'
37
37
  import generate from '../../common/uid'
38
38
 
39
- const { prefix } = window
40
- const e = prefix('sftp')
41
- const m = prefix('menu')
39
+ const e = window.translate
42
40
 
43
41
  const computePos = (e) => {
44
42
  return {
@@ -945,7 +943,7 @@ export default class FileSection extends React.Component {
945
943
  const shouldShowSelectedMenu = id &&
946
944
  len > 1 &&
947
945
  some(selectedFiles, d => d.id === id)
948
- const delTxt = shouldShowSelectedMenu ? `${e('deleteAll')}(${len})` : m('del')
946
+ const delTxt = shouldShowSelectedMenu ? `${e('deleteAll')}(${len})` : e('del')
949
947
  const canPaste = hasFileInClipboardText()
950
948
  const showEdit = !isDirectory && id &&
951
949
  size < maxEditFileSize
@@ -1018,20 +1016,20 @@ export default class FileSection extends React.Component {
1018
1016
  res.push({
1019
1017
  func: 'onCopy',
1020
1018
  icon: 'CopyOutlined',
1021
- text: m('copy'),
1019
+ text: e('copy'),
1022
1020
  subText: `${ctrlOrCmd}+c`
1023
1021
  })
1024
1022
  res.push({
1025
1023
  func: 'onCut',
1026
1024
  icon: 'FileExcelOutlined',
1027
- text: m('cut'),
1025
+ text: e('cut'),
1028
1026
  subText: `${ctrlOrCmd}+x`
1029
1027
  })
1030
1028
  }
1031
1029
  res.push({
1032
1030
  func: 'onPaste',
1033
1031
  icon: 'CopyOutlined',
1034
- text: m('paste'),
1032
+ text: e('paste'),
1035
1033
  disabled: !canPaste,
1036
1034
  subText: `${ctrlOrCmd}+v`
1037
1035
  })
@@ -1044,7 +1042,7 @@ export default class FileSection extends React.Component {
1044
1042
  res.push({
1045
1043
  func: 'onCopyPath',
1046
1044
  icon: 'CopyOutlined',
1047
- text: m('copyFilePath')
1045
+ text: e('copyFilePath')
1048
1046
  })
1049
1047
  }
1050
1048
  if (enableSsh !== false || isLocal) {
@@ -13,8 +13,7 @@ import renderPermission from './permission-render'
13
13
  import postMessage from '../../common/post-msg'
14
14
  import FileIcon from './file-icon'
15
15
 
16
- const { prefix } = window
17
- const e = prefix('sftp')
16
+ const e = window.translate
18
17
  const formatTime = time
19
18
 
20
19
  export default class FileMode extends React.PureComponent {