using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VRH.Log4Pro.MultiLanguageManager; namespace Vrh.OneReport.Lib.Areas.OneReport.Helpers { public class LangHelper : IDisposable { #region static variables protected static bool _CollectWordCodes = false; #endregion static variables #region instance variables protected HashSet _usedWordCodes = null; #endregion instance variables #region instance methods public LangHelper() { } public LangHelper(LangHelper orig) { _usedWordCodes = orig._usedWordCodes; if (_usedWordCodes == null && _CollectWordCodes) { orig._usedWordCodes = _usedWordCodes = new HashSet(); } } /// /// Fordítás lekérdezése a MultILanguageManager használatával, wordCode alapján az aktális felhasználónak megfelelő nyelven /// /// Szó azonosító kód /// Alapértelmezett fisszaadott érték, ha nem elérhető a MultiLanguageManager /// A fordítás a megfelelő nyelven public virtual string GetTranslation(string wordCode, string defaultText = null) { return MultiLanguageManager.GetTranslation(wordCode, defaultText); } /// /// Fordítás hozzáadása vagy módosítása amennyiben létezik a nyelv és a szó azonosító /// /// Szó azonosító kód /// A fordítása megadott nyelven /// Nyelvi azonosító kód public virtual void StoreTranslation(string WordCode, string text, string languageCode = "hu-HU") { MultiLanguageManager.AddOrModifyWord(WordCode, text); MultiLanguageManager.AddOrModifyTranslation(languageCode, WordCode, text, true, false); } protected void AddPrefixToWordCode(string WordCode, string Prefix) { MultiLanguageManager.AddNewFirstTagToWordCode(WordCode, Prefix); } protected HashSet GetStoredWordCodesForGroup(string group) { return new HashSet(MultiLanguageManager.GetWordCodesAtGroup(group)); } #endregion instance methods #region static methods public static void CollectWordCodes(bool collect) { _CollectWordCodes = collect; } public static void InitializeAPMWordCodes() { LangHelperNS.InitializeWordCodes(); } protected static void InitializeTranslation(string nameSpace, Dictionary words, string languageCode = "hu-HU", HashSet wordcodelist = null) { string fullwcode; foreach (var word in words) { fullwcode = nameSpace + word.Key; MultiLanguageManager.AddOrModifyWord(fullwcode, word.Value); MultiLanguageManager.AddOrModifyTranslation(languageCode, fullwcode, word.Value, true, false); if (wordcodelist != null) wordcodelist.Add(fullwcode); } } public static HashSet PurgeAllUnusedWordCodes(string moduleNamespace) { return LangHelperNS.PurgeAllUnusedWordCodes(moduleNamespace); } #endregion static methods #region IDispose public void Dispose() { } #endregion } }