fix: fixed searching text

This commit is contained in:
2024-06-27 13:20:42 +03:00
parent c8cb378123
commit 02ae9c6745
2 changed files with 23 additions and 13 deletions

View File

@@ -1,6 +1,9 @@
<h1 *ngIf="elements_data.length">Всего: {{ elements_data.length }}</h1> @if (elements_data.length) {
<h1>Всего: {{ elements_data.length }}</h1>
<h2>Файл: {{ fileName }}</h2>
}
<div id="elements"> <div id="elements">
@for(item of elements_data; track $index) { @for (item of elements_data; track $index) {
<app-translate-block #translateBlock [index]="$index" [item]="item"></app-translate-block> <app-translate-block #translateBlock [index]="$index" [item]="item"></app-translate-block>
} }
</div> </div>

View File

@@ -1,15 +1,22 @@
import { TranslateData } from '../dto/translate_data.dto'; import { TranslateData } from "../dto/translate_data.dto";
export function parse(text: string): TranslateData[] { export function parse(text: string): TranslateData[] {
const replaced_text = text // Find all TEXT attr data
.replace('/<[kK]{1}>/gm', '\n') const result: TranslateData[] = [];
.replace(/(<[^>]*>|\/\/.*)/gm, '') const re = /<[^>]*TEXT="(?<textAttr>[^>"]+)"[^>]*>|<[^>]*>|\/\/.*|\s*\n\s*/gm;
.replace(/\s*\n\s*/gm, '\n'); for (const match of text.matchAll(re)) {
const result = replaced_text if (match.groups?.["textAttr"])
.split('\n') result.push({ english_text: match.groups?.["textAttr"], translated_text: "" });
.map((line) => line.trim()) }
.filter((line) => line.length > 0)
.map((line) => ({ english_text: line, 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); console.log(result);
return result; return result;
} }