diff --git a/App.config b/App.config new file mode 100644 index 0000000000..6c37af678d --- /dev/null +++ b/App.config @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CleanTranslationProjectFile.bat b/CleanTranslationProjectFile.bat new file mode 100644 index 0000000000..d496ffcecc --- /dev/null +++ b/CleanTranslationProjectFile.bat @@ -0,0 +1,37 @@ +@echo off +REM * +REM * Removes various informations (like absolute file paths) from the Zeta Resource Editor project file. +REM * Run this script if you opened the *.zreproj project file at least once. +REM * +set filename="SoundSwitch.zreproj" + +setlocal +setlocal enableDelayedExpansion +if not exist %filename% call :error "file" +findstr /v "" %filename% >%filename%.nouserdata || call :error %errorlevel%, "user" +type "%filename%.nouserdata"|repl "absoluteFilePath=\q.*\q (/>)" "$1" x >%filename%.clean +if not %errorlevel%==0 call :error %errorlevel%, "abspath" +move /y %filename%.clean %filename% || call :error +del %filename%.nouserdata || call :error + +echo %filename% successfully cleaned. +goto :end + +:error +if "%~1"=="file" ( + echo %filename% doesn't exist. +) else if "%~1"=="1" ( + if "%~2"=="user" ( + echo userSettings not found, skipped. + ) else if "%~2"=="abspath" ( + echo absoluteFilePath attribute not found, skipped. + ) +) else ( + echo Unknown error occured. + goto :end +) +exit /b 0 + +:end +pause +exit \ No newline at end of file diff --git a/Localization/AboutStrings.Designer.cs b/Localization/AboutStrings.Designer.cs new file mode 100644 index 0000000000..e0c079b09b --- /dev/null +++ b/Localization/AboutStrings.Designer.cs @@ -0,0 +1,144 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SoundSwitch.Localization { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class AboutStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal AboutStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoundSwitch.Localization.AboutStrings", typeof(AboutStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Author and Program Info. + /// + internal static string author { + get { + return ResourceManager.GetString("author", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created by. + /// + internal static string created { + get { + return ResourceManager.GetString("created", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Credits and Attribution. + /// + internal static string credits { + get { + return ResourceManager.GetString("credits", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Default Playback device change. + /// + internal static string defaultPlaybackDeviceChange { + get { + return ResourceManager.GetString("defaultPlaybackDeviceChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Icons. + /// + internal static string icons { + get { + return ResourceManager.GetString("icons", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keyboard HotKey system. + /// + internal static string keyboardHotkeys { + get { + return ResourceManager.GetString("keyboardHotkeys", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Logo made by. + /// + internal static string logo { + get { + return ResourceManager.GetString("logo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mantained by. + /// + internal static string maintained { + get { + return ResourceManager.GetString("maintained", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version. + /// + internal static string version { + get { + return ResourceManager.GetString("version", resourceCulture); + } + } + } +} diff --git a/Localization/AboutStrings.de.resx b/Localization/AboutStrings.de.resx new file mode 100644 index 0000000000..9c7c69bd03 --- /dev/null +++ b/Localization/AboutStrings.de.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Erstellt von + + + Verwaltet von + + + Version + + + Autor und Informationen + + + Namensnennungen + + + Standard Wiedergabegerät Wechsel + + + Tastatur HotKey System + + + Symbole + + + Logo erstellt von + + \ No newline at end of file diff --git a/Localization/AboutStrings.el-GR.resx b/Localization/AboutStrings.el-GR.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/AboutStrings.el-GR.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/AboutStrings.es.resx b/Localization/AboutStrings.es.resx new file mode 100644 index 0000000000..f3a3325537 --- /dev/null +++ b/Localization/AboutStrings.es.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Creado por + + + Mantenido por + + + Versión + + + Autor e Información de Programa + + + Creditos y Atribuciones + + + Cambio de dispositivo de reproducción + + + Sistema accesos directos teclado + + + Iconos + + \ No newline at end of file diff --git a/Localization/AboutStrings.fi-FI.resx b/Localization/AboutStrings.fi-FI.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/AboutStrings.fi-FI.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/AboutStrings.fr.resx b/Localization/AboutStrings.fr.resx new file mode 100644 index 0000000000..7d84f975f5 --- /dev/null +++ b/Localization/AboutStrings.fr.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Créé par + + + Maintenu par + + + Créateur et Informations + + + Version + + + Contributeurs + + + Changement de périphérique + + + Raccourcis Clavier + + + Icones + + + Logo créé par + + \ No newline at end of file diff --git a/Localization/AboutStrings.it-IT.resx b/Localization/AboutStrings.it-IT.resx new file mode 100644 index 0000000000..7bb54be250 --- /dev/null +++ b/Localization/AboutStrings.it-IT.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Creato da + + + Mantenuto da + + + Versione + + + Info autore e programma + + + Ringraziamenti ed attribuzioni + + + Modifica dispositivo riproduzione predefinito + + + Sistema tasti rapidi tastiera + + + Icone + + + Logo realizzato da + + \ No newline at end of file diff --git a/Localization/AboutStrings.ja-JP.resx b/Localization/AboutStrings.ja-JP.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/AboutStrings.ja-JP.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/AboutStrings.nb.resx b/Localization/AboutStrings.nb.resx new file mode 100644 index 0000000000..9d714a51fb --- /dev/null +++ b/Localization/AboutStrings.nb.resx @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Laget av + + + Vedlikeholdt av + + + Versjon + + + Utvikler- og program-info + + + Bidragsytere + + + Forvalgt avspillingsenhetsbytte + + + Tastatursnarveissystem + + + Ikoner + + + Logo laget av + + \ No newline at end of file diff --git a/Localization/AboutStrings.pl-PL.resx b/Localization/AboutStrings.pl-PL.resx new file mode 100644 index 0000000000..caa5015e17 --- /dev/null +++ b/Localization/AboutStrings.pl-PL.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Stworzony przez + + + Utrzymawane przez + + + Wersja + + + O programie i autorze + + + Podziękowania + + + Zmiana domyślnego urządzenia odtwarzania + + + Skróty klawiszowe + + + Ikony + + + Logo narysował + + \ No newline at end of file diff --git a/Localization/AboutStrings.pt-BR.resx b/Localization/AboutStrings.pt-BR.resx new file mode 100644 index 0000000000..0f2094b147 --- /dev/null +++ b/Localization/AboutStrings.pt-BR.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Criado por + + + Mantido por + + + Versão + + + Autor e informações do programa + + + Contribuidores + + + Troca de dispositivo de reprodução + + + Sistema de atalhos do teclado + + + Ícones + + \ No newline at end of file diff --git a/Localization/AboutStrings.resx b/Localization/AboutStrings.resx new file mode 100644 index 0000000000..7a723d99ac --- /dev/null +++ b/Localization/AboutStrings.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Created by + + + Mantained by + + + Version + + + Author and Program Info + + + Credits and Attribution + + + Default Playback device change + + + Keyboard HotKey system + + + Icons + + + Logo made by + + \ No newline at end of file diff --git a/Localization/AboutStrings.ru-RU.resx b/Localization/AboutStrings.ru-RU.resx new file mode 100644 index 0000000000..383a2698cf --- /dev/null +++ b/Localization/AboutStrings.ru-RU.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Создан + + + Поддерживается + + + Версия + + + О программе и авторе + + + Участники и права + + + Изменение устройства воспроизведения по умолчанию + + + Сочетания клавиш + + + Значки + + + Логотип создан + + \ No newline at end of file diff --git a/Localization/AboutStrings.sv-SE.resx b/Localization/AboutStrings.sv-SE.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/AboutStrings.sv-SE.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/AboutStrings.zh-CHS.resx b/Localization/AboutStrings.zh-CHS.resx new file mode 100644 index 0000000000..c46e75849f --- /dev/null +++ b/Localization/AboutStrings.zh-CHS.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 制作 + + + 维护 + + + 版本 + + + 作者和项目信息 + + + 贡献者和归属 + + + 默认播放设备更改 + + + 键盘快捷键系统 + + + 图标 + + + logo + + \ No newline at end of file diff --git a/Localization/Language.cs b/Localization/Language.cs new file mode 100644 index 0000000000..325840fe7d --- /dev/null +++ b/Localization/Language.cs @@ -0,0 +1,32 @@ +/******************************************************************** +* Copyright (C) 2015-2017 Antoine Aflalo +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +********************************************************************/ + +namespace SoundSwitch.Localization +{ + /// + /// The language of the program as enumeration. + /// + /// The integer representation has to match with the index of the ComboBox. + public enum Language + { + English = 0, + Français = 1, + Deutsche = 2, + Español = 3, + Norsk = 4, + Português = 5, + Italiano = 6, + Chinese = 7 + } +} diff --git a/Localization/LanguageParser.cs b/Localization/LanguageParser.cs new file mode 100644 index 0000000000..f7fcb18d6b --- /dev/null +++ b/Localization/LanguageParser.cs @@ -0,0 +1,81 @@ +/******************************************************************** +* Copyright (C) 2015-2017 Antoine Aflalo +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +********************************************************************/ + +using System.Globalization; + +namespace SoundSwitch.Localization +{ + /// + /// Provides methods to parse languages. + /// + public static class LanguageParser + { + /// + /// Parses the given Language to it's CultureInfo representation. + /// + /// The Language to parse. + /// The Language as CultureInfo. If the given Language isn't defined, English will be returned. + public static CultureInfo ParseLanguage(Language language) + { + switch (language) + { + case Language.Français: + return CultureInfo.GetCultureInfo("fr"); + case Language.Deutsche: + return CultureInfo.GetCultureInfo("de"); + case Language.Español: + return CultureInfo.GetCultureInfo("es"); + case Language.Norsk: + return CultureInfo.GetCultureInfo("nb"); + case Language.Português: + return CultureInfo.GetCultureInfo("pt-BR"); + case Language.Italiano: + return CultureInfo.GetCultureInfo("it-IT"); + case Language.Chinese: + return CultureInfo.GetCultureInfo("zh-CHS"); + default: + return CultureInfo.GetCultureInfo("en"); + + } + } + + /// + /// Parses the given CultureInfo to it's Language representation. + /// + /// The CultureInfo to parse. + /// The CultureInfo as Language. If the given CultureInfo isn't defined, English will be returned. + public static Language ParseLanguage(CultureInfo cultureInfo) + { + switch (cultureInfo.TwoLetterISOLanguageName) + { + case "fr": + return Language.Français; + case "de": + return Language.Deutsche; + case "es": + return Language.Español; + case "nb": + return Language.Norsk; + case "pt": + return Language.Português; + case "it": + return Language.Italiano; + case "zh": + return Language.Chinese; + default: + return Language.English; + } + } + } +} diff --git a/Localization/SettingsStrings.Designer.cs b/Localization/SettingsStrings.Designer.cs new file mode 100644 index 0000000000..4a69098701 --- /dev/null +++ b/Localization/SettingsStrings.Designer.cs @@ -0,0 +1,585 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SoundSwitch.Localization { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class SettingsStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal SettingsStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoundSwitch.Localization.SettingsStrings", typeof(SettingsStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Play: {0}. + /// + internal static string activePlayback { + get { + return ResourceManager.GetString("activePlayback", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rec: {0}. + /// + internal static string activeRecording { + get { + return ResourceManager.GetString("activeRecording", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The audio file you selected to be used as notification can't be found. SoundSwitch switched the notification setting back to {0}.. + /// + internal static string audioFileNotFound { + get { + return ResourceManager.GetString("audioFileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Audio file not found. + /// + internal static string audioFileNotFoundCaption { + get { + return ResourceManager.GetString("audioFileNotFoundCaption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Audio Files. + /// + internal static string audioFiles { + get { + return ResourceManager.GetString("audioFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Audio Settings. + /// + internal static string audioSettings { + get { + return ResourceManager.GetString("audioSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Basic Settings. + /// + internal static string basicSettings { + get { + return ResourceManager.GetString("basicSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close. + /// + internal static string close { + get { + return ResourceManager.GetString("close", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changes are automatically saved. + /// + internal static string closeTooltip { + get { + return ResourceManager.GetString("closeTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Switch Default Communication Device. + /// + internal static string communicationsDevice { + get { + return ResourceManager.GetString("communicationsDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When checked, the 'Default Communication Device' and 'Default Playback Device' are switched together (useful for Skype, TeamSpeak, e.g.).. + /// + internal static string communicationsDeviceTooltip { + get { + return ResourceManager.GetString("communicationsDeviceTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connected. + /// + internal static string connected { + get { + return ResourceManager.GetString("connected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cycle through. + /// + internal static string cycleThrough { + get { + return ResourceManager.GetString("cycleThrough", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All audio devices. + /// + internal static string cycleThroughOptionAllAudioDevices { + get { + return ResourceManager.GetString("cycleThroughOptionAllAudioDevices", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Only selected audio devices. + /// + internal static string cycleThroughOptionOnlySelectedAudioDevices { + get { + return ResourceManager.GetString("cycleThroughOptionOnlySelectedAudioDevices", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose between which devices to switch. Either only between the selected or between all.. + /// + internal static string cycleThroughTooltip { + get { + return ResourceManager.GetString("cycleThroughTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable the set Custom Sound.. + /// + internal static string disableCustomSoundTooltip { + get { + return ResourceManager.GetString("disableCustomSoundTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disconnected. + /// + internal static string disconnected { + get { + return ResourceManager.GetString("disconnected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Also switch the foreground program. + /// + internal static string foregroundApp { + get { + return ResourceManager.GetString("foregroundApp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Switch also the sound of the currently in use application. Useful with video games.. + /// + internal static string foregroundAppTooltip { + get { + return ResourceManager.GetString("foregroundAppTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hotkeys. + /// + internal static string hotkeys { + get { + return ResourceManager.GetString("hotkeys", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Check to enable hotkeys.. + /// + internal static string hotkeysTooltip { + get { + return ResourceManager.GetString("hotkeysTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change Icon. + /// + internal static string iconChange { + get { + return ResourceManager.GetString("iconChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose when to change the Systray Icon of SoundSwitch. + /// + ///Never: Don't change it. + ///Playback: When a playback device is switched. + ///Recording: When a recording device is switched.. + /// + internal static string iconChange_tooltip { + get { + return ResourceManager.GetString("iconChange.tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep SoundSwitch's System Tray Icon. + /// + internal static string keepSystemTrayIcon { + get { + return ResourceManager.GetString("keepSystemTrayIcon", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When checked, the System Tray Icon won't change when the 'Default Playback Device' changes.. + /// + internal static string keepSystemTrayIconTooltip { + get { + return ResourceManager.GetString("keepSystemTrayIconTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Language. + /// + internal static string language { + get { + return ResourceManager.GetString("language", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The language will change after restarting SoundSwitch. + ///Do you want to restart now?. + /// + internal static string languageRestartRequired { + get { + return ResourceManager.GetString("languageRestartRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Need a restart. + /// + internal static string languageRestartRequiredCaption { + get { + return ResourceManager.GetString("languageRestartRequiredCaption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Notification. + /// + internal static string notification { + get { + return ResourceManager.GetString("notification", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Banner. + /// + internal static string notificationOptionBanner { + get { + return ResourceManager.GetString("notificationOptionBanner", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Customized Sound Notification. + /// + internal static string notificationOptionCustomized { + get { + return ResourceManager.GetString("notificationOptionCustomized", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Notification. + /// + internal static string notificationOptionNone { + get { + return ResourceManager.GetString("notificationOptionNone", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sound Notification. + /// + internal static string notificationOptionSound { + get { + return ResourceManager.GetString("notificationOptionSound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toast Notification. + /// + internal static string notificationOptionToast { + get { + return ResourceManager.GetString("notificationOptionToast", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Notification. + /// + internal static string notificationOptionWindowsDefault { + get { + return ResourceManager.GetString("notificationOptionWindowsDefault", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Notification: The default windows tray pop-up. + ///Sound Notification: Plays a sound on the switched Playback Device. + ///Customized Sound Notification: Plays the specified sound on the switched Playback Device. + ///Toast Notification: Uses a special form of the windows tray pop-up version. + ///Banner: Uses a custom always-on-top frame, useful for in-game usage.. + /// + internal static string notificationTooltip { + get { + return ResourceManager.GetString("notificationTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Playback. + /// + internal static string playback { + get { + return ResourceManager.GetString("playback", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recording. + /// + internal static string recording { + get { + return ResourceManager.GetString("recording", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selected. + /// + internal static string selected { + get { + return ResourceManager.GetString("selected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select the sound file for the notification.. + /// + internal static string selectSoundButtonTooltip { + get { + return ResourceManager.GetString("selectSoundButtonTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + internal static string settings { + get { + return ResourceManager.GetString("settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start automatically with Windows. + /// + internal static string startWithWindows { + get { + return ResourceManager.GetString("startWithWindows", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tooltip on Hover. + /// + internal static string tooltipOnHover { + get { + return ResourceManager.GetString("tooltipOnHover", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to For both Devices. + /// + internal static string tooltipOnHoverOptionBothDevices { + get { + return ResourceManager.GetString("tooltipOnHoverOptionBothDevices", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Tooltip. + /// + internal static string tooltipOnHoverOptionNone { + get { + return ResourceManager.GetString("tooltipOnHoverOptionNone", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Playback Device. + /// + internal static string tooltipOnHoverOptionPlaybackDevice { + get { + return ResourceManager.GetString("tooltipOnHoverOptionPlaybackDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recording Device. + /// + internal static string tooltipOnHoverOptionRecordingDevice { + get { + return ResourceManager.GetString("tooltipOnHoverOptionRecordingDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Include Beta versions. + /// + internal static string updateIncludeBetaVersions { + get { + return ResourceManager.GetString("updateIncludeBetaVersions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When checked, SoundSwitch will also check for pre-release versions on GitHub.. + /// + internal static string updateIncludeBetaVersionsTooltip { + get { + return ResourceManager.GetString("updateIncludeBetaVersionsTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Install updates automatically. + /// + internal static string updateInstallAutomatically { + get { + return ResourceManager.GetString("updateInstallAutomatically", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Updates are installed automatically without any prompts.. + /// + internal static string updateInstallAutomaticallyTooltip { + get { + return ResourceManager.GetString("updateInstallAutomaticallyTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Never check for updates. + /// + internal static string updateNever { + get { + return ResourceManager.GetString("updateNever", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Don't update the program unless you do it manually.. + /// + internal static string updateNeverTooltip { + get { + return ResourceManager.GetString("updateNeverTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Notify me when updates are available. + /// + internal static string updateNotify { + get { + return ResourceManager.GetString("updateNotify", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SoundSwitch will notify you when there is a new update available. When clicking on the notification, you'll get a popup downloading the update for you and asking if you want to install it.. + /// + internal static string updateNotifyTooltip { + get { + return ResourceManager.GetString("updateNotifyTooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update Settings. + /// + internal static string updateSettings { + get { + return ResourceManager.GetString("updateSettings", resourceCulture); + } + } + } +} diff --git a/Localization/SettingsStrings.de.resx b/Localization/SettingsStrings.de.resx new file mode 100644 index 0000000000..02cad60001 --- /dev/null +++ b/Localization/SettingsStrings.de.resx @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Aufnahme: {0} + + + Wiedergabe: {0} + + + Ausgewählt + + + Aufnahme + + + Wiedergabe + + + Einstellungen + + + Standardkommunikationsgerät wechseln + + + Automatisch mit Windows starten + + + Schließen + + + Änderungen werden automatisch gesichert + + + Falls aktiv, werden das "Standardkommunikationsgerät" und "Standard Wiedergabegerät" gleichzeitig gewechselt (nützlich für Skype, TeamSpeak, etc.). + + + Benachrichtigung + + + Inklusive Beta Versionen + + + Falls aktiv, wird SoundSwitch auch nach Pre-Release Versionen auf GitHub suchen. + + + Audiodateien + + + Wähle eine Audiodatei für die Benachrichtigung. + + + Grundlegende Einstellungen + + + Akustische Einstellungen + + + Update Einstellungen + + + Updates automatisch installieren + + + Benachrichtigen falls Update verfügbar + + + Nie nach Updates suchen + + + Tooltip + + + Windows Benachrichtigung + + + Akustische Benachrichtigung + + + Keine Benachrichtigung + + + Popup Benachrichtigung + + + Angepasste akustische Benachrichtigung + + + Wiedergabegerät + + + Aufnahmegerät + + + Für beide Geräte + + + Kein Tooltip + + + Audiodatei nicht gefunden + + + Sprache + + + Verbunden + + + Getrennt + + + Tastenkürzel + + + Aktiviert das Tastenkürzel. + + + Durchwechseln + + + SoundSwitch's Taskleistensymbol beibehalten + + + Falls aktiv, wird das Symbol von SoundSwitch in der Taskleiste nicht das aktuelle "Standard Wiedergabegerät" anzeigen. + + + Updates werden automatisch ohne Benutzereingabe installiert. + + + Alle Audiogeräte + + + Nur ausgewählte Audiogeräte + + + Wähle zwischen welchen Geräten gewechselt werden soll. Entweder nur zwischen den ausgewählten oder zwischen allen. + + + Die Audiodatei für die Benachrichtigungen konnte nicht gefunden werden. SoundSwitch wechselte die Benachrichtigungseinstellungen zu {0}. + + + Windows Benachrichtigung: Das Standard Windows Pop-Up. +Akustische Benachrichtigung: Spielt einen Sound auf dem Wiedergabegerät ab. +Angepasste akustische Benachrichtigung: Spielt einen selbst definierten Sound ab. +Popup Benachrichtigung: Spezielle Form eines Windows Pop-ups. +Banner: Ein spezielles Fenster welches immer obenauf angezeigt wird, nützlich bei Spielen. + + + Die Sprache wird beim Neustart von SoundSwitch übernommen. +Möchten Sie jetzt neustarten? + + + Neustart notwendig + + + Updates müssen manuell installiert werden. + + + SoundSwitch zeigt eine Benachrichtigung, falls ein Update verfügbar ist. Mit einem Klick auf die Benachrichtigung lässt sich das Update dann installieren. + + + Banner + + + Benutzerdefinierten Sound deaktivieren. + + + Auch die aktuell aktive Anwendung umschalten + + + Schaltet auch den Sound der aktuell aktiven Anwendung um. Nützlich für Spiele. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.el-GR.resx b/Localization/SettingsStrings.el-GR.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/SettingsStrings.el-GR.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/Localization/SettingsStrings.es.resx b/Localization/SettingsStrings.es.resx new file mode 100644 index 0000000000..55ef58011c --- /dev/null +++ b/Localization/SettingsStrings.es.resx @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Seleccionado + + + Conectado + + + Desconectado + + + Grabación + + + Reproducción + + + Configuración + + + Atajos + + + Cambia Dispositivo de Comunicación por Defecto + + + Iniciar automaticamente con Windows + + + Cerrar + + + Cambios automáticamente guardados + + + Cuando es marcado, el 'Dispositivo de comunicación por defeto' y ' Dispositivo de reproducción por defecto' son cambiados simultaneamente (útil para Skype, TeamSpeak, e.g.). + + + Notificación + + + Incluir versiones Beta + + + Cuando es marcado, SoundSwitch también buscará versiones preliminares en GitHub. + + + Archivos de Audio + + + Selecciona el fichero de soniso para la notificación. + + + Marca para habilitar atajos. + + + Configuración Básica + + + Configuración de Audio + + + Actualiza Configuración + + + Cycle through + + + Mantener SoundSwitch como icono en la barra de sistema + + + Cuando esté marcado, el icono de la bara del sistema cambiará cuando cambie el 'Dispositivo de reproducción predeterminado'. + + + Instala actualizaciones automáticamente + + + Actualizaciones son instalados automáticamente sin preguntas. + + + Notificar cuando existan actualizaciones disponibles + + + No comprobar existencia de actualizaciones + + + Barra contextual flotante + + + Todos los dispositivos de audio + + + Solo seleccionados dispositivos de audio + + + Selecciona entre que dispositivos cambiar. O solo entre el seleccionado o entre todos. + + + Notificación de Windows + + + Sonido de notificación + + + Sin Notificación + + + Toast Notification + + + Notificación de sonido personalizado + + + Notificación de Windows: La ventana emergente predeterminada de Windows. +Notificación de Sonido: Reproduce un sonido en el Dispositivo de reproducción seleccionado. +Sonido de Notificación personalizado: Reproduce el sonido especificado en el Dispositivo de reproducción seleccionado. +Toast Notification: Uses a special form of the windows tray pop-up version. +Banner: Uses a custom always-on-top frame, useful for in-game usage. + + + Dispositivo de Reproducción + + + Dispositivo de Grabación + + + Para ambos dispositivos + + + Sin menus contextuales + + + El archivo de audio seleccionado para ser usado como notificación no puede ser encontrado. SoundSwitch revertirá la configuración de notificación a {0}. + + + Archivo de audio no encontrado + + + Grabar: {0} + + + Reproducir: {0} + + + Idioma + + + El idioma cambiará después de reniciar SoundSwitch. +¿Desea reiniciarlo ahora? + + + Es necesario reiniciar la aplicación + + + No actualizar el programa a menos que lo hagas manualmente. + + + SoundSwitch te notificará cuando exista una nueva actualización disponible. Cuando clickes en la notificación, aparecerá una ventana emergente con el progreso de la descarga de la actualización y te preguntará si quieres instalarla cuando finalice. + + + Banner + + \ No newline at end of file diff --git a/Localization/SettingsStrings.fi-FI.resx b/Localization/SettingsStrings.fi-FI.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/SettingsStrings.fi-FI.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/Localization/SettingsStrings.fr.resx b/Localization/SettingsStrings.fr.resx new file mode 100644 index 0000000000..b9fe806b07 --- /dev/null +++ b/Localization/SettingsStrings.fr.resx @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sélectionné + + + Connecté + + + Déconnecté + + + Enregistrement + + + Lecture + + + Raccourcis + + + Configuration + + + Les changements sont sauvegardés automatiquement + + + Fermer + + + Notification + + + Si la case est cochée, SoundSwitch téléchargera les versions beta du program. + + + Fichiers Audio + + + Choissez le fichier audio pour la notification sonore. + + + Configuration de base + + + Configuration Audio + + + Configuration des MàJ + + + Switcher entre + + + Tous les cartes audio + + + Seulement les cartes sélectionnées + + + Notification Sonore + + + Aucune Notification + + + Notification Popup + + + Notification Sonore Personalisée + + + Périphérique de lecture + + + Périphérique d'enregistrement + + + Pas de notification + + + Le fichier audio que vous avez sélectionné pour être joué comme notification est introuvable. SoundSwitch a changé ses paramétre de notification pour {0}. + + + Fichier audio introuvable + + + Enr: {0} + + + Lec: {0} + + + Changer la carte de communication + + + Quand cette option est sélectionnée, l'application changera aussi la carte audio utilisée pour la communication. + + + Pour activer le raccourcis clavier. + + + Garder l'icone de SoundSwitch + + + Pour que l'icone de SoundSwitch ne change pas quand la carte par défault change. + + + Choisir quel group de carte audio changer. Soit toute, soit celle que vous avez sélectionné. + + + Notification Windows + + + Notif. Windows: Popup sur l'icone de système. +Notif. Sonore: Joue un son. +Notif. Sonore Perso: Joue le son choisi. +Notif. Toast: Popup sur le coté de l'écran dans Windows 10. +Ban. : Bannière discrète sur fond noir transparent sur le coté gauche de l'écran. + + + Langue + + + Voulez-vous redémarrer SoundSwitch pour changer la langue ? + + + Besoin de redémarrer + + + Démarrer avec Windows + + + Version Beta + + + Auto-Installation + + + Les mise à jour sont téléchargées et installées automatiquement. + + + Pas de MàJ + + + Information + + + Toutes les cartes + + + Notification de MàJ + + + Ne pas mettre à jour le programme. Vous devez télécharger manuelleme les nouvelles versions. + + + SoundSwitch vous préviendra quand une MàJ est disponible. Il téléchargera pour vous la MàJ et vous demandera si vous voulez l'installer. + + + Bannière + + + Désactiver le son personnalisé. + + + Switcher aussi l'application visible + + + Change aussi l'audio de l'application en avant. Utile pour les jeux vidéo. + + + Icône système + + + Changer l'icone système de SoundSwitch. + +Jamais: Icone du programme. +Lecture: Quand le périférique de lecture est switché. +Enregistrement: Quand le périférique d'enregistrement est switché. +Toujours: Quand un périférique audio est switché. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.it-IT.resx b/Localization/SettingsStrings.it-IT.resx new file mode 100644 index 0000000000..19f6c196a8 --- /dev/null +++ b/Localization/SettingsStrings.it-IT.resx @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Selezionato + + + Connessi + + + Disconnessi + + + Registrazione + + + Riproduzione + + + Impostazioni + + + Tasti rapidi + + + Modifica dispositivo comunicazione predefinito + + + Esegui automaticamente all'avvio di Windows + + + Chiudi + + + Le modifiche sono state automaticamente salvate + + + Quando selezionato, verranno cambiati insieme il 'Dispositivo di comunicazione predefinito' e il 'Dispositivo di riproduzione predefinito' (utile per Skype, TeamSpeak, ecc.). + + + Notifiche + + + Includi controllo versioni beta + + + Quando selezionato, SoundSwitch controllerà anche la presenza di versioni beta su Github. + + + File audio + + + Seleziona il file audio per la notifica. + + + Spunta per abilitare i tasti rapidi. + + + Impostazioni di base + + + Impostazioni audio + + + Impostazioni aggiornamento + + + Cambia tra i + + + Mantieni icona di sistema SoundSwitch + + + Se selezionato, quando viene cambiato il 'Dispositivo di riproduzione predefinito' l'icona di sistema non verrà modificata. + + + Installa automaticamente aggiornamenti + + + Gli aggiornamenti saranno installati automaticamente senza conferma. + + + Avvisami quando è disponibile un aggiornamento + + + Non controllare mai gli aggiornamenti + + + Suggerimento passando sopra + + + Tutti i dispositivi audio + + + Solo i dispositivi audio selezionati + + + Scegli quali dispositivi puoi commutare. Puoi scegliere tra i selezionati o tutti. + + + Finestra notifica + + + Notifica audio + + + Nessuna notifica + + + Notifica toast + + + Notifica audio personalizzata + + + Finestra notifica: la finestra popup predefinita. +Notifica audio: riproduce un suono quando si modifica il dispositivo di riproduzione. +Notifica audio personalizzata: riproduce uno specifico suono quando si modifica il dispositivo di riproduzione. +Notifica toast: usa uno speciale modulo della versione finestra popup. +Banner: usa uno speciale riquadro sempre in primo piano, utile per l'uso durante i giochi. + + + Dispositivo riproduzione + + + Dispositivo registrazione + + + Per entrambi i dispositivi + + + Nessun suggerimento + + + Il file audio selezionato per la notifica non è disponibile. SoundSwitch tornerà all'impostazione di notifica '{0}'. + + + File audio non trovato + + + Reg: {0} + + + Riproduttore: {0} + + + Lingua + + + La lingua verà modificata dopo il riavvio di SoundSwitch. +Vuoi riavviare SoundSwitch ora? + + + Richiede un riavvio + + + Non verrà aggiornato il programma a meno di farlo manualmente. + + + SoundSwitch notificherà quando è disponibile un aggiornamento. +Facendo clic sulla notifica, apparirà una finestra che scaricherà l'aggiornamento e chiederà se si vuole installarlo. + + + Pubblicità + + + Disabilita il set Suoni personalizzati. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.ja-JP.resx b/Localization/SettingsStrings.ja-JP.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/SettingsStrings.ja-JP.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/Localization/SettingsStrings.nb.resx b/Localization/SettingsStrings.nb.resx new file mode 100644 index 0000000000..43973e612e --- /dev/null +++ b/Localization/SettingsStrings.nb.resx @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Valgt + + + Tilkoblet + + + Frakoblet + + + Opptak + + + Avspilling + + + Innstillinger + + + Snarveier + + + Veksle forvalgt kommunikasjonsenhet + + + Start automatisk med Windows + + + Lukk + + + Endringer blir lagret automatisk + + + Når valgt, vil "Forvalgt kommunikasjonsenhet" og "Forvalgt avspillingsenhet" byttes sammen (nyttig for Mumble, Jitsi osv.). + + + Merknad + + + Inkluder Beta-versjoner + + + Når valgt, vil SoundSwitch også se etter forhåndsversjoner på GitHub. + + + Lydfiler + + + Velg lydfil for merknaden. + + + Velg for å skru på snarveier. + + + Grunnleggende innstillinger + + + Lydinnstillinger + + + Oppdater innstillinger + + + Veksle gjennom + + + Behold Soundswitch sitt systemkurvsikon + + + Når valgt, vil ikke systemkurvsikonet endre seg når "Forvalg avspillingsenhet" endres. + + + Installer oppgraderinger automatisk + + + Oppgraderinger installeres automatisk uten forvarsel. + + + Varsle meg om nye oppgraderinger + + + Aldri se etter oppgraderinger + + + Verktøystips ved musesveving + + + Alle lydenheter + + + Kun valgte lydenheter + + + Velg mellom enhetene det skal byttes mellom. Enten mellom valgte eller mellom alle. + + + Windows-merknad + + + Lydmerknad + + + Uten merknad + + + Hjørnemerknad + + + Egendefinert lydmerknad + + + Windows-merknad: Forvalgt oppsprett for Windows. +Lydmerknad: Spiller en lyd på byttet avspillingsenhet. +Egendefinert lydmerknad: Spiller en angitt lyd på byttet avspillingsenhet. +Hjørnemerknad: Bruker en spesiell type av systemkurvsoppsprettet for windows. +Banner: Bruker en ramme som alltid er i forgrunnen, nyttig inne i spill. + + + Avspillingsenhet + + + Opptaksenhet + + + For begge enheter + + + Uten verktøystips + + + Lydfilen du valgte til bruk for merknadsvarsling ble ikke funnet. SoundSwitch byttet merknadsinnstillingen tilbake til {0}. + + + Lydfil ble ikke funnet + + + Opptak: {0} + + + Avspilling: {0} + + + Språk + + + Språket vil tre i effekt etter at du starter SoundSwitch på ny. +Ønsker du å starte på nytt nå? + + + Omstart behøves + + + Ikke oppgrader programmet med mindre det gjøres manuelt. + + + SoundSwitch varsler ny oppgradering med en merknad. Når du klikker denne, får du et oppsprett som laster den ned og spørs deg om du vil installere den. + + + Banner + + + Skru av satt egendefinert lyd. + + + Veksle også forgrunnsprogrammet + + + Veksle også lyden for brukt program. Nyttig i videospill. + + + Systemkurvsikonet + + + Velg når systemkurvsikonet for SonudSwitch skal endres. + +Aldri: Ikke endre det. +Avspilling: Når en avspillingenhet veksles. +Opptak: Når en opptaksenhet veksles. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.pl-PL.resx b/Localization/SettingsStrings.pl-PL.resx new file mode 100644 index 0000000000..e548dbedf0 --- /dev/null +++ b/Localization/SettingsStrings.pl-PL.resx @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Połączone + + + Niepołączone + + + Skrót klawiszowy + + + Przełącz domyślne urządzenie komunikacyjne + + + Zamknij + + + Zmiany są automatycznie zapisywane + + + Kiedy zaznaczone także domyślne urządzenie komunikacyjne zostanie przełączone razem z domyślnym urządzeniem (przydatne w Skype, TeamSpeak itd.) + + + Pliki audio + + + Zaznacz by włączyć skrót klawiszowy + + + Ustawienia podstawowe + + + Ustawienia dźwięku + + + Przełączaj + + + Pozostaw ikonę SoundSwitch + + + Wszystkie urządzenia audio + + + Tylko wybrane urządzenia audio + + + Wybierz czy przełączać między wszystkimi urządzeniami czy jedynie wybranymi. + + + Nie można odnaleźć pliku audio używanego jako dźwięk powiadomienia. SoundSwitch będzie używał {0} jako dźwięku powiadomienia. + + + Plik audio nie został znaleziony + + + Nagrywanie: {0} + + + Odtwarzanie: {0} + + + Wyłącz spersonalizowane dźwięki + + + Przełącz także w programach w tle + + + Przełącz dźwięk także w aktualnie używanej aplikacji. Przydatne w grach. + + + Ikona w zasobniku systemowym + + + Wybierz kiedy zmienić ikonę SoundSwitch w zasobniku systemowym. + +Domyślne: Ikona SoundSwitch +Odtwarzanie: Kiedy urządzenie audio zostało przełączone +Nagrywanie: Kiedy urządzenie nagrywania zostało przełączone +Zawsze: Zmień ikonę, kiedy którekolwiek z urządzeń zostało przełączone + + + Powiadomienia + + + Zaznacz by nie zmieniać ikony w zasobniku kiedy domyślne urządzenie odtwarzania zostało przełączone. + + + Powiadomienie Windows + + + Powiadomienie dźwiękowe + + + Brak powiadomień + + + Wyskakujące powiadomienie + + + Spersonalizowane powiadomienia dźwiękowe + + + Język + + + Język zostanie zmieniony po ponownym uruchomieniu SoundSwitch. Uruchomić ponownie? + + + Wymaga ponownego uruchomienia + + + Baner + + + Powiadomienie Windows: Domyślne wyskakujące powiadomienie systemu Windows +Powiadomienie dźwiękowe: Odtwarza powiadomienie na urządzeniu domyślnym +Spersonalizowane powiadomienie dźwiękowe: Odtwarza wskazany dźwięk na domyślnym urządzeniu audio +Wyskakujące powiadomienie: Używa specjalnego powiadomienia wyskakującego z zasobnika systemowego +Baner: Używa specjalnego powiadomienia w formie zawsze widocznej na ekranie ramki, przydatne w grach. + + + Wybrane + + + Nagrywanie + + + Odtwarzanie + + + Ustawienia + + + Uruchamiaj przy starcie systemu Windows + + + Instaluj wersje beta + + + Wybierz plik dźwiękowy do użycia jako dźwięk powiadomień. + + + Informacja po najechaniu na ikonę + + + Urządzenie odtwarzania + + + Urządzenie nagrywania + + + Wszystkie urządzenia + + + Brak informacji + + + Jeśli zaznaczone, SoundSwitch będzie instalował także wersje beta z GitHuba. + + + Automatycznie instaluj uaktualnienia + + + Uaktualnienia będą instalowane automatycznie. + + + Powiadom mnie kiedy uaktualnienie będzie dostępne + + + Nigdy nie sprawdzaj dostępnych uaktualnień + + + SoundSwitch nie będzie instalował uaktualnień, o ile nie zainstalujesz ich ręcznie. + + + SoundSwitch poinformuje o dostępności nowego uaktualnienia. Po kliknięciu na powiadomienie uaktualnienie zostanie pobrane i pojawi się zapytanie czy powinno zostać zainstalowane. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.pt-BR.resx b/Localization/SettingsStrings.pt-BR.resx new file mode 100644 index 0000000000..b801811441 --- /dev/null +++ b/Localization/SettingsStrings.pt-BR.resx @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Selecionado + + + Conectado + + + Desconectado + + + Gravação + + + Reprodução + + + Configurações + + + Atalhos + + + Trocar dispositivo de comunicação padrão + + + Iniciar automaticamente com o Windows + + + Fechar + + + Alterações são automaticamente salvas + + + Quando marcado, o 'Dispositivo de comunicação padrão' e o 'Dispositivo de reprodução padrão' são trocados simultneamente (útil para Skype, TeamSpeak, etc.). + + + Notificação + + + Incluir versões Beta + + + Quando marcado, SoundSwitch irá buscar por versões preliminares no GitHub. + + + Arquivos de Áudio + + + Seleciona um arquivo de som para a notificação. + + + Marcar para habilitar atalhos. + + + Configurações Básicas + + + Configurações de Áudio + + + Configurações de Atualização + + + Trocar entre + + + Manter o ícone do SoundSwitch na barra do sistema + + + Quando marcado, o Ícone do Systema não irá ser trocado quando o 'Dispositivo de Reprodução Padrão' for trocado. + + + Instalar atualizações automaticamente + + + Atualizações são instaladas automaticamente sem aviso. + + + Notifique-me quando atualizações estiverem disponíveis + + + Nunca checar por atualizações + + + Barra flutuante + + + Todos os dispositivos de áudio + + + Apenas os dispositivos de áudio selecionados + + + Selecione quais dispositivos trocar. Apenas entre o selecionado ou entre todos. + + + Notificação do Windows + + + Notificação de som + + + Sem notificação + + + Notificação em pop-up + + + Notificação de som personalizada + + + Notificação do Windows: Notificação padrão do windows (pop-up). +Notificação de Som: Reproduz um som no dispositivo de notificação selecionado. +Notificação de som customizada: Reproduz um som especifico no Dispositivo de Reprodução selecionado. +Notificação Toast: Usa uma forma especial da notificação de pop-up do Windows. +Banner: Usa uma moldura 'sempre no topo'; útil para uso em jogos. + + + Dispositivo de Reprodução + + + Dispositivo de Gravação + + + Para ambos os dispositivos + + + Sem dicas contextuais + + + O arquivo de áudio escolhido para ser usado como notificação não pôde ser encontrado. SoundSwitch revertirá a configuração de notificação para {0}. + + + Arquivo de áudio não encontrado + + + Gravar: {0} + + + Reproduzir: {0} + + + Idioma + + + O idioma será trocado após o SoundSwitch ser reiniciado. Reiniciar agora? + + + É necessário reiniciar a aplicação + + + Não atualizar o programa a menos que feito manualmente. + + + SoundSwitch irá te notificar quando uma nova atualização estiver disponível. Quando clicar na notificação, uma janela para download e instalação do update aparecerá. + + + Banner + + \ No newline at end of file diff --git a/Localization/SettingsStrings.pt_PT.resx b/Localization/SettingsStrings.pt_PT.resx new file mode 100644 index 0000000000..2256f322c8 --- /dev/null +++ b/Localization/SettingsStrings.pt_PT.resx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + diff --git a/Localization/SettingsStrings.resx b/Localization/SettingsStrings.resx new file mode 100644 index 0000000000..934ec02f67 --- /dev/null +++ b/Localization/SettingsStrings.resx @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Selected + + + Connected + + + Disconnected + + + Recording + + + Playback + + + Settings + + + Hotkeys + + + Switch Default Communication Device + + + Start automatically with Windows + + + Close + + + Changes are automatically saved + + + When checked, the 'Default Communication Device' and 'Default Playback Device' are switched together (useful for Skype, TeamSpeak, e.g.). + + + Notification + + + Include Beta versions + + + When checked, SoundSwitch will also check for pre-release versions on GitHub. + + + Audio Files + + + Select the sound file for the notification. + + + Check to enable hotkeys. + + + Basic Settings + + + Audio Settings + + + Update Settings + + + Cycle through + + + Keep SoundSwitch's System Tray Icon + + + When checked, the System Tray Icon won't change when the 'Default Playback Device' changes. + + + Install updates automatically + + + Updates are installed automatically without any prompts. + + + Notify me when updates are available + + + Never check for updates + + + Tooltip on Hover + + + All audio devices + + + Only selected audio devices + + + Choose between which devices to switch. Either only between the selected or between all. + + + Windows Notification + + + Sound Notification + + + No Notification + + + Toast Notification + + + Customized Sound Notification + + + Windows Notification: The default windows tray pop-up. +Sound Notification: Plays a sound on the switched Playback Device. +Customized Sound Notification: Plays the specified sound on the switched Playback Device. +Toast Notification: Uses a special form of the windows tray pop-up version. +Banner: Uses a custom always-on-top frame, useful for in-game usage. + + + Playback Device + + + Recording Device + + + For both Devices + + + No Tooltip + + + The audio file you selected to be used as notification can't be found. SoundSwitch switched the notification setting back to {0}. + + + Audio file not found + + + Rec: {0} + + + Play: {0} + + + Language + + + The language will change after restarting SoundSwitch. +Do you want to restart now? + + + Need a restart + + + Don't update the program unless you do it manually. + + + SoundSwitch will notify you when there is a new update available. When clicking on the notification, you'll get a popup downloading the update for you and asking if you want to install it. + + + Banner + + + Disable the set Custom Sound. + + + Also switch the foreground program + + + Switch also the sound of the currently in use application. Useful with video games. + + + Systray Icon + + + Choose when to change the systray Icon of SoundSwitch. + +Default: Don't change it. Keep SoundSwitch Icon. +Playback: When a playback device is switched. +Recording: When a recording device is switched. +Both: Change when any type of device is switched. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.ru-RU.resx b/Localization/SettingsStrings.ru-RU.resx new file mode 100644 index 0000000000..897e7cceac --- /dev/null +++ b/Localization/SettingsStrings.ru-RU.resx @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Выбранные + + + Подсоединенные + + + Отсоединенные + + + Устройства записи + + + Устройства воспроизведения + + + Настройки + + + Клавиши + + + Переключать устройство связи по умолчанию + + + Запускать автоматически с Windows + + + Закрыть + + + Изменения сохраняются автоматически + + + Если флажок установлен, то "Устройство связи" и "Устройство воспроизведения" переключаются вместе. +(Полезно для Skype, TeamSpeak и т.п.) + + + Уведомление + + + Проверять бета-версии + + + Если флажок установлен, SoundSwitch также проверяет наличие бета версий на GitHub. + + + Аудио файлы + + + Выбор звукового файла для уведомления. + + + Установите флажок, чтобы включить горячие клавиши. + + + Основные настройки + + + Аудио настройки + + + Настройки обновления + + + Переключать + + + Статичный значок в системном трее + + + Если флажок установлен, значок в системном трее не меняется при изменении "Устройства воспроизведения" + + + Автоустановка обновлений + + + Обновления устанавливаются автоматически без вопросов. + + + Уведомлять о наличии обновлений + + + Не проверять обновления + + + Подсказка при наведении + + + Все аудиоустройства + + + Только выбранные аудиоустройства + + + Выберите, между какими устройствами переключаться. Все или выбранные. + + + Всплывающее окно + + + Звуковое уведомление + + + Без уведомления + + + Всплывающее уведомление + + + Свой звук + + + Всплывающее окно: всплывающее окно в трее, по умолчанию. +Звуковое уведомление: воспроизведение звука при переключении устройства воспроизведения. +Свой звук: воспроизведение указанного звука при переключении устройства воспроизведения. +Всплывающее уведомление: всплывающее уведомление в трее, другая версия окна. +Баннер: использует фрейм "всегда сверху", полезно для использования в играх и т.п. + + + Устройство воспроизведения + + + Устройство звукозаписи + + + Для обоих устройств + + + Без подсказки + + + Аудиофайл, выбранный для уведомления, не найден. SoundSwitch переключился обратно на {0}. + + + Аудиофайл не найден + + + Rec: {0} + + + Play: {0} + + + Язык + + + Язык изменится после перезапуска SoundSwitch. +Перезапустить сейчас? + + + Нужен перезапуск + + + Не обновлять программу. + + + SoundSwitch уведомит вас, когда будет доступно новое обновление. +При нажатии на уведомление вы получите всплывающее окно, с +вопросом, хотите ли вы его установить. + + + Баннер + + + Ваш установленный звук отключен. + + + Также переключить активную программу (переднего плана) + + + Переключить также звук текущего используемого приложения. +Полезно для видеоигр. + + + Значок в трее + + + Выберите, когда изменить значок SoundSwitch в трее. + +По умолчанию: не изменять. Статичный начок SoundSwitch. +Воспроизведение: при переключении устройства воспроизведения. +Запись: при переключении устройства звукозаписи. +Оба: при переключении любого типа устройства. + + \ No newline at end of file diff --git a/Localization/SettingsStrings.sv-SE.resx b/Localization/SettingsStrings.sv-SE.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/SettingsStrings.sv-SE.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/Localization/SettingsStrings.zh-CHS.resx b/Localization/SettingsStrings.zh-CHS.resx new file mode 100644 index 0000000000..72eed121f7 --- /dev/null +++ b/Localization/SettingsStrings.zh-CHS.resx @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 已选择 + + + 已连接 + + + 未连接 + + + 录音 + + + 播放 + + + 设置 + + + 快捷键 + + + 切换默认通信设备 + + + 开机Windows自动启动 + + + 关闭 + + + 自动保存更改 + + + 当检查时,“默认通信设备”和“默认播放设备”被切换到一起(对的Skype,TeamSpeak非常有用)。 + + + 通知 + + + 包括测试版本 + + + 选中后,SoundSwitch还将检查GitHub上的预发行版本。 + + + 音频文件 + + + 选择通知的音频文件。 + + + 检查是否启用快捷键。 + + + 基本设置 + + + 音频设置 + + + 更新设置 + + + 循环 + + + 保留SoundSwitch的系统托盘图标 + + + 选中时,“默认播放设备”更改时系统托盘图标不会更改。 + + + 自动安装更新 + + + 更新会自动安装,不会有任何提示。 + + + 有更新时通知我 + + + 永远不要检查更新 + + + 悬停上方工具提示 + + + 所有音频设备 + + + 仅选择音频设备 + + + 在哪个设备之间切换。要么只在选择之间,要么在所有之间。 + + + Windows通知 + + + 声音通知 + + + 没有通知 + + + 弹出通知 + + + 自定义的声音通知 + + + Windows通知:默认的Windows托盘弹出窗口。 +声音通知:在切换的播放设备上播放声音。 +自定义声音通知:在切换的播放设备上播放指定的声音。 +弹出通知:使用特殊形式的Windows托盘弹出版本。 +视窗:使用自定义的永远在线视窗,对游戏内使用非常有用。 + + + 播放设备 + + + 录音设备 + + + 对于两种设备 + + + 没有工具提示 + + + 找不到您选择用作通知的音频文件。SoundSwitch将通知设置切换回默认 {0}. + + + 找不到音频文件 + + + 录音:{0} + + + 播放:{0} + + + 语言 + + + 重新启动SoundSwitch后,语言会发生变化。 +现在要重新启动吗? + + + 需要重启 + + + 除非您手动执行此操作,否则不会更新程序。 + + + SoundSwitch会在有新的更新时通知您。单击通知时,您将获得一个弹出窗口,为您下载更新并询问您是否要安装它。 + + + 横幅 + + + 禁用设置自定义声音。 + + + 同时切换前台程序 + + + 还要切换当前正在使用的应用程序的声音。对于视频游戏很有用。 + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.Designer.cs b/Localization/TrayIconStrings.Designer.cs new file mode 100644 index 0000000000..228ef00de8 --- /dev/null +++ b/Localization/TrayIconStrings.Designer.cs @@ -0,0 +1,252 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SoundSwitch.Localization { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class TrayIconStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal TrayIconStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoundSwitch.Localization.TrayIconStrings", typeof(TrayIconStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to About SoundSwitch. + /// + internal static string about { + get { + return ResourceManager.GetString("about", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Click here to update.. + /// + internal static string clickToUpdate { + get { + return ResourceManager.GetString("clickToUpdate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SoundSwitch: Configuration needed. + /// + internal static string configurationNeeded { + get { + return ResourceManager.GetString("configurationNeeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No devices available to switch to. Open configuration by right-clicking on the icon.. + /// + internal static string configurationNeededExplanation { + get { + return ResourceManager.GetString("configurationNeededExplanation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Donate. + /// + internal static string donate { + get { + return ResourceManager.GetString("donate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error. + /// + internal static string error { + get { + return ResourceManager.GetString("error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exit. + /// + internal static string exit { + get { + return ResourceManager.GetString("exit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + internal static string help { + get { + return ResourceManager.GetString("help", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always. + /// + internal static string iconChanger_both { + get { + return ResourceManager.GetString("iconChanger.both", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Never. + /// + internal static string iconChanger_none { + get { + return ResourceManager.GetString("iconChanger.none", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Playback. + /// + internal static string iconChanger_playback { + get { + return ResourceManager.GetString("iconChanger.playback", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recording. + /// + internal static string iconChanger_recording { + get { + return ResourceManager.GetString("iconChanger.recording", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mixer. + /// + internal static string mixer { + get { + return ResourceManager.GetString("mixer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No devices selected. + /// + internal static string noDevicesSelected { + get { + return ResourceManager.GetString("noDevicesSelected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No update available. + /// + internal static string noUpdate { + get { + return ResourceManager.GetString("noUpdate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SoundSwitch: Playback device switched to. + /// + internal static string playbackChanged { + get { + return ResourceManager.GetString("playbackChanged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Playback Devices. + /// + internal static string playbackDevices { + get { + return ResourceManager.GetString("playbackDevices", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SoundSwitch: Recording device switched to. + /// + internal static string recordingChanged { + get { + return ResourceManager.GetString("recordingChanged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + internal static string settings { + get { + return ResourceManager.GetString("settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update Available ({0}). + /// + internal static string updateAvailable { + get { + return ResourceManager.GetString("updateAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update for SoundSwitch ({0}) is available.. + /// + internal static string versionAvailable { + get { + return ResourceManager.GetString("versionAvailable", resourceCulture); + } + } + } +} diff --git a/Localization/TrayIconStrings.de.resx b/Localization/TrayIconStrings.de.resx new file mode 100644 index 0000000000..25c6b00706 --- /dev/null +++ b/Localization/TrayIconStrings.de.resx @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Kein Update verfügbar + + + Kein Gerät ausgewählt + + + Wiedergabegeräte + + + Mixer + + + Einstellungen + + + Über SoundSwitch + + + Beenden + + + Update verfügbar ({0}) + + + Update auf SoundSwitch ({0}) ist verfügbar. + + + Hier klicken um zu updaten. + + + SoundSwitch: Wiedergabegerät gewechselt zu + + + SoundSwitch: Aufnahmegerät gewechselt zu + + + SoundSwitch: Konfiguration benötigt + + + Keine Geräte vorhanden um zu wechseln. Öffne die Einstellungen mit einem rechts-klick auf das Icon in der Statusleiste. + + + Fehler + + + Hilfe + + + Spenden + + + Wiedergabegeräte + + + Aufnahmegerät + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.el-GR.resx b/Localization/TrayIconStrings.el-GR.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/TrayIconStrings.el-GR.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/Localization/TrayIconStrings.es.resx b/Localization/TrayIconStrings.es.resx new file mode 100644 index 0000000000..64a63b18d3 --- /dev/null +++ b/Localization/TrayIconStrings.es.resx @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Sin actualizaciones disponibles + + + Sin dispositivos seleccionados + + + Dispositivos de Reproducción + + + Mezclador + + + Configuración + + + Sobre SoundSwitch + + + Salir + + + Actualización disponible ({0}) + + + Actualización de SoundSwitch ({0}) está disponible. + + + Click aquí para actualizar. + + + SoundSwitch: Dispoitivo de reproducción cambiado a + + + SoundSwitch: Dispositivo de grabación cambiado a + + + SoundSwitch: Configuration necesaria + + + No existen dispositivos disponibles para cambiar. Abre la configuración clickando con el botón derecho en el icono. + + + Error + + + Ayuda + + + Donar + + + Reproducción + + + Rrabación + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.fi-FI.resx b/Localization/TrayIconStrings.fi-FI.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/TrayIconStrings.fi-FI.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/Localization/TrayIconStrings.fr.resx b/Localization/TrayIconStrings.fr.resx new file mode 100644 index 0000000000..eeddd43044 --- /dev/null +++ b/Localization/TrayIconStrings.fr.resx @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Aucun périphérique configuré + + + Périphériques de Lecture + + + Mélangeur + + + Configuration + + + A propos SoundSwitch + + + Fermer + + + MàJ Disponible ({0}) + + + MàJ pour SoundSwitch ({0}) est disponible. + + + Cliquer ici pour mettre à jour. + + + SoundSwitch: Périphérique de lecture + + + SoundSwitch: Périphérique d'enregistrement + + + SoundSwitch: Doit être configuré + + + Aucun périphérique disponible. Faites un clic droit sur l'icone pour configurer les périphériques. + + + Erreur + + + Aide + + + Donation + + + Aucune MàJ présente + + + Lecture + + + Enregistrement + + + Défaut + + + Les deux + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.it-IT.resx b/Localization/TrayIconStrings.it-IT.resx new file mode 100644 index 0000000000..e0b9a3baec --- /dev/null +++ b/Localization/TrayIconStrings.it-IT.resx @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Nessun aggiornamento disponibile + + + Nessun dispositivo selezionato + + + Dispositivi riproduzione + + + Mixer + + + Impostazioni + + + Info su SoundSwitch + + + Esci + + + Disponibile aggiornamento ({0}) + + + È disponibile un aggiornamento ({0}) per SoundSwitch. + + + Fai clic qui per aggiornare. + + + SoundSwitch: dispositivo riproduzione modificato a + + + SoundSwitch: dispositivo registrazione modificato a + + + SoundSwitch: necessaria configurazione + + + Nessun dispositivo disponibile per la modifica. Apri la configurazione con un clic destro sull'icona. + + + Errore + + + Guida + + + Dona + + + Riproduzione + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.ja-JP.resx b/Localization/TrayIconStrings.ja-JP.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/TrayIconStrings.ja-JP.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/Localization/TrayIconStrings.nb.resx b/Localization/TrayIconStrings.nb.resx new file mode 100644 index 0000000000..6e4f74ee18 --- /dev/null +++ b/Localization/TrayIconStrings.nb.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Ingen oppgraderinger + + + Ingen enheter valgt + + + Avspillingsenheter + + + Mikser + + + Innstillinger + + + Om + + + Avslutt + + + Oppgradering tilgjengelig ({0}) + + + Oppgradering for SoundSwitch ({0}) tilgjngelig. + + + Klikk her for å oppgradere. + + + SoundSwitch: Avspillingsnehet endret til + + + SoundSwitch: Opptaksenhet endret til + + + SoundSwitch: Oppsett nødvendig + + + Ingen enheter tilgjengelige å bytte til. Åpne oppsettet ved å høyreklikke på ikonet. + + + Feil + + + Hjelp + + + Doner + + + Avspillingsenheter + + + Opptak + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.pl-PL.resx b/Localization/TrayIconStrings.pl-PL.resx new file mode 100644 index 0000000000..86bb5c71fa --- /dev/null +++ b/Localization/TrayIconStrings.pl-PL.resx @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Brak dostępnych aktualizacji + + + Nie wybrano urządzeń + + + Urządzenia odtwarzania + + + Mikser + + + Ustawienia + + + O SoundSwitch + + + Wyjście + + + Dostępne uaktualnienie ({0}) + + + Kliknij tutaj by zaktualizować program. + + + SoundSwitch: Urządzenie odtwarzania przełączone na + + + SoundSwitch: Urządzenie nagrywania przełączone na + + + SoundSwitch: Konfiguracja wymagana + + + Brak dostępnych urządzeń do przełączenia. Kliknij prawym przyciskiem myszy na ikonę by otworzyć okno konfiguracji. + + + Błąd + + + Pomoc + + + Dotacje + + + Odtwarzanie + + + Nagrywanie + + + Domyślne + + + Oba + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.pt-BR.resx b/Localization/TrayIconStrings.pt-BR.resx new file mode 100644 index 0000000000..7847708dd6 --- /dev/null +++ b/Localization/TrayIconStrings.pt-BR.resx @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Não há atualizações disponíveis + + + Não há dispositivos selecionados + + + Dispositivos de reprodução + + + Mixer + + + Configurações + + + Sobre o SoundSwitch + + + Sair + + + Atualização disponível ({0}) + + + Atualização para Soundswitch ({0}) está disponível. + + + Clique aqui para atualizar. + + + SoundSwitch: Dispositivo de reprodução trocado por + + + SoundSwitch: Dispositivo de gravação trocado por + + + SoundSwitch: configuração necessária + + + Não há dispostivos para serem trocados. Abra as configurações clicando com o botão direito no ícone. + + + Erro + + + Ajuda + + + Doar + + + Reprodução + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.resx b/Localization/TrayIconStrings.resx new file mode 100644 index 0000000000..86943f5866 --- /dev/null +++ b/Localization/TrayIconStrings.resx @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 update available + + + No devices selected + + + Playback Devices + + + Mixer + + + Settings + + + About SoundSwitch + + + Exit + + + Update Available ({0}) + + + Update for SoundSwitch ({0}) is available. + + + Click here to update. + + + SoundSwitch: Playback device switched to + + + SoundSwitch: Recording device switched to + + + SoundSwitch: Configuration needed + + + No devices available to switch to. Open configuration by right-clicking on the icon. + + + Error + + + Help + + + Donate + + + Playback + + + Recording + + + Default + + + Both + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.ru-RU.resx b/Localization/TrayIconStrings.ru-RU.resx new file mode 100644 index 0000000000..11641cd1fd --- /dev/null +++ b/Localization/TrayIconStrings.ru-RU.resx @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Нет доступных обновлений + + + Нет выбранных устройств + + + Устройства воспроизведения + + + Микшер + + + Настройки + + + О программе + + + Выход + + + Доступно обновление ({0}) + + + Доступно обновление SoundSwitch ({0}). + + + Нажмите здесь, чтобы обновить. + + + SoundSwitch: Устройство воспроизведения переключено на + + + SoundSwitch: Устройство звукозаписи переключено на + + + SoundSwitch: Требуется настройка + + + Нет доступных устройств для переключения. Укажите их в настройках программы. + + + Ошибка + + + Справка (сайт) + + + Поддержать развитие + + + Воспроизведение + + + Звукозапись + + + По умолчанию + + + Оба + + \ No newline at end of file diff --git a/Localization/TrayIconStrings.sv-SE.resx b/Localization/TrayIconStrings.sv-SE.resx new file mode 100644 index 0000000000..6eca88b7ce --- /dev/null +++ b/Localization/TrayIconStrings.sv-SE.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/Localization/TrayIconStrings.zh-CHS.resx b/Localization/TrayIconStrings.zh-CHS.resx new file mode 100644 index 0000000000..c1fd3c77a3 --- /dev/null +++ b/Localization/TrayIconStrings.zh-CHS.resx @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 没有可用的更新 + + + 没有选择设备 + + + 播放设备 + + + 音量混合器 + + + 设置 + + + 关于SoundSwitch + + + 退出 + + + 可用更新 ({0}) + + + SoundSwitch ({0})的更新是可用的。 + + + 点击这里更新。 + + + SoundSwitch:播放设备切换到 + + + SoundSwitch:录制设备切换到 + + + SoundSwitch:需要配置 + + + 没有可用的设备切换。通过右键单击图标打开配置。 + + + 错误 + + + 帮助 + + + 捐赠 + + + 播放设备 + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.Designer.cs b/Localization/UpdateDownloadStrings.Designer.cs new file mode 100644 index 0000000000..9da2723169 --- /dev/null +++ b/Localization/UpdateDownloadStrings.Designer.cs @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SoundSwitch.Localization { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class UpdateDownloadStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal UpdateDownloadStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoundSwitch.Localization.UpdateDownloadStrings", typeof(UpdateDownloadStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + internal static string cancel { + get { + return ResourceManager.GetString("cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changelog. + /// + internal static string changelog { + get { + return ResourceManager.GetString("changelog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download Failed. + /// + internal static string downloadFailed { + get { + return ResourceManager.GetString("downloadFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Install. + /// + internal static string install { + get { + return ResourceManager.GetString("install", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The downloaded update isn't signed with a valid signature. We advise you to delete the file and contact the developer!. + /// + internal static string notSigned { + get { + return ResourceManager.GetString("notSigned", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid Digital Signature. + /// + internal static string notSignedTitle { + get { + return ResourceManager.GetString("notSignedTitle", resourceCulture); + } + } + } +} diff --git a/Localization/UpdateDownloadStrings.de.resx b/Localization/UpdateDownloadStrings.de.resx new file mode 100644 index 0000000000..cfdfcb47b1 --- /dev/null +++ b/Localization/UpdateDownloadStrings.de.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Download fehlgeschlagen + + + Installieren + + + Abbrechen + + + Änderungen + + + Die heruntergeladenen Dateien sind nicht mit einer gültigen Signatur versehen. Es wird empfohlen die Updatedateien zu löschen und einen Entwickler zu kontaktieren! + + + Ungültige digitale Signatur + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.el-GR.resx b/Localization/UpdateDownloadStrings.el-GR.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/UpdateDownloadStrings.el-GR.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.es.resx b/Localization/UpdateDownloadStrings.es.resx new file mode 100644 index 0000000000..f9ed983d16 --- /dev/null +++ b/Localization/UpdateDownloadStrings.es.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Descarga fallida + + + Instalar + + + Cancelar + + + Histórico de cambios + + + La actualización descargada no esta firmada con una firma válida. Aconsejamos borrar el fichero y contactar con el desarrollador! + + + Firma digital inválida + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.fi-FI.resx b/Localization/UpdateDownloadStrings.fi-FI.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/UpdateDownloadStrings.fi-FI.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.fr.resx b/Localization/UpdateDownloadStrings.fr.resx new file mode 100644 index 0000000000..a1605fec01 --- /dev/null +++ b/Localization/UpdateDownloadStrings.fr.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Le téléchargement a échoué + + + Installer + + + Annuler + + + Changements + + + Signature Digitale Invalide + + + La màj qui a été téléchargée n'est pas signée par l'équipe de SoundSwitch. Contactez les dévelopeur et n'exécuter pas le fichier ! + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.it-IT.resx b/Localization/UpdateDownloadStrings.it-IT.resx new file mode 100644 index 0000000000..1f72b55166 --- /dev/null +++ b/Localization/UpdateDownloadStrings.it-IT.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Download fallito + + + Installa + + + Annulla + + + Novità + + + L'aggiornamento scaricato non è firmato con una firma valida. Ti consigliamo di eliminare il file e contattare lo sviluppatore! + + + Firma digitale non valida + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.ja-JP.resx b/Localization/UpdateDownloadStrings.ja-JP.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/UpdateDownloadStrings.ja-JP.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.nb.resx b/Localization/UpdateDownloadStrings.nb.resx new file mode 100644 index 0000000000..1ced11aad6 --- /dev/null +++ b/Localization/UpdateDownloadStrings.nb.resx @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Nedlasting mislyktes + + + Installer + + + Avbryt + + + Endringslogg + + + Nedlastet oppgradering er ikke signert med gyldig signatur. Det anbefales at du sletter filen og kontakter utvikleren! + + + Ugyldig digital signatur + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.pl-PL.resx b/Localization/UpdateDownloadStrings.pl-PL.resx new file mode 100644 index 0000000000..590c1c0c92 --- /dev/null +++ b/Localization/UpdateDownloadStrings.pl-PL.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pobieranie nie powiodło się + + + Instaluj + + + Anuluj + + + Changelog + + + Pobrane uaktualnienie nie zostało podpisane ważnym podpisem. Sugerujemy usunąć plik i skontaktować się z twórcą aplikacji! + + + Niepoprawny podpis cyfrowy. + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.pt-BR.resx b/Localization/UpdateDownloadStrings.pt-BR.resx new file mode 100644 index 0000000000..66f10f065f --- /dev/null +++ b/Localization/UpdateDownloadStrings.pt-BR.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Falha no Download + + + Instalar + + + Cancelar + + + Changelog + + + A atualização baixada não foi assinada pela equipe do SoundSwitch. Nós recomendamos apagar o arquivo e contactar o desenvolvedor! + + + Assinatura digital inválida + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.resx b/Localization/UpdateDownloadStrings.resx new file mode 100644 index 0000000000..08a7b1a89d --- /dev/null +++ b/Localization/UpdateDownloadStrings.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Download Failed + + + Install + + + Cancel + + + Changelog + + + The downloaded update isn't signed with a valid signature. We advise you to delete the file and contact the developer! + + + Invalid Digital Signature + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.ru-RU.resx b/Localization/UpdateDownloadStrings.ru-RU.resx new file mode 100644 index 0000000000..a7cedc3c79 --- /dev/null +++ b/Localization/UpdateDownloadStrings.ru-RU.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ошибка загрузки + + + Установить + + + Отмена + + + Изменения + + + Загруженное обновление не подписано действительной подписью. Рекомендуем удалить файл и обратиться к разработчику! + + + Неверная цифровая подпись + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.sv-SE.resx b/Localization/UpdateDownloadStrings.sv-SE.resx new file mode 100644 index 0000000000..73dd9f29cb --- /dev/null +++ b/Localization/UpdateDownloadStrings.sv-SE.resx @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Localization/UpdateDownloadStrings.zh-CHS.resx b/Localization/UpdateDownloadStrings.zh-CHS.resx new file mode 100644 index 0000000000..fdc4709467 --- /dev/null +++ b/Localization/UpdateDownloadStrings.zh-CHS.resx @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 下载失败 + + + 安装 + + + 取消 + + + 更新日志 + + + 下载的更新没有用有效的签名签名。我们建议您删除该文件并联系开发人员! + + + 无效数字签名 + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000000..43bad9d760 --- /dev/null +++ b/Program.cs @@ -0,0 +1,252 @@ +/******************************************************************** +* Copyright (C) 2015 Jeroen Pelgrims +* Copyright (C) 2015-2017 Antoine Aflalo +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +********************************************************************/ + +using System; +using System.Diagnostics; +using System.IO; +using System.IO.Compression; +using System.Runtime.ExceptionServices; +using System.Runtime.InteropServices; +using System.Runtime.Remoting; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using NAudio.CoreAudioApi; +using Serilog; +using Serilog.Exceptions; +using Serilog.Formatting.Compact; +using SoundSwitch.Framework; +using SoundSwitch.Framework.Audio.Lister; +using SoundSwitch.Framework.Configuration; +using SoundSwitch.Framework.IPC; +using SoundSwitch.Framework.Logger.Configuration; +using SoundSwitch.Framework.Minidump; +using SoundSwitch.Framework.NotificationManager; +using SoundSwitch.Framework.Updater; +using SoundSwitch.Localization; +using SoundSwitch.Model; +using SoundSwitch.Util; + +namespace SoundSwitch +{ + internal static class Program + { + [DllImport("user32.dll")] + private static extern bool SetProcessDPIAware(); + + [HandleProcessCorruptedStateExceptions] + [STAThread] + private static void Main() + { + bool createdNew; + InitializeLogger(); + Log.Information("Application Starts"); +#if !DEBUG + AppDomain.CurrentDomain.UnhandledException += (sender, args) => + { + HandleException((Exception)args.ExceptionObject); + }; + + Log.Information("Set Exception Handler"); + Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException); + WindowsAPIAdapter.Start(Application_ThreadException); +#else + WindowsAPIAdapter.Start(); +#endif + Thread.CurrentThread.CurrentUICulture = LanguageParser.ParseLanguage(AppModel.Instance.Language); + + using (new Mutex(true, Application.ProductName, out createdNew)) + { + if (!createdNew) + { + Log.Warning("Application already started"); + using (var client = new IPCClient(AppConfigs.IPCConfiguration.ClientUrl())) + { + try + { + var service = client.GetService(); + service.StopApplication(); + RestartApp(); + return; + } + catch (RemotingException e) + { + Log.Error(e, "Unable to stop another running application"); + Application.Exit(); + return; + } + } + } + + var deviceActiveLister = new CachedAudioDeviceLister(DeviceState.Active); + deviceActiveLister.Refresh().ConfigureAwait(false); + AppModel.Instance.ActiveAudioDeviceLister = deviceActiveLister; + + // Windows Vista or newer. + if (Environment.OSVersion.Version.Major >= 6) + SetProcessDPIAware(); + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + // Manage the Closing events send by Windows + // Since this app don't use a Form as "main window" the app doesn't close + // when it should without this. + WindowsAPIAdapter.RestartManagerTriggered += (sender, @event) => + { + Log.Debug("Restart Event received: {Event}", @event); + switch (@event.Type) + { + case WindowsAPIAdapter.RestartManagerEventType.Query: + @event.Result = new IntPtr(1); + + break; + case WindowsAPIAdapter.RestartManagerEventType.EndSession: + case WindowsAPIAdapter.RestartManagerEventType.ForceClose: + Log.Debug("Close Application"); + Application.Exit(); + break; + } + }; + + Log.Information("Set Tray Icon with Main"); +#if !DEBUG + try + { +#endif + MMNotificationClient.Instance.Register(); + using (var ipcServer = new IPCServer(AppConfigs.IPCConfiguration.ServerUrl())) + using (var icon = new TrayIcon()) + { + var available = false; + while (!available) + { + try + { + ipcServer.InitServer(); + available = true; + } + catch (RemotingException) + { + Thread.Sleep(250); + } + } + + AppModel.Instance.TrayIcon = icon; + AppModel.Instance.InitializeMain(); + AppModel.Instance.NewVersionReleased += (sender, @event) => + { + if (@event.UpdateMode == UpdateMode.Silent) + { + new AutoUpdater("/VERYSILENT /NOCANCEL /NORESTART", ApplicationPath.Default).Update( + @event.Release, true); + } + }; + if (AppConfigs.Configuration.FirstRun) + { + icon.ShowSettings().ConfigureAwait(false); + AppConfigs.Configuration.FirstRun = false; + Log.Information("First run"); + } + + Application.Run(); + } +#if !DEBUG + } + catch (Exception ex) + { + HandleException(ex); + } +#endif + } + + AppModel.Instance.ActiveAudioDeviceLister.Dispose(); + MMNotificationClient.Instance.UnRegister(); + WindowsAPIAdapter.Stop(); + Log.CloseAndFlush(); + } + + /// + /// Initialize the logger + /// + private static void InitializeLogger() + { + LoggerConfigurator.ConfigureLogger(); + } + + /// + /// Restarts the application itself. + /// + public static void RestartApp() + { + var info = new ProcessStartInfo + { + Arguments = "/C ping 127.0.0.1 -n 2 && \"" + Application.ExecutablePath + "\"", + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + FileName = "cmd.exe" + }; + Process.Start(info); + Application.Exit(); + } + + private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + HandleException(e.Exception); + } + + private static void HandleException(Exception exception) + { + if (exception == null) + return; + var zipFile = Path.Combine(ApplicationPath.AppData, + $"{Application.ProductName}-crashlog-{DateTime.UtcNow.Date.Day}_{DateTime.UtcNow.Date.Month}_{DateTime.UtcNow.Date.Year}.zip"); + var message = + $"It seems {Application.ProductName} has crashed.\n" + + $"Do you want to save a log of the error that occurred?\n" + + $"This could be useful to fix bugs. Please post this file in the issues section.\n" + + $"File Location: " + zipFile; + var result = MessageBox.Show(message, $"{Application.ProductName} crashed...", MessageBoxButtons.YesNo, + MessageBoxIcon.Error); + + if (result == DialogResult.Yes) + { + using (new HourGlass()) + { + var fileName = Path.Combine(ApplicationPath.Default, Environment.MachineName + ".dmp"); + using ( + var fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite, + FileShare.Write)) + { + MiniDump.Write(fs.SafeFileHandle, + MiniDump.Option.Normal | MiniDump.Option.WithThreadInfo | MiniDump.Option.WithHandleData | + MiniDump.Option.WithDataSegs, MiniDump.ExceptionInfo.Present); + } + + Log.Fatal(exception, "Exception Occurred "); + + if (File.Exists(zipFile)) + { + File.Delete(zipFile); + } + + ZipFile.CreateFromDirectory(ApplicationPath.Default, zipFile); + } + + Process.Start("explorer.exe", "/select," + @zipFile); + } + } + } +} \ No newline at end of file diff --git a/SoundSwitch.csproj b/SoundSwitch.csproj new file mode 100644 index 0000000000..06bec17d99 --- /dev/null +++ b/SoundSwitch.csproj @@ -0,0 +1,608 @@ + + + + Debug + x86 + 10.0.20506 + 2.0 + {A17ECFE0-C4E2-4410-839A-14DF8C11428D} + WinExe + Properties + SoundSwitch + SoundSwitch + v4.7.2 + 512 + x86 + + + SoundSwitch.Program + true + enable + publish/ + true + Web + true + Background + 7 + Days + false + false + true + http://soundswitch.codeplex.com/releases/clickonce/ + http://soundswitch.codeplex.com/releases/clickonce/ + http://soundswitch.codeplex.com/workitem/list/basic + http://soundswitch.codeplex.com/workitem/list/basic + SoundSwitch + Jeroen Pelgrims + true + publish.htm + false + 7 + 2.4.1.%2a + false + true + true + + + true + full + false + $(SolutionDir)\bin\Win32\Debug\ + DEBUG;TRACE + prompt + 4 + false + false + x86 + 8 + + + pdbonly + true + $(SolutionDir)\bin\Win32\Release\ + TRACE + prompt + 4 + false + x86 + 8 + + + 146F241FA649F5E23DC3C502BA7FF92199A2A8D9 + + + SoundSwitch_TemporaryKey.pfx + + + false + + + false + + + 8.0 + + + LocalIntranet + + + .\Resources\Switch-SoundWave.ico + + + false + + + true + bin\Debug\ + DEBUG;TRACE + full + AnyCPU + $(SolutionDir)\bin\Debug\SoundSwitch.exe.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + false + false + false + 8 + + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + $(SolutionDir)\bin\Release\SoundSwitch.exe.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + false + 8 + + + true + $(SolutionDir)\bin\x64\Debug\ + DEBUG;TRACE + full + x64 + true + prompt + MinimumRecommendedRules.ruleset + 8 + + + $(SolutionDir)\bin\x64\Release\ + TRACE + true + pdbonly + x64 + false + prompt + MinimumRecommendedRules.ruleset + false + 8 + + + $(SolutionDir)\bin\Win32\AppVeyor\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + 8 + + + $(SolutionDir)\bin\AppVeyor\ + TRACE + true + pdbonly + AnyCPU + false + prompt + MinimumRecommendedRules.ruleset + 8 + false + + + $(SolutionDir)\bin\x64\AppVeyor\ + TRACE + true + pdbonly + x64 + false + prompt + MinimumRecommendedRules.ruleset + true + 8 + + + $(SolutionDir)\bin\Win32\Release\ + TRACE;BETA + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + 8 + + + bin\Beta\ + TRACE + true + pdbonly + AnyCPU + false + prompt + MinimumRecommendedRules.ruleset + 8 + false + + + $(SolutionDir)\bin\x64\Release\ + TRACE;BETA + true + pdbonly + x64 + false + prompt + MinimumRecommendedRules.ruleset + 8 + + + true + + + + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + + + ..\packages\Microsoft-WindowsAPICodePack-Core.1.1.3.3\lib\net452\Microsoft.WindowsAPICodePack.dll + + + ..\packages\NAudio.1.9.0\lib\net35\NAudio.dll + True + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + True + + + ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll + True + + + ..\packages\Serilog.Enrichers.Environment.2.1.3\lib\net45\Serilog.Enrichers.Environment.dll + + + ..\packages\Serilog.Enrichers.Thread.3.1.0\lib\net45\Serilog.Enrichers.Thread.dll + True + + + ..\packages\Serilog.Exceptions.5.3.1\lib\net472\Serilog.Exceptions.dll + True + + + ..\packages\Serilog.Formatting.Compact.1.1.0\lib\net452\Serilog.Formatting.Compact.dll + True + + + ..\packages\Serilog.Sinks.File.4.1.0\lib\net45\Serilog.Sinks.File.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + BannerForm.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + True + True + AboutStrings.resx + + + + + True + True + SettingsStrings.resx + + + True + True + TrayIconStrings.resx + + + True + True + UpdateDownloadStrings.resx + + + + + + + + + Form + + + About.cs + + + Form + + + Settings.cs + + + Form + + + UpdateDownloadForm.cs + + + + + + Component + + + + + + + BannerForm.cs + + + + + + + + + + + + + ResXFileCodeGenerator + AboutStrings.Designer.cs + Designer + + + + + + Designer + + + + + + + + + + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + Designer + + + Designer + ResXFileCodeGenerator + SettingsStrings.Designer.cs + + + Designer + + + ResXFileCodeGenerator + TrayIconStrings.Designer.cs + Designer + + + + ResXFileCodeGenerator + UpdateDownloadStrings.Designer.cs + Designer + + + About.cs + + + Settings.cs + + + UpdateDownloadForm.cs + + + + + + False + Microsoft .NET Framework 4.5 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Visual C++ "14" Runtime Libraries %28x64%29 + true + + + False + Visual C++ "14" Runtime Libraries %28x86%29 + true + + + False + Windows Installer 4.5 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + + + Exclude + True + Assembly + + + + + {b4f7987e-a5fa-45b1-9ae4-5e40144ffc54} + SoundSwitch.Audio.Manager + + + {082ab6e3-eb26-4791-8025-5ba9682460ea} + SoundSwitch.UI.UserControls + + + + + + + + + \ No newline at end of file diff --git a/SoundSwitch.zreproj b/SoundSwitch.zreproj new file mode 100644 index 0000000000..ed01bd2020 --- /dev/null +++ b/SoundSwitch.zreproj @@ -0,0 +1,124 @@ + + + + <?xml version='1.0' encoding='utf-8'?><items><item type="2" checksum="16602960152" /><item type="0" checksum="1495344443" /></items> + <XtraSerializer version="1.0" application="View"> + <property name="#LayoutVersion" /> + <property name="#LayoutScaleFactor">@1,Width=1@1,Height=1</property> + <property name="ActiveFilterString" /> +</XtraSerializer> + <XtraSerializer version="1.0" application="View"> + <property name="#LayoutVersion" /> + <property name="#LayoutScaleFactor">@1,Width=1@1,Height=1</property> +</XtraSerializer> + 0 + True + False + True + True + True + True + [basename][optionaldefaulttypes].[extension] + [basename][optionaldefaulttypes].[languagecode].[extension] + 0 + .aspx;.ascx;.asmx;.master;.sitemap + True + True + True + #### + False + 0 + 589 + False + False + #### + False + 0 + 57;100;128;152;155;211;226;285 + False + False + + + D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.zh-CHS.resx###***###D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.zh-CHS.resx###***###D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.zh-CHS.resx###***###D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.zh-CHS.resx###***###D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\AboutStrings.zh-CHS.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\SettingsStrings.zh-CHS.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\TrayIconStrings.zh-CHS.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.de.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.el-GR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.es.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.fi-FI.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.fr.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.it-IT.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.ja-JP.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.nb.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.pl-PL.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.pt-BR.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.ru-RU.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.sv-SE.resx;D:\VS\SoundSwitch\SoundSwitch\Localization\UpdateDownloadStrings.zh-CHS.resx + + + C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.de.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.el-GR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.es.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.fi-FI.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.fr.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.it-IT.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.ja-JP.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.nb.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.pl-PL.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.pt-BR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.ru-RU.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.sv-SE.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.zh-CHS.resx###***###C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.de.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.el-GR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.es.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.fi-FI.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.fr.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.it-IT.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.ja-JP.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.nb.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.pl-PL.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.pt-BR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.ru-RU.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.sv-SE.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\AboutStrings.zh-CHS.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.de.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.el-GR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.es.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.fi-FI.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.fr.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.it-IT.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.ja-JP.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.nb.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.pl-PL.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.pt-BR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.ru-RU.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.sv-SE.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\SettingsStrings.zh-CHS.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.de.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.el-GR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.es.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.fi-FI.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.fr.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.it-IT.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.ja-JP.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.nb.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.pl-PL.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.pt-BR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.ru-RU.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.sv-SE.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\TrayIconStrings.zh-CHS.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.de.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.el-GR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.es.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.fi-FI.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.fr.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.it-IT.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.ja-JP.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.nb.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.pl-PL.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.pt-BR.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.ru-RU.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.sv-SE.resx;C:\Users\arkad\Downloads\SoundSwitch-dev\SoundSwitch\Localization\UpdateDownloadStrings.zh-CHS.resx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages.config b/packages.config new file mode 100644 index 0000000000..61ad6ef61b --- /dev/null +++ b/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/repl.bat b/repl.bat new file mode 100644 index 0000000000..857900171d --- /dev/null +++ b/repl.bat @@ -0,0 +1,349 @@ +@if (@X)==(@Y) @end /* Harmless hybrid line that begins a JScript comment + +::************ Documentation *********** +::REPL.BAT version 6.2 +::: +:::REPL Search Replace [Options [SourceVar]] +:::REPL /?[REGEX|REPLACE] +:::REPL /V +::: +::: Performs a global regular expression search and replace operation on +::: each line of input from stdin and prints the result to stdout. +::: +::: Each parameter may be optionally enclosed by double quotes. The double +::: quotes are not considered part of the argument. The quotes are required +::: if the parameter contains a batch token delimiter like space, tab, comma, +::: semicolon. The quotes should also be used if the argument contains a +::: batch special character like &, |, etc. so that the special character +::: does not need to be escaped with ^. +::: +::: If called with a single argument of /?, then prints help documentation +::: to stdout. If a single argument of /?REGEX, then opens up Microsoft's +::: JScript regular expression documentation within your browser. If a single +::: argument of /?REPLACE, then opens up Microsoft's JScript REPLACE +::: documentation within your browser. +::: +::: If called with a single argument of /V, case insensitive, then prints +::: the version of REPL.BAT. +::: +::: Search - By default, this is a case sensitive JScript (ECMA) regular +::: expression expressed as a string. +::: +::: JScript regex syntax documentation is available at +::: http://msdn.microsoft.com/en-us/library/ae5bf541(v=vs.80).aspx +::: +::: Replace - By default, this is the string to be used as a replacement for +::: each found search expression. Full support is provided for +::: substituion patterns available to the JScript replace method. +::: +::: For example, $& represents the portion of the source that matched +::: the entire search pattern, $1 represents the first captured +::: submatch, $2 the second captured submatch, etc. A $ literal +::: can be escaped as $$. +::: +::: An empty replacement string must be represented as "". +::: +::: Replace substitution pattern syntax is fully documented at +::: http://msdn.microsoft.com/en-US/library/efy6s3e6(v=vs.80).aspx +::: +::: Options - An optional string of characters used to alter the behavior +::: of REPL. The option characters are case insensitive, and may +::: appear in any order. +::: +::: A - Only print altered lines. Unaltered lines are discarded. +::: If the S options is present, then prints the result only if +::: there was a change anywhere in the string. The A option is +::: incompatible with the M option unless the S option is present. +::: +::: B - The Search must match the beginning of a line. +::: Mostly used with literal searches. +::: +::: E - The Search must match the end of a line. +::: Mostly used with literal searches. +::: +::: I - Makes the search case-insensitive. +::: +::: J - The Replace argument represents a JScript expression. +::: The expression may access an array like arguments object +::: named $. However, $ is not a true array object. +::: +::: The $.length property contains the total number of arguments +::: available. The $.length value is equal to n+3, where n is the +::: number of capturing left parentheses within the Search string. +::: +::: $[0] is the substring that matched the Search, +::: $[1] through $[n] are the captured submatch strings, +::: $[n+1] is the offset where the match occurred, and +::: $[n+2] is the original source string. +::: +::: Arguments $[0] through $[10] may be abbreviated as +::: $1 through $10. Argument $[11] and above must use the square +::: bracket notation. +::: +::: L - The Search is treated as a string literal instead of a +::: regular expression. Also, all $ found in the Replace string +::: are treated as $ literals. +::: +::: M - Multi-line mode. The entire contents of stdin is read and +::: processed in one pass instead of line by line, thus enabling +::: search for \n. This also enables preservation of the original +::: line terminators. If the M option is not present, then every +::: printed line is terminated with carriage return and line feed. +::: The M option is incompatible with the A option unless the S +::: option is also present. +::: +::: Note: If working with binary data containing NULL bytes, +::: then the M option must be used. +::: +::: S - The source is read from an environment variable instead of +::: from stdin. The name of the source environment variable is +::: specified in the next argument after the option string. Without +::: the M option, ^ anchors the beginning of the string, and $ the +::: end of the string. With the M option, ^ anchors the beginning +::: of a line, and $ the end of a line. +::: +::: V - Search and Replace represent the name of environment +::: variables that contain the respective values. An undefined +::: variable is treated as an empty string. +::: +::: X - Enables extended substitution pattern syntax with support +::: for the following escape sequences within the Replace string: +::: +::: \\ - Backslash +::: \b - Backspace +::: \f - Formfeed +::: \n - Newline +::: \q - Quote +::: \r - Carriage Return +::: \t - Horizontal Tab +::: \v - Vertical Tab +::: \xnn - Extended ASCII byte code expressed as 2 hex digits +::: \unnnn - Unicode character expressed as 4 hex digits +::: +::: Also enables the \q escape sequence for the Search string. +::: The other escape sequences are already standard for a regular +::: expression Search string. +::: +::: Also modifies the behavior of \xnn in the Search string to work +::: properly with extended ASCII byte codes. +::: +::: Extended escape sequences are supported even when the L option +::: is used. Both Search and Replace support all of the extended +::: escape sequences if both the X and L opions are combined. +::: +::: Return Codes: 0 = At least one change was made +::: or the /? or /V option was used +::: +::: 1 = No change was made +::: +::: 2 = Invalid call syntax or incompatible options +::: +::: 3 = JScript runtime error, typically due to invalid regex +::: +::: REPL.BAT was written by Dave Benham, with assistance from DosTips user Aacini +::: to get \xnn to work properly with extended ASCII byte codes. Also assistance +::: from DosTips user penpen diagnosing issues reading NULL bytes, along with a +::: workaround. REPL.BAT was originally posted at: +::: http://www.dostips.com/forum/viewtopic.php?f=3&t=3855 +::: + +::************ Batch portion *********** +@echo off +if .%2 equ . ( + if "%~1" equ "/?" ( + <"%~f0" cscript //E:JScript //nologo "%~f0" "^:::" "" a + exit /b 0 + ) else if /i "%~1" equ "/?regex" ( + explorer "http://msdn.microsoft.com/en-us/library/ae5bf541(v=vs.80).aspx" + exit /b 0 + ) else if /i "%~1" equ "/?replace" ( + explorer "http://msdn.microsoft.com/en-US/library/efy6s3e6(v=vs.80).aspx" + exit /b 0 + ) else if /i "%~1" equ "/V" ( + <"%~f0" cscript //E:JScript //nologo "%~f0" "^::(REPL\.BAT version)" "$1" a + exit /b 0 + ) else ( + call :err "Insufficient arguments" + exit /b 2 + ) +) +echo(%~3|findstr /i "[^SMILEBVXAJ]" >nul && ( + call :err "Invalid option(s)" + exit /b 2 +) +echo(%~3|findstr /i "M"|findstr /i "A"|findstr /vi "S" >nul && ( + call :err "Incompatible options" + exit /b 2 +) +cscript //E:JScript //nologo "%~f0" %* +exit /b %errorlevel% + +:err +>&2 echo ERROR: %~1. Use REPL /? to get help. +exit /b + +************* JScript portion **********/ +var rtn=1; +try { + var env=WScript.CreateObject("WScript.Shell").Environment("Process"); + var args=WScript.Arguments; + var search=args.Item(0); + var replace=args.Item(1); + var options="g"; + if (args.length>2) options+=args.Item(2).toLowerCase(); + var multi=(options.indexOf("m")>=0); + var alterations=(options.indexOf("a")>=0); + if (alterations) options=options.replace(/a/g,""); + var srcVar=(options.indexOf("s")>=0); + if (srcVar) options=options.replace(/s/g,""); + var jexpr=(options.indexOf("j")>=0); + if (jexpr) options=options.replace(/j/g,""); + if (options.indexOf("v")>=0) { + options=options.replace(/v/g,""); + search=env(search); + replace=env(replace); + } + if (options.indexOf("x")>=0) { + options=options.replace(/x/g,""); + if (!jexpr) { + replace=replace.replace(/\\\\/g,"\\B"); + replace=replace.replace(/\\q/g,"\""); + replace=replace.replace(/\\x80/g,"\\u20AC"); + replace=replace.replace(/\\x82/g,"\\u201A"); + replace=replace.replace(/\\x83/g,"\\u0192"); + replace=replace.replace(/\\x84/g,"\\u201E"); + replace=replace.replace(/\\x85/g,"\\u2026"); + replace=replace.replace(/\\x86/g,"\\u2020"); + replace=replace.replace(/\\x87/g,"\\u2021"); + replace=replace.replace(/\\x88/g,"\\u02C6"); + replace=replace.replace(/\\x89/g,"\\u2030"); + replace=replace.replace(/\\x8[aA]/g,"\\u0160"); + replace=replace.replace(/\\x8[bB]/g,"\\u2039"); + replace=replace.replace(/\\x8[cC]/g,"\\u0152"); + replace=replace.replace(/\\x8[eE]/g,"\\u017D"); + replace=replace.replace(/\\x91/g,"\\u2018"); + replace=replace.replace(/\\x92/g,"\\u2019"); + replace=replace.replace(/\\x93/g,"\\u201C"); + replace=replace.replace(/\\x94/g,"\\u201D"); + replace=replace.replace(/\\x95/g,"\\u2022"); + replace=replace.replace(/\\x96/g,"\\u2013"); + replace=replace.replace(/\\x97/g,"\\u2014"); + replace=replace.replace(/\\x98/g,"\\u02DC"); + replace=replace.replace(/\\x99/g,"\\u2122"); + replace=replace.replace(/\\x9[aA]/g,"\\u0161"); + replace=replace.replace(/\\x9[bB]/g,"\\u203A"); + replace=replace.replace(/\\x9[cC]/g,"\\u0153"); + replace=replace.replace(/\\x9[dD]/g,"\\u009D"); + replace=replace.replace(/\\x9[eE]/g,"\\u017E"); + replace=replace.replace(/\\x9[fF]/g,"\\u0178"); + replace=replace.replace(/\\b/g,"\b"); + replace=replace.replace(/\\f/g,"\f"); + replace=replace.replace(/\\n/g,"\n"); + replace=replace.replace(/\\r/g,"\r"); + replace=replace.replace(/\\t/g,"\t"); + replace=replace.replace(/\\v/g,"\v"); + replace=replace.replace(/\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}/g, + function($0,$1,$2){ + return String.fromCharCode(parseInt("0x"+$0.substring(2))); + } + ); + replace=replace.replace(/\\B/g,"\\"); + } + search=search.replace(/\\\\/g,"\\B"); + search=search.replace(/\\q/g,"\""); + search=search.replace(/\\x80/g,"\\u20AC"); + search=search.replace(/\\x82/g,"\\u201A"); + search=search.replace(/\\x83/g,"\\u0192"); + search=search.replace(/\\x84/g,"\\u201E"); + search=search.replace(/\\x85/g,"\\u2026"); + search=search.replace(/\\x86/g,"\\u2020"); + search=search.replace(/\\x87/g,"\\u2021"); + search=search.replace(/\\x88/g,"\\u02C6"); + search=search.replace(/\\x89/g,"\\u2030"); + search=search.replace(/\\x8[aA]/g,"\\u0160"); + search=search.replace(/\\x8[bB]/g,"\\u2039"); + search=search.replace(/\\x8[cC]/g,"\\u0152"); + search=search.replace(/\\x8[eE]/g,"\\u017D"); + search=search.replace(/\\x91/g,"\\u2018"); + search=search.replace(/\\x92/g,"\\u2019"); + search=search.replace(/\\x93/g,"\\u201C"); + search=search.replace(/\\x94/g,"\\u201D"); + search=search.replace(/\\x95/g,"\\u2022"); + search=search.replace(/\\x96/g,"\\u2013"); + search=search.replace(/\\x97/g,"\\u2014"); + search=search.replace(/\\x98/g,"\\u02DC"); + search=search.replace(/\\x99/g,"\\u2122"); + search=search.replace(/\\x9[aA]/g,"\\u0161"); + search=search.replace(/\\x9[bB]/g,"\\u203A"); + search=search.replace(/\\x9[cC]/g,"\\u0153"); + search=search.replace(/\\x9[dD]/g,"\\u009D"); + search=search.replace(/\\x9[eE]/g,"\\u017E"); + search=search.replace(/\\x9[fF]/g,"\\u0178"); + if (options.indexOf("l")>=0) { + search=search.replace(/\\b/g,"\b"); + search=search.replace(/\\f/g,"\f"); + search=search.replace(/\\n/g,"\n"); + search=search.replace(/\\r/g,"\r"); + search=search.replace(/\\t/g,"\t"); + search=search.replace(/\\v/g,"\v"); + search=search.replace(/\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}/g, + function($0,$1,$2){ + return String.fromCharCode(parseInt("0x"+$0.substring(2))); + } + ); + search=search.replace(/\\B/g,"\\"); + } else search=search.replace(/\\B/g,"\\\\"); + } + if (options.indexOf("l")>=0) { + options=options.replace(/l/g,""); + search=search.replace(/([.^$*+?()[{\\|])/g,"\\$1"); + if (!jexpr) replace=replace.replace(/\$/g,"$$$$"); + } + if (options.indexOf("b")>=0) { + options=options.replace(/b/g,""); + search="^"+search + } + if (options.indexOf("e")>=0) { + options=options.replace(/e/g,""); + search=search+"$" + } + var search=new RegExp(search,options); + var str1, str2; + + if (srcVar) { + str1=env(args.Item(3)); + str2=str1.replace(search,jexpr?replFunc:replace); + if (!alterations || str1!=str2) if (multi) { + WScript.Stdout.Write(str2); + } else { + WScript.Stdout.WriteLine(str2); + } + if (str1!=str2) rtn=0; + } else if (multi){ + var buf=1024; + str1=""; + while (!WScript.StdIn.AtEndOfStream) { + str1+=WScript.StdIn.Read(buf); + buf*=2 + } + str2=str1.replace(search,jexpr?replFunc:replace); + WScript.Stdout.Write(str2); + if (str1!=str2) rtn=0; + } else { + while (!WScript.StdIn.AtEndOfStream) { + str1=WScript.StdIn.ReadLine(); + str2=str1.replace(search,jexpr?replFunc:replace); + if (!alterations || str1!=str2) WScript.Stdout.WriteLine(str2); + if (str1!=str2) rtn=0; + } + } +} catch(e) { + WScript.Stderr.WriteLine("JScript runtime error: "+e.message); + rtn=3; +} +WScript.Quit(rtn); + +function replFunc($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) { + var $=arguments; + return(eval(replace)); +} \ No newline at end of file