mirror of
https://github.com/netchx/netch.git
synced 2026-05-11 23:45:06 +08:00
Refactoring InitText
This commit is contained in:
@@ -14,9 +14,7 @@ namespace Netch.Forms
|
||||
|
||||
private void AboutForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text = i18N.Translate(Text);
|
||||
ChannelLabel.Text = i18N.Translate(ChannelLabel.Text);
|
||||
SponsorGroupBox.Text = i18N.Translate(SponsorGroupBox.Text);
|
||||
i18N.TranslateForm(this);
|
||||
}
|
||||
|
||||
private void NetchPictureBox_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -14,10 +14,7 @@ namespace Netch.Forms
|
||||
|
||||
private void GlobalBypassIPForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text = i18N.Translate(Text);
|
||||
AddButton.Text = i18N.Translate(AddButton.Text);
|
||||
DeleteButton.Text = i18N.Translate(DeleteButton.Text);
|
||||
ControlButton.Text = i18N.Translate(ControlButton.Text);
|
||||
i18N.TranslateForm(this);
|
||||
|
||||
IPListBox.Items.AddRange(Global.Settings.BypassIPs.ToArray());
|
||||
|
||||
|
||||
@@ -166,6 +166,7 @@ namespace Netch.Forms
|
||||
Size = new Size(259, 22),
|
||||
Text = i18N.TranslateFormat("Add [{0}] Server", fullName),
|
||||
};
|
||||
_mainFormText.Add(control.Name, new[] {"Add [{0}] Server", fullName});
|
||||
control.Click += AddServerToolStripMenuItem_Click;
|
||||
ServerToolStripMenuItem.DropDownItems.Add(control);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
@@ -174,47 +177,82 @@ namespace Netch.Forms
|
||||
Show();
|
||||
}
|
||||
|
||||
private readonly Dictionary<string, object> _mainFormText = new Dictionary<string, object>();
|
||||
private bool _textRecorded;
|
||||
|
||||
private void InitText()
|
||||
{
|
||||
ServerToolStripMenuItem.Text = i18N.Translate("Server");
|
||||
ImportServersFromClipboardToolStripMenuItem.Text = i18N.Translate("Import Servers From Clipboard");
|
||||
ModeToolStripMenuItem.Text = i18N.Translate("Mode");
|
||||
HelpToolStripMenuItem.Text = i18N.Translate("Help");
|
||||
CreateProcessModeToolStripMenuItem.Text = i18N.Translate("Create Process Mode");
|
||||
SubscribeToolStripMenuItem.Text = i18N.Translate("Subscribe");
|
||||
ManageSubscribeLinksToolStripMenuItem.Text = i18N.Translate("Manage Subscribe Links");
|
||||
UpdateServersFromSubscribeLinksToolStripMenuItem.Text = i18N.Translate("Update Servers From Subscribe Links");
|
||||
OptionsToolStripMenuItem.Text = i18N.Translate("Options");
|
||||
ReloadModesToolStripMenuItem.Text = i18N.Translate("Reload Modes");
|
||||
UninstallServiceToolStripMenuItem.Text = i18N.Translate("Uninstall NF Service");
|
||||
CleanDNSCacheToolStripMenuItem.Text = i18N.Translate("Clean DNS Cache");
|
||||
UpdateACLToolStripMenuItem.Text = i18N.Translate("Update ACL");
|
||||
updateACLWithProxyToolStripMenuItem.Text = i18N.Translate("Update ACL with proxy");
|
||||
reinstallTapDriverToolStripMenuItem.Text = i18N.Translate("Reinstall TUN/TAP driver");
|
||||
CheckForUpdatesToolStripMenuItem.Text = i18N.Translate("Check for updates");
|
||||
OpenDirectoryToolStripMenuItem.Text = i18N.Translate("Open Directory");
|
||||
AboutToolStripButton.Text = i18N.Translate("About");
|
||||
fAQToolStripMenuItem.Text = i18N.Translate("FAQ");
|
||||
NewVersionLabel.Text = i18N.Translate("New version available");
|
||||
// VersionLabel.Text = i18N.Translate("xxx");
|
||||
exitToolStripMenuItem.Text = i18N.Translate("Exit");
|
||||
ConfigurationGroupBox.Text = i18N.Translate("Configuration");
|
||||
ProfileLabel.Text = i18N.Translate("Profile");
|
||||
ModeLabel.Text = i18N.Translate("Mode");
|
||||
ServerLabel.Text = i18N.Translate("Server");
|
||||
// UsedBandwidthLabel.Text = i18N.Translate("Used: 0 KB");
|
||||
// DownloadSpeedLabel.Text = i18N.Translate("↓: 0 KB/s");
|
||||
// UploadSpeedLabel.Text = i18N.Translate("↑: 0 KB/s");
|
||||
NotifyIcon.Text = i18N.Translate("Netch");
|
||||
ShowMainFormToolStripButton.Text = i18N.Translate("Show");
|
||||
ExitToolStripButton.Text = i18N.Translate("Exit");
|
||||
SettingsButton.Text = i18N.Translate("Settings");
|
||||
ProfileGroupBox.Text = i18N.Translate("Profiles");
|
||||
// 加载翻译
|
||||
#region Record English
|
||||
|
||||
if (!_textRecorded)
|
||||
{
|
||||
void RecordText(Component component)
|
||||
{
|
||||
try
|
||||
{
|
||||
switch (component)
|
||||
{
|
||||
case TextBoxBase _:
|
||||
case ListControl _:
|
||||
break;
|
||||
case Control c:
|
||||
_mainFormText.Add(c.Name, c.Text);
|
||||
break;
|
||||
case ToolStripItem c:
|
||||
_mainFormText.Add(c.Name, c.Text);
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (ArgumentException)
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
Utils.Utils.ComponentIterator(this, RecordText);
|
||||
Utils.Utils.ComponentIterator(NotifyMenu, RecordText);
|
||||
_textRecorded = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Translate
|
||||
|
||||
void TranslateText(Component component)
|
||||
{
|
||||
switch (component)
|
||||
{
|
||||
case TextBoxBase _:
|
||||
case ListControl _:
|
||||
break;
|
||||
case Control c:
|
||||
|
||||
c.Text = ControlText(c.Name);
|
||||
break;
|
||||
case ToolStripItem c:
|
||||
c.Text = ControlText(c.Name);
|
||||
break;
|
||||
}
|
||||
|
||||
string ControlText(string name)
|
||||
{
|
||||
var value = _mainFormText[name];
|
||||
if (value.Equals(string.Empty)) return string.Empty;
|
||||
|
||||
if (value is object[] values)
|
||||
return i18N.TranslateFormat(values.First() as string, values.Skip(1).ToArray());
|
||||
else
|
||||
return i18N.Translate(value);
|
||||
}
|
||||
}
|
||||
|
||||
Utils.Utils.ComponentIterator(this, TranslateText);
|
||||
Utils.Utils.ComponentIterator(NotifyMenu, TranslateText);
|
||||
|
||||
#endregion
|
||||
|
||||
UsedBandwidthLabel.Text = $@"{i18N.Translate("Used", ": ")}0 KB";
|
||||
State = State;
|
||||
|
||||
VersionLabel.Text = UpdateChecker.Version;
|
||||
}
|
||||
|
||||
@@ -275,10 +313,8 @@ namespace Netch.Forms
|
||||
}
|
||||
|
||||
Hide();
|
||||
|
||||
var server = Global.Settings.Server[ServerComboBox.SelectedIndex];
|
||||
Servers.GetUtilByTypeName(server.Type).Edit(server);
|
||||
|
||||
InitServer();
|
||||
Configuration.Save();
|
||||
Show();
|
||||
@@ -288,7 +324,6 @@ namespace Netch.Forms
|
||||
{
|
||||
Enabled = false;
|
||||
StatusText(i18N.Translate("Testing"));
|
||||
|
||||
try
|
||||
{
|
||||
await Task.Run(TestServer);
|
||||
@@ -382,12 +417,9 @@ namespace Netch.Forms
|
||||
}
|
||||
|
||||
var index = ServerComboBox.SelectedIndex;
|
||||
|
||||
Global.Settings.Server.Remove(ServerComboBox.SelectedItem as Server);
|
||||
InitServer();
|
||||
|
||||
Configuration.Save();
|
||||
|
||||
if (ServerComboBox.Items.Count > 0)
|
||||
{
|
||||
ServerComboBox.SelectedIndex = index != 0 ? index - 1 : index;
|
||||
|
||||
@@ -110,15 +110,8 @@ namespace Netch.Forms.Mode
|
||||
|
||||
public void ModeForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text = i18N.Translate(Text);
|
||||
ConfigurationGroupBox.Text = i18N.Translate(ConfigurationGroupBox.Text);
|
||||
RemarkLabel.Text = i18N.Translate(RemarkLabel.Text);
|
||||
FilenameLabel.Text = i18N.Translate(FilenameLabel.Text);
|
||||
UseCustomFilenameBox.Text = i18N.Translate(UseCustomFilenameBox.Text);
|
||||
AddButton.Text = i18N.Translate(AddButton.Text);
|
||||
ScanButton.Text = i18N.Translate(ScanButton.Text);
|
||||
ControlButton.Text = i18N.Translate(ControlButton.Text);
|
||||
DeleteToolStripMenuItem.Text = i18N.Translate(DeleteToolStripMenuItem.Text);
|
||||
i18N.TranslateForm(this);
|
||||
i18N.Translate(contextMenuStrip);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -79,35 +79,7 @@ namespace Netch.Forms
|
||||
|
||||
private void InitText()
|
||||
{
|
||||
Text = i18N.Translate(Text);
|
||||
|
||||
PortGroupBox.Text = i18N.Translate(PortGroupBox.Text);
|
||||
AllowDevicesCheckBox.Text = i18N.Translate(AllowDevicesCheckBox.Text);
|
||||
TUNTAPAddressLabel.Text = i18N.Translate(TUNTAPAddressLabel.Text);
|
||||
TUNTAPNetmaskLabel.Text = i18N.Translate(TUNTAPNetmaskLabel.Text);
|
||||
TUNTAPGatewayLabel.Text = i18N.Translate(TUNTAPGatewayLabel.Text);
|
||||
UseCustomDNSCheckBox.Text = i18N.Translate(UseCustomDNSCheckBox.Text);
|
||||
ProxyDNSCheckBox.Text = i18N.Translate(ProxyDNSCheckBox.Text);
|
||||
UseFakeDNSCheckBox.Text = i18N.Translate(UseFakeDNSCheckBox.Text);
|
||||
GlobalBypassIPsButton.Text = i18N.Translate(GlobalBypassIPsButton.Text);
|
||||
ControlButton.Text = i18N.Translate(ControlButton.Text);
|
||||
BootShadowsocksFromDLLCheckBox.Text = i18N.Translate(BootShadowsocksFromDLLCheckBox.Text);
|
||||
ModifySystemDNSCheckBox.Text = i18N.Translate(ModifySystemDNSCheckBox.Text);
|
||||
CheckBetaUpdateCheckBox.Text = i18N.Translate(CheckBetaUpdateCheckBox.Text);
|
||||
BehaviorGroupBox.Text = i18N.Translate(BehaviorGroupBox.Text);
|
||||
ExitWhenClosedCheckBox.Text = i18N.Translate(ExitWhenClosedCheckBox.Text);
|
||||
StopWhenExitedCheckBox.Text = i18N.Translate(StopWhenExitedCheckBox.Text);
|
||||
StartWhenOpenedCheckBox.Text = i18N.Translate(StartWhenOpenedCheckBox.Text);
|
||||
MinimizeWhenStartedCheckBox.Text = i18N.Translate(MinimizeWhenStartedCheckBox.Text);
|
||||
RunAtStartupCheckBox.Text = i18N.Translate(RunAtStartupCheckBox.Text);
|
||||
UpdateSubscribeatWhenOpenedCheckBox.Text = i18N.Translate(UpdateSubscribeatWhenOpenedCheckBox.Text);
|
||||
CheckUpdateWhenOpenedCheckBox.Text = i18N.Translate(CheckUpdateWhenOpenedCheckBox.Text);
|
||||
ProfileCountLabel.Text = i18N.Translate(ProfileCountLabel.Text);
|
||||
TcpingAtStartedCheckBox.Text = i18N.Translate(TcpingAtStartedCheckBox.Text);
|
||||
DetectionIntervalLabel.Text = i18N.Translate(DetectionIntervalLabel.Text);
|
||||
STUNServerLabel.Text = i18N.Translate(STUNServerLabel.Text);
|
||||
AclLabel.Text = i18N.Translate(AclLabel.Text);
|
||||
LanguageLabel.Text = i18N.Translate(LanguageLabel.Text);
|
||||
i18N.TranslateForm(this);
|
||||
}
|
||||
|
||||
private void InitSTUN()
|
||||
|
||||
@@ -32,16 +32,8 @@ namespace Netch.Forms
|
||||
|
||||
private void SubscribeForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text = i18N.Translate(Text);
|
||||
RemarkColumnHeader.Text = i18N.Translate(RemarkColumnHeader.Text);
|
||||
LinkColumnHeader.Text = i18N.Translate(LinkColumnHeader.Text);
|
||||
UseSelectedServerCheckBox.Text = i18N.Translate(UseSelectedServerCheckBox.Text);
|
||||
DeleteToolStripMenuItem.Text = i18N.Translate(DeleteToolStripMenuItem.Text);
|
||||
CopyLinkToolStripMenuItem.Text = i18N.Translate(CopyLinkToolStripMenuItem.Text);
|
||||
RemarkLabel.Text = i18N.Translate(RemarkLabel.Text);
|
||||
LinkLabel.Text = i18N.Translate(LinkLabel.Text);
|
||||
ClearButton.Text = i18N.Translate(ClearButton.Text);
|
||||
AddButton.Text = i18N.Translate(AddButton.Text);
|
||||
i18N.TranslateForm(this);
|
||||
i18N.TranslateForm(pContextMenuStrip);
|
||||
|
||||
ResetEditingGroup();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user