LangHelper.cs
3.69 KB
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
}
}