@@ -20,16 +20,19 @@ import LangSelect from '@/components/common/header/LangSelect.vue'
20
20
21
21
const sidebarMenus = [
22
22
{
23
+ i18nLabel : 'editor.sidebar.components' ,
23
24
label : '组件列表' ,
24
25
value : 'pluginList' ,
25
26
antIcon : 'bars'
26
27
} ,
27
28
{
29
+ i18nLabel : 'editor.sidebar.pages' ,
28
30
label : '页面管理' ,
29
31
value : 'pageManagement' ,
30
32
antIcon : 'snippets'
31
33
} ,
32
34
{
35
+ i18nLabel : 'editor.sidebar.templates' ,
33
36
label : '免费模板' ,
34
37
value : 'freeTemplate' ,
35
38
antIcon : 'appstore'
@@ -38,43 +41,50 @@ const sidebarMenus = [
38
41
39
42
const fixedTools = [
40
43
{
44
+ i18nTooltip : 'editor.fixedTool.undo' ,
41
45
'tooltip' : '撤消' , // TODO 支持快捷键
42
46
'text' : '撤消' ,
43
47
'icon' : 'mail-reply' ,
44
48
'action' : ( ) => undoRedoHistory . undo ( )
45
49
} ,
46
50
{
51
+ i18nTooltip : 'editor.fixedTool.redo' ,
47
52
'tooltip' : '恢复' ,
48
53
'text' : '恢复' ,
49
54
'icon' : 'mail-forward' ,
50
55
'action' : ( ) => undoRedoHistory . redo ( )
51
56
} ,
52
57
{
58
+ i18nTooltip : 'editor.fixedTool.preview' ,
53
59
'tooltip' : '刷新预览' ,
54
60
'text' : '刷新预览' ,
55
61
'icon' : 'eye' ,
56
62
'action' : function ( ) { this . previewVisible = true }
57
63
} ,
58
64
{
65
+ i18nTooltip : 'editor.fixedTool.copyCurrentPage' ,
59
66
'tooltip' : '复制当前页' ,
60
67
'text' : '复制当前页' ,
61
68
'icon' : 'copy' ,
62
69
'action' : function ( ) { this . pageManager ( { type : 'copy' } ) }
63
70
} ,
64
71
{
72
+ i18nTooltip : 'editor.fixedTool.importPSD' ,
65
73
'tooltip' : '导入PSD' ,
66
74
'text' : 'Ps' ,
67
75
'icon' : '' ,
68
76
'action' : '' ,
69
77
'disabled' : true
70
78
} ,
71
79
{
80
+ i18nTooltip : 'editor.fixedTool.zoomOut' ,
72
81
'tooltip' : '放大画布' ,
73
82
'text' : '放大画布' ,
74
83
'icon' : 'plus' ,
75
84
'action' : function ( ) { this . scaleRate += 0.25 }
76
85
} ,
77
86
{
87
+ i18nTooltip : 'editor.fixedTool.zoomIn' ,
78
88
'tooltip' : '缩小画布' ,
79
89
'text' : '缩小画布' ,
80
90
'icon' : 'minus' ,
@@ -139,15 +149,15 @@ export default {
139
149
return (
140
150
this . pages . map ( ( page , index ) => (
141
151
< span style = { { display : 'flex' , justifyContent : 'space-between' , padding : '12px 0' } } >
142
- < span > 第{ index + 1 } 页</ span >
152
+ { /* #!en: Page<Index> */ }
153
+ { /* #!zh: 第<Index>页面 */ }
154
+ < span > { this . $t ( 'editor.pageManager.title' , { index } ) } </ span >
143
155
< a-dropdown trigger = { [ 'hover' ] } placement = 'bottomCenter' >
144
- < a class = "ant-dropdown-link" href = "#" >
145
- < a-icon type = "down" />
146
- </ a >
156
+ < a class = "ant-dropdown-link" href = "#" > < a-icon type = "down" /> </ a >
147
157
< a-menu slot = "overlay" onClick = { ( { key } ) => { this . pageManager ( { type : key } ) } } >
148
- < a-menu-item key = "add" > < a-icon type = "user" /> 新增页面 </ a-menu-item >
149
- < a-menu-item key = "copy" > < a-icon type = "user" /> 复制页面 </ a-menu-item >
150
- < a-menu-item key = "delete" > < a-icon type = "user" /> 删除页面 </ a-menu-item >
158
+ < a-menu-item key = "add" > < a-icon type = "user" /> { this . $t ( 'editor.pageManager.actions.add' ) } </ a-menu-item >
159
+ < a-menu-item key = "copy" > < a-icon type = "user" /> { this . $t ( 'editor.pageManager.actions.copy' ) } </ a-menu-item >
160
+ < a-menu-item key = "delete" > < a-icon type = "user" /> { this . $t ( 'editor.pageManager.actions.delete' ) } </ a-menu-item >
151
161
</ a-menu >
152
162
</ a-dropdown >
153
163
</ span >
@@ -163,19 +173,22 @@ export default {
163
173
< a-layout id = "luban-editor-layout" style = { { height : '100vh' } } >
164
174
< a-layout-header class = "header" >
165
175
< LogoOfHeader />
176
+ < LangSelect style = "float: right;cursor: pointer;" />
166
177
{ /* TODO we can show the plugins shortcuts here */ }
167
178
< a-menu
168
179
theme = "dark"
169
180
mode = "horizontal"
170
181
defaultSelectedKeys = { [ '2' ] }
171
182
style = { { lineHeight : '64px' , float : 'right' , background : 'transparent' } }
172
183
>
173
- < a-menu-item key = "1" class = "transparent-bg" > < a-button type = "primary" size = "small" onClick = { ( ) => { this . previewVisible = true } } > 预览</ a-button > </ a-menu-item >
174
- < a-menu-item key = "2" class = "transparent-bg" > < a-button size = "small" onClick = { ( ) => this . saveWork ( { isSaveCover : true } ) } loading = { this . saveWork_loading || this . uploadWorkCover_loading } > 保存</ a-button > </ a-menu-item >
184
+ { /* 保存、预览、发布、设置为模板 */ }
185
+ < a-menu-item key = "1" class = "transparent-bg" > < a-button type = "primary" size = "small" onClick = { ( ) => { this . previewVisible = true } } > { this . $t ( 'editor.header.preview' ) } </ a-button > </ a-menu-item >
186
+ < a-menu-item key = "2" class = "transparent-bg" > < a-button size = "small" onClick = { ( ) => this . saveWork ( { isSaveCover : true } ) } loading = { this . saveWork_loading || this . uploadWorkCover_loading } > { this . $t ( 'editor.header.save' ) } </ a-button > </ a-menu-item >
175
187
{ /* <a-menu-item key="3" class="transparent-bg"><a-button size="small">发布</a-button></a-menu-item> */ }
176
188
< a-menu-item key = "3" class = "transparent-bg" >
177
189
< a-dropdown-button onClick = { ( ) => { } } size = "small" >
178
- 发布
190
+ { /* 发布 */ }
191
+ { this . $t ( 'editor.header.publish' ) }
179
192
< a-menu slot = "overlay" onClick = { ( { key } ) => {
180
193
switch ( key ) {
181
194
case 'setAsTemplate' :
@@ -187,7 +200,8 @@ export default {
187
200
} } >
188
201
< a-menu-item key = "setAsTemplate" >
189
202
< a-spin spinning = { this . setWorkAsTemplate_loading } size = "small" >
190
- < a-icon type = "cloud-upload" /> 设置为模板
203
+ { /* 设置为模板 */ }
204
+ < a-icon type = "cloud-upload" /> { this . $t ( 'editor.header.setAsTemplate' ) }
191
205
</ a-spin >
192
206
</ a-menu-item >
193
207
{ /* <a-menu-item key="2"><a-icon type="user" />2nd menu item</a-menu-item> */ }
@@ -197,7 +211,6 @@ export default {
197
211
</ a-menu-item >
198
212
</ a-menu >
199
213
< ExternalLinksOfHeader />
200
- < LangSelect />
201
214
</ a-layout-header >
202
215
< a-layout >
203
216
< a-layout-sider width = "160" style = "background: #fff" collapsed >
@@ -211,7 +224,8 @@ export default {
211
224
sidebarMenus . map ( menu => (
212
225
< a-menu-item key = { menu . value } >
213
226
< a-icon type = { menu . antIcon } />
214
- < span > { menu . label } </ span >
227
+ { /* <span>{menu.label}</span> */ }
228
+ < span > { this . $t ( menu . i18nLabel ) } </ span >
215
229
</ a-menu-item >
216
230
) )
217
231
}
@@ -234,8 +248,9 @@ export default {
234
248
}
235
249
} }
236
250
>
237
- < a-radio-button label = { false } value = { false } > 编辑模式</ a-radio-button >
238
- < a-radio-button label = { true } value = { true } > 预览模式</ a-radio-button >
251
+ { /* 编辑模式、预览模式 */ }
252
+ < a-radio-button label = { false } value = { false } > { this . $t ( 'editor.centerPanel.mode.edit' ) } </ a-radio-button >
253
+ < a-radio-button label = { true } value = { true } > { this . $t ( 'editor.centerPanel.mode.preview' ) } </ a-radio-button >
239
254
</ a-radio-group >
240
255
</ div >
241
256
< div class = 'canvas-wrapper' style = { { transform : `scale(${ this . scaleRate } )` } } >
@@ -256,7 +271,8 @@ export default {
256
271
< a-button-group style = { { display : 'flex' , flexDirection : 'column' } } >
257
272
{
258
273
fixedTools . map ( tool => (
259
- < a-tooltip effect = "dark" placement = "left" title = { tool . tooltip } >
274
+ // <a-tooltip effect="dark" placement="left" title={tool.tooltip}>
275
+ < a-tooltip effect = "dark" placement = "left" title = { this . $t ( tool . i18nTooltip ) } >
260
276
< a-button block class = "transparent-bg" type = "link" size = "small" style = { { height : '40px' , color : '#000' } } onClick = { ( ) => tool . action && tool . action . call ( this ) } disabled = { ! ! tool . disabled } >
261
277
{ tool . icon ? < i class = { [ 'shortcut-icon' , 'fa' , `fa-${ tool . icon } ` ] } aria-hidden = 'true' /> : tool . text }
262
278
</ a-button >
@@ -278,17 +294,10 @@ export default {
278
294
ElementUI:label
279
295
Ant Design Vue:tab
280
296
*/ }
281
- < a-tab-pane key = "属性" >
282
- < span slot = "tab" >
283
- < a-icon type = "apple" />
284
- 属性
285
- </ span >
286
- { /* { this.renderPropsEditorPanel(h) } */ }
287
- < RenderPropsEditor />
288
- </ a-tab-pane >
289
- < a-tab-pane label = "动画" key = '动画' tab = '动画' > < RenderAnimationEditor /> </ a-tab-pane >
290
- < a-tab-pane label = "动作" key = '动作' tab = '动作' > { this . activeTabKey === '动作' } { this . activeTabKey === '动作' && < RenderActoionEditor /> } </ a-tab-pane >
291
- < a-tab-pane label = "脚本" key = '脚本' tab = '脚本' > < RenderScriptEditor /> </ a-tab-pane >
297
+ < a-tab-pane key = "属性" > < span slot = "tab" > < a-icon type = "apple" /> { this . $t ( 'editor.editPanel.tab.prop' ) } </ span > < RenderPropsEditor /> </ a-tab-pane >
298
+ < a-tab-pane label = "动画" key = '动画' tab = { this . $t ( 'editor.editPanel.tab.animation' ) } > < RenderAnimationEditor /> </ a-tab-pane >
299
+ < a-tab-pane label = "动作" key = '动作' tab = { this . $t ( 'editor.editPanel.tab.action' ) } > { this . activeTabKey === '动作' && < RenderActoionEditor /> } </ a-tab-pane >
300
+ < a-tab-pane label = "脚本" key = '脚本' tab = { this . $t ( 'editor.editPanel.tab.script' ) } > < RenderScriptEditor /> </ a-tab-pane >
292
301
</ a-tabs >
293
302
</ a-layout-sider >
294
303
0 commit comments