From c765c97c69478782301cabd831c3623d23c1093a Mon Sep 17 00:00:00 2001 From: Yaguar666 Date: Sun, 28 Jun 2015 03:34:02 +0300 Subject: [PATCH 1/2] Update 0.1 Added more options for localization & Russian localization for this plugin ^_^ --- FFXIVDBM.Plugin/Constants.cs | 2 +- FFXIVDBM.Plugin/FFXIVDBM.Plugin.csproj | 44 ++++++++------------ FFXIVDBM.Plugin/Helpers/LocaleHelper.cs | 3 ++ FFXIVDBM.Plugin/Localization/Russian.cs | 52 ++++++++++++++++++++++++ distribution/FFXIVDBM.Plugin.dll | Bin 141824 -> 142336 bytes distribution/GenerateVersionJSON.exe | Bin 9728 -> 9216 bytes distribution/VERSION.json | 26 ++++++------ 7 files changed, 85 insertions(+), 42 deletions(-) create mode 100644 FFXIVDBM.Plugin/Localization/Russian.cs diff --git a/FFXIVDBM.Plugin/Constants.cs b/FFXIVDBM.Plugin/Constants.cs index f38f41a..e23d63b 100644 --- a/FFXIVDBM.Plugin/Constants.cs +++ b/FFXIVDBM.Plugin/Constants.cs @@ -45,7 +45,7 @@ public static class Constants public static readonly string[] Supported = new[] { - "en" + "en", "ru" }; public static string BaseDirectory diff --git a/FFXIVDBM.Plugin/FFXIVDBM.Plugin.csproj b/FFXIVDBM.Plugin/FFXIVDBM.Plugin.csproj index ba6e358..ea1fac8 100644 --- a/FFXIVDBM.Plugin/FFXIVDBM.Plugin.csproj +++ b/FFXIVDBM.Plugin/FFXIVDBM.Plugin.csproj @@ -54,38 +54,27 @@ MinimumRecommendedRules.ruleset - - False - ..\..\ffxivapp-resources\FFXIVAPP.Common.dll - False + + ..\..\..\Original\ffxivapp-resources-master\FFXIVAPP.Common.dll - - False - ..\..\ffxivapp-resources\FFXIVAPP.IPluginInterface.dll - False - - - ..\..\ffxivapp-resources\FFXIVAPP.Localization.dll - False + + ..\..\..\Original\ffxivapp-resources-master\FFXIVAPP.IPluginInterface.dll - ..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll - False + ..\..\..\Original\ffxivapp-resources-master\HtmlAgilityPack.dll + + + ..\..\..\Original\ffxivapp-resources-master\Ionic.Zip.dll - - False - ..\..\ffxivapp-resources\MahApps.Metro.dll - False + + ..\..\..\Original\ffxivapp-resources-master\MahApps.Metro.dll - - False - ..\..\Parser\NAudio.dll - False + + ..\..\..\Original\ffxivapp-resources-master\NAudio.dll - ..\packages\NLog.2.1.0\lib\net45\NLog.dll - False + ..\..\..\Original\ffxivapp-resources-master\NLog.dll @@ -96,10 +85,8 @@ - - False - ..\..\ffxivapp-resources\System.Windows.Interactivity.dll - False + + ..\..\..\Original\ffxivapp-resources-master\System.Windows.Interactivity.dll @@ -110,6 +97,7 @@ + diff --git a/FFXIVDBM.Plugin/Helpers/LocaleHelper.cs b/FFXIVDBM.Plugin/Helpers/LocaleHelper.cs index 87c3980..9ccd865 100644 --- a/FFXIVDBM.Plugin/Helpers/LocaleHelper.cs +++ b/FFXIVDBM.Plugin/Helpers/LocaleHelper.cs @@ -58,6 +58,9 @@ public static Dictionary Update(CultureInfo cultureInfo) case "fr": dictionary = French.Context(); break; + case "ru": + dictionary = Russian.Context(); + break; default: dictionary = English.Context(); break; diff --git a/FFXIVDBM.Plugin/Localization/Russian.cs b/FFXIVDBM.Plugin/Localization/Russian.cs new file mode 100644 index 0000000..80c254c --- /dev/null +++ b/FFXIVDBM.Plugin/Localization/Russian.cs @@ -0,0 +1,52 @@ +// FFXIVDBM.Plugin +// Russian.cs +// +// Copyright © 2007 - 2014 Ryan Wilson - All Rights Reserved +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of SyndicatedLife nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +using System.Windows; + +namespace FFXIVDBM.Plugin.Localization +{ + public abstract class Russian + { + private static readonly ResourceDictionary Dictionary = new ResourceDictionary(); + + /// + /// + /// + public static ResourceDictionary Context() + { + Dictionary.Clear(); + Dictionary.Add("DBM_DebugLogLevel", "Уровень Записей Отладки"); + Dictionary.Add("DBM_VoiceVolumeHeader", "Громкость Предупреждений"); + Dictionary.Add("sample_ChatLogTabHeader", "Записи Отладки"); + Dictionary.Add("sample_ClearChatLogMessage", "Очистить Записи Отладки"); + Dictionary.Add("sample_ClearChatLogToolTip", "Очистить Записи Отладки"); + return Dictionary; + } + } +} diff --git a/distribution/FFXIVDBM.Plugin.dll b/distribution/FFXIVDBM.Plugin.dll index 5eec299e61017811c17a7db485bb6cb03c9c6f9b..b913f578903060512faa6c2f6dd560eec87763d4 100644 GIT binary patch delta 44579 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