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