From 24eced7ed7ec63ed7e4ae710a669a98a3f5d49bd Mon Sep 17 00:00:00 2001 From: zyronon Date: Thu, 28 Sep 2023 16:00:02 +0800 Subject: [PATCH] Perfect the module of adding articles --- components.d.ts | 4 ++++ src/components/Add/AddArticle2.vue | 36 ++++++++++++++++++++++++------ src/hooks/translate.ts | 13 +++++++++-- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/components.d.ts b/components.d.ts index ffb49ddf..9631e2f5 100644 --- a/components.d.ts +++ b/components.d.ts @@ -21,11 +21,15 @@ declare module 'vue' { DictModal: typeof import('./src/components/Toolbar/DictModal.vue')['default'] EditAbleText: typeof import('./src/components/EditAbleText.vue')['default'] ElInput: typeof import('element-plus/es')['ElInput'] + ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElOption: typeof import('element-plus/es')['ElOption'] ElProgress: typeof import('element-plus/es')['ElProgress'] + ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSlider: typeof import('element-plus/es')['ElSlider'] + ElSwitch: typeof import('element-plus/es')['ElSwitch'] FeedbackModal: typeof import('./src/components/Toolbar/FeedbackModal.vue')['default'] Fireworks: typeof import('./src/components/Fireworks.vue')['default'] Footer: typeof import('./src/components/Practice/Footer.vue')['default'] diff --git a/src/components/Add/AddArticle2.vue b/src/components/Add/AddArticle2.vue index 9f0334ef..2a784947 100644 --- a/src/components/Add/AddArticle2.vue +++ b/src/components/Add/AddArticle2.vue @@ -20,6 +20,7 @@ import {useBaseStore} from "@/stores/base.ts"; import {$ref} from "vue/macros"; import List from "@/components/List.vue"; import {v4 as uuidv4} from 'uuid'; +import {Icon} from "@iconify/vue"; interface IProps { article?: Article @@ -33,6 +34,7 @@ const base = useBaseStore() let article = $ref
(cloneDeep(props.article)) let networkTranslateEngine = $ref('baidu') let progress = $ref(0) +let failCount = $ref(0) const TranslateEngineOptions = [ {value: 'baidu', label: '百度'}, {value: 'youdao', label: '有道'}, @@ -112,10 +114,10 @@ function renewSections() { if (article.text.trim()) { renewSectionTexts(article) if (article.useTranslateType === TranslateType.custom) { - renewSectionTranslates(article, article.textCustomTranslate) + failCount = renewSectionTranslates(article, article.textCustomTranslate) } if (article.useTranslateType === TranslateType.network) { - renewSectionTranslates(article, article.textNetworkTranslate) + failCount = renewSectionTranslates(article, article.textNetworkTranslate) } } else { article.sections = [] @@ -247,7 +249,7 @@ function selectArticle(item: Article) { if (!article?.sections?.length) { renewSections() } - console.log('article', article) + // console.log('article', article) } function add() { @@ -503,8 +505,14 @@ function exportData() {
- 保存 - 保存并添加下一篇 +
+ + 共有{{ failCount }}句没有翻译! +
+
+ 保存 + 保存并添加下一篇 +
@@ -667,8 +675,22 @@ function exportData() { .options { display: flex; - justify-content: flex-end; - gap: $space; + align-items: center; + justify-content: space-between; + + .warning { + display: flex; + align-items: center; + font-size: 20rem; + color: red; + gap: $space; + + } + + .left { + gap: $space; + display: flex; + } } } } diff --git a/src/hooks/translate.ts b/src/hooks/translate.ts index 9fa66647..d9047b36 100644 --- a/src/hooks/translate.ts +++ b/src/hooks/translate.ts @@ -5,8 +5,10 @@ import {getSplitTranslateText, splitEnArticle} from "@/hooks/article.ts"; import {Translator} from "@opentranslate/translator/src/translator.ts"; export function renewSectionTranslates(article: Article, translate: string) { + let failCount = 0 if (translate.trim()) { let articleTranslate = translate.split('\n') + console.log('articleTranslate', articleTranslate) // console.log('articleTranslate', articleTranslate) let count = 0 for (let i = 0; i < article.sections.length; i++) { @@ -14,15 +16,22 @@ export function renewSectionTranslates(article: Article, translate: string) { for (let j = 0; j < v.length; j++) { let sentence = v[j] try { - sentence.translate = articleTranslate[count] + let trans = articleTranslate[count] + if (trans) { + sentence.translate = trans + } else { + failCount++ + } } catch (e) { - console.log('没有对应的翻译', sentence.text) + failCount++ + // console.log('没有对应的翻译', sentence.text) } count++ } count++ } } + return failCount } export function getSentenceAllTranslateText(article: Article) {