private void QueueExctractionWorkerThread(object state)
        {
            object[]       args           = state as object[];
            string         installPath    = (string)args[0];
            string         sourceCulture  = (string)args[1];
            string         targetCulture  = (string)args[2] ?? ResourceTool.DEFAULT_CULTURE;
            ExtractionMode mode           = (ExtractionMode)args[3];
            string         exportFilePath = (string)args[4];
            string         languageDbPath = (string)args[5];

            try
            {
                this.DisableForm();

                ITranslator translator;
                switch (mode)
                {
                case ExtractionMode.DatabaseTranslation:
                    translator = new LegacyLanguageDbTranslator();
                    ((LegacyLanguageDbTranslator)translator).ReadDatabase(languageDbPath);
                    break;

                case ExtractionMode.Double:
                    translator = new ExpandedStringTranslator();
                    break;

                case ExtractionMode.Reverse:
                    translator = new ReverseStringTranslator();
                    break;

                case ExtractionMode.WebTranslation:
                    translator = new WebServiceTranslator();
                    break;

                default:
                    translator = new NormalizedStringTranslator();
                    break;
                }
                ResourceTool.ExportLanguage(installPath, sourceCulture, targetCulture, translator, exportFilePath, new AppendLogCallback(this.AppendToLog));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Export Failed", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                this.EnableForm();
            }
        }
Пример #2
0
        private void QueueExctractionWorkerThread(object state)
        {
            object[]       args           = state as object[];
            string         installPath    = (string)args[0];
            string         sourceCulture  = (string)args[1];
            string         targetCulture  = (string)args[2] ?? ResourceTool.DEFAULT_CULTURE;
            ExtractionMode mode           = (ExtractionMode)args[3];
            string         exportFilePath = (string)args[4];
            string         languageDbPath = (string)args[5];

            try
            {
                ITranslator translator;
                switch (mode)
                {
                case ExtractionMode.DatabaseTranslation:
                    translator = new LegacyLanguageDbTranslator();
                    ((LegacyLanguageDbTranslator)translator).ReadDatabase(languageDbPath);
                    break;

                case ExtractionMode.Double:
                    translator = new ExpandedStringTranslator();
                    break;

                case ExtractionMode.Reverse:
                    translator = new ReverseStringTranslator();
                    break;

                case ExtractionMode.WebTranslation:
                    translator = new WebServiceTranslator();
                    break;

                default:
                    translator = new NormalizedStringTranslator();
                    break;
                }
                ResourceTool.ExportLanguage(installPath, sourceCulture, targetCulture, translator, exportFilePath, new AppendLogCallback(this.AppendToLog));
                AppendToLog(string.Empty);
                MsgBox.ShowInformation(SharedStrings.LANGUAGE_READY);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex);
            }
        }
        private void BindTranslationCultures(string sourceCultureName)
        {
            Dictionary <string, CultureInfo> cultureDictionary = new Dictionary <string, CultureInfo>();
            List <string> cultureList = new List <string>();

            List <string> supportedLanguages = WebServiceTranslator.GetSupportedTargetLanguages(sourceCultureName);

            // sort the list by english name

            foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
            {
                if (ci.Name == "")
                {
                    continue;
                }
                if (supportedLanguages.Contains(ci.Name))
                {
                    cultureDictionary.Add(ci.EnglishName, ci);
                    cultureList.Add(ci.EnglishName);
                }
            }

            cultureList.Sort();

            // add sorted list to combobox

            ddlCultures.Items.Clear();

            foreach (string cultureEnglishName in cultureList)
            {
                CultureInfo ci = cultureDictionary[cultureEnglishName];
                int         i  = ddlCultures.Items.Add(new DropDownListItem(ci.Name, cultureEnglishName, ci.NativeName));
            }

            if (ddlCultures.Items.Count > 0)
            {
                this.ddlCultures.SelectedIndex = 0;
            }
        }