-
Notifications
You must be signed in to change notification settings - Fork 12
/
Language.cs
137 lines (93 loc) · 5.4 KB
/
Language.cs
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using System.Collections.Generic;
using System.Windows.Forms;
namespace CNC_Assist
{
static class Language
{
private static List<langString> ValueLangStrings = new List<langString>();
public static void Init()
{
ValueLangStrings.Clear();
ValueLangStrings.Add(new langString(@"_formCaption_", @"Хобби ЧПУ", @"Hobby CNC"));
ValueLangStrings.Add(new langString(@"_menuFile_" , @"Файл" , @"File"));
ValueLangStrings.Add(new langString(@"_menuopenfile_" , @"Открыть файл..." , @"Open file..."));
ValueLangStrings.Add(new langString(@"_menuloadkodefrombuffer_" , @"Получить из буффера" , @"Get from buffer"));
ValueLangStrings.Add(new langString(@"_menucloseprogramm_" , @"Закрыть" , @"Close"));
ValueLangStrings.Add(new langString(@"_menumodules_" , @"Модули" , @"Modules"));
ValueLangStrings.Add(new langString(@"_menuwebcamera_" , @"Работа с WEB камерой" , @"Work with WEB camera"));
ValueLangStrings.Add(new langString(@"_menuscannSurface_" , @"Сканирование поверхности" , @"Scan surface"));
ValueLangStrings.Add(new langString(@"_menuhelp_" , @"Справка" , @"Help"));
ValueLangStrings.Add(new langString(@"_menuabout_" , @"О программе" , @"About"));
ValueLangStrings.Add(new langString(@"_menulanguage_" , @"Выбор языка" , @"Select language"));
ValueLangStrings.Add(new langString(@"_menurus_" , @"Русский" , @"Russian"));
ValueLangStrings.Add(new langString(@"_menueng_" , @"Английский" , @"English"));
ValueLangStrings.Add(new langString(@"_panelSpindel_" , @"Шпиндель" , @"Shpindel"));
ValueLangStrings.Add(new langString(@"_panelEnergystop_" , @"ОСТАНОВКА" , @"STOP"));
ValueLangStrings.Add(new langString(@"_panelSetting_" , @"Настройки" , @"Setting"));
ValueLangStrings.Add(new langString(@"_panelEditGkode_" , @"Корректировка G-Кода" , @"Edit G-kode"));
ValueLangStrings.Add(new langString(@"_panelAdditionally_" , @"Дополнительно" , @"Additionally"));
ValueLangStrings.Add(new langString(@"_panelSetting3D_" , @"настройки 3D" , @"Setting 3D"));
ValueLangStrings.Add(new langString(@"_panelConnect_" , @"Подключение к контроллеру" , @"Connect to controller"));
ValueLangStrings.Add(new langString(@"_panelOpenFile_" , @"Открыть файл" , @"Setting 3D"));
ValueLangStrings.Add(new langString(@"_panelExit_" , @"Выход" , @"EXIT"));
}
// рекурсивная функция для применения мультиязычности
public static void TranlateMenuStrip(ToolStripMenuItem _menuItem)
{
string tagElement = _menuItem.Tag.ToString();
if (tagElement.Substring(0, 1) == "_")
{
// попытаемся перевести
_menuItem.Text = GetTranslate(GlobalSetting.AppSetting.Language, tagElement);
}
foreach (ToolStripMenuItem drmenu in _menuItem.DropDownItems)
{
TranlateMenuStrip(drmenu);
}
}
public static string GetTranslate(Languages _lang,string _value)
{
if (_value == "") return "";
//_dialog_setting_ rus Настройки программы
//_dialog_setting_ eng Setting application
langString ss = null;
//ss = ValueLangStrings.Find(x => x._NAME_.Contains(_value));
foreach (langString langRow in ValueLangStrings)
{
if (langRow._NAME_ == _value)
{
ss = langRow;
break;
}
}
if (ss != null)
{
switch (_lang)
{
case Languages.Russian:
return ss.rus;
case Languages.English:
return ss.eng;
}
return ss.eng;
}
//TODO: сделать механизм по нормальному
return _value;
}
}
class langString
{
public string _NAME_;
public string rus;
public string eng;
public langString(string _name, string _rus, string _eng)
{
_NAME_ = _name;
rus = _rus;
eng = _eng;
}
}
}
//Language.Init();
//Tranlate(this);
//TranslateMenu(this.MainMenu);