Extract language initialization to core

Call this method whenever you boot a separate app that needs legality strings to be ready.
This commit is contained in:
Kurt 2020-01-25 16:27:16 -08:00
parent 3813d5dba9
commit 88dcb59798
2 changed files with 33 additions and 21 deletions

View file

@ -0,0 +1,32 @@
using System.Threading.Tasks;
namespace PKHeX.Core
{
public static class LocalizeUtil
{
/// <summary>
/// Initializes PKHeX's runtime strings to the specified language.
/// </summary>
/// <param name="lang">2-char language ID</param>
/// <param name="sav">Save data (optional)</param>
/// <param name="hax">Permit illegal things (items, only)</param>
public static void InitializeStrings(string lang, SaveFile? sav = null, bool hax = false)
{
var str = GameInfo.Strings = GameInfo.GetStrings(lang);
if (sav != null)
GameInfo.FilteredSources = new FilteredGameDataSource(sav, GameInfo.Sources, hax);
// Update Legality Analysis strings
LegalityAnalysis.MoveStrings = str.movelist;
LegalityAnalysis.SpeciesStrings = str.specieslist;
// Update Legality Strings
Task.Run(() =>
{
RibbonStrings.ResetDictionary(str.ribbons);
Util.SetLocalization(typeof(LegalityCheckStrings), lang);
Util.SetLocalization(typeof(MessageStrings), lang);
});
}
}
}

View file

@ -917,7 +917,7 @@ namespace PKHeX.WinForms
Menu_Options.DropDown.Close();
InitializeStrings();
LocalizeUtil.InitializeStrings(CurrentLanguage, C_SAV.SAV, HaX);
WinFormsUtil.TranslateInterface(this, CurrentLanguage); // Translate the UI to language.
if (C_SAV.SAV != null)
{
@ -928,26 +928,6 @@ namespace PKHeX.WinForms
Text = GetProgramTitle(sav);
}
}
private void InitializeStrings()
{
string l = CurrentLanguage;
GameInfo.Strings = GameInfo.GetStrings(l);
if (C_SAV.SAV != null)
GameInfo.FilteredSources = new FilteredGameDataSource(C_SAV.SAV, GameInfo.Sources, HaX);
// Update Legality Strings
Task.Run(() => {
var lang = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Substring(0, 2);
Util.SetLocalization(typeof(LegalityCheckStrings), lang);
Util.SetLocalization(typeof(MessageStrings), lang);
RibbonStrings.ResetDictionary(GameInfo.Strings.ribbons);
});
// Update Legality Analysis strings
LegalityAnalysis.MoveStrings = GameInfo.Strings.movelist;
LegalityAnalysis.SpeciesStrings = GameInfo.Strings.specieslist;
}
#endregion
#region //// PKX WINDOW FUNCTIONS ////