@@ -22,6 +22,8 @@ public class SubTranslator
22
22
private readonly TranslateServiceFactory _translateServiceFactory ;
23
23
private Task ? _translateTask ;
24
24
private bool _isReset ;
25
+ private Language ? _srcLang ;
26
+
25
27
private bool IsEnabled => _config [ _subIndex ] . EnabledTranslated ;
26
28
27
29
private readonly LogHandler Log ;
@@ -55,6 +57,12 @@ private void SubManager_OnPropertyChanged(object? sender, PropertyChangedEventAr
55
57
if ( ! IsEnabled || _subManager . Subs . Count == 0 || _subManager . Language == null )
56
58
return ;
57
59
60
+ if ( _translateService == null )
61
+ {
62
+ // capture for later initialization
63
+ _srcLang = _subManager . Language ;
64
+ }
65
+
58
66
if ( _translationStartCancellation != null )
59
67
{
60
68
_translationStartCancellation . Cancel ( ) ;
@@ -116,6 +124,7 @@ private async Task Reset()
116
124
117
125
_translateService ? . Dispose ( ) ;
118
126
_translateService = null ;
127
+ _srcLang = null ;
119
128
}
120
129
finally
121
130
{
@@ -199,7 +208,7 @@ private void EnsureTranslationService()
199
208
if ( _translateService == null )
200
209
{
201
210
var service = _translateServiceFactory . GetService ( _config . TranslateServiceType , false ) ;
202
- service . Initialize ( _subManager . Language , _config . TranslateTargetLanguage ) ;
211
+ service . Initialize ( _srcLang ! , _config . TranslateTargetLanguage ) ;
203
212
204
213
Volatile . Write ( ref _translateService , service ) ;
205
214
}
0 commit comments