public static Dictionary <string, string> CreateLocalizations(Dictionary <LanguageIdPrimitive, Dictionary <uint, LanguageItem> > source, uint entryId, LanguageValueProcessor[] valueProcessors = null) { var result = new LocalizedText(); foreach (LanguageIdPrimitive languageId in Languages) { if (source.TryGetValue(languageId, out Dictionary <uint, LanguageItem> language) == false) { continue; } LanguageItem item = language[entryId]; string resultValue = item.Value; if (valueProcessors != null) { foreach (LanguageValueProcessor valueProcessor in valueProcessors) { if (valueProcessor != null) { resultValue = valueProcessor?.Invoke(languageId, resultValue); } } } result.Add(LanguageIdToLanguageCode(languageId), resultValue); } return(result); }