diff --git a/apps/NwaifuWeb/src/app/pages/nitroplus-translator/components/text_list/text_list.component.html b/apps/NwaifuWeb/src/app/pages/nitroplus-translator/components/text_list/text_list.component.html index 2040557..a142299 100644 --- a/apps/NwaifuWeb/src/app/pages/nitroplus-translator/components/text_list/text_list.component.html +++ b/apps/NwaifuWeb/src/app/pages/nitroplus-translator/components/text_list/text_list.component.html @@ -1,6 +1,9 @@ -

Всего: {{ elements_data.length }}

+@if (elements_data.length) { +

Всего: {{ elements_data.length }}

+

Файл: {{ fileName }}

+}
- @for(item of elements_data; track $index) { - + @for (item of elements_data; track $index) { + }
diff --git a/apps/NwaifuWeb/src/app/pages/nitroplus-translator/lib/parser.ts b/apps/NwaifuWeb/src/app/pages/nitroplus-translator/lib/parser.ts index 17e399a..07573b7 100644 --- a/apps/NwaifuWeb/src/app/pages/nitroplus-translator/lib/parser.ts +++ b/apps/NwaifuWeb/src/app/pages/nitroplus-translator/lib/parser.ts @@ -1,15 +1,22 @@ -import { TranslateData } from '../dto/translate_data.dto'; +import { TranslateData } from "../dto/translate_data.dto"; export function parse(text: string): TranslateData[] { - const replaced_text = text - .replace('/<[kK]{1}>/gm', '\n') - .replace(/(<[^>]*>|\/\/.*)/gm, '') - .replace(/\s*\n\s*/gm, '\n'); - const result = replaced_text - .split('\n') - .map((line) => line.trim()) - .filter((line) => line.length > 0) - .map((line) => ({ english_text: line, translated_text: '' })); + // Find all TEXT attr data + const result: TranslateData[] = []; + const re = /<[^>]*TEXT="(?[^>"]+)"[^>]*>|<[^>]*>|\/\/.*|\s*\n\s*/gm; + for (const match of text.matchAll(re)) { + if (match.groups?.["textAttr"]) + result.push({ english_text: match.groups?.["textAttr"], translated_text: "" }); + } + + const replaced_text = text.replace(re, "\n").replace(/\s*\n\s*/gm, "\n"); + result.push( + ...replaced_text + .split("\n") + .map((line) => line.trim()) + .filter((line) => line.length > 0) + .map((line) => ({ english_text: line, translated_text: "" })), + ); console.log(result); return result; }