mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-28 15:02:35 +01:00
ebedc3ddda
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@924 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
114 lines
4.0 KiB
C#
114 lines
4.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
using Nikse.SubtitleEdit.Logic;
|
|
|
|
namespace Nikse.SubtitleEdit.Forms
|
|
{
|
|
public sealed partial class ChooseLanguage : Form
|
|
{
|
|
public class CultureListItem
|
|
{
|
|
CultureInfo _cultureInfo;
|
|
|
|
public CultureListItem(CultureInfo cultureInfo)
|
|
{
|
|
_cultureInfo = cultureInfo;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return _cultureInfo.NativeName;
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get { return _cultureInfo.Name; }
|
|
}
|
|
}
|
|
|
|
public string CultureName
|
|
{
|
|
get
|
|
{
|
|
int index = comboBoxLanguages.SelectedIndex;
|
|
if (index == -1)
|
|
return "en-US";
|
|
else
|
|
return (comboBoxLanguages.Items[index] as CultureListItem).Name;
|
|
}
|
|
}
|
|
|
|
public ChooseLanguage()
|
|
{
|
|
InitializeComponent();
|
|
|
|
List<string> list = new List<string>();
|
|
if (Directory.Exists(Path.Combine(Configuration.BaseDirectory, "Languages")))
|
|
{
|
|
foreach (string fileName in Directory.GetFiles(Path.Combine(Configuration.BaseDirectory, "Languages"), "*.xml"))
|
|
{
|
|
string cultureName = Path.GetFileNameWithoutExtension(fileName);
|
|
list.Add(cultureName);
|
|
}
|
|
}
|
|
list.Sort();
|
|
comboBoxLanguages.Items.Add(new CultureListItem(CultureInfo.CreateSpecificCulture("en-US")));
|
|
foreach (string cultureName in list)
|
|
{
|
|
try
|
|
{
|
|
if (string.Compare(cultureName, "zh-CHS", true) == 0)
|
|
comboBoxLanguages.Items.Add(new CultureListItem(new CultureInfo(0x4)));
|
|
else if (string.Compare(cultureName, "zh-CHT", true) == 0)
|
|
comboBoxLanguages.Items.Add(new CultureListItem(new CultureInfo(0x7C04)));
|
|
else
|
|
comboBoxLanguages.Items.Add(new CultureListItem(CultureInfo.CreateSpecificCulture(cultureName)));
|
|
}
|
|
catch (ArgumentException)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine(cultureName + " is not a valid culture");
|
|
}
|
|
}
|
|
|
|
int index = 0;
|
|
for (int i=0; i< comboBoxLanguages.Items.Count; i++)
|
|
{
|
|
var item = (CultureListItem)comboBoxLanguages.Items[i];
|
|
if (item.Name == Configuration.Settings.Language.General.CultureName)
|
|
index = i;
|
|
}
|
|
comboBoxLanguages.SelectedIndex = index;
|
|
|
|
Text = Configuration.Settings.Language.ChooseLanguage.Title;
|
|
labelLanguage.Text = Configuration.Settings.Language.ChooseLanguage.Language;
|
|
buttonOK.Text = Configuration.Settings.Language.General.OK;
|
|
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
|
|
FixLargeFonts();
|
|
}
|
|
|
|
private void FixLargeFonts()
|
|
{
|
|
Graphics graphics = this.CreateGraphics();
|
|
SizeF textSize = graphics.MeasureString(buttonOK.Text, this.Font);
|
|
if (textSize.Height > buttonOK.Height - 4)
|
|
{
|
|
int newButtonHeight = (int)(textSize.Height + 7 + 0.5);
|
|
Utilities.SetButtonHeight(this, newButtonHeight, 1);
|
|
}
|
|
}
|
|
|
|
private void ChangeLanguage_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.KeyCode == Keys.Escape)
|
|
DialogResult = DialogResult.Cancel;
|
|
else if (e.Shift && e.Control && e.Alt && e.KeyCode == Keys.L)
|
|
Configuration.Settings.Language.Save();
|
|
}
|
|
|
|
}
|
|
}
|