diff --git a/src/app/app.component.ts b/src/app/app.component.ts index a2cd933..2476aa3 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,9 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { NWUIButtonComponent } from '@nwaifu-ui'; import { TextListComponent } from './components/text_list/text_list.component'; -import { TranslateData } from './dto/translate_data.dto'; +import { LocalStorageKeys } from './consts'; +import { NpsFile, TranslateData } from './dto/translate_data.dto'; +import { saveOriginalFile } from './lib/file_tools'; import { parse } from './lib/parser'; @Component({ standalone: true, @@ -16,14 +18,14 @@ export class AppComponent implements OnInit { @ViewChild('fileInput') fileInput: HTMLInputElement | null = null; ngOnInit(): void { - const data = localStorage.getItem('translations'); + const data = localStorage.getItem(LocalStorageKeys.TRANSLATIONS); if (data) { try { this.elements = JSON.parse(data); } catch (e) { console.error(e); alert('Error while loading'); - localStorage.removeItem('translations'); + localStorage.removeItem(LocalStorageKeys.TRANSLATIONS); this.elements = []; } } @@ -38,6 +40,11 @@ export class AppComponent implements OnInit { reader.onload = () => { if (reader.result) { this.onFileLoaded(reader.result.toString()); + const original_file: NpsFile = { + file_name: file.name, + original_text: reader.result.toString(), + }; + saveOriginalFile(original_file); target.value = ''; } }; @@ -53,6 +60,6 @@ export class AppComponent implements OnInit { onClearClicked() { this.elements = []; - localStorage.removeItem('translations'); + localStorage.removeItem(LocalStorageKeys.TRANSLATIONS); } } diff --git a/src/app/components/translate_block/translate_block.component.ts b/src/app/components/translate_block/translate_block.component.ts index f322cfe..002449a 100644 --- a/src/app/components/translate_block/translate_block.component.ts +++ b/src/app/components/translate_block/translate_block.component.ts @@ -1,6 +1,7 @@ import { CommonModule } from '@angular/common'; import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core'; import { NWUIButtonComponent, NWUITextAreaComponent } from '@nwaifu-ui'; +import { LocalStorageKeys } from 'src/app/consts'; import { TranslateData } from '../../dto/translate_data.dto'; import { ETranslateService } from '../../services/translate.enums'; import { TranslateService } from '../../services/translate.service'; @@ -21,7 +22,7 @@ export class TranslateBlockComponent implements OnInit { isEditing = false; saveChanges() { - const data: TranslateData[] = JSON.parse(localStorage.getItem('translations') ?? '[]'); + const data: TranslateData[] = JSON.parse(localStorage.getItem(LocalStorageKeys.TRANSLATIONS) ?? '[]'); if (!data.length) { alert('No data'); return; diff --git a/src/app/consts.ts b/src/app/consts.ts new file mode 100644 index 0000000..c55e089 --- /dev/null +++ b/src/app/consts.ts @@ -0,0 +1,4 @@ +export enum LocalStorageKeys { + TRANSLATIONS = 'translations', + ORIGINAL_FILE = 'original_file', +} diff --git a/src/app/dto/translate_data.dto.ts b/src/app/dto/translate_data.dto.ts index 588f7cb..9e4ed71 100644 --- a/src/app/dto/translate_data.dto.ts +++ b/src/app/dto/translate_data.dto.ts @@ -2,3 +2,8 @@ export interface TranslateData { english_text: string; translated_text: string; } +export interface NpsFile { + file_name: string; + original_text: string; + translated_text?: string; +} diff --git a/src/app/lib/file_tools.ts b/src/app/lib/file_tools.ts new file mode 100644 index 0000000..7e3c721 --- /dev/null +++ b/src/app/lib/file_tools.ts @@ -0,0 +1,6 @@ +import { LocalStorageKeys } from '../consts'; +import { NpsFile } from '../dto/translate_data.dto'; + +export function saveOriginalFile(file: NpsFile) { + localStorage.setItem(LocalStorageKeys.ORIGINAL_FILE, JSON.stringify(file)); +}