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.
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);
}
}
}
}