Skip to content

Commit

Permalink
Ignore case when selecting default translation code (#554)
Browse files Browse the repository at this point in the history
* Ignore case when selecting default translation code

* Apply code style changes

Co-authored-by: Kerbiter <[email protected]>

* Revert "Apply code style changes"

This reverts commit c4c1393.

---------

Co-authored-by: Kerbiter <[email protected]>
  • Loading branch information
SadPencil and Metadorius authored Sep 25, 2024
1 parent 634a047 commit b77fbb4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
3 changes: 2 additions & 1 deletion ClientCore/I18N/Translation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ public static string GetLanguageName(string localeCode)
/// <returns>Locale code -> display name pairs.</returns>
public static Dictionary<string, string> GetTranslations()
{
var translations = new Dictionary<string, string>
var translations = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
{
// Add default localization so that we always have it in the list even if the localization does not exist
[ProgramConstants.HARDCODED_LOCALE_CODE] = GetLanguageName(ProgramConstants.HARDCODED_LOCALE_CODE)
Expand Down Expand Up @@ -224,6 +224,7 @@ public static string GetDefaultTranslationLocaleCode()
{
string translation = culture.Name;

// the keys in 'translations' are case-insensitive
if (translations.ContainsKey(translation))
return translation;
}
Expand Down
26 changes: 13 additions & 13 deletions DTAConfig/OptionPanels/DisplayOptionsPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
#endif
#if TS
using Microsoft.Win32;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
#endif
using System.IO;
using ClientCore.I18N;
using System.Diagnostics;
using System.Linq;

namespace DTAConfig.OptionPanels
Expand Down Expand Up @@ -679,20 +679,20 @@ public override void Load()
ddi => (string)ddi.Tag == UserINISettings.Instance.ClientTheme);
ddClientTheme.SelectedIndex = selectedThemeIndex > -1 ? selectedThemeIndex : 0;

int selectedTranslationIndex = ddTranslation.Items.FindIndex(
ddi => (string)ddi.Tag == UserINISettings.Instance.Translation);

if (selectedTranslationIndex > -1)
{
ddTranslation.SelectedIndex = selectedTranslationIndex;
}
else
foreach (string localeCode in new string[] { UserINISettings.Instance.Translation, Translation.GetDefaultTranslationLocaleCode(), ProgramConstants.HARDCODED_LOCALE_CODE })
{
string defaultTranslationCode = Translation.GetDefaultTranslationLocaleCode();
ddTranslation.SelectedIndex = ddTranslation.Items.FindIndex(
ddi => (string)ddi.Tag == defaultTranslationCode);
int selectedTranslationIndex = ddTranslation.Items.FindIndex(
ddi => localeCode.Equals((string)ddi.Tag, StringComparison.InvariantCultureIgnoreCase));

if (selectedTranslationIndex > -1)
{
ddTranslation.SelectedIndex = selectedTranslationIndex;
break;
}
}

Debug.Assert(ddTranslation.SelectedIndex > -1, "No translation was selected");

#if TS
chkBackBufferInVRAM.Checked = !UserINISettings.Instance.BackBufferInVRAM;

Expand Down Expand Up @@ -780,7 +780,7 @@ public override bool Save()

IniSettings.ClientTheme.Value = (string)ddClientTheme.SelectedItem.Tag;

restartRequired = restartRequired || IniSettings.Translation != (string)ddTranslation.SelectedItem.Tag;
restartRequired = restartRequired || !IniSettings.Translation.ToString().Equals((string)ddTranslation.SelectedItem.Tag, StringComparison.InvariantCultureIgnoreCase);

IniSettings.Translation.Value = (string)ddTranslation.SelectedItem.Tag;

Expand Down

0 comments on commit b77fbb4

Please sign in to comment.