Exemplo n.º 1
0
 /// <summary>
 /// The user changed the selected RESX file to edit
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void lstResX_SelectedIndexChanged(object sender, EventArgs e)
 {
     lblFileName.Text = ResXUnified.GetBaseName(lstResX.SelectedValue);
     CurrentSelection = lstResX.SelectedValue;
     FillGridView(lstResX.SelectedValue, true);
     FillLanguages();
     btSave.Visible  = true;
     currCultureName = "";
     currEditLang    = "";
 }
Exemplo n.º 2
0
        /// <summary>
        /// Get all the Resx in the web site and list them in a list
        /// </summary>
        protected void GetResX()
        {
            SortedList <string, string> list = ResXUnified.GetResXInDirectory(Path,
                                                                              new GenericPredicate <string, string>(delegate(string[] path)
            {
                return(path[0].Replace(path[1], "").Replace("App_LocalResources", "").Replace("App_GlobalResources", ""));
            }));

            foreach (KeyValuePair <string, string> val in list)
            {
                lstResX.Items.Add(new ListItem(val.Key, val.Value));
            }
        }
Exemplo n.º 3
0
    private void FillGridView(string p, bool reloadFile)
    {
        if (Unified == null || reloadFile)
            Unified = new ResXUnified(p);

        gridView.Columns.Clear();

        SortedList<string, string> langs = Unified.GetLanguages();

        Unit columnSize = new Unit((gridView.Width.Value - 30) / (langs.Values.Count), UnitType.Pixel);

        /*
        ImageField keyColumn = new ImageField();
        keyColumn.HeaderText = "Key";
        keyColumn.DataAlternateTextField = "Key";
        keyColumn.DataImageUrlField = "Key";
        keyColumn.DataImageUrlFormatString = "~/images/information.png"; // ignore key
        //keyColumn.DataField = "Key";
        //keyColumn.ItemStyle.BackColor = Color.Gray;
        //keyColumn.ItemStyle.ForeColor = Color.White;
        keyColumn.ReadOnly = true;
        keyColumn.ItemStyle.Width = new Unit(30);
        keyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
        keyColumn.ControlStyle.Width = new Unit(16);
        gridView.Columns.Add(keyColumn);
         * */
        BoundField keyColumn = new BoundField();
        keyColumn.HeaderText = "Key";
        keyColumn.DataField = "Key";
        keyColumn.ItemStyle.BackColor = Color.Gray;
        keyColumn.ItemStyle.ForeColor = Color.White;
        keyColumn.ReadOnly = true;
        keyColumn.ItemStyle.Width = new Unit(30);
        keyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
        keyColumn.ControlStyle.Width = new Unit(16);
        gridView.Columns.Add(keyColumn);

        foreach (string lang in langs.Values)
        {
            BoundField field = new BoundField();
            CultureInfo culture = null;
            try { culture = new CultureInfo(lang); }
            catch { }
            if (culture != null)
                field.HeaderText = culture.DisplayName;
            else
                field.HeaderText = "Default";

            field.DataField = lang;
            field.ItemStyle.Width = columnSize;
            field.ControlStyle.Width = columnSize;

            gridView.Columns.Add(field);
        }

        gridView.DataSource = Unified.ToDataTable(!chShowEmpty.Checked);
        gridView.DataBind();
    }
Exemplo n.º 4
0
        // process files
        protected void ProcessFiles(DirectoryInfo dir, List <string> processed)
        {
            // Subfiles
            try         // Avoid errors such as "Access Denied"
            {
                foreach (FileInfo iInfo in dir.GetFiles())
                {
                    if (Path.GetExtension(iInfo.FullName).ToLower().EndsWith("resx"))
                    {
                        // default culture resx file
                        string defaultFile = Path.Combine(dir.FullName,
                                                          ResXUnified.GetBaseName(iInfo.FullName) + ".resx");

                        // only the culture name
                        string culture = ResXUnified.FindCultureInFilename(iInfo.FullName);

                        switch (this.OperationSettings.OperationMode)
                        {
                        case ResXOperationModes.GetAvailableCultures:
                            this.AddCultureToAvailables(culture);

                            break;

                        case ResXOperationModes.CreateNewCulture:
                            if (this.ContinueCondition(processed, defaultFile))
                            {
                                continue;
                            }

                            // build target file name
                            var targetFile = Path.Combine(dir.FullName, ResXUnified.GetBaseName(iInfo.FullName) +
                                                          "." + OperationSettings.SelectedCulture + ".resx");
                            // copy default resx to the new resx
                            if (!File.Exists(targetFile) && File.Exists(defaultFile))
                            {
                                File.Copy(defaultFile, targetFile, false);
                                mMessage(targetFile);
                            }

                            processed.Add(defaultFile);

                            break;

                        case ResXOperationModes.Synchronize:
                            if (this.ContinueCondition(processed, defaultFile))
                            {
                                continue;
                            }
                            // some kind of bug here with the full path concatenation - quick & dirty fix
                            if (File.Exists(defaultFile))
                            {
                                mMessage(defaultFile);
                                processed.Add(defaultFile);
                                SynchronizeMultipleFiles(defaultFile, this.OperationSettings.Backup,
                                                         this.OperationSettings.AddOnly, true);
                            }

                            break;

                        case ResXOperationModes.CreatePackage:
                            // buffer default resx culture file
                            string translatedFile = defaultFile;
                            // get selected culture for exporting
                            string selectedCulture = GetCultureFromCombo(OperationSettings.SelectedCulture);
                            // process all cultures except the default
                            if (culture.ToLower() != "default")
                            {
                                translatedFile = Path.Combine(dir.FullName,
                                                              ResXUnified.GetBaseName(iInfo.FullName) + "." + culture + ".resx");
                            }

                            if (this.ContinueCondition(ResXFiles, translatedFile))
                            {
                                continue;
                            }

                            if (selectedCulture.ToLower().Equals(culture.ToLower()))
                            {
                                ResXFiles.Add(translatedFile);
                            }

                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                mMessage(ex.ToString()); // send message to the status textbox
            }
        }
 public ResXUnifiedIndexer(ResXUnified resx, string language)
 {
     this.resx = resx;
     this.language = language;
 }
Exemplo n.º 6
0
        private void FillGridView(string p, bool reloadFile)
        {
            if (Unified == null || reloadFile)
            {
                Unified = new ResXUnified(p);
            }

            gridView.Columns.Clear();

            SortedList <string, string> langs = Unified.GetLanguages();

            Unit columnSize = new Unit(Math.Round((gridView.Width.Value) / (langs.Values.Count)), UnitType.Percentage);

            ImageField keyColumn = new ImageField();

            keyColumn.HeaderText               = "Key";
            keyColumn.DataAlternateTextField   = "Key";
            keyColumn.DataImageUrlField        = "Key";
            keyColumn.DataImageUrlFormatString = "~/App_Themes/" + Page.Theme + "/images/information.png";             // ignore key
            //keyColumn.DataField = "Key";
            //keyColumn.ItemStyle.BackColor = Color.Gray;
            //keyColumn.ItemStyle.ForeColor = Color.White;
            keyColumn.ReadOnly                  = true;
            keyColumn.ItemStyle.Width           = new Unit(30);
            keyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
            keyColumn.ControlStyle.Width        = new Unit(16, UnitType.Pixel);
            gridView.Columns.Add(keyColumn);

            foreach (string lang in langs.Values)
            {
                CultureInfo culture = null;
                try { culture = new CultureInfo(lang); }
                catch { }
                BoundField field = new BoundField
                {
                    HeaderText = culture != null ? culture.DisplayName : @"Default",
                    DataField  = lang,
                    ReadOnly   = (culture == null) && !Roles.IsUserInRole("Administrator")
                };
                field.ControlStyle.Width = new Unit(99, UnitType.Percentage);
                if (culture != null)
                {
                    if (culture.TextInfo.IsRightToLeft)
                    {
                        field.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
                        field.ControlStyle.CssClass     = "rtl";
                    }
                }
                if (lang == "Default")
                {
                    gridView.Columns.Insert(1, field);
                }
                else if (culture.TwoLetterISOLanguageName.ToLower() == currEditLang.ToLower())
                {
                    currCultureName = culture.TextInfo.CultureName;
                    gridView.Columns.Add(field);
                }
            }
            if (gridView.Columns.Count < 3 && !String.IsNullOrEmpty(currEditLang))
            {
                try
                {
                    if (!String.IsNullOrEmpty(currCultureName))
                    {
                        ddLanguage.SelectedValue = currCultureName;
                    }
                }
                catch (Exception)
                {
                    //don't throw an error if it doesn't exist in the list
                }

                pnlAddLang.Visible = true;
            }
            else
            {
                pnlAddLang.Visible = false;
            }
            gridView.DataSource = Unified.ToDataTable(true);
            gridView.DataBind();
        }