mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Merge remote-tracking branch 'origin/dev' into explorerMerge
# Conflicts: # Flow.Launcher.Test/Plugins/ExplorerTest.cs # Plugins/Flow.Launcher.Plugin.Explorer/Search/SearchManager.cs
This commit is contained in:
commit
193ea552dd
171 changed files with 34803 additions and 2095 deletions
146
.editorconfig
Normal file
146
.editorconfig
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# To learn more about .editorconfig see https://aka.ms/editorconfigdocs
|
||||
###############################
|
||||
# Core EditorConfig Options #
|
||||
###############################
|
||||
# All files
|
||||
[*]
|
||||
indent_style = space
|
||||
|
||||
# XML project files
|
||||
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
|
||||
indent_size = 2
|
||||
|
||||
# XML config files
|
||||
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
|
||||
indent_size = 2
|
||||
|
||||
# Code files
|
||||
[*.{cs,csx,vb,vbx}]
|
||||
indent_size = 4
|
||||
insert_final_newline = true
|
||||
charset = utf-8-bom
|
||||
###############################
|
||||
# .NET Coding Conventions #
|
||||
###############################
|
||||
[*.{cs,vb}]
|
||||
# Organize usings
|
||||
dotnet_sort_system_directives_first = true
|
||||
# this. preferences
|
||||
dotnet_style_qualification_for_field = false:silent
|
||||
dotnet_style_qualification_for_property = false:silent
|
||||
dotnet_style_qualification_for_method = false:silent
|
||||
dotnet_style_qualification_for_event = false:silent
|
||||
# Language keywords vs BCL types preferences
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
||||
dotnet_style_predefined_type_for_member_access = true:silent
|
||||
# Parentheses preferences
|
||||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
||||
# Modifier preferences
|
||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
||||
dotnet_style_readonly_field = true:suggestion
|
||||
# Expression-level preferences
|
||||
dotnet_style_object_initializer = true:suggestion
|
||||
dotnet_style_collection_initializer = true:suggestion
|
||||
dotnet_style_explicit_tuple_names = true:suggestion
|
||||
dotnet_style_null_propagation = true:suggestion
|
||||
dotnet_style_coalesce_expression = true:suggestion
|
||||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
|
||||
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
||||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
||||
dotnet_style_prefer_auto_properties = true:silent
|
||||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
||||
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
||||
###############################
|
||||
# Naming Conventions #
|
||||
###############################
|
||||
# Style Definitions
|
||||
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
|
||||
# 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
|
||||
dotnet_naming_symbols.constant_fields.applicable_kinds = field
|
||||
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
|
||||
dotnet_naming_symbols.constant_fields.required_modifiers = const
|
||||
dotnet_style_operator_placement_when_wrapping = beginning_of_line
|
||||
tab_width = 2
|
||||
end_of_line = crlf
|
||||
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
|
||||
dotnet_style_prefer_compound_assignment = true:suggestion
|
||||
dotnet_diagnostic.CA1416.severity = silent
|
||||
###############################
|
||||
# C# Coding Conventions #
|
||||
###############################
|
||||
[*.cs]
|
||||
dotnet_diagnostics.VSTHRD200.severity = none # VSTHRD200: Use "Async" suffix for async methods
|
||||
dotnet_analyzer_diagnostic.VSTHRD200.severity = none # VSTHRD200: Use "Async" suffix for async methods
|
||||
# var preferences
|
||||
csharp_style_var_for_built_in_types = true:silent
|
||||
csharp_style_var_when_type_is_apparent = true:silent
|
||||
csharp_style_var_elsewhere = true:silent
|
||||
# Expression-bodied members
|
||||
csharp_style_expression_bodied_methods = false:silent
|
||||
csharp_style_expression_bodied_constructors = false:silent
|
||||
csharp_style_expression_bodied_operators = false:silent
|
||||
csharp_style_expression_bodied_properties = true:silent
|
||||
csharp_style_expression_bodied_indexers = true:silent
|
||||
csharp_style_expression_bodied_accessors = true:silent
|
||||
# Pattern matching preferences
|
||||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
||||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
||||
# Null-checking preferences
|
||||
csharp_style_throw_expression = true:suggestion
|
||||
csharp_style_conditional_delegate_call = true:suggestion
|
||||
# Modifier preferences
|
||||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
|
||||
# Expression-level preferences
|
||||
csharp_prefer_braces = true:silent
|
||||
csharp_style_deconstructed_variable_declaration = true:suggestion
|
||||
csharp_prefer_simple_default_expression = true:suggestion
|
||||
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
||||
csharp_style_inlined_variable_declaration = true:suggestion
|
||||
###############################
|
||||
# C# Formatting Rules #
|
||||
###############################
|
||||
# New line preferences
|
||||
csharp_new_line_before_open_brace = all
|
||||
csharp_new_line_before_else = true
|
||||
csharp_new_line_before_catch = true
|
||||
csharp_new_line_before_finally = true
|
||||
csharp_new_line_before_members_in_object_initializers = true
|
||||
csharp_new_line_before_members_in_anonymous_types = true
|
||||
csharp_new_line_between_query_expression_clauses = true
|
||||
# Indentation preferences
|
||||
csharp_indent_case_contents = true
|
||||
csharp_indent_switch_labels = true
|
||||
csharp_indent_labels = flush_left
|
||||
# Space preferences
|
||||
csharp_space_after_cast = false
|
||||
csharp_space_after_keywords_in_control_flow_statements = true
|
||||
csharp_space_between_method_call_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
||||
csharp_space_between_parentheses = false
|
||||
csharp_space_before_colon_in_inheritance_clause = true
|
||||
csharp_space_after_colon_in_inheritance_clause = true
|
||||
csharp_space_around_binary_operators = before_and_after
|
||||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
||||
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
||||
# Wrapping preferences
|
||||
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_prefer_method_group_conversion = true:silent
|
||||
csharp_style_expression_bodied_lambdas = true:silent
|
||||
csharp_style_expression_bodied_local_functions = false:silent
|
||||
###############################
|
||||
# VB Coding Conventions #
|
||||
###############################
|
||||
[*.vb]
|
||||
# Modifier preferences
|
||||
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
|
||||
32
.github/ISSUE_TEMPLATE/bug-report.md
vendored
32
.github/ISSUE_TEMPLATE/bug-report.md
vendored
|
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
name: "\U0001F41E Bug report"
|
||||
about: Create a bug report to help us improve Flow Launcher
|
||||
title: "[Describe Your Bug]"
|
||||
labels: 'bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug/issue**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Your System**
|
||||
```
|
||||
Windows build number: (run "ver" at a command prompt)
|
||||
Flow Launcher version: (Settings => About)
|
||||
```
|
||||
**Flow Launcher Error Log**
|
||||
<!--
|
||||
The latest log file can be found here: %AppData%\FlowLauncher\Logs\<version>\<date>.txt
|
||||
or for portable mode: %LocalAppData%\FlowLauncher\<App-Version>\UserData\Logs\<version>\<date>.txt
|
||||
Drag and drop the log file below this comment.
|
||||
-->
|
||||
78
.github/ISSUE_TEMPLATE/bug-report.yaml
vendored
Normal file
78
.github/ISSUE_TEMPLATE/bug-report.yaml
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
name: "\U0001F41E Bug Report"
|
||||
description: Create a bug report to help us improve Flow Launcher
|
||||
title: "BUG: "
|
||||
labels: ["bug"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Thanks for taking the time to fill out this bug report!
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Checks
|
||||
options:
|
||||
- label: >
|
||||
I have checked that this issue has not already been reported.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Problem Description
|
||||
description: A clear and concise description of what the problem is.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: To Reproduce
|
||||
description: Steps to reproduce the behavior.
|
||||
value: >
|
||||
1. ...
|
||||
|
||||
2. ...
|
||||
|
||||
3. ...
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshots
|
||||
description: If applicable, add screenshots to help explain your problem.
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Flow Launcher Version
|
||||
description: Go to "Settings" => "About".
|
||||
value: v1.8.3
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Windows Build Number
|
||||
description: Run "ver" at CMD (command prompt).
|
||||
value: 10.0.19043.1288
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Error Log
|
||||
description: >
|
||||
Log file place:
|
||||
|
||||
- The latest version place: `%AppData%\FlowLauncher\Logs\<version>\<date>.txt`
|
||||
|
||||
- For portable mode: `%LocalAppData%\FlowLauncher\<App-Version>\UserData\Logs\<version>\<date>.txt`
|
||||
value: >
|
||||
<details>
|
||||
|
||||
|
||||
```shell
|
||||
|
||||
|
||||
Replace this line with the important log contents.
|
||||
|
||||
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<!-- # Or drag and drop the log file and delete the above detail part. -->
|
||||
11
.github/workflows/stale.yml
vendored
11
.github/workflows/stale.yml
vendored
|
|
@ -15,9 +15,12 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/stale@v4
|
||||
with:
|
||||
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
|
||||
days-before-stale: 30
|
||||
days-before-close: 5
|
||||
stale-issue-message: 'This issue is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
|
||||
days-before-stale: 45
|
||||
days-before-close: 7
|
||||
days-before-pr-close: -1
|
||||
exempt-all-milestones: true
|
||||
close-issue-message: 'This issue was closed because it has been stale for 5 days with no activity. If you feel this issue still needs attention please feel free to reopen.'
|
||||
close-issue-message: 'This issue was closed because it has been stale for 7 days with no activity. If you feel this issue still needs attention please feel free to reopen.'
|
||||
stale-pr-label: 'no-pr-activity'
|
||||
exempt-issue-labels: 'keep-fresh'
|
||||
exempt-pr-labels: 'keep-fresh,awaiting-approval,work-in-progress'
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using Microsoft.Win32;
|
||||
using Microsoft.Win32;
|
||||
using Squirrel;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
|
@ -127,7 +127,7 @@ namespace Flow.Launcher.Core.Configuration
|
|||
|
||||
using (var portabilityUpdater = NewUpdateManager())
|
||||
{
|
||||
portabilityUpdater.CreateUninstallerRegistryEntry();
|
||||
_ = portabilityUpdater.CreateUninstallerRegistryEntry();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
24
Flow.Launcher.Core/ExternalPlugins/FlowPluginException.cs
Normal file
24
Flow.Launcher.Core/ExternalPlugins/FlowPluginException.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
using Flow.Launcher.Plugin;
|
||||
using System;
|
||||
|
||||
namespace Flow.Launcher.Core.ExternalPlugins
|
||||
{
|
||||
public class FlowPluginException : Exception
|
||||
{
|
||||
public PluginMetadata Metadata { get; set; }
|
||||
|
||||
public FlowPluginException(PluginMetadata metadata, Exception e) : base(e.Message, e)
|
||||
{
|
||||
Metadata = metadata;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $@"{Metadata.Name} Exception:
|
||||
Websites: {Metadata.Website}
|
||||
Author: {Metadata.Author}
|
||||
Version: {Metadata.Version}
|
||||
{base.ToString()}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
<PackageReference Include="Droplex" Version="1.4.1" />
|
||||
<PackageReference Include="FSharp.Core" Version="5.0.2" />
|
||||
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="2.1.3" />
|
||||
<PackageReference Include="squirrel.windows" Version="1.5.2" />
|
||||
<PackageReference Include="squirrel.windows" Version="1.5.2" NoWarn="NU1701" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -93,4 +93,4 @@ namespace Flow.Launcher.Core.Plugin
|
|||
|
||||
public Dictionary<string, object> SettingsChange { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,13 @@ namespace Flow.Launcher.Core.Plugin
|
|||
private static readonly JsonSerializerOptions options = new()
|
||||
{
|
||||
PropertyNameCaseInsensitive = true,
|
||||
#pragma warning disable SYSLIB0020
|
||||
// IgnoreNullValues is obsolete, but the replacement JsonIgnoreCondition.WhenWritingNull still
|
||||
// deserializes null, instead of ignoring it and leaving the default (empty list). We can change the behaviour
|
||||
// to accept null and fallback to a default etc, or just keep IgnoreNullValues for now
|
||||
// see: https://github.com/dotnet/runtime/issues/39152
|
||||
IgnoreNullValues = true,
|
||||
#pragma warning restore SYSLIB0020 // Type or member is obsolete
|
||||
Converters =
|
||||
{
|
||||
new JsonObjectConverter()
|
||||
|
|
@ -82,7 +88,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
};
|
||||
private Dictionary<string, object> Settings { get; set; }
|
||||
|
||||
private Dictionary<string, FrameworkElement> _settingControls = new();
|
||||
private readonly Dictionary<string, FrameworkElement> _settingControls = new();
|
||||
|
||||
private async Task<List<Result>> DeserializedResultAsync(Stream output)
|
||||
{
|
||||
|
|
@ -115,7 +121,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
|
||||
foreach (var result in queryResponseModel.Result)
|
||||
{
|
||||
result.Action = c =>
|
||||
result.AsyncAction = async c =>
|
||||
{
|
||||
UpdateSettings(result.SettingsChange);
|
||||
|
||||
|
|
@ -133,15 +139,15 @@ namespace Flow.Launcher.Core.Plugin
|
|||
}
|
||||
else
|
||||
{
|
||||
var actionResponse = Request(result.JsonRPCAction);
|
||||
var actionResponse = await RequestAsync(result.JsonRPCAction);
|
||||
|
||||
if (string.IsNullOrEmpty(actionResponse))
|
||||
if (actionResponse.Length == 0)
|
||||
{
|
||||
return !result.JsonRPCAction.DontHideAfterAction;
|
||||
}
|
||||
|
||||
var jsonRpcRequestModel =
|
||||
JsonSerializer.Deserialize<JsonRPCRequestModel>(actionResponse, options);
|
||||
var jsonRpcRequestModel = await
|
||||
JsonSerializer.DeserializeAsync<JsonRPCRequestModel>(actionResponse, options);
|
||||
|
||||
if (jsonRpcRequestModel?.Method?.StartsWith("Flow.Launcher.") ?? false)
|
||||
{
|
||||
|
|
@ -166,19 +172,20 @@ namespace Flow.Launcher.Core.Plugin
|
|||
private void ExecuteFlowLauncherAPI(string method, object[] parameters)
|
||||
{
|
||||
var parametersTypeArray = parameters.Select(param => param.GetType()).ToArray();
|
||||
MethodInfo methodInfo = PluginManager.API.GetType().GetMethod(method, parametersTypeArray);
|
||||
if (methodInfo != null)
|
||||
var methodInfo = typeof(IPublicAPI).GetMethod(method, parametersTypeArray);
|
||||
if (methodInfo == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
methodInfo.Invoke(PluginManager.API, parameters);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
try
|
||||
{
|
||||
methodInfo.Invoke(PluginManager.API, parameters);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
#if (DEBUG)
|
||||
throw;
|
||||
throw;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -241,7 +248,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
protected async Task<Stream> ExecuteAsync(ProcessStartInfo startInfo, CancellationToken token = default)
|
||||
{
|
||||
Process process = null;
|
||||
bool disposed = false;
|
||||
using var exitTokenSource = new CancellationTokenSource();
|
||||
try
|
||||
{
|
||||
process = Process.Start(startInfo);
|
||||
|
|
@ -251,6 +258,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
return Stream.Null;
|
||||
}
|
||||
|
||||
|
||||
await using var source = process.StandardOutput.BaseStream;
|
||||
|
||||
var buffer = BufferManager.GetStream();
|
||||
|
|
@ -259,7 +267,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
{
|
||||
// ReSharper disable once AccessToModifiedClosure
|
||||
// Manually Check whether disposed
|
||||
if (!disposed && !process.HasExited)
|
||||
if (!exitTokenSource.IsCancellationRequested && !process.HasExited)
|
||||
process.Kill();
|
||||
});
|
||||
|
||||
|
|
@ -302,8 +310,8 @@ namespace Flow.Launcher.Core.Plugin
|
|||
}
|
||||
finally
|
||||
{
|
||||
exitTokenSource.Cancel();
|
||||
process?.Dispose();
|
||||
disposed = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -365,8 +373,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
var settingWindow = new UserControl();
|
||||
var mainPanel = new StackPanel
|
||||
{
|
||||
Margin = settingPanelMargin,
|
||||
Orientation = Orientation.Vertical
|
||||
Margin = settingPanelMargin, Orientation = Orientation.Vertical
|
||||
};
|
||||
settingWindow.Content = mainPanel;
|
||||
|
||||
|
|
@ -374,8 +381,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
{
|
||||
var panel = new StackPanel
|
||||
{
|
||||
Orientation = Orientation.Horizontal,
|
||||
Margin = settingControlMargin
|
||||
Orientation = Orientation.Horizontal, Margin = settingControlMargin
|
||||
};
|
||||
var name = new TextBlock()
|
||||
{
|
||||
|
|
@ -535,4 +541,4 @@ namespace Flow.Launcher.Core.Plugin
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using Flow.Launcher.Core.ExternalPlugins;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
|
@ -74,7 +75,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
}
|
||||
}
|
||||
|
||||
public static async Task ReloadData()
|
||||
public static async Task ReloadDataAsync()
|
||||
{
|
||||
await Task.WhenAll(AllPlugins.Select(plugin => plugin.Plugin switch
|
||||
{
|
||||
|
|
@ -109,7 +110,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
/// Call initialize for all plugins
|
||||
/// </summary>
|
||||
/// <returns>return the list of failed to init plugins or null for none</returns>
|
||||
public static async Task InitializePlugins(IPublicAPI api)
|
||||
public static async Task InitializePluginsAsync(IPublicAPI api)
|
||||
{
|
||||
API = api;
|
||||
var failedPlugins = new ConcurrentQueue<PluginPair>();
|
||||
|
|
@ -182,13 +183,11 @@ namespace Flow.Launcher.Core.Plugin
|
|||
public static async Task<List<Result>> QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token)
|
||||
{
|
||||
var results = new List<Result>();
|
||||
var metadata = pair.Metadata;
|
||||
|
||||
try
|
||||
{
|
||||
var metadata = pair.Metadata;
|
||||
|
||||
long milliseconds = -1L;
|
||||
|
||||
milliseconds = await Stopwatch.DebugAsync($"|PluginManager.QueryForPlugin|Cost for {metadata.Name}",
|
||||
var milliseconds = await Stopwatch.DebugAsync($"|PluginManager.QueryForPlugin|Cost for {metadata.Name}",
|
||||
async () => results = await pair.Plugin.QueryAsync(query, token).ConfigureAwait(false));
|
||||
|
||||
token.ThrowIfCancellationRequested();
|
||||
|
|
@ -206,7 +205,10 @@ namespace Flow.Launcher.Core.Plugin
|
|||
// null will be fine since the results will only be added into queue if the token hasn't been cancelled
|
||||
return null;
|
||||
}
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new FlowPluginException(metadata, e);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
|
|
@ -327,4 +329,4 @@ namespace Flow.Launcher.Core.Plugin
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
@ -11,7 +11,6 @@ using Flow.Launcher.Infrastructure.Logger;
|
|||
using Flow.Launcher.Infrastructure.UserSettings;
|
||||
using Flow.Launcher.Plugin;
|
||||
using Flow.Launcher.Plugin.SharedCommands;
|
||||
using System.Diagnostics;
|
||||
using Stopwatch = Flow.Launcher.Infrastructure.Stopwatch;
|
||||
|
||||
namespace Flow.Launcher.Core.Plugin
|
||||
|
|
@ -41,14 +40,6 @@ namespace Flow.Launcher.Core.Plugin
|
|||
var milliseconds = Stopwatch.Debug(
|
||||
$"|PluginsLoader.DotNetPlugins|Constructor init cost for {metadata.Name}", () =>
|
||||
{
|
||||
#if DEBUG
|
||||
var assemblyLoader = new PluginAssemblyLoader(metadata.ExecuteFilePath);
|
||||
var assembly = assemblyLoader.LoadAssemblyAndDependencies();
|
||||
var type = assemblyLoader.FromAssemblyGetTypeOfInterface(assembly,
|
||||
typeof(IAsyncPlugin));
|
||||
|
||||
var plugin = Activator.CreateInstance(type) as IAsyncPlugin;
|
||||
#else
|
||||
Assembly assembly = null;
|
||||
IAsyncPlugin plugin = null;
|
||||
|
||||
|
|
@ -62,6 +53,12 @@ namespace Flow.Launcher.Core.Plugin
|
|||
|
||||
plugin = Activator.CreateInstance(type) as IAsyncPlugin;
|
||||
}
|
||||
#if DEBUG
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
#else
|
||||
catch (Exception e) when (assembly == null)
|
||||
{
|
||||
Log.Exception($"|PluginsLoader.DotNetPlugins|Couldn't load assembly for the plugin: {metadata.Name}", e);
|
||||
|
|
@ -79,6 +76,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
Log.Exception($"|PluginsLoader.DotNetPlugins|The following plugin has errored and can not be loaded: <{metadata.Name}>", e);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (plugin == null)
|
||||
{
|
||||
erroredPlugins.Add(metadata.Name);
|
||||
|
|
@ -98,7 +96,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
+ (erroredPlugins.Count > 1 ? "plugins have " : "plugin has ")
|
||||
+ "errored and cannot be loaded:";
|
||||
|
||||
Task.Run(() =>
|
||||
_ = Task.Run(() =>
|
||||
{
|
||||
MessageBox.Show($"{errorMessage}{Environment.NewLine}{Environment.NewLine}" +
|
||||
$"{errorPluginString}{Environment.NewLine}{Environment.NewLine}" +
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Flow.Launcher.Core.Plugin
|
|||
return null;
|
||||
}
|
||||
|
||||
var rawQuery = string.Join(Query.TermSeparator, terms);
|
||||
var rawQuery = text;
|
||||
string actionKeyword, search;
|
||||
string possibleActionKeyword = terms[0];
|
||||
string[] searchTerms;
|
||||
|
|
@ -24,13 +24,13 @@ namespace Flow.Launcher.Core.Plugin
|
|||
if (nonGlobalPlugins.TryGetValue(possibleActionKeyword, out var pluginPair) && !pluginPair.Metadata.Disabled)
|
||||
{ // use non global plugin for query
|
||||
actionKeyword = possibleActionKeyword;
|
||||
search = terms.Length > 1 ? rawQuery[(actionKeyword.Length + 1)..] : string.Empty;
|
||||
search = terms.Length > 1 ? rawQuery[(actionKeyword.Length + 1)..].TrimStart() : string.Empty;
|
||||
searchTerms = terms[1..];
|
||||
}
|
||||
else
|
||||
{ // non action keyword
|
||||
actionKeyword = string.Empty;
|
||||
search = rawQuery;
|
||||
search = rawQuery.TrimStart();
|
||||
searchTerms = terms;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ namespace Flow.Launcher.Core.Resource
|
|||
Settings.Language = language.LanguageCode;
|
||||
CultureInfo.CurrentCulture = new CultureInfo(language.LanguageCode);
|
||||
CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture;
|
||||
Task.Run(() =>
|
||||
_ = Task.Run(() =>
|
||||
{
|
||||
UpdatePluginMetadataTranslations();
|
||||
});
|
||||
|
|
@ -182,6 +182,7 @@ namespace Flow.Launcher.Core.Resource
|
|||
{
|
||||
p.Metadata.Name = pluginI18N.GetTranslatedPluginTitle();
|
||||
p.Metadata.Description = pluginI18N.GetTranslatedPluginDescription();
|
||||
pluginI18N.OnCultureInfoChanged(CultureInfo.CurrentCulture);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
@ -85,10 +85,13 @@ namespace Flow.Launcher.Core.Resource
|
|||
|
||||
Settings.Theme = theme;
|
||||
|
||||
// reload all resources even if the theme itself hasn't changed in order to pickup changes
|
||||
// to things like fonts
|
||||
UpdateResourceDictionary(GetResourceDictionary());
|
||||
|
||||
//always allow re-loading default theme, in case of failure of switching to a new theme from default theme
|
||||
if (_oldTheme != theme || theme == defaultTheme)
|
||||
{
|
||||
UpdateResourceDictionary(GetResourceDictionary());
|
||||
_oldTheme = Path.GetFileNameWithoutExtension(_oldResource.Source.AbsolutePath);
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +102,7 @@ namespace Flow.Launcher.Core.Resource
|
|||
|
||||
SetBlurForWindow();
|
||||
}
|
||||
catch (DirectoryNotFoundException e)
|
||||
catch (DirectoryNotFoundException)
|
||||
{
|
||||
Log.Error($"|Theme.ChangeTheme|Theme <{theme}> path can't be found");
|
||||
if (theme != defaultTheme)
|
||||
|
|
@ -109,7 +112,7 @@ namespace Flow.Launcher.Core.Resource
|
|||
}
|
||||
return false;
|
||||
}
|
||||
catch (XamlParseException e)
|
||||
catch (XamlParseException)
|
||||
{
|
||||
Log.Error($"|Theme.ChangeTheme|Theme <{theme}> fail to parse");
|
||||
if (theme != defaultTheme)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
|
|
@ -40,7 +40,7 @@ namespace Flow.Launcher.Core
|
|||
api.ShowMsg(api.GetTranslation("pleaseWait"),
|
||||
api.GetTranslation("update_flowlauncher_update_check"));
|
||||
|
||||
using var updateManager = await GitHubUpdateManager(GitHubRepository).ConfigureAwait(false);
|
||||
using var updateManager = await GitHubUpdateManagerAsync(GitHubRepository).ConfigureAwait(false);
|
||||
|
||||
// UpdateApp CheckForUpdate will return value only if the app is squirrel installed
|
||||
var newUpdateInfo = await updateManager.CheckForUpdate().NonNull().ConfigureAwait(false);
|
||||
|
|
@ -115,7 +115,7 @@ namespace Flow.Launcher.Core
|
|||
}
|
||||
|
||||
/// https://github.com/Squirrel/Squirrel.Windows/blob/master/src/Squirrel/UpdateManager.Factory.cs
|
||||
private async Task<UpdateManager> GitHubUpdateManager(string repository)
|
||||
private async Task<UpdateManager> GitHubUpdateManagerAsync(string repository)
|
||||
{
|
||||
var uri = new Uri(repository);
|
||||
var api = $"https://api.github.com/repos{uri.AbsolutePath}/releases";
|
||||
|
|
@ -145,4 +145,4 @@ namespace Flow.Launcher.Core
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace Flow.Launcher.Infrastructure.Exception
|
|||
sb.AppendLine();
|
||||
sb.AppendLine("## Assemblies - " + AppDomain.CurrentDomain.FriendlyName);
|
||||
sb.AppendLine();
|
||||
foreach (var ass in AppDomain.CurrentDomain.GetAssemblies().OrderBy(o => o.GlobalAssemblyCache ? 50 : 0))
|
||||
foreach (var ass in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
sb.Append("* ");
|
||||
sb.Append(ass.FullName);
|
||||
|
|
@ -166,7 +166,7 @@ namespace Flow.Launcher.Infrastructure.Exception
|
|||
}
|
||||
return result;
|
||||
}
|
||||
catch (System.Exception e)
|
||||
catch
|
||||
{
|
||||
return new List<string>();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,30 +14,23 @@ namespace Flow.Launcher.Infrastructure.Image
|
|||
{
|
||||
public string GetHashFromImage(ImageSource imageSource)
|
||||
{
|
||||
if (!(imageSource is BitmapSource image))
|
||||
if (imageSource is not BitmapSource image)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
using (var outStream = new MemoryStream())
|
||||
{
|
||||
// PngBitmapEncoder enc2 = new PngBitmapEncoder();
|
||||
// enc2.Frames.Add(BitmapFrame.Create(tt));
|
||||
|
||||
var enc = new JpegBitmapEncoder();
|
||||
var bitmapFrame = BitmapFrame.Create(image);
|
||||
bitmapFrame.Freeze();
|
||||
enc.Frames.Add(bitmapFrame);
|
||||
enc.Save(outStream);
|
||||
var byteArray = outStream.GetBuffer();
|
||||
using (var sha1 = new SHA1CryptoServiceProvider())
|
||||
{
|
||||
var hash = Convert.ToBase64String(sha1.ComputeHash(byteArray));
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
using var outStream = new MemoryStream();
|
||||
var enc = new JpegBitmapEncoder();
|
||||
var bitmapFrame = BitmapFrame.Create(image);
|
||||
bitmapFrame.Freeze();
|
||||
enc.Frames.Add(bitmapFrame);
|
||||
enc.Save(outStream);
|
||||
var byteArray = outStream.GetBuffer();
|
||||
using var sha1 = SHA1.Create();
|
||||
var hash = Convert.ToBase64String(sha1.ComputeHash(byteArray));
|
||||
return hash;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
@ -46,4 +39,4 @@ namespace Flow.Launcher.Infrastructure.Image
|
|||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
|
@ -13,11 +13,11 @@ namespace Flow.Launcher.Infrastructure.Image
|
|||
{
|
||||
public static class ImageLoader
|
||||
{
|
||||
private static readonly ImageCache ImageCache = new ImageCache();
|
||||
private static readonly ImageCache ImageCache = new();
|
||||
private static BinaryStorage<Dictionary<string, int>> _storage;
|
||||
private static readonly ConcurrentDictionary<string, string> GuidToKey = new ConcurrentDictionary<string, string>();
|
||||
private static readonly ConcurrentDictionary<string, string> GuidToKey = new();
|
||||
private static IImageHashGenerator _hashGenerator;
|
||||
private static bool EnableImageHash = true;
|
||||
private static readonly bool EnableImageHash = true;
|
||||
public static ImageSource DefaultImage { get; } = new BitmapImage(new Uri(Constant.MissingImgIcon));
|
||||
|
||||
|
||||
|
|
@ -46,7 +46,7 @@ namespace Flow.Launcher.Infrastructure.Image
|
|||
ImageCache[icon] = img;
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
_ = Task.Run(() =>
|
||||
{
|
||||
Stopwatch.Normal("|ImageLoader.Initialize|Preload images cost", () =>
|
||||
{
|
||||
|
|
@ -243,7 +243,6 @@ namespace Flow.Launcher.Infrastructure.Image
|
|||
ImageCache[path] = img;
|
||||
}
|
||||
|
||||
|
||||
return img;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@
|
|||
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Core")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatform("Windows10.0.19041.0")]
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ using Flow.Launcher.Infrastructure.UserSettings;
|
|||
|
||||
namespace Flow.Launcher.Infrastructure.Storage
|
||||
{
|
||||
#pragma warning disable SYSLIB0011 // BinaryFormatter is obsolete.
|
||||
/// <summary>
|
||||
/// Stroage object using binary data
|
||||
/// Normally, it has better performance, but not readable
|
||||
|
|
@ -113,4 +114,5 @@ namespace Flow.Launcher.Infrastructure.Storage
|
|||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore SYSLIB0011
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,58 @@
|
|||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Allowed plugin languages
|
||||
/// </summary>
|
||||
public static class AllowedLanguage
|
||||
{
|
||||
/// <summary>
|
||||
/// Python
|
||||
/// </summary>
|
||||
public static string Python
|
||||
{
|
||||
get { return "PYTHON"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// C#
|
||||
/// </summary>
|
||||
public static string CSharp
|
||||
{
|
||||
get { return "CSHARP"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// F#
|
||||
/// </summary>
|
||||
public static string FSharp
|
||||
{
|
||||
get { return "FSHARP"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Standard .exe
|
||||
/// </summary>
|
||||
public static string Executable
|
||||
{
|
||||
get { return "EXECUTABLE"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if this language is a .NET language
|
||||
/// </summary>
|
||||
/// <param name="language"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsDotNet(string language)
|
||||
{
|
||||
return language.ToUpper() == CSharp
|
||||
|| language.ToUpper() == FSharp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if this language is supported
|
||||
/// </summary>
|
||||
/// <param name="language"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsAllowed(string language)
|
||||
{
|
||||
return IsDotNet(language)
|
||||
|
|
@ -35,4 +60,4 @@
|
|||
|| language.ToUpper() == Executable.ToUpper();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,14 +4,24 @@ using JetBrains.Annotations;
|
|||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Base model for plugin classes
|
||||
/// </summary>
|
||||
public class BaseModel : INotifyPropertyChanged
|
||||
{
|
||||
/// <summary>
|
||||
/// Property changed event handler
|
||||
/// </summary>
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when a property changes
|
||||
/// </summary>
|
||||
/// <param name="propertyName"></param>
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,24 @@ using System.Windows.Input;
|
|||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Delegate for key down event
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
public delegate void FlowLauncherKeyDownEventHandler(FlowLauncherKeyDownEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
/// Delegate for query event
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
public delegate void AfterFlowLauncherQueryEventHandler(FlowLauncherQueryEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
/// Delegate for drop events [unused?]
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="dropObject"></param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void ResultItemDropEventHandler(Result result, IDataObject dropObject, DragEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -17,14 +32,30 @@ namespace Flow.Launcher.Plugin
|
|||
/// <returns>return true to continue handling, return false to intercept system handling</returns>
|
||||
public delegate bool FlowLauncherGlobalKeyboardEventHandler(int keyevent, int vkcode, SpecialKeyState state);
|
||||
|
||||
/// <summary>
|
||||
/// Arguments container for the Key Down event
|
||||
/// </summary>
|
||||
public class FlowLauncherKeyDownEventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The actual query
|
||||
/// </summary>
|
||||
public string Query { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Relevant key events for this event
|
||||
/// </summary>
|
||||
public KeyEventArgs keyEventArgs { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Arguments container for the Query event
|
||||
/// </summary>
|
||||
public class FlowLauncherQueryEventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The actual query
|
||||
/// </summary>
|
||||
public Query Query { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,10 @@ namespace Flow.Launcher.Plugin
|
|||
/// </summary>
|
||||
public interface IAsyncReloadable : IFeatures
|
||||
{
|
||||
/// <summary>
|
||||
/// Reload plugin data
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task ReloadDataAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
using Flow.Launcher.Plugin.SharedModels;
|
||||
using Flow.Launcher.Plugin.SharedModels;
|
||||
using JetBrains.Annotations;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
|
|
@ -41,7 +42,7 @@ namespace Flow.Launcher.Plugin
|
|||
/// <summary>
|
||||
/// Copy Text to clipboard
|
||||
/// </summary>
|
||||
/// <param name="Text">Text to save on clipboard</param>
|
||||
/// <param name="text">Text to save on clipboard</param>
|
||||
public void CopyToClipboard(string text);
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -163,6 +164,7 @@ namespace Flow.Launcher.Plugin
|
|||
/// Download the specific url to a cretain file path
|
||||
/// </summary>
|
||||
/// <param name="url">URL to download file</param>
|
||||
/// <param name="filePath">path to save downloaded file</param>
|
||||
/// <param name="token">place to store file</param>
|
||||
/// <returns>Task showing the progress</returns>
|
||||
Task HttpDownloadAsync([NotNull] string url, [NotNull] string filePath, CancellationToken token = default);
|
||||
|
|
@ -178,7 +180,7 @@ namespace Flow.Launcher.Plugin
|
|||
/// Remove ActionKeyword for specific plugin
|
||||
/// </summary>
|
||||
/// <param name="pluginId">ID for plugin that needs to remove action keyword</param>
|
||||
/// <param name="newActionKeyword">The actionkeyword that is supposed to be removed</param>
|
||||
/// <param name="oldActionKeyword">The actionkeyword that is supposed to be removed</param>
|
||||
void RemoveActionKeyword(string pluginId, string oldActionKeyword);
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@
|
|||
/// </summary>
|
||||
public interface IReloadable : IFeatures
|
||||
{
|
||||
/// <summary>
|
||||
/// Synchronously reload plugin data
|
||||
/// </summary>
|
||||
void ReloadData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Core")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
[assembly: InternalsVisibleTo("Flow.Launcher.Test")]
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ namespace Flow.Launcher.Plugin
|
|||
{
|
||||
Search = search;
|
||||
RawQuery = rawQuery;
|
||||
#pragma warning disable CS0618
|
||||
Terms = terms;
|
||||
#pragma warning restore CS0618
|
||||
SearchTerms = searchTerms;
|
||||
ActionKeyword = actionKeyword;
|
||||
}
|
||||
|
|
@ -98,4 +100,4 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
public override string ToString() => RawQuery;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Describes the result of a plugin
|
||||
/// </summary>
|
||||
public class Result
|
||||
{
|
||||
|
||||
|
|
@ -64,6 +67,10 @@ namespace Flow.Launcher.Plugin
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delegate function, see <see cref="Icon"/>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public delegate ImageSource IconDelegate();
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -85,6 +92,14 @@ namespace Flow.Launcher.Plugin
|
|||
/// </summary>
|
||||
public Func<ActionContext, bool> Action { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Delegate. An Async action to take in the form of a function call when the result has been selected
|
||||
/// <returns>
|
||||
/// true to hide flowlauncher after select result
|
||||
/// </returns>
|
||||
/// </summary>
|
||||
public Func<ActionContext, ValueTask<bool>> AsyncAction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Priority of the current result
|
||||
/// <value>default: 0</value>
|
||||
|
|
@ -96,6 +111,9 @@ namespace Flow.Launcher.Plugin
|
|||
/// </summary>
|
||||
public IList<int> TitleHighlightData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deprecated as of Flow Launcher v1.9.1. Subtitle highlighting is no longer offered
|
||||
/// </summary>
|
||||
[Obsolete("Deprecated as of Flow Launcher v1.9.1. Subtitle highlighting is no longer offered")]
|
||||
public IList<int> SubTitleHighlightData { get; set; }
|
||||
|
||||
|
|
@ -169,5 +187,15 @@ namespace Flow.Launcher.Plugin
|
|||
/// Show message as ToolTip on result SubTitle hover over
|
||||
/// </summary>
|
||||
public string SubTitleToolTip { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Run this result, asynchronously
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
/// <returns></returns>
|
||||
public ValueTask<bool> ExecuteAsync(ActionContext context)
|
||||
{
|
||||
return AsyncAction?.Invoke(context) ?? ValueTask.FromResult(Action?.Invoke(context) ?? false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ using System.Windows;
|
|||
|
||||
namespace Flow.Launcher.Plugin.SharedCommands
|
||||
{
|
||||
/// <summary>
|
||||
/// Commands that are useful to run on files... and folders!
|
||||
/// </summary>
|
||||
public static class FilesFolders
|
||||
{
|
||||
private const string FileExplorerProgramName = "explorer";
|
||||
|
|
@ -53,10 +56,10 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
CopyAll(subdir.FullName, temppath);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
#if DEBUG
|
||||
throw e;
|
||||
throw;
|
||||
#else
|
||||
MessageBox.Show(string.Format("Copying path {0} has failed, it will now be deleted for consistency", targetPath));
|
||||
RemoveFolderIfExists(targetPath);
|
||||
|
|
@ -65,6 +68,13 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the files and directories are identical between <paramref name="fromPath"/>
|
||||
/// and <paramref name="toPath"/>
|
||||
/// </summary>
|
||||
/// <param name="fromPath"></param>
|
||||
/// <param name="toPath"></param>
|
||||
/// <returns></returns>
|
||||
public static bool VerifyBothFolderFilesEqual(this string fromPath, string toPath)
|
||||
{
|
||||
try
|
||||
|
|
@ -80,10 +90,10 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
#if DEBUG
|
||||
throw e;
|
||||
throw;
|
||||
#else
|
||||
MessageBox.Show(string.Format("Unable to verify folders and files between {0} and {1}", fromPath, toPath));
|
||||
return false;
|
||||
|
|
@ -92,6 +102,10 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes a folder if it exists
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
public static void RemoveFolderIfExists(this string path)
|
||||
{
|
||||
try
|
||||
|
|
@ -99,26 +113,40 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
if (Directory.Exists(path))
|
||||
Directory.Delete(path, true);
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
#if DEBUG
|
||||
throw e;
|
||||
throw;
|
||||
#else
|
||||
MessageBox.Show(string.Format("Not able to delete folder {0}, please go to the location and manually delete it", path));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a directory exists
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <returns></returns>
|
||||
public static bool LocationExists(this string path)
|
||||
{
|
||||
return Directory.Exists(path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a file exists
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public static bool FileExists(this string filePath)
|
||||
{
|
||||
return File.Exists(filePath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Open a directory window (using the OS's default handler, usually explorer)
|
||||
/// </summary>
|
||||
/// <param name="fileOrFolderPath"></param>
|
||||
public static void OpenPath(string fileOrFolderPath)
|
||||
{
|
||||
var psi = new ProcessStartInfo { FileName = FileExplorerProgramName, UseShellExecute = true, Arguments = '"' + fileOrFolderPath + '"' };
|
||||
|
|
@ -127,16 +155,20 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
if (LocationExists(fileOrFolderPath) || FileExists(fileOrFolderPath))
|
||||
Process.Start(psi);
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
#if DEBUG
|
||||
throw e;
|
||||
throw;
|
||||
#else
|
||||
MessageBox.Show(string.Format("Unable to open the path {0}, please check if it exists", fileOrFolderPath));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Open the folder that contains <paramref name="path"/>
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
public static void OpenContainingFolder(string path)
|
||||
{
|
||||
Process.Start(FileExplorerProgramEXE, $" /select,\"{path}\"");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
|
@ -87,7 +89,8 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
/// <summary>
|
||||
/// Runs a windows command using the provided ProcessStartInfo using a custom execute command function
|
||||
/// </summary>
|
||||
/// <param name="Func startProcess">allows you to pass in a custom command execution function</param>
|
||||
/// <param name="startProcess">allows you to pass in a custom command execution function</param>
|
||||
/// <param name="info">allows you to pass in the info that will be passed to startProcess</param>
|
||||
/// <exception cref="FileNotFoundException">Thrown when unable to find the file specified in the command </exception>
|
||||
/// <exception cref="Win32Exception">Thrown when error occurs during the execution of the command </exception>
|
||||
public static void Execute(Func<ProcessStartInfo, Process> startProcess, ProcessStartInfo info)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using Flow.Launcher.Plugin;
|
||||
using Flow.Launcher.Plugin;
|
||||
using Flow.Launcher.Plugin.Explorer;
|
||||
using Flow.Launcher.Plugin.Explorer.Search;
|
||||
using Flow.Launcher.Plugin.Explorer.Search.DirectoryInfo;
|
||||
|
|
@ -20,10 +20,12 @@ namespace Flow.Launcher.Test.Plugins
|
|||
[TestFixture]
|
||||
public class ExplorerTest
|
||||
{
|
||||
#pragma warning disable CS1998 // async method with no await (more readable to leave it async to match the tested signature)
|
||||
private async Task<List<Result>> MethodWindowsIndexSearchReturnsZeroResultsAsync(Query dummyQuery, string dummyString, CancellationToken dummyToken)
|
||||
{
|
||||
return new List<Result>();
|
||||
}
|
||||
#pragma warning restore CS1998
|
||||
|
||||
private List<Result> MethodDirectoryInfoClassSearchReturnsTwoResults(Query dummyQuery, string dummyString, CancellationToken token)
|
||||
{
|
||||
|
|
@ -157,6 +159,7 @@ namespace Flow.Launcher.Test.Plugins
|
|||
$"Actual string was: {resultString}{Environment.NewLine}");
|
||||
}
|
||||
|
||||
|
||||
[SupportedOSPlatform("windows7.0")]
|
||||
[TestCase(@"some words", @"FREETEXT('some words')")]
|
||||
public void GivenWindowsIndexSearch_WhenQueryWhereRestrictionsIsForFileContentSearch_ThenShouldReturnFreeTextString(
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ namespace Flow.Launcher.Test.Plugins
|
|||
foreach (var result in results)
|
||||
{
|
||||
Assert.IsNotNull(result);
|
||||
Assert.IsNotNull(result.Action);
|
||||
Assert.IsNotNull(result.AsyncAction);
|
||||
Assert.IsNotNull(result.Title);
|
||||
}
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ namespace Flow.Launcher.Test.Plugins
|
|||
Assert.AreEqual(result1, referenceResult);
|
||||
|
||||
Assert.IsNotNull(result1);
|
||||
Assert.IsNotNull(result1.Action);
|
||||
Assert.IsNotNull(result1.AsyncAction);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Flow.Launcher.Test
|
|||
|
||||
Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
|
||||
|
||||
Assert.AreEqual("file.txt file2 file3", q.Search);
|
||||
Assert.AreEqual("file.txt file2 file3", q.Search);
|
||||
Assert.AreEqual(">", q.ActionKeyword);
|
||||
}
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ namespace Flow.Launcher.Test
|
|||
|
||||
Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
|
||||
|
||||
Assert.AreEqual("> file.txt file2 file3", q.Search);
|
||||
Assert.AreEqual("> file.txt file2 file3", q.Search);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Flow.Launcher.Plugin.Url",
|
|||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FFD651C7-0546-441F-BC8C-D4EE8FD01EA7}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
.gitattributes = .gitattributes
|
||||
.gitignore = .gitignore
|
||||
appveyor.yml = appveyor.yml
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
|
@ -74,7 +74,7 @@ namespace Flow.Launcher
|
|||
Http.API = API;
|
||||
Http.Proxy = _settings.Proxy;
|
||||
|
||||
await PluginManager.InitializePlugins(API);
|
||||
await PluginManager.InitializePluginsAsync(API);
|
||||
var window = new MainWindow(_settings, _mainVM);
|
||||
|
||||
Log.Info($"|App.OnStartup|Dependencies Info:{ErrorReporting.DependenciesInfo()}");
|
||||
|
|
@ -104,14 +104,22 @@ namespace Flow.Launcher
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
private void AutoStartup()
|
||||
{
|
||||
if (_settings.StartFlowLauncherOnSystemStartup)
|
||||
// we try to enable auto-startup on first launch, or reenable if it was removed
|
||||
// but the user still has the setting set
|
||||
if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled)
|
||||
{
|
||||
if (!SettingWindow.StartupSet())
|
||||
try
|
||||
{
|
||||
SettingWindow.SetStartup();
|
||||
Helper.AutoStartup.Enable();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// but if it fails (permissions, etc) then don't keep retrying
|
||||
// this also gives the user a visual indication in the Settings widget
|
||||
_settings.StartFlowLauncherOnSystemStartup = false;
|
||||
Notification.Show(InternationalizationManager.Instance.GetTranslation("setAutoStartFailed"), e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ namespace Flow.Launcher
|
|||
}
|
||||
|
||||
tbAction.Text = updateCustomHotkey.ActionKeyword;
|
||||
ctlHotkey.SetHotkey(updateCustomHotkey.Hotkey, false);
|
||||
_ = ctlHotkey.SetHotkeyAsync(updateCustomHotkey.Hotkey, false);
|
||||
update = true;
|
||||
lblAdd.Text = InternationalizationManager.Instance.GetTranslation("update");
|
||||
}
|
||||
|
|
|
|||
63
Flow.Launcher/Helper/AutoStartup.cs
Normal file
63
Flow.Launcher/Helper/AutoStartup.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Flow.Launcher.Infrastructure;
|
||||
using Flow.Launcher.Infrastructure.Logger;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Flow.Launcher.Helper
|
||||
{
|
||||
public class AutoStartup
|
||||
{
|
||||
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()
|
||||
{
|
||||
try
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -385,27 +385,5 @@ namespace Flow.Launcher.Helper
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Classes
|
||||
|
||||
/// <summary>
|
||||
/// Remoting service class which is exposed by the server i.e the first instance and called by the second instance
|
||||
/// to pass on the command line arguments to the first instance and cause it to activate itself.
|
||||
/// </summary>
|
||||
private class IPCRemoteService : MarshalByRefObject
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Remoting Object's ease expires after every 5 minutes by default. We need to override the InitializeLifetimeService class
|
||||
/// to ensure that lease never expires.
|
||||
/// </summary>
|
||||
/// <returns>Always null.</returns>
|
||||
public override object InitializeLifetimeService()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace Flow.Launcher.Helper
|
|||
//get current active window
|
||||
IntPtr hWnd = GetForegroundWindow();
|
||||
|
||||
if (hWnd != null && !hWnd.Equals(IntPtr.Zero))
|
||||
if (!hWnd.Equals(IntPtr.Zero))
|
||||
{
|
||||
//if current active window is NOT desktop or shell
|
||||
if (!(hWnd.Equals(HWND_DESKTOP) || hWnd.Equals(HWND_SHELL)))
|
||||
|
|
@ -98,7 +98,7 @@ namespace Flow.Launcher.Helper
|
|||
{
|
||||
IntPtr hWndDesktop = FindWindowEx(hWnd, IntPtr.Zero, "SHELLDLL_DefView", null);
|
||||
hWndDesktop = FindWindowEx(hWndDesktop, IntPtr.Zero, "SysListView32", "FolderView");
|
||||
if (hWndDesktop != null && !hWndDesktop.Equals(IntPtr.Zero))
|
||||
if (!hWndDesktop.Equals(IntPtr.Zero))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -160,4 +160,4 @@ namespace Flow.Launcher.Helper
|
|||
public int Bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,11 +65,11 @@ namespace Flow.Launcher
|
|||
{
|
||||
await Task.Delay(500, token);
|
||||
if (!token.IsCancellationRequested)
|
||||
await SetHotkey(hotkeyModel);
|
||||
await SetHotkeyAsync(hotkeyModel);
|
||||
});
|
||||
}
|
||||
|
||||
public async Task SetHotkey(HotkeyModel keyModel, bool triggerValidate = true)
|
||||
public async Task SetHotkeyAsync(HotkeyModel keyModel, bool triggerValidate = true)
|
||||
{
|
||||
CurrentHotkey = keyModel;
|
||||
|
||||
|
|
@ -101,9 +101,9 @@ namespace Flow.Launcher
|
|||
}
|
||||
}
|
||||
|
||||
public void SetHotkey(string keyStr, bool triggerValidate = true)
|
||||
public Task SetHotkeyAsync(string keyStr, bool triggerValidate = true)
|
||||
{
|
||||
SetHotkey(new HotkeyModel(keyStr), triggerValidate);
|
||||
return SetHotkeyAsync(new HotkeyModel(keyStr), triggerValidate);
|
||||
}
|
||||
|
||||
private bool CheckHotkeyAvailability() => HotKeyMapper.CheckAvailability(CurrentHotkey);
|
||||
|
|
@ -116,4 +116,4 @@ namespace Flow.Launcher
|
|||
tbMsg.Foreground = tbMsgForegroundColorOriginal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Start Flow Launcher ved system start</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Skjul Flow Launcher ved mistet fokus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Vis ikke notifikationer om nye versioner</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Husk seneste position</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Portabler Modus</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Speichern Sie alle Einstellungen und Benutzerdaten in einem Ordner (nützlich bei Verwendung mit Wechseldatenträgern oder Clouddiensten).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Starte Flow Launcher bei Systemstart</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Verstecke Flow Launcher wenn der Fokus verloren geht</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Zeige keine Nachricht wenn eine neue Version vorhanden ist</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Merke letzte Ausführungsposition</system:String>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Start Flow Launcher on system startup</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Hide Flow Launcher when focus is lost</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Do not show new version notifications</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Remember last launch location</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Modo portable</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Almacena todos los ajustes y datos de usuario en una sola carpeta (útil cuando se utiliza con unidades extraíbles o servicios en la nube).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Iniciar Flow Launcher al arrancar el sistema</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ocultar Flow Launcher cuando se pierde el enfoque</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">No mostrar notificaciones de nuevas versiones</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Recordar última ubicación de inicio</system:String>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<system:String x:Key="setAsTopMostInThisQuery">Establecer como primer resultado en esta consulta</system:String>
|
||||
<system:String x:Key="cancelTopMostInThisQuery">Cancelar como primer resultado en esta consulta</system:String>
|
||||
<system:String x:Key="executeQuery">Ejecutar consulta: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Fecha de última ejecución: {0}</system:String>
|
||||
<system:String x:Key="lastExecuteTime">Hora de la última ejecución: {0}</system:String>
|
||||
<system:String x:Key="iconTrayOpen">Abrir</system:String>
|
||||
<system:String x:Key="iconTraySettings">Configuración</system:String>
|
||||
<system:String x:Key="iconTrayAbout">Acerca de</system:String>
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
<system:String x:Key="folderTitle">Carpeta</system:String>
|
||||
<system:String x:Key="textTitle">Texto</system:String>
|
||||
<system:String x:Key="GameMode">Modo Juego</system:String>
|
||||
<system:String x:Key="GameModeToolTip">Suspender el uso de atajos de teclado.</system:String>
|
||||
<system:String x:Key="GameModeToolTip">Suspende el uso de atajos de teclado.</system:String>
|
||||
|
||||
<!-- Setting General -->
|
||||
<system:String x:Key="flowlauncher_settings">Configuración de Flow Launcher</system:String>
|
||||
|
|
@ -28,22 +28,23 @@
|
|||
<system:String x:Key="portableMode">Modo Portable</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Guarda toda la configuración y datos de usuario en una carpeta (Útil cuando se utiliza con unidades extraíbles o servicios en la nube).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Cargar Flow Launcher al iniciar el sistema</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ocultar Flow Launcher cuando se pierda el foco</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error de configuración de arranque al iniciar</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ocultar Flow Launcher cuando se pierde el foco</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">No mostrar notificaciones de nuevas versiones</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Recordar última posición de Flow Launcher</system:String>
|
||||
<system:String x:Key="language">Idioma</system:String>
|
||||
<system:String x:Key="lastQueryMode">Estilo de la última consulta</system:String>
|
||||
<system:String x:Key="lastQueryModeToolTip">Muestra/Oculta resultados anteriores cuando Flow Launcher es reactivado.</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Conservar la última consulta</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">Mantener la última consulta</system:String>
|
||||
<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="ignoreHotkeysOnFullscreen">Ignorar atajos de teclado en modo pantalla completa</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Desactiva Flow Launcher cuando una aplicación de pantalla completa está activa (Recomendado para juegos).</system:String>
|
||||
<system:String x:Key="defaultFileManager">Administrador de archivos por defecto</system:String>
|
||||
<system:String x:Key="defaultFileManager">Administrador de archivos predeterminado</system:String>
|
||||
<system:String x:Key="defaultFileManagerToolTip">Selecciona el administrador de archivos que se desea utilizar para abrir la carpeta.</system:String>
|
||||
<system:String x:Key="defaultBrowser">Navegador web por defecto</system:String>
|
||||
<system:String x:Key="defaultBrowserToolTip">Configura navegador, nueva pestaña, nueva ventana, modo privado.</system:String>
|
||||
<system:String x:Key="defaultBrowser">Navegador web predeterminado</system:String>
|
||||
<system:String x:Key="defaultBrowserToolTip">Configuración para Nueva Pestaña, Nueva Ventana, Modo Privado.</system:String>
|
||||
<system:String x:Key="pythonDirectory">Carpeta de Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Actualización automática</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Seleccionar</system:String>
|
||||
|
|
@ -51,12 +52,12 @@
|
|||
<system:String x:Key="hideNotifyIcon">Ocultar icono de la bandeja del sistema</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Precisión en la búsqueda de 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">Debe utilizar Pinyin</system:String>
|
||||
<system:String x:Key="ShouldUsePinyin">Utilizar 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="shadowEffectNotAllowed">El efecto de sombra no está permitido mientras el tema actual tenga el efecto de desenfoque activado</system:String>
|
||||
|
||||
<!-- Setting Plugin -->
|
||||
<system:String x:Key="plugin">Complementos</system:String>
|
||||
<system:String x:Key="plugin">Complemento</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Buscar más complementos</system:String>
|
||||
<system:String x:Key="enable">Activado</system:String>
|
||||
<system:String x:Key="disable">Desactivado</system:String>
|
||||
|
|
@ -64,11 +65,11 @@
|
|||
<system:String x:Key="actionKeywords">Palabra clave de acción</system:String>
|
||||
<system:String x:Key="currentActionKeywords">Palabra clave de acción actual</system:String>
|
||||
<system:String x:Key="newActionKeyword">Nueva palabra clave de acción</system:String>
|
||||
<system:String x:Key="actionKeywordsTooltip">Cambiar palabras clave de acción</system:String>
|
||||
<system:String x:Key="actionKeywordsTooltip">Cambia las palabras clave de acción</system:String>
|
||||
<system:String x:Key="currentPriority">Prioridad actual</system:String>
|
||||
<system:String x:Key="newPriority">Nueva prioridad</system:String>
|
||||
<system:String x:Key="priority">Prioridad</system:String>
|
||||
<system:String x:Key="pluginDirectory">Directorio de complementos</system:String>
|
||||
<system:String x:Key="pluginDirectory">Carpeta de complementos</system:String>
|
||||
<system:String x:Key="author">por</system:String>
|
||||
<system:String x:Key="plugin_init_time">Tiempo de inicio:</system:String>
|
||||
<system:String x:Key="plugin_query_time">Tiempo de consulta:</system:String>
|
||||
|
|
@ -86,12 +87,12 @@
|
|||
<system:String x:Key="browserMoreThemes">Galería de temas</system:String>
|
||||
<system:String x:Key="howToCreateTheme">Cómo crear un tema</system:String>
|
||||
<system:String x:Key="hiThere">Hola</system:String>
|
||||
<system:String x:Key="queryBoxFont">Fuente del cuadro de consulta</system:String>
|
||||
<system:String x:Key="resultItemFont">Fuente de los resultados</system:String>
|
||||
<system:String x:Key="windowMode">Modo ventana</system:String>
|
||||
<system:String x:Key="queryBoxFont">Fuente del texto del cuadro de consulta</system:String>
|
||||
<system:String x:Key="resultItemFont">Fuente del texto de los resultados</system:String>
|
||||
<system:String x:Key="windowMode">Modo Ventana</system:String>
|
||||
<system:String x:Key="opacity">Opacidad</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">El tema {0} no existe, activando el tema por defecto</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">Fallo al cargar el tema {0}, activando el tema por defecto</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">Fallo al cargar el tema {0}, activando el tema predeterminado</system:String>
|
||||
<system:String x:Key="ThemeFolder">Carpeta de temas</system:String>
|
||||
<system:String x:Key="OpenThemeFolder">Abrir carpeta de temas</system:String>
|
||||
<system:String x:Key="ColorScheme">Esquema de colores</system:String>
|
||||
|
|
@ -101,28 +102,28 @@
|
|||
<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="Animation">Animación</system:String>
|
||||
<system:String x:Key="AnimationTip">Utiliza animación en la Interfaz de Usuario</system:String>
|
||||
<system:String x:Key="AnimationTip">Usar animación en la Interfaz de Usuario</system:String>
|
||||
|
||||
<!-- Setting Hotkey -->
|
||||
<system:String x:Key="hotkey">Atajos de teclado</system:String>
|
||||
<system:String x:Key="hotkey">Atajo de teclado</system:String>
|
||||
<system:String x:Key="flowlauncherHotkey">Atajo de teclado de 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="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="customQueryHotkey">Atajos de teclado de consulta personalizada</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Atajo de teclado de consulta personalizada</system:String>
|
||||
<system:String x:Key="customQuery">Consulta</system:String>
|
||||
<system:String x:Key="delete">Borrar</system:String>
|
||||
<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="pleaseSelectAnItem">Por favor, seleccione un elemento</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">¿Está seguro que desea eliminar el atajo de teclado del complemento {0}?</system:String>
|
||||
<system:String x:Key="queryWindowShadowEffect">Efecto de sombra de ventana</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 de ancho de ventana</system:String>
|
||||
<system:String x:Key="useGlyphUI">Utilizar iconos Segoe Fluent</system:String>
|
||||
<system:String x:Key="useGlyphUIEffect">Utiliza iconos Segoe Fluent para los resultados de la consulta cuando sean compatible</system:String>
|
||||
<system:String x:Key="windowWidthSize">Tamaño del ancho de la ventana</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>
|
||||
|
||||
<!-- Setting Proxy -->
|
||||
<system:String x:Key="proxy">Proxy HTTP</system:String>
|
||||
|
|
@ -133,46 +134,46 @@
|
|||
<system:String x:Key="password">Contraseña</system:String>
|
||||
<system:String x:Key="testProxy">Probar proxy</system:String>
|
||||
<system:String x:Key="save">Guardar</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">El campo servidor no puede estar vacío</system:String>
|
||||
<system:String x:Key="serverCantBeEmpty">El campo del servidor no puede estar vacío</system:String>
|
||||
<system:String x:Key="portCantBeEmpty">El campo puerto no puede estar vacío</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Formato de puerto incorrecto</system:String>
|
||||
<system:String x:Key="invalidPortFormat">Formato de puerto no válido</system:String>
|
||||
<system:String x:Key="saveProxySuccessfully">Configuración del proxy guardada correctamente</system:String>
|
||||
<system:String x:Key="proxyIsCorrect">Proxy configurado correctamente</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">Conexión con el proxy fallida</system:String>
|
||||
<system:String x:Key="proxyConnectFailed">La conexión con el proxy ha fallado</system:String>
|
||||
|
||||
<!-- Setting About -->
|
||||
<system:String x:Key="about">Acerca de</system:String>
|
||||
<system:String x:Key="website">Sitio web</system:String>
|
||||
<system:String x:Key="github">GitHub</system:String>
|
||||
<system:String x:Key="docs">Docs</system:String>
|
||||
<system:String x:Key="docs">Documentación</system:String>
|
||||
<system:String x:Key="version">Versión</system:String>
|
||||
<system:String x:Key="about_activate_times">Has activado Flow Launcher {0} veces</system:String>
|
||||
<system:String x:Key="about_activate_times">Ha activado Flow Launcher {0} veces</system:String>
|
||||
<system:String x:Key="checkUpdates">Buscar actualizaciones</system:String>
|
||||
<system:String x:Key="newVersionTips">La nueva versión {0} está disponible, ¿desea reiniciar Flow Launcher para actualizar?</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">Falló la comprobación de actualizaciones, compruebe su conexión y cambie la configuración de proxy a api.github.com.</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">La comprobación de las actualizaciones ha fallado, por favor, compruebe la configuración de su proxy y conexión a api.github.com.</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
Falló la descarga de actualizaciones, por favor compruebe su conexión y cambie el proxy a github-cloud.s3.amazonaws.com,
|
||||
o vaya a https://github.com/Flow-Launcher/Flow.Launcher/releases para descargar actualizaciones manualmente.
|
||||
La descarga de las actualizaciones ha fallado, por favor, compruebe la configuración de su proxy y conexión a github-cloud.s3.amazonaws.com,
|
||||
o diríjase a https://github.com/Flow-Launcher/Flow.Launcher/releases para descargar actualizaciones manualmente.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Notas de la versión</system:String>
|
||||
<system:String x:Key="documentation">Consejos de uso</system:String>
|
||||
<system:String x:Key="devtool">Herramientas de desarrolador</system:String>
|
||||
<system:String x:Key="settingfolder">Carpeta de configuración</system:String>
|
||||
<system:String x:Key="logfolder">Carpeta de logs</system:String>
|
||||
<system:String x:Key="logfolder">Carpeta de registros</system:String>
|
||||
<system:String x:Key="welcomewindow">Asistente</system:String>
|
||||
|
||||
<!-- FileManager Setting Dialog -->
|
||||
<system:String x:Key="fileManagerWindow">Seleccionar administrador de archivos</system:String>
|
||||
<system:String x:Key="fileManager_tips">Por favor, especifique la ubicación del administrador de archivos que desea utilizar y añada argumentos si es necesario. El argumento por defecto es "%d", introduciendo una ruta en esa ubicación. Por ejemplo, si se requiere un comando como "totalcmd.exe /A c:\windows", el argumento es /A "%d".</system:String>
|
||||
<system:String x:Key="fileManager_tips2">"%f" es un argumento que representa la ruta del archivo. Se utiliza para especificar el nombre de archivo/carpeta al abrir una ubicación específica con administradores de archivos de terceros. Este argumento sólo está disponible en el elemento "Arg para archivo". Si el administrador de archivos no tiene esa función, puede utilizar "%d".</system:String>
|
||||
<system:String x:Key="fileManager_tips2">"%f" es un argumento que representa la ruta del archivo. Se utiliza para especificar el nombre de archivo/carpeta al abrir una ubicación específica con administradores de archivos de terceros. Este argumento sólo está disponible en el elemento "Argumentos del archivo". Si el administrador de archivos no tiene esa función, puede utilizar "%d".</system:String>
|
||||
<system:String x:Key="fileManager_name">Administrador de archivos</system:String>
|
||||
<system:String x:Key="fileManager_profile_name">Nombre de perfil</system:String>
|
||||
<system:String x:Key="fileManager_profile_name">Nombre del perfil</system:String>
|
||||
<system:String x:Key="fileManager_path">Ruta del administrador de archivos</system:String>
|
||||
<system:String x:Key="fileManager_directory_arg">Arg para la carpeta</system:String>
|
||||
<system:String x:Key="fileManager_file_arg">Arg para archivo</system:String>
|
||||
<system:String x:Key="fileManager_directory_arg">Argumentos de la carpeta</system:String>
|
||||
<system:String x:Key="fileManager_file_arg">Argumentos del archivo</system:String>
|
||||
|
||||
<!-- DefaultBrowser Setting Dialog -->
|
||||
<system:String x:Key="defaultBrowserTitle">Navegador web por defecto</system:String>
|
||||
<system:String x:Key="defaultBrowserTitle">Navegador web predeterminado</system:String>
|
||||
<system:String x:Key="defaultBrowser_tips">La configuración por defecto utiliza el navegador predeterminado del sistema operativo. Si se indica uno específicamente, Flow Launcher utilizará este otro navegador.</system:String>
|
||||
<system:String x:Key="defaultBrowser_name">Navegador</system:String>
|
||||
<system:String x:Key="defaultBrowser_profile_name">Nombre del navegador</system:String>
|
||||
|
|
@ -182,27 +183,27 @@
|
|||
<system:String x:Key="defaultBrowser_parameter">Modo privado</system:String>
|
||||
|
||||
<!-- Priority Setting Dialog -->
|
||||
<system:String x:Key="changePriorityWindow">Cambiar prioridad</system:String>
|
||||
<system:String x:Key="priority_tips">A mayor número, más alto aparecerá el resultado. Intentalo con 5. Si quieres que los resultados aparezcan más abajo que los de cualquier otro complemento, usa un número negativo</system:String>
|
||||
<system:String x:Key="invalidPriority">¡Por favor, proporcione un entero válido para la prioridad!</system:String>
|
||||
<system:String x:Key="changePriorityWindow">Cambiar la prioridad</system:String>
|
||||
<system:String x:Key="priority_tips">A mayor número, más alto aparecerá el resultado. Inténtelo con 5. Si quiere que los resultados aparezcan más abajo que los de cualquier otro complemento, utilice un número negativo</system:String>
|
||||
<system:String x:Key="invalidPriority">¡Por favor, proporcione un número entero válido para la prioridad!</system:String>
|
||||
|
||||
<!-- Action Keyword Setting Dialog -->
|
||||
<system:String x:Key="oldActionKeywords">Palabra clave de acción antigua</system:String>
|
||||
<system:String x:Key="newActionKeywords">Palabra clave de acción nueva</system:String>
|
||||
<system:String x:Key="oldActionKeywords">Antigua palabra clave de acción</system:String>
|
||||
<system:String x:Key="newActionKeywords">Nueva palabra clave de acción</system:String>
|
||||
<system:String x:Key="cancel">Cancelar</system:String>
|
||||
<system:String x:Key="done">Aceptar</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">No se puede encontrar el complemento especificado</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">La nueva palabra clave de acción no puede estar vacía</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">Esta nueva palabra clave de acción ya está asignada a otro complemento, por favor elija una diferente</system:String>
|
||||
<system:String x:Key="success">Éxito</system:String>
|
||||
<system:String x:Key="completedSuccessfully">Completado correctamente</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Introduce la palabra clave que deseas utilizar para iniciar el complemento. Utiliza * si no deseas especificar ninguna, y el complemento se activará sin ninguna palabra clave.</system:String>
|
||||
<system:String x:Key="success">Correcto</system:String>
|
||||
<system:String x:Key="completedSuccessfully">Finalizado correctamente</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Introduzca la palabra clave que desea utilizar para iniciar el complemento. Utilice * si no desea especificar ninguna, y el complemento se activará sin ninguna palabra clave.</system:String>
|
||||
|
||||
<!-- Custom Query Hotkey Dialog -->
|
||||
<system:String x:Key="customeQueryHotkeyTitle">Atajos de búsqueda personalizada</system:String>
|
||||
<system:String x:Key="customeQueryHotkeyTips">Presione el atajo de teclado personalizado para iniciar automáticamente la búsqueda especificada.</system:String>
|
||||
<system:String x:Key="customeQueryHotkeyTitle">Atajo de teclado de consulta personalizada</system:String>
|
||||
<system:String x:Key="customeQueryHotkeyTips">Pulse el atajo de teclado personalizado para insertar automáticamente la consulta especificada.</system:String>
|
||||
<system:String x:Key="preview">Vista previa</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">El atajo de teclado no está disponible, por favor selecciona uno nuevo</system:String>
|
||||
<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>
|
||||
|
||||
|
|
@ -211,57 +212,57 @@
|
|||
|
||||
<!-- Crash Reporter -->
|
||||
<system:String x:Key="reportWindow_version">Versión</system:String>
|
||||
<system:String x:Key="reportWindow_time">Fecha</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Por favor, díganos cómo falló la aplicación para que podamos arreglarla</system:String>
|
||||
<system:String x:Key="reportWindow_time">Hora</system:String>
|
||||
<system:String x:Key="reportWindow_reproduce">Por favor, informe del fallo de la aplicación para poder solucionarlo</system:String>
|
||||
<system:String x:Key="reportWindow_send_report">Enviar informe</system:String>
|
||||
<system:String x:Key="reportWindow_cancel">Cancelar</system:String>
|
||||
<system:String x:Key="reportWindow_general">General</system:String>
|
||||
<system:String x:Key="reportWindow_exceptions">Excepciones</system:String>
|
||||
<system:String x:Key="reportWindow_exception_type">Tipo de excepción</system:String>
|
||||
<system:String x:Key="reportWindow_source">Origen</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Traza de Pila</system:String>
|
||||
<system:String x:Key="reportWindow_stack_trace">Rastreo de Pila</system:String>
|
||||
<system:String x:Key="reportWindow_sending">Enviando</system:String>
|
||||
<system:String x:Key="reportWindow_report_succeed">Informe enviado correctamente</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">No se pudo enviar el informe</system:String>
|
||||
<system:String x:Key="reportWindow_report_failed">No se ha podido enviar el informe</system:String>
|
||||
<system:String x:Key="reportWindow_flowlauncher_got_an_error">Flow Launcher ha tenido un error</system:String>
|
||||
|
||||
<!-- General Notice -->
|
||||
<system:String x:Key="pleaseWait">Por favor, espera...</system:String>
|
||||
<system:String x:Key="pleaseWait">Por favor espere...</system:String>
|
||||
|
||||
<!-- update -->
|
||||
<system:String x:Key="update_flowlauncher_update_check">Comprobando actualizaciones</system:String>
|
||||
<system:String x:Key="update_flowlauncher_already_on_latest">Ya tienes la versión más reciente de Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_already_on_latest">Ya tiene la última versión de Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_found">Actualización encontrada</system:String>
|
||||
<system:String x:Key="update_flowlauncher_updating">Actualizando...</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
|
||||
Flow Launcher no pudo migrar los datos de su perfil de usuario de la antigua versión a la nueva.
|
||||
Por favor, mueve manualmente la carpeta de datos de tu perfil de {0} a {1}
|
||||
Flow Launcher no pudo mover sus datos de perfil de usuario a la nueva versión de actualización.
|
||||
Por favor, mueva manualmente la carpeta de datos de su perfil de {0} a {1}
|
||||
</system:String>
|
||||
<system:String x:Key="update_flowlauncher_new_update">Nueva actualización</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_new_version_available">La nueva versión {0} de Flow Launcher está disponible</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_error">Ocurrió un error mientras se trataba de actualizar</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_error">Se ha producido un error al intentar instalar actualizaciones de software</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update">Actualizar</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_cancel">Cancelar</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail">Actualización fallida</system:String>
|
||||
<system:String x:Key="update_flowlauncher_check_connection">Compruebe su conexión e intente cambiar la configuración del proxy a github-cloud.s3.amazonaws.com.</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail">La actualización ha fallado</system:String>
|
||||
<system:String x:Key="update_flowlauncher_check_connection">Compruebe su conexión e intente actualizar la configuración del proxy a github-cloud.s3.amazonaws.com.</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Esta actualización reiniciará Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_update_files">Los siguientes archivos serán actualizados</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_update_files">Se actualizarán los siguientes archivos</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_files">Actualizar archivos</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_update_description">Modificar descripción</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_update_description">Actualizar descripción</system:String>
|
||||
|
||||
<!-- Welcome Window -->
|
||||
<system:String x:Key="Skip">Omitir</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Title">Bienvenido a Flow Launcher</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text01">Hola, ¡es la primera vez que ejecuta Flow Launcher!</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text01">Hola, ¡Esta es la primera vez que ejecuta Flow Launcher!</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text02">Antes de empezar, este asistente le ayudará a configurar Flow Launcher. Puede omitirlo si lo desea. Por favor, elija un idioma</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Title">Busque y ejecute archivos y aplicaciones en el equipo</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Title">Busque y ejecute todos los archivos y aplicaciones del equipo</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Text01">Busque todo, desde aplicaciones, archivos, marcadores, YouTube, Twitter y más. Todo desde la comodidad del teclado y sin tener que tocar el ratón.</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher se inicia con el atajo de teclado que se muestra a continuación, anímese y pruébelo ahora. Para cambiarlo, haga clic en la caja de texto y presione la nueva combinación de teclas.</system:String>
|
||||
<system:String x:Key="Welcome_Page3_Title">Atajos de teclado</system:String>
|
||||
<system:String x:Key="Welcome_Page4_Title">Palabra clave de acción y comandos</system:String>
|
||||
<system:String x:Key="Welcome_Page4_Text01">Busque en la web, inicie aplicaciones o ejecute diversas funciones mediante los complementos de Flow Launcher. Algunas funciones comienzan con una palabra clave de acción y, si es necesario, pueden utilizarse sin ellas. Pruebe las siguientes consultas en Flow Launcher.</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Title">Iniciemos Flow Launcher</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Text01">Finalizado. Disfrute de Flow Launcher. No olvide utilizar el atajo de teclado para iniciar :)</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Text01">Terminado. Disfruta de Flow Launcher. No olvides el atajo de teclado para empezar :)</system:String>
|
||||
|
||||
<!-- General Guide & Hotkey -->
|
||||
|
||||
|
|
@ -270,15 +271,15 @@
|
|||
<system:String x:Key="HotkeyShiftEnterDesc">Abrir menú contextual</system:String>
|
||||
<system:String x:Key="HotkeyCtrlEnterDesc">Abrir carpeta contenedora</system:String>
|
||||
<system:String x:Key="HotkeyCtrlShiftEnterDesc">Ejecutar como administrador</system:String>
|
||||
<system:String x:Key="HotkeyCtrlHDesc">Historial de búsquedas</system:String>
|
||||
<system:String x:Key="HotkeyCtrlHDesc">Historial de consultas</system:String>
|
||||
<system:String x:Key="HotkeyESCDesc">Volver al resultado en menú contextual</system:String>
|
||||
<system:String x:Key="HotkeyTabDesc">Autocompletar</system:String>
|
||||
<system:String x:Key="HotkeyRunDesc">Abrir / Ejecutar elemento seleccionado</system:String>
|
||||
<system:String x:Key="HotkeyCtrlIDesc">Abrir ventana de configuración</system:String>
|
||||
<system:String x:Key="HotkeyF5Desc">Refrescar datos del complemento</system:String>
|
||||
<system:String x:Key="HotkeyF5Desc">Recargar datos del complemento</system:String>
|
||||
|
||||
<system:String x:Key="RecommendWeather">El tiempo</system:String>
|
||||
<system:String x:Key="RecommendWeatherDesc">El tiempo en Google</system:String>
|
||||
<system:String x:Key="RecommendWeatherDesc">El tiempo en los resultados de Google</system:String>
|
||||
<system:String x:Key="RecommendShell">> ping 8.8.8.8</system:String>
|
||||
<system:String x:Key="RecommendShellDesc">Comando de terminal</system:String>
|
||||
<system:String x:Key="RecommendBluetooth">Bluetooth</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Lancer Flow Launcher au démarrage du système</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Cacher Flow Launcher lors de la perte de focus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Ne pas afficher les notifications lors d'une nouvelle version</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Se souvenir du dernier emplacement de la fenêtre</system:String>
|
||||
|
|
@ -42,16 +43,16 @@
|
|||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Désactiver l'activation de Flow Launcher lorsqu'une application en plein écran est active (Recommandé pour les jeux).</system:String>
|
||||
<system:String x:Key="defaultFileManager">Gestionnaire de fichiers par défaut</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="defaultBrowser">Navigateur web par défaut</system:String>
|
||||
<system:String x:Key="defaultBrowserToolTip">Setting for New Tab, New Window, Private Mode.</system:String>
|
||||
<system:String x:Key="pythonDirectory">Répertoire de Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Mettre à jour automatiquement</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Sélectionner</system:String>
|
||||
<system:String x:Key="hideOnStartup">Cacher Flow Launcher au démarrage</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Hide tray icon</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Masquer icône du plateau</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">Should Use Pinyin</system:String>
|
||||
<system:String x:Key="ShouldUsePinyin">Devrait utiliser le 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="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
|
||||
|
||||
|
|
@ -173,7 +174,7 @@
|
|||
<!-- DefaultBrowser Setting Dialog -->
|
||||
<system:String x:Key="defaultBrowserTitle">Default Web Browser</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_name">Navigateur</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>
|
||||
|
|
@ -279,9 +280,9 @@
|
|||
<system:String x:Key="RecommendWeather">Weather</system:String>
|
||||
<system:String x:Key="RecommendWeatherDesc">Weather in Google Result</system:String>
|
||||
<system:String x:Key="RecommendShell">> ping 8.8.8.8</system:String>
|
||||
<system:String x:Key="RecommendShellDesc">Shell Command</system:String>
|
||||
<system:String x:Key="RecommendShellDesc">Commande Shell</system:String>
|
||||
<system:String x:Key="RecommendBluetooth">Bluetooth</system:String>
|
||||
<system:String x:Key="RecommendBluetoothDesc">Bluetooth in Windows Settings</system:String>
|
||||
<system:String x:Key="RecommendBluetoothDesc">Bluetooth dans les Paramètres de Windows</system:String>
|
||||
<system:String x:Key="RecommendAcronyms">sn</system:String>
|
||||
<system:String x:Key="RecommendAcronymsDesc">Sticky Notes</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="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="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="rememberLastLocation">Ricorda l'ultima posizione di avvio del launcher</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="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="rememberLastLocation">前回のランチャーの位置を記憶</system:String>
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
<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="fileTitle">File</system:String>
|
||||
<system:String x:Key="folderTitle">Folder</system:String>
|
||||
<system:String x:Key="textTitle">Text</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>
|
||||
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">포터블 모드</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">모든 설정이 폴더안에 들어갑니다. USB 드라이브나 클라우드로 사용 가능합니다.</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="rememberLastLocation">마지막 실행 위치 기억</system:String>
|
||||
|
|
@ -85,7 +86,7 @@
|
|||
<system:String x:Key="theme">테마</system:String>
|
||||
<system:String x:Key="browserMoreThemes">테마 갤러리</system:String>
|
||||
<system:String x:Key="howToCreateTheme">테마 제작 안내</system:String>
|
||||
<system:String x:Key="hiThere">Hi There</system:String>
|
||||
<system:String x:Key="hiThere">안녕하세요.</system:String>
|
||||
<system:String x:Key="queryBoxFont">쿼리 상자 글꼴</system:String>
|
||||
<system:String x:Key="resultItemFont">결과 항목 글꼴</system:String>
|
||||
<system:String x:Key="windowMode">윈도우 모드</system:String>
|
||||
|
|
@ -177,8 +178,8 @@
|
|||
<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">New Window</system:String>
|
||||
<system:String x:Key="defaultBrowser_newTab">New Tab</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 -->
|
||||
|
|
@ -243,7 +244,7 @@
|
|||
<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">업데이트 실패</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">연결을 확인하고 프록시 설정을 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>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Start Flow Launcher on system startup</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Hide Flow Launcher when focus is lost</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Do not show new version notifications</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Remember last launch location</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Draagbare Modus</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Alle instellingen en gebruikersgegevens opslaan in één map (Nuttig bij het gebruik van verwijderbare schijven of cloud services).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Start Flow Launcher als systeem opstart</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Verberg Flow Launcher als focus verloren is</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Laat geen nieuwe versie notificaties zien</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Herinner laatste opstart locatie</system:String>
|
||||
|
|
|
|||
|
|
@ -12,22 +12,23 @@
|
|||
<system:String x:Key="iconTraySettings">Ustawienia</system:String>
|
||||
<system:String x:Key="iconTrayAbout">O programie</system:String>
|
||||
<system:String x:Key="iconTrayExit">Wyjdź</system:String>
|
||||
<system:String x:Key="closeWindow">Close</system:String>
|
||||
<system:String x:Key="closeWindow">Zamknij</system:String>
|
||||
<system:String x:Key="copy">Copy</system:String>
|
||||
<system:String x:Key="cut">Cut</system:String>
|
||||
<system:String x:Key="paste">Paste</system:String>
|
||||
<system:String x:Key="cut">Wytnij</system:String>
|
||||
<system:String x:Key="paste">Wklej</system:String>
|
||||
<system:String x:Key="fileTitle">File</system:String>
|
||||
<system:String x:Key="folderTitle">Folder</system:String>
|
||||
<system:String x:Key="textTitle">Text</system:String>
|
||||
<system:String x:Key="GameMode">Game Mode</system:String>
|
||||
<system:String x:Key="GameModeToolTip">Suspend the use of Hotkeys.</system:String>
|
||||
<system:String x:Key="GameMode">Tryb grania</system:String>
|
||||
<system:String x:Key="GameModeToolTip">Wstrzymaj używanie skrótów.</system:String>
|
||||
|
||||
<!-- Setting General -->
|
||||
<system:String x:Key="flowlauncher_settings">Ustawienia Flow Launcher</system:String>
|
||||
<system:String x:Key="general">Ogólne</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">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="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="rememberLastLocation">Zapamiętaj ostatnią pozycję okna</system:String>
|
||||
|
|
@ -39,16 +40,16 @@
|
|||
<system:String x:Key="LastQueryEmpty">Empty last Query</system:String>
|
||||
<system:String x:Key="maxShowResults">Maksymalna liczba wyników</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignoruj skróty klawiszowe w trybie pełnego ekranu</system:String>
|
||||
<system:String x:Key="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="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>
|
||||
<system:String x:Key="defaultFileManagerToolTip">Wybierz menedżer plików używany do otwierania folderów.</system:String>
|
||||
<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="pythonDirectory">Folder biblioteki Python</system:String>
|
||||
<system:String x:Key="autoUpdates">Automatyczne aktualizacje</system:String>
|
||||
<system:String x:Key="selectPythonDirectory">Wybierz</system:String>
|
||||
<system:String x:Key="hideOnStartup">Uruchamiaj Flow Launcher zminimalizowany</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Hide tray icon</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Ukryj ikonę zasobnika</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">Should Use Pinyin</system:String>
|
||||
|
|
@ -172,7 +173,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">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>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Iniciar Flow Launcher com inicialização do sistema</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Esconder Flow Launcher quando foco for perdido</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Não mostrar notificações de novas versões</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Lembrar última localização de lançamento</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Modo portátil</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Guardar todas as definições e dados do utilizador numa pasta (indicado se utilizar discos amovíveis ou serviços cloud)</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Iniciar Flow Launcher ao arrancar o sistema</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Erro ao definir para iniciar ao arrancar</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Ocultar Flow Launcher ao perder o foco</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Não notificar acerca de novas versões</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Memorizar localização anterior</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Запускать Flow Launcher при запуске системы</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Скрывать Flow Launcher, если потерян фокуc</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Не отображать сообщение об обновлении, когда доступна новая версия</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Запомнить последнее место запуска</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Prenosný režim</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Uloží všetky nastavenia a používateľské údaje do jedného priečinka (Užitočné pri vymeniteľných diskoch a cloudových službách).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Spustiť Flow Launcher pri spustení systému</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Chybné nastavenie spustenia pri spustení</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Schovať Flow Launcher po strate fokusu</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Nezobrazovať upozornenia na novú verziu</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Zapamätať si posledné umiestnenie</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">Pokreni Flow Launcher pri podizanju sistema</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Sakri Flow Launcher kada se izgubi fokus</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Ne prikazuj obaveštenje o novoj verziji</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Zapamti lokaciju poslednjeg pokretanja</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">Taşınabilir Mod</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Tüm ayarları ve kullanıcı verilerini tek bir klasörde saklayın (Çıkarılabilir sürücüler veya bulut hizmetleri ile kullanıldığında kullanışlıdır).</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">Flow Launcher'u başlangıçta başlat</system:String>
|
||||
<system:String x:Key="setAutoStartFailed">Error setting launch on startup</system:String>
|
||||
<system:String x:Key="hideFlowLauncherWhenLoseFocus">Odak pencereden ayrıldığında Flow Launcher'u gizle</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Güncelleme bildirimlerini gösterme</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Pencere konumunu hatırla</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="hideFlowLauncherWhenLoseFocus">Сховати Flow Launcher, якщо втрачено фокус</system:String>
|
||||
<system:String x:Key="dontPromptUpdateMsg">Не повідомляти про доступні нові версії</system:String>
|
||||
<system:String x:Key="rememberLastLocation">Запам'ятати останнє місце запуску</system:String>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<system:String x:Key="portableMode">便携模式</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。</system:String>
|
||||
<system:String x:Key="startFlowLauncherOnSystemStartup">开机自启</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="rememberLastLocation">记住上次启动位置</system:String>
|
||||
|
|
@ -39,7 +40,7 @@
|
|||
<system:String x:Key="LastQueryEmpty">清空上次搜索关键字</system:String>
|
||||
<system:String x:Key="maxShowResults">最大结果显示个数</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全屏模式下忽略热键</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">当全屏应用程序激活时禁用快捷键。</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">当全屏应用程序激活时禁用快捷键(建议游戏时打开)。</system:String>
|
||||
<system:String x:Key="defaultFileManager">默认文件管理器</system:String>
|
||||
<system:String x:Key="defaultFileManagerToolTip">选择打开文件夹时要使用的文件管理器。</system:String>
|
||||
<system:String x:Key="defaultBrowser">默认浏览器</system:String>
|
||||
|
|
@ -148,7 +149,7 @@
|
|||
<system:String x:Key="version">版本</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="newVersionTips">发现新版本 {0} , 请重启 Flow Launcher</system:String>
|
||||
<system:String x:Key="newVersionTips">发现新版本 {0}, 请重启 Flow Launcher</system:String>
|
||||
<system:String x:Key="checkUpdatesFailed">下载更新失败,请检查您与 api.github.com 的连接状态或检查代理设置</system:String>
|
||||
<system:String x:Key="downloadUpdatesFailed">
|
||||
下载更新失败,请检查您与 github-cloud.s3.amazonaws.com 的连接状态或检查代理设置,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
<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="startFlowLauncherOnSystemStartup">開機時啟動</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="rememberLastLocation">記住上次啟動位置</system:String>
|
||||
|
|
@ -38,7 +39,7 @@
|
|||
<system:String x:Key="LastQuerySelected">Select last Query</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Empty last Query</system:String>
|
||||
<system:String x:Key="maxShowResults">最大結果顯示個數</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全螢幕模式下忽略熱鍵</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全螢幕模式下忽略快捷鍵</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">全螢幕模式下停用快捷鍵(推薦用於遊戲時)。</system:String>
|
||||
<system:String x:Key="defaultFileManager">預設檔案管理器</system:String>
|
||||
<system:String x:Key="defaultFileManagerToolTip">選擇打開資料夾時要使用的檔案管理器。</system:String>
|
||||
|
|
@ -77,7 +78,7 @@
|
|||
|
||||
|
||||
<!-- Setting Plugin Store -->
|
||||
<system:String x:Key="pluginStore">插件商店</system:String>
|
||||
<system:String x:Key="pluginStore">外掛商店</system:String>
|
||||
<system:String x:Key="refresh">重新整理</system:String>
|
||||
<system:String x:Key="install">安裝</system:String>
|
||||
|
||||
|
|
@ -117,7 +118,7 @@
|
|||
<system:String x:Key="edit">編輯</system:String>
|
||||
<system:String x:Key="add">新增</system:String>
|
||||
<system:String x:Key="pleaseSelectAnItem">請選擇一項</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">確定要刪除外掛 {0} 的熱鍵嗎?</system:String>
|
||||
<system:String x:Key="deleteCustomHotkeyWarning">確定要刪除外掛 {0} 的快捷鍵嗎?</system:String>
|
||||
<system:String x:Key="queryWindowShadowEffect">查詢窗口陰影效果</system:String>
|
||||
<system:String x:Key="shadowEffectCPUUsage">陰影效果將佔用大量的 GPU 資源。如果你的電腦效能有限,不建議使用。</system:String>
|
||||
<system:String x:Key="windowWidthSize">窗口寬度</system:String>
|
||||
|
|
@ -168,8 +169,8 @@
|
|||
<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">Arg For Folder</system:String>
|
||||
<system:String x:Key="fileManager_file_arg">Arg For File</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>
|
||||
|
|
@ -183,7 +184,7 @@
|
|||
|
||||
<!-- Priority Setting Dialog -->
|
||||
<system:String x:Key="changePriorityWindow">更改優先度</system:String>
|
||||
<system:String x:Key="priority_tips">數字越大,查詢結過會排在越前面。嘗試將其設定為 5。如果你希望查詢結果低於任何其他插件,請提供負數</system:String>
|
||||
<system:String x:Key="priority_tips">數字越大,查詢結果會排在越前面。嘗試將其設定為 5。如果你希望查詢結果低於任何其他外掛,請提供負數</system:String>
|
||||
<system:String x:Key="invalidPriority">請為優先度提供一個有效的整數!</system:String>
|
||||
|
||||
<!-- Action Keyword Setting Dialog -->
|
||||
|
|
@ -199,15 +200,15 @@
|
|||
<system:String x:Key="actionkeyword_tips">如果不想設定觸發關鍵字,可以使用*代替</system:String>
|
||||
|
||||
<!-- Custom Query Hotkey Dialog -->
|
||||
<system:String x:Key="customeQueryHotkeyTitle">自定義熱鍵查詢</system:String>
|
||||
<system:String x:Key="customeQueryHotkeyTitle">自定義快捷鍵查詢</system:String>
|
||||
<system:String x:Key="customeQueryHotkeyTips">Press the custom hotkey to automatically insert the specified query.</system:String>
|
||||
<system:String x:Key="preview">預覽</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">熱鍵不存在,請設定一個新的熱鍵</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">快捷鍵不存在,請設定一個新的快捷鍵</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">外掛熱鍵無法使用</system:String>
|
||||
<system:String x:Key="update">更新</system:String>
|
||||
|
||||
<!-- Hotkey Control -->
|
||||
<system:String x:Key="hotkeyUnavailable">熱鍵無法使用</system:String>
|
||||
<system:String x:Key="hotkeyUnavailable">快捷鍵無法使用</system:String>
|
||||
|
||||
<!-- Crash Reporter -->
|
||||
<system:String x:Key="reportWindow_version">版本</system:String>
|
||||
|
|
@ -254,28 +255,28 @@
|
|||
<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">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_Page2_Title">在PC上搜尋並執行所有文件和應用程式</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">Action Keyword and Commands</system:String>
|
||||
<system:String x:Key="Welcome_Page4_Title">關鍵字與指令</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">開始使用 Flow Launcher吧!</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Text01">大功告成! 別忘了使用快捷鍵以開始 :)</system:String>
|
||||
|
||||
<!-- General Guide & Hotkey -->
|
||||
|
||||
<system:String x:Key="HotkeyUpDownDesc">Back / Context Menu</system:String>
|
||||
<system:String x:Key="HotkeyUpDownDesc">返回 / 快捷選單</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 Contaning Folder</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">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">開啟視窗設定</system:String>
|
||||
<system:String x:Key="HotkeyF5Desc">充新載入插件數據</system:String>
|
||||
<system:String x:Key="HotkeyF5Desc">重新載入外掛資料</system:String>
|
||||
|
||||
<system:String x:Key="RecommendWeather">天氣</system:String>
|
||||
<system:String x:Key="RecommendWeatherDesc">Google 搜索的天氣結果</system:String>
|
||||
|
|
|
|||
|
|
@ -517,6 +517,7 @@ namespace Flow.Launcher
|
|||
if (specialKeyState.CtrlPressed)
|
||||
{
|
||||
if (_viewModel.SelectedIsFromQueryResults()
|
||||
&& QueryTextBox.Text.Length > 0
|
||||
&& QueryTextBox.CaretIndex == QueryTextBox.Text.Length)
|
||||
{
|
||||
var queryWithoutActionKeyword =
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Flow.Launcher
|
|||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "<Pending>")]
|
||||
public static void Show(string title, string subTitle, string iconPath)
|
||||
public static void Show(string title, string subTitle, string iconPath = null)
|
||||
{
|
||||
// Handle notification for win7/8/early win10
|
||||
if (legacy)
|
||||
|
|
@ -45,4 +45,4 @@ namespace Flow.Launcher
|
|||
msg.Show(title, subTitle, iconPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ using System.Windows;
|
|||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None,
|
||||
ResourceDictionaryLocation.SourceAssembly
|
||||
)]
|
||||
)]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
|
|
@ -23,7 +23,6 @@ using System.Runtime.CompilerServices;
|
|||
using Flow.Launcher.Infrastructure.Logger;
|
||||
using Flow.Launcher.Infrastructure.Storage;
|
||||
using System.Collections.Concurrent;
|
||||
using Flow.Launcher.Plugin.SharedCommands;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Flow.Launcher
|
||||
|
|
@ -83,7 +82,7 @@ namespace Flow.Launcher
|
|||
ImageLoader.Save();
|
||||
}
|
||||
|
||||
public Task ReloadAllPluginData() => PluginManager.ReloadData();
|
||||
public Task ReloadAllPluginData() => PluginManager.ReloadDataAsync();
|
||||
|
||||
public void ShowMsgError(string title, string subTitle = "") =>
|
||||
ShowMsg(title, subTitle, Constant.ErrorIcon, true);
|
||||
|
|
@ -288,4 +287,4 @@ namespace Flow.Launcher
|
|||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using Flow.Launcher.Core.ExternalPlugins;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
|
|
@ -22,13 +23,34 @@ namespace Flow.Launcher
|
|||
SetException(exception);
|
||||
}
|
||||
|
||||
private static string GetIssueUrl(string website)
|
||||
{
|
||||
if (!website.StartsWith("https://github.com"))
|
||||
{
|
||||
return website;
|
||||
}
|
||||
if(website.Contains("Flow-Launcher/Flow.Launcher"))
|
||||
{
|
||||
return Constant.Issue;
|
||||
}
|
||||
var treeIndex = website.IndexOf("tree", StringComparison.Ordinal);
|
||||
return treeIndex == -1 ? $"{website}/issues/new" : $"{website[..treeIndex]}/issues/new";
|
||||
}
|
||||
|
||||
private void SetException(Exception exception)
|
||||
{
|
||||
string path = Log.CurrentLogDirectory;
|
||||
var directory = new DirectoryInfo(path);
|
||||
var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
|
||||
|
||||
var paragraph = Hyperlink("Please open new issue in: ", Constant.Issue);
|
||||
var websiteUrl = exception switch
|
||||
{
|
||||
FlowPluginException pluginException =>GetIssueUrl(pluginException.Metadata.Website),
|
||||
_ => Constant.Issue
|
||||
};
|
||||
|
||||
|
||||
var paragraph = Hyperlink("Please open new issue in: ", websiteUrl);
|
||||
paragraph.Inlines.Add($"1. upload log file: {log.FullName}\n");
|
||||
paragraph.Inlines.Add($"2. copy below exception message");
|
||||
ErrorTextbox.Document.Blocks.Add(paragraph);
|
||||
|
|
@ -49,7 +71,10 @@ namespace Flow.Launcher
|
|||
var paragraph = new Paragraph();
|
||||
paragraph.Margin = new Thickness(0);
|
||||
|
||||
var link = new Hyperlink { IsEnabled = true };
|
||||
var link = new Hyperlink
|
||||
{
|
||||
IsEnabled = true
|
||||
};
|
||||
link.Inlines.Add(url);
|
||||
link.NavigateUri = new Uri(url);
|
||||
link.RequestNavigate += (s, e) => SearchWeb.OpenInBrowserTab(e.Uri.ToString());
|
||||
|
|
@ -62,4 +87,4 @@ namespace Flow.Launcher
|
|||
return paragraph;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ namespace Flow.Launcher.Resources.Pages
|
|||
tbMsgTextOriginal = HotkeyControl.tbMsg.Text;
|
||||
tbMsgForegroundColorOriginal = HotkeyControl.tbMsg.Foreground;
|
||||
|
||||
HotkeyControl.SetHotkey(new Infrastructure.Hotkey.HotkeyModel(Settings.Hotkey), false);
|
||||
HotkeyControl.SetHotkeyAsync(new Infrastructure.Hotkey.HotkeyModel(Settings.Hotkey), false);
|
||||
}
|
||||
private void HotkeyControl_OnGotFocus(object sender, RoutedEventArgs args)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
Height="32"
|
||||
Margin="0,0,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
Source="{Binding Image}"
|
||||
Source="{Binding Image, TargetNullValue={x:Null}}"
|
||||
Stretch="Uniform"
|
||||
Visibility="{Binding ShowIcon}" />
|
||||
</Border>
|
||||
|
|
|
|||
|
|
@ -598,10 +598,8 @@
|
|||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource startFlowLauncherOnSystemStartup}" />
|
||||
</StackPanel>
|
||||
<CheckBox
|
||||
Checked="OnAutoStartupChecked"
|
||||
IsChecked="{Binding Settings.StartFlowLauncherOnSystemStartup}"
|
||||
Style="{DynamicResource SideControlCheckBox}"
|
||||
Unchecked="OnAutoStartupUncheck" />
|
||||
IsChecked="{Binding StartFlowLauncherOnSystemStartup}"
|
||||
Style="{DynamicResource SideControlCheckBox}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
|
|
@ -917,6 +915,7 @@
|
|||
Padding="0,0,0,0"
|
||||
Background="{DynamicResource Color01B}">
|
||||
<ListBox
|
||||
Name="Plugins"
|
||||
Width="Auto"
|
||||
Margin="5,0,0,0"
|
||||
Padding="0,0,7,0"
|
||||
|
|
@ -927,6 +926,7 @@
|
|||
ScrollViewer.CanContentScroll="False"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
||||
SelectedItem="{Binding SelectedPlugin}"
|
||||
SelectionChanged="SelectedPluginChanged"
|
||||
SnapsToDevicePixels="True">
|
||||
<ListBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
|
|
@ -1116,7 +1116,8 @@
|
|||
Margin="0"
|
||||
Padding="1"
|
||||
VerticalAlignment="Stretch"
|
||||
Content="{Binding SettingControl}" />
|
||||
Content="{Binding SettingControl}"
|
||||
SizeChanged="ItemSizeChanged" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel>
|
||||
|
|
@ -1126,8 +1127,7 @@
|
|||
VerticalAlignment="Center"
|
||||
BorderThickness="0,1,0,0"
|
||||
CornerRadius="0"
|
||||
Style="{DynamicResource SettingGroupBox}"
|
||||
Visibility="{Binding ActionKeywordsVisibility}">
|
||||
Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{DynamicResource SettingGrid}">
|
||||
<StackPanel
|
||||
Margin="0,0,-14,0"
|
||||
|
|
@ -1793,7 +1793,8 @@
|
|||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
ItemsSource="{Binding Source={StaticResource SortedFonts}}"
|
||||
SelectedItem="{Binding SelectedQueryBoxFont}" />
|
||||
SelectedItem="{Binding SelectedQueryBoxFont}"
|
||||
IsSynchronizedWithCurrentItem="False" />
|
||||
<ComboBox
|
||||
Width="130"
|
||||
Margin="10,0,0,0"
|
||||
|
|
@ -1843,7 +1844,8 @@
|
|||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
ItemsSource="{Binding Source={StaticResource SortedFonts}}"
|
||||
SelectedItem="{Binding SelectedResultFont}" />
|
||||
SelectedItem="{Binding SelectedResultFont}"
|
||||
IsSynchronizedWithCurrentItem="False" />
|
||||
<ComboBox
|
||||
Width="130"
|
||||
Margin="10,-2,0,0"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
using Flow.Launcher.Core.ExternalPlugins;
|
||||
using Flow.Launcher.Core.ExternalPlugins;
|
||||
using Flow.Launcher.Core.Plugin;
|
||||
using Flow.Launcher.Core.Resource;
|
||||
using Flow.Launcher.Helper;
|
||||
using Flow.Launcher.Infrastructure;
|
||||
using Flow.Launcher.Infrastructure.Hotkey;
|
||||
using Flow.Launcher.Infrastructure.Logger;
|
||||
using Flow.Launcher.Infrastructure.UserSettings;
|
||||
using Flow.Launcher.Plugin;
|
||||
using Flow.Launcher.Plugin.SharedCommands;
|
||||
|
|
@ -13,12 +14,15 @@ using ModernWpf;
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Navigation;
|
||||
using Button = System.Windows.Controls.Button;
|
||||
using Control = System.Windows.Controls.Control;
|
||||
using ListViewItem = System.Windows.Controls.ListViewItem;
|
||||
using MessageBox = System.Windows.MessageBox;
|
||||
using TextBox = System.Windows.Controls.TextBox;
|
||||
using ThemeManager = ModernWpf.ThemeManager;
|
||||
|
|
@ -27,12 +31,9 @@ namespace Flow.Launcher
|
|||
{
|
||||
public partial class SettingWindow
|
||||
{
|
||||
private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
|
||||
|
||||
public readonly IPublicAPI API;
|
||||
private Settings settings;
|
||||
private SettingWindowViewModel viewModel;
|
||||
private static MainViewModel mainViewModel;
|
||||
|
||||
public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
|
||||
{
|
||||
|
|
@ -44,6 +45,7 @@ namespace Flow.Launcher
|
|||
}
|
||||
|
||||
#region General
|
||||
|
||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RefreshMaximizeRestoreButton();
|
||||
|
|
@ -54,39 +56,6 @@ namespace Flow.Launcher
|
|||
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
|
||||
}
|
||||
|
||||
private void OnAutoStartupChecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SetStartup();
|
||||
}
|
||||
|
||||
private void OnAutoStartupUncheck(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RemoveStartup();
|
||||
}
|
||||
|
||||
public static void SetStartup()
|
||||
{
|
||||
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
|
||||
key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath);
|
||||
}
|
||||
|
||||
private void RemoveStartup()
|
||||
{
|
||||
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
|
||||
key?.DeleteValue(Constant.FlowLauncher, false);
|
||||
}
|
||||
|
||||
public static bool StartupSet()
|
||||
{
|
||||
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
|
||||
var path = key?.GetValue(Constant.FlowLauncher) as string;
|
||||
if (path != null)
|
||||
{
|
||||
return path == Constant.ExecutablePath;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void OnSelectPythonDirectoryClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var dlg = new FolderBrowserDialog
|
||||
|
|
@ -132,7 +101,7 @@ namespace Flow.Launcher
|
|||
|
||||
private void OnHotkeyControlLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
HotkeyControl.SetHotkey(viewModel.Settings.Hotkey, false);
|
||||
_ = HotkeyControl.SetHotkeyAsync(viewModel.Settings.Hotkey, false);
|
||||
}
|
||||
|
||||
private void OnHotkeyControlFocused(object sender, RoutedEventArgs e)
|
||||
|
|
@ -247,6 +216,7 @@ namespace Flow.Launcher
|
|||
PluginManager.API.OpenDirectory(directory);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proxy
|
||||
|
|
@ -259,7 +229,7 @@ namespace Flow.Launcher
|
|||
|
||||
#endregion
|
||||
|
||||
private async void OnCheckUpdates(object sender, RoutedEventArgs e)
|
||||
private void OnCheckUpdates(object sender, RoutedEventArgs e)
|
||||
{
|
||||
viewModel.UpdateApp(); // TODO: change to command
|
||||
}
|
||||
|
|
@ -307,7 +277,7 @@ namespace Flow.Launcher
|
|||
|
||||
private void OnExternalPluginInstallClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if(sender is Button { DataContext: UserPlugin plugin })
|
||||
if (sender is Button { DataContext: UserPlugin plugin })
|
||||
{
|
||||
var pluginsManagerPlugin = PluginManager.GetPluginForId("9f8f9b14-2518-4907-b211-35ab6290dee7");
|
||||
var actionKeyword = pluginsManagerPlugin.Metadata.ActionKeywords.Count == 0 ? "" : pluginsManagerPlugin.Metadata.ActionKeywords[0];
|
||||
|
|
@ -326,7 +296,7 @@ namespace Flow.Launcher
|
|||
textBox.MoveFocus(tRequest);
|
||||
}
|
||||
|
||||
private void ColorSchemeSelectedIndexChanged(object sender, EventArgs e)
|
||||
private void ColorSchemeSelectedIndexChanged(object sender, EventArgs e)
|
||||
=> ThemeManager.Current.ApplicationTheme = settings.ColorScheme switch
|
||||
{
|
||||
Constant.Light => ApplicationTheme.Light,
|
||||
|
|
@ -370,5 +340,13 @@ namespace Flow.Launcher
|
|||
RefreshMaximizeRestoreButton();
|
||||
}
|
||||
|
||||
private void SelectedPluginChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
Plugins.ScrollIntoView(Plugins.SelectedItem);
|
||||
}
|
||||
private void ItemSizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
Plugins.ScrollIntoView(Plugins.SelectedItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
|
@ -194,37 +194,38 @@ namespace Flow.Launcher.ViewModel
|
|||
PluginManager.API.OpenUrl("https://github.com/Flow-Launcher/Flow.Launcher/wiki/Flow-Launcher/");
|
||||
});
|
||||
OpenSettingCommand = new RelayCommand(_ => { App.API.OpenSettingDialog(); });
|
||||
OpenResultCommand = new RelayCommand(index =>
|
||||
OpenResultCommand = new RelayCommand(async index =>
|
||||
{
|
||||
var results = SelectedResults;
|
||||
|
||||
if (index != null)
|
||||
{
|
||||
results.SelectedIndex = int.Parse(index.ToString());
|
||||
results.SelectedIndex = int.Parse(index.ToString()!);
|
||||
}
|
||||
|
||||
var result = results.SelectedItem?.Result;
|
||||
if (result != null) // SelectedItem returns null if selection is empty.
|
||||
if (result == null)
|
||||
{
|
||||
bool hideWindow = result.Action != null && result.Action(new ActionContext
|
||||
{
|
||||
SpecialKeyState = GlobalHotkey.CheckModifiers()
|
||||
});
|
||||
return;
|
||||
}
|
||||
var hideWindow = await result.ExecuteAsync(new ActionContext
|
||||
{
|
||||
SpecialKeyState = GlobalHotkey.CheckModifiers()
|
||||
}).ConfigureAwait(false);
|
||||
|
||||
if (hideWindow)
|
||||
{
|
||||
Hide();
|
||||
}
|
||||
if (hideWindow)
|
||||
{
|
||||
Hide();
|
||||
}
|
||||
|
||||
if (SelectedIsFromQueryResults())
|
||||
{
|
||||
_userSelectedRecord.Add(result);
|
||||
_history.Add(result.OriginQuery.RawQuery);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedResults = Results;
|
||||
}
|
||||
if (SelectedIsFromQueryResults())
|
||||
{
|
||||
_userSelectedRecord.Add(result);
|
||||
_history.Add(result.OriginQuery.RawQuery);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedResults = Results;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -298,16 +299,16 @@ namespace Flow.Launcher.ViewModel
|
|||
{
|
||||
Hide();
|
||||
|
||||
PluginManager
|
||||
.ReloadData()
|
||||
_ = PluginManager
|
||||
.ReloadDataAsync()
|
||||
.ContinueWith(_ =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
Notification.Show(
|
||||
InternationalizationManager.Instance.GetTranslation("success"),
|
||||
InternationalizationManager.Instance.GetTranslation("completedSuccessfully"),
|
||||
"");
|
||||
}))
|
||||
InternationalizationManager.Instance.GetTranslation("completedSuccessfully")
|
||||
);
|
||||
}), TaskScheduler.Default)
|
||||
.ConfigureAwait(false);
|
||||
});
|
||||
}
|
||||
|
|
@ -572,7 +573,7 @@ namespace Flow.Launcher.ViewModel
|
|||
if (currentCancellationToken.IsCancellationRequested)
|
||||
return;
|
||||
|
||||
var query = QueryBuilder.Build(QueryText.Trim(), PluginManager.NonGlobalPlugins);
|
||||
var query = QueryBuilder.Build(QueryText, PluginManager.NonGlobalPlugins);
|
||||
|
||||
// handle the exclusiveness of plugin using action keyword
|
||||
RemoveOldQueryResults(query);
|
||||
|
|
@ -664,7 +665,7 @@ namespace Flow.Launcher.ViewModel
|
|||
|
||||
private void RemoveOldQueryResults(Query query)
|
||||
{
|
||||
if (_lastQuery.ActionKeyword != query.ActionKeyword)
|
||||
if (_lastQuery?.ActionKeyword != query?.ActionKeyword)
|
||||
{
|
||||
Results.Clear();
|
||||
}
|
||||
|
|
@ -926,4 +927,4 @@ namespace Flow.Launcher.ViewModel
|
|||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace Flow.Launcher.ViewModel
|
|||
{
|
||||
public class RelayCommand : ICommand
|
||||
{
|
||||
private Action<object> _action;
|
||||
private readonly Action<object> _action;
|
||||
|
||||
public RelayCommand(Action<object> action)
|
||||
{
|
||||
|
|
@ -17,7 +17,9 @@ namespace Flow.Launcher.ViewModel
|
|||
return true;
|
||||
}
|
||||
|
||||
#pragma warning disable CS0067 // the event is never used
|
||||
public event EventHandler CanExecuteChanged;
|
||||
#pragma warning restore CS0067
|
||||
|
||||
public virtual void Execute(object parameter)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
@ -60,7 +60,30 @@ namespace Flow.Launcher.ViewModel
|
|||
Settings.AutoUpdates = value;
|
||||
|
||||
if (value)
|
||||
{
|
||||
UpdateApp();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool StartFlowLauncherOnSystemStartup
|
||||
{
|
||||
get => Settings.StartFlowLauncherOnSystemStartup;
|
||||
set
|
||||
{
|
||||
Settings.StartFlowLauncherOnSystemStartup = value;
|
||||
|
||||
try
|
||||
{
|
||||
if (value)
|
||||
AutoStartup.Enable();
|
||||
else
|
||||
AutoStartup.Disable();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Notification.Show(InternationalizationManager.Instance.GetTranslation("setAutoStartFailed"), e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,18 +3,18 @@
|
|||
|
||||
<!-- Plugin Info -->
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_plugin_name">Marcadores del navegador</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_plugin_description">Busca en los marcadores de tu navegador</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_plugin_description">Busque en sus marcadores del navegador</system:String>
|
||||
|
||||
<!-- Settings -->
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_bookmarkDataSetting">Datos de marcador</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_openBookmarks">Abrir marcadores en:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newWindow">Nueva ventana</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newTab">Nueva Pestaña</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newTab">Nueva pestaña</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_setBrowserFromPath">Establecer navegador desde ruta:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_choose">Elige</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_title">Copiar enlace</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_subtitle">Copiar enlace del marcador al portapapeles</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_loadBrowserFrom">Iniciar navegador desde:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_choose">Elegir</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_title">Copiar url</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_subtitle">Copia la url del marcador al portapapeles</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_loadBrowserFrom">Cargar navegador desde:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserName">Nombre del navegador</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserBookmarkDataDirectory">Ruta del directorio de datos</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_addBrowserBookmark">Añadir</system:String>
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@
|
|||
<!-- Settings -->
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_bookmarkDataSetting">북마크 데이터</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_openBookmarks">Open bookmarks in:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newWindow">New window</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newTab">New tab</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newWindow">새 창</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newTab">새 탭</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_setBrowserFromPath">Set browser from path:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_choose">Choose</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_choose">선택</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_title">Copy url</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_subtitle">Copy the bookmark's url to clipboard</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_loadBrowserFrom">Load Browser From:</system:String>
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
<!-- Settings -->
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_bookmarkDataSetting">書籤資料</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_openBookmarks">Open bookmarks in:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_openBookmarks">載入書籤至:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newWindow">新增視窗</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_newTab">新增分頁</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_setBrowserFromPath">Set browser from path:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_setBrowserFromPath">設定瀏覽器路徑:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_settings_choose">選擇</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_title">複製網址</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_copyurl_subtitle">複製書籤網址</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_loadBrowserFrom">Load Browser From:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_loadBrowserFrom">載入瀏覽器自:</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserName">瀏覽器名稱</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserBookmarkDataDirectory">Data Directory Path</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserBookmarkDataDirectory">檔案目錄路徑</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_addBrowserBookmark">新增</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_removeBrowserBookmark">刪除</system:String>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<system:String x:Key="flowlauncher_plugin_caculator_plugin_name">Calculadora</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_caculator_plugin_description">Permite hacer cálculos matemáticos. (Pruebe 5*3-2 en Flow Launcher)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_not_a_number">No es un número (NaN)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_expression_not_complete">Expresión incorrecta o incompleta (¿Has olvidado algún paréntesis?)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_expression_not_complete">Expresión incorrecta o incompleta (¿Ha olvidado algunos paréntesis?)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_copy_number_to_clipboard">Copiar este número al portapapeles</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_output_decimal_seperator">Separador decimal</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_output_decimal_seperator_help">El separador decimal que se utilizará en la salida.</system:String>
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
<system:String x:Key="flowlauncher_plugin_caculator_plugin_name">計算機</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_caculator_plugin_description">為 Flow Launcher 提供數學計算功能。(試著在 Flow Launcher 輸入 5*3-2)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_not_a_number">Not a number (NaN)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_not_a_number">不是一個數 (NaN)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_expression_not_complete">Expression wrong or incomplete (Did you forget some parentheses?)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_copy_number_to_clipboard">Copy this number to the clipboard</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_output_decimal_seperator">Decimal separator</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_copy_number_to_clipboard">複製此數至剪貼簿</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_output_decimal_seperator">小數點分隔符號</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_output_decimal_seperator_help">The decimal separator to be used in the output.</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_use_system_locale">Use system locale</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_comma">Comma (,)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_dot">Dot (.)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_max_decimal_places">Max. decimal places</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_use_system_locale">使用系統區域設定</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_comma">逗號 (,)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_decimal_seperator_dot">點 (.)</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_calculator_max_decimal_places">小數點後最大位數</system:String>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices;
|
||||
|
|
@ -98,7 +98,7 @@ namespace Flow.Launcher.Plugin.Caculator
|
|||
Clipboard.SetDataObject(newResult);
|
||||
return true;
|
||||
}
|
||||
catch (ExternalException e)
|
||||
catch (ExternalException)
|
||||
{
|
||||
MessageBox.Show("Copy failed, please try later");
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
|
@ -204,7 +204,7 @@ namespace Flow.Launcher.Plugin.Explorer
|
|||
{
|
||||
try
|
||||
{
|
||||
Task.Run(() => ShellCommand.RunAsDifferentUser(record.FullPath.SetProcessStartInfo()));
|
||||
_ = Task.Run(() => ShellCommand.RunAsDifferentUser(record.FullPath.SetProcessStartInfo()));
|
||||
}
|
||||
catch (FileNotFoundException e)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Slet</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Löschen</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Eliminar</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
@ -29,7 +32,7 @@
|
|||
<system:String x:Key="plugin_explorer_actionkeywordview_indexsearch">Index Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_quickaccess">Quick Access:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_current">Current Action Keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">Done</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">Hecho</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">Enabled</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">When disabled Flow will not execute this search option, and will additionally revert back to '*' to free up the action keyword</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,17 +2,17 @@
|
|||
<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">
|
||||
|
||||
<!--Dialogues-->
|
||||
<system:String x:Key="plugin_explorer_make_selection_warning">Por favor, seleccione primero</system:String>
|
||||
<system:String x:Key="plugin_explorer_make_selection_warning">Por favor haga una selección primero</system:String>
|
||||
<system:String x:Key="plugin_explorer_select_folder_link_warning">Por favor, seleccione un enlace de carpeta</system:String>
|
||||
<system:String x:Key="plugin_explorer_delete_folder_link">¿Estás seguro de que quieres eliminar {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolderconfirm">¿Estás seguro que quieres eliminar permanentemente este {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_delete_folder_link">¿Está seguro que desea eliminar {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolderconfirm">¿Está seguro de que desea eliminar permanentemente este {0}?</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess">Eliminado correctamente</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefoldersuccess_detail">El {0} fué eliminado correctamente</system:String>
|
||||
<system:String x:Key="plugin_explorer_globalActionKeywordInvalid">Asignar una palabra clave para acciones global podría mostrar demasiados resultados en las búsquedas. Por favor, seleccione una palabra clave específica</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccess_globalActionKeywordInvalid">El acceso rápido no puede usar la palabra clave para acciones global cuando está habilitado. Por favor, elija una palabra clave específica</system:String>
|
||||
<system:String x:Key="plugin_explorer_globalActionKeywordInvalid">Asignar la palabra clave de acción global podría generar demasiados resultados durante la búsqueda. Por favor, elija una palabra clave de acción específica</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccess_globalActionKeywordInvalid">El acceso rápido no puede usar la palabra clave de acción global cuando está habilitado. Por favor, elija una palabra clave específica</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceNotRunning">El servicio requerido de indexación de búsqueda de Windows no parece estar ejecutándose</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">Para solventarlo, inicia el servicio de búsqueda de Windows. Selecciona aquí para eliminar esta advertencia</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">El mensaje de advertencia se ha desactivado. Como alternativa para buscar archivos y carpetas, ¿te gustaría instalar el complemento Everything?{0}{0}Selecciona 'Sí' para instalar el complemento Everythong, o 'No' para volver</system:String>
|
||||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">Para solucionar esto, inicie el servicio de búsqueda de Windows. Seleccione aquí para eliminar esta advertencia</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">El mensaje de advertencia se ha desactivado. Como alternativa para buscar archivos y carpetas, ¿desea instalar el complemento Everything?{0}{0}Seleccione 'Sí' para instalar el complemento Everything, o 'No' para volver</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorador alternativo</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Se ha producido un error durante la búsqueda: {0}</system:String>
|
||||
|
||||
|
|
@ -23,8 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Personalizar palabras clave de acción</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Enlaces de acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Rutas excluídas del índice de búsqueda</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Utilizar búsqueda indexada para buscar rutas</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Al activar esta opción, los directorios/archivos indexados se mostrarán más rápidamente, pero si un directorio/archivo no está indexado, no se mostrará. Si se ha agregado un directorio/archivo a la Ruta Excluida de Búsqueda por Índice (Index Search Excluded Path), seguirá apareciendo incluso si la opción está activada</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Usar búsqueda indexada para buscar rutas</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Al activar esta opción, los directorios/archivos indexados se mostrarán más rápidamente, pero si un directorio/archivo no está indexado, no se mostrará. Si se ha agregado un directorio/archivo a la ruta de exclusión del índice de búsqueda se seguirá mostrando incluso si la opción está activada</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Opciones de indexación</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Buscar:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Ruta de búsqueda:</system:String>
|
||||
|
|
@ -32,9 +32,9 @@
|
|||
<system:String x:Key="plugin_explorer_actionkeywordview_indexsearch">Buscar índice:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_quickaccess">Acceso rápido:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_current">Palabra clave de acción actual</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">Listo</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">Aceptar</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">Activado</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">Cuando esté deshabilitado Flow no ejecutará la opción de búsqueda, y además usará '*' para no dejar en uso la palabra clave de la acción</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">Cuando esté desactivado, Flow no ejecutará esta opción de búsqueda, y además volverá a '*' para liberar la palabra clave de acción</system:String>
|
||||
|
||||
<!--Plugin Infos-->
|
||||
<system:String x:Key="plugin_explorer_plugin_name">Explorador</system:String>
|
||||
|
|
@ -45,26 +45,26 @@
|
|||
<system:String x:Key="plugin_explorer_copyfilefolder">Copiar</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder">Eliminar</system:String>
|
||||
<system:String x:Key="plugin_explorer_path">Ruta:</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">Eliminar el seleccionado</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">Elimina el seleccionado</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser">Ejecutar como usuario diferente</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">Ejecutar lo seleccionado usando una cuenta de usuario diferente</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">Ejecuta la selección usando una cuenta de usuario diferente</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder">Abrir carpeta contenedora</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Abre la ubicación del archivo o carpeta</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Abre la ubicación que contiene el archivo o carpeta</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">Abrir con el editor:</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludefromindexsearch">Excluir la carpeta actual y sus subcarpetas del índice de búsqueda</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludedfromindexsearch_msg">Excluido del índice de búsqueda</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions">Abrir opciones de indexación de Windows</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_subtitle">Administrar archivos y carpetas indexados</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_errormsg">Error al abrir las opciones de indexación de Windows</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_subtitle">Administra archivos y carpetas indexados</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions_errormsg">No se ha podido abrir las opciones de indexación de Windows</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_title">Añadir al acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">Añadir el {0} actual al acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_add_to_quickaccess_subtitle">Añade el {0} actual al acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess">Añadido correctamente</system:String>
|
||||
<system:String x:Key="plugin_explorer_addfilefoldersuccess_detail">Añadido correctamente al acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess">Eliminado correctamente</system:String>
|
||||
<system:String x:Key="plugin_explorer_removefilefoldersuccess_detail">Eliminado correctamente del acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_titletooltip">Añadir al acceso rápido para que se pueda abrir con la palabra clave de acción de la búsqueda del explorador de windows</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_titletooltip">Añade al acceso rápido para que se pueda abrir con la palabra clave de acción que activa la búsqueda del explorador</system:String>
|
||||
<system:String x:Key="plugin_explorer_contextmenu_remove_titletooltip">Eliminar del acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_title">Eliminar del acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">Eliminar el {0} actual del acceso rápido</system:String>
|
||||
<system:String x:Key="plugin_explorer_remove_from_quickaccess_subtitle">Elimina el {0} actual del acceso rápido</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Supprimer</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Cancella</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">削除</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">삭제</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">사용자 지정 액션 키워드</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">색인 옵션</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">검색:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">경로 검색:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Delete</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Verwijder</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Usuń</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Apagar</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Удалить</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Obriši</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Sil</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">Видалити</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">若要解决这个问题,请启动 Windows 搜索服务。点击此处删除警告</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">警告消息已关闭。 作为搜索文件和文件夹的一个替代办法,你想要安装 Everything 插件吗?{0}{0}选择 '是'安装Everything插件',或者'否' 退出</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">资源管理器选项</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">删除</system:String>
|
||||
|
|
@ -22,6 +23,8 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">自定义动作关键字</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">快速访问链接</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">索引搜索排除的路径</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">索引选项</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">搜索激活:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">路径搜索激活:</system:String>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<system:String x:Key="plugin_explorer_windowsSearchServiceFix">To fix this, start the Windows Search service. Select here to remove this warning</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative">The warning message has been switched off. As an alternative for searching files and folders, would you like to install Everything plugin?{0}{0}Select 'Yes' to install Everything plugin, or 'No' to return</system:String>
|
||||
<system:String x:Key="plugin_explorer_alternative_title">Explorer Alternative</system:String>
|
||||
<system:String x:Key="plugin_explorer_directoryinfosearch_error">Error occurred during search: {0}</system:String>
|
||||
|
||||
<!--Controls-->
|
||||
<system:String x:Key="plugin_explorer_delete">刪除</system:String>
|
||||
|
|
@ -22,32 +23,34 @@
|
|||
<system:String x:Key="plugin_explorer_manageactionkeywords_header">Customise Action Keywords</system:String>
|
||||
<system:String x:Key="plugin_explorer_quickaccesslinks_header">Quick Access Links</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Index Search Excluded Paths</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Indexing Options</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch_tooltip">Turning this on will return indexed directories/files faster, but if a directory/file is not indexed it will not show up. If a directory/file has been added to Index Search Excluded Path then it will still show up even if this option is on</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">索引選項</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">搜尋:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_pathsearch">Path Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_filecontentsearch">File Content Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_indexsearch">Index Search:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_quickaccess">Quick Access:</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_current">Current Action Keyword</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_done">確</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">Enabled</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled">已啟用</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeyword_enabled_tooltip">When disabled Flow will not execute this search option, and will additionally revert back to '*' to free up the action keyword</system:String>
|
||||
|
||||
<!--Plugin Infos-->
|
||||
<system:String x:Key="plugin_explorer_plugin_name">Explorer</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_name">檔案總管</system:String>
|
||||
<system:String x:Key="plugin_explorer_plugin_description">Search and manage files and folders. Explorer utilises Windows Index Search</system:String>
|
||||
|
||||
<!--Context menu items-->
|
||||
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
|
||||
<system:String x:Key="plugin_explorer_copypath">複製路徑</system:String>
|
||||
<system:String x:Key="plugin_explorer_copyfilefolder">複製</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder">刪除</system:String>
|
||||
<system:String x:Key="plugin_explorer_path">Path:</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">Delete the selected</system:String>
|
||||
<system:String x:Key="plugin_explorer_path">路徑:</system:String>
|
||||
<system:String x:Key="plugin_explorer_deletefilefolder_subtitle">刪除所選內容</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser">Run as different user</system:String>
|
||||
<system:String x:Key="plugin_explorer_runasdifferentuser_subtitle">Run the selected using a different user account</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder">Open containing folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder">開啟檔案位置</system:String>
|
||||
<system:String x:Key="plugin_explorer_opencontainingfolder_subtitle">Opens the location that contains the file or folder</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">Open With Editor:</system:String>
|
||||
<system:String x:Key="plugin_explorer_openwitheditor">在編輯器中開啟:</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludefromindexsearch">Exclude current and sub-directories from Index Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_excludedfromindexsearch_msg">Excluded from Index Search</system:String>
|
||||
<system:String x:Key="plugin_explorer_openindexingoptions">Open Windows Indexing Options</system:String>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue