Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-04-20 04:28:37 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-04-20 04:28:37 +0300
commit4196f6b3fc21f2e4a610fa3fd585d3b2979bc277 (patch)
tree786773cb640f46c5a05e99d1247c317e8992dcb8 /MainForm.cs
parentd6eee507dccc74a3cba4fd4dfebc6ca6b16a377d (diff)
It's possible to select language now
Diffstat (limited to 'MainForm.cs')
-rw-r--r--MainForm.cs82
1 files changed, 59 insertions, 23 deletions
diff --git a/MainForm.cs b/MainForm.cs
index 2b8aa4e1..cca6e01b 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -6,9 +6,11 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
+using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
@@ -21,7 +23,7 @@ namespace com.clusterrr.hakchi_gui
public static string[] InternalMods = new string[] { "clovercon", "fontfix", "clovershell" };
public static ClovershellConnection Clovershell;
//readonly string UBootDump;
- readonly string KernelDump;
+ public static string KernelDump;
mooftpserv.Server ftpServer;
NesDefaultGame[] defaultNesGames = new NesDefaultGame[] {
@@ -91,15 +93,39 @@ namespace com.clusterrr.hakchi_gui
public MainForm()
{
+ ConfigIni.Load();
+ try
+ {
+ Thread.CurrentThread.CurrentUICulture = new CultureInfo(ConfigIni.Language);
+ }
+ catch { }
+ InitializeComponent();
+ FormInitialize();
+ Clovershell = new ClovershellConnection() { AutoReconnect = true, Enabled = true };
+ Clovershell.OnConnected += Clovershell_OnConnected;
+
+ ftpServer = new mooftpserv.Server();
+ ftpServer.AuthHandler = new mooftpserv.NesMiniAuthHandler();
+ ftpServer.FileSystemHandler = new mooftpserv.NesMiniFileSystemHandler(Clovershell);
+ ftpServer.LogHandler = new mooftpserv.DebugLogHandler();
+ ftpServer.LocalPort = 1021;
+
+ if (ConfigIni.FtpServer)
+ FTPToolStripMenuItem_Click(null, null);
+ if (ConfigIni.TelnetServer)
+ shellToolStripMenuItem.Checked = true;
+ }
+
+ void FormInitialize()
+ {
try
{
- InitializeComponent();
- ConfigIni.Load();
BaseDirectory = Path.GetDirectoryName(Application.ExecutablePath);
KernelDump = Path.Combine(Path.Combine(BaseDirectory, "dump"), "kernel.img");
LoadGames();
LoadHidden();
LoadPresets();
+ LoadLanguages();
var version = Assembly.GetExecutingAssembly().GetName().Version;
Text = string.Format("hakchi2 - v{0}.{1:D2}{2}", version.Major, version.Build, (version.Revision < 10) ?
("rc" + version.Revision.ToString()) : (version.Revision > 10 ? ((char)('a' + version.Revision - 10)).ToString() : ""));
@@ -166,25 +192,8 @@ namespace com.clusterrr.hakchi_gui
// Recalculate games in background
new Thread(RecalculateSelectedGamesThread).Start();
- Clovershell = new ClovershellConnection() { AutoReconnect = true, Enabled = true };
- Clovershell.OnConnected += Clovershell_OnConnected;
-
- ftpServer = new mooftpserv.Server();
- ftpServer.AuthHandler = new mooftpserv.NesMiniAuthHandler();
- ftpServer.FileSystemHandler = new mooftpserv.NesMiniFileSystemHandler(Clovershell);
- ftpServer.LogHandler = new mooftpserv.DebugLogHandler();
- ftpServer.LocalPort = 1021;
-
- if (ConfigIni.FtpServer)
- {
- FTPToolStripMenuItem.Checked = true;
- FTPToolStripMenuItem_Click(null, null);
- }
- if (ConfigIni.TelnetServer)
- {
- shellToolStripMenuItem.Checked = true;
- shellToolStripMenuItem_Click(null, null);
- }
+ FTPToolStripMenuItem.Checked = ConfigIni.FtpServer;
+ shellToolStripMenuItem.Checked = ConfigIni.TelnetServer;
}
catch (Exception ex)
{
@@ -364,6 +373,33 @@ namespace com.clusterrr.hakchi_gui
}
}
+ void LoadLanguages()
+ {
+ var languages = new List<string>(Directory.GetDirectories(Path.Combine(BaseDirectory, "languages")));
+ languages.Add("en-US"); // default language
+ var langCodes = new Dictionary<string, string>();
+ foreach (var language in languages)
+ {
+ var code = Path.GetFileName(language);
+ langCodes[Regex.Replace(new CultureInfo(code).DisplayName, @"\s?\(.+\)", "")] = code;
+ }
+ foreach (var language in langCodes.Keys.OrderBy<string,string>(o => o))
+ {
+ var item = new ToolStripMenuItem();
+ item.Text = Path.GetFileName(language);
+ item.Click += delegate(object sender, EventArgs e)
+ {
+ ConfigIni.Language = langCodes[language];
+ Thread.CurrentThread.CurrentUICulture = new CultureInfo(langCodes[language]);
+ this.Controls.Clear();
+ this.InitializeComponent();
+ FormInitialize();
+ };
+ item.Checked = Thread.CurrentThread.CurrentUICulture.Name == langCodes[language];
+ languageToolStripMenuItem.DropDownItems.Add(item);
+ }
+ }
+
void AddPreset(object sender, EventArgs e)
{
var form = new StringInputForm();
@@ -1372,7 +1408,7 @@ namespace com.clusterrr.hakchi_gui
{
try
{
- ConfigIni.TelnetServer = openTelnetToolStripMenuItem.Enabled = Clovershell.ShellEnabled = shellToolStripMenuItem.Checked;
+ ConfigIni.TelnetServer = openTelnetToolStripMenuItem.Enabled = Clovershell.ShellEnabled = shellToolStripMenuItem.Checked;
}
catch (Exception ex)
{