Esempio n. 1
0
 public static String GetTranslatedString(this LanguageDictionary languageDictionary, String sectionName, String keyName, String fallbackText)
 {
     return((languageDictionary != null &&
             languageDictionary.ContainsSection(sectionName) &&
             languageDictionary[sectionName].ContainsKey(keyName))
         ? languageDictionary[sectionName][keyName]
         : fallbackText);
 }
        public LanguageDictionary LoadLanguagePack(String path)
        {
            LanguageDictionary languageDictionary = null;

            using (StreamReader reader = new StreamReader(path, Encoding.UTF8))
            {
                String line = String.Empty;
                String currentSectionName = String.Empty;

                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();

                    try
                    {
                        if (line.StartsWith("Language"))
                        {
                            languageDictionary = new LanguageDictionary(line.Substring(line.IndexOf('=') + 1).Trim());
                        }
                        else if (line.StartsWith("[") && !line.Equals("[Metadata]"))
                        {
                            currentSectionName = line.Substring(line.IndexOf('[') + 1, line.IndexOf(']') - line.IndexOf('[') - 1);
                            languageDictionary.AddSection(currentSectionName);
                        }
                        else if (line.StartsWith("$"))
                        {
                            languageDictionary[currentSectionName].Add(line.Substring(line.IndexOf('$') + 1, line.IndexOf('=') - line.IndexOf('$') - 1).Trim(), line.Substring(line.IndexOf('=') + 1).Trim());
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new InvalidDataException("Invalid format on line: " + line, ex);
                    }
                }
            }

            return(languageDictionary);
        }
Esempio n. 3
0
        public static String GetTranslatedString(this LanguageDictionary languageDictionary, String path, String fallbackText)
        {
            String[] segments = path.Trim().Split('.');

            return(languageDictionary.GetTranslatedString(segments[0], segments[1], fallbackText));
        }