Skip to content

Commit 1891561

Browse files
authored
Merge pull request #484 from Freeesia/feature/fix_translate_error
2 parents 8cc7175 + f172d02 commit 1891561

16 files changed

Lines changed: 130 additions & 66 deletions

File tree

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/DeepLTranslator.cs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,27 @@ public async ValueTask<string[]> TranslateAsync(TextInfo[] srcTexts)
6262
var translated = srcTexts.Select(t => t.SourceText).ToArray();
6363
this.logger.LogDebug($"Translating {srcTexts.Length} texts.");
6464
var sw = Stopwatch.StartNew();
65-
var glossaryId = await this.glossaryId.AsValueTask().ConfigureAwait(false);
66-
await Parallel.ForEachAsync(srcTexts.GroupBy(t => t.Context).ToAsyncEnumerable(), async (g, ct) =>
65+
try
6766
{
68-
var context = string.Join('\n', this.context, g.Key);
69-
var srcs = g.Select(t => t.SourceText).ToArray();
70-
var results = await translator.TranslateTextAsync(srcs, this.sourceLang, this.targetLang, new() { Context = context, GlossaryId = glossaryId }, ct)
71-
.ConfigureAwait(false);
72-
foreach (var (s, t) in srcs.Zip(results))
67+
var glossaryId = await this.glossaryId.AsValueTask().ConfigureAwait(false);
68+
await Parallel.ForEachAsync(srcTexts.GroupBy(t => t.Context).ToAsyncEnumerable(), async (g, ct) =>
7369
{
74-
var i = Array.IndexOf(translated, s);
75-
translated[i] = t.Text;
76-
}
77-
}).ConfigureAwait(false);
78-
this.logger.LogDebug($"Translated {srcTexts.Length} texts in {sw.Elapsed}");
70+
var context = string.Join('\n', this.context, g.Key);
71+
var srcs = g.Select(t => t.SourceText).ToArray();
72+
var results = await translator.TranslateTextAsync(srcs, this.sourceLang, this.targetLang, new() { Context = context, GlossaryId = glossaryId }, ct)
73+
.ConfigureAwait(false);
74+
foreach (var (s, t) in srcs.Zip(results))
75+
{
76+
var i = Array.IndexOf(translated, s);
77+
translated[i] = t.Text;
78+
}
79+
}).ConfigureAwait(false);
80+
this.logger.LogDebug($"Translated {srcTexts.Length} texts in {sw.Elapsed}");
81+
}
82+
catch (AuthorizationException)
83+
{
84+
throw new AppUserException(Properties.Resources.AuthError);
85+
}
7986
return translated;
8087
}
8188

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.de.resx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>API-Schlüssel</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>Glossarpfad</value>
124+
<value>Glossar-Pfad</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127-
<value>Der DeepL-API-Schlüssel ist nicht festgelegt. Bitte setzen Sie den DeepL-API-Schlüssel im Einstellungsdialog.</value>
127+
<value>Der DeepL-API-Schlüssel ist nicht konfiguriert. Bitte setzen Sie den DeepL-API-Schlüssel im Einstellungsdialog.</value>
128+
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepL-Autorisierungsfehler. Ein ungültiger API-Schlüssel ist konfiguriert. Bitte versuchen Sie, den API-Schlüssel neu zu erstellen.</value>
128131
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.en.resx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>API Key</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>glossary path</value>
124+
<value>Glossary Path</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127-
<value>DeepL API key is not set. Please set the DeepL API key from the settings dialog.</value>
127+
<value>DeepL API key is not configured. Please set the DeepL API key from the settings dialog.</value>
128+
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepL authorization error. An invalid API key is configured. Please try recreating the API key.</value>
128131
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.hi.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='utf-8'?>
22
<root xmlns:ns1="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema">
33

44
<xs:schema id="root">
@@ -68,4 +68,7 @@
6868
<data name="NeedApiKey" xml:space="preserve">
6969
<value>DeepL API कुंजी सेट नहीं है। कृपया सेटिंग्स डायलॉग से DeepL API कुंजी सेट करें।</value>
7070
</data>
71+
<data name="AuthError" xml:space="preserve">
72+
<value>DeepL प्राधिकरण त्रुटि। एक अमान्य API कुंजी कॉन्फ़िगर की गई है। कृपया API कुंजी को पुनः बनाने का प्रयास करें।</value>
73+
</data>
7174
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.ko.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>API 키</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>용어집 패스</value>
124+
<value>용어집 경로</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127127
<value>DeepL API 키가 설정되지 않았습니다. 설정 대화상자에서 DeepL API 키를 설정해 주세요.</value>
128128
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepL 인증 오류입니다. 유효하지 않은 API 키가 설정되어 있습니다. API 키를 재생성하는 등의 방법을 시도해 주세요.</value>
131+
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,7 @@
126126
<data name="NeedApiKey" xml:space="preserve">
127127
<value>DeepLのAPIキーが設定されていません。設定ダイアログからDeepLのAPIキーを設定してください。</value>
128128
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepLの認可エラーです。利用できないAPIキーが設定されています。APIキーの再作成などお試しください。</value>
131+
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.vi.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>Khóa API</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>Đường dẫn thuật ngữ</value>
124+
<value>Đường dẫn từ điển thuật ngữ</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127127
<value>Khóa API DeepL chưa được thiết lập. Vui lòng đặt khóa API DeepL từ hộp thoại cài đặt.</value>
128128
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>Lỗi xác thực DeepL. Đã cấu hình khóa API không hợp lệ. Vui lòng thử tạo lại khóa API.</value>
131+
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.zh-CN.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>API 密钥</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>词汇路径</value>
124+
<value>词汇表路径</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127127
<value>未设置 DeepL API 密钥。请在设置对话框中设置 DeepL API 密钥。</value>
128128
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepL 授权错误。配置了无效的 API 密钥。请尝试重新创建 API 密钥。</value>
131+
</data>
129132
</root>

Plugins/WindowTranslator.Plugin.DeepLTranslatePlugin/Properties/Resources.zh-TW.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@
121121
<value>API 金鑰</value>
122122
</data>
123123
<data name="GlossaryPath" xml:space="preserve">
124-
<value>詞彙路徑</value>
124+
<value>詞彙表路徑</value>
125125
</data>
126126
<data name="NeedApiKey" xml:space="preserve">
127127
<value>未設定 DeepL API 金鑰。請在設定對話方塊中設定 DeepL API 金鑰。</value>
128128
</data>
129+
<data name="AuthError" xml:space="preserve">
130+
<value>DeepL 授權錯誤。設定了無效的 API 金鑰。請嘗試重新建立 API 金鑰。</value>
131+
</data>
129132
</root>

0 commit comments

Comments
 (0)