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 jsonrpc_v2
# Conflicts: # Flow.Launcher.Plugin/Query.cs
This commit is contained in:
commit
24c125fd0d
62 changed files with 613 additions and 431 deletions
1
.github/actions/spelling/expect.txt
vendored
1
.github/actions/spelling/expect.txt
vendored
|
|
@ -78,6 +78,7 @@ WCA_ACCENT_POLICY
|
|||
HGlobal
|
||||
dopusrt
|
||||
firefox
|
||||
Firefox
|
||||
msedge
|
||||
svgc
|
||||
ime
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
New-Alias nuget.exe ".\packages\NuGet.CommandLine.*\tools\NuGet.exe"
|
||||
$env:APPVEYOR_BUILD_FOLDER = Convert-Path .
|
||||
$env:APPVEYOR_BUILD_VERSION = "1.2.0"
|
||||
& .\Deploy\squirrel_installer.ps1
|
||||
5
Directory.Build.props
Normal file
5
Directory.Build.props
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Flow.Launcher.Plugin;
|
||||
|
||||
|
|
@ -33,9 +33,13 @@ namespace Flow.Launcher.Core.Plugin
|
|||
searchTerms = terms;
|
||||
}
|
||||
|
||||
var query = new Query(rawQuery, search,terms, searchTerms, actionKeyword);
|
||||
|
||||
return query;
|
||||
return new Query ()
|
||||
{
|
||||
Search = search,
|
||||
RawQuery = rawQuery,
|
||||
SearchTerms = searchTerms,
|
||||
ActionKeyword = actionKeyword
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{2FEB2298-7653-4009-B1EA-FFFB1A768BCC}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Flow.Launcher.CrashReporter</RootNamespace>
|
||||
<AssemblyName>Flow.Launcher.CrashReporter</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\Output\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\Output\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Exceptionless, Version=1.5.2121.0, Culture=neutral, PublicKeyToken=fc181f0a46f65747, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Exceptionless.1.5.2121\lib\net45\Exceptionless.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Exceptionless.Models, Version=1.5.2121.0, Culture=neutral, PublicKeyToken=fc181f0a46f65747, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Exceptionless.1.5.2121\lib\net45\Exceptionless.Models.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="JetBrains.Annotations, Version=10.1.4.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\JetBrains.Annotations.10.1.4\lib\net20\JetBrains.Annotations.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\SolutionAssemblyInfo.cs">
|
||||
<Link>Properties\SolutionAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="CrashReporter.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ReportWindow.xaml.cs">
|
||||
<DependentUpon>ReportWindow.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="ReportWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Flow.Launcher.Core\Flow.Launcher.Core.csproj">
|
||||
<Project>{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}</Project>
|
||||
<Name>Flow.Launcher.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Flow.Launcher.Infrastructure\Flow.Launcher.Infrastructure.csproj">
|
||||
<Project>{4fd29318-a8ab-4d8f-aa47-60bc241b8da3}</Project>
|
||||
<Name>Flow.Launcher.Infrastructure</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Images\crash_warning.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
<Resource Include="Images\crash_go.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Images\crash_stop.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Images\app_error.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 738 B |
|
|
@ -1,5 +0,0 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("Flow.Launcher.CrashReporter")]
|
||||
[assembly: Guid("0ea3743c-2c0d-4b13-b9ce-e5e1f85aea23")]
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Exceptionless" version="1.5.2121" targetFramework="net452" />
|
||||
<package id="JetBrains.Annotations" version="10.1.4" targetFramework="net452" />
|
||||
<package id="System.Runtime" version="4.0.0" targetFramework="net452" />
|
||||
</packages>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
using System;
|
||||
|
||||
namespace Flow.Launcher.Infrastructure.Storage
|
||||
{
|
||||
[Obsolete("Deprecated as of Flow Launcher v1.8.0, on 2021.06.21. " +
|
||||
"This is used only for Everything plugin v1.4.9 or below backwards compatibility")]
|
||||
public interface ISavable : Plugin.ISavable { }
|
||||
}
|
||||
|
|
@ -26,9 +26,6 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: Remove. This is backwards compatibility for 1.10.0 release.
|
||||
public string PythonDirectory { get; set; }
|
||||
|
||||
public Dictionary<string, Plugin> Plugins { get; set; } = new Dictionary<string, Plugin>();
|
||||
|
||||
public void UpdatePluginSettings(List<PluginMetadata> metadatas)
|
||||
|
|
@ -38,25 +35,6 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
if (Plugins.ContainsKey(metadata.ID))
|
||||
{
|
||||
var settings = Plugins[metadata.ID];
|
||||
|
||||
if (metadata.ID == "572be03c74c642baae319fc283e561a8" && metadata.ActionKeywords.Count > settings.ActionKeywords.Count)
|
||||
{
|
||||
// TODO: Remove. This is backwards compatibility for Explorer 1.8.0 release.
|
||||
// Introduced two new action keywords in Explorer, so need to update plugin setting in the UserData folder.
|
||||
if (settings.Version.CompareTo("1.8.0") < 0)
|
||||
{
|
||||
settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for index search
|
||||
settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for path search
|
||||
settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for quick access action keyword
|
||||
}
|
||||
|
||||
// TODO: Remove. This is backwards compatibility for Explorer 1.9.0 release.
|
||||
// Introduced a new action keywords in Explorer since 1.8.0, so need to update plugin setting in the UserData folder.
|
||||
if (settings.Version.CompareTo("1.8.0") > 0)
|
||||
{
|
||||
settings.ActionKeywords.Add(Query.GlobalPluginWildcardSign); // for quick access action keyword
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(settings.Version))
|
||||
settings.Version = metadata.Version;
|
||||
|
|
|
|||
|
|
@ -254,6 +254,10 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public LastQueryMode LastQueryMode { get; set; } = LastQueryMode.Selected;
|
||||
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public AnimationSpeeds AnimationSpeed { get; set; } = AnimationSpeeds.Medium;
|
||||
public int CustomAnimationLength { get; set; } = 360;
|
||||
|
||||
|
||||
// This needs to be loaded last by staying at the bottom
|
||||
public PluginsSettings PluginSettings { get; set; } = new PluginsSettings();
|
||||
|
|
@ -290,4 +294,12 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
RightTop,
|
||||
Custom
|
||||
}
|
||||
|
||||
public enum AnimationSpeeds
|
||||
{
|
||||
Slow,
|
||||
Medium,
|
||||
Fast,
|
||||
Custom
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,18 +2,47 @@
|
|||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Context provided as a parameter when invoking a
|
||||
/// <see cref="Result.Action"/> or <see cref="Result.AsyncAction"/>
|
||||
/// </summary>
|
||||
public class ActionContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains the press state of certain special keys.
|
||||
/// </summary>
|
||||
public SpecialKeyState SpecialKeyState { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains the press state of certain special keys.
|
||||
/// </summary>
|
||||
public class SpecialKeyState
|
||||
{
|
||||
/// <summary>
|
||||
/// True if the Ctrl key is pressed.
|
||||
/// </summary>
|
||||
public bool CtrlPressed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True if the Shift key is pressed.
|
||||
/// </summary>
|
||||
public bool ShiftPressed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True if the Alt key is pressed.
|
||||
/// </summary>
|
||||
public bool AltPressed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True if the Windows key is pressed.
|
||||
/// </summary>
|
||||
public bool WinPressed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Get this object represented as a <see cref="ModifierKeys"/> flag combination.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ModifierKeys ToModifierKeys()
|
||||
{
|
||||
return (CtrlPressed ? ModifierKeys.Control : ModifierKeys.None) |
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
<PackageTags>flowlauncher</PackageTags>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
<PackageReadmeFile>Readme.md</PackageReadmeFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(APPVEYOR)' == 'True'">
|
||||
|
|
@ -56,7 +57,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="README.md" />
|
||||
<None Include="Readme.md" Pack="true" PackagePath="\"/>
|
||||
<None Include="FodyWeavers.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,18 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds support for presenting additional options for a given <see cref="Result"/> from a context menu.
|
||||
/// </summary>
|
||||
public interface IContextMenu : IFeatures
|
||||
{
|
||||
/// <summary>
|
||||
/// Load context menu items for the given result.
|
||||
/// </summary>
|
||||
/// <param name="selectedResult">
|
||||
/// The <see cref="Result"/> for which the user has activated the context menu.
|
||||
/// </param>
|
||||
List<Result> LoadContextMenus(Result selectedResult);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
using System.Globalization;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
|
|
@ -7,8 +7,14 @@ namespace Flow.Launcher.Plugin
|
|||
/// </summary>
|
||||
public interface IPluginI18n : IFeatures
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a localised version of the plugin's title
|
||||
/// </summary>
|
||||
string GetTranslatedPluginTitle();
|
||||
|
||||
/// <summary>
|
||||
/// Get a localised version of the plugin's description
|
||||
/// </summary>
|
||||
string GetTranslatedPluginDescription();
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -133,13 +133,6 @@ namespace Flow.Launcher.Plugin
|
|||
/// <returns></returns>
|
||||
List<PluginPair> GetAllPlugins();
|
||||
|
||||
/// <summary>
|
||||
/// Fired after global keyboard events
|
||||
/// if you want to hook something like Ctrl+R, you should use this event
|
||||
/// </summary>
|
||||
[Obsolete("Unable to Retrieve correct return value")]
|
||||
event FlowLauncherGlobalKeyboardEventHandler GlobalKeyboardEvent;
|
||||
|
||||
/// <summary>
|
||||
/// Register a callback for Global Keyboard Event
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
namespace Flow.Launcher.Plugin
|
||||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Save addtional plugin data. Inherit this interface if additional data e.g. cache needs to be saved,
|
||||
/// Otherwise if LoadSettingJsonStorage or SaveSettingJsonStorage has been callded,
|
||||
/// plugin settings will be automatically saved (see Flow.Launcher/PublicAPIInstance.SavePluginSettings) by Flow
|
||||
/// Inherit this interface if additional data e.g. cache needs to be saved.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// For storing plugin settings, prefer <see cref="IPublicAPI.LoadSettingJsonStorage{T}"/>
|
||||
/// or <see cref="IPublicAPI.SaveSettingJsonStorage{T}"/>.
|
||||
/// Once called, your settings will be automatically saved by Flow.
|
||||
/// </remarks>
|
||||
public interface ISavable : IFeatures
|
||||
{
|
||||
/// <summary>
|
||||
/// Save additional plugin data, such as cache.
|
||||
/// </summary>
|
||||
void Save();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Carries data passed to a plugin when it gets initialized.
|
||||
/// </summary>
|
||||
public class PluginInitContext
|
||||
{
|
||||
public PluginInitContext()
|
||||
|
|
@ -12,6 +15,9 @@
|
|||
API = api;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The metadata of the plugin being initialized.
|
||||
/// </summary>
|
||||
public PluginMetadata CurrentPluginMetadata { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -9,16 +9,11 @@ namespace Flow.Launcher.Plugin
|
|||
{
|
||||
public Query() { }
|
||||
|
||||
/// <summary>
|
||||
/// to allow unit tests for plug ins
|
||||
/// </summary>
|
||||
[Obsolete("Use the default Query constructor.")]
|
||||
public Query(string rawQuery, string search, string[] terms, string[] searchTerms, string actionKeyword = "")
|
||||
{
|
||||
Search = search;
|
||||
RawQuery = rawQuery;
|
||||
#pragma warning disable CS0618
|
||||
Terms = terms;
|
||||
#pragma warning restore CS0618
|
||||
SearchTerms = searchTerms;
|
||||
ActionKeyword = actionKeyword;
|
||||
}
|
||||
|
|
@ -39,49 +34,46 @@ namespace Flow.Launcher.Plugin
|
|||
/// <summary>
|
||||
/// Search part of a query.
|
||||
/// This will not include action keyword if exclusive plugin gets it, otherwise it should be same as RawQuery.
|
||||
/// Since we allow user to switch a exclusive plugin to generic plugin,
|
||||
/// Since we allow user to switch a exclusive plugin to generic plugin,
|
||||
/// so this property will always give you the "real" query part of the query
|
||||
/// </summary>
|
||||
public string Search { get; internal init; }
|
||||
|
||||
/// <summary>
|
||||
/// The search string split into a string array.
|
||||
/// Does not include the <see cref="ActionKeyword"/>.
|
||||
/// </summary>
|
||||
public string[] SearchTerms { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The raw query split into a string array
|
||||
/// </summary>
|
||||
[Obsolete("It may or may not include action keyword, which can be confusing. Use SearchTerms instead")]
|
||||
public string[] Terms { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Query can be splited into multiple terms by whitespace
|
||||
/// </summary>
|
||||
public const string TermSeparator = " ";
|
||||
|
||||
[Obsolete("Typo")]
|
||||
public const string TermSeperater = TermSeparator;
|
||||
/// <summary>
|
||||
/// User can set multiple action keywords seperated by ';'
|
||||
/// </summary>
|
||||
public const string ActionKeywordSeparator = ";";
|
||||
|
||||
[Obsolete("Typo")]
|
||||
public const string ActionKeywordSeperater = ActionKeywordSeparator;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// '*' is used for System Plugin
|
||||
/// Wildcard action keyword. Plugins using this value will be queried on every search.
|
||||
/// </summary>
|
||||
public const string GlobalPluginWildcardSign = "*";
|
||||
|
||||
/// <summary>
|
||||
/// The action keyword part of this query.
|
||||
/// For global plugins this value will be empty.
|
||||
/// </summary>
|
||||
public string ActionKeyword { get; init; }
|
||||
|
||||
[JsonIgnore]
|
||||
/// <summary>
|
||||
/// Return first search split by space if it has
|
||||
/// Splits <see cref="SearchTerms"/> by spaces and returns the first item.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// returns an empty string when <see cref="SearchTerms"/> does not have enough items.
|
||||
/// </remarks>
|
||||
public string FirstSearch => SplitSearch(0);
|
||||
|
||||
[JsonIgnore]
|
||||
|
|
@ -94,14 +86,20 @@ namespace Flow.Launcher.Plugin
|
|||
public string SecondToEndSearch => SearchTerms.Length > 1 ? (_secondToEndSearch ??= string.Join(' ', SearchTerms[1..])) : "";
|
||||
|
||||
/// <summary>
|
||||
/// Return second search split by space if it has
|
||||
/// Splits <see cref="SearchTerms"/> by spaces and returns the second item.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// returns an empty string when <see cref="SearchTerms"/> does not have enough items.
|
||||
/// </remarks>
|
||||
[JsonIgnore]
|
||||
public string SecondSearch => SplitSearch(1);
|
||||
|
||||
/// <summary>
|
||||
/// Return third search split by space if it has
|
||||
/// Splits <see cref="SearchTerms"/> by spaces and returns the third item.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// returns an empty string when <see cref="SearchTerms"/> does not have enough items.
|
||||
/// </remarks>
|
||||
[JsonIgnore]
|
||||
public string ThirdSearch => SplitSearch(2);
|
||||
|
||||
|
|
@ -110,6 +108,7 @@ namespace Flow.Launcher.Plugin
|
|||
return index < SearchTerms.Length ? SearchTerms[index] : string.Empty;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString() => RawQuery;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
What does Flow.Launcher.Plugin do?
|
||||
====
|
||||
Reference this package to develop a plugin for [Flow Launcher](https://github.com/Flow-Launcher/Flow.Launcher).
|
||||
|
||||
* Defines base objects and interfaces for plugins
|
||||
* Plugin authors making C# plugins should reference this DLL via nuget
|
||||
* Contains commands and models that can be used by plugins
|
||||
Useful links:
|
||||
|
||||
* [General plugin development guide](https://www.flowlauncher.com/docs/#/plugin-dev)
|
||||
* [.Net plugin development guide](https://www.flowlauncher.com/docs/#/develop-dotnet-plugins)
|
||||
* [Package API Reference](https://www.flowlauncher.com/docs/#/API-Reference/Flow.Launcher.Plugin)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Runtime;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
|
@ -8,7 +9,7 @@ using System.Windows.Media;
|
|||
namespace Flow.Launcher.Plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Describes the result of a plugin
|
||||
/// Describes a result of a <see cref="Query"/> executed by a plugin
|
||||
/// </summary>
|
||||
public class Result
|
||||
{
|
||||
|
|
@ -17,6 +18,8 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
private string _icoPath;
|
||||
|
||||
private string _copyText = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The title of the result. This is always required.
|
||||
/// </summary>
|
||||
|
|
@ -28,13 +31,13 @@ namespace Flow.Launcher.Plugin
|
|||
public string SubTitle { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// This holds the action keyword that triggered the result.
|
||||
/// This holds the action keyword that triggered the result.
|
||||
/// If result is triggered by global keyword: *, this should be empty.
|
||||
/// </summary>
|
||||
public string ActionKeywordAssigned { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This holds the text which can be provided by plugin to be copied to the
|
||||
/// This holds the text which can be provided by plugin to be copied to the
|
||||
/// user's clipboard when Ctrl + C is pressed on a result. If the text is a file/directory path
|
||||
/// flow will copy the actual file/folder instead of just the path text.
|
||||
/// </summary>
|
||||
|
|
@ -46,16 +49,17 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
/// <summary>
|
||||
/// This holds the text which can be provided by plugin to help Flow autocomplete text
|
||||
/// for user on the plugin result. If autocomplete action for example is tab, pressing tab will have
|
||||
/// for user on the plugin result. If autocomplete action for example is tab, pressing tab will have
|
||||
/// the default constructed autocomplete text (result's Title), or the text provided here if not empty.
|
||||
/// </summary>
|
||||
/// <remarks>When a value is not set, the <see cref="Title"/> will be used.</remarks>
|
||||
public string AutoCompleteText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Image Displayed on the result
|
||||
/// <value>Relative Path to the Image File</value>
|
||||
/// <remarks>GlyphInfo is prioritized if not null</remarks>
|
||||
/// The image to be displayed for the result.
|
||||
/// </summary>
|
||||
/// <value>Can be a local file path or a URL.</value>
|
||||
/// <remarks>GlyphInfo is prioritized if not null</remarks>
|
||||
public string IcoPath
|
||||
{
|
||||
get { return _icoPath; }
|
||||
|
|
@ -76,22 +80,22 @@ namespace Flow.Launcher.Plugin
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if Icon has a border radius
|
||||
/// </summary>
|
||||
public bool RoundedIcon { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Delegate function, see <see cref="Icon"/>
|
||||
/// Delegate function that produces an <see cref="ImageSource"/>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public delegate ImageSource IconDelegate();
|
||||
|
||||
/// <summary>
|
||||
/// Delegate to Get Image Source
|
||||
/// Delegate to load an icon for this result.
|
||||
/// </summary>
|
||||
public IconDelegate Icon;
|
||||
private string _copyText = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Information for Glyph Icon (Prioritized than IcoPath/Icon if user enable Glyph Icons)
|
||||
|
|
@ -100,25 +104,29 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// Delegate. An 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>
|
||||
/// An action to take in the form of a function call when the result has been selected.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The function is invoked with an <see cref="ActionContext"/> as the only parameter.
|
||||
/// Its result determines what happens to Flow Launcher's query form:
|
||||
/// when true, the form will be hidden; when false, it will stay in focus.
|
||||
/// </remarks>
|
||||
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>
|
||||
/// An async action to take in the form of a function call when the result has been selected.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The function is invoked with an <see cref="ActionContext"/> as the only parameter and awaited.
|
||||
/// Its result determines what happens to Flow Launcher's query form:
|
||||
/// when true, the form will be hidden; when false, it will stay in focus.
|
||||
/// </remarks>
|
||||
public Func<ActionContext, ValueTask<bool>> AsyncAction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Priority of the current result
|
||||
/// <value>default: 0</value>
|
||||
/// </summary>
|
||||
/// <value>default: 0</value>
|
||||
public int Score { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -126,12 +134,6 @@ 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; }
|
||||
|
||||
/// <summary>
|
||||
/// Query information associated with the result
|
||||
/// </summary>
|
||||
|
|
@ -161,6 +163,8 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
var equality = string.Equals(r?.Title, Title) &&
|
||||
string.Equals(r?.SubTitle, SubTitle) &&
|
||||
string.Equals(r?.AutoCompleteText, AutoCompleteText) &&
|
||||
string.Equals(r?.CopyText, CopyText) &&
|
||||
string.Equals(r?.IcoPath, IcoPath) &&
|
||||
TitleHighlightData == r.TitleHighlightData;
|
||||
|
||||
|
|
@ -170,9 +174,7 @@ namespace Flow.Launcher.Plugin
|
|||
/// <inheritdoc />
|
||||
public override int GetHashCode()
|
||||
{
|
||||
var hashcode = (Title?.GetHashCode() ?? 0) ^
|
||||
(SubTitle?.GetHashCode() ?? 0);
|
||||
return hashcode;
|
||||
return HashCode.Combine(Title, SubTitle, AutoCompleteText, CopyText, IcoPath);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
@ -183,10 +185,10 @@ namespace Flow.Launcher.Plugin
|
|||
|
||||
/// <summary>
|
||||
/// Additional data associated with this result
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// As external information for ContextMenu
|
||||
/// </example>
|
||||
/// </summary>
|
||||
public object ContextData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -230,10 +232,13 @@ namespace Flow.Launcher.Plugin
|
|||
/// <default>#26a0da (blue)</default>
|
||||
public string ProgressBarColor { get; set; } = "#26a0da";
|
||||
|
||||
/// <summary>
|
||||
/// Contains data used to populate the the preview section of this result.
|
||||
/// </summary>
|
||||
public PreviewInfo Preview { get; set; } = PreviewInfo.Default;
|
||||
|
||||
/// <summary>
|
||||
/// Info of the preview image.
|
||||
/// Info of the preview section of a <see cref="Result"/>
|
||||
/// </summary>
|
||||
public record PreviewInfo
|
||||
{
|
||||
|
|
@ -241,13 +246,28 @@ namespace Flow.Launcher.Plugin
|
|||
/// Full image used for preview panel
|
||||
/// </summary>
|
||||
public string PreviewImagePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Determines if the preview image should occupy the full width of the preview panel.
|
||||
/// </summary>
|
||||
public bool IsMedia { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Result description text that is shown at the bottom of the preview panel.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// When a value is not set, the <see cref="SubTitle"/> will be used.
|
||||
/// </remarks>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Delegate to get the preview panel's image
|
||||
/// </summary>
|
||||
public IconDelegate PreviewDelegate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Default instance of <see cref="PreviewInfo"/>
|
||||
/// </summary>
|
||||
public static PreviewInfo Default { get; } = new()
|
||||
{
|
||||
PreviewImagePath = null,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using Microsoft.Win32;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
|
@ -71,12 +71,6 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
}
|
||||
}
|
||||
|
||||
[Obsolete("This is provided for backwards compatibility after 1.9.0 release, e.g. GitHub plugin. Use the new method instead")]
|
||||
public static void NewBrowserWindow(this string url, string browserPath = "")
|
||||
{
|
||||
OpenInBrowserWindow(url, browserPath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens search as a tab in the default browser chosen in Windows settings.
|
||||
/// </summary>
|
||||
|
|
@ -111,11 +105,5 @@ namespace Flow.Launcher.Plugin.SharedCommands
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
[Obsolete("This is provided for backwards compatibility after 1.9.0 release, e.g. GitHub plugin. Use the new method instead")]
|
||||
public static void NewTabInBrowser(this string url, string browserPath = "")
|
||||
{
|
||||
OpenInBrowserTab(url, browserPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,10 +15,19 @@ namespace Flow.Launcher.Test
|
|||
{">", new PluginPair {Metadata = new PluginMetadata {ActionKeywords = new List<string> {">"}}}}
|
||||
};
|
||||
|
||||
Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
|
||||
Query q = QueryBuilder.Build("> ping google.com -n 20 -6", nonGlobalPlugins);
|
||||
|
||||
Assert.AreEqual("file.txt file2 file3", q.Search);
|
||||
Assert.AreEqual("> ping google.com -n 20 -6", q.RawQuery);
|
||||
Assert.AreEqual("ping google.com -n 20 -6", q.Search, "Search should not start with the ActionKeyword.");
|
||||
Assert.AreEqual(">", q.ActionKeyword);
|
||||
|
||||
Assert.AreEqual(5, q.SearchTerms.Length, "The length of SearchTerms should match.");
|
||||
|
||||
Assert.AreEqual("ping", q.FirstSearch);
|
||||
Assert.AreEqual("google.com", q.SecondSearch);
|
||||
Assert.AreEqual("-n", q.ThirdSearch);
|
||||
|
||||
Assert.AreEqual("google.com -n 20 -6", q.SecondToEndSearch, "SecondToEndSearch should be trimmed of multiple whitespace characters");
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
@ -29,9 +38,13 @@ namespace Flow.Launcher.Test
|
|||
{">", new PluginPair {Metadata = new PluginMetadata {ActionKeywords = new List<string> {">"}, Disabled = true}}}
|
||||
};
|
||||
|
||||
Query q = QueryBuilder.Build("> file.txt file2 file3", nonGlobalPlugins);
|
||||
Query q = QueryBuilder.Build("> ping google.com -n 20 -6", nonGlobalPlugins);
|
||||
|
||||
Assert.AreEqual("> file.txt file2 file3", q.Search);
|
||||
Assert.AreEqual("> ping google.com -n 20 -6", q.Search);
|
||||
Assert.AreEqual(q.Search, q.RawQuery, "RawQuery should be equal to Search.");
|
||||
Assert.AreEqual(6, q.SearchTerms.Length, "The length of SearchTerms should match.");
|
||||
Assert.AreNotEqual(">", q.ActionKeyword, "ActionKeyword should not match that of a disabled plugin.");
|
||||
Assert.AreEqual("ping google.com -n 20 -6", q.SecondToEndSearch, "SecondToEndSearch should be trimmed of multiple whitespace characters");
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||
.gitattributes = .gitattributes
|
||||
.gitignore = .gitignore
|
||||
appveyor.yml = appveyor.yml
|
||||
Directory.Build.props = Directory.Build.props
|
||||
Directory.Build.targets = Directory.Build.targets
|
||||
Scripts\flowlauncher.nuspec = Scripts\flowlauncher.nuspec
|
||||
LICENSE = LICENSE
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Ton abspielen, wenn das Suchfenster geöffnet wird</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Animationen in der Oberfläche verwenden</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -157,6 +157,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Reproducir un sonido al abrir la ventana de búsqueda</system:String>
|
||||
<system:String x:Key="Animation">Animación</system:String>
|
||||
<system:String x:Key="AnimationTip">Usar Animación en la Interfaz</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<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">Usar animación en la Interfaz de Usuario</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Velocidad de animación</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">Velocidad de animación de la interfaz de usuario</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Lenta</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Media</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Rápida</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Personalizada</system:String>
|
||||
<system:String x:Key="Clock">Reloj</system:String>
|
||||
<system:String x:Key="Date">Fecha</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Jouer un petit son lorsque la fenêtre de recherche s'ouvre</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Utiliser l'animation dans l'interface</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
|
||||
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="plugins">Plugins</system:String>
|
||||
<system:String x:Key="plugins">Plugin</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Cerca altri plugins</system:String>
|
||||
<system:String x:Key="enable">Attivo</system:String>
|
||||
<system:String x:Key="disable">Disabilita</system:String>
|
||||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Riproduce un piccolo suono all'apertura della finestra di ricerca</system:String>
|
||||
<system:String x:Key="Animation">Animazione</system:String>
|
||||
<system:String x:Key="AnimationTip">Usa l'animazione nell'interfaccia utente</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
@ -166,13 +172,13 @@
|
|||
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
|
||||
<system:String x:Key="previewHotkeyToolTip">Enter shortcut to show/hide preview in search window.</system:String>
|
||||
<system:String x:Key="openResultModifiers">Apri modificatori di risultato</system:String>
|
||||
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
|
||||
<system:String x:Key="openResultModifiersToolTip">Seleziona un tasto modificatore per aprire il risultato selezionato via tastiera.</system:String>
|
||||
<system:String x:Key="showOpenResultHotkey">Mostra tasto di scelta rapida</system:String>
|
||||
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
|
||||
<system:String x:Key="showOpenResultHotkeyToolTip">Mostra tasto di scelta rapida dei risultati con i risultati.</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Tasti scelta rapida per ricerche personalizzate</system:String>
|
||||
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
|
||||
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
|
||||
<system:String x:Key="customQuery">Query</system:String>
|
||||
<system:String x:Key="customQuery">Ricerca</system:String>
|
||||
<system:String x:Key="customShortcut">Shortcut</system:String>
|
||||
<system:String x:Key="customShortcutExpansion">Expansion</system:String>
|
||||
<system:String x:Key="builtinShortcutDescription">Description</system:String>
|
||||
|
|
@ -184,12 +190,12 @@
|
|||
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
|
||||
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
|
||||
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
|
||||
<system:String x:Key="queryWindowShadowEffect">Query window shadow effect</system:String>
|
||||
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
|
||||
<system:String x:Key="windowWidthSize">Window Width Size</system:String>
|
||||
<system:String x:Key="queryWindowShadowEffect">Effetto ombra della finestra di ricerca</system:String>
|
||||
<system:String x:Key="shadowEffectCPUUsage">L'effetto ombra utilizzerà in maniera sostanziale la GPU. Non consigliato se le performance del tuo computer sono limitate.</system:String>
|
||||
<system:String x:Key="windowWidthSize">Dimensione larghezza della finestra</system:String>
|
||||
<system:String x:Key="windowWidthSizeToolTip">You can also quickly adjust this by using Ctrl+[ and Ctrl+].</system:String>
|
||||
<system:String x:Key="useGlyphUI">Use Segoe Fluent Icons</system:String>
|
||||
<system:String x:Key="useGlyphUIEffect">Use Segoe Fluent Icons for query results where supported</system:String>
|
||||
<system:String x:Key="useGlyphUI">Usa Icone Segoe Fluent</system:String>
|
||||
<system:String x:Key="useGlyphUIEffect">Usa Icone Segoe Fluent per risultati di ricerca dove supportate</system:String>
|
||||
<system:String x:Key="flowlauncherPressHotkey">Press Key</system:String>
|
||||
|
||||
<!-- Setting Proxy -->
|
||||
|
|
@ -225,38 +231,38 @@
|
|||
oppure vai su https://github.com/Flow-Launcher/Flow.Launcher/releases per scaricare gli aggiornamenti manualmente.
|
||||
</system:String>
|
||||
<system:String x:Key="releaseNotes">Note di rilascio</system:String>
|
||||
<system:String x:Key="documentation">Usage Tips</system:String>
|
||||
<system:String x:Key="devtool">DevTools</system:String>
|
||||
<system:String x:Key="settingfolder">Setting Folder</system:String>
|
||||
<system:String x:Key="logfolder">Log Folder</system:String>
|
||||
<system:String x:Key="documentation">Suggerimenti di utilizzo</system:String>
|
||||
<system:String x:Key="devtool">Strumenti per sviluppatori</system:String>
|
||||
<system:String x:Key="settingfolder">Cartella delle impostazioni</system:String>
|
||||
<system:String x:Key="logfolder">Cartella dei Log</system:String>
|
||||
<system:String x:Key="clearlogfolder">Clear Logs</system:String>
|
||||
<system:String x:Key="clearlogfolderMessage">Are you sure you want to delete all logs?</system:String>
|
||||
<system:String x:Key="welcomewindow">Wizard</system:String>
|
||||
|
||||
<!-- FileManager Setting Dialog -->
|
||||
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
|
||||
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments if necessary. The default arguments are "%d", and a path is entered at that location. For example, If a command is required such as "totalcmd.exe /A c:\windows", argument is /A "%d".</system:String>
|
||||
<system:String x:Key="fileManager_tips2">"%f" is an argument that represent the file path. It is used to emphasize the file/folder name when opening a specific file location in 3rd party file manager. This argument is only available in the "Arg for File" item. If the file manager does not have that function, you can use "%d".</system:String>
|
||||
<system:String x:Key="fileManager_name">File Manager</system:String>
|
||||
<system:String x:Key="fileManager_profile_name">Profile Name</system:String>
|
||||
<system:String x:Key="fileManager_path">File Manager Path</system:String>
|
||||
<system:String x:Key="fileManager_directory_arg">Arg For Folder</system:String>
|
||||
<system:String x:Key="fileManager_file_arg">Arg For File</system:String>
|
||||
<system:String x:Key="fileManagerWindow">Seleziona Gestore File</system:String>
|
||||
<system:String x:Key="fileManager_tips">Specificare la posizione del gestore file che si sta utilizzando e aggiungere argomenti se necessario. Gli argomenti di default sono "%d", e un percorso è inserito in quella posizione. Per esempio, se è richiesto un comando come "totalcmd.exe /A c:\windows", l'argomento è /A "%d".</system:String>
|
||||
<system:String x:Key="fileManager_tips2">"%f" è un argomento che rappresenta il percorso del file. Viene usato per sottolineare il nome del file/cartella quando si apre una posizione specifica del file in file manager di terze parti. Questo argomento è disponibile solo nell'elemento "Arg per File". Se il file manager non dispone di tale funzione, è possibile utilizzare "%d".</system:String>
|
||||
<system:String x:Key="fileManager_name">Gestore File</system:String>
|
||||
<system:String x:Key="fileManager_profile_name">Nome Profilo</system:String>
|
||||
<system:String x:Key="fileManager_path">Percorso Gestore File</system:String>
|
||||
<system:String x:Key="fileManager_directory_arg">Arg Per Cartella</system:String>
|
||||
<system:String x:Key="fileManager_file_arg">Arg Per Cartella</system:String>
|
||||
|
||||
<!-- DefaultBrowser Setting Dialog -->
|
||||
<system:String x:Key="defaultBrowserTitle">Browser predefinito</system:String>
|
||||
<system:String x:Key="defaultBrowser_tips">The default setting follows the OS default browser setting. If specified separately, flow uses that browser.</system:String>
|
||||
<system:String x:Key="defaultBrowser_tips">L'impostazione predefinita segue l'opzione del browser predefinito del sistema operativo. Se specificato separatamente, Flow utilizza quel browser.</system:String>
|
||||
<system:String x:Key="defaultBrowser_name">Browser</system:String>
|
||||
<system:String x:Key="defaultBrowser_profile_name">Nome del browser</system:String>
|
||||
<system:String x:Key="defaultBrowser_path">Browser Path</system:String>
|
||||
<system:String x:Key="defaultBrowser_path">Percorso Browser</system:String>
|
||||
<system:String x:Key="defaultBrowser_newWindow">New Window</system:String>
|
||||
<system:String x:Key="defaultBrowser_newTab">New Tab</system:String>
|
||||
<system:String x:Key="defaultBrowser_parameter">Private Mode</system:String>
|
||||
<system:String x:Key="defaultBrowser_parameter">Modalità Privata</system:String>
|
||||
|
||||
<!-- Priority Setting Dialog -->
|
||||
<system:String x:Key="changePriorityWindow">Change Priority</system:String>
|
||||
<system:String x:Key="priority_tips">Greater the number, the higher the result will be ranked. Try setting it as 5. If you want the results to be lower than any other plugin's, provide a negative number</system:String>
|
||||
<system:String x:Key="invalidPriority">Please provide an valid integer for Priority!</system:String>
|
||||
<system:String x:Key="changePriorityWindow">Cambia Priorità</system:String>
|
||||
<system:String x:Key="priority_tips">Maggiore è il numero, maggiore sarà il risultato che verrà classificato. Prova ad impostarlo a 5. Se si desidera che i risultati siano inferiori a qualsiasi altro plugin, fornire un numero negativo</system:String>
|
||||
<system:String x:Key="invalidPriority">Si prega di fornire un numero intero valido per la priorità!</system:String>
|
||||
|
||||
<!-- Action Keyword Setting Dialog -->
|
||||
<system:String x:Key="oldActionKeywords">Vecchia parola chiave d'azione</system:String>
|
||||
|
|
@ -267,7 +273,7 @@
|
|||
<system:String x:Key="newActionKeywordsCannotBeEmpty">La nuova parola chiave d'azione non può essere vuota</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">La nuova parola chiave d'azione è stata assegnata ad un altro plugin, per favore sceglierne una differente</system:String>
|
||||
<system:String x:Key="success">Successo</system:String>
|
||||
<system:String x:Key="completedSuccessfully">Completed successfully</system:String>
|
||||
<system:String x:Key="completedSuccessfully">Completato con successo</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">Usa * se non vuoi specificare una parola chiave d'azione</system:String>
|
||||
|
||||
<!-- Custom Query Hotkey Dialog -->
|
||||
|
|
@ -304,24 +310,24 @@
|
|||
<system:String x:Key="reportWindow_flowlauncher_got_an_error">Flow Launcher ha riportato un errore</system:String>
|
||||
|
||||
<!-- General Notice -->
|
||||
<system:String x:Key="pleaseWait">Please wait...</system:String>
|
||||
<system:String x:Key="pleaseWait">Attendere prego...</system:String>
|
||||
|
||||
<!-- Update -->
|
||||
<system:String x:Key="update_flowlauncher_update_check">Checking for new update</system:String>
|
||||
<system:String x:Key="update_flowlauncher_already_on_latest">You already have the latest Flow Launcher version</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_found">Update found</system:String>
|
||||
<system:String x:Key="update_flowlauncher_updating">Updating...</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_check">Controllando per un nuovo aggiornamento</system:String>
|
||||
<system:String x:Key="update_flowlauncher_already_on_latest">Al momento hai la versione più recente di Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_found">Aggiornamento trovato</system:String>
|
||||
<system:String x:Key="update_flowlauncher_updating">Aggiornando...</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
|
||||
Flow Launcher was not able to move your user profile data to the new update version.
|
||||
Please manually move your profile data folder from {0} to {1}
|
||||
Flow Launcher non è stato in grado di spostare i dati del tuo profilo alla nuova versione aggiornata.
|
||||
Si prega di spostare manualmente la cartella dei tuoi dati da {0} a {1}
|
||||
</system:String>
|
||||
<system:String x:Key="update_flowlauncher_new_update">New Update</system:String>
|
||||
<system:String x:Key="update_flowlauncher_new_update">Nuovo Aggiornamento</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_new_version_available">E' disponibile la nuova release {0} di Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_error">Errore durante l'installazione degli aggiornamenti software</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update">Aggiorna</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_cancel">Annulla</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail">Update Failed</system:String>
|
||||
<system:String x:Key="update_flowlauncher_check_connection">Check your connection and try updating proxy settings to github-cloud.s3.amazonaws.com.</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail">Aggiornamento fallito</system:String>
|
||||
<system:String x:Key="update_flowlauncher_check_connection">Controlla la tua connessione e prova ad aggiornare le impostazioni del proxy su github-cloud.s3.amazonaws.com.</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Questo aggiornamento riavvierà Flow Launcher</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_update_files">I seguenti file saranno aggiornati</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_files">File aggiornati</system:String>
|
||||
|
|
@ -329,9 +335,9 @@
|
|||
|
||||
<!-- Welcome Window -->
|
||||
<system:String x:Key="Skip">Salta</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Title">Welcome to Flow Launcher</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text01">Hello, this is the first time you are running Flow Launcher!</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text02">Before starting, this wizard will assist in setting up Flow Launcher. You can skip this if you wish. Please choose a language</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Title">Benvenuto su Flow Launcher</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text01">Ciao, questa è la prima volta che stai eseguendo Flow Launcher!</system:String>
|
||||
<system:String x:Key="Welcome_Page1_Text02">Prima di iniziare, questa procedura guidata aiuterà nella creazione di Flow Launcher. Puoi saltarla se vuoi. Scegli una lingua</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Title">Cerca ed esegue tutti i file e le applicazioni presenti sul PC</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Text01">Cerca tutto da applicazioni, file, segnalibri, YouTube, Twitter e altro ancora. Tutto dalla comodità della tastiera senza mai toccare il mouse.</system:String>
|
||||
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher si avvia con il tasto di scelta rapida qui sotto, provatelo subito. Per cambiarlo, fate clic sull'input e premete il tasto di scelta rapida desiderato sulla tastiera.</system:String>
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">검색창을 열 때 작은 소리를 재생합니다.</system:String>
|
||||
<system:String x:Key="Animation">애니메이션</system:String>
|
||||
<system:String x:Key="AnimationTip">일부 UI에 애니메이션을 사용합니다.</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">시계</system:String>
|
||||
<system:String x:Key="Date">날짜</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Een klein geluid afspelen wanneer het zoekvenster wordt geopend</system:String>
|
||||
<system:String x:Key="Animation">Animatie</system:String>
|
||||
<system:String x:Key="AnimationTip">Animatie gebruiken in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
<system:String x:Key="copy">Copiar</system:String>
|
||||
<system:String x:Key="cut">Cortar</system:String>
|
||||
<system:String x:Key="paste">Colar</system:String>
|
||||
<system:String x:Key="undo">Undo</system:String>
|
||||
<system:String x:Key="selectAll">Select All</system:String>
|
||||
<system:String x:Key="fileTitle">File</system:String>
|
||||
<system:String x:Key="undo">Desfazer</system:String>
|
||||
<system:String x:Key="selectAll">Selecionar Tudo</system:String>
|
||||
<system:String x:Key="fileTitle">Arquivo</system:String>
|
||||
<system:String x:Key="folderTitle">Pasta</system:String>
|
||||
<system:String x:Key="textTitle">Texto</system:String>
|
||||
<system:String x:Key="GameMode">Modo Gamer</system:String>
|
||||
<system:String x:Key="GameModeToolTip">Suspender o uso de Teclas de Atalho.</system:String>
|
||||
<system:String x:Key="PositionReset">Position Reset</system:String>
|
||||
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
|
||||
<system:String x:Key="PositionReset">Redefinição de Posição</system:String>
|
||||
<system:String x:Key="PositionResetToolTip">Redefinir posição da janela de busca</system:String>
|
||||
|
||||
<!-- Setting General -->
|
||||
<system:String x:Key="flowlauncher_settings">Configurações</system:String>
|
||||
|
|
@ -32,21 +32,21 @@
|
|||
<system:String x:Key="portableMode">Modo Portátil</system:String>
|
||||
<system:String x:Key="portableModeToolTIp">Armazene todas as configurações e dados do usuário em uma pasta (útil quando usado com unidades removíveis ou serviços em nuvem).</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="setAutoStartFailed">Erro ao ativar início com o sistema</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="SearchWindowPosition">Search Window Position</system:String>
|
||||
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Remember Last Position</system:String>
|
||||
<system:String x:Key="SearchWindowScreenCursor">Monitor with Mouse Cursor</system:String>
|
||||
<system:String x:Key="SearchWindowScreenFocus">Monitor with Focused Window</system:String>
|
||||
<system:String x:Key="SearchWindowScreenPrimary">Primary Monitor</system:String>
|
||||
<system:String x:Key="SearchWindowScreenCustom">Custom Monitor</system:String>
|
||||
<system:String x:Key="SearchWindowAlign">Search Window Position on Monitor</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCenter">Center</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCenterTop">Center Top</system:String>
|
||||
<system:String x:Key="SearchWindowAlignLeftTop">Left Top</system:String>
|
||||
<system:String x:Key="SearchWindowAlignRightTop">Right Top</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
|
||||
<system:String x:Key="SearchWindowPosition">Posição da Janela de Busca</system:String>
|
||||
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">Lembrar Última Posição</system:String>
|
||||
<system:String x:Key="SearchWindowScreenCursor">Monitor com o Cursor do Mouse</system:String>
|
||||
<system:String x:Key="SearchWindowScreenFocus">Monitor com Janela em Foco</system:String>
|
||||
<system:String x:Key="SearchWindowScreenPrimary">Monitor Principal</system:String>
|
||||
<system:String x:Key="SearchWindowScreenCustom">Monitor Personalizado</system:String>
|
||||
<system:String x:Key="SearchWindowAlign">Posição no Monitor da Janela de Busca</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCenter">Centro</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCenterTop">Centro Superior</system:String>
|
||||
<system:String x:Key="SearchWindowAlignLeftTop">Esquerda Superior</system:String>
|
||||
<system:String x:Key="SearchWindowAlignRightTop">Direita Superior</system:String>
|
||||
<system:String x:Key="SearchWindowAlignCustom">Posição Personalizada</system:String>
|
||||
<system:String x:Key="language">Idioma</system:String>
|
||||
<system:String x:Key="lastQueryMode">Estilo da Última Consulta</system:String>
|
||||
<system:String x:Key="lastQueryModeToolTip">Mostrar/ocultar resultados anteriores quando o Lançador de Fluxos é reativado.</system:String>
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
<system:String x:Key="LastQuerySelected">Selecionar última consulta</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Limpar última consulta</system:String>
|
||||
<system:String x:Key="maxShowResults">Máximo de resultados mostrados</system:String>
|
||||
<system:String x:Key="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
|
||||
<system:String x:Key="maxShowResultsToolTip">Você também pode ajustar isso rapidamente usando CTRL+Mais e CTRL+Menos.</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">Ignorar atalhos em tela cheia</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreenToolTip">Desativar o Flow Launcher quando um aplicativo em tela cheia estiver ativado (recomendado para jogos).</system:String>
|
||||
<system:String x:Key="defaultFileManager">Gerenciador de Arquivos Padrões</system:String>
|
||||
|
|
@ -64,41 +64,41 @@
|
|||
<system:String x:Key="pythonFilePath">Caminho do Python</system:String>
|
||||
<system:String x:Key="nodeFilePath">Caminho do Node.js</system:String>
|
||||
<system:String x:Key="selectNodeExecutable">Selecione o executável do Node.js</system:String>
|
||||
<system:String x:Key="selectPythonExecutable">Please select pythonw.exe</system:String>
|
||||
<system:String x:Key="typingStartEn">Always Start Typing in English Mode</system:String>
|
||||
<system:String x:Key="typingStartEnTooltip">Temporarily change your input method to English mode when activating Flow.</system:String>
|
||||
<system:String x:Key="selectPythonExecutable">Por favor, selecione pythonw.exe</system:String>
|
||||
<system:String x:Key="typingStartEn">Sempre Começar Digitando em Modo Inglês</system:String>
|
||||
<system:String x:Key="typingStartEnTooltip">Temporariamente altere seu método de entrada para o Modo Inglês ao ativar o Flow.</system:String>
|
||||
<system:String x:Key="autoUpdates">Atualizar Automaticamente</system:String>
|
||||
<system:String x:Key="select">Selecionar</system:String>
|
||||
<system:String x:Key="hideOnStartup">Esconder Flow Launcher na inicialização</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Ocultar ícone da bandeja</system:String>
|
||||
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
|
||||
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
|
||||
<system:String x:Key="ShouldUsePinyin">Search with Pinyin</system:String>
|
||||
<system:String x:Key="ShouldUsePinyinToolTip">Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.</system:String>
|
||||
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
|
||||
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
|
||||
<system:String x:Key="hideNotifyIconToolTip">Quando o ícone não está na bandeja, o menu de Configurações pode ser aberto ao clicar na janela de busca com o botão direito do mouse.</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Precisão de Busca da Consulta</system:String>
|
||||
<system:String x:Key="querySearchPrecisionToolTip">Altera a pontuação de match mínima exigida para resultados.</system:String>
|
||||
<system:String x:Key="ShouldUsePinyin">Buscar com Pinyin</system:String>
|
||||
<system:String x:Key="ShouldUsePinyinToolTip">Permite o uso de Pinyin para busca. Pinyin é o sistema padrão de escrita romanizada para traduzir chinês.</system:String>
|
||||
<system:String x:Key="AlwaysPreview">Sempre Pré-visualizar</system:String>
|
||||
<system:String x:Key="AlwaysPreviewToolTip">Sempre abrir o painel de pré-visualização quando o Flow é ativado. Pressione {0} para ativar ou desativar a pré-visualização.</system:String>
|
||||
<system:String x:Key="shadowEffectNotAllowed">O efeito de sombra não é permitido enquanto o tema atual tem o efeito de desfoque ativado</system:String>
|
||||
|
||||
<!-- Setting Plugin -->
|
||||
<system:String x:Key="searchplugin">Search Plugin</system:String>
|
||||
<system:String x:Key="searchpluginToolTip">Ctrl+F to search plugins</system:String>
|
||||
<system:String x:Key="searchplugin">Buscar Plugin</system:String>
|
||||
<system:String x:Key="searchpluginToolTip">Ctrl+F para buscar plugins</system:String>
|
||||
<system:String x:Key="searchplugin_Noresult_Title">Nenhum resultado encontrado</system:String>
|
||||
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
|
||||
<system:String x:Key="searchplugin_Noresult_Subtitle">Por favor, tente uma busca diferente.</system:String>
|
||||
<system:String x:Key="plugin">Plugin</system:String>
|
||||
<system:String x:Key="plugins">Plugins</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Encontrar mais plugins</system:String>
|
||||
<system:String x:Key="enable">Ativado</system:String>
|
||||
<system:String x:Key="disable">Desabilitar</system:String>
|
||||
<system:String x:Key="actionKeywordsTitle">Action keyword Setting</system:String>
|
||||
<system:String x:Key="actionKeywordsTitle">Configuração de palavra-chave de Ação</system:String>
|
||||
<system:String x:Key="actionKeywords">Palavras-chave de ação</system:String>
|
||||
<system:String x:Key="currentActionKeywords">Current action keyword</system:String>
|
||||
<system:String x:Key="newActionKeyword">New action keyword</system:String>
|
||||
<system:String x:Key="actionKeywordsTooltip">Change Action Keywords</system:String>
|
||||
<system:String x:Key="currentActionKeywords">Palavra-chave de ação atual</system:String>
|
||||
<system:String x:Key="newActionKeyword">Nova palavra-chave de ação</system:String>
|
||||
<system:String x:Key="actionKeywordsTooltip">Alterar Palavras-chave de Ação</system:String>
|
||||
<system:String x:Key="currentPriority">Prioridade atual</system:String>
|
||||
<system:String x:Key="newPriority">Nova Prioridade</system:String>
|
||||
<system:String x:Key="priority">Prioridade</system:String>
|
||||
<system:String x:Key="priorityToolTip">Change Plugin Results Priority</system:String>
|
||||
<system:String x:Key="priorityToolTip">Alterar Prioridade de Resultados de Plugin</system:String>
|
||||
<system:String x:Key="pluginDirectory">Diretório de Plugins</system:String>
|
||||
<system:String x:Key="author">por</system:String>
|
||||
<system:String x:Key="plugin_init_time">Tempo de inicialização:</system:String>
|
||||
|
|
@ -111,14 +111,14 @@
|
|||
<!-- Setting Plugin Store -->
|
||||
<system:String x:Key="pluginStore">Loja de Plugins</system:String>
|
||||
<system:String x:Key="pluginStore_NewRelease">Nova Versão</system:String>
|
||||
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
|
||||
<system:String x:Key="pluginStore_RecentlyUpdated">Atualizado Recentemente</system:String>
|
||||
<system:String x:Key="pluginStore_None">Plugins</system:String>
|
||||
<system:String x:Key="pluginStore_Installed">Installed</system:String>
|
||||
<system:String x:Key="pluginStore_Installed">Instalado</system:String>
|
||||
<system:String x:Key="refresh">Atualizar</system:String>
|
||||
<system:String x:Key="installbtn">Instalar</system:String>
|
||||
<system:String x:Key="uninstallbtn">Desinstalar</system:String>
|
||||
<system:String x:Key="updatebtn">Atualizar</system:String>
|
||||
<system:String x:Key="LabelInstalledToolTip">Plugin already installed</system:String>
|
||||
<system:String x:Key="LabelInstalledToolTip">Plugin já instalado</system:String>
|
||||
<system:String x:Key="LabelNew">Nova Versão</system:String>
|
||||
<system:String x:Key="LabelNewToolTip">Este plugin foi atualizado nos últimos 7 dias</system:String>
|
||||
<system:String x:Key="LabelUpdateToolTip">Nova Atualização Disponível</system:String>
|
||||
|
|
@ -127,18 +127,18 @@
|
|||
|
||||
<!-- Setting Theme -->
|
||||
<system:String x:Key="theme">Tema</system:String>
|
||||
<system:String x:Key="appearance">Appearance</system:String>
|
||||
<system:String x:Key="appearance">Aparência</system:String>
|
||||
<system:String x:Key="browserMoreThemes">Ver mais temas</system:String>
|
||||
<system:String x:Key="howToCreateTheme">Como criar um tema</system:String>
|
||||
<system:String x:Key="hiThere">Olá</system:String>
|
||||
<system:String x:Key="SampleTitleExplorer">Explorador</system:String>
|
||||
<system:String x:Key="SampleSubTitleExplorer">Search for files, folders and file contents</system:String>
|
||||
<system:String x:Key="SampleTitleWebSearch">WebSearch</system:String>
|
||||
<system:String x:Key="SampleSubTitleWebSearch">Search the web with different search engine support</system:String>
|
||||
<system:String x:Key="SampleTitleProgram">Program</system:String>
|
||||
<system:String x:Key="SampleSubTitleProgram">Launch programs as admin or a different user</system:String>
|
||||
<system:String x:Key="SampleTitleProcessKiller">ProcessKiller</system:String>
|
||||
<system:String x:Key="SampleSubTitleProcessKiller">Terminate unwanted processes</system:String>
|
||||
<system:String x:Key="SampleSubTitleExplorer">Busque por arquivos, pastas e conteúdos de arquivos</system:String>
|
||||
<system:String x:Key="SampleTitleWebSearch">Busca Web</system:String>
|
||||
<system:String x:Key="SampleSubTitleWebSearch">Busque na Web com suporte para diferentes motores de busca</system:String>
|
||||
<system:String x:Key="SampleTitleProgram">Programa</system:String>
|
||||
<system:String x:Key="SampleSubTitleProgram">Inicie programas como administrador ou como um usuário diferente</system:String>
|
||||
<system:String x:Key="SampleTitleProcessKiller">Matador de Processos</system:String>
|
||||
<system:String x:Key="SampleSubTitleProcessKiller">Termine processos indesejados</system:String>
|
||||
<system:String x:Key="queryBoxFont">Fonte da caixa de Consulta</system:String>
|
||||
<system:String x:Key="resultItemFont">Fonte do Resultado</system:String>
|
||||
<system:String x:Key="windowMode">Modo Janela</system:String>
|
||||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Reproduzir um pequeno som ao abrir a janela de pesquisa</system:String>
|
||||
<system:String x:Key="Animation">Animação</system:String>
|
||||
<system:String x:Key="AnimationTip">Utilizar Animação na Interface</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Velocidade de Animação</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">Altere a velocidade da animação da interface</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Reproduzir um som ao abrir a janela de pesquisa</system:String>
|
||||
<system:String x:Key="Animation">Animação</system:String>
|
||||
<system:String x:Key="AnimationTip">Utilizar animações na aplicação</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Velocidade da animação</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">A velocidade da animação da interface</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Lenta</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Média</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Rápida</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Personalizada</system:String>
|
||||
<system:String x:Key="Clock">Relógio</system:String>
|
||||
<system:String x:Key="Date">Data</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
<!-- MainWindow -->
|
||||
<system:String x:Key="registerHotkeyFailed">Регистрация хоткея {0} не удалась</system:String>
|
||||
<system:String x:Key="registerHotkeyFailed">Регистрация горячей клавиши {0} не удалась</system:String>
|
||||
<system:String x:Key="couldnotStartCmd">Не удалось запустить {0}</system:String>
|
||||
<system:String x:Key="invalidFlowLauncherPluginFileFormat">Недопустимый формат файла плагина Flow Launcher</system:String>
|
||||
<system:String x:Key="setAsTopMostInThisQuery">Отображать это окно выше всех при этом запросе</system:String>
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
<system:String x:Key="plugins">Плагины</system:String>
|
||||
<system:String x:Key="browserMorePlugins">Найти больше плагинов</system:String>
|
||||
<system:String x:Key="enable">Вкл.</system:String>
|
||||
<system:String x:Key="disable">Отключить</system:String>
|
||||
<system:String x:Key="disable">Откл.</system:String>
|
||||
<system:String x:Key="actionKeywordsTitle">Настройка ключевого слова действия</system:String>
|
||||
<system:String x:Key="actionKeywords">Горячая клавиша</system:String>
|
||||
<system:String x:Key="currentActionKeywords">Ключевое слово текущего действия</system:String>
|
||||
|
|
@ -143,8 +143,8 @@
|
|||
<system:String x:Key="resultItemFont">Шрифт результатов</system:String>
|
||||
<system:String x:Key="windowMode">Оконный режим</system:String>
|
||||
<system:String x:Key="opacity">Прозрачность</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">Тема {0} не существует, откат к теме по умолчанию</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">Не удалось загрузить тему {0}, откат к теме по умолчанию</system:String>
|
||||
<system:String x:Key="theme_load_failure_path_not_exists">Тема «{0}» не существует, откат к теме по умолчанию</system:String>
|
||||
<system:String x:Key="theme_load_failure_parse_error">Не удалось загрузить тему «{0}», откат к теме по умолчанию</system:String>
|
||||
<system:String x:Key="ThemeFolder">Папка тем</system:String>
|
||||
<system:String x:Key="OpenThemeFolder">Открыть папку с темами</system:String>
|
||||
<system:String x:Key="ColorScheme">Цветовая схема</system:String>
|
||||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Воспроизведение небольшого звука при открытии окна поиска</system:String>
|
||||
<system:String x:Key="Animation">Анимация</system:String>
|
||||
<system:String x:Key="AnimationTip">Использование анимации в меню</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Часы</system:String>
|
||||
<system:String x:Key="Date">Дата</system:String>
|
||||
|
||||
|
|
@ -164,14 +170,14 @@
|
|||
<system:String x:Key="flowlauncherHotkey">Горячая клавиша Flow Launcher</system:String>
|
||||
<system:String x:Key="flowlauncherHotkeyToolTip">Введите ярлык, чтобы показать/скрыть Flow Launcher.</system:String>
|
||||
<system:String x:Key="previewHotkey">Просмотр горячей клавиши</system:String>
|
||||
<system:String x:Key="previewHotkeyToolTip">Введите ярлык для показа/скрытия предварительного просмотра в окне поиска.</system:String>
|
||||
<system:String x:Key="previewHotkeyToolTip">Введите ярлык для показа/скрытия предпросмотра в окне поиска.</system:String>
|
||||
<system:String x:Key="openResultModifiers">Открыть ключ модификации результата</system:String>
|
||||
<system:String x:Key="openResultModifiersToolTip">Выберите клавишу-модификатор, чтобы открыть выбранный результат с помощью клавиатуры.</system:String>
|
||||
<system:String x:Key="showOpenResultHotkey">Показать горячую клавишу</system:String>
|
||||
<system:String x:Key="showOpenResultHotkeyToolTip">Показать горячую клавишу выбора результата с результатами.</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Задаваемые горячие клавиши для запросов</system:String>
|
||||
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
|
||||
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
|
||||
<system:String x:Key="customQueryHotkey">Горячие клавиши пользовательского запроса</system:String>
|
||||
<system:String x:Key="customQueryShortcut">Ярлыки пользовательского запроса</system:String>
|
||||
<system:String x:Key="builtinShortcuts">Встроенные ярлыки</system:String>
|
||||
<system:String x:Key="customQuery">Запрос</system:String>
|
||||
<system:String x:Key="customShortcut">Ярлык</system:String>
|
||||
<system:String x:Key="customShortcutExpansion">Расширение</system:String>
|
||||
|
|
@ -193,8 +199,8 @@
|
|||
<system:String x:Key="flowlauncherPressHotkey">Нажмите клавишу</system:String>
|
||||
|
||||
<!-- Setting Proxy -->
|
||||
<system:String x:Key="proxy">HTTP Прокси</system:String>
|
||||
<system:String x:Key="enableProxy">Включить HTTP прокси</system:String>
|
||||
<system:String x:Key="proxy">НТТР-прокси</system:String>
|
||||
<system:String x:Key="enableProxy">Включить НТТР-прокси</system:String>
|
||||
<system:String x:Key="server">HTTP-сервер</system:String>
|
||||
<system:String x:Key="port">Порт</system:String>
|
||||
<system:String x:Key="userName">Имя пользователя</system:String>
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Po otvorení okna vyhľadávania prehrať krátky zvuk</system:String>
|
||||
<system:String x:Key="Animation">Animácia</system:String>
|
||||
<system:String x:Key="AnimationTip">Animovať používateľské rozhranie</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Rýchlosť animácie</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">Rýchlosť animácie grafického rozhrania</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Pomaly</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Stredne</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Rýchlo</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Vlastné</system:String>
|
||||
<system:String x:Key="Clock">Hodiny</system:String>
|
||||
<system:String x:Key="Date">Dátum</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Play a small sound when the search window opens</system:String>
|
||||
<system:String x:Key="Animation">Animation</system:String>
|
||||
<system:String x:Key="AnimationTip">Use Animation in UI</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Arama penceresi açıldığında küçük bir ses oynat</system:String>
|
||||
<system:String x:Key="Animation">Animasyon</system:String>
|
||||
<system:String x:Key="AnimationTip">Arayüzde Animasyon Kullan</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">Відтворювати невеликий звук при відкритті вікна пошуку</system:String>
|
||||
<system:String x:Key="Animation">Анімація</system:String>
|
||||
<system:String x:Key="AnimationTip">Використовувати анімацію в інтерфейсі</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">Clock</system:String>
|
||||
<system:String x:Key="Date">Date</system:String>
|
||||
|
||||
|
|
@ -244,7 +250,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">Веб-браузер за замовчуванням</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>
|
||||
|
|
|
|||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">启用激活音效</system:String>
|
||||
<system:String x:Key="Animation">动画</system:String>
|
||||
<system:String x:Key="AnimationTip">启用动画</system:String>
|
||||
<system:String x:Key="AnimationSpeed">动画速度</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">UI 动画速度</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">慢</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">中</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">快</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">自定义</system:String>
|
||||
<system:String x:Key="Clock">时钟</system:String>
|
||||
<system:String x:Key="Date">日期</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<system:String x:Key="lastQueryModeToolTip">重啟 Flow Launcher 顯示/隱藏以前的結果。</system:String>
|
||||
<system:String x:Key="LastQueryPreserved">保留上一個查詢</system:String>
|
||||
<system:String x:Key="LastQuerySelected">選擇上一個查詢</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">Empty last Query</system:String>
|
||||
<system:String x:Key="LastQueryEmpty">清空上次搜尋關鍵字</system:String>
|
||||
<system:String x:Key="maxShowResults">最大結果顯示個數</system:String>
|
||||
<system:String x:Key="maxShowResultsToolTip">You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.</system:String>
|
||||
<system:String x:Key="ignoreHotkeysOnFullscreen">全螢幕模式下忽略快捷鍵</system:String>
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
|
||||
<system:String x:Key="plugin">插件</system:String>
|
||||
<system:String x:Key="plugins">插件</system:String>
|
||||
<system:String x:Key="browserMorePlugins">瀏覽更多外掛</system:String>
|
||||
<system:String x:Key="browserMorePlugins">瀏覽更多插件</system:String>
|
||||
<system:String x:Key="enable">啟用</system:String>
|
||||
<system:String x:Key="disable">停用</system:String>
|
||||
<system:String x:Key="actionKeywordsTitle">觸發關鍵字設定</system:String>
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
<system:String x:Key="pluginStore">插件商店</system:String>
|
||||
<system:String x:Key="pluginStore_NewRelease">New Release</system:String>
|
||||
<system:String x:Key="pluginStore_RecentlyUpdated">Recently Updated</system:String>
|
||||
<system:String x:Key="pluginStore_None">外掛</system:String>
|
||||
<system:String x:Key="pluginStore_None">插件</system:String>
|
||||
<system:String x:Key="pluginStore_Installed">Installed</system:String>
|
||||
<system:String x:Key="refresh">重新整理</system:String>
|
||||
<system:String x:Key="installbtn">安裝</system:String>
|
||||
|
|
@ -155,6 +155,12 @@
|
|||
<system:String x:Key="SoundEffectTip">搜尋窗口打開時播放音效</system:String>
|
||||
<system:String x:Key="Animation">動畫</system:String>
|
||||
<system:String x:Key="AnimationTip">使用介面動畫</system:String>
|
||||
<system:String x:Key="AnimationSpeed">Animation Speed</system:String>
|
||||
<system:String x:Key="AnimationSpeedTip">The speed of the UI animation</system:String>
|
||||
<system:String x:Key="AnimationSpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="AnimationSpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="AnimationSpeedFast">Fast</system:String>
|
||||
<system:String x:Key="AnimationSpeedCustom">Custom</system:String>
|
||||
<system:String x:Key="Clock">時鐘</system:String>
|
||||
<system:String x:Key="Date">日期</system:String>
|
||||
|
||||
|
|
@ -180,7 +186,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="deleteCustomShortcutWarning">你確定你要刪除縮寫:{0} 展開為 {1}?</system:String>
|
||||
<system:String x:Key="shortcut_clipboard_description">從剪貼簿取得文字。</system:String>
|
||||
<system:String x:Key="shortcut_active_explorer_path">從使用中的檔案總管獲得路徑。</system:String>
|
||||
|
|
@ -255,7 +261,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 -->
|
||||
|
|
@ -263,9 +269,9 @@
|
|||
<system:String x:Key="newActionKeywords">新觸發關鍵字</system:String>
|
||||
<system:String x:Key="cancel">取消</system:String>
|
||||
<system:String x:Key="done">確定</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">找不到指定的外掛</system:String>
|
||||
<system:String x:Key="cannotFindSpecifiedPlugin">找不到指定的插件</system:String>
|
||||
<system:String x:Key="newActionKeywordsCannotBeEmpty">新觸發關鍵字不能為空白</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">新觸發關鍵字已經被指派給另一外掛,請設定其他關鍵字。</system:String>
|
||||
<system:String x:Key="newActionKeywordsHasBeenAssigned">新觸發關鍵字已經被指派給另一個插件,請設定其他關鍵字。</system:String>
|
||||
<system:String x:Key="success">成功</system:String>
|
||||
<system:String x:Key="completedSuccessfully">成功完成</system:String>
|
||||
<system:String x:Key="actionkeyword_tips">如果不想設定觸發關鍵字,可以使用*代替</system:String>
|
||||
|
|
@ -275,7 +281,7 @@
|
|||
<system:String x:Key="customeQueryHotkeyTips">Press a custom hotkey to open Flow Launcher and input the specified query automatically.</system:String>
|
||||
<system:String x:Key="preview">預覽</system:String>
|
||||
<system:String x:Key="hotkeyIsNotUnavailable">快捷鍵不存在,請設定一個新的快捷鍵</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">外掛熱鍵無法使用</system:String>
|
||||
<system:String x:Key="invalidPluginHotkey">擴充功能熱鍵無法使用</system:String>
|
||||
<system:String x:Key="update">更新</system:String>
|
||||
|
||||
<!-- Custom Query Shortcut Dialog -->
|
||||
|
|
@ -312,8 +318,8 @@
|
|||
<system:String x:Key="update_flowlauncher_update_found">找到更新</system:String>
|
||||
<system:String x:Key="update_flowlauncher_updating">更新中...</system:String>
|
||||
<system:String x:Key="update_flowlauncher_fail_moving_portable_user_profile_data">
|
||||
Flow Launcher was not able to move your user profile data to the new update version.
|
||||
Please manually move your profile data folder from {0} to {1}
|
||||
Flow Launcher 無法將您的個人資料移動到新版本。
|
||||
請手動將您的個人資料資料夾從 {0} 到 {1}
|
||||
</system:String>
|
||||
<system:String x:Key="update_flowlauncher_new_update">新的更新</system:String>
|
||||
<system:String x:Key="update_flowlauncher_update_new_version_available">發現 Flow Launcher 新版本 V{0}</system:String>
|
||||
|
|
@ -321,7 +327,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 的 Proxy 伺服器設定。</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>
|
||||
|
|
@ -337,7 +343,7 @@
|
|||
<system:String x:Key="Welcome_Page2_Text02">Flow Launcher 需要搭配快捷鍵使用,請馬上試試吧! 如果想更改它,請點擊"輸入"並輸入你想要的快捷鍵。</system:String>
|
||||
<system:String x:Key="Welcome_Page3_Title">快捷鍵</system:String>
|
||||
<system:String x:Key="Welcome_Page4_Title">關鍵字與指令</system:String>
|
||||
<system:String x:Key="Welcome_Page4_Text01">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_Page4_Text01">透過 Flow Launcher 的擴充功能,您可以搜尋網頁、啟動應用程式或執行各種功能。某些功能以動作關鍵字開頭,若需要,也可以不使用動作關鍵字。請嘗試在 Flow Launcher 中輸入以下查詢。</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Title">開始使用 Flow Launcher吧!</system:String>
|
||||
<system:String x:Key="Welcome_Page5_Text01">大功告成! 別忘了使用快捷鍵以開始 :)</system:String>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ using System.Windows.Data;
|
|||
using ModernWpf.Controls;
|
||||
using Key = System.Windows.Input.Key;
|
||||
using System.Media;
|
||||
using static Flow.Launcher.ViewModel.SettingWindowViewModel;
|
||||
|
||||
namespace Flow.Launcher
|
||||
{
|
||||
|
|
@ -379,11 +380,19 @@ namespace Flow.Launcher
|
|||
CircleEase easing = new CircleEase();
|
||||
easing.EasingMode = EasingMode.EaseInOut;
|
||||
|
||||
var animationLength = _settings.AnimationSpeed switch
|
||||
{
|
||||
AnimationSpeeds.Slow => 560,
|
||||
AnimationSpeeds.Medium => 360,
|
||||
AnimationSpeeds.Fast => 160,
|
||||
_ => _settings.CustomAnimationLength
|
||||
};
|
||||
|
||||
var WindowOpacity = new DoubleAnimation
|
||||
{
|
||||
From = 0,
|
||||
To = 1,
|
||||
Duration = TimeSpan.FromSeconds(0.25),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength * 2 / 3),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
|
||||
|
|
@ -391,7 +400,7 @@ namespace Flow.Launcher
|
|||
{
|
||||
From = Top + 10,
|
||||
To = Top,
|
||||
Duration = TimeSpan.FromSeconds(0.25),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength * 2 / 3),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
var IconMotion = new DoubleAnimation
|
||||
|
|
@ -399,7 +408,7 @@ namespace Flow.Launcher
|
|||
From = 12,
|
||||
To = 0,
|
||||
EasingFunction = easing,
|
||||
Duration = TimeSpan.FromSeconds(0.36),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
|
||||
|
|
@ -408,7 +417,7 @@ namespace Flow.Launcher
|
|||
From = 0,
|
||||
To = 1,
|
||||
EasingFunction = easing,
|
||||
Duration = TimeSpan.FromSeconds(0.36),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
double TargetIconOpacity = SearchIcon.Opacity; // Animation Target Opacity from Style
|
||||
|
|
@ -417,7 +426,7 @@ namespace Flow.Launcher
|
|||
From = 0,
|
||||
To = TargetIconOpacity,
|
||||
EasingFunction = easing,
|
||||
Duration = TimeSpan.FromSeconds(0.36),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
|
||||
|
|
@ -427,7 +436,7 @@ namespace Flow.Launcher
|
|||
From = new Thickness(0, 12, right, 0),
|
||||
To = new Thickness(0, 0, right, 0),
|
||||
EasingFunction = easing,
|
||||
Duration = TimeSpan.FromSeconds(0.36),
|
||||
Duration = TimeSpan.FromMilliseconds(animationLength),
|
||||
FillBehavior = FillBehavior.Stop
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -69,11 +69,13 @@ namespace Flow.Launcher
|
|||
{
|
||||
tbSubTitle.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (!File.Exists(iconPath))
|
||||
{
|
||||
imgIco.Source = await ImageLoader.LoadAsync(Path.Combine(Constant.ProgramDirectory, "Images\\app.png"));
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
imgIco.Source = await ImageLoader.LoadAsync(iconPath);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,9 +69,6 @@ namespace Flow.Launcher
|
|||
UpdateManager.RestartApp(Constant.ApplicationFileName);
|
||||
}
|
||||
|
||||
[Obsolete("Typo")]
|
||||
public void RestarApp() => RestartApp();
|
||||
|
||||
public void ShowMainWindow() => _mainVM.Show();
|
||||
|
||||
public void HideMainWindow() => _mainVM.Hide();
|
||||
|
|
@ -295,8 +292,6 @@ namespace Flow.Launcher
|
|||
OpenUri(appUri);
|
||||
}
|
||||
|
||||
public event FlowLauncherGlobalKeyboardEventHandler GlobalKeyboardEvent;
|
||||
|
||||
private readonly List<Func<int, int, SpecialKeyState, bool>> _globalKeyboardHandlers = new();
|
||||
|
||||
public void RegisterGlobalKeyboardCallback(Func<int, int, SpecialKeyState, bool> callback) => _globalKeyboardHandlers.Add(callback);
|
||||
|
|
@ -309,10 +304,6 @@ namespace Flow.Launcher
|
|||
private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state)
|
||||
{
|
||||
var continueHook = true;
|
||||
if (GlobalKeyboardEvent != null)
|
||||
{
|
||||
continueHook = GlobalKeyboardEvent((int)keyevent, vkcode, state);
|
||||
}
|
||||
foreach (var x in _globalKeyboardHandlers)
|
||||
{
|
||||
continueHook &= x((int)keyevent, vkcode, state);
|
||||
|
|
|
|||
|
|
@ -2403,6 +2403,7 @@
|
|||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource AnimationTip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
x:Name="Animation"
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
IsOn="{Binding UseAnimation, Mode=TwoWay}"
|
||||
|
|
@ -2418,28 +2419,82 @@
|
|||
Width="Auto"
|
||||
BorderThickness="1"
|
||||
Style="{StaticResource SettingSeparatorStyle}" />
|
||||
<Border
|
||||
Margin="0"
|
||||
BorderThickness="0"
|
||||
Style="{DynamicResource SettingGroupBox}">
|
||||
<Border Margin="0" BorderThickness="0">
|
||||
<Border.Style>
|
||||
<Style BasedOn="{StaticResource SettingGroupBox}" TargetType="Border">
|
||||
<Setter Property="Visibility" Value="Collapsed" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding ElementName=Animation, Path=IsOn}" Value="True">
|
||||
<Setter Property="Visibility" Value="Visible" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource SoundEffect}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource SoundEffectTip}" />
|
||||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource AnimationSpeed}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource AnimationSpeedTip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal">
|
||||
<ComboBox
|
||||
x:Name="AnimationSpeed"
|
||||
MinWidth="160"
|
||||
Margin="0,0,18,0"
|
||||
VerticalAlignment="Center"
|
||||
DisplayMemberPath="Display"
|
||||
FontSize="14"
|
||||
ItemsSource="{Binding AnimationSpeeds}"
|
||||
SelectedValue="{Binding Settings.AnimationSpeed}"
|
||||
SelectedValuePath="Value">
|
||||
</ComboBox>
|
||||
<StackPanel Margin="0,0,18,0" Orientation="Horizontal">
|
||||
<StackPanel.Style>
|
||||
<Style TargetType="StackPanel">
|
||||
<Setter Property="Visibility" Value="Collapsed" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding ElementName=AnimationSpeed, Path=SelectedValue}" Value="{x:Static userSettings:AnimationSpeeds.Custom}">
|
||||
<Setter Property="Visibility" Value="Visible" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</StackPanel.Style>
|
||||
<TextBox
|
||||
Height="35"
|
||||
MinWidth="80"
|
||||
Text="{Binding Settings.CustomAnimationLength}"
|
||||
TextWrapping="NoWrap" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
|
||||
<Border
|
||||
Margin="0"
|
||||
BorderThickness="0"
|
||||
Style="{DynamicResource SettingGroupBox}">
|
||||
<ItemsControl Style="{StaticResource SettingGrid}">
|
||||
<StackPanel Style="{StaticResource TextPanel}">
|
||||
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="{DynamicResource SoundEffect}" />
|
||||
<TextBlock Style="{DynamicResource SettingSubTitleLabel}" Text="{DynamicResource SoundEffectTip}" />
|
||||
</StackPanel>
|
||||
<ui:ToggleSwitch
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
IsOn="{Binding UseSound, Mode=TwoWay}"
|
||||
OffContent="{DynamicResource disable}"
|
||||
OnContent="{DynamicResource enable}"
|
||||
Style="{DynamicResource SideToggleSwitch}" />
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||
<TextBlock Style="{StaticResource Glyph}">
|
||||

|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</TextBlock>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,12,0,12" Style="{DynamicResource SettingGroupBox}">
|
||||
|
|
|
|||
|
|
@ -598,6 +598,33 @@ namespace Flow.Launcher.ViewModel
|
|||
set => Settings.UseAnimation = value;
|
||||
}
|
||||
|
||||
public class AnimationSpeed
|
||||
{
|
||||
public string Display { get; set; }
|
||||
public AnimationSpeeds Value { get; set; }
|
||||
}
|
||||
|
||||
public List<AnimationSpeed> AnimationSpeeds
|
||||
{
|
||||
get
|
||||
{
|
||||
List<AnimationSpeed> speeds = new List<AnimationSpeed>();
|
||||
var enums = (AnimationSpeeds[])Enum.GetValues(typeof(AnimationSpeeds));
|
||||
foreach (var e in enums)
|
||||
{
|
||||
var key = $"AnimationSpeed{e}";
|
||||
var display = _translater.GetTranslation(key);
|
||||
var m = new AnimationSpeed
|
||||
{
|
||||
Display = display,
|
||||
Value = e,
|
||||
};
|
||||
speeds.Add(m);
|
||||
}
|
||||
return speeds;
|
||||
}
|
||||
}
|
||||
|
||||
public bool UseSound
|
||||
{
|
||||
get => Settings.UseSound;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,6 @@
|
|||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browseBrowserBookmark">瀏覽</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_others">其他</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_browserEngine">瀏覽器引擎</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_guideMessage01">如果你沒有使用 Chrome、Firefox 或 Edge,或者使用它們的便攜版,你需要添加書籤資料位置並選擇正確的瀏覽器引擎,才能讓這個插件正常運作。</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_guideMessage01">如果你沒有使用 Chrome、Firefox 或 Edge,或者使用它們的便攜版,你需要新增書籤資料位置並選擇正確的瀏覽器引擎,才能讓這個擴充功能正常運作。</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_browserbookmark_guideMessage02">例如:Brave 瀏覽器的引擎是 Chromium;而它的預設書籤資料位置是「%LOCALAPPDATA%\BraveSoftware\Brave-Browser\UserData」。對於 Firefox 瀏覽器引擎,書籤資料位置是包含 places.sqlite 檔案的 userdata 資料夾。</system:String>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ using Flow.Launcher.Plugin.BrowserBookmark.Views;
|
|||
using System.IO;
|
||||
using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
|
||||
namespace Flow.Launcher.Plugin.BrowserBookmark
|
||||
{
|
||||
|
|
@ -20,20 +21,39 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
private static List<Bookmark> cachedBookmarks = new List<Bookmark>();
|
||||
|
||||
private static Settings _settings;
|
||||
|
||||
|
||||
private static bool initialized = false;
|
||||
|
||||
public void Init(PluginInitContext context)
|
||||
{
|
||||
Main.context = context;
|
||||
|
||||
|
||||
_settings = context.API.LoadSettingJsonStorage<Settings>();
|
||||
|
||||
cachedBookmarks = BookmarkLoader.LoadAllBookmarks(_settings);
|
||||
LoadBookmarksIfEnabled();
|
||||
}
|
||||
|
||||
_ = MonitorRefreshQueue();
|
||||
private static void LoadBookmarksIfEnabled()
|
||||
{
|
||||
if (context.CurrentPluginMetadata.Disabled)
|
||||
{
|
||||
// Don't load or monitor files if disabled
|
||||
return;
|
||||
}
|
||||
|
||||
cachedBookmarks = BookmarkLoader.LoadAllBookmarks(_settings);
|
||||
_ = MonitorRefreshQueueAsync();
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
public List<Result> Query(Query query)
|
||||
{
|
||||
// For when the plugin being previously disabled and is now renabled
|
||||
if (!initialized)
|
||||
{
|
||||
LoadBookmarksIfEnabled();
|
||||
}
|
||||
|
||||
string param = query.Search.TrimStart();
|
||||
|
||||
// Should top results be returned? (true if no search parameters have been passed)
|
||||
|
|
@ -86,17 +106,24 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
|
||||
private static Channel<byte> refreshQueue = Channel.CreateBounded<byte>(1);
|
||||
|
||||
private async Task MonitorRefreshQueue()
|
||||
private static SemaphoreSlim fileMonitorSemaphore = new(1, 1);
|
||||
|
||||
private static async Task MonitorRefreshQueueAsync()
|
||||
{
|
||||
if (fileMonitorSemaphore.CurrentCount < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
await fileMonitorSemaphore.WaitAsync();
|
||||
var reader = refreshQueue.Reader;
|
||||
while (await reader.WaitToReadAsync())
|
||||
{
|
||||
await Task.Delay(2000);
|
||||
if (reader.TryRead(out _))
|
||||
{
|
||||
ReloadData();
|
||||
ReloadAllBookmarks(false);
|
||||
}
|
||||
}
|
||||
fileMonitorSemaphore.Release();
|
||||
}
|
||||
|
||||
private static readonly List<FileSystemWatcher> Watchers = new();
|
||||
|
|
@ -104,17 +131,19 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
internal static void RegisterBookmarkFile(string path)
|
||||
{
|
||||
var directory = Path.GetDirectoryName(path);
|
||||
if (!Directory.Exists(directory))
|
||||
return;
|
||||
var watcher = new FileSystemWatcher(directory!);
|
||||
if (File.Exists(path))
|
||||
if (!Directory.Exists(directory) || !File.Exists(path))
|
||||
{
|
||||
var fileName = Path.GetFileName(path);
|
||||
watcher.Filter = fileName;
|
||||
return;
|
||||
}
|
||||
if (Watchers.Any(x => x.Path.Equals(directory, StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var watcher = new FileSystemWatcher(directory!);
|
||||
watcher.Filter = Path.GetFileName(path);
|
||||
|
||||
watcher.NotifyFilter = NotifyFilters.FileName |
|
||||
NotifyFilters.LastAccess |
|
||||
NotifyFilters.LastWrite |
|
||||
NotifyFilters.Size;
|
||||
|
||||
|
|
@ -129,7 +158,7 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
};
|
||||
|
||||
watcher.EnableRaisingEvents = true;
|
||||
|
||||
|
||||
Watchers.Add(watcher);
|
||||
}
|
||||
|
||||
|
|
@ -138,11 +167,12 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
ReloadAllBookmarks();
|
||||
}
|
||||
|
||||
public static void ReloadAllBookmarks()
|
||||
public static void ReloadAllBookmarks(bool disposeFileWatchers = true)
|
||||
{
|
||||
cachedBookmarks.Clear();
|
||||
|
||||
cachedBookmarks = BookmarkLoader.LoadAllBookmarks(_settings);
|
||||
if (disposeFileWatchers)
|
||||
DisposeFileWatchers();
|
||||
LoadBookmarksIfEnabled();
|
||||
}
|
||||
|
||||
public string GetTranslatedPluginTitle()
|
||||
|
|
@ -196,12 +226,19 @@ namespace Flow.Launcher.Plugin.BrowserBookmark
|
|||
{
|
||||
internal string Url { get; set; }
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
DisposeFileWatchers();
|
||||
}
|
||||
|
||||
private static void DisposeFileWatchers()
|
||||
{
|
||||
foreach (var watcher in Watchers)
|
||||
{
|
||||
watcher.Dispose();
|
||||
}
|
||||
Watchers.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
<system:String x:Key="plugin_explorer_shell_path">Cesta k príkazovému riadku</system:String>
|
||||
<system:String x:Key="plugin_explorer_indexsearchexcludedpaths_header">Vylúčené umiestnenia indexovania</system:String>
|
||||
<system:String x:Key="plugin_explorer_use_location_as_working_dir">Použiť umiestnenie výsledku vyhľadávania ako pracovný priečinok spustiteľného súboru</system:String>
|
||||
<system:String x:Key="plugin_explorer_default_open_in_file_manager">Stlačením klávesu Enter otvoríte priečinok v predvolenom správcovi súborov</system:String>
|
||||
<system:String x:Key="plugin_explorer_default_open_in_file_manager">Stlačením klávesu Enter otvoriť priečinok v predvolenom správcovi súborov</system:String>
|
||||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Na vyhľadanie cesty použiť vyhľadávanie v indexe</system:String>
|
||||
<system:String x:Key="plugin_explorer_manageindexoptions">Možnosti indexovania</system:String>
|
||||
<system:String x:Key="plugin_explorer_actionkeywordview_search">Vyhľadávanie:</system:String>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
<system:String x:Key="plugin_explorer_usewindowsindexfordirectorysearch">Use Index Search For Path Search</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_pathsearch">路徑搜尋:</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">快速存取:</system:String>
|
||||
|
|
|
|||
|
|
@ -2,26 +2,26 @@
|
|||
<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_pluginsmanager_downloading_plugin">正在下載外掛</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_downloading_plugin">正在下載擴充功能</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_download_success">下載完成</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_download_error">錯誤:無法下載外掛</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_download_error">錯誤:無法下載擴充功能</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_uninstall_prompt">{0} by {1} {2}{3}Would you like to uninstall this plugin? After the uninstallation Flow will automatically restart.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_prompt">{0} by {1} {2}{3}Would you like to install this plugin? After the installation Flow will automatically restart.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_title">安裝外掛</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_title">安裝擴充功能</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_installing_plugin">Installing Plugin</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_from_web">下載並安裝 {0}</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_uninstall_title">移除外掛</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_uninstall_title">解除安裝擴充功能</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_success_restart">外掛安裝成功。正在重啟 Flow,請稍後...</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_errormetadatafile">Unable to find the plugin.json metadata file from the extracted zip file.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_error_duplicate">Error: A plugin which has the same or greater version with {0} already exists.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_error_title">安裝外掛時發生錯誤</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_error_title">安裝擴充功能時發生錯誤</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_error_subtitle">嘗試安裝 {0} 時發生錯誤</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_noresult_title">無可用更新</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_noresult_subtitle">所有插件均為最新版本</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_prompt">{0} by {1} {2}{3}Would you like to update this plugin? After the update Flow will automatically restart.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_title">外掛更新</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_title">擴充功能更新</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_exists">This plugin has an update, would you like to see it?</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_alreadyexists">已安裝此外掛</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_alreadyexists">已安裝此擴充功能</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_failed_title">Plugin Manifest Download Failed</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_update_failed_subtitle">Please check if you can connect to github.com. This error means you may not be able to install or update plugins.</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_install_unknown_source_warning_title">Installing from an unknown source</system:String>
|
||||
|
|
@ -30,15 +30,15 @@
|
|||
<!-- Controls -->
|
||||
|
||||
<!-- Plugin Infos -->
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_name">外掛管理</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_name">擴充功能管理</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_description">Management of installing, uninstalling or updating Flow Launcher plugins</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_unknown_author">未知的作者</system:String>
|
||||
|
||||
<!-- Context menu items -->
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_openwebsite_title">打開網頁</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_openwebsite_subtitle">查看外掛的網站</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_openwebsite_subtitle">查看擴充功能的網站</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_gotosourcecode_title">查看原始碼</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_gotosourcecode_subtitle">查看外掛的原始碼</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_gotosourcecode_subtitle">查看擴充功能的原始碼</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_newissue_title">Suggest an enhancement or submit an issue</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_newissue_subtitle">Suggest an enhancement or submit an issue to the plugin developer</system:String>
|
||||
<system:String x:Key="plugin_pluginsmanager_plugin_contextmenu_pluginsmanifest_title">Go to Flow's plugins repository</system:String>
|
||||
|
|
|
|||
|
|
@ -20,21 +20,21 @@
|
|||
<system:String x:Key="flowlauncher_plugin_sys_hibernate">休眠计算机</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_save_all_settings">保存所有 Flow Launcher 设置</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_reload_plugin_data">用新内容刷新插件数据</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_open_log_location">打开 Flow Launcher 的日志目录</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_open_log_location">打开 Flow Launcher 的日志文件夹</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_check_for_update">检查新的 Flow Launcher 更新</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_open_docs_tips">访问 Flow Launcher 的文档以获取更多帮助以及使用技巧</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_open_userdata_location">打开存储 Flow Launcher 设置的位置</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_open_userdata_location">打开Flow Launcher 设置文件夹</system:String>
|
||||
|
||||
<!-- Dialogs -->
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtitle_success">成功</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_all_settings_saved">所有 Flow Launcher 设置已保存</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_all_applicableplugins_reloaded">重新加载了所有插件数据</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_shutdown_computer">您确定要关机吗?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_restart_computer">您确定要重启吗</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_restart_computer_advanced">您确定要以高级启动选项重启计算机吗?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_logoff_computer">你确定要注销吗?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_restart_computer">您确定要重启吗?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_restart_computer_advanced">您确定要以高级启动选项重启吗?</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_dlgtext_logoff_computer">您确定要注销吗?</system:String>
|
||||
|
||||
<system:String x:Key="flowlauncher_plugin_sys_plugin_name">系统命令</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_plugin_description">系统系统相关的命令。例如,关机,锁定,设置等</system:String>
|
||||
<system:String x:Key="flowlauncher_plugin_sys_plugin_description">提供操作系统相关的命令,如关机、锁定、设置等。</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@
|
|||
<comment>Area Apps</comment>
|
||||
</data>
|
||||
<data name="AppVolumeAndDevicePreferences" xml:space="preserve">
|
||||
<value>Predvoľby hlasitosti aplikácia a predvoľby zariadenia</value>
|
||||
<value>Hlasitosť aplikácie a predvoľby zariadenia</value>
|
||||
<comment>Area System, Added in Windows 10, version 1903</comment>
|
||||
</data>
|
||||
<data name="appwiz.cpl" xml:space="preserve">
|
||||
|
|
|
|||
|
|
@ -701,7 +701,7 @@
|
|||
<comment>Area Gaming</comment>
|
||||
</data>
|
||||
<data name="GameMode" xml:space="preserve">
|
||||
<value>Game Mode</value>
|
||||
<value>Режим гри</value>
|
||||
<comment>Area Gaming</comment>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
|
|
|
|||
|
|
@ -276,6 +276,7 @@ And you can download <a href="https://github.com/Flow-Launcher/Flow.Launcher/dis
|
|||
| <kbd>Esc</kbd> | Back to results / hide search window |
|
||||
| <kbd>Ctrl</kbd> +<kbd>C</kbd> | Copy the actual folder / file |
|
||||
| <kbd>Ctrl</kbd> +<kbd>I</kbd> | Open flow's settings |
|
||||
| <kbd>Ctrl</kbd> +<kbd>R</kbd> | Run the current query again (refresh results)|
|
||||
| <kbd>F5</kbd> | Reload all plugin data |
|
||||
| <kbd>Ctrl</kbd> + <kbd>F12</kbd> | Toggle Game Mode when in search window |
|
||||
| <kbd>Ctrl</kbd> + <kbd>+</kbd>,<kbd>-</kbd> | Quickly change maximum results shown |
|
||||
|
|
|
|||
Loading…
Reference in a new issue