public string GetTextString( string textString, string fallback = "", IDictionary <string, string> replacements = null, IDictionary <Regex, MatchEvaluator> regexReplacements = null, string libName = null, bool overridePrefix = false, bool caseInsensitive = true) { TextstringHandler handler = null; try { handler = libName == null ? _handlers.First().Value : _handlers[libName]; } catch (Exception ex) { _logger.Error(new ExceptionData(ex, $"[TextStringHelper] Failed to get textStringHandler for textString {textString}") { { "libName", libName }, { "libs", _handlers.Keys }, { "stringName", textString }, { "overridePrefix", overridePrefix }, { "fallback", fallback } }); } return(ResolveTextString(handler, textString, fallback, replacements, regexReplacements, overridePrefix, caseInsensitive)); }
public string GetTextString <TLibKey>( string textString, string fallback = "", IDictionary <string, string> replacements = null, IDictionary <Regex, MatchEvaluator> regexReplacements = null, TLibKey libName = default, bool overridePrefix = false, bool caseInsensitive = true) { TextstringHandler handler = null; try { if (!_handlers.TryGetValue(libName.ToString() ?? "", out handler)) { handler = _handlers.First().Value; } } catch (Exception ex) { _logger.Error(new ExceptionData(ex, $"[TextStringHelper] Failed to get textStringHandler for textString {textString}") { { "libName", libName }, { "libs", _handlers.Keys }, { "stringName", textString }, { "overridePrefix", overridePrefix }, { "fallback", fallback } }); } return(ResolveTextString(handler, textString, fallback, replacements, regexReplacements, overridePrefix, caseInsensitive)); }
private string ResolveTextString( TextstringHandler handler, string textString, string fallback = "", IDictionary <string, string> replacements = null, IDictionary <Regex, MatchEvaluator> regexReplacements = null, bool overridePrefix = false, bool caseInsensitive = true) { var result = fallback; if (handler != null) { try { result = handler.GetText(textString, overridePrefix) ?? fallback; } catch (Exception ex) { _logger.Warning(new ExceptionData(ex, $"[TextStringHelper] Failed to load textString {textString}") { { "stringName", textString }, { "overridePrefix", overridePrefix }, { "fallback", fallback } }); result = fallback; } } if (replacements != null) { foreach (var(search, value) in replacements) { result = Regex.Replace( result, Regex.Escape(search), value, caseInsensitive ? RegexOptions.IgnoreCase : RegexOptions.None); } } if (regexReplacements != null) { foreach (var(regex, evaluator) in regexReplacements) { if (regex != null) { result = regex.Replace(result, evaluator); } } } return(result); }