diff --git a/KeyConverter/KeyConverterGUI/KeyConverterGUI.csproj b/KeyConverter/KeyConverterGUI/KeyConverterGUI.csproj index 31d7df3..2b7e8c0 100644 --- a/KeyConverter/KeyConverterGUI/KeyConverterGUI.csproj +++ b/KeyConverter/KeyConverterGUI/KeyConverterGUI.csproj @@ -92,6 +92,22 @@ Designer + + + True + True + Resources.en-US.resx + + + ResourcesKeyboard.en-US.resx + True + True + + + True + True + ResourcesKeyboard.resx + @@ -134,7 +150,7 @@ Code - + True True Resources.resx @@ -144,10 +160,22 @@ Settings.settings True - - ResXFileCodeGenerator + + PublicResXFileCodeGenerator + Resources.en-US.Designer.cs + + + PublicResXFileCodeGenerator Resources.Designer.cs + + PublicResXFileCodeGenerator + ResourcesKeyboard.en-US.Designer.cs + + + PublicResXFileCodeGenerator + ResourcesKeyboard.Designer.cs + diff --git a/KeyConverter/KeyConverterGUI/LangResource/ResourceService.cs b/KeyConverter/KeyConverterGUI/LangResource/ResourceService.cs new file mode 100644 index 0000000..cfa53dd --- /dev/null +++ b/KeyConverter/KeyConverterGUI/LangResource/ResourceService.cs @@ -0,0 +1,69 @@ +using KeyConverterGUI.LangResource.Resources; +using System.ComponentModel; +using System.Globalization; + +namespace LangResource +{ + /// + /// 多言語化されたリソースと、言語の切り替え機能を提供します。 + /// + public class ResourceService : INotifyPropertyChanged + { + #region Static Members + public const string Japanese = "ja"; + public const string English = "en-US"; + #endregion + + #region singleton members + + private static readonly ResourceService current = new ResourceService(); + public static ResourceService Current + { + get { return current; } + } + + #endregion + + /// + /// 多言語化されたリソースを取得します。 + /// + public Resources Resources { get; } = new Resources(); + public ResourcesKeyboard ResourcesKeyboard { get; } = new ResourcesKeyboard(); + + + #region INotifyPropertyChanged members + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void RaisePropertyChanged(string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion + + /// + /// 指定されたカルチャ名を使用して、リソースのカルチャを変更します。 + /// + /// カルチャの名前。 + public void ChangeCulture(string name) + { + var cultureInfo = CultureInfo.GetCultureInfo(name); + Resources.Culture = cultureInfo; + ResourcesKeyboard.Culture = cultureInfo; + RaisePropertyChanged("Resources"); + RaisePropertyChanged("ResourcesKeyboard"); + } + + public string Culture + { + get + { + if (Resources.Culture != null) + return Resources.Culture.Name; + else + return CultureInfo.CurrentCulture.Name; + } + } + } +} diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.Designer.cs b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.Designer.cs new file mode 100644 index 0000000..0c49f42 --- /dev/null +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.Designer.cs @@ -0,0 +1,99 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace KeyConverterGUI.LangResource.Resources { + using System; + + + /// + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KeyConverterGUI.LangResource.Resources.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// マビノギを検出 に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_Detect_Mabinogi { + get { + return ResourceManager.GetString("UI_Detect_Mabinogi", resourceCulture); + } + } + + /// + /// 無効化中 に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_Disabled { + get { + return ResourceManager.GetString("UI_Disabled", resourceCulture); + } + } + + /// + /// 有効化中 に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_Enabled { + get { + return ResourceManager.GetString("UI_Enabled", resourceCulture); + } + } + + /// + /// キーボードマッピング に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_Keyboard_Mapping { + get { + return ResourceManager.GetString("UI_Keyboard_Mapping", resourceCulture); + } + } + } +} diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.en-US.Designer.cs b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.en-US.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.en-US.resx b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.en-US.resx new file mode 100644 index 0000000..8901baf --- /dev/null +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.en-US.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Detect Mabinogi + + + Now Disabled + + + Now Enabled + + + Keyboard Mapping + + \ No newline at end of file diff --git a/KeyConverter/KeyConverterGUI/Properties/Resources.resx b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.resx similarity index 84% rename from KeyConverter/KeyConverterGUI/Properties/Resources.resx rename to KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.resx index af7dbeb..dbb7f10 100644 --- a/KeyConverter/KeyConverterGUI/Properties/Resources.resx +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/Resources.resx @@ -46,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -60,6 +60,7 @@ : and then encoded with base64 encoding. --> + @@ -68,9 +69,10 @@ - + + @@ -85,9 +87,10 @@ - + + @@ -109,9 +112,21 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + マビノギを検出 + + + 無効化中 + + + 有効化中 + + + キーボードマッピング + \ No newline at end of file diff --git a/KeyConverter/KeyConverterGUI/Properties/Resources.Designer.cs b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.Designer.cs similarity index 67% rename from KeyConverter/KeyConverterGUI/Properties/Resources.Designer.cs rename to KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.Designer.cs index eb70ada..7e1d3de 100644 --- a/KeyConverter/KeyConverterGUI/Properties/Resources.Designer.cs +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace KeyConverterGUI.Properties { +namespace KeyConverterGUI.LangResource.Resources { using System; @@ -22,24 +22,24 @@ namespace KeyConverterGUI.Properties { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { + public class ResourcesKeyboard { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { + internal ResourcesKeyboard() { } /// /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KeyConverterGUI.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KeyConverterGUI.LangResource.Resources.ResourcesKeyboard", typeof(ResourcesKeyboard).Assembly); resourceMan = temp; } return resourceMan; @@ -51,7 +51,7 @@ internal Resources() { /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -59,5 +59,32 @@ internal Resources() { resourceCulture = value; } } + + /// + /// 変換先キー に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_DestKey { + get { + return ResourceManager.GetString("UI_DestKey", resourceCulture); + } + } + + /// + /// 変換したいキーを押してください。 に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_PushKeyDescript { + get { + return ResourceManager.GetString("UI_PushKeyDescript", resourceCulture); + } + } + + /// + /// 変換元キー に類似しているローカライズされた文字列を検索します。 + /// + public static string UI_SourceKey { + get { + return ResourceManager.GetString("UI_SourceKey", resourceCulture); + } + } } } diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.en-US.Designer.cs b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.en-US.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.en-US.resx b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.en-US.resx new file mode 100644 index 0000000..7ff2c79 --- /dev/null +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.en-US.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Dest Key + + + Please push converted key. + + + Source Key + + \ No newline at end of file diff --git a/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.resx b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.resx new file mode 100644 index 0000000..92f3f6c --- /dev/null +++ b/KeyConverter/KeyConverterGUI/LangResource/Resources/ResourcesKeyboard.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 変換先キー + + + 変換したいキーを押してください。 + + + 変換元キー + + \ No newline at end of file diff --git a/KeyConverter/KeyConverterGUI/Models/MainWindowModel.cs b/KeyConverter/KeyConverterGUI/Models/MainWindowModel.cs index 4925b9b..98cd7b4 100644 --- a/KeyConverter/KeyConverterGUI/Models/MainWindowModel.cs +++ b/KeyConverter/KeyConverterGUI/Models/MainWindowModel.cs @@ -18,12 +18,10 @@ namespace KeyConverterGUI.Models public class MainWindowModel : ModelBase, IDisposable { #region Constants - private const string DISABLED_TEXT = "Now Disabled"; - private const string ENABLED_TEXT = "Now Enabled"; #endregion #region Fields - private string buttonText = DISABLED_TEXT; + private string buttonText = LangResource.Resources.Resources.UI_Disabled; private bool enabledBtEnabled = true; private bool keymappingBtEnabled = true; @@ -109,7 +107,7 @@ public void EnabledOrDisabled() ChangeBaseBackground?.Invoke(resourceDictionary["EnabledColor"] as SolidColorBrush); isEnabled = true; - ButtonText = ENABLED_TEXT; + ButtonText = LangResource.Resources.Resources.UI_Enabled; } else { @@ -122,7 +120,7 @@ public void EnabledOrDisabled() ChangeBaseBackground?.Invoke(resourceDictionary["MainColor"] as SolidColorBrush); isEnabled = false; - ButtonText = DISABLED_TEXT; + ButtonText = LangResource.Resources.Resources.UI_Disabled; } KeymappingBtEnabled = !isEnabled; } diff --git a/KeyConverter/KeyConverterGUI/Views/KeyboardWindow.xaml b/KeyConverter/KeyConverterGUI/Views/KeyboardWindow.xaml index c092278..d282a65 100644 --- a/KeyConverter/KeyConverterGUI/Views/KeyboardWindow.xaml +++ b/KeyConverter/KeyConverterGUI/Views/KeyboardWindow.xaml @@ -6,6 +6,7 @@ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:key="clr-namespace:InterceptKeyboardLib.KeyMap;assembly=InterceptKeyboardLib" xmlns:CommonViews="clr-namespace:CommonStyleLib.Views;assembly=CommonStyleLib" + xmlns:lang="clr-namespace:LangResource" xmlns:local="clr-namespace:KeyConverterGUI.Views" mc:Ignorable="d" Title="KeyboardWindow" Height="420" Width="710" ResizeMode="CanMinimize"> @@ -429,14 +430,16 @@ - - diff --git a/KeyConverter/KeyConverterGUI/Views/MainWindow.xaml b/KeyConverter/KeyConverterGUI/Views/MainWindow.xaml index 9d71593..0ff25eb 100644 --- a/KeyConverter/KeyConverterGUI/Views/MainWindow.xaml +++ b/KeyConverter/KeyConverterGUI/Views/MainWindow.xaml @@ -5,6 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:CommonViews="clr-namespace:CommonStyleLib.Views;assembly=CommonStyleLib" + xmlns:lang="clr-namespace:LangResource" xmlns:local="clr-namespace:KeyConverterGUI" mc:Ignorable="d" Icon="pack://application:,,,/CommonStyleLib;component/Resources/1.ico" @@ -91,9 +92,9 @@