private static string GetLangFilePath(LangsEnum lang) { var str = new StringBuilder(); str.Append(LangsFolder).Append("/").Append(lang.ToString().ToLower()).Append(LangFileExt); return(str.ToString()); }
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 }
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 }
private static LangsEnum _currentLanguage = LangsEnum.English; //Default public static void SetCurrentLanguage(LangsEnum lang) { _currentLanguage = lang; }