From ce5be30f1d80bdcd39cf087488bda5ca0d3abb06 Mon Sep 17 00:00:00 2001 From: Myssal <143514975+myssal@users.noreply.github.com> Date: Sun, 27 Apr 2025 21:01:54 +0700 Subject: [PATCH] feat: localize model parameters --- SpineViewer/Controls/SkelFileListBox.cs | 10 +- SpineViewer/Controls/SkelFileListBox.en.resx | 79 ++-- SpineViewer/Controls/SpineListView.en.resx | 151 +++++-- SpineViewer/Controls/SpinePreviewPanel.cs | 68 ++-- .../Controls/SpinePreviewPanel.en-US.resx | 120 ++++++ SpineViewer/Controls/SpinePreviewPanel.resx | 385 +++++++++--------- .../Controls/SpineViewPropertyGrid.en.resx | 96 +++-- SpineViewer/Forms/SpineViewerForm.cs | 1 + SpineViewer/Program.cs | 9 +- SpineViewer/Properties/Resources.Designer.cs | 153 +++++++ SpineViewer/Properties/Resources.en-US.resx | 52 +++ SpineViewer/Properties/Resources.resx | 51 +++ SpineViewer/SpineViewer.csproj | 3 + 13 files changed, 850 insertions(+), 328 deletions(-) create mode 100644 SpineViewer/Controls/SpinePreviewPanel.en-US.resx diff --git a/SpineViewer/Controls/SkelFileListBox.cs b/SpineViewer/Controls/SkelFileListBox.cs index a5a1f14..56f4324 100644 --- a/SpineViewer/Controls/SkelFileListBox.cs +++ b/SpineViewer/Controls/SkelFileListBox.cs @@ -64,7 +64,7 @@ namespace SpineViewer.Controls } } - label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; + label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}"; } private void button_AddFile_Click(object sender, EventArgs e) @@ -75,7 +75,7 @@ namespace SpineViewer.Controls foreach (var p in openFileDialog_Skel.FileNames) listBox.Items.Add(Path.GetFullPath(p)); - label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; + label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}"; } private void listBox_DragEnter(object sender, DragEventArgs e) @@ -92,7 +92,7 @@ namespace SpineViewer.Controls return; AddFromFileDrop((string[])e.Data.GetData(DataFormats.FileDrop)); - label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; + label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}"; } private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e) @@ -110,7 +110,7 @@ namespace SpineViewer.Controls var paths = new string[fileDropList.Count]; fileDropList.CopyTo(paths, 0); AddFromFileDrop(paths); - label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; + label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}"; } private void toolStripMenuItem_Remove_Click(object sender, EventArgs e) @@ -119,7 +119,7 @@ namespace SpineViewer.Controls listBox.SelectedIndices.CopyTo(indices, 0); for (int i = indices.Length - 1; i >= 0; i--) listBox.Items.RemoveAt(indices[i]); - label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; + label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}"; } } } diff --git a/SpineViewer/Controls/SkelFileListBox.en.resx b/SpineViewer/Controls/SkelFileListBox.en.resx index 3a6fb61..fbc2921 100644 --- a/SpineViewer/Controls/SkelFileListBox.en.resx +++ b/SpineViewer/Controls/SkelFileListBox.en.resx @@ -1,17 +1,17 @@  - @@ -142,4 +142,29 @@ 0 file added. + + + + + + + + + Select all + + + Paste + + + Remove + + + + + + All files (*.*)|*.*|Skel files (*.skel; *.json)|*.skel;*.json + + + Select .skel files + \ No newline at end of file diff --git a/SpineViewer/Controls/SpineListView.en.resx b/SpineViewer/Controls/SpineListView.en.resx index 79fdd94..fe000ab 100644 --- a/SpineViewer/Controls/SpineListView.en.resx +++ b/SpineViewer/Controls/SpineListView.en.resx @@ -1,17 +1,17 @@  - @@ -117,11 +117,102 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 206, 20 + + + + + + + + + Switch view + + + Stick to top + + + + + + + + + Remove + + + + + + Copy preview + + + + + + Large icon + + + + + + Up + + + + + + More info + + + + + + Bottom 0 items selected, 0 items total + + Select all + + + Add to clipboard + + + + + + + + + + + + + + + Bulk add... + + + Remove all + + + Add to... + + + List + + + + 206, 20 + + + Insert... + + + + + + Down + \ No newline at end of file diff --git a/SpineViewer/Controls/SpinePreviewPanel.cs b/SpineViewer/Controls/SpinePreviewPanel.cs index 8d7107a..bdb9eba 100644 --- a/SpineViewer/Controls/SpinePreviewPanel.cs +++ b/SpineViewer/Controls/SpinePreviewPanel.cs @@ -12,6 +12,9 @@ using System.Diagnostics; using NLog; using SpineViewer.Utils; using System.Drawing.Design; +using System.Reflection; +using System.Resources; +using SpineViewer.Utils.Localize; namespace SpineViewer.Controls { @@ -30,15 +33,17 @@ namespace SpineViewer.Controls /// /// 要绑定的 Spine 列表控件 /// - [Category("自定义"), Description("相关联的 SpineListView")] + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDescription(typeof(Properties.Resources), "descAssociatedSpineListView")] public SpineListView? SpineListView { get; set; } - /// - /// 属性信息面板 - /// - [Category("自定义"), Description("用于显示画面属性的属性页")] - public PropertyGrid? PropertyGrid - { + /// + /// 属性信息面板 + /// + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDescription(typeof(Properties.Resources), "descDisplayImageProperties")] + public PropertyGrid? PropertyGrid + { get => propertyGrid; set { @@ -507,6 +512,7 @@ namespace SpineViewer.Controls private void panel_RenderContainer_SizeChanged(object sender, EventArgs e) { + if (renderWindow is null) return; float parentW = panel_Render.Parent.Width; @@ -785,37 +791,47 @@ namespace SpineViewer.Controls [RefreshProperties(RefreshProperties.All)] [TypeConverter(typeof(ResolutionConverter))] - [Category("[0] 导出"), DisplayName("分辨率")] + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayResolution")] public Size Resolution { get => PreviewPanel.Resolution; set => PreviewPanel.Resolution = value; } [TypeConverter(typeof(PointFConverter))] - [Category("[0] 导出"), DisplayName("画面中心点")] - public PointF Center { get => PreviewPanel.Center; set => PreviewPanel.Center = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayCenter")] + public PointF Center { get => PreviewPanel.Center; set => PreviewPanel.Center = value; } - [Category("[0] 导出"), DisplayName("缩放")] - public float Zoom { get => PreviewPanel.Zoom; set => PreviewPanel.Zoom = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayZoom")] + public float Zoom { get => PreviewPanel.Zoom; set => PreviewPanel.Zoom = value; } - [Category("[0] 导出"), DisplayName("旋转")] - public float Rotation { get => PreviewPanel.Rotation; set => PreviewPanel.Rotation = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayRotation")] + public float Rotation { get => PreviewPanel.Rotation; set => PreviewPanel.Rotation = value; } - [Category("[0] 导出"), DisplayName("水平翻转")] - public bool FlipX { get => PreviewPanel.FlipX; set => PreviewPanel.FlipX = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayFlipHorizontal")] + public bool FlipX { get => PreviewPanel.FlipX; set => PreviewPanel.FlipX = value; } - [Category("[0] 导出"), DisplayName("垂直翻转")] - public bool FlipY { get => PreviewPanel.FlipY; set => PreviewPanel.FlipY = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayFlipVertical")] + public bool FlipY { get => PreviewPanel.FlipY; set => PreviewPanel.FlipY = value; } - [Category("[0] 导出"), DisplayName("仅渲染选中")] - public bool RenderSelectedOnly { get => PreviewPanel.RenderSelectedOnly; set => PreviewPanel.RenderSelectedOnly = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayRenderSelected")] + public bool RenderSelectedOnly { get => PreviewPanel.RenderSelectedOnly; set => PreviewPanel.RenderSelectedOnly = value; } - [Category("[1] 预览"), DisplayName("显示坐标轴")] - public bool ShowAxis { get => PreviewPanel.ShowAxis; set => PreviewPanel.ShowAxis = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryExport")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayShowAxis")] + public bool ShowAxis { get => PreviewPanel.ShowAxis; set => PreviewPanel.ShowAxis = value; } - [Category("[1] 预览"), DisplayName("最大帧率")] - public uint MaxFps { get => PreviewPanel.MaxFps; set => PreviewPanel.MaxFps = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryExport")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayMaximumFrameRate")] + public uint MaxFps { get => PreviewPanel.MaxFps; set => PreviewPanel.MaxFps = value; } [Editor(typeof(SFMLColorEditor), typeof(UITypeEditor))] [TypeConverter(typeof(SFMLColorConverter))] - [Category("[1] 预览"), DisplayName("背景颜色")] - public SFML.Graphics.Color BackgroundColor { get => PreviewPanel.BackgroundColor; set => PreviewPanel.BackgroundColor = value; } + [LocalizedCategory(typeof(Properties.Resources), "categoryExport")] + [LocalizedDisplayName(typeof(Properties.Resources), "displayBackgroundColor")] + public SFML.Graphics.Color BackgroundColor { get => PreviewPanel.BackgroundColor; set => PreviewPanel.BackgroundColor = value; } } } diff --git a/SpineViewer/Controls/SpinePreviewPanel.en-US.resx b/SpineViewer/Controls/SpinePreviewPanel.en-US.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SpineViewer/Controls/SpinePreviewPanel.en-US.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/SpineViewer/Controls/SpinePreviewPanel.resx b/SpineViewer/Controls/SpinePreviewPanel.resx index e2a9530..1e63bb1 100644 --- a/SpineViewer/Controls/SpinePreviewPanel.resx +++ b/SpineViewer/Controls/SpinePreviewPanel.resx @@ -1,17 +1,17 @@  - @@ -117,177 +117,178 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 17, 17 - + - AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs - LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA8iMAAAJNU0Z0AUkBTAIBAQcB - AAGQAQABkAEAAR8BAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABfAMAATADAAEBAQABIAYAAV0+ - AAMEAQUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/A1UB - sWQAA1gB7wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ay0BRbcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9cAANEAXgDAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/swAB/wMAAf8DAAH/AwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/AwAB - /zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf+vAAH/AwAB/wNRAaQnAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8IAANOAZcDAAH/AwAB/wMAAf8D - AAH/Ay4BSE8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+AAAxUBHQMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB - /wMAAf8DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/kAAMmATgDAAH/AwAB/wMAAf8r - AAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8DAAH/QwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/6wAB/wMAAf8D - AAH/KwAB/wMAAf8cAANCAfYDAAH/AwAB/wMAAf8DAAH/AwQBBTsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB - /+8AAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB - /wMAAf/vAAH/AwAB/wMAAf8nAAH/AwAB/ygAAwcBCQMAAf8DAAH/AwAB/wMAAf8DYAHjLwAB/wMAAf8D - AAH/SwAB/wMAAf8DAAH/7AADIAEtAwAB/wMAAf8nAAH/AwAB/zMAAf8DAAH/AwAB/wMAAf8DAAH/KwAB - /wMAAf8DAAH/SwAB/wMAAf8DAAH/8wAB/wMAAf8nAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8nAAH/AwAB - /wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/PAADPwFsAwAB/wMAAf8nAAH/AwAB/wMAAf9L - AAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8D - AAH/AwAB/5sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NAADCAEKAwAB/wMAAf8nAAH/AwAB - /zAAA10BzgMAAf8DAAH/AwAB/wMAAf8EAScAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/LwAB/wMAAf8D - AAH/AwAB/wMAAf8vAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8nAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/NwAB - /wMAAf8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8PAAH/AwAB/wMAAf8DFQEcLwAB/wMAAf8D - AAH/KwAB/wMAAf8cAAM9AWkDAAH/AwAB/wMAAf8DAAH/A0MBdjsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB - /5QAAwUBBgMAAf8DAAH/CwAB/wMAAf8DAAH/AxMBGjMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8D - AAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wcAAf8DAAH/AwAB - /wMbASYzAAH/AwAB/wMAAf8vAAH/AwAB/xMAAf8DAAH/AwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/SwAB - /wMAAf8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMdASgkAANZAe4DAAH/AwAB - /wMAAf8EAS8AAf8DAAH/CAADGAEhAwAB/wMAAf8DAAH/AwAB/wNcActPAAH/AwAB/wMAAf9LAAH/AwAB - /wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/A2AB4wMAAf8DAAH/AwAB/wMAAf8DUAGfFwAB/wMAAf8D - AAH/AwAB/wMAAf83AAH/AwAB/wcAAf8DAAH/AwAB/wMAAf8DAAH/VwAB/wMAAf8DAAH/AwAB/wMqAUAD - KgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUAD - AAH/AwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/Ax0BKQQAAwIBAwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBwEJWAAD - WQHDAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/5wAAxIBFwMAAf8UAANKAYkDAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/AyEB+2cAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wNbAcXIAANGAYADWgG/Ay4BSFQAA1oBv3QAA0YBgANaAb8DWgG/A1oBvwNaAb8DWgG/A1oB - vwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DLgFIpwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADPQFpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/KAADGQEiAwAB/wMAAf8jAAH/AwAB/wMAAf8oAAM/AW0D - AAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D - AAH/KwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADAwEEAwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/yQAA1YBtgMAAf8DAAH/AwAB - /wMAAf8kAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DPAH4IwAB/wMAAf8DAAH/NwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8D - AAH/AwAB/wMAAf8DAAH/IAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8gAAM1AfkDAAH/AwAB/xwAA1cB - 8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB - /wMAAf8DAAH/AxIB/jMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wNZAbsYAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQGeGAADNQH5AwAB/wMAAf8c - AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1ABnRcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB - /w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB - /wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8D - AAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8D - AAH/HAADVwHxAwAB/wMAAf8DEQEWBAEDAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8D - AAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8D - AAH/AwAB/wMAAf8jAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB - /wMAAf8DAAH/AwAB/wMAAf8QAANWAbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB - +QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf83 - AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wNWAbML - AAH/AwAB/wMAAf8DEgH+GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/Az0B - aAgAA2AB2wMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMzAVAIAANgAeMDAAH/AwAB/wMAAf8D - AAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMzAVIDAAH/AwAB/wMAAf8DAAH/AwAB - /wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB - /ycAAf8DAAH/A1YBsw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/DAAD - VAGrAwAB/wMAAf8DPQFoDAADJQE3AwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAzIB - TwMAAf8DAAH/AwAB/wMAAf8IAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB - /wMAAf8DAAH/AxIB/gMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB - /wMAAf8DAAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xAAAwwBDwMAAf8D - QgH2DAADVAGrAwAB/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8D - AAH/AwAB/wMAAf8EAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAA1oB6QMAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB - /0cAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMAAf8D - AAH/AwAB/wNdAc4DAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AyYB+gMAAf8DAAH/HAADVwHxAwAB - /wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB - /wMAAf8PAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8wAANUAasDAAH/AwAB/wM9AWgf - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFQHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB - /wMAAf8DEQEWJwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB - /w8AAf8DAAH/AwAB/08AAf8DAAH/AwAB/wMAAf80AANUAasDAAH/AwAB/wM9AWgjAAH/AwAB/wMAAf8D - AAH/AwAB/wMzAVAjAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFisAAf8DAAH/AwAB - /zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB - /wMAAf8DAAH/AxIB/jAAA1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAf - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYkAANcAdkDAAH/AwAB/wMAAf83 - AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf9HAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/ywAA1QBqwMAAf8DAAH/Az0BaBsAAf8DAAH/AwAB/wMAAf8DVwHxAwAB - /wMAAf8DMwFQGwAB/wMAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiMAAf8D - AAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8D - AAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xcAAf8DWAG4DAADVAGrAwAB - /wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8DAAH/AwAB/wMAAf8E - AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAAzABSgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YB - sw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DEgH+DwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D - PQFoEwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAwkBDAMAAf8DAAH/AwAB/wMAAf8I - AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB/wMAAf8DAAH/AyQB/QMAAf8D - AAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8D - VgGzCwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB - /wM9AWgIAAM6AWADAAH/AwAB/wMAAf8DAAH/DAADVgG1AwAB/wMAAf8DMwFQCAADSwGMAwAB/wMAAf8D - AAH/AwAB/wwAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWDAADBwEJAwAB/wMAAf8DAAH/AwAB - /wMAAf8HAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB - /wMAAf8nAAH/AwAB/wNWAbMHAAH/AwAB/wMAAf8DAAH/IwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB - /wwAA1QBqwMAAf8DAAH/Az0BaAcAAf8DAAH/AwAB/wMAAf8DAAH/EAADVgG1AwAB/wMAAf8DMwFQBwAB - /wMAAf8DAAH/AwAB/wMAAf8QAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgsAAf8DAAH/AwAB - /wMAAf8DAAH/A08BmQsAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB - /w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DEgH+AwAB - /wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8DAAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB - /wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWBwAB - /wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB - /wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTQH0GAADVgG1AwAB/wMAAf8DAAH/AwAB - /wMAAf8DAAH/A10B7BgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DYQHrAwAB/wMAAf8DAAH/AwAB - /wNNAfQXAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB - /wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D - AAH/AwAB/wMAAf8DQwF3HAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8DMAFMHAADNQH5AwAB/wMAAf8c - AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8fAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DKgFAAyoB - QAMqAUADAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DKgFAAyoBQAMqAUADAAH/AwAB/wMAAf8nAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwYBCCAAA1YBtgMAAf8DAAH/AwAB/wMAAf8DAgEDIAAD - NQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB - /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB - /ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQAA0wBkAMAAf8DAAH/AwAB/wMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/ygAAzYBWAMAAf8DAAH/IwAB - /wMAAf8DAAH/Aw0BESQAA1UBrQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8D - AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8sAANaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DFQEcGAAD - TwGZA1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvxgAA04BlzQAA0sBjTAAAwwBDygAA1ABmjAAAygB - PEAAAzgBWwNaAb8DWgG/A1oBvwMwAUwYAANEAXoDWgG/A1oBvwNaAb8DIAEtHAABQgFNAT4HAAE+AwAB - KAMAAXwDAAEwAwABAQEAAQEGAAEDFgAD/wEAAf8B4AEHAf8B+AE/Av8B4AIAAXgEAAH/AcABAQH/AfgB - HwL/AcACAAF4BAAB/wGDAeAB/wH5AQcC/wHAAgABOAQAAf8BjwH4AX8B+QGBAv8BxwH/Af4BOAQAAv8B - /AE/AfkB4AL/AccB/wH+ATgEAAL/Af4BHwH5AfgBPwH/AccB/wH+ATgEAAP/AR8B+QH8AQ8B/wHHAf8B - /gE4BAAD/wGPAfkB/wEHAf8BxwH/Af4BOAQAA/8BjwH5Af8BgQH/AccB/wH+ATgEAAP/AY8B+QH/AeAB - /wHHAf8B/gE4BAAD/wHPAfkB/wH4AX8BxwH/Af4BOAQAA/8BzwH5Af8B/AF/AccB/wH+ATgEAAP/Ac8B - +QH/AfgBfwHHAf8B/gE4BAAB8AEPAf8BjwH5Af8B4AF/AccB/wH+ATgEAAHgAQcB/wGPAfkB/wHBAf8B - xwH/Af4BOAQAAeABBwH/AY8B+QH/AQcB/wHHAf8B/gE4BAAB4wGHAf8BHwH5AfwBDwH/AccB/wH+ATgE - AAHjAQ8B/wEfAfkB+AE/Af8BxwH/Af4BOAQAAeIBHwH+AT8B+QHgAv8BxwH/Af4BOAQAAeABDwH4AT8B - +QGBAv8BxwH/Af4BOAQAAeABAwHgAf8B+QEHAv8BwAIAATgEAAHwAYABAQH/AfgBDwL/AcACAAF4BAAB - 8wHgAQcB/wH4AT8C/wHgAgABeAQAAf8B/gE/Af8B/gP/AfgBAAEBAfgEAAHwAQcBwAEPAR8B/AF/AeMB - /AF/AeMB/wHwAR4BAwLwAQcBwAEOAQ8B+AE/AeMB+AEfAeMB/wHgAQwBAQLwAX8B/gEOAQcB+AEfAeMB - +AEPAeMB/wHgAQwBAQLwAT8B/AEOAQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB - +AEBAeMB/wHjAYwBcQHwAfEBDwHwAY4BEAF4AUEB4wH4AWAB4wH/AeMBjAFxAfAB8QGHAeEBjgEYATgB - YAHjAfgBcAEjAf8B4wGMAXEB8AHxAsMBjgEcARgBcAFjAfgBfAEDAf8B4wGMAXEB8AHzAeEBhwGOAR8B - CAF8ASMB+AF+AQMB/wHjAYwBcQHwAf8B8AEPAf4BHwGAAX4BAwH4AX8BgwH/AeMBjAFxAfAB/wH4AR8B - /gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfwBPwH+AR8B4AF/AYMB+AF/AeMB/wHjAYwBcQHwAf8B - +AEfAf4BHwHAAX8BAwH4AX8BwwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGDAf8B4wGMAXEB - 8AHzAeEBhwHOAR8BCAF8ASMB+AF+AQMB/wHjAYwBcQHwAfECwwGOAR4BGAFwAWMB+AF8AQMB/wHjAYwB - cQHwAfEBhwHhAY4BGAE4AWAB4wH4AXABIwH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAFjAf8B - 4wGMAXEC8AEfAfgBDgEAAfgBAwHjAfgBQQHjAf8B4wGMAXEC8AE/AfwBDgEBAfgBBwHjAfgBAwHjAf8B - 4wGMAXEC8AF/Af4BDgEDAfgBDwHjAfgBDwHjAf8B4AEMAQEC8AEHAeABDgEHAfgBHwHjAfgBHwHjAf8B - 4AEMAQEC8AEHAcABDwEfAfwBfwHjAfwBPwHjAf8B8AEeAQMB8AH4AQcB4AEfAb8B/gH/AfcB/gH/AfcB - /wH4AT8BBwHwCw== + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0 + IwAAAk1TRnQBSQFMAgEBBwEAAZABAAGYAQABHwEAARgBAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAF8 + AwABMAMAAQEBAAEgBgABXT4AAwQBBQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MA + Af8DAAH/AwAB/wMAAf8DVQGxZAADWAHvAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DLQFFtwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/1wAA0QBeAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf+zAAH/AwAB/wMAAf8DAAH/AwAB/xcA + Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8HAAH/AwAB/wMAAf8DAAH/AwAB/1cAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/68AAf8DAAH/A1EBpCcAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wgA + A04BlwMAAf8DAAH/AwAB/wMAAf8DLgFITwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/4AADFQEdAwAB/wMA + Af8DAAH/LwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+QA + AyYBOAMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/ + AwAB/wMAAf/rAAH/AwAB/wMAAf8rAAH/AwAB/xwAA0IB9gMAAf8DAAH/AwAB/wMAAf8DBAEFOwAB/wMA + Af8DAAH/SwAB/wMAAf8DAAH/7wAB/wMAAf8DAAH/JwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zcA + Af8DAAH/AwAB/0sAAf8DAAH/AwAB/+8AAf8DAAH/AwAB/ycAAf8DAAH/KAADBwEJAwAB/wMAAf8DAAH/ + AwAB/wNgAeMvAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/sAAMgAS0DAAH/AwAB/ycAAf8DAAH/MwAB/wMA + Af8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMA + Af8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf88AAM/AWwDAAH/ + AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/ + JwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf80AAMI + AQoDAAH/AwAB/ycAAf8DAAH/MAADXQHOAwAB/wMAAf8DAAH/AwAB/wQBJwAB/wMAAf8DAAH/SwAB/wMA + Af8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8DAAH/ + JwAB/wMAAf8vAAH/AwAB/wMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMA + Af8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/w8AAf8DAAH/ + AwAB/wMVARwvAAH/AwAB/wMAAf8rAAH/AwAB/xwAAz0BaQMAAf8DAAH/AwAB/wMAAf8DQwF2OwAB/wMA + Af8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8LAAH/AwAB/wMAAf8DEwEaMwAB/wMAAf8DAAH/ + KwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA + Af8DAAH/BwAB/wMAAf8DAAH/AxsBJjMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMA + Af9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + Ax0BKCQAA1kB7gMAAf8DAAH/AwAB/wQBLwAB/wMAAf8IAAMYASEDAAH/AwAB/wMAAf8DAAH/A1wBy08A + Af8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8DAAH/AwAB/wMAAf8DYAHjAwAB/wMAAf8DAAH/ + AwAB/wNQAZ8XAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/ + AwAB/wMAAf8DAAH/AyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFA + AyoBQAMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wMAAf+bAAH/AwAB/wMAAf8DHQEpBAADAgEDAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMHAQlYAANZAcMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/nAADEgEXAwAB/xQA + A0oBiQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/wMAAf8DIQH7 + ZwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1sBxcgAA0YBgANaAb8DLgFIVAADWgG/dAADRgGAA1oBvwNa + Ab8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwMu + AUinAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAM9AWkDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8vAAH/AwAB/wMAAf8oAAMZASIDAAH/AwAB/yMA + Af8DAAH/AwAB/ygAAz8BbQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAMD + AQQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/ + JAADVgG2AwAB/wMAAf8DAAH/AwAB/yQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wM8 + AfgjAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA + Af8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/wMAAf8gAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/yAA + AzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HwAB/wMAAf8DAAH/NwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGr + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBuxgAA1YBtQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNR + AZ4YAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUAGdFwAB/wMA + Af8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMA + Af8DVgGzAwAB/wMAAf8DAAH/AwAB/ysAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/ + AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMA + Af8DAAH/FAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYEAQMAAf8DAAH/AwAB/wMAAf8DAAH/ + EwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/ + JwAB/wMAAf8DVgGzBwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/wMAAf8HAAH/AwAB/wMAAf8MAANU + AasDAAH/AwAB/wM9AWgHAAH/AwAB/wMAAf8DAAH/AwAB/xAAA1YBtQMAAf8DAAH/AzMBUAcAAf8DAAH/ + AwAB/wMAAf8DAAH/EAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYLAAH/AwAB/wMAAf8DAAH/ + AwAB/w8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/ + AwAB/ycAAf8DAAH/A1YBswsAAf8DAAH/AwAB/wMSAf4bAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/ + DAADVAGrAwAB/wMAAf8DPQFoCAADYAHbAwAB/wMAAf8DAAH/AwAB/wwAA1YBtQMAAf8DAAH/AzMBUAgA + A2AB4wMAAf8DAAH/AwAB/wMAAf8MAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgwAAzMBUgMA + Af8DAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA + Af8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMA + Af8PAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgMAAMlATcDAAH/AwAB/wMAAf8DAAH/CAADVgG1 + AwAB/wMAAf8DMwFQDAADMgFPAwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA + Af8DEQEWFwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMA + Af8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA + Af8DAAH/EAADDAEPAwAB/wNCAfYMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1 + AwAB/wMAAf8DMwFQFwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEW + GAADWgHpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA + Af8DAAH/DwAB/wMAAf8DAAH/RwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/AwAB/wMAAf8sAANUAasDAAH/ + AwAB/wM9AWgbAAH/AwAB/wMAAf8DAAH/A10BzgMAAf8DAAH/AzMBUBsAAf8DAAH/AwAB/wMAAf8DJgH6 + AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYjAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A + Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zAA + A1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAfAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYnAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA + Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/TwAB/wMAAf8DAAH/AwAB/zQAA1QBqwMAAf8DAAH/ + Az0BaCMAAf8DAAH/AwAB/wMAAf8DAAH/AzMBUCMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB/wMA + Af8DEQEWKwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA + Af8DAAH/SwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MAADVAGrAwAB/wMAAf8DPQFoHwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AzMBUB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiQA + A1wB2QMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/ + AwAB/0cAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMA + Af8DAAH/AwAB/wNXAfEDAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/HAADVwHx + AwAB/wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/ + AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ + FwAB/wNYAbgMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1AwAB/wMAAf8DMwFQ + FwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWGAADMAFKAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA + Af8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMSAf4PAAH/AwAB/wMA + Af8MAANUAasDAAH/AwAB/wM9AWgTAAH/AwAB/wMAAf8DAAH/CAADVgG1AwAB/wMAAf8DMwFQDAADCQEM + AwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWFwAB/wMAAf8DAAH/ + AwAB/wMAAf8DJAH9AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/ + AwAB/wMAAf8nAAH/AwAB/wNWAbMLAAH/AwAB/wMAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/ + AwAB/wwAA1QBqwMAAf8DAAH/Az0BaAgAAzoBYAMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMz + AVAIAANLAYwDAAH/AwAB/wMAAf8DAAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMH + AQkDAAH/AwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA + Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8DAAH/AwAB/wMAAf8jAAH/AwAB/wMA + Af8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB/wMAAf8DAAH/AwAB/wMAAf8QAANW + AbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA + Af8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8DTwGZCwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA + Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzAwAB/wMAAf8DAAH/AwAB/ysA + Af8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/ + AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMAAf8DAAH/FAADNQH5AwAB/wMAAf8cAANX + AfEDAAH/AwAB/wMRARYHAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A + Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNNAfQYAANW + AbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHsGAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wNh + AesDAAH/AwAB/wMAAf8DAAH/A00B9BcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA + Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMA + Af8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wNDAXccAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMw + AUwcAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcA + Af8DAAH/AwAB/wMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMqAUADKgFAAyoBQAMA + Af8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DBgEIIAADVgG2AwAB/wMA + Af8DAAH/AwAB/wMCAQMgAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/IwAB/wMA + Af8DAAH/NwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADTAGQ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/ + KAADNgFYAwAB/wMAAf8jAAH/AwAB/wMAAf8DDQERJAADVQGtAwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ywAA1oBvwNaAb8DWgG/A1oBvwNa + Ab8DWgG/A1oBvwMVARwYAANPAZkDWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/GAADTgGXNAADSwGN + MAADDAEPKAADUAGaMAADKAE8QAADOAFbA1oBvwNaAb8DWgG/AzABTBgAA0QBegNaAb8DWgG/A1oBvwMg + AS0cAAFCAU0BPgcAAT4DAAEoAwABfAMAATADAAEBAQABAQYAAQMWAAP/AQAB/wHgAQcB/wH4AT8C/wHg + AgABeAQAAf8BwAEBAf8B+AEfAv8BwAIAAXgEAAH/AYMB4AH/AfkBBwL/AcACAAE4BAAB/wGPAfgBfwH5 + AYEC/wHHAf8B/gE4BAAC/wH8AT8B+QHgAv8BxwH/Af4BOAQAAv8B/gEfAfkB+AE/Af8BxwH/Af4BOAQA + A/8BHwH5AfwBDwH/AccB/wH+ATgEAAP/AY8B+QH/AQcB/wHHAf8B/gE4BAAD/wGPAfkB/wGBAf8BxwH/ + Af4BOAQAA/8BjwH5Af8B4AH/AccB/wH+ATgEAAP/Ac8B+QH/AfgBfwHHAf8B/gE4BAAD/wHPAfkB/wH8 + AX8BxwH/Af4BOAQAA/8BzwH5Af8B+AF/AccB/wH+ATgEAAHwAQ8B/wGPAfkB/wHgAX8BxwH/Af4BOAQA + AeABBwH/AY8B+QH/AcEB/wHHAf8B/gE4BAAB4AEHAf8BjwH5Af8BBwH/AccB/wH+ATgEAAHjAYcB/wEf + AfkB/AEPAf8BxwH/Af4BOAQAAeMBDwH/AR8B+QH4AT8B/wHHAf8B/gE4BAAB4gEfAf4BPwH5AeAC/wHH + Af8B/gE4BAAB4AEPAfgBPwH5AYEC/wHHAf8B/gE4BAAB4AEDAeAB/wH5AQcC/wHAAgABOAQAAfABgAEB + Af8B+AEPAv8BwAIAAXgEAAHzAeABBwH/AfgBPwL/AeACAAF4BAAB/wH+AT8B/wH+A/8B+AEAAQEB+AQA + AfABBwHAAQ8BHwH8AX8B4wH8AX8B4wH/AfABHgEDAvABBwHAAQ4BDwH4AT8B4wH4AR8B4wH/AeABDAEB + AvABfwH+AQ4BBwH4AR8B4wH4AQ8B4wH/AeABDAEBAvABPwH8AQ4BAQH4AQcB4wH4AQMB4wH/AeMBjAFx + AvABHwH4AQ4BAAH4AQMB4wH4AQEB4wH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAHjAf8B4wGM + AXEB8AHxAYcB4QGOARgBOAFgAeMB+AFwASMB/wHjAYwBcQHwAfECwwGOARwBGAFwAWMB+AF8AQMB/wHj + AYwBcQHwAfMB4QGHAY4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGD + Af8B4wGMAXEB8AH/AfgBHwH+AR8BwAF/AQMB+AF/AcMB/wHjAYwBcQHwAf8B/AE/Af4BHwHgAX8BgwH4 + AX8B4wH/AeMBjAFxAfAB/wH4AR8B/gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfABDwH+AR8BgAF+ + AQMB+AF/AYMB/wHjAYwBcQHwAfMB4QGHAc4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB8QLDAY4BHgEY + AXABYwH4AXwBAwH/AeMBjAFxAfAB8QGHAeEBjgEYATgBYAHjAfgBcAEjAf8B4wGMAXEB8AHxAQ8B8AGO + ARABeAFBAeMB+AFgAWMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB+AFBAeMB/wHjAYwBcQLwAT8B/AEO + AQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAX8B/gEOAQMB+AEPAeMB+AEPAeMB/wHgAQwBAQLwAQcB4AEO + AQcB+AEfAeMB+AEfAeMB/wHgAQwBAQLwAQcBwAEPAR8B/AF/AeMB/AE/AeMB/wHwAR4BAwHwAfgBBwHg + AR8BvwH+Af8B9wH+Af8B9wH/AfgBPwEHAfAWAAs= - + 165, 17 - - + + 307, 18 - - + + 618, 18 - + \ No newline at end of file diff --git a/SpineViewer/Controls/SpineViewPropertyGrid.en.resx b/SpineViewer/Controls/SpineViewPropertyGrid.en.resx index 3cccd44..3d224ad 100644 --- a/SpineViewer/Controls/SpineViewPropertyGrid.en.resx +++ b/SpineViewer/Controls/SpineViewPropertyGrid.en.resx @@ -1,17 +1,17 @@  - @@ -117,38 +117,48 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Basic Information + + Animation + + + Remove + + + Render + + + Slot + + + Skin 263, 330 - - Render + + Transform 263, 330 - - Transform - - - Skin - - - Slot - - - Animation - Debug + + Reload skin + 263, 330 + + + + 263, 330 + + Basic Information + \ No newline at end of file diff --git a/SpineViewer/Forms/SpineViewerForm.cs b/SpineViewer/Forms/SpineViewerForm.cs index 59d7a8e..9a25624 100644 --- a/SpineViewer/Forms/SpineViewerForm.cs +++ b/SpineViewer/Forms/SpineViewerForm.cs @@ -6,6 +6,7 @@ using SpineViewer.Natives; using SpineViewer.Utils; using SpineViewer.Spine.SpineExporter; using System.Configuration; +using SpineViewer.Utils.Localize; namespace SpineViewer { diff --git a/SpineViewer/Program.cs b/SpineViewer/Program.cs index 3b60da6..c7fcc8b 100644 --- a/SpineViewer/Program.cs +++ b/SpineViewer/Program.cs @@ -1,5 +1,6 @@ using NLog; using SpineViewer.Utils; +using SpineViewer.Utils.Localize; using System.Configuration; using System.Diagnostics; using System.Globalization; @@ -7,7 +8,7 @@ using System.Reflection; namespace SpineViewer { - internal static class Program + internal static class Program { ///// ///// 程序路径 @@ -44,15 +45,13 @@ namespace SpineViewer { // 此处先初始化全局配置再触发静态字段 Logger 引用构造, 才能将配置应用到新的日志器上 InitializeLogConfiguration(); - logger.Info("Program Started"); - - + logger.Info("Program Started"); // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); LocalizeConfiguration.SetCulture(); - logger.Info($"Culture info: {CultureInfo.CurrentCulture}"); + try { Application.Run(new SpineViewerForm() { Text = $"SpineViewer - v{Version}"}); diff --git a/SpineViewer/Properties/Resources.Designer.cs b/SpineViewer/Properties/Resources.Designer.cs index 82dd002..130d80d 100644 --- a/SpineViewer/Properties/Resources.Designer.cs +++ b/SpineViewer/Properties/Resources.Designer.cs @@ -60,6 +60,159 @@ namespace SpineViewer.Properties { } } + /// + /// Looks up a localized string similar to 自定义. + /// + internal static string categoryCustom { + get { + return ResourceManager.GetString("categoryCustom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [0] 导出. + /// + internal static string categoryExport { + get { + return ResourceManager.GetString("categoryExport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [1] 预览. + /// + internal static string categoryPreview { + get { + return ResourceManager.GetString("categoryPreview", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 相关联的 SpineListView. + /// + internal static string descAssociatedSpineListView { + get { + return ResourceManager.GetString("descAssociatedSpineListView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用于显示画面属性的属性页. + /// + internal static string descDisplayImageProperties { + get { + return ResourceManager.GetString("descDisplayImageProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 背景颜色. + /// + internal static string displayBackgroundColor { + get { + return ResourceManager.GetString("displayBackgroundColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 画面中心点. + /// + internal static string displayCenter { + get { + return ResourceManager.GetString("displayCenter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水平翻转. + /// + internal static string displayFlipHorizontal { + get { + return ResourceManager.GetString("displayFlipHorizontal", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 垂直翻转. + /// + internal static string displayFlipVertical { + get { + return ResourceManager.GetString("displayFlipVertical", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 最大帧率. + /// + internal static string displayMaximumFrameRate { + get { + return ResourceManager.GetString("displayMaximumFrameRate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 仅渲染选中. + /// + internal static string displayRenderSelected { + get { + return ResourceManager.GetString("displayRenderSelected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 分辨率. + /// + internal static string displayResolution { + get { + return ResourceManager.GetString("displayResolution", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 旋转. + /// + internal static string displayRotation { + get { + return ResourceManager.GetString("displayRotation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 显示坐标轴. + /// + internal static string displayShowAxis { + get { + return ResourceManager.GetString("displayShowAxis", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 缩放. + /// + internal static string displayZoom { + get { + return ResourceManager.GetString("displayZoom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 已选择 . + /// + internal static string itemCountPrefix { + get { + return ResourceManager.GetString("itemCountPrefix", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 个文件. + /// + internal static string itemCountSuffix { + get { + return ResourceManager.GetString("itemCountSuffix", resourceCulture); + } + } + /// /// Looks up a localized string similar to 语言已设为英语。立即重启应用程序吗?. /// diff --git a/SpineViewer/Properties/Resources.en-US.resx b/SpineViewer/Properties/Resources.en-US.resx index 115e246..4ace5d0 100644 --- a/SpineViewer/Properties/Resources.en-US.resx +++ b/SpineViewer/Properties/Resources.en-US.resx @@ -117,6 +117,58 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Custom + + + [0] Export + + + [1] Preview + + + Associated SpineListView + + + Property page for displaying image properties + + + Background color + + + Center point of screen + + + Flip horizontal + + + Flip vertical + + + Maximum frame rate + + + Render selected only + + + Resolution + + + Rotation + + + Show axis + + + Zoom + + + + + + + item(s) selected. + Language set to Simplified Chinese. Restart application now? diff --git a/SpineViewer/Properties/Resources.resx b/SpineViewer/Properties/Resources.resx index 89c9b30..2a5c952 100644 --- a/SpineViewer/Properties/Resources.resx +++ b/SpineViewer/Properties/Resources.resx @@ -117,6 +117,57 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 自定义 + + + [0] 导出 + + + [1] 预览 + + + 相关联的 SpineListView + + + 用于显示画面属性的属性页 + + + 背景颜色 + + + 画面中心点 + + + 水平翻转 + + + 垂直翻转 + + + 最大帧率 + + + 仅渲染选中 + + + 分辨率 + + + 旋转 + + + 显示坐标轴 + + + 缩放 + + + 已选择 + + + 个文件 + 语言已设为英语。立即重启应用程序吗? diff --git a/SpineViewer/SpineViewer.csproj b/SpineViewer/SpineViewer.csproj index 738a129..36c3b68 100644 --- a/SpineViewer/SpineViewer.csproj +++ b/SpineViewer/SpineViewer.csproj @@ -49,6 +49,9 @@ + + + ResXFileCodeGenerator Resources.Designer.cs