webForumDet fria alternativet

Ändra resx-filer

.NET

2 svar · 462 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

Hej!

Har problem med att lägga till översättningar i resx-filerna.
Har följande kod:

  private void UpdateLanguage()
        {
            string Key = HtmlFix(c.Request.Form["Key"]);
            string Text = HtmlFix(c.Request.Form["Text"]);
            string Lang = HtmlFix(c.Request.Form["Lang"]);
            string url = c.Server.MapPath("~/App_GlobalResources/" + "Main." + Lang + ".resx");
            bool IsExisting = false;

            using (ResXResourceReader rsxr = new ResXResourceReader(url))
            {
                foreach (DictionaryEntry e in rsxr)
                {
                    if (e.Key.ToString() == Key.ToString())
                    {
                        IsExisting = true;
                        break;
                    }
                }
            }

            if (IsExisting)
            {
            }
            else
            {
                using (ResXResourceWriter rsxw = new ResXResourceWriter(url))
                {
                    rsxw.AddMetadata(Key, Text);
                }
            }
        }

När jag kör detta så tas samtliga rader som redan finns i resx-filen bort, och enbart den raden som ska sparas hamnar i filen. Nu vill jag enbart läga till en rad, inte ta bort övriga.

Hur gör man detta?

Tacksam för hjälp =)

Medlem sedan dec. 2005198 inlägg
#2

Testa att lägga till raden i din foreach sats istället för utanför om den inte redan finns:

using (ResXResourceReader rsxr = new ResXResourceReader(url)) {
      foreach (DictionaryEntry e in rsxr) {
            if (e.Key.ToString() != Key.ToString()) {
                  using (ResXResourceWriter rsxw = new ResXResourceWriter(url)) {
                        rsxw.AddMetadata(Key, Text);
                  }
            }
      }
}
Medlem sedan sep. 2005833 inlägg
#3

tack, men tyvärr så vart det ingen förbättring.
Rätt skumt att alla som finns i resx-filen tas bort, och sen lägger till en rad.

Lösning, någon? :stud

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)