@seafile/sdoc-editor 2.0.23 → 2.0.24-alph-0.0.1
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.
- package/dist/api/seafile-api.js +4 -1
- package/dist/basic-sdk/extension/plugins/ai/ai-module/index.js +47 -25
- package/dist/basic-sdk/extension/plugins/ai/ai-module/style.css +12 -0
- package/dist/basic-sdk/extension/plugins/ai/constants/index.js +3 -1
- package/dist/context.js +2 -2
- package/package.json +1 -1
- package/public/locales/cs/sdoc-editor.json +7 -1
- package/public/locales/de/sdoc-editor.json +66 -60
- package/public/locales/en/sdoc-editor.json +1 -1
- package/public/locales/es/sdoc-editor.json +7 -1
- package/public/locales/es_AR/sdoc-editor.json +7 -1
- package/public/locales/es_MX/sdoc-editor.json +7 -1
- package/public/locales/fr/sdoc-editor.json +240 -234
- package/public/locales/it/sdoc-editor.json +7 -1
- package/public/locales/ru/sdoc-editor.json +8 -2
- package/public/locales/zh_CN/sdoc-editor.json +7 -2
package/dist/api/seafile-api.js
CHANGED
|
@@ -205,11 +205,14 @@ class SeafileAPI {
|
|
|
205
205
|
form.append('file_uuid', docUuid);
|
|
206
206
|
return this.req.post(url, form);
|
|
207
207
|
}
|
|
208
|
-
writingAssistant(docUuid, text, type) {
|
|
208
|
+
writingAssistant(docUuid, text, type, custom_prompt) {
|
|
209
209
|
const url = '/api/v2.1/ai/writing-assistant/';
|
|
210
210
|
let form = new FormData();
|
|
211
211
|
form.append('text', text);
|
|
212
212
|
form.append('writing_type', type);
|
|
213
|
+
if (custom_prompt) {
|
|
214
|
+
form.append('custom_prompt', custom_prompt);
|
|
215
|
+
}
|
|
213
216
|
form.append('file_uuid', docUuid);
|
|
214
217
|
return this.req.post(url, form);
|
|
215
218
|
}
|
|
@@ -40,6 +40,7 @@ function AIModule(_ref) {
|
|
|
40
40
|
const [opType, setOpType] = (0, _react.useState)('');
|
|
41
41
|
const [selectedValue, setSelectedValue] = (0, _react.useState)('');
|
|
42
42
|
const [searchValue, setSearchValue] = (0, _react.useState)('');
|
|
43
|
+
const [oldSearchValue, setOldSearchValue] = (0, _react.useState)('');
|
|
43
44
|
const [isGenerating, setIsGenerating] = (0, _react.useState)(false);
|
|
44
45
|
const [searchResult, setSearchResult] = (0, _react.useState)(null);
|
|
45
46
|
const [currentLang, setCurrentLang] = (0, _react.useState)('en');
|
|
@@ -160,13 +161,10 @@ function AIModule(_ref) {
|
|
|
160
161
|
}, [onDocumentClick]);
|
|
161
162
|
const onScroll = (0, _react.useCallback)(event => {
|
|
162
163
|
if (!element) {
|
|
163
|
-
console.log(selectDom);
|
|
164
164
|
const newRect = selectDom.getBoundingClientRect();
|
|
165
165
|
const aboveNode = (0, _core.getAboveBlockNode)(editor);
|
|
166
166
|
const slateDom = _slateReact.ReactEditor.toDOMNode(editor, aboveNode[0]);
|
|
167
167
|
const slateRect = slateDom.getBoundingClientRect();
|
|
168
|
-
console.log(newRect);
|
|
169
|
-
console.log(slateRect);
|
|
170
168
|
const el = aiRef.current;
|
|
171
169
|
el.style.top = `${newRect.bottom + 8}px`; // top = Current top + Element height
|
|
172
170
|
el.style.left = `${slateRect.left}px`;
|
|
@@ -203,20 +201,25 @@ function AIModule(_ref) {
|
|
|
203
201
|
if (!searchValue) return;
|
|
204
202
|
setOpType(_constants.OPERATION_TYPES.DEFAULT);
|
|
205
203
|
setIsGenerating(true);
|
|
206
|
-
const defaultContent =
|
|
207
|
-
|
|
204
|
+
const defaultContent = selectedValue;
|
|
205
|
+
const custom_prompt = searchValue;
|
|
206
|
+
if (!custom_prompt) {
|
|
208
207
|
_toast.default.danger(t('Processing_content_cannot_be_empty'));
|
|
209
208
|
return;
|
|
210
209
|
}
|
|
211
|
-
_context.default.writingAssistant(defaultContent, 'ask').then(res => {
|
|
210
|
+
_context.default.writingAssistant(defaultContent, 'ask', custom_prompt).then(res => {
|
|
212
211
|
const {
|
|
213
212
|
content
|
|
214
213
|
} = res.data;
|
|
215
214
|
setSearchResult(content);
|
|
216
215
|
setIsGenerating(false);
|
|
216
|
+
setSearchValue('');
|
|
217
|
+
setOldSearchValue(searchValue);
|
|
217
218
|
}).catch(err => {
|
|
218
219
|
setIsGenerating(false);
|
|
219
220
|
_toast.default.danger('AI_error_message');
|
|
221
|
+
setSearchValue('');
|
|
222
|
+
setOldSearchValue(searchValue);
|
|
220
223
|
});
|
|
221
224
|
}, [searchValue, selectedValue, t]);
|
|
222
225
|
const onKeyDown = (0, _react.useCallback)(event => {
|
|
@@ -233,7 +236,7 @@ function AIModule(_ref) {
|
|
|
233
236
|
const onContinuationClick = (0, _react.useCallback)(() => {
|
|
234
237
|
setOpType(_constants.OPERATION_TYPES.CONTINUATION);
|
|
235
238
|
setIsGenerating(true);
|
|
236
|
-
const defaultContent =
|
|
239
|
+
const defaultContent = selectedValue;
|
|
237
240
|
if (!defaultContent) {
|
|
238
241
|
_toast.default.danger(t('Processing_content_cannot_be_empty'));
|
|
239
242
|
return;
|
|
@@ -248,11 +251,11 @@ function AIModule(_ref) {
|
|
|
248
251
|
setIsGenerating(false);
|
|
249
252
|
_toast.default.danger('AI_error_message');
|
|
250
253
|
});
|
|
251
|
-
}, [
|
|
254
|
+
}, [selectedValue, t]);
|
|
252
255
|
const onMoreDetailsClick = (0, _react.useCallback)(() => {
|
|
253
256
|
setOpType(_constants.OPERATION_TYPES.MORE_DETAILS);
|
|
254
257
|
setIsGenerating(true);
|
|
255
|
-
const defaultContent =
|
|
258
|
+
const defaultContent = selectedValue;
|
|
256
259
|
if (!defaultContent) {
|
|
257
260
|
_toast.default.danger(t('Processing_content_cannot_be_empty'));
|
|
258
261
|
return;
|
|
@@ -267,11 +270,11 @@ function AIModule(_ref) {
|
|
|
267
270
|
setIsGenerating(false);
|
|
268
271
|
_toast.default.danger('AI_error_message');
|
|
269
272
|
});
|
|
270
|
-
}, [
|
|
273
|
+
}, [selectedValue, t]);
|
|
271
274
|
const onMoreConciseClick = (0, _react.useCallback)(() => {
|
|
272
275
|
setOpType(_constants.OPERATION_TYPES.MORE_CONCISE);
|
|
273
276
|
setIsGenerating(true);
|
|
274
|
-
const defaultContent =
|
|
277
|
+
const defaultContent = selectedValue;
|
|
275
278
|
if (!defaultContent) {
|
|
276
279
|
_toast.default.danger(t('Processing_content_cannot_be_empty'));
|
|
277
280
|
return;
|
|
@@ -286,11 +289,11 @@ function AIModule(_ref) {
|
|
|
286
289
|
setIsGenerating(false);
|
|
287
290
|
_toast.default.danger('AI_error_message');
|
|
288
291
|
});
|
|
289
|
-
}, [
|
|
292
|
+
}, [selectedValue, t]);
|
|
290
293
|
const onMoreVividClick = (0, _react.useCallback)(() => {
|
|
291
294
|
setOpType(_constants.OPERATION_TYPES.MORE_VIVID);
|
|
292
295
|
setIsGenerating(true);
|
|
293
|
-
const defaultContent =
|
|
296
|
+
const defaultContent = selectedValue;
|
|
294
297
|
if (!defaultContent) {
|
|
295
298
|
_toast.default.danger(t('Processing_content_cannot_be_empty'));
|
|
296
299
|
return;
|
|
@@ -305,9 +308,9 @@ function AIModule(_ref) {
|
|
|
305
308
|
setIsGenerating(false);
|
|
306
309
|
_toast.default.danger('Translation_error_message');
|
|
307
310
|
});
|
|
308
|
-
}, [
|
|
311
|
+
}, [selectedValue, t]);
|
|
309
312
|
const onTranslateClick = (0, _react.useCallback)(lang => {
|
|
310
|
-
const translateValue =
|
|
313
|
+
const translateValue = selectedValue;
|
|
311
314
|
if (!translateValue) {
|
|
312
315
|
_toast.default.warning(t('The_translation_content_cannot_be_empty'));
|
|
313
316
|
return;
|
|
@@ -326,7 +329,7 @@ function AIModule(_ref) {
|
|
|
326
329
|
setIsGenerating(false);
|
|
327
330
|
_toast.default.danger('Translation_error_message');
|
|
328
331
|
});
|
|
329
|
-
}, [currentLang,
|
|
332
|
+
}, [currentLang, selectedValue, t]);
|
|
330
333
|
const focusToEndPath = (0, _react.useCallback)(path => {
|
|
331
334
|
setTimeout(() => {
|
|
332
335
|
const endOfLastNodePoint = _slate.Editor.end(editor, path);
|
|
@@ -349,15 +352,24 @@ function AIModule(_ref) {
|
|
|
349
352
|
const path = _slateReact.ReactEditor.findPath(editor, element);
|
|
350
353
|
nextPath = _slate.Path.next(path);
|
|
351
354
|
}
|
|
355
|
+
|
|
356
|
+
// Prevent '\\n' from being pre-wrapped
|
|
357
|
+
const tempResult = searchResult.replace(/\\n/g, '\v');
|
|
358
|
+
const paragraphs = tempResult.split('\n').map(line => line.replace(/\v/g, '\\n')).filter(line => line.trim() !== '');
|
|
352
359
|
const p = (0, _core.generateEmptyElement)(_constants2.PARAGRAPH);
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
360
|
+
paragraphs.forEach((line, index) => {
|
|
361
|
+
p.children[0].text = line;
|
|
362
|
+
_slate.Transforms.insertNodes(editor, p, {
|
|
363
|
+
at: nextPath
|
|
364
|
+
});
|
|
365
|
+
if (index < paragraphs.length - 1) {
|
|
366
|
+
nextPath = _slate.Path.next(nextPath);
|
|
367
|
+
}
|
|
356
368
|
});
|
|
357
369
|
onCloseClick();
|
|
358
370
|
focusToEndPath(nextPath);
|
|
359
371
|
}, [editor, element, focusToEndPath, onCloseClick, searchResult]);
|
|
360
|
-
const onTryAgainClick = (0, _react.useCallback)(
|
|
372
|
+
const onTryAgainClick = (0, _react.useCallback)(event => {
|
|
361
373
|
switch (opType) {
|
|
362
374
|
case _constants.OPERATION_TYPES.TRANSLATE:
|
|
363
375
|
onTranslateClick();
|
|
@@ -374,10 +386,17 @@ function AIModule(_ref) {
|
|
|
374
386
|
case _constants.OPERATION_TYPES.CONTINUATION:
|
|
375
387
|
onContinuationClick();
|
|
376
388
|
return;
|
|
389
|
+
case _constants.OPERATION_TYPES.DEFAULT:
|
|
390
|
+
event.stopPropagation();
|
|
391
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
392
|
+
setSearchValue(oldSearchValue);
|
|
393
|
+
setSearchResult('');
|
|
394
|
+
setOldSearchValue('');
|
|
395
|
+
return;
|
|
377
396
|
default:
|
|
378
397
|
return;
|
|
379
398
|
}
|
|
380
|
-
}, [onContinuationClick, onMoreConciseClick, onMoreDetailsClick, onMoreVividClick, onTranslateClick, opType]);
|
|
399
|
+
}, [oldSearchValue, onContinuationClick, onMoreConciseClick, onMoreDetailsClick, onMoreVividClick, onTranslateClick, opType]);
|
|
381
400
|
const onReplaceClick = (0, _react.useCallback)(() => {
|
|
382
401
|
if (!element) {
|
|
383
402
|
editor.deleteFragment();
|
|
@@ -410,7 +429,8 @@ function AIModule(_ref) {
|
|
|
410
429
|
hasCloseButton: false,
|
|
411
430
|
duration: 2
|
|
412
431
|
});
|
|
413
|
-
|
|
432
|
+
onCloseClick();
|
|
433
|
+
}, [onCloseClick, searchResult, t]);
|
|
414
434
|
const onDeprecationClick = (0, _react.useCallback)(() => {
|
|
415
435
|
onCloseClick();
|
|
416
436
|
}, [onCloseClick]);
|
|
@@ -446,7 +466,7 @@ function AIModule(_ref) {
|
|
|
446
466
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
447
467
|
className: `sdocfont sdoc-send-arrow ${!searchValue ? 'disable' : ''}`,
|
|
448
468
|
onClick: onEnter
|
|
449
|
-
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
469
|
+
}))), !searchValue && /*#__PURE__*/_react.default.createElement("div", {
|
|
450
470
|
className: "sdoc-ai-operations sdoc-dropdown-menu"
|
|
451
471
|
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
452
472
|
className: "op-type"
|
|
@@ -483,7 +503,9 @@ function AIModule(_ref) {
|
|
|
483
503
|
className: "sdoc-ai-result"
|
|
484
504
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
485
505
|
className: "sdoc-ai-result-content"
|
|
486
|
-
}, isGenerating ? t('Processing_message') : searchResult)
|
|
506
|
+
}, isGenerating ? t('Processing_message') : searchResult.split('\n').map((paragraph, index) => /*#__PURE__*/_react.default.createElement("p", {
|
|
507
|
+
key: index
|
|
508
|
+
}, paragraph)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
487
509
|
className: "sdoc-ai-search"
|
|
488
510
|
}, /*#__PURE__*/_react.default.createElement(_aiIcon.default, null), /*#__PURE__*/_react.default.createElement("input", {
|
|
489
511
|
placeholder: t('Ask_AI_anything'),
|
|
@@ -493,7 +515,7 @@ function AIModule(_ref) {
|
|
|
493
515
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
494
516
|
className: `sdocfont sdoc-send-arrow ${!searchValue ? 'disable' : ''}`,
|
|
495
517
|
onClick: onEnter
|
|
496
|
-
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
518
|
+
}))), !searchValue && /*#__PURE__*/_react.default.createElement("div", {
|
|
497
519
|
className: "sdoc-ai-operations sdoc-dropdown-menu"
|
|
498
520
|
}, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
|
|
499
521
|
menuConfig: _constants.OPERATION_MENUS_CONFIG.ADJUSTMENT,
|
|
@@ -83,6 +83,18 @@
|
|
|
83
83
|
pointer-events: all;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
.sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-content {
|
|
87
|
+
font-size: 11pt;
|
|
88
|
+
height: auto;
|
|
89
|
+
overflow-y: auto;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-content p {
|
|
93
|
+
line-height: 1.6;
|
|
94
|
+
padding: 5px 0;
|
|
95
|
+
margin-bottom: 0 !important;
|
|
96
|
+
}
|
|
97
|
+
|
|
86
98
|
.sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-header {
|
|
87
99
|
display: flex;
|
|
88
100
|
justify-content: space-between;
|
|
@@ -125,4 +125,6 @@ const LANG_MENU_CONFIG = exports.LANG_MENU_CONFIG = {
|
|
|
125
125
|
iconClass: 'sdocfont sdoc-ai-translate'
|
|
126
126
|
}
|
|
127
127
|
};
|
|
128
|
-
|
|
128
|
+
|
|
129
|
+
// 358 is default height of ai menu and 300 is max-height of shown result
|
|
130
|
+
const AI_MIN_HEIGHT = exports.AI_MIN_HEIGHT = 358 + 300;
|
package/dist/context.js
CHANGED
|
@@ -263,9 +263,9 @@ class Context {
|
|
|
263
263
|
const docUuid = this.getDocUuid();
|
|
264
264
|
return this.api.aiTranslate(docUuid, text, lang);
|
|
265
265
|
}
|
|
266
|
-
writingAssistant(text, type) {
|
|
266
|
+
writingAssistant(text, type, custom_prompt) {
|
|
267
267
|
const docUuid = this.getDocUuid();
|
|
268
|
-
return this.api.writingAssistant(docUuid, text, type);
|
|
268
|
+
return this.api.writingAssistant(docUuid, text, type, custom_prompt);
|
|
269
269
|
}
|
|
270
270
|
updateConfigUuid(docUuid) {
|
|
271
271
|
if (!this.config) return;
|
package/package.json
CHANGED
|
@@ -613,5 +613,11 @@
|
|
|
613
613
|
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more",
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
616
|
+
"Image_copy_error": "Image copy error",
|
|
617
|
+
"Image_is_uploading": "Image is uploading...",
|
|
618
|
+
"Select_at_least_one_row_record": "Select at least one row record",
|
|
619
|
+
"Selected_row_records_cannot_exceed_10_rows": "Selected row records cannot exceed 10 rows",
|
|
620
|
+
"Select_seatable_rows": "Select seatable rows",
|
|
621
|
+
"Add_rows_record": "Add rows record",
|
|
622
|
+
"Double_click_then_adjust_field_width": "Double click, then adjust field width"
|
|
617
623
|
}
|
|
@@ -66,15 +66,15 @@
|
|
|
66
66
|
"Password_again": "Passwort erneut eingeben",
|
|
67
67
|
"Add_auto_expiration": "Befristung hinzufügen",
|
|
68
68
|
"Days": "Tage",
|
|
69
|
-
"Please_enter_password": "
|
|
69
|
+
"Please_enter_password": "Geben Sie ein Passwort ein",
|
|
70
70
|
"Greater_than_or_equal_to": "Größer oder gleich",
|
|
71
71
|
"Less_than_or_equal_to": "Weniger oder gleich",
|
|
72
72
|
"Set_permission": "Berechtigung festlegen",
|
|
73
73
|
"Preview_and_download": "Vorschau und Herunterladen",
|
|
74
74
|
"Preview_only": "Nur Vorschau erlaubt",
|
|
75
|
-
"Please_enter_valid_days": "
|
|
76
|
-
"Please_enter_a_non-negative_integer": "
|
|
77
|
-
"Please_enter_days": "
|
|
75
|
+
"Please_enter_valid_days": "Geben Sie eine gültige Anzahl von Tagen ein",
|
|
76
|
+
"Please_enter_a_non-negative_integer": "Geben Sie eine Zahl größer oder gleich Null ein",
|
|
77
|
+
"Please_enter_days": "Geben Sie Tage ein",
|
|
78
78
|
"Password_is_too_short": "Das Passwort ist zu kurz",
|
|
79
79
|
"Passwords_do_not_match": "Passwörter stimmen nicht überein",
|
|
80
80
|
"Return_to_wiki_page": "Zurück zur Wiki-Seite",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"Add_link": "Link hinzufügen",
|
|
84
84
|
"File_history": "Dateiversionen",
|
|
85
85
|
"History_version": "Versionen",
|
|
86
|
-
"Back_to_viewer": "
|
|
86
|
+
"Back_to_viewer": "Zurück zur Vorschau",
|
|
87
87
|
"Link_title": "Linktext",
|
|
88
88
|
"Local_draft": "Lokaler Entwurf",
|
|
89
89
|
"Use_draft": "Entwurf verwenden",
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
"Server_is_disconnected_Reconnecting": "Der Server ist nicht verbunden. Verbindungsversuch läuft.",
|
|
248
248
|
"Server_is_reconnected": "Der Server ist neu verbunden.",
|
|
249
249
|
"Outline": "Gliederung",
|
|
250
|
-
"Headings_you_add_to_the_document_will_appear_here": "
|
|
250
|
+
"Headings_you_add_to_the_document_will_appear_here": "Überschriften im Dokument werden hier angezeigt",
|
|
251
251
|
"Open_parent_folder": "Übergeordneten Ordner öffnen",
|
|
252
252
|
"Redo": "Erneut ausführen",
|
|
253
253
|
"Undo": "Rückgängig machen",
|
|
@@ -267,21 +267,21 @@
|
|
|
267
267
|
"Unstarred": "Aus Favoriten entfernen",
|
|
268
268
|
"Star": "Favoriten hinzufügen",
|
|
269
269
|
"Unstar": "Aus Favoriten entfernen",
|
|
270
|
-
"Auto_wrap": "
|
|
270
|
+
"Auto_wrap": "Automatischer Zeilenumbruch",
|
|
271
271
|
"Add_comment": "Kommentar hinzufügen",
|
|
272
272
|
"Delete_comment": "Kommentar löschen",
|
|
273
273
|
"Delete_reply": "Antwort löschen",
|
|
274
274
|
"Are_you_sure_to_delete_this_comment": "Möchten Sie das Kommentar wirklich löschen?",
|
|
275
275
|
"Are_you_sure_to_delete_this_reply": "Möchten Sie die Antwort wirklich löschen?",
|
|
276
|
-
"Enter_comment_shift_enter_for_new_line_Enter_to_send": "Geben Sie ein Kommentar ein
|
|
277
|
-
"Enter_reply_shift_Enter_for_new_line_Enter_to_send": "Geben Sie eine Antwort ein
|
|
276
|
+
"Enter_comment_shift_enter_for_new_line_Enter_to_send": "Geben Sie ein Kommentar ein (Zeilenumbruch mit SHIFT + ENTER; Kommentar absenden mit ENTER)",
|
|
277
|
+
"Enter_reply_shift_Enter_for_new_line_Enter_to_send": "Geben Sie eine Antwort ein (Zeilenumbruch mit SHIFT + ENTER, Kommentar absenden mit ENTER)",
|
|
278
278
|
"Reopen_discussion": "Das Hinzufügen einer Antwort wird die Diskussion wieder öffnen.",
|
|
279
279
|
"Confirm": "Bestätigen",
|
|
280
280
|
"View_changes": "Änderungen ansehen",
|
|
281
281
|
"Revision": "Revision",
|
|
282
282
|
"Error": "Fehler",
|
|
283
|
-
"Start_revise": "
|
|
284
|
-
"Revise": "
|
|
283
|
+
"Start_revise": "Überarbeitung beginnen",
|
|
284
|
+
"Revise": "Überarbeiten",
|
|
285
285
|
"Failed_to_execute_operation_on_server": "Die Operation auf dem Server ist fehlgeschlagen: Die aktuelle Operation wurde zurückgezogen.",
|
|
286
286
|
"Start_revise_tip": "Erstellen Sie ein temporäres Dokument und modifizieren Sie es, mergen Sie es zurück nach der Durchsicht der Änderungen.",
|
|
287
287
|
"Load_doc_content_error": "Beim Laden des Dokumenteninhalts ist ein Fehler aufgetreten.",
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
"Standard_blue": "Standard blau",
|
|
332
332
|
"Standard_dark_blue": "Standard dunkelblau",
|
|
333
333
|
"Standard_purple": "Standard violett",
|
|
334
|
-
"Highlight_color": "
|
|
334
|
+
"Highlight_color": "Hervorheben",
|
|
335
335
|
"Font_color": "Schriftfarbe",
|
|
336
336
|
"Default": "Standard",
|
|
337
337
|
"No_revisions": "Keine Revisionen",
|
|
@@ -372,20 +372,20 @@
|
|
|
372
372
|
"No_changes": "Keine Änderungen",
|
|
373
373
|
"Title": "Titel",
|
|
374
374
|
"Subtitle": "Untertitel",
|
|
375
|
-
"Link_sdoc": "Link
|
|
376
|
-
"Link_file": "Link
|
|
375
|
+
"Link_sdoc": "Link zu SDOC-Dokument",
|
|
376
|
+
"Link_file": "Link zu Datei",
|
|
377
377
|
"Keep_my_modification": "Meine Änderungen behalten",
|
|
378
378
|
"Keep_other_modification": "Andere Änderungen behalten",
|
|
379
379
|
"Keep_both_modification": "Beide Änderungen behalten",
|
|
380
380
|
"Tip": "Hinweis",
|
|
381
|
-
"Rebase_delete_no_change_revision_tip": "Revision
|
|
381
|
+
"Rebase_delete_no_change_revision_tip": "Die Revision enthält keine Änderungen gegenüber dem Original. Wollen Sie die Revision löschen?",
|
|
382
382
|
"Has_been_replaced_tip": "Der Inhalt des Dokuments wurde ersetzt. Laden Sie die Seite neu.",
|
|
383
383
|
"Has_been_published_tip": "Die Revision wurde veröffentlicht.",
|
|
384
384
|
"Has_conflict_before_publish_tip": "Das Dokument enthält Konflikte. Lösen Sie diese vor der Veröffentlichung.",
|
|
385
385
|
"Merge_tip": "Das Dokument enthält Konflikte. Wollen Sie diese mergen?",
|
|
386
386
|
"Has_conflict_before_view_changes_tip": "Das Dokument enthält Konflikte. Lösen Sie diese vor der Ansicht der Änderungen.",
|
|
387
387
|
"Has_been_removed_tip": "Das Dokument wurde entfernt. Betrachten Sie ein anderes Dokument.",
|
|
388
|
-
"Checking": "
|
|
388
|
+
"Checking": "Überprüfung im Gang ...",
|
|
389
389
|
"Publishing": "Die Veröffentlchung ist im Gang ...",
|
|
390
390
|
"Inline": "Inline",
|
|
391
391
|
"Block": "Block",
|
|
@@ -407,7 +407,7 @@
|
|
|
407
407
|
"No_options_available": "Der Tag wurde nicht gefunden",
|
|
408
408
|
"Add_option": "Neues Tag erstellen",
|
|
409
409
|
"Find_an_option": "Tags suchen",
|
|
410
|
-
"Copy_link_of_section": "
|
|
410
|
+
"Copy_link_of_section": "Abschnittslink kopieren",
|
|
411
411
|
"revision": "Revision",
|
|
412
412
|
"xxx_added_a_new_comment": "{{author}} hat ein neues Kommentar hinzugefügt.",
|
|
413
413
|
"xxx_added_a_reply": "{{author}} hat eine Antwort hinzugefügt.",
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
"Table_template": "Tabellenvorlage",
|
|
416
416
|
"Jump_to_original_doc": "Zum Originaldokument springen",
|
|
417
417
|
"Freezed": "eingefrorne",
|
|
418
|
-
"Callout": "
|
|
418
|
+
"Callout": "Legende",
|
|
419
419
|
"The_current_location_does_not_support_pasting": "Der aktuelle Ort unterstützt das Einfügen nicht.",
|
|
420
420
|
"Please_enter": "Bitte eingeben",
|
|
421
421
|
"Combine_cell": "Zellen verbinden",
|
|
@@ -427,21 +427,21 @@
|
|
|
427
427
|
"My_modification": "Meine Änderungen",
|
|
428
428
|
"Document_history": "Dokumentenversionen",
|
|
429
429
|
"Freeze_document": "Dokument einfrieren",
|
|
430
|
-
"Document_frozen": "
|
|
431
|
-
"Unfreeze": "
|
|
430
|
+
"Document_frozen": "Das Dokument ist eingefroren.",
|
|
431
|
+
"Unfreeze": "Freigeben",
|
|
432
432
|
"Search_and_replace": "Suchen und Ersetzen",
|
|
433
433
|
"Search": "Suchen",
|
|
434
|
-
"Type_search_content": "
|
|
435
|
-
"Replace_as": "
|
|
436
|
-
"Type_replace_content": "
|
|
437
|
-
"Prevs": "
|
|
434
|
+
"Type_search_content": "Geben Sie den Suchbegriff ein",
|
|
435
|
+
"Replace_as": "Ersetzen mit",
|
|
436
|
+
"Type_replace_content": "Geben Sie den neuen Text ein",
|
|
437
|
+
"Prevs": "Vorherigen",
|
|
438
438
|
"Next": "Nächste Seite",
|
|
439
439
|
"Replace": "Ersetzen",
|
|
440
440
|
"Replace_all": "Alle ersetzen",
|
|
441
|
-
"Are_you_sure_to_replace_all_number_xxx_in_this_document_with_yyy": "
|
|
441
|
+
"Are_you_sure_to_replace_all_number_xxx_in_this_document_with_yyy": "Möchten Sie wirklich alle {{number}} '{{originalWord}}' in diesem Dokument durch '{{replacedWord}}' ersetzen?",
|
|
442
442
|
"Are_you_sure_to_clear_all_number_xxx_in_this_document": "Möchten Sie wirklich alle {{number}} '{{originalWord}}' in diesem Dokument löschen?",
|
|
443
443
|
"Search_not_found": "Nicht gefunden",
|
|
444
|
-
"Recent_visited": "
|
|
444
|
+
"Recent_visited": "Zuletzt besucht",
|
|
445
445
|
"The_document_does_not_exist": "Das Dokument existiert nicht.",
|
|
446
446
|
"Create_a_new_sdoc_file": "Neue SDOC-Datei erstellen",
|
|
447
447
|
"New_page": "Neue Seite",
|
|
@@ -456,15 +456,15 @@
|
|
|
456
456
|
"Print": "Drucken",
|
|
457
457
|
"Enter_more_character_start_search": "Geben Sie mehr ein, um die Suche zu starten",
|
|
458
458
|
"Create_file_name_sdoc": "Erstelle {{file_name_sdoc}}",
|
|
459
|
-
"Source_document_changed_tip": "
|
|
459
|
+
"Source_document_changed_tip": "Am Originaldokument wurden Änderungen durchgeführt. Wollen Sie diese Änderungen in der Revision zusammenführen?",
|
|
460
460
|
"Fit_table_to_page_width": "Tabelle auf Seitenbreite anpassen",
|
|
461
|
-
"Enter_text_or_press_forward_slash_to_insert_element": "Text eingeben oder drücken Sie '/', um ein Element einzufügen",
|
|
461
|
+
"Enter_text_or_press_forward_slash_to_insert_element": "Geben Sie Text eingeben oder drücken Sie '/', um ein Element einzufügen",
|
|
462
462
|
"Vertical_align": "Vertikale Ausrichtung",
|
|
463
463
|
"Horizontal_align": "Horizontale Ausrichtung",
|
|
464
464
|
"SeaTable_column": "SeaTable Spalte",
|
|
465
465
|
"SeaTable_table": "SeaTable Tabelle",
|
|
466
466
|
"And_x_more_records": "und {{count}} weitere Einträge",
|
|
467
|
-
"Print_limit_exceeded": "
|
|
467
|
+
"Print_limit_exceeded": "Das Drucklimit ist überschritten. Nur die ersten 200 Zeilen werden gedruckt.",
|
|
468
468
|
"Show_record_numbers": "Nummern der Einträge anzeigen",
|
|
469
469
|
"Alternate_color": "Alternativfarbe",
|
|
470
470
|
"Select_column_display_option_color_tip": "Farboption für Einfach- und Mehrfachauswahlen",
|
|
@@ -474,7 +474,7 @@
|
|
|
474
474
|
"1_hidden_column": "1 ausgeblendete Spalte",
|
|
475
475
|
"hidden_columns": "ausgeblendete Spalten",
|
|
476
476
|
"Search_column": "Spalte suchen",
|
|
477
|
-
"No_columns_available_to_be_hidden": "
|
|
477
|
+
"No_columns_available_to_be_hidden": "Es gibt keine Spalten, die ausgeblendet werden können.",
|
|
478
478
|
"Hide_all": "Alle ausblenden",
|
|
479
479
|
"Show_all": "Alle anzeigen",
|
|
480
480
|
"Sort": "Sortieren",
|
|
@@ -482,7 +482,7 @@
|
|
|
482
482
|
"Sorts": "Sortierungen",
|
|
483
483
|
"No_sorts": "Keine Sortierungen",
|
|
484
484
|
"Add_sort": "Sortierung hinzufügen",
|
|
485
|
-
"No_sort_added": "
|
|
485
|
+
"No_sort_added": "Keine Sortierung hinzugefügt",
|
|
486
486
|
"up": "Aufsteigend",
|
|
487
487
|
"down": "Absteigend",
|
|
488
488
|
"No_results": "Keine Ergebnisse",
|
|
@@ -500,7 +500,7 @@
|
|
|
500
500
|
"Add_a_creator": "Ersteller hinzufügen",
|
|
501
501
|
"Add_a_last_modifier": "Letzter Bearbeiter hinzufügen",
|
|
502
502
|
"Invalid_filter": "Ungültiger Filter",
|
|
503
|
-
"Department_single_select": "
|
|
503
|
+
"Department_single_select": "Bereichsauswahl",
|
|
504
504
|
"Search_department": "Bereich suchen",
|
|
505
505
|
"Select_department": "Bereich auswählen",
|
|
506
506
|
"No_departments_available": "Keine Bereiche verfügbar",
|
|
@@ -562,56 +562,62 @@
|
|
|
562
562
|
"the_past_year": "Letztes Jahr",
|
|
563
563
|
"the_next_numbers_of_days": "Innerhalb der nächsten X Tage",
|
|
564
564
|
"the_past_numbers_of_days": "Innerhalb der letzten x Tage",
|
|
565
|
-
"Double_click_to_enter_edit_mode_and_adjust_field_width" : "
|
|
566
|
-
"Enter_comment_Enter_for_new_line_shift_enter_to_send": "
|
|
565
|
+
"Double_click_to_enter_edit_mode_and_adjust_field_width" : "Klicken Sie doppelt, um in den Bearbeitungsmodus zu wechseln",
|
|
566
|
+
"Enter_comment_Enter_for_new_line_shift_enter_to_send": "Geben Sie ein Kommentar ein: ENTER für einen Zeilenumbruch; SHIFT + ENTER zum Absenden",
|
|
567
567
|
"Sub_table": "Tabelle",
|
|
568
|
-
"Search_action": "
|
|
569
|
-
"Comment_details": "
|
|
568
|
+
"Search_action": "Aktion suchen",
|
|
569
|
+
"Comment_details": "Kommentardetails",
|
|
570
570
|
"Two_column": "2 Spalten",
|
|
571
571
|
"Three_column": "3 Spalten",
|
|
572
572
|
"Four_column": "4 Spalten",
|
|
573
573
|
"Five_column": "5 Spalten",
|
|
574
|
-
"Full_width_mode": "
|
|
574
|
+
"Full_width_mode": "Ganze Breite nutzen",
|
|
575
575
|
"Video": "Video",
|
|
576
576
|
"Upload_local_video": "Lokales Video hochladen",
|
|
577
|
-
"The_current_version_does_not_support_>5MB_video_file": "
|
|
577
|
+
"The_current_version_does_not_support_>5MB_video_file": "Die aktuelle Version unterstützt keine Videodateien größer als 5MB.",
|
|
578
578
|
"Token_expired_Please_refresh_the_page": "Der Token ist abgelaufen. Laden Sie die Seite neu.",
|
|
579
|
-
"Link_to_page": "
|
|
579
|
+
"Link_to_page": "Mit Seite verlinken",
|
|
580
580
|
"No_page_results": "Keine Seitenergebnisse",
|
|
581
581
|
"Page": "Seite",
|
|
582
582
|
"Share_1": "Freigeben",
|
|
583
|
-
"Collect": "
|
|
584
|
-
"Collected": "
|
|
585
|
-
"Link_to_file": "
|
|
583
|
+
"Collect": "Sammeln",
|
|
584
|
+
"Collected": "Gesammelt",
|
|
585
|
+
"Link_to_file": "Mit Datei verlinken",
|
|
586
586
|
"Create_a_new_file": "Neue Datei erstellen",
|
|
587
587
|
"Suggestion": "Vorschlag",
|
|
588
|
-
"Continuation": "
|
|
588
|
+
"Continuation": "Fortsetzung",
|
|
589
589
|
"More_details": "Mehr Details",
|
|
590
|
-
"More_concise": "
|
|
591
|
-
"More_vivid": "
|
|
590
|
+
"More_concise": "Prägnanter",
|
|
591
|
+
"More_vivid": "Lebhafter",
|
|
592
592
|
"Translate": "Übersetzen",
|
|
593
|
-
"Adjustment": "
|
|
593
|
+
"Adjustment": "Anpassung",
|
|
594
594
|
"Try_again": "Erneut probieren",
|
|
595
595
|
"Deprecation": "Deprecation",
|
|
596
|
-
"Generated_content_x_words": "
|
|
597
|
-
"Ask_AI_anything": "
|
|
598
|
-
"Thinking": "
|
|
596
|
+
"Generated_content_x_words": "Der erstellte Inhalt hat {{count}} Wörter",
|
|
597
|
+
"Ask_AI_anything": "Fragen die KI alles ...",
|
|
598
|
+
"Thinking": "Im Gang ...",
|
|
599
599
|
"Translation_error_message": "Beim Übersetzen ist ein Fehler aufgetreten. Probieren Sie es erneut.",
|
|
600
|
-
"The_translation_content_cannot_be_empty": "
|
|
601
|
-
"Processing_message": "
|
|
602
|
-
"AI_tip_content": "
|
|
600
|
+
"The_translation_content_cannot_be_empty": "Der übersetzte Inhalt darf nicht leer sein.",
|
|
601
|
+
"Processing_message": "Die Bearbeitung ist im Gang ...",
|
|
602
|
+
"AI_tip_content": "Aktuellen Inhalt verwerfen?",
|
|
603
603
|
"Discard": "Verwerfen",
|
|
604
604
|
"English": "Englisch",
|
|
605
605
|
"Chinese": "Chinesisch",
|
|
606
606
|
"Ask_AI": "KI fragen",
|
|
607
607
|
"Enter_reply": "Antwort eingeben",
|
|
608
|
-
"Processing_content_cannot_be_empty": "
|
|
609
|
-
"AI_error_message": "
|
|
608
|
+
"Processing_content_cannot_be_empty": "Der bearbeitete Inhalt kann nicht leer sein.",
|
|
609
|
+
"AI_error_message": "Anfragefehler. Probieren Sie es erneut.",
|
|
610
610
|
"Add_video_link": "Videolink hinzufügen",
|
|
611
|
-
"Link_Seafile_video_file": "
|
|
612
|
-
"Select_video_file": "
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "
|
|
615
|
-
"And_select_insert_-_image_to_upload": "
|
|
616
|
-
"Image_copy_error": "
|
|
611
|
+
"Link_Seafile_video_file": "Video in Seafile verlinken",
|
|
612
|
+
"Select_video_file": "Videodatei auswählen",
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Unterstützt Youtube, Tencent, Bilibili und andere",
|
|
614
|
+
"Image_cannot_be_copied_Please_download_the_source_image": "Das Bild kann nicht kopiert werden. Laden Sie das Bild herunter.",
|
|
615
|
+
"And_select_insert_-_image_to_upload": "und wählen Sie 「insert」 - 「image」 für den Upload.",
|
|
616
|
+
"Image_copy_error": "Fehler beim Kopieren des Bildes",
|
|
617
|
+
"Image_is_uploading": "Das Bild wird hochgeladen ...",
|
|
618
|
+
"Select_at_least_one_row_record": "Wählen Sie mindestens einen Eintrag in der Zeile aus",
|
|
619
|
+
"Selected_row_records_cannot_exceed_10_rows": "Sie können höchstens zehn Einträge in einer Zeile auswählen",
|
|
620
|
+
"Select_seatable_rows": "Seatable-Zeilen auswählen",
|
|
621
|
+
"Add_rows_record": "Zeileneintrag hinzufügen",
|
|
622
|
+
"Double_click_then_adjust_field_width": "Klicken Sie doppelt, dann passen Sie die Breite des Felds an"
|
|
617
623
|
}
|
|
@@ -594,7 +594,7 @@
|
|
|
594
594
|
"Try_again": "Try again",
|
|
595
595
|
"Deprecation": "Deprecation",
|
|
596
596
|
"Generated_content_x_words": "Generated content {{count}} words",
|
|
597
|
-
"Ask_AI_anything": "
|
|
597
|
+
"Ask_AI_anything": "Please enter the command...",
|
|
598
598
|
"Thinking": "Thinking...",
|
|
599
599
|
"Translation_error_message": "Translation error, please try again.",
|
|
600
600
|
"The_translation_content_cannot_be_empty": "The translation content cannot be empty",
|
|
@@ -613,5 +613,11 @@
|
|
|
613
613
|
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more",
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
616
|
+
"Image_copy_error": "Image copy error",
|
|
617
|
+
"Image_is_uploading": "Image is uploading...",
|
|
618
|
+
"Select_at_least_one_row_record": "Select at least one row record",
|
|
619
|
+
"Selected_row_records_cannot_exceed_10_rows": "Selected row records cannot exceed 10 rows",
|
|
620
|
+
"Select_seatable_rows": "Select seatable rows",
|
|
621
|
+
"Add_rows_record": "Add rows record",
|
|
622
|
+
"Double_click_then_adjust_field_width": "Double click, then adjust field width"
|
|
617
623
|
}
|
|
@@ -613,5 +613,11 @@
|
|
|
613
613
|
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more",
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
616
|
+
"Image_copy_error": "Image copy error",
|
|
617
|
+
"Image_is_uploading": "Image is uploading...",
|
|
618
|
+
"Select_at_least_one_row_record": "Select at least one row record",
|
|
619
|
+
"Selected_row_records_cannot_exceed_10_rows": "Selected row records cannot exceed 10 rows",
|
|
620
|
+
"Select_seatable_rows": "Select seatable rows",
|
|
621
|
+
"Add_rows_record": "Add rows record",
|
|
622
|
+
"Double_click_then_adjust_field_width": "Double click, then adjust field width"
|
|
617
623
|
}
|
|
@@ -613,5 +613,11 @@
|
|
|
613
613
|
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more",
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
616
|
+
"Image_copy_error": "Image copy error",
|
|
617
|
+
"Image_is_uploading": "Image is uploading...",
|
|
618
|
+
"Select_at_least_one_row_record": "Select at least one row record",
|
|
619
|
+
"Selected_row_records_cannot_exceed_10_rows": "Selected row records cannot exceed 10 rows",
|
|
620
|
+
"Select_seatable_rows": "Select seatable rows",
|
|
621
|
+
"Add_rows_record": "Add rows record",
|
|
622
|
+
"Double_click_then_adjust_field_width": "Double click, then adjust field width"
|
|
617
623
|
}
|