Example #1
0
        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]}.");
        }
Example #2
0
        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}].");
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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}].");
        }
Example #7
0
        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;
        }