Skip to content

Commit 71ef1d3

Browse files
feat: load multiple translations
1 parent e8bde0b commit 71ef1d3

File tree

7 files changed

+18
-13
lines changed

7 files changed

+18
-13
lines changed

modules/gowebview/xlsx.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
export async function QueryTranslation(data: ITextDTO): Promise<ITextDTO> {
1+
export async function QueryTranslation(data: ITextDTO) {
22
if ('QueryTranslation' in window) {
3-
const response = await window.QueryTranslation<ITextDTO[]>(data)
3+
const response = await window.QueryTranslation<ITextResponseDTO[]>(data)
44
if (response?.length) { return response[0] }
55
}
66

7-
return {} as ITextDTO
7+
return {} as any
88
}
99

1010
export async function SaveText(data: ISaveTextDTO) {

modules/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interface IExternalAPI {
1313
OpenConfigWindow(): Promise<void>
1414

1515
SaveText<T= { error: string } | void>(data: ISaveTextDTO): Promise<T>
16-
QueryTranslation<T= ITextDTO>(data: ITextDTO): Promise<T>
16+
QueryTranslation<T= ITextResponseDTO>(data: ITextDTO): Promise<T>
1717
}
1818

1919
interface IPyWebview {

modules/text.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,6 @@ interface ISaveTextDTO extends ITextDTO {
1212
src_model: string
1313
}
1414

15+
interface ITextResponseDTO extends ITextDTO {
16+
translatedText: string[]
17+
}

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ $ npm run pack
5555
## todo
5656

5757
#### finish the webview in go
58+
- fix: Update DTO structure
5859
- add speaker name handler for go xlsx module
5960
- hide cmd window for "OpenConfigDir"
6061
- fix: remove fatal log from "GetConfig"

src/components/TextBox/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ export default function TextBox( {modelName: model_name, providerKey, index}: IT
6969
if (global_text().untranslated !== text.untranslated) {
7070
setText('untranslated', global_text().untranslated)
7171
let translated = global_text().translated
72-
if (translated) {
73-
if (index===0) { setText('translated', translated) }
72+
if (translated?.length) {
73+
if (index < translated.length) { setText('translated', translated[index]) }
7474
else { setText('translated', "") }
7575

7676
} else if (auto_fetch()) { await translate({ save: true }) }

src/global/text.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Monitor, WsClient } from "./lib"
77

88
export interface IGlobalText {
99
untranslated?: string | null
10-
translated?: string | null
10+
translated?: string[]
1111
cached?: boolean
1212
window_title?: string
1313
}
@@ -50,7 +50,7 @@ async function onTextChange( {window_title, text}: { window_title: string, text:
5050
else if (history_texts?.length) { history = history_texts }
5151

5252
if(translatedText) { global_text().translated = translatedText }
53-
else if (global_text().translated) { global_text().translated = null }
53+
else if (global_text().translated?.length) { global_text().translated = [] }
5454
if (global_text().untranslated !== text) {
5555
global_text().untranslated = text
5656
setGlobalText({ ...global_text() })

webview/pywebview/xlsx.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict, List, Tuple, Optional
1+
from typing import Dict, List, Tuple, Optional, Union
22
import openpyxl, os
33
from openpyxl import Workbook
44
from openpyxl.worksheet.worksheet import Worksheet
@@ -12,7 +12,8 @@
1212
workbook: Optional[Workbook] = None
1313

1414
class TextDTO:
15-
history: List[str]
15+
history: Optional[List[str]]
16+
translatedText: Union[None, str, Tuple[str]]
1617
def __init__(self, DTO: Dict[str, str]):
1718
self.window_title = DTO["window_title"]
1819
self.originalText = DTO["originalText"]
@@ -71,8 +72,7 @@ def QueryTranslation(self, textDTO: Dict[str, str]) -> TextDTO:
7172
entry = queryEntry(textDTO)
7273
if entry is not None:
7374
textDTO.history = get_history(entry)
74-
cell = worksheet().cell(row= entry, column=2)
75-
textDTO.translatedText = cell.value
75+
textDTO.translatedText = list(worksheet()[entry][1:]).reverse()
7676
elif worksheet() is not None: textDTO.history = get_history(worksheet().max_row+1)
7777

7878
return textDTO.__dict__
@@ -82,7 +82,8 @@ def SaveText(self, textDTO: Dict[str, str]):
8282
textDTO: TextDTO = TextDTO(textDTO)
8383
entry = queryEntry(textDTO)
8484
if entry is not None and worksheet() is not None:
85-
cell = worksheet().cell(row= entry, column=2)
85+
row = worksheet()[entry]
86+
cell = worksheet().cell(row= entry, column= len(row)-1)
8687
cell.value = textDTO.translatedText
8788
cell.comment = Comment(textDTO.speakerName, textDTO.src_model)
8889

0 commit comments

Comments
 (0)