Blame view

Vrh.Web.OneReport.Lib/Helpers/LangHelper.cs 3.69 KB
ab9f2fbe   Schwirg László   Add project files.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
  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<string> _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<string>();
              }
          }
  
          /// <summary>
          /// Fordítás lekérdezése a MultILanguageManager használatával, wordCode alapján az aktális felhasználónak megfelelő nyelven
          /// </summary>
          /// <param name="wordCode">Szó azonosító kód</param>
          /// <param name="defaultText">Alapértelmezett fisszaadott érték, ha nem elérhető a MultiLanguageManager</param>
          /// <returns>A fordítás a megfelelő nyelven</returns>
          public virtual string GetTranslation(string wordCode, string defaultText = null)
          {
              return MultiLanguageManager.GetTranslation(wordCode, defaultText);
          }
  
          /// <summary>
          /// Fordítás hozzáadása vagy módosítása amennyiben létezik a nyelv és a szó azonosító
          /// </summary>
          /// <param name="wordCode">Szó azonosító kód</param>
          /// <param name="text">A fordítása megadott nyelven</param>
          /// <param name="languageCode">Nyelvi azonosító kód</param>
          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<string> GetStoredWordCodesForGroup(string group)
          {
              return new HashSet<string>(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<string, string> words, string languageCode = "hu-HU", HashSet<string> 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<string> PurgeAllUnusedWordCodes(string moduleNamespace)
          {
              return LangHelperNS.PurgeAllUnusedWordCodes(moduleNamespace);
          }
  
          #endregion static methods
  
          #region IDispose
  
          public void Dispose()
          {
          }
  
          #endregion
      }
  }