2017-06-09 1 views
0

Dans mon application, je suis en boucle sur toutes les entrées d'un fichier resx avec une certaine culture, dans mon cas norvégien. Ensuite, j'ai mis ces chaînes à travers un api google traducteur pour obtenir le texte suédois.C# éditer le fichier resx programitcally

Maintenant j'essaye de remplacer le texte suédois dans le dossier suédois de resx. Est-il possible de le faire?

Voilà comment je reçois la version suédoise

ResourceSet resourceSet = Texts.ResourceManager.GetResourceSet(new CultureInfo("nb-NO"), true, true); 

foreach (DictionaryEntry entry in resourceSet){ 
    string resourceKey = entry.Key.ToString(); 
    string resource = entry.Value as string; 
    arguements["q"] = resource; 
    string result = Call(arguements); 
} 

Je suis en train de mettre la version suédoise dans le fichier de ressources suédois. Des vues?

+1

Que diriez-vous du guide de Microsoft? https://docs.microsoft.com/en-us/dotnet/framework/resources/working-with-resx-files-programmatically –

Répondre

0

Cet exemple complet crée un nouveau fichier de ressources basé sur celui existant, en analysant ses valeurs.

private void ProcessResource() 
{ 
    var resxFile = @"..\..\Resource1.de-DE.resx"; 
    var destResxFile = @"..\..\Resource1.ru-RU.resx"; 

    using (var reader = new ResXResourceReader(resxFile)) 
    { 
     using (var writer = new ResXResourceWriter(destResxFile)) 
     { 
      foreach (DictionaryEntry entry in reader) 
      { 
       writer.AddResource(entry.Key.ToString(), Translate(entry.Value.ToString())); 
      } 
     } 
    } 
} 

private string Translate(string value) => "translated " + value;