@@ -53,6 +53,7 @@ static const char* SettingName(OptionsModel::OptionID option)
53
53
case OptionsModel::ProxyIPTor: return " onion" ;
54
54
case OptionsModel::ProxyPortTor: return " onion" ;
55
55
case OptionsModel::ProxyUseTor: return " onion" ;
56
+ case OptionsModel::Language: return " lang" ;
56
57
default : throw std::logic_error (strprintf (" GUI option %i has no corresponding node setting." , option));
57
58
}
58
59
}
@@ -137,6 +138,7 @@ bool OptionsModel::Init(bilingual_str& error)
137
138
ProxySetting onion = ParseProxyString (SettingToString (node ().getPersistentSetting (" onion" ), GetDefaultProxyAddress ().toStdString ()));
138
139
m_onion_ip = onion.ip ;
139
140
m_onion_port = onion.port ;
141
+ language = QString::fromStdString (SettingToString (node ().getPersistentSetting (" lang" ), " " ));
140
142
141
143
checkAndMigrate ();
142
144
@@ -190,7 +192,7 @@ bool OptionsModel::Init(bilingual_str& error)
190
192
// These are shared with the core or have a command-line parameter
191
193
// and we want command-line parameters to overwrite the GUI settings.
192
194
for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath, MapPortUPnP,
193
- MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor}) {
195
+ MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor, Language }) {
194
196
std::string setting = SettingName (option);
195
197
if (node ().isSettingIgnored (setting)) addOverriddenOption (" -" + setting);
196
198
try {
@@ -205,9 +207,6 @@ bool OptionsModel::Init(bilingual_str& error)
205
207
}
206
208
207
209
// If setting doesn't exist create it with defaults.
208
- //
209
- // If gArgs.SoftSetArg() or gArgs.SoftSetBoolArg() return false we were overridden
210
- // by command-line and show this in the UI.
211
210
212
211
// Main
213
212
if (!settings.contains (" strDataDir" ))
@@ -222,13 +221,6 @@ bool OptionsModel::Init(bilingual_str& error)
222
221
#endif
223
222
224
223
// Display
225
- if (!settings.contains (" language" ))
226
- settings.setValue (" language" , " " );
227
- if (!gArgs .SoftSetArg (" -lang" , settings.value (" language" ).toString ().toStdString ()))
228
- addOverriddenOption (" -lang" );
229
-
230
- language = settings.value (" language" ).toString ();
231
-
232
224
if (!settings.contains (" UseEmbeddedMonospacedFont" )) {
233
225
settings.setValue (" UseEmbeddedMonospacedFont" , " true" );
234
226
}
@@ -421,7 +413,7 @@ QVariant OptionsModel::getOption(OptionID option) const
421
413
case ThirdPartyTxUrls:
422
414
return strThirdPartyTxUrls;
423
415
case Language:
424
- return settings. value ( " language " );
416
+ return QString::fromStdString ( SettingToString ( setting (), " " ) );
425
417
case UseEmbeddedMonospacedFont:
426
418
return m_use_embedded_monospaced_font;
427
419
case CoinControlFeatures:
@@ -564,8 +556,8 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
564
556
}
565
557
break ;
566
558
case Language:
567
- if (settings. value ( " language " ) != value ) {
568
- settings. setValue ( " language " , value);
559
+ if (changed () ) {
560
+ update ( value. toString (). toStdString () );
569
561
setRestartRequired (true );
570
562
}
571
563
break ;
@@ -711,6 +703,7 @@ void OptionsModel::checkAndMigrate()
711
703
migrate_setting (ProxyUse, " fUseProxy" );
712
704
migrate_setting (ProxyIPTor, " addrSeparateProxyTor" );
713
705
migrate_setting (ProxyUseTor, " fUseSeparateProxyTor" );
706
+ migrate_setting (Language, " language" );
714
707
715
708
// In case migrating QSettings caused any settings value to change, rerun
716
709
// parameter interaction code to update other settings. This is particularly
0 commit comments