Merge branch 'refs/heads/dev' into new-image-cache

This commit is contained in:
Hongtao Zhang 2024-05-29 17:36:22 -05:00
commit b02c13905e
390 changed files with 19970 additions and 12594 deletions

View file

@ -58,7 +58,7 @@ dotnet_style_prefer_conditional_expression_over_return = true:silent
###############################
# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
# Use PascalCase for constant fields
# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
@ -134,7 +134,7 @@ csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_namespace_declarations = file_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent

View file

@ -3,3 +3,6 @@ https
ssh
ubuntu
runcount
Firefox
Português
Português (Brasil)

View file

@ -74,6 +74,7 @@ WCA_ACCENT_POLICY
HGlobal
dopusrt
firefox
Firefox
msedge
svgc
ime
@ -97,6 +98,7 @@ Português
Português (Brasil)
Italiano
Slovenský
Tiếng Việt
Droplex
Preinstalled
errormetadatafile
@ -106,3 +108,4 @@ alreadyexists
JsonRPC
JsonRPCV2
Softpedia
img

View file

@ -18,7 +18,7 @@ jobs:
dotnet-version: 7.0.x
- name: Determine New Plugin Updates
uses: dorny/paths-filter@v2
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
@ -65,7 +65,7 @@ jobs:
- name: Publish BrowserBookmark
if: steps.changes.outputs.browserbookmark == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.BrowserBookmark"
files: "Flow.Launcher.Plugin.BrowserBookmark.zip"
@ -92,7 +92,7 @@ jobs:
- name: Publish Calculator
if: steps.changes.outputs.calculator == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Calculator"
files: "Flow.Launcher.Plugin.Calculator.zip"
@ -119,7 +119,7 @@ jobs:
- name: Publish Explorer
if: steps.changes.outputs.explorer == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Explorer"
files: "Flow.Launcher.Plugin.Explorer.zip"
@ -146,7 +146,7 @@ jobs:
- name: Publish PluginIndicator
if: steps.changes.outputs.pluginindicator == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.PluginIndicator"
files: "Flow.Launcher.Plugin.PluginIndicator.zip"
@ -173,7 +173,7 @@ jobs:
- name: Publish PluginsManager
if: steps.changes.outputs.pluginsmanager == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.PluginsManager"
files: "Flow.Launcher.Plugin.PluginsManager.zip"
@ -200,7 +200,7 @@ jobs:
- name: Publish ProcessKiller
if: steps.changes.outputs.processkiller == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.ProcessKiller"
files: "Flow.Launcher.Plugin.ProcessKiller.zip"
@ -227,7 +227,7 @@ jobs:
- name: Publish Program
if: steps.changes.outputs.program == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Program"
files: "Flow.Launcher.Plugin.Program.zip"
@ -254,7 +254,7 @@ jobs:
- name: Publish Shell
if: steps.changes.outputs.shell == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Shell"
files: "Flow.Launcher.Plugin.Shell.zip"
@ -281,7 +281,7 @@ jobs:
- name: Publish Sys
if: steps.changes.outputs.sys == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Sys"
files: "Flow.Launcher.Plugin.Sys.zip"
@ -308,7 +308,7 @@ jobs:
- name: Publish Url
if: steps.changes.outputs.url == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.Url"
files: "Flow.Launcher.Plugin.Url.zip"
@ -335,7 +335,7 @@ jobs:
- name: Publish WebSearch
if: steps.changes.outputs.websearch == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.WebSearch"
files: "Flow.Launcher.Plugin.WebSearch.zip"
@ -362,7 +362,7 @@ jobs:
- name: Publish WindowsSettings
if: steps.changes.outputs.windowssettings == 'true'
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
repository: "Flow-Launcher/Flow.Launcher.Plugin.WindowsSettings"
files: "Flow.Launcher.Plugin.WindowsSettings.zip"

View file

@ -5,6 +5,8 @@ using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
@ -16,6 +18,11 @@ namespace Flow.Launcher.Core.ExternalPlugins
private List<UserPlugin> plugins = new();
private static JsonSerializerOptions PluginStoreItemSerializationOption = new JsonSerializerOptions()
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault
};
/// <summary>
/// Fetch and deserialize the contents of a plugins.json file found at <see cref="ManifestFileUrl"/>.
/// We use conditional http requests to keep repeat requests fast.
@ -32,12 +39,15 @@ namespace Flow.Launcher.Core.ExternalPlugins
request.Headers.Add("If-None-Match", latestEtag);
using var response = await Http.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, token).ConfigureAwait(false);
using var response = await Http.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, token)
.ConfigureAwait(false);
if (response.StatusCode == HttpStatusCode.OK)
{
this.plugins = await response.Content.ReadFromJsonAsync<List<UserPlugin>>(cancellationToken: token).ConfigureAwait(false);
this.latestEtag = response.Headers.ETag.Tag;
this.plugins = await response.Content
.ReadFromJsonAsync<List<UserPlugin>>(PluginStoreItemSerializationOption, cancellationToken: token)
.ConfigureAwait(false);
this.latestEtag = response.Headers.ETag?.Tag;
Log.Info(nameof(CommunityPluginSource), $"Loaded {this.plugins.Count} plugins from {ManifestFileUrl}");
return this.plugins;
@ -49,7 +59,8 @@ namespace Flow.Launcher.Core.ExternalPlugins
}
else
{
Log.Warn(nameof(CommunityPluginSource), $"Failed to load resource {ManifestFileUrl} with response {response.StatusCode}");
Log.Warn(nameof(CommunityPluginSource),
$"Failed to load resource {ManifestFileUrl} with response {response.StatusCode}");
throw new Exception($"Failed to load resource {ManifestFileUrl} with response {response.StatusCode}");
}
}

View file

@ -1,4 +1,4 @@
using System;
using System;
namespace Flow.Launcher.Core.ExternalPlugins
{
@ -13,9 +13,11 @@ namespace Flow.Launcher.Core.ExternalPlugins
public string Website { get; set; }
public string UrlDownload { get; set; }
public string UrlSourceCode { get; set; }
public string LocalInstallPath { get; set; }
public string IcoPath { get; set; }
public DateTime LatestReleaseDate { get; set; }
public DateTime DateAdded { get; set; }
public DateTime? LatestReleaseDate { get; set; }
public DateTime? DateAdded { get; set; }
public bool IsFromLocalInstallPath => !string.IsNullOrEmpty(LocalInstallPath);
}
}

View file

@ -55,9 +55,10 @@
<ItemGroup>
<PackageReference Include="Droplex" Version="1.7.0" />
<PackageReference Include="FSharp.Core" Version="7.0.401" />
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="2.3.2" />
<PackageReference Include="Meziantou.Framework.Win32.Jobs" Version="3.2.1" />
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.0" />
<PackageReference Include="squirrel.windows" Version="1.5.2" NoWarn="NU1701" />
<PackageReference Include="StreamJsonRpc" Version="2.17.8" />
<PackageReference Include="StreamJsonRpc" Version="2.17.11" />
</ItemGroup>
<ItemGroup>

View file

@ -12,15 +12,9 @@ namespace Flow.Launcher.Core.Plugin
public ExecutablePluginV2(string filename)
{
StartInfo = new ProcessStartInfo
{
FileName = filename,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
StartInfo = new ProcessStartInfo { FileName = filename };
}
protected override MessageHandlerType MessageHandler { get; } = MessageHandlerType.NewLineDelimited;
}
}

View file

@ -37,7 +37,7 @@ namespace Flow.Launcher.Core.Plugin
_storage = new JsonStorage<ConcurrentDictionary<string, object>>(SettingPath);
Settings = await _storage.LoadAsync();
if (Settings != null || Configuration == null)
if (Configuration == null)
{
return;
}

View file

@ -15,8 +15,6 @@ namespace Flow.Launcher.Core.Plugin
{
internal abstract class JsonRPCPluginV2 : JsonRPCPluginBase, IAsyncDisposable, IAsyncReloadable, IResultUpdated
{
public abstract string SupportedLanguage { get; set; }
public const string JsonRpc = "JsonRPC";
protected abstract IDuplexPipe ClientPipe { get; set; }
@ -41,9 +39,23 @@ namespace Flow.Launcher.Core.Plugin
}
}
private JoinableTaskFactory JTF { get; } = new JoinableTaskFactory(new JoinableTaskContext());
public override List<Result> LoadContextMenus(Result selectedResult)
{
throw new NotImplementedException();
try
{
var res = JTF.Run(() => RPC.InvokeWithCancellationAsync<JsonRPCQueryResponseModel>("context_menu",
new object[] { selectedResult.ContextData }));
var results = ParseResults(res);
return results;
}
catch
{
return new List<Result>();
}
}
public override async Task<List<Result>> QueryAsync(Query query, CancellationToken token)
@ -51,7 +63,7 @@ namespace Flow.Launcher.Core.Plugin
try
{
var res = await RPC.InvokeWithCancellationAsync<JsonRPCQueryResponseModel>("query",
new[] { query },
new object[] { query, Settings.Inner },
token);
var results = ParseResults(res);
@ -88,12 +100,26 @@ namespace Flow.Launcher.Core.Plugin
public event ResultUpdatedEventHandler ResultsUpdated;
protected enum MessageHandlerType
{
HeaderDelimited,
LengthHeaderDelimited,
NewLineDelimited
}
protected abstract MessageHandlerType MessageHandler { get; }
private void SetupJsonRPC()
{
var formatter = new SystemTextJsonFormatter { JsonSerializerOptions = RequestSerializeOption };
var handler = new NewLineDelimitedMessageHandler(ClientPipe,
formatter);
IJsonRpcMessageHandler handler = MessageHandler switch
{
MessageHandlerType.HeaderDelimited => new HeaderDelimitedMessageHandler(ClientPipe, formatter),
MessageHandlerType.LengthHeaderDelimited => new LengthHeaderMessageHandler(ClientPipe, formatter),
MessageHandlerType.NewLineDelimited => new NewLineDelimitedMessageHandler(ClientPipe, formatter),
_ => throw new ArgumentOutOfRangeException()
};
RPC = new JsonRpc(handler, new JsonRPCPublicAPI(Context.API));
@ -113,11 +139,20 @@ namespace Flow.Launcher.Core.Plugin
return Task.CompletedTask;
}
public virtual ValueTask DisposeAsync()
public virtual async ValueTask DisposeAsync()
{
RPC?.Dispose();
ErrorStream?.Dispose();
return ValueTask.CompletedTask;
try
{
await RPC.InvokeAsync("close");
}
catch (RemoteMethodNotFoundException e)
{
}
finally
{
RPC?.Dispose();
ErrorStream?.Dispose();
}
}
}
}

View file

@ -28,20 +28,21 @@ namespace Flow.Launcher.Core.Plugin
protected override Task<Stream> RequestAsync(JsonRPCRequestModel request, CancellationToken token = default)
{
_startInfo.ArgumentList[1] = JsonSerializer.Serialize(request);
_startInfo.ArgumentList[1] = JsonSerializer.Serialize(request, RequestSerializeOption);
return ExecuteAsync(_startInfo, token);
}
protected override string Request(JsonRPCRequestModel rpcRequest, CancellationToken token = default)
{
// since this is not static, request strings will build up in ArgumentList if index is not specified
_startInfo.ArgumentList[1] = JsonSerializer.Serialize(rpcRequest);
_startInfo.ArgumentList[1] = JsonSerializer.Serialize(rpcRequest, RequestSerializeOption);
return Execute(_startInfo);
}
public override async Task InitAsync(PluginInitContext context)
{
_startInfo.ArgumentList.Add(context.CurrentPluginMetadata.ExecuteFilePath);
_startInfo.ArgumentList.Add(string.Empty);
_startInfo.WorkingDirectory = context.CurrentPluginMetadata.PluginDirectory;
await base.InitAsync(context);
}

View file

@ -10,29 +10,21 @@ namespace Flow.Launcher.Core.Plugin
/// <summary>
/// Execution of JavaScript & TypeScript plugins
/// </summary>
internal class NodePluginV2 : ProcessStreamPluginV2
internal sealed class NodePluginV2 : ProcessStreamPluginV2
{
public NodePluginV2(string filename)
{
StartInfo = new ProcessStartInfo
{
FileName = filename,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
StartInfo = new ProcessStartInfo { FileName = filename, };
}
public override string SupportedLanguage { get; set; }
protected override ProcessStartInfo StartInfo { get; set; }
public override async Task InitAsync(PluginInitContext context)
{
StartInfo.ArgumentList.Add(context.CurrentPluginMetadata.ExecuteFilePath);
StartInfo.ArgumentList.Add(string.Empty);
StartInfo.WorkingDirectory = context.CurrentPluginMetadata.PluginDirectory;
await base.InitAsync(context);
}
protected override MessageHandlerType MessageHandler { get; } = MessageHandlerType.HeaderDelimited;
}
}

View file

@ -380,7 +380,8 @@ namespace Flow.Launcher.Core.Plugin
/// <summary>
/// Update a plugin to new version, from a zip file. Will Delete zip after updating.
/// Update a plugin to new version, from a zip file. By default will remove the zip file if update is via url,
/// unless it's a local path installation
/// </summary>
public static void UpdatePlugin(PluginMetadata existingVersion, UserPlugin newVersion, string zipFilePath)
{
@ -390,11 +391,11 @@ namespace Flow.Launcher.Core.Plugin
}
/// <summary>
/// Install a plugin. Will Delete zip after updating.
/// Install a plugin. By default will remove the zip file if installation is from url, unless it's a local path installation
/// </summary>
public static void InstallPlugin(UserPlugin plugin, string zipFilePath)
{
InstallPlugin(plugin, zipFilePath, true);
InstallPlugin(plugin, zipFilePath, checkModified: true);
}
/// <summary>
@ -420,7 +421,9 @@ namespace Flow.Launcher.Core.Plugin
// Unzip plugin files to temp folder
var tempFolderPluginPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
System.IO.Compression.ZipFile.ExtractToDirectory(zipFilePath, tempFolderPluginPath);
File.Delete(zipFilePath);
if(!plugin.IsFromLocalInstallPath)
File.Delete(zipFilePath);
var pluginFolderPath = GetContainingFolderPathAfterUnzip(tempFolderPluginPath);

View file

@ -1,23 +1,38 @@
using System;
#nullable enable
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO.Pipelines;
using System.Threading.Tasks;
using Flow.Launcher.Infrastructure;
using Flow.Launcher.Plugin;
using Meziantou.Framework.Win32;
using Microsoft.VisualBasic.ApplicationServices;
using Nerdbank.Streams;
namespace Flow.Launcher.Core.Plugin
{
internal abstract class ProcessStreamPluginV2 : JsonRPCPluginV2
{
private static JobObject _jobObject = new JobObject();
public override string SupportedLanguage { get; set; }
protected sealed override IDuplexPipe ClientPipe { get; set; }
static ProcessStreamPluginV2()
{
_jobObject.SetLimits(new JobObjectLimits()
{
Flags = JobObjectLimitFlags.KillOnJobClose | JobObjectLimitFlags.DieOnUnhandledException |
JobObjectLimitFlags.SilentBreakawayOk
});
_jobObject.AssignProcess(Process.GetCurrentProcess());
}
protected sealed override IDuplexPipe ClientPipe { get; set; } = null!;
protected abstract ProcessStartInfo StartInfo { get; set; }
protected Process ClientProcess { get; set; }
protected Process ClientProcess { get; set; } = null!;
public override async Task InitAsync(PluginInitContext context)
{
@ -25,11 +40,17 @@ namespace Flow.Launcher.Core.Plugin
StartInfo.EnvironmentVariables["FLOW_PROGRAM_DIRECTORY"] = Constant.ProgramDirectory;
StartInfo.EnvironmentVariables["FLOW_APPLICATION_DIRECTORY"] = Constant.ApplicationDirectory;
StartInfo.ArgumentList.Add(context.CurrentPluginMetadata.ExecuteFilePath);
StartInfo.RedirectStandardError = true;
StartInfo.RedirectStandardInput = true;
StartInfo.RedirectStandardOutput = true;
StartInfo.CreateNoWindow = true;
StartInfo.UseShellExecute = false;
StartInfo.WorkingDirectory = context.CurrentPluginMetadata.PluginDirectory;
ClientProcess = Process.Start(StartInfo);
ArgumentNullException.ThrowIfNull(ClientProcess);
var process = Process.Start(StartInfo);
ArgumentNullException.ThrowIfNull(process);
ClientProcess = process;
_jobObject.AssignProcess(ClientProcess);
SetupPipe(ClientProcess);
@ -37,15 +58,15 @@ namespace Flow.Launcher.Core.Plugin
await base.InitAsync(context);
}
private void SetupPipe(Process process)
{
var (reader, writer) = (PipeReader.Create(process.StandardOutput.BaseStream),
PipeWriter.Create(process.StandardInput.BaseStream));
ClientPipe = new DuplexPipe(reader, writer);
}
public override async Task ReloadDataAsync()
{
var oldProcess = ClientProcess;
@ -57,8 +78,8 @@ namespace Flow.Launcher.Core.Plugin
await oldProcess.WaitForExitAsync();
oldProcess.Dispose();
}
public override async ValueTask DisposeAsync()
{
ClientProcess.Kill(true);

View file

@ -18,20 +18,11 @@ namespace Flow.Launcher.Core.Plugin
{
internal sealed class PythonPluginV2 : ProcessStreamPluginV2
{
public override string SupportedLanguage { get; set; } = AllowedLanguage.Python;
protected override ProcessStartInfo StartInfo { get; set; }
public PythonPluginV2(string filename)
{
StartInfo = new ProcessStartInfo
{
FileName = filename,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true
};
StartInfo = new ProcessStartInfo { FileName = filename, };
var path = Path.Combine(Constant.ProgramDirectory, JsonRpc);
StartInfo.EnvironmentVariables["PYTHONPATH"] = path;
@ -39,5 +30,13 @@ namespace Flow.Launcher.Core.Plugin
//Add -B flag to tell python don't write .py[co] files. Because .pyc contains location infos which will prevent python portable
StartInfo.ArgumentList.Add("-B");
}
public override async Task InitAsync(PluginInitContext context)
{
StartInfo.ArgumentList.Add(context.CurrentPluginMetadata.ExecuteFilePath);
await base.InitAsync(context);
}
protected override MessageHandlerType MessageHandler { get; } = MessageHandlerType.NewLineDelimited;
}
}

View file

@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
namespace Flow.Launcher.Core.Resource
{
@ -27,6 +27,8 @@ namespace Flow.Launcher.Core.Resource
public static Language Turkish = new Language("tr", "Türkçe");
public static Language Czech = new Language("cs", "čeština");
public static Language Arabic = new Language("ar", "اللغة العربية");
public static Language Vietnamese = new Language("vi-vn", "Tiếng Việt");
public static List<Language> GetAvailableLanguages()
{
@ -54,7 +56,8 @@ namespace Flow.Launcher.Core.Resource
Slovak,
Turkish,
Czech,
Arabic
Arabic,
Vietnamese
};
return languages;
}

View file

@ -96,13 +96,10 @@ namespace Flow.Launcher.Core.Resource
{
LoadLanguage(language);
}
// Culture of this thread
// Use CreateSpecificCulture to preserve possible user-override settings in Windows
// Culture of main thread
// Use CreateSpecificCulture to preserve possible user-override settings in Windows, if Flow's language culture is the same as Windows's
CultureInfo.CurrentCulture = CultureInfo.CreateSpecificCulture(language.LanguageCode);
CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture;
// App domain
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(language.LanguageCode);
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.DefaultThreadCurrentCulture;
// Raise event after culture is set
Settings.Language = language.LanguageCode;
@ -193,7 +190,7 @@ namespace Flow.Launcher.Core.Resource
{
p.Metadata.Name = pluginI18N.GetTranslatedPluginTitle();
p.Metadata.Description = pluginI18N.GetTranslatedPluginDescription();
pluginI18N.OnCultureInfoChanged(CultureInfo.DefaultThreadCurrentCulture);
pluginI18N.OnCultureInfoChanged(CultureInfo.CurrentCulture);
}
catch (Exception e)
{

View file

@ -176,8 +176,6 @@ namespace Flow.Launcher.Core.Resource
}
if (dict["ItemTitleStyle"] is Style resultItemStyle &&
dict["ItemSubTitleStyle"] is Style resultSubItemStyle &&
dict["ItemSubTitleSelectedStyle"] is Style resultSubItemSelectedStyle &&
dict["ItemTitleSelectedStyle"] is Style resultItemSelectedStyle &&
dict["ItemHotkeyStyle"] is Style resultHotkeyItemStyle &&
dict["ItemHotkeySelectedStyle"] is Style resultHotkeyItemSelectedStyle)
@ -189,9 +187,25 @@ namespace Flow.Launcher.Core.Resource
Setter[] setters = { fontFamily, fontStyle, fontWeight, fontStretch };
Array.ForEach(
new[] { resultItemStyle, resultSubItemStyle, resultItemSelectedStyle, resultSubItemSelectedStyle, resultHotkeyItemStyle, resultHotkeyItemSelectedStyle }, o
new[] { resultItemStyle, resultItemSelectedStyle, resultHotkeyItemStyle, resultHotkeyItemSelectedStyle }, o
=> Array.ForEach(setters, p => o.Setters.Add(p)));
}
if (
dict["ItemSubTitleStyle"] is Style resultSubItemStyle &&
dict["ItemSubTitleSelectedStyle"] is Style resultSubItemSelectedStyle)
{
Setter fontFamily = new Setter(TextBlock.FontFamilyProperty, new FontFamily(Settings.ResultSubFont));
Setter fontStyle = new Setter(TextBlock.FontStyleProperty, FontHelper.GetFontStyleFromInvariantStringOrNormal(Settings.ResultSubFontStyle));
Setter fontWeight = new Setter(TextBlock.FontWeightProperty, FontHelper.GetFontWeightFromInvariantStringOrNormal(Settings.ResultSubFontWeight));
Setter fontStretch = new Setter(TextBlock.FontStretchProperty, FontHelper.GetFontStretchFromInvariantStringOrNormal(Settings.ResultSubFontStretch));
Setter[] setters = { fontFamily, fontStyle, fontWeight, fontStretch };
Array.ForEach(
new[] { resultSubItemStyle,resultSubItemSelectedStyle}, o
=> Array.ForEach(setters, p => o.Setters.Add(p)));
}
/* Ignore Theme Window Width and use setting */
var windowStyle = dict["WindowStyle"] as Style;
var width = Settings.WindowSize;

View file

@ -7,6 +7,7 @@ namespace Flow.Launcher.Infrastructure
public static class Constant
{
public const string FlowLauncher = "Flow.Launcher";
public const string FlowLauncherFullName = "Flow Launcher";
public const string Plugins = "Plugins";
public const string PluginMetadataFileName = "plugin.json";

View file

@ -54,11 +54,9 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MemoryPack" Version="1.10.0" />
<PackageReference Include="MemoryPack" Version="1.21.1" />
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="17.7.30" />
<PackageReference Include="NLog" Version="4.7.10" />
<PackageReference Include="NLog.Schema" Version="4.7.10" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.13.0" />
<PackageReference Include="PropertyChanged.Fody" Version="3.4.0" />
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
<!--ToolGood.Words.Pinyin v3.0.2.6 results in high memory usage when search with pinyin is enabled-->

View file

@ -6,7 +6,7 @@ using System.Windows.Input;
namespace Flow.Launcher.Infrastructure.Hotkey
{
public class HotkeyModel
public record struct HotkeyModel
{
public bool Alt { get; set; }
public bool Shift { get; set; }
@ -17,8 +17,7 @@ namespace Flow.Launcher.Infrastructure.Hotkey
private static readonly Dictionary<Key, string> specialSymbolDictionary = new Dictionary<Key, string>
{
{Key.Space, "Space"},
{Key.Oem3, "~"}
{ Key.Space, "Space" }, { Key.Oem3, "~" }
};
public ModifierKeys ModifierKeys
@ -30,18 +29,22 @@ namespace Flow.Launcher.Infrastructure.Hotkey
{
modifierKeys |= ModifierKeys.Alt;
}
if (Shift)
{
modifierKeys |= ModifierKeys.Shift;
}
if (Win)
{
modifierKeys |= ModifierKeys.Windows;
}
if (Ctrl)
{
modifierKeys |= ModifierKeys.Control;
}
return modifierKeys;
}
}
@ -66,31 +69,37 @@ namespace Flow.Launcher.Infrastructure.Hotkey
{
return;
}
List<string> keys = hotkeyString.Replace(" ", "").Split('+').ToList();
if (keys.Contains("Alt"))
{
Alt = true;
keys.Remove("Alt");
}
if (keys.Contains("Shift"))
{
Shift = true;
keys.Remove("Shift");
}
if (keys.Contains("Win"))
{
Win = true;
keys.Remove("Win");
}
if (keys.Contains("Ctrl"))
{
Ctrl = true;
keys.Remove("Ctrl");
}
if (keys.Count == 1)
{
string charKey = keys[0];
KeyValuePair<Key, string>? specialSymbolPair = specialSymbolDictionary.FirstOrDefault(pair => pair.Value == charKey);
KeyValuePair<Key, string>? specialSymbolPair =
specialSymbolDictionary.FirstOrDefault(pair => pair.Value == charKey);
if (specialSymbolPair.Value.Value != null)
{
CharKey = specialSymbolPair.Value.Key;
@ -103,7 +112,6 @@ namespace Flow.Launcher.Infrastructure.Hotkey
}
catch (ArgumentException)
{
}
}
}
@ -111,33 +119,39 @@ namespace Flow.Launcher.Infrastructure.Hotkey
public override string ToString()
{
List<string> keys = new List<string>();
if (Ctrl)
return string.Join(" + ", EnumerateDisplayKeys());
}
public IEnumerable<string> EnumerateDisplayKeys()
{
if (Ctrl && CharKey is not (Key.LeftCtrl or Key.RightCtrl))
{
keys.Add("Ctrl");
yield return "Ctrl";
}
if (Alt)
if (Alt && CharKey is not (Key.LeftAlt or Key.RightAlt))
{
keys.Add("Alt");
yield return "Alt";
}
if (Shift)
if (Shift && CharKey is not (Key.LeftShift or Key.RightShift))
{
keys.Add("Shift");
yield return "Shift";
}
if (Win)
if (Win && CharKey is not (Key.LWin or Key.RWin))
{
keys.Add("Win");
yield return "Win";
}
if (CharKey != Key.None)
{
keys.Add(specialSymbolDictionary.ContainsKey(CharKey)
? specialSymbolDictionary[CharKey]
: CharKey.ToString());
yield return specialSymbolDictionary.TryGetValue(CharKey, out var value)
? value
: CharKey.ToString();
}
return string.Join(" + ", keys);
}
/// <summary>
/// Validate hotkey
/// </summary>
@ -164,11 +178,13 @@ namespace Flow.Launcher.Infrastructure.Hotkey
{
KeyGesture keyGesture = new KeyGesture(CharKey, ModifierKeys);
}
catch (System.Exception e) when (e is NotSupportedException || e is InvalidEnumArgumentException)
catch (System.Exception e) when
(e is NotSupportedException || e is InvalidEnumArgumentException)
{
return false;
}
}
if (ModifierKeys == ModifierKeys.None)
{
return !IsPrintableCharacter(CharKey);
@ -206,18 +222,6 @@ namespace Flow.Launcher.Infrastructure.Hotkey
key == Key.Decimal;
}
public override bool Equals(object obj)
{
if (obj is HotkeyModel other)
{
return ModifierKeys == other.ModifierKeys && CharKey == other.CharKey;
}
else
{
return false;
}
}
public override int GetHashCode()
{
return HashCode.Combine(ModifierKeys, CharKey);

View file

@ -0,0 +1,17 @@
using System.Collections.Generic;
namespace Flow.Launcher.Infrastructure.Hotkey;
/// <summary>
/// Interface that you should implement in your settings class to be able to pass it to
/// <c>Flow.Launcher.HotkeyControlDialog</c>. It allows the dialog to display the hotkeys that have already been
/// registered, and optionally provide a way to unregister them.
/// </summary>
public interface IHotkeySettings
{
/// <summary>
/// A list of hotkeys that have already been registered. The dialog will display these hotkeys and provide a way to
/// unregister them.
/// </summary>
public List<RegisteredHotkeyData> RegisteredHotkeys { get; }
}

View file

@ -0,0 +1,119 @@
using System;
namespace Flow.Launcher.Infrastructure.Hotkey;
#nullable enable
/// <summary>
/// Represents a hotkey that has been registered. Used in <c>Flow.Launcher.HotkeyControlDialog</c> via
/// <see cref="UserSettings"/> and <see cref="IHotkeySettings"/> to display errors if user tries to register a hotkey
/// that has already been registered, and optionally provides a way to unregister the hotkey.
/// </summary>
public record RegisteredHotkeyData
{
/// <summary>
/// <see cref="HotkeyModel"/> representation of this hotkey.
/// </summary>
public HotkeyModel Hotkey { get; }
/// <summary>
/// String key in the localization dictionary that represents this hotkey. For example, <c>ReloadPluginHotkey</c>,
/// which represents the string "Reload Plugins Data" in <c>en.xaml</c>
/// </summary>
public string DescriptionResourceKey { get; }
/// <summary>
/// Array of values that will replace <c>{0}</c>, <c>{1}</c>, <c>{2}</c>, etc. in the localized string found via
/// <see cref="DescriptionResourceKey"/>.
/// </summary>
public object?[] DescriptionFormatVariables { get; } = Array.Empty<object?>();
/// <summary>
/// An action that, when called, will unregister this hotkey. If it's <c>null</c>, it's assumed that
/// this hotkey can't be unregistered, and the "Overwrite" option will not appear in the hotkey dialog.
/// </summary>
public Action? RemoveHotkey { get; }
/// <summary>
/// Creates an instance of <c>RegisteredHotkeyData</c>. Assumes that the key specified in
/// <c>descriptionResourceKey</c> doesn't need any arguments for <c>string.Format</c>. If it does,
/// use one of the other constructors.
/// </summary>
/// <param name="hotkey">
/// The hotkey this class will represent.
/// Example values: <c>F1</c>, <c>Ctrl+Shift+Enter</c>
/// </param>
/// <param name="descriptionResourceKey">
/// The key in the localization dictionary that represents this hotkey. For example, <c>ReloadPluginHotkey</c>,
/// which represents the string "Reload Plugins Data" in <c>en.xaml</c>
/// </param>
/// <param name="removeHotkey">
/// An action that, when called, will unregister this hotkey. If it's <c>null</c>, it's assumed that this hotkey
/// can't be unregistered, and the "Overwrite" option will not appear in the hotkey dialog.
/// </param>
public RegisteredHotkeyData(string hotkey, string descriptionResourceKey, Action? removeHotkey = null)
{
Hotkey = new HotkeyModel(hotkey);
DescriptionResourceKey = descriptionResourceKey;
RemoveHotkey = removeHotkey;
}
/// <summary>
/// Creates an instance of <c>RegisteredHotkeyData</c>. Assumes that the key specified in
/// <c>descriptionResourceKey</c> needs exactly one argument for <c>string.Format</c>.
/// </summary>
/// <param name="hotkey">
/// The hotkey this class will represent.
/// Example values: <c>F1</c>, <c>Ctrl+Shift+Enter</c>
/// </param>
/// <param name="descriptionResourceKey">
/// The key in the localization dictionary that represents this hotkey. For example, <c>ReloadPluginHotkey</c>,
/// which represents the string "Reload Plugins Data" in <c>en.xaml</c>
/// </param>
/// <param name="descriptionFormatVariable">
/// The value that will replace <c>{0}</c> in the localized string found via <c>description</c>.
/// </param>
/// <param name="removeHotkey">
/// An action that, when called, will unregister this hotkey. If it's <c>null</c>, it's assumed that this hotkey
/// can't be unregistered, and the "Overwrite" option will not appear in the hotkey dialog.
/// </param>
public RegisteredHotkeyData(
string hotkey, string descriptionResourceKey, object? descriptionFormatVariable, Action? removeHotkey = null
)
{
Hotkey = new HotkeyModel(hotkey);
DescriptionResourceKey = descriptionResourceKey;
DescriptionFormatVariables = new[] { descriptionFormatVariable };
RemoveHotkey = removeHotkey;
}
/// <summary>
/// Creates an instance of <c>RegisteredHotkeyData</c>. Assumes that the key specified in
/// <paramref name="descriptionResourceKey"/> needs multiple arguments for <c>string.Format</c>.
/// </summary>
/// <param name="hotkey">
/// The hotkey this class will represent.
/// Example values: <c>F1</c>, <c>Ctrl+Shift+Enter</c>
/// </param>
/// <param name="descriptionResourceKey">
/// The key in the localization dictionary that represents this hotkey. For example, <c>ReloadPluginHotkey</c>,
/// which represents the string "Reload Plugins Data" in <c>en.xaml</c>
/// </param>
/// <param name="descriptionFormatVariables">
/// Array of values that will replace <c>{0}</c>, <c>{1}</c>, <c>{2}</c>, etc.
/// in the localized string found via <c>description</c>.
/// </param>
/// <param name="removeHotkey">
/// An action that, when called, will unregister this hotkey. If it's <c>null</c>, it's assumed that this hotkey
/// can't be unregistered, and the "Overwrite" option will not appear in the hotkey dialog.
/// </param>
public RegisteredHotkeyData(
string hotkey, string descriptionResourceKey, object?[] descriptionFormatVariables, Action? removeHotkey = null
)
{
Hotkey = new HotkeyModel(hotkey);
DescriptionResourceKey = descriptionResourceKey;
DescriptionFormatVariables = descriptionFormatVariables;
RemoveHotkey = removeHotkey;
}
}

View file

@ -4,13 +4,14 @@ using System.Collections.ObjectModel;
using System.Drawing;
using System.Text.Json.Serialization;
using System.Windows;
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Plugin;
using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.Infrastructure.UserSettings
{
public class Settings : BaseModel
public class Settings : BaseModel, IHotkeySettings
{
private string language = "en";
private string _theme = Constant.DefaultTheme;
@ -20,6 +21,18 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public bool ShowOpenResultHotkey { get; set; } = true;
public double WindowSize { get; set; } = 580;
public string PreviewHotkey { get; set; } = $"F1";
public string AutoCompleteHotkey { get; set; } = $"{KeyConstant.Ctrl} + Tab";
public string AutoCompleteHotkey2 { get; set; } = $"";
public string SelectNextItemHotkey { get; set; } = $"Tab";
public string SelectNextItemHotkey2 { get; set; } = $"";
public string SelectPrevItemHotkey { get; set; } = $"Shift + Tab";
public string SelectPrevItemHotkey2 { get; set; } = $"";
public string SelectNextPageHotkey { get; set; } = $"PageUp";
public string SelectPrevPageHotkey { get; set; } = $"PageDown";
public string OpenContextMenuHotkey { get; set; } = $"Ctrl+O";
public string SettingWindowHotkey { get; set; } = $"Ctrl+I";
public string CycleHistoryUpHotkey { get; set; } = $"{KeyConstant.Alt} + Up";
public string CycleHistoryDownHotkey { get; set; } = $"{KeyConstant.Alt} + Down";
public string Language
{
@ -43,6 +56,13 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
}
public bool UseDropShadowEffect { get; set; } = false;
/* Appearance Settings. It should be separated from the setting later.*/
public double WindowHeightSize { get; set; } = 42;
public double ItemHeightSize { get; set; } = 58;
public double QueryBoxFontSize { get; set; } = 20;
public double ResultItemFontSize { get; set; } = 16;
public double ResultSubItemFontSize { get; set; } = 13;
public string QueryBoxFont { get; set; } = FontFamily.GenericSansSerif.Name;
public string QueryBoxFontStyle { get; set; }
public string QueryBoxFontWeight { get; set; }
@ -51,9 +71,15 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public string ResultFontStyle { get; set; }
public string ResultFontWeight { get; set; }
public string ResultFontStretch { get; set; }
public string ResultSubFont { get; set; } = FontFamily.GenericSansSerif.Name;
public string ResultSubFontStyle { get; set; }
public string ResultSubFontWeight { get; set; }
public string ResultSubFontStretch { get; set; }
public bool UseGlyphIcons { get; set; } = true;
public bool UseAnimation { get; set; } = true;
public bool UseSound { get; set; } = true;
public double SoundVolume { get; set; } = 50;
public bool UseClock { get; set; } = true;
public bool UseDate { get; set; } = false;
public string TimeFormat { get; set; } = "hh:mm tt";
@ -162,32 +188,16 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public bool AlwaysPreview { get; set; } = false;
public bool AlwaysStartEn { get; set; } = false;
private SearchPrecisionScore _querySearchPrecision = SearchPrecisionScore.Regular;
[JsonInclude, JsonConverter(typeof(JsonStringEnumConverter))]
public SearchPrecisionScore QuerySearchPrecision { get; private set; } = SearchPrecisionScore.Regular;
[JsonIgnore]
public string QuerySearchPrecisionString
public SearchPrecisionScore QuerySearchPrecision
{
get { return QuerySearchPrecision.ToString(); }
get => _querySearchPrecision;
set
{
try
{
var precisionScore = (SearchPrecisionScore)Enum
.Parse(typeof(SearchPrecisionScore), value);
QuerySearchPrecision = precisionScore;
StringMatcher.Instance.UserSettingSearchPrecision = precisionScore;
}
catch (ArgumentException e)
{
Logger.Log.Exception(nameof(Settings), "Failed to load QuerySearchPrecisionString value from Settings file", e);
QuerySearchPrecision = SearchPrecisionScore.Regular;
StringMatcher.Instance.UserSettingSearchPrecision = SearchPrecisionScore.Regular;
throw;
}
_querySearchPrecision = value;
if (StringMatcher.Instance != null)
StringMatcher.Instance.UserSettingSearchPrecision = value;
}
}
@ -195,17 +205,18 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public double WindowLeft { get; set; }
public double WindowTop { get; set; }
/// <summary>
/// Custom left position on selected monitor
/// </summary>
public double CustomWindowLeft { get; set; } = 0;
/// <summary>
/// Custom top position on selected monitor
/// </summary>
public double CustomWindowTop { get; set; } = 0;
public bool KeepMaxResults { get; set; } = false;
public int MaxResultsToShow { get; set; } = 5;
public int ActivateTimes { get; set; }
@ -217,7 +228,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
[JsonIgnore]
public ObservableCollection<BuiltinShortcutModel> BuiltinShortcuts { get; set; } = new()
{
new BuiltinShortcutModel("{clipboard}", "shortcut_clipboard_description", Clipboard.GetText),
new BuiltinShortcutModel("{clipboard}", "shortcut_clipboard_description", Clipboard.GetText),
new BuiltinShortcutModel("{active_explorer_path}", "shortcut_active_explorer_path", FileExplorerHelper.GetActiveExplorerPath)
};
@ -241,7 +252,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
[JsonConverter(typeof(JsonStringEnumConverter))]
public SearchWindowScreens SearchWindowScreen { get; set; } = SearchWindowScreens.Cursor;
[JsonConverter(typeof(JsonStringEnumConverter))]
public SearchWindowAligns SearchWindowAlign { get; set; } = SearchWindowAligns.Center;
@ -258,9 +269,99 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public AnimationSpeeds AnimationSpeed { get; set; } = AnimationSpeeds.Medium;
public int CustomAnimationLength { get; set; } = 360;
[JsonIgnore]
public bool WMPInstalled { get; set; } = true;
// This needs to be loaded last by staying at the bottom
public PluginsSettings PluginSettings { get; set; } = new PluginsSettings();
[JsonIgnore]
public List<RegisteredHotkeyData> RegisteredHotkeys
{
get
{
var list = FixedHotkeys();
// Customizeable hotkeys
if(!string.IsNullOrEmpty(Hotkey))
list.Add(new(Hotkey, "flowlauncherHotkey", () => Hotkey = ""));
if(!string.IsNullOrEmpty(PreviewHotkey))
list.Add(new(PreviewHotkey, "previewHotkey", () => PreviewHotkey = ""));
if(!string.IsNullOrEmpty(AutoCompleteHotkey))
list.Add(new(AutoCompleteHotkey, "autoCompleteHotkey", () => AutoCompleteHotkey = ""));
if(!string.IsNullOrEmpty(AutoCompleteHotkey2))
list.Add(new(AutoCompleteHotkey2, "autoCompleteHotkey", () => AutoCompleteHotkey2 = ""));
if(!string.IsNullOrEmpty(SelectNextItemHotkey))
list.Add(new(SelectNextItemHotkey, "SelectNextItemHotkey", () => SelectNextItemHotkey = ""));
if(!string.IsNullOrEmpty(SelectNextItemHotkey2))
list.Add(new(SelectNextItemHotkey2, "SelectNextItemHotkey", () => SelectNextItemHotkey2 = ""));
if(!string.IsNullOrEmpty(SelectPrevItemHotkey))
list.Add(new(SelectPrevItemHotkey, "SelectPrevItemHotkey", () => SelectPrevItemHotkey = ""));
if(!string.IsNullOrEmpty(SelectPrevItemHotkey2))
list.Add(new(SelectPrevItemHotkey2, "SelectPrevItemHotkey", () => SelectPrevItemHotkey2 = ""));
if(!string.IsNullOrEmpty(SettingWindowHotkey))
list.Add(new(SettingWindowHotkey, "SettingWindowHotkey", () => SettingWindowHotkey = ""));
if(!string.IsNullOrEmpty(OpenContextMenuHotkey))
list.Add(new(OpenContextMenuHotkey, "OpenContextMenuHotkey", () => OpenContextMenuHotkey = ""));
if(!string.IsNullOrEmpty(SelectNextPageHotkey))
list.Add(new(SelectNextPageHotkey, "SelectNextPageHotkey", () => SelectNextPageHotkey = ""));
if(!string.IsNullOrEmpty(SelectPrevPageHotkey))
list.Add(new(SelectPrevPageHotkey, "SelectPrevPageHotkey", () => SelectPrevPageHotkey = ""));
if (!string.IsNullOrEmpty(CycleHistoryUpHotkey))
list.Add(new(CycleHistoryUpHotkey, "CycleHistoryUpHotkey", () => CycleHistoryUpHotkey = ""));
if (!string.IsNullOrEmpty(CycleHistoryDownHotkey))
list.Add(new(CycleHistoryDownHotkey, "CycleHistoryDownHotkey", () => CycleHistoryDownHotkey = ""));
// Custom Query Hotkeys
foreach (var customPluginHotkey in CustomPluginHotkeys)
{
if (!string.IsNullOrEmpty(customPluginHotkey.Hotkey))
list.Add(new(customPluginHotkey.Hotkey, "customQueryHotkey", () => customPluginHotkey.Hotkey = ""));
}
return list;
}
}
private List<RegisteredHotkeyData> FixedHotkeys()
{
return new List<RegisteredHotkeyData>
{
new("Up", "HotkeyLeftRightDesc"),
new("Down", "HotkeyLeftRightDesc"),
new("Left", "HotkeyUpDownDesc"),
new("Right", "HotkeyUpDownDesc"),
new("Escape", "HotkeyESCDesc"),
new("F5", "ReloadPluginHotkey"),
new("Alt+Home", "HotkeySelectFirstResult"),
new("Alt+End", "HotkeySelectLastResult"),
new("Ctrl+R", "HotkeyRequery"),
new("Ctrl+H", "ToggleHistoryHotkey"),
new("Ctrl+OemCloseBrackets", "QuickWidthHotkey"),
new("Ctrl+OemOpenBrackets", "QuickWidthHotkey"),
new("Ctrl+OemPlus", "QuickHeightHotkey"),
new("Ctrl+OemMinus", "QuickHeightHotkey"),
new("Ctrl+Shift+Enter", "HotkeyCtrlShiftEnterDesc"),
new("Shift+Enter", "OpenContextMenuHotkey"),
new("Enter", "HotkeyRunDesc"),
new("Ctrl+Enter", "OpenContainFolderHotkey"),
new("Alt+Enter", "HotkeyOpenResult"),
new("Ctrl+F12", "ToggleGameModeHotkey"),
new("Ctrl+Shift+C", "CopyFilePathHotkey"),
new($"{OpenResultModifiers}+D1", "HotkeyOpenResultN", 1),
new($"{OpenResultModifiers}+D2", "HotkeyOpenResultN", 2),
new($"{OpenResultModifiers}+D3", "HotkeyOpenResultN", 3),
new($"{OpenResultModifiers}+D4", "HotkeyOpenResultN", 4),
new($"{OpenResultModifiers}+D5", "HotkeyOpenResultN", 5),
new($"{OpenResultModifiers}+D6", "HotkeyOpenResultN", 6),
new($"{OpenResultModifiers}+D7", "HotkeyOpenResultN", 7),
new($"{OpenResultModifiers}+D8", "HotkeyOpenResultN", 8),
new($"{OpenResultModifiers}+D9", "HotkeyOpenResultN", 9),
new($"{OpenResultModifiers}+D0", "HotkeyOpenResultN", 10)
};
}
}
public enum LastQueryMode
@ -276,7 +377,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
Light,
Dark
}
public enum SearchWindowScreens
{
RememberLastLaunchLocation,
@ -285,7 +386,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
Primary,
Custom
}
public enum SearchWindowAligns
{
Center,

View file

@ -14,10 +14,10 @@
</PropertyGroup>
<PropertyGroup>
<Version>4.1.1</Version>
<PackageVersion>4.1.1</PackageVersion>
<AssemblyVersion>4.1.1</AssemblyVersion>
<FileVersion>4.1.1</FileVersion>
<Version>4.3.0</Version>
<PackageVersion>4.3.0</PackageVersion>
<AssemblyVersion>4.3.0</AssemblyVersion>
<FileVersion>4.3.0</FileVersion>
<PackageId>Flow.Launcher.Plugin</PackageId>
<Authors>Flow-Launcher</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>

View file

@ -291,5 +291,12 @@ namespace Flow.Launcher.Plugin
/// </summary>
/// <returns></returns>
public bool IsGameModeOn();
/// <summary>
/// Reloads the query.
/// This method should run
/// </summary>
/// <param name="reselect">Choose the first result after reload if true; keep the last selected result if false. Default is true.</param>
public void ReQuery(bool reselect = true);
}
}

View file

@ -183,6 +183,31 @@ namespace Flow.Launcher.Plugin
return Title + SubTitle + Score;
}
/// <summary>
/// Clones the current result
/// </summary>
public Result Clone()
{
return new Result
{
Title = Title,
SubTitle = SubTitle,
ActionKeywordAssigned = ActionKeywordAssigned,
CopyText = CopyText,
AutoCompleteText = AutoCompleteText,
IcoPath = IcoPath,
RoundedIcon = RoundedIcon,
Icon = Icon,
Glyph = Glyph,
Action = Action,
AsyncAction = AsyncAction,
Score = Score,
TitleHighlightData = TitleHighlightData,
OriginQuery = OriginQuery,
PluginDirectory = PluginDirectory,
};
}
/// <summary>
/// Additional data associated with this result
/// </summary>
@ -233,7 +258,7 @@ namespace Flow.Launcher.Plugin
public string ProgressBarColor { get; set; } = "#26a0da";
/// <summary>
/// Contains data used to populate the the preview section of this result.
/// Contains data used to populate the preview section of this result.
/// </summary>
public PreviewInfo Preview { get; set; } = PreviewInfo.Default;

View file

@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
#pragma warning disable IDE0005
using System.Windows;
#pragma warning restore IDE0005
@ -200,6 +201,24 @@ namespace Flow.Launcher.Plugin.SharedCommands
}
}
///<summary>
/// This checks whether a given string is a zip file path.
/// By default does not check if the zip file actually exist on disk, can do so by
/// setting checkFileExists = true.
///</summary>
public static bool IsZipFilePath(string querySearchString, bool checkFileExists = false)
{
if (IsLocationPathString(querySearchString) && querySearchString.Split('.').Last() == "zip")
{
if (checkFileExists)
return FileExists(querySearchString);
return true;
}
return false;
}
///<summary>
/// This checks whether a given string is a directory path or network location string.
/// It does not check if location actually exists.

View file

@ -54,7 +54,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
</ItemGroup>
</Project>

View file

@ -191,11 +191,15 @@ namespace Flow.Launcher.Test.Plugins
[TestCase(@"\c:\", false)]
[TestCase(@"cc:\", false)]
[TestCase(@"\\\SomeNetworkLocation\", false)]
[TestCase(@"\\SomeNetworkLocation\", true)]
[TestCase("RandomFile", false)]
[TestCase(@"c:\>*", true)]
[TestCase(@"c:\>", true)]
[TestCase(@"c:\SomeLocation\SomeOtherLocation\>", true)]
[TestCase(@"c:\SomeLocation\SomeOtherLocation", true)]
[TestCase(@"c:\SomeLocation\SomeOtherLocation\SomeFile.exe", true)]
[TestCase(@"\\SomeNetworkLocation\SomeFile.exe", true)]
public void WhenGivenQuerySearchString_ThenShouldIndicateIfIsLocationPathString(string querySearchString, bool expectedResult)
{
// When, Given

View file

@ -54,6 +54,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Scripts\post_build.ps1 = Scripts\post_build.ps1
README.md = README.md
SolutionAssemblyInfo.cs = SolutionAssemblyInfo.cs
Settings.XamlStyler = Settings.XamlStyler
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Flow.Launcher.Plugin.Shell", "Plugins\Flow.Launcher.Plugin.Shell\Flow.Launcher.Plugin.Shell.csproj", "{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}"

View file

@ -24,6 +24,7 @@
</ui:ThemeResources>
<ui:XamlControlsResources />
<ResourceDictionary Source="pack://application:,,,/Resources/CustomControlTemplate.xaml" />
<ResourceDictionary Source="pack://application:,,,/Resources/SettingWindowStyle.xaml" />
<ResourceDictionary Source="pack://application:,,,/Themes/Win11System.xaml" />
<ResourceDictionary Source="pack://application:,,,/Languages/en.xaml" />
</ResourceDictionary.MergedDictionaries>

View file

@ -62,6 +62,7 @@ namespace Flow.Launcher
_settingsVM = new SettingWindowViewModel(_updater, _portable);
_settings = _settingsVM.Settings;
_settings.WMPInstalled = WindowsMediaPlayerHelper.IsWindowsMediaPlayerInstalled();
AbstractPluginEnvironment.PreStartPluginExecutablePathUpdate(_settings);
@ -80,7 +81,7 @@ namespace Flow.Launcher
await PluginManager.InitializePluginsAsync(API);
await imageLoadertask;
var window = new MainWindow(_settings, _mainVM);
Log.Info($"|App.OnStartup|Dependencies Info:{ErrorReporting.DependenciesInfo()}");
@ -88,12 +89,13 @@ namespace Flow.Launcher
Current.MainWindow = window;
Current.MainWindow.Title = Constant.FlowLauncher;
HotKeyMapper.Initialize(_mainVM);
// 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);
HotKeyMapper.Initialize(_mainVM);
// main windows needs initialized before theme change because of blur settings
ThemeManager.Instance.Settings = _settings;
ThemeManager.Instance.ChangeTheme(_settings.Theme);

View file

@ -3,53 +3,38 @@ using System.Globalization;
using System.Windows.Data;
using System.Windows.Input;
namespace Flow.Launcher.Converters
{
internal class BoolToIMEConversionModeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool v)
{
if (v)
{
return ImeConversionModeValues.Alphanumeric;
}
else
{
return ImeConversionModeValues.DoNotCare;
}
}
return ImeConversionModeValues.DoNotCare;
}
namespace Flow.Launcher.Converters;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
internal class BoolToIMEConversionModeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value switch
{
throw new NotImplementedException();
}
true => ImeConversionModeValues.Alphanumeric,
_ => ImeConversionModeValues.DoNotCare
};
}
internal class BoolToIMEStateConverter : IValueConverter
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool v)
{
if (v)
{
return InputMethodState.Off;
}
else
{
return InputMethodState.DoNotCare;
}
}
return InputMethodState.DoNotCare;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
throw new NotImplementedException();
}
}
internal class BoolToIMEStateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value switch
{
true => InputMethodState.Off,
_ => InputMethodState.DoNotCare
};
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View file

@ -2,70 +2,39 @@
using System.Windows;
using System.Windows.Data;
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
public class BoolToVisibilityConverter : IValueConverter
{
public class BoolToVisibilityConverter : IValueConverter
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
return (value, parameter) switch
{
if (parameter != null)
{
if (value is true)
{
return Visibility.Collapsed;
}
(true, not null) => Visibility.Collapsed,
(_, not null) => Visibility.Visible,
else
{
return Visibility.Visible;
}
}
else {
if (value is true)
{
return Visibility.Visible;
}
else {
return Visibility.Collapsed;
}
}
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
(true, null) => Visibility.Visible,
(_, null) => Visibility.Collapsed
};
}
public class SplitterConverter : IValueConverter
/* Prevents the dragging part of the preview area from working when preview is turned off. */
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
if (parameter != null)
{
if (value is true)
{
return 0;
}
else
{
return 5;
}
}
else
{
if (value is true)
{
return 5;
}
else
{
return 0;
}
}
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
}
public class SplitterConverter : IValueConverter
/* Prevents the dragging part of the preview area from working when preview is turned off. */
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
return (value, parameter) switch
{
(true, not null) => 0,
(_, not null) => 5,
(true, null) => 5,
(_, null) => 0
};
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
}

View file

@ -7,46 +7,41 @@ using System.Windows.Shapes;
// For Clipping inside listbox item
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
public class BorderClipConverter : IMultiValueConverter
{
public class BorderClipConverter : IMultiValueConverter
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
if (values is not [double width, double height, CornerRadius radius])
{
if (values.Length == 3 && values[0] is double && values[1] is double && values[2] is CornerRadius)
{
var width = (double)values[0];
var height = (double)values[1];
Path myPath = new Path();
if (width < Double.Epsilon || height < Double.Epsilon)
{
return Geometry.Empty;
}
var radius = (CornerRadius)values[2];
var radiusHeight = radius.TopLeft;
// Drawing Round box for bottom round, and rect for top area of listbox.
var corner = new RectangleGeometry(new Rect(0, 0, width, height), radius.TopLeft, radius.TopLeft);
var box = new RectangleGeometry(new Rect(0, 0, width, radiusHeight), 0, 0);
GeometryGroup myGeometryGroup = new GeometryGroup();
myGeometryGroup.Children.Add(corner);
myGeometryGroup.Children.Add(box);
CombinedGeometry c1 = new CombinedGeometry(GeometryCombineMode.Union, corner, box);
myPath.Data = c1;
myPath.Data.Freeze();
return myPath.Data;
}
return DependencyProperty.UnsetValue;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
Path myPath = new Path();
if (width < Double.Epsilon || height < Double.Epsilon)
{
throw new NotSupportedException();
return Geometry.Empty;
}
var radiusHeight = radius.TopLeft;
// Drawing Round box for bottom round, and rect for top area of listbox.
var corner = new RectangleGeometry(new Rect(0, 0, width, height), radius.TopLeft, radius.TopLeft);
var box = new RectangleGeometry(new Rect(0, 0, width, radiusHeight), 0, 0);
GeometryGroup myGeometryGroup = new GeometryGroup();
myGeometryGroup.Children.Add(corner);
myGeometryGroup.Children.Add(box);
CombinedGeometry c1 = new CombinedGeometry(GeometryCombineMode.Union, corner, box);
myPath.Data = c1;
myPath.Data.Freeze();
return myPath.Data;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}

View file

@ -2,18 +2,17 @@
using System.Globalization;
using System.Windows.Data;
namespace Flow.Launcher.Converters
{
public class DateTimeFormatToNowConverter : IValueConverter
{
namespace Flow.Launcher.Converters;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is not string format ? null : DateTime.Now.ToString(format);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
public class DateTimeFormatToNowConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is not string format ? null : DateTime.Now.ToString(format);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View file

@ -3,23 +3,22 @@ using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
public class DiameterToCenterPointConverter : IValueConverter
{
public class DiameterToCenterPointConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
if (value is double d)
{
if (value is double d)
{
return new Point(d / 2, d / 2);
}
return new Point(0, 0);
return new Point(d / 2, d / 2);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
return new Point(0, 0);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}

View file

@ -1,53 +1,48 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Data;
using System.Windows.Documents;
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
public class HighlightTextConverter : IMultiValueConverter
{
public class HighlightTextConverter : IMultiValueConverter
public object Convert(object[] value, Type targetType, object parameter, CultureInfo cultureInfo)
{
public object Convert(object[] value, Type targetType, object parameter, CultureInfo cultureInfo)
if (value.Length < 2)
return new Run(string.Empty);
if (value[0] is not string text)
return new Run(string.Empty);
if (value[1] is not List<int> { Count: > 0 } highlightData)
// No highlight data, just return the text
return new Run(text);
var highlightStyle = (Style)Application.Current.FindResource("HighlightStyle");
var textBlock = new Span();
for (var i = 0; i < text.Length; i++)
{
var text = value[0] as string;
var highlightData = value[1] as List<int>;
var textBlock = new Span();
if (highlightData == null || !highlightData.Any())
var currentCharacter = text.Substring(i, 1);
var run = new Run(currentCharacter)
{
// 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 Run(currentCharacter) { Style = (Style)Application.Current.FindResource("HighlightStyle") });
}
else
{
textBlock.Inlines.Add(new Run(currentCharacter));
}
}
return textBlock;
Style = ShouldHighlight(highlightData, i) ? highlightStyle : null
};
textBlock.Inlines.Add(run);
}
return textBlock;
}
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture)
{
return new[] { DependencyProperty.UnsetValue, DependencyProperty.UnsetValue };
}
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);
}
private bool ShouldHighlight(List<int> highlightData, int index)
{
return highlightData.Contains(index);
}
}

View file

@ -2,25 +2,19 @@
using System.Globalization;
using System.Windows.Data;
namespace Flow.Launcher.Converters
{
public class IconRadiusConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values.Length != 2)
throw new ArgumentException("IconRadiusConverter must have 2 parameters");
namespace Flow.Launcher.Converters;
return values[1] switch
{
true => (double)values[0] / 2,
false => (double)values[0],
_ => throw new ArgumentException("The second argument should be boolean", nameof(values))
};
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
public class IconRadiusConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values is not [double size, bool isIconCircular])
throw new ArgumentException("IconRadiusConverter must have 2 parameters: [double, bool]");
return isIconCircular ? size / 2 : size;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}

View file

@ -4,24 +4,23 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
[ValueConversion(typeof(bool), typeof(Visibility))]
public class OpenResultHotkeyVisibilityConverter : IValueConverter
{
[ValueConversion(typeof(bool), typeof(Visibility))]
public class OpenResultHotkeyVisibilityConverter : IValueConverter
private const int MaxVisibleHotkeys = 10;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
private const int MaxVisibleHotkeys = 10;
var number = int.MaxValue;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var number = int.MaxValue;
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
number = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
number = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
return number <= MaxVisibleHotkeys ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
return number <= MaxVisibleHotkeys ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new InvalidOperationException();
}

View file

@ -1,23 +1,24 @@
using System;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
namespace Flow.Launcher.Converters
{
public class OrdinalConverter : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
{
var res = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
return res == 10 ? 0 : res; // 10th item => HOTKEY+0
}
namespace Flow.Launcher.Converters;
public class OrdinalConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not ListBoxItem listBoxItem
|| ItemsControl.ItemsControlFromItemContainer(listBoxItem) is not ListBox listBox)
{
return 0;
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
var res = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
return res == 10 ? 0 : res; // 10th item => HOTKEY+0
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new InvalidOperationException();
}

View file

@ -6,74 +6,62 @@ using System.Windows.Media;
using Flow.Launcher.Infrastructure.Logger;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.Converters
namespace Flow.Launcher.Converters;
public class QuerySuggestionBoxConverter : IMultiValueConverter
{
public class QuerySuggestionBoxConverter : IMultiValueConverter
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
// values[0] is TextBox: The textbox displaying the autocomplete suggestion
// values[1] is ResultViewModel: Currently selected item in the list
// values[2] is string: Query text
if (
values.Length != 3 ||
values[0] is not TextBox queryTextBox ||
values[1] is null ||
values[2] is not string queryText ||
string.IsNullOrEmpty(queryText)
)
return string.Empty;
if (values[1] is not ResultViewModel selectedItem)
return Binding.DoNothing;
try
{
if (values.Length != 3)
{
return string.Empty;
}
var QueryTextBox = values[0] as TextBox;
var selectedResult = selectedItem.Result;
var selectedResultActionKeyword = string.IsNullOrEmpty(selectedResult.ActionKeywordAssigned) ? "" : selectedResult.ActionKeywordAssigned + " ";
var selectedResultPossibleSuggestion = selectedResultActionKeyword + selectedResult.Title;
var queryText = (string)values[2];
if (string.IsNullOrEmpty(queryText))
if (!selectedResultPossibleSuggestion.StartsWith(queryText, StringComparison.CurrentCultureIgnoreCase))
return string.Empty;
// second prop is the current selected item result
var val = values[1];
if (val == null)
{
// For AutocompleteQueryCommand.
// When user typed lower case and result title is uppercase, we still want to display suggestion
selectedItem.QuerySuggestionText = queryText + selectedResultPossibleSuggestion.Substring(queryText.Length);
// Check if Text will be larger than our QueryTextBox
Typeface typeface = new Typeface(queryTextBox.FontFamily, queryTextBox.FontStyle, queryTextBox.FontWeight, queryTextBox.FontStretch);
// TODO: Obsolete warning?
var ft = new FormattedText(queryTextBox.Text, CultureInfo.CurrentCulture, System.Windows.FlowDirection.LeftToRight, typeface, queryTextBox.FontSize, Brushes.Black);
var offset = queryTextBox.Padding.Right;
if (ft.Width + offset > queryTextBox.ActualWidth || queryTextBox.HorizontalOffset != 0)
return string.Empty;
}
if (!(val is ResultViewModel))
{
return System.Windows.Data.Binding.DoNothing;
}
try
{
var selectedItem = (ResultViewModel)val;
var selectedResult = selectedItem.Result;
var selectedResultActionKeyword = string.IsNullOrEmpty(selectedResult.ActionKeywordAssigned) ? "" : selectedResult.ActionKeywordAssigned + " ";
var selectedResultPossibleSuggestion = selectedResultActionKeyword + selectedResult.Title;
if (!selectedResultPossibleSuggestion.StartsWith(queryText, StringComparison.CurrentCultureIgnoreCase))
return string.Empty;
// For AutocompleteQueryCommand.
// When user typed lower case and result title is uppercase, we still want to display suggestion
selectedItem.QuerySuggestionText = queryText + selectedResultPossibleSuggestion.Substring(queryText.Length);
// Check if Text will be larger then our QueryTextBox
System.Windows.Media.Typeface typeface = new Typeface(QueryTextBox.FontFamily, QueryTextBox.FontStyle, QueryTextBox.FontWeight, QueryTextBox.FontStretch);
// TODO: Obsolete warning?
System.Windows.Media.FormattedText ft = new FormattedText(QueryTextBox.Text, System.Globalization.CultureInfo.DefaultThreadCurrentCulture, System.Windows.FlowDirection.LeftToRight, typeface, QueryTextBox.FontSize, Brushes.Black);
var offset = QueryTextBox.Padding.Right;
if ((ft.Width + offset) > QueryTextBox.ActualWidth || QueryTextBox.HorizontalOffset != 0)
{
return string.Empty;
};
return selectedItem.QuerySuggestionText;
}
catch (Exception e)
{
Log.Exception(nameof(QuerySuggestionBoxConverter), "fail to convert text for suggestion box", e);
return string.Empty;
}
return selectedItem.QuerySuggestionText;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
catch (Exception e)
{
throw new NotImplementedException();
Log.Exception(nameof(QuerySuggestionBoxConverter), "fail to convert text for suggestion box", e);
return string.Empty;
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View file

@ -3,30 +3,27 @@ using System.Globalization;
using System.Windows.Data;
using System.Windows.Input;
namespace Flow.Launcher.Converters
{
class StringToKeyBindingConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var mode = parameter as string;
var hotkeyStr = value as string;
var converter = new KeyGestureConverter();
var key = (KeyGesture)converter.ConvertFromString(hotkeyStr);
if (mode == "key")
{
return key.Key;
}
else if (mode == "modifiers")
{
return key.Modifiers;
}
return null;
}
namespace Flow.Launcher.Converters;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
class StringToKeyBindingConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter is not string mode || value is not string hotkeyStr)
return null;
var converter = new KeyGestureConverter();
var key = (KeyGesture)converter.ConvertFromString(hotkeyStr);
return mode switch
{
throw new NotImplementedException();
}
"key" => key?.Key,
"modifiers" => key?.Modifiers,
_ => null
};
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View file

@ -4,29 +4,27 @@ using System.Windows.Data;
using Flow.Launcher.Core.Resource;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.Converters
{
public class TextConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var ID = value.ToString();
switch(ID)
{
case PluginStoreItemViewModel.NewRelease:
return InternationalizationManager.Instance.GetTranslation("pluginStore_NewRelease");
case PluginStoreItemViewModel.RecentlyUpdated:
return InternationalizationManager.Instance.GetTranslation("pluginStore_RecentlyUpdated");
case PluginStoreItemViewModel.None:
return InternationalizationManager.Instance.GetTranslation("pluginStore_None");
case PluginStoreItemViewModel.Installed:
return InternationalizationManager.Instance.GetTranslation("pluginStore_Installed");
default:
return ID;
}
}
namespace Flow.Launcher.Converters;
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
public class TextConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var id = value?.ToString();
var translationKey = id switch
{
PluginStoreItemViewModel.NewRelease => "pluginStore_NewRelease",
PluginStoreItemViewModel.RecentlyUpdated => "pluginStore_RecentlyUpdated",
PluginStoreItemViewModel.None => "pluginStore_None",
PluginStoreItemViewModel.Installed => "pluginStore_Installed",
_ => null
};
if (translationKey is null)
return id;
return InternationalizationManager.Instance.GetTranslation(translationKey);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new InvalidOperationException();
}

View file

@ -2,10 +2,12 @@
x:Class="Flow.Launcher.CustomQueryHotkeySetting"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
Title="{DynamicResource customeQueryHotkeyTitle}"
Width="530"
Background="{DynamicResource PopuBGColor}"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Foreground="{DynamicResource PopupTextColor}"
Icon="Images\app.png"
MouseDown="window_MouseDown"
@ -60,94 +62,76 @@
</Grid>
</StackPanel>
<StackPanel Margin="26,0,26,0">
<StackPanel Grid.Row="0" Margin="0,0,0,12">
<TextBlock
Grid.Column="0"
Margin="0,0,0,0"
FontSize="20"
FontWeight="SemiBold"
Text="{DynamicResource customeQueryHotkeyTitle}"
TextAlignment="Left" />
</StackPanel>
<StackPanel>
<TextBlock
FontSize="14"
Text="{DynamicResource customeQueryHotkeyTips}"
TextAlignment="Left"
TextWrapping="WrapWithOverflow" />
<Image
Width="478"
Margin="0,20,0,0"
Source="/Images/illustration_01.png" />
</StackPanel>
<TextBlock
Margin="0,0,0,12"
FontSize="20"
FontWeight="SemiBold"
Text="{DynamicResource customeQueryHotkeyTitle}"
TextAlignment="Left" />
<TextBlock
FontSize="14"
Text="{DynamicResource customeQueryHotkeyTips}"
TextAlignment="Left"
TextWrapping="WrapWithOverflow" />
<Image
Width="478"
Margin="0,20,0,0"
Source="/Images/illustration_01.png" />
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<Grid Width="478">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource hotkey}" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Orientation="Horizontal">
<flowlauncher:HotkeyControl
x:Name="ctlHotkey"
Grid.Column="1"
Width="200"
Height="36"
Margin="10,0,10,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
HorizontalContentAlignment="Left" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource actionKeyword}" />
</StackPanel>
<TextBlock
Grid.Row="1"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource customQuery}" />
<DockPanel
Grid.Row="1"
Grid.Column="1"
LastChildFill="True">
<Button
x:Name="btnTestActionKeyword"
Margin="0,0,10,0"
Padding="10,5,10,5"
Click="BtnTestActionKeyword_OnClick"
Content="{DynamicResource preview}"
DockPanel.Dock="Right" />
<TextBox
x:Name="tbAction"
Margin="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Center" />
</DockPanel>
</Grid>
</StackPanel>
<Grid Width="478" Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource hotkey}" />
<flowlauncher:HotkeyControl
x:Name="HotkeyControl"
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="10,0,10,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
HorizontalContentAlignment="Left"
HotkeySettings="{Binding Settings}"
DefaultHotkey="" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource customQuery}" />
<TextBox
x:Name="tbAction"
Grid.Row="1"
Grid.Column="1"
Margin="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Center" />
<Button
x:Name="btnTestActionKeyword"
Grid.Row="1"
Grid.Column="2"
Margin="0,0,10,0"
Padding="10,5,10,5"
Click="BtnTestActionKeyword_OnClick"
Content="{DynamicResource preview}" />
</Grid>
</StackPanel>
</StackPanel>
<Border
@ -174,4 +158,4 @@
</StackPanel>
</Border>
</Grid>
</Window>
</Window>

View file

@ -6,6 +6,7 @@ using System.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher
{
@ -14,13 +15,13 @@ namespace Flow.Launcher
private SettingWindow _settingWidow;
private bool update;
private CustomPluginHotkey updateCustomHotkey;
private Settings _settings;
public Settings Settings { get; }
public CustomQueryHotkeySetting(SettingWindow settingWidow, Settings settings)
{
_settingWidow = settingWidow;
Settings = settings;
InitializeComponent();
_settings = settings;
}
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
@ -32,36 +33,21 @@ namespace Flow.Launcher
{
if (!update)
{
if (!ctlHotkey.CurrentHotkeyAvailable)
{
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("hotkeyIsNotUnavailable"));
return;
}
if (_settings.CustomPluginHotkeys == null)
{
_settings.CustomPluginHotkeys = new ObservableCollection<CustomPluginHotkey>();
}
Settings.CustomPluginHotkeys ??= new ObservableCollection<CustomPluginHotkey>();
var pluginHotkey = new CustomPluginHotkey
{
Hotkey = ctlHotkey.CurrentHotkey.ToString(),
ActionKeyword = tbAction.Text
Hotkey = HotkeyControl.CurrentHotkey.ToString(), ActionKeyword = tbAction.Text
};
_settings.CustomPluginHotkeys.Add(pluginHotkey);
Settings.CustomPluginHotkeys.Add(pluginHotkey);
HotKeyMapper.SetCustomQueryHotkey(pluginHotkey);
}
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();
updateCustomHotkey.Hotkey = HotkeyControl.CurrentHotkey.ToString();
//remove origin hotkey
HotKeyMapper.RemoveHotkey(oldHotkey);
HotKeyMapper.SetCustomQueryHotkey(updateCustomHotkey);
@ -70,9 +56,11 @@ namespace Flow.Launcher
Close();
}
public void UpdateItem(CustomPluginHotkey item)
{
updateCustomHotkey = _settings.CustomPluginHotkeys.FirstOrDefault(o => o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey);
updateCustomHotkey = Settings.CustomPluginHotkeys.FirstOrDefault(o =>
o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey);
if (updateCustomHotkey == null)
{
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidPluginHotkey"));
@ -81,7 +69,7 @@ namespace Flow.Launcher
}
tbAction.Text = updateCustomHotkey.ActionKeyword;
_ = ctlHotkey.SetHotkeyAsync(updateCustomHotkey.Hotkey, false);
HotkeyControl.SetHotkey(updateCustomHotkey.Hotkey, false);
update = true;
lblAdd.Text = InternationalizationManager.Instance.GetTranslation("update");
}
@ -101,12 +89,10 @@ namespace Flow.Launcher
private void window_MouseDown(object sender, MouseButtonEventArgs e) /* for close hotkey popup */
{
TextBox textBox = Keyboard.FocusedElement as TextBox;
if (textBox != null)
{
TraversalRequest tRequest = new TraversalRequest(FocusNavigationDirection.Next);
textBox.MoveFocus(tRequest);
}
if (Keyboard.FocusedElement is not TextBox textBox) return;
TraversalRequest tRequest = new TraversalRequest(FocusNavigationDirection.Next);
textBox.MoveFocus(tRequest);
}
}
}

View file

@ -8,7 +8,6 @@ namespace Flow.Launcher
{
public partial class CustomShortcutSetting : Window
{
private SettingWindowViewModel viewModel;
public string Key { get; set; } = String.Empty;
public string Value { get; set; } = String.Empty;
private string originalKey { get; init; } = null;
@ -17,13 +16,11 @@ namespace Flow.Launcher
public CustomShortcutSetting(SettingWindowViewModel vm)
{
viewModel = vm;
InitializeComponent();
}
public CustomShortcutSetting(string key, string value, SettingWindowViewModel vm)
public CustomShortcutSetting(string key, string value)
{
viewModel = vm;
Key = key;
Value = value;
originalKey = key;
@ -46,8 +43,7 @@ namespace Flow.Launcher
return;
}
// Check if key is modified or adding a new one
if (((update && originalKey != Key) || !update)
&& viewModel.ShortcutExists(Key))
if ((update && originalKey != Key) || !update)
{
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("duplicateShortcut"));
return;

View file

@ -3,57 +3,56 @@ using Flow.Launcher.Infrastructure;
using Flow.Launcher.Infrastructure.Logger;
using Microsoft.Win32;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public class AutoStartup
{
public class AutoStartup
private const string StartupPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
public static bool IsEnabled
{
private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
public static bool IsEnabled
{
get
{
try
{
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
var path = key?.GetValue(Constant.FlowLauncher) as string;
return path == Constant.ExecutablePath;
}
catch (Exception e)
{
Log.Error("AutoStartup", $"Ignoring non-critical registry error (querying if enabled): {e}");
}
return false;
}
}
public static void Disable()
get
{
try
{
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
key?.DeleteValue(Constant.FlowLauncher, false);
var path = key?.GetValue(Constant.FlowLauncher) as string;
return path == Constant.ExecutablePath;
}
catch (Exception e)
{
Log.Error("AutoStartup", $"Failed to disable auto-startup: {e}");
throw;
Log.Error("AutoStartup", $"Ignoring non-critical registry error (querying if enabled): {e}");
}
}
internal static void Enable()
return false;
}
}
public static void Disable()
{
try
{
try
{
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
key?.SetValue(Constant.FlowLauncher, $"\"{Constant.ExecutablePath}\"");
}
catch (Exception e)
{
Log.Error("AutoStartup", $"Failed to enable auto-startup: {e}");
throw;
}
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
key?.DeleteValue(Constant.FlowLauncher, false);
}
catch (Exception e)
{
Log.Error("AutoStartup", $"Failed to disable auto-startup: {e}");
throw;
}
}
internal static void Enable()
{
try
{
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
key?.SetValue(Constant.FlowLauncher, $"\"{Constant.ExecutablePath}\"");
}
catch (Exception e)
{
Log.Error("AutoStartup", $"Failed to enable auto-startup: {e}");
throw;
}
}
}

View file

@ -4,70 +4,69 @@ using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public class DwmDropShadow
{
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)
{
[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))
{
if (!DropShadow(window))
{
window.SourceInitialized += window_SourceInitialized;
}
window.SourceInitialized += window_SourceInitialized;
}
}
private static void window_SourceInitialized(object sender, EventArgs e) //fixed typo
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
{
Window window = (Window)sender;
WindowInteropHelper helper = new WindowInteropHelper(window);
int val = 2;
int ret1 = DwmSetWindowAttribute(helper.Handle, 2, ref val, 4);
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
if (ret1 == 0)
{
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;
}
Margins m = new Margins { Bottom = 0, Left = 0, Right = 0, Top = 0 };
int ret2 = DwmExtendFrameIntoClientArea(helper.Handle, ref m);
return ret2 == 0;
}
catch (Exception)
else
{
// Probably dwmapi.dll not found (incompatible OS)
return false;
}
}
catch (Exception)
{
// Probably dwmapi.dll not found (incompatible OS)
return false;
}
}
}
}

View file

@ -2,68 +2,67 @@
using System.IO;
using System.Net;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public class DataWebRequestFactory : IWebRequestCreate
{
public class DataWebRequestFactory : IWebRequestCreate
class DataWebRequest : WebRequest
{
class DataWebRequest : WebRequest
private readonly Uri _uri;
public DataWebRequest(Uri uri)
{
private readonly Uri m_uri;
public DataWebRequest(Uri uri)
{
m_uri = uri;
}
public override WebResponse GetResponse()
{
return new DataWebResponse(m_uri);
}
_uri = uri;
}
class DataWebResponse : WebResponse
public override WebResponse GetResponse()
{
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);
return new DataWebResponse(_uri);
}
}
class DataWebResponse : WebResponse
{
private readonly string _contentType;
private readonly byte[] _data;
public DataWebResponse(Uri uri)
{
string uriString = uri.AbsoluteUri;
int commaIndex = uriString.IndexOf(',');
var headers = uriString.Substring(0, commaIndex).Split(';');
_contentType = headers[0];
string dataString = uriString.Substring(commaIndex + 1);
_data = Convert.FromBase64String(dataString);
}
public override string ContentType
{
get { return _contentType; }
set
{
throw new NotSupportedException();
}
}
public override long ContentLength
{
get { return _data.Length; }
set
{
throw new NotSupportedException();
}
}
public override Stream GetResponseStream()
{
return new MemoryStream(_data);
}
}
public WebRequest Create(Uri uri)
{
return new DataWebRequest(uri);
}
}

View file

@ -4,45 +4,52 @@ using NLog;
using Flow.Launcher.Infrastructure;
using Flow.Launcher.Infrastructure.Exception;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public static class ErrorReporting
{
public static class ErrorReporting
private static void Report(Exception e)
{
private static void Report(Exception e)
{
var logger = LogManager.GetLogger("UnHandledException");
logger.Fatal(ExceptionFormatter.FormatExcpetion(e));
var reportWindow = new ReportWindow(e);
reportWindow.Show();
}
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 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 = $"\nFlow Launcher version: {Constant.Version}" +
$"\nOS Version: {ExceptionFormatter.GetWindowsFullVersionFromRegistry()}" +
$"\nIntPtr Length: {IntPtr.Size}" +
$"\nx64: {Environment.Is64BitOperatingSystem}";
return info;
}
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 DependenciesInfo()
{
var info = $"\nPython Path: {Constant.PythonPath}\nNode Path: {Constant.NodePath}";
return info;
}
public static string RuntimeInfo()
{
var info =
$"""
Flow Launcher version: {Constant.Version}
OS Version: {ExceptionFormatter.GetWindowsFullVersionFromRegistry()}
IntPtr Length: {IntPtr.Size}
x64: {Environment.Is64BitOperatingSystem}
""";
return info;
}
public static string DependenciesInfo()
{
var info = $"""
Python Path: {Constant.PythonPath}
Node Path: {Constant.NodePath}
""";
return info;
}
}

View file

@ -7,97 +7,96 @@ using Flow.Launcher.Core.Resource;
using System.Windows;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
internal static class HotKeyMapper
{
internal static class HotKeyMapper
private static Settings _settings;
private static MainViewModel _mainViewModel;
internal static void Initialize(MainViewModel mainVM)
{
private static Settings settings;
private static MainViewModel mainViewModel;
_mainViewModel = mainVM;
_settings = _mainViewModel.Settings;
internal static void Initialize(MainViewModel mainVM)
SetHotkey(_settings.Hotkey, OnToggleHotkey);
LoadCustomPluginHotkey();
}
internal static void OnToggleHotkey(object sender, HotkeyEventArgs args)
{
if (!_mainViewModel.ShouldIgnoreHotkeys())
_mainViewModel.ToggleFlowLauncher();
}
private static void SetHotkey(string hotkeyStr, EventHandler<HotkeyEventArgs> action)
{
var hotkey = new HotkeyModel(hotkeyStr);
SetHotkey(hotkey, action);
}
internal static void SetHotkey(HotkeyModel hotkey, EventHandler<HotkeyEventArgs> action)
{
string hotkeyStr = hotkey.ToString();
try
{
mainViewModel = mainVM;
settings = mainViewModel.Settings;
SetHotkey(settings.Hotkey, OnToggleHotkey);
LoadCustomPluginHotkey();
HotkeyManager.Current.AddOrReplace(hotkeyStr, hotkey.CharKey, hotkey.ModifierKeys, action);
}
internal static void OnToggleHotkey(object sender, HotkeyEventArgs args)
catch (Exception)
{
if (!mainViewModel.ShouldIgnoreHotkeys())
mainViewModel.ToggleFlowLauncher();
}
private static void SetHotkey(string hotkeyStr, EventHandler<HotkeyEventArgs> action)
{
var hotkey = new HotkeyModel(hotkeyStr);
SetHotkey(hotkey, action);
}
internal static 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);
string errorMsgTitle = InternationalizationManager.Instance.GetTranslation("MessageBoxTitle");
MessageBox.Show(errorMsg,errorMsgTitle);
}
}
internal static void RemoveHotkey(string hotkeyStr)
{
if (!string.IsNullOrEmpty(hotkeyStr))
{
HotkeyManager.Current.Remove(hotkeyStr);
}
}
internal static void LoadCustomPluginHotkey()
{
if (settings.CustomPluginHotkeys == null)
return;
foreach (CustomPluginHotkey hotkey in settings.CustomPluginHotkeys)
{
SetCustomQueryHotkey(hotkey);
}
}
internal static void SetCustomQueryHotkey(CustomPluginHotkey hotkey)
{
SetHotkey(hotkey.Hotkey, (s, e) =>
{
if (mainViewModel.ShouldIgnoreHotkeys())
return;
mainViewModel.Show();
mainViewModel.ChangeQueryText(hotkey.ActionKeyword, true);
});
}
internal static bool CheckAvailability(HotkeyModel currentHotkey)
{
try
{
HotkeyManager.Current.AddOrReplace("HotkeyAvailabilityTest", currentHotkey.CharKey, currentHotkey.ModifierKeys, (sender, e) => { });
return true;
}
catch
{
}
finally
{
HotkeyManager.Current.Remove("HotkeyAvailabilityTest");
}
return false;
string errorMsg = string.Format(InternationalizationManager.Instance.GetTranslation("registerHotkeyFailed"), hotkeyStr);
string errorMsgTitle = InternationalizationManager.Instance.GetTranslation("MessageBoxTitle");
MessageBox.Show(errorMsg,errorMsgTitle);
}
}
internal static void RemoveHotkey(string hotkeyStr)
{
if (!string.IsNullOrEmpty(hotkeyStr))
{
HotkeyManager.Current.Remove(hotkeyStr);
}
}
internal static void LoadCustomPluginHotkey()
{
if (_settings.CustomPluginHotkeys == null)
return;
foreach (CustomPluginHotkey hotkey in _settings.CustomPluginHotkeys)
{
SetCustomQueryHotkey(hotkey);
}
}
internal static void SetCustomQueryHotkey(CustomPluginHotkey hotkey)
{
SetHotkey(hotkey.Hotkey, (s, e) =>
{
if (_mainViewModel.ShouldIgnoreHotkeys())
return;
_mainViewModel.Show();
_mainViewModel.ChangeQueryText(hotkey.ActionKeyword, true);
});
}
internal static bool CheckAvailability(HotkeyModel currentHotkey)
{
try
{
HotkeyManager.Current.AddOrReplace("HotkeyAvailabilityTest", currentHotkey.CharKey, currentHotkey.ModifierKeys, (sender, e) => { });
return true;
}
catch
{
}
finally
{
HotkeyManager.Current.Remove("HotkeyAvailabilityTest");
}
return false;
}
}

View file

@ -2,27 +2,26 @@
using System.Linq;
using System.Windows;
namespace Flow.Launcher.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);
// Fix UI bug
// Add `window.WindowState = WindowState.Normal`
// If only use `window.Show()`, Settings-window doesn't show when minimized in taskbar
// Not sure why this works tho
// Probably because, when `.Show()` fails, `window.WindowState == Minimized` (not `Normal`)
// https://stackoverflow.com/a/59719760/4230390
window.WindowState = WindowState.Normal;
window.Show();
window.Focus();
namespace Flow.Launcher.Helper;
return (T)window;
}
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);
// Fix UI bug
// Add `window.WindowState = WindowState.Normal`
// If only use `window.Show()`, Settings-window doesn't show when minimized in taskbar
// Not sure why this works tho
// Probably because, when `.Show()` fails, `window.WindowState == Minimized` (not `Normal`)
// https://stackoverflow.com/a/59719760/4230390
window.WindowState = WindowState.Normal;
window.Show();
window.Focus();
return (T)window;
}
}
}

View file

@ -1,24 +1,23 @@
using System;
namespace Flow.Launcher.Helper
{
public static class SyntaxSugars
{
public static TResult CallOrRescueDefault<TResult>(Func<TResult> callback)
{
return CallOrRescueDefault(callback, default(TResult));
}
namespace Flow.Launcher.Helper;
public static TResult CallOrRescueDefault<TResult>(Func<TResult> callback, TResult def)
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
{
try
{
return callback();
}
catch
{
return def;
}
return callback();
}
catch
{
return def;
}
}
}

View file

@ -5,44 +5,43 @@ using System.Text;
using System.Windows.Media;
using Microsoft.Win32;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public static class WallpaperPathRetrieval
{
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()
{
[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;
var wallpaper = new StringBuilder(MAX_PATH);
SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, wallpaper, 0);
public static string GetWallpaperPath()
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 is string strResult)
{
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 = strResult.Trim().Split(new[] {' '}, 3).Select(byte.Parse).ToList();
return Color.FromRgb(parts[0], parts[1], parts[2]);
}
catch
{
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;
}
return Colors.Transparent;
}
}

View file

@ -8,156 +8,152 @@ using System.Windows.Interop;
using System.Windows.Media;
using Point = System.Windows.Point;
namespace Flow.Launcher.Helper
namespace Flow.Launcher.Helper;
public class WindowsInteropHelper
{
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
{
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
{
get
{
return _hwnd_shell != IntPtr.Zero ? _hwnd_shell : _hwnd_shell = GetShellWindow();
}
return _hwnd_shell != IntPtr.Zero ? _hwnd_shell : _hwnd_shell = GetShellWindow();
}
private static IntPtr HWND_DESKTOP
}
private static IntPtr HWND_DESKTOP
{
get
{
get
{
return _hwnd_desktop != IntPtr.Zero ? _hwnd_desktop : _hwnd_desktop = GetDesktopWindow();
}
return _hwnd_desktop != IntPtr.Zero ? _hwnd_desktop : _hwnd_desktop = GetDesktopWindow();
}
}
[DllImport("user32.dll", SetLastError = true)]
internal static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
internal static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll", SetLastError = true)]
internal static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
internal static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
internal static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
internal static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
internal static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
internal static extern IntPtr GetShellWindow();
[DllImport("user32.dll")]
internal static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll", SetLastError = true)]
internal static extern int GetWindowRect(IntPtr hwnd, out RECT rc);
[DllImport("user32.dll")]
internal static extern IntPtr GetShellWindow();
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
internal static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll", SetLastError = true)]
internal static extern int GetWindowRect(IntPtr hwnd, out RECT rc);
[DllImport("user32.DLL")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
internal 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";
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()
public static bool IsWindowFullscreen()
{
//get current active window
IntPtr hWnd = GetForegroundWindow();
if (hWnd.Equals(IntPtr.Zero))
{
//get current active window
IntPtr hWnd = GetForegroundWindow();
if (!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.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)
//if current active window is desktop or shell, exit early
if (hWnd.Equals(HWND_DESKTOP) || hWnd.Equals(HWND_SHELL))
{
var hwnd = new WindowInteropHelper(win).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
return false;
}
/// <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)
StringBuilder sb = new StringBuilder(256);
GetClassName(hWnd, sb, sb.Capacity);
string windowClass = sb.ToString();
//for Win+Tab (Flip3D)
if (windowClass == WINDOW_CLASS_WINTAB)
{
Matrix matrix;
var source = PresentationSource.FromVisual(visual);
if (source != null)
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 is WINDOW_CLASS_PROGMAN or WINDOW_CLASS_WORKERW)
{
IntPtr hWndDesktop = FindWindowEx(hWnd, IntPtr.Zero, "SHELLDLL_DefView", null);
hWndDesktop = FindWindowEx(hWndDesktop, IntPtr.Zero, "SysListView32", "FolderView");
if (!hWndDesktop.Equals(IntPtr.Zero))
{
matrix = source.CompositionTarget.TransformFromDevice;
return false;
}
else
{
using (var src = new HwndSource(new HwndSourceParameters()))
{
matrix = src.CompositionTarget.TransformFromDevice;
}
}
return new Point((int)(matrix.M11 * unitX), (int)(matrix.M22 * unitY));
}
Rectangle screenBounds = Screen.FromHandle(hWnd).Bounds;
return (appBounds.Bottom - appBounds.Top) == screenBounds.Height && (appBounds.Right - appBounds.Left) == screenBounds.Width;
}
[StructLayout(LayoutKind.Sequential)]
public struct RECT
/// <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 is not null)
{
public int Left;
public int Top;
public int Right;
public int Bottom;
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;
}
}

View file

@ -0,0 +1,11 @@
using Microsoft.Win32;
namespace Flow.Launcher.Helper;
internal static class WindowsMediaPlayerHelper
{
internal static bool IsWindowsMediaPlayerInstalled()
{
using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\MediaPlayer");
return key.GetValue("Installation Directory") != null;
}
}

View file

@ -3,54 +3,75 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Height="24"
d:DesignHeight="300"
d:DesignWidth="300"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Popup
x:Name="popup"
AllowDrop="True"
AllowsTransparency="True"
IsOpen="{Binding IsKeyboardFocused, ElementName=tbHotkey, Mode=OneWay}"
Placement="Top"
PlacementTarget="{Binding ElementName=tbHotkey}"
PopupAnimation="Fade"
StaysOpen="True"
VerticalOffset="-5">
<Border
Width="140"
Height="30"
Background="{DynamicResource Color01B}"
BorderBrush="{DynamicResource Color21B}"
BorderThickness="1"
CornerRadius="4">
<TextBlock
x:Name="tbMsg"
Margin="0,0,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="{DynamicResource Color05B}"
Text="{DynamicResource flowlauncherPressHotkey}"
Visibility="Visible" />
</Border>
</Popup>
<TextBox
x:Name="tbHotkey"
Margin="0,0,18,0"
VerticalContentAlignment="Center"
input:InputMethod.IsInputMethodEnabled="False"
GotFocus="tbHotkey_GotFocus"
LostFocus="tbHotkey_LostFocus"
PreviewKeyDown="TbHotkey_OnPreviewKeyDown"
TabIndex="100" />
</Grid>
</UserControl>
<Button
Width="Auto"
FontSize="13"
FontWeight="Bold"
Foreground="{DynamicResource Color01B}"
Click="GetNewHotkey">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border
x:Name="ButtonBorder"
Padding="5,0,5,0"
Background="{DynamicResource ButtonBackgroundColor}"
BorderBrush="{DynamicResource ButtonInsideBorder}"
BorderThickness="1"
CornerRadius="5">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="IsPressed" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="ButtonBorder" Property="Background"
Value="{DynamicResource ButtonMousePressed}" />
<Setter TargetName="ButtonBorder" Property="BorderBrush"
Value="{DynamicResource ButtonMousePressedInsideBorder}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="ButtonBorder" Property="Background"
Value="{DynamicResource ButtonMouseOver}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsPressed" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="ButtonBorder" Property="Background"
Value="{DynamicResource ButtonMousePressed}" />
<Setter TargetName="ButtonBorder" Property="BorderBrush"
Value="{DynamicResource CustomContextHover}" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
<Button.Content>
<ItemsControl x:Name="HotkeyList">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border
Margin="2,5,2,5"
Padding="10,5,10,5"
Background="{DynamicResource AccentButtonBackground}"
BorderThickness="1"
CornerRadius="5">
<TextBlock Text="{Binding}" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Button.Content>
</Button>
</UserControl>

View file

@ -1,141 +1,204 @@
using System;
#nullable enable
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using Flow.Launcher.Core.Resource;
using Flow.Launcher.Helper;
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Plugin;
using System.Threading;
namespace Flow.Launcher
{
public partial class HotkeyControl : UserControl
public partial class HotkeyControl
{
public HotkeyModel CurrentHotkey { get; private set; }
public bool CurrentHotkeyAvailable { get; private set; }
public IHotkeySettings HotkeySettings {
get { return (IHotkeySettings)GetValue(HotkeySettingsProperty); }
set { SetValue(HotkeySettingsProperty, value); }
}
public event EventHandler HotkeyChanged;
public static readonly DependencyProperty HotkeySettingsProperty = DependencyProperty.Register(
nameof(HotkeySettings),
typeof(IHotkeySettings),
typeof(HotkeyControl),
new PropertyMetadata()
);
public string WindowTitle {
get { return (string)GetValue(WindowTitleProperty); }
set { SetValue(WindowTitleProperty, value); }
}
public static readonly DependencyProperty WindowTitleProperty = DependencyProperty.Register(
nameof(WindowTitle),
typeof(string),
typeof(HotkeyControl),
new PropertyMetadata(string.Empty)
);
/// <summary>
/// Designed for Preview Hotkey and KeyGesture.
/// </summary>
public bool ValidateKeyGesture { get; set; } = false;
public static readonly DependencyProperty ValidateKeyGestureProperty = DependencyProperty.Register(
nameof(ValidateKeyGesture),
typeof(bool),
typeof(HotkeyControl),
new PropertyMetadata(default(bool))
);
protected virtual void OnHotkeyChanged() => HotkeyChanged?.Invoke(this, EventArgs.Empty);
public HotkeyControl()
public bool ValidateKeyGesture
{
InitializeComponent();
get { return (bool)GetValue(ValidateKeyGestureProperty); }
set { SetValue(ValidateKeyGestureProperty, value); }
}
private CancellationTokenSource hotkeyUpdateSource;
public static readonly DependencyProperty DefaultHotkeyProperty = DependencyProperty.Register(
nameof(DefaultHotkey),
typeof(string),
typeof(HotkeyControl),
new PropertyMetadata(default(string))
);
private void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e)
public string DefaultHotkey
{
hotkeyUpdateSource?.Cancel();
hotkeyUpdateSource?.Dispose();
hotkeyUpdateSource = new();
var token = hotkeyUpdateSource.Token;
e.Handled = true;
get { return (string)GetValue(DefaultHotkeyProperty); }
set { SetValue(DefaultHotkeyProperty, value); }
}
//when alt is pressed, the real key should be e.SystemKey
Key key = e.Key == Key.System ? e.SystemKey : e.Key;
SpecialKeyState specialKeyState = GlobalHotkey.CheckModifiers();
var hotkeyModel = new HotkeyModel(
specialKeyState.AltPressed,
specialKeyState.ShiftPressed,
specialKeyState.WinPressed,
specialKeyState.CtrlPressed,
key);
if (hotkeyModel.Equals(CurrentHotkey))
private static void OnHotkeyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is not HotkeyControl hotkeyControl)
{
return;
}
_ = Dispatcher.InvokeAsync(async () =>
{
await Task.Delay(500, token);
if (!token.IsCancellationRequested)
await SetHotkeyAsync(hotkeyModel);
});
hotkeyControl.SetKeysToDisplay(new HotkeyModel(hotkeyControl.Hotkey));
hotkeyControl.CurrentHotkey = new HotkeyModel(hotkeyControl.Hotkey);
}
public async Task SetHotkeyAsync(HotkeyModel keyModel, bool triggerValidate = true)
{
tbHotkey.Text = keyModel.ToString();
tbHotkey.Select(tbHotkey.Text.Length, 0);
public static readonly DependencyProperty ChangeHotkeyProperty = DependencyProperty.Register(
nameof(ChangeHotkey),
typeof(ICommand),
typeof(HotkeyControl),
new PropertyMetadata(default(ICommand))
);
public ICommand? ChangeHotkey
{
get { return (ICommand)GetValue(ChangeHotkeyProperty); }
set { SetValue(ChangeHotkeyProperty, value); }
}
public static readonly DependencyProperty HotkeyProperty = DependencyProperty.Register(
nameof(Hotkey),
typeof(string),
typeof(HotkeyControl),
new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnHotkeyChanged)
);
public string Hotkey
{
get { return (string)GetValue(HotkeyProperty); }
set { SetValue(HotkeyProperty, value); }
}
public HotkeyControl()
{
InitializeComponent();
HotkeyList.ItemsSource = KeysToDisplay;
SetKeysToDisplay(CurrentHotkey);
}
private static bool CheckHotkeyAvailability(HotkeyModel hotkey, bool validateKeyGesture) =>
hotkey.Validate(validateKeyGesture) && HotKeyMapper.CheckAvailability(hotkey);
public string EmptyHotkey => InternationalizationManager.Instance.GetTranslation("none");
public ObservableCollection<string> KeysToDisplay { get; set; } = new();
public HotkeyModel CurrentHotkey { get; private set; } = new(false, false, false, false, Key.None);
public void GetNewHotkey(object sender, RoutedEventArgs e)
{
OpenHotkeyDialog();
}
private async Task OpenHotkeyDialog()
{
if (!string.IsNullOrEmpty(Hotkey))
{
HotKeyMapper.RemoveHotkey(Hotkey);
}
var dialog = new HotkeyControlDialog(Hotkey, DefaultHotkey, HotkeySettings, WindowTitle);
await dialog.ShowAsync();
switch (dialog.ResultType)
{
case HotkeyControlDialog.EResultType.Cancel:
SetHotkey(Hotkey);
return;
case HotkeyControlDialog.EResultType.Save:
SetHotkey(dialog.ResultValue);
break;
case HotkeyControlDialog.EResultType.Delete:
Delete();
break;
}
}
private void SetHotkey(HotkeyModel keyModel, bool triggerValidate = true)
{
if (triggerValidate)
{
bool hotkeyAvailable = CheckHotkeyAvailability(keyModel, ValidateKeyGesture);
CurrentHotkeyAvailable = hotkeyAvailable;
SetMessage(hotkeyAvailable);
OnHotkeyChanged();
var token = hotkeyUpdateSource.Token;
await Task.Delay(500, token);
if (token.IsCancellationRequested)
return;
if (CurrentHotkeyAvailable)
if (!hotkeyAvailable)
{
CurrentHotkey = keyModel;
// To trigger LostFocus
FocusManager.SetFocusedElement(FocusManager.GetFocusScope(this), null);
Keyboard.ClearFocus();
return;
}
Hotkey = keyModel.ToString();
SetKeysToDisplay(CurrentHotkey);
ChangeHotkey?.Execute(keyModel);
}
else
{
CurrentHotkey = keyModel;
Hotkey = keyModel.ToString();
ChangeHotkey?.Execute(keyModel);
}
}
public Task SetHotkeyAsync(string keyStr, bool triggerValidate = true)
public void Delete()
{
return SetHotkeyAsync(new HotkeyModel(keyStr), triggerValidate);
if (!string.IsNullOrEmpty(Hotkey))
HotKeyMapper.RemoveHotkey(Hotkey);
Hotkey = "";
SetKeysToDisplay(new HotkeyModel(false, false, false, false, Key.None));
}
private static bool CheckHotkeyAvailability(HotkeyModel hotkey, bool validateKeyGesture) => hotkey.Validate(validateKeyGesture) && HotKeyMapper.CheckAvailability(hotkey);
public new bool IsFocused => tbHotkey.IsFocused;
private void tbHotkey_LostFocus(object sender, RoutedEventArgs e)
private void SetKeysToDisplay(HotkeyModel? hotkey)
{
tbHotkey.Text = CurrentHotkey?.ToString() ?? "";
tbHotkey.Select(tbHotkey.Text.Length, 0);
}
KeysToDisplay.Clear();
private void tbHotkey_GotFocus(object sender, RoutedEventArgs e)
{
ResetMessage();
}
private void ResetMessage()
{
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("flowlauncherPressHotkey");
tbMsg.SetResourceReference(TextBox.ForegroundProperty, "Color05B");
}
private void SetMessage(bool hotkeyAvailable)
{
if (!hotkeyAvailable)
if (hotkey == null || hotkey == default(HotkeyModel))
{
tbMsg.Foreground = new SolidColorBrush(Colors.Red);
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("hotkeyUnavailable");
KeysToDisplay.Add(EmptyHotkey);
return;
}
else
foreach (var key in hotkey.Value.EnumerateDisplayKeys()!)
{
tbMsg.Foreground = new SolidColorBrush(Colors.Green);
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("success");
KeysToDisplay.Add(key);
}
tbMsg.Visibility = Visibility.Visible;
}
public void SetHotkey(string? keyStr, bool triggerValidate = true)
{
SetHotkey(new HotkeyModel(keyStr), triggerValidate);
}
}
}

View file

@ -0,0 +1,169 @@
<ui:ContentDialog
x:Class="Flow.Launcher.HotkeyControlDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="http://schemas.modernwpf.com/2019"
Background="{DynamicResource PopuBGColor}"
BorderBrush="{DynamicResource PopupButtonAreaBorderColor}"
BorderThickness="0,1,0,0"
CornerRadius="8"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Foreground="{DynamicResource PopupTextColor}"
PreviewKeyDown="OnPreviewKeyDown"
Style="{DynamicResource ContentDialog}">
<ui:ContentDialog.Resources>
<Thickness x:Key="ContentDialogPadding">0</Thickness>
<Thickness x:Key="ContentDialogTitleMargin">0</Thickness>
</ui:ContentDialog.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="100" />
<RowDefinition Height="80" />
</Grid.RowDefinitions>
<!-- Window title and the keys in the hotkey -->
<Grid Grid.Row="0" Margin="26,12,26,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel>
<TextBlock
Margin="0,0,0,0"
FontSize="20"
FontWeight="SemiBold"
Text="{Binding WindowTitle}"
TextAlignment="Left" />
<TextBlock FontSize="14" Text="{DynamicResource hotkeyRegGuide}" />
</StackPanel>
<Border
Grid.Row="1"
Width="450"
Height="100"
Margin="0,100,0,0"
Padding="26,12,26,0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<ItemsControl ItemsSource="{Binding KeysToDisplay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border
MinWidth="50"
MinHeight="50"
Margin="5,0,5,0"
Padding="8"
Background="{DynamicResource AccentButtonBackground}"
CornerRadius="6">
<TextBlock
Margin="5,0,5,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="18"
FontWeight="Bold"
Foreground="{DynamicResource Color01B}"
Text="{Binding}" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Border>
</Grid>
<!-- Warning message for when something went wrong with the new hotkey. -->
<Border Grid.Row="1">
<Border
x:Name="Alert"
Width="420"
Padding="0, 10"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Background="{DynamicResource InfoBarWarningBG}"
BorderBrush="{DynamicResource InfoBarBD}"
BorderThickness="1"
CornerRadius="5"
Visibility="Collapsed">
<Grid VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:FontIcon
Grid.Column="0"
Margin="20,0,14,0"
VerticalAlignment="Center"
FontSize="15"
Foreground="{DynamicResource InfoBarWarningIcon}"
Glyph="&#xf167;" />
<TextBlock
Grid.Column="1"
x:Name="tbMsg"
Margin="0,0,0,2"
Padding="0,0,8,0"
HorizontalAlignment="Left"
FontSize="13"
FontWeight="SemiBold"
TextWrapping="Wrap"
Foreground="{DynamicResource Color05B}" />
</Grid>
</Border>
</Border>
<!-- Action buttons at the bottom of the dialog -->
<Border
Grid.Row="2"
Background="{DynamicResource PopupButtonAreaBGColor}"
BorderBrush="{DynamicResource PopupButtonAreaBorderColor}"
BorderThickness="0,1,0,0"
CornerRadius="0 0 8 8">
<StackPanel
Margin="10"
HorizontalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="OverwriteBtn"
Height="30"
MinWidth="100"
Margin="0,0,4,0"
Click="Overwrite"
Content="{DynamicResource commonOverwrite}"
Visibility="Collapsed"
Style="{StaticResource AccentButtonStyle}" />
<Button
x:Name="SaveBtn"
Height="30"
MinWidth="100"
Margin="0,0,4,0"
Click="Save"
Content="{DynamicResource commonSave}"
Style="{StaticResource AccentButtonStyle}" />
<Button
Height="30"
MinWidth="100"
Margin="4,0,4,0"
Click="Reset"
Content="{DynamicResource commonReset}" />
<Button
Height="30"
MinWidth="100"
Margin="4,0,4,0"
Click="Delete"
Content="{DynamicResource commonDelete}" />
<Button
Height="30"
MinWidth="100"
Margin="4,0,0,0"
Click="Cancel"
Content="{DynamicResource commonCancel}" />
</StackPanel>
</Border>
</Grid>
</ui:ContentDialog>

View file

@ -0,0 +1,179 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Input;
using Flow.Launcher.Core.Resource;
using Flow.Launcher.Helper;
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Plugin;
using ModernWpf.Controls;
namespace Flow.Launcher;
#nullable enable
public partial class HotkeyControlDialog : ContentDialog
{
private IHotkeySettings _hotkeySettings;
private Action? _overwriteOtherHotkey;
private string DefaultHotkey { get; }
public string WindowTitle { get; }
public HotkeyModel CurrentHotkey { get; private set; }
public ObservableCollection<string> KeysToDisplay { get; } = new();
public enum EResultType
{
Cancel,
Save,
Delete
}
public EResultType ResultType { get; private set; } = EResultType.Cancel;
public string ResultValue { get; private set; } = string.Empty;
public static string EmptyHotkey => InternationalizationManager.Instance.GetTranslation("none");
public HotkeyControlDialog(string hotkey, string defaultHotkey, IHotkeySettings hotkeySettings, string windowTitle = "")
{
WindowTitle = windowTitle switch
{
"" or null => InternationalizationManager.Instance.GetTranslation("hotkeyRegTitle"),
_ => windowTitle
};
DefaultHotkey = defaultHotkey;
CurrentHotkey = new HotkeyModel(hotkey);
_hotkeySettings = hotkeySettings;
SetKeysToDisplay(CurrentHotkey);
InitializeComponent();
}
private void Reset(object sender, RoutedEventArgs routedEventArgs)
{
SetKeysToDisplay(new HotkeyModel(DefaultHotkey));
}
private void Delete(object sender, RoutedEventArgs routedEventArgs)
{
KeysToDisplay.Clear();
KeysToDisplay.Add(EmptyHotkey);
}
private void Cancel(object sender, RoutedEventArgs routedEventArgs)
{
ResultType = EResultType.Cancel;
Hide();
}
private void Save(object sender, RoutedEventArgs routedEventArgs)
{
if (KeysToDisplay.Count == 1 && KeysToDisplay[0] == EmptyHotkey)
{
ResultType = EResultType.Delete;
Hide();
return;
}
ResultType = EResultType.Save;
ResultValue = string.Join("+", KeysToDisplay);
Hide();
}
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
//when alt is pressed, the real key should be e.SystemKey
Key key = e.Key == Key.System ? e.SystemKey : e.Key;
SpecialKeyState specialKeyState = GlobalHotkey.CheckModifiers();
var hotkeyModel = new HotkeyModel(
specialKeyState.AltPressed,
specialKeyState.ShiftPressed,
specialKeyState.WinPressed,
specialKeyState.CtrlPressed,
key);
CurrentHotkey = hotkeyModel;
SetKeysToDisplay(CurrentHotkey);
}
private void SetKeysToDisplay(HotkeyModel? hotkey)
{
_overwriteOtherHotkey = null;
KeysToDisplay.Clear();
if (hotkey == null || hotkey == default(HotkeyModel))
{
KeysToDisplay.Add(EmptyHotkey);
return;
}
foreach (var key in hotkey.Value.EnumerateDisplayKeys()!)
{
KeysToDisplay.Add(key);
}
if (tbMsg == null)
return;
if (_hotkeySettings.RegisteredHotkeys.FirstOrDefault(v => v.Hotkey == hotkey) is { } registeredHotkeyData)
{
var description = string.Format(
InternationalizationManager.Instance.GetTranslation(registeredHotkeyData.DescriptionResourceKey),
registeredHotkeyData.DescriptionFormatVariables
);
Alert.Visibility = Visibility.Visible;
if (registeredHotkeyData.RemoveHotkey is not null)
{
tbMsg.Text = string.Format(
InternationalizationManager.Instance.GetTranslation("hotkeyUnavailableEditable"),
description
);
SaveBtn.IsEnabled = false;
SaveBtn.Visibility = Visibility.Collapsed;
OverwriteBtn.IsEnabled = true;
OverwriteBtn.Visibility = Visibility.Visible;
_overwriteOtherHotkey = registeredHotkeyData.RemoveHotkey;
}
else
{
tbMsg.Text = string.Format(
InternationalizationManager.Instance.GetTranslation("hotkeyUnavailableUneditable"),
description
);
SaveBtn.IsEnabled = false;
SaveBtn.Visibility = Visibility.Visible;
OverwriteBtn.IsEnabled = false;
OverwriteBtn.Visibility = Visibility.Collapsed;
}
return;
}
OverwriteBtn.IsEnabled = false;
OverwriteBtn.Visibility = Visibility.Collapsed;
if (!CheckHotkeyAvailability(hotkey.Value, true))
{
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("hotkeyUnavailable");
Alert.Visibility = Visibility.Visible;
SaveBtn.IsEnabled = false;
SaveBtn.Visibility = Visibility.Visible;
}
else
{
Alert.Visibility = Visibility.Collapsed;
SaveBtn.IsEnabled = true;
SaveBtn.Visibility = Visibility.Visible;
}
}
private static bool CheckHotkeyAvailability(HotkeyModel hotkey, bool validateKeyGesture) =>
hotkey.Validate(validateKeyGesture) && HotKeyMapper.CheckAvailability(hotkey);
private void Overwrite(object sender, RoutedEventArgs e)
{
_overwriteOtherHotkey?.Invoke();
Save(sender, e);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Hotkey</system:String>
<system:String x:Key="hotkeys">Hotkeys</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Hotkey</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Open Result Modifier Key</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Show Hotkey</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Hotkeys</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcuts</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcuts</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Hotkey Unavailable</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Save</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Cancel</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Delete</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Tmavý</system:String>
<system:String x:Key="SoundEffect">Zvukový efekt</system:String>
<system:String x:Key="SoundEffectTip">Přehrát krátký zvuk při otevření okna vyhledávání</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animace</system:String>
<system:String x:Key="AnimationTip">Použít animaci v UI</system:String>
<system:String x:Key="AnimationSpeed">Rychlost animace</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Klávesová zkratka</system:String>
<system:String x:Key="hotkeys">Klávesové zkratky</system:String>
<system:String x:Key="flowlauncherHotkey">Klávesová zkratka pro Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Zadejte zkratku pro zobrazení/skrytí nástroje Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Klávesová zkratka pro náhled</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Zadejte klávesovou zkratku pro zobrazení/skrytí náhledu v okně vyhledávání.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Modifikační klávesa pro otevření výsledků</system:String>
<system:String x:Key="openResultModifiersToolTip">Výběrem modifikační klávesy otevřete vybraný výsledek pomocí klávesnice.</system:String>
<system:String x:Key="showOpenResultHotkey">Zobrazit klávesovou zkratku</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Zobrazí klávesovou zkratku spolu s výsledky.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Otevřít kontextovou nabídku</system:String>
<system:String x:Key="SettingWindowHotkey">Otevřít okno s nastavením</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Otevřít umístění složky</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Vlastní klávesové zkratky pro vyhledávání</system:String>
<system:String x:Key="customQueryShortcut">Vlastní zkratky dotazů</system:String>
<system:String x:Key="builtinShortcuts">Vestavěné zkratky</system:String>
@ -186,6 +212,7 @@
<system:String x:Key="delete">Smazat</system:String>
<system:String x:Key="edit">Editovat</system:String>
<system:String x:Key="add">Přidat</system:String>
<system:String x:Key="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">Vyberte prosím položku</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">Jste si jisti, že chcete odstranit klávesovou zkratku {0} pro plugin?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Opravdu chcete odstranit zástupce: {0} pro dotaz {1}?</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">Klávesová zkratka je nedostupná, zadejte prosím novou zkratku</system:String>
<system:String x:Key="invalidPluginHotkey">Neplatná klávesová zkratka pluginu</system:String>
<system:String x:Key="update">Aktualizovat</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Vlastní klávesová zkratka pro zadávání dotazů</system:String>
@ -295,8 +327,12 @@ Pokud před zkratku při zadávání přidáte znak &quot;@&quot;, bude odpovíd
<system:String x:Key="duplicateShortcut">Zkratka již existuje, zadejte novou zkratku nebo upravte stávající.</system:String>
<system:String x:Key="emptyShortcut">Zkratka a/nebo její plné znění je prázdné.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Klávesová zkratka je nedostupná</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Uložit</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Zrušit</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Smazat</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Verze</system:String>
@ -366,6 +402,12 @@ Pokud před zkratku při zadávání přidáte znak &quot;@&quot;, bude odpovíd
<system:String x:Key="HotkeyCtrlIDesc">Otevřít okno s nastavením</system:String>
<system:String x:Key="HotkeyF5Desc">Znovu načíst data pluginů</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Počasí</system:String>
<system:String x:Key="RecommendWeatherDesc">Výsledky počasí Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Genvejstast</system:String>
<system:String x:Key="hotkeys">Genvejstast</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher genvejstast</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Åbn resultatmodifikatorer</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Vis hotkey</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Tilpasset søgegenvejstast</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Genvejstast utilgængelig</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Gem</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Annuller</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Slet</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -113,7 +113,7 @@
<system:String x:Key="pluginStore">Erweiterungen laden</system:String>
<system:String x:Key="pluginStore_NewRelease">New Release</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
<system:String x:Key="pluginStore_None">Plugins</system:String>
<system:String x:Key="pluginStore_None">Erweiterungen</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="refresh">Aktualisieren</system:String>
<system:String x:Key="installbtn">Installieren</system:String>
@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Dunkel</system:String>
<system:String x:Key="SoundEffect">Soundeffekt</system:String>
<system:String x:Key="SoundEffectTip">Ton abspielen, wenn das Suchfenster geöffnet wird</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Animationen in der Oberfläche verwenden</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,35 +171,59 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Tastenkombination</system:String>
<system:String x:Key="hotkeys">Tastenkombination</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Tastenkombination</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Verknüpfung eingeben, um Flow Launcher anzuzeigen/auszublenden.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Öffnen Sie die Ergebnismodifikatoren</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="openResultModifiersToolTip">Wählen Sie eine Modifikatortaste, um das ausgewählte Ergebnis über die Tastatur zu öffnen.</system:String>
<system:String x:Key="showOpenResultHotkey">Hotkey anzeigen</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Hotkey für die Ergebnisauswahl mit Ergebnissen anzeigen.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Kontextmenü öffnen</system:String>
<system:String x:Key="SettingWindowHotkey">Einstellungsfenster öffnen</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Gott Modus</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Öffne beinhaltenden Ordner</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Benutzerdefinierte Abfrage Tastenkombination</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
<system:String x:Key="customQuery">Query</system:String>
<system:String x:Key="customQuery">Abfrage</system:String>
<system:String x:Key="customShortcut">Shortcut</system:String>
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
<system:String x:Key="builtinShortcutDescription">Beschreibung</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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
<system:String x:Key="queryWindowShadowEffect">Query window shadow effect</system:String>
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
<system:String x:Key="windowWidthSize">Window Width Size</system:String>
<system:String x:Key="queryWindowShadowEffect">Schatteneffekt im Abfragefenster</system:String>
<system:String x:Key="shadowEffectCPUUsage">Der Schatteneffekt beansprucht die GPU stark. Nicht empfohlen, wenn die Leistung deines Computers begrenzt ist.</system:String>
<system:String x:Key="windowWidthSize">Fenstergröße Breite</system:String>
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Use Segoe Fluent Icons</system:String>
<system:String x:Key="useGlyphUIEffect">Use Segoe Fluent Icons for query results where supported</system:String>
<system:String x:Key="useGlyphUI">Segoe Fluent Icons verwenden</system:String>
<system:String x:Key="useGlyphUIEffect">Segoe Fluent Icons für Abfrageergebnisse verwenden, sofern unterstützt</system:String>
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
<!-- Setting Proxy -->
@ -226,15 +253,15 @@
<system:String x:Key="checkUpdates">Nach Aktuallisierungen Suchen</system:String>
<system:String x:Key="BecomeASponsor">Become A Sponsor</system:String>
<system:String x:Key="newVersionTips">Eine neue Version ({0}) ist vorhanden. Bitte starten Sie Flow Launcher neu.</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="checkUpdatesFailed">Überprüfung der Updates fehlgeschlagen. Bitte überprüfen Sie Ihre Verbindungs- und Proxy-Einstellungen zu 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/Flow-Launcher/Flow.Launcher/releases to download updates manually.
Das Herunterladen von Updates ist fehlgeschlagen. Bitte überprüfen Sie Ihre Verbindungs- und Proxy-Einstellungen zu github-cloud.s3.amazonaws.com,
oder gehen Sie zu https://github.com/Flow-Launcher/Flow.Launcher/releases, um Updates manuell herunterzuladen.
</system:String>
<system:String x:Key="releaseNotes">Versionshinweise</system:String>
<system:String x:Key="documentation">Usage Tips</system:String>
<system:String x:Key="devtool">DevTools</system:String>
<system:String x:Key="settingfolder">Setting Folder</system:String>
<system:String x:Key="documentation">Verwendungshinweise</system:String>
<system:String x:Key="devtool">Entwicklerwerkzeuge</system:String>
<system:String x:Key="settingfolder">Einstellungsordner</system:String>
<system:String x:Key="logfolder">Protokoll-Verzeichnis</system:String>
<system:String x:Key="clearlogfolder">Protokolldateien leeren</system:String>
<system:String x:Key="clearlogfolderMessage">Sind Sie sicher, dass Sie alle Protokolle löschen möchten?</system:String>
@ -246,13 +273,13 @@
<system:String x:Key="fileManager_tips2">&quot;%f&quot; is an argument that represent the file path. It is used to emphasize the file/folder name when opening a specific file location in 3rd party file manager. This argument is only available in the &quot;Arg for File&quot; item. If the file manager does not have that function, you can use &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">Datei-Manager</system:String>
<system:String x:Key="fileManager_profile_name">Profilname</system:String>
<system:String x:Key="fileManager_path">File Manager Path</system:String>
<system:String x:Key="fileManager_path">Dateimanager-Pfad</system:String>
<system:String x:Key="fileManager_directory_arg">Argumente für Ordner</system:String>
<system:String x:Key="fileManager_file_arg">Argumente für Datei</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Standard-Webbrowser</system:String>
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
<system:String x:Key="defaultBrowser_tips">Die Standardeinstellung verwendet die Browser-Standardeinstellung des Betriebssystems. Falls angegeben, verwendet Flow diesen Browser.</system:String>
<system:String x:Key="defaultBrowser_name">Browser</system:String>
<system:String x:Key="defaultBrowser_profile_name">Browser-Name</system:String>
<system:String x:Key="defaultBrowser_path">Browserpfad</system:String>
@ -262,8 +289,8 @@
<!-- Priority Setting Dialog -->
<system:String x:Key="changePriorityWindow">Priorität ändern</system:String>
<system:String x:Key="priority_tips">Greater the number, the higher the result will be ranked. Try setting it as 5. If you want the results to be lower than any other plugin's, provide a negative number</system:String>
<system:String x:Key="invalidPriority">Please provide an valid integer for Priority!</system:String>
<system:String x:Key="priority_tips">Je höher die Zahl, desto höher wird das Ergebnis gewertet. Versuchen Sie es mit einer 5. Sollen die Ergebnisse tiefer sein als diejenigen anderer Plugins, verwenden Sie eine negative Zahl</system:String>
<system:String x:Key="invalidPriority">Bitte eine gültige Ganzzahl angeben für die Priorität!</system:String>
<!-- Action Keyword Setting Dialog -->
<system:String x:Key="oldActionKeywords">Altes Aktionsschlüsselwort</system:String>
@ -274,7 +301,7 @@
<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="completedSuccessfully">Completed successfully</system:String>
<system:String x:Key="completedSuccessfully">Erfolgreich abgeschlossen</system:String>
<system:String x:Key="actionkeyword_tips">Benutzen Sie * wenn Sie ein Aktionsschlüsselwort definieren wollen.</system:String>
<!-- Custom Query Hotkey Dialog -->
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Tastenkombination nicht verfügbar</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Speichern</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Abbrechen</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Löschen</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -347,10 +383,10 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="Welcome_Page2_Text01">Search everything from applications, files, bookmarks, YouTube, Twitter and more. All from the comfort of your keyboard without ever touching the mouse.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher starts with the hotkey below, go ahead and try it out now. To change it, click on the input and press the desired hotkey on the keyboard.</system:String>
<system:String x:Key="Welcome_Page3_Title">Tastenkombination</system:String>
<system:String x:Key="Welcome_Page4_Title">Action Keyword and Commands</system:String>
<system:String x:Key="Welcome_Page4_Title">Aktions-Schlüsselwort und Befehle</system:String>
<system:String x:Key="Welcome_Page4_Text01">Search the web, launch applications or run various functions through Flow Launcher plugins. Certain functions start with an action keyword, and if necessary, they can be used without action keywords. Try the queries below in Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Let's Start Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Finished. Enjoy Flow Launcher. Don't forget the hotkey to start :)</system:String>
<system:String x:Key="Welcome_Page5_Title">Starte Flow-Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Fertig. Genießen Sie Flow Launcher. Die Tastenkombination nicht vergessen, um Flow Launcher zu starten :)</system:String>
<!-- General Guide & Hotkey -->
@ -366,13 +402,19 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Einstellungsfenster öffnen</system:String>
<system:String x:Key="HotkeyF5Desc">Plugin-Daten neu laden</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Wetter</system:String>
<system:String x:Key="RecommendWeatherDesc">Wetter in Google-Ergebnis</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
<system:String x:Key="RecommendShellDesc">Shell-Befehl</system:String>
<system:String x:Key="RecommendBluetooth">s Bluetooth</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Windows-Einstellungen</system:String>
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Sticky Notes</system:String>
<system:String x:Key="RecommendAcronyms">nt</system:String>
<system:String x:Key="RecommendAcronymsDesc">Notizen</system:String>
</ResourceDictionary>

View file

@ -56,6 +56,8 @@
<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="KeepMaxResults">Fixed Window Height</system:String>
<system:String x:Key="KeepMaxResultsToolTip">The window height will not be resizeable by dragging</system:String>
<system:String x:Key="maxShowResults">Maximum results shown</system:String>
<system:String x:Key="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignore hotkeys in fullscreen mode</system:String>
@ -77,6 +79,9 @@
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
<system:String x:Key="SearchPrecisionNone">None</system:String>
<system:String x:Key="SearchPrecisionLow">Low</system:String>
<system:String x:Key="SearchPrecisionRegular">Regular</system:String>
<system:String x:Key="ShouldUsePinyin">Search with Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.</system:String>
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
@ -142,8 +147,13 @@
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
<system:String x:Key="SearchBarHeight">Search Bar Height</system:String>
<system:String x:Key="ItemHeight">Item Height</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="resultItemFont">Result Title Font</system:String>
<system:String x:Key="resultSubItemFont">Result Subtitle Font</system:String>
<system:String x:Key="resetCustomize">Reset</system:String>
<system:String x:Key="CustomizeToolTip">Customize</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>
@ -156,6 +166,9 @@
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -167,17 +180,41 @@
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Hotkey</system:String>
<system:String x:Key="hotkeys">Hotkeys</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Hotkey</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Open Result Modifier Key</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Show Hotkey</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Hotkeys</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcuts</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcuts</system:String>
@ -188,6 +225,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -286,6 +324,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for "{0}" and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by "{0}". If you press "Overwrite", it will be removed from "{0}".</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +338,12 @@
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Hotkey Unavailable</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Save</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Cancel</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Delete</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -366,6 +413,12 @@
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
@ -375,4 +428,8 @@
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Sticky Notes</system:String>
<!-- Preview Area -->
<system:String x:Key="FileSize">File Size</system:String>
<system:String x:Key="Created">Created</system:String>
<system:String x:Key="LastModified">Last Modified</system:String>
</ResourceDictionary>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Oscuro</system:String>
<system:String x:Key="SoundEffect">Efectos de Sonido</system:String>
<system:String x:Key="SoundEffectTip">Reproducir un sonido al abrir la ventana de búsqueda</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animación</system:String>
<system:String x:Key="AnimationTip">Usar Animación en la Interfaz</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Tecla Rápida</system:String>
<system:String x:Key="hotkeys">Tecla Rápida</system:String>
<system:String x:Key="flowlauncherHotkey">Tecla de acceso a Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Introduzca el acceso directo para mostrar/ocultar Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Abrir Tecla de Modificación de Resultado</system:String>
<system:String x:Key="openResultModifiersToolTip">Seleccione una tecla de modificación para abrir el resultado seleccionado vía teclado.</system:String>
<system:String x:Key="showOpenResultHotkey">Mostrar tecla de acceso directo</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Mostrar tecla rápida de selección con resultados.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Abrir Carpeta Contenedora</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Tecla Rápida de Consulta Personalizada</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<system:String x:Key="delete">Eliminar</system:String>
<system:String x:Key="edit">Editar</system:String>
<system:String x:Key="add">Añadir</system:String>
<system:String x:Key="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">Por favor, seleccione un elemento</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">¿Está seguro que desea eliminar la tecla de acceso directo del plugin {0}?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">Tecla no disponible, por favor seleccione una nueva tecla de acceso directo</system:String>
<system:String x:Key="invalidPluginHotkey">Tecla de acceso directo al plugin inválida</system:String>
<system:String x:Key="update">Actualizar</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Tecla No Disponible</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Guardar</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Cancelar</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Eliminar</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versión</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Abrir Ventana de Ajustes</system:String>
<system:String x:Key="HotkeyF5Desc">Recargar Datos del Plugin</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Clima</system:String>
<system:String x:Key="RecommendWeatherDesc">Clima en los Resultados de Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -55,7 +55,7 @@
<system:String x:Key="LastQuerySelected">Seleccionar la última consulta</system:String>
<system:String x:Key="LastQueryEmpty">Limpiar la última consulta</system:String>
<system:String x:Key="maxShowResults">Número máximo de resultados mostrados</system:String>
<system:String x:Key="maxShowResultsToolTip">También puede ajustarlo rápidamente usando CTRL+Más y CTRL+Menos.</system:String>
<system:String x:Key="maxShowResultsToolTip">También puede ajustarse rápidamente usando Ctrl+Más y Ctrl+Menos.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorar atajos de teclado en modo pantalla completa</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">No permite activar Flow Launcher con aplicaciones a pantalla completa (Recomendado para juegos).</system:String>
<system:String x:Key="defaultFileManager">Administrador de archivos predeterminado</system:String>
@ -73,13 +73,13 @@
<system:String x:Key="hideOnStartup">Ocultar Flow Launcher al inicio</system:String>
<system:String x:Key="hideNotifyIcon">Ocultar icono en la bandeja del sistema</system:String>
<system:String x:Key="hideNotifyIconToolTip">Cuando el icono está oculto en la bandeja del sistema, se puede abrir el menú de configuración haciendo clic con el botón derecho en la ventana de búsqueda.</system:String>
<system:String x:Key="querySearchPrecision">Precisión en la búsqueda de consultas</system:String>
<system:String x:Key="querySearchPrecision">Precisión de búsqueda en consultas</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Cambia la puntuación mínima requerida para la coincidencia de los resultados.</system:String>
<system:String x:Key="ShouldUsePinyin">Buscar con Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Permite utilizar Pinyin para la búsqueda. Pinyin es el sistema estándar de ortografía romanizado para traducir chino.</system:String>
<system:String x:Key="AlwaysPreview">Mostrar siempre vista previa</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Muestra siempre el panel de vista previa al iniciar Flow. Pulse {0} para mostrar/ocultar la vista previa.</system:String>
<system:String x:Key="shadowEffectNotAllowed">El efecto de sombra no está permitido mientras el tema actual tenga el efecto de desenfoque activado</system:String>
<system:String x:Key="shadowEffectNotAllowed">El efecto de sombra no está permitido si el tema actual tiene activado el efecto de desenfoque</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Buscar complemento</system:String>
@ -154,8 +154,11 @@
<system:String x:Key="ColorSchemeDark">Oscuro</system:String>
<system:String x:Key="SoundEffect">Efecto de sonido</system:String>
<system:String x:Key="SoundEffectTip">Reproduce un pequeño sonido cuando se abre el cuadro de búsqueda</system:String>
<system:String x:Key="SoundEffectVolume">Volumen del efecto de sonido</system:String>
<system:String x:Key="SoundEffectVolumeTip">Ajusta el volumen del efecto de sonido</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animación</system:String>
<system:String x:Key="AnimationTip">Usar animación en la Interfaz de Usuario</system:String>
<system:String x:Key="AnimationTip">Usa animación en la Interfaz de Usuario</system:String>
<system:String x:Key="AnimationSpeed">Velocidad de animación</system:String>
<system:String x:Key="AnimationSpeedTip">Velocidad de animación de la interfaz de usuario</system:String>
<system:String x:Key="AnimationSpeedSlow">Lenta</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Atajo de teclado</system:String>
<system:String x:Key="hotkeys">Atajos de teclado</system:String>
<system:String x:Key="flowlauncherHotkey">Atajo de teclado de Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Abrir Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Introduzca el atajo de teclado para mostrar/ocultar Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Atajo de teclado para vista previa</system:String>
<system:String x:Key="previewHotkey">Cambiar vista previa</system:String>
<system:String x:Key="previewHotkeyToolTip">Introduzca el acceso directo para mostrar/ocultar la vista previa en la ventana de búsqueda.</system:String>
<system:String x:Key="hotkeyPresets">Ajustes preestablecidos de atajos de teclado</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Lista de atajos de teclado actualmente registrados</system:String>
<system:String x:Key="openResultModifiers">Tecla modificadora para abrir resultado</system:String>
<system:String x:Key="openResultModifiersToolTip">Seleccione una tecla modificadora para abrir el resultado seleccionado con el teclado.</system:String>
<system:String x:Key="showOpenResultHotkey">Mostrar atajo de teclado</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Muestra atajo de teclado de selección junto a los resultados.</system:String>
<system:String x:Key="autoCompleteHotkey">Completar automáticamente</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Ejecuta completar automáticamente para los elementos seleccionados.</system:String>
<system:String x:Key="SelectNextItemHotkey">Seleccionar siguiente elemento</system:String>
<system:String x:Key="SelectPrevItemHotkey">Seleccionar elemento anterior</system:String>
<system:String x:Key="SelectNextPageHotkey">Siguiente página</system:String>
<system:String x:Key="SelectPrevPageHotkey">Página anterior</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Abrir menú contextual</system:String>
<system:String x:Key="SettingWindowHotkey">Abrir ventana de configuración</system:String>
<system:String x:Key="CopyFilePathHotkey">Copiar ruta del archivo</system:String>
<system:String x:Key="ToggleGameModeHotkey">Cambiar a Modo Juego</system:String>
<system:String x:Key="ToggleHistoryHotkey">Cambiar historial</system:String>
<system:String x:Key="OpenContainFolderHotkey">Abrir carpeta contenedora</system:String>
<system:String x:Key="RunAsAdminHotkey">Ejecutar como administrador</system:String>
<system:String x:Key="RequeryHotkey">Actualizar resultados de búsqueda</system:String>
<system:String x:Key="ReloadPluginHotkey">Recargar datos de complementos</system:String>
<system:String x:Key="QuickWidthHotkey">Ajuste rápido de la anchuira de la ventana</system:String>
<system:String x:Key="QuickHeightHotkey">Ajuste rápido de la altura de la ventana</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Se utiliza cuando se requiere que los complementos recarguen y actualicen sus datos existentes.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">Se puede añadir otro atajo de teclado más para esta función.</system:String>
<system:String x:Key="customQueryHotkey">Atajos de teclado de consulta personalizada</system:String>
<system:String x:Key="customQueryShortcut">Accesos directos de consulta personalizada</system:String>
<system:String x:Key="builtinShortcuts">Accesos directos integrados</system:String>
@ -186,15 +212,16 @@
<system:String x:Key="delete">Eliminar</system:String>
<system:String x:Key="edit">Editar</system:String>
<system:String x:Key="add">Añadir</system:String>
<system:String x:Key="none">Ninguno</system:String>
<system:String x:Key="pleaseSelectAnItem">Por favor, seleccione un elemento</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">¿Está seguro que desea eliminar el atajo de teclado de consulta personalizada {0}?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">¿Está seguro que desea eliminar el acceso directo: {0} con la expansión {1}?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">¿Está seguro de que desea eliminar el acceso directo: {0} con la expansión {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Obtiene el texto del portapapeles.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Obtiene la ruta del explorador activo.</system:String>
<system:String x:Key="queryWindowShadowEffect">Efecto de sombra de la ventana de consultas</system:String>
<system:String x:Key="shadowEffectCPUUsage">El efecto de sombra hace un uso sustancial de la GPU. No se recomienda para ordenadores de rendimiento limitado.</system:String>
<system:String x:Key="windowWidthSize">Tamaño del ancho de la ventana</system:String>
<system:String x:Key="windowWidthSizeToolTip">También puede ajustarlo rápidamente usando Ctrl+[y Ctrl+].</system:String>
<system:String x:Key="windowWidthSizeToolTip">También puede ajustarse rápidamente usando Ctrl+[ y Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Usar iconos Segoe Fluent</system:String>
<system:String x:Key="useGlyphUIEffect">Usa iconos Segoe Fluent para los resultados de la consulta cuando sean compatibles</system:String>
<system:String x:Key="flowlauncherPressHotkey">Pulsar Tecla</system:String>
@ -237,7 +264,7 @@
<system:String x:Key="settingfolder">Carpeta de configuración</system:String>
<system:String x:Key="logfolder">Carpeta de registros</system:String>
<system:String x:Key="clearlogfolder">Eliminar registros</system:String>
<system:String x:Key="clearlogfolderMessage">¿Está seguro que desea eliminar todos los registros?</system:String>
<system:String x:Key="clearlogfolderMessage">¿Está seguro de que desea eliminar todos los registros?</system:String>
<system:String x:Key="welcomewindow">Asistente</system:String>
<!-- FileManager Setting Dialog -->
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">El atajo de teclado no está disponible, por favor seleccione uno nuevo</system:String>
<system:String x:Key="invalidPluginHotkey">Atajo de teclado de complemento no válido</system:String>
<system:String x:Key="update">Actualizar</system:String>
<system:String x:Key="hotkeyRegTitle">Atajo de teclado vinculado</system:String>
<system:String x:Key="hotkeyUnavailable">El atajo de teclado actual no está disponible.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">Este atajo de teclado está reservado para &quot;{0}&quot; y no se puede utilizar. Por favor, elija otro atajo de teclado.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">Este atajo de teclado ya está siendo utilizado por &quot;{0}&quot;. Si pulsa «Sobrescribir», se eliminará de &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Pulsar las teclas que se deseen utilizar para esta función.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Acceso directo de consulta personalizada</system:String>
@ -295,8 +327,12 @@ Si añade un prefijo &quot;@&quot; al introducir un acceso directo, éste coinci
<system:String x:Key="duplicateShortcut">El acceso directo ya existe, por favor introduzca uno nuevo o edite el existente.</system:String>
<system:String x:Key="emptyShortcut">El acceso directo y/o su expansión están vacíos.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Atajo de teclado no disponible</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Guardar</system:String>
<system:String x:Key="commonOverwrite">Sobrescribir</system:String>
<system:String x:Key="commonCancel">Cancelar</system:String>
<system:String x:Key="commonReset">Restablecer</system:String>
<system:String x:Key="commonDelete">Eliminar</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versión</system:String>
@ -366,6 +402,12 @@ Si añade un prefijo &quot;@&quot; al introducir un acceso directo, éste coinci
<system:String x:Key="HotkeyCtrlIDesc">Abrir ventana de configuración</system:String>
<system:String x:Key="HotkeyF5Desc">Recargar datos del complemento</system:String>
<system:String x:Key="HotkeySelectFirstResult">Seleccionar primer resultado</system:String>
<system:String x:Key="HotkeySelectLastResult">Seleccionar último resultado</system:String>
<system:String x:Key="HotkeyRequery">Ejecutar consulta actual de nuevo</system:String>
<system:String x:Key="HotkeyOpenResult">Abrir resultado</system:String>
<system:String x:Key="HotkeyOpenResultN">Abrir resultado #{0}</system:String>
<system:String x:Key="RecommendWeather">El tiempo</system:String>
<system:String x:Key="RecommendWeatherDesc">El tiempo en los resultados de Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Échec lors de l'enregistrement du raccourci : {0}</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Impossible de lancer {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Le format de fichier n'est pas un plugin Flow Launcher valide</system:String>
@ -28,7 +28,7 @@
<system:String x:Key="PositionResetToolTip">Rétablir la position de la fenêtre de recherche</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Paramètres - Flow Launcher</system:String>
<system:String x:Key="flowlauncher_settings">Paramètres</system:String>
<system:String x:Key="general">Général</system:String>
<system:String x:Key="portableMode">Mode Portable</system:String>
<system:String x:Key="portableModeToolTIp">Stocker tous les paramètres et données utilisateur dans un seul dossier (Pratique en cas d'utilisation de disques amovibles ou de services cloud).</system:String>
@ -136,7 +136,7 @@
<system:String x:Key="SampleSubTitleExplorer">Rechercher des fichiers, dossiers et contenus de fichiers</system:String>
<system:String x:Key="SampleTitleWebSearch">Recherche Web</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Recherchez sur le Web avec la prise en charge de moteurs de recherche différents</system:String>
<system:String x:Key="SampleTitleProgram">Programme</system:String>
<system:String x:Key="SampleTitleProgram">Programmes</system:String>
<system:String x:Key="SampleSubTitleProgram">Lancez des programmes en tant qu'administrateur ou un utilisateur différent</system:String>
<system:String x:Key="SampleTitleProcessKiller">Tueur de processus</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminer les processus non désirés</system:String>
@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Sombre</system:String>
<system:String x:Key="SoundEffect">Effet Sonore</system:String>
<system:String x:Key="SoundEffectTip">Jouer un petit son lorsque la fenêtre de recherche s'ouvre</system:String>
<system:String x:Key="SoundEffectVolume">Volume de l'effet sonore</system:String>
<system:String x:Key="SoundEffectVolumeTip">Ajuster le volume de l'effet sonore</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Utiliser l'animation dans l'interface</system:String>
<system:String x:Key="AnimationSpeed">Vitesse d'animation</system:String>
@ -170,12 +173,35 @@
<system:String x:Key="hotkeys">Raccourcis</system:String>
<system:String x:Key="flowlauncherHotkey">Ouvrir Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Entrez le raccourci pour afficher/masquer Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Prévisualiser le raccourci</system:String>
<system:String x:Key="previewHotkey">Afficher/masquer l'aperçu</system:String>
<system:String x:Key="previewHotkeyToolTip">Entrez le raccourci pour afficher/masquer l'aperçu dans la fenêtre de recherche.</system:String>
<system:String x:Key="hotkeyPresets">Préréglages des raccourcis clavier</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Liste des raccourcis clavier actuellement enregistrés</system:String>
<system:String x:Key="openResultModifiers">Modificateurs de résultats ouverts</system:String>
<system:String x:Key="openResultModifiersToolTip">Sélectionnez une touche de modification pour ouvrir le résultat sélectionné via le clavier.</system:String>
<system:String x:Key="showOpenResultHotkey">Afficher le raccourci clavier</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Afficher le raccourci de sélection des résultats avec les résultats.</system:String>
<system:String x:Key="autoCompleteHotkey">Saisie automatique</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Exécute la saisie automatique pour les éléments sélectionnés.</system:String>
<system:String x:Key="SelectNextItemHotkey">Sélectionner l'objet suivant</system:String>
<system:String x:Key="SelectPrevItemHotkey">Sélectionner l'élément précédent</system:String>
<system:String x:Key="SelectNextPageHotkey">Page suivante</system:String>
<system:String x:Key="SelectPrevPageHotkey">Page précédente</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle de requête précédente</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle de requête suivante</system:String>
<system:String x:Key="OpenContextMenuHotkey">Ouvrir le Menu Contextuel</system:String>
<system:String x:Key="SettingWindowHotkey">Ouvrir la Fenêtre des Réglages</system:String>
<system:String x:Key="CopyFilePathHotkey">Copier le chemin du fichier</system:String>
<system:String x:Key="ToggleGameModeHotkey">Basculer le mode de jeu</system:String>
<system:String x:Key="ToggleHistoryHotkey">Basculer l'historique</system:String>
<system:String x:Key="OpenContainFolderHotkey">Ouvrir le répertoire</system:String>
<system:String x:Key="RunAsAdminHotkey">Exécuter en tant qu'Administrateur</system:String>
<system:String x:Key="RequeryHotkey">Rafraîchir les résultats de recherche</system:String>
<system:String x:Key="ReloadPluginHotkey">Recharger les données des plugins</system:String>
<system:String x:Key="QuickWidthHotkey">Ajuster rapidement la largeur de la fenêtre</system:String>
<system:String x:Key="QuickHeightHotkey">Ajuster rapidement la hauteur de la fenêtre</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Utiliser lorsque vous avez besoin de recharger et mettre à jour les données existantes de vos plugins.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">Vous pouvez ajouter un raccourci clavier supplémentaire pour cette fonction.</system:String>
<system:String x:Key="customQueryHotkey">Requêtes personnalisées</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">Aucun</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>
<system:String x:Key="deleteCustomShortcutWarning">Êtes-vous sûr de vouloir supprimer le raccourci : {0} avec l'expansion {1} ?</system:String>
@ -283,19 +310,28 @@
<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>
<system:String x:Key="hotkeyRegTitle">Raccourci de liaison</system:String>
<system:String x:Key="hotkeyUnavailable">Le raccourci clavier actuel n'est pas disponible.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">Ce raccourci est réservé à &quot;{0}&quot; et ne peut pas être utilisé. Veuillez choisir un autre raccourci clavier.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">Ce raccourci est déjà utilisé par &quot;{0}&quot;. Si vous appuyez sur &quot;Écraser&quot;, il sera supprimé de &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Appuyez sur les touches que vous voulez utiliser pour cette fonction.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Raccourci de requête personnalisée</system:String>
<system:String x:Key="customeQueryShortcutTips">Entrez un raccourci qui s'étend automatiquement à la requête spécifiée.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">Un raccourci est développé lorsqu'il correspond exactement à la requête.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
Si vous ajoutez un préfixe &quot;@&quot; lors de la saisie d'un raccourci, celui-ci correspond à n'importe quelle position dans la requête. Les raccourcis intégrés correspondent à n'importe quelle position dans une requête.
</system:String>
<system:String x:Key="duplicateShortcut">Le raccourci existe déjà, veuillez entrer un nouveau raccourci ou modifier le raccourci existant.</system:String>
<system:String x:Key="emptyShortcut">Raccourci et/ou son expansion est vide.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Raccourci indisponible</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Sauvegarder</system:String>
<system:String x:Key="commonOverwrite">Écraser</system:String>
<system:String x:Key="commonCancel">Annuler</system:String>
<system:String x:Key="commonReset">Réinitialiser</system:String>
<system:String x:Key="commonDelete">Supprimer</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -365,6 +401,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Ouvrir la Fenêtre des Réglages</system:String>
<system:String x:Key="HotkeyF5Desc">Recharger les Données des Plugins</system:String>
<system:String x:Key="HotkeySelectFirstResult">Sélectionner le premier résultat</system:String>
<system:String x:Key="HotkeySelectLastResult">Sélectionner le dernier résultat</system:String>
<system:String x:Key="HotkeyRequery">Exécuter à nouveau la requête actuelle</system:String>
<system:String x:Key="HotkeyOpenResult">Ouvrir le résultat</system:String>
<system:String x:Key="HotkeyOpenResultN">Ouvrir le résultat #{0}</system:String>
<system:String x:Key="RecommendWeather">Météo</system:String>
<system:String x:Key="RecommendWeatherDesc">Météo dans les résultats Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Registrazione del tasto di scelta rapida &quot;{0}&quot; non riuscita. Il tasto di scelta rapida potrebbe essere in uso da un altro programma. Passa a un altro tasto di scelta rapida o esci da un altro programma.</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Avvio fallito {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Formato file plugin non valido</system:String>
@ -17,15 +17,15 @@
<system:String x:Key="copy">Copia</system:String>
<system:String x:Key="cut">Taglia</system:String>
<system:String x:Key="paste">Incolla</system:String>
<system:String x:Key="undo">Undo</system:String>
<system:String x:Key="selectAll">Select All</system:String>
<system:String x:Key="undo">Annulla</system:String>
<system:String x:Key="selectAll">Seleziona Tutto</system:String>
<system:String x:Key="fileTitle">File</system:String>
<system:String x:Key="folderTitle">Cartella</system:String>
<system:String x:Key="textTitle">Testo</system:String>
<system:String x:Key="GameMode">Modalità gioco</system:String>
<system:String x:Key="GameModeToolTip">Sospendere l'uso dei tasti di scelta rapida.</system:String>
<system:String x:Key="PositionReset">Position Reset</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="PositionReset">Ripristina Posizione</system:String>
<system:String x:Key="PositionResetToolTip">Ripristina posizione finestra di ricerca</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Impostazioni</system:String>
@ -33,21 +33,21 @@
<system:String x:Key="portableMode">Modalità portatile</system:String>
<system:String x:Key="portableModeToolTIp">Memorizzare tutte le impostazioni e i dati dell'utente in un'unica cartella (utile se utilizzato con unità rimovibili o servizi cloud).</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">Avvia Wow all'avvio di Windows</system:String>
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
<system:String x:Key="setAutoStartFailed">Errore nell'impostazione del lancio all'avvio</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Nascondi Flow Launcher 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="SearchWindowPosition">Search Window Position</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Remember Last Position</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitor with Mouse Cursor</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitor with Focused Window</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Primary Monitor</system:String>
<system:String x:Key="SearchWindowScreenCustom">Custom Monitor</system:String>
<system:String x:Key="SearchWindowAlign">Search Window Position on Monitor</system:String>
<system:String x:Key="SearchWindowAlignCenter">Center</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Center Top</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Left Top</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Right Top</system:String>
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
<system:String x:Key="SearchWindowPosition">Posizione Finestra Di Ricerca</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Ricorda L'Ultima Posizione</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitora con il cursore del mouse</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitora con la finestra in primo piano</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Monitor Principale</system:String>
<system:String x:Key="SearchWindowScreenCustom">Monitor Personalizzato</system:String>
<system:String x:Key="SearchWindowAlign">Posizione della finestra di ricerca sul monitor</system:String>
<system:String x:Key="SearchWindowAlignCenter">Centro</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Centrato in alto</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Sinistra in alto</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Destra in alto</system:String>
<system:String x:Key="SearchWindowAlignCustom">Posizione personalizzata</system:String>
<system:String x:Key="language">Lingua</system:String>
<system:String x:Key="lastQueryMode">Comportamento ultima ricerca</system:String>
<system:String x:Key="lastQueryModeToolTip">Mostra/nasconde i risultati precedenti quando Flow Launcher viene riattivato.</system:String>
@ -55,37 +55,37 @@
<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="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
<system:String x:Key="maxShowResultsToolTip">È anche possibile regolarlo rapidamente utilizzando CTRL+Più e CTRL+Meno.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignora i tasti di scelta rapida in applicazione a schermo pieno</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Disattivare l'attivazione di Flow Launcher quando è attiva un'applicazione a schermo intero (consigliato per i giochi).</system:String>
<system:String x:Key="defaultFileManager">Gestore File predefinito</system:String>
<system:String x:Key="defaultFileManagerToolTip">Selezionare il Gestore file da usare all'apertura della cartella.</system:String>
<system:String x:Key="defaultBrowser">Browser predefinito</system:String>
<system:String x:Key="defaultBrowserToolTip">Impostazione per Nuova scheda, Nuova finestra, Modalità privata.</system:String>
<system:String x:Key="pythonFilePath">Python Path</system:String>
<system:String x:Key="nodeFilePath">Node.js Path</system:String>
<system:String x:Key="selectNodeExecutable">Please select the Node.js executable</system:String>
<system:String x:Key="selectPythonExecutable">Please select pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
<system:String x:Key="pythonFilePath">Percorso di Python</system:String>
<system:String x:Key="nodeFilePath">Percorso di Node.js</system:String>
<system:String x:Key="selectNodeExecutable">Seleziona l'eseguibile di Node.js</system:String>
<system:String x:Key="selectPythonExecutable">Selezionare pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Inizia sempre a digitare in modalità inglese</system:String>
<system:String x:Key="typingStartEnTooltip">Cambiare temporaneamente il metodo di input in modalità inglese quando si attiva Flow.</system:String>
<system:String x:Key="autoUpdates">Aggiornamento automatico</system:String>
<system:String x:Key="select">Seleziona</system:String>
<system:String x:Key="hideOnStartup">Nascondi Flow Launcher all'avvio</system:String>
<system:String x:Key="hideNotifyIcon">Nascondi Icona nell'Area di Notifica</system:String>
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
<system:String x:Key="hideNotifyIconToolTip">Quando l'icona è nascosta dal menu delle icone nascoste, il menu Impostazioni può essere aperto facendo clic con il tasto destro del mouse sulla finestra di ricerca.</system:String>
<system:String x:Key="querySearchPrecision">Precisione di ricerca delle query</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Modifica il punteggio minimo richiesto per i risultati.</system:String>
<system:String x:Key="ShouldUsePinyin">Dovrebbe usare il Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Consente di utilizzare il Pinyin per la ricerca. Il Pinyin è il sistema standard di ortografia romanizzata per la traduzione del cinese.</system:String>
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
<system:String x:Key="AlwaysPreview">Mostra Sempre Anteprima</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Apri sempre il pannello di anteprima quando Flow si attiva. Premi {0} per attivare l'anteprima.</system:String>
<system:String x:Key="shadowEffectNotAllowed">L'effetto ombra non è consentito mentre il tema corrente ha un effetto di sfocatura abilitato</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Search Plugin</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F to search plugins</system:String>
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
<system:String x:Key="searchplugin">Plugin di ricerca</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F per cercare plugin</system:String>
<system:String x:Key="searchplugin_Noresult_Title">Nessun risultato trovato</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Prova una ricerca diversa.</system:String>
<system:String x:Key="plugin">Plugin</system:String>
<system:String x:Key="plugins">Plugin</system:String>
<system:String x:Key="browserMorePlugins">Cerca altri plugins</system:String>
@ -99,7 +99,7 @@
<system:String x:Key="currentPriority">Priorità Attuale</system:String>
<system:String x:Key="newPriority">Nuova Priorità</system:String>
<system:String x:Key="priority">Priorità</system:String>
<system:String x:Key="priorityToolTip">Change Plugin Results Priority</system:String>
<system:String x:Key="priorityToolTip">Priorità Dei Risultati Dei Plugin</system:String>
<system:String x:Key="pluginDirectory">Cartella Plugin</system:String>
<system:String x:Key="author">da</system:String>
<system:String x:Key="plugin_init_time">Tempo di avvio:</system:String>
@ -111,35 +111,35 @@
<!-- Setting Plugin Store -->
<system:String x:Key="pluginStore">Negozio dei Plugin</system:String>
<system:String x:Key="pluginStore_NewRelease">New Release</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
<system:String x:Key="pluginStore_NewRelease">Nuova Versione</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Aggiornati di recente</system:String>
<system:String x:Key="pluginStore_None">Plugin</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="pluginStore_Installed">Installati</system:String>
<system:String x:Key="refresh">Aggiorna</system:String>
<system:String x:Key="installbtn">Installa</system:String>
<system:String x:Key="uninstallbtn">Disinstalla</system:String>
<system:String x:Key="updatebtn">Aggiorna</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
<system:String x:Key="LabelNew">New Version</system:String>
<system:String x:Key="LabelNewToolTip">This plugin has been updated within the last 7 days</system:String>
<system:String x:Key="LabelUpdateToolTip">New Update is Available</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin già installato</system:String>
<system:String x:Key="LabelNew">Nuova versione</system:String>
<system:String x:Key="LabelNewToolTip">Questo plugin è stato aggiornato negli ultimi 7 giorni</system:String>
<system:String x:Key="LabelUpdateToolTip">Nuovo aggiornamento disponibile</system:String>
<!-- Setting Theme -->
<system:String x:Key="theme">Tema</system:String>
<system:String x:Key="appearance">Appearance</system:String>
<system:String x:Key="appearance">Aspetto</system:String>
<system:String x:Key="browserMoreThemes">Sfoglia per altri temi</system:String>
<system:String x:Key="howToCreateTheme">Come creare un tema</system:String>
<system:String x:Key="hiThere">Ciao</system:String>
<system:String x:Key="SampleTitleExplorer">Esplora Risorse</system:String>
<system:String x:Key="SampleSubTitleExplorer">Search for files, folders and file contents</system:String>
<system:String x:Key="SampleSubTitleExplorer">Cerca i file, le cartelle e il contenuto dei file</system:String>
<system:String x:Key="SampleTitleWebSearch">WebSearch</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Search the web with different search engine support</system:String>
<system:String x:Key="SampleTitleProgram">Program</system:String>
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Cerca sul web con diversi motori di ricerca supportati</system:String>
<system:String x:Key="SampleTitleProgram">Programma</system:String>
<system:String x:Key="SampleSubTitleProgram">Avvia programmi come amministratore o un altro utente</system:String>
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Termina i processi indesiderati</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>
@ -154,50 +154,77 @@
<system:String x:Key="ColorSchemeDark">Scuro</system:String>
<system:String x:Key="SoundEffect">Effetto sonoro</system:String>
<system:String x:Key="SoundEffectTip">Riproduce un piccolo suono all'apertura della finestra di ricerca</system:String>
<system:String x:Key="SoundEffectVolume">Volume Effetti Sonori</system:String>
<system:String x:Key="SoundEffectVolumeTip">Regola il volume degli effetti sonori</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animazione</system:String>
<system:String x:Key="AnimationTip">Usa l'animazione nell'interfaccia utente</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<system:String x:Key="AnimationSpeed">Velocità di animazione</system:String>
<system:String x:Key="AnimationSpeedTip">La velocità dell'animazione dell'interfaccia utente</system:String>
<system:String x:Key="AnimationSpeedSlow">Lento</system:String>
<system:String x:Key="AnimationSpeedMedium">Medio</system:String>
<system:String x:Key="AnimationSpeedFast">Veloce</system:String>
<system:String x:Key="AnimationSpeedCustom">Personalizzato</system:String>
<system:String x:Key="Clock">Orologio</system:String>
<system:String x:Key="Date">Data</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Tasti scelta rapida</system:String>
<system:String x:Key="hotkeys">Tasti scelta rapida</system:String>
<system:String x:Key="flowlauncherHotkey">Tasto scelta rapida Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Apri Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Immettere la scorciatoia per mostrare/nascondere Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="previewHotkey">Attiva/Disattiva Anteprima</system:String>
<system:String x:Key="previewHotkeyToolTip">Inserisci la scorciatoia per mostrare/nascondere l'anteprima nella finestra di ricerca.</system:String>
<system:String x:Key="hotkeyPresets">Preimpostazioni Scorciatoie</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Elenco di scorciatoie attualmente registrate</system:String>
<system:String x:Key="openResultModifiers">Apri modificatori di risultato</system:String>
<system:String x:Key="openResultModifiersToolTip">Seleziona un tasto modificatore per aprire il risultato selezionato via tastiera.</system:String>
<system:String x:Key="showOpenResultHotkey">Mostra tasto di scelta rapida</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Mostra tasto di scelta rapida dei risultati con i risultati.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Completamento</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Esegue il completamento automatico per gli elementi selezionati.</system:String>
<system:String x:Key="SelectNextItemHotkey">Seleziona Elemento Successivo</system:String>
<system:String x:Key="SelectPrevItemHotkey">Seleziona Elemento Precedente</system:String>
<system:String x:Key="SelectNextPageHotkey">Pagina Successiva</system:String>
<system:String x:Key="SelectPrevPageHotkey">Pagina Precedente</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Apri il menu di scelta rapida</system:String>
<system:String x:Key="SettingWindowHotkey">Aprire la finestra delle impostazioni</system:String>
<system:String x:Key="CopyFilePathHotkey">Copia Percorso File</system:String>
<system:String x:Key="ToggleGameModeHotkey">Attiva/Disattiva Modalità Di Gioco</system:String>
<system:String x:Key="ToggleHistoryHotkey">Attiva/Disattiva Cronologia</system:String>
<system:String x:Key="OpenContainFolderHotkey">Apri cartella superiore</system:String>
<system:String x:Key="RunAsAdminHotkey">Esegui come Amministratore</system:String>
<system:String x:Key="RequeryHotkey">Aggiorna Risultati di Ricerca</system:String>
<system:String x:Key="ReloadPluginHotkey">Ricarica i Dati dei Plugin</system:String>
<system:String x:Key="QuickWidthHotkey">Regolazione Rapida della Larghezza della Finestra</system:String>
<system:String x:Key="QuickHeightHotkey">Regolazione Rapida dell'Altezza della Finestra</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Utilizzare quando richiedono plugin per ricaricare e aggiornare i propri dati esistenti.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">Puoi aggiungere un'altra scorciatoia per questa funzione.</system:String>
<system:String x:Key="customQueryHotkey">Tasti scelta rapida per ricerche personalizzate</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
<system:String x:Key="customQuery">Ricerca</system:String>
<system:String x:Key="customShortcut">Shortcut</system:String>
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
<system:String x:Key="customShortcut">Scorciatoia</system:String>
<system:String x:Key="customShortcutExpansion">Espansione</system:String>
<system:String x:Key="builtinShortcutDescription">Descrizione</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="none">Vuoto</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Sei sicuro di voler eliminare la scorciatoia: {0} con espansione {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Ottieni testo dagli appunti.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Ottieni il percorso dall'esplora risorse attivo.</system:String>
<system:String x:Key="queryWindowShadowEffect">Effetto ombra della finestra di ricerca</system:String>
<system:String x:Key="shadowEffectCPUUsage">L'effetto ombra utilizzerà in maniera sostanziale la GPU. Non consigliato se le performance del tuo computer sono limitate.</system:String>
<system:String x:Key="windowWidthSize">Dimensione larghezza della finestra</system:String>
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
<system:String x:Key="windowWidthSizeToolTip">È anche possibile regolarlo rapidamente utilizzando CTRL+[ e CTRL+].</system:String>
<system:String x:Key="useGlyphUI">Usa Icone Segoe Fluent</system:String>
<system:String x:Key="useGlyphUIEffect">Usa Icone Segoe Fluent per risultati di ricerca dove supportate</system:String>
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
<system:String x:Key="flowlauncherPressHotkey">Premi tasto</system:String>
<!-- Setting Proxy -->
<system:String x:Key="proxy">Proxy HTTP</system:String>
@ -221,10 +248,10 @@
<system:String x:Key="github">GitHub</system:String>
<system:String x:Key="docs">Documentazione</system:String>
<system:String x:Key="version">Versione</system:String>
<system:String x:Key="icons">Icons</system:String>
<system:String x:Key="icons">Icone</system:String>
<system:String x:Key="about_activate_times">Hai usato Flow Launcher {0} volte</system:String>
<system:String x:Key="checkUpdates">Cerca aggiornamenti</system:String>
<system:String x:Key="BecomeASponsor">Become A Sponsor</system:String>
<system:String x:Key="BecomeASponsor">Diventa un sostenitore</system:String>
<system:String x:Key="newVersionTips">Una nuova versione {0} è disponibile, riavvia Flow Launcher 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">
@ -236,8 +263,8 @@
<system:String x:Key="devtool">Strumenti per sviluppatori</system:String>
<system:String x:Key="settingfolder">Cartella delle impostazioni</system:String>
<system:String x:Key="logfolder">Cartella dei Log</system:String>
<system:String x:Key="clearlogfolder">Clear Logs</system:String>
<system:String x:Key="clearlogfolderMessage">Are you sure you want to delete all logs?</system:String>
<system:String x:Key="clearlogfolder">Cancella i log</system:String>
<system:String x:Key="clearlogfolderMessage">Sei sicuro di voler cancellare tutti i log?</system:String>
<system:String x:Key="welcomewindow">Wizard</system:String>
<!-- FileManager Setting Dialog -->
@ -279,24 +306,33 @@
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">Tasti scelta rapida per ricerche personalizzate</system:String>
<system:String x:Key="customeQueryHotkeyTips">Press a custom hotkey to open Flow Launcher and input the specified query automatically.</system:String>
<system:String x:Key="customeQueryHotkeyTips">Premere un tasto di scelta rapida personalizzato per aprire Flow Launcher e inserire automaticamente la query specificata.</system:String>
<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>
<system:String x:Key="hotkeyRegTitle">Registrare Scorciatoie</system:String>
<system:String x:Key="hotkeyUnavailable">Scorciatoia corrente non disponibile.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">Questa scorciatoia è riservata per &quot;{0}&quot; e non può essere utilizzata. Si prega di scegliere un'altra scorciatoia.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">Questa scorciatoia è già in uso da &quot;{0}&quot;. Premendo &quot;Sovrascrivi&quot;, verrà rimossa da &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Premi i tasti che vuoi usare per questa funzione.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
<system:String x:Key="customeQueryShortcutTips">Enter a shortcut that automatically expands to the specified query.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutTitle">Scorciatoia per ricerca personalizzata</system:String>
<system:String x:Key="customeQueryShortcutTips">Inserisci una scorciatoia che si espande automaticamente alla query specificata.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">Una scorciatoia viene espansa quando corrisponde esattamente alla query.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
Se si aggiunge un prefisso '@' mentre si inserisce una scorciatoia, corrisponde a qualsiasi posizione nella query. Le scorciatoie integrate corrispondono a qualsiasi posizione in una query.
</system:String>
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<system:String x:Key="duplicateShortcut">La scorciatoia esiste già, inserisci una nuova scorciatoia o modifica quella esistente.</system:String>
<system:String x:Key="emptyShortcut">La scorciatoia e/o la sua espansione sono vuote.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Tasto di scelta rapida non disponibile</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Salva</system:String>
<system:String x:Key="commonOverwrite">Sovrascrivi</system:String>
<system:String x:Key="commonCancel">Annulla</system:String>
<system:String x:Key="commonReset">Resetta</system:String>
<system:String x:Key="commonDelete">Cancella</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versione</system:String>
@ -358,7 +394,7 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyLeftRightDesc">Navigazione tra le voci</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Apri il menu di scelta rapida</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Apri cartella superiore</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Run as Admin / Open Folder in Default File Manager</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Esegui come Admin / Apri cartella in File Manager predefinito</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Cronologia Query</system:String>
<system:String x:Key="HotkeyESCDesc">Torna al risultato nel menu contestuale</system:String>
<system:String x:Key="HotkeyTabDesc">Autocompleta</system:String>
@ -366,12 +402,18 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Aprire la finestra delle impostazioni</system:String>
<system:String x:Key="HotkeyF5Desc">Ricarica i dati del plugin</system:String>
<system:String x:Key="HotkeySelectFirstResult">Seleziona il primo risultato</system:String>
<system:String x:Key="HotkeySelectLastResult">Seleziona l'ultimo risultato</system:String>
<system:String x:Key="HotkeyRequery">Esegui nuovamente la ricerca corrente</system:String>
<system:String x:Key="HotkeyOpenResult">Apri risultato</system:String>
<system:String x:Key="HotkeyOpenResultN">Apri risultato #{0}</system:String>
<system:String x:Key="RecommendWeather">Meteo</system:String>
<system:String x:Key="RecommendWeatherDesc">Meteo nel risultato di Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
<system:String x:Key="RecommendShellDesc">Comando Della shell</system:String>
<system:String x:Key="RecommendBluetooth">s Bluetooth</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Windows Settings</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Impostazioni Windows</system:String>
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Sticky Notes</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">ホットキー &quot;{0}&quot; の登録に失敗しました。このホットキーは別のプログラムで使用されている可能性があります。別のホットキーに変更するか、このホットキーを使用しているプログラムを終了してください。</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">{0}の起動に失敗しました</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Flow Launcherプラグインの形式が正しくありません</system:String>
@ -13,80 +13,80 @@
<system:String x:Key="iconTraySettings">設定</system:String>
<system:String x:Key="iconTrayAbout">Flow Launcherについて</system:String>
<system:String x:Key="iconTrayExit">終了</system:String>
<system:String x:Key="closeWindow">Close</system:String>
<system:String x:Key="copy">Copy</system:String>
<system:String x:Key="closeWindow">閉じる</system:String>
<system:String x:Key="copy">コピー</system:String>
<system:String x:Key="cut">切り取り</system:String>
<system:String x:Key="paste">貼り付け</system:String>
<system:String x:Key="undo">Undo</system:String>
<system:String x:Key="selectAll">Select All</system:String>
<system:String x:Key="fileTitle">File</system:String>
<system:String x:Key="folderTitle">Folder</system:String>
<system:String x:Key="undo">元に戻す</system:String>
<system:String x:Key="selectAll">全て選択</system:String>
<system:String x:Key="fileTitle">ファイル</system:String>
<system:String x:Key="folderTitle">フォルダー</system:String>
<system:String x:Key="textTitle">Text</system:String>
<system:String x:Key="GameMode">ゲームモード</system:String>
<system:String x:Key="GameModeToolTip">Suspend the use of Hotkeys.</system:String>
<system:String x:Key="PositionReset">Position Reset</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="GameModeToolTip">ホットキーの使用を一時停止します。</system:String>
<system:String x:Key="PositionReset">位置のリセット</system:String>
<system:String x:Key="PositionResetToolTip">検索ウィンドウの位置をリセットします。</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">設定</system:String>
<system:String x:Key="general">一般</system:String>
<system:String x:Key="portableMode">Portable Mode</system:String>
<system:String x:Key="portableModeToolTIp">Store all settings and user data in one folder (Useful when used with removable drives or cloud services).</system:String>
<system:String x:Key="portableMode">ポータブルモード</system:String>
<system:String x:Key="portableModeToolTIp">すべての設定とユーザーデータを1つのフォルダに保存します(リムーバブルドライブやクラウドサービスで使用する場合に便利です)。</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">スタートアップ時にFlow Launcherを起動する</system:String>
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">フォーカスを失った時にFlow Launcherを隠す</system:String>
<system:String x:Key="dontPromptUpdateMsg">最新版が入手可能であっても、アップグレードメッセージを表示しない</system:String>
<system:String x:Key="SearchWindowPosition">Search Window Position</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Remember Last Position</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitor with Mouse Cursor</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitor with Focused Window</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Primary Monitor</system:String>
<system:String x:Key="SearchWindowScreenCustom">Custom Monitor</system:String>
<system:String x:Key="SearchWindowAlign">Search Window Position on Monitor</system:String>
<system:String x:Key="SearchWindowAlignCenter">Center</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Center Top</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Left Top</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Right Top</system:String>
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
<system:String x:Key="SearchWindowPosition">検索ウィンドウの位置</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">最後の表示位置を記憶する</system:String>
<system:String x:Key="SearchWindowScreenCursor">マウスカーソルがあるモニター</system:String>
<system:String x:Key="SearchWindowScreenFocus">フォーカス中のウィンドウがあるモニター</system:String>
<system:String x:Key="SearchWindowScreenPrimary">プライマリモニター</system:String>
<system:String x:Key="SearchWindowScreenCustom">モニター(カスタム)</system:String>
<system:String x:Key="SearchWindowAlign">モニター上の検索ウィンドウの位置</system:String>
<system:String x:Key="SearchWindowAlignCenter">中央</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">中央上部</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">左上</system:String>
<system:String x:Key="SearchWindowAlignRightTop">右上</system:String>
<system:String x:Key="SearchWindowAlignCustom">カスタムの位置</system:String>
<system:String x:Key="language">言語</system:String>
<system:String x:Key="lastQueryMode">前回のクエリの扱い</system:String>
<system:String x:Key="lastQueryModeToolTip">Show/Hide previous results when Flow Launcher is reactivated.</system:String>
<system:String x:Key="lastQueryModeToolTip">Flow Launcherを再表示したとき、以前の結果を表示するかどうか選択します。</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="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
<system:String x:Key="maxShowResultsToolTip">CTRL+PlusとCTRL+Minusを使用すれば、簡単に調整することもできます。</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">ウィンドウがフルスクリーン時にホットキーを無効にする</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Disable Flow Launcher activation when a full screen application is active (Recommended for games).</system:String>
<system:String x:Key="defaultFileManager">Default File Manager</system:String>
<system:String x:Key="defaultFileManagerToolTip">Select the file manager to use when opening the folder.</system:String>
<system:String x:Key="defaultBrowser">Default Web Browser</system:String>
<system:String x:Key="defaultBrowserToolTip">Setting for New Tab, New Window, Private Mode.</system:String>
<system:String x:Key="pythonFilePath">Python Path</system:String>
<system:String x:Key="nodeFilePath">Node.js Path</system:String>
<system:String x:Key="selectNodeExecutable">Please select the Node.js executable</system:String>
<system:String x:Key="selectPythonExecutable">Please select pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">フルスクリーンのアプリケーションが起動しているとき、Flow Launcherの起動を無効にします(ゲームをするときにおすすめです)。</system:String>
<system:String x:Key="defaultFileManager">デフォルトのファイルマネージャー</system:String>
<system:String x:Key="defaultFileManagerToolTip">フォルダを開くときに使用するファイルマネージャを選択します。</system:String>
<system:String x:Key="defaultBrowser">デフォルトのウェブブラウザー</system:String>
<system:String x:Key="defaultBrowserToolTip">新規タブ、新規ウィンドウ、プライベートモードに関して設定します。</system:String>
<system:String x:Key="pythonFilePath">Python のパス</system:String>
<system:String x:Key="nodeFilePath">Node.js のパス</system:String>
<system:String x:Key="selectNodeExecutable">Node.js の実行ファイルを選択してください</system:String>
<system:String x:Key="selectPythonExecutable">pythonw.exe を選択してください</system:String>
<system:String x:Key="typingStartEn">常に英語モードで入力を開始する</system:String>
<system:String x:Key="typingStartEnTooltip">Flowを起動したとき、一時的に入力方法を英語モードに変更します。</system:String>
<system:String x:Key="autoUpdates">自動更新</system:String>
<system:String x:Key="select">選択</system:String>
<system:String x:Key="hideOnStartup">起動時にFlow Launcherを隠す</system:String>
<system:String x:Key="hideNotifyIcon">トレイアイコンを隠す</system:String>
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
<system:String x:Key="ShouldUsePinyin">Search with Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.</system:String>
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
<system:String x:Key="hideNotifyIconToolTip">トレイアイコンが非表示になっているときは、検索ウィンドウを右クリックすることで設定メニューを開くことができます。</system:String>
<system:String x:Key="querySearchPrecision">クエリ検索精度</system:String>
<system:String x:Key="querySearchPrecisionToolTip">表示する結果に必要な一致スコアの最小値を変更します。</system:String>
<system:String x:Key="ShouldUsePinyin">ピンインによる検索</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">ピンインを使用して検索できるようにします。ピンインは、中国語をローマ字表記するための標準的な表記体系です。</system:String>
<system:String x:Key="AlwaysPreview">常にプレビューする</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Flow が有効になったとき、常にプレビューパネルを開きます。 {0} を押してプレビューの表示/非表示を切り替えます。</system:String>
<system:String x:Key="shadowEffectNotAllowed">現在のテーマでぼかしの効果が有効になっている場合、影の効果を有効にすることはできません</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Search Plugin</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F to search plugins</system:String>
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
<system:String x:Key="plugin">Plugin</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F でプラグインを検索します</system:String>
<system:String x:Key="searchplugin_Noresult_Title">検索結果が見つかりませんでした</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">別の検索を試してみてください。</system:String>
<system:String x:Key="plugin">プラグイン</system:String>
<system:String x:Key="plugins">プラグイン</system:String>
<system:String x:Key="browserMorePlugins">プラグインを探す</system:String>
<system:String x:Key="enable">有効</system:String>
@ -99,7 +99,7 @@
<system:String x:Key="currentPriority">Current Priority</system:String>
<system:String x:Key="newPriority">New Priority</system:String>
<system:String x:Key="priority">重要度</system:String>
<system:String x:Key="priorityToolTip">Change Plugin Results Priority</system:String>
<system:String x:Key="priorityToolTip">プラグインの結果の優先度を変更します。</system:String>
<system:String x:Key="pluginDirectory">プラグイン・ディレクトリ</system:String>
<system:String x:Key="author">by</system:String>
<system:String x:Key="plugin_init_time">初期化時間:</system:String>
@ -115,67 +115,93 @@
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
<system:String x:Key="pluginStore_None">プラグイン</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="refresh">Refresh</system:String>
<system:String x:Key="installbtn">Install</system:String>
<system:String x:Key="refresh">更新</system:String>
<system:String x:Key="installbtn">インストール</system:String>
<system:String x:Key="uninstallbtn">アンインストール</system:String>
<system:String x:Key="updatebtn">更新</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
<system:String x:Key="LabelNew">New Version</system:String>
<system:String x:Key="LabelNewToolTip">This plugin has been updated within the last 7 days</system:String>
<system:String x:Key="LabelUpdateToolTip">New Update is Available</system:String>
<system:String x:Key="LabelUpdateToolTip">新しいアップデートが利用可能です</system:String>
<!-- Setting Theme -->
<system:String x:Key="theme">テーマ</system:String>
<system:String x:Key="appearance">Appearance</system:String>
<system:String x:Key="appearance">外観</system:String>
<system:String x:Key="browserMoreThemes">テーマを探す</system:String>
<system:String x:Key="howToCreateTheme">How to create a theme</system:String>
<system:String x:Key="hiThere">Hi There</system:String>
<system:String x:Key="SampleTitleExplorer">Explorer</system:String>
<system:String x:Key="SampleSubTitleExplorer">Search for files, folders and file contents</system:String>
<system:String x:Key="SampleTitleWebSearch">WebSearch</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Search the web with different search engine support</system:String>
<system:String x:Key="SampleTitleProgram">Program</system:String>
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
<system:String x:Key="howToCreateTheme">テーマの作成方法</system:String>
<system:String x:Key="hiThere">やあ!</system:String>
<system:String x:Key="SampleTitleExplorer">エクスプローラー</system:String>
<system:String x:Key="SampleSubTitleExplorer">ファイルやフォルダー、ファイルの内容を検索します</system:String>
<system:String x:Key="SampleTitleWebSearch">Web検索</system:String>
<system:String x:Key="SampleSubTitleWebSearch">異なる検索エンジンをサポートするWeb検索</system:String>
<system:String x:Key="SampleTitleProgram">プログラム</system:String>
<system:String x:Key="SampleSubTitleProgram">管理者または別のユーザーとしてプログラムを起動します</system:String>
<system:String x:Key="SampleTitleProcessKiller">プロセスキラー</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">不要なプロセスを終了します</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="ThemeFolder">Theme Folder</system:String>
<system:String x:Key="OpenThemeFolder">Open Theme Folder</system:String>
<system:String x:Key="ColorScheme">Color Scheme</system:String>
<system:String x:Key="ColorSchemeSystem">System Default</system:String>
<system:String x:Key="ColorSchemeLight">Light</system:String>
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<system:String x:Key="ThemeFolder">テーマフォルダー</system:String>
<system:String x:Key="OpenThemeFolder">テーマフォルダーを開く</system:String>
<system:String x:Key="ColorScheme">配色</system:String>
<system:String x:Key="ColorSchemeSystem">システムのデフォルト</system:String>
<system:String x:Key="ColorSchemeLight">ライト</system:String>
<system:String x:Key="ColorSchemeDark">ダーク</system:String>
<system:String x:Key="SoundEffect">効果音</system:String>
<system:String x:Key="SoundEffectTip">検索ウィンドウが開いたとき、小さな音を鳴らします</system:String>
<system:String x:Key="SoundEffectVolume">効果音の音量</system:String>
<system:String x:Key="SoundEffectVolumeTip">効果音の音量を調整します</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">アニメーション</system:String>
<system:String x:Key="AnimationTip">UIでアニメーションを使用します</system:String>
<system:String x:Key="AnimationSpeed">アニメーション速度</system:String>
<system:String x:Key="AnimationSpeedTip">UI アニメーションの速度</system:String>
<system:String x:Key="AnimationSpeedSlow">ゆっくり</system:String>
<system:String x:Key="AnimationSpeedMedium">ふつう</system:String>
<system:String x:Key="AnimationSpeedFast">はやい</system:String>
<system:String x:Key="AnimationSpeedCustom">カスタム</system:String>
<system:String x:Key="Clock">時刻</system:String>
<system:String x:Key="Date">日付</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">ホットキー</system:String>
<system:String x:Key="hotkeys">ホットキー</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher ホットキー</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcherを開く</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Flow Launcher の表示/非表示を切り替えるショートカットを入力してください。</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">結果修飾子を開く</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">ホットキーを表示</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">カスタムクエリ ホットキー</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">項目選択してください</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">{0} プラグインのホットキーを本当に削除しますか?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">ホットキーは使用できません。新しいホットキーを選択してください</system:String>
<system:String x:Key="invalidPluginHotkey">プラグインホットキーは無効です</system:String>
<system:String x:Key="update">更新</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">ホットキーは使用できません</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">保存</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel"></system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">削除</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">バージョン</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">プラグインデータのリロード</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">어둡게</system:String>
<system:String x:Key="SoundEffect">소리 효과</system:String>
<system:String x:Key="SoundEffectTip">검색창을 열 때 작은 소리를 재생합니다.</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">애니메이션</system:String>
<system:String x:Key="AnimationTip">일부 UI에 애니메이션을 사용합니다.</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">단축키</system:String>
<system:String x:Key="hotkeys">단축키</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher 단축키</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Flow Launcher를 열 때 사용할 단축키를 입력하세요.</system:String>
<system:String x:Key="previewHotkey">미리보기 단축키</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">미리보기 패널을 켜고 끌 때 사용할 단축키를 입력하세요.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">결과 선택 단축키</system:String>
<system:String x:Key="openResultModifiersToolTip">결과 항목을 선택하는 단축키입니다.</system:String>
<system:String x:Key="showOpenResultHotkey">단축키 표시</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">결과창에서 결과 선택 단축키를 표시합니다.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">콘텍스트 메뉴 열기</system:String>
<system:String x:Key="SettingWindowHotkey">설정창 열기</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">포함된 폴더 열기</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">사용자지정 쿼리 단축키</system:String>
<system:String x:Key="customQueryShortcut">사용자 지정 쿼리 단축어</system:String>
<system:String x:Key="builtinShortcuts">내장 단축어</system:String>
@ -186,6 +212,7 @@
<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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">항목을 선택하세요.</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">{0} 플러그인 단축키를 삭제하시겠습니까?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">단축키를 사용할 수 없습니다. 다른 단축키를 입력하세요.</system:String>
<system:String x:Key="invalidPluginHotkey">플러그인 단축키가 유효하지 않습니다.</system:String>
<system:String x:Key="update">업데이트</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">사용자 지정 쿼리 단축어</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">단축키를 사용할 수 없습니다.</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">저장</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">취소</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">삭제</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">버전</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">설정창 열기</system:String>
<system:String x:Key="HotkeyF5Desc">플러그인 데이터 새로고침</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">날씨</system:String>
<system:String x:Key="RecommendWeatherDesc">구글 날씨 검색</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Hotkey</system:String>
<system:String x:Key="hotkeys">Hotkeys</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Hotkey</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Open Result Modifier Key</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Show Hotkey</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Hotkeys</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcuts</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcuts</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Hotkey Unavailable</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Save</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Cancel</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Delete</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Version</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -92,7 +92,7 @@
<system:String x:Key="enable">Aan</system:String>
<system:String x:Key="disable">Disable</system:String>
<system:String x:Key="actionKeywordsTitle">Actie sneltoets instelling</system:String>
<system:String x:Key="actionKeywords">Action terfwoorden</system:String>
<system:String x:Key="actionKeywords">Actie sneltoets</system:String>
<system:String x:Key="currentActionKeywords">Huidige actie sneltoets</system:String>
<system:String x:Key="newActionKeyword">Nieuw actie sneltoets</system:String>
<system:String x:Key="actionKeywordsTooltip">Wijzig actie-sneltoets</system:String>
@ -116,7 +116,7 @@
<system:String x:Key="pluginStore_None">Plugins</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="refresh">Vernieuwen</system:String>
<system:String x:Key="installbtn">Install</system:String>
<system:String x:Key="installbtn">Installeren</system:String>
<system:String x:Key="uninstallbtn">Uninstall</system:String>
<system:String x:Key="updatebtn">Update</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Donker</system:String>
<system:String x:Key="SoundEffect">Geluidseffect</system:String>
<system:String x:Key="SoundEffectTip">Een klein geluid afspelen wanneer het zoekvenster wordt geopend</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is niet beschikbaar en is vereist voor volume aanpassing door Flow. Controleer uw installatie als u volume wilt aanpassen.</system:String>
<system:String x:Key="Animation">Animatie</system:String>
<system:String x:Key="AnimationTip">Animatie gebruiken in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,35 +171,59 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Sneltoets</system:String>
<system:String x:Key="hotkeys">Sneltoets</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Sneltoets</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Voer snelkoppeling in om Flow Launcher te tonen/verbergen.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Open resultaatmodificatoren</system:String>
<system:String x:Key="openResultModifiersToolTip">Kies een aanpassingstoets om het geselecteerde resultaat te openen via het toetsenbord.</system:String>
<system:String x:Key="showOpenResultHotkey">Sneltoets weergeven</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Ga naar vorige zoekopdracht</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Ga naar volgende zoekopdracht</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Snel vensterbreedte aanpassen</system:String>
<system:String x:Key="QuickHeightHotkey">Snel vensterhoogte aanpassen</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Custom Query Sneltoets</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
<system:String x:Key="customQuery">Query</system:String>
<system:String x:Key="customQuery">Zoekopdracht</system:String>
<system:String x:Key="customShortcut">Shortcut</system:String>
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
<system:String x:Key="builtinShortcutDescription">Description</system:String>
<system:String x:Key="builtinShortcutDescription">Beschrijving</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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
<system:String x:Key="queryWindowShadowEffect">Query window shadow effect</system:String>
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
<system:String x:Key="queryWindowShadowEffect">Zoekvenster schaduweffect</system:String>
<system:String x:Key="shadowEffectCPUUsage">Schaduw effect vergt een substantieel gebruik van uw GPU. Niet aanbevolen als uw computerprestaties beperkt zijn.</system:String>
<system:String x:Key="windowWidthSize">Window Width Size</system:String>
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Use Segoe Fluent Icons</system:String>
<system:String x:Key="useGlyphUIEffect">Use Segoe Fluent Icons for query results where supported</system:String>
<system:String x:Key="useGlyphUI">Gebruik Segoe Fluent pictogrammen</system:String>
<system:String x:Key="useGlyphUIEffect">Gebruik Segoe Fluent iconen voor zoekresultaten wanneer ondersteund</system:String>
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
<!-- Setting Proxy -->
@ -251,7 +278,7 @@
<system:String x:Key="fileManager_file_arg">Arg For File</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Default Web Browser</system:String>
<system:String x:Key="defaultBrowserTitle">Standaard webbrowser</system:String>
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
<system:String x:Key="defaultBrowser_name">Browser</system:String>
<system:String x:Key="defaultBrowser_profile_name">Browser Name</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Sneltoets niet beschikbaar</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Opslaan</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Annuleer</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Verwijder</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versie</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Nie udało się zarejestrować skrótu klawiszowego &quot;{0}&quot;. Klucz skrótu może być używany przez inny program. Zmień skrót klawiszowy lub wyjdź z innego programu.</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Nie udało się uruchomić: {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Niepoprawny format pliku wtyczki</system:String>
@ -21,11 +21,11 @@
<system:String x:Key="selectAll">Zaznacz wszystko</system:String>
<system:String x:Key="fileTitle">Plik</system:String>
<system:String x:Key="folderTitle">Folder</system:String>
<system:String x:Key="textTitle">Text</system:String>
<system:String x:Key="textTitle">Tekst</system:String>
<system:String x:Key="GameMode">Tryb grania</system:String>
<system:String x:Key="GameModeToolTip">Wstrzymaj używanie skrótów.</system:String>
<system:String x:Key="PositionReset">Position Reset</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="PositionReset">Resetowanie pozycji</system:String>
<system:String x:Key="PositionResetToolTip">Zresetuj pozycję okna wyszukiwania</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Ustawienia</system:String>
@ -33,29 +33,29 @@
<system:String x:Key="portableMode">Tryb przenośny</system:String>
<system:String x:Key="portableModeToolTIp">Przechowuj wszystkie ustawienia i dane użytkownika w jednym folderze (Przydatne, gdy używane na dyskach wymiennych lub usługach chmurowych).</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">Uruchamiaj Flow Launcher przy starcie systemu</system:String>
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
<system:String x:Key="setAutoStartFailed">Błąd uruchamiania ustawień przy starcie</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ukryj okno Flow Launcher kiedy przestanie ono być aktywne</system:String>
<system:String x:Key="dontPromptUpdateMsg">Nie pokazuj powiadomienia o nowej wersji</system:String>
<system:String x:Key="SearchWindowPosition">Search Window Position</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Remember Last Position</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitor with Mouse Cursor</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitor with Focused Window</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Primary Monitor</system:String>
<system:String x:Key="SearchWindowScreenCustom">Custom Monitor</system:String>
<system:String x:Key="SearchWindowAlign">Search Window Position on Monitor</system:String>
<system:String x:Key="SearchWindowAlignCenter">Center</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Center Top</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Left Top</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Right Top</system:String>
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
<system:String x:Key="SearchWindowPosition">Pozycja Okna Wyszukiwania</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Zapamiętaj Ostatnią Pozycję</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitoruj kursorem myszy</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitor z Dostosowanym Oknem</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Monitor główny</system:String>
<system:String x:Key="SearchWindowScreenCustom">Monitor Niestandardowy </system:String>
<system:String x:Key="SearchWindowAlign">Pozycja Okna Wyszukiwania na Monitorze</system:String>
<system:String x:Key="SearchWindowAlignCenter">Wyśrodkowane</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Środek Góra</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Lewa Góra</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Prawa Góra</system:String>
<system:String x:Key="SearchWindowAlignCustom">Pozycja niestandardowa</system:String>
<system:String x:Key="language">Język</system:String>
<system:String x:Key="lastQueryMode">Last Query Style</system:String>
<system:String x:Key="lastQueryModeToolTip">Show/Hide previous results when Flow Launcher is reactivated.</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="lastQueryMode">Styl ostatniego zapytania</system:String>
<system:String x:Key="lastQueryModeToolTip">Pokaż/Ukryj poprzednie wyniki, gdy Flow Launcher jest ponownie aktywowany.</system:String>
<system:String x:Key="LastQueryPreserved">Zachowaj ostatnie zapytanie</system:String>
<system:String x:Key="LastQuerySelected">Wybierz ostatnie zapytanie</system:String>
<system:String x:Key="LastQueryEmpty">Puste ostatnie zapytanie</system:String>
<system:String x:Key="maxShowResults">Maksymalna liczba wyników</system:String>
<system:String x:Key="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
<system:String x:Key="maxShowResultsToolTip">Możesz to również szybko dostosować używając CTRL+Plus i CTRL+Minus.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignoruj skróty klawiszowe w trybie pełnego ekranu</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Wyłącz aktywowanie Flow Launcher, gdy uruchomiona jest aplikacja pełnoekranowa (Zalecane dla gier).</system:String>
<system:String x:Key="defaultFileManager">Domyślny menedżer plików</system:String>
@ -63,45 +63,45 @@
<system:String x:Key="defaultBrowser">Domyślna przeglądarka</system:String>
<system:String x:Key="defaultBrowserToolTip">Ustawienie dla nowej karty, nowego okna i trybu prywatnego.</system:String>
<system:String x:Key="pythonFilePath">Python Path</system:String>
<system:String x:Key="nodeFilePath">Node.js Path</system:String>
<system:String x:Key="selectNodeExecutable">Please select the Node.js executable</system:String>
<system:String x:Key="selectPythonExecutable">Please select pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
<system:String x:Key="nodeFilePath">Ścieżka Node.js</system:String>
<system:String x:Key="selectNodeExecutable">Wybierz plik wykonywalny Node.js</system:String>
<system:String x:Key="selectPythonExecutable">Wybierz pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Zawsze rozpoczynaj wpisywanie w trybie angielskim</system:String>
<system:String x:Key="typingStartEnTooltip">Tymczasowo zmień metodę wprowadzania na tryb angielski podczas aktywacji Flow.</system:String>
<system:String x:Key="autoUpdates">Automatyczne aktualizacje</system:String>
<system:String x:Key="select">Wybierz</system:String>
<system:String x:Key="hideOnStartup">Uruchamiaj Flow Launcher zminimalizowany</system:String>
<system:String x:Key="hideNotifyIcon">Ukryj ikonę zasobnika</system:String>
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
<system:String x:Key="ShouldUsePinyin">Search with Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.</system:String>
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
<system:String x:Key="hideNotifyIconToolTip">Gdy ikona jest ukryta w zasobniku, menu Ustawienia można otworzyć, klikając prawym przyciskiem myszy okno wyszukiwania.</system:String>
<system:String x:Key="querySearchPrecision">Precyzja wyszukiwania zapytań</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Zmienia minimalny wynik dopasowania wymagany do uzyskania wyników.</system:String>
<system:String x:Key="ShouldUsePinyin">Szukaj z Pinyin</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Umożliwia wyszukiwanie przy użyciu Pinyin. Pinyin to standardowy system pisowni zromanizowanej służący do tłumaczenia języka chińskiego.</system:String>
<system:String x:Key="AlwaysPreview">Zawsze Podgląd</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Zawsze otwieraj panel podglądu, gdy aktywowany jest Flow. Naciśnij {0}, aby przełączyć podgląd.</system:String>
<system:String x:Key="shadowEffectNotAllowed">Efekt cienia jest niedozwolony, gdy bieżący motyw ma włączony efekt rozmycia</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Szukaj wtyczek</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F aby wyszukać wtyczki</system:String>
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
<system:String x:Key="plugin">Plugin</system:String>
<system:String x:Key="searchplugin_Noresult_Title">Nie znaleziono wyników</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Spróbuj użyć innego wyszukiwania.</system:String>
<system:String x:Key="plugin">Wtyczka</system:String>
<system:String x:Key="plugins">Wtyczki</system:String>
<system:String x:Key="browserMorePlugins">Znajdź więcej wtyczek</system:String>
<system:String x:Key="enable">On</system:String>
<system:String x:Key="enable">Włącz</system:String>
<system:String x:Key="disable">Wyłącz</system:String>
<system:String x:Key="actionKeywordsTitle">Action keyword Setting</system:String>
<system:String x:Key="actionKeywordsTitle">Ustawienie akcji słowa kluczowego</system:String>
<system:String x:Key="actionKeywords">Wyzwalacze</system:String>
<system:String x:Key="currentActionKeywords">Current action keyword</system:String>
<system:String x:Key="newActionKeyword">New action keyword</system:String>
<system:String x:Key="actionKeywordsTooltip">Change Action Keywords</system:String>
<system:String x:Key="currentPriority">Current Priority</system:String>
<system:String x:Key="newPriority">New Priority</system:String>
<system:String x:Key="priority">Priority</system:String>
<system:String x:Key="priorityToolTip">Change Plugin Results Priority</system:String>
<system:String x:Key="currentActionKeywords">Bieżące słowo kluczowe akcji</system:String>
<system:String x:Key="newActionKeyword">Nowe słowo kluczowe akcji</system:String>
<system:String x:Key="actionKeywordsTooltip">Zmień słowa kluczowe akcji</system:String>
<system:String x:Key="currentPriority">Obecny Priorytet</system:String>
<system:String x:Key="newPriority">Nowy Priorytet</system:String>
<system:String x:Key="priority">Priorytet</system:String>
<system:String x:Key="priorityToolTip">Zmień priorytet wyników wtyczki</system:String>
<system:String x:Key="pluginDirectory">Folder wtyczki</system:String>
<system:String x:Key="author">by</system:String>
<system:String x:Key="author">wg</system:String>
<system:String x:Key="plugin_init_time">Czas ładowania:</system:String>
<system:String x:Key="plugin_query_time">Czas zapytania:</system:String>
<system:String x:Key="plugin_query_version">Wersja</system:String>
@ -111,71 +111,97 @@
<!-- Setting Plugin Store -->
<system:String x:Key="pluginStore">Sklep z wtyczkami</system:String>
<system:String x:Key="pluginStore_NewRelease">New Release</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
<system:String x:Key="pluginStore_NewRelease">Nowe wydanie</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Ostatnio zaktualizowano</system:String>
<system:String x:Key="pluginStore_None">Wtyczki</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="refresh">Refresh</system:String>
<system:String x:Key="installbtn">Install</system:String>
<system:String x:Key="pluginStore_Installed">Zainstalowany</system:String>
<system:String x:Key="refresh">Odśwież</system:String>
<system:String x:Key="installbtn">Instalacja</system:String>
<system:String x:Key="uninstallbtn">Odinstalowywanie</system:String>
<system:String x:Key="updatebtn">Aktualizuj</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
<system:String x:Key="LabelNew">New Version</system:String>
<system:String x:Key="LabelNewToolTip">This plugin has been updated within the last 7 days</system:String>
<system:String x:Key="LabelUpdateToolTip">New Update is Available</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin już jest zainstalowany</system:String>
<system:String x:Key="LabelNew">Nowa wersja</system:String>
<system:String x:Key="LabelNewToolTip">Ta wtyczka została zaktualizowana w ciągu ostatnich 7 dni</system:String>
<system:String x:Key="LabelUpdateToolTip">Dostępna jest nowa aktualizacja</system:String>
<!-- Setting Theme -->
<system:String x:Key="theme">Skórka</system:String>
<system:String x:Key="appearance">Appearance</system:String>
<system:String x:Key="appearance">Wygląd</system:String>
<system:String x:Key="browserMoreThemes">Znajdź więcej skórek</system:String>
<system:String x:Key="howToCreateTheme">How to create a theme</system:String>
<system:String x:Key="hiThere">Hi There</system:String>
<system:String x:Key="howToCreateTheme">Jak utworzyć motyw</system:String>
<system:String x:Key="hiThere">Cześć,</system:String>
<system:String x:Key="SampleTitleExplorer">Explorer</system:String>
<system:String x:Key="SampleSubTitleExplorer">Search for files, folders and file contents</system:String>
<system:String x:Key="SampleTitleWebSearch">WebSearch</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Search the web with different search engine support</system:String>
<system:String x:Key="SampleSubTitleExplorer">Wyszukiwanie plików, folderów i zawartości plików</system:String>
<system:String x:Key="SampleTitleWebSearch">Wyszukiwarka internetowa</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Wyszukiwanie w Internecie z obsługą różnych wyszukiwarek</system:String>
<system:String x:Key="SampleTitleProgram">Programy</system:String>
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
<system:String x:Key="SampleSubTitleProgram">Uruchamiaj programy jako administrator lub inny użytkownik</system:String>
<system:String x:Key="SampleTitleProcessKiller">ZabijProces</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Zakończ niechciane procesy</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>
<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>
<system:String x:Key="ThemeFolder">Theme Folder</system:String>
<system:String x:Key="OpenThemeFolder">Open Theme Folder</system:String>
<system:String x:Key="ColorScheme">Color Scheme</system:String>
<system:String x:Key="ColorSchemeSystem">System Default</system:String>
<system:String x:Key="ColorSchemeLight">Light</system:String>
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<system:String x:Key="theme_load_failure_path_not_exists">Motyw {0} nie istnieje, powróć do domyślnego motywu</system:String>
<system:String x:Key="theme_load_failure_parse_error">Nie można załadować motywu {0}, wróć do motywu domyślnego</system:String>
<system:String x:Key="ThemeFolder">Folder Motywu</system:String>
<system:String x:Key="OpenThemeFolder">Otwórz folder motywu</system:String>
<system:String x:Key="ColorScheme">Schemat kolorów</system:String>
<system:String x:Key="ColorSchemeSystem">Domyślne ustawienie systemowe</system:String>
<system:String x:Key="ColorSchemeLight">Jasny</system:String>
<system:String x:Key="ColorSchemeDark">Ciemny</system:String>
<system:String x:Key="SoundEffect">Efekty dźwiękowe</system:String>
<system:String x:Key="SoundEffectTip">Odtwarzaj krótki dźwięk po otwarciu okna wyszukiwania</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animacja</system:String>
<system:String x:Key="AnimationTip">Użyj animacji w interfejsie użytkownika</system:String>
<system:String x:Key="AnimationSpeed">Szybkość animacji</system:String>
<system:String x:Key="AnimationSpeedTip">Szybkość animacji interfejsu użytkownika</system:String>
<system:String x:Key="AnimationSpeedSlow">Wolna</system:String>
<system:String x:Key="AnimationSpeedMedium">Średnia</system:String>
<system:String x:Key="AnimationSpeedFast">Szybka</system:String>
<system:String x:Key="AnimationSpeedCustom">Niestandardowa</system:String>
<system:String x:Key="Clock">Zegar</system:String>
<system:String x:Key="Date">Data</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Skrót klawiszowy</system:String>
<system:String x:Key="hotkeys">Skrót klawiszowy</system:String>
<system:String x:Key="flowlauncherHotkey">Skrót klawiszowy Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Wprowadź skrót, aby pokazać/ukryć Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Wprowadź skrót, aby pokazać/ukryć podgląd w oknie wyszukiwania.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Modyfikatory klawiszów otwierających wyniki</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Pokaż skrót klawiszowy</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Otwórz folder zawierający</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Skrót klawiszowy niestandardowych zapytań</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -243,27 +270,27 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments if necessary. The default arguments are &quot;%d&quot;, and a path is entered at that location. For example, If a command is required such as &quot;totalcmd.exe /A c:\windows&quot;, argument is /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; is an argument that represent the file path. It is used to emphasize the file/folder name when opening a specific file location in 3rd party file manager. This argument is only available in the &quot;Arg for File&quot; item. If the file manager does not have that function, you can use &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">File Manager</system:String>
<system:String x:Key="fileManager_profile_name">Profile Name</system:String>
<system:String x:Key="fileManager_path">File Manager Path</system:String>
<system:String x:Key="fileManager_directory_arg">Arg For Folder</system:String>
<system:String x:Key="fileManager_file_arg">Arg For File</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; jest argumentem reprezentującym ścieżkę do pliku. Służy do podkreślenia nazwy pliku/folderu podczas otwierania określonej lokalizacji pliku w menedżerze plików innych firm. Ten argument jest dostępny tylko w pozycji &quot;Arg dla pliku&quot;. Jeśli menedżer plików nie ma tej funkcji, możesz użyć &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">Menadżer plików</system:String>
<system:String x:Key="fileManager_profile_name">Nazwa profilu</system:String>
<system:String x:Key="fileManager_path">Ścieżka menedżera plików</system:String>
<system:String x:Key="fileManager_directory_arg">Arg dla folderu</system:String>
<system:String x:Key="fileManager_file_arg">Arg dla pliku</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Domyślna przeglądarka</system:String>
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
<system:String x:Key="defaultBrowser_name">Browser</system:String>
<system:String x:Key="defaultBrowser_profile_name">Browser Name</system:String>
<system:String x:Key="defaultBrowser_path">Browser Path</system:String>
<system:String x:Key="defaultBrowser_newWindow">New Window</system:String>
<system:String x:Key="defaultBrowser_newTab">New Tab</system:String>
<system:String x:Key="defaultBrowser_parameter">Private Mode</system:String>
<system:String x:Key="defaultBrowser_tips">Ustawienie domyślne jest zgodne z domyślnym ustawieniem przeglądarki systemu operacyjnego. Jeśli określono to oddzielnie, flow korzysta z tej przeglądarki.</system:String>
<system:String x:Key="defaultBrowser_name">Przeglądarka</system:String>
<system:String x:Key="defaultBrowser_profile_name">Nazwa przeglądarki</system:String>
<system:String x:Key="defaultBrowser_path">Ścieżka przeglądarki</system:String>
<system:String x:Key="defaultBrowser_newWindow">Nowe okno</system:String>
<system:String x:Key="defaultBrowser_newTab">Nowa zakładka</system:String>
<system:String x:Key="defaultBrowser_parameter">Tryb prywatny</system:String>
<!-- Priority Setting Dialog -->
<system:String x:Key="changePriorityWindow">Change Priority</system:String>
<system:String x:Key="priority_tips">Greater the number, the higher the result will be ranked. Try setting it as 5. If you want the results to be lower than any other plugin's, provide a negative number</system:String>
<system:String x:Key="invalidPriority">Please provide an valid integer for Priority!</system:String>
<system:String x:Key="changePriorityWindow">Zmień priorytet</system:String>
<system:String x:Key="priority_tips">Im większa liczba, tym wyższa pozycja w rankingu. Spróbuj ustawić go jako 5. Jeśli chcesz, aby wyniki były niższe niż w przypadku jakiejkolwiek innej wtyczki, podaj liczbę ujemną</system:String>
<system:String x:Key="invalidPriority">Podaj prawidłową liczbę całkowitą dla priorytetu!</system:String>
<!-- Action Keyword Setting Dialog -->
<system:String x:Key="oldActionKeywords">Stary wyzwalacz</system:String>
@ -274,29 +301,38 @@
<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="completedSuccessfully">Completed successfully</system:String>
<system:String x:Key="completedSuccessfully">Zakończono pomyślnie</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="customeQueryHotkeyTitle">Skrót klawiszowy niestandardowych zapyta</system:String>
<system:String x:Key="customeQueryHotkeyTips">Press a custom hotkey to open Flow Launcher and input the specified query automatically.</system:String>
<system:String x:Key="customeQueryHotkeyTips">Naciśnij niestandardowy klawisz skrótu, aby otworzyć Flow Launcher i automatycznie wprowadzić określone zapytanie.</system:String>
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
<system:String x:Key="customeQueryShortcutTips">Enter a shortcut that automatically expands to the specified query.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutTitle">Niestandardowy skrót zapytania</system:String>
<system:String x:Key="customeQueryShortcutTips">Wprowadź skrót, który automatycznie rozszerzy się do określonego zapytania.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">Skrót jest rozwijany, gdy dokładnie pasuje do zapytania.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
Jeśli dodasz prefiks '@' podczas wprowadzania skrótu, będzie on pasował do dowolnej pozycji w zapytaniu. Wbudowane skróty pasują do każdej pozycji w zapytaniu.
</system:String>
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<system:String x:Key="duplicateShortcut">Skrót już istnieje, wprowadź nowy skrót lub edytuj istniejący.</system:String>
<system:String x:Key="emptyShortcut">Skrót i/lub jego rozwinięcie jest puste.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Niepoprawny skrót klawiszowy</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Zapisz</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Anuluj</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Usu</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Wersja</system:String>
@ -315,57 +351,63 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_flowlauncher_got_an_error">W programie Flow Launcher wystąpił błąd</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>
<system:String x:Key="pleaseWait">Proszę czekać...</system:String>
<!-- Update -->
<system:String x:Key="update_flowlauncher_update_check">Checking for new update</system:String>
<system:String x:Key="update_flowlauncher_already_on_latest">You already have the latest Flow Launcher version</system:String>
<system:String x:Key="update_flowlauncher_update_found">Update found</system:String>
<system:String x:Key="update_flowlauncher_updating">Updating...</system:String>
<system:String x:Key="update_flowlauncher_update_check">Sprawdzanie nowej aktualizacji</system:String>
<system:String x:Key="update_flowlauncher_already_on_latest">Masz już najnowszą wersję Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_found">Znaleziono aktualizację</system:String>
<system:String x:Key="update_flowlauncher_updating">Aktualizacja...</system:String>
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
Flow Launcher was not able to move your user profile data to the new update version.
Please manually move your profile data folder from {0} to {1}
Flow Launcher nie był w stanie przenieść danych profilu użytkownika do nowej wersji aktualizacji.
Ręcznie przenieś folder danych profilu z {0} do {1}
</system:String>
<system:String x:Key="update_flowlauncher_new_update">New Update</system:String>
<system:String x:Key="update_flowlauncher_new_update">Nowa aktualizacja</system:String>
<system:String x:Key="update_flowlauncher_update_new_version_available">Nowa wersja Flow Launcher {0} jest dostępna</system:String>
<system:String x:Key="update_flowlauncher_update_error">Wystąpił błąd podczas instalowania aktualizacji programu</system:String>
<system:String x:Key="update_flowlauncher_update">Aktualizuj</system:String>
<system:String x:Key="update_flowlauncher_update_cancel">Anuluj</system:String>
<system:String x:Key="update_flowlauncher_fail">Update Failed</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Check your connection and try updating proxy settings to github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_fail">Aktualizacja nie powiodła się</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Sprawdź połączenie i spróbuj zaktualizować ustawienia proxy do github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Aby dokończyć proces aktualizacji Flow Launcher musi zostać zresetowany</system:String>
<system:String x:Key="update_flowlauncher_update_update_files">Następujące pliki zostaną zaktualizowane</system:String>
<system:String x:Key="update_flowlauncher_update_files">Aktualizuj pliki</system:String>
<system:String x:Key="update_flowlauncher_update_update_description">Opis aktualizacji</system:String>
<!-- Welcome Window -->
<system:String x:Key="Skip">Skip</system:String>
<system:String x:Key="Welcome_Page1_Title">Welcome to Flow Launcher</system:String>
<system:String x:Key="Welcome_Page1_Text01">Hello, this is the first time you are running Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Before starting, this wizard will assist in setting up Flow Launcher. You can skip this if you wish. Please choose a language</system:String>
<system:String x:Key="Welcome_Page2_Title">Search and run all files and applications on your PC</system:String>
<system:String x:Key="Welcome_Page2_Text01">Search everything from applications, files, bookmarks, YouTube, Twitter and more. All from the comfort of your keyboard without ever touching the mouse.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher starts with the hotkey below, go ahead and try it out now. To change it, click on the input and press the desired hotkey on the keyboard.</system:String>
<system:String x:Key="Welcome_Page3_Title">Hotkeys</system:String>
<system:String x:Key="Welcome_Page4_Title">Action Keyword and Commands</system:String>
<system:String x:Key="Welcome_Page4_Text01">Search the web, launch applications or run various functions through Flow Launcher plugins. Certain functions start with an action keyword, and if necessary, they can be used without action keywords. Try the queries below in Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Let's Start Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Finished. Enjoy Flow Launcher. Don't forget the hotkey to start :)</system:String>
<system:String x:Key="Skip">Pomiń</system:String>
<system:String x:Key="Welcome_Page1_Title">Witamy w Flow Launcher</system:String>
<system:String x:Key="Welcome_Page1_Text01">Witaj, po raz pierwszy uruchamiasz Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Przed rozpoczęciem ten kreator pomoże skonfigurować Flow Launcher. Jeśli chcesz, możesz to pominąć. Proszę wybierz język</system:String>
<system:String x:Key="Welcome_Page2_Title">Wyszukiwanie i uruchamianie wszystkich plików i aplikacji na PC</system:String>
<system:String x:Key="Welcome_Page2_Text01">Przeszukuj wszystko, od aplikacji, plików, zakładek, YouTube, X i nie tylko. Wszystko to z komfortowej klawiatury, bez konieczności dotykania myszy.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher uruchamia się za pomocą poniższego skrótu klawiszowego, śmiało i wypróbuj go teraz. Aby to zmienić, kliknij dane wejściowe i naciśnij żądany klawisz skrótu na klawiaturze.</system:String>
<system:String x:Key="Welcome_Page3_Title">Skróty klawiszowe</system:String>
<system:String x:Key="Welcome_Page4_Title">Słowo kluczowe akcji i polecenia</system:String>
<system:String x:Key="Welcome_Page4_Text01">Przeszukuj sieć, uruchamiaj aplikacje lub uruchamiaj różne funkcje za pomocą wtyczek Flow Launcher. Niektóre funkcje zaczynają się od słowa kluczowego akcji, a w razie potrzeby można ich używać bez słów kluczowych akcji. Wypróbuj poniższe zapytania w Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Uruchom Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Zakończono. Ciesz się Flow Launcher. Nie zapomnij o klawiszu skrótu, aby rozpocząć :)</system:String>
<!-- General Guide & Hotkey -->
<system:String x:Key="HotkeyUpDownDesc">Back / Context Menu</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Item Navigation</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Open Context Menu</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Open Containing Folder</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Run as Admin / Open Folder in Default File Manager</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Query History</system:String>
<system:String x:Key="HotkeyUpDownDesc">Powrót / Menu kontekstowe</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Nawigacja pozycji</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Otwórz menu kontekstowe</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Otwórz folder zawierający</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Uruchom jako administrator / Otwórz folder w domyślnym menedżerze plików</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Historia zapytań</system:String>
<system:String x:Key="HotkeyESCDesc">Back to Result in Context Menu</system:String>
<system:String x:Key="HotkeyTabDesc">Autocomplete</system:String>
<system:String x:Key="HotkeyRunDesc">Open / Run Selected Item</system:String>
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Falha em registrar a tecla de atalho &quot;{0}&quot;. A combinação pode estar em uso por outro programa. Mude para uma tecla de atalho diferente, ou encerre o outro programa.</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Não foi possível iniciar {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Formato de plugin Flow Launcher inválido</system:String>
@ -154,50 +154,77 @@
<system:String x:Key="ColorSchemeDark">Escuro</system:String>
<system:String x:Key="SoundEffect">Efeito Sonoro</system:String>
<system:String x:Key="SoundEffectTip">Reproduzir um pequeno som ao abrir a janela de pesquisa</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animação</system:String>
<system:String x:Key="AnimationTip">Utilizar Animação na Interface</system:String>
<system:String x:Key="AnimationSpeed">Velocidade de Animação</system:String>
<system:String x:Key="AnimationSpeedTip">Altere a velocidade da animação da interface</system:String>
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<system:String x:Key="AnimationSpeedSlow">Lento</system:String>
<system:String x:Key="AnimationSpeedMedium">Médio</system:String>
<system:String x:Key="AnimationSpeedFast">Rápido</system:String>
<system:String x:Key="AnimationSpeedCustom">Personalizado</system:String>
<system:String x:Key="Clock">Relógio</system:String>
<system:String x:Key="Date">Data</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Atalho</system:String>
<system:String x:Key="hotkeys">Atalho</system:String>
<system:String x:Key="flowlauncherHotkey">Atalho do Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Digite o atalho para exibir/ocultar o Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Digite o atalho para exibir/ocultar a pré-visualização na janela de pesquisa.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Modificadores de resultado aberto</system:String>
<system:String x:Key="openResultModifiersToolTip">Selecione uma tecla modificadora para abrir o resultar selecionado pelo teclado.</system:String>
<system:String x:Key="showOpenResultHotkey">Mostrar tecla de atalho</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Exibir atalho de seleção de resultado com resultados.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Abrir Menu de Contexto</system:String>
<system:String x:Key="SettingWindowHotkey">Abrir Janela de Configurações</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Abrir a pasta correspondente</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Atalho de Consulta Personalizada</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
<system:String x:Key="customQuery">Consulta</system:String>
<system:String x:Key="customShortcut">Atalho</system:String>
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
<system:String x:Key="customShortcutExpansion">Expansão</system:String>
<system:String x:Key="builtinShortcutDescription">Descrição</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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Tem certeza que deseja excluir o atalho: {0} com expansão {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Exibe o texto da área de transferência.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Exibe o caminho do explorador ativo.</system:String>
<system:String x:Key="queryWindowShadowEffect">Efeito de sombra da janela de consulta</system:String>
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
<system:String x:Key="shadowEffectCPUUsage">O efeito de sombra tem um uso substancial da GPU. Não recomendado se o desempenho do seu computador é limitado.</system:String>
<system:String x:Key="windowWidthSize">Largura da janela</system:String>
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
<system:String x:Key="windowWidthSizeToolTip">Você também pode ajustar isso rapidamente usando Ctrl+[ e Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Usar Segoe Fluent Icons</system:String>
<system:String x:Key="useGlyphUIEffect">Usar Segoe Fluent Icons para resultados da consulta quando suportado</system:String>
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
<system:String x:Key="flowlauncherPressHotkey">Apertar Tecla</system:String>
<!-- Setting Proxy -->
<system:String x:Key="proxy">Proxy HTTP</system:String>
@ -224,7 +251,7 @@
<system:String x:Key="icons">Ícones</system:String>
<system:String x:Key="about_activate_times">Você ativou o Flow Launcher {0} vezes</system:String>
<system:String x:Key="checkUpdates">Procurar atualizações</system:String>
<system:String x:Key="BecomeASponsor">Become A Sponsor</system:String>
<system:String x:Key="BecomeASponsor">Torne-se um Sponsor</system:String>
<system:String x:Key="newVersionTips">A nova versão {0} está disponível, por favor reinicie o Flow Launcher.</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">
@ -234,36 +261,36 @@
<system:String x:Key="releaseNotes">Notas de Versão:</system:String>
<system:String x:Key="documentation">Dicas de Uso</system:String>
<system:String x:Key="devtool">Ferramentas de Desenvolvedor</system:String>
<system:String x:Key="settingfolder">Setting Folder</system:String>
<system:String x:Key="logfolder">Log Folder</system:String>
<system:String x:Key="clearlogfolder">Clear Logs</system:String>
<system:String x:Key="clearlogfolderMessage">Are you sure you want to delete all logs?</system:String>
<system:String x:Key="settingfolder">Pasta de configuração</system:String>
<system:String x:Key="logfolder">Pasta de Registro</system:String>
<system:String x:Key="clearlogfolder">Limpar Registros</system:String>
<system:String x:Key="clearlogfolderMessage">Tem certeza que quer excluir todos os registros?</system:String>
<system:String x:Key="welcomewindow">Assistente</system:String>
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments if necessary. The default arguments are &quot;%d&quot;, and a path is entered at that location. For example, If a command is required such as &quot;totalcmd.exe /A c:\windows&quot;, argument is /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; is an argument that represent the file path. It is used to emphasize the file/folder name when opening a specific file location in 3rd party file manager. This argument is only available in the &quot;Arg for File&quot; item. If the file manager does not have that function, you can use &quot;%d&quot;.</system:String>
<system:String x:Key="fileManagerWindow">Selecione o Gerenciador de Arquivos</system:String>
<system:String x:Key="fileManager_tips">Por favor, especifique a localização do arquivo do gerenciador de arquivos que você está usando e adicione argumentos se necessário. Os argumentos padrões são &quot;%d&quot;, e um caminho é digitado naquela localização. Por exemplo, se um comando é necessário tal qual &quot;totalcmd.exe /A c:\windows&quot;, o argumento é /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; é um argumento que representa o caminho do arquivo. É utilizado para enfatizar o nome da pasta/arquivo ao abrir uma localização de arquivo específica em um gerenciador de arquivo de terceiros. Esse argumento só está disponível no item &quot;Arg para Arquivo&quot;. Se o gerenciador de arquivos não tem essa função, você pode usar &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">Gerenciador de Arquivos</system:String>
<system:String x:Key="fileManager_profile_name">Profile Name</system:String>
<system:String x:Key="fileManager_path">File Manager Path</system:String>
<system:String x:Key="fileManager_directory_arg">Arg For Folder</system:String>
<system:String x:Key="fileManager_file_arg">Arg For File</system:String>
<system:String x:Key="fileManager_profile_name">Nome do Perfil</system:String>
<system:String x:Key="fileManager_path">Caminho do Gerenciador de Arquivos</system:String>
<system:String x:Key="fileManager_directory_arg">Arg para Pasta</system:String>
<system:String x:Key="fileManager_file_arg">Arg para Arquivo</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navegador da Web Padrão</system:String>
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
<system:String x:Key="defaultBrowser_tips">A configuração padrão segue a configuração do navegador padrão do sistema. Caso seja especificado separadamente, Flow usa o navegador definido pelo usuário.</system:String>
<system:String x:Key="defaultBrowser_name">Navegador</system:String>
<system:String x:Key="defaultBrowser_profile_name">Nome do Navegador</system:String>
<system:String x:Key="defaultBrowser_path">Browser Path</system:String>
<system:String x:Key="defaultBrowser_path">Caminho do Navegador</system:String>
<system:String x:Key="defaultBrowser_newWindow">Nova Janela</system:String>
<system:String x:Key="defaultBrowser_newTab">Nova Aba</system:String>
<system:String x:Key="defaultBrowser_parameter">Private Mode</system:String>
<system:String x:Key="defaultBrowser_parameter">Modo Privado</system:String>
<!-- Priority Setting Dialog -->
<system:String x:Key="changePriorityWindow">Alterar Prioridade</system:String>
<system:String x:Key="priority_tips">Greater the number, the higher the result will be ranked. Try setting it as 5. If you want the results to be lower than any other plugin's, provide a negative number</system:String>
<system:String x:Key="invalidPriority">Please provide an valid integer for Priority!</system:String>
<system:String x:Key="priority_tips">Quanto maior o número, maior o resultado será classificado. Tente configurá-lo para 5. Se você quer que os resultados sejam menores do que qualquer outro plugin, coloque um número negativo</system:String>
<system:String x:Key="invalidPriority">Por favor, forneça um inteiro válido em Prioridade!</system:String>
<!-- Action Keyword Setting Dialog -->
<system:String x:Key="oldActionKeywords">Antiga palavra-chave da ação</system:String>
@ -279,24 +306,33 @@
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">Atalho de Consulta Personalizada</system:String>
<system:String x:Key="customeQueryHotkeyTips">Press a custom hotkey to open Flow Launcher and input the specified query automatically.</system:String>
<system:String x:Key="customeQueryHotkeyTips">Aperte uma tecla de atalho personalizada para abrir o Flow Launcher e insira a pesquisa especificada automaticamente.</system:String>
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
<system:String x:Key="customeQueryShortcutTips">Enter a shortcut that automatically expands to the specified query.</system:String>
<system:String x:Key="customeQueryShortcutTitle">Atalho Personalidado de Pesquisa</system:String>
<system:String x:Key="customeQueryShortcutTips">Introduza um atalho que expanda automaticamente para a pesquisa especificada.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
</system:String>
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<system:String x:Key="duplicateShortcut">O atalho já existe, por favor, digite um novo atalho ou edite o existente.</system:String>
<system:String x:Key="emptyShortcut">Atalho e/ou sua expansão está vazia.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Atalho indisponível</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Salvar</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Cancelar</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Apagar</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versão</system:String>
@ -326,13 +362,13 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
Flow Launcher was not able to move your user profile data to the new update version.
Please manually move your profile data folder from {0} to {1}
</system:String>
<system:String x:Key="update_flowlauncher_new_update">New Update</system:String>
<system:String x:Key="update_flowlauncher_new_update">Nova Atualização</system:String>
<system:String x:Key="update_flowlauncher_update_new_version_available">A nova versão {0} do Flow Launcher agora está disponível</system:String>
<system:String x:Key="update_flowlauncher_update_error">Ocorreu um erro ao tentar instalar atualizações do progama</system:String>
<system:String x:Key="update_flowlauncher_update">Atualizar</system:String>
<system:String x:Key="update_flowlauncher_update_cancel">Cancelar</system:String>
<system:String x:Key="update_flowlauncher_fail">Falha ao Atualizar</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Check your connection and try updating proxy settings to github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Verifique sua conexão e tente atualizar as configurações de proxy para github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Essa atualização reiniciará o Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_update_files">Os seguintes arquivos serão atualizados</system:String>
<system:String x:Key="update_flowlauncher_update_files">Atualizar arquivos</system:String>
@ -341,15 +377,15 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<!-- Welcome Window -->
<system:String x:Key="Skip">Pular</system:String>
<system:String x:Key="Welcome_Page1_Title">Bem-vindo ao Flow Launcher</system:String>
<system:String x:Key="Welcome_Page1_Text01">Hello, this is the first time you are running Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Before starting, this wizard will assist in setting up Flow Launcher. You can skip this if you wish. Please choose a language</system:String>
<system:String x:Key="Welcome_Page2_Title">Search and run all files and applications on your PC</system:String>
<system:String x:Key="Welcome_Page2_Text01">Search everything from applications, files, bookmarks, YouTube, Twitter and more. All from the comfort of your keyboard without ever touching the mouse.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher starts with the hotkey below, go ahead and try it out now. To change it, click on the input and press the desired hotkey on the keyboard.</system:String>
<system:String x:Key="Welcome_Page1_Text01">Olá, está é a primeira vez que você executa o Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Antes de começar, este assistente ajudará a configurar o Flow Launcher. Você pode pular essa etapa se quiser. Por favor, escolha um idioma</system:String>
<system:String x:Key="Welcome_Page2_Title">Pesquise e execute todos os arquivos e programas no seu PC</system:String>
<system:String x:Key="Welcome_Page2_Text01">Pesquise tudo de programas, arquivos, favoritos, YouTube, Twitter e mais. Tudo isso do conforto do seu teclado sem precisar tocar o mouse.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher se inicia com a tecla de atalho abaixo, vá em frente e experimente agora. Para mudar, clique na barra e digite o atalho desejado no teclado.</system:String>
<system:String x:Key="Welcome_Page3_Title">Teclas de Atalho</system:String>
<system:String x:Key="Welcome_Page4_Title">Action Keyword and Commands</system:String>
<system:String x:Key="Welcome_Page4_Title">Palavras-Chave de Ação e Comandos</system:String>
<system:String x:Key="Welcome_Page4_Text01">Search the web, launch applications or run various functions through Flow Launcher plugins. Certain functions start with an action keyword, and if necessary, they can be used without action keywords. Try the queries below in Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Let's Start Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Title">Vamos iniciar o Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Finalizado. Aproveite o Flow Launcher. Não esqueça o atalho para iniciar :)</system:String>
<!-- General Guide & Hotkey -->
@ -357,21 +393,27 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyUpDownDesc">Voltar / Menu de Contexto</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Item de Navegação</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Abrir Menu de Contexto</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Open Containing Folder</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Run as Admin / Open Folder in Default File Manager</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Abrir a pasta correspondente</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Executar como administrador / Abrir pasta no gerenciador de arquivos padrão</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Histórico de Pesquisas</system:String>
<system:String x:Key="HotkeyESCDesc">Back to Result in Context Menu</system:String>
<system:String x:Key="HotkeyESCDesc">Voltar ao resultado no menu de contexto</system:String>
<system:String x:Key="HotkeyTabDesc">Autocompletar</system:String>
<system:String x:Key="HotkeyRunDesc">Abrir / Executar Item Selecionado</system:String>
<system:String x:Key="HotkeyCtrlIDesc">Abrir Janela de Configurações</system:String>
<system:String x:Key="HotkeyF5Desc">Recarregar Dados de Plugin</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Clima</system:String>
<system:String x:Key="RecommendWeatherDesc">Clima no Resultado do Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
<system:String x:Key="RecommendShellDesc">Comando de Console</system:String>
<system:String x:Key="RecommendBluetooth">s Bluetooth</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Windows Settings</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth nas Configurações do Windows</system:String>
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Notas Autoadesivas</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Escuro</system:String>
<system:String x:Key="SoundEffect">Efeitos sonoros</system:String>
<system:String x:Key="SoundEffectTip">Reproduzir um som ao abrir a janela de pesquisa</system:String>
<system:String x:Key="SoundEffectVolume">Volume dos efeitos sonoros</system:String>
<system:String x:Key="SoundEffectVolumeTip">Ajustar volume dos efeitos sonoros</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player não está disponível e é necessário para o ajuste de volume. Verifique a sua instalação caso precise ajustar o volume.</system:String>
<system:String x:Key="Animation">Animação</system:String>
<system:String x:Key="AnimationTip">Utilizar animações na aplicação</system:String>
<system:String x:Key="AnimationSpeed">Velocidade da animação</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Tecla de atalho</system:String>
<system:String x:Key="hotkeys">Teclas de atalho</system:String>
<system:String x:Key="flowlauncherHotkey">Tecla de atalho Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Abrir Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Introduza o atalho para mostrar/ocultar Flow Launcher</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Comutar pré-visualização</system:String>
<system:String x:Key="previewHotkeyToolTip">Introduza o atalho para mostrar/ocultar a pré-visualização na janela de pesquisa.</system:String>
<system:String x:Key="hotkeyPresets">Predefinições de teclas de atalho</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Listagem de teclas de atalho registadas</system:String>
<system:String x:Key="openResultModifiers">Tecla modificadora para os resultados</system:String>
<system:String x:Key="openResultModifiersToolTip">Selecione a tecla modificadora para abrir o resultado com o teclado</system:String>
<system:String x:Key="showOpenResultHotkey">Mostrar tecla de atalho</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Mostrar tecla de atalho perto dos resultados</system:String>
<system:String x:Key="autoCompleteHotkey">Conclusão automática</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Executa a conclusão automática para os itens selecionados.</system:String>
<system:String x:Key="SelectNextItemHotkey">Selecionar seguinte</system:String>
<system:String x:Key="SelectPrevItemHotkey">Selecionar anterior</system:String>
<system:String x:Key="SelectNextPageHotkey">Página seguinte</system:String>
<system:String x:Key="SelectPrevPageHotkey">Página anterior</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Ir para consulta anterior</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Ir para consulta seguinte</system:String>
<system:String x:Key="OpenContextMenuHotkey">Abrir menu de contexto</system:String>
<system:String x:Key="SettingWindowHotkey">Abrir janela de definições</system:String>
<system:String x:Key="CopyFilePathHotkey">Copiar caminho do ficheiro</system:String>
<system:String x:Key="ToggleGameModeHotkey">Comutar modo de jogo</system:String>
<system:String x:Key="ToggleHistoryHotkey">Comutar histórico</system:String>
<system:String x:Key="OpenContainFolderHotkey">Abrir pasta do resultado</system:String>
<system:String x:Key="RunAsAdminHotkey">Executar como administrador</system:String>
<system:String x:Key="RequeryHotkey">Recarregar resultados</system:String>
<system:String x:Key="ReloadPluginHotkey">Recarregar dados dos plugins</system:String>
<system:String x:Key="QuickWidthHotkey">Ajuste rápido da largura da janela</system:String>
<system:String x:Key="QuickHeightHotkey">Ajuste rápido da altura da janela</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Para utilizar quando pretende recarregar o plugin e os dados existentes.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">Ainda pode adicionar mais uma tecla de atalho para esta função.</system:String>
<system:String x:Key="customQueryHotkey">Teclas de atalho personalizadas</system:String>
<system:String x:Key="customQueryShortcut">Atalhos de consultas personalizadas</system:String>
<system:String x:Key="builtinShortcuts">Atalhos nativos</system:String>
@ -186,6 +212,7 @@
<system:String x:Key="delete">Eliminar</system:String>
<system:String x:Key="edit">Editar</system:String>
<system:String x:Key="add">Adicionar</system:String>
<system:String x:Key="none">Nenhuma</system:String>
<system:String x:Key="pleaseSelectAnItem">Selecione um item</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">Tem a certeza de que deseja remover a tecla de atalho do plugin {0}?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Tem a certeza de que deseja eliminar o atalho: {0} com expansão {1}?</system:String>
@ -283,6 +310,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">Tecla de atalho indisponível, por favor escolha outra</system:String>
<system:String x:Key="invalidPluginHotkey">Tecla de atalho inválida</system:String>
<system:String x:Key="update">Atualizar</system:String>
<system:String x:Key="hotkeyRegTitle">Associar tecla de atalho</system:String>
<system:String x:Key="hotkeyUnavailable">A tecla de atalho atual não está disponível.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">Esta tecla de atalho está reservada para &quot;{0}&quot; e não pode ser usada. Por favor, escolha outra.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">Esta tecla de atalho está a ser utilizada por &quot;{0}&quot;. Se escolher &quot;Substituir&quot;, será removida de &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Prima as teclas que pretende utilizar para esta função.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Atalho de consulta personalizada</system:String>
@ -294,8 +326,12 @@ Se adicionar o prefixo '@' durante a introdução do atalho, será utilizada qua
<system:String x:Key="duplicateShortcut">Este atallho já existe. Por favor escolha outro ou edite o existente.</system:String>
<system:String x:Key="emptyShortcut">O atalho e/ou a expansão não estão preenchidos.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Tecla de atalho indisponível</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Guardar</system:String>
<system:String x:Key="commonOverwrite">Substituir</system:String>
<system:String x:Key="commonCancel">Cancelar</system:String>
<system:String x:Key="commonReset">Repor</system:String>
<system:String x:Key="commonDelete">Eliminar</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Versão</system:String>
@ -365,6 +401,12 @@ Queira por favor mover a pasta do seu perfil de {0} para {1}
<system:String x:Key="HotkeyCtrlIDesc">Abrir janela de definições</system:String>
<system:String x:Key="HotkeyF5Desc">Recarregar dados do plugin</system:String>
<system:String x:Key="HotkeySelectFirstResult">Selecionar primeiro resultado</system:String>
<system:String x:Key="HotkeySelectLastResult">Selecionar último resultado</system:String>
<system:String x:Key="HotkeyRequery">Executar consulta novamente</system:String>
<system:String x:Key="HotkeyOpenResult">Abrir resultado</system:String>
<system:String x:Key="HotkeyOpenResultN">Abrir resultado #{0}</system:String>
<system:String x:Key="RecommendWeather">Meteorologia</system:String>
<system:String x:Key="RecommendWeatherDesc">Meteorologia no Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,10 @@
<?xml version="1.0"?>
<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">
<?xml version="1.0" ?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Не удалось зарегистрировать сочетание клавиш &quot;{0}&quot;. Возможно, оно используется другой программой. Измените сочетание клавиш или закройте другую программу.</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Не удалось запустить {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Недопустимый формат файла плагина Flow Launcher</system:String>
@ -75,6 +78,9 @@
<system:String x:Key="hideNotifyIconToolTip">Когда значок скрыт в трее, меню настройки можно открыть, щёлкнув правой кнопкой мыши на окне поиска.</system:String>
<system:String x:Key="querySearchPrecision">Точность поиска запросов</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Изменение минимального количества совпадений при поиске, необходимого для получения результатов.</system:String>
<system:String x:Key="SearchPrecisionNone">Нет</system:String>
<system:String x:Key="SearchPrecisionLow">Низкая</system:String>
<system:String x:Key="SearchPrecisionRegular">Обычная</system:String>
<system:String x:Key="ShouldUsePinyin">Поиск с использованием пиньинь</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Позволяет использовать пиньинь для поиска. Пиньинь - это стандартная система латинизированной орфографии для перевода китайского языка.</system:String>
<system:String x:Key="AlwaysPreview">Всегда предпросмотр</system:String>
@ -154,6 +160,9 @@
<system:String x:Key="ColorSchemeDark">Тёмная</system:String>
<system:String x:Key="SoundEffect">Звуковой эффект</system:String>
<system:String x:Key="SoundEffectTip">Воспроизведение небольшого звука при открытии окна поиска</system:String>
<system:String x:Key="SoundEffectVolume">Громкость звукового эффекта</system:String>
<system:String x:Key="SoundEffectVolumeTip">Регулировка громкости звукового эффекта</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Анимация</system:String>
<system:String x:Key="AnimationTip">Использование анимации в меню</system:String>
<system:String x:Key="AnimationSpeed">Скорость анимации</system:String>
@ -168,14 +177,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Горячая клавиша</system:String>
<system:String x:Key="hotkeys">Горячая клавиша</system:String>
<system:String x:Key="flowlauncherHotkey">Горячая клавиша Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Введите ярлык, чтобы показать/скрыть Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Просмотр горячей клавиши</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Введите ярлык для показа/скрытия предпросмотра в окне поиска.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Открыть ключ модификации результата</system:String>
<system:String x:Key="openResultModifiersToolTip">Выберите клавишу-модификатор, чтобы открыть выбранный результат с помощью клавиатуры.</system:String>
<system:String x:Key="showOpenResultHotkey">Показать горячую клавишу</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Показать горячую клавишу выбора результата с результатами.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Открыть контекстное меню</system:String>
<system:String x:Key="SettingWindowHotkey">Открыть окно настроек</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Открыть папку с содержимым</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Горячие клавиши пользовательского запроса</system:String>
<system:String x:Key="customQueryShortcut">Ярлыки пользовательского запроса</system:String>
<system:String x:Key="builtinShortcuts">Встроенные ярлыки</system:String>
@ -186,6 +218,7 @@
<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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">Сначала выберите элемент</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">Вы уверены что хотите удалить горячую клавишу для плагина {0}?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Вы уверены, что хотите удалить ярлык: {0} с расширением {1}?</system:String>
@ -284,19 +317,28 @@
<system:String x:Key="hotkeyIsNotUnavailable">Горячая клавиша недоступна. Пожалуйста, задайте новую</system:String>
<system:String x:Key="invalidPluginHotkey">Недействительная горячая клавиша плагина</system:String>
<system:String x:Key="update">Обновить</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Ярлык пользовательского запроса</system:String>
<system:String x:Key="customeQueryShortcutTips">Введите ярлык, который автоматически расширяется до указанного запроса.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">Ярлык заменяется, когда полностью совпадает с запросом.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
Если вы добавите префикс '@' при вводе ярлыка, он будет заменяться в любом местоположении в запросе. Встроенные ярлыки всегда заменяются в любом месте в запросе.
</system:String>
<system:String x:Key="duplicateShortcut">Ярлык уже существует, пожалуйста, введите новый ярлык или измените существующий.</system:String>
<system:String x:Key="emptyShortcut">Ярлык и/или его расширение пусты.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Горячая клавиша недоступна</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Сохранить</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Отменить</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Удалить</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Версия</system:String>
@ -366,6 +408,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Открыть окно настроек</system:String>
<system:String x:Key="HotkeyF5Desc">Перезагрузить данные плагинов</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Команда Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Погода в результатах Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Tmavá</system:String>
<system:String x:Key="SoundEffect">Zvukový efekt</system:String>
<system:String x:Key="SoundEffectTip">Po otvorení okna vyhľadávania prehrať krátky zvuk</system:String>
<system:String x:Key="SoundEffectVolume">Hlasitosť zvukového efektu</system:String>
<system:String x:Key="SoundEffectVolumeTip">Upraviť hlasitosť zvukového efektu</system:String>
<system:String x:Key="SoundEffectWarning">Prehrávač Windows Media Player, ktorý sa vyžaduje sa na nastavenie hlasitosti Flow Launchera nie je k dispozícii. Ak potrebujete upraviť hlasitosť, prosím, skontrolujte si svoju inštaláciu.</system:String>
<system:String x:Key="Animation">Animácia</system:String>
<system:String x:Key="AnimationTip">Animovať používateľské rozhranie</system:String>
<system:String x:Key="AnimationSpeed">Rýchlosť animácie</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Klávesové skratky</system:String>
<system:String x:Key="hotkeys">Klávesové skratky</system:String>
<system:String x:Key="flowlauncherHotkey">Klávesová skratka pre Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkey">Otvoriť Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Zadajte skratku na zobrazenie/skrytie Flow Launchera.</system:String>
<system:String x:Key="previewHotkey">Klávesová skratka pre náhľad</system:String>
<system:String x:Key="previewHotkeyToolTip">Zadajte klávesovú skratku pre zobrazenie/skytie náhľadu vo vyhľadávacom okne.</system:String>
<system:String x:Key="previewHotkey">Prepnúť náhľad</system:String>
<system:String x:Key="previewHotkeyToolTip">Zadajte klávesovú skratku pre zobrazenie/skrytie náhľadu vo vyhľadávacom okne.</system:String>
<system:String x:Key="hotkeyPresets">Predvoľby klávesových skratiek</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Zoznam aktuálne registrovaných klávesových skratiek</system:String>
<system:String x:Key="openResultModifiers">Modifikačný kláves na otvorenie výsledkov</system:String>
<system:String x:Key="openResultModifiersToolTip">Vyberte modifikačný kláves na otvorenie vybraného výsledku pomocou klávesnice.</system:String>
<system:String x:Key="showOpenResultHotkey">Zobraziť klávesovú skratku</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Zobrazí klávesovú skratku spolu s výsledkami.</system:String>
<system:String x:Key="autoCompleteHotkey">Automatické dokončovanie</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Spustí automatické dokončovanie vybraných položiek.</system:String>
<system:String x:Key="SelectNextItemHotkey">Vybrať ďalšiu položku</system:String>
<system:String x:Key="SelectPrevItemHotkey">Vybrať prechádzajúcu položku</system:String>
<system:String x:Key="SelectNextPageHotkey">Ďalšia strana</system:String>
<system:String x:Key="SelectPrevPageHotkey">Predchádzajúca strana</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Prejsť na predchádzajúci dopyt</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Prejsť na nasledujúci dopyt</system:String>
<system:String x:Key="OpenContextMenuHotkey">Otvoriť kontextovú ponuku</system:String>
<system:String x:Key="SettingWindowHotkey">Otvoriť okno s nastaveniami</system:String>
<system:String x:Key="CopyFilePathHotkey">Kopírovať cestu k súboru</system:String>
<system:String x:Key="ToggleGameModeHotkey">Prepnúť herný režim</system:String>
<system:String x:Key="ToggleHistoryHotkey">Prepnúť históriu</system:String>
<system:String x:Key="OpenContainFolderHotkey">Otvoriť umiestnenie priečinka</system:String>
<system:String x:Key="RunAsAdminHotkey">Spustiť ako správca</system:String>
<system:String x:Key="RequeryHotkey">Aktualizovať výsledky vyhľadávania</system:String>
<system:String x:Key="ReloadPluginHotkey">Znova načítať údaje pluginov</system:String>
<system:String x:Key="QuickWidthHotkey">Rýchla úprava šírky okna</system:String>
<system:String x:Key="QuickHeightHotkey">Rýchla úprava výšky okna</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Použite, ak potrebujete, aby pluginy znovu načítali a aktualizovali svoje existujúce údaje.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">Pre túto funkciu môžete pridať alternatívnu klávesovú skratku.</system:String>
<system:String x:Key="customQueryHotkey">Klávesové skratky vlastného vyhľadávania</system:String>
<system:String x:Key="customQueryShortcut">Klávesové skratky vlastného dopytu</system:String>
<system:String x:Key="builtinShortcuts">Vstavané skratky</system:String>
@ -186,8 +212,9 @@
<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="none">Žiadna</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>
<system:String x:Key="deleteCustomHotkeyWarning">Naozaj chcete odstrániť klávesovú skratku {0} pre plugin?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Naozaj chcete odstrániť skratku: {0} pre dopyt {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Kopírovať text do schránky.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Získať cestu z aktívneho Prieskumníka.</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">Klávesová skratka je nedostupná, prosím, zadajte novú skratku</system:String>
<system:String x:Key="invalidPluginHotkey">Neplatná klávesová skratka pluginu</system:String>
<system:String x:Key="update">Aktualizovať</system:String>
<system:String x:Key="hotkeyRegTitle">Priradenie klávesovej skratky</system:String>
<system:String x:Key="hotkeyUnavailable">Aktuálna klávesová skratka nie je k dispozícii.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">Táto skratka je rezervovaná pre &quot;{0}&quot; a nemôže byť použitá. Prosím, vyberte inú skratku.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">Táto skratka sa používa pre &quot;{0}&quot;. Ak stlačíte &quot;Prepísať&quot;, odstráni sa pre &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Stlačte kláves, ktorý chcete nastaviť pre túto funkciu.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Klávesová skratka vlastného dopytu</system:String>
@ -295,8 +327,12 @@ Ak pri zadávaní skratky pred ňu pridáte &quot;@&quot;, bude sa zhodovať s
<system:String x:Key="duplicateShortcut">Skratka už existuje, zadajte novú skratku alebo upravte existujúcu.</system:String>
<system:String x:Key="emptyShortcut">Skratka a/alebo jej celé znenie je prázdne.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Klávesová skratka je nedostupná</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Uložiť</system:String>
<system:String x:Key="commonOverwrite">Prepísať</system:String>
<system:String x:Key="commonCancel">Zrušiť</system:String>
<system:String x:Key="commonReset">Resetovať</system:String>
<system:String x:Key="commonDelete">Odstrániť</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Verzia</system:String>
@ -366,6 +402,12 @@ Ak pri zadávaní skratky pred ňu pridáte &quot;@&quot;, bude sa zhodovať s
<system:String x:Key="HotkeyCtrlIDesc">Otvoriť okno s nastaveniami</system:String>
<system:String x:Key="HotkeyF5Desc">Znova načítať údaje pluginov</system:String>
<system:String x:Key="HotkeySelectFirstResult">Vybrať prvý výsledok</system:String>
<system:String x:Key="HotkeySelectLastResult">Vybrať posledný výsledok</system:String>
<system:String x:Key="HotkeyRequery">Spustiť aktuálny dopyt znova</system:String>
<system:String x:Key="HotkeyOpenResult">Otvoriť výsledok</system:String>
<system:String x:Key="HotkeyOpenResultN">Otvoriť výsledok #{0}</system:String>
<system:String x:Key="RecommendWeather">Počasie</system:String>
<system:String x:Key="RecommendWeatherDesc">Počasie na Googli</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Dark</system:String>
<system:String x:Key="SoundEffect">Sound Effect</system:String>
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animation</system:String>
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Prečica</system:String>
<system:String x:Key="hotkeys">Prečica</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher prečica</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Отворите модификаторе резултата</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">покажи хоткеи</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">prečica za ručno dodat upit</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Prečica nedostupna</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Sačuvaj</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Otkaži</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Obriši</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Verzija</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">Koyu</system:String>
<system:String x:Key="SoundEffect">Ses Efekti</system:String>
<system:String x:Key="SoundEffectTip">Arama penceresi açıldığında küçük bir ses oynat</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Animasyon</system:String>
<system:String x:Key="AnimationTip">Arayüzde Animasyon Kullan</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Kısayol Tuşu</system:String>
<system:String x:Key="hotkeys">Kısayol Tuşu</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher Kısayolu</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Açık Sonuç Değiştiricileri</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">Kısayol Tuşunu Göster</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Open Context Menu</system:String>
<system:String x:Key="SettingWindowHotkey">Open Setting Window</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Open Containing Folder</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Özel Sorgu Kısayolları</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
@ -186,6 +212,7 @@
<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="none">None</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>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
@ -284,6 +311,11 @@
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Kısayol tuşu kullanılabilir değil</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Kaydet</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">İptal</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Sil</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Sürüm</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<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 &quot;{0}&quot;. The hotkey may be in use by another program. Change to a different hotkey, or exit another program.</system:String>
<system:String x:Key="registerHotkeyFailed">Не вдалося зареєструвати гарячу клавішу &quot;{0}&quot;. Можливо, гаряча клавіша використовується іншою програмою. Змініть її на іншу гарячу клавішу або вийдіть з програми, де вона використовується.</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">Не вдалося запустити {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Невірний формат файлу плагіна Flow Launcher</system:String>
@ -17,15 +17,15 @@
<system:String x:Key="copy">Копіювати</system:String>
<system:String x:Key="cut">Вирізати</system:String>
<system:String x:Key="paste">Вставити</system:String>
<system:String x:Key="undo">Undo</system:String>
<system:String x:Key="selectAll">Select All</system:String>
<system:String x:Key="undo">Скасувати</system:String>
<system:String x:Key="selectAll">Обрати все</system:String>
<system:String x:Key="fileTitle">Файл</system:String>
<system:String x:Key="folderTitle">Тека</system:String>
<system:String x:Key="textTitle">Текст</system:String>
<system:String x:Key="GameMode">Режим гри</system:String>
<system:String x:Key="GameModeToolTip">Призупинити використання гарячих клавіш.</system:String>
<system:String x:Key="PositionReset">Position Reset</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="PositionReset">Скидання позиції</system:String>
<system:String x:Key="PositionResetToolTip">Скинути положення вікна пошуку</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Налаштування</system:String>
@ -33,21 +33,21 @@
<system:String x:Key="portableMode">Портативний режим</system:String>
<system:String x:Key="portableModeToolTIp">Зберігати всі налаштування і дані користувача в одній теці (буде корисно при видаленні дисків або хмарних сервісах).</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">Запускати Flow Launcher при запуску системи</system:String>
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
<system:String x:Key="setAutoStartFailed">Помилка запуску налаштування під час запуску</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Сховати Flow Launcher, якщо втрачено фокус</system:String>
<system:String x:Key="dontPromptUpdateMsg">Не повідомляти про доступні нові версії</system:String>
<system:String x:Key="SearchWindowPosition">Search Window Position</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Remember Last Position</system:String>
<system:String x:Key="SearchWindowScreenCursor">Monitor with Mouse Cursor</system:String>
<system:String x:Key="SearchWindowScreenFocus">Monitor with Focused Window</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Primary Monitor</system:String>
<system:String x:Key="SearchWindowScreenCustom">Custom Monitor</system:String>
<system:String x:Key="SearchWindowAlign">Search Window Position on Monitor</system:String>
<system:String x:Key="SearchWindowAlignCenter">Center</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Center Top</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Left Top</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Right Top</system:String>
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
<system:String x:Key="SearchWindowPosition">Положення вікна пошуку</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Пам'ятати останню позицію</system:String>
<system:String x:Key="SearchWindowScreenCursor">Монітор з курсором миші</system:String>
<system:String x:Key="SearchWindowScreenFocus">Монітор зі сфокусованим вікном</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Основний монітор</system:String>
<system:String x:Key="SearchWindowScreenCustom">Власний монітор</system:String>
<system:String x:Key="SearchWindowAlign">Положення вікна пошуку на моніторі</system:String>
<system:String x:Key="SearchWindowAlignCenter">Центр</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Вгорі по центру</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Зліва вгорі</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Праворуч вгорі</system:String>
<system:String x:Key="SearchWindowAlignCustom">Власна позиція</system:String>
<system:String x:Key="language">Мова</system:String>
<system:String x:Key="lastQueryMode">Останній стиль запиту</system:String>
<system:String x:Key="lastQueryModeToolTip">Показати/приховати попередні результати коли реактивований Flow Launcher знову.</system:String>
@ -55,42 +55,42 @@
<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="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
<system:String x:Key="maxShowResultsToolTip">Ви також можете швидко налаштувати цей параметр за допомогою клавіш CTRL+Плюс чи CTRL+Мінус.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Ігнорувати гарячі клавіші в повноекранному режимі</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Вимкнути активацію Flow Launcher коли активовано повноекранний додаток (Рекомендується для ігор).</system:String>
<system:String x:Key="defaultFileManager">Стандартний Файловий Менеджер</system:String>
<system:String x:Key="defaultFileManagerToolTip">Виберіть файловий менеджер для використання під час відкриття теки.</system:String>
<system:String x:Key="defaultBrowser">Браузер за замовчуванням</system:String>
<system:String x:Key="defaultBrowserToolTip">Налаштування нової вкладки, нового вікна, приватного режиму.</system:String>
<system:String x:Key="pythonFilePath">Python Path</system:String>
<system:String x:Key="nodeFilePath">Node.js Path</system:String>
<system:String x:Key="selectNodeExecutable">Please select the Node.js executable</system:String>
<system:String x:Key="selectPythonExecutable">Please select pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
<system:String x:Key="pythonFilePath">Шлях до Python</system:String>
<system:String x:Key="nodeFilePath">Шлях до Node.js</system:String>
<system:String x:Key="selectNodeExecutable">Виберіть виконуваний файл Node.js</system:String>
<system:String x:Key="selectPythonExecutable">Виберіть pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Завжди починати введення тексту в англійському режимі</system:String>
<system:String x:Key="typingStartEnTooltip">Тимчасово змінити спосіб введення на англійський при активації Flow.</system:String>
<system:String x:Key="autoUpdates">Автоматичне оновлення</system:String>
<system:String x:Key="select">Вибрати</system:String>
<system:String x:Key="hideOnStartup">Сховати Flow Launcher при запуску системи</system:String>
<system:String x:Key="hideNotifyIcon">Приховати значок в системному лотку</system:String>
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
<system:String x:Key="hideNotifyIconToolTip">Коли піктограму приховано з трею, меню налаштувань можна відкрити, клацнувши правою кнопкою миші у вікні пошуку.</system:String>
<system:String x:Key="querySearchPrecision">Точність пошуку запитів</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Змінює мінімальний бал збігів, необхідних для результатів.</system:String>
<system:String x:Key="ShouldUsePinyin">Використовувати піньїнь</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Дозволяє використовувати пінїнь для пошуку. Піньїнь - це стандартна система написання для перекладу китайської.</system:String>
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
<system:String x:Key="AlwaysPreview">Завжди переглядати</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Завжди відкривати панель попереднього перегляду при активації Flow. Натисніть {0}, щоб переключити попередній перегляд.</system:String>
<system:String x:Key="shadowEffectNotAllowed">Ефект тіні не дозволено, коли поточна тема має ефект розмиття</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Search Plugin</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F to search plugins</system:String>
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
<system:String x:Key="plugin">Plugin</system:String>
<system:String x:Key="searchplugin">Плагін для пошуку</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F для пошуку плагінів</system:String>
<system:String x:Key="searchplugin_Noresult_Title">Результатів не знайдено</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Будь ласка, спробуйте інший запит.</system:String>
<system:String x:Key="plugin">Плагін</system:String>
<system:String x:Key="plugins">Плагіни</system:String>
<system:String x:Key="browserMorePlugins">Знайти більше плагінів</system:String>
<system:String x:Key="enable">Увімкнено</system:String>
<system:String x:Key="disable">Відключити</system:String>
<system:String x:Key="disable">Вимкнено</system:String>
<system:String x:Key="actionKeywordsTitle">Встановлення гарячих клавіш</system:String>
<system:String x:Key="actionKeywords">Ключове слово</system:String>
<system:String x:Key="currentActionKeywords">Поточна гаряча клавіша</system:String>
@ -99,47 +99,47 @@
<system:String x:Key="currentPriority">Поточний пріоритет</system:String>
<system:String x:Key="newPriority">Новий пріоритет</system:String>
<system:String x:Key="priority">Пріоритет</system:String>
<system:String x:Key="priorityToolTip">Change Plugin Results Priority</system:String>
<system:String x:Key="priorityToolTip">Змінити пріоритет результатів плагіна</system:String>
<system:String x:Key="pluginDirectory">Директорія плагінів</system:String>
<system:String x:Key="author">за</system:String>
<system:String x:Key="plugin_init_time">Ініціалізація:</system:String>
<system:String x:Key="plugin_query_time">Запит:</system:String>
<system:String x:Key="plugin_query_version">Версія</system:String>
<system:String x:Key="plugin_query_web">Сайт</system:String>
<system:String x:Key="plugin_uninstall">Uninstall</system:String>
<system:String x:Key="plugin_uninstall">Видалити</system:String>
<!-- Setting Plugin Store -->
<system:String x:Key="pluginStore">Магазин плагінів</system:String>
<system:String x:Key="pluginStore_NewRelease">New Release</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
<system:String x:Key="pluginStore_NewRelease">Новий реліз</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Нещодавно оновлено</system:String>
<system:String x:Key="pluginStore_None">Плагіни</system:String>
<system:String x:Key="pluginStore_Installed">Installed</system:String>
<system:String x:Key="pluginStore_Installed">Встановлено</system:String>
<system:String x:Key="refresh">Оновити</system:String>
<system:String x:Key="installbtn">Install</system:String>
<system:String x:Key="uninstallbtn">Uninstall</system:String>
<system:String x:Key="installbtn">Встановити</system:String>
<system:String x:Key="uninstallbtn">Видалити</system:String>
<system:String x:Key="updatebtn">Оновити</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
<system:String x:Key="LabelNew">New Version</system:String>
<system:String x:Key="LabelNewToolTip">This plugin has been updated within the last 7 days</system:String>
<system:String x:Key="LabelUpdateToolTip">New Update is Available</system:String>
<system:String x:Key="LabelInstalledToolTip">Плагін вже встановлено</system:String>
<system:String x:Key="LabelNew">Нова версія</system:String>
<system:String x:Key="LabelNewToolTip">Цей плагін було оновлено протягом останніх 7 днів</system:String>
<system:String x:Key="LabelUpdateToolTip">Доступне нове оновлення</system:String>
<!-- Setting Theme -->
<system:String x:Key="theme">Тема</system:String>
<system:String x:Key="appearance">Appearance</system:String>
<system:String x:Key="appearance">Зовнішній вигляд</system:String>
<system:String x:Key="browserMoreThemes">Знайти більше тем</system:String>
<system:String x:Key="howToCreateTheme">Як створити тему</system:String>
<system:String x:Key="hiThere">Привіт усім</system:String>
<system:String x:Key="SampleTitleExplorer">Explorer</system:String>
<system:String x:Key="SampleSubTitleExplorer">Search for files, folders and file contents</system:String>
<system:String x:Key="SampleTitleWebSearch">WebSearch</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Search the web with different search engine support</system:String>
<system:String x:Key="SampleTitleProgram">Program</system:String>
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
<system:String x:Key="SampleTitleExplorer">Провідник</system:String>
<system:String x:Key="SampleSubTitleExplorer">Пошук файлів, папок і вмісту файлів</system:String>
<system:String x:Key="SampleTitleWebSearch">Веб-пошук</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Пошук в Інтернеті за допомогою різних пошукових систем</system:String>
<system:String x:Key="SampleTitleProgram">Програма</system:String>
<system:String x:Key="SampleSubTitleProgram">Запуск програм від імені адміністратора або іншого користувача</system:String>
<system:String x:Key="SampleTitleProcessKiller">Процес-кілер</system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Припинення небажаних процесів</system:String>
<system:String x:Key="queryBoxFont">Шрифт запитів</system:String>
<system:String x:Key="resultItemFont">Шрифт результатів</system:String>
<system:String x:Key="windowMode">Віконний режим</system:String>
@ -154,53 +154,80 @@
<system:String x:Key="ColorSchemeDark">Темна</system:String>
<system:String x:Key="SoundEffect">Звуковий ефект</system:String>
<system:String x:Key="SoundEffectTip">Відтворювати невеликий звук при відкритті вікна пошуку</system:String>
<system:String x:Key="SoundEffectVolume">Гучність звукового ефекту</system:String>
<system:String x:Key="SoundEffectVolumeTip">Налаштуйте гучність звукового ефекту</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Анімація</system:String>
<system:String x:Key="AnimationTip">Використовувати анімацію в інтерфейсі</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
<system:String x:Key="Clock">Clock</system:String>
<system:String x:Key="Date">Date</system:String>
<system:String x:Key="AnimationSpeed">Швидкість анімації</system:String>
<system:String x:Key="AnimationSpeedTip">Швидкість анімації інтерфейсу</system:String>
<system:String x:Key="AnimationSpeedSlow">Повільна</system:String>
<system:String x:Key="AnimationSpeedMedium">Середня</system:String>
<system:String x:Key="AnimationSpeedFast">Швидка</system:String>
<system:String x:Key="AnimationSpeedCustom">Користувацька</system:String>
<system:String x:Key="Clock">Годинник</system:String>
<system:String x:Key="Date">Дата</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Гаряча клавіша</system:String>
<system:String x:Key="hotkeys">Гаряча клавіша</system:String>
<system:String x:Key="flowlauncherHotkey">Гаряча клавіша Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Введіть ярлик для відображення/приховання потокового запуску.</system:String>
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeys">Гарячі клавіші</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Введіть скорочення, щоб показати/приховати Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Введіть скорочення, щоб показати/приховати попередній перегляд у вікні пошуку.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">Відкрити ключ зміни результатів</system:String>
<system:String x:Key="openResultModifiersToolTip">Виберіть ключ модифікатора для відкриття вибраних результатів за допомогою клавіатури.</system:String>
<system:String x:Key="showOpenResultHotkey">Показати гарячу клавішу</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Показати гарячу клавішу вибору результату з результатами.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Відкрити контекстне меню</system:String>
<system:String x:Key="SettingWindowHotkey">Відкрити вікно налаштувань</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Перемкнути режим гри</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">Відкрийте папку, що містить файл</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Задані гарячі клавіші для запитів</system:String>
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
<system:String x:Key="customQuery">Query</system:String>
<system:String x:Key="customShortcut">Shortcut</system:String>
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
<system:String x:Key="builtinShortcutDescription">Description</system:String>
<system:String x:Key="customQueryShortcut">Користувацькі скорочення запитів</system:String>
<system:String x:Key="builtinShortcuts">Вбудовані скорочення</system:String>
<system:String x:Key="customQuery">Запит</system:String>
<system:String x:Key="customShortcut">Скорочення</system:String>
<system:String x:Key="customShortcutExpansion">Розширення</system:String>
<system:String x:Key="builtinShortcutDescription">Опис</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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">Спочатку виберіть елемент</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">Ви впевнені, що хочете видалити гарячу клавішу ({0}) плагіну?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Ви впевнені, що хочете видалити скорочення: {0} з розширенням {1}?</system:String>
<system:String x:Key="shortcut_clipboard_description">Отримати текст з буфера обміну.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Отримати шлях з активного провідника.</system:String>
<system:String x:Key="queryWindowShadowEffect">Ефект тіні вікна запиту</system:String>
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
<system:String x:Key="windowWidthSize">Window Width Size</system:String>
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Use Segoe Fluent Icons</system:String>
<system:String x:Key="useGlyphUIEffect">Use Segoe Fluent Icons for query results where supported</system:String>
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
<system:String x:Key="shadowEffectCPUUsage">Тіньовий ефект суттєво навантажує графічний процесор. Не рекомендується, якщо потужність вашого комп'ютера є обмеженою.</system:String>
<system:String x:Key="windowWidthSize">Розмір ширини вікна</system:String>
<system:String x:Key="windowWidthSizeToolTip">Ви також можете швидко налаштувати цей параметр за допомогою комбінації клавіш Ctrl+[ та Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Використання іконок Segoe Fluent</system:String>
<system:String x:Key="useGlyphUIEffect">Використання іконок Segoe Fluent Icons для результатів запитів, де це підтримується</system:String>
<system:String x:Key="flowlauncherPressHotkey">Натисніть клавішу</system:String>
<!-- Setting Proxy -->
<system:String x:Key="proxy">HTTP Proxy</system:String>
<system:String x:Key="proxy">HTTP-проксі</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>
@ -217,53 +244,53 @@
<!-- Setting About -->
<system:String x:Key="about">Про Flow Launcher</system:String>
<system:String x:Key="website">Website</system:String>
<system:String x:Key="website">Веб-сайт</system:String>
<system:String x:Key="github">GitHub</system:String>
<system:String x:Key="docs">Docs</system:String>
<system:String x:Key="docs">Документація</system:String>
<system:String x:Key="version">Версія</system:String>
<system:String x:Key="icons">Icons</system:String>
<system:String x:Key="icons">Іконки</system:String>
<system:String x:Key="about_activate_times">Ви скористалися Flow Launcher вже {0} разів</system:String>
<system:String x:Key="checkUpdates">Перевірити наявність оновлень</system:String>
<system:String x:Key="BecomeASponsor">Become A Sponsor</system:String>
<system:String x:Key="BecomeASponsor">Стати спонсором</system:String>
<system:String x:Key="newVersionTips">Доступна нова версія {0}, будь ласка, перезавантажте Flow Launcher</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="checkUpdatesFailed">Перевірити оновлення не вдалося, будь ласка, перевірте ваше з'єднання та налаштування проксі-сервера до 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/Flow-Launcher/Flow.Launcher/releases to download updates manually.
Не вдалося завантажити оновлення, будь ласка, перевірте ваше з'єднання та налаштування проксі-сервера до github-cloud.s3.amazonaws.com,
або перейдіть на https://github.com/Flow-Launcher/Flow.Launcher/releases, аби завантажити оновлення власноруч.
</system:String>
<system:String x:Key="releaseNotes">Примітки до поточного релізу:</system:String>
<system:String x:Key="documentation">Usage Tips</system:String>
<system:String x:Key="documentation">Поради щодо використання</system:String>
<system:String x:Key="devtool">DevTools</system:String>
<system:String x:Key="settingfolder">Setting Folder</system:String>
<system:String x:Key="logfolder">Log Folder</system:String>
<system:String x:Key="clearlogfolder">Clear Logs</system:String>
<system:String x:Key="clearlogfolderMessage">Are you sure you want to delete all logs?</system:String>
<system:String x:Key="welcomewindow">Wizard</system:String>
<system:String x:Key="settingfolder">Тека налаштувань</system:String>
<system:String x:Key="logfolder">Тека журналу</system:String>
<system:String x:Key="clearlogfolder">Очистити журнали</system:String>
<system:String x:Key="clearlogfolderMessage">Ви впевнені, що хочете видалити всі журнали?</system:String>
<system:String x:Key="welcomewindow">Чаклун</system:String>
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments if necessary. The default arguments are &quot;%d&quot;, and a path is entered at that location. For example, If a command is required such as &quot;totalcmd.exe /A c:\windows&quot;, argument is /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; is an argument that represent the file path. It is used to emphasize the file/folder name when opening a specific file location in 3rd party file manager. This argument is only available in the &quot;Arg for File&quot; item. If the file manager does not have that function, you can use &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">File Manager</system:String>
<system:String x:Key="fileManager_profile_name">Profile Name</system:String>
<system:String x:Key="fileManager_path">File Manager Path</system:String>
<system:String x:Key="fileManager_directory_arg">Arg For Folder</system:String>
<system:String x:Key="fileManager_file_arg">Arg For File</system:String>
<system:String x:Key="fileManagerWindow">Виберіть файловий менеджер</system:String>
<system:String x:Key="fileManager_tips">Будь ласка, вкажіть розташування файлу у файловому менеджері, який ви використовуєте, і додайте аргументи, якщо це необхідно. За замовчуванням аргументами є &quot;%d&quot;, і шлях вводиться у вказаному місці. Наприклад, якщо потрібно виконати команду типу &quot;totalcmd.exe /A c:\windows&quot;, аргументом буде /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; - це аргумент, який представляє шлях до файлу. Він використовується для виділення імені файлу/теки при відкритті певного місця розташування файлу у сторонньому файловому менеджері. Цей аргумент доступний лише у пункті &quot;Аргумент для файлу&quot;. Якщо файловий менеджер не має такої функції, ви можете використовувати &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">Файловий менеджер</system:String>
<system:String x:Key="fileManager_profile_name">Ім'я профілю</system:String>
<system:String x:Key="fileManager_path">Шлях до файлового менеджера</system:String>
<system:String x:Key="fileManager_directory_arg">Аргумент для папки</system:String>
<system:String x:Key="fileManager_file_arg">Аргумент для файлу</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Веб-браузер за замовчуванням</system:String>
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
<system:String x:Key="defaultBrowser_name">Browser</system:String>
<system:String x:Key="defaultBrowser_profile_name">Browser Name</system:String>
<system:String x:Key="defaultBrowser_path">Browser Path</system:String>
<system:String x:Key="defaultBrowser_newWindow">New Window</system:String>
<system:String x:Key="defaultBrowser_newTab">New Tab</system:String>
<system:String x:Key="defaultBrowser_parameter">Private Mode</system:String>
<system:String x:Key="defaultBrowser_tips">Налаштування за замовчуванням відповідають налаштуванню браузера за замовчуванням в операційній системі. Якщо вказано окремо, Flow використовує цей браузер.</system:String>
<system:String x:Key="defaultBrowser_name">Браузер</system:String>
<system:String x:Key="defaultBrowser_profile_name">Назва браузера</system:String>
<system:String x:Key="defaultBrowser_path">Шлях до браузера</system:String>
<system:String x:Key="defaultBrowser_newWindow">Нове вікно</system:String>
<system:String x:Key="defaultBrowser_newTab">Нова вкладка</system:String>
<system:String x:Key="defaultBrowser_parameter">Приватний режим</system:String>
<!-- Priority Setting Dialog -->
<system:String x:Key="changePriorityWindow">Change Priority</system:String>
<system:String x:Key="priority_tips">Greater the number, the higher the result will be ranked. Try setting it as 5. If you want the results to be lower than any other plugin's, provide a negative number</system:String>
<system:String x:Key="invalidPriority">Please provide an valid integer for Priority!</system:String>
<system:String x:Key="changePriorityWindow">Змінити пріоритет</system:String>
<system:String x:Key="priority_tips">Чим більше число, тим вище буде розташований результат. Спробуйте встановити значення 5. Якщо ви хочете, щоб результати показувалися нижче, ніж у будь-якого іншого плагіна, введіть від'ємне число</system:String>
<system:String x:Key="invalidPriority">Будь ласка, вкажіть дійсне ціле число для Пріоритету!</system:String>
<!-- Action Keyword Setting Dialog -->
<system:String x:Key="oldActionKeywords">Поточна гаряча клавіша</system:String>
@ -274,29 +301,38 @@
<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="completedSuccessfully">Completed successfully</system:String>
<system:String x:Key="completedSuccessfully">Успішно завершено</system:String>
<system:String x:Key="actionkeyword_tips">Введіть гарячу клавішу, яку ви хочете використовувати для запуску плагіна. Використовуйте * у разі, якщо ви не хочете ставити конкретну гарячу клавішу.</system:String>
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">Задані гарячі клавіші для запитів</system:String>
<system:String x:Key="customeQueryHotkeyTips">Press a custom hotkey to open Flow Launcher and input the specified query automatically.</system:String>
<system:String x:Key="customeQueryHotkeyTips">Натисніть спеціальну гарячу клавішу, щоб відкрити Flow Launcher і автоматично ввести вказаний запит.</system:String>
<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>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
<system:String x:Key="customeQueryShortcutTips">Enter a shortcut that automatically expands to the specified query.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutTitle">Власне скорочення запиту</system:String>
<system:String x:Key="customeQueryShortcutTips">Введіть скорочення, яке автоматично розгорнеться до вказаного запиту.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">Скорочення розгортається, коли воно точно відповідає запиту.
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
Якщо ви додасте префікс '@' під час введення скорочення, воно буде відповідати будь-якій позиції в запиті. Вбудовані скорочення відповідають будь-якій позиції в запиті.
</system:String>
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<system:String x:Key="duplicateShortcut">Скорочення вже існує, будь ласка, введіть нове або відредагуйте існуюче.</system:String>
<system:String x:Key="emptyShortcut">Скорочення та/або його розширення є порожнім.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">Гаряча клавіша недоступна</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Зберегти</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">Скасувати</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">Видалити</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Версія</system:String>
@ -315,64 +351,70 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_flowlauncher_got_an_error">Стався збій в додатку Flow Launcher</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>
<system:String x:Key="pleaseWait">Будь ласка, зачекайте...</system:String>
<!-- Update -->
<system:String x:Key="update_flowlauncher_update_check">Checking for new update</system:String>
<system:String x:Key="update_flowlauncher_already_on_latest">You already have the latest Flow Launcher version</system:String>
<system:String x:Key="update_flowlauncher_update_found">Update found</system:String>
<system:String x:Key="update_flowlauncher_updating">Updating...</system:String>
<system:String x:Key="update_flowlauncher_update_check">Перевірка наявності оновлень</system:String>
<system:String x:Key="update_flowlauncher_already_on_latest">Ви вже маєте останню версію Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_found">Оновлення знайдено</system:String>
<system:String x:Key="update_flowlauncher_updating">Оновлюємо...</system:String>
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
Flow Launcher was not able to move your user profile data to the new update version.
Please manually move your profile data folder from {0} to {1}
Flow Launcher не зміг перенести дані вашого профілю користувача до нової актуальної версії.
Будь ласка, перемістіть теку з даними вашого профілю власноруч з {0} до {1}
</system:String>
<system:String x:Key="update_flowlauncher_new_update">New Update</system:String>
<system:String x:Key="update_flowlauncher_new_update">Нова версія</system:String>
<system:String x:Key="update_flowlauncher_update_new_version_available">Доступна нова версія Flow Launcher {0}</system:String>
<system:String x:Key="update_flowlauncher_update_error">Сталася помилка під час спроби встановити оновлення</system:String>
<system:String x:Key="update_flowlauncher_update">Оновити</system:String>
<system:String x:Key="update_flowlauncher_update_cancel">Скасувати</system:String>
<system:String x:Key="update_flowlauncher_fail">Update Failed</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Check your connection and try updating proxy settings to github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_fail">Не вдалося оновити</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Перевірте з'єднання та спробуйте оновити налаштування проксі до github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Це оновлення перезавантажить Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_update_files">Ці файли будуть оновлені</system:String>
<system:String x:Key="update_flowlauncher_update_files">Оновити файли</system:String>
<system:String x:Key="update_flowlauncher_update_update_description">Опис оновлення</system:String>
<!-- Welcome Window -->
<system:String x:Key="Skip">Skip</system:String>
<system:String x:Key="Welcome_Page1_Title">Welcome to Flow Launcher</system:String>
<system:String x:Key="Welcome_Page1_Text01">Hello, this is the first time you are running Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Before starting, this wizard will assist in setting up Flow Launcher. You can skip this if you wish. Please choose a language</system:String>
<system:String x:Key="Welcome_Page2_Title">Search and run all files and applications on your PC</system:String>
<system:String x:Key="Welcome_Page2_Text01">Search everything from applications, files, bookmarks, YouTube, Twitter and more. All from the comfort of your keyboard without ever touching the mouse.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher starts with the hotkey below, go ahead and try it out now. To change it, click on the input and press the desired hotkey on the keyboard.</system:String>
<system:String x:Key="Welcome_Page3_Title">Hotkeys</system:String>
<system:String x:Key="Welcome_Page4_Title">Action Keyword and Commands</system:String>
<system:String x:Key="Welcome_Page4_Text01">Search the web, launch applications or run various functions through Flow Launcher plugins. Certain functions start with an action keyword, and if necessary, they can be used without action keywords. Try the queries below in Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Let's Start Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Finished. Enjoy Flow Launcher. Don't forget the hotkey to start :)</system:String>
<system:String x:Key="Skip">Пропустити</system:String>
<system:String x:Key="Welcome_Page1_Title">Ласкаво просимо до Flow Launcher</system:String>
<system:String x:Key="Welcome_Page1_Text01">Вітаємо, ви вперше запускаєте Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Перед початком роботи цей помічник допоможе налаштувати Flow Launcher. Ви можете пропустити цей крок, якщо бажаєте. Виберіть мову</system:String>
<system:String x:Key="Welcome_Page2_Title">Пошук та запуск усіх файлів і програм на вашому комп'ютері</system:String>
<system:String x:Key="Welcome_Page2_Text01">Шукайте все: програми, файли, закладки, YouTube, Twitter тощо. І все це за допомогою клавіатури, навіть не торкаючись миші.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher запускається за допомогою наведеної нижче гарячої клавіші, спробуйте натиснути її зараз. Щоб її змінити, клацніть на ввід і натисніть потрібну гарячу клавішу на клавіатурі.</system:String>
<system:String x:Key="Welcome_Page3_Title">Гарячі клавіші</system:String>
<system:String x:Key="Welcome_Page4_Title">Ключове слово дії та команди</system:String>
<system:String x:Key="Welcome_Page4_Text01">Шукайте в Інтернеті, запускайте програми або виконуйте різноманітні функції за допомогою плагінів Flow Launcher. Деякі функції починаються з ключового слова дії, але за потреби їх можна використовувати і без нього. Спробуйте наведені нижче запити у Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Давайте запустимо Flow Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Готово. Насолоджуйтесь Flow Launcher. Не забудьте гарячу клавішу для запуску :)</system:String>
<!-- General Guide & Hotkey -->
<system:String x:Key="HotkeyUpDownDesc">Back / Context Menu</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Item Navigation</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Open Context Menu</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Open Containing Folder</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Run as Admin / Open Folder in Default File Manager</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Query History</system:String>
<system:String x:Key="HotkeyESCDesc">Back to Result in Context Menu</system:String>
<system:String x:Key="HotkeyTabDesc">Autocomplete</system:String>
<system:String x:Key="HotkeyRunDesc">Open / Run Selected Item</system:String>
<system:String x:Key="HotkeyCtrlIDesc">Open Setting Window</system:String>
<system:String x:Key="HotkeyF5Desc">Reload Plugin Data</system:String>
<system:String x:Key="HotkeyUpDownDesc">Назад / Контекстне меню</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Навігація елементами</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Відкрити контекстне меню</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Відкрийте папку, що містить файл</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Запустити від імені адміністратора / Відкрити папку у файловому менеджері за замовчуванням</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Історія запитів</system:String>
<system:String x:Key="HotkeyESCDesc">Повернутися до результату в контекстному меню</system:String>
<system:String x:Key="HotkeyTabDesc">Автодоповнення</system:String>
<system:String x:Key="HotkeyRunDesc">Відкрити / запустити вибраний елемент</system:String>
<system:String x:Key="HotkeyCtrlIDesc">Відкрити вікно налаштувань</system:String>
<system:String x:Key="HotkeyF5Desc">Перезавантажити дані плагінів</system:String>
<system:String x:Key="RecommendWeather">Weather</system:String>
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Погода</system:String>
<system:String x:Key="RecommendWeatherDesc">Погода в результатах Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
<system:String x:Key="RecommendShellDesc">Shell Command</system:String>
<system:String x:Key="RecommendShellDesc">Команда Shell</system:String>
<system:String x:Key="RecommendBluetooth">s Bluetooth</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Windows Settings</system:String>
<system:String x:Key="RecommendBluetoothDesc">Bluetooth у налаштуваннях Windows</system:String>
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Sticky Notes</system:String>
<system:String x:Key="RecommendAcronymsDesc">Липкі нотатки</system:String>
</ResourceDictionary>

View file

@ -0,0 +1,426 @@
<?xml version="1.0"?>
<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">Không thể đăng ký phím nóng &quot;{0}&quot;. Phím nóng có thể được sử dụng bởi một chương trình khác. Chuyển sang phím nóng khác hoặc thoát khỏi chương trình khác.</system:String>
<system:String x:Key="MessageBoxTitle">Trình khởi chạy luồng</system:String>
<system:String x:Key="couldnotStartCmd">Không thể khởi động {0}</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Định dạng tệp plugin Flow Launcher không chính xác</system:String>
<system:String x:Key="setAsTopMostInThisQuery">Đặt ở vị trí trên cùng trong truy vấn này</system:String>
<system:String x:Key="cancelTopMostInThisQuery">Hủy trên cùng trong truy vấn này</system:String>
<system:String x:Key="executeQuery">Thực thi truy vấn:{0}</system:String>
<system:String x:Key="lastExecuteTime">Thời gian thực hiện lần cuối:{0}</system:String>
<system:String x:Key="iconTrayOpen">Mở</system:String>
<system:String x:Key="iconTraySettings">Cài đặt</system:String>
<system:String x:Key="iconTrayAbout">Giới thiệu</system:String>
<system:String x:Key="iconTrayExit">Thoát</system:String>
<system:String x:Key="closeWindow">Đóng</system:String>
<system:String x:Key="copy">Sao chép</system:String>
<system:String x:Key="cut">Di chuyển</system:String>
<system:String x:Key="paste">Dán</system:String>
<system:String x:Key="undo">Hoàn tác</system:String>
<system:String x:Key="selectAll">Chọn tất cả</system:String>
<system:String x:Key="fileTitle">Ngày tháng</system:String>
<system:String x:Key="folderTitle">Thư Mục</system:String>
<system:String x:Key="textTitle">Văn bản</system:String>
<system:String x:Key="GameMode">Chế độ trò chơi</system:String>
<system:String x:Key="GameModeToolTip">Tạm dừng sử dụng phím nóng.</system:String>
<system:String x:Key="PositionReset">Đặt lại vị trí</system:String>
<system:String x:Key="PositionResetToolTip">Đặt lại vị trí của cửa sổ tìm kiếm</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Cài đặt</system:String>
<system:String x:Key="general">Tổng quan</system:String>
<system:String x:Key="portableMode">Chế độ Portabler</system:String>
<system:String x:Key="portableModeToolTIp">Lưu trữ tất cả cài đặt và dữ liệu người dùng trong một thư mục (hữu ích khi sử dụng với thiết bị lưu trữ di động hoặc dịch vụ đám mây).</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">Khởi động Flow Launcher khi khởi động hệ thống</system:String>
<system:String x:Key="setAutoStartFailed">Không lưu được tính năng tự khởi động khi khởi động hệ thống</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ẩn Flow Launcher khi mất tiêu điểm</system:String>
<system:String x:Key="dontPromptUpdateMsg">Không hiển thị thông báo khi có phiên bản mới</system:String>
<system:String x:Key="SearchWindowPosition">Vị trí Suchfenster</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Ghi nhớ vị trí cuối cùng</system:String>
<system:String x:Key="SearchWindowScreenCursor">Màn hình bằng con trỏ chuột</system:String>
<system:String x:Key="SearchWindowScreenFocus">Màn hình có cửa sổ được tập trung</system:String>
<system:String x:Key="SearchWindowScreenPrimary">Màn hình chính</system:String>
<system:String x:Key="SearchWindowScreenCustom">Màn hình tùy chỉnh</system:String>
<system:String x:Key="SearchWindowAlign">Tìm kiếm vị trí cửa sổ trên màn hình</system:String>
<system:String x:Key="SearchWindowAlignCenter">Trung tâm</system:String>
<system:String x:Key="SearchWindowAlignCenterTop">Trung tâm trên cùng</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">Liên kết oben</system:String>
<system:String x:Key="SearchWindowAlignRightTop">Trên cùng bên phải</system:String>
<system:String x:Key="SearchWindowAlignCustom">Vị trí tùy chỉnh</system:String>
<system:String x:Key="language">Ngôn Ngữ </system:String>
<system:String x:Key="lastQueryMode">Chọn kiểu truy vấn</system:String>
<system:String x:Key="lastQueryModeToolTip">Hiển thị/ẩn các kết quả trước đó khi Flow Launcher được kích hoạt lại.</system:String>
<system:String x:Key="LastQueryPreserved">Giữ lại truy vấn cuối cùng</system:String>
<system:String x:Key="LastQuerySelected">Chọn truy vấn cuối cùng</system:String>
<system:String x:Key="LastQueryEmpty">Trống truy vấn cuối cùng</system:String>
<system:String x:Key="maxShowResults">Số kết quả tối đa</system:String>
<system:String x:Key="maxShowResultsToolTip">Có thể thiết lập nhanh chóng bằng CTRL+Plus và CTRL+Minus.</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">Bỏ qua phím nóng khi cửa sổ ở chế độ toàn màn hình</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Tắt Flow Launcher khi ứng dụng toàn màn hình đang hoạt động (Được khuyến nghị để chơi trò chơi).</system:String>
<system:String x:Key="defaultFileManager">Trình quản lý ngày tháng tiêu chuẩn</system:String>
<system:String x:Key="defaultFileManagerToolTip">Chọn trình quản lý tệp để sử dụng khi mở thư mục.</system:String>
<system:String x:Key="defaultBrowser">Trình duyệt chuẩn</system:String>
<system:String x:Key="defaultBrowserToolTip">Cài đặt cho tab mới, cửa sổ mới và chế độ riêng tư.</system:String>
<system:String x:Key="pythonFilePath">Python-Pfad</system:String>
<system:String x:Key="nodeFilePath">Node.js-Pfad</system:String>
<system:String x:Key="selectNodeExecutable">Vui lòng chọn chương trình Node.js</system:String>
<system:String x:Key="selectPythonExecutable">Vui lòng chọn pythonw.exe</system:String>
<system:String x:Key="typingStartEn">Luôn bắt đầu nhập ở chế độ tiếng Anh</system:String>
<system:String x:Key="typingStartEnTooltip">Tạm thời chuyển phương thức nhập sang tiếng Anh khi kích hoạt Flow.</system:String>
<system:String x:Key="autoUpdates">Cập nhật tự động</system:String>
<system:String x:Key="select">Chọn</system:String>
<system:String x:Key="hideOnStartup">Ẩn Trình khởi chạy luồng khi khởi động</system:String>
<system:String x:Key="hideNotifyIcon">Ẩn biểu tượng thanh trạng thái</system:String>
<system:String x:Key="hideNotifyIconToolTip">Khi biểu tượng bị ẩn khỏi khay, bạn có thể mở menu Cài đặt bằng cách nhấp chuột phải vào cửa sổ tìm kiếm.</system:String>
<system:String x:Key="querySearchPrecision">Độ chính xác của tìm kiếm truy vấn</system:String>
<system:String x:Key="querySearchPrecisionToolTip">Kết quả tìm kiếm bắt buộc.</system:String>
<system:String x:Key="ShouldUsePinyin">Hoạt động bính âm</system:String>
<system:String x:Key="ShouldUsePinyinToolTip">Cho phép bạn sử dụng Bính âm để tìm kiếm. Bính âm là hệ thống ký hiệu La Mã tiêu chuẩn để dịch văn bản tiếng Trung.</system:String>
<system:String x:Key="AlwaysPreview">Luôn xem trước</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Luôn mở bảng xem trước khi Flow kích hoạt. Nhấn {0} để chuyển đổi chế độ xem trước.</system:String>
<system:String x:Key="shadowEffectNotAllowed">Hiệu ứng đổ bóng không được phép nếu chủ đề hiện tại bật hiệu ứng làm mờ</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Plugin tìm kiếm</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F để tìm kiếm plugin</system:String>
<system:String x:Key="searchplugin_Noresult_Title">Không tìm thấy kết quả nào</system:String>
<system:String x:Key="searchplugin_Noresult_Subtitle">Vui lòng thử tìm kiếm khác.</system:String>
<system:String x:Key="plugin">Tiện ích mở rộng</system:String>
<system:String x:Key="plugins">Tiện ích mở rộng</system:String>
<system:String x:Key="browserMorePlugins">Tìm kiếm thêm plugin</system:String>
<system:String x:Key="enable">Bật</system:String>
<system:String x:Key="disable">Tắt</system:String>
<system:String x:Key="actionKeywordsTitle">Cài đặt từ hành động</system:String>
<system:String x:Key="actionKeywords">Từ khóa hành động</system:String>
<system:String x:Key="currentActionKeywords">Từ hành động hiện tại</system:String>
<system:String x:Key="newActionKeyword">Từ hành động mới</system:String>
<system:String x:Key="actionKeywordsTooltip">Thay đổi từ hành động</system:String>
<system:String x:Key="currentPriority">Ưu tiên hiện tại</system:String>
<system:String x:Key="newPriority">Ưu tiên mới</system:String>
<system:String x:Key="priority">Ưu tiên</system:String>
<system:String x:Key="priorityToolTip">Thay đổi mức độ ưu tiên của kết quả plugin</system:String>
<system:String x:Key="pluginDirectory">Trình cắm</system:String>
<system:String x:Key="author">tác giả</system:String>
<system:String x:Key="plugin_init_time">Khởi tạo ban đầu:</system:String>
<system:String x:Key="plugin_query_time">Abfragezeit:</system:String>
<system:String x:Key="plugin_query_version">Phiên bản</system:String>
<system:String x:Key="plugin_query_web">Trang web</system:String>
<system:String x:Key="plugin_uninstall">Gỡ cài đặt</system:String>
<!-- Setting Plugin Store -->
<system:String x:Key="pluginStore">Tải tiện ích mở rộng</system:String>
<system:String x:Key="pluginStore_NewRelease">Bản phát hành mới</system:String>
<system:String x:Key="pluginStore_RecentlyUpdated">Cập nhật gần đây</system:String>
<system:String x:Key="pluginStore_None">Tiện ích mở rộng</system:String>
<system:String x:Key="pluginStore_Installed">Đã cài đặt</system:String>
<system:String x:Key="refresh">Làm mới</system:String>
<system:String x:Key="installbtn">Cài đặt</system:String>
<system:String x:Key="uninstallbtn">Gỡ cài đặt</system:String>
<system:String x:Key="updatebtn">Cập nhật</system:String>
<system:String x:Key="LabelInstalledToolTip">Plugin đã được cài đặt</system:String>
<system:String x:Key="LabelNew">Phiên bản mới</system:String>
<system:String x:Key="LabelNewToolTip">Plugin này đã được cập nhật trong vòng 7 ngày qua</system:String>
<system:String x:Key="LabelUpdateToolTip">Đã có bản cập nhật mới</system:String>
<!-- Setting Theme -->
<system:String x:Key="theme">Giao Diện</system:String>
<system:String x:Key="appearance">Giao diện</system:String>
<system:String x:Key="browserMoreThemes">Tìm kiếm thêm chủ đề</system:String>
<system:String x:Key="howToCreateTheme">Cách tạo chủ đề</system:String>
<system:String x:Key="hiThere">Xin chào</system:String>
<system:String x:Key="SampleTitleExplorer">Thư mục </system:String>
<system:String x:Key="SampleSubTitleExplorer">Tìm kiếm tệp, thư mục và nội dung tệp</system:String>
<system:String x:Key="SampleTitleWebSearch">Tìm kiếm trên web</system:String>
<system:String x:Key="SampleSubTitleWebSearch">Tìm kiếm trên web với sự hỗ trợ của công cụ tìm kiếm khác</system:String>
<system:String x:Key="SampleTitleProgram">Chương trình</system:String>
<system:String x:Key="SampleSubTitleProgram">Khởi chạy chương trình với tư cách quản trị viên hoặc người dùng khác</system:String>
<system:String x:Key="SampleTitleProcessKiller">Buộc Tắt Tiến Trình </system:String>
<system:String x:Key="SampleSubTitleProcessKiller">Chấm dứt các tiến trình không mong muốn</system:String>
<system:String x:Key="queryBoxFont">Phông chữ hộp truy vấn</system:String>
<system:String x:Key="resultItemFont">Phông chữ kết quả</system:String>
<system:String x:Key="windowMode">chế độ cửa sổ</system:String>
<system:String x:Key="opacity">độ mờ</system:String>
<system:String x:Key="theme_load_failure_path_not_exists">Chủ đề {0} không tồn tại nên mẫu mặc định được kích hoạt</system:String>
<system:String x:Key="theme_load_failure_parse_error">Tải chủ đề {0} không thành công, mẫu mặc định được kích hoạt</system:String>
<system:String x:Key="ThemeFolder">Mở thư mục chủ đề</system:String>
<system:String x:Key="OpenThemeFolder">Mở thư mục chủ đề</system:String>
<system:String x:Key="ColorScheme">Bảng màu</system:String>
<system:String x:Key="ColorSchemeSystem">Mặc định hệ thống</system:String>
<system:String x:Key="ColorSchemeLight">Sáng</system:String>
<system:String x:Key="ColorSchemeDark">Tối</system:String>
<system:String x:Key="SoundEffect">Hiệu ứng âm thanh</system:String>
<system:String x:Key="SoundEffectTip">Phát âm thanh khi cửa sổ tìm kiếm mở</system:String>
<system:String x:Key="SoundEffectVolume">Âm lượng hiệu ứng âm thanh</system:String>
<system:String x:Key="SoundEffectVolumeTip">Điều chỉnh âm lượng của hiệu ứng âm thanh</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">Hoạt hình</system:String>
<system:String x:Key="AnimationTip">Sử dụng hình động trong giao diện</system:String>
<system:String x:Key="AnimationSpeed">Tốc độ hoạt ảnh</system:String>
<system:String x:Key="AnimationSpeedTip">Tốc độ của hoạt ảnh giao diện người dùng</system:String>
<system:String x:Key="AnimationSpeedSlow">Chậm</system:String>
<system:String x:Key="AnimationSpeedMedium">Trung bình</system:String>
<system:String x:Key="AnimationSpeedFast">Nhanh</system:String>
<system:String x:Key="AnimationSpeedCustom">Tùy chỉnh</system:String>
<system:String x:Key="Clock">Giờ</system:String>
<system:String x:Key="Date">Ngày</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">Phím tắt</system:String>
<system:String x:Key="hotkeys">Phím tắt</system:String>
<system:String x:Key="flowlauncherHotkey">Chào mừng bạn đến với Trình khởi chạy luồng</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">Nhập phím tắt để hiển thị/ẩn Flow Launcher.</system:String>
<system:String x:Key="previewHotkey">Bật tắt xem trước</system:String>
<system:String x:Key="previewHotkeyToolTip">Nhập phím tắt để hiển thị/ẩn bản xem trước trong cửa sổ tìm kiếm.</system:String>
<system:String x:Key="hotkeyPresets">Cài đặt trước phím nóng</system:String>
<system:String x:Key="hotkeyPresetsToolTip">Danh sách các phím nóng hiện đã đăng ký</system:String>
<system:String x:Key="openResultModifiers">Mở công cụ sửa đổi kết quả</system:String>
<system:String x:Key="openResultModifiersToolTip">Chọn phím bổ trợ để mở kết quả đã chọn từ bàn phím.</system:String>
<system:String x:Key="showOpenResultHotkey">Giải thích phím nóng</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Hiển thị phím tắt chọn kết quả cùng với kết quả.</system:String>
<system:String x:Key="autoCompleteHotkey">Tự động hoàn thành</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Chạy tự động hoàn thành cho các mục đã chọn.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Trang Tiếp Theo</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">Mở menu ngữ cảnh</system:String>
<system:String x:Key="SettingWindowHotkey">Mở cửa sổ cài đặt</system:String>
<system:String x:Key="CopyFilePathHotkey">Chép đường dẫn tập tin</system:String>
<system:String x:Key="ToggleGameModeHotkey">Chuyển đổi chế độ trò chơi</system:String>
<system:String x:Key="ToggleHistoryHotkey">Chuyển đổi lịch sử</system:String>
<system:String x:Key="OpenContainFolderHotkey">Mở thư mục chứa</system:String>
<system:String x:Key="RunAsAdminHotkey">Chạy với quyền admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Dữ liệu plugin không tải</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">Phím tắt truy vấn tùy chỉnh</system:String>
<system:String x:Key="customQueryShortcut">Lối tắt truy vấn tùy chỉnh</system:String>
<system:String x:Key="builtinShortcuts">Phím tắt tích hợp</system:String>
<system:String x:Key="customQuery">Truy vấn</system:String>
<system:String x:Key="customShortcut">Phím tắt</system:String>
<system:String x:Key="customShortcutExpansion">Mở rộng</system:String>
<system:String x:Key="builtinShortcutDescription">Mô Tả</system:String>
<system:String x:Key="delete">Xóa</system:String>
<system:String x:Key="edit">Chỉnh sửa</system:String>
<system:String x:Key="add">Thêm</system:String>
<system:String x:Key="none">Không</system:String>
<system:String x:Key="pleaseSelectAnItem">Vui lòng chọn một mục</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">Bạn có chắc chắn muốn xóa tổ hợp phím plugin {0} không?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">Bạn có chắc chắn muốn xóa lối tắt: {0} với phần mở rộng {1} không?</system:String>
<system:String x:Key="shortcut_clipboard_description">Nhận văn bản từ bảng nhớ tạm.</system:String>
<system:String x:Key="shortcut_active_explorer_path">Nhận đường dẫn từ trình thám hiểm đang hoạt động.</system:String>
<system:String x:Key="queryWindowShadowEffect">Hiệu ứng đổ bóng trong cửa sổ truy vấn</system:String>
<system:String x:Key="shadowEffectCPUUsage">Hiệu ứng đổ bóng gây rất nhiều áp lực lên GPU. Không nên dùng nếu hiệu suất máy tính của bạn bị hạn chế.</system:String>
<system:String x:Key="windowWidthSize">Chiều rộng kích thước cửa sổ</system:String>
<system:String x:Key="windowWidthSizeToolTip">Bạn cũng có thể nhanh chóng điều chỉnh điều này bằng cách sử dụng Ctrl+[ và Ctrl+].</system:String>
<system:String x:Key="useGlyphUI">Sử dụng biểu tượng Segoe</system:String>
<system:String x:Key="useGlyphUIEffect">Sử dụng Biểu tượng Segoe Fluent cho kết quả truy vấn nếu được hỗ trợ</system:String>
<system:String x:Key="flowlauncherPressHotkey">Nhấn phím</system:String>
<!-- Setting Proxy -->
<system:String x:Key="proxy">Proxy HTTP</system:String>
<system:String x:Key="enableProxy">Proxy HTTP hoạt động</system:String>
<system:String x:Key="server">Máy chủ HTTP</system:String>
<system:String x:Key="port">Cổng</system:String>
<system:String x:Key="userName">Tài Khoản</system:String>
<system:String x:Key="password">Mật khẩu</system:String>
<system:String x:Key="testProxy">Proxy thử nghiệm</system:String>
<system:String x:Key="save">Lưu</system:String>
<system:String x:Key="serverCantBeEmpty">Máy chủ không được để trống</system:String>
<system:String x:Key="portCantBeEmpty">Cổng máy chủ không được để trống</system:String>
<system:String x:Key="invalidPortFormat">Định dạng cổng Falsches</system:String>
<system:String x:Key="saveProxySuccessfully">Đã lưu cấu hình proxy thành công</system:String>
<system:String x:Key="proxyIsCorrect">Proxy được cấu hình đúng</system:String>
<system:String x:Key="proxyConnectFailed">Kết nối với proxy không thành công</system:String>
<!-- Setting About -->
<system:String x:Key="about">Giới thiệu</system:String>
<system:String x:Key="website">Trang web</system:String>
<system:String x:Key="github">GitHub</system:String>
<system:String x:Key="docs">Tài liệu</system:String>
<system:String x:Key="version">Phiên bản</system:String>
<system:String x:Key="icons">Biểu tượng</system:String>
<system:String x:Key="about_activate_times">Bạn đã kích hoạt Flow Launcher {0} lần</system:String>
<system:String x:Key="checkUpdates">Kiểm tra các bản cập nhật</system:String>
<system:String x:Key="BecomeASponsor">Trở thành nhà tài trợ</system:String>
<system:String x:Key="newVersionTips">Đã có phiên bản mới {0}, bạn có muốn khởi động lại Flow Launcher để sử dụng bản cập nhật không?</system:String>
<system:String x:Key="checkUpdatesFailed">Kiểm tra cập nhật không thành công. Vui lòng kiểm tra kết nối và cài đặt proxy của bạn tới api.github.com.</system:String>
<system:String x:Key="downloadUpdatesFailed">
Tải xuống bản cập nhật không thành công. Vui lòng kiểm tra cài đặt kết nối và proxy của bạn tới github-cloud.s3.amazonaws.com,
hoặc truy cập https://github.com/Flow-Launcher/Flow.Launcher/releases để tải xuống các bản cập nhật theo cách thủ công.
</system:String>
<system:String x:Key="releaseNotes">Ghi chú phát hành</system:String>
<system:String x:Key="documentation">Mẹo sử dụng</system:String>
<system:String x:Key="devtool">Công cụ dành cho nhà phát triển</system:String>
<system:String x:Key="settingfolder">Thư mục cài đặt</system:String>
<system:String x:Key="logfolder">Thư mục nhật ký</system:String>
<system:String x:Key="clearlogfolder">Xóa tệp nhật ký</system:String>
<system:String x:Key="clearlogfolderMessage">Bạn có chắc chắn muốn xóa tất cả nhật ký không?</system:String>
<system:String x:Key="welcomewindow">Wizard</system:String>
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Chọn trình quản lý tệp</system:String>
<system:String x:Key="fileManager_tips">Vui lòng chỉ định vị trí tệp của trình quản lý tệp mà bạn đang sử dụng và thêm đối số nếu cần. Đối số mặc định là &quot;%d&quot; và một đường dẫn được nhập tại vị trí đó. Ví dụ: Nếu một lệnh được yêu cầu như &quot;totalcmd.exe /A c:\windows&quot;, đối số là /A &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_tips2">&quot;%f&quot; là một đối số đại diện cho đường dẫn tệp. Nó được sử dụng để nhấn mạnh tên tệp/thư mục khi mở một vị trí tệp cụ thể trong trình quản lý tệp của bên thứ 3. Đối số này chỉ có sẵn trong phần &quot;Arg for File&quot; mục. Nếu trình quản lý tệp không có chức năng đó, bạn có thể sử dụng &quot;%d&quot;.</system:String>
<system:String x:Key="fileManager_name">Trình quản lý ngày tháng</system:String>
<system:String x:Key="fileManager_profile_name">Tên hồ sơ</system:String>
<system:String x:Key="fileManager_path">Đường dẫn quản lý tệp</system:String>
<system:String x:Key="fileManager_directory_arg">Đối số cho thư mục</system:String>
<system:String x:Key="fileManager_file_arg">Đối số cho tệp</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Trình duyệt web tiêu chuẩn</system:String>
<system:String x:Key="defaultBrowser_tips">Mặc định sử dụng mặc định trình duyệt của hệ điều hành. Nếu được chỉ định, Flow sẽ sử dụng trình duyệt này.</system:String>
<system:String x:Key="defaultBrowser_name">Trình duyệt</system:String>
<system:String x:Key="defaultBrowser_profile_name">Tên trình duyệt</system:String>
<system:String x:Key="defaultBrowser_path">Đường dẫn trình duyệt</system:String>
<system:String x:Key="defaultBrowser_newWindow">Cửa sổ mới</system:String>
<system:String x:Key="defaultBrowser_newTab">Thẻ Mới</system:String>
<system:String x:Key="defaultBrowser_parameter">Chế độ riêng tư</system:String>
<!-- Priority Setting Dialog -->
<system:String x:Key="changePriorityWindow">Thay đổi mức độ ưu tiên</system:String>
<system:String x:Key="priority_tips">Số càng cao thì kết quả được xếp hạng càng cao. Hãy thử số 5. Nếu bạn muốn kết quả sâu hơn so với các plugin khác, hãy sử dụng số âm</system:String>
<system:String x:Key="invalidPriority">Vui lòng chỉ định số nguyên hợp lệ cho mức độ ưu tiên!</system:String>
<!-- Action Keyword Setting Dialog -->
<system:String x:Key="oldActionKeywords">Từ khóa hành động cũ</system:String>
<system:String x:Key="newActionKeywords">Từ khóa hành động mới</system:String>
<system:String x:Key="cancel">Viết tắt</system:String>
<system:String x:Key="done">Fertig</system:String>
<system:String x:Key="cannotFindSpecifiedPlugin">Không thể tìm thấy plugin được chỉ định</system:String>
<system:String x:Key="newActionKeywordsCannotBeEmpty">Từ khóa hành động mới không được để trống</system:String>
<system:String x:Key="newActionKeywordsHasBeenAssigned">Từ khóa hành động mới này đã được gán cho một plugin khác, vui lòng chọn một plugin khác</system:String>
<system:String x:Key="success">Thành công</system:String>
<system:String x:Key="completedSuccessfully">Đã hoàn tất thành công</system:String>
<system:String x:Key="actionkeyword_tips">Sử dụng * nếu bạn muốn xác định từ khóa hành động.</system:String>
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">Phím nóng truy vấn tùy chỉnh</system:String>
<system:String x:Key="customeQueryHotkeyTips">Nhấn phím nóng tùy chỉnh để mở Flow Launcher và tự động nhập truy vấn được chỉ định.</system:String>
<system:String x:Key="preview">Xem trước</system:String>
<system:String x:Key="hotkeyIsNotUnavailable">Tổ hợp phím không khả dụng, vui lòng chọn tổ hợp phím khác</system:String>
<system:String x:Key="invalidPluginHotkey">Tổ hợp phím plugin không hợp lệ</system:String>
<system:String x:Key="update">Cập nhật</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Phím tắt truy vấn tùy chỉnh</system:String>
<system:String x:Key="customeQueryShortcutTips">Nhập một phím tắt tự động mở rộng theo truy vấn đã chỉ định.</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">
Một phím tắt được mở rộng khi nó khớp chính xác với truy vấn.
Nếu bạn thêm tiền tố '@' trong khi nhập phím tắt, phím tắt đó sẽ khớp với bất kỳ vị trí nào trong truy vấn. Các phím tắt dựng sẵn khớp với bất kỳ vị trí nào trong truy vấn.
</system:String>
<system:String x:Key="duplicateShortcut">Phím tắt đã tồn tại, vui lòng nhập Phím tắt mới hoặc chỉnh sửa phím tắt hiện có.</system:String>
<system:String x:Key="emptyShortcut">Phím tắt và/hoặc phần mở rộng của nó trống.</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">Lưu</system:String>
<system:String x:Key="commonOverwrite">Ghi đè lên</system:String>
<system:String x:Key="commonCancel">Hủy</system:String>
<system:String x:Key="commonReset">Đặt lại</system:String>
<system:String x:Key="commonDelete">Xóa</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">Phiên bản</system:String>
<system:String x:Key="reportWindow_time">Thời gian</system:String>
<system:String x:Key="reportWindow_reproduce">Vui lòng cho chúng tôi biết ứng dụng bị lỗi như thế nào để chúng tôi có thể khắc phục</system:String>
<system:String x:Key="reportWindow_send_report">Gửi báo cáo</system:String>
<system:String x:Key="reportWindow_cancel">Huỷ bỏ</system:String>
<system:String x:Key="reportWindow_general">Chung</system:String>
<system:String x:Key="reportWindow_exceptions">Ngoại lệ</system:String>
<system:String x:Key="reportWindow_exception_type">Loại ngoại lệ</system:String>
<system:String x:Key="reportWindow_source">Nguồn</system:String>
<system:String x:Key="reportWindow_stack_trace">Ngăn xếp dấu vết</system:String>
<system:String x:Key="reportWindow_sending">Gửi</system:String>
<system:String x:Key="reportWindow_report_succeed">Đã gửi báo cáo thành công</system:String>
<system:String x:Key="reportWindow_report_failed">Báo cáo lỗi</system:String>
<system:String x:Key="reportWindow_flowlauncher_got_an_error">Trình khởi chạy luồng có lỗi</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Cảnh báo nhỏ...</system:String>
<!-- Update -->
<system:String x:Key="update_flowlauncher_update_check">Kiểm tra cập nhật mới</system:String>
<system:String x:Key="update_flowlauncher_already_on_latest">Bạn đã có phiên bản mới nhất</system:String>
<system:String x:Key="update_flowlauncher_update_found">Tìm thấy cập nhật</system:String>
<system:String x:Key="update_flowlauncher_updating">Đang cập nhật...</system:String>
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
Flow Launcher không thể di chuyển dữ liệu hồ sơ của bạn sang phiên bản cập nhật mới.
Vui lòng di chuyển thủ công thư mục dữ liệu hồ sơ của bạn từ {0} sang {1}
</system:String>
<system:String x:Key="update_flowlauncher_new_update">Cập nhật mới</system:String>
<system:String x:Key="update_flowlauncher_update_new_version_available">Đã có sẵn V{0} của Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_error">Đã xảy ra lỗi khi cố cài đặt bản cập nhật phần mềm</system:String>
<system:String x:Key="update_flowlauncher_update">Cập nhật</system:String>
<system:String x:Key="update_flowlauncher_update_cancel">Viết tắt</system:String>
<system:String x:Key="update_flowlauncher_fail">Cập nhật không thành công</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Kiểm tra kết nối Internet của bạn và cập nhật cài đặt proxy để truy cập github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Bản cập nhật này sẽ khởi động lại Flow Launcher</system:String>
<system:String x:Key="update_flowlauncher_update_update_files">Các tệp sau sẽ được cập nhật</system:String>
<system:String x:Key="update_flowlauncher_update_files">Cập nhật tệp</system:String>
<system:String x:Key="update_flowlauncher_update_update_description">Thông tin mô tả</system:String>
<!-- Welcome Window -->
<system:String x:Key="Skip">Bỏ Qua</system:String>
<system:String x:Key="Welcome_Page1_Title">Chào mừng bạn đến với Trình khởi chạy luồng</system:String>
<system:String x:Key="Welcome_Page1_Text01">Xin chào, đây là lần đầu tiên bạn sử dụng Flow Launcher!</system:String>
<system:String x:Key="Welcome_Page1_Text02">Trước khi bạn bắt đầu, trình hướng dẫn này sẽ giúp thiết lập Flow Launcher. Bạn có thể bỏ qua điều này nếu bạn muốn. Vui lòng chọn ngôn ngữ</system:String>
<system:String x:Key="Welcome_Page2_Title">Tìm kiếm và khởi chạy tất cả các tệp và ứng dụng trên PC của bạn</system:String>
<system:String x:Key="Welcome_Page2_Text01">Tìm kiếm mọi thứ từ ứng dụng, tệp, dấu trang, YouTube, Twitter và hơn thế nữa. Tất cả đều từ bàn phím thoải mái mà không cần chạm vào chuột.</system:String>
<system:String x:Key="Welcome_Page2_Text02">Trình khởi chạy Flow bắt đầu bằng phím nóng bên dưới, hãy tiếp tục và dùng thử ngay bây giờ. Để thay đổi nó, hãy nhấp vào đầu vào và nhấn phím nóng mong muốn trên bàn phím.</system:String>
<system:String x:Key="Welcome_Page3_Title">Phím tắt</system:String>
<system:String x:Key="Welcome_Page4_Title">Từ khóa và lệnh hành động</system:String>
<system:String x:Key="Welcome_Page4_Text01">Tìm kiếm trên web, khởi chạy ứng dụng hoặc chạy các chức năng khác nhau thông qua plugin Flow Launcher. Một số chức năng nhất định bắt đầu bằng từ khóa hành động và nếu cần, chúng có thể được sử dụng mà không cần từ khóa hành động. Hãy thử các truy vấn bên dưới trong Flow Launcher.</system:String>
<system:String x:Key="Welcome_Page5_Title">Bắt đầu Flow-Launcher</system:String>
<system:String x:Key="Welcome_Page5_Text01">Xong. Thưởng thức Flow Launcher. Đừng quên phím tắt để khởi động Flow Launcher :)</system:String>
<!-- General Guide & Hotkey -->
<system:String x:Key="HotkeyUpDownDesc">Menu Quay lại / Ngữ cảnh</system:String>
<system:String x:Key="HotkeyLeftRightDesc">Mục Điều hướng</system:String>
<system:String x:Key="HotkeyShiftEnterDesc">Mở menu ngữ cảnh</system:String>
<system:String x:Key="HotkeyCtrlEnterDesc">Mở thư mục chứa</system:String>
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Chạy với tư cách quản trị viên / mở thư mục trong trình quản lý tệp tiêu chuẩn</system:String>
<system:String x:Key="HotkeyCtrlHDesc">Lịch sử tìm kiếm</system:String>
<system:String x:Key="HotkeyESCDesc">Quay lại kết quả trong menu ngữ cảnh</system:String>
<system:String x:Key="HotkeyTabDesc">Tự động hoàn thành</system:String>
<system:String x:Key="HotkeyRunDesc">Mở/chạy mục đã chọn</system:String>
<system:String x:Key="HotkeyCtrlIDesc">Mở cửa sổ cài đặt</system:String>
<system:String x:Key="HotkeyF5Desc">Dữ liệu plugin không tải</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">Thời Tiết</system:String>
<system:String x:Key="RecommendWeatherDesc">Thời tiết từ kết quả của Google</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>
<system:String x:Key="RecommendShellDesc">Lệnh Shell</system:String>
<system:String x:Key="RecommendBluetooth"> Bluetooth</system:String>
<system:String x:Key="RecommendBluetoothDesc">Cài đặt Bluetooth </system:String>
<system:String x:Key="RecommendAcronyms">sn</system:String>
<system:String x:Key="RecommendAcronymsDesc">Ghi chú </system:String>
</ResourceDictionary>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">深色</system:String>
<system:String x:Key="SoundEffect">音效</system:String>
<system:String x:Key="SoundEffectTip">启用激活音效</system:String>
<system:String x:Key="SoundEffectVolume">音效音量</system:String>
<system:String x:Key="SoundEffectVolumeTip">调整音效音量</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">动画</system:String>
<system:String x:Key="AnimationTip">启用动画</system:String>
<system:String x:Key="AnimationSpeed">动画速度</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">热键</system:String>
<system:String x:Key="hotkeys">热键</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher 激活热键</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">输入显示/隐藏 Flow Launcher 的快捷键。</system:String>
<system:String x:Key="previewHotkey">预览快捷键</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">输入在搜索窗口中开启/关闭预览的快捷键。</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">打开结果快捷键修饰符</system:String>
<system:String x:Key="openResultModifiersToolTip">选择一个用以打开搜索结果的按键修饰符。</system:String>
<system:String x:Key="showOpenResultHotkey">显示热键</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">显示用于打开结果的快捷键。</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">打开菜单目录</system:String>
<system:String x:Key="SettingWindowHotkey">打开设置窗口</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">切换游戏模式</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">打开所在目录</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">自定义查询热键</system:String>
<system:String x:Key="customQueryShortcut">自定义查询捷径</system:String>
<system:String x:Key="builtinShortcuts">内置捷径</system:String>
@ -186,6 +212,7 @@
<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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">请选择一项</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">你确定要删除插件 {0} 的热键吗?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">你确定要删除捷径 {0} (展开为 {1}</system:String>
@ -284,19 +311,28 @@
<system:String x:Key="hotkeyIsNotUnavailable">热键不可用,请选择一个新的热键</system:String>
<system:String x:Key="invalidPluginHotkey">插件热键不合法</system:String>
<system:String x:Key="update">更新</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">自定义查询捷径</system:String>
<system:String x:Key="customeQueryShortcutTips">输入一个捷径,它将自动展开为一个查询。</system:String>
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">A shortcut is expanded when it exactly matches the query.
<system:String x:Key="customeQueryShortcutGuide" xml:space="preserve">捷径仅在完全匹配查询时展开。
If you add an '@' prefix while inputting a shortcut, it matches any position in the query. Builtin shortcuts match any position in a query.
如果您在输入捷径时添加一个“@”前缀,它将匹配查询中的任意位置。 内置捷径同样匹配查询中的任意位置。
</system:String>
<system:String x:Key="duplicateShortcut">捷径已存在,请输入一个新的或者编辑已有的。</system:String>
<system:String x:Key="emptyShortcut">捷径及其展开均不能为空。</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">热键不可用</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">保存</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">取消</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">删除</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">版本</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">打开设置窗口</system:String>
<system:String x:Key="HotkeyF5Desc">重新加载插件数据</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">天气</system:String>
<system:String x:Key="RecommendWeatherDesc">谷歌天气结果</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -154,6 +154,9 @@
<system:String x:Key="ColorSchemeDark">暗色系</system:String>
<system:String x:Key="SoundEffect">音效</system:String>
<system:String x:Key="SoundEffectTip">搜尋窗口打開時播放音效</system:String>
<system:String x:Key="SoundEffectVolume">Sound Effect Volume</system:String>
<system:String x:Key="SoundEffectVolumeTip">Adjust the volume of the sound effect</system:String>
<system:String x:Key="SoundEffectWarning">Windows Media Player is unavailable and is required for Flow's volume adjustment. Please check your installation if you need to adjust volume.</system:String>
<system:String x:Key="Animation">動畫</system:String>
<system:String x:Key="AnimationTip">使用介面動畫</system:String>
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
@ -168,14 +171,37 @@
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">快捷鍵</system:String>
<system:String x:Key="hotkeys">快捷鍵</system:String>
<system:String x:Key="flowlauncherHotkey">Flow Launcher 快捷鍵</system:String>
<system:String x:Key="flowlauncherHotkey">Open Flow Launcher</system:String>
<system:String x:Key="flowlauncherHotkeyToolTip">執行縮寫以顯示 / 隱藏 Flow Launcher。</system:String>
<system:String x:Key="previewHotkey">預覽快捷鍵</system:String>
<system:String x:Key="previewHotkey">Toggle Preview</system:String>
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
<system:String x:Key="hotkeyPresets">Hotkey Presets</system:String>
<system:String x:Key="hotkeyPresetsToolTip">List of currently registered hotkeys</system:String>
<system:String x:Key="openResultModifiers">開放結果修飾符</system:String>
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
<system:String x:Key="showOpenResultHotkey">顯示快捷鍵</system:String>
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
<system:String x:Key="autoCompleteHotkey">Auto Complete</system:String>
<system:String x:Key="autoCompleteHotkeyToolTip">Runs autocomplete for the selected items.</system:String>
<system:String x:Key="SelectNextItemHotkey">Select Next Item</system:String>
<system:String x:Key="SelectPrevItemHotkey">Select Previous Item</system:String>
<system:String x:Key="SelectNextPageHotkey">Next Page</system:String>
<system:String x:Key="SelectPrevPageHotkey">Previous Page</system:String>
<system:String x:Key="CycleHistoryUpHotkey">Cycle Previous Query</system:String>
<system:String x:Key="CycleHistoryDownHotkey">Cycle Next Query</system:String>
<system:String x:Key="OpenContextMenuHotkey">打開選單</system:String>
<system:String x:Key="SettingWindowHotkey">打開視窗設定</system:String>
<system:String x:Key="CopyFilePathHotkey">Copy File Path</system:String>
<system:String x:Key="ToggleGameModeHotkey">Toggle Game Mode</system:String>
<system:String x:Key="ToggleHistoryHotkey">Toggle History</system:String>
<system:String x:Key="OpenContainFolderHotkey">開啟檔案位置</system:String>
<system:String x:Key="RunAsAdminHotkey">Run As Admin</system:String>
<system:String x:Key="RequeryHotkey">Refresh Search Results</system:String>
<system:String x:Key="ReloadPluginHotkey">Reload Plugins Data</system:String>
<system:String x:Key="QuickWidthHotkey">Quick Adjust Window Width</system:String>
<system:String x:Key="QuickHeightHotkey">Quick Adjust Window Height</system:String>
<system:String x:Key="ReloadPluginHotkeyToolTip">Use when require plugins to reload and update their existing data.</system:String>
<system:String x:Key="AdditionalHotkeyToolTip">You can add one more hotkey for this function.</system:String>
<system:String x:Key="customQueryHotkey">自定義查詢快捷鍵</system:String>
<system:String x:Key="customQueryShortcut">自訂查詢縮寫</system:String>
<system:String x:Key="builtinShortcuts">內建縮寫</system:String>
@ -186,6 +212,7 @@
<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="none">None</system:String>
<system:String x:Key="pleaseSelectAnItem">請選擇一項</system:String>
<system:String x:Key="deleteCustomHotkeyWarning">確定要刪除插件 {0} 的快捷鍵嗎?</system:String>
<system:String x:Key="deleteCustomShortcutWarning">你確定你要刪除縮寫:{0} 展開為 {1}</system:String>
@ -284,6 +311,11 @@
<system:String x:Key="hotkeyIsNotUnavailable">快捷鍵不存在,請設定一個新的快捷鍵</system:String>
<system:String x:Key="invalidPluginHotkey">擴充功能熱鍵無法使用</system:String>
<system:String x:Key="update">更新</system:String>
<system:String x:Key="hotkeyRegTitle">Binding Hotkey</system:String>
<system:String x:Key="hotkeyUnavailable">Current hotkey is unavailable.</system:String>
<system:String x:Key="hotkeyUnavailableUneditable">This hotkey is reserved for &quot;{0}&quot; and can't be used. Please choose another hotkey.</system:String>
<system:String x:Key="hotkeyUnavailableEditable">This hotkey is already in use by &quot;{0}&quot;. If you press &quot;Overwrite&quot;, it will be removed from &quot;{0}&quot;.</system:String>
<system:String x:Key="hotkeyRegGuide">Press the keys you want to use for this function.</system:String>
<!-- Custom Query Shortcut Dialog -->
<system:String x:Key="customeQueryShortcutTitle">Custom Query Shortcut</system:String>
@ -295,8 +327,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="duplicateShortcut">Shortcut already exists, please enter a new Shortcut or edit the existing one.</system:String>
<system:String x:Key="emptyShortcut">Shortcut and/or its expansion is empty.</system:String>
<!-- Hotkey Control -->
<system:String x:Key="hotkeyUnavailable">快捷鍵無法使用</system:String>
<!-- Common Action -->
<system:String x:Key="commonSave">儲存</system:String>
<system:String x:Key="commonOverwrite">Overwrite</system:String>
<system:String x:Key="commonCancel">取消</system:String>
<system:String x:Key="commonReset">Reset</system:String>
<system:String x:Key="commonDelete">刪除</system:String>
<!-- Crash Reporter -->
<system:String x:Key="reportWindow_version">版本</system:String>
@ -366,6 +402,12 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="HotkeyCtrlIDesc">開啟視窗設定</system:String>
<system:String x:Key="HotkeyF5Desc">重新載入插件資料</system:String>
<system:String x:Key="HotkeySelectFirstResult">Select first result</system:String>
<system:String x:Key="HotkeySelectLastResult">Select last result</system:String>
<system:String x:Key="HotkeyRequery">Run current query again</system:String>
<system:String x:Key="HotkeyOpenResult">Open result</system:String>
<system:String x:Key="HotkeyOpenResultN">Open result #{0}</system:String>
<system:String x:Key="RecommendWeather">天氣</system:String>
<system:String x:Key="RecommendWeatherDesc">Google 搜尋的天氣結果</system:String>
<system:String x:Key="RecommendShell">&gt; ping 8.8.8.8</system:String>

View file

@ -7,12 +7,14 @@
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:ui="http://schemas.modernwpf.com/2019"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Name="FlowMainWindow"
Title="Flow Launcher"
MinWidth="{Binding MainWindowWidth, Mode=OneWay}"
MaxWidth="{Binding MainWindowWidth, Mode=OneWay}"
Width="{Binding MainWindowWidth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
MinWidth="400"
MinHeight="30"
d:DataContext="{d:DesignInstance Type=vm:MainViewModel}"
AllowDrop="True"
AllowsTransparency="True"
@ -21,19 +23,24 @@
Deactivated="OnDeactivated"
Icon="Images/app.png"
Initialized="OnInitialized"
Left="{Binding Settings.WindowLeft, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Loaded="OnLoaded"
LocationChanged="OnLocationChanged"
Opacity="{Binding MainWindowOpacity, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
PreviewKeyDown="OnKeyDown"
ResizeMode="NoResize"
PreviewKeyUp="OnKeyUp"
ResizeMode="CanResize"
ShowInTaskbar="False"
SizeToContent="Height"
Style="{DynamicResource WindowStyle}"
Topmost="True"
Visibility="{Binding MainWindowVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
WindowStartupLocation="Manual"
WindowStyle="None"
mc:Ignorable="d">
<!-- WindowChrome -->
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="9" ResizeBorderThickness="32 4 32 32" />
</WindowChrome.WindowChrome>
<Window.Resources>
<converters:QuerySuggestionBoxConverter x:Key="QuerySuggestionBoxConverter" />
<converters:BorderClipConverter x:Key="BorderClipConverter" />
@ -46,47 +53,14 @@
<Window.InputBindings>
<KeyBinding Key="Escape" Command="{Binding EscCommand}" />
<KeyBinding Key="F5" Command="{Binding ReloadPluginDataCommand}" />
<KeyBinding Key="Tab" Command="{Binding AutocompleteQueryCommand}" />
<KeyBinding
Key="Tab"
Command="{Binding AutocompleteQueryCommand}"
Modifiers="Shift" />
<KeyBinding
Key="I"
Command="{Binding OpenSettingCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="N"
Command="{Binding SelectNextItemCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="J"
Command="{Binding SelectNextItemCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="D"
Command="{Binding SelectNextPageCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="P"
Command="{Binding SelectPrevItemCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="K"
Command="{Binding SelectPrevItemCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="U"
Command="{Binding SelectPrevPageCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="Home"
Command="{Binding SelectFirstResultCommand}"
Modifiers="Alt" />
<KeyBinding
Key="O"
Command="{Binding LoadContextMenuCommand}"
Modifiers="Ctrl" />
Key="End"
Command="{Binding SelectLastResultCommand}"
Modifiers="Alt" />
<KeyBinding
Key="R"
Command="{Binding ReQueryCommand}"
@ -111,10 +85,6 @@
Key="OemMinus"
Command="{Binding DecreaseMaxResultCommand}"
Modifiers="Control" />
<KeyBinding
Key="H"
Command="{Binding LoadHistoryCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="Enter"
Command="{Binding OpenResultCommand}"
@ -186,316 +156,372 @@
Key="F12"
Command="{Binding ToggleGameModeCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="C"
Command="{Binding CopyAlternativeCommand}"
Modifiers="Ctrl+Shift" />
<KeyBinding
Key="{Binding PreviewHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding TogglePreviewCommand}"
Modifiers="{Binding PreviewHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding AutoCompleteHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding AutocompleteQueryCommand}"
Modifiers="{Binding AutoCompleteHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding AutoCompleteHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding AutocompleteQueryCommand}"
Modifiers="{Binding AutoCompleteHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectNextItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectNextItemCommand}"
Modifiers="{Binding SelectNextItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectPrevItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectPrevItemCommand}"
Modifiers="{Binding SelectPrevItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectNextItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectNextItemCommand}"
Modifiers="{Binding SelectNextItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectPrevItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectPrevItemCommand}"
Modifiers="{Binding SelectPrevItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding OpenSettingCommand}"
Modifiers="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding OpenContextMenuHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding LoadContextMenuCommand}"
Modifiers="{Binding OpenContextMenuHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectNextPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectNextPageCommand}"
Modifiers="{Binding SelectNextPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding SelectPrevPageCommand}"
Modifiers="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding ReverseHistoryCommand}"
Modifiers="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding ForwardHistoryCommand}"
Modifiers="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
</Window.InputBindings>
<Grid>
<Border MouseDown="OnMouseDown" Style="{DynamicResource WindowBorderStyle}">
<StackPanel Orientation="Vertical">
<Grid>
<Border Style="{DynamicResource QueryBoxBgStyle}">
<Grid>
<TextBox
x:Name="QueryTextSuggestionBox"
IsEnabled="False"
Style="{DynamicResource QuerySuggestionBoxStyle}">
<TextBox.Text>
<MultiBinding Converter="{StaticResource QuerySuggestionBoxConverter}">
<Binding ElementName="QueryTextBox" Mode="OneTime" />
<Binding ElementName="ResultListBox" Path="SelectedItem" />
<Binding ElementName="QueryTextBox" Path="Text" />
</MultiBinding>
</TextBox.Text>
</TextBox>
<TextBox
x:Name="QueryTextBox"
AllowDrop="True"
InputMethod.PreferredImeConversionMode="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEConversionModeConverter}}"
InputMethod.PreferredImeState="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEStateConverter}}"
PreviewDragOver="OnPreviewDragOver"
PreviewKeyUp="QueryTextBox_KeyUp"
Style="{DynamicResource QueryBoxStyle}"
Text="{Binding QueryText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="Visible">
<TextBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Copy" Executed="OnCopy" />
<CommandBinding Command="ApplicationCommands.Paste" Executed="OnPaste" />
</TextBox.CommandBindings>
<TextBox.ContextMenu>
<ContextMenu MinWidth="160">
<MenuItem Command="ApplicationCommands.Cut" Header="{DynamicResource cut}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe8c6;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Copy" Header="{DynamicResource copy}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe8c8;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Paste" Header="{DynamicResource paste}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe77f;" />
</MenuItem.Icon>
</MenuItem>
<Separator
Margin="0"
Padding="0,4,0,4"
Background="{DynamicResource ContextSeparator}" />
<MenuItem Click="OnContextMenusForSettingsClick" Header="{DynamicResource flowlauncher_settings}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe713;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding EscCommand}" Header="{DynamicResource closeWindow}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe711;" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
</Grid>
<Border MouseDown="OnMouseDown" Style="{DynamicResource WindowBorderStyle}">
<StackPanel Orientation="Vertical">
<Grid>
<Border MinHeight="30" Style="{DynamicResource QueryBoxBgStyle}">
<Grid>
<TextBox
x:Name="QueryTextSuggestionBox"
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="False"
Style="{DynamicResource QuerySuggestionBoxStyle}">
<TextBox.Text>
<MultiBinding Converter="{StaticResource QuerySuggestionBoxConverter}">
<Binding ElementName="QueryTextBox" Mode="OneTime" />
<Binding ElementName="ResultListBox" Path="SelectedItem" />
<Binding ElementName="QueryTextBox" Path="Text" />
</MultiBinding>
</TextBox.Text>
</TextBox>
<TextBox
x:Name="QueryTextBox"
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AllowDrop="True"
AutomationProperties.Name="{Binding Results.SelectedItem.Result.Title}"
FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
InputMethod.PreferredImeConversionMode="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEConversionModeConverter}}"
InputMethod.PreferredImeState="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEStateConverter}}"
PreviewDragOver="OnPreviewDragOver"
PreviewKeyUp="QueryTextBox_KeyUp"
Style="{DynamicResource QueryBoxStyle}"
Text="{Binding QueryText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="Visible"
WindowChrome.IsHitTestVisibleInChrome="True">
<TextBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Copy" Executed="OnCopy" />
</TextBox.CommandBindings>
<TextBox.ContextMenu>
<ContextMenu MinWidth="160">
<MenuItem Command="ApplicationCommands.Cut" Header="{DynamicResource cut}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe8c6;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Copy" Header="{DynamicResource copy}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe8c8;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Paste" Header="{DynamicResource paste}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe77f;" />
</MenuItem.Icon>
</MenuItem>
<Separator
Margin="0"
Padding="0 4 0 4"
Background="{DynamicResource ContextSeparator}" />
<MenuItem Click="OnContextMenusForSettingsClick" Header="{DynamicResource flowlauncher_settings}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe713;" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding EscCommand}" Header="{DynamicResource closeWindow}">
<MenuItem.Icon>
<ui:FontIcon Glyph="&#xe711;" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
</Grid>
</Border>
<StackPanel
x:Name="ClockPanel"
IsHitTestVisible="False"
Style="{DynamicResource ClockPanel}">
<TextBlock
x:Name="ClockBox"
Style="{DynamicResource ClockBox}"
Text="{Binding ClockText}"
Visibility="{Binding Settings.UseClock, Converter={StaticResource BoolToVisibilityConverter}}" />
<TextBlock
x:Name="DateBox"
Style="{DynamicResource DateBox}"
Text="{Binding DateText}"
Visibility="{Binding Settings.UseDate, Converter={StaticResource BoolToVisibilityConverter}}" />
</StackPanel>
<Border>
<Grid WindowChrome.IsHitTestVisibleInChrome="True">
<Image
x:Name="PluginActivationIcon"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Panel.ZIndex="2"
RenderOptions.BitmapScalingMode="HighQuality"
Source="{Binding PluginIconPath}"
Stretch="Uniform"
Style="{DynamicResource PluginActivationIcon}" />
<Canvas Style="{DynamicResource SearchIconPosition}">
<Path
Name="SearchIcon"
Margin="0"
Data="{DynamicResource SearchIconImg}"
Stretch="Fill"
Style="{DynamicResource SearchIconStyle}"
Visibility="{Binding SearchIconVisibility}" />
</Canvas>
</Grid>
</Border>
<Line
x:Name="ProgressBar"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
Height="2"
Margin="12 0 12 0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
StrokeThickness="2"
Style="{DynamicResource PendingLineStyle}"
Visibility="{Binding ProgressBarVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
X1="-100"
X2="0"
Y1="0"
Y2="0" />
</Grid>
<Grid ClipToBounds="True">
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=History, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
<Rectangle
Name="MiddleSeparator"
Width="Auto"
HorizontalAlignment="Stretch"
Style="{DynamicResource SeparatorStyle}" />
</ContentControl>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="0.85*" MinWidth="244" />
</Grid.ColumnDefinitions>
<StackPanel
x:Name="ResultArea"
Grid.Column="0"
Grid.ColumnSpan="{Binding ResultAreaColumn}">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="ResultListBox"
DataContext="{Binding Results}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
<StackPanel
x:Name="ClockPanel"
IsHitTestVisible="False"
Style="{DynamicResource ClockPanel}">
<TextBlock
x:Name="ClockBox"
Style="{DynamicResource ClockBox}"
Text="{Binding ClockText}"
Visibility="{Binding Settings.UseClock, Converter={StaticResource BoolToVisibilityConverter}}" />
<TextBlock
x:Name="DateBox"
Style="{DynamicResource DateBox}"
Text="{Binding DateText}"
Visibility="{Binding Settings.UseDate, Converter={StaticResource BoolToVisibilityConverter}}" />
</StackPanel>
<Border>
<Grid>
<Image
x:Name="PluginActivationIcon"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Panel.ZIndex="2"
RenderOptions.BitmapScalingMode="HighQuality"
Source="{Binding PluginIconPath}"
Stretch="Uniform"
Style="{DynamicResource PluginActivationIcon}" />
<Canvas Style="{DynamicResource SearchIconPosition}">
<Path
Name="SearchIcon"
Margin="0"
Data="{DynamicResource SearchIconImg}"
Stretch="Fill"
Style="{DynamicResource SearchIconStyle}"
Visibility="{Binding SearchIconVisibility}" />
</Canvas>
</Grid>
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="ContextMenu"
DataContext="{Binding ContextMenu}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
<Line
x:Name="ProgressBar"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
Height="2"
Margin="12,0,12,0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
StrokeThickness="2"
Style="{DynamicResource PendingLineStyle}"
Visibility="{Binding ProgressBarVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
X1="-100"
X2="0"
Y1="0"
Y2="0" />
</Grid>
<Grid ClipToBounds="True">
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=History, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
<Rectangle
Name="MiddleSeparator"
Width="Auto"
HorizontalAlignment="Stretch"
Style="{DynamicResource SeparatorStyle}" />
</ContentControl>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="0.85*" MinWidth="244" />
</Grid.ColumnDefinitions>
<StackPanel
x:Name="ResultArea"
Grid.Column="0"
Grid.ColumnSpan="{Binding ResultAreaColumn}">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="ResultListBox"
DataContext="{Binding Results}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="ContextMenu"
DataContext="{Binding ContextMenu}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="History"
DataContext="{Binding History}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
</StackPanel>
<GridSplitter
Grid.Column="1"
Width="{Binding PreviewVisible, Converter={StaticResource SplitterConverter}}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Background="Transparent"
ShowsPreview="True" />
<Grid
x:Name="Preview"
Grid.Column="2"
VerticalAlignment="Stretch"
Style="{DynamicResource PreviewArea}"
Visibility="{Binding PreviewVisible, Converter={StaticResource BoolToVisibilityConverter}}">
<Border
d:DataContext="{d:DesignInstance vm:ResultViewModel}"
DataContext="{Binding SelectedItem, ElementName=ResultListBox}"
Style="{DynamicResource PreviewBorderStyle}"
Visibility="{Binding ShowDefaultPreview}">
<Grid
Margin="20,0,10,0"
VerticalAlignment="Stretch"
Background="Transparent">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="History"
DataContext="{Binding History}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
</Border>
</StackPanel>
<GridSplitter
Grid.Column="1"
Width="{Binding PreviewVisible, Converter={StaticResource SplitterConverter}}"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Background="Transparent"
ShowsPreview="True" />
<Grid
x:Name="Preview"
Grid.Column="2"
VerticalAlignment="Stretch"
Style="{DynamicResource PreviewArea}"
Visibility="{Binding PreviewVisible, Converter={StaticResource BoolToVisibilityConverter}}">
<Border
d:DataContext="{d:DesignInstance vm:ResultViewModel}"
DataContext="{Binding SelectedItem, ElementName=ResultListBox}"
Style="{DynamicResource PreviewBorderStyle}"
Visibility="{Binding ShowDefaultPreview}">
<Grid
Margin="20 0 10 0"
VerticalAlignment="Stretch"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
x:Name="PreviewGlyphIcon"
Grid.Row="0"
Height="Auto"
Margin="0,16,0,0"
FontFamily="{Binding Glyph.FontFamily}"
Style="{DynamicResource PreviewGlyph}"
Text="{Binding Glyph.Glyph}"
Visibility="{Binding ShowGlyph}" />
<Image
x:Name="PreviewImageIcon"
Grid.Row="0"
MaxHeight="320"
Margin="0,16,0,0"
HorizontalAlignment="Center"
Source="{Binding PreviewImage}"
StretchDirection="DownOnly"
Visibility="{Binding ShowPreviewImage}">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="MaxWidth" Value="96" />
<Style.Triggers>
<DataTrigger Binding="{Binding UseBigThumbnail}" Value="True">
<Setter Property="MaxWidth" Value="{Binding ElementName=Preview, Path=ActualWidth}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<TextBlock
x:Name="PreviewTitle"
Grid.Row="1"
Margin="0,6,0,16"
HorizontalAlignment="Stretch"
Style="{DynamicResource PreviewItemTitleStyle}"
Text="{Binding Result.Title}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<StackPanel Grid.Row="1">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<TextBlock
x:Name="PreviewGlyphIcon"
Grid.Row="0"
Height="Auto"
Margin="0 16 0 0"
FontFamily="{Binding Glyph.FontFamily}"
Style="{DynamicResource PreviewGlyph}"
Text="{Binding Glyph.Glyph}"
Visibility="{Binding ShowGlyph}" />
<Image
x:Name="PreviewImageIcon"
Grid.Row="0"
MaxHeight="320"
Margin="0 16 0 0"
HorizontalAlignment="Center"
Source="{Binding PreviewImage}"
StretchDirection="DownOnly"
Visibility="{Binding ShowPreviewImage}">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="MaxWidth" Value="96" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PreviewSubTitle, UpdateSourceTrigger=PropertyChanged, Path=Text.Length}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
<DataTrigger Binding="{Binding UseBigThumbnail}" Value="True">
<Setter Property="MaxWidth" Value="{Binding ElementName=Preview, Path=ActualWidth}" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<Separator Style="{DynamicResource PreviewSep}" />
<TextBlock
x:Name="PreviewSubTitle"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding Result.SubTitle}" />
</StackPanel>
</Image.Style>
</Image>
<TextBlock
x:Name="PreviewTitle"
Grid.Row="1"
Margin="0 6 0 16"
HorizontalAlignment="Stretch"
Style="{DynamicResource PreviewItemTitleStyle}"
Text="{Binding Result.Title}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
</Border>
<Border
d:DataContext="{d:DesignInstance vm:ResultViewModel}"
DataContext="{Binding SelectedItem, ElementName=ResultListBox}"
Style="{DynamicResource PreviewBorderStyle}"
Visibility="{Binding ShowCustomizedPreview}">
<ContentControl Content="{Binding Result.PreviewPanel.Value}" />
</Border>
</Grid>
<StackPanel Grid.Row="1">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PreviewSubTitle, UpdateSourceTrigger=PropertyChanged, Path=Text.Length}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<Separator Style="{DynamicResource PreviewSep}" />
<TextBlock
x:Name="PreviewSubTitle"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding Result.SubTitle}" />
</StackPanel>
</Grid>
</Border>
<Border
d:DataContext="{d:DesignInstance vm:ResultViewModel}"
DataContext="{Binding SelectedItem, ElementName=ResultListBox}"
Style="{DynamicResource PreviewBorderStyle}"
Visibility="{Binding ShowCustomizedPreview}">
<ContentControl Content="{Binding Result.PreviewPanel.Value}" />
</Border>
</Grid>
</StackPanel>
</Border>
</Grid>
</Window>
</Grid>
</StackPanel>
</Border>
</Window>

View file

@ -12,7 +12,6 @@ using Flow.Launcher.Helper;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.ViewModel;
using Screen = System.Windows.Forms.Screen;
using ContextMenuStrip = System.Windows.Forms.ContextMenuStrip;
using DragEventArgs = System.Windows.DragEventArgs;
using KeyEventArgs = System.Windows.Input.KeyEventArgs;
using NotifyIcon = System.Windows.Forms.NotifyIcon;
@ -24,7 +23,10 @@ using System.Windows.Data;
using ModernWpf.Controls;
using Key = System.Windows.Input.Key;
using System.Media;
using static Flow.Launcher.ViewModel.SettingWindowViewModel;
using DataObject = System.Windows.DataObject;
using System.Windows.Media;
using System.Windows.Interop;
using System.Runtime.InteropServices;
namespace Flow.Launcher
{
@ -32,14 +34,20 @@ namespace Flow.Launcher
{
#region Private Fields
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern IntPtr SetForegroundWindow(IntPtr hwnd);
private readonly Storyboard _progressBarStoryboard = new Storyboard();
private bool isProgressBarStoryboardPaused;
private Settings _settings;
private NotifyIcon _notifyIcon;
private ContextMenu contextMenu;
private ContextMenu contextMenu = new ContextMenu();
private MainViewModel _viewModel;
private bool _animating;
SoundPlayer animationSound = new SoundPlayer(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav");
private bool isArrowKeyPressed = false;
private MediaPlayer animationSoundWMP;
private SoundPlayer animationSoundWPF;
#endregion
@ -50,14 +58,73 @@ namespace Flow.Launcher
_settings = settings;
InitializeComponent();
InitializePosition();
InitializePosition();
InitSoundEffects();
DataObject.AddPastingHandler(QueryTextBox, OnPaste);
this.Loaded += (_, _) =>
{
var handle = new WindowInteropHelper(this).Handle;
var win = HwndSource.FromHwnd(handle);
win.AddHook(WndProc);
};
}
DispatcherTimer timer = new DispatcherTimer
{
Interval = new TimeSpan(0, 0, 0, 0, 500),
IsEnabled = false
};
public MainWindow()
{
InitializeComponent();
}
private const int WM_ENTERSIZEMOVE = 0x0231;
private const int WM_EXITSIZEMOVE = 0x0232;
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == WM_ENTERSIZEMOVE)
{
handled = true;
}
if (msg == WM_EXITSIZEMOVE)
{
OnResizeEnd();
handled = true;
}
return IntPtr.Zero;
}
private void OnResizeEnd()
{
int shadowMargin = 0;
if (_settings.UseDropShadowEffect)
{
shadowMargin = 32;
}
if (!_settings.KeepMaxResults)
{
var itemCount = (Height - (_settings.WindowHeightSize + 14) - shadowMargin) / _settings.ItemHeightSize;
if (itemCount < 2)
{
_settings.MaxResultsToShow = 2;
}
else
{
_settings.MaxResultsToShow = Convert.ToInt32(Math.Truncate(itemCount));
}
}
_viewModel.MainWindowWidth = Width;
FlowMainWindow.SizeToContent = SizeToContent.Height;
}
private void OnCopy(object sender, ExecutedRoutedEventArgs e)
{
var result = _viewModel.Results.SelectedItem?.Result;
@ -72,15 +139,19 @@ namespace Flow.Launcher
}
}
private void OnPaste(object sender, ExecutedRoutedEventArgs e)
private void OnPaste(object sender, DataObjectPastingEventArgs e)
{
if (System.Windows.Clipboard.ContainsText())
var isText = e.SourceDataObject.GetDataPresent(System.Windows.DataFormats.UnicodeText, true);
if (isText)
{
_viewModel.ChangeQueryText(System.Windows.Clipboard.GetText().Replace("\n", String.Empty).Replace("\r", String.Empty));
e.Handled = true;
var text = e.SourceDataObject.GetData(System.Windows.DataFormats.UnicodeText) as string;
text = text.Replace(Environment.NewLine, " ");
DataObject data = new DataObject();
data.SetData(System.Windows.DataFormats.UnicodeText, text);
e.DataObject = data;
}
}
private async void OnClosing(object sender, CancelEventArgs e)
{
_notifyIcon.Visible = false;
@ -94,9 +165,11 @@ namespace Flow.Launcher
private void OnInitialized(object sender, EventArgs e)
{
}
private void OnLoaded(object sender, RoutedEventArgs _)
{
// MouseEventHandler
PreviewMouseMove += MainPreviewMouseMove;
CheckFirstLaunch();
HideStartup();
// show notify icon when flowlauncher is hidden
@ -122,7 +195,7 @@ namespace Flow.Launcher
{
if (_settings.UseSound)
{
animationSound.Play();
SoundPlay();
}
UpdatePosition();
PreviewReset();
@ -258,12 +331,11 @@ namespace Flow.Launcher
{
_notifyIcon = new NotifyIcon
{
Text = Infrastructure.Constant.FlowLauncher,
Text = Infrastructure.Constant.FlowLauncherFullName,
Icon = Properties.Resources.app,
Visible = !_settings.HideNotifyIcon
};
contextMenu = new ContextMenu();
var openIcon = new FontIcon
{
@ -271,7 +343,8 @@ namespace Flow.Launcher
};
var open = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("iconTrayOpen") + " (" + _settings.Hotkey + ")", Icon = openIcon
Header = InternationalizationManager.Instance.GetTranslation("iconTrayOpen") + " (" + _settings.Hotkey + ")",
Icon = openIcon
};
var gamemodeIcon = new FontIcon
{
@ -279,7 +352,8 @@ namespace Flow.Launcher
};
var gamemode = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("GameMode"), Icon = gamemodeIcon
Header = InternationalizationManager.Instance.GetTranslation("GameMode"),
Icon = gamemodeIcon
};
var positionresetIcon = new FontIcon
{
@ -287,7 +361,8 @@ namespace Flow.Launcher
};
var positionreset = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("PositionReset"), Icon = positionresetIcon
Header = InternationalizationManager.Instance.GetTranslation("PositionReset"),
Icon = positionresetIcon
};
var settingsIcon = new FontIcon
{
@ -295,7 +370,8 @@ namespace Flow.Launcher
};
var settings = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings"), Icon = settingsIcon
Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings"),
Icon = settingsIcon
};
var exitIcon = new FontIcon
{
@ -303,7 +379,8 @@ namespace Flow.Launcher
};
var exit = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit"), Icon = exitIcon
Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit"),
Icon = exitIcon
};
open.Click += (o, e) => _viewModel.ToggleFlowLauncher();
@ -321,7 +398,6 @@ namespace Flow.Launcher
contextMenu.Items.Add(settings);
contextMenu.Items.Add(exit);
_notifyIcon.ContextMenuStrip = new ContextMenuStrip(); // it need for close the context menu. if not, context menu can't close.
_notifyIcon.MouseClick += (o, e) =>
{
switch (e.Button)
@ -329,9 +405,15 @@ namespace Flow.Launcher
case MouseButtons.Left:
_viewModel.ToggleFlowLauncher();
break;
case MouseButtons.Right:
contextMenu.IsOpen = true;
// Get context menu handle and bring it to the foreground
if (PresentationSource.FromVisual(contextMenu) is HwndSource hwndSource)
{
_ = SetForegroundWindow(hwndSource.Handle);
}
contextMenu.Focus();
break;
}
};
@ -380,6 +462,7 @@ namespace Flow.Launcher
if (_animating)
return;
isArrowKeyPressed = true;
_animating = true;
UpdatePosition();
@ -468,6 +551,7 @@ namespace Flow.Launcher
windowsb.Completed += (_, _) => _animating = false;
_settings.WindowLeft = Left;
_settings.WindowTop = Top;
isArrowKeyPressed = false;
if (QueryTextBox.Text.Length == 0)
{
@ -477,6 +561,33 @@ namespace Flow.Launcher
windowsb.Begin(FlowMainWindow);
}
private void InitSoundEffects()
{
if (_settings.WMPInstalled)
{
animationSoundWMP = new MediaPlayer();
animationSoundWMP.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav"));
}
else
{
animationSoundWPF = new SoundPlayer(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav");
}
}
private void SoundPlay()
{
if (_settings.WMPInstalled)
{
animationSoundWMP.Position = TimeSpan.Zero;
animationSoundWMP.Volume = _settings.SoundVolume / 100.0;
animationSoundWMP.Play();
}
else
{
animationSoundWPF.Play();
}
}
private void OnMouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left) DragMove();
@ -501,11 +612,11 @@ namespace Flow.Launcher
{
_settings.WindowLeft = Left;
_settings.WindowTop = Top;
//This condition stops extra hide call when animator is on,
//This condition stops extra hide call when animator is on,
// which causes the toggling to occasional hide instead of show.
if (_viewModel.MainWindowVisibilityStatus)
{
// Need time to initialize the main query window animation.
// Need time to initialize the main query window animation.
// This also stops the mainwindow from flickering occasionally after Settings window is opened
// and always after Settings window is closed.
if (_settings.UseAnimation)
@ -576,7 +687,7 @@ namespace Flow.Launcher
}
return screen ?? Screen.AllScreens[0];
}
public double HorizonCenter(Screen screen)
{
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
@ -618,10 +729,12 @@ namespace Flow.Launcher
switch (e.Key)
{
case Key.Down:
isArrowKeyPressed = true;
_viewModel.SelectNextItemCommand.Execute(null);
e.Handled = true;
break;
case Key.Up:
isArrowKeyPressed = true;
_viewModel.SelectPrevItemCommand.Execute(null);
e.Handled = true;
break;
@ -672,7 +785,21 @@ namespace Flow.Launcher
}
}
private void OnKeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up || e.Key == Key.Down)
{
isArrowKeyPressed = false;
}
}
private void MainPreviewMouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
if (isArrowKeyPressed)
{
e.Handled = true; // Ignore Mouse Hover when press Arrowkeys
}
}
public void PreviewReset()
{
_viewModel.ResetPreview();

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -1,127 +0,0 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.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>
<data name="gamemode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gamemode.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Some files were not shown because too many files have changed in this diff Show more