Add 'src/modules/launcher/' from commit '28acd466b352a807910cebbc74477d3173b31511'
git-subtree-dir: src/modules/launcher git-subtree-mainline:852689b3dfgit-subtree-split:28acd466b3
45
src/modules/launcher/Wox/ActionKeywords.xaml
Normal file
@@ -0,0 +1,45 @@
|
||||
<Window x:Class="Wox.ActionKeywords"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="ActionKeywords"
|
||||
Icon="Images\app.png"
|
||||
ResizeMode="NoResize"
|
||||
Loaded="ActionKeyword_OnLoaded"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Height="200" Width="600">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="170" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Margin="10" FontSize="14" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right" Text="{DynamicResource oldActionKeyword}" />
|
||||
<TextBlock x:Name="tbOldActionKeyword" Margin="10" FontSize="14" Grid.Row="0" Grid.Column="1"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Left">
|
||||
Old ActionKeywords:
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock Margin="10" FontSize="14" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right" Text="{DynamicResource newActionKeyword}" />
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Grid.Column="1">
|
||||
<TextBox x:Name="tbAction" Margin="10" Width="400" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.ColumnSpan="1" Grid.Column="1" Padding="5" Foreground="Gray"
|
||||
Text="{DynamicResource actionkeyword_tips}" />
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Row="3" Grid.Column="1">
|
||||
<Button x:Name="btnCancel" Click="BtnCancel_OnClick" Margin="10 0 10 0" Width="80" Height="25"
|
||||
Content="{DynamicResource cancel}" />
|
||||
<Button x:Name="btnDone" Margin="10 0 10 0" Width="80" Height="25" Click="btnDone_OnClick">
|
||||
<TextBlock x:Name="lblAdd" Text="{DynamicResource done}" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
58
src/modules/launcher/Wox/ActionKeywords.xaml.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Windows;
|
||||
using Wox.Core.Plugin;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Infrastructure.Exception;
|
||||
using Wox.Infrastructure.UserSettings;
|
||||
using Wox.Plugin;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class ActionKeywords : Window
|
||||
{
|
||||
private PluginPair _plugin;
|
||||
private Settings _settings;
|
||||
private readonly Internationalization _translater = InternationalizationManager.Instance;
|
||||
|
||||
public ActionKeywords(string pluginId, Settings settings)
|
||||
{
|
||||
InitializeComponent();
|
||||
_plugin = PluginManager.GetPluginForId(pluginId);
|
||||
_settings = settings;
|
||||
if (_plugin == null)
|
||||
{
|
||||
MessageBox.Show(_translater.GetTranslation("cannotFindSpecifiedPlugin"));
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void ActionKeyword_OnLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
tbOldActionKeyword.Text = string.Join(Query.ActionKeywordSeperater, _plugin.Metadata.ActionKeywords.ToArray());
|
||||
tbAction.Focus();
|
||||
}
|
||||
|
||||
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnDone_OnClick(object sender, RoutedEventArgs _)
|
||||
{
|
||||
var oldActionKeyword = _plugin.Metadata.ActionKeywords[0];
|
||||
var newActionKeyword = tbAction.Text.Trim();
|
||||
newActionKeyword = newActionKeyword.Length > 0 ? newActionKeyword : "*";
|
||||
if (!PluginManager.ActionKeywordRegistered(newActionKeyword))
|
||||
{
|
||||
var id = _plugin.Metadata.ID;
|
||||
PluginManager.ReplaceActionKeyword(id, oldActionKeyword, newActionKeyword);
|
||||
MessageBox.Show(_translater.GetTranslation("success"));
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = _translater.GetTranslation("newActionKeywordsHasBeenAssigned");
|
||||
MessageBox.Show(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/modules/launcher/Wox/App.config
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<!--https://msdn.microsoft.com/en-us/library/dd409252(v=vs.110).aspx-->
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="Wox.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<runtime>
|
||||
<loadFromRemoteSources enabled="true"/>
|
||||
</runtime>
|
||||
<applicationSettings>
|
||||
<Wox.Properties.Settings>
|
||||
<setting name="GithubRepo" serializeAs="String">
|
||||
<value>https://github.com/Wox-launcher/Wox</value>
|
||||
</setting>
|
||||
</Wox.Properties.Settings>
|
||||
</applicationSettings>
|
||||
</configuration>
|
||||
14
src/modules/launcher/Wox/App.xaml
Normal file
@@ -0,0 +1,14 @@
|
||||
<Application x:Class="Wox.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
ShutdownMode="OnMainWindowClose"
|
||||
Startup="OnStartup">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Dark.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/Languages/en.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
169
src/modules/launcher/Wox/App.xaml.cs
Normal file
@@ -0,0 +1,169 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
using Wox.Core;
|
||||
using Wox.Core.Plugin;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Helper;
|
||||
using Wox.Infrastructure;
|
||||
using Wox.Infrastructure.Http;
|
||||
using Wox.Infrastructure.Image;
|
||||
using Wox.Infrastructure.Logger;
|
||||
using Wox.Infrastructure.UserSettings;
|
||||
using Wox.ViewModel;
|
||||
using Stopwatch = Wox.Infrastructure.Stopwatch;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class App : IDisposable, ISingleInstanceApp
|
||||
{
|
||||
public static PublicAPIInstance API { get; private set; }
|
||||
private const string Unique = "Wox_Unique_Application_Mutex";
|
||||
private static bool _disposed;
|
||||
private Settings _settings;
|
||||
private MainViewModel _mainVM;
|
||||
private SettingWindowViewModel _settingsVM;
|
||||
private readonly Updater _updater = new Updater(Wox.Properties.Settings.Default.GithubRepo);
|
||||
private readonly Alphabet _alphabet = new Alphabet();
|
||||
private StringMatcher _stringMatcher;
|
||||
|
||||
[STAThread]
|
||||
public static void Main()
|
||||
{
|
||||
if (SingleInstance<App>.InitializeAsFirstInstance(Unique))
|
||||
{
|
||||
using (var application = new App())
|
||||
{
|
||||
application.InitializeComponent();
|
||||
application.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnStartup(object sender, StartupEventArgs e)
|
||||
{
|
||||
Stopwatch.Normal("|App.OnStartup|Startup cost", () =>
|
||||
{
|
||||
Log.Info("|App.OnStartup|Begin Wox startup ----------------------------------------------------");
|
||||
Log.Info($"|App.OnStartup|Runtime info:{ErrorReporting.RuntimeInfo()}");
|
||||
RegisterAppDomainExceptions();
|
||||
RegisterDispatcherUnhandledException();
|
||||
|
||||
ImageLoader.Initialize();
|
||||
|
||||
_settingsVM = new SettingWindowViewModel(_updater);
|
||||
_settings = _settingsVM.Settings;
|
||||
|
||||
_alphabet.Initialize(_settings);
|
||||
_stringMatcher = new StringMatcher(_alphabet);
|
||||
StringMatcher.Instance = _stringMatcher;
|
||||
_stringMatcher.UserSettingSearchPrecision = _settings.QuerySearchPrecision;
|
||||
|
||||
PluginManager.LoadPlugins(_settings.PluginSettings);
|
||||
_mainVM = new MainViewModel(_settings);
|
||||
var window = new MainWindow(_settings, _mainVM);
|
||||
API = new PublicAPIInstance(_settingsVM, _mainVM, _alphabet);
|
||||
PluginManager.InitializePlugins(API);
|
||||
Log.Info($"|App.OnStartup|Dependencies Info:{ErrorReporting.DependenciesInfo()}");
|
||||
|
||||
Current.MainWindow = window;
|
||||
Current.MainWindow.Title = Constant.Wox;
|
||||
|
||||
// happlebao todo temp fix for instance code logic
|
||||
// load plugin before change language, because plugin language also needs be changed
|
||||
InternationalizationManager.Instance.Settings = _settings;
|
||||
InternationalizationManager.Instance.ChangeLanguage(_settings.Language);
|
||||
// main windows needs initialized before theme change because of blur settigns
|
||||
ThemeManager.Instance.Settings = _settings;
|
||||
ThemeManager.Instance.ChangeTheme(_settings.Theme);
|
||||
|
||||
Http.Proxy = _settings.Proxy;
|
||||
|
||||
RegisterExitEvents();
|
||||
|
||||
AutoStartup();
|
||||
AutoUpdates();
|
||||
|
||||
_mainVM.MainWindowVisibility = _settings.HideOnStartup ? Visibility.Hidden : Visibility.Visible;
|
||||
Log.Info("|App.OnStartup|End Wox startup ---------------------------------------------------- ");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void AutoStartup()
|
||||
{
|
||||
if (_settings.StartWoxOnSystemStartup)
|
||||
{
|
||||
if (!SettingWindow.StartupSet())
|
||||
{
|
||||
SettingWindow.SetStartup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//[Conditional("RELEASE")]
|
||||
private void AutoUpdates()
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
if (_settings.AutoUpdates)
|
||||
{
|
||||
// check udpate every 5 hours
|
||||
var timer = new Timer(1000 * 60 * 60 * 5);
|
||||
timer.Elapsed += async (s, e) =>
|
||||
{
|
||||
await _updater.UpdateApp();
|
||||
};
|
||||
timer.Start();
|
||||
|
||||
// check updates on startup
|
||||
await _updater.UpdateApp();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void RegisterExitEvents()
|
||||
{
|
||||
AppDomain.CurrentDomain.ProcessExit += (s, e) => Dispose();
|
||||
Current.Exit += (s, e) => Dispose();
|
||||
Current.SessionEnding += (s, e) => Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// let exception throw as normal is better for Debug
|
||||
/// </summary>
|
||||
[Conditional("RELEASE")]
|
||||
private void RegisterDispatcherUnhandledException()
|
||||
{
|
||||
DispatcherUnhandledException += ErrorReporting.DispatcherUnhandledException;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// let exception throw as normal is better for Debug
|
||||
/// </summary>
|
||||
[Conditional("RELEASE")]
|
||||
private static void RegisterAppDomainExceptions()
|
||||
{
|
||||
AppDomain.CurrentDomain.UnhandledException += ErrorReporting.UnhandledExceptionHandle;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// if sessionending is called, exit proverbially be called when log off / shutdown
|
||||
// but if sessionending is not called, exit won't be called when log off / shutdown
|
||||
if (!_disposed)
|
||||
{
|
||||
API.SaveAppAllSettings();
|
||||
_disposed = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnSecondAppStarted()
|
||||
{
|
||||
Current.MainWindow.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
|
||||
namespace Wox.Converters
|
||||
{
|
||||
public class HighlightTextConverter : IMultiValueConverter
|
||||
{
|
||||
public object Convert(object[] value, Type targetType, object parameter, CultureInfo cultureInfo)
|
||||
{
|
||||
var text = value[0] as string;
|
||||
var highlightData = value[1] as List<int>;
|
||||
|
||||
var textBlock = new Span();
|
||||
|
||||
if (highlightData == null || !highlightData.Any())
|
||||
{
|
||||
// No highlight data, just return the text
|
||||
return new Run(text);
|
||||
}
|
||||
|
||||
for (var i = 0; i < text.Length; i++)
|
||||
{
|
||||
var currentCharacter = text.Substring(i, 1);
|
||||
if (this.ShouldHighlight(highlightData, i))
|
||||
{
|
||||
textBlock.Inlines.Add(new Bold(new Run(currentCharacter)));
|
||||
}
|
||||
else
|
||||
{
|
||||
textBlock.Inlines.Add(new Run(currentCharacter));
|
||||
}
|
||||
}
|
||||
return textBlock;
|
||||
}
|
||||
|
||||
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return new[] { DependencyProperty.UnsetValue, DependencyProperty.UnsetValue };
|
||||
}
|
||||
|
||||
private bool ShouldHighlight(List<int> highlightData, int index)
|
||||
{
|
||||
return highlightData.Contains(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
39
src/modules/launcher/Wox/CustomQueryHotkeySetting.xaml
Normal file
@@ -0,0 +1,39 @@
|
||||
<Window x:Class="Wox.CustomQueryHotkeySetting"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:wox="clr-namespace:Wox"
|
||||
Icon="Images\app.png"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Title="Custom Plugin Hotkey" Height="200" Width="674.766">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Margin="10" FontSize="14" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right" Text="{DynamicResource hotkey}" />
|
||||
<wox:HotkeyControl x:Name="ctlHotkey" Margin="10" Grid.Column="1" />
|
||||
|
||||
<TextBlock Margin="10" FontSize="14" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right" Text="{DynamicResource actionKeyword}" />
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Grid.Column="1">
|
||||
<TextBox x:Name="tbAction" Margin="10" Width="400" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
<Button x:Name="btnTestActionKeyword" Padding="10 5 10 5" Height="30" Click="BtnTestActionKeyword_OnClick"
|
||||
Content="{DynamicResource preview}" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Row="2" Grid.Column="1">
|
||||
<Button x:Name="btnCancel" Click="BtnCancel_OnClick" Margin="10 0 10 0" Width="80" Height="25"
|
||||
Content="{DynamicResource cancel}" />
|
||||
<Button x:Name="btnAdd" Margin="10 0 10 0" Width="80" Height="25" Click="btnAdd_OnClick">
|
||||
<TextBlock x:Name="lblAdd" Text="{DynamicResource done}" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
129
src/modules/launcher/Wox/CustomQueryHotkeySetting.xaml.cs
Normal file
@@ -0,0 +1,129 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using NHotkey;
|
||||
using NHotkey.Wpf;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Infrastructure.Hotkey;
|
||||
using Wox.Infrastructure.UserSettings;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class CustomQueryHotkeySetting : Window
|
||||
{
|
||||
private SettingWindow _settingWidow;
|
||||
private bool update;
|
||||
private CustomPluginHotkey updateCustomHotkey;
|
||||
private Settings _settings;
|
||||
|
||||
public CustomQueryHotkeySetting(SettingWindow settingWidow, Settings settings)
|
||||
{
|
||||
_settingWidow = settingWidow;
|
||||
InitializeComponent();
|
||||
_settings = settings;
|
||||
}
|
||||
|
||||
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnAdd_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!update)
|
||||
{
|
||||
if (!ctlHotkey.CurrentHotkeyAvailable)
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("hotkeyIsNotUnavailable"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_settings.CustomPluginHotkeys == null)
|
||||
{
|
||||
_settings.CustomPluginHotkeys = new ObservableCollection<CustomPluginHotkey>();
|
||||
}
|
||||
|
||||
var pluginHotkey = new CustomPluginHotkey
|
||||
{
|
||||
Hotkey = ctlHotkey.CurrentHotkey.ToString(),
|
||||
ActionKeyword = tbAction.Text
|
||||
};
|
||||
_settings.CustomPluginHotkeys.Add(pluginHotkey);
|
||||
|
||||
SetHotkey(ctlHotkey.CurrentHotkey, delegate
|
||||
{
|
||||
App.API.ChangeQuery(pluginHotkey.ActionKeyword);
|
||||
Application.Current.MainWindow.Visibility = Visibility.Visible;
|
||||
});
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("success"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (updateCustomHotkey.Hotkey != ctlHotkey.CurrentHotkey.ToString() && !ctlHotkey.CurrentHotkeyAvailable)
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("hotkeyIsNotUnavailable"));
|
||||
return;
|
||||
}
|
||||
var oldHotkey = updateCustomHotkey.Hotkey;
|
||||
updateCustomHotkey.ActionKeyword = tbAction.Text;
|
||||
updateCustomHotkey.Hotkey = ctlHotkey.CurrentHotkey.ToString();
|
||||
//remove origin hotkey
|
||||
RemoveHotkey(oldHotkey);
|
||||
SetHotkey(new HotkeyModel(updateCustomHotkey.Hotkey), delegate
|
||||
{
|
||||
App.API.ChangeQuery(updateCustomHotkey.ActionKeyword);
|
||||
Application.Current.MainWindow.Visibility = Visibility.Visible;
|
||||
});
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("success"));
|
||||
}
|
||||
|
||||
Close();
|
||||
}
|
||||
|
||||
public void UpdateItem(CustomPluginHotkey item)
|
||||
{
|
||||
updateCustomHotkey = _settings.CustomPluginHotkeys.FirstOrDefault(o => o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey);
|
||||
if (updateCustomHotkey == null)
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidPluginHotkey"));
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
tbAction.Text = updateCustomHotkey.ActionKeyword;
|
||||
ctlHotkey.SetHotkey(updateCustomHotkey.Hotkey, false);
|
||||
update = true;
|
||||
lblAdd.Text = InternationalizationManager.Instance.GetTranslation("update");
|
||||
}
|
||||
|
||||
private void BtnTestActionKeyword_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
App.API.ChangeQuery(tbAction.Text);
|
||||
Application.Current.MainWindow.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void RemoveHotkey(string hotkeyStr)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(hotkeyStr))
|
||||
{
|
||||
HotkeyManager.Current.Remove(hotkeyStr);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetHotkey(HotkeyModel hotkey, EventHandler<HotkeyEventArgs> action)
|
||||
{
|
||||
string hotkeyStr = hotkey.ToString();
|
||||
try
|
||||
{
|
||||
HotkeyManager.Current.AddOrReplace(hotkeyStr, hotkey.CharKey, hotkey.ModifierKeys, action);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
string errorMsg = string.Format(InternationalizationManager.Instance.GetTranslation("registerHotkeyFailed"), hotkeyStr);
|
||||
MessageBox.Show(errorMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
src/modules/launcher/Wox/FodyWeavers.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Weavers>
|
||||
<PropertyChanged />
|
||||
</Weavers>
|
||||
73
src/modules/launcher/Wox/Helper/DWMDropShadow.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Drawing.Printing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public class DwmDropShadow
|
||||
{
|
||||
|
||||
[DllImport("dwmapi.dll", PreserveSig = true)]
|
||||
private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize);
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
private static extern int DwmExtendFrameIntoClientArea(IntPtr hWnd, ref Margins pMarInset);
|
||||
|
||||
/// <summary>
|
||||
/// Drops a standard shadow to a WPF Window, even if the window isborderless. Only works with DWM (Vista and Seven).
|
||||
/// This method is much more efficient than setting AllowsTransparency to true and using the DropShadow effect,
|
||||
/// as AllowsTransparency involves a huge permormance issue (hardware acceleration is turned off for all the window).
|
||||
/// </summary>
|
||||
/// <param name="window">Window to which the shadow will be applied</param>
|
||||
public static void DropShadowToWindow(Window window)
|
||||
{
|
||||
if (!DropShadow(window))
|
||||
{
|
||||
window.SourceInitialized += window_SourceInitialized;
|
||||
}
|
||||
}
|
||||
|
||||
private static void window_SourceInitialized(object sender, EventArgs e) //fixed typo
|
||||
{
|
||||
Window window = (Window)sender;
|
||||
|
||||
DropShadow(window);
|
||||
|
||||
window.SourceInitialized -= window_SourceInitialized;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The actual method that makes API calls to drop the shadow to the window
|
||||
/// </summary>
|
||||
/// <param name="window">Window to which the shadow will be applied</param>
|
||||
/// <returns>True if the method succeeded, false if not</returns>
|
||||
private static bool DropShadow(Window window)
|
||||
{
|
||||
try
|
||||
{
|
||||
WindowInteropHelper helper = new WindowInteropHelper(window);
|
||||
int val = 2;
|
||||
int ret1 = DwmSetWindowAttribute(helper.Handle, 2, ref val, 4);
|
||||
|
||||
if (ret1 == 0)
|
||||
{
|
||||
Margins m = new Margins { Bottom = 0, Left = 0, Right = 0, Top = 0 };
|
||||
int ret2 = DwmExtendFrameIntoClientArea(helper.Handle, ref m);
|
||||
return ret2 == 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Probably dwmapi.dll not found (incompatible OS)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
69
src/modules/launcher/Wox/Helper/DataWebRequestFactory.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public class DataWebRequestFactory : IWebRequestCreate
|
||||
{
|
||||
class DataWebRequest : WebRequest
|
||||
{
|
||||
private readonly Uri m_uri;
|
||||
|
||||
public DataWebRequest(Uri uri)
|
||||
{
|
||||
m_uri = uri;
|
||||
}
|
||||
|
||||
public override WebResponse GetResponse()
|
||||
{
|
||||
return new DataWebResponse(m_uri);
|
||||
}
|
||||
}
|
||||
|
||||
class DataWebResponse : WebResponse
|
||||
{
|
||||
private readonly string m_contentType;
|
||||
private readonly byte[] m_data;
|
||||
|
||||
public DataWebResponse(Uri uri)
|
||||
{
|
||||
string uriString = uri.AbsoluteUri;
|
||||
|
||||
int commaIndex = uriString.IndexOf(',');
|
||||
var headers = uriString.Substring(0, commaIndex).Split(';');
|
||||
m_contentType = headers[0];
|
||||
string dataString = uriString.Substring(commaIndex + 1);
|
||||
m_data = Convert.FromBase64String(dataString);
|
||||
}
|
||||
|
||||
public override string ContentType
|
||||
{
|
||||
get { return m_contentType; }
|
||||
set
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
}
|
||||
|
||||
public override long ContentLength
|
||||
{
|
||||
get { return m_data.Length; }
|
||||
set
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
}
|
||||
|
||||
public override Stream GetResponseStream()
|
||||
{
|
||||
return new MemoryStream(m_data);
|
||||
}
|
||||
}
|
||||
|
||||
public WebRequest Create(Uri uri)
|
||||
{
|
||||
return new DataWebRequest(uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
49
src/modules/launcher/Wox/Helper/ErrorReporting.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Windows.Threading;
|
||||
using NLog;
|
||||
using Wox.Infrastructure;
|
||||
using Wox.Infrastructure.Exception;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public static class ErrorReporting
|
||||
{
|
||||
private static void Report(Exception e)
|
||||
{
|
||||
var logger = LogManager.GetLogger("UnHandledException");
|
||||
logger.Fatal(ExceptionFormatter.FormatExcpetion(e));
|
||||
var reportWindow = new ReportWindow(e);
|
||||
reportWindow.Show();
|
||||
}
|
||||
|
||||
public static void UnhandledExceptionHandle(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
//handle non-ui thread exceptions
|
||||
Report((Exception)e.ExceptionObject);
|
||||
}
|
||||
|
||||
public static void DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
|
||||
{
|
||||
//handle ui thread exceptions
|
||||
Report(e.Exception);
|
||||
//prevent application exist, so the user can copy prompted error info
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
public static string RuntimeInfo()
|
||||
{
|
||||
var info = $"\nWox version: {Constant.Version}" +
|
||||
$"\nOS Version: {Environment.OSVersion.VersionString}" +
|
||||
$"\nIntPtr Length: {IntPtr.Size}" +
|
||||
$"\nx64: {Environment.Is64BitOperatingSystem}";
|
||||
return info;
|
||||
}
|
||||
|
||||
public static string DependenciesInfo()
|
||||
{
|
||||
var info = $"\nPython Path: {Constant.PythonPath}" +
|
||||
$"\nEverything SDK Path: {Constant.EverythingSDKPath}";
|
||||
return info;
|
||||
}
|
||||
}
|
||||
}
|
||||
455
src/modules/launcher/Wox/Helper/SingleInstance.cs
Normal file
@@ -0,0 +1,455 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Remoting;
|
||||
using System.Runtime.Remoting.Channels;
|
||||
using System.Runtime.Remoting.Channels.Ipc;
|
||||
using System.Runtime.Serialization.Formatters;
|
||||
using System.Security;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Threading;
|
||||
|
||||
// http://blogs.microsoft.co.il/arik/2010/05/28/wpf-single-instance-application/
|
||||
// modified to allow single instace restart
|
||||
namespace Wox.Helper
|
||||
{
|
||||
internal enum WM
|
||||
{
|
||||
NULL = 0x0000,
|
||||
CREATE = 0x0001,
|
||||
DESTROY = 0x0002,
|
||||
MOVE = 0x0003,
|
||||
SIZE = 0x0005,
|
||||
ACTIVATE = 0x0006,
|
||||
SETFOCUS = 0x0007,
|
||||
KILLFOCUS = 0x0008,
|
||||
ENABLE = 0x000A,
|
||||
SETREDRAW = 0x000B,
|
||||
SETTEXT = 0x000C,
|
||||
GETTEXT = 0x000D,
|
||||
GETTEXTLENGTH = 0x000E,
|
||||
PAINT = 0x000F,
|
||||
CLOSE = 0x0010,
|
||||
QUERYENDSESSION = 0x0011,
|
||||
QUIT = 0x0012,
|
||||
QUERYOPEN = 0x0013,
|
||||
ERASEBKGND = 0x0014,
|
||||
SYSCOLORCHANGE = 0x0015,
|
||||
SHOWWINDOW = 0x0018,
|
||||
ACTIVATEAPP = 0x001C,
|
||||
SETCURSOR = 0x0020,
|
||||
MOUSEACTIVATE = 0x0021,
|
||||
CHILDACTIVATE = 0x0022,
|
||||
QUEUESYNC = 0x0023,
|
||||
GETMINMAXINFO = 0x0024,
|
||||
|
||||
WINDOWPOSCHANGING = 0x0046,
|
||||
WINDOWPOSCHANGED = 0x0047,
|
||||
|
||||
CONTEXTMENU = 0x007B,
|
||||
STYLECHANGING = 0x007C,
|
||||
STYLECHANGED = 0x007D,
|
||||
DISPLAYCHANGE = 0x007E,
|
||||
GETICON = 0x007F,
|
||||
SETICON = 0x0080,
|
||||
NCCREATE = 0x0081,
|
||||
NCDESTROY = 0x0082,
|
||||
NCCALCSIZE = 0x0083,
|
||||
NCHITTEST = 0x0084,
|
||||
NCPAINT = 0x0085,
|
||||
NCACTIVATE = 0x0086,
|
||||
GETDLGCODE = 0x0087,
|
||||
SYNCPAINT = 0x0088,
|
||||
NCMOUSEMOVE = 0x00A0,
|
||||
NCLBUTTONDOWN = 0x00A1,
|
||||
NCLBUTTONUP = 0x00A2,
|
||||
NCLBUTTONDBLCLK = 0x00A3,
|
||||
NCRBUTTONDOWN = 0x00A4,
|
||||
NCRBUTTONUP = 0x00A5,
|
||||
NCRBUTTONDBLCLK = 0x00A6,
|
||||
NCMBUTTONDOWN = 0x00A7,
|
||||
NCMBUTTONUP = 0x00A8,
|
||||
NCMBUTTONDBLCLK = 0x00A9,
|
||||
|
||||
SYSKEYDOWN = 0x0104,
|
||||
SYSKEYUP = 0x0105,
|
||||
SYSCHAR = 0x0106,
|
||||
SYSDEADCHAR = 0x0107,
|
||||
COMMAND = 0x0111,
|
||||
SYSCOMMAND = 0x0112,
|
||||
|
||||
MOUSEMOVE = 0x0200,
|
||||
LBUTTONDOWN = 0x0201,
|
||||
LBUTTONUP = 0x0202,
|
||||
LBUTTONDBLCLK = 0x0203,
|
||||
RBUTTONDOWN = 0x0204,
|
||||
RBUTTONUP = 0x0205,
|
||||
RBUTTONDBLCLK = 0x0206,
|
||||
MBUTTONDOWN = 0x0207,
|
||||
MBUTTONUP = 0x0208,
|
||||
MBUTTONDBLCLK = 0x0209,
|
||||
MOUSEWHEEL = 0x020A,
|
||||
XBUTTONDOWN = 0x020B,
|
||||
XBUTTONUP = 0x020C,
|
||||
XBUTTONDBLCLK = 0x020D,
|
||||
MOUSEHWHEEL = 0x020E,
|
||||
|
||||
|
||||
CAPTURECHANGED = 0x0215,
|
||||
|
||||
ENTERSIZEMOVE = 0x0231,
|
||||
EXITSIZEMOVE = 0x0232,
|
||||
|
||||
IME_SETCONTEXT = 0x0281,
|
||||
IME_NOTIFY = 0x0282,
|
||||
IME_CONTROL = 0x0283,
|
||||
IME_COMPOSITIONFULL = 0x0284,
|
||||
IME_SELECT = 0x0285,
|
||||
IME_CHAR = 0x0286,
|
||||
IME_REQUEST = 0x0288,
|
||||
IME_KEYDOWN = 0x0290,
|
||||
IME_KEYUP = 0x0291,
|
||||
|
||||
NCMOUSELEAVE = 0x02A2,
|
||||
|
||||
DWMCOMPOSITIONCHANGED = 0x031E,
|
||||
DWMNCRENDERINGCHANGED = 0x031F,
|
||||
DWMCOLORIZATIONCOLORCHANGED = 0x0320,
|
||||
DWMWINDOWMAXIMIZEDCHANGE = 0x0321,
|
||||
|
||||
#region Windows 7
|
||||
DWMSENDICONICTHUMBNAIL = 0x0323,
|
||||
DWMSENDICONICLIVEPREVIEWBITMAP = 0x0326,
|
||||
#endregion
|
||||
|
||||
USER = 0x0400,
|
||||
|
||||
// This is the hard-coded message value used by WinForms for Shell_NotifyIcon.
|
||||
// It's relatively safe to reuse.
|
||||
TRAYMOUSEMESSAGE = 0x800, //WM_USER + 1024
|
||||
APP = 0x8000
|
||||
}
|
||||
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
internal static class NativeMethods
|
||||
{
|
||||
/// <summary>
|
||||
/// Delegate declaration that matches WndProc signatures.
|
||||
/// </summary>
|
||||
public delegate IntPtr MessageHandler(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled);
|
||||
|
||||
[DllImport("shell32.dll", EntryPoint = "CommandLineToArgvW", CharSet = CharSet.Unicode)]
|
||||
private static extern IntPtr _CommandLineToArgvW([MarshalAs(UnmanagedType.LPWStr)] string cmdLine, out int numArgs);
|
||||
|
||||
|
||||
[DllImport("kernel32.dll", EntryPoint = "LocalFree", SetLastError = true)]
|
||||
private static extern IntPtr _LocalFree(IntPtr hMem);
|
||||
|
||||
|
||||
public static string[] CommandLineToArgvW(string cmdLine)
|
||||
{
|
||||
IntPtr argv = IntPtr.Zero;
|
||||
try
|
||||
{
|
||||
int numArgs = 0;
|
||||
|
||||
argv = _CommandLineToArgvW(cmdLine, out numArgs);
|
||||
if (argv == IntPtr.Zero)
|
||||
{
|
||||
throw new Win32Exception();
|
||||
}
|
||||
var result = new string[numArgs];
|
||||
|
||||
for (int i = 0; i < numArgs; i++)
|
||||
{
|
||||
IntPtr currArg = Marshal.ReadIntPtr(argv, i * Marshal.SizeOf(typeof(IntPtr)));
|
||||
result[i] = Marshal.PtrToStringUni(currArg);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
IntPtr p = _LocalFree(argv);
|
||||
// Otherwise LocalFree failed.
|
||||
// Assert.AreEqual(IntPtr.Zero, p);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public interface ISingleInstanceApp
|
||||
{
|
||||
void OnSecondAppStarted();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class checks to make sure that only one instance of
|
||||
/// this application is running at a time.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Note: this class should be used with some caution, because it does no
|
||||
/// security checking. For example, if one instance of an app that uses this class
|
||||
/// is running as Administrator, any other instance, even if it is not
|
||||
/// running as Administrator, can activate it with command line arguments.
|
||||
/// For most apps, this will not be much of an issue.
|
||||
/// </remarks>
|
||||
public static class SingleInstance<TApplication>
|
||||
where TApplication: Application , ISingleInstanceApp
|
||||
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// String delimiter used in channel names.
|
||||
/// </summary>
|
||||
private const string Delimiter = ":";
|
||||
|
||||
/// <summary>
|
||||
/// Suffix to the channel name.
|
||||
/// </summary>
|
||||
private const string ChannelNameSuffix = "SingeInstanceIPCChannel";
|
||||
|
||||
/// <summary>
|
||||
/// Remote service name.
|
||||
/// </summary>
|
||||
private const string RemoteServiceName = "SingleInstanceApplicationService";
|
||||
|
||||
/// <summary>
|
||||
/// IPC protocol used (string).
|
||||
/// </summary>
|
||||
private const string IpcProtocol = "ipc://";
|
||||
|
||||
/// <summary>
|
||||
/// Application mutex.
|
||||
/// </summary>
|
||||
internal static Mutex singleInstanceMutex;
|
||||
|
||||
/// <summary>
|
||||
/// IPC channel for communications.
|
||||
/// </summary>
|
||||
private static IpcServerChannel channel;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Properties
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Checks if the instance of the application attempting to start is the first instance.
|
||||
/// If not, activates the first instance.
|
||||
/// </summary>
|
||||
/// <returns>True if this is the first instance of the application.</returns>
|
||||
public static bool InitializeAsFirstInstance( string uniqueName )
|
||||
{
|
||||
// Build unique application Id and the IPC channel name.
|
||||
string applicationIdentifier = uniqueName + Environment.UserName;
|
||||
|
||||
string channelName = String.Concat(applicationIdentifier, Delimiter, ChannelNameSuffix);
|
||||
|
||||
// Create mutex based on unique application Id to check if this is the first instance of the application.
|
||||
bool firstInstance;
|
||||
singleInstanceMutex = new Mutex(true, applicationIdentifier, out firstInstance);
|
||||
if (firstInstance)
|
||||
{
|
||||
CreateRemoteService(channelName);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
SignalFirstInstance(channelName);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cleans up single-instance code, clearing shared resources, mutexes, etc.
|
||||
/// </summary>
|
||||
public static void Cleanup()
|
||||
{
|
||||
singleInstanceMutex?.ReleaseMutex();
|
||||
|
||||
if (channel != null)
|
||||
{
|
||||
ChannelServices.UnregisterChannel(channel);
|
||||
channel = null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Gets command line args - for ClickOnce deployed applications, command line args may not be passed directly, they have to be retrieved.
|
||||
/// </summary>
|
||||
/// <returns>List of command line arg strings.</returns>
|
||||
private static IList<string> GetCommandLineArgs( string uniqueApplicationName )
|
||||
{
|
||||
string[] args = null;
|
||||
if (AppDomain.CurrentDomain.ActivationContext == null)
|
||||
{
|
||||
// The application was not clickonce deployed, get args from standard API's
|
||||
args = Environment.GetCommandLineArgs();
|
||||
}
|
||||
else
|
||||
{
|
||||
// The application was clickonce deployed
|
||||
// Clickonce deployed apps cannot recieve traditional commandline arguments
|
||||
// As a workaround commandline arguments can be written to a shared location before
|
||||
// the app is launched and the app can obtain its commandline arguments from the
|
||||
// shared location
|
||||
string appFolderPath = Path.Combine(
|
||||
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), uniqueApplicationName);
|
||||
|
||||
string cmdLinePath = Path.Combine(appFolderPath, "cmdline.txt");
|
||||
if (File.Exists(cmdLinePath))
|
||||
{
|
||||
try
|
||||
{
|
||||
using (TextReader reader = new StreamReader(cmdLinePath, Encoding.Unicode))
|
||||
{
|
||||
args = NativeMethods.CommandLineToArgvW(reader.ReadToEnd());
|
||||
}
|
||||
|
||||
File.Delete(cmdLinePath);
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (args == null)
|
||||
{
|
||||
args = new string[] { };
|
||||
}
|
||||
|
||||
return new List<string>(args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a remote service for communication.
|
||||
/// </summary>
|
||||
/// <param name="channelName">Application's IPC channel name.</param>
|
||||
private static void CreateRemoteService(string channelName)
|
||||
{
|
||||
BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
|
||||
serverProvider.TypeFilterLevel = TypeFilterLevel.Full;
|
||||
IDictionary props = new Dictionary<string, string>();
|
||||
|
||||
props["name"] = channelName;
|
||||
props["portName"] = channelName;
|
||||
props["exclusiveAddressUse"] = "false";
|
||||
|
||||
// Create the IPC Server channel with the channel properties
|
||||
channel = new IpcServerChannel(props, serverProvider);
|
||||
|
||||
// Register the channel with the channel services
|
||||
ChannelServices.RegisterChannel(channel, true);
|
||||
|
||||
// Expose the remote service with the REMOTE_SERVICE_NAME
|
||||
IPCRemoteService remoteService = new IPCRemoteService();
|
||||
RemotingServices.Marshal(remoteService, RemoteServiceName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a client channel and obtains a reference to the remoting service exposed by the server -
|
||||
/// in this case, the remoting service exposed by the first instance. Calls a function of the remoting service
|
||||
/// class to pass on command line arguments from the second instance to the first and cause it to activate itself.
|
||||
/// </summary>
|
||||
/// <param name="channelName">Application's IPC channel name.</param>
|
||||
/// <param name="args">
|
||||
/// Command line arguments for the second instance, passed to the first instance to take appropriate action.
|
||||
/// </param>
|
||||
private static void SignalFirstInstance(string channelName)
|
||||
{
|
||||
IpcClientChannel secondInstanceChannel = new IpcClientChannel();
|
||||
ChannelServices.RegisterChannel(secondInstanceChannel, true);
|
||||
|
||||
string remotingServiceUrl = IpcProtocol + channelName + "/" + RemoteServiceName;
|
||||
|
||||
// Obtain a reference to the remoting service exposed by the server i.e the first instance of the application
|
||||
IPCRemoteService firstInstanceRemoteServiceReference = (IPCRemoteService)RemotingServices.Connect(typeof(IPCRemoteService), remotingServiceUrl);
|
||||
|
||||
// Check that the remote service exists, in some cases the first instance may not yet have created one, in which case
|
||||
// the second instance should just exit
|
||||
if (firstInstanceRemoteServiceReference != null)
|
||||
{
|
||||
// Invoke a method of the remote service exposed by the first instance passing on the command line
|
||||
// arguments and causing the first instance to activate itself
|
||||
firstInstanceRemoteServiceReference.InvokeFirstInstance();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Callback for activating first instance of the application.
|
||||
/// </summary>
|
||||
/// <param name="arg">Callback argument.</param>
|
||||
/// <returns>Always null.</returns>
|
||||
private static object ActivateFirstInstanceCallback(object o)
|
||||
{
|
||||
ActivateFirstInstance();
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Activates the first instance of the application with arguments from a second instance.
|
||||
/// </summary>
|
||||
/// <param name="args">List of arguments to supply the first instance of the application.</param>
|
||||
private static void ActivateFirstInstance()
|
||||
{
|
||||
// Set main window state and process command line args
|
||||
if (Application.Current == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((TApplication)Application.Current).OnSecondAppStarted();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Classes
|
||||
|
||||
/// <summary>
|
||||
/// Remoting service class which is exposed by the server i.e the first instance and called by the second instance
|
||||
/// to pass on the command line arguments to the first instance and cause it to activate itself.
|
||||
/// </summary>
|
||||
private class IPCRemoteService : MarshalByRefObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Activates the first instance of the application.
|
||||
/// </summary>
|
||||
public void InvokeFirstInstance()
|
||||
{
|
||||
if (Application.Current != null)
|
||||
{
|
||||
// Do an asynchronous call to ActivateFirstInstance function
|
||||
Application.Current.Dispatcher.Invoke(ActivateFirstInstance);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remoting Object's ease expires after every 5 minutes by default. We need to override the InitializeLifetimeService class
|
||||
/// to ensure that lease never expires.
|
||||
/// </summary>
|
||||
/// <returns>Always null.</returns>
|
||||
public override object InitializeLifetimeService()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
20
src/modules/launcher/Wox/Helper/SingletonWindowOpener.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public static class SingletonWindowOpener
|
||||
{
|
||||
public static T Open<T>(params object[] args) where T : Window
|
||||
{
|
||||
var window = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.GetType() == typeof(T))
|
||||
?? (T)Activator.CreateInstance(typeof(T), args);
|
||||
Application.Current.MainWindow.Hide();
|
||||
window.Show();
|
||||
window.Focus();
|
||||
|
||||
return (T)window;
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/modules/launcher/Wox/Helper/SyntaxSugars.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public static class SyntaxSugars
|
||||
{
|
||||
public static TResult CallOrRescueDefault<TResult>(Func<TResult> callback)
|
||||
{
|
||||
return CallOrRescueDefault(callback, default(TResult));
|
||||
}
|
||||
|
||||
public static TResult CallOrRescueDefault<TResult>(Func<TResult> callback, TResult def)
|
||||
{
|
||||
try
|
||||
{
|
||||
return callback();
|
||||
}
|
||||
catch
|
||||
{
|
||||
return def;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
48
src/modules/launcher/Wox/Helper/WallpaperPathRetrieval.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Windows.Media;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public static class WallpaperPathRetrieval
|
||||
{
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
private static extern Int32 SystemParametersInfo(UInt32 action,
|
||||
Int32 uParam, StringBuilder vParam, UInt32 winIni);
|
||||
private static readonly UInt32 SPI_GETDESKWALLPAPER = 0x73;
|
||||
private static int MAX_PATH = 260;
|
||||
|
||||
public static string GetWallpaperPath()
|
||||
{
|
||||
var wallpaper = new StringBuilder(MAX_PATH);
|
||||
SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, wallpaper, 0);
|
||||
|
||||
var str = wallpaper.ToString();
|
||||
if (string.IsNullOrEmpty(str))
|
||||
return null;
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
public static Color GetWallpaperColor()
|
||||
{
|
||||
RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Colors", true);
|
||||
var result = key.GetValue(@"Background", null);
|
||||
if (result != null && result is string)
|
||||
{
|
||||
try
|
||||
{
|
||||
var parts = result.ToString().Trim().Split(new[] {' '}, 3).Select(byte.Parse).ToList();
|
||||
return Color.FromRgb(parts[0], parts[1], parts[2]);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
return Colors.Transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
163
src/modules/launcher/Wox/Helper/WindowsInteropHelper.cs
Normal file
@@ -0,0 +1,163 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
using Point = System.Windows.Point;
|
||||
|
||||
namespace Wox.Helper
|
||||
{
|
||||
public class WindowsInteropHelper
|
||||
{
|
||||
private const int GWL_STYLE = -16; //WPF's Message code for Title Bar's Style
|
||||
private const int WS_SYSMENU = 0x80000; //WPF's Message code for System Menu
|
||||
private static IntPtr _hwnd_shell;
|
||||
private static IntPtr _hwnd_desktop;
|
||||
|
||||
//Accessors for shell and desktop handlers
|
||||
//Will set the variables once and then will return them
|
||||
private static IntPtr HWND_SHELL
|
||||
{
|
||||
get
|
||||
{
|
||||
return _hwnd_shell != IntPtr.Zero ? _hwnd_shell : _hwnd_shell = GetShellWindow();
|
||||
}
|
||||
}
|
||||
private static IntPtr HWND_DESKTOP
|
||||
{
|
||||
get
|
||||
{
|
||||
return _hwnd_desktop != IntPtr.Zero ? _hwnd_desktop : _hwnd_desktop = GetDesktopWindow();
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetForegroundWindow();
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetDesktopWindow();
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetShellWindow();
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
private static extern int GetWindowRect(IntPtr hwnd, out RECT rc);
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||
private static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
|
||||
|
||||
[DllImport("user32.DLL")]
|
||||
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
|
||||
|
||||
|
||||
const string WINDOW_CLASS_CONSOLE = "ConsoleWindowClass";
|
||||
const string WINDOW_CLASS_WINTAB = "Flip3D";
|
||||
const string WINDOW_CLASS_PROGMAN = "Progman";
|
||||
const string WINDOW_CLASS_WORKERW = "WorkerW";
|
||||
|
||||
public static bool IsWindowFullscreen()
|
||||
{
|
||||
//get current active window
|
||||
IntPtr hWnd = GetForegroundWindow();
|
||||
|
||||
if (hWnd != null && !hWnd.Equals(IntPtr.Zero))
|
||||
{
|
||||
//if current active window is NOT desktop or shell
|
||||
if (!(hWnd.Equals(HWND_DESKTOP) || hWnd.Equals(HWND_SHELL)))
|
||||
{
|
||||
StringBuilder sb = new StringBuilder(256);
|
||||
GetClassName(hWnd, sb, sb.Capacity);
|
||||
string windowClass = sb.ToString();
|
||||
|
||||
//for Win+Tab (Flip3D)
|
||||
if (windowClass == WINDOW_CLASS_WINTAB)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RECT appBounds;
|
||||
GetWindowRect(hWnd, out appBounds);
|
||||
|
||||
//for console (ConsoleWindowClass), we have to check for negative dimensions
|
||||
if (windowClass == WINDOW_CLASS_CONSOLE)
|
||||
{
|
||||
return appBounds.Top < 0 && appBounds.Bottom < 0;
|
||||
}
|
||||
|
||||
//for desktop (Progman or WorkerW, depends on the system), we have to check
|
||||
if (windowClass == WINDOW_CLASS_PROGMAN || windowClass == WINDOW_CLASS_WORKERW)
|
||||
{
|
||||
IntPtr hWndDesktop = FindWindowEx(hWnd, IntPtr.Zero, "SHELLDLL_DefView", null);
|
||||
hWndDesktop = FindWindowEx(hWndDesktop, IntPtr.Zero, "SysListView32", "FolderView");
|
||||
if (hWndDesktop != null && !hWndDesktop.Equals(IntPtr.Zero))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle screenBounds = Screen.FromHandle(hWnd).Bounds;
|
||||
if ((appBounds.Bottom - appBounds.Top) == screenBounds.Height && (appBounds.Right - appBounds.Left) == screenBounds.Width)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// disable windows toolbar's control box
|
||||
/// this will also disable system menu with Alt+Space hotkey
|
||||
/// </summary>
|
||||
public static void DisableControlBox(Window win)
|
||||
{
|
||||
var hwnd = new WindowInteropHelper(win).Handle;
|
||||
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Transforms pixels to Device Independent Pixels used by WPF
|
||||
/// </summary>
|
||||
/// <param name="visual">current window, required to get presentation source</param>
|
||||
/// <param name="unitX">horizontal position in pixels</param>
|
||||
/// <param name="unitY">vertical position in pixels</param>
|
||||
/// <returns>point containing device independent pixels</returns>
|
||||
public static Point TransformPixelsToDIP(Visual visual, double unitX, double unitY)
|
||||
{
|
||||
Matrix matrix;
|
||||
var source = PresentationSource.FromVisual(visual);
|
||||
if (source != null)
|
||||
{
|
||||
matrix = source.CompositionTarget.TransformFromDevice;
|
||||
}
|
||||
else
|
||||
{
|
||||
using (var src = new HwndSource(new HwndSourceParameters()))
|
||||
{
|
||||
matrix = src.CompositionTarget.TransformFromDevice;
|
||||
}
|
||||
}
|
||||
return new Point((int)(matrix.M11 * unitX), (int)(matrix.M22 * unitY));
|
||||
}
|
||||
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct RECT
|
||||
{
|
||||
public int Left;
|
||||
public int Top;
|
||||
public int Right;
|
||||
public int Bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/modules/launcher/Wox/HotkeyControl.xaml
Normal file
@@ -0,0 +1,19 @@
|
||||
<UserControl x:Class="Wox.HotkeyControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
|
||||
mc:Ignorable="d"
|
||||
Height="24"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150" />
|
||||
<ColumnDefinition Width="120" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox x:Name="tbHotkey" TabIndex="100" VerticalContentAlignment="Center" Grid.Column="0"
|
||||
PreviewKeyDown="TbHotkey_OnPreviewKeyDown" input:InputMethod.IsInputMethodEnabled="False"/>
|
||||
<TextBlock x:Name="tbMsg" Visibility="Hidden" Margin="5 0 0 0" VerticalAlignment="Center" Grid.Column="1" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
117
src/modules/launcher/Wox/HotkeyControl.xaml.cs
Normal file
@@ -0,0 +1,117 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using NHotkey.Wpf;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Infrastructure.Hotkey;
|
||||
using Wox.Plugin;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class HotkeyControl : UserControl
|
||||
{
|
||||
public HotkeyModel CurrentHotkey { get; private set; }
|
||||
public bool CurrentHotkeyAvailable { get; private set; }
|
||||
|
||||
public event EventHandler HotkeyChanged;
|
||||
|
||||
protected virtual void OnHotkeyChanged()
|
||||
{
|
||||
EventHandler handler = HotkeyChanged;
|
||||
if (handler != null) handler(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public HotkeyControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
e.Handled = true;
|
||||
tbMsg.Visibility = Visibility.Hidden;
|
||||
|
||||
//when alt is pressed, the real key should be e.SystemKey
|
||||
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
|
||||
|
||||
SpecialKeyState specialKeyState = GlobalHotkey.Instance.CheckModifiers();
|
||||
|
||||
var hotkeyModel = new HotkeyModel(
|
||||
specialKeyState.AltPressed,
|
||||
specialKeyState.ShiftPressed,
|
||||
specialKeyState.WinPressed,
|
||||
specialKeyState.CtrlPressed,
|
||||
key);
|
||||
|
||||
var hotkeyString = hotkeyModel.ToString();
|
||||
|
||||
if (hotkeyString == tbHotkey.Text)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Dispatcher.InvokeAsync(async () =>
|
||||
{
|
||||
await Task.Delay(500);
|
||||
SetHotkey(hotkeyModel);
|
||||
});
|
||||
}
|
||||
|
||||
public void SetHotkey(HotkeyModel keyModel, bool triggerValidate = true)
|
||||
{
|
||||
CurrentHotkey = keyModel;
|
||||
|
||||
tbHotkey.Text = CurrentHotkey.ToString();
|
||||
tbHotkey.Select(tbHotkey.Text.Length, 0);
|
||||
|
||||
if (triggerValidate)
|
||||
{
|
||||
CurrentHotkeyAvailable = CheckHotkeyAvailability();
|
||||
if (!CurrentHotkeyAvailable)
|
||||
{
|
||||
tbMsg.Foreground = new SolidColorBrush(Colors.Red);
|
||||
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("hotkeyUnavailable");
|
||||
}
|
||||
else
|
||||
{
|
||||
tbMsg.Foreground = new SolidColorBrush(Colors.Green);
|
||||
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("success");
|
||||
}
|
||||
tbMsg.Visibility = Visibility.Visible;
|
||||
OnHotkeyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public void SetHotkey(string keyStr, bool triggerValidate = true)
|
||||
{
|
||||
SetHotkey(new HotkeyModel(keyStr), triggerValidate);
|
||||
}
|
||||
|
||||
private bool CheckHotkeyAvailability()
|
||||
{
|
||||
try
|
||||
{
|
||||
HotkeyManager.Current.AddOrReplace("HotkeyAvailabilityTest", CurrentHotkey.CharKey, CurrentHotkey.ModifierKeys, (sender, e) => { });
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
finally
|
||||
{
|
||||
HotkeyManager.Current.Remove("HotkeyAvailabilityTest");
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public new bool IsFocused
|
||||
{
|
||||
get { return tbHotkey.IsFocused; }
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
src/modules/launcher/Wox/Images/Browser.png
Normal file
|
After Width: | Height: | Size: 873 B |
BIN
src/modules/launcher/Wox/Images/EXE.png
Normal file
|
After Width: | Height: | Size: 774 B |
BIN
src/modules/launcher/Wox/Images/Link.png
Normal file
|
After Width: | Height: | Size: 796 B |
BIN
src/modules/launcher/Wox/Images/New Message.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/modules/launcher/Wox/Images/app.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/modules/launcher/Wox/Images/app_error.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/modules/launcher/Wox/Images/calculator.png
Normal file
|
After Width: | Height: | Size: 597 B |
BIN
src/modules/launcher/Wox/Images/cancel.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/modules/launcher/Wox/Images/close.png
Normal file
|
After Width: | Height: | Size: 530 B |
BIN
src/modules/launcher/Wox/Images/cmd.png
Normal file
|
After Width: | Height: | Size: 752 B |
BIN
src/modules/launcher/Wox/Images/color.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/modules/launcher/Wox/Images/copy.png
Normal file
|
After Width: | Height: | Size: 501 B |
BIN
src/modules/launcher/Wox/Images/down.png
Normal file
|
After Width: | Height: | Size: 506 B |
BIN
src/modules/launcher/Wox/Images/file.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
src/modules/launcher/Wox/Images/find.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/Wox/Images/folder.png
Normal file
|
After Width: | Height: | Size: 468 B |
BIN
src/modules/launcher/Wox/Images/history.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/modules/launcher/Wox/Images/image.png
Normal file
|
After Width: | Height: | Size: 634 B |
BIN
src/modules/launcher/Wox/Images/lock.png
Normal file
|
After Width: | Height: | Size: 759 B |
BIN
src/modules/launcher/Wox/Images/logoff.png
Normal file
|
After Width: | Height: | Size: 674 B |
BIN
src/modules/launcher/Wox/Images/ok.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/modules/launcher/Wox/Images/open.png
Normal file
|
After Width: | Height: | Size: 792 B |
BIN
src/modules/launcher/Wox/Images/plugin.png
Normal file
|
After Width: | Height: | Size: 269 B |
BIN
src/modules/launcher/Wox/Images/recyclebin.png
Normal file
|
After Width: | Height: | Size: 436 B |
BIN
src/modules/launcher/Wox/Images/restart.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/Wox/Images/search.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/Wox/Images/settings.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/modules/launcher/Wox/Images/shutdown.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/Wox/Images/sleep.png
Normal file
|
After Width: | Height: | Size: 760 B |
BIN
src/modules/launcher/Wox/Images/up.png
Normal file
|
After Width: | Height: | Size: 470 B |
BIN
src/modules/launcher/Wox/Images/update.png
Normal file
|
After Width: | Height: | Size: 794 B |
BIN
src/modules/launcher/Wox/Images/warning.png
Normal file
|
After Width: | Height: | Size: 738 B |
132
src/modules/launcher/Wox/Languages/da.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Kunne ikke registrere genvejstast: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Kunne ikke starte {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Ugyldigt Wox plugin filformat</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Sæt øverst i denne søgning</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Annuller øverst i denne søgning</system:String>
|
||||
<system:String x:Key="executeQuery">Udfør søgning: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Seneste afviklingstid: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Åben</system:String>
|
||||
<system:String x:Key="iconTraySettings">Indstillinger</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Om</system:String>
|
||||
<system:String x:Key="iconTrayExit">Afslut</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox indstillinger</system:String>
|
||||
<system:String x:Key="general">Generelt</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Start Wox ved system start</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Skjul Wox ved mistet fokus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Vis ikke notifikationer om nye versioner</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Husk seneste position</system:String>
|
||||
<system:String x:Key="language">Sprog</system:String>
|
||||
<system:String x:Key="maxShowResults">Maksimum antal resultater vist</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorer genvejstaster i fuldskærmsmode</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python bibliotek</system:String>
|
||||
<system:String x:Key="autoUpdates">Autoopdatering</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Vælg</system:String>
|
||||
<system:String x:Key="hideOnStartup">Skjul Wox ved opstart</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Find flere plugins</system:String>
|
||||
<system:String x:Key="disable">Deaktiver</system:String>
|
||||
<system:String x:Key="actionKeywords">Nøgleord</system:String>
|
||||
<system:String x:Key="pluginDirectory">Plugin bibliotek</system:String>
|
||||
<system:String x:Key="author">Forfatter</system:String>
|
||||
<system:String x:Key="plugin_init_time">Initaliseringstid: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Søgetid: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Søg efter flere temaer</system:String>
|
||||
<system:String x:Key="helloWox">Hej Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Søgefelt skrifttype</system:String>
|
||||
<system:String x:Key="resultItemFont">Resultat skrifttype</system:String>
|
||||
<system:String x:Key="windowMode">Vindue mode</system:String>
|
||||
<system:String x:Key="opacity">Gennemsigtighed</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Genvejstast</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox genvejstast</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Tilpasset søgegenvejstast</system:String>
|
||||
<system:String x:Key="delete">Slet</system:String>
|
||||
<system:String x:Key="edit">Rediger</system:String>
|
||||
<system:String x:Key="add">Tilføj</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Vælg venligst</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Er du sikker på du vil slette {0} plugin genvejstast?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Aktiver HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Brugernavn</system:String>
|
||||
<system:String x:Key="password">Adgangskode</system:String>
|
||||
<system:String x:Key="testProxy">Test Proxy</system:String>
|
||||
<system:String x:Key="save">Gem</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Server felt må ikke være tomt</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Port felt må ikke være tomt</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Ugyldigt port format</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy konfiguration gemt</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy konfiguret korrekt</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Proxy forbindelse fejlet</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Om</system:String>
|
||||
<system:String x:Key="website">Website</system:String>
|
||||
<system:String x:Key="version">Version</system:String>
|
||||
<system:String x:Key="about_activate_times">Du har aktiveret Wox {0} gange</system:String>
|
||||
<system:String x:Key="checkUpdates">Tjek for opdateringer</system:String>
|
||||
<system:String x:Key="newVersionTips">Ny version {0} er tilgængelig, genstart venligst Wox</system:String>
|
||||
<system:String x:Key="releaseNotes">Release Notes:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Gammelt nøgleord</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nyt nøgleord</system:String>
|
||||
<system:String x:Key="cancel">Annuller</system:String>
|
||||
<system:String x:Key="done">Færdig</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Kan ikke finde det valgte plugin</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Nyt nøgleord må ikke være tomt</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Nyt nøgleord er tilknyttet et andet plugin, tilknyt venligst et andet nyt nøgeleord</system:String>
|
||||
<system:String x:Key="success">Fortsæt</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Brug * hvis du ikke vil angive et nøgleord</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Vis</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Genvejstast er utilgængelig, vælg venligst en ny genvejstast</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Ugyldig plugin genvejstast</system:String>
|
||||
<system:String x:Key="update">Opdater</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Genvejstast utilgængelig</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Version</system:String>
|
||||
<system:String x:Key="reportWindow_time">Tid</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Beskriv venligst hvordan Wox crashede, så vi kan rette det.</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Send rapport</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Annuller</system:String>
|
||||
<system:String x:Key="reportWindow_general">Generelt</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Exceptions</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Exception Type</system:String>
|
||||
<system:String x:Key="reportWindow_source">Kilde</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Sender</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Rapport sendt korrekt</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Kunne ikke sende rapport</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox fik en fejl</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Ny Wox udgivelse {0} er nu tilgængelig</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Der skete en fejl ifm. opdatering af Wox</system:String>
|
||||
<system:String x:Key="update_wox_update">Opdater</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Annuler</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Denne opdatering vil genstarte Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Følgende filer bliver opdateret</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Opdatereringsfiler</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Opdateringsbeskrivelse</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/de.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Tastenkombinationregistrierung: {0} fehlgeschlagen</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Kann {0} nicht starten</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Fehlerhaftes Wox-Plugin Dateiformat</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">In dieser Abfrage als oberstes setzen</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">In dieser Abfrage oberstes abbrechen</system:String>
|
||||
<system:String x:Key="executeQuery">Abfrage ausführen:{0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Letzte Ausführungszeit:{0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Öffnen</system:String>
|
||||
<system:String x:Key="iconTraySettings">Einstellungen</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Über</system:String>
|
||||
<system:String x:Key="iconTrayExit">Schließen</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox Einstellungen</system:String>
|
||||
<system:String x:Key="general">Allgemein</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Starte Wox bei Systemstart</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Verstecke Wox wenn der Fokus verloren geht</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Zeige keine Nachricht wenn eine neue Version vorhanden ist</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Merke letzte Ausführungsposition</system:String>
|
||||
<system:String x:Key="language">Sprache</system:String>
|
||||
<system:String x:Key="maxShowResults">Maximale Anzahl Ergebnissen</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignoriere Tastenkombination wenn Fenster im Vollbildmodus ist</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python-Verzeichnis</system:String>
|
||||
<system:String x:Key="autoUpdates">Automatische Aktualisierung</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Auswählen</system:String>
|
||||
<system:String x:Key="hideOnStartup">Verstecke Wox bei Systemstart</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Suche nach weiteren Plugins</system:String>
|
||||
<system:String x:Key="disable">Deaktivieren</system:String>
|
||||
<system:String x:Key="actionKeywords">Aktionsschlüsselwörter</system:String>
|
||||
<system:String x:Key="pluginDirectory">Pluginordner</system:String>
|
||||
<system:String x:Key="author">Autor</system:String>
|
||||
<system:String x:Key="plugin_init_time">Initialisierungszeit: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Abfragezeit: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Theme</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Suche nach weiteren Themes</system:String>
|
||||
<system:String x:Key="helloWox">Hallo Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Abfragebox Schriftart</system:String>
|
||||
<system:String x:Key="resultItemFont">Ergebnis Schriftart</system:String>
|
||||
<system:String x:Key="windowMode">Fenstermodus</system:String>
|
||||
<system:String x:Key="opacity">Transparenz</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Tastenkombination</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox Tastenkombination</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Benutzerdefinierte Abfrage Tastenkombination</system:String>
|
||||
<system:String x:Key="delete">Löschen</system:String>
|
||||
<system:String x:Key="edit">Bearbeiten</system:String>
|
||||
<system:String x:Key="add">Hinzufügen</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Bitte einen Eintrag auswählen</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Wollen Sie die {0} Plugin Tastenkombination wirklich löschen?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Aktiviere HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Benutzername</system:String>
|
||||
<system:String x:Key="password">Passwort</system:String>
|
||||
<system:String x:Key="testProxy">Teste Proxy</system:String>
|
||||
<system:String x:Key="save">Speichern</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Server darf nicht leer sein</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Server Port darf nicht leer sein</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Falsches Port Format</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy wurde erfolgreich gespeichert</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy ist korrekt</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Verbindung zum Proxy fehlgeschlagen</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Über</system:String>
|
||||
<system:String x:Key="website">Webseite</system:String>
|
||||
<system:String x:Key="version">Version</system:String>
|
||||
<system:String x:Key="about_activate_times">Sie haben Wox {0} mal aktiviert</system:String>
|
||||
<system:String x:Key="checkUpdates">Nach Aktuallisierungen Suchen</system:String>
|
||||
<system:String x:Key="newVersionTips">Eine neue Version ({0}) ist vorhanden. Bitte starten Sie Wox neu.</system:String>
|
||||
<system:String x:Key="releaseNotes">Versionshinweise:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Altes Aktionsschlüsselwort</system:String>
|
||||
<system:String x:Key="newActionKeywords">Neues Aktionsschlüsselwort</system:String>
|
||||
<system:String x:Key="cancel">Abbrechen</system:String>
|
||||
<system:String x:Key="done">Fertig</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Kann das angegebene Plugin nicht finden</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Neues Aktionsschlüsselwort darf nicht leer sein</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Aktionsschlüsselwort ist schon bei einem anderen Plugin in verwendung. Bitte stellen Sie ein anderes Aktionsschlüsselwort ein.</system:String>
|
||||
<system:String x:Key="success">Erfolgreich</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Benutzen Sie * wenn Sie ein Aktionsschlüsselwort definieren wollen.</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Vorschau</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Tastenkombination ist nicht verfügbar, bitte wähle eine andere Tastenkombination</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Ungültige Plugin Tastenkombination</system:String>
|
||||
<system:String x:Key="update">Aktualisieren</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Tastenkombination nicht verfügbar</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Version</system:String>
|
||||
<system:String x:Key="reportWindow_time">Zeit</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Bitte teilen Sie uns mit, wie die Anwendung abgestürzt ist, damit wir den Fehler beheben können.</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Sende Report</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Abbrechen</system:String>
|
||||
<system:String x:Key="reportWindow_general">Allgemein</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Fehler</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Fehlertypen</system:String>
|
||||
<system:String x:Key="reportWindow_source">Quelle</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Sende</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Report erfolgreich</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Report fehlgeschlagen</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox hat einen Fehler</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">V{0} von Wox ist verfügbar</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Es ist ein Fehler während der Installation der Aktualisierung aufgetreten.</system:String>
|
||||
<system:String x:Key="update_wox_update">Aktualisieren</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Abbrechen</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Diese Aktualisierung wird Wox neu starten</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Folgende Dateien werden aktualisiert</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Aktualisiere Dateien</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Aktualisierungbeschreibung</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
146
src/modules/launcher/Wox/Languages/en.xaml
Normal file
@@ -0,0 +1,146 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Failed to register hotkey: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Could not start {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Invalid Wox plugin file format</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Set as topmost in this query</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Cancel topmost in this query</system:String>
|
||||
<system:String x:Key="executeQuery">Execute query: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Last execution time: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Open</system:String>
|
||||
<system:String x:Key="iconTraySettings">Settings</system:String>
|
||||
<system:String x:Key="iconTrayAbout">About</system:String>
|
||||
<system:String x:Key="iconTrayExit">Exit</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox Settings</system:String>
|
||||
<system:String x:Key="general">General</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Start Wox on system startup</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Hide Wox when focus is lost</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Do not show new version notifications</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Remember last launch location</system:String>
|
||||
<system:String x:Key="language">Language</system:String>
|
||||
<system:String x:Key="lastQueryMode">Last Query Style</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Preserve Last Query</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Select last Query</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Empty last Query</system:String>
|
||||
<system:String x:Key="maxShowResults">Maximum results shown</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignore hotkeys in fullscreen mode</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python Directory</system:String>
|
||||
<system:String x:Key="autoUpdates">Auto Update</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Select</system:String>
|
||||
<system:String x:Key="hideOnStartup">Hide Wox on startup</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Hide tray icon</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
|
||||
<system:String x:Key="ShouldUsePinyin">Should Use Pinyin</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Find more plugins</system:String>
|
||||
<system:String x:Key="disable">Disable</system:String>
|
||||
<system:String x:Key="actionKeywords">Action keywords</system:String>
|
||||
<system:String x:Key="pluginDirectory">Plugin Directory</system:String>
|
||||
<system:String x:Key="author">Author</system:String>
|
||||
<system:String x:Key="plugin_init_time">Init time: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Query time: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Theme</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Browse for more themes</system:String>
|
||||
<system:String x:Key="helloWox">Hello Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Query Box Font</system:String>
|
||||
<system:String x:Key="resultItemFont">Result Item Font</system:String>
|
||||
<system:String x:Key="windowMode">Window Mode</system:String>
|
||||
<system:String x:Key="opacity">Opacity</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">Theme {0} not exists, fallback to default theme</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">Fail to load theme {0}, fallback to default theme</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Hotkey</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox Hotkey</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Custom Query Hotkey</system:String>
|
||||
<system:String x:Key="delete">Delete</system:String>
|
||||
<system:String x:Key="edit">Edit</system:String>
|
||||
<system:String x:Key="add">Add</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Please select an item</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Are you sure you want to delete {0} plugin hotkey?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Enable HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">User Name</system:String>
|
||||
<system:String x:Key="password">Password</system:String>
|
||||
<system:String x:Key="testProxy">Test Proxy</system:String>
|
||||
<system:String x:Key="save">Save</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Server field can't be empty</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Port field can't be empty</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Invalid port format</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy configuration saved successfully</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy configured correctly</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Proxy connection failed</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">About</system:String>
|
||||
<system:String x:Key="website">Website</system:String>
|
||||
<system:String x:Key="version">Version</system:String>
|
||||
<system:String x:Key="about_activate_times">You have activated Wox {0} times</system:String>
|
||||
<system:String x:Key="checkUpdates">Check for Updates</system:String>
|
||||
<system:String x:Key="newVersionTips">New version {0} is available, please restart Wox.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Check updates failed, please check your connection and proxy settings to api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Download updates failed, please check your connection and proxy settings to github-cloud.s3.amazonaws.com,
|
||||
or go to https://github.com/Wox-launcher/Wox/releases to download updates manually.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Release Notes:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Old Action Keyword</system:String>
|
||||
<system:String x:Key="newActionKeywords">New Action Keyword</system:String>
|
||||
<system:String x:Key="cancel">Cancel</system:String>
|
||||
<system:String x:Key="done">Done</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Can't find specified plugin</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">New Action Keyword can't be empty</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">New Action Keywords have been assigned to another plugin, please assign other new action keyword</system:String>
|
||||
<system:String x:Key="success">Success</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Use * if you don't want to specify an action keyword</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Preview</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Hotkey is unavailable, please select a new hotkey</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Invalid plugin hotkey</system:String>
|
||||
<system:String x:Key="update">Update</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Hotkey unavailable</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Version</system:String>
|
||||
<system:String x:Key="reportWindow_time">Time</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Please tell us how application crashed so we can fix it</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Send Report</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Cancel</system:String>
|
||||
<system:String x:Key="reportWindow_general">General</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Exceptions</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Exception Type</system:String>
|
||||
<system:String x:Key="reportWindow_source">Source</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Sending</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Report sent successfully</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Failed to send report</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox got an error</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">New Wox release {0} is now available</system:String>
|
||||
<system:String x:Key="update_wox_update_error">An error occurred while trying to install software updates</system:String>
|
||||
<system:String x:Key="update_wox_update">Update</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Cancel</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">This upgrade will restart Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Following files will be updated</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Update files</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Update description</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
138
src/modules/launcher/Wox/Languages/fr.xaml
Normal file
@@ -0,0 +1,138 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Échec lors de l'enregistrement du raccourci : {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Impossible de lancer {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Le format de fichier n'est pas un plugin Wox valide</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Définir en tant que favori pour cette requête</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Annuler le favori</system:String>
|
||||
<system:String x:Key="executeQuery">Lancer la requête : {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Dernière exécution : {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Ouvrir</system:String>
|
||||
<system:String x:Key="iconTraySettings">Paramètres</system:String>
|
||||
<system:String x:Key="iconTrayAbout">À propos</system:String>
|
||||
<system:String x:Key="iconTrayExit">Quitter</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Paramètres - Wox</system:String>
|
||||
<system:String x:Key="general">Général</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Lancer Wox au démarrage du système</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Cacher Wox lors de la perte de focus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Ne pas afficher le message de mise à jour pour les nouvelles versions</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Se souvenir du dernier emplacement de la fenêtre</system:String>
|
||||
<system:String x:Key="language">Langue</system:String>
|
||||
<system:String x:Key="lastQueryMode">Affichage de la dernière recherche</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Conserver la dernière recherche</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Sélectionner la dernière recherche</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Ne pas afficher la dernière recherche</system:String>
|
||||
<system:String x:Key="maxShowResults">Résultats maximums à afficher</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignore les raccourcis lorsqu'une application est en plein écran</system:String>
|
||||
<system:String x:Key="pythonDirectory">Répertoire de Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Mettre à jour automatiquement</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Sélectionner</system:String>
|
||||
<system:String x:Key="hideOnStartup">Cacher Wox au démarrage</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Modules</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Trouver plus de modules</system:String>
|
||||
<system:String x:Key="disable">Désactivé</system:String>
|
||||
<system:String x:Key="actionKeywords">Mot-clé d'action :</system:String>
|
||||
<system:String x:Key="pluginDirectory">Répertoire</system:String>
|
||||
<system:String x:Key="author">Auteur </system:String>
|
||||
<system:String x:Key="plugin_init_time">Chargement : {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Utilisation : {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Thèmes</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Trouver plus de thèmes</system:String>
|
||||
<system:String x:Key="helloWox">Hello Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Police (barre de recherche)</system:String>
|
||||
<system:String x:Key="resultItemFont">Police (liste des résultats) </system:String>
|
||||
<system:String x:Key="windowMode">Mode fenêtré</system:String>
|
||||
<system:String x:Key="opacity">Opacité</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Raccourcis</system:String>
|
||||
<system:String x:Key="woxHotkey">Ouvrir Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Requêtes personnalisées</system:String>
|
||||
<system:String x:Key="delete">Supprimer</system:String>
|
||||
<system:String x:Key="edit">Modifier</system:String>
|
||||
<system:String x:Key="add">Ajouter</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Veuillez sélectionner un élément</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Voulez-vous vraiment supprimer {0} raccourci(s) ?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">Proxy HTTP</system:String>
|
||||
<system:String x:Key="enableProxy">Activer le HTTP proxy</system:String>
|
||||
<system:String x:Key="server">Serveur HTTP</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Utilisateur</system:String>
|
||||
<system:String x:Key="password">Mot de passe</system:String>
|
||||
<system:String x:Key="testProxy">Tester</system:String>
|
||||
<system:String x:Key="save">Sauvegarder</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Un serveur doit être indiqué</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Un port doit être indiqué</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Format du port invalide</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy sauvegardé avec succès</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Le proxy est valide</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Connexion au proxy échouée</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">À propos</system:String>
|
||||
<system:String x:Key="website">Site web</system:String>
|
||||
<system:String x:Key="version">Version</system:String>
|
||||
<system:String x:Key="about_activate_times">Vous avez utilisé Wox {0} fois</system:String>
|
||||
<system:String x:Key="checkUpdates">Vérifier les mises à jour</system:String>
|
||||
<system:String x:Key="newVersionTips">Nouvelle version {0} disponible, veuillez redémarrer Wox</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Échec de la vérification de la mise à jour, vérifiez votre connexion et vos paramètres de configuration proxy pour pouvoir acceder à api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">Échec du téléchargement de la mise à jour, vérifiez votre connexion et vos paramètres de configuration proxy pour pouvoir acceder à github-cloud.s3.amazonaws.com, ou téléchargez manuelement la mise à jour sur https://github.com/Wox-launcher/Wox/releases.</system:String>
|
||||
<system:String x:Key="releaseNotes">Notes de changement :</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Ancien mot-clé d'action</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nouveau mot-clé d'action</system:String>
|
||||
<system:String x:Key="cancel">Annuler</system:String>
|
||||
<system:String x:Key="done">Terminé</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Impossible de trouver le module spécifié</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Le nouveau mot-clé d'action doit être spécifié</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Le nouveau mot-clé d'action a été assigné à un autre module, veuillez en choisir un autre</system:String>
|
||||
<system:String x:Key="success">Ajouté</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Saisissez * si vous ne souhaitez pas utiliser de mot-clé spécifique</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Prévisualiser</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Raccourci indisponible. Veuillez en choisir un autre.</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Raccourci invalide</system:String>
|
||||
<system:String x:Key="update">Actualiser</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Raccourci indisponible</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Version</system:String>
|
||||
<system:String x:Key="reportWindow_time">Heure</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Veuillez nous indiquer comment l'application a planté afin que nous puissions le corriger</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Envoyer le rapport</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Annuler</system:String>
|
||||
<system:String x:Key="reportWindow_general">Général</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Exceptions</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Type d'exception</system:String>
|
||||
<system:String x:Key="reportWindow_source">Source</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Trace d'appel</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Envoi en cours</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Signalement envoyé</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Échec de l'envoi du signalement</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox a rencontré une erreur</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Version v{0} de Wox disponible</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Une erreur s'est produite lors de l'installation de la mise à jour</system:String>
|
||||
<system:String x:Key="update_wox_update">Mettre à jour</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Annuler</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Wox doit redémarrer pour installer cette mise à jour</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Les fichiers suivants seront mis à jour</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Fichiers mis à jour</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Description de la mise à jour</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
141
src/modules/launcher/Wox/Languages/it.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Impossibile salvare il tasto di scelta rapida: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Avvio fallito {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Formato file plugin non valido</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Risultato prioritario con questa query</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Rimuovi risultato prioritario con questa query</system:String>
|
||||
<system:String x:Key="executeQuery">Query d'esecuzione: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Ultima esecuzione: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Apri</system:String>
|
||||
<system:String x:Key="iconTraySettings">Impostazioni</system:String>
|
||||
<system:String x:Key="iconTrayAbout">About</system:String>
|
||||
<system:String x:Key="iconTrayExit">Esci</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Impostaizoni Wox</system:String>
|
||||
<system:String x:Key="general">Generale</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Avvia Wow all'avvio di Windows</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Nascondi Wox quando perde il focus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Non mostrare le notifiche per una nuova versione</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Ricorda l'ultima posizione di avvio del launcher</system:String>
|
||||
<system:String x:Key="language">Lingua</system:String>
|
||||
<system:String x:Key="lastQueryMode">Comportamento ultima ricerca</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Conserva ultima ricerca</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Seleziona ultima ricerca</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Cancella ultima ricerca</system:String>
|
||||
<system:String x:Key="maxShowResults">Numero massimo di risultati mostrati</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignora i tasti di scelta rapida in applicazione a schermo pieno</system:String>
|
||||
<system:String x:Key="pythonDirectory">Cartella Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Aggiornamento automatico</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Seleziona</system:String>
|
||||
<system:String x:Key="hideOnStartup">Nascondi Wox all'avvio</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Cerca altri plugins</system:String>
|
||||
<system:String x:Key="disable">Disabilita</system:String>
|
||||
<system:String x:Key="actionKeywords">Parole chiave</system:String>
|
||||
<system:String x:Key="pluginDirectory">Cartella Plugin</system:String>
|
||||
<system:String x:Key="author">Autore</system:String>
|
||||
<system:String x:Key="plugin_init_time">Tempo di avvio: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Tempo ricerca: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Sfoglia per altri temi</system:String>
|
||||
<system:String x:Key="helloWox">Hello Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Font campo di ricerca</system:String>
|
||||
<system:String x:Key="resultItemFont">Font campo risultati</system:String>
|
||||
<system:String x:Key="windowMode">Modalità finestra</system:String>
|
||||
<system:String x:Key="opacity">Opacità</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Tasti scelta rapida</system:String>
|
||||
<system:String x:Key="woxHotkey">Tasto scelta rapida Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Tasti scelta rapida per ricerche personalizzate</system:String>
|
||||
<system:String x:Key="delete">Cancella</system:String>
|
||||
<system:String x:Key="edit">Modifica</system:String>
|
||||
<system:String x:Key="add">Aggiungi</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Selezionare un oggetto</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Volete cancellare il tasto di scelta rapida per il plugin {0}?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">Proxy HTTP</system:String>
|
||||
<system:String x:Key="enableProxy">Abilita Proxy HTTP</system:String>
|
||||
<system:String x:Key="server">Server HTTP</system:String>
|
||||
<system:String x:Key="port">Porta</system:String>
|
||||
<system:String x:Key="userName">User Name</system:String>
|
||||
<system:String x:Key="password">Password</system:String>
|
||||
<system:String x:Key="testProxy">Proxy Test</system:String>
|
||||
<system:String x:Key="save">Salva</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Il campo Server non può essere vuoto</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Il campo Porta non può essere vuoto</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Formato Porta non valido</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Configurazione Proxy salvata correttamente</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy Configurato correttamente</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Connessione Proxy fallita</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">About</system:String>
|
||||
<system:String x:Key="website">Sito web</system:String>
|
||||
<system:String x:Key="version">Versione</system:String>
|
||||
<system:String x:Key="about_activate_times">Hai usato Wox {0} volte</system:String>
|
||||
<system:String x:Key="checkUpdates">Cerca aggiornamenti</system:String>
|
||||
<system:String x:Key="newVersionTips">Una nuova versione {0} è disponibile, riavvia Wox per favore.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Ricerca aggiornamenti fallita, per favore controlla la tua connessione e le eventuali impostazioni proxy per api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Download degli aggiornamenti fallito, per favore controlla la tua connessione ed eventuali impostazioni proxy per github-cloud.s3.amazonaws.com,
|
||||
oppure vai su https://github.com/Wox-launcher/Wox/releases per scaricare gli aggiornamenti manualmente.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Note di rilascio:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Vecchia parola chiave d'azione</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nuova parola chiave d'azione</system:String>
|
||||
<system:String x:Key="cancel">Annulla</system:String>
|
||||
<system:String x:Key="done">Conferma</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Impossibile trovare il plugin specificato</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">La nuova parola chiave d'azione non può essere vuota</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">La nuova parola chiave d'azione è stata assegnata ad un altro plugin, per favore sceglierne una differente</system:String>
|
||||
<system:String x:Key="success">Successo</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Usa * se non vuoi specificare una parola chiave d'azione</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Anteprima</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Tasto di scelta rapida non disponibile, per favore scegli un nuovo tasto di scelta rapida</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Tasto di scelta rapida plugin non valido</system:String>
|
||||
<system:String x:Key="update">Aggiorna</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Tasto di scelta rapida non disponibile</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Versione</system:String>
|
||||
<system:String x:Key="reportWindow_time">Tempo</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Per favore raccontaci come l'applicazione si è chiusa inaspettatamente così che possimo risolvere il problema</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Invia rapporto</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Annulla</system:String>
|
||||
<system:String x:Key="reportWindow_general">Generale</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Eccezioni</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Tipo di eccezione</system:String>
|
||||
<system:String x:Key="reportWindow_source">Risorsa</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Traccia dello stack</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Invio in corso</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Rapporto inviato correttamente</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Invio rapporto fallito</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox ha riportato un errore</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">E' disponibile la nuova release {0} di Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Errore durante l'installazione degli aggiornamenti software</system:String>
|
||||
<system:String x:Key="update_wox_update">Aggiorna</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Annulla</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Questo aggiornamento riavvierà Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">I seguenti file saranno aggiornati</system:String>
|
||||
<system:String x:Key="update_wox_update_files">File aggiornati</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Descrizione aggiornamento</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
144
src/modules/launcher/Wox/Languages/ja.xaml
Normal file
@@ -0,0 +1,144 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">ホットキー「{0}」の登録に失敗しました</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">{0}の起動に失敗しました</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Woxプラグインの形式が正しくありません</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">このクエリを最上位にセットする</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">このクエリを最上位にセットをキャンセル</system:String>
|
||||
<system:String x:Key="executeQuery">次のコマンドを実行します:{0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">最終実行時間:{0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">開く</system:String>
|
||||
<system:String x:Key="iconTraySettings">設定</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Woxについて</system:String>
|
||||
<system:String x:Key="iconTrayExit">終了</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox設定</system:String>
|
||||
<system:String x:Key="general">一般</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">スタートアップ時にWoxを起動する</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">フォーカスを失った時にWoxを隠す</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">最新版が入手可能であっても、アップグレードメッセージを表示しない</system:String>
|
||||
<system:String x:Key="rememberLastLocation">前回のランチャーの位置を記憶</system:String>
|
||||
<system:String x:Key="language">言語</system:String>
|
||||
<system:String x:Key="lastQueryMode">前回のクエリの扱い</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">前回のクエリを保存</system:String>
|
||||
<system:String x:Key="LastQuerySelected">前回のクエリを選択</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">前回のクエリを消去</system:String>
|
||||
<system:String x:Key="maxShowResults">結果の最大表示件数</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">ウィンドウがフルスクリーン時にホットキーを無効にする</system:String>
|
||||
<system:String x:Key="pythonDirectory">Pythonのディレクトリ</system:String>
|
||||
<system:String x:Key="autoUpdates">自動更新</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">選択</system:String>
|
||||
<system:String x:Key="hideOnStartup">起動時にWoxを隠す</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">トレイアイコンを隠す</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">プラグイン</system:String>
|
||||
<system:String x:Key="browserMorePlugins">プラグインを探す</system:String>
|
||||
<system:String x:Key="disable">無効</system:String>
|
||||
<system:String x:Key="actionKeywords">キーワード</system:String>
|
||||
<system:String x:Key="pluginDirectory">プラグイン・ディレクトリ</system:String>
|
||||
<system:String x:Key="author">作者</system:String>
|
||||
<system:String x:Key="plugin_init_time">初期化時間: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">クエリ時間: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">テーマ</system:String>
|
||||
<system:String x:Key="browserMoreThemes">テーマを探す</system:String>
|
||||
<system:String x:Key="helloWox">こんにちは Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">検索ボックスのフォント</system:String>
|
||||
<system:String x:Key="resultItemFont">検索結果一覧のフォント</system:String>
|
||||
<system:String x:Key="windowMode">ウィンドウモード</system:String>
|
||||
<system:String x:Key="opacity">透過度</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">テーマ {0} が存在しません、デフォルトのテーマに戻します。</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">テーマ {0} を読み込めません、デフォルトのテーマに戻します。</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">ホットキー</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox ホットキー</system:String>
|
||||
<system:String x:Key="customQueryHotkey">カスタムクエリ ホットキー</system:String>
|
||||
<system:String x:Key="delete">削除</system:String>
|
||||
<system:String x:Key="edit">編集</system:String>
|
||||
<system:String x:Key="add">追加</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">項目選択してください</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">{0} プラグインのホットキーを本当に削除しますか?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP プロキシ</system:String>
|
||||
<system:String x:Key="enableProxy">HTTP プロキシを有効化</system:String>
|
||||
<system:String x:Key="server">HTTP サーバ</system:String>
|
||||
<system:String x:Key="port">ポート</system:String>
|
||||
<system:String x:Key="userName">ユーザ名</system:String>
|
||||
<system:String x:Key="password">パスワード</system:String>
|
||||
<system:String x:Key="testProxy">プロキシをテストする</system:String>
|
||||
<system:String x:Key="save">保存</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">サーバーは空白にできません</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">ポートは空白にできません</system:String>
|
||||
<system:String x:Key="invalidPortFormat">ポートの形式が正しくありません</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">プロキシの保存に成功しました</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">プロキシは正しいです</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">プロキシ接続に失敗しました</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Woxについて</system:String>
|
||||
<system:String x:Key="website">ウェブサイト</system:String>
|
||||
<system:String x:Key="version">バージョン</system:String>
|
||||
<system:String x:Key="about_activate_times">あなたはWoxを {0} 回利用しました</system:String>
|
||||
<system:String x:Key="checkUpdates">アップデートを確認する</system:String>
|
||||
<system:String x:Key="newVersionTips">新しいバージョン {0} が利用可能です。Woxを再起動してください。</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">アップデートの確認に失敗しました、api.github.com への接続とプロキシ設定を確認してください。</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
更新のダウンロードに失敗しました、github-cloud.s3.amazonaws.com への接続とプロキシ設定を確認するか、
|
||||
https://github.com/Wox-launcher/Wox/releases から手動でアップデートをダウンロードしてください。
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">リリースノート:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">古いアクションキーボード</system:String>
|
||||
<system:String x:Key="newActionKeywords">新しいアクションキーボード</system:String>
|
||||
<system:String x:Key="cancel">キャンセル</system:String>
|
||||
<system:String x:Key="done">完了</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">プラグインが見つかりません</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">新しいアクションキーボードを空にすることはできません</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">新しいアクションキーボードは他のプラグインに割り当てられています。他のアクションキーボードを指定してください</system:String>
|
||||
<system:String x:Key="success">成功しました</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">アクションキーボードを指定しない場合、* を使用してください</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">プレビュー</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">ホットキーは使用できません。新しいホットキーを選択してください</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">プラグインホットキーは無効です</system:String>
|
||||
<system:String x:Key="update">更新</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">ホットキーは使用できません</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">バージョン</system:String>
|
||||
<system:String x:Key="reportWindow_time">時間</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">アプリケーションが突然終了した手順を私たちに教えてくださると、バグ修正ができます</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">クラッシュレポートを送信</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">キャンセル</system:String>
|
||||
<system:String x:Key="reportWindow_general">一般</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">例外</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">例外の種類</system:String>
|
||||
<system:String x:Key="reportWindow_source">ソース</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">スタックトレース</system:String>
|
||||
<system:String x:Key="reportWindow_sending">送信中</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">クラッシュレポートの送信に成功しました</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">クラッシュレポートの送信に失敗しました</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Woxにエラーが発生しました</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Wox の最新バージョン V{0} が入手可能です</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Woxのアップデート中にエラーが発生しました</system:String>
|
||||
<system:String x:Key="update_wox_update">アップデート</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">キャンセル</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">このアップデートでは、Woxの再起動が必要です</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">次のファイルがアップデートされます</system:String>
|
||||
<system:String x:Key="update_wox_update_files">更新ファイル一覧</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">アップデートの詳細</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
136
src/modules/launcher/Wox/Languages/ko.xaml
Normal file
@@ -0,0 +1,136 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">핫키 등록 실패: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">{0}을 실행할 수 없습니다.</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Wox 플러그인 파일 형식이 유효하지 않습니다.</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">이 쿼리의 최상위로 설정</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">이 쿼리의 최상위 설정 취소</system:String>
|
||||
<system:String x:Key="executeQuery">쿼리 실행: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">마지막 실행 시간: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">열기</system:String>
|
||||
<system:String x:Key="iconTraySettings">설정</system:String>
|
||||
<system:String x:Key="iconTrayAbout">정보</system:String>
|
||||
<system:String x:Key="iconTrayExit">종료</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox 설정</system:String>
|
||||
<system:String x:Key="general">일반</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">시스템 시작 시 Wox 실행</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">포커스 잃으면 Wox 숨김</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">새 버전 알림 끄기</system:String>
|
||||
<system:String x:Key="rememberLastLocation">마지막 실행 위치 기억</system:String>
|
||||
<system:String x:Key="language">언어</system:String>
|
||||
<system:String x:Key="lastQueryMode">마지막 쿼리 스타일</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">직전 쿼리에 계속 입력</system:String>
|
||||
<system:String x:Key="LastQuerySelected">직전 쿼리 내용 선택</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">직전 쿼리 지우기</system:String>
|
||||
<system:String x:Key="maxShowResults">표시할 결과 수</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">전체화면 모드에서는 핫키 무시</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python 디렉토리</system:String>
|
||||
<system:String x:Key="autoUpdates">자동 업데이트</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">선택</system:String>
|
||||
<system:String x:Key="hideOnStartup">시작 시 Wox 숨김</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">플러그인</system:String>
|
||||
<system:String x:Key="browserMorePlugins">플러그인 더 찾아보기</system:String>
|
||||
<system:String x:Key="disable">비활성화</system:String>
|
||||
<system:String x:Key="actionKeywords">액션 키워드</system:String>
|
||||
<system:String x:Key="pluginDirectory">플러그인 디렉토리</system:String>
|
||||
<system:String x:Key="author">저자</system:String>
|
||||
<system:String x:Key="plugin_init_time">초기화 시간: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">쿼리 시간: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">테마</system:String>
|
||||
<system:String x:Key="browserMoreThemes">테마 더 찾아보기</system:String>
|
||||
<system:String x:Key="helloWox">Hello Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">쿼리 상자 글꼴</system:String>
|
||||
<system:String x:Key="resultItemFont">결과 항목 글꼴</system:String>
|
||||
<system:String x:Key="windowMode">윈도우 모드</system:String>
|
||||
<system:String x:Key="opacity">투명도</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">핫키</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox 핫키</system:String>
|
||||
<system:String x:Key="customQueryHotkey">사용자지정 쿼리 핫키</system:String>
|
||||
<system:String x:Key="delete">삭제</system:String>
|
||||
<system:String x:Key="edit">편집</system:String>
|
||||
<system:String x:Key="add">추가</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">항목을 선택하세요.</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">{0} 플러그인 핫키를 삭제하시겠습니까?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP 프록시</system:String>
|
||||
<system:String x:Key="enableProxy">HTTP 프록시 켜기</system:String>
|
||||
<system:String x:Key="server">HTTP 서버</system:String>
|
||||
<system:String x:Key="port">포트</system:String>
|
||||
<system:String x:Key="userName">사용자명</system:String>
|
||||
<system:String x:Key="password">패스워드</system:String>
|
||||
<system:String x:Key="testProxy">프록시 테스트</system:String>
|
||||
<system:String x:Key="save">저장</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">서버를 입력하세요.</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">포트를 입력하세요.</system:String>
|
||||
<system:String x:Key="invalidPortFormat">유효하지 않은 포트 형식</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">프록시 설정이 저장되었습니다.</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">프록시 설정 정상</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">프록시 연결 실패</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">정보</system:String>
|
||||
<system:String x:Key="website">웹사이트</system:String>
|
||||
<system:String x:Key="version">버전</system:String>
|
||||
<system:String x:Key="about_activate_times">Wox를 {0}번 실행했습니다.</system:String>
|
||||
<system:String x:Key="checkUpdates">업데이트 확인</system:String>
|
||||
<system:String x:Key="newVersionTips">새 버전({0})이 있습니다. Wox를 재시작하세요.</system:String>
|
||||
<system:String x:Key="releaseNotes">릴리즈 노트:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">예전 액션 키워드</system:String>
|
||||
<system:String x:Key="newActionKeywords">새 액션 키워드</system:String>
|
||||
<system:String x:Key="cancel">취소</system:String>
|
||||
<system:String x:Key="done">완료</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">플러그인을 찾을 수 없습니다.</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">새 액션 키워드를 입력하세요.</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">새 액션 키워드가 할당된 플러그인이 이미 있습니다. 다른 액션 키워드를 입력하세요.</system:String>
|
||||
<system:String x:Key="success">성공</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">액션 키워드를 지정하지 않으려면 *를 사용하세요.</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">미리보기</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">핫키를 사용할 수 없습니다. 다른 핫키를 입력하세요.</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">플러그인 핫키가 유효하지 않습니다.</system:String>
|
||||
<system:String x:Key="update">업데이트</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">핫키를 사용할 수 없습니다.</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">버전</system:String>
|
||||
<system:String x:Key="reportWindow_time">시간</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">수정을 위해 애플리케이션이 어떻게 충돌했는지 알려주세요.</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">보고서 보내기</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">취소</system:String>
|
||||
<system:String x:Key="reportWindow_general">일반</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">예외</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">예외 유형</system:String>
|
||||
<system:String x:Key="reportWindow_source">소스</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">스택 추적</system:String>
|
||||
<system:String x:Key="reportWindow_sending">보내는 중</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">보고서를 정상적으로 보냈습니다.</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">보고서를 보내지 못했습니다.</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox에 문제가 발생했습니다.</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">새 Wox 버전({0})을 사용할 수 있습니다.</system:String>
|
||||
<system:String x:Key="update_wox_update_error">소프트웨어 업데이트를 설치하는 중에 오류가 발생했습니다.</system:String>
|
||||
<system:String x:Key="update_wox_update">업데이트</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">취소</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">업데이트를 위해 Wox를 재시작합니다.</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">아래 파일들이 업데이트됩니다.</system:String>
|
||||
<system:String x:Key="update_wox_update_files">업데이트 파일</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">업데이트 설명</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
141
src/modules/launcher/Wox/Languages/nb-NO.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Kunne ikke registrere hurtigtast: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Kunne ikke starte {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Ugyldig filformat for Wox-utvidelse</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Sett til øverste for denne spørringen</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Avbryt øverste for denne spørringen</system:String>
|
||||
<system:String x:Key="executeQuery">Utfør spørring: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Tid for siste gjennomføring: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Åpne</system:String>
|
||||
<system:String x:Key="iconTraySettings">Innstillinger</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Om</system:String>
|
||||
<system:String x:Key="iconTrayExit">Avslutt</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox-innstillinger</system:String>
|
||||
<system:String x:Key="general">Generelt</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Start Wox ved systemstart</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Skjul Wox ved mistet fokus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Ikke vis varsel om ny versjon</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Husk siste plassering</system:String>
|
||||
<system:String x:Key="language">Språk</system:String>
|
||||
<system:String x:Key="lastQueryMode">Stil for siste spørring</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Bevar siste spørring</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Velg siste spørring</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Tøm siste spørring</system:String>
|
||||
<system:String x:Key="maxShowResults">Maks antall resultater vist</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorer hurtigtaster i fullskjermsmodus</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python-mappe</system:String>
|
||||
<system:String x:Key="autoUpdates">Oppdater automatisk</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Velg</system:String>
|
||||
<system:String x:Key="hideOnStartup">Skjul Wox ved oppstart</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Utvidelse</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Finn flere utvidelser</system:String>
|
||||
<system:String x:Key="disable">Deaktiver</system:String>
|
||||
<system:String x:Key="actionKeywords">Handlingsnøkkelord</system:String>
|
||||
<system:String x:Key="pluginDirectory">Utvidelseskatalog</system:String>
|
||||
<system:String x:Key="author">Forfatter</system:String>
|
||||
<system:String x:Key="plugin_init_time">Oppstartstid: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Spørringstid: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Finn flere temaer</system:String>
|
||||
<system:String x:Key="helloWox">Hallo Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Font for spørringsboks</system:String>
|
||||
<system:String x:Key="resultItemFont">Font for resultat</system:String>
|
||||
<system:String x:Key="windowMode">Vindusmodus</system:String>
|
||||
<system:String x:Key="opacity">Gjennomsiktighet</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Hurtigtast</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox-hurtigtast</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Egendefinerd spørringshurtigtast</system:String>
|
||||
<system:String x:Key="delete">Slett</system:String>
|
||||
<system:String x:Key="edit">Rediger</system:String>
|
||||
<system:String x:Key="add">Legg til</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Vennligst velg et element</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Er du sikker på at du vil slette utvidelserhurtigtasten for {0}?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP-proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Aktiver HTTP-proxy</system:String>
|
||||
<system:String x:Key="server">HTTP-server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Brukernavn</system:String>
|
||||
<system:String x:Key="password">Passord</system:String>
|
||||
<system:String x:Key="testProxy">Test proxy</system:String>
|
||||
<system:String x:Key="save">Lagre</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Serverfeltet kan ikke være tomt</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Portfelter kan ikke være tomt</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Ugyldig portformat</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy-konfigurasjon lagret med suksess</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy konfigurert riktig</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Proxy-tilkobling feilet</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Om</system:String>
|
||||
<system:String x:Key="website">Netside</system:String>
|
||||
<system:String x:Key="version">Versjon</system:String>
|
||||
<system:String x:Key="about_activate_times">Du har aktivert Wox {0} ganger</system:String>
|
||||
<system:String x:Key="checkUpdates">Sjekk for oppdatering</system:String>
|
||||
<system:String x:Key="newVersionTips">Ny versjon {0} er tilgjengelig, vennligst start Wox på nytt.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Oppdateringssjekk feilet, vennligst sjekk tilkoblingen og proxy-innstillene for api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Nedlastning av oppdateringer feilet, vennligst sjekk tilkoblingen og proxy-innstillene for github-cloud.s3.amazonaws.com,
|
||||
eller gå til https://github.com/Wox-launcher/Wox/releases for å laste ned oppdateringer manuelt.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Versjonsmerknader:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Gammelt handlingsnøkkelord</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nytt handlingsnøkkelord</system:String>
|
||||
<system:String x:Key="cancel">Avbryt</system:String>
|
||||
<system:String x:Key="done">Ferdig</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Kan ikke finne den angitte utvidelsen</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Nytt handlingsnøkkelord kan ikke være tomt</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">De nye handlingsnøkkelordene er tildelt en annen utvidelse, vennligst velg et annet nøkkelord</system:String>
|
||||
<system:String x:Key="success">Vellykket</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Bruk * hvis du ikke ønsker å angi et handlingsnøkkelord</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Forhåndsvis</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Hurtigtasten er ikke tilgjengelig, vennligst velg en ny hurtigtast</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Ugyldig hurtigtast for utvidelse</system:String>
|
||||
<system:String x:Key="update">Oppdater</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Hurtigtast utilgjengelig</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Versjon</system:String>
|
||||
<system:String x:Key="reportWindow_time">Tid</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Fortell oss hvordan programmet krasjet, så vi kan fikse det</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Send rapport</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Avbryt</system:String>
|
||||
<system:String x:Key="reportWindow_general">Generelt</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Unntak</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Unntakstype</system:String>
|
||||
<system:String x:Key="reportWindow_source">Kilde</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Sender</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Rapport sendt med suksess</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Kunne ikke sende rapport</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox møtte på en feil</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Versjon {0} av Wox er nå tilgjengelig</system:String>
|
||||
<system:String x:Key="update_wox_update_error">En feil oppstod under installasjon av programvareoppdateringer</system:String>
|
||||
<system:String x:Key="update_wox_update">Oppdater</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Avbryt</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Denne opgraderingen vil starte Wox på nytt</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Følgende filer vil bli oppdatert</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Oppdateringsfiler</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Oppdateringsbeskrivelse</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/nl.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Sneltoets registratie: {0} mislukt</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Kan {0} niet starten</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Ongeldige Wox plugin bestandsextensie</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Stel in als hoogste in deze query</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Annuleer hoogste in deze query</system:String>
|
||||
<system:String x:Key="executeQuery">Executeer query: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Laatste executie tijd: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Open</system:String>
|
||||
<system:String x:Key="iconTraySettings">Instellingen</system:String>
|
||||
<system:String x:Key="iconTrayAbout">About</system:String>
|
||||
<system:String x:Key="iconTrayExit">Afsluiten</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox Instellingen</system:String>
|
||||
<system:String x:Key="general">Algemeen</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Start Wox als systeem opstart</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Verberg Wox als focus verloren is</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Laat geen nieuwe versie notificaties zien</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Herinner laatste opstart locatie</system:String>
|
||||
<system:String x:Key="language">Taal</system:String>
|
||||
<system:String x:Key="maxShowResults">Laat maximale resultaten zien</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Negeer sneltoetsen in fullscreen mode</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python map</system:String>
|
||||
<system:String x:Key="autoUpdates">Automatische Update</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Selecteer</system:String>
|
||||
<system:String x:Key="hideOnStartup">Verberg Wox als systeem opstart</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Zoek meer plugins</system:String>
|
||||
<system:String x:Key="disable">Disable</system:String>
|
||||
<system:String x:Key="actionKeywords">Action terfwoorden</system:String>
|
||||
<system:String x:Key="pluginDirectory">Plugin map</system:String>
|
||||
<system:String x:Key="author">Auteur</system:String>
|
||||
<system:String x:Key="plugin_init_time">Init tijd: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Query tijd: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Thema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Zoek meer thema´s</system:String>
|
||||
<system:String x:Key="helloWox">Hallo Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Query Box lettertype</system:String>
|
||||
<system:String x:Key="resultItemFont">Resultaat Item lettertype</system:String>
|
||||
<system:String x:Key="windowMode">Window Mode</system:String>
|
||||
<system:String x:Key="opacity">Ondoorzichtigheid</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Sneltoets</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox Sneltoets</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Custom Query Sneltoets</system:String>
|
||||
<system:String x:Key="delete">Verwijder</system:String>
|
||||
<system:String x:Key="edit">Bewerken</system:String>
|
||||
<system:String x:Key="add">Toevoegen</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Selecteer een item</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Weet u zeker dat je {0} plugin sneltoets wilt verwijderen?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Enable HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Poort</system:String>
|
||||
<system:String x:Key="userName">Gebruikersnaam</system:String>
|
||||
<system:String x:Key="password">Wachtwoord</system:String>
|
||||
<system:String x:Key="testProxy">Test Proxy</system:String>
|
||||
<system:String x:Key="save">Opslaan</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Server moet ingevuld worden</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Poort moet ingevuld worden</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Ongeldige poort formaat</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Proxy succesvol opgeslagen</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy correct geconfigureerd</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Proxy connectie mislukt</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Over</system:String>
|
||||
<system:String x:Key="website">Website</system:String>
|
||||
<system:String x:Key="version">Versie</system:String>
|
||||
<system:String x:Key="about_activate_times">U heeft Wox {0} keer opgestart</system:String>
|
||||
<system:String x:Key="checkUpdates">Zoek naar Updates</system:String>
|
||||
<system:String x:Key="newVersionTips">Nieuwe versie {0} beschikbaar, start Wox opnieuw op</system:String>
|
||||
<system:String x:Key="releaseNotes">Release Notes:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Oude actie sneltoets</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nieuwe actie sneltoets</system:String>
|
||||
<system:String x:Key="cancel">Annuleer</system:String>
|
||||
<system:String x:Key="done">Klaar</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Kan plugin niet vinden</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Nieuwe actie sneltoets moet ingevuld worden</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Nieuwe actie sneltoets is toegewezen aan een andere plugin, wijs een nieuwe actie sneltoets aan</system:String>
|
||||
<system:String x:Key="success">Succesvol</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Gebruik * wanneer je geen nieuwe actie sneltoets wilt specificeren</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Voorbeeld</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Sneltoets is niet beschikbaar, selecteer een nieuwe sneltoets</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Ongeldige plugin sneltoets</system:String>
|
||||
<system:String x:Key="update">Update</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Sneltoets niet beschikbaar</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Versie</system:String>
|
||||
<system:String x:Key="reportWindow_time">Tijd</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Vertel ons hoe de applicatie is gecrashed, zodat wij de applicatie kunnen verbeteren</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Verstuur Rapport</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Annuleer</system:String>
|
||||
<system:String x:Key="reportWindow_general">Algemeen</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Uitzonderingen</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Uitzondering Type</system:String>
|
||||
<system:String x:Key="reportWindow_source">Bron</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Opzoeken</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Versturen</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Rapport succesvol</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Rapport mislukt</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox heeft een error</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Nieuwe Wox release {0} nu beschikbaar</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Een error is voorgekomen tijdens het installeren van de update</system:String>
|
||||
<system:String x:Key="update_wox_update">Update</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Annuleer</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Deze upgrade zal Wox opnieuw opstarten</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Volgende bestanden zullen worden geüpdatet</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Update bestanden</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Update beschrijving</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/pl.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Nie udało się ustawić skrótu klawiszowego: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Nie udało się uruchomić: {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Niepoprawny format pliku wtyczki</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Ustaw jako najwyższy wynik dla tego zapytania</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Usuń ten najwyższy wynik dla tego zapytania</system:String>
|
||||
<system:String x:Key="executeQuery">Wyszukaj: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Ostatni czas wykonywania: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Otwórz</system:String>
|
||||
<system:String x:Key="iconTraySettings">Ustawienia</system:String>
|
||||
<system:String x:Key="iconTrayAbout">O programie</system:String>
|
||||
<system:String x:Key="iconTrayExit">Wyjdź</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Ustawienia Wox</system:String>
|
||||
<system:String x:Key="general">Ogólne</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Uruchamiaj Wox przy starcie systemu</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Ukryj okno Wox kiedy przestanie ono być aktywne</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Nie pokazuj powiadomienia o nowej wersji</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Zapamiętaj ostatnią pozycję okna</system:String>
|
||||
<system:String x:Key="language">Język</system:String>
|
||||
<system:String x:Key="maxShowResults">Maksymalna liczba wyników</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignoruj skróty klawiszowe w trybie pełnego ekranu</system:String>
|
||||
<system:String x:Key="pythonDirectory">Folder biblioteki Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Automatyczne aktualizacje</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Wybierz</system:String>
|
||||
<system:String x:Key="hideOnStartup">Uruchamiaj Wox zminimalizowany</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Wtyczki</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Znajdź więcej wtyczek</system:String>
|
||||
<system:String x:Key="disable">Wyłącz</system:String>
|
||||
<system:String x:Key="actionKeywords">Wyzwalacze</system:String>
|
||||
<system:String x:Key="pluginDirectory">Folder wtyczki</system:String>
|
||||
<system:String x:Key="author">Autor</system:String>
|
||||
<system:String x:Key="plugin_init_time">Czas ładowania: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Czas zapytania: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Skórka</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Znajdź więcej skórek</system:String>
|
||||
<system:String x:Key="helloWox">Witaj Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Czcionka okna zapytania</system:String>
|
||||
<system:String x:Key="resultItemFont">Czcionka okna wyników</system:String>
|
||||
<system:String x:Key="windowMode">Tryb w oknie</system:String>
|
||||
<system:String x:Key="opacity">Przeźroczystość</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Skrót klawiszowy</system:String>
|
||||
<system:String x:Key="woxHotkey">Skrót klawiszowy Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Skrót klawiszowy niestandardowych zapytań</system:String>
|
||||
<system:String x:Key="delete">Usuń</system:String>
|
||||
<system:String x:Key="edit">Edytuj</system:String>
|
||||
<system:String x:Key="add">Dodaj</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Musisz coś wybrać</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Czy jesteś pewien że chcesz usunąć skrót klawiszowy {0} wtyczki?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">Serwer proxy HTTP</system:String>
|
||||
<system:String x:Key="enableProxy">Używaj HTTP proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Serwer</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Nazwa użytkownika</system:String>
|
||||
<system:String x:Key="password">Hasło</system:String>
|
||||
<system:String x:Key="testProxy">Sprawdź proxy</system:String>
|
||||
<system:String x:Key="save">Zapisz</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Nazwa serwera nie może być pusta</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Numer portu nie może być pusty</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Nieprawidłowy format numeru portu</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Ustawienia proxy zostały zapisane</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy zostało skonfigurowane poprawnie</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Nie udało się połączyć z serwerem proxy</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">O programie</system:String>
|
||||
<system:String x:Key="website">Strona internetowa</system:String>
|
||||
<system:String x:Key="version">Wersja</system:String>
|
||||
<system:String x:Key="about_activate_times">Uaktywniłeś Wox {0} razy</system:String>
|
||||
<system:String x:Key="checkUpdates">Szukaj aktualizacji</system:String>
|
||||
<system:String x:Key="newVersionTips">Nowa wersja {0} jest dostępna, uruchom ponownie Wox</system:String>
|
||||
<system:String x:Key="releaseNotes">Zmiany:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Stary wyzwalacz</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nowy wyzwalacz</system:String>
|
||||
<system:String x:Key="cancel">Anuluj</system:String>
|
||||
<system:String x:Key="done">Zapisz</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Nie można odnaleźć podanej wtyczki</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Nowy wyzwalacz nie może być pusty</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Ten wyzwalacz został już przypisany do innej wtyczki, musisz podać inny wyzwalacz.</system:String>
|
||||
<system:String x:Key="success">Sukces</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Użyj * jeżeli nie chcesz podawać wyzwalacza</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Podgląd</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Skrót klawiszowy jest niedostępny, musisz podać inny skrót klawiszowy</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Niepoprawny skrót klawiszowy</system:String>
|
||||
<system:String x:Key="update">Aktualizuj</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Niepoprawny skrót klawiszowy</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Wersja</system:String>
|
||||
<system:String x:Key="reportWindow_time">Czas</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Proszę powiedz nam co się stało zanim wystąpił błąd dzięki czemu będziemy mogli go naprawić (tylko po angielsku)</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Wyślij raport błędu</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Anuluj</system:String>
|
||||
<system:String x:Key="reportWindow_general">Ogólne</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Wyjątki</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Typ wyjątku</system:String>
|
||||
<system:String x:Key="reportWindow_source">Źródło</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stos wywołań</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Wysyłam raport...</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Raport wysłany pomyślnie</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Nie udało się wysłać raportu</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">W programie Wox wystąpił błąd</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Nowa wersja Wox {0} jest dostępna</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Wystąpił błąd podczas instalowania aktualizacji programu</system:String>
|
||||
<system:String x:Key="update_wox_update">Aktualizuj</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Anuluj</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Aby dokończyć proces aktualizacji Wox musi zostać zresetowany</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Następujące pliki zostaną zaktualizowane</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Aktualizuj pliki</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Opis aktualizacji</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
141
src/modules/launcher/Wox/Languages/pt-br.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Falha ao registrar atalho: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Não foi possível iniciar {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Formato de plugin Wox inválido</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Tornar a principal nessa consulta</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Cancelar a principal nessa consulta</system:String>
|
||||
<system:String x:Key="executeQuery">Executar consulta: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Última execução: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Abrir</system:String>
|
||||
<system:String x:Key="iconTraySettings">Configurações</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Sobre</system:String>
|
||||
<system:String x:Key="iconTrayExit">Sair</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Configurações do Wox</system:String>
|
||||
<system:String x:Key="general">Geral</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Iniciar Wox com inicialização do sistema</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Esconder Wox quando foco for perdido</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Não mostrar notificações de novas versões</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Lembrar última localização de lançamento</system:String>
|
||||
<system:String x:Key="language">Idioma</system:String>
|
||||
<system:String x:Key="lastQueryMode">Estilo da Última Consulta</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Preservar Última Consulta</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Selecionar última consulta</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Limpar última consulta</system:String>
|
||||
<system:String x:Key="maxShowResults">Máximo de resultados mostrados</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorar atalhos em tela cheia</system:String>
|
||||
<system:String x:Key="pythonDirectory">Diretório Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Atualizar Automaticamente</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Selecionar</system:String>
|
||||
<system:String x:Key="hideOnStartup">Esconder Wox na inicialização</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Encontrar mais plugins</system:String>
|
||||
<system:String x:Key="disable">Desabilitar</system:String>
|
||||
<system:String x:Key="actionKeywords">Palavras-chave de ação</system:String>
|
||||
<system:String x:Key="pluginDirectory">Diretório de Plugins</system:String>
|
||||
<system:String x:Key="author">Autor</system:String>
|
||||
<system:String x:Key="plugin_init_time">Tempo de inicialização: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Tempo de consulta: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Ver mais temas</system:String>
|
||||
<system:String x:Key="helloWox">Olá Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Fonte da caixa de Consulta</system:String>
|
||||
<system:String x:Key="resultItemFont">Fonte do Resultado</system:String>
|
||||
<system:String x:Key="windowMode">Modo Janela</system:String>
|
||||
<system:String x:Key="opacity">Opacidade</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Atalho</system:String>
|
||||
<system:String x:Key="woxHotkey">Atalho do Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Atalho de Consulta Personalizada</system:String>
|
||||
<system:String x:Key="delete">Apagar</system:String>
|
||||
<system:String x:Key="edit">Editar</system:String>
|
||||
<system:String x:Key="add">Adicionar</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Por favor selecione um item</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Tem cereza de que deseja deletar o atalho {0} do plugin?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">Proxy HTTP</system:String>
|
||||
<system:String x:Key="enableProxy">Habilitar Proxy HTTP</system:String>
|
||||
<system:String x:Key="server">Servidor HTTP</system:String>
|
||||
<system:String x:Key="port">Porta</system:String>
|
||||
<system:String x:Key="userName">Usuário</system:String>
|
||||
<system:String x:Key="password">Senha</system:String>
|
||||
<system:String x:Key="testProxy">Testar Proxy</system:String>
|
||||
<system:String x:Key="save">Salvar</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">O campo de servidor não pode ser vazio</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">O campo de porta não pode ser vazio</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Formato de porta inválido</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Configuração de proxy salva com sucesso</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy configurado corretamente</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Conexão por proxy falhou</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Sobre</system:String>
|
||||
<system:String x:Key="website">Website</system:String>
|
||||
<system:String x:Key="version">Versão</system:String>
|
||||
<system:String x:Key="about_activate_times">Você ativou o Wox {0} vezes</system:String>
|
||||
<system:String x:Key="checkUpdates">Procurar atualizações</system:String>
|
||||
<system:String x:Key="newVersionTips">A nova versão {0} está disponível, por favor reinicie o Wox.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Falha ao procurar atualizações, confira sua conexão e configuração de proxy para api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Falha ao baixar atualizações, confira sua conexão e configuração de proxy para github-cloud.s3.amazonaws.com,
|
||||
ou acesse https://github.com/Wox-launcher/Wox/releases para baixar manualmente.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Notas de Versão:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Antiga palavra-chave da ação</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nova palavra-chave da ação</system:String>
|
||||
<system:String x:Key="cancel">Cancelar</system:String>
|
||||
<system:String x:Key="done">Finalizado</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Não foi possível encontrar o plugin especificado</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">A nova palavra-chave da ação não pode ser vazia</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">A nova palavra-chave da ação já foi atribuída a outro plugin, por favor tente outra</system:String>
|
||||
<system:String x:Key="success">Sucesso</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Use * se não quiser especificar uma palavra-chave de ação</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Prévia</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Atalho indisponível, escolha outro</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Atalho de plugin inválido</system:String>
|
||||
<system:String x:Key="update">Atualizar</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Atalho indisponível</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Versão</system:String>
|
||||
<system:String x:Key="reportWindow_time">Horário</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Por favor, conte como a aplicação parou de funcionar para que possamos consertar</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Enviar Relatório</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Cancelar</system:String>
|
||||
<system:String x:Key="reportWindow_general">Geral</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Exceções</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Tipo de Exceção</system:String>
|
||||
<system:String x:Key="reportWindow_source">Fonte</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Rastreamento de pilha</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Enviando</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Relatório enviado com sucesso</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Falha ao enviar relatório</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox apresentou um erro</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">A nova versão {0} do Wox agora está disponível</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Ocorreu um erro ao tentar instalar atualizações do progama</system:String>
|
||||
<system:String x:Key="update_wox_update">Atualizar</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Cancelar</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Essa atualização reiniciará o Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Os seguintes arquivos serão atualizados</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Atualizar arquivos</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Atualizar descrição</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/ru.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Регистрация хоткея {0} не удалась</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Не удалось запустить {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Неверный формат файла wox плагина</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Отображать это окно выше всех при этом запросе</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Не отображать это окно выше всех при этом запросе</system:String>
|
||||
<system:String x:Key="executeQuery">Выполнить запрос:{0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Последний раз выполнен в:{0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Открыть</system:String>
|
||||
<system:String x:Key="iconTraySettings">Настройки</system:String>
|
||||
<system:String x:Key="iconTrayAbout">О Wox</system:String>
|
||||
<system:String x:Key="iconTrayExit">Закрыть</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Настройки Wox</system:String>
|
||||
<system:String x:Key="general">Общие</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Запускать Wox при запуске системы</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Скрывать Wox если потерян фокус</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Не отображать сообщение об обновлении когда доступна новая версия</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Запомнить последнее место запуска</system:String>
|
||||
<system:String x:Key="language">Язык</system:String>
|
||||
<system:String x:Key="maxShowResults">Максимальное количество результатов</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Игнорировать горячие клавиши, если окно в полноэкранном режиме</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python Directory</system:String>
|
||||
<system:String x:Key="autoUpdates">Auto Update</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Select</system:String>
|
||||
<system:String x:Key="hideOnStartup">Hide Wox on startup</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Плагины</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Найти больше плагинов</system:String>
|
||||
<system:String x:Key="disable">Отключить</system:String>
|
||||
<system:String x:Key="actionKeywords">Ключевое слово</system:String>
|
||||
<system:String x:Key="pluginDirectory">Папка</system:String>
|
||||
<system:String x:Key="author">Автор</system:String>
|
||||
<system:String x:Key="plugin_init_time">Инициализация: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Запрос: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Темы</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Найти больше тем</system:String>
|
||||
<system:String x:Key="helloWox">Привет Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Шрифт запросов</system:String>
|
||||
<system:String x:Key="resultItemFont">Шрифт результатов</system:String>
|
||||
<system:String x:Key="windowMode">Оконный режим</system:String>
|
||||
<system:String x:Key="opacity">Прозрачность</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Горячие клавиши</system:String>
|
||||
<system:String x:Key="woxHotkey">Горячая клавиша Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Задаваемые горячие клавиши для запросов</system:String>
|
||||
<system:String x:Key="delete">Удалить</system:String>
|
||||
<system:String x:Key="edit">Изменить</system:String>
|
||||
<system:String x:Key="add">Добавить</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Сначала выберите элемент</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Вы уверены что хотите удалить горячую клавишу для плагина {0}?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Прокси</system:String>
|
||||
<system:String x:Key="enableProxy">Включить HTTP прокси</system:String>
|
||||
<system:String x:Key="server">HTTP Сервер</system:String>
|
||||
<system:String x:Key="port">Порт</system:String>
|
||||
<system:String x:Key="userName">Логин</system:String>
|
||||
<system:String x:Key="password">Пароль</system:String>
|
||||
<system:String x:Key="testProxy">Проверить</system:String>
|
||||
<system:String x:Key="save">Сохранить</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Необходимо задать сервер</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Необходимо задать порт</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Неверный формат порта</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Прокси успешно сохранён</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Прокси сервер задан правильно</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Подключение к прокси серверу не удалось</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">О Wox</system:String>
|
||||
<system:String x:Key="website">Сайт</system:String>
|
||||
<system:String x:Key="version">Версия</system:String>
|
||||
<system:String x:Key="about_activate_times">Вы воспользовались Wox уже {0} раз</system:String>
|
||||
<system:String x:Key="checkUpdates">Check for Updates</system:String>
|
||||
<system:String x:Key="newVersionTips">New version {0} avaiable, please restart wox</system:String>
|
||||
<system:String x:Key="releaseNotes">Release Notes:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Текущая горячая клавиша</system:String>
|
||||
<system:String x:Key="newActionKeywords">Новая горячая клавиша</system:String>
|
||||
<system:String x:Key="cancel">Отменить</system:String>
|
||||
<system:String x:Key="done">Подтвердить</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Не удалось найти заданный плагин</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Новая горячая клавиша не может быть пустой</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Новая горячая клавиша уже используется другим плагином. Пожалуйста, задайте новую</system:String>
|
||||
<system:String x:Key="success">Сохранено</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Используйте * в случае, если вы не хотите задавать конкретную горячую клавишу</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Проверить</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Горячая клавиша недоступна. Пожалуйста, задайте новую</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Недействительная горячая клавиша плагина</system:String>
|
||||
<system:String x:Key="update">Изменить</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Горячая клавиша недоступна</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Версия</system:String>
|
||||
<system:String x:Key="reportWindow_time">Время</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Пожалуйста, сообщите что произошло когда произошёл сбой в приложении, чтобы мы могли его исправить</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Отправить отчёт</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Отмена</system:String>
|
||||
<system:String x:Key="reportWindow_general">Общие</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Исключения</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Тип исключения</system:String>
|
||||
<system:String x:Key="reportWindow_source">Источник</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Трессировка стека</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Отправляем</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Отчёт успешно отправлен</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Не удалось отправить отчёт</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Произошёл сбой в Wox</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Доступна новая версия Wox V{0}</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Произошла ошибка при попытке установить обновление</system:String>
|
||||
<system:String x:Key="update_wox_update">Обновить</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Отмена</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Это обновление перезапустит Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Следующие файлы будут обновлены</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Обновить файлы</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Описание обновления</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
142
src/modules/launcher/Wox/Languages/sk.xaml
Normal file
@@ -0,0 +1,142 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Nepodarilo sa registrovať klávesovú skratku {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Nepodarilo sa spustiť {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Neplatný formát súboru pre plugin Wox</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Pri tomto dopyte umiestniť navrchu</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Zrušiť umiestnenie navrchu pri tomto dopyte</system:String>
|
||||
<system:String x:Key="executeQuery">Spustiť dopyt: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Posledný čas realizácie: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Otvoriť</system:String>
|
||||
<system:String x:Key="iconTraySettings">Nastavenia</system:String>
|
||||
<system:String x:Key="iconTrayAbout">O aplikácii</system:String>
|
||||
<system:String x:Key="iconTrayExit">Ukončiť</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Nastavenia Wox</system:String>
|
||||
<system:String x:Key="general">Všeobecné</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Spustiť Wox po štarte systému</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Schovať Wox po strate fokusu</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Nezobrazovať upozornenia na novú verziu</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Zapamätať si posledné umiestnenie</system:String>
|
||||
<system:String x:Key="language">Jazyk</system:String>
|
||||
<system:String x:Key="lastQueryMode">Posledný dopyt</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Ponechať</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Označiť posledný dopyt</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Prázdne</system:String>
|
||||
<system:String x:Key="maxShowResults">Max. výsledkov</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorovať klávesové skraty v režime na celú obrazovku</system:String>
|
||||
<system:String x:Key="pythonDirectory">Priečinok s Pythonom</system:String>
|
||||
<system:String x:Key="autoUpdates">Automatická aktualizácia</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Vybrať</system:String>
|
||||
<system:String x:Key="hideOnStartup">Schovať Wox po spustení</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Schovať ikonu v oblasti oznámení</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Nájsť ďalšie pluginy</system:String>
|
||||
<system:String x:Key="disable">Zakázať</system:String>
|
||||
<system:String x:Key="actionKeywords">Skratka akcie</system:String>
|
||||
<system:String x:Key="pluginDirectory">Priečinok s pluginmy</system:String>
|
||||
<system:String x:Key="author">Autor</system:String>
|
||||
<system:String x:Key="plugin_init_time">Čas inic.: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Čas dopytu: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Motív</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Prehliadať viac motívov</system:String>
|
||||
<system:String x:Key="helloWox">Ahoj Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Písmo poľa pre dopyt</system:String>
|
||||
<system:String x:Key="resultItemFont">Písmo výsledkov</system:String>
|
||||
<system:String x:Key="windowMode">Režim okno</system:String>
|
||||
<system:String x:Key="opacity">Nepriehľadnosť</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Klávesová skratka</system:String>
|
||||
<system:String x:Key="woxHotkey">Klávesová skratka pre Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Vlastná klávesová skratka pre dopyt</system:String>
|
||||
<system:String x:Key="delete">Odstrániť</system:String>
|
||||
<system:String x:Key="edit">Upraviť</system:String>
|
||||
<system:String x:Key="add">Pridať</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Vyberte položku, prosím</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Ste si istý, že chcete odstrániť klávesovú skratku {0} pre plugin?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Povoliť HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Používateľské meno</system:String>
|
||||
<system:String x:Key="password">Heslo</system:String>
|
||||
<system:String x:Key="testProxy">Test Proxy</system:String>
|
||||
<system:String x:Key="save">Uložiť</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Pole Server nemôže byť prázdne</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Pole Port nemôže byť prázdne</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Neplatný formát portu</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Nastavenie proxy úspešne uložené</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Nastavenie proxy je v poriadku</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Pripojenie proxy zlyhalo</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">O aplikácii</system:String>
|
||||
<system:String x:Key="website">Webstránka</system:String>
|
||||
<system:String x:Key="version">Verzia</system:String>
|
||||
<system:String x:Key="about_activate_times">Wox bol aktivovaný {0}-krát</system:String>
|
||||
<system:String x:Key="checkUpdates">Skontrolovať aktualizácie</system:String>
|
||||
<system:String x:Key="newVersionTips">Je dostupná nová verzia {0}, prosím, reštartujte Wox.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Kontrola aktualizácií zlyhala, prosím, skontrolujte pripojenie na internet a nastavenie proxy k api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Sťahovanie aktualizácií zlyhalo, skontrolujte pripojenie na internet a nastavenie proxy k github-cloud.s3.amazonaws.com,
|
||||
alebo prejdite na https://github.com/Wox-launcher/Wox/releases pre manuálne stiahnutie aktualizácií.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Poznámky k vydaniu:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Stará skratka akcie</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nová skratka akcie</system:String>
|
||||
<system:String x:Key="cancel">Zrušiť</system:String>
|
||||
<system:String x:Key="done">Hotovo</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Nepodarilo sa nájsť zadaný plugin</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Nová skratka pre akciu nemôže byť prázdna</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Nová skratka pre akciu bola priradená pre iný plugin, prosím, zvoľte inú skratku</system:String>
|
||||
<system:String x:Key="success">Úspešné</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Použite * ak nechcete určiť skratku pre akciu</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Náhľad</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Klávesová skratka je nedostupná, prosím, zadajte novú</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Neplatná klávesová skratka pluginu</system:String>
|
||||
<system:String x:Key="update">Aktualizovať</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Klávesová skratka nedostupná</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Verzia</system:String>
|
||||
<system:String x:Key="reportWindow_time">Čas</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Prosím, napíšte nám, ako došlo k pádu aplikácie, aby sme to mohli opraviť</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Odoslať hlásenie</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Zrušiť</system:String>
|
||||
<system:String x:Key="reportWindow_general">Všeobecné</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Výnimky</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Typ výnimky</system:String>
|
||||
<system:String x:Key="reportWindow_source">Zdroj</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Odosiela sa</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Hlásenie bolo úspešne odoslané</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Odoslanie hlásenia zlyhalo</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox zaznamenal chybu</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Je dostupné nové vydanie Wox {0}</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Počas inštalácie aktualizácií došlo k chybe</system:String>
|
||||
<system:String x:Key="update_wox_update">Aktualizovať</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Zrušiť</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Tento upgrade reštartuje Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Nasledujúce súbory budú aktualizované</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Aktualizovať súbory</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Aktualizovať popis</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
141
src/modules/launcher/Wox/Languages/sr.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Neuspešno registrovana prečica: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Neuspešno pokretanje {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Nepravilni Wox plugin format datoteke</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Postavi kao najviši u ovom upitu</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Poništi najviši u ovom upitu</system:String>
|
||||
<system:String x:Key="executeQuery">Izvrši upit: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Vreme poslednjeg izvršenja: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Otvori</system:String>
|
||||
<system:String x:Key="iconTraySettings">Podešavanja</system:String>
|
||||
<system:String x:Key="iconTrayAbout">O Wox-u</system:String>
|
||||
<system:String x:Key="iconTrayExit">Izlaz</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox Podešavanja</system:String>
|
||||
<system:String x:Key="general">Opšte</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Pokreni Wox pri podizanju sistema</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Sakri Wox kada se izgubi fokus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Ne prikazuj obaveštenje o novoj verziji</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Zapamti lokaciju poslednjeg pokretanja</system:String>
|
||||
<system:String x:Key="language">Jezik</system:String>
|
||||
<system:String x:Key="lastQueryMode">Stil Poslednjeg upita</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Sačuvaj poslednji Upit</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Selektuj poslednji Upit</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Isprazni poslednji Upit</system:String>
|
||||
<system:String x:Key="maxShowResults">Maksimum prikazanih rezultata</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignoriši prečice u fullscreen režimu</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python direktorijum</system:String>
|
||||
<system:String x:Key="autoUpdates">Auto ažuriranje</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Izaberi</system:String>
|
||||
<system:String x:Key="hideOnStartup">Sakrij Wox pri podizanju sistema</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Nađi još plugin-a</system:String>
|
||||
<system:String x:Key="disable">Onemogući</system:String>
|
||||
<system:String x:Key="actionKeywords">Ključne reči</system:String>
|
||||
<system:String x:Key="pluginDirectory">Plugin direktorijum</system:String>
|
||||
<system:String x:Key="author">Autor</system:String>
|
||||
<system:String x:Key="plugin_init_time">Vreme inicijalizacije: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Vreme upita: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Pretražite još tema</system:String>
|
||||
<system:String x:Key="helloWox">Zdravo Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Font upita</system:String>
|
||||
<system:String x:Key="resultItemFont">Font rezultata</system:String>
|
||||
<system:String x:Key="windowMode">Režim prozora</system:String>
|
||||
<system:String x:Key="opacity">Neprozirnost</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Prečica</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox prečica</system:String>
|
||||
<system:String x:Key="customQueryHotkey">prečica za ručno dodat upit</system:String>
|
||||
<system:String x:Key="delete">Obriši</system:String>
|
||||
<system:String x:Key="edit">Izmeni</system:String>
|
||||
<system:String x:Key="add">Dodaj</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Molim Vas izaberite stavku</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Da li ste sigurni da želite da obrišete prečicu za {0} plugin?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP proksi</system:String>
|
||||
<system:String x:Key="enableProxy">Uključi HTTP proksi</system:String>
|
||||
<system:String x:Key="server">HTTP Server</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Korisničko ime</system:String>
|
||||
<system:String x:Key="password">Šifra</system:String>
|
||||
<system:String x:Key="testProxy">Test proksi</system:String>
|
||||
<system:String x:Key="save">Sačuvaj</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Polje za server ne može da bude prazno</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Polje za port ne može da bude prazno</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Nepravilan format porta</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Podešavanja proksija uspešno sačuvana</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proksi uspešno podešen</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Veza sa proksijem neuspešna</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">O Wox-u</system:String>
|
||||
<system:String x:Key="website">Veb sajt</system:String>
|
||||
<system:String x:Key="version">Verzija</system:String>
|
||||
<system:String x:Key="about_activate_times">Aktivirali ste Wox {0} puta</system:String>
|
||||
<system:String x:Key="checkUpdates">Proveri ažuriranja</system:String>
|
||||
<system:String x:Key="newVersionTips">Nove verzija {0} je dostupna, molim Vas ponovo pokrenite Wox.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Neuspešna provera ažuriranja, molim Vas proverite vašu vezu i podešavanja za proksi prema api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Neuspešno preuzimanje ažuriranja, molim Vas proverite vašu vezu i podešavanja za proksi prema github-cloud.s3.amazonaws.com,
|
||||
ili posetite https://github.com/Wox-launcher/Wox/releases da preuzmete ažuriranja ručno.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">U novoj verziji:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Prečica za staru radnju</system:String>
|
||||
<system:String x:Key="newActionKeywords">Prečica za novu radnju</system:String>
|
||||
<system:String x:Key="cancel">Otkaži</system:String>
|
||||
<system:String x:Key="done">Gotovo</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Navedeni plugin nije moguće pronaći</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Prečica za novu radnju ne može da bude prazna</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Prečica za novu radnju je dodeljena drugom plugin-u, molim Vas dodelite drugu prečicu</system:String>
|
||||
<system:String x:Key="success">Uspešno</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Koristite * ako ne želite da navedete prečicu za radnju</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Pregled</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Prečica je nedustupna, molim Vas izaberite drugu prečicu</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Nepravlna prečica za plugin</system:String>
|
||||
<system:String x:Key="update">Ažuriraj</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Prečica nedostupna</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Verzija</system:String>
|
||||
<system:String x:Key="reportWindow_time">Vreme</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Molimo Vas recite nam kako je aplikacija prestala sa radom, da bi smo je ispravili</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Pošalji izveštaj</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Otkaži</system:String>
|
||||
<system:String x:Key="reportWindow_general">Opšte</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Izuzetak</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Tipovi Izuzetaka</system:String>
|
||||
<system:String x:Key="reportWindow_source">Izvor</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Stack Trace</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Slanje</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Izveštaj uspešno poslat</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Izveštaj neuspešno poslat</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox je dobio grešku</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Nova verzija Wox-a {0} je dostupna</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Došlo je do greške prilokom instalacije ažuriranja</system:String>
|
||||
<system:String x:Key="update_wox_update">Ažuriraj</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Otkaži</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Ova nadogradnja će ponovo pokrenuti Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Sledeće datoteke će biti ažurirane</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Ažuriraj datoteke</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Opis ažuriranja</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
145
src/modules/launcher/Wox/Languages/tr.xaml
Normal file
@@ -0,0 +1,145 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Kısayol tuşu ataması başarısız oldu: {0}</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">{0} başlatılamıyor</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Geçersiz Wox eklenti dosyası formatı</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Bu sorgu için başa sabitle</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Sabitlemeyi kaldır</system:String>
|
||||
<system:String x:Key="executeQuery">Sorguyu çalıştır: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Son çalıştırma zamanı: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Aç</system:String>
|
||||
<system:String x:Key="iconTraySettings">Ayarlar</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Hakkında</system:String>
|
||||
<system:String x:Key="iconTrayExit">Çıkış</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Wox Ayarları</system:String>
|
||||
<system:String x:Key="general">Genel</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Wox'u başlangıçta başlat</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Odak pencereden ayrıldığında Wox'u gizle</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Güncelleme bildirimlerini gösterme</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Pencere konumunu hatırla</system:String>
|
||||
<system:String x:Key="language">Dil</system:String>
|
||||
<system:String x:Key="lastQueryMode">Pencere açıldığında</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Son sorguyu sakla</system:String>
|
||||
<system:String x:Key="LastQuerySelected">Son sorguyu sakla ve tümünü seç</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Sorgu kutusunu temizle</system:String>
|
||||
<system:String x:Key="maxShowResults">Maksimum sonuç sayısı</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Tam ekran modunda kısayol tuşunu gözardı et</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python Konumu</system:String>
|
||||
<system:String x:Key="autoUpdates">Otomatik Güncelle</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Seç</system:String>
|
||||
<system:String x:Key="hideOnStartup">Başlangıçta Wox'u gizle</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Sistem çekmecesi simgesini gizle</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Sorgu Arama Hassasiyeti</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Eklentiler</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Daha fazla eklenti bul</system:String>
|
||||
<system:String x:Key="disable">Devre Dışı</system:String>
|
||||
<system:String x:Key="actionKeywords">Anahtar Kelimeler</system:String>
|
||||
<system:String x:Key="pluginDirectory">Eklenti Klasörü</system:String>
|
||||
<system:String x:Key="author">Yapımcı</system:String>
|
||||
<system:String x:Key="plugin_init_time">Açılış Süresi: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Sorgu Süresi: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Temalar</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Daha fazla tema bul</system:String>
|
||||
<system:String x:Key="helloWox">Merhaba Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Pencere Yazı Tipi</system:String>
|
||||
<system:String x:Key="resultItemFont">Sonuç Yazı Tipi</system:String>
|
||||
<system:String x:Key="windowMode">Pencere Modu</system:String>
|
||||
<system:String x:Key="opacity">Saydamlık</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">{0} isimli tema bulunamadı, varsayılan temaya dönülüyor.</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">{0} isimli tema yüklenirken hata oluştu, varsayılan temaya dönülüyor.</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Kısayol Tuşu</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox Kısayolu</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Özel Sorgu Kısayolları</system:String>
|
||||
<system:String x:Key="delete">Sil</system:String>
|
||||
<system:String x:Key="edit">Düzenle</system:String>
|
||||
<system:String x:Key="add">Ekle</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Lütfen bir öğe seçin</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">{0} eklentisi için olan kısayolu silmek istediğinize emin misiniz?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">Vekil Sunucu</system:String>
|
||||
<system:String x:Key="enableProxy">HTTP vekil sunucuyu etkinleştir.</system:String>
|
||||
<system:String x:Key="server">Sunucu Adresi</system:String>
|
||||
<system:String x:Key="port">Port</system:String>
|
||||
<system:String x:Key="userName">Kullanıcı Adı</system:String>
|
||||
<system:String x:Key="password">Parola</system:String>
|
||||
<system:String x:Key="testProxy">Ayarları Sına</system:String>
|
||||
<system:String x:Key="save">Kaydet</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Sunucu adresi boş olamaz</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Port boş olamaz</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Port biçimi geçersiz</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Vekil sunucu ayarları başarıyla kaydedildi</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Vekil sunucu doğru olarak ayarlandı</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Vekil sunucuya bağlanılırken hata oluştu</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Hakkında</system:String>
|
||||
<system:String x:Key="website">Web Sitesi</system:String>
|
||||
<system:String x:Key="version">Sürüm</system:String>
|
||||
<system:String x:Key="about_activate_times">Şu ana kadar Wox'u {0} kez aktifleştirdiniz.</system:String>
|
||||
<system:String x:Key="checkUpdates">Güncellemeleri Kontrol Et</system:String>
|
||||
<system:String x:Key="newVersionTips">Uygulamanın yeni sürümü ({0}) mevcut, Lütfen Wox'u yeniden başlatın.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Güncelleme kontrolü başarısız oldu. Lütfen bağlantınız ve vekil sunucu ayarlarınızın api.github.com adresine ulaşabilir olduğunu kontrol edin.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Güncellemenin yüklenmesi başarısız oldu. Lütfen bağlantınız ve vekil sunucu ayarlarınızın github-cloud.s3.amazonaws.com
|
||||
adresine ulaşabilir olduğunu kontrol edin ya da https://github.com/Wox-launcher/Wox/releases adresinden güncellemeyi elle indirin.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Sürüm Notları:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Eski Anahtar Kelime</system:String>
|
||||
<system:String x:Key="newActionKeywords">Yeni Anahtar Kelime</system:String>
|
||||
<system:String x:Key="cancel">İptal</system:String>
|
||||
<system:String x:Key="done">Tamam</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Belirtilen eklenti bulunamadı</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Yeni anahtar kelime boş olamaz</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Yeni anahtar kelime başka bir eklentiye atanmış durumda. Lütfen başka bir anahtar kelime seçin</system:String>
|
||||
<system:String x:Key="success">Başarılı</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Anahtar kelime belirlemek istemiyorsanız * kullanın</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Önizleme</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Kısayol tuşu kullanılabilir değil, lütfen başka bir kısayol tuşu seçin</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Geçersiz eklenti kısayol tuşu</system:String>
|
||||
<system:String x:Key="update">Güncelle</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Kısayol tuşu kullanılabilir değil</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Sürüm</system:String>
|
||||
<system:String x:Key="reportWindow_time">Tarih</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Sorunu çözebilmemiz için lütfen uygulamanın ne yaparken çöktüğünü belirtin.</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Raporu Gönder</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">İptal</system:String>
|
||||
<system:String x:Key="reportWindow_general">Genel</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Özel Durumlar</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Özel Durum Tipi</system:String>
|
||||
<system:String x:Key="reportWindow_source">Kaynak</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Yığın İzleme</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Gönderiliyor</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Hata raporu başarıyla gönderildi</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Hata raporu gönderimi başarısız oldu</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox'ta bir hata oluştu</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Wox'un yeni bir sürümü ({0}) mevcut</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Güncellemelerin kurulması sırasında bir hata oluştu</system:String>
|
||||
<system:String x:Key="update_wox_update">Güncelle</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">İptal</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Bu güncelleme Wox'u yeniden başlatacaktır</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Aşağıdaki dosyalar güncelleştirilecektir</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Güncellenecek dosyalar</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Güncelleme açıklaması</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/uk-UA.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--MainWindow-->
|
||||
<system:String x:Key="registerHotkeyFailed">Реєстрація хоткея {0} не вдалася</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Не вдалося запустити {0}</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">Невірний формат файлу плагіна Wox</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Відображати першим при такому ж запиті</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Відмінити відображення першим при такому ж запиті</system:String>
|
||||
<system:String x:Key="executeQuery">Виконати запит: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Час останнього використання: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Відкрити</system:String>
|
||||
<system:String x:Key="iconTraySettings">Налаштування</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Про Wox</system:String>
|
||||
<system:String x:Key="iconTrayExit">Закрити</system:String>
|
||||
|
||||
<!--Setting General-->
|
||||
<system:String x:Key="wox_settings">Налаштування Wox</system:String>
|
||||
<system:String x:Key="general">Основні</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">Запускати Wox при запуску системи</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">Сховати Wox якщо втрачено фокус</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Не повідомляти про доступні нові версії</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Запам'ятати останнє місце запуску</system:String>
|
||||
<system:String x:Key="language">Мова</system:String>
|
||||
<system:String x:Key="maxShowResults">Максимальна кількість результатів</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ігнорувати гарячі клавіші в повноекранному режимі</system:String>
|
||||
<system:String x:Key="pythonDirectory">Директорія Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Автоматичне оновлення</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Вибрати</system:String>
|
||||
<system:String x:Key="hideOnStartup">Сховати Wox при запуску системи</system:String>
|
||||
|
||||
<!--Setting Plugin-->
|
||||
<system:String x:Key="plugin">Плагіни</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Знайти більше плагінів</system:String>
|
||||
<system:String x:Key="disable">Відключити</system:String>
|
||||
<system:String x:Key="actionKeywords">Ключове слово</system:String>
|
||||
<system:String x:Key="pluginDirectory">Директорія плагіну</system:String>
|
||||
<system:String x:Key="author">Автор</system:String>
|
||||
<system:String x:Key="plugin_init_time">Ініціалізація: {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">Запит: {0}ms</system:String>
|
||||
|
||||
<!--Setting Theme-->
|
||||
<system:String x:Key="theme">Теми</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Знайти більше тем</system:String>
|
||||
<system:String x:Key="helloWox">Привіт Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">Шрифт запитів</system:String>
|
||||
<system:String x:Key="resultItemFont">Шрифт результатів</system:String>
|
||||
<system:String x:Key="windowMode">Віконний режим</system:String>
|
||||
<system:String x:Key="opacity">Прозорість</system:String>
|
||||
|
||||
<!--Setting Hotkey-->
|
||||
<system:String x:Key="hotkey">Гарячі клавіші</system:String>
|
||||
<system:String x:Key="woxHotkey">Гаряча клавіша Wox</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Задані гарячі клавіші для запитів</system:String>
|
||||
<system:String x:Key="delete">Видалити</system:String>
|
||||
<system:String x:Key="edit">Змінити</system:String>
|
||||
<system:String x:Key="add">Додати</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">Спочатку виберіть елемент</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">Ви впевнені, що хочете видалити гарячу клавішу ({0}) плагіну?</system:String>
|
||||
|
||||
<!--Setting Proxy-->
|
||||
<system:String x:Key="proxy">HTTP Proxy</system:String>
|
||||
<system:String x:Key="enableProxy">Включити HTTP Proxy</system:String>
|
||||
<system:String x:Key="server">HTTP Сервер</system:String>
|
||||
<system:String x:Key="port">Порт</system:String>
|
||||
<system:String x:Key="userName">Логін</system:String>
|
||||
<system:String x:Key="password">Пароль</system:String>
|
||||
<system:String x:Key="testProxy">Перевірити Proxy</system:String>
|
||||
<system:String x:Key="save">Зберегти</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">Необхідно вказати "HTTP Сервер"</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Необхідно вказати "Порт"</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Невірний формат порту</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Налаштування Proxy успішно збережено</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy успішно налаштований</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Невдале підключення Proxy</system:String>
|
||||
|
||||
<!--Setting About-->
|
||||
<system:String x:Key="about">Про Wox</system:String>
|
||||
<system:String x:Key="website">Сайт</system:String>
|
||||
<system:String x:Key="version">Версия</system:String>
|
||||
<system:String x:Key="about_activate_times">Ви скористалися Wox вже {0} разів</system:String>
|
||||
<system:String x:Key="checkUpdates">Перевірити наявність оновлень</system:String>
|
||||
<system:String x:Key="newVersionTips">Доступна нова версія {0}, будь ласка, перезавантажте Wox</system:String>
|
||||
<system:String x:Key="releaseNotes">Примітки до поточного релізу:</system:String>
|
||||
|
||||
<!--Action Keyword Setting Dialog-->
|
||||
<system:String x:Key="oldActionKeywords">Поточна гаряча клавіша</system:String>
|
||||
<system:String x:Key="newActionKeywords">Нова гаряча клавіша</system:String>
|
||||
<system:String x:Key="cancel">Скасувати</system:String>
|
||||
<system:String x:Key="done">Готово</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">Не вдалося знайти вказаний плагін</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">Нова гаряча клавіша не може бути порожньою</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Нова гаряча клавіша вже використовується іншим плагіном. Будь ласка, вкажіть нову</system:String>
|
||||
<system:String x:Key="success">Збережено</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Використовуйте * у разі, якщо ви не хочете ставити конкретну гарячу клавішу</system:String>
|
||||
|
||||
<!--Custom Query Hotkey Dialog-->
|
||||
<system:String x:Key="preview">Перевірити</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">Гаряча клавіша недоступна. Будь ласка, вкажіть нову</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">Недійсна гаряча клавіша плагіна</system:String>
|
||||
<system:String x:Key="update">Оновити</system:String>
|
||||
|
||||
<!--Hotkey Control-->
|
||||
<system:String x:Key="hotkeyUnavailable">Гаряча клавіша недоступна</system:String>
|
||||
|
||||
<!--Crash Reporter-->
|
||||
<system:String x:Key="reportWindow_version">Версія</system:String>
|
||||
<system:String x:Key="reportWindow_time">Час</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Будь ласка, розкажіть нам, як додаток вийшов із ладу, щоб ми могли це виправити</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Надіслати звіт</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Скасувати</system:String>
|
||||
<system:String x:Key="reportWindow_general">Основне</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Винятки</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Тип винятку</system:String>
|
||||
<system:String x:Key="reportWindow_source">Джерело</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Траса стеку</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Відправити</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Звіт успішно відправлено</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">Не вдалося відправити звіт</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Стався збій в додатоку Wox</system:String>
|
||||
|
||||
<!--update-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">Доступна нова версія Wox V{0}</system:String>
|
||||
<system:String x:Key="update_wox_update_error">Сталася помилка під час спроби встановити оновлення</system:String>
|
||||
<system:String x:Key="update_wox_update">Оновити</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">Скасувати</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">Це оновлення перезавантажить Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">Ці файли будуть оновлені</system:String>
|
||||
<system:String x:Key="update_wox_update_files">Оновити файли</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">Опис оновлення</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
139
src/modules/launcher/Wox/Languages/zh-cn.xaml
Normal file
@@ -0,0 +1,139 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--主窗体-->
|
||||
<system:String x:Key="registerHotkeyFailed">注册热键:{0} 失败</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">启动命令 {0} 失败</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">不是合法的Wox插件格式</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">在当前查询中置顶</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">取消置顶</system:String>
|
||||
<system:String x:Key="executeQuery">执行查询:{0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">上次执行时间:{0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">打开</system:String>
|
||||
<system:String x:Key="iconTraySettings">设置</system:String>
|
||||
<system:String x:Key="iconTrayAbout">关于</system:String>
|
||||
<system:String x:Key="iconTrayExit">退出</system:String>
|
||||
|
||||
<!--设置,通用-->
|
||||
<system:String x:Key="wox_settings">Wox设置</system:String>
|
||||
<system:String x:Key="general">通用</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">开机启动</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">失去焦点时自动隐藏Wox</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">不显示新版本提示</system:String>
|
||||
<system:String x:Key="rememberLastLocation">记住上次启动位置</system:String>
|
||||
<system:String x:Key="language">语言</system:String>
|
||||
<system:String x:Key="lastQueryMode">上次搜索关键字模式</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">保留上次搜索关键字</system:String>
|
||||
<system:String x:Key="LastQuerySelected">全选上次搜索关键字</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">清空上次搜索关键字</system:String>
|
||||
<system:String x:Key="maxShowResults">最大结果显示个数</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全屏模式下忽略热键</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python 路径</system:String>
|
||||
<system:String x:Key="autoUpdates">自动更新</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Select</system:String>
|
||||
<system:String x:Key="hideOnStartup">启动时不显示主窗口</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">隐藏任务栏图标</system:String>
|
||||
|
||||
<!--设置,插件-->
|
||||
<system:String x:Key="plugin">插件</system:String>
|
||||
<system:String x:Key="browserMorePlugins">浏览更多插件</system:String>
|
||||
<system:String x:Key="disable">禁用</system:String>
|
||||
<system:String x:Key="actionKeywords">触发关键字</system:String>
|
||||
<system:String x:Key="pluginDirectory">插件目录</system:String>
|
||||
<system:String x:Key="author">作者</system:String>
|
||||
<system:String x:Key="plugin_init_time">加载耗时 {0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">查询耗时 {0}ms</system:String>
|
||||
|
||||
<!--设置,主题-->
|
||||
<system:String x:Key="theme">主题</system:String>
|
||||
<system:String x:Key="browserMoreThemes">浏览更多主题</system:String>
|
||||
<system:String x:Key="helloWox">你好,Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">查询框字体</system:String>
|
||||
<system:String x:Key="resultItemFont">结果项字体</system:String>
|
||||
<system:String x:Key="windowMode">窗口模式</system:String>
|
||||
<system:String x:Key="opacity">透明度</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">无法找到主题 {0} ,切换为默认主题</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">无法加载主题 {0} ,切换为默认主题</system:String>
|
||||
|
||||
<!--设置,热键-->
|
||||
<system:String x:Key="hotkey">热键</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox激活热键</system:String>
|
||||
<system:String x:Key="customQueryHotkey">自定义查询热键</system:String>
|
||||
<system:String x:Key="delete">删除</system:String>
|
||||
<system:String x:Key="edit">编辑</system:String>
|
||||
<system:String x:Key="add">增加</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">请选择一项</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">你确定要删除插件 {0} 的热键吗?</system:String>
|
||||
|
||||
<!--设置,代理-->
|
||||
<system:String x:Key="proxy">HTTP 代理</system:String>
|
||||
<system:String x:Key="enableProxy">启用 HTTP 代理</system:String>
|
||||
<system:String x:Key="server">HTTP 服务器</system:String>
|
||||
<system:String x:Key="port">端口</system:String>
|
||||
<system:String x:Key="userName">用户名</system:String>
|
||||
<system:String x:Key="password">密码</system:String>
|
||||
<system:String x:Key="testProxy">测试代理</system:String>
|
||||
<system:String x:Key="save">保存</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">服务器不能为空</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">端口不能为空</system:String>
|
||||
<system:String x:Key="invalidPortFormat">非法的端口格式</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">保存代理设置成功</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">代理设置正确</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">代理连接失败</system:String>
|
||||
|
||||
<!--设置 关于-->
|
||||
<system:String x:Key="about">关于</system:String>
|
||||
<system:String x:Key="website">网站</system:String>
|
||||
<system:String x:Key="version">版本</system:String>
|
||||
<system:String x:Key="about_activate_times">你已经激活了Wox {0} 次</system:String>
|
||||
<system:String x:Key="checkUpdates">检查更新</system:String>
|
||||
<system:String x:Key="newVersionTips">发现新版本 {0} , 请重启 wox。</system:String>
|
||||
<system:String x:Key="releaseNotes">更新说明:</system:String>
|
||||
|
||||
<!--Action Keyword 设置对话框-->
|
||||
<system:String x:Key="oldActionKeywords">旧触发关键字</system:String>
|
||||
<system:String x:Key="newActionKeywords">新触发关键字</system:String>
|
||||
<system:String x:Key="cancel">取消</system:String>
|
||||
<system:String x:Key="done">确定</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">找不到指定的插件</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">新触发关键字不能为空</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">新触发关键字已经被指派给其他插件了,请重新选择一个关键字</system:String>
|
||||
<system:String x:Key="success">成功</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">如果你不想设置触发关键字,可以使用*代替</system:String>
|
||||
|
||||
<!--Custom Query Hotkey 对话框-->
|
||||
<system:String x:Key="preview">预览</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">热键不可用,请选择一个新的热键</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">插件热键不合法</system:String>
|
||||
<system:String x:Key="update">更新</system:String>
|
||||
|
||||
<!--Hotkey 控件-->
|
||||
<system:String x:Key="hotkeyUnavailable">热键不可用</system:String>
|
||||
|
||||
<!--崩溃报告窗体-->
|
||||
<system:String x:Key="reportWindow_version">版本</system:String>
|
||||
<system:String x:Key="reportWindow_time">时间</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">请告诉我们如何重现此问题,以便我们进行修复</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">发送报告</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">取消</system:String>
|
||||
<system:String x:Key="reportWindow_general">基本信息</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">异常信息</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">异常类型</system:String>
|
||||
<system:String x:Key="reportWindow_source">异常源</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">堆栈信息</system:String>
|
||||
<system:String x:Key="reportWindow_sending">发送中</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">发送成功</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">发送失败</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox出错啦</system:String>
|
||||
|
||||
<!--更新-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">发现Wox新版本 V{0}</system:String>
|
||||
<system:String x:Key="update_wox_update_error">更新Wox出错</system:String>
|
||||
<system:String x:Key="update_wox_update">更新</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">取消</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">此更新需要重启Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">下列文件会被更新</system:String>
|
||||
<system:String x:Key="update_wox_update_files">更新文件</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">更新日志</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
132
src/modules/launcher/Wox/Languages/zh-tw.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!--主視窗-->
|
||||
<system:String x:Key="registerHotkeyFailed">登錄快速鍵:{0} 失敗</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">啟動命令 {0} 失敗</system:String>
|
||||
<system:String x:Key="invalidWoxPluginFileFormat">無效的 Wox 外掛格式</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">在目前查詢中置頂</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">取消置頂</system:String>
|
||||
<system:String x:Key="executeQuery">執行查詢:{0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">上次執行時間:{0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">開啟</system:String>
|
||||
<system:String x:Key="iconTraySettings">設定</system:String>
|
||||
<system:String x:Key="iconTrayAbout">關於</system:String>
|
||||
<system:String x:Key="iconTrayExit">結束</system:String>
|
||||
|
||||
<!--設定,一般-->
|
||||
<system:String x:Key="wox_settings">Wox 設定</system:String>
|
||||
<system:String x:Key="general">一般</system:String>
|
||||
<system:String x:Key="startWoxOnSystemStartup">開機時啟動</system:String>
|
||||
<system:String x:Key="hideWoxWhenLoseFocus">失去焦點時自動隱藏 Wox</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">不顯示新版本提示</system:String>
|
||||
<system:String x:Key="rememberLastLocation">記住上次啟動位置</system:String>
|
||||
<system:String x:Key="language">語言</system:String>
|
||||
<system:String x:Key="maxShowResults">最大結果顯示個數</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全螢幕模式下忽略熱鍵</system:String>
|
||||
<system:String x:Key="pythonDirectory">Python 路徑</system:String>
|
||||
<system:String x:Key="autoUpdates">自動更新</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">選擇</system:String>
|
||||
<system:String x:Key="hideOnStartup">啟動時不顯示主視窗</system:String>
|
||||
|
||||
<!--設置,外掛-->
|
||||
<system:String x:Key="plugin">外掛</system:String>
|
||||
<system:String x:Key="browserMorePlugins">瀏覽更多外掛</system:String>
|
||||
<system:String x:Key="disable">停用</system:String>
|
||||
<system:String x:Key="actionKeywords">觸發關鍵字</system:String>
|
||||
<system:String x:Key="pluginDirectory">外掛資料夾</system:String>
|
||||
<system:String x:Key="author">作者</system:String>
|
||||
<system:String x:Key="plugin_init_time">載入耗時:{0}ms</system:String>
|
||||
<system:String x:Key="plugin_query_time">查詢耗時:{0}ms</system:String>
|
||||
|
||||
<!--設定,主題-->
|
||||
<system:String x:Key="theme">主題</system:String>
|
||||
<system:String x:Key="browserMoreThemes">瀏覽更多主題</system:String>
|
||||
<system:String x:Key="helloWox">你好,Wox</system:String>
|
||||
<system:String x:Key="queryBoxFont">查詢框字體</system:String>
|
||||
<system:String x:Key="resultItemFont">結果項字體</system:String>
|
||||
<system:String x:Key="windowMode">視窗模式</system:String>
|
||||
<system:String x:Key="opacity">透明度</system:String>
|
||||
|
||||
<!--設置,熱鍵-->
|
||||
<system:String x:Key="hotkey">熱鍵</system:String>
|
||||
<system:String x:Key="woxHotkey">Wox 執行熱鍵</system:String>
|
||||
<system:String x:Key="customQueryHotkey">自定義熱鍵查詢</system:String>
|
||||
<system:String x:Key="delete">刪除</system:String>
|
||||
<system:String x:Key="edit">編輯</system:String>
|
||||
<system:String x:Key="add">新增</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">請選擇一項</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">確定要刪除外掛 {0} 的熱鍵嗎?</system:String>
|
||||
|
||||
<!--設置,代理-->
|
||||
<system:String x:Key="proxy">HTTP 代理</system:String>
|
||||
<system:String x:Key="enableProxy">啟用 HTTP 代理</system:String>
|
||||
<system:String x:Key="server">HTTP 伺服器</system:String>
|
||||
<system:String x:Key="Port">Port</system:String>
|
||||
<system:String x:Key="userName">使用者</system:String>
|
||||
<system:String x:Key="password">密碼</system:String>
|
||||
<system:String x:Key="testProxy">測試代理</system:String>
|
||||
<system:String x:Key="save">儲存</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">伺服器不能為空</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">Port 不能為空</system:String>
|
||||
<system:String x:Key="invalidPortFormat">不正確的 Port 格式</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">儲存代理設定成功</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">代理設定完成</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">代理連線失敗</system:String>
|
||||
|
||||
<!--設定,關於-->
|
||||
<system:String x:Key="about">關於</system:String>
|
||||
<system:String x:Key="website">網站</system:String>
|
||||
<system:String x:Key="version">版本</system:String>
|
||||
<system:String x:Key="about_activate_times">您已經啟動了 Wox {0} 次</system:String>
|
||||
<system:String x:Key="checkUpdates">檢查更新</system:String>
|
||||
<system:String x:Key="newVersionTips">發現有新版本 {0}, 請重新啟動 Wox。</system:String>
|
||||
<system:String x:Key="releaseNotes">更新說明:</system:String>
|
||||
|
||||
<!--Action Keyword 設定對話框-->
|
||||
<system:String x:Key="oldActionKeywords">舊觸發關鍵字</system:String>
|
||||
<system:String x:Key="newActionKeywords">新觸發關鍵字</system:String>
|
||||
<system:String x:Key="cancel">取消</system:String>
|
||||
<system:String x:Key="done">確定</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">找不到指定的外掛</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">新觸發關鍵字不能為空白</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">新觸發關鍵字已經被指派給另一外掛,請設定其他關鍵字。</system:String>
|
||||
<system:String x:Key="success">成功</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">如果不想設定觸發關鍵字,可以使用*代替</system:String>
|
||||
|
||||
<!--Custom Query Hotkey 對話框-->
|
||||
<system:String x:Key="preview">預覽</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">熱鍵不存在,請設定一個新的熱鍵</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">外掛熱鍵無法使用</system:String>
|
||||
<system:String x:Key="update">更新</system:String>
|
||||
|
||||
<!--Hotkey 控件-->
|
||||
<system:String x:Key="hotkeyUnavailable">熱鍵無法使用</system:String>
|
||||
|
||||
<!--當機報告視窗-->
|
||||
<system:String x:Key="reportWindow_version">版本</system:String>
|
||||
<system:String x:Key="reportWindow_time">時間</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">請告訴我們如何重現此問題,以便我們進行修復</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">發送報告</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">取消</system:String>
|
||||
<system:String x:Key="reportWindow_general">基本訊息</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">例外訊息</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">例外類型</system:String>
|
||||
<system:String x:Key="reportWindow_source">例外來源</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">堆疊資訊</system:String>
|
||||
<system:String x:Key="reportWindow_sending">傳送中</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">傳送成功</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">傳送失敗</system:String>
|
||||
<system:String x:Key="reportWindow_wox_got_an_error">Wox 出錯啦</system:String>
|
||||
|
||||
<!--更新-->
|
||||
<system:String x:Key="update_wox_update_new_version_available">發現 Wox 新版本 V{0}</system:String>
|
||||
<system:String x:Key="update_wox_update_error">更新 Wox 出錯</system:String>
|
||||
<system:String x:Key="update_wox_update">更新</system:String>
|
||||
<system:String x:Key="update_wox_update_cancel">取消</system:String>
|
||||
<system:String x:Key="update_wox_update_restart_wox_tip">此更新需要重新啟動 Wox</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_files">下列檔案會被更新</system:String>
|
||||
<system:String x:Key="update_wox_update_files">更新檔案</system:String>
|
||||
<system:String x:Key="update_wox_update_upadte_description">更新日誌</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
90
src/modules/launcher/Wox/MainWindow.xaml
Normal file
@@ -0,0 +1,90 @@
|
||||
<Window x:Class="Wox.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:wox="clr-namespace:Wox"
|
||||
xmlns:vm="clr-namespace:Wox.ViewModel"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
|
||||
Title="Wox"
|
||||
Topmost="True"
|
||||
SizeToContent="Height"
|
||||
ResizeMode="NoResize"
|
||||
WindowStyle="None"
|
||||
WindowStartupLocation="Manual"
|
||||
AllowDrop="True"
|
||||
ShowInTaskbar="False"
|
||||
Style="{DynamicResource WindowStyle}"
|
||||
Icon="Images\app.png"
|
||||
AllowsTransparency="True"
|
||||
Loaded="OnLoaded"
|
||||
Initialized="OnInitialized"
|
||||
Closing="OnClosing"
|
||||
Drop="OnDrop"
|
||||
LocationChanged="OnLocationChanged"
|
||||
Deactivated="OnDeactivated"
|
||||
PreviewKeyDown="OnKeyDown"
|
||||
Visibility="{Binding MainWindowVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
d:DataContext="{d:DesignInstance vm:MainViewModel}">
|
||||
<Window.InputBindings>
|
||||
<KeyBinding Key="Escape" Command="{Binding EscCommand}"></KeyBinding>
|
||||
<KeyBinding Key="F1" Command="{Binding StartHelpCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Tab" Command="{Binding SelectNextItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Tab" Modifiers="Shift" Command="{Binding SelectPrevItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="N" Modifiers="Ctrl" Command="{Binding SelectNextItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="J" Modifiers="Ctrl" Command="{Binding SelectNextItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="D" Modifiers="Ctrl" Command="{Binding SelectNextPageCommand}"></KeyBinding>
|
||||
<KeyBinding Key="P" Modifiers="Ctrl" Command="{Binding SelectPrevItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="K" Modifiers="Ctrl" Command="{Binding SelectPrevItemCommand}"></KeyBinding>
|
||||
<KeyBinding Key="U" Modifiers="Ctrl" Command="{Binding SelectPrevPageCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Home" Modifiers="Alt" Command="{Binding SelectFirstResultCommand}"></KeyBinding>
|
||||
<KeyBinding Key="O" Modifiers="Ctrl" Command="{Binding LoadContextMenuCommand}"></KeyBinding>
|
||||
<KeyBinding Key="H" Modifiers="Ctrl" Command="{Binding LoadHistoryCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Enter" Modifiers="Shift" Command="{Binding LoadContextMenuCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Enter" Command="{Binding OpenResultCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Enter" Modifiers="Ctrl" Command="{Binding OpenResultCommand}"></KeyBinding>
|
||||
<KeyBinding Key="Enter" Modifiers="Alt" Command="{Binding OpenResultCommand}"></KeyBinding>
|
||||
<KeyBinding Key="D1" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="0"></KeyBinding>
|
||||
<KeyBinding Key="D2" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="1"></KeyBinding>
|
||||
<KeyBinding Key="D3" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="2"></KeyBinding>
|
||||
<KeyBinding Key="D4" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="3"></KeyBinding>
|
||||
<KeyBinding Key="D5" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="4"></KeyBinding>
|
||||
<KeyBinding Key="D6" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="5"></KeyBinding>
|
||||
<KeyBinding Key="D7" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="6"></KeyBinding>
|
||||
<KeyBinding Key="D8" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="7"></KeyBinding>
|
||||
<KeyBinding Key="D9" Modifiers="Alt" Command="{Binding OpenResultCommand}" CommandParameter="8"></KeyBinding>
|
||||
</Window.InputBindings>
|
||||
<Border Style="{DynamicResource WindowBorderStyle}" MouseDown="OnMouseDown" >
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBox Style="{DynamicResource QueryBoxStyle}"
|
||||
Text="{Binding QueryText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
PreviewDragOver="OnPreviewDragOver"
|
||||
TextChanged="OnTextChanged"
|
||||
AllowDrop="True"
|
||||
Visibility="Visible"
|
||||
x:Name="QueryTextBox">
|
||||
<TextBox.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Command="ApplicationCommands.Cut"/>
|
||||
<MenuItem Command="ApplicationCommands.Copy"/>
|
||||
<MenuItem Command="ApplicationCommands.Paste"/>
|
||||
<Separator />
|
||||
<MenuItem Header="Settings" Click="OnContextMenusForSettingsClick" />
|
||||
</ContextMenu>
|
||||
</TextBox.ContextMenu>
|
||||
</TextBox>
|
||||
<Line x:Name="ProgressBar" HorizontalAlignment="Right"
|
||||
Style="{DynamicResource PendingLineStyle}" Visibility="{Binding ProgressBarVisibility, Mode=TwoWay}"
|
||||
Y1="0" Y2="0" X2="100" Height="2" Width="752" StrokeThickness="1">
|
||||
</Line>
|
||||
<ContentControl>
|
||||
<wox:ResultListBox DataContext="{Binding Results}" PreviewMouseDown="OnPreviewMouseButtonDown" />
|
||||
</ContentControl>
|
||||
<ContentControl>
|
||||
<wox:ResultListBox DataContext="{Binding ContextMenu}" PreviewMouseDown="OnPreviewMouseButtonDown" />
|
||||
</ContentControl>
|
||||
<ContentControl>
|
||||
<wox:ResultListBox DataContext="{Binding History}" PreviewMouseDown="OnPreviewMouseButtonDown" />
|
||||
</ContentControl>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Window>
|
||||
300
src/modules/launcher/Wox/MainWindow.xaml.cs
Normal file
@@ -0,0 +1,300 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
using Wox.Core.Plugin;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Helper;
|
||||
using Wox.Infrastructure.UserSettings;
|
||||
using Wox.ViewModel;
|
||||
using Screen = System.Windows.Forms.Screen;
|
||||
using ContextMenuStrip = System.Windows.Forms.ContextMenuStrip;
|
||||
using DataFormats = System.Windows.DataFormats;
|
||||
using DragEventArgs = System.Windows.DragEventArgs;
|
||||
using KeyEventArgs = System.Windows.Input.KeyEventArgs;
|
||||
using MessageBox = System.Windows.MessageBox;
|
||||
using NotifyIcon = System.Windows.Forms.NotifyIcon;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class MainWindow
|
||||
{
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private readonly Storyboard _progressBarStoryboard = new Storyboard();
|
||||
private Settings _settings;
|
||||
private NotifyIcon _notifyIcon;
|
||||
private MainViewModel _viewModel;
|
||||
|
||||
#endregion
|
||||
|
||||
public MainWindow(Settings settings, MainViewModel mainVM)
|
||||
{
|
||||
DataContext = mainVM;
|
||||
_viewModel = mainVM;
|
||||
_settings = settings;
|
||||
InitializeComponent();
|
||||
}
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void OnClosing(object sender, CancelEventArgs e)
|
||||
{
|
||||
_notifyIcon.Visible = false;
|
||||
_viewModel.Save();
|
||||
}
|
||||
|
||||
private void OnInitialized(object sender, EventArgs e)
|
||||
{
|
||||
// show notify icon when wox is hided
|
||||
InitializeNotifyIcon();
|
||||
}
|
||||
|
||||
private void OnLoaded(object sender, RoutedEventArgs _)
|
||||
{
|
||||
// todo is there a way to set blur only once?
|
||||
ThemeManager.Instance.SetBlurForWindow();
|
||||
WindowsInteropHelper.DisableControlBox(this);
|
||||
InitProgressbarAnimation();
|
||||
InitializePosition();
|
||||
// since the default main window visibility is visible
|
||||
// so we need set focus during startup
|
||||
QueryTextBox.Focus();
|
||||
|
||||
_viewModel.PropertyChanged += (o, e) =>
|
||||
{
|
||||
if (e.PropertyName == nameof(MainViewModel.MainWindowVisibility))
|
||||
{
|
||||
if (Visibility == Visibility.Visible)
|
||||
{
|
||||
Activate();
|
||||
QueryTextBox.Focus();
|
||||
UpdatePosition();
|
||||
_settings.ActivateTimes++;
|
||||
if (!_viewModel.LastQuerySelected)
|
||||
{
|
||||
QueryTextBox.SelectAll();
|
||||
_viewModel.LastQuerySelected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
_settings.PropertyChanged += (o, e) =>
|
||||
{
|
||||
if (e.PropertyName == nameof(Settings.HideNotifyIcon))
|
||||
{
|
||||
_notifyIcon.Visible = !_settings.HideNotifyIcon;
|
||||
}
|
||||
};
|
||||
InitializePosition();
|
||||
}
|
||||
|
||||
private void InitializePosition()
|
||||
{
|
||||
Top = WindowTop();
|
||||
Left = WindowLeft();
|
||||
_settings.WindowTop = Top;
|
||||
_settings.WindowLeft = Left;
|
||||
}
|
||||
|
||||
private void InitializeNotifyIcon()
|
||||
{
|
||||
_notifyIcon = new NotifyIcon
|
||||
{
|
||||
Text = Infrastructure.Constant.Wox,
|
||||
Icon = Properties.Resources.app,
|
||||
Visible = !_settings.HideNotifyIcon
|
||||
};
|
||||
var menu = new ContextMenuStrip();
|
||||
var items = menu.Items;
|
||||
|
||||
var open = items.Add(InternationalizationManager.Instance.GetTranslation("iconTrayOpen"));
|
||||
open.Click += (o, e) => Visibility = Visibility.Visible;
|
||||
var setting = items.Add(InternationalizationManager.Instance.GetTranslation("iconTraySettings"));
|
||||
setting.Click += (o, e) => App.API.OpenSettingDialog();
|
||||
var exit = items.Add(InternationalizationManager.Instance.GetTranslation("iconTrayExit"));
|
||||
exit.Click += (o, e) => Close();
|
||||
|
||||
_notifyIcon.ContextMenuStrip = menu;
|
||||
_notifyIcon.MouseClick += (o, e) =>
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
if (menu.Visible)
|
||||
{
|
||||
menu.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
var p = System.Windows.Forms.Cursor.Position;
|
||||
menu.Show(p);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void InitProgressbarAnimation()
|
||||
{
|
||||
var da = new DoubleAnimation(ProgressBar.X2, ActualWidth + 100, new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
|
||||
var da1 = new DoubleAnimation(ProgressBar.X1, ActualWidth, new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
|
||||
Storyboard.SetTargetProperty(da, new PropertyPath("(Line.X2)"));
|
||||
Storyboard.SetTargetProperty(da1, new PropertyPath("(Line.X1)"));
|
||||
_progressBarStoryboard.Children.Add(da);
|
||||
_progressBarStoryboard.Children.Add(da1);
|
||||
_progressBarStoryboard.RepeatBehavior = RepeatBehavior.Forever;
|
||||
ProgressBar.BeginStoryboard(_progressBarStoryboard);
|
||||
_viewModel.ProgressBarVisibility = Visibility.Hidden;
|
||||
}
|
||||
|
||||
private void OnMouseDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (e.ChangedButton == MouseButton.Left) DragMove();
|
||||
}
|
||||
|
||||
private void OnPreviewMouseButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (sender != null && e.OriginalSource != null)
|
||||
{
|
||||
var r = (ResultListBox)sender;
|
||||
var d = (DependencyObject)e.OriginalSource;
|
||||
var item = ItemsControl.ContainerFromElement(r, d) as ListBoxItem;
|
||||
var result = (ResultViewModel)item?.DataContext;
|
||||
if (result != null)
|
||||
{
|
||||
if (e.ChangedButton == MouseButton.Left)
|
||||
{
|
||||
_viewModel.OpenResultCommand.Execute(null);
|
||||
}
|
||||
else if (e.ChangedButton == MouseButton.Right)
|
||||
{
|
||||
_viewModel.LoadContextMenuCommand.Execute(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
{
|
||||
// Note that you can have more than one file.
|
||||
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
if (files[0].ToLower().EndsWith(".wox"))
|
||||
{
|
||||
PluginManager.InstallPlugin(files[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidWoxPluginFileFormat"));
|
||||
}
|
||||
}
|
||||
e.Handled = false;
|
||||
}
|
||||
|
||||
private void OnPreviewDragOver(object sender, DragEventArgs e)
|
||||
{
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void OnContextMenusForSettingsClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
App.API.OpenSettingDialog();
|
||||
}
|
||||
|
||||
|
||||
private void OnDeactivated(object sender, EventArgs e)
|
||||
{
|
||||
if (_settings.HideWhenDeactive)
|
||||
{
|
||||
Hide();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdatePosition()
|
||||
{
|
||||
if (_settings.RememberLastLaunchLocation)
|
||||
{
|
||||
Left = _settings.WindowLeft;
|
||||
Top = _settings.WindowTop;
|
||||
}
|
||||
else
|
||||
{
|
||||
Left = WindowLeft();
|
||||
Top = WindowTop();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnLocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (_settings.RememberLastLaunchLocation)
|
||||
{
|
||||
_settings.WindowLeft = Left;
|
||||
_settings.WindowTop = Top;
|
||||
}
|
||||
}
|
||||
|
||||
private double WindowLeft()
|
||||
{
|
||||
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
|
||||
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
|
||||
var dip2 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
|
||||
var left = (dip2.X - ActualWidth) / 2 + dip1.X;
|
||||
return left;
|
||||
}
|
||||
|
||||
private double WindowTop()
|
||||
{
|
||||
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
|
||||
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
|
||||
var dip2 = WindowsInteropHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);
|
||||
var top = (dip2.Y - QueryTextBox.ActualHeight) / 4 + dip1.Y;
|
||||
return top;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register up and down key
|
||||
/// todo: any way to put this in xaml ?
|
||||
/// </summary>
|
||||
private void OnKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Down)
|
||||
{
|
||||
_viewModel.SelectNextItemCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Up)
|
||||
{
|
||||
_viewModel.SelectPrevItemCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.PageDown)
|
||||
{
|
||||
_viewModel.SelectNextPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.PageUp)
|
||||
{
|
||||
_viewModel.SelectPrevPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (_viewModel.QueryTextCursorMovedToEnd)
|
||||
{
|
||||
QueryTextBox.CaretIndex = QueryTextBox.Text.Length;
|
||||
_viewModel.QueryTextCursorMovedToEnd = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
41
src/modules/launcher/Wox/Msg.xaml
Normal file
@@ -0,0 +1,41 @@
|
||||
<Window x:Class="Wox.Msg"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="#ebebeb"
|
||||
Topmost="True"
|
||||
SizeToContent="Height"
|
||||
ResizeMode="NoResize"
|
||||
WindowStyle="None"
|
||||
ShowInTaskbar="False"
|
||||
Title="Msg" Height="60" Width="420">
|
||||
<Window.Triggers>
|
||||
<EventTrigger RoutedEvent="Window.Loaded">
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation x:Name="showAnimation" Duration="0:0:0.3" Storyboard.TargetProperty="Top"
|
||||
AccelerationRatio="0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</EventTrigger>
|
||||
|
||||
</Window.Triggers>
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="32" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="2.852" />
|
||||
<ColumnDefinition Width="13.148"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image x:Name="imgIco" Width="32" Height="32" HorizontalAlignment="Left" Margin="0,9" />
|
||||
<Grid HorizontalAlignment="Stretch" Margin="5 0 0 0" Grid.Column="1" VerticalAlignment="Stretch">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock x:Name="tbTitle" FontSize="16" Foreground="#37392c" FontWeight="Medium">Title</TextBlock>
|
||||
<TextBlock Grid.Row="1" Foreground="#8e94a4" x:Name="tbSubTitle">sdfdsf</TextBlock>
|
||||
</Grid>
|
||||
<Image x:Name="imgClose" Grid.Column="2" Cursor="Hand" Width="16" VerticalAlignment="Top"
|
||||
HorizontalAlignment="Right" Grid.ColumnSpan="2" />
|
||||
</Grid>
|
||||
</Window>
|
||||
87
src/modules/launcher/Wox/Msg.xaml.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Media.Imaging;
|
||||
using Wox.Helper;
|
||||
using Wox.Infrastructure;
|
||||
using Wox.Infrastructure.Image;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class Msg : Window
|
||||
{
|
||||
Storyboard fadeOutStoryboard = new Storyboard();
|
||||
private bool closing;
|
||||
|
||||
public Msg()
|
||||
{
|
||||
InitializeComponent();
|
||||
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
|
||||
var dipWorkingArea = WindowsInteropHelper.TransformPixelsToDIP(this,
|
||||
screen.WorkingArea.Width,
|
||||
screen.WorkingArea.Height);
|
||||
Left = dipWorkingArea.X - Width;
|
||||
Top = dipWorkingArea.Y;
|
||||
showAnimation.From = dipWorkingArea.Y;
|
||||
showAnimation.To = dipWorkingArea.Y - Height;
|
||||
|
||||
// Create the fade out storyboard
|
||||
fadeOutStoryboard.Completed += fadeOutStoryboard_Completed;
|
||||
DoubleAnimation fadeOutAnimation = new DoubleAnimation(dipWorkingArea.Y - Height, dipWorkingArea.Y, new Duration(TimeSpan.FromSeconds(5)))
|
||||
{
|
||||
AccelerationRatio = 0.2
|
||||
};
|
||||
Storyboard.SetTarget(fadeOutAnimation, this);
|
||||
Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(TopProperty));
|
||||
fadeOutStoryboard.Children.Add(fadeOutAnimation);
|
||||
|
||||
imgClose.Source = ImageLoader.Load(Path.Combine(Infrastructure.Constant.ProgramDirectory, "Images\\close.png"));
|
||||
imgClose.MouseUp += imgClose_MouseUp;
|
||||
}
|
||||
|
||||
void imgClose_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (!closing)
|
||||
{
|
||||
closing = true;
|
||||
fadeOutStoryboard.Begin();
|
||||
}
|
||||
}
|
||||
|
||||
private void fadeOutStoryboard_Completed(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
public void Show(string title, string subTitle, string iconPath)
|
||||
{
|
||||
tbTitle.Text = title;
|
||||
tbSubTitle.Text = subTitle;
|
||||
if (string.IsNullOrEmpty(subTitle))
|
||||
{
|
||||
tbSubTitle.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
if (!File.Exists(iconPath))
|
||||
{
|
||||
imgIco.Source = ImageLoader.Load(Path.Combine(Infrastructure.Constant.ProgramDirectory, "Images\\app.png"));
|
||||
}
|
||||
else {
|
||||
imgIco.Source = ImageLoader.Load(iconPath);
|
||||
}
|
||||
|
||||
Show();
|
||||
|
||||
Dispatcher.InvokeAsync(async () =>
|
||||
{
|
||||
if (!closing)
|
||||
{
|
||||
closing = true;
|
||||
await Dispatcher.InvokeAsync(fadeOutStoryboard.Begin);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
8
src/modules/launcher/Wox/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
using System.Reflection;
|
||||
using System.Windows;
|
||||
|
||||
[assembly: AssemblyTitle("Wox")]
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None,
|
||||
ResourceDictionaryLocation.SourceAssembly
|
||||
)]
|
||||
73
src/modules/launcher/Wox/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,73 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 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.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Wox.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// 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 Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[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("Wox.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon app {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("app", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
124
src/modules/launcher/Wox/Properties/Resources.resx
Normal file
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="app" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\app.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
35
src/modules/launcher/Wox/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,35 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 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.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Wox.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("https://github.com/Wox-launcher/Wox")]
|
||||
public string GithubRepo {
|
||||
get {
|
||||
return ((string)(this["GithubRepo"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
src/modules/launcher/Wox/Properties/Settings.settings
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Wox.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="GithubRepo" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">https://github.com/Wox-launcher/Wox</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
173
src/modules/launcher/Wox/PublicAPIInstance.cs
Normal file
@@ -0,0 +1,173 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using Squirrel;
|
||||
using Wox.Core;
|
||||
using Wox.Core.Plugin;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Helper;
|
||||
using Wox.Infrastructure;
|
||||
using Wox.Infrastructure.Hotkey;
|
||||
using Wox.Infrastructure.Image;
|
||||
using Wox.Plugin;
|
||||
using Wox.ViewModel;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public class PublicAPIInstance : IPublicAPI
|
||||
{
|
||||
private readonly SettingWindowViewModel _settingsVM;
|
||||
private readonly MainViewModel _mainVM;
|
||||
private readonly Alphabet _alphabet;
|
||||
|
||||
#region Constructor
|
||||
|
||||
public PublicAPIInstance(SettingWindowViewModel settingsVM, MainViewModel mainVM, Alphabet alphabet)
|
||||
{
|
||||
_settingsVM = settingsVM;
|
||||
_mainVM = mainVM;
|
||||
_alphabet = alphabet;
|
||||
GlobalHotkey.Instance.hookedKeyboardCallback += KListener_hookedKeyboardCallback;
|
||||
WebRequest.RegisterPrefix("data", new DataWebRequestFactory());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public API
|
||||
|
||||
public void ChangeQuery(string query, bool requery = false)
|
||||
{
|
||||
_mainVM.ChangeQueryText(query);
|
||||
}
|
||||
|
||||
public void ChangeQueryText(string query, bool selectAll = false)
|
||||
{
|
||||
_mainVM.ChangeQueryText(query);
|
||||
}
|
||||
|
||||
[Obsolete]
|
||||
public void CloseApp()
|
||||
{
|
||||
Application.Current.MainWindow.Close();
|
||||
}
|
||||
|
||||
public void RestarApp()
|
||||
{
|
||||
_mainVM.MainWindowVisibility = Visibility.Hidden;
|
||||
|
||||
// we must manually save
|
||||
// UpdateManager.RestartApp() will call Environment.Exit(0)
|
||||
// which will cause ungraceful exit
|
||||
SaveAppAllSettings();
|
||||
|
||||
UpdateManager.RestartApp();
|
||||
}
|
||||
|
||||
public void CheckForNewUpdate()
|
||||
{
|
||||
_settingsVM.UpdateApp();
|
||||
}
|
||||
|
||||
public void SaveAppAllSettings()
|
||||
{
|
||||
_mainVM.Save();
|
||||
_settingsVM.Save();
|
||||
PluginManager.Save();
|
||||
ImageLoader.Save();
|
||||
_alphabet.Save();
|
||||
}
|
||||
|
||||
public void ReloadAllPluginData()
|
||||
{
|
||||
PluginManager.ReloadData();
|
||||
}
|
||||
|
||||
[Obsolete]
|
||||
public void HideApp()
|
||||
{
|
||||
_mainVM.MainWindowVisibility = Visibility.Hidden;
|
||||
}
|
||||
|
||||
[Obsolete]
|
||||
public void ShowApp()
|
||||
{
|
||||
_mainVM.MainWindowVisibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
public void ShowMsg(string title, string subTitle = "", string iconPath = "", bool useMainWindowAsOwner = true)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
var msg = useMainWindowAsOwner ? new Msg {Owner = Application.Current.MainWindow} : new Msg();
|
||||
msg.Show(title, subTitle, iconPath);
|
||||
});
|
||||
}
|
||||
|
||||
public void OpenSettingDialog()
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
SettingWindow sw = SingletonWindowOpener.Open<SettingWindow>(this, _settingsVM);
|
||||
});
|
||||
}
|
||||
|
||||
public void StartLoadingBar()
|
||||
{
|
||||
_mainVM.ProgressBarVisibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
public void StopLoadingBar()
|
||||
{
|
||||
_mainVM.ProgressBarVisibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
public void InstallPlugin(string path)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() => PluginManager.InstallPlugin(path));
|
||||
}
|
||||
|
||||
public string GetTranslation(string key)
|
||||
{
|
||||
return InternationalizationManager.Instance.GetTranslation(key);
|
||||
}
|
||||
|
||||
public List<PluginPair> GetAllPlugins()
|
||||
{
|
||||
return PluginManager.AllPlugins.ToList();
|
||||
}
|
||||
|
||||
public event WoxGlobalKeyboardEventHandler GlobalKeyboardEvent;
|
||||
|
||||
[Obsolete("This will be removed in Wox 1.3")]
|
||||
public void PushResults(Query query, PluginMetadata plugin, List<Result> results)
|
||||
{
|
||||
results.ForEach(o =>
|
||||
{
|
||||
o.PluginDirectory = plugin.PluginDirectory;
|
||||
o.PluginID = plugin.ID;
|
||||
o.OriginQuery = query;
|
||||
});
|
||||
Task.Run(() =>
|
||||
{
|
||||
_mainVM.UpdateResultView(results, plugin, query);
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state)
|
||||
{
|
||||
if (GlobalKeyboardEvent != null)
|
||||
{
|
||||
return GlobalKeyboardEvent((int)keyevent, vkcode, state);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
23
src/modules/launcher/Wox/ReportWindow.xaml
Normal file
@@ -0,0 +1,23 @@
|
||||
<Window x:Class="Wox.ReportWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Icon="Images/app_error.png"
|
||||
Topmost="True"
|
||||
ResizeMode="NoResize"
|
||||
Width="600"
|
||||
Height="455"
|
||||
Title="{DynamicResource reportWindow_wox_got_an_error}"
|
||||
d:DesignHeight="300" d:DesignWidth="600" x:ClassModifier="internal">
|
||||
<RichTextBox x:Name="ErrorTextbox"
|
||||
IsDocumentEnabled="True"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Auto"
|
||||
FontSize="14"
|
||||
Margin="10"
|
||||
BorderThickness="0"/>
|
||||
|
||||
</Window>
|
||||
64
src/modules/launcher/Wox/ReportWindow.xaml.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Documents;
|
||||
using Wox.Helper;
|
||||
using Wox.Infrastructure;
|
||||
using Wox.Infrastructure.Logger;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
internal partial class ReportWindow
|
||||
{
|
||||
public ReportWindow(Exception exception)
|
||||
{
|
||||
InitializeComponent();
|
||||
ErrorTextbox.Document.Blocks.FirstBlock.Margin = new Thickness(0);
|
||||
SetException(exception);
|
||||
}
|
||||
|
||||
private void SetException(Exception exception)
|
||||
{
|
||||
string path = Log.CurrentLogDirectory;
|
||||
var directory = new DirectoryInfo(path);
|
||||
var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
|
||||
|
||||
var paragraph = Hyperlink("Please open new issue in: ", Constant.Issue);
|
||||
paragraph.Inlines.Add($"1. upload log file: {log.FullName}\n");
|
||||
paragraph.Inlines.Add($"2. copy below exception message");
|
||||
ErrorTextbox.Document.Blocks.Add(paragraph);
|
||||
|
||||
StringBuilder content = new StringBuilder();
|
||||
content.AppendLine(ErrorReporting.RuntimeInfo());
|
||||
content.AppendLine(ErrorReporting.DependenciesInfo());
|
||||
content.AppendLine($"Date: {DateTime.Now.ToString(CultureInfo.InvariantCulture)}");
|
||||
content.AppendLine("Exception:");
|
||||
content.AppendLine(exception.ToString());
|
||||
paragraph = new Paragraph();
|
||||
paragraph.Inlines.Add(content.ToString());
|
||||
ErrorTextbox.Document.Blocks.Add(paragraph);
|
||||
}
|
||||
|
||||
private Paragraph Hyperlink(string textBeforeUrl, string url)
|
||||
{
|
||||
var paragraph = new Paragraph();
|
||||
paragraph.Margin = new Thickness(0);
|
||||
|
||||
var link = new Hyperlink { IsEnabled = true };
|
||||
link.Inlines.Add(url);
|
||||
link.NavigateUri = new Uri(url);
|
||||
link.RequestNavigate += (s, e) => Process.Start(e.Uri.ToString());
|
||||
link.Click += (s, e) => Process.Start(url);
|
||||
|
||||
paragraph.Inlines.Add(textBeforeUrl);
|
||||
paragraph.Inlines.Add(link);
|
||||
paragraph.Inlines.Add("\n");
|
||||
|
||||
return paragraph;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
src/modules/launcher/Wox/Resources/app.ico
Normal file
|
After Width: | Height: | Size: 32 KiB |
119
src/modules/launcher/Wox/ResultListBox.xaml
Normal file
@@ -0,0 +1,119 @@
|
||||
<ListBox x:Class="Wox.ResultListBox"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:vm="clr-namespace:Wox.ViewModel"
|
||||
xmlns:converter="clr-namespace:Wox.Converters"
|
||||
mc:Ignorable="d" d:DesignWidth="100" d:DesignHeight="100"
|
||||
d:DataContext="{d:DesignInstance vm:ResultsViewModel}"
|
||||
MaxHeight="{Binding MaxHeight}"
|
||||
SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}"
|
||||
SelectedItem="{Binding SelectedItem, Mode=OneWayToSource}"
|
||||
HorizontalContentAlignment="Stretch" ItemsSource="{Binding Results}"
|
||||
Margin="{Binding Margin}"
|
||||
Visibility="{Binding Visbility}"
|
||||
Style="{DynamicResource BaseListboxStyle}" Focusable="False"
|
||||
KeyboardNavigation.DirectionalNavigation="Cycle" SelectionMode="Single"
|
||||
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard"
|
||||
SelectionChanged="OnSelectionChanged"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
PreviewMouseDown="ListBox_PreviewMouseDown">
|
||||
<!--IsSynchronizedWithCurrentItem: http://stackoverflow.com/a/7833798/2833083-->
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button>
|
||||
<Button.Template>
|
||||
<ControlTemplate>
|
||||
<ContentPresenter Content="{TemplateBinding Button.Content}" />
|
||||
</ControlTemplate>
|
||||
</Button.Template>
|
||||
<Button.Content>
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"
|
||||
Cursor="Hand" UseLayoutRounding="False">
|
||||
<Grid.Resources>
|
||||
<converter:HighlightTextConverter x:Key="HighlightTextConverter"/>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="32" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="0" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image x:Name="imgIco" Width="32" Height="32" HorizontalAlignment="Left"
|
||||
Source="{Binding Image ,IsAsync=True}" />
|
||||
<Grid Margin="5 0 5 0" Grid.Column="1" HorizontalAlignment="Stretch">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" x:Name="SubTitleRowDefinition" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Style="{DynamicResource ItemTitleStyle}" DockPanel.Dock="Left"
|
||||
VerticalAlignment="Center" ToolTip="{Binding Result.Title}" x:Name="Title"
|
||||
Text="{Binding Result.Title}">
|
||||
<vm:ResultsViewModel.FormattedText>
|
||||
<MultiBinding Converter="{StaticResource HighlightTextConverter}">
|
||||
<Binding Path="Result.Title" />
|
||||
<Binding Path="Result.TitleHighlightData" />
|
||||
</MultiBinding>
|
||||
</vm:ResultsViewModel.FormattedText>
|
||||
</TextBlock>
|
||||
<TextBlock Style="{DynamicResource ItemSubTitleStyle}" ToolTip="{Binding Result.SubTitle}"
|
||||
Grid.Row="1" x:Name="SubTitle" Text="{Binding Result.SubTitle}">
|
||||
<vm:ResultsViewModel.FormattedText>
|
||||
<MultiBinding Converter="{StaticResource HighlightTextConverter}">
|
||||
<Binding Path="Result.SubTitle" />
|
||||
<Binding Path="Result.SubTitleHighlightData" />
|
||||
</MultiBinding>
|
||||
</vm:ResultsViewModel.FormattedText>
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
<!-- a result item height is 50 including margin -->
|
||||
<DataTemplate.Triggers>
|
||||
<DataTrigger
|
||||
Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}}, Path=IsSelected}"
|
||||
Value="True">
|
||||
<Setter TargetName="Title" Property="Style" Value="{DynamicResource ItemTitleSelectedStyle}" />
|
||||
<Setter TargetName="SubTitle" Property="Style" Value="{DynamicResource ItemSubTitleSelectedStyle}" />
|
||||
</DataTrigger>
|
||||
</DataTemplate.Triggers>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
<!--http://stackoverflow.com/questions/16819577/setting-background-color-or-wpf-4-0-listbox-windows-8/#16820062-->
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type ListBoxItem}">
|
||||
<EventSetter Event="MouseEnter" Handler="OnMouseEnter" />
|
||||
<EventSetter Event="MouseMove" Handler="OnMouseMove" />
|
||||
<Setter Property="Height" Value="50" />
|
||||
<Setter Property="Margin" Value="0" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ListBoxItem}">
|
||||
<Border x:Name="Bd"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
SnapsToDevicePixels="True">
|
||||
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
Content="{TemplateBinding Content}"
|
||||
ContentStringFormat="{TemplateBinding ContentStringFormat}"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background"
|
||||
Value="{DynamicResource ItemSelectedBackgroundColor}" />
|
||||
<Setter TargetName="Bd" Property="BorderBrush"
|
||||
Value="{DynamicResource ItemSelectedBackgroundColor}" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
</ListBox>
|
||||
50
src/modules/launcher/Wox/ResultListBox.xaml.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System.Runtime.Remoting.Contexts;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
[Synchronization]
|
||||
public partial class ResultListBox
|
||||
{
|
||||
private Point _lastpos;
|
||||
private ListBoxItem curItem = null;
|
||||
public ResultListBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (e.AddedItems.Count > 0 && e.AddedItems[0] != null)
|
||||
{
|
||||
ScrollIntoView(e.AddedItems[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnMouseEnter(object sender, MouseEventArgs e)
|
||||
{
|
||||
curItem = (ListBoxItem)sender;
|
||||
var p = e.GetPosition((IInputElement)sender);
|
||||
_lastpos = p;
|
||||
}
|
||||
|
||||
private void OnMouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
var p = e.GetPosition((IInputElement)sender);
|
||||
if (_lastpos != p)
|
||||
{
|
||||
((ListBoxItem) sender).IsSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void ListBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (curItem != null)
|
||||
{
|
||||
curItem.IsSelected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
402
src/modules/launcher/Wox/SettingWindow.xaml
Normal file
@@ -0,0 +1,402 @@
|
||||
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:wox="clr-namespace:Wox"
|
||||
xmlns:vm="clr-namespace:Wox.ViewModel"
|
||||
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
|
||||
xmlns:userSettings="clr-namespace:Wox.Infrastructure.UserSettings;assembly=Wox.Infrastructure"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
x:Class="Wox.SettingWindow"
|
||||
mc:Ignorable="d"
|
||||
Icon="Images\app.png"
|
||||
Title="{DynamicResource wox_settings}"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Height="600" Width="800"
|
||||
Closed="OnClosed"
|
||||
d:DataContext="{d:DesignInstance vm:SettingWindowViewModel}">
|
||||
<Window.InputBindings>
|
||||
<KeyBinding Key="Escape" Command="Close"/>
|
||||
</Window.InputBindings>
|
||||
<Window.CommandBindings>
|
||||
<CommandBinding Command="Close" Executed="OnCloseExecuted"/>
|
||||
</Window.CommandBindings>
|
||||
<Window.Resources>
|
||||
<CollectionViewSource Source="{Binding Source={x:Static Fonts.SystemFontFamilies}}" x:Key="SortedFonts">
|
||||
<CollectionViewSource.SortDescriptions>
|
||||
<scm:SortDescription PropertyName="Source"/>
|
||||
</CollectionViewSource.SortDescriptions>
|
||||
</CollectionViewSource>
|
||||
</Window.Resources>
|
||||
|
||||
<TabControl Height="auto" SelectedIndex="0">
|
||||
<TabItem Header="{DynamicResource general}">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.StartWoxOnSystemStartup}"
|
||||
Checked="OnAutoStartupChecked" Unchecked="OnAutoStartupUncheck">
|
||||
<TextBlock Text="{DynamicResource startWoxOnSystemStartup}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.HideOnStartup}">
|
||||
<TextBlock Text="{DynamicResource hideOnStartup}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.HideWhenDeactive}">
|
||||
<TextBlock Text="{DynamicResource hideWoxWhenLoseFocus}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.HideNotifyIcon}">
|
||||
<TextBlock Text="{DynamicResource hideNotifyIcon}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.RememberLastLaunchLocation}">
|
||||
<TextBlock Text="{DynamicResource rememberLastLocation}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.IgnoreHotkeysOnFullscreen}">
|
||||
<TextBlock Text="{DynamicResource ignoreHotkeysOnFullscreen}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.AutoUpdates}">
|
||||
<TextBlock Text="{DynamicResource autoUpdates}" />
|
||||
</CheckBox>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.ShouldUsePinyin}">
|
||||
<TextBlock Text="{DynamicResource ShouldUsePinyin}" />
|
||||
</CheckBox>
|
||||
<StackPanel Margin="10" Orientation="Horizontal">
|
||||
<TextBlock Text="{DynamicResource querySearchPrecision}" />
|
||||
<ComboBox Margin="10 0 0 0" Width="120"
|
||||
ItemsSource="{Binding QuerySearchPrecisionStrings}"
|
||||
SelectedItem="{Binding Settings.QuerySearchPrecisionString}" />
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10" Orientation="Horizontal">
|
||||
<TextBlock Text="{DynamicResource lastQueryMode}" />
|
||||
<ComboBox Margin="10 0 0 0" Width="120"
|
||||
ItemsSource="{Binding LastQueryModes}" SelectedValue="{Binding Settings.LastQueryMode}"
|
||||
DisplayMemberPath="Display" SelectedValuePath="Value" />
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10" Orientation="Horizontal">
|
||||
<TextBlock Text="{DynamicResource language}" />
|
||||
<ComboBox Margin="10 0 0 0" Width="120" SelectionChanged="OnLanguageChanged"
|
||||
ItemsSource="{Binding Languages}" SelectedValue="{Binding Settings.Language}"
|
||||
DisplayMemberPath="Display" SelectedValuePath="LanguageCode" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="10">
|
||||
<TextBlock Text="{DynamicResource maxShowResults}" />
|
||||
<ComboBox Margin="10 0 0 0" Width="45" ItemsSource="{Binding MaxResultsRange}"
|
||||
SelectedItem="{Binding Settings.MaxResultsToShow}" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Margin="10" Text="{DynamicResource pythonDirectory}" />
|
||||
<TextBox Width="300" Margin="10" Text="{Binding Settings.PluginSettings.PythonDirectory}" />
|
||||
<Button Margin="10" Click="OnSelectPythonDirectoryClick"
|
||||
Content="{DynamicResource selectPythonDirectory}" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem Header="{DynamicResource plugin}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="200" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DockPanel Grid.Column="0">
|
||||
<TextBlock DockPanel.Dock="Top" Margin="10">
|
||||
<Hyperlink NavigateUri="{Binding Plugin, Mode=OneWay}" RequestNavigate="OnRequestNavigate">
|
||||
<Run Text="{DynamicResource browserMorePlugins}" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
<ListBox SelectedIndex="0" SelectedItem="{Binding SelectedPlugin}"
|
||||
ItemsSource="{Binding PluginViewModels}"
|
||||
Margin="10, 0, 10, 10" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="3">
|
||||
<Image Source="{Binding Image, IsAsync=True}"
|
||||
Width="32" Height="32" />
|
||||
<StackPanel Margin="3 0 3 0">
|
||||
<TextBlock Text="{Binding PluginPair.Metadata.Name}"
|
||||
ToolTip="{Binding PluginPair.Metadata.Name}" />
|
||||
<TextBlock Text="{Binding PluginPair.Metadata.Description}"
|
||||
ToolTip="{Binding PluginPair.Metadata.Description}"
|
||||
Opacity="0.5" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</DockPanel>
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<ContentControl DataContext="{Binding Path=SelectedPlugin}"
|
||||
Grid.ColumnSpan="1" Grid.Row="0" Margin="10 10 10 0">
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="48" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Source="{Binding Image, IsAsync=True}"
|
||||
Width="48" Height="48" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||
<Grid Margin="10,0,0,0" Grid.Column="1" HorizontalAlignment="Stretch">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding PluginPair.Metadata.Name}"
|
||||
ToolTip="{Binding PluginPair.Metadata.Name}"
|
||||
Grid.Column="0"
|
||||
Cursor="Hand" MouseUp="OnPluginNameClick" FontSize="24"
|
||||
HorizontalAlignment="Left" />
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Bottom" Opacity="0.5">
|
||||
<TextBlock Text="{DynamicResource author}" />
|
||||
<TextBlock Text=": " />
|
||||
<TextBlock Text="{Binding PluginPair.Metadata.Author}" ToolTip="{Binding PluginPair.Metadata.Author}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<TextBlock Text="{Binding PluginPair.Metadata.Description}"
|
||||
ToolTip="{Binding PluginPair.Metadata.Description}"
|
||||
Grid.Row="1" Opacity="0.5" />
|
||||
<DockPanel Grid.Row="2" Margin="0 10 0 8">
|
||||
<CheckBox IsChecked="{Binding PluginPair.Metadata.Disabled}" Checked="OnPluginToggled"
|
||||
Unchecked="OnPluginToggled">
|
||||
<TextBlock Text="{DynamicResource disable}" />
|
||||
</CheckBox>
|
||||
<TextBlock Text="{DynamicResource actionKeywords}"
|
||||
Visibility="{Binding ActionKeywordsVisibility}"
|
||||
Margin="20 0 0 0" />
|
||||
<TextBlock Text="{Binding ActionKeywordsText}"
|
||||
Visibility="{Binding ActionKeywordsVisibility}"
|
||||
ToolTip="Change Action Keywords"
|
||||
Margin="5 0 0 0" Cursor="Hand" Foreground="Blue"
|
||||
MouseUp="OnPluginActionKeywordsClick" />
|
||||
<TextBlock Text="{Binding InitilizaTime}" Margin="10 0 0 0" />
|
||||
<TextBlock Text="{Binding QueryTime}" Margin="10 0 0 0" />
|
||||
<TextBlock Text="{DynamicResource pluginDirectory}"
|
||||
HorizontalAlignment="Right" Cursor="Hand"
|
||||
MouseUp="OnPluginDirecotyClick" Foreground="Blue" />
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ContentControl>
|
||||
|
||||
<ContentControl Content="{Binding SettingProvider}"
|
||||
Grid.ColumnSpan="1" Grid.Row="1"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
<TabItem Header="{DynamicResource theme}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="200" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DockPanel Grid.Column="0">
|
||||
<TextBlock DockPanel.Dock="Top" Margin="10" HorizontalAlignment="Left">
|
||||
<Hyperlink NavigateUri="{Binding Theme, Mode=OneWay}" RequestNavigate="OnRequestNavigate">
|
||||
<Run Text="{DynamicResource browserMoreThemes}" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
|
||||
<ListBox SelectedItem="{Binding SelectedTheme}" ItemsSource="{Binding Themes}"
|
||||
Margin="10, 0, 10, 10" Width="180"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
|
||||
</DockPanel>
|
||||
<Grid Margin="0" Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="100" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Background="{Binding PreviewBackground}" Grid.Row="0" Margin="0">
|
||||
<StackPanel Orientation="Horizontal" Margin="10"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Border Width="500" Style="{DynamicResource WindowBorderStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox Text="{DynamicResource helloWox}" IsReadOnly="True"
|
||||
Style="{DynamicResource QueryBoxStyle}" Grid.Row="0" />
|
||||
<ContentControl Visibility="Visible" Grid.Row="1">
|
||||
<wox:ResultListBox DataContext="{Binding PreviewResults}" />
|
||||
</ContentControl>
|
||||
</Grid>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Margin="0 10 0 10" Orientation="Vertical">
|
||||
<StackPanel Orientation="Horizontal" Margin="2">
|
||||
<TextBlock Text="{DynamicResource queryBoxFont}" />
|
||||
<ComboBox ItemsSource="{Binding Source={StaticResource SortedFonts}}"
|
||||
SelectedItem="{Binding SelectedQueryBoxFont}"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top" Width="160" Margin="10 -2 5 0" />
|
||||
<ComboBox ItemsSource="{Binding SelectedQueryBoxFont.FamilyTypefaces}"
|
||||
SelectedItem="{Binding SelectedQueryBoxFontFaces}"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Width="120" Margin="0 -2 0 0">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ItemsControl ItemsSource="{Binding AdjustedFaceNames}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Value}" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="2">
|
||||
<TextBlock Text="{DynamicResource resultItemFont}" />
|
||||
<ComboBox ItemsSource="{Binding Source={StaticResource SortedFonts}}"
|
||||
SelectedItem="{Binding SelectedResultFont}"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Width="160" Margin="5 -2 5 0" />
|
||||
<ComboBox ItemsSource="{Binding SelectedResultFont.FamilyTypefaces}"
|
||||
SelectedItem="{Binding SelectedResultFontFaces}"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Width="120" Margin="0 -2 0 0">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ItemsControl ItemsSource="{Binding AdjustedFaceNames}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Value}" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
<TabItem Header="{DynamicResource hotkey}">
|
||||
<Grid Margin="10">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="35" />
|
||||
<RowDefinition Height="20" />
|
||||
<RowDefinition Height="400" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Center" Height="24"
|
||||
Margin="0,4,0,3">
|
||||
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0" Text="{DynamicResource woxHotkey}" />
|
||||
<wox:HotkeyControl x:Name="HotkeyControl" HotkeyChanged="OnHotkeyChanged"
|
||||
Loaded="OnHotkeyControlLoaded" />
|
||||
</StackPanel>
|
||||
<TextBlock VerticalAlignment="Center" Grid.Row="1" Margin="0,3,10,2"
|
||||
Text="{DynamicResource customQueryHotkey}" />
|
||||
<ListView ItemsSource="{Binding Settings.CustomPluginHotkeys}"
|
||||
SelectedItem="{Binding SelectedCustomPluginHotkey}"
|
||||
Margin="0 5 0 0" Grid.Row="2">
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Header="{DynamicResource hotkey}" Width="180">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate DataType="userSettings:CustomPluginHotkey">
|
||||
<TextBlock Text="{Binding Hotkey}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="{DynamicResource actionKeywords}" Width="500">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate DataType="userSettings:CustomPluginHotkey">
|
||||
<TextBlock Text="{Binding ActionKeyword}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<StackPanel Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Bottom"
|
||||
Orientation="Horizontal" Height="40" Width="360">
|
||||
<Button Click="OnDeleteCustomHotkeyClick" Width="100"
|
||||
Margin="10" Content="{DynamicResource delete}" />
|
||||
<Button Click="OnnEditCustomHotkeyClick" Width="100" Margin="10"
|
||||
Content="{DynamicResource edit}" />
|
||||
<Button Click="OnAddCustomeHotkeyClick" Width="100" Margin="10"
|
||||
Content="{DynamicResource add}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
<TabItem Header="{DynamicResource proxy}">
|
||||
<StackPanel>
|
||||
<CheckBox Margin="10" IsChecked="{Binding Settings.Proxy.Enabled}">
|
||||
<TextBlock Text="{DynamicResource enableProxy}" />
|
||||
</CheckBox>
|
||||
<Grid Margin="10" IsEnabled="{Binding Settings.Proxy.Enabled}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100" />
|
||||
<ColumnDefinition Width="200" />
|
||||
<ColumnDefinition Width="100" />
|
||||
<ColumnDefinition Width="200" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{DynamicResource server}" Grid.Row="0" Grid.Column="0" Padding="5" />
|
||||
<TextBox Text="{Binding Settings.Proxy.Server}" Grid.Row="0" Grid.Column="1" Padding="5" />
|
||||
<TextBlock Text="{DynamicResource port}" Grid.Row="0" Grid.Column="2" Padding="5" />
|
||||
<TextBox Text="{Binding Settings.Proxy.Port, TargetNullValue={x:Static sys:String.Empty} }" Grid.Row="0" Grid.Column="3" Padding="5" />
|
||||
<TextBlock Text="{DynamicResource userName}" Grid.Row="1" Grid.Column="0" Padding="5" />
|
||||
<TextBox Text="{Binding Settings.Proxy.UserName}" Grid.Row="1" Grid.Column="1" Padding="5" />
|
||||
<TextBlock Text="{DynamicResource password}" Grid.Row="1" Grid.Column="2" Padding="5" />
|
||||
<TextBox Text="{Binding Settings.Proxy.Password}" Grid.Row="1" Grid.Column="3" Padding="5" />
|
||||
</Grid>
|
||||
<Button Content="{DynamicResource testProxy}" IsEnabled="{Binding Settings.Proxy.Enabled}"
|
||||
Width="80" HorizontalAlignment="Left" Margin="10" Click="OnTestProxyClick" />
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem Header="{DynamicResource about}">
|
||||
<Grid>
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Margin" Value="10, 10, 0, 0" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="{Binding ActivatedTimes, Mode=OneWay}" />
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="{DynamicResource website}" />
|
||||
<TextBlock Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left">
|
||||
<Hyperlink NavigateUri="{Binding Github, Mode=OneWay}" RequestNavigate="OnRequestNavigate">
|
||||
<Run Text="{Binding Github, Mode=OneWay}" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="{DynamicResource version}" />
|
||||
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Version}" />
|
||||
<TextBlock Grid.Row="3" Grid.Column="0" Text="{DynamicResource releaseNotes}" />
|
||||
<TextBlock Grid.Row="3" Grid.Column="1">
|
||||
<Hyperlink NavigateUri="{Binding ReleaseNotes, Mode=OneWay}"
|
||||
RequestNavigate="OnRequestNavigate">
|
||||
<Run Text="{Binding ReleaseNotes, Mode=OneWay}" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
<Button Grid.Row="4" Grid.Column="0"
|
||||
Content="{DynamicResource checkUpdates}" Click="OnCheckUpdates"
|
||||
HorizontalAlignment="Left" Margin="10 10 10 10" />
|
||||
</Grid>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
</Window>
|
||||
293
src/modules/launcher/Wox/SettingWindow.xaml.cs
Normal file
@@ -0,0 +1,293 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Win32;
|
||||
using NHotkey;
|
||||
using NHotkey.Wpf;
|
||||
using Wox.Core;
|
||||
using Wox.Core.Plugin;
|
||||
using Wox.Core.Resource;
|
||||
using Wox.Infrastructure.Hotkey;
|
||||
using Wox.Infrastructure.UserSettings;
|
||||
using Wox.Plugin;
|
||||
using Wox.ViewModel;
|
||||
|
||||
namespace Wox
|
||||
{
|
||||
public partial class SettingWindow
|
||||
{
|
||||
private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
|
||||
|
||||
public readonly IPublicAPI _api;
|
||||
private Settings _settings;
|
||||
private SettingWindowViewModel _viewModel;
|
||||
|
||||
public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
|
||||
{
|
||||
InitializeComponent();
|
||||
_settings = viewModel.Settings;
|
||||
DataContext = viewModel;
|
||||
_viewModel = viewModel;
|
||||
_api = api;
|
||||
}
|
||||
|
||||
#region General
|
||||
|
||||
void OnLanguageChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
var language = (Language)e.AddedItems[0];
|
||||
InternationalizationManager.Instance.ChangeLanguage(language);
|
||||
}
|
||||
|
||||
private void OnAutoStartupChecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SetStartup();
|
||||
}
|
||||
|
||||
private void OnAutoStartupUncheck(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RemoveStartup();
|
||||
}
|
||||
|
||||
public static void SetStartup()
|
||||
{
|
||||
using (var key = Registry.CurrentUser.OpenSubKey(StartupPath, true))
|
||||
{
|
||||
key?.SetValue(Infrastructure.Constant.Wox, Infrastructure.Constant.ExecutablePath);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveStartup()
|
||||
{
|
||||
using (var key = Registry.CurrentUser.OpenSubKey(StartupPath, true))
|
||||
{
|
||||
key?.DeleteValue(Infrastructure.Constant.Wox, false);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool StartupSet()
|
||||
{
|
||||
using (var key = Registry.CurrentUser.OpenSubKey(StartupPath, true))
|
||||
{
|
||||
var path = key?.GetValue(Infrastructure.Constant.Wox) as string;
|
||||
if (path != null)
|
||||
{
|
||||
return path == Infrastructure.Constant.ExecutablePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSelectPythonDirectoryClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var dlg = new System.Windows.Forms.FolderBrowserDialog
|
||||
{
|
||||
SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
|
||||
};
|
||||
|
||||
var result = dlg.ShowDialog();
|
||||
if (result == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
string pythonDirectory = dlg.SelectedPath;
|
||||
if (!string.IsNullOrEmpty(pythonDirectory))
|
||||
{
|
||||
var pythonPath = Path.Combine(pythonDirectory, PluginsLoader.PythonExecutable);
|
||||
if (File.Exists(pythonPath))
|
||||
{
|
||||
_settings.PluginSettings.PythonDirectory = pythonDirectory;
|
||||
MessageBox.Show("Remember to restart Wox use new Python path");
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Can't find python in given directory");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Hotkey
|
||||
|
||||
private void OnHotkeyControlLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
HotkeyControl.SetHotkey(_viewModel.Settings.Hotkey, false);
|
||||
}
|
||||
|
||||
void OnHotkeyChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (HotkeyControl.CurrentHotkeyAvailable)
|
||||
{
|
||||
SetHotkey(HotkeyControl.CurrentHotkey, (o, args) =>
|
||||
{
|
||||
if (!Application.Current.MainWindow.IsVisible)
|
||||
{
|
||||
Application.Current.MainWindow.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
Application.Current.MainWindow.Visibility = Visibility.Hidden;
|
||||
}
|
||||
});
|
||||
RemoveHotkey(_settings.Hotkey);
|
||||
_settings.Hotkey = HotkeyControl.CurrentHotkey.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
void SetHotkey(HotkeyModel hotkey, EventHandler<HotkeyEventArgs> action)
|
||||
{
|
||||
string hotkeyStr = hotkey.ToString();
|
||||
try
|
||||
{
|
||||
HotkeyManager.Current.AddOrReplace(hotkeyStr, hotkey.CharKey, hotkey.ModifierKeys, action);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
string errorMsg =
|
||||
string.Format(InternationalizationManager.Instance.GetTranslation("registerHotkeyFailed"), hotkeyStr);
|
||||
MessageBox.Show(errorMsg);
|
||||
}
|
||||
}
|
||||
|
||||
void RemoveHotkey(string hotkeyStr)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(hotkeyStr))
|
||||
{
|
||||
HotkeyManager.Current.Remove(hotkeyStr);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDeleteCustomHotkeyClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var item = _viewModel.SelectedCustomPluginHotkey;
|
||||
if (item == null)
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("pleaseSelectAnItem"));
|
||||
return;
|
||||
}
|
||||
|
||||
string deleteWarning =
|
||||
string.Format(InternationalizationManager.Instance.GetTranslation("deleteCustomHotkeyWarning"),
|
||||
item.Hotkey);
|
||||
if (
|
||||
MessageBox.Show(deleteWarning, InternationalizationManager.Instance.GetTranslation("delete"),
|
||||
MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
||||
{
|
||||
_settings.CustomPluginHotkeys.Remove(item);
|
||||
RemoveHotkey(item.Hotkey);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnnEditCustomHotkeyClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var item = _viewModel.SelectedCustomPluginHotkey;
|
||||
if (item != null)
|
||||
{
|
||||
CustomQueryHotkeySetting window = new CustomQueryHotkeySetting(this, _settings);
|
||||
window.UpdateItem(item);
|
||||
window.ShowDialog();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("pleaseSelectAnItem"));
|
||||
}
|
||||
}
|
||||
|
||||
private void OnAddCustomeHotkeyClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
new CustomQueryHotkeySetting(this, _settings).ShowDialog();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Plugin
|
||||
|
||||
private void OnPluginToggled(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var id = _viewModel.SelectedPlugin.PluginPair.Metadata.ID;
|
||||
// used to sync the current status from the plugin manager into the setting to keep consistency after save
|
||||
_settings.PluginSettings.Plugins[id].Disabled = _viewModel.SelectedPlugin.PluginPair.Metadata.Disabled;
|
||||
}
|
||||
|
||||
private void OnPluginActionKeywordsClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (e.ChangedButton == MouseButton.Left)
|
||||
{
|
||||
var id = _viewModel.SelectedPlugin.PluginPair.Metadata.ID;
|
||||
ActionKeywords changeKeywordsWindow = new ActionKeywords(id, _settings);
|
||||
changeKeywordsWindow.ShowDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPluginNameClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (e.ChangedButton == MouseButton.Left)
|
||||
{
|
||||
var website = _viewModel.SelectedPlugin.PluginPair.Metadata.Website;
|
||||
if (!string.IsNullOrEmpty(website))
|
||||
{
|
||||
var uri = new Uri(website);
|
||||
if (Uri.CheckSchemeName(uri.Scheme))
|
||||
{
|
||||
Process.Start(website);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPluginDirecotyClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (e.ChangedButton == MouseButton.Left)
|
||||
{
|
||||
var directory = _viewModel.SelectedPlugin.PluginPair.Metadata.PluginDirectory;
|
||||
if (!string.IsNullOrEmpty(directory) && Directory.Exists(directory))
|
||||
{
|
||||
Process.Start(directory);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Proxy
|
||||
|
||||
private void OnTestProxyClick(object sender, RoutedEventArgs e)
|
||||
{ // TODO: change to command
|
||||
var msg = _viewModel.TestProxy();
|
||||
MessageBox.Show(msg); // TODO: add message box service
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private async void OnCheckUpdates(object sender, RoutedEventArgs e)
|
||||
{
|
||||
_viewModel.UpdateApp(); // TODO: change to command
|
||||
}
|
||||
|
||||
private void OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void OnClosed(object sender, EventArgs e)
|
||||
{
|
||||
_viewModel.Save();
|
||||
PluginManager.Save();
|
||||
}
|
||||
|
||||
private void OnCloseExecuted(object sender, ExecutedRoutedEventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
28
src/modules/launcher/Wox/Settings.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
namespace Wox.Properties {
|
||||
|
||||
|
||||
// This class allows you to handle specific events on the settings class:
|
||||
// The SettingChanging event is raised before a setting's value is changed.
|
||||
// The PropertyChanged event is raised after a setting's value is changed.
|
||||
// The SettingsLoaded event is raised after the setting values are loaded.
|
||||
// The SettingsSaving event is raised before the setting values are saved.
|
||||
internal sealed partial class Settings {
|
||||
|
||||
public Settings() {
|
||||
// // To add event handlers for saving and changing settings, uncomment the lines below:
|
||||
//
|
||||
// this.SettingChanging += this.SettingChangingEventHandler;
|
||||
//
|
||||
// this.SettingsSaving += this.SettingsSavingEventHandler;
|
||||
//
|
||||
}
|
||||
|
||||
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
|
||||
// Add code to handle the SettingChangingEvent event here.
|
||||
}
|
||||
|
||||
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
|
||||
// Add code to handle the SettingsSaving event here.
|
||||
}
|
||||
}
|
||||
}
|
||||
45
src/modules/launcher/Wox/Storage/HistoryItem.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
|
||||
namespace Wox.Storage
|
||||
{
|
||||
public class HistoryItem
|
||||
{
|
||||
public string Query { get; set; }
|
||||
public DateTime ExecutedDateTime { get; set; }
|
||||
|
||||
public string GetTimeAgo()
|
||||
{
|
||||
return DateTimeAgo(ExecutedDateTime);
|
||||
}
|
||||
|
||||
private string DateTimeAgo(DateTime dt)
|
||||
{
|
||||
var span = DateTime.Now - dt;
|
||||
if (span.Days > 365)
|
||||
{
|
||||
int years = (span.Days / 365);
|
||||
if (span.Days % 365 != 0)
|
||||
years += 1;
|
||||
return $"about {years} {(years == 1 ? "year" : "years")} ago";
|
||||
}
|
||||
if (span.Days > 30)
|
||||
{
|
||||
int months = (span.Days / 30);
|
||||
if (span.Days % 31 != 0)
|
||||
months += 1;
|
||||
return $"about {months} {(months == 1 ? "month" : "months")} ago";
|
||||
}
|
||||
if (span.Days > 0)
|
||||
return $"about {span.Days} {(span.Days == 1 ? "day" : "days")} ago";
|
||||
if (span.Hours > 0)
|
||||
return $"about {span.Hours} {(span.Hours == 1 ? "hour" : "hours")} ago";
|
||||
if (span.Minutes > 0)
|
||||
return $"about {span.Minutes} {(span.Minutes == 1 ? "minute" : "minutes")} ago";
|
||||
if (span.Seconds > 5)
|
||||
return $"about {span.Seconds} seconds ago";
|
||||
if (span.Seconds <= 5)
|
||||
return "just now";
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
37
src/modules/launcher/Wox/Storage/QueryHistory.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using Wox.Plugin;
|
||||
|
||||
namespace Wox.Storage
|
||||
{
|
||||
public class History
|
||||
{
|
||||
public List<HistoryItem> Items { get; set; } = new List<HistoryItem>();
|
||||
|
||||
private int _maxHistory = 300;
|
||||
|
||||
public void Add(string query)
|
||||
{
|
||||
if (string.IsNullOrEmpty(query)) return;
|
||||
if (Items.Count > _maxHistory)
|
||||
{
|
||||
Items.RemoveAt(0);
|
||||
}
|
||||
|
||||
if (Items.Count > 0 && Items.Last().Query == query)
|
||||
{
|
||||
Items.Last().ExecutedDateTime = DateTime.Now;
|
||||
}
|
||||
else
|
||||
{
|
||||
Items.Add(new HistoryItem
|
||||
{
|
||||
Query = query,
|
||||
ExecutedDateTime = DateTime.Now
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
58
src/modules/launcher/Wox/Storage/TopMostRecord.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using Wox.Plugin;
|
||||
|
||||
namespace Wox.Storage
|
||||
{
|
||||
// todo this class is not thread safe.... but used from multiple threads.
|
||||
public class TopMostRecord
|
||||
{
|
||||
[JsonProperty]
|
||||
private Dictionary<string, Record> records = new Dictionary<string, Record>();
|
||||
|
||||
internal bool IsTopMost(Result result)
|
||||
{
|
||||
if (records.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// since this dictionary should be very small (or empty) going over it should be pretty fast.
|
||||
return records.Any(o => o.Value.Title == result.Title
|
||||
&& o.Value.SubTitle == result.SubTitle
|
||||
&& o.Value.PluginID == result.PluginID
|
||||
&& o.Key == result.OriginQuery.RawQuery);
|
||||
}
|
||||
|
||||
internal void Remove(Result result)
|
||||
{
|
||||
records.Remove(result.OriginQuery.RawQuery);
|
||||
}
|
||||
|
||||
internal void AddOrUpdate(Result result)
|
||||
{
|
||||
var record = new Record
|
||||
{
|
||||
PluginID = result.PluginID,
|
||||
Title = result.Title,
|
||||
SubTitle = result.SubTitle
|
||||
};
|
||||
records[result.OriginQuery.RawQuery] = record;
|
||||
|
||||
}
|
||||
|
||||
public void Load(Dictionary<string, Record> dictionary)
|
||||
{
|
||||
records = dictionary;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class Record
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public string SubTitle { get; set; }
|
||||
public string PluginID { get; set; }
|
||||
}
|
||||
}
|
||||
36
src/modules/launcher/Wox/Storage/UserSelectedRecord.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using Wox.Infrastructure.Storage;
|
||||
using Wox.Plugin;
|
||||
|
||||
namespace Wox.Storage
|
||||
{
|
||||
public class UserSelectedRecord
|
||||
{
|
||||
[JsonProperty]
|
||||
private Dictionary<string, int> records = new Dictionary<string, int>();
|
||||
|
||||
public void Add(Result result)
|
||||
{
|
||||
var key = result.ToString();
|
||||
if (records.TryGetValue(key, out int value))
|
||||
{
|
||||
records[key] = value + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
records.Add(key, 1);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int GetSelectedCount(Result result)
|
||||
{
|
||||
if (records.TryGetValue(result.ToString(), out int value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
141
src/modules/launcher/Wox/Themes/Base.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<Style x:Key="BaseQueryBoxStyle" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="FontSize" Value="28" />
|
||||
<Setter Property="FontWeight" Value="Medium" />
|
||||
<Setter Property="Height" Value="46" />
|
||||
<Setter Property="Background" Value="#616161" />
|
||||
<Setter Property="Foreground" Value="#E3E0E3" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
|
||||
</Style>
|
||||
<Style x:Key="BaseWindowBorderStyle" TargetType="{x:Type Border}">
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="CornerRadius" Value="0" />
|
||||
<Setter Property="Background" Value="#424242"></Setter>
|
||||
<Setter Property="Padding" Value="8 10 8 8" />
|
||||
</Style>
|
||||
<Style x:Key="BaseWindowStyle" TargetType="{x:Type Window}">
|
||||
<Setter Property="Width" Value="800" />
|
||||
<Setter Property="MaxWidth" Value="800" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BasePendingLineStyle" TargetType="{x:Type Line}">
|
||||
<Setter Property="Stroke" Value="Blue" />
|
||||
</Style>
|
||||
|
||||
<!-- Item Style -->
|
||||
<Style x:Key="BaseItemTitleStyle" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#FFFFF8" />
|
||||
<Setter Property="FontSize" Value="16" />
|
||||
<Setter Property="FontWeight" Value="Medium" />
|
||||
</Style>
|
||||
<Style x:Key="BaseItemSubTitleStyle" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#D9D9D4" />
|
||||
</Style>
|
||||
<Style x:Key="BaseItemNumberStyle" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||
<Setter Property="Margin" Value="3 0 0 0" />
|
||||
<Setter Property="FontSize" Value="22" />
|
||||
</Style>
|
||||
<Style x:Key="BaseItemTitleSelectedStyle" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#FFFFF8" />
|
||||
<Setter Property="FontSize" Value="16" />
|
||||
<Setter Property="FontWeight" Value="Medium" />
|
||||
</Style>
|
||||
<Style x:Key="BaseItemSubTitleSelectedStyle" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#D9D9D4" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BaseListboxStyle" TargetType="{x:Type ListBox}">
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
|
||||
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ListBox">
|
||||
<ScrollViewer Focusable="false" Template="{DynamicResource ScrollViewerControlTemplate}">
|
||||
<VirtualizingStackPanel IsItemsHost="True" />
|
||||
</ScrollViewer>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ScrollViewer Style -->
|
||||
<ControlTemplate x:Key="ScrollViewerControlTemplate" TargetType="{x:Type ScrollViewer}">
|
||||
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!--content in the left of ScrollViewer, just default-->
|
||||
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter"
|
||||
CanContentScroll="{TemplateBinding CanContentScroll}"
|
||||
CanHorizontallyScroll="False"
|
||||
CanVerticallyScroll="False"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
Content="{TemplateBinding Content}"
|
||||
Grid.Column="0"
|
||||
Margin="{TemplateBinding Padding}"
|
||||
Grid.Row="0" />
|
||||
|
||||
<!--Scrollbar in thr rigth of ScrollViewer-->
|
||||
<ScrollBar x:Name="PART_VerticalScrollBar"
|
||||
AutomationProperties.AutomationId="VerticalScrollBar"
|
||||
Cursor="Arrow"
|
||||
Grid.Column="1"
|
||||
Margin="3 0 0 0"
|
||||
Maximum="{TemplateBinding ScrollableHeight}"
|
||||
Minimum="0"
|
||||
Grid.Row="0"
|
||||
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
|
||||
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
ViewportSize="{TemplateBinding ViewportHeight}"
|
||||
Style="{DynamicResource ScrollBarStyle}" />
|
||||
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<!-- button style in the middle of the scrollbar -->
|
||||
<Style x:Key="BaseThumbStyle" TargetType="{x:Type Thumb}">
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
||||
<Setter Property="IsTabStop" Value="false"/>
|
||||
<Setter Property="Focusable" Value="false"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Thumb}">
|
||||
<Border CornerRadius="2" DockPanel.Dock="Right" Background="#616161" BorderBrush="Transparent" BorderThickness="0" />
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BaseScrollBarStyle" TargetType="{x:Type ScrollBar}">
|
||||
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false" />
|
||||
<Setter Property="Stylus.IsFlicksEnabled" Value="false" />
|
||||
<!-- must set min width -->
|
||||
<Setter Property="MinWidth" Value="0"/>
|
||||
<Setter Property="Width" Value="5"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ScrollBar}">
|
||||
<DockPanel>
|
||||
<Track x:Name="PART_Track" IsDirectionReversed="true" DockPanel.Dock="Right">
|
||||
<Track.Thumb>
|
||||
<Thumb Style="{DynamicResource ThumbStyle}"/>
|
||||
</Track.Thumb>
|
||||
</Track>
|
||||
</DockPanel>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
1
src/modules/launcher/Wox/Themes/BlackAndWhite.xaml
Normal file
@@ -0,0 +1 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Base.xaml"></ResourceDictionary> </ResourceDictionary.MergedDictionaries> <Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}"> <Setter Property="Background" Value="#000000"/> <Setter Property="Foreground" Value="#ffffff" /> </Style> <Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}"> <Setter Property="Background" Value="#000000"></Setter> </Style> <Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource BaseWindowStyle}" > </Style> <Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}" > </Style> <Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}" > <Setter Property="Foreground" Value="#FFFFF8"></Setter> </Style> <Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" > <Setter Property="Foreground" Value="#D9D9D4"></Setter> </Style> <Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="#FFFFF8" /> </Style> <Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="#D9D9D4" /> </Style> <SolidColorBrush x:Key="ItemSelectedBackgroundColor">#4F6180</SolidColorBrush> <Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}"> </Style> <Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}"> </Style> </ResourceDictionary>
|
||||
58
src/modules/launcher/Wox/Themes/BlurBlack.xaml
Normal file
@@ -0,0 +1,58 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<system:Boolean x:Key="ThemeBlurEnabled">True</system:Boolean>
|
||||
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF" />
|
||||
<Setter Property="Background" Value="#01000001" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="Black" Opacity="0.3"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowStyle" BasedOn="{StaticResource BaseWindowStyle}" TargetType="{x:Type Window}">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="Black" Opacity="0.3"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}">
|
||||
</Style>
|
||||
|
||||
<!-- Item Style -->
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Margin" Value="0, -10"/>
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Margin" Value="0, -10"/>
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#356ef3</SolidColorBrush>
|
||||
|
||||
<!-- button style in the middle of the scrollbar -->
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}">
|
||||
<Setter Property="Background" Value="#a0a0a0"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
58
src/modules/launcher/Wox/Themes/BlurWhite.xaml
Normal file
@@ -0,0 +1,58 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<system:Boolean x:Key="ThemeBlurEnabled">True</system:Boolean>
|
||||
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Foreground" Value="#FF000000" />
|
||||
<Setter Property="Background" Value="#01FFFFFF" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="White" Opacity="0.1"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowStyle" BasedOn="{StaticResource BaseWindowStyle}" TargetType="{x:Type Window}">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="White" Opacity="0.1"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}">
|
||||
</Style>
|
||||
|
||||
<!-- Item Style -->
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Margin" Value="0, -10"/>
|
||||
<Setter Property="Foreground" Value="#FF000000"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#FF000000"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Margin" Value="0, -10"/>
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#FFFFFFFF"/>
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#356ef3</SolidColorBrush>
|
||||
|
||||
<!-- button style in the middle of the scrollbar -->
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}">
|
||||
<Setter Property="Background" Value="#a0a0a0"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
40
src/modules/launcher/Wox/Themes/Dark.xaml
Normal file
@@ -0,0 +1,40 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowStyle" BasedOn="{StaticResource BaseWindowStyle}" TargetType="{x:Type Window}">
|
||||
</Style>
|
||||
|
||||
|
||||
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}">
|
||||
</Style>
|
||||
|
||||
<!-- Item Style -->
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}">
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}" >
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#4F6180</SolidColorBrush>
|
||||
|
||||
<!-- button style in the middle of the scrollbar -->
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}">
|
||||
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
49
src/modules/launcher/Wox/Themes/Gray.xaml
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Background" Value="#EDEDED" />
|
||||
<Setter Property="Foreground" Value="#222222" />
|
||||
<Setter Property="FontSize" Value="38" />
|
||||
</Style>
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="BorderBrush" Value="#B0B0B0" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="Background" Value="#EDEDED"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource BaseWindowStyle}" >
|
||||
</Style>
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}" />
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#333333" />
|
||||
<Setter Property="FontWeight" Value="Bold" />
|
||||
</Style>
|
||||
<Style x:Key="ItemNumberStyle" BasedOn="{StaticResource BaseItemNumberStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#A6A6A6" />
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#A6A6A6" />
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#FFFFF8" />
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#ffffff" />
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#00AAF6</SolidColorBrush>
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Thumb}">
|
||||
<Border CornerRadius="2" DockPanel.Dock="Right" Background="#DBDADB" BorderBrush="Transparent" BorderThickness="0" />
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}" >
|
||||
<Setter Property="Width" Value="3"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
50
src/modules/launcher/Wox/Themes/Light.xaml
Normal file
@@ -0,0 +1,50 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Background" Value="#EBEBEB"/>
|
||||
<Setter Property="Foreground" Value="#000000" />
|
||||
</Style>
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="BorderBrush" Value="#AAAAAA" />
|
||||
<Setter Property="BorderThickness" Value="5" />
|
||||
<Setter Property="Background" Value="#ffffff"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource BaseWindowStyle}" >
|
||||
</Style>
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}" >
|
||||
</Style>
|
||||
|
||||
<!-- Item Style -->
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#000000"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#000000"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#F6F6FF" />
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#F6F6FF" />
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#3875D7</SolidColorBrush>
|
||||
|
||||
<!-- button style in the middle of the scrollbar -->
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Thumb}">
|
||||
<Border CornerRadius="2" DockPanel.Dock="Right" Background="#DEDEDE" BorderBrush="Transparent" BorderThickness="0" />
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}">
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
33
src/modules/launcher/Wox/Themes/Metro Server.xaml
Normal file
@@ -0,0 +1,33 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Background" Value="#ffffff"/>
|
||||
<Setter Property="Foreground" Value="#000000" />
|
||||
</Style>
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="Background" Value="#001e4e"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource BaseWindowStyle}" >
|
||||
</Style>
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}" >
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#f5f5f5"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#c2c2c2"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#f5f5f5" />
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#c2c2c2" />
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#006ac1</SolidColorBrush>
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}">
|
||||
</Style>
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}">
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
30
src/modules/launcher/Wox/Themes/Pink.xaml
Normal file
@@ -0,0 +1,30 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/Themes/Base.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<Style x:Key="QueryBoxStyle" BasedOn="{StaticResource BaseQueryBoxStyle}" TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Background" Value="#1f1d1f"/>
|
||||
<Setter Property="Foreground" Value="#cc1081" />
|
||||
</Style>
|
||||
<Style x:Key="WindowBorderStyle" BasedOn="{StaticResource BaseWindowBorderStyle}" TargetType="{x:Type Border}">
|
||||
<Setter Property="Background" Value="#1f1d1f"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource BaseWindowStyle}" >
|
||||
</Style>
|
||||
<Style x:Key="PendingLineStyle" BasedOn="{StaticResource BasePendingLineStyle}" TargetType="{x:Type Line}" ></Style>
|
||||
<Style x:Key="ItemTitleStyle" BasedOn="{StaticResource BaseItemTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#f5f5f5"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleStyle" BasedOn="{StaticResource BaseItemSubTitleStyle}" TargetType="{x:Type TextBlock}" >
|
||||
<Setter Property="Foreground" Value="#c2c2c2"></Setter>
|
||||
</Style>
|
||||
<Style x:Key="ItemTitleSelectedStyle" BasedOn="{StaticResource BaseItemTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#f5f5f5" />
|
||||
</Style>
|
||||
<Style x:Key="ItemSubTitleSelectedStyle" BasedOn="{StaticResource BaseItemSubTitleSelectedStyle}" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="#c2c2c2" />
|
||||
</Style>
|
||||
<SolidColorBrush x:Key="ItemSelectedBackgroundColor">#cc1081</SolidColorBrush>
|
||||
<Style x:Key="ThumbStyle" BasedOn="{StaticResource BaseThumbStyle}" TargetType="{x:Type Thumb}"></Style>
|
||||
<Style x:Key="ScrollBarStyle" BasedOn="{StaticResource BaseScrollBarStyle}" TargetType="{x:Type ScrollBar}"></Style>
|
||||
</ResourceDictionary>
|
||||