/// <summary> /// Liefert den gewünschten String abhängig vom Key in der gewünschhten Sprache /// </summary> /// <param name="region">Bestimmt den Namen der gesuchten Region</param> /// <param name="uid">uid des String-Eintrags</param> /// <param name="attribute">which attribute should be translated, by default allways attribute "name"</param> /// <returns>String</returns> public string GetString(string region, string uid, string attribute = "name") { string translationString = string.Format("{0}_{1}_{2}", region, uid, attribute); ResourceManager rm = new ResourceManager("TheAirline.Data.languagefiles.language", Assembly.GetExecutingAssembly()); string text = rm.GetString(translationString); if (text != null) { return(text); } else { string culture = AppSettings.GetInstance().getLanguage().CultureInfo; // Lese Text mit den gegebenen Parametern region, key und language try { // Prüfen ob Regions vorhanden sind if (regions.Count > 0) { // Prüfen ob angeforderte Region vorhanden ist if (regions[region] != null) { if (((Hashtable)regions[region])[uid] != null) { // Prüfen ob gewählte Sprache vorhanden ist; // ansonsten wird die Default-Sprache verwendet // if (((Dictionary<string, string>)((Hashtable)regions[region])[key]).ContainsKey(language.ToString())) if (((Hashtable)((Hashtable)regions[region])[uid]).ContainsKey(culture)) { text = ((Dictionary <string, string>)(((Hashtable)((Hashtable)regions[region])[uid])[culture]))[attribute]; } else { text = ((Dictionary <string, string>)(((Hashtable)((Hashtable)regions[region])[uid])[DefaultLanguage]))[attribute]; } return(text); } else { // we try it in the "General" region if (((Hashtable)((Hashtable)regions["General"])[uid]).ContainsKey(culture)) { text = ((Dictionary <string, string>)(((Hashtable)((Hashtable)regions["General"])[uid])[culture]))[attribute]; } else { text = ((Dictionary <string, string>)(((Hashtable)((Hashtable)regions["General"])[uid])[DefaultLanguage]))[attribute]; } return(text); } } else { return(uid); } // Region nicht vorhanden // throw new Exception(string.Format( // "Region {0} ist nicht vorhanden", region)); } else { return(uid); } } // Fehlerbehandlung catch (System.Exception ex) { throw new Exception("Folgende Parameter ergaben kein Ergebnis im aktuellen Objekt:" + "Region: " + region + " " + "Key: " + uid + " " + "Language: " + System.Threading.Thread.CurrentThread.CurrentUICulture.ToString() + "Fehlermeldung: " + ex.Message); } } }
// simple method for initializing the Translator public static void Init() { AppSettings.GetInstance(); }