public override IEnumerator PerformFirstPass() { Localizer localizer = Localizer.Instance; Service.Set(localizer); Localizer localizer2 = localizer; localizer2.TokensUpdated = (Localizer.TokensUpdatedDelegate)Delegate.Combine(localizer2.TokensUpdated, (Localizer.TokensUpdatedDelegate) delegate { AppWindowUtil.SetTitle(Service.Get <Localizer>().GetTokenTranslation(AppTitleLocToken)); }); Language savedLanguage = Service.Get <GameSettings>().SavedLanguage; if (savedLanguage == Language.none) { localizer.Language = LocalizationLanguage.GetLanguage(); } else { localizer.Language = savedLanguage; } localizer.LanguageString = LocalizationLanguage.GetLanguageString(localizer.Language); string languageStringOneID = localizer.LanguageStringOneID = LocalizationLanguage.GetOneIDLanguageString(localizer.Language); Thread.CurrentThread.CurrentCulture = new CultureInfo(LocalizationLanguage.GetCultureLanguageString(localizer.Language)); Thread.CurrentThread.CurrentUICulture = new CultureInfo(LocalizationLanguage.GetCultureLanguageString(localizer.Language)); tokensLoaded = false; ILocalizedTokenFilePath tokensFilePath = new AppTokensFilePath(Localizer.DEFAULT_TOKEN_LOCATION, Platform.global); DateTime cutOffTime = DateTime.Now.AddMinutes(1.0); localizer.LoadTokensFromLocalJSON(tokensFilePath, onTokensLoaded); while (!tokensLoaded && !(DateTime.Now > cutOffTime)) { yield return(null); } if (!tokensLoaded) { Log.LogError(this, "Unable to load tokens for " + localizer.LanguageString); } }