In c# dei comodi file di risorse, resx, rimangono alla base dell'apparato tecnico. Quello che diventa più impegnativo di solito è mantener allineate tutte le lingue possibili.
Quando poi le chiavi diventano migliaia, individuare le "nuove chiavi non tradotte" diventa una fatica inenarrabile. Per questo mi sono scritto un piccolo programmino di supporto
Ho creato una semplice console application, inserito dentro il progetto due resx (ItalianoMaster.resx ed EnglishTranslate.resx)
E il semplice codice
static void Main(string[] args) { // carico tutte le traduzioni di default (per me italiano) Dictionaryitaliano = new Dictionary (); ResourceSet resourceSetùMaster = ItalianoMaster.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); foreach (DictionaryEntry entry in resourceSetùMaster) { string resourceKey = entry.Key as string; object resource = entry.Value; italiano.Add(resourceKey, resource.ToString()); } // carico tutte le traduzioni in inglese Dictionary inglese = new Dictionary (); ResourceSet resourceSet = EnglishTranslate.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); foreach (DictionaryEntry entry in resourceSet) { string resourceKey = entry.Key as string; object resource = entry.Value; inglese.Add(resourceKey, resource.ToString()); } foreach (string k in italiano.Keys) { if (inglese.ContainsKey(k)) { inglese.Remove(k); }else { System.IO.File.AppendAllText(@"c:\temp\daaggiungere.txt", String.Format("{0}ç{1}{2}", k, italiano[k], Environment.NewLine) ); } }
Nessun commento:
Posta un commento