Example #1
0
        private static string GetLangFilePath(LangsEnum lang)
        {
            var str = new StringBuilder();

            str.Append(LangsFolder).Append("/").Append(lang.ToString().ToLower()).Append(LangFileExt);
            return(str.ToString());
        }
Example #2
0
        public static string GetTranslation(string key, LangsEnum lang, params object[] values)
        {
            var strToFormat = GetTranslation(key, lang);

            if (strToFormat == null)
            {
                return($"#{key} not found"); // Translation not found for the given key and lang
            }
            var index = 0;

            //Replacing <Placeholder> by {0}, {1} etc
            strToFormat = Regex.Replace(strToFormat, @Placeholder, delegate { return("{" + index++ + "}"); });
            return(string.Format(strToFormat, values)); // Format and return the translation
        }
Example #3
0
        public static string GetTranslation(string key, LangsEnum lang)
        {
            var       filePath   = GetLangFilePath(lang);
            const int bufferSize = 1024;

            using (var fileStream = File.OpenRead(filePath))
            {
                using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, bufferSize))
                {
                    string line;
                    while ((line = streamReader.ReadLine()) != null)
                    {
                        var parts   = line.Split(new[] { Separator }, 2); // Split only on 1st occurence (we want 2 parts max)
                        var fileKey = parts[0];                           // Left part of the separator
                        if (!key.Equals(fileKey))
                        {
                            continue;     //Not the correct key, we go to next loop
                        }
                        return(parts[1]); // Right part of the separator
                    }
                }
            }
            return(null); // Translation not found for the given key and lang
        }
Example #4
0
        private static LangsEnum _currentLanguage = LangsEnum.English; //Default

        public static void SetCurrentLanguage(LangsEnum lang)
        {
            _currentLanguage = lang;
        }