public static void AddString(this LocaleManager localeManager, LocalizedString localizedString) { Locale locale = localeManager.GetLocale(); // Construct 0-index id for the localized string from argument Locale.Key id; id.m_Identifier = localizedString.Identifier; id.m_Key = localizedString.Key; id.m_Index = 0; // Check if the id already exists; if so find next index if (locale.Exists(id)) { // Log message lags game on large namelists // Log($"Localized string {localizedString.Identifier}[{localizedString.Key}] already exists, adding it with next available index."); id.m_Index = locale.CountUnchecked(id); } // Add the localized string locale.AddLocalizedString(id, localizedString.Value); // Set the string counts accordingly Dictionary <Locale.Key, int> localizedStringCounts = locale.GetLocalizedStringsCount(); // The count at the exact index appears to always be 0 localizedStringCounts[id] = 0; // index = 0 appears to be a special case and indicates the count of localized strings with the same identifier and key Locale.Key zeroIndexID = id; zeroIndexID.m_Index = 0; localizedStringCounts[zeroIndexID] = id.m_Index + 1; // Log message lags game on large namelists // Log($"Added localized string {id} = '{localizedString.Value}', count = {localizedStringCounts[zeroIndexID]}."); }
public static void RemoveRange(this LocaleManager localeManager, Locale.Key id) { var locale = localeManager.GetLocale(); // Set index to 0 so we can check for the string count id.m_Index = 0; if (!locale.Exists(id)) { Log._Debug($"[{nameof(LocaleManagerExtensions)}.{nameof(RemoveRange)}] Could not remove locale range {id}; localized string {id} does not exist!"); return; } var localizedStrings = locale.GetLocalizedStrings(); var localizedStringsCount = locale.GetLocalizedStringsCount(); for (int index = 0, lastIndex = locale.CountUnchecked(id); index <= lastIndex; index++, id.m_Index = index) { localizedStrings.Remove(id); localizedStringsCount.Remove(id); } Log._Debug($"[{nameof(LocaleManagerExtensions)}.{nameof(RemoveRange)}] Removed locale range {id.m_Identifier}[{id.m_Key}]."); }
public void StartingLocale() { // Arrange var context = new TestCaseContext(); var sut = new LocaleManager( context.OptionsService, context.Logger); // Act var actual = sut.GetLocale(); // Assert Assert.Equal(context.Options.StartingLocale, actual); }
public void SetGetLocale() { // Arrange var context = new TestCaseContext(); var sut = new LocaleManager( context.OptionsService, context.Logger); var locale = "ru-ru"; // Act sut.SetLocale(locale); var actual = sut.GetLocale(); // Assert Assert.Equal(locale, actual); }
public void GetLocale() { WebLocale testLocale; // Test get locale by id. foreach (WebLocale locale in LocaleManager.GetLocales(GetContext())) { testLocale = LocaleManager.GetLocale(GetContext(), locale.Id); Assert.AreEqual(testLocale.Id, locale.Id); Assert.AreEqual(testLocale.ISOCode, locale.ISOCode); } // Test get locale by ISO code. foreach (WebLocale locale in LocaleManager.GetLocales(GetContext())) { testLocale = LocaleManager.GetLocale(GetContext(), locale.ISOCode); Assert.AreEqual(testLocale.Id, locale.Id); Assert.AreEqual(testLocale.ISOCode, locale.ISOCode); } }
public static void RemoveRange(this LocaleManager localeManager, Locale.Key id) { Locale locale = localeManager.GetLocale(); // Set index to 0 so we can check for the string count id.m_Index = 0; if (!locale.Exists(id)) { DebugUtils.Log($"Could not remove locale range {id}; localized string {id} does not exist!"); return; } Dictionary <Locale.Key, string> localizedStrings = locale.GetLocalizedStrings(); Dictionary <Locale.Key, int> localizedStringsCount = locale.GetLocalizedStringsCount(); for (int index = 0, lastIndex = locale.CountUnchecked(id); index <= lastIndex; index++, id.m_Index = index) { localizedStrings.Remove(id); localizedStringsCount.Remove(id); } DebugUtils.Log($"Removed locale range {id.m_Identifier}[{id.m_Key}]."); }
void UpdateLanguage() { var currentLocale = locale != null?locale.GetLocale(currentConfiguration.Language) : null; var defaultLocale = locale != null?locale.GetDefaultLocale() : null; foreach (var item in selectLanguageToolStripMenuItem.DropDownItems) { if (item is ToolStripMenuItem tsmi) { if (tsmi.Text == currentLocale.GetString("human_name")) { tsmi.CheckState = CheckState.Checked; } else { tsmi.CheckState = CheckState.Unchecked; } } } //statustray liveDownloadCounter.Text = GetLanguageString("generic_livedownloads", currentLocale, defaultLocale).Replace("{0}", "0"); downloadSpeed.Text = GetLanguageString("generic_downloadspeed", currentLocale, defaultLocale).Replace("{0}", "0"); //toolstrip fileToolStripMenuItem.Text = GetLanguageString("generic_file", currentLocale, defaultLocale); editToolStripMenuItem.Text = GetLanguageString("generic_edit", currentLocale, defaultLocale); viewToolStripMenuItem.Text = GetLanguageString("generic_view", currentLocale, defaultLocale); toolsToolStripMenuItem.Text = GetLanguageString("generic_tools", currentLocale, defaultLocale); helpToolStripMenuItem.Text = GetLanguageString("generic_help", currentLocale, defaultLocale); //pages downloadsPage.Text = GetLanguageString("generic_downloads", currentLocale, defaultLocale); subscriptionsPage.Text = GetLanguageString("generic_subscriptions", currentLocale, defaultLocale); cleanupPage.Text = GetLanguageString("generic_cleanup", currentLocale, defaultLocale); logPage.Text = GetLanguageString("generic_log", currentLocale, defaultLocale); //file importFeedsFromOpmlToolStripMenuItem.Text = GetLanguageString("file_importopml", currentLocale, defaultLocale); exportFeedsAsOpmlToolStripMenuItem.Text = GetLanguageString("file_exportopml", currentLocale, defaultLocale); preferencesToolStripMenuItem.Text = GetLanguageString("file_preferences", currentLocale, defaultLocale); closeWindowToolStripMenuItem.Text = GetLanguageString("file_close", currentLocale, defaultLocale); closeNotificationTray.Text = GetLanguageString("file_closetotray", currentLocale, defaultLocale); quitToolStripMenuItem.Text = GetLanguageString("file_quit", currentLocale, defaultLocale); //edit selectAllToolStripMenuItem.Text = GetLanguageString("edit_selectall", currentLocale, defaultLocale); //view //tools checkAllToolStripMenuItem.Text = GetLanguageString("tools_checkall", currentLocale, defaultLocale); catchupToolStripMenuItem.Text = GetLanguageString("tools_catchup", currentLocale, defaultLocale); checkSelectedToolStripMenuItem.Text = GetLanguageString("tools_checkselected", currentLocale, defaultLocale); addAFeedToolStripMenuItem.Text = GetLanguageString("tools_addfeed", currentLocale, defaultLocale); removeFeedToolStripMenuItem.Text = GetLanguageString("tools_removefeed", currentLocale, defaultLocale); feedPropertiesToolStripMenuItem.Text = GetLanguageString("tools_feedprops", currentLocale, defaultLocale); schedulerToolStripMenuItem.Text = GetLanguageString("tools_scheduler", currentLocale, defaultLocale); selectLanguageToolStripMenuItem.Text = GetLanguageString("tools_selectlang", currentLocale, defaultLocale); //help checkForUpdateToolStripMenuItem.Text = GetLanguageString("help_checkupdates", currentLocale, defaultLocale); reportAProblemToolStripMenuItem.Text = GetLanguageString("help_reportproblem", currentLocale, defaultLocale); aboutToolStripMenuItem.Text = string.Format(GetLanguageString("help_about", currentLocale, defaultLocale), AppProps.AppName); //notification context menu showWindowNotificationMenu.Text = GetLanguageString("file_showwindow", currentLocale, defaultLocale); runCheckNotificationMenu.Text = GetLanguageString("generic_runcheck", currentLocale, defaultLocale); quitNotificationMenu.Text = quitToolStripMenuItem.Text; }