示例#1
0
        /// <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);
                }
            }
        }
示例#2
0
 // simple method for initializing the Translator
 public static void Init()
 {
     AppSettings.GetInstance();
 }