@@ -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 {
@@ -204,9 +206,6 @@ bool OptionsModel::Init(bilingual_str& error)
204
206
}
205
207
206
208
// If setting doesn't exist create it with defaults.
207
- //
208
- // If gArgs.SoftSetArg() or gArgs.SoftSetBoolArg() return false we were overridden
209
- // by command-line and show this in the UI.
210
209
211
210
// Main
212
211
if (!settings.contains (" strDataDir" ))
@@ -221,13 +220,6 @@ bool OptionsModel::Init(bilingual_str& error)
221
220
#endif
222
221
223
222
// Display
224
- if (!settings.contains (" language" ))
225
- settings.setValue (" language" , " " );
226
- if (!gArgs .SoftSetArg (" -lang" , settings.value (" language" ).toString ().toStdString ()))
227
- addOverriddenOption (" -lang" );
228
-
229
- language = settings.value (" language" ).toString ();
230
-
231
223
if (!settings.contains (" UseEmbeddedMonospacedFont" )) {
232
224
settings.setValue (" UseEmbeddedMonospacedFont" , " true" );
233
225
}
@@ -420,7 +412,7 @@ QVariant OptionsModel::getOption(OptionID option) const
420
412
case ThirdPartyTxUrls:
421
413
return strThirdPartyTxUrls;
422
414
case Language:
423
- return settings. value ( " language " );
415
+ return QString::fromStdString ( SettingToString ( setting (), " " ) );
424
416
case UseEmbeddedMonospacedFont:
425
417
return m_use_embedded_monospaced_font;
426
418
case CoinControlFeatures:
@@ -563,8 +555,8 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
563
555
}
564
556
break ;
565
557
case Language:
566
- if (settings. value ( " language " ) != value ) {
567
- settings. setValue ( " language " , value);
558
+ if (changed () ) {
559
+ update ( value. toString (). toStdString () );
568
560
setRestartRequired (true );
569
561
}
570
562
break ;
@@ -715,6 +707,7 @@ void OptionsModel::checkAndMigrate()
715
707
migrate_setting (ProxyUse, " fUseProxy" );
716
708
migrate_setting (ProxyIPTor, " addrSeparateProxyTor" );
717
709
migrate_setting (ProxyUseTor, " fUseSeparateProxyTor" );
710
+ migrate_setting (Language, " language" );
718
711
719
712
// In case migrating QSettings caused any settings value to change, rerun
720
713
// parameter interaction code to update other settings. This is particularly
0 commit comments