Merge branch 'dev' into topmost

This commit is contained in:
Jack Ye 2025-06-03 14:35:48 +08:00 committed by GitHub
commit 2c40d2fe43
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
155 changed files with 1998 additions and 532 deletions

215
.github/update_release_pr.py vendored Normal file
View file

@ -0,0 +1,215 @@
from os import getenv
import requests
def get_github_prs(token: str, owner: str, repo: str, label: str = "", state: str = "all") -> list[dict]:
"""
Fetches pull requests from a GitHub repository that match a given milestone and label.
Args:
token (str): GitHub token.
owner (str): The owner of the repository.
repo (str): The name of the repository.
label (str): The label name.
state (str): State of PR, e.g. open, closed, all
Returns:
list: A list of dictionaries, where each dictionary represents a pull request.
Returns an empty list if no PRs are found or an error occurs.
"""
headers = {
"Authorization": f"token {token}",
"Accept": "application/vnd.github.v3+json",
}
milestone_id = None
milestone_url = f"https://api.github.com/repos/{owner}/{repo}/milestones"
params = {"state": "open"}
try:
response = requests.get(milestone_url, headers=headers, params=params)
response.raise_for_status()
milestones = response.json()
if len(milestones) > 2:
print("More than two milestones found, unable to determine the milestone required.")
exit(1)
# milestones.pop()
for ms in milestones:
if ms["title"] != "Future":
milestone_id = ms["number"]
print(f"Gathering PRs with milestone {ms['title']}...")
break
if not milestone_id:
print(f"No suitable milestone found in repository '{owner}/{repo}'.")
exit(1)
except requests.exceptions.RequestException as e:
print(f"Error fetching milestones: {e}")
exit(1)
# This endpoint allows filtering by milestone and label. A PR in GH's perspective is a type of issue.
prs_url = f"https://api.github.com/repos/{owner}/{repo}/issues"
params = {
"state": state,
"milestone": milestone_id,
"labels": label,
"per_page": 100,
}
all_prs = []
page = 1
while True:
try:
params["page"] = page
response = requests.get(prs_url, headers=headers, params=params)
response.raise_for_status() # Raise an exception for HTTP errors
prs = response.json()
if not prs:
break # No more PRs to fetch
# Check for pr key since we are using issues endpoint instead.
all_prs.extend([item for item in prs if "pull_request" in item])
page += 1
except requests.exceptions.RequestException as e:
print(f"Error fetching pull requests: {e}")
exit(1)
return all_prs
def get_prs(pull_request_items: list[dict], label: str = "", state: str = "all") -> list[dict]:
"""
Returns a list of pull requests after applying the label and state filters.
Args:
pull_request_items (list[dict]): List of PR items.
label (str): The label name.
state (str): State of PR, e.g. open, closed, all
Returns:
list: A list of dictionaries, where each dictionary represents a pull request.
Returns an empty list if no PRs are found.
"""
pr_list = []
count = 0
for pr in pull_request_items:
if pr["state"] == state and [item for item in pr["labels"] if item["name"] == label]:
pr_list.append(pr)
count += 1
print(f"Found {count} PRs with {label if label else 'no'} label and state as {state}")
return pr_list
def get_pr_descriptions(pull_request_items: list[dict]) -> str:
"""
Returns the concatenated string of pr title and number in the format of
'- PR title 1 #3651
- PR title 2 #3652
- PR title 3 #3653
'
Args:
pull_request_items (list[dict]): List of PR items.
Returns:
str: a string of PR titles and numbers
"""
description_content = ""
for pr in pull_request_items:
description_content += f"- {pr['title']} #{pr['number']}\n"
return description_content
def update_pull_request_description(token: str, owner: str, repo: str, pr_number: int, new_description: str) -> None:
"""
Updates the description (body) of a GitHub Pull Request.
Args:
token (str): Token.
owner (str): The owner of the repository.
repo (str): The name of the repository.
pr_number (int): The number of the pull request to update.
new_description (str): The new content for the PR's description.
Returns:
dict or None: The updated PR object (as a dictionary) if successful,
None otherwise.
"""
headers = {
"Authorization": f"token {token}",
"Accept": "application/vnd.github.v3+json",
"Content-Type": "application/json",
}
url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}"
payload = {"body": new_description}
print(f"Attempting to update PR #{pr_number} in {owner}/{repo}...")
print(f"URL: {url}")
try:
response = None
response = requests.patch(url, headers=headers, json=payload)
response.raise_for_status()
print(f"Successfully updated PR #{pr_number}.")
except requests.exceptions.RequestException as e:
print(f"Error updating pull request #{pr_number}: {e}")
if response is not None:
print(f"Response status code: {response.status_code}")
print(f"Response text: {response.text}")
exit(1)
if __name__ == "__main__":
github_token = getenv("GITHUB_TOKEN")
if not github_token:
print("Error: GITHUB_TOKEN environment variable not set.")
exit(1)
repository_owner = "flow-launcher"
repository_name = "flow.launcher"
state = "all"
print(f"Fetching {state} PRs for {repository_owner}/{repository_name} ...")
pull_requests = get_github_prs(github_token, repository_owner, repository_name)
if not pull_requests:
print("No matching pull requests found")
exit(1)
print(f"\nFound total of {len(pull_requests)} pull requests")
release_pr = get_prs(pull_requests, "release", "open")
if len(release_pr) != 1:
print(f"Unable to find the exact release PR. Returned result: {release_pr}")
exit(1)
print(f"Found release PR: {release_pr[0]['title']}")
enhancement_prs = get_prs(pull_requests, "enhancement", "closed")
bug_fix_prs = get_prs(pull_requests, "bug", "closed")
description_content = "# Release notes\n"
description_content += f"## Features\n{get_pr_descriptions(enhancement_prs)}" if enhancement_prs else ""
description_content += f"## Bug fixes\n{get_pr_descriptions(bug_fix_prs)}" if bug_fix_prs else ""
update_pull_request_description(
github_token, repository_owner, repository_name, release_pr[0]["number"], description_content
)
print(f"PR content updated to:\n{description_content}")

34
.github/workflows/release_deploy.yml vendored Normal file
View file

@ -0,0 +1,34 @@
---
name: New Release Deployments
on:
release:
types: [published]
workflow_dispatch:
jobs:
deploy-website:
runs-on: ubuntu-latest
steps:
- name: Trigger dispatch event for deploying website
run: |
http_status=$(curl -L -f -s -o /dev/null -w "%{http_code}" \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.DEPLOY_FLOW_WEBSITE }}" \
https://api.github.com/repos/Flow-Launcher/flow-launcher.github.io/dispatches \
-d '{"event_type":"deploy"}')
if [ "$http_status" -ne 204 ]; then echo "Error: Deploy website failed, HTTP status code is $http_status"; exit 1; fi
publish-chocolatey:
runs-on: ubuntu-latest
steps:
- name: Trigger dispatch event for publishing to Chocolatey
run: |
http_status=$(curl -L -f -s -o /dev/null -w "%{http_code}" \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.Publish_Chocolatey }}" \
https://api.github.com/repos/Flow-Launcher/chocolatey-package/dispatches \
-d '{"event_type":"publish"}')
if [ "$http_status" -ne 204 ]; then echo "Error: Publish Chocolatey package failed, HTTP status code is $http_status"; exit 1; fi

25
.github/workflows/release_pr.yml vendored Normal file
View file

@ -0,0 +1,25 @@
name: Update release PR
on:
pull_request:
types: [opened, reopened, synchronize]
branches:
- master
workflow_dispatch:
jobs:
update-pr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Run release PR update
env:
GITHUB_TOKEN: ${{ secrets.PR_TOKEN }}
run: |
pip install requests -q
python3 ./.github/update_release_pr.py

View file

@ -1,21 +0,0 @@
---
name: Deploy Website On Release
on:
release:
types: [published]
workflow_dispatch:
jobs:
dispatch:
runs-on: ubuntu-latest
steps:
- name: Dispatch event
run: |
http_status=$(curl -L -f -s -o /dev/null -w "%{http_code}" \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.DEPLOY_FLOW_WEBSITE }}" \
https://api.github.com/repos/Flow-Launcher/flow-launcher.github.io/dispatches \
-d '{"event_type":"deploy"}')
if [ "$http_status" -ne 204 ]; then echo "Error: Deploy trigger failed, HTTP status code is $http_status"; exit 1; fi

View file

@ -187,11 +187,21 @@ namespace Flow.Launcher.Core.Plugin
{
if (AllowedLanguage.IsDotNet(metadata.Language))
{
if (string.IsNullOrEmpty(metadata.AssemblyName))
{
API.LogWarn(ClassName, $"AssemblyName is empty for plugin with metadata: {metadata.Name}");
continue; // Skip if AssemblyName is not set, which can happen for erroneous plugins
}
metadata.PluginSettingsDirectoryPath = Path.Combine(DataLocation.PluginSettingsDirectory, metadata.AssemblyName);
metadata.PluginCacheDirectoryPath = Path.Combine(DataLocation.PluginCacheDirectory, metadata.AssemblyName);
}
else
{
if (string.IsNullOrEmpty(metadata.Name))
{
API.LogWarn(ClassName, $"Name is empty for plugin with metadata: {metadata.Name}");
continue; // Skip if Name is not set, which can happen for erroneous plugins
}
metadata.PluginSettingsDirectoryPath = Path.Combine(DataLocation.PluginSettingsDirectory, metadata.Name);
metadata.PluginCacheDirectoryPath = Path.Combine(DataLocation.PluginCacheDirectory, metadata.Name);
}

View file

@ -16,7 +16,8 @@ namespace Flow.Launcher.Core.Plugin
Search = string.Empty,
RawQuery = string.Empty,
SearchTerms = Array.Empty<string>(),
ActionKeyword = string.Empty
ActionKeyword = string.Empty,
IsHomeQuery = true
};
}
@ -53,7 +54,8 @@ namespace Flow.Launcher.Core.Plugin
Search = search,
RawQuery = rawQuery,
SearchTerms = searchTerms,
ActionKeyword = actionKeyword
ActionKeyword = actionKeyword,
IsHomeQuery = false
};
}
}

View file

@ -182,7 +182,6 @@ namespace Flow.Launcher.Infrastructure.Http
public static Task<Stream> GetStreamAsync([NotNull] string url,
CancellationToken token = default) => GetStreamAsync(new Uri(url), token);
/// <summary>
/// Send a GET request to the specified Uri with an HTTP completion option and a cancellation token as an asynchronous operation.
/// </summary>
@ -212,7 +211,14 @@ namespace Flow.Launcher.Infrastructure.Http
/// </summary>
public static async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption = HttpCompletionOption.ResponseContentRead, CancellationToken token = default)
{
return await client.SendAsync(request, completionOption, token);
try
{
return await client.SendAsync(request, completionOption, token);
}
catch (System.Exception)
{
return new HttpResponseMessage(HttpStatusCode.InternalServerError);
}
}
}
}

View file

@ -22,7 +22,7 @@ SystemParametersInfo
SetForegroundWindow
GetWindowLong
WINDOW_LONG_PTR_INDEX
GetForegroundWindow
GetDesktopWindow
GetShellWindow
@ -57,3 +57,7 @@ LOCALE_TRANSIENT_KEYBOARD1
LOCALE_TRANSIENT_KEYBOARD2
LOCALE_TRANSIENT_KEYBOARD3
LOCALE_TRANSIENT_KEYBOARD4
SHParseDisplayName
SHOpenFolderAndSelectItems
CoTaskMemFree

View file

@ -4,14 +4,16 @@ using Windows.Win32.UI.WindowsAndMessaging;
namespace Windows.Win32;
// Edited from: https://github.com/files-community/Files
internal static partial class PInvoke
{
// SetWindowLong
// Edited from: https://github.com/files-community/Files
[DllImport("User32", EntryPoint = "SetWindowLongW", ExactSpelling = true)]
static extern int _SetWindowLong(HWND hWnd, int nIndex, int dwNewLong);
private static extern int _SetWindowLong(HWND hWnd, int nIndex, int dwNewLong);
[DllImport("User32", EntryPoint = "SetWindowLongPtrW", ExactSpelling = true)]
static extern nint _SetWindowLongPtr(HWND hWnd, int nIndex, nint dwNewLong);
private static extern nint _SetWindowLongPtr(HWND hWnd, int nIndex, nint dwNewLong);
// NOTE:
// CsWin32 doesn't generate SetWindowLong on other than x86 and vice versa.
@ -22,4 +24,22 @@ internal static partial class PInvoke
? _SetWindowLong(hWnd, (int)nIndex, (int)dwNewLong)
: _SetWindowLongPtr(hWnd, (int)nIndex, dwNewLong);
}
// GetWindowLong
[DllImport("User32", EntryPoint = "GetWindowLongW", ExactSpelling = true)]
private static extern int _GetWindowLong(HWND hWnd, int nIndex);
[DllImport("User32", EntryPoint = "GetWindowLongPtrW", ExactSpelling = true)]
private static extern nint _GetWindowLongPtr(HWND hWnd, int nIndex);
// NOTE:
// CsWin32 doesn't generate GetWindowLong on other than x86 and vice versa.
// For more info, visit https://github.com/microsoft/CsWin32/issues/882
public static unsafe nint GetWindowLongPtr(HWND hWnd, WINDOW_LONG_PTR_INDEX nIndex)
{
return sizeof(nint) is 4
? _GetWindowLong(hWnd, (int)nIndex)
: _GetWindowLongPtr(hWnd, (int)nIndex);
}
}

View file

@ -50,6 +50,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public string SelectPrevPageHotkey { get; set; } = $"PageDown";
public string OpenContextMenuHotkey { get; set; } = $"Ctrl+O";
public string SettingWindowHotkey { get; set; } = $"Ctrl+I";
public string OpenHistoryHotkey { get; set; } = $"Ctrl+H";
public string CycleHistoryUpHotkey { get; set; } = $"{KeyConstant.Alt} + Up";
public string CycleHistoryDownHotkey { get; set; } = $"{KeyConstant.Alt} + Down";
@ -176,7 +177,20 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
}
public bool ShowHistoryResultsForHomePage { get; set; } = false;
private bool _showHistoryResultsForHomePage = false;
public bool ShowHistoryResultsForHomePage
{
get => _showHistoryResultsForHomePage;
set
{
if (_showHistoryResultsForHomePage != value)
{
_showHistoryResultsForHomePage = value;
OnPropertyChanged();
}
}
}
public int MaxHistoryResultsToShowForHomePage { get; set; } = 5;
public int CustomExplorerIndex { get; set; } = 0;
@ -216,8 +230,8 @@ namespace Flow.Launcher.Infrastructure.UserSettings
new()
{
Name = "Files",
Path = "Files",
DirectoryArgument = "-select \"%d\"",
Path = "Files-Stable",
DirectoryArgument = "\"%d\"",
FileArgument = "-select \"%f\""
}
};
@ -418,29 +432,31 @@ namespace Flow.Launcher.Infrastructure.UserSettings
var list = FixedHotkeys();
// Customizeable hotkeys
if(!string.IsNullOrEmpty(Hotkey))
if (!string.IsNullOrEmpty(Hotkey))
list.Add(new(Hotkey, "flowlauncherHotkey", () => Hotkey = ""));
if(!string.IsNullOrEmpty(PreviewHotkey))
if (!string.IsNullOrEmpty(PreviewHotkey))
list.Add(new(PreviewHotkey, "previewHotkey", () => PreviewHotkey = ""));
if(!string.IsNullOrEmpty(AutoCompleteHotkey))
if (!string.IsNullOrEmpty(AutoCompleteHotkey))
list.Add(new(AutoCompleteHotkey, "autoCompleteHotkey", () => AutoCompleteHotkey = ""));
if(!string.IsNullOrEmpty(AutoCompleteHotkey2))
if (!string.IsNullOrEmpty(AutoCompleteHotkey2))
list.Add(new(AutoCompleteHotkey2, "autoCompleteHotkey", () => AutoCompleteHotkey2 = ""));
if(!string.IsNullOrEmpty(SelectNextItemHotkey))
if (!string.IsNullOrEmpty(SelectNextItemHotkey))
list.Add(new(SelectNextItemHotkey, "SelectNextItemHotkey", () => SelectNextItemHotkey = ""));
if(!string.IsNullOrEmpty(SelectNextItemHotkey2))
if (!string.IsNullOrEmpty(SelectNextItemHotkey2))
list.Add(new(SelectNextItemHotkey2, "SelectNextItemHotkey", () => SelectNextItemHotkey2 = ""));
if(!string.IsNullOrEmpty(SelectPrevItemHotkey))
if (!string.IsNullOrEmpty(SelectPrevItemHotkey))
list.Add(new(SelectPrevItemHotkey, "SelectPrevItemHotkey", () => SelectPrevItemHotkey = ""));
if(!string.IsNullOrEmpty(SelectPrevItemHotkey2))
if (!string.IsNullOrEmpty(SelectPrevItemHotkey2))
list.Add(new(SelectPrevItemHotkey2, "SelectPrevItemHotkey", () => SelectPrevItemHotkey2 = ""));
if(!string.IsNullOrEmpty(SettingWindowHotkey))
if (!string.IsNullOrEmpty(SettingWindowHotkey))
list.Add(new(SettingWindowHotkey, "SettingWindowHotkey", () => SettingWindowHotkey = ""));
if(!string.IsNullOrEmpty(OpenContextMenuHotkey))
if (!string.IsNullOrEmpty(OpenHistoryHotkey))
list.Add(new(OpenHistoryHotkey, "OpenHistoryHotkey", () => OpenHistoryHotkey = ""));
if (!string.IsNullOrEmpty(OpenContextMenuHotkey))
list.Add(new(OpenContextMenuHotkey, "OpenContextMenuHotkey", () => OpenContextMenuHotkey = ""));
if(!string.IsNullOrEmpty(SelectNextPageHotkey))
if (!string.IsNullOrEmpty(SelectNextPageHotkey))
list.Add(new(SelectNextPageHotkey, "SelectNextPageHotkey", () => SelectNextPageHotkey = ""));
if(!string.IsNullOrEmpty(SelectPrevPageHotkey))
if (!string.IsNullOrEmpty(SelectPrevPageHotkey))
list.Add(new(SelectPrevPageHotkey, "SelectPrevPageHotkey", () => SelectPrevPageHotkey = ""));
if (!string.IsNullOrEmpty(CycleHistoryUpHotkey))
list.Add(new(CycleHistoryUpHotkey, "CycleHistoryUpHotkey", () => CycleHistoryUpHotkey = ""));
@ -471,7 +487,6 @@ namespace Flow.Launcher.Infrastructure.UserSettings
new("Alt+Home", "HotkeySelectFirstResult"),
new("Alt+End", "HotkeySelectLastResult"),
new("Ctrl+R", "HotkeyRequery"),
new("Ctrl+H", "ToggleHistoryHotkey"),
new("Ctrl+OemCloseBrackets", "QuickWidthHotkey"),
new("Ctrl+OemOpenBrackets", "QuickWidthHotkey"),
new("Ctrl+OemPlus", "QuickHeightHotkey"),

View file

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading;
@ -17,6 +18,7 @@ using Windows.Win32;
using Windows.Win32.Foundation;
using Windows.Win32.Graphics.Dwm;
using Windows.Win32.UI.Input.KeyboardAndMouse;
using Windows.Win32.UI.Shell.Common;
using Windows.Win32.UI.WindowsAndMessaging;
using Point = System.Windows.Point;
using SystemFonts = System.Windows.SystemFonts;
@ -192,9 +194,9 @@ namespace Flow.Launcher.Infrastructure
SetWindowStyle(hwnd, WINDOW_LONG_PTR_INDEX.GWL_STYLE, style);
}
private static int GetWindowStyle(HWND hWnd, WINDOW_LONG_PTR_INDEX nIndex)
private static nint GetWindowStyle(HWND hWnd, WINDOW_LONG_PTR_INDEX nIndex)
{
var style = PInvoke.GetWindowLong(hWnd, nIndex);
var style = PInvoke.GetWindowLongPtr(hWnd, nIndex);
if (style == 0 && Marshal.GetLastPInvokeError() != 0)
{
throw new Win32Exception(Marshal.GetLastPInvokeError());
@ -202,7 +204,7 @@ namespace Flow.Launcher.Infrastructure
return style;
}
private static nint SetWindowStyle(HWND hWnd, WINDOW_LONG_PTR_INDEX nIndex, int dwNewLong)
private static nint SetWindowStyle(HWND hWnd, WINDOW_LONG_PTR_INDEX nIndex, nint dwNewLong)
{
PInvoke.SetLastError(WIN32_ERROR.NO_ERROR); // Clear any existing error
@ -753,5 +755,36 @@ namespace Flow.Launcher.Infrastructure
}
#endregion
#region Explorer
// https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shopenfolderandselectitems
public static unsafe void OpenFolderAndSelectFile(string filePath)
{
ITEMIDLIST* pidlFolder = null;
ITEMIDLIST* pidlFile = null;
var folderPath = Path.GetDirectoryName(filePath);
try
{
var hrFolder = PInvoke.SHParseDisplayName(folderPath, null, out pidlFolder, 0, null);
if (hrFolder.Failed) throw new COMException("Failed to parse folder path", hrFolder);
var hrFile = PInvoke.SHParseDisplayName(filePath, null, out pidlFile, 0, null);
if (hrFile.Failed) throw new COMException("Failed to parse file path", hrFile);
var hrSelect = PInvoke.SHOpenFolderAndSelectItems(pidlFolder, 1, &pidlFile, 0);
if (hrSelect.Failed) throw new COMException("Failed to open folder and select item", hrSelect);
}
finally
{
if (pidlFile != null) PInvoke.CoTaskMemFree(pidlFile);
if (pidlFolder != null) PInvoke.CoTaskMemFree(pidlFolder);
}
}
#endregion
}
}

View file

@ -88,6 +88,11 @@ namespace Flow.Launcher.Plugin
/// Show the MainWindow when hiding
/// </summary>
void ShowMainWindow();
/// <summary>
/// Focus the query text box in the main window
/// </summary>
void FocusQueryTextBox();
/// <summary>
/// Hide MainWindow

View file

@ -21,6 +21,11 @@ namespace Flow.Launcher.Plugin
/// </summary>
public bool IsReQuery { get; internal set; } = false;
/// <summary>
/// Determines whether the query is a home query.
/// </summary>
public bool IsHomeQuery { get; internal init; } = false;
/// <summary>
/// Search part of a query.
/// This will not include action keyword if exclusive plugin gets it, otherwise it should be same as RawQuery.

View file

@ -32,7 +32,7 @@ namespace Flow.Launcher
#region Public Properties
public static IPublicAPI API { get; private set; }
public static bool Exiting => _mainWindow.CanClose;
public static bool LoadingOrExiting => _mainWindow == null || _mainWindow.CanClose;
#endregion
@ -98,6 +98,10 @@ namespace Flow.Launcher
.AddTransient<SettingsPanePluginStoreViewModel>()
.AddTransient<SettingsPaneProxyViewModel>()
.AddTransient<SettingsPaneThemeViewModel>()
// Use transient instance for dialog view models because
// settings will change and we need to recreate them
.AddTransient<SelectBrowserViewModel>()
.AddTransient<SelectFileManagerViewModel>()
).Build();
Ioc.Default.ConfigureServices(host.Services);
}

View file

@ -100,6 +100,7 @@ namespace Flow.Launcher
PreviewHotkey,
OpenContextMenuHotkey,
SettingWindowHotkey,
OpenHistoryHotkey,
CycleHistoryUpHotkey,
CycleHistoryDownHotkey,
SelectPrevPageHotkey,
@ -130,6 +131,7 @@ namespace Flow.Launcher
HotkeyType.PreviewHotkey => _settings.PreviewHotkey,
HotkeyType.OpenContextMenuHotkey => _settings.OpenContextMenuHotkey,
HotkeyType.SettingWindowHotkey => _settings.SettingWindowHotkey,
HotkeyType.OpenHistoryHotkey => _settings.OpenHistoryHotkey,
HotkeyType.CycleHistoryUpHotkey => _settings.CycleHistoryUpHotkey,
HotkeyType.CycleHistoryDownHotkey => _settings.CycleHistoryDownHotkey,
HotkeyType.SelectPrevPageHotkey => _settings.SelectPrevPageHotkey,
@ -166,6 +168,9 @@ namespace Flow.Launcher
case HotkeyType.SettingWindowHotkey:
_settings.SettingWindowHotkey = value;
break;
case HotkeyType.OpenHistoryHotkey:
_settings.OpenHistoryHotkey = value;
break;
case HotkeyType.CycleHistoryUpHotkey:
_settings.CycleHistoryUpHotkey = value;
break;

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">موقع بيانات المستخدم</system:String>
<system:String x:Key="userdatapathToolTip">يتم حفظ إعدادات المستخدم والإضافات المثبتة في مجلد بيانات المستخدم. قد يختلف هذا الموقع اعتمادًا على ما إذا كان في وضع النقل أم لا.</system:String>
<system:String x:Key="userdatapathButton">فتح المجلد</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">اختر مدير الملفات</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">يرجى تحديد موقع ملف مدير الملفات الذي تستخدمه وإضافة الحجج حسب الحاجة. يمثل &quot;%d&quot; مسار الدليل المفتوح، ويستخدمه الحقل &quot;الحجة للمجلد&quot; للأوامر التي تفتح أدلة محددة. يمثل &quot;%f&quot; مسار الملف المفتوح، ويستخدمه الحقل &quot;الحجة للملف&quot; للأوامر التي تفتح ملفات محددة.</system:String>
<system:String x:Key="fileManager_tips2">على سبيل المثال، إذا كان مدير الملفات يستخدم أمرًا مثل &quot;totalcmd.exe /A c:\windows&quot; لفتح دليل c:\windows، فإن مسار مدير الملفات سيكون totalcmd.exe، وحجة المجلد ستكون /A &quot;%d&quot;. قد تحتاج بعض مديري الملفات مثل QTTabBar فقط إلى توفير مسار، في هذه الحالة استخدم &quot;%d&quot; كمسار مدير الملفات واترك باقي الحقول فارغة.</system:String>
<system:String x:Key="fileManager_name">مدير الملفات</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">مسار مدير الملفات</system:String>
<system:String x:Key="fileManager_directory_arg">حجة للمجلد</system:String>
<system:String x:Key="fileManager_file_arg">حجة للملف</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">متصفح الويب الافتراضي</system:String>
@ -469,6 +473,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">خطأ</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">يرجى الانتظار...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Vybrat správce souborů</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Správce souborů</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Cesta k správci souborů</system:String>
<system:String x:Key="fileManager_directory_arg">Argumenty pro složku</system:String>
<system:String x:Key="fileManager_file_arg">Argumenty pro Soubor</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Výchozí prohlížeč</system:String>
@ -469,6 +473,14 @@ Pokud před zkratku při zadávání přidáte znak &quot;@&quot;, bude odpovíd
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Chyba</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Počkejte prosím...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Filhåndtering</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Sti til filhåndtering</system:String>
<system:String x:Key="fileManager_directory_arg">Arg for mappe</system:String>
<system:String x:Key="fileManager_file_arg">Arg for fil</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Default Web Browser</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>

View file

@ -42,8 +42,8 @@
<system:String x:Key="GameMode">Spielmodus</system:String>
<system:String x:Key="GameModeToolTip">Aussetzen der Verwendung von Hotkeys.</system:String>
<system:String x:Key="PositionReset">Position zurücksetzen</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="queryTextBoxPlaceholder">Type here to search</system:String>
<system:String x:Key="PositionResetToolTip">Position des Suchfensters zurücksetzen</system:String>
<system:String x:Key="queryTextBoxPlaceholder">Zum Suchen hier tippen</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">Einstellungen</system:String>
@ -126,12 +126,12 @@
</system:String>
<system:String x:Key="KoreanImeOpenLink">Open Language and Region System Settings</system:String>
<system:String x:Key="KoreanImeOpenLink">Sprach- und Regionen-Systemeinstellungen öffnen</system:String>
<system:String x:Key="KoreanImeOpenLinkToolTip">Opens the Korean IME setting location. Go to Korean &gt; Language Options &gt; Keyboard - Microsoft IME &gt; Compatibility</system:String>
<system:String x:Key="KoreanImeOpenLinkButton">Öffnen</system:String>
<system:String x:Key="KoreanImeRegistry">Use Previous Korean IME</system:String>
<system:String x:Key="KoreanImeRegistry">Vorherige koreanische IME verwenden</system:String>
<system:String x:Key="KoreanImeRegistryTooltip">You can change the Previous Korean IME settings directly from here</system:String>
<system:String x:Key="homePage">Home Page</system:String>
<system:String x:Key="homePage">Homepage</system:String>
<system:String x:Key="homePageToolTip">Show home page results when query text is empty.</system:String>
<system:String x:Key="historyResultsForHomePage">Show History Results in Home Page</system:String>
<system:String x:Key="historyResultsCountForHomePage">Maximum History Results Shown in Home Page</system:String>
@ -154,11 +154,11 @@
<system:String x:Key="actionKeywordsTooltip">Aktions-Schlüsselwörter ändern</system:String>
<system:String x:Key="pluginSearchDelayTime">Plugin search delay time</system:String>
<system:String x:Key="pluginSearchDelayTimeTooltip">Change Plugin Search Delay Time</system:String>
<system:String x:Key="FilterComboboxLabel">Advanced Settings:</system:String>
<system:String x:Key="FilterComboboxLabel">Erweiterte Einstellungen</system:String>
<system:String x:Key="DisplayModeOnOff">Aktiviert</system:String>
<system:String x:Key="DisplayModePriority">Priorität</system:String>
<system:String x:Key="DisplayModeSearchDelay">Search Delay</system:String>
<system:String x:Key="DisplayModeHomeOnOff">Home Page</system:String>
<system:String x:Key="DisplayModeHomeOnOff">Homepage</system:String>
<system:String x:Key="currentPriority">Aktuelle Priorität</system:String>
<system:String x:Key="newPriority">Neue Priorität</system:String>
<system:String x:Key="priority">Priorität</system:String>
@ -246,13 +246,13 @@
<system:String x:Key="BackdropTypesAcrylic">Acrylic</system:String>
<system:String x:Key="BackdropTypesMica">Mica</system:String>
<system:String x:Key="BackdropTypesMicaAlt">Mica Alt</system:String>
<system:String x:Key="TypeIsDarkToolTip">This theme supports two (light/dark) modes.</system:String>
<system:String x:Key="TypeIsDarkToolTip">Dieses Theme unterstützt zwei Modi (hell/dunkel).</system:String>
<system:String x:Key="TypeHasBlurToolTip">Dieses Theme unterstützt Unschärfe und transparenten Hintergrund.</system:String>
<system:String x:Key="ShowPlaceholder">Show placeholder</system:String>
<system:String x:Key="ShowPlaceholder">Platzhalter zeigen</system:String>
<system:String x:Key="ShowPlaceholderTip">Display placeholder when query is empty</system:String>
<system:String x:Key="PlaceholderText">Placeholder text</system:String>
<system:String x:Key="PlaceholderText">Platzhaltertext</system:String>
<system:String x:Key="PlaceholderTextTip">Change placeholder text. Input empty will use: {0}</system:String>
<system:String x:Key="KeepMaxResults">Fixed Window Size</system:String>
<system:String x:Key="KeepMaxResults">Festgelegte Fenstergröße</system:String>
<system:String x:Key="KeepMaxResultsToolTip">The window size is not adjustable by dragging.</system:String>
<!-- Setting Hotkey -->
@ -313,7 +313,7 @@
<system:String x:Key="useGlyphUI">Segoe Fluent-Icons verwenden</system:String>
<system:String x:Key="useGlyphUIEffect">Segoe Fluent-Icons für Abfrageergebnisse verwenden, wo unterstützt</system:String>
<system:String x:Key="flowlauncherPressHotkey">Taste drücken</system:String>
<system:String x:Key="showBadges">Show Result Badges</system:String>
<system:String x:Key="showBadges">Ergebnis-Badges zeigen</system:String>
<system:String x:Key="showBadgesToolTip">For supported plugins, badges are displayed to help distinguish them more easily.</system:String>
<system:String x:Key="showBadgesGlobalOnly">Show Result Badges for Global Query Only</system:String>
@ -356,14 +356,15 @@
<system:String x:Key="logfolder">Ordner »Logs«</system:String>
<system:String x:Key="clearlogfolder">Logs löschen</system:String>
<system:String x:Key="clearlogfolderMessage">Sind Sie sicher, dass Sie alle Logs löschen wollen?</system:String>
<system:String x:Key="cachefolder">Cache Folder</system:String>
<system:String x:Key="clearcachefolder">Clear Caches</system:String>
<system:String x:Key="cachefolder">Cache-Ordner</system:String>
<system:String x:Key="clearcachefolder">Cache leeren</system:String>
<system:String x:Key="clearcachefolderMessage">Are you sure you want to delete all caches?</system:String>
<system:String x:Key="clearfolderfailMessage">Failed to clear part of folders and files. Please see log file for more information</system:String>
<system:String x:Key="welcomewindow">Assistent</system:String>
<system:String x:Key="userdatapath">Speicherort für Benutzerdaten</system:String>
<system:String x:Key="userdatapathToolTip">Benutzereinstellungen und installierte Plug-ins werden im Ordner für Benutzerdaten gespeichert. Dieser Speicherort kann variieren, je nachdem, ob sich das Programm im portablen Modus befindet oder nicht.</system:String>
<system:String x:Key="userdatapathButton">Ordner öffnen</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log-Ebene</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Dateimanager auswählen</system:String>
<system:String x:Key="fileManager_learnMore">Mehr erfahren</system:String>
<system:String x:Key="fileManager_tips">Bitte geben Sie den Dateiort des von Ihnen verwendeten Dateimanagers an und fügen Sie bei Bedarf Argumente hinzu. Das „%d“ repräsentiert den dafür zu öffnenden Verzeichnispfad, der vom Feld Arg for Folder und für Befehle zum Öffnen bestimmter Verzeichnisse verwendet wird. Das „%f“ repräsentiert den dafür zu öffnenden Dateipfad, der vom Feld Arg for File und für Befehle zum Öffnen bestimmter Dateien verwendet wird.</system:String>
<system:String x:Key="fileManager_tips2">Zum Beispiel, wenn der Dateimanager einen Befehl wie „totalcmd.exe /A c:\windows“ verwendet, um das Verzeichnis c:\windows zu öffnen, lautet der Dateimanager-Pfad „totalcmd.exe“ und der Arg for Folder „/A %d“. Bestimmte Dateimanager wie QTTabBar kann nur die Angabe eines Pfades erfordern, in diesem Fall verwenden Sie „%d“ als den Dateimanager-Pfad und lassen den Rest der Felder blank.</system:String>
<system:String x:Key="fileManager_name">Dateimanager</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Dateimanager-Pfad</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="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Webbrowser per Default</system:String>
@ -413,7 +417,7 @@
<system:String x:Key="searchDelayTimeTips">Input the search delay time in ms you like to use for the plugin. Input empty if you don't want to specify any, and the plugin will use default search delay time.</system:String>
<!-- Search Delay Settings Dialog -->
<system:String x:Key="homeTitle">Home Page</system:String>
<system:String x:Key="homeTitle">Homepage</system:String>
<system:String x:Key="homeTips">Enable the plugin home page state if you like to show the plugin results when query is empty.</system:String>
<!-- Custom Query Hotkey Dialog -->
@ -469,6 +473,14 @@ Wenn Sie bei der Eingabe eines Shortcuts ein '@'-Präfix hinzufügen, stimmt die
<system:String x:Key="reportWindow_upload_log">1. Logdatei hochladen: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Kopieren Sie die Ausnahmemeldung unterhalb</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Fehler</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Bitte warten Sie ...</system:String>

View file

@ -361,6 +361,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -368,6 +369,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">File Manager</system:String>
@ -375,6 +377,8 @@
<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="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Default Web Browser</system:String>
@ -464,6 +468,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings > General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Seleccionar Gestor de Archivos</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Gestor de Archivos</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Ruta del Gestor de Archivos</system:String>
<system:String x:Key="fileManager_directory_arg">Arg para Carpeta</system:String>
<system:String x:Key="fileManager_file_arg">Arg para Archivo</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navegador Web Predeterminado</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Por favor espere...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Ubicación de datos del usuario</system:String>
<system:String x:Key="userdatapathToolTip">La configuración del usuario y los complementos instalados se guardan en la carpeta de datos del usuario. Esta ubicación puede variar dependiendo de si está en modo portable o no.</system:String>
<system:String x:Key="userdatapathButton">Abrir carpeta</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Nivel de registro</system:String>
<system:String x:Key="LogLevelDEBUG">Depurar</system:String>
<system:String x:Key="LogLevelINFO">Información</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Seleccionar administrador de archivos</system:String>
<system:String x:Key="fileManager_learnMore">Más información</system:String>
<system:String x:Key="fileManager_tips">Especifique la ubicación del archivo del administrador de archivos que está utilizando y añada los argumentos necesarios. El argumento &quot;%d&quot; representa la ruta del directorio a abrir, utilizada por el campo Argumentos de la carpeta y por comandos que abren directorios específicos. El &quot;%f&quot; representa la ruta del archivo a abrir, utilizada por el campo Argumentos del archivo y por comandos que abren archivos específicos.</system:String>
<system:String x:Key="fileManager_tips2">Por ejemplo, si el administrador de archivos utiliza un comando como &quot;totalcmd.exe /A c:\windows&quot; para abrir el directorio c:\windows, la ruta del administrador de archivos será totalcmd.exe, y los Argumentos de la carpeta serán /A &quot;%d&quot;. Ciertos administradores de archivos como QTTabBar pueden requerir solo la ruta, en este caso utilice &quot;%d&quot; como la ruta del administrador de archivos y deje el resto de los campos en blanco.</system:String>
<system:String x:Key="fileManager_name">Administrador de archivos</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Ruta del administrador de archivos</system:String>
<system:String x:Key="fileManager_directory_arg">Argumentos de la carpeta</system:String>
<system:String x:Key="fileManager_file_arg">Argumentos del archivo</system:String>
<system:String x:Key="fileManagerPathNotFound">El administrador de archivos '{0}' no pudo ser localizado en '{1}'. ¿Desea continuar?</system:String>
<system:String x:Key="fileManagerPathError">Error de ruta del administrador de archivos</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navegador web predeterminado</system:String>
@ -469,6 +473,14 @@ Si añade un prefijo &quot;@&quot; al introducir un acceso directo, éste coinci
<system:String x:Key="reportWindow_upload_log">1. Subir archivo de registro: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copiar el siguiente mensaje de excepción</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">Error del administrador de archivos</system:String>
<system:String x:Key="fileManagerNotFound">
No se ha encontrado el administrador de archivos especificado. Compruebe la configuración del Administrador de archivos personalizado en Configuración &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">Se ha producido un error al abrir la carpeta. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Por favor espere...</system:String>

View file

@ -363,6 +363,7 @@
<system:String x:Key="userdatapath">Emplacement des données utilisateur</system:String>
<system:String x:Key="userdatapathToolTip">Les paramètres utilisateur et les plugins installés sont enregistrés dans le dossier des données utilisateur. Cet emplacement peut varier selon que vous soyez en mode portable ou non.</system:String>
<system:String x:Key="userdatapathButton">Ouvrir le dossier</system:String>
<system:String x:Key="advanced">Avancé</system:String>
<system:String x:Key="logLevel">Niveau de journalisation</system:String>
<system:String x:Key="LogLevelDEBUG">Débogage</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -370,6 +371,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Sélectionner le gestionnaire de fichiers</system:String>
<system:String x:Key="fileManager_learnMore">En savoir plus</system:String>
<system:String x:Key="fileManager_tips">Veuillez spécifier l'emplacement du fichier de l'explorateur de fichiers que vous utilisez et ajouter des arguments si nécessaire. Le &quot;%d&quot; représente le chemin du répertoire à ouvrir, utilisé par le champ Arg for Folder et pour les commandes ouvrant des répertoires spécifiques. Le &quot;%f&quot; représente le chemin du fichier à ouvrir, utilisé par le champ Arg for File et pour les commandes ouvrant des fichiers spécifiques.</system:String>
<system:String x:Key="fileManager_tips2">Par exemple, si l'explorateur de fichiers utilise une commande telle que &quot;totalcmd.exe /A c:\windows&quot; pour ouvrir le répertoire c:\windows, le chemin de l'explorateur de fichiers sera totalcmd.exe et l'argument Arg For Folder sera /A &quot;%d&quot;&quot;. Certains explorateurs de fichiers comme QTTabBar peuvent simplement nécessiter qu'un chemin soit fourni, dans ce cas, utilisez &quot;%d&quot; comme chemin de l'explorateur de fichiers et laissez le reste des fichiers vides.</system:String>
<system:String x:Key="fileManager_name">Gestionnaire de fichiers</system:String>
@ -377,6 +379,8 @@
<system:String x:Key="fileManager_path">Chemin du gestionnaire de fichiers</system:String>
<system:String x:Key="fileManager_directory_arg">Arguments pour le répertoire</system:String>
<system:String x:Key="fileManager_file_arg">Arguments pour le fichier</system:String>
<system:String x:Key="fileManagerPathNotFound">Le gestionnaire de fichiers '{0}' n'a pas pu être situé à '{1}'. Souhaitez-vous continuer ?</system:String>
<system:String x:Key="fileManagerPathError">Erreur de chemin du gestionnaire de fichiers</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navigateur web par défaut</system:String>
@ -468,6 +472,14 @@ Si vous ajoutez un préfixe &quot;@&quot; lors de la saisie d'un raccourci, celu
<system:String x:Key="reportWindow_upload_log">1. Télécharger le fichier journal : {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copiez le message dexception ci-dessous</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">Erreur du gestionnaire de fichiers</system:String>
<system:String x:Key="fileManagerNotFound">
Le gestionnaire de fichiers spécifié n'a pas été trouvé. Veuillez vérifier le paramètre Gestionnaire de fichiers personnalisé dans Paramètres &gt; Général.
</system:String>
<system:String x:Key="errorTitle">Erreur</system:String>
<system:String x:Key="folderOpenError">Une erreur s'est produite lors de l'ouverture du dossier. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Veuillez patienter...</system:String>

View file

@ -67,7 +67,7 @@
<system:String x:Key="SearchWindowAlignCenterTop">מרכז עליון</system:String>
<system:String x:Key="SearchWindowAlignLeftTop">שמאל עליון</system:String>
<system:String x:Key="SearchWindowAlignRightTop">ימין עליון</system:String>
<system:String x:Key="SearchWindowAlignCustom">Custom Position</system:String>
<system:String x:Key="SearchWindowAlignCustom">מיקום מותאם אישית</system:String>
<system:String x:Key="language">שפה</system:String>
<system:String x:Key="lastQueryMode">סגנון שאילתה אחרונה</system:String>
<system:String x:Key="lastQueryModeToolTip">הצג/הסתר תוצאות קודמות כאשר Flow Launcher מופעל מחדש.</system:String>
@ -102,7 +102,7 @@
<system:String x:Key="SearchPrecisionLow">נמוך</system:String>
<system:String x:Key="SearchPrecisionRegular">Regular</system:String>
<system:String x:Key="ShouldUsePinyin">חפש באמצעות 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="ShouldUsePinyinToolTip">מאפשר חיפוש באמצעות Pinyin, מערכת הכתיבה הסטנדרטית לתרגום סינית.</system:String>
<system:String x:Key="AlwaysPreview">הצג תמיד תצוגה מקדימה</system:String>
<system:String x:Key="AlwaysPreviewToolTip">פתח תמיד את לוח התצוגה המקדימה כאשר Flow מופעל. הקש על {0} כדי להחליף את התצוגה המקדימה.</system:String>
<system:String x:Key="shadowEffectNotAllowed">לא ניתן להחיל אפקט צל כאשר העיצוב הנוכחי מוגדר לאפקט טשטוש</system:String>
@ -134,7 +134,7 @@
<system:String x:Key="homePageToolTip">Show home page results when query text is empty.</system:String>
<system:String x:Key="historyResultsForHomePage">Show History Results in Home Page</system:String>
<system:String x:Key="historyResultsCountForHomePage">Maximum History Results Shown in Home Page</system:String>
<system:String x:Key="homeToggleBoxToolTip">This can only be edited if plugin supports Home feature and Home Page is enabled.</system:String>
<system:String x:Key="homeToggleBoxToolTip">ניתן לערוך זאת רק אם התוסף תומך בתכונת הבית ודף הבית מופעל.</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">חפש תוסף</system:String>
@ -151,7 +151,7 @@
<system:String x:Key="currentActionKeywords">מילת מפתח נוכחית לפעולה</system:String>
<system:String x:Key="newActionKeyword">מילת מפתח חדשה לפעולה</system:String>
<system:String x:Key="actionKeywordsTooltip">שנה מילות מפתח לפעולה</system:String>
<system:String x:Key="pluginSearchDelayTime">Plugin search delay time</system:String>
<system:String x:Key="pluginSearchDelayTime">זמן השהייה של חיפוש תוסף</system:String>
<system:String x:Key="pluginSearchDelayTimeTooltip">שנה את זמן השהיית חיפוש של תוסף</system:String>
<system:String x:Key="FilterComboboxLabel">הגדרות מתקדמות:</system:String>
<system:String x:Key="DisplayModeOnOff">מופעל</system:String>
@ -313,7 +313,7 @@
<system:String x:Key="useGlyphUIEffect">השתמש ב-Segoe Fluent Icons לתוצאות חיפוש כאשר נתמך</system:String>
<system:String x:Key="flowlauncherPressHotkey">הקש על מקש</system:String>
<system:String x:Key="showBadges">הצג תגי תוצאות</system:String>
<system:String x:Key="showBadgesToolTip">For supported plugins, badges are displayed to help distinguish them more easily.</system:String>
<system:String x:Key="showBadgesToolTip">עבור תוספים נתמכים, מוצגים תגים כדי לעזור להבחין ביניהם ביתר קלות.</system:String>
<system:String x:Key="showBadgesGlobalOnly">Show Result Badges for Global Query Only</system:String>
<!-- Setting Proxy -->
@ -363,6 +363,7 @@
<system:String x:Key="userdatapath">מיקום נתוני משתמש</system:String>
<system:String x:Key="userdatapathToolTip">הגדרות המשתמש והתוספים המותקנים נשמרים בתיקיית נתוני המשתמש. מיקום זה עשוי להשתנות אם התוכנה במצב נייד.</system:String>
<system:String x:Key="userdatapathButton">פתח תיקיה</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">רמת יומן</system:String>
<system:String x:Key="LogLevelDEBUG">ניפוי שגיאות</system:String>
<system:String x:Key="LogLevelINFO">מידע</system:String>
@ -370,6 +371,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">בחר מנהל קבצים</system:String>
<system:String x:Key="fileManager_learnMore">למד עוד</system:String>
<system:String x:Key="fileManager_tips">אנא ציין את מיקום הקובץ של מנהל הקבצים שבו אתה משתמש והוסף ארגומנטים כנדרש. &quot;%d&quot; מייצג את נתיב התיקייה שיש לפתוח, ומשמש בשדה ארגומנט לתיקייה ובפקודות לפתיחת תיקיות מסוימות. &quot;%f&quot; מייצג את נתיב הקובץ שיש לפתוח, ומשמש בשדה ארגומנט לקובץ ובפקודות לפתיחת קבצים מסוימים.</system:String>
<system:String x:Key="fileManager_tips2">לדוגמה, אם מנהל הקבצים משתמש בפקודה כגון &quot;totalcmd.exe /A c:\windows&quot; כדי לפתוח את התיקייה c:\windows, נתיב מנהל הקבצים יהיה totalcmd.exe, והארגומנט לתיקייה יהיה /A &quot;%d&quot;. מנהלי קבצים מסוימים, כגון QTTabBar, עשויים לדרוש רק ציון נתיב, במקרה כזה השתמש ב-&quot;%d&quot; כנתיב מנהל הקבצים והשאר את שאר השדות ריקים.</system:String>
<system:String x:Key="fileManager_name">מנהל קבצים</system:String>
@ -377,6 +379,8 @@
<system:String x:Key="fileManager_path">נתיב מנהל קבצים</system:String>
<system:String x:Key="fileManager_directory_arg">ארגומנט לתיקייה</system:String>
<system:String x:Key="fileManager_file_arg">ארגומנט לקובץ</system:String>
<system:String x:Key="fileManagerPathNotFound">לא ניתן היה לאתר את מנהל הקבצים '{0}' ב-'{1}'. האם ברצונך להמשיך?</system:String>
<system:String x:Key="fileManagerPathError">שגיאת נתיב למנהל הקבצים</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">דפדפן ברירת מחדל</system:String>
@ -413,7 +417,7 @@
<!-- Search Delay Settings Dialog -->
<system:String x:Key="homeTitle">דף הבית</system:String>
<system:String x:Key="homeTips">Enable the plugin home page state if you like to show the plugin results when query is empty.</system:String>
<system:String x:Key="homeTips">הפעל את מצב דף הבית של התוסף אם ברצונך להציג את תוצאות התוסף כאשר השאילתה ריקה.</system:String>
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">מקש קיצור לשאילתה מותאמת אישית</system:String>
@ -468,6 +472,14 @@
<system:String x:Key="reportWindow_upload_log">1. העלה קובץ יומן: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. העתק את הודעת החריגה למטה</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">שגיאת מנהל הקבצים</system:String>
<system:String x:Key="fileManagerNotFound">
לא ניתן היה למצוא את מנהל הקבצים שצוין. אנא בדוק את ההגדרה של מנהל קבצים מותאם אישית תחת הגדרות &gt; כללי.
</system:String>
<system:String x:Key="errorTitle">שגיאה</system:String>
<system:String x:Key="folderOpenError">אירעה שגיאה בעת פתיחת התיקייה. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">אנא המתן...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Posizione Dati Utente</system:String>
<system:String x:Key="userdatapathToolTip">Le impostazioni dell'utente e i plugin installati sono salvati nella cartella dati utente. Questa posizione può variare se è in modalità portable o no.</system:String>
<system:String x:Key="userdatapathButton">Apri Cartella</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Seleziona Gestore File</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Gestore File</system:String>
@ -378,6 +380,8 @@
<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>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Browser predefinito</system:String>
@ -469,6 +473,14 @@ Se si aggiunge un prefisso '@' mentre si inserisce una scorciatoia, corrisponde
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Attendere prego...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">デフォルトのファイルマネージャー</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">File Manager</system:String>
@ -378,6 +380,8 @@
<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="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">デフォルトのウェブブラウザー</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>

View file

@ -122,10 +122,10 @@
<system:String x:Key="KoreanImeOpenLinkButton">열기</system:String>
<system:String x:Key="KoreanImeRegistry">이전 버전의 Microsoft IME 사용</system:String>
<system:String x:Key="KoreanImeRegistryTooltip">이전 버전의 IME를 사용하도록 시스템 설정을 변경합니다</system:String>
<system:String x:Key="homePage">Home Page</system:String>
<system:String x:Key="homePageToolTip">Show home page results when query text is empty.</system:String>
<system:String x:Key="historyResultsForHomePage">Show History Results in Home Page</system:String>
<system:String x:Key="historyResultsCountForHomePage">Maximum History Results Shown in Home Page</system:String>
<system:String x:Key="homePage">홈페이지</system:String>
<system:String x:Key="homePageToolTip">쿼리 입력창이 비어있을때, 홈페이지의 결과를 표시합니다.</system:String>
<system:String x:Key="historyResultsForHomePage">히스토리를 홈페이지에 표시</system:String>
<system:String x:Key="historyResultsCountForHomePage">홈페이지에 표시할 최대 히스토리 수</system:String>
<system:String x:Key="homeToggleBoxToolTip">This can only be edited if plugin supports Home feature and Home Page is enabled.</system:String>
<!-- Setting Plugin -->
@ -149,7 +149,7 @@
<system:String x:Key="DisplayModeOnOff">켬</system:String>
<system:String x:Key="DisplayModePriority">중요</system:String>
<system:String x:Key="DisplayModeSearchDelay">검색 지연</system:String>
<system:String x:Key="DisplayModeHomeOnOff">Home Page</system:String>
<system:String x:Key="DisplayModeHomeOnOff">홈페이지</system:String>
<system:String x:Key="currentPriority">현재 중요도:</system:String>
<system:String x:Key="newPriority">새 중요도:</system:String>
<system:String x:Key="priority">중요도</system:String>
@ -347,7 +347,7 @@
<system:String x:Key="logfolder">로그 폴더</system:String>
<system:String x:Key="clearlogfolder">로그 삭제</system:String>
<system:String x:Key="clearlogfolderMessage">정말 모든 로그를 삭제하시겠습니까?</system:String>
<system:String x:Key="cachefolder">Cache Folder</system:String>
<system:String x:Key="cachefolder">캐시 폴더</system:String>
<system:String x:Key="clearcachefolder">캐시 지우기</system:String>
<system:String x:Key="clearcachefolderMessage">모든 캐시를 삭제하시겠습니까?</system:String>
<system:String x:Key="clearfolderfailMessage">Failed to clear part of folders and files. Please see log file for more information</system:String>
@ -355,13 +355,15 @@
<system:String x:Key="userdatapath">사용자 데이터 위치</system:String>
<system:String x:Key="userdatapathToolTip">사용자 설정과 설치된 플러그인은 사용자 데이터 폴더에 저장됩니다. 이 위치는 휴대용 모드 활성화 여부에 따라 달라질 수 있습니다.</system:String>
<system:String x:Key="userdatapathButton">폴더 열기</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">로그 레벨</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
<system:String x:Key="settingWindowFontTitle">Setting Window Font</system:String>
<system:String x:Key="settingWindowFontTitle">설정창 글꼴</system:String>
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">파일관리자 선택</system:String>
<system:String x:Key="fileManager_learnMore">더 알아보기</system:String>
<system:String x:Key="fileManager_tips">사용 중인 파일 관리자의 파일 위치를 지정하고, 필요한 경우 인수를 추가하세요. &quot;%d&quot;는 열고자 하는 디렉터리 경로를 나타내며, 폴더용 인수 필드 및 특정 디렉터리를 여는 명령어에서 사용됩니다. &quot;%f&quot;는 열고자 하는 파일 경로를 나타내며, 파일용 인수 필드 및 특정 파일을 여는 명령어에서 사용됩니다.</system:String>
<system:String x:Key="fileManager_tips2">예를 들어, 파일 관리자가 totalcmd.exe /A c:\windows와 같은 명령어로 c:\windows 디렉터리를 연다면, 파일 관리자 경로는 totalcmd.exe가 되고, 폴더용 인수는 /A &quot;%d&quot;가 됩니다. QTTabBar와 같은 일부 파일 관리자는 경로만 전달하면 되는 경우가 있으므로, 이 경우에는 파일 관리자 경로에 &quot;%d&quot;를 입력하고 나머지 필드는 비워두세요.</system:String>
<system:String x:Key="fileManager_name">파일관리자</system:String>
@ -369,6 +371,8 @@
<system:String x:Key="fileManager_path">파일관리자 경로</system:String>
<system:String x:Key="fileManager_directory_arg">폴더경로 인수</system:String>
<system:String x:Key="fileManager_file_arg">파일경로 인수</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">기본 웹 브라우저</system:String>
@ -404,7 +408,7 @@
<system:String x:Key="searchDelayTimeTips">플러그인에서 사용할 검색 지연 시간(ms)을 입력하세요. 지정하지 않으려면 비워두세요. 기본 검색 지연 시간이 사용됩니다.</system:String>
<!-- Search Delay Settings Dialog -->
<system:String x:Key="homeTitle">Home Page</system:String>
<system:String x:Key="homeTitle">홈페이지</system:String>
<system:String x:Key="homeTips">Enable the plugin home page state if you like to show the plugin results when query is empty.</system:String>
<!-- Custom Query Hotkey Dialog -->
@ -460,6 +464,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">잠시 기다려주세요...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Plassering av brukerdata</system:String>
<system:String x:Key="userdatapathToolTip">Brukerinnstillinger og installerte programtillegg lagres i brukerens datamappe. Denne plasseringen kan variere avhengig av om den er i portabel modus eller ikke.</system:String>
<system:String x:Key="userdatapathButton">Åpne mappe</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Velg filbehandler</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Vennligst spesifiser filplasseringen til filbehandleren du bruker, og legg til argumenter etter behov. &quot;%d&quot; representerer katalogbanen som skal åpnes for, brukt av Arg for mappe-feltet og for kommandoer som åpner spesifikke kataloger. &quot;%f&quot; representerer filbanen som skal åpnes for, brukt av Arg for fil-feltet og for kommandoer som åpner spesifikke filer.</system:String>
<system:String x:Key="fileManager_tips2">For eksempel, hvis filbehandleren bruker en kommando som &quot;totalcmd.exe /A c:windows&quot; for å åpne c:windows-katalogen, vil filbehandlingsbanen bli totalcmd.exe, og Arg For Folder vil være /A &quot;%d&quot;. Enkelte filbehandlere som QTTabBar kan bare kreve at en bane oppgis, i dette tilfellet bruker du &quot;%d&quot; som filbehandlingsbane og lar resten av feltene stå tomme.</system:String>
<system:String x:Key="fileManager_name">Filbehandler</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Filbehandler sti</system:String>
<system:String x:Key="fileManager_directory_arg">Arg for mappe</system:String>
<system:String x:Key="fileManager_file_arg">Arg for fil</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Standard nettleser</system:String>
@ -469,6 +473,14 @@ Hvis du legger til et @-prefiks mens du legger inn en snarvei, samsvarer det med
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Feil</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Vennligst vent...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Gegevenslocatie van gebruiker</system:String>
<system:String x:Key="userdatapathToolTip">Gebruikersinstellingen en geïnstalleerde plug-ins worden opgeslagen in de gebruikersgegevensmap. Deze locatie kan variëren afhankelijk van of het in draagbare modus is of niet.</system:String>
<system:String x:Key="userdatapathButton">Map openen</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Bestandsbeheerder selecteren</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Bestandsbeheerder</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Bestandsbeheerder pad</system:String>
<system:String x:Key="fileManager_directory_arg">Arg voor map</system:String>
<system:String x:Key="fileManager_file_arg">Arg voor bestand</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Standaard webbrowser</system:String>
@ -469,6 +473,14 @@ Als u een '@' voorvoegsel toevoegt tijdens het invoeren van een snelkoppeling, m
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>

View file

@ -364,6 +364,7 @@ Kliknij &quot;nie&quot;, jeśli jest już zainstalowany. Zostaniesz wtedy popros
<system:String x:Key="userdatapath">Lokalizacja danych użytkownika</system:String>
<system:String x:Key="userdatapathToolTip">Ustawienia użytkownika i zainstalowane wtyczki są zapisywane w folderze danych użytkownika. Ta lokalizacja może się różnić w zależności od tego, czy aplikacja jest w trybie przenośnym, czy nie.</system:String>
<system:String x:Key="userdatapathButton">Otwórz folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Poziom logowania</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@ Kliknij &quot;nie&quot;, jeśli jest już zainstalowany. Zostaniesz wtedy popros
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Wybierz menedżer plików</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Proszę określić lokalizację pliku menedżera plików, którego używasz i dodać argumenty według potrzeb. Symbol &quot;%d&quot; reprezentuje ścieżkę katalogu do otwarcia, używaną w polu Arg dla Folderu oraz dla poleceń otwierających konkretne katalogi. Symbol &quot;%f&quot; reprezentuje ścieżkę pliku do otwarcia, używaną w polu Arg dla Pliku oraz dla poleceń otwierających konkretne pliki.</system:String>
<system:String x:Key="fileManager_tips2">Na przykład, jeśli menedżer plików używa polecenia takiego jak „totalcmd.exe /A c:\windows&quot; do otwarcia katalogu c:\windows, Ścieżka Menedżera Plików będzie totalcmd.exe, a Argument dla Folderu będzie /A &quot;%d&quot;. Niektóre menedżery plików, takie jak QTTabBar, mogą wymagać jedynie podania ścieżki; w takim przypadku użyj &quot;%d&quot; jako Ścieżki Menedżera Plików, a pozostałe pola pozostaw puste.</system:String>
<system:String x:Key="fileManager_name">Menadżer plików</system:String>
@ -378,6 +380,8 @@ Kliknij &quot;nie&quot;, jeśli jest już zainstalowany. Zostaniesz wtedy popros
<system:String x:Key="fileManager_path">Ścieżka menedżera plików</system:String>
<system:String x:Key="fileManager_directory_arg">Arg dla folderu</system:String>
<system:String x:Key="fileManager_file_arg">Arg dla pliku</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Domyślna przeglądarka</system:String>
@ -469,6 +473,14 @@ Jeśli dodasz prefiks '@' podczas wprowadzania skrótu, będzie on pasował do d
<system:String x:Key="reportWindow_upload_log">1. Prześlij plik dziennika: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Skopiuj poniższą wiadomość wyjątku</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Błąd</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Proszę czekać...</system:String>
@ -488,7 +500,7 @@ Jeśli dodasz prefiks '@' podczas wprowadzania skrótu, będzie on pasował do d
<system:String x:Key="update_flowlauncher_update_cancel">Anuluj</system:String>
<system:String x:Key="update_flowlauncher_fail">Aktualizacja nie powiodła się</system:String>
<system:String x:Key="update_flowlauncher_check_connection">Sprawdź połączenie i spróbuj zaktualizować ustawienia proxy do github-cloud.s3.amazonaws.com.</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Aby dokończyć proces aktualizacji Flow Launcher musi zostać zresetowany</system:String>
<system:String x:Key="update_flowlauncher_update_restart_flowlauncher_tip">Aby dokończyć proces aktualizacji Flow Launcher musi zostać zrestartowany</system:String>
<system:String x:Key="update_flowlauncher_update_update_files">Następujące pliki zostaną zaktualizowane</system:String>
<system:String x:Key="update_flowlauncher_update_files">Aktualizuj pliki</system:String>
<system:String x:Key="update_flowlauncher_update_update_description">Opis aktualizacji</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Selecione o Gerenciador de Arquivos</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Gerenciador de Arquivos</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Caminho do Gerenciador de Arquivos</system:String>
<system:String x:Key="fileManager_directory_arg">Arg para Pasta</system:String>
<system:String x:Key="fileManager_file_arg">Arg para Arquivo</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navegador da Web Padrão</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Por favor, aguarde...</system:String>

View file

@ -362,6 +362,7 @@
<system:String x:Key="userdatapath">Localização dos dados do utilizador</system:String>
<system:String x:Key="userdatapathToolTip">As definições e os plugins instalados são guardados na pasta de dados do utilizador. A localização pode variar, tendo em conta se a aplicação está instalada ou no modo portátil</system:String>
<system:String x:Key="userdatapathButton">Abrir pasta</system:String>
<system:String x:Key="advanced">Avançado</system:String>
<system:String x:Key="logLevel">Nível de registo</system:String>
<system:String x:Key="LogLevelDEBUG">Depuração</system:String>
<system:String x:Key="LogLevelINFO">Informação</system:String>
@ -369,6 +370,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Selecione o gestor de ficheiros</system:String>
<system:String x:Key="fileManager_learnMore">Saber mais</system:String>
<system:String x:Key="fileManager_tips">Por favor, especifique a localização do executável do seu gestor de ficheiros e adicione os argumentos necessários. &quot;%d&quot; representa o caminho do diretório a abrir, usado pelo argumento do campo Pasta e para comandos que abrem diretórios específicos. &quot;%f&quot; representa o caminho do ficheiro a abrir, usado pelo argumento do campo Ficheiro e para comandos que abrem ficheiros específicos.</system:String>
<system:String x:Key="fileManager_tips2">Por exemplo, se o gestor de ficheiros utilizar o comando &quot;totalcmd.exe /A c:\windows&quot; para abrir o diretório c:\windows , o caminho para o gestor de ficheiros será totalcmd. exe e os argumentos para a Pasta serão /A &quot;%d&quot;. Alguns gestores de ficheiros, como QTTabBar podem apenas exigir que especifique o caminho. Para estes, deve utilizar &quot;%d&quot; como caminho para o gestor de ficheiros e deixar o resto dos campos em branco.</system:String>
<system:String x:Key="fileManager_name">Gestor de ficheiros</system:String>
@ -376,6 +378,8 @@
<system:String x:Key="fileManager_path">Caminho do gestor de ficheiros</system:String>
<system:String x:Key="fileManager_directory_arg">Argumento para pasta</system:String>
<system:String x:Key="fileManager_file_arg">Argumento para ficheiro</system:String>
<system:String x:Key="fileManagerPathNotFound">Não foi possível encontrar o gestor de ficheiros '{0}' em '{1}'. Deseja continuar?</system:String>
<system:String x:Key="fileManagerPathError">Erro no caminho do gestor de ficheiros</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Navegador web padrão</system:String>
@ -467,6 +471,14 @@ Se adicionar o prefixo '@' durante a introdução do atalho, será utilizada qua
<system:String x:Key="reportWindow_upload_log">1. Carregue o ficheiro de registos: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copie a mensagem abaixo</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">Erro do gestor de ficheiros</system:String>
<system:String x:Key="fileManagerNotFound">
Não foi possível encontrar o gestor de ficheiros. Verifique a definição 'Gestor de ficheiros personalizado' em Definições -&gt; Geral.
</system:String>
<system:String x:Key="errorTitle">Erro</system:String>
<system:String x:Key="folderOpenError">Ocorreu um erro ao abrir a pasta: {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Por favor aguarde...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Выбор менеджера файлов</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Файловый менеджер</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Путь к файловому менеджеру</system:String>
<system:String x:Key="fileManager_directory_arg">Аргумент для папки</system:String>
<system:String x:Key="fileManager_file_arg">Аргумент для файла</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Браузер по умолчанию</system:String>
@ -469,6 +473,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Ошибка</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Пожалуйста, подождите...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Cesta k používateľskému priečinku</system:String>
<system:String x:Key="userdatapathToolTip">Nastavenia používateľa a nainštalované pluginy sa ukladajú do používateľského priečinka. Toto umiestnenie sa môže líšiť v závislosti od toho, či je v prenosnom režime alebo nie.</system:String>
<system:String x:Key="userdatapathButton">Otvoriť priečinok</system:String>
<system:String x:Key="advanced">Rozšírené</system:String>
<system:String x:Key="logLevel">Úroveň logovania</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Vyberte správcu súborov</system:String>
<system:String x:Key="fileManager_learnMore">Viac informácií</system:String>
<system:String x:Key="fileManager_tips">Zadajte umiestnenie súboru správcu súborov, ktorý používate, a podľa potreby pridajte argumenty. &quot;%d&quot; predstavuje cestu k priečinku, ktorý sa má otvoriť, používa sa v poli Arg pre priečinok a pri príkazoch na otvorenie konkrétnych priečinkov. &quot;%f&quot; predstavuje cestu k súboru, ktorá sa má otvoriť a používa sa v poli Arg pre súbor a pri príkazoch na otvorenie konkrétnych súborov.</system:String>
<system:String x:Key="fileManager_tips2">Napríklad, ak správca súborov používa príkaz ako &quot;totalcmd.exe /A c:\windows&quot; na otvorenie priečinka c:\windows, cesta správcu súborov bude totalcmd.exe a Arg pre priečinok bude /A &quot;%d&quot;. Niektorí správcovia súborov, ako napríklad QTTabBar, môžu vyžadovať len zadanie cesty, v tomto prípade použite &quot;%d&quot; ako cestu správcu súborov a zvyšok súborov nechajte prázdny.</system:String>
<system:String x:Key="fileManager_name">Správca súborov</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Cesta k správcovi súborov</system:String>
<system:String x:Key="fileManager_directory_arg">Arg. pre priečinok</system:String>
<system:String x:Key="fileManager_file_arg">Arg. pre súbor</system:String>
<system:String x:Key="fileManagerPathNotFound">Správca súborov '{0}' sa nenachádza na '{1}'. Chcete pokračovať?</system:String>
<system:String x:Key="fileManagerPathError">Chyba v ceste k správcovi súborov</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Predvolený webový prehliadač</system:String>
@ -445,7 +449,7 @@ Ak pri zadávaní skratky pred ňu pridáte &quot;@&quot;, bude sa zhodovať s
<system:String x:Key="commonCancel">Zrušiť</system:String>
<system:String x:Key="commonReset">Resetovať</system:String>
<system:String x:Key="commonDelete">Odstrániť</system:String>
<system:String x:Key="commonOK">Aktualizovať</system:String>
<system:String x:Key="commonOK">OK</system:String>
<system:String x:Key="commonYes">Áno</system:String>
<system:String x:Key="commonNo">Nie</system:String>
<system:String x:Key="commonBackground">Pozadie</system:String>
@ -469,6 +473,14 @@ Ak pri zadávaní skratky pred ňu pridáte &quot;@&quot;, bude sa zhodovať s
<system:String x:Key="reportWindow_upload_log">1. Nahrajte súbor logu: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Skopírujte nižšie uvedenú správu o výnimke</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">Chyba správcu súborov</system:String>
<system:String x:Key="fileManagerNotFound">
Zadaný správca súborov sa nenašiel. Skontrolujte nastavenie vlastného správcu súborov v Nastavenia &gt; Všeobecné.
</system:String>
<system:String x:Key="errorTitle">Chyba</system:String>
<system:String x:Key="folderOpenError">Počas otvárania priečinka sa vyskytla chyba. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Čakajte, prosím...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Select File Manager</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">File Manager</system:String>
@ -378,6 +380,8 @@
<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="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Default Web Browser</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Please wait...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Kullanıcı Verisi Dizini</system:String>
<system:String x:Key="userdatapathToolTip">Kullanıcı ayarları ve yüklü eklentiler bu klasörde saklanır. Klasörün konumu taşınabilir moda bağlı olarak değişebilir.</system:String>
<system:String x:Key="userdatapathButton">Klasörü Aç</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Dosya Yöneticisi Seçenekleri</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Dosya Yöneticisi</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Dosya Yöneticisi Yolu</system:String>
<system:String x:Key="fileManager_directory_arg">Klasör Açarken</system:String>
<system:String x:Key="fileManager_file_arg">Dosya Açarken</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">İnternet Tarayıcı Seçenekleri</system:String>
@ -467,6 +471,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Lütfen bekleyin...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">Розташування даних користувача</system:String>
<system:String x:Key="userdatapathToolTip">Налаштування користувача та встановлені плагіни зберігаються у теці даних користувача. Це місце може змінюватися залежно від того, чи перебуває програма в портативному режимі, чи ні.</system:String>
<system:String x:Key="userdatapathButton">Відкрити теку</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Виберіть файловий менеджер</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Файловий менеджер</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">Шлях до файлового менеджера</system:String>
<system:String x:Key="fileManager_directory_arg">Аргумент для папки</system:String>
<system:String x:Key="fileManager_file_arg">Аргумент для файлу</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Веб-браузер за замовчуванням</system:String>
@ -469,6 +473,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Помилка</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Будь ласка, зачекайте...</system:String>

View file

@ -366,6 +366,7 @@
<system:String x:Key="userdatapath">Vị trí dữ liệu người dùng</system:String>
<system:String x:Key="userdatapathToolTip">Thiết đặt người dùng và plugin đã cài đặt sẽ được lưu trong thư mục dữ liệu người dùng. Vị trí này có thể thay đổi tùy thuộc vào việc nó có ở chế độ di động hay không.</system:String>
<system:String x:Key="userdatapathButton">Mở thư mục</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -373,6 +374,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">Chọn trình quản lý tệp</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">Trình quản lý ngày tháng</system:String>
@ -380,6 +382,8 @@
<system:String x:Key="fileManager_path">Đường dẫn quản lý tệp</system:String>
<system:String x:Key="fileManager_directory_arg">Đối số cho thư mục</system:String>
<system:String x:Key="fileManager_file_arg">Đối số cho tệp</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">Trình duyệt web tiêu chuẩn</system:String>
@ -473,6 +477,14 @@
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Lỗi</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">Cảnh báo nhỏ...</system:String>

View file

@ -8,9 +8,9 @@
</system:String>
<system:String x:Key="runtimePluginChooseRuntimeExecutable">请选择 {0} 可执行文件</system:String>
<system:String x:Key="runtimeExecutableInvalidChooseDownload">
Your selected {0} executable is invalid.
您选择的 {0} 可执行文件无效。
{2}{2}
Click yes if you would like select the {0} executable agian. Click no if you would like to download {1}
如果您希望重新选择 {0} 可执行文件,请点击“是”。如果需要下载 {1},请点击“否”
</system:String>
<system:String x:Key="runtimePluginUnableToSetExecutablePath">无法设置 {0} 可执行路径,请尝试从 Flow 的设置中设置(向下滚动到底部)。</system:String>
<system:String x:Key="failedToInitializePluginsTitle">无法初始化插件</system:String>
@ -18,7 +18,7 @@
<!-- MainWindow -->
<system:String x:Key="registerHotkeyFailed">无法注册热键“{0}”。该热键可能正在被其他程序使用。更改为不同的热键,或退出其他程序。</system:String>
<system:String x:Key="unregisterHotkeyFailed">Failed to unregister hotkey &quot;{0}&quot;. Please try again or see log for details</system:String>
<system:String x:Key="unregisterHotkeyFailed">未能取消注册快捷键&quot;{0}&quot;。请重试或查看日志以获取详细信息</system:String>
<system:String x:Key="MessageBoxTitle">Flow Launcher</system:String>
<system:String x:Key="couldnotStartCmd">启动命令 {0} 失败</system:String>
<system:String x:Key="invalidFlowLauncherPluginFileFormat">无效的 Flow Launcher 插件文件格式</system:String>
@ -42,8 +42,8 @@
<system:String x:Key="GameMode">游戏模式</system:String>
<system:String x:Key="GameModeToolTip">暂停使用热键。</system:String>
<system:String x:Key="PositionReset">重置位置</system:String>
<system:String x:Key="PositionResetToolTip">Reset search window position</system:String>
<system:String x:Key="queryTextBoxPlaceholder">Type here to search</system:String>
<system:String x:Key="PositionResetToolTip">重置搜索窗口位置</system:String>
<system:String x:Key="queryTextBoxPlaceholder">在此处输入以搜索</system:String>
<!-- Setting General -->
<system:String x:Key="flowlauncher_settings">设置</system:String>
@ -51,12 +51,12 @@
<system:String x:Key="portableMode">便携模式</system:String>
<system:String x:Key="portableModeToolTIp">将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。</system:String>
<system:String x:Key="startFlowLauncherOnSystemStartup">开机自启</system:String>
<system:String x:Key="useLogonTaskForStartup">Use logon task instead of startup entry for faster startup experience</system:String>
<system:String x:Key="useLogonTaskForStartupTooltip">After uninstallation, you need to manually remove this task (Flow.Launcher Startup) via Task Scheduler</system:String>
<system:String x:Key="useLogonTaskForStartup">使用登录任务代替启动条目来更快地启动体验</system:String>
<system:String x:Key="useLogonTaskForStartupTooltip">卸载后,您需要通过任务计划程序手动移除此任务 (Flow.Launcher Startup)</system:String>
<system:String x:Key="setAutoStartFailed">设置开机自启时出错</system:String>
<system:String x:Key="hideFlowLauncherWhenLoseFocus">失去焦点时自动隐藏 Flow Launcher</system:String>
<system:String x:Key="dontPromptUpdateMsg">不显示新版本提示</system:String>
<system:String x:Key="SearchWindowPosition">Search Window Location</system:String>
<system:String x:Key="SearchWindowPosition">搜索窗口位置</system:String>
<system:String x:Key="SearchWindowScreenRememberLastLaunchLocation">记住上次的位置</system:String>
<system:String x:Key="SearchWindowScreenCursor">鼠标光标所在显示器</system:String>
<system:String x:Key="SearchWindowScreenFocus">聚焦窗口所在显示器</system:String>
@ -74,8 +74,8 @@
<system:String x:Key="LastQueryPreserved">保留上次搜索关键字</system:String>
<system:String x:Key="LastQuerySelected">选择上次搜索关键字</system:String>
<system:String x:Key="LastQueryEmpty">清空上次搜索关键字</system:String>
<system:String x:Key="LastQueryActionKeywordPreserved">Preserve Last Action Keyword</system:String>
<system:String x:Key="LastQueryActionKeywordSelected">Select Last Action Keyword</system:String>
<system:String x:Key="LastQueryActionKeywordPreserved">保留最后操作关键词</system:String>
<system:String x:Key="LastQueryActionKeywordSelected">选择最后一个操作关键词</system:String>
<system:String x:Key="maxShowResults">最大结果显示个数</system:String>
<system:String x:Key="maxShowResultsToolTip">您也可以通过使用 CTRL+ &quot;+&quot; 和 CTRL+ &quot;-&quot; 来快速调整它。</system:String>
<system:String x:Key="ignoreHotkeysOnFullscreen">全屏模式下忽略热键</system:String>
@ -106,36 +106,36 @@
<system:String x:Key="AlwaysPreview">始终打开预览</system:String>
<system:String x:Key="AlwaysPreviewToolTip">Flow 启动时总是打开预览面板。按 {0} 以切换预览。</system:String>
<system:String x:Key="shadowEffectNotAllowed">当前主题已启用模糊效果,不允许启用阴影效果</system:String>
<system:String x:Key="searchDelay">Search Delay</system:String>
<system:String x:Key="searchDelayToolTip">Adds a short delay while typing to reduce UI flicker and result load. Recommended if your typing speed is average.</system:String>
<system:String x:Key="searchDelayNumberBoxToolTip">Enter the wait time (in ms) until input is considered complete. This can only be edited if Search Delay is enabled.</system:String>
<system:String x:Key="searchDelayTime">Default Search Delay Time</system:String>
<system:String x:Key="searchDelayTimeToolTip">Wait time before showing results after typing stops. Higher values wait longer. (ms)</system:String>
<system:String x:Key="KoreanImeTitle">Information for Korean IME user</system:String>
<system:String x:Key="searchDelay">延迟搜索</system:String>
<system:String x:Key="searchDelayToolTip">在输入时添加一个短时间延迟以减少UI闪烁和加载结果的负载。建议您的输入速度是平均的。</system:String>
<system:String x:Key="searchDelayNumberBoxToolTip">输入等待时间(毫秒),直到输入被认为完成。这只能在启用搜索延迟时进行编辑。</system:String>
<system:String x:Key="searchDelayTime">默认搜索延迟时间</system:String>
<system:String x:Key="searchDelayTimeToolTip">在输入停止后显示结果之前等待时间。更高的数值等待更长时间(毫秒)</system:String>
<system:String x:Key="KoreanImeTitle">韩文输入法用户信息</system:String>
<system:String x:Key="KoreanImeGuide">
The Korean input method used in Windows 11 may cause some issues in Flow Launcher.
Windows 11中使用的韩国输入法可能会在Flow Launcher中引起一些问题。
If you experience any problems, you may need to enable &quot;Use previous version of Korean IME&quot;.
如果您遇到任何问题,您可能需要启用&quot;使用上一个版本的韩语IME&quot;。
Open Setting in Windows 11 and go to:
Windows 11中的打开设置转到
Time &amp; Language &gt; Language &amp; Region &gt; Korean &gt; Language Options &gt; Keyboard - Microsoft IME &gt; Compatibility,
时间和语言&gt; 语言和区域 &gt; 韩国语言选项 &gt; 键盘-微软IME &gt; 兼容性
and enable &quot;Use previous version of Microsoft IME&quot;.
并启用&quot;使用之前版本的 Microsoft IME&quot;。
</system:String>
<system:String x:Key="KoreanImeOpenLink">Open Language and Region System Settings</system:String>
<system:String x:Key="KoreanImeOpenLinkToolTip">Opens the Korean IME setting location. Go to Korean &gt; Language Options &gt; Keyboard - Microsoft IME &gt; Compatibility</system:String>
<system:String x:Key="KoreanImeOpenLink">打开语言和区域系统设置</system:String>
<system:String x:Key="KoreanImeOpenLinkToolTip">打开韩语输入法设置位置。转到韩语&gt; 语言选项 &gt; 键盘-微软输入法 &gt; 兼容性</system:String>
<system:String x:Key="KoreanImeOpenLinkButton">打开</system:String>
<system:String x:Key="KoreanImeRegistry">Use Previous Korean IME</system:String>
<system:String x:Key="KoreanImeRegistryTooltip">You can change the Previous Korean IME settings directly from here</system:String>
<system:String x:Key="homePage">Home Page</system:String>
<system:String x:Key="homePageToolTip">Show home page results when query text is empty.</system:String>
<system:String x:Key="historyResultsForHomePage">Show History Results in Home Page</system:String>
<system:String x:Key="historyResultsCountForHomePage">Maximum History Results Shown in Home Page</system:String>
<system:String x:Key="homeToggleBoxToolTip">This can only be edited if plugin supports Home feature and Home Page is enabled.</system:String>
<system:String x:Key="KoreanImeRegistry">使用以前的韩语输入法</system:String>
<system:String x:Key="KoreanImeRegistryTooltip">您可以直接从这里更改前韩语输入法设置</system:String>
<system:String x:Key="homePage">首页</system:String>
<system:String x:Key="homePageToolTip">当查询文本为空时显示主页结果。</system:String>
<system:String x:Key="historyResultsForHomePage">在主页中显示历史记录</system:String>
<system:String x:Key="historyResultsCountForHomePage">在主页显示的最大历史结果数</system:String>
<system:String x:Key="homeToggleBoxToolTip">这只能在插件支持主页功能和主页启用时进行编辑。</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">搜索插件</system:String>
@ -152,13 +152,13 @@
<system:String x:Key="currentActionKeywords">当前触发关键字</system:String>
<system:String x:Key="newActionKeyword">新触发关键字</system:String>
<system:String x:Key="actionKeywordsTooltip">更改触发关键字</system:String>
<system:String x:Key="pluginSearchDelayTime">Plugin search delay time</system:String>
<system:String x:Key="pluginSearchDelayTimeTooltip">Change Plugin Search Delay Time</system:String>
<system:String x:Key="FilterComboboxLabel">Advanced Settings:</system:String>
<system:String x:Key="pluginSearchDelayTime">插件搜索延迟时间</system:String>
<system:String x:Key="pluginSearchDelayTimeTooltip">更改插件搜索延迟时间</system:String>
<system:String x:Key="FilterComboboxLabel">高级设置:</system:String>
<system:String x:Key="DisplayModeOnOff">启用</system:String>
<system:String x:Key="DisplayModePriority">优先级</system:String>
<system:String x:Key="DisplayModeSearchDelay">Search Delay</system:String>
<system:String x:Key="DisplayModeHomeOnOff">Home Page</system:String>
<system:String x:Key="DisplayModeSearchDelay">延迟搜索</system:String>
<system:String x:Key="DisplayModeHomeOnOff">首页</system:String>
<system:String x:Key="currentPriority">当前优先级</system:String>
<system:String x:Key="newPriority">新优先级</system:String>
<system:String x:Key="priority">优先级</system:String>
@ -170,10 +170,10 @@
<system:String x:Key="plugin_query_version">版本</system:String>
<system:String x:Key="plugin_query_web">官方网站</system:String>
<system:String x:Key="plugin_uninstall">卸载</system:String>
<system:String x:Key="failedToRemovePluginSettingsTitle">Fail to remove plugin settings</system:String>
<system:String x:Key="failedToRemovePluginSettingsMessage">Plugins: {0} - Fail to remove plugin settings files, please remove them manually</system:String>
<system:String x:Key="failedToRemovePluginCacheTitle">Fail to remove plugin cache</system:String>
<system:String x:Key="failedToRemovePluginCacheMessage">Plugins: {0} - Fail to remove plugin cache files, please remove them manually</system:String>
<system:String x:Key="failedToRemovePluginSettingsTitle">移除插件设置失败</system:String>
<system:String x:Key="failedToRemovePluginSettingsMessage">插件:{0} - 移除插件设置文件失败,请手动删除</system:String>
<system:String x:Key="failedToRemovePluginCacheTitle">移除插件缓存失败</system:String>
<system:String x:Key="failedToRemovePluginCacheMessage">插件:{0} - 移除插件设置文件失败,请手动删除</system:String>
<!-- Setting Plugin Store -->
<system:String x:Key="pluginStore">插件商店</system:String>
@ -210,9 +210,9 @@
<system:String x:Key="resultItemFont">结果标题字体</system:String>
<system:String x:Key="resultSubItemFont">结果字幕字体</system:String>
<system:String x:Key="resetCustomize">重置</system:String>
<system:String x:Key="resetCustomizeToolTip">Reset to the recommended font and size settings.</system:String>
<system:String x:Key="ImportThemeSize">Import Theme Size</system:String>
<system:String x:Key="ImportThemeSizeToolTip">If a size value intended by the theme designer is available, it will be retrieved and applied.</system:String>
<system:String x:Key="resetCustomizeToolTip">重置为推荐字体和大小设置。</system:String>
<system:String x:Key="ImportThemeSize">导入主题尺寸</system:String>
<system:String x:Key="ImportThemeSizeToolTip">如果主题设计器想要的大小值可用,它将被检索和应用。</system:String>
<system:String x:Key="CustomizeToolTip">自定义</system:String>
<system:String x:Key="windowMode">窗口模式</system:String>
<system:String x:Key="opacity">透明度</system:String>
@ -239,21 +239,21 @@
<system:String x:Key="AnimationSpeedCustom">自定义</system:String>
<system:String x:Key="Clock">时钟</system:String>
<system:String x:Key="Date">日期</system:String>
<system:String x:Key="BackdropType">Backdrop Type</system:String>
<system:String x:Key="BackdropInfo">The backdrop effect is not applied in the preview.</system:String>
<system:String x:Key="BackdropTypeDisabledToolTip">Backdrop supported starting from Windows 11 build 22000 and above</system:String>
<system:String x:Key="BackdropType">返回类型</system:String>
<system:String x:Key="BackdropInfo">预览中没有应用背景效果。</system:String>
<system:String x:Key="BackdropTypeDisabledToolTip">自 Windows 11 Build 22000 起支持背景效果</system:String>
<system:String x:Key="BackdropTypesNone">无</system:String>
<system:String x:Key="BackdropTypesAcrylic">Acrylic</system:String>
<system:String x:Key="BackdropTypesMica">Mica</system:String>
<system:String x:Key="BackdropTypesMicaAlt">Mica Alt</system:String>
<system:String x:Key="TypeIsDarkToolTip">This theme supports two (light/dark) modes.</system:String>
<system:String x:Key="BackdropTypesAcrylic">亚克力</system:String>
<system:String x:Key="BackdropTypesMica">云母</system:String>
<system:String x:Key="BackdropTypesMicaAlt">云母平替</system:String>
<system:String x:Key="TypeIsDarkToolTip">该主题支持两种(浅色/深色)模式。</system:String>
<system:String x:Key="TypeHasBlurToolTip">该主题支持模糊透明背景。</system:String>
<system:String x:Key="ShowPlaceholder">Show placeholder</system:String>
<system:String x:Key="ShowPlaceholderTip">Display placeholder when query is empty</system:String>
<system:String x:Key="PlaceholderText">Placeholder text</system:String>
<system:String x:Key="PlaceholderTextTip">Change placeholder text. Input empty will use: {0}</system:String>
<system:String x:Key="KeepMaxResults">Fixed Window Size</system:String>
<system:String x:Key="KeepMaxResultsToolTip">The window size is not adjustable by dragging.</system:String>
<system:String x:Key="ShowPlaceholder">显示占位符</system:String>
<system:String x:Key="ShowPlaceholderTip">当查询为空时显示占位符</system:String>
<system:String x:Key="PlaceholderText">占位符文本</system:String>
<system:String x:Key="PlaceholderTextTip">更改占位符文本。输入空将使用:{0}</system:String>
<system:String x:Key="KeepMaxResults">固定窗口大小</system:String>
<system:String x:Key="KeepMaxResultsToolTip">窗口高度不能通过拖动来调整。</system:String>
<!-- Setting Hotkey -->
<system:String x:Key="hotkey">热键</system:String>
@ -313,9 +313,9 @@
<system:String x:Key="useGlyphUI">使用 Segoe Fluent 图标</system:String>
<system:String x:Key="useGlyphUIEffect">在支持时在选项中显示 Segoe Fluent 图标</system:String>
<system:String x:Key="flowlauncherPressHotkey">按下按键</system:String>
<system:String x:Key="showBadges">Show Result Badges</system:String>
<system:String x:Key="showBadgesToolTip">For supported plugins, badges are displayed to help distinguish them more easily.</system:String>
<system:String x:Key="showBadgesGlobalOnly">Show Result Badges for Global Query Only</system:String>
<system:String x:Key="showBadges">显示结果徽章</system:String>
<system:String x:Key="showBadgesToolTip">对于支持的插件,将显示徽章以帮助更容易区分它们。</system:String>
<system:String x:Key="showBadgesGlobalOnly">仅在全局查询下显示结果徽章</system:String>
<!-- Setting Proxy -->
<system:String x:Key="proxy">HTTP 代理</system:String>
@ -356,21 +356,23 @@
<system:String x:Key="logfolder">日志目录</system:String>
<system:String x:Key="clearlogfolder">清除日志</system:String>
<system:String x:Key="clearlogfolderMessage">你确定要删除所有的日志吗?</system:String>
<system:String x:Key="cachefolder">Cache Folder</system:String>
<system:String x:Key="clearcachefolder">Clear Caches</system:String>
<system:String x:Key="clearcachefolderMessage">Are you sure you want to delete all caches?</system:String>
<system:String x:Key="clearfolderfailMessage">Failed to clear part of folders and files. Please see log file for more information</system:String>
<system:String x:Key="cachefolder">缓存文件夹</system:String>
<system:String x:Key="clearcachefolder">清除缓存</system:String>
<system:String x:Key="clearcachefolderMessage">您确定要删除所有缓存吗?</system:String>
<system:String x:Key="clearfolderfailMessage">无法清除部分文件夹和文件。请查看日志文件以获取更多信息</system:String>
<system:String x:Key="welcomewindow">向导</system:String>
<system:String x:Key="userdatapath">用户数据位置</system:String>
<system:String x:Key="userdatapathToolTip">用户设置和已安装的插件保存在用户数据文件夹中。此位置可能因是否处于便携模式而异。</system:String>
<system:String x:Key="userdatapathButton">打开文件夹</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
<system:String x:Key="settingWindowFontTitle">Setting Window Font</system:String>
<system:String x:Key="advanced">高级</system:String>
<system:String x:Key="logLevel">日志等级</system:String>
<system:String x:Key="LogLevelDEBUG">调试</system:String>
<system:String x:Key="LogLevelINFO">信息</system:String>
<system:String x:Key="settingWindowFontTitle">设置窗口字体</system:String>
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">默认文件管理器</system:String>
<system:String x:Key="fileManager_learnMore">了解更多</system:String>
<system:String x:Key="fileManager_tips">请指定您使用的文件管理器的文件位置并根据需要添加参数。“%d”表示要打开的目录路径由文件夹字段的参数和打开特定目录的命令使用。“%f”表示要打开的文件路径由文件字段的参数和打开特定文件的命令使用。</system:String>
<system:String x:Key="fileManager_tips2">例如如果文件管理器使用诸如“totalcmd.exe /A c:\windows”之类的命令来打开 c:\windows 目录,则文件管理器路径将为 totalcmd.exe文件夹参数将为 /A &quot;%d&quot;。某些文件管理器(如 QTTabBar可能只需要提供路径在本例中使用“%d”作为文件管理器路径其余字段留空。</system:String>
<system:String x:Key="fileManager_name">文件管理器</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">文件管理器路径</system:String>
<system:String x:Key="fileManager_directory_arg">文件夹路径参数</system:String>
<system:String x:Key="fileManager_file_arg">选中文件路径参数</system:String>
<system:String x:Key="fileManagerPathNotFound">文件管理器 '{0}' 不能在 '{1}'中定位。您想要继续吗?</system:String>
<system:String x:Key="fileManagerPathError">文件管理器路径错误</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">默认浏览器</system:String>
@ -385,7 +389,7 @@
<system:String x:Key="defaultBrowser_name">浏览器</system:String>
<system:String x:Key="defaultBrowser_profile_name">浏览器名称</system:String>
<system:String x:Key="defaultBrowser_path">浏览器路径</system:String>
<system:String x:Key="defaultBrowser_newWindow">新窗</system:String>
<system:String x:Key="defaultBrowser_newWindow">新窗</system:String>
<system:String x:Key="defaultBrowser_newTab">新标签</system:String>
<system:String x:Key="defaultBrowser_parameter">隐身模式</system:String>
@ -402,19 +406,19 @@
<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="newActionKeywordsSameAsOld">This new Action Keyword is the same as old, please choose a different one</system:String>
<system:String x:Key="newActionKeywordsSameAsOld">此触发关键字已经被指派给其他插件了,请换一个关键字</system:String>
<system:String x:Key="success">成功</system:String>
<system:String x:Key="completedSuccessfully">成功完成</system:String>
<system:String x:Key="failedToCopy">Failed to copy</system:String>
<system:String x:Key="actionkeyword_tips">Enter the action keywords you like to use to start the plugin and use whitespace to divide them. Use * if you don't want to specify any, and the plugin will be triggered without any action keywords.</system:String>
<system:String x:Key="failedToCopy">复制失败</system:String>
<system:String x:Key="actionkeyword_tips">请输入您希望用来启动插件的动作关键字,并使用空格进行分隔。若不想指定任何关键字,可直接输入*,此时插件将在未输入动作关键字的情况下被触发</system:String>
<!-- Search Delay Settings Dialog -->
<system:String x:Key="searchDelayTimeTitle">Search Delay Time Setting</system:String>
<system:String x:Key="searchDelayTimeTips">Input the search delay time in ms you like to use for the plugin. Input empty if you don't want to specify any, and the plugin will use default search delay time.</system:String>
<system:String x:Key="searchDelayTimeTitle">搜索延迟时间设置</system:String>
<system:String x:Key="searchDelayTimeTips">请输入您希望插件使用的搜索延迟时间(单位:毫秒)。若不想指定,可留空,此时插件将采用默认的搜索延迟时间。</system:String>
<!-- Search Delay Settings Dialog -->
<system:String x:Key="homeTitle">Home Page</system:String>
<system:String x:Key="homeTips">Enable the plugin home page state if you like to show the plugin results when query is empty.</system:String>
<system:String x:Key="homeTitle">首页</system:String>
<system:String x:Key="homeTips">如果您想在查询为空时显示插件的结果,请启用插件主页状态。</system:String>
<!-- Custom Query Hotkey Dialog -->
<system:String x:Key="customeQueryHotkeyTitle">自定义查询热键</system:String>
@ -465,9 +469,17 @@
<system:String x:Key="reportWindow_report_succeed">发送成功</system:String>
<system:String x:Key="reportWindow_report_failed">发送失败</system:String>
<system:String x:Key="reportWindow_flowlauncher_got_an_error">Flow Launcher 出错啦</system:String>
<system:String x:Key="reportWindow_please_open_issue">Please open new issue in</system:String>
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<system:String x:Key="reportWindow_please_open_issue">请打开新的问题在</system:String>
<system:String x:Key="reportWindow_upload_log">1. 上传日志文件:{0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. 复制下面的异常消息</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">文件管理器错误</system:String>
<system:String x:Key="fileManagerNotFound">
找不到指定的文件管理器。请在“设置 &gt; 通用”下检查自定义文件管理器设置。
</system:String>
<system:String x:Key="errorTitle">错误</system:String>
<system:String x:Key="folderOpenError">打开文件夹时发生错误。{0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">请稍等...</system:String>

View file

@ -364,6 +364,7 @@
<system:String x:Key="userdatapath">User Data Location</system:String>
<system:String x:Key="userdatapathToolTip">User settings and installed plugins are saved in the user data folder. This location may vary depending on whether it's in portable mode or not.</system:String>
<system:String x:Key="userdatapathButton">Open Folder</system:String>
<system:String x:Key="advanced">Advanced</system:String>
<system:String x:Key="logLevel">Log Level</system:String>
<system:String x:Key="LogLevelDEBUG">Debug</system:String>
<system:String x:Key="LogLevelINFO">Info</system:String>
@ -371,6 +372,7 @@
<!-- FileManager Setting Dialog -->
<system:String x:Key="fileManagerWindow">選擇檔案管理器</system:String>
<system:String x:Key="fileManager_learnMore">Learn more</system:String>
<system:String x:Key="fileManager_tips">Please specify the file location of the file manager you using and add arguments as required. The &quot;%d&quot; represents the directory path to open for, used by the Arg for Folder field and for commands opening specific directories. The &quot;%f&quot; represents the file path to open for, used by the Arg for File field and for commands opening specific files.</system:String>
<system:String x:Key="fileManager_tips2">For example, if the file manager uses a command such as &quot;totalcmd.exe /A c:\windows&quot; to open the c:\windows directory, the File Manager Path will be totalcmd.exe, and the Arg For Folder will be /A &quot;%d&quot;. Certain file managers like QTTabBar may just require a path to be supplied, in this instance use &quot;%d&quot; as the File Manager Path and leave the rest of the fileds blank.</system:String>
<system:String x:Key="fileManager_name">檔案管理器</system:String>
@ -378,6 +380,8 @@
<system:String x:Key="fileManager_path">檔案管理器路徑</system:String>
<system:String x:Key="fileManager_directory_arg">資料夾參數</system:String>
<system:String x:Key="fileManager_file_arg">檔案參數</system:String>
<system:String x:Key="fileManagerPathNotFound">The file manager '{0}' could not be located at '{1}'. Would you like to continue?</system:String>
<system:String x:Key="fileManagerPathError">File Manager Path Error</system:String>
<!-- DefaultBrowser Setting Dialog -->
<system:String x:Key="defaultBrowserTitle">預設瀏覽器</system:String>
@ -469,6 +473,14 @@ If you add an '@' prefix while inputting a shortcut, it matches any position in
<system:String x:Key="reportWindow_upload_log">1. Upload log file: {0}</system:String>
<system:String x:Key="reportWindow_copy_below">2. Copy below exception message</system:String>
<!-- File Open Error -->
<system:String x:Key="fileManagerNotFoundTitle">File Manager Error</system:String>
<system:String x:Key="fileManagerNotFound">
The specified file manager could not be found. Please check the Custom File Manager setting under Settings &gt; General.
</system:String>
<system:String x:Key="errorTitle">Error</system:String>
<system:String x:Key="folderOpenError">An error occurred while opening the folder. {0}</system:String>
<!-- General Notice -->
<system:String x:Key="pleaseWait">請稍後...</system:String>

View file

@ -64,10 +64,6 @@
Key="R"
Command="{Binding ReQueryCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="H"
Command="{Binding LoadHistoryCommand}"
Modifiers="Ctrl" />
<KeyBinding
Key="OemCloseBrackets"
Command="{Binding IncreaseWidthCommand}"
@ -191,6 +187,10 @@
Key="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding OpenSettingCommand}"
Modifiers="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding OpenHistoryHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding LoadHistoryCommand}"
Modifiers="{Binding OpenHistoryHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding OpenContextMenuHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding LoadContextMenuCommand}"
@ -359,7 +359,7 @@
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ResultListBox, Path=Items.Count}" Value="0" />
<Condition Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
@ -373,7 +373,7 @@
<DataTrigger Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Visible">
<DataTrigger Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=History, Path=Visibility}" Value="Visible">
@ -419,7 +419,7 @@
</ContentControl>
<ContentControl>
<flowlauncher:ResultListBox
x:Name="ContextMenu"
x:Name="ResultContextMenu"
DataContext="{Binding ContextMenu}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />

View file

@ -103,7 +103,7 @@ namespace Flow.Launcher
private void ThemeManager_ActualApplicationThemeChanged(ModernWpf.ThemeManager sender, object args)
{
_theme.RefreshFrameAsync();
_ = _theme.RefreshFrameAsync();
}
private void OnSourceInitialized(object sender, EventArgs e)
@ -115,7 +115,7 @@ namespace Flow.Launcher
Win32Helper.DisableControlBox(this);
}
private async void OnLoaded(object sender, RoutedEventArgs _)
private void OnLoaded(object sender, RoutedEventArgs _)
{
// Check first launch
if (_settings.FirstLaunch)
@ -285,6 +285,7 @@ namespace Flow.Launcher
InitializeContextMenu();
break;
case nameof(Settings.ShowHomePage):
case nameof(Settings.ShowHistoryResultsForHomePage):
if (_viewModel.QueryResultsSelected() && string.IsNullOrEmpty(_viewModel.QueryText))
{
_viewModel.QueryResults();
@ -299,14 +300,14 @@ namespace Flow.Launcher
// QueryTextBox.Text change detection (modified to only work when character count is 1 or higher)
QueryTextBox.TextChanged += (s, e) => UpdateClockPanelVisibility();
// Detecting ContextMenu.Visibility changes
// Detecting ResultContextMenu.Visibility changes
DependencyPropertyDescriptor
.FromProperty(VisibilityProperty, typeof(ContextMenu))
.AddValueChanged(ContextMenu, (s, e) => UpdateClockPanelVisibility());
.FromProperty(VisibilityProperty, typeof(ResultListBox))
.AddValueChanged(ResultContextMenu, (s, e) => UpdateClockPanelVisibility());
// Detect History.Visibility changes
DependencyPropertyDescriptor
.FromProperty(VisibilityProperty, typeof(StackPanel))
.FromProperty(VisibilityProperty, typeof(ResultListBox))
.AddValueChanged(History, (s, e) => UpdateClockPanelVisibility());
// Initialize query state
@ -1020,7 +1021,7 @@ namespace Flow.Launcher
private void UpdateClockPanelVisibility()
{
if (QueryTextBox == null || ContextMenu == null || History == null || ClockPanel == null)
if (QueryTextBox == null || ResultContextMenu == null || History == null || ClockPanel == null)
{
return;
}
@ -1035,20 +1036,20 @@ namespace Flow.Launcher
};
var animationDuration = TimeSpan.FromMilliseconds(animationLength * 2 / 3);
// ✅ Conditions for showing ClockPanel (No query input & ContextMenu, History are closed)
// ✅ Conditions for showing ClockPanel (No query input / ResultContextMenu & History are closed)
var shouldShowClock = QueryTextBox.Text.Length == 0 &&
ContextMenu.Visibility != Visibility.Visible &&
ResultContextMenu.Visibility != Visibility.Visible &&
History.Visibility != Visibility.Visible;
// ✅ 1. When ContextMenu opens, immediately set Visibility.Hidden (force hide without animation)
if (ContextMenu.Visibility == Visibility.Visible)
// ✅ 1. When ResultContextMenu opens, immediately set Visibility.Hidden (force hide without animation)
if (ResultContextMenu.Visibility == Visibility.Visible)
{
_viewModel.ClockPanelVisibility = Visibility.Hidden;
_viewModel.ClockPanelOpacity = 0.0; // Set to 0 in case Opacity animation affects it
return;
}
// ✅ 2. When ContextMenu is closed, keep it Hidden if there's text in the query (remember previous state)
// ✅ 2. When ResultContextMenu is closed, keep it Hidden if there's text in the query (remember previous state)
else if (QueryTextBox.Text.Length > 0)
{
_viewModel.ClockPanelVisibility = Visibility.Hidden;

View file

@ -22,9 +22,6 @@ namespace Flow.Launcher
InitializeComponent();
}
public static MessageBoxResult Show(string messageBoxText)
=> Show(messageBoxText, string.Empty, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
public static MessageBoxResult Show(
string messageBoxText,
string caption = "",
@ -163,6 +160,7 @@ namespace Flow.Launcher
private void KeyEsc_OnPress(object sender, ExecutedRoutedEventArgs e)
{
if (_button == MessageBoxButton.YesNo)
// Follow System.Windows.MessageBox behavior
return;
else if (_button == MessageBoxButton.OK)
_result = MessageBoxResult.OK;
@ -191,6 +189,7 @@ namespace Flow.Launcher
private void Button_Cancel(object sender, RoutedEventArgs e)
{
if (_button == MessageBoxButton.YesNo)
// Follow System.Windows.MessageBox behavior
return;
else if (_button == MessageBoxButton.OK)
_result = MessageBoxResult.OK;

View file

@ -2,6 +2,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
@ -37,6 +38,8 @@ namespace Flow.Launcher
{
public class PublicAPIInstance : IPublicAPI, IRemovable
{
private static readonly string ClassName = nameof(PublicAPIInstance);
private readonly Settings _settings;
private readonly MainViewModel _mainVM;
@ -90,6 +93,8 @@ namespace Flow.Launcher
public void ShowMainWindow() => _mainVM.Show();
public void FocusQueryTextBox() => _mainVM.FocusQueryTextBox();
public void HideMainWindow() => _mainVM.Hide();
public bool IsMainWindowVisible() => _mainVM.MainWindowVisibilityStatus;
@ -313,27 +318,79 @@ namespace Flow.Launcher
((PluginJsonStorage<T>)_pluginJsonStorages[type]).Save();
}
public void OpenDirectory(string DirectoryPath, string FileNameOrFilePath = null)
public void OpenDirectory(string directoryPath, string fileNameOrFilePath = null)
{
using var explorer = new Process();
var explorerInfo = _settings.CustomExplorer;
explorer.StartInfo = new ProcessStartInfo
try
{
FileName = explorerInfo.Path.Replace("%d", DirectoryPath),
UseShellExecute = true,
Arguments = FileNameOrFilePath is null
? explorerInfo.DirectoryArgument.Replace("%d", DirectoryPath)
: explorerInfo.FileArgument
.Replace("%d", DirectoryPath)
.Replace("%f",
Path.IsPathRooted(FileNameOrFilePath) ? FileNameOrFilePath : Path.Combine(DirectoryPath, FileNameOrFilePath)
)
};
explorer.Start();
var explorerInfo = _settings.CustomExplorer;
var explorerPath = explorerInfo.Path.Trim().ToLowerInvariant();
var targetPath = fileNameOrFilePath is null
? directoryPath
: Path.IsPathRooted(fileNameOrFilePath)
? fileNameOrFilePath
: Path.Combine(directoryPath, fileNameOrFilePath);
if (Path.GetFileNameWithoutExtension(explorerPath) == "explorer")
{
// Windows File Manager
if (fileNameOrFilePath is null)
{
// Only Open the directory
using var explorer = new Process();
explorer.StartInfo = new ProcessStartInfo
{
FileName = directoryPath,
UseShellExecute = true
};
explorer.Start();
}
else
{
// Open the directory and select the file
Win32Helper.OpenFolderAndSelectFile(targetPath);
}
}
else
{
// Custom File Manager
using var explorer = new Process();
explorer.StartInfo = new ProcessStartInfo
{
FileName = explorerInfo.Path.Replace("%d", directoryPath),
UseShellExecute = true,
Arguments = fileNameOrFilePath is null
? explorerInfo.DirectoryArgument.Replace("%d", directoryPath)
: explorerInfo.FileArgument
.Replace("%d", directoryPath)
.Replace("%f", targetPath)
};
explorer.Start();
}
}
catch (Win32Exception ex) when (ex.NativeErrorCode == 2)
{
LogError(ClassName, "File Manager not found");
ShowMsgBox(
string.Format(GetTranslation("fileManagerNotFound"), ex.Message),
GetTranslation("fileManagerNotFoundTitle"),
MessageBoxButton.OK,
MessageBoxImage.Error
);
}
catch (Exception ex)
{
LogException(ClassName, "Failed to open folder", ex);
ShowMsgBox(
string.Format(GetTranslation("folderOpenError"), ex.Message),
GetTranslation("errorTitle"),
MessageBoxButton.OK,
MessageBoxImage.Error
);
}
}
private void OpenUri(Uri uri, bool? inPrivate = null)
{
if (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps)

View file

@ -9,20 +9,19 @@ namespace Flow.Launcher.Resources.Pages
{
public partial class WelcomePage1
{
public Settings Settings { get; private set; }
private WelcomeViewModel _viewModel;
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
private readonly WelcomeViewModel _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
{
Settings = Ioc.Default.GetRequiredService<Settings>();
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
InitializeComponent();
}
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page number
_viewModel.PageNum = 1;
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);
}

View file

@ -11,20 +11,19 @@ namespace Flow.Launcher.Resources.Pages
{
public partial class WelcomePage2
{
public Settings Settings { get; private set; }
private WelcomeViewModel _viewModel;
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
private readonly WelcomeViewModel _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
{
Settings = Ioc.Default.GetRequiredService<Settings>();
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
InitializeComponent();
}
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page number
_viewModel.PageNum = 2;
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);
}

View file

@ -7,20 +7,19 @@ namespace Flow.Launcher.Resources.Pages
{
public partial class WelcomePage3
{
public Settings Settings { get; private set; }
private WelcomeViewModel _viewModel;
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
private readonly WelcomeViewModel _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
{
Settings = Ioc.Default.GetRequiredService<Settings>();
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
InitializeComponent();
}
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page number
_viewModel.PageNum = 3;
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);
}
}

View file

@ -7,20 +7,19 @@ namespace Flow.Launcher.Resources.Pages
{
public partial class WelcomePage4
{
public Settings Settings { get; private set; }
private WelcomeViewModel _viewModel;
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
private readonly WelcomeViewModel _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
{
Settings = Ioc.Default.GetRequiredService<Settings>();
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
InitializeComponent();
}
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page number
_viewModel.PageNum = 4;
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);
}
}

View file

@ -10,20 +10,19 @@ namespace Flow.Launcher.Resources.Pages
{
public partial class WelcomePage5
{
public Settings Settings { get; private set; }
private WelcomeViewModel _viewModel;
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
private readonly WelcomeViewModel _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
{
Settings = Ioc.Default.GetRequiredService<Settings>();
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
InitializeComponent();
}
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page number
_viewModel.PageNum = 5;
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);
}

View file

@ -6,10 +6,11 @@
xmlns:local="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.modernwpf.com/2019"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Title="{DynamicResource defaultBrowserTitle}"
Width="550"
d:DataContext="{d:DesignInstance vm:SelectBrowserViewModel}"
Background="{DynamicResource PopuBGColor}"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Foreground="{DynamicResource PopupTextColor}"
ResizeMode="NoResize"
SizeToContent="Height"
@ -97,11 +98,11 @@
</ComboBox>
<Button
Margin="10 0 0 0"
Click="btnAdd_Click"
Command="{Binding AddCommand}"
Content="{DynamicResource add}" />
<Button
Margin="10 0 0 0"
Click="btnDelete_Click"
Command="{Binding DeleteCommand}"
Content="{DynamicResource delete}"
IsEnabled="{Binding CustomBrowser.Editable}" />

View file

@ -1,36 +1,18 @@
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
using Flow.Launcher.Infrastructure.UserSettings;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher
{
[INotifyPropertyChanged]
public partial class SelectBrowserWindow : Window
{
private readonly Settings _settings;
private readonly SelectBrowserViewModel _viewModel;
private int selectedCustomBrowserIndex;
public int SelectedCustomBrowserIndex
public SelectBrowserWindow()
{
get => selectedCustomBrowserIndex;
set
{
selectedCustomBrowserIndex = value;
OnPropertyChanged(nameof(CustomBrowser));
}
}
public ObservableCollection<CustomBrowserViewModel> CustomBrowsers { get; set; }
public CustomBrowserViewModel CustomBrowser => CustomBrowsers[SelectedCustomBrowserIndex];
public SelectBrowserWindow(Settings settings)
{
_settings = settings;
CustomBrowsers = new ObservableCollection<CustomBrowserViewModel>(_settings.CustomBrowserList.Select(x => x.Copy()));
SelectedCustomBrowserIndex = _settings.CustomBrowserIndex;
_viewModel = Ioc.Default.GetRequiredService<SelectBrowserViewModel>();
DataContext = _viewModel;
InitializeComponent();
}
@ -41,33 +23,20 @@ namespace Flow.Launcher
private void btnDone_Click(object sender, RoutedEventArgs e)
{
_settings.CustomBrowserList = CustomBrowsers.ToList();
_settings.CustomBrowserIndex = SelectedCustomBrowserIndex;
Close();
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
CustomBrowsers.Add(new()
if (_viewModel.SaveSettings())
{
Name = "New Profile"
});
SelectedCustomBrowserIndex = CustomBrowsers.Count - 1;
}
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
CustomBrowsers.RemoveAt(SelectedCustomBrowserIndex--);
Close();
}
}
private void btnBrowseFile_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
var result = dlg.ShowDialog();
if (result == true)
var selectedFilePath = _viewModel.SelectFile();
if (!string.IsNullOrEmpty(selectedFilePath))
{
TextBox path = (TextBox)(((FrameworkElement)sender).Parent as FrameworkElement).FindName("PathTextBox");
path.Text = dlg.FileName;
var path = (TextBox)(((FrameworkElement)sender).Parent as FrameworkElement).FindName("PathTextBox");
path.Text = selectedFilePath;
path.Focus();
((Button)sender).Focus();
}

View file

@ -6,10 +6,11 @@
xmlns:local="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.modernwpf.com/2019"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Title="{DynamicResource fileManagerWindow}"
Width="600"
d:DataContext="{d:DesignInstance vm:SelectFileManagerViewModel}"
Background="{DynamicResource PopuBGColor}"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Foreground="{DynamicResource PopupTextColor}"
ResizeMode="NoResize"
SizeToContent="Height"
@ -73,9 +74,17 @@
<TextBlock Margin="0 14 0 0" FontSize="14">
<TextBlock Text="{DynamicResource fileManager_tips2}" TextWrapping="WrapWithOverflow" />
</TextBlock>
<TextBlock Margin="0 14 0 0" VerticalAlignment="Center">
<Hyperlink NavigateUri="https://www.flowlauncher.com/docs/#/filemanager" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock FontSize="14" Text="{DynamicResource fileManager_learnMore}" />
</Hyperlink>
</TextBlock>
</StackPanel>
<StackPanel Margin="14 28 0 0" Orientation="Horizontal">
<Rectangle
Height="1"
Margin="0 20 0 20"
Fill="{StaticResource SeparatorForeground}" />
<StackPanel Margin="14 0 0 0" Orientation="Horizontal">
<TextBlock
Grid.Column="1"
HorizontalAlignment="Left"
@ -99,11 +108,11 @@
</ComboBox>
<Button
Margin="10 0 0 0"
Click="btnAdd_Click"
Command="{Binding AddCommand}"
Content="{DynamicResource add}" />
<Button
Margin="10 0 0 0"
Click="btnDelete_Click"
Command="{Binding DeleteCommand}"
Content="{DynamicResource delete}"
IsEnabled="{Binding CustomExplorer.Editable}" />
@ -111,7 +120,7 @@
<Rectangle
Height="1"
Margin="0 20 0 12"
Fill="{StaticResource Color03B}" />
Fill="{StaticResource SeparatorForeground}" />
<StackPanel
Margin="0 0 0 0"
HorizontalAlignment="Stretch"

View file

@ -1,38 +1,19 @@
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
using Flow.Launcher.Infrastructure.UserSettings;
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher
{
[INotifyPropertyChanged]
public partial class SelectFileManagerWindow : Window
{
private readonly Settings _settings;
private readonly SelectFileManagerViewModel _viewModel;
private int selectedCustomExplorerIndex;
public int SelectedCustomExplorerIndex
public SelectFileManagerWindow()
{
get => selectedCustomExplorerIndex;
set
{
selectedCustomExplorerIndex = value;
OnPropertyChanged(nameof(CustomExplorer));
}
}
public ObservableCollection<CustomExplorerViewModel> CustomExplorers { get; set; }
public CustomExplorerViewModel CustomExplorer => CustomExplorers[SelectedCustomExplorerIndex];
public SelectFileManagerWindow(Settings settings)
{
_settings = settings;
CustomExplorers = new ObservableCollection<CustomExplorerViewModel>(_settings.CustomExplorerList.Select(x => x.Copy()));
SelectedCustomExplorerIndex = _settings.CustomExplorerIndex;
_viewModel = Ioc.Default.GetRequiredService<SelectFileManagerViewModel>();
DataContext = _viewModel;
InitializeComponent();
}
@ -43,33 +24,26 @@ namespace Flow.Launcher
private void btnDone_Click(object sender, RoutedEventArgs e)
{
_settings.CustomExplorerList = CustomExplorers.ToList();
_settings.CustomExplorerIndex = SelectedCustomExplorerIndex;
Close();
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
CustomExplorers.Add(new()
if (_viewModel.SaveSettings())
{
Name = "New Profile"
});
SelectedCustomExplorerIndex = CustomExplorers.Count - 1;
Close();
}
}
private void btnDelete_Click(object sender, RoutedEventArgs e)
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
CustomExplorers.RemoveAt(SelectedCustomExplorerIndex--);
_viewModel.OpenUrl(e.Uri.AbsoluteUri);
e.Handled = true;
}
private void btnBrowseFile_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
var result = dlg.ShowDialog();
if (result == true)
var selectedFilePath = _viewModel.SelectFile();
if (!string.IsNullOrEmpty(selectedFilePath))
{
TextBox path = (TextBox)(((FrameworkElement)sender).Parent as FrameworkElement).FindName("PathTextBox");
path.Text = dlg.FileName;
var path = (TextBox)(((FrameworkElement)sender).Parent as FrameworkElement).FindName("PathTextBox");
path.Text = selectedFilePath;
path.Focus();
((Button)sender).Focus();
}

View file

@ -335,14 +335,14 @@ public partial class SettingsPaneGeneralViewModel : BaseModel
[RelayCommand]
private void SelectFileManager()
{
var fileManagerChangeWindow = new SelectFileManagerWindow(Settings);
var fileManagerChangeWindow = new SelectFileManagerWindow();
fileManagerChangeWindow.ShowDialog();
}
[RelayCommand]
private void SelectBrowser()
{
var browserWindow = new SelectBrowserWindow(Settings);
var browserWindow = new SelectBrowserWindow();
browserWindow.ShowDialog();
}
}

View file

@ -137,7 +137,7 @@
</cc:Card>
<cc:ExCard
Title="Advanced"
Title="{DynamicResource advanced}"
Margin="0 14 0 0"
Icon="&#xE8B7;">
<StackPanel>
@ -156,7 +156,7 @@
Icon="&#xf259;"
Type="Inside">
<StackPanel Orientation="Horizontal">
<Button Command="{Binding ResetSettingWindowFontCommand}" Content="Reset" />
<Button Command="{Binding ResetSettingWindowFontCommand}" Content="{DynamicResource commonReset}" />
<ComboBox
Margin="12 8 0 8"
HorizontalAlignment="Stretch"

View file

@ -1,19 +1,29 @@
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPaneAbout
{
private SettingsPaneAboutViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPaneAbout);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneAboutViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);

View file

@ -165,7 +165,7 @@
Title="{DynamicResource AlwaysPreview}"
Margin="0 14 0 0"
Icon="&#xe8a1;"
Sub="{Binding AlwaysPreviewToolTip}">
Sub="{DynamicResource AlwaysPreviewToolTip}">
<ui:ToggleSwitch
IsOn="{Binding Settings.AlwaysPreview}"
OffContent="{DynamicResource disable}"

View file

@ -1,19 +1,29 @@
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPaneGeneral
{
private SettingsPaneGeneralViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPaneGeneral);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneGeneralViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);

View file

@ -89,7 +89,10 @@
Title="{DynamicResource ToggleHistoryHotkey}"
Icon="&#xf738;"
Type="Inside">
<cc:HotkeyDisplay Keys="Ctrl+H" />
<flowlauncher:HotkeyControl
DefaultHotkey="Ctrl+H"
Type="OpenHistoryHotkey"
ValidateKeyGesture="False" />
</cc:Card>
<cc:Card
Title="{DynamicResource CopyFilePathHotkey}"

View file

@ -1,19 +1,29 @@
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPaneHotkey
{
private SettingsPaneHotkeyViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPaneHotkey);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneHotkeyViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);

View file

@ -11,13 +11,22 @@ namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPanePluginStore
{
private SettingsPanePluginStoreViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPanePluginStore);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPanePluginStoreViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
_viewModel.PropertyChanged += ViewModel_PropertyChanged;

View file

@ -11,13 +11,22 @@ namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPanePlugins
{
private SettingsPanePluginsViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPanePlugins);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPanePluginsViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
_viewModel.PropertyChanged += ViewModel_PropertyChanged;

View file

@ -1,19 +1,29 @@
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPaneProxy
{
private SettingsPaneProxyViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPaneProxy);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneProxyViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);

View file

@ -374,7 +374,7 @@
IsHitTestVisible="False"
Visibility="Visible" />
</ContentControl>
<Border x:Name="ContextMenu" Visibility="Collapsed" />
<Border x:Name="ResultContextMenu" Visibility="Collapsed" />
<Border x:Name="History" Visibility="Collapsed" />
</Grid>
</Border>

View file

@ -1,19 +1,29 @@
using System.Windows.Navigation;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
namespace Flow.Launcher.SettingPages.Views;
public partial class SettingsPaneTheme
{
private SettingsPaneThemeViewModel _viewModel = null!;
private readonly SettingWindowViewModel _settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!IsInitialized)
// Sometimes the navigation is not triggered by button click,
// so we need to reset the page type
_settingViewModel.PageType = typeof(SettingsPaneTheme);
// If the navigation is not triggered by button click, view model will be null again
if (_viewModel == null)
{
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneThemeViewModel>();
DataContext = _viewModel;
}
if (!IsInitialized)
{
InitializeComponent();
}
base.OnNavigatedTo(e);

View file

@ -13,6 +13,7 @@
MinHeight="600"
d:DataContext="{d:DesignInstance vm:SettingWindowViewModel}"
Closed="OnClosed"
FontFamily="{DynamicResource SettingWindowFont}"
Icon="Images\app.ico"
Left="{Binding SettingWindowLeft, Mode=TwoWay}"
Loaded="OnLoaded"

View file

@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@ -18,6 +19,7 @@ public partial class SettingWindow
#region Private Fields
private readonly Settings _settings;
private readonly SettingWindowViewModel _viewModel;
#endregion
@ -26,11 +28,11 @@ public partial class SettingWindow
public SettingWindow()
{
_settings = Ioc.Default.GetRequiredService<Settings>();
var viewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
DataContext = viewModel;
InitializeComponent();
_viewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
DataContext = _viewModel;
// Since WindowStartupLocation is set to Manual, initialize the window position before calling InitializeComponent
UpdatePositionAndState();
InitializeComponent();
}
#endregion
@ -48,12 +50,39 @@ public partial class SettingWindow
hwndTarget.RenderMode = RenderMode.SoftwareOnly; // Must use software only render mode here
UpdatePositionAndState();
_viewModel.PropertyChanged += ViewModel_PropertyChanged;
}
// Sometimes the navigation is not triggered by button click,
// so we need to update the selected item here
private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case nameof(SettingWindowViewModel.PageType):
var selectedIndex = _viewModel.PageType.Name switch
{
nameof(SettingsPaneGeneral) => 0,
nameof(SettingsPanePlugins) => 1,
nameof(SettingsPanePluginStore) => 2,
nameof(SettingsPaneTheme) => 3,
nameof(SettingsPaneHotkey) => 4,
nameof(SettingsPaneProxy) => 5,
nameof(SettingsPaneAbout) => 6,
_ => 0
};
NavView.SelectedItem = NavView.MenuItems[selectedIndex];
break;
}
}
private void OnClosed(object sender, EventArgs e)
{
_viewModel.PropertyChanged -= ViewModel_PropertyChanged;
// If app is exiting, settings save is not needed because main window closing event will handle this
if (App.Exiting) return;
if (App.LoadingOrExiting) return;
// Save settings when window is closed
_settings.Save();
App.API.SavePluginSettings();
@ -212,6 +241,7 @@ public partial class SettingWindow
{
if (args.IsSettingsSelected)
{
_viewModel.SetPageType(typeof(SettingsPaneGeneral));
ContentFrame.Navigate(typeof(SettingsPaneGeneral));
}
else
@ -234,7 +264,11 @@ public partial class SettingWindow
nameof(About) => typeof(SettingsPaneAbout),
_ => typeof(SettingsPaneGeneral)
};
ContentFrame.Navigate(pageType);
// Only navigate if the page type changes to fix navigation forward/back issue
if (_viewModel.SetPageType(pageType))
{
ContentFrame.Navigate(pageType);
}
}
}
@ -252,7 +286,8 @@ public partial class SettingWindow
private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
{
NavView.SelectedItem ??= NavView.MenuItems[0]; /* Set First Page */
_viewModel.SetPageType(null); // Set page type to null so that NavigationView_SelectionChanged can navigate the frame
NavView.SelectedItem = NavView.MenuItems[0]; /* Set First Page */
}
#endregion

View file

@ -479,7 +479,7 @@
<MultiDataTrigger.Conditions>
<!--
<Condition Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Collapsed" />-->
<Condition Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Collapsed" />-->
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=ResultListBox, Path=Items.Count}" Value="0" />
</MultiDataTrigger.Conditions>

View file

@ -137,6 +137,9 @@ namespace Flow.Launcher.ViewModel
case nameof(Settings.SettingWindowHotkey):
OnPropertyChanged(nameof(SettingWindowHotkey));
break;
case nameof(Settings.OpenHistoryHotkey):
OnPropertyChanged(nameof(OpenHistoryHotkey));
break;
}
};
@ -213,7 +216,26 @@ namespace Flow.Launcher.ViewModel
while (channelReader.TryRead(out var item))
{
if (!item.Token.IsCancellationRequested)
{
// Indicate if to clear existing results so to show only ones from plugins with action keywords
var query = item.Query;
var currentIsHomeQuery = query.IsHomeQuery;
var shouldClearExistingResults = ShouldClearExistingResultsForQuery(query, currentIsHomeQuery);
_lastQuery = item.Query;
_previousIsHomeQuery = currentIsHomeQuery;
// If the queue already has the item, we need to pass the shouldClearExistingResults flag
if (queue.TryGetValue(item.ID, out var existingItem))
{
item.ShouldClearExistingResults = shouldClearExistingResults || existingItem.ShouldClearExistingResults;
}
else
{
item.ShouldClearExistingResults = shouldClearExistingResults;
}
queue[item.ID] = item;
}
}
UpdateResultView(queue.Values);
@ -265,7 +287,9 @@ namespace Flow.Launcher.ViewModel
if (token.IsCancellationRequested) return;
if (!_resultsUpdateChannelWriter.TryWrite(new ResultsForUpdate(resultsCopy, pair.Metadata, e.Query,
App.API.LogDebug(ClassName, $"Update results for plugin <{pair.Metadata.Name}>");
if (!_resultsUpdateChannelWriter.TryWrite(new ResultsForUpdate(resultsCopy, pair.Metadata, e.Query,
token)))
{
App.API.LogError(ClassName, "Unable to add item to Result Update Queue");
@ -791,7 +815,7 @@ namespace Flow.Launcher.ViewModel
public Visibility ProgressBarVisibility { get; set; }
public Visibility MainWindowVisibility { get; set; }
// This is to be used for determining the visibility status of the main window instead of MainWindowVisibility
// because it is more accurate and reliable representation than using Visibility as a condition check
public bool MainWindowVisibilityStatus { get; set; } = true;
@ -886,6 +910,7 @@ namespace Flow.Launcher.ViewModel
public string SelectPrevPageHotkey => VerifyOrSetDefaultHotkey(Settings.SelectPrevPageHotkey, "");
public string OpenContextMenuHotkey => VerifyOrSetDefaultHotkey(Settings.OpenContextMenuHotkey, "Ctrl+O");
public string SettingWindowHotkey => VerifyOrSetDefaultHotkey(Settings.SettingWindowHotkey, "Ctrl+I");
public string OpenHistoryHotkey => VerifyOrSetDefaultHotkey(Settings.OpenHistoryHotkey, "Ctrl+H");
public string CycleHistoryUpHotkey => VerifyOrSetDefaultHotkey(Settings.CycleHistoryUpHotkey, "Alt+Up");
public string CycleHistoryDownHotkey => VerifyOrSetDefaultHotkey(Settings.CycleHistoryDownHotkey, "Alt+Down");
@ -1068,7 +1093,7 @@ namespace Flow.Launcher.ViewModel
path = QueryResultsPreviewed() ? Results.SelectedItem?.Result?.Preview.FilePath : string.Empty;
return !string.IsNullOrEmpty(path);
}
private bool QueryResultsPreviewed()
{
var previewed = PreviewSelectedItem == Results.SelectedItem;
@ -1258,7 +1283,7 @@ namespace Flow.Launcher.ViewModel
App.API.LogDebug(ClassName, $"Start query with ActionKeyword <{query.ActionKeyword}> and RawQuery <{query.RawQuery}>");
var currentIsHomeQuery = query.RawQuery == string.Empty;
var currentIsHomeQuery = query.IsHomeQuery;
_updateSource?.Dispose();
@ -1278,8 +1303,6 @@ namespace Flow.Launcher.ViewModel
// Update the query's IsReQuery property to true if this is a re-query
query.IsReQuery = isReQuery;
ICollection<PluginPair> plugins = Array.Empty<PluginPair>();
if (currentIsHomeQuery)
{
@ -1310,8 +1333,7 @@ namespace Flow.Launcher.ViewModel
}
}
var validPluginNames = plugins.Select(x => $"<{x.Metadata.Name}>");
App.API.LogDebug(ClassName, $"Valid <{plugins.Count}> plugins: {string.Join(" ", validPluginNames)}");
App.API.LogDebug(ClassName, $"Valid <{plugins.Count}> plugins: {string.Join(" ", plugins.Select(x => $"<{x.Metadata.Name}>"))}");
// Do not wait for performance improvement
/*if (string.IsNullOrEmpty(query.ActionKeyword))
@ -1339,6 +1361,12 @@ namespace Flow.Launcher.ViewModel
Task[] tasks;
if (currentIsHomeQuery)
{
if (ShouldClearExistingResultsForNonQuery(plugins))
{
Results.Clear();
App.API.LogDebug(ClassName, $"Existing results are cleared for non-query");
}
tasks = plugins.Select(plugin => plugin.Metadata.HomeDisabled switch
{
false => QueryTaskAsync(plugin, currentCancellationToken),
@ -1429,13 +1457,8 @@ namespace Flow.Launcher.ViewModel
App.API.LogDebug(ClassName, $"Update results for plugin <{plugin.Metadata.Name}>");
// Indicate if to clear existing results so to show only ones from plugins with action keywords
var shouldClearExistingResults = ShouldClearExistingResults(query, currentIsHomeQuery);
_lastQuery = query;
_previousIsHomeQuery = currentIsHomeQuery;
if (!_resultsUpdateChannelWriter.TryWrite(new ResultsForUpdate(resultsCopy, plugin.Metadata, query,
token, reSelect, shouldClearExistingResults)))
token, reSelect)))
{
App.API.LogError(ClassName, "Unable to add item to Result Update Queue");
}
@ -1453,7 +1476,7 @@ namespace Flow.Launcher.ViewModel
App.API.LogDebug(ClassName, $"Update results for history");
if (!_resultsUpdateChannelWriter.TryWrite(new ResultsForUpdate(results, _historyMetadata, query,
token)))
token, reSelect)))
{
App.API.LogError(ClassName, "Unable to add item to Result Update Queue");
}
@ -1539,7 +1562,9 @@ namespace Flow.Launcher.ViewModel
/// <summary>
/// Determines whether the existing search results should be cleared based on the current query and the previous query type.
/// This is needed because of the design that treats plugins with action keywords and global action keywords separately. Results are gathered
/// This is used to indicate to QueryTaskAsync or QueryHistoryTask whether to clear results. If both QueryTaskAsync and QueryHistoryTask
/// are not called then use ShouldClearExistingResultsForNonQuery instead.
/// This method needed because of the design that treats plugins with action keywords and global action keywords separately. Results are gathered
/// either from plugins with matching action keywords or global action keyword, but not both. So when the current results are from plugins
/// with a matching action keyword and a new result set comes from a new query with the global action keyword, the existing results need to be cleared,
/// and vice versa. The same applies to home page query results.
@ -1550,19 +1575,39 @@ namespace Flow.Launcher.ViewModel
/// <param name="query">The current query.</param>
/// <param name="currentIsHomeQuery">A flag indicating if the current query is a home query.</param>
/// <returns>True if the existing results should be cleared, false otherwise.</returns>
private bool ShouldClearExistingResults(Query query, bool currentIsHomeQuery)
private bool ShouldClearExistingResultsForQuery(Query query, bool currentIsHomeQuery)
{
// If previous or current results are from home query, we need to clear them
if (_previousIsHomeQuery || currentIsHomeQuery)
{
App.API.LogDebug(ClassName, $"Cleared old results");
App.API.LogDebug(ClassName, $"Existing results should be cleared for query");
return true;
}
// If the last and current query are not home query type, we need to check the action keyword
if (_lastQuery?.ActionKeyword != query?.ActionKeyword)
{
App.API.LogDebug(ClassName, $"Cleared old results");
App.API.LogDebug(ClassName, $"Existing results should be cleared for query");
return true;
}
return false;
}
/// <summary>
/// Determines whether existing results should be cleared for non-query calls.
/// A non-query call is where QueryTaskAsync and QueryHistoryTask methods are both not called.
/// QueryTaskAsync and QueryHistoryTask both handle result updating (clearing if required) so directly calling
/// Results.Clear() is not required. However when both are not called, we need to directly clear results and this
/// method determines on the condition when clear results should happen.
/// </summary>
/// <param name="plugins">The collection of plugins to check.</param>
/// <returns>True if existing results should be cleared, false otherwise.</returns>
private bool ShouldClearExistingResultsForNonQuery(ICollection<PluginPair> plugins)
{
if (!Settings.ShowHistoryResultsForHomePage && (plugins.Count == 0 || plugins.All(x => x.Metadata.HomeDisabled == true)))
{
App.API.LogDebug(ClassName, $"Existing results should be cleared for non-query");
return true;
}
@ -1699,7 +1744,7 @@ namespace Flow.Launcher.ViewModel
public void Show()
{
// When application is exiting, we should not show the main window
if (App.Exiting) return;
if (App.LoadingOrExiting) return;
// When application is exiting, the Application.Current will be null
Application.Current?.Dispatcher.Invoke(() =>
@ -1831,6 +1876,7 @@ namespace Flow.Launcher.ViewModel
{
if (!resultsForUpdates.Any())
return;
CancellationToken token;
try
@ -1896,6 +1942,21 @@ namespace Flow.Launcher.ViewModel
Results.AddResults(resultsForUpdates, token, reSelect);
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "<Pending>")]
public void FocusQueryTextBox()
{
// When application is exiting, the Application.Current will be null
Application.Current?.Dispatcher.Invoke(() =>
{
// When application is exiting, the Application.Current will be null
if (Application.Current?.MainWindow is MainWindow window)
{
window.QueryTextBox.Focus();
Keyboard.Focus(window.QueryTextBox);
}
});
}
#endregion
#region IDisposable

View file

@ -10,7 +10,7 @@ namespace Flow.Launcher.ViewModel
Query Query,
CancellationToken Token,
bool ReSelectFirstResult = true,
bool shouldClearExistingResults = false)
bool ShouldClearExistingResults = false)
{
public string ID { get; } = Metadata.ID;
}

View file

@ -17,6 +17,8 @@ namespace Flow.Launcher.ViewModel
{
#region Private Fields
private readonly string ClassName = nameof(ResultsViewModel);
public ResultCollection Results { get; }
private readonly object _collectionLock = new();
@ -187,11 +189,9 @@ namespace Flow.Launcher.ViewModel
/// </summary>
public void AddResults(ICollection<ResultsForUpdate> resultsForUpdates, CancellationToken token, bool reselect = true)
{
// Since NewResults may need to clear existing results, do not check token cancellation after this point
var newResults = NewResults(resultsForUpdates);
if (token.IsCancellationRequested)
return;
UpdateResults(newResults, reselect, token);
}
@ -240,13 +240,20 @@ namespace Flow.Launcher.ViewModel
private List<ResultViewModel> NewResults(ICollection<ResultsForUpdate> resultsForUpdates)
{
if (!resultsForUpdates.Any())
{
App.API.LogDebug(ClassName, "No results for updates, returning existing results");
return Results;
}
var newResults = resultsForUpdates.SelectMany(u => u.Results, (u, r) => new ResultViewModel(r, _settings));
if (resultsForUpdates.Any(x => x.shouldClearExistingResults))
if (resultsForUpdates.Any(x => x.ShouldClearExistingResults))
{
App.API.LogDebug(ClassName, $"Existing results are cleared for query");
return newResults.OrderByDescending(rv => rv.Result.Score).ToList();
}
App.API.LogDebug(ClassName, $"Keeping existing results for {resultsForUpdates.Count} queries");
return Results.Where(r => r?.Result != null && resultsForUpdates.All(u => u.ID != r.Result.PluginID))
.Concat(newResults)
.OrderByDescending(rv => rv.Result.Score)
@ -290,8 +297,6 @@ namespace Flow.Launcher.ViewModel
{
private long editTime = 0;
private CancellationToken _token;
public event NotifyCollectionChangedEventHandler CollectionChanged;
protected void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
@ -299,12 +304,12 @@ namespace Flow.Launcher.ViewModel
CollectionChanged?.Invoke(this, e);
}
public void BulkAddAll(List<ResultViewModel> resultViews)
private void BulkAddAll(List<ResultViewModel> resultViews, CancellationToken token = default)
{
AddRange(resultViews);
// can return because the list will be cleared next time updated, which include a reset event
if (_token.IsCancellationRequested)
if (token.IsCancellationRequested)
return;
// manually update event
@ -312,12 +317,12 @@ namespace Flow.Launcher.ViewModel
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
private void AddAll(List<ResultViewModel> Items)
private void AddAll(List<ResultViewModel> Items, CancellationToken token = default)
{
for (int i = 0; i < Items.Count; i++)
{
var item = Items[i];
if (_token.IsCancellationRequested)
if (token.IsCancellationRequested)
return;
Add(item);
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, i));
@ -339,21 +344,30 @@ namespace Flow.Launcher.ViewModel
/// <param name="newItems"></param>
public void Update(List<ResultViewModel> newItems, CancellationToken token = default)
{
_token = token;
if (Count == 0 && newItems.Count == 0 || _token.IsCancellationRequested)
// Since NewResults may need to clear existing results, so we cannot check token cancellation here
if (Count == 0 && newItems.Count == 0)
return;
if (editTime < 10 || newItems.Count < 30)
{
if (Count != 0) RemoveAll(newItems.Count);
AddAll(newItems);
// After results are removed, we need to check the token cancellation
// so that we will not add new items from the cancelled queries
if (token.IsCancellationRequested) return;
AddAll(newItems, token);
editTime++;
return;
}
else
{
Clear();
BulkAddAll(newItems);
// After results are removed, we need to check the token cancellation
// so that we will not add new items from the cancelled queries
if (token.IsCancellationRequested) return;
BulkAddAll(newItems, token);
if (Capacity > 8000 && newItems.Count < 3000)
{
Capacity = newItems.Count;

View file

@ -0,0 +1,74 @@
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using CommunityToolkit.Mvvm.Input;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin;
namespace Flow.Launcher.ViewModel;
public partial class SelectBrowserViewModel : BaseModel
{
private readonly Settings _settings;
private int selectedCustomBrowserIndex;
public int SelectedCustomBrowserIndex
{
get => selectedCustomBrowserIndex;
set
{
selectedCustomBrowserIndex = value;
OnPropertyChanged(nameof(CustomBrowser));
}
}
public ObservableCollection<CustomBrowserViewModel> CustomBrowsers { get; }
public CustomBrowserViewModel CustomBrowser => CustomBrowsers[SelectedCustomBrowserIndex];
public SelectBrowserViewModel(Settings settings)
{
_settings = settings;
CustomBrowsers = new ObservableCollection<CustomBrowserViewModel>(_settings.CustomBrowserList.Select(x => x.Copy()));
SelectedCustomBrowserIndex = _settings.CustomBrowserIndex;
}
public bool SaveSettings()
{
_settings.CustomBrowserList = CustomBrowsers.ToList();
_settings.CustomBrowserIndex = SelectedCustomBrowserIndex;
return true;
}
internal string SelectFile()
{
var dlg = new Microsoft.Win32.OpenFileDialog();
var result = dlg.ShowDialog();
if (result == true)
return dlg.FileName;
return string.Empty;
}
[RelayCommand]
private void Add()
{
CustomBrowsers.Add(new()
{
Name = "New Profile"
});
SelectedCustomBrowserIndex = CustomBrowsers.Count - 1;
}
[RelayCommand]
private void Delete()
{
var currentIndex = SelectedCustomBrowserIndex;
if (currentIndex >= 0 && currentIndex < CustomBrowsers.Count)
{
CustomBrowsers.RemoveAt(currentIndex);
SelectedCustomBrowserIndex = currentIndex > 0 ? currentIndex - 1 : 0;
}
}
}

View file

@ -0,0 +1,136 @@
using System;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows;
using CommunityToolkit.Mvvm.Input;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin;
namespace Flow.Launcher.ViewModel;
public partial class SelectFileManagerViewModel : BaseModel
{
private readonly Settings _settings;
private int selectedCustomExplorerIndex;
public int SelectedCustomExplorerIndex
{
get => selectedCustomExplorerIndex;
set
{
if (selectedCustomExplorerIndex != value)
{
selectedCustomExplorerIndex = value;
OnPropertyChanged(nameof(CustomExplorer));
}
}
}
public ObservableCollection<CustomExplorerViewModel> CustomExplorers { get; }
public CustomExplorerViewModel CustomExplorer => CustomExplorers[SelectedCustomExplorerIndex];
public SelectFileManagerViewModel(Settings settings)
{
_settings = settings;
CustomExplorers = new ObservableCollection<CustomExplorerViewModel>(_settings.CustomExplorerList.Select(x => x.Copy()));
SelectedCustomExplorerIndex = _settings.CustomExplorerIndex;
}
public bool SaveSettings()
{
// Check if the selected file manager path is valid
if (!IsFileManagerValid(CustomExplorer.Path))
{
var result = App.API.ShowMsgBox(
string.Format(App.API.GetTranslation("fileManagerPathNotFound"),
CustomExplorer.Name, CustomExplorer.Path),
App.API.GetTranslation("fileManagerPathError"),
MessageBoxButton.YesNo,
MessageBoxImage.Warning);
if (result == MessageBoxResult.No)
{
return false;
}
}
_settings.CustomExplorerList = CustomExplorers.ToList();
_settings.CustomExplorerIndex = SelectedCustomExplorerIndex;
return true;
}
private static bool IsFileManagerValid(string path)
{
if (string.Equals(path, "explorer", StringComparison.OrdinalIgnoreCase))
return true;
if (Path.IsPathRooted(path))
{
return File.Exists(path);
}
try
{
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "where",
Arguments = path,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
}
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return !string.IsNullOrEmpty(output);
}
catch
{
return false;
}
}
internal void OpenUrl(string absoluteUri)
{
App.API.OpenUrl(absoluteUri);
}
internal string SelectFile()
{
var dlg = new Microsoft.Win32.OpenFileDialog();
var result = dlg.ShowDialog();
if (result == true)
return dlg.FileName;
return string.Empty;
}
[RelayCommand]
private void Add()
{
CustomExplorers.Add(new()
{
Name = "New Profile"
});
SelectedCustomExplorerIndex = CustomExplorers.Count - 1;
}
[RelayCommand]
private void Delete()
{
var currentIndex = SelectedCustomExplorerIndex;
if (currentIndex >= 0 && currentIndex < CustomExplorers.Count)
{
CustomExplorers.RemoveAt(currentIndex);
SelectedCustomExplorerIndex = currentIndex > 0 ? currentIndex - 1 : 0;
}
}
}

View file

@ -1,4 +1,5 @@
using Flow.Launcher.Infrastructure.UserSettings;
using System;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin;
namespace Flow.Launcher.ViewModel;
@ -12,6 +13,28 @@ public partial class SettingWindowViewModel : BaseModel
_settings = settings;
}
public bool SetPageType(Type pageType)
{
if (_pageType == pageType) return false;
_pageType = pageType;
return true;
}
private Type _pageType = null;
public Type PageType
{
get => _pageType;
set
{
if (_pageType != value)
{
_pageType = value;
OnPropertyChanged();
}
}
}
public double SettingWindowWidth
{
get => _settings.SettingWindowWidth;

View file

@ -96,7 +96,7 @@ namespace Flow.Launcher
private void Window_Closed(object sender, EventArgs e)
{
// If app is exiting, settings save is not needed because main window closing event will handle this
if (App.Exiting) return;
if (App.LoadingOrExiting) return;
// Save settings when window is closed
_settings.Save();
}

View file

@ -4,7 +4,7 @@
"Name": "Browser Bookmarks",
"Description": "Search your browser bookmarks",
"Author": "qianlifeng, Ioannis G.",
"Version": "3.3.4",
"Version": "1.0.0",
"Language": "csharp",
"Website": "https://github.com/Flow-Launcher/Flow.Launcher",
"ExecuteFileName": "Flow.Launcher.Plugin.BrowserBookmark.dll",

View file

@ -4,7 +4,7 @@
"Name": "Calculator",
"Description": "Provide mathematical calculations.(Try 5*3-2 in Flow Launcher)",
"Author": "cxfksword",
"Version": "3.1.5",
"Version": "1.0.0",
"Language": "csharp",
"Website": "https://github.com/Flow-Launcher/Flow.Launcher",
"ExecuteFileName": "Flow.Launcher.Plugin.Calculator.dll",

View file

@ -199,10 +199,10 @@ namespace Flow.Launcher.Plugin.Explorer
{
if (Context.API.ShowMsgBox(
string.Format(Context.API.GetTranslation("plugin_explorer_delete_folder_link"), record.FullPath),
string.Empty,
MessageBoxButton.YesNo,
Context.API.GetTranslation("plugin_explorer_deletefilefolder"),
MessageBoxButton.OKCancel,
MessageBoxImage.Warning)
== MessageBoxResult.No)
== MessageBoxResult.Cancel)
return false;
if (isFile)

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">الحجم</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">تاريخ الإنشاء</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">تاريخ التعديل</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">عرض معلومات الملف</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">تنسيق التاريخ والوقت</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">خيارات الترتيب:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">نسخ المسار</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">نسخ مسار العنصر الحالي إلى الحافظة</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">نسخ</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">نسخ الملف الحالي إلى الحافظة</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">نسخ المجلد الحالي إلى الحافظة</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">عرض قائمة السياق الأصلية (تجريبي)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">أدناه يمكنك تحديد العناصر التي تريد تضمينها في قائمة السياق، يمكن أن تكون جزئية (على سبيل المثال 'pen wit') أو كاملة ('فتح بواسطة').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">يمكنك أدناه تحديد العناصر التي تريد استبعادها من قائمة الضغط الأيمن، يمكن أن تكون جزئية (على سبيل المثال، 'pen wit') أو كاملة ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Velikost</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Datum vytvoření</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Datum změny</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Možnosti řazení:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Kopírovat cestu</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Zkopírovat cestu k aktuální položce do schránky</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopírovat</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Kopírovat aktuální soubor do schránky</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Kopírovat aktuální složku do schránky</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Size</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date Created</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date Modified</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copy</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Größe</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Erstellungsdatum</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Änderungsdatum</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Datei-Info anzeigen</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Datums- und Zeitformat</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sortieroption:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Pfad kopieren</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Pfad des aktuellen Elements in Zwischenablage kopieren</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopieren</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Aktuelle Datei in Zwischenablage kopieren</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Aktuellen Ordner in Zwischenablage kopieren</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Natives Kontextmenü anzeigen (experimentell)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Unten können Sie die Elemente angeben, die Sie in das Kontextmenü aufnehmen möchten. Diese können partiell (z. B. „Stift mit“) oder vollständig („Öffnen mit“) sein.</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Unten können Sie die Elemente angeben, die Sie aus dem Kontextmenü ausschließen möchten. Diese können partiell (z. B. „Stift mit“) oder vollständig („Öffnen mit“) sein.</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -33,6 +33,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Size</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date Created</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date Modified</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -166,4 +167,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Size</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Fecha de creación</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Fecha de modificación</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copy</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Tamaño</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Fecha de creación</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Fecha de modificación</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">Edad del archivo</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Mostrar información del archivo</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Formato de fecha y hora</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Ordenar por:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copiar ruta</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copia la ruta del elemento actual al portapapeles</system:String>
<system:String x:Key="plugin_explorer_copyname">Copiar nombre</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copiar nombre del elemento actual al portapapeles</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copiar</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copia el archivo actual al portapapeles</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copia la carpeta actual al portapapeles</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Mostrar menú contextual nativo (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">En el siguiente cuadro puede especificar los elementos que desea incluir en el menú contextual, puede describirlos de forma parcial (p. ej., 'brir co') o completa ('Abrir con').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">En el siguiente cuadro puede especificar los elementos que desea excluir en el menú contextual, puede describirlos de forma parcial (p. ej., 'brir co') o completa ('Abrir con').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Hoy</system:String>
<system:String x:Key="DaysAgo">Hace {0} días</system:String>
<system:String x:Key="OneMonthAgo">Hace 1 mes</system:String>
<system:String x:Key="MonthsAgo">Hace {0} meses</system:String>
<system:String x:Key="OneYearAgo">Hace 1 año</system:String>
<system:String x:Key="YearsAgo">Hace {0} años</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Taille</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date de création</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date de modification</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">Âge du fichier</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Afficher les informations du fichier</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Format de la date et de l'heure</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Option de tri :</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copier le chemin</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copier le chemin de l'élément actuel dans le presse-papiers</system:String>
<system:String x:Key="plugin_explorer_copyname">Copier le nom</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copier le nom de l'élément actuel dans le presse-papiers</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copier</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copier le fichier actuel dans le presse-papiers</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copier le dossier actuel dans le presse-papiers</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Afficher le menu contextuel natif (expérimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Ci-dessous, vous pouvez spécifier les éléments que vous souhaitez inclure dans le menu contextuel. Ils peuvent être partiels ('pen wit') ou complets ('Ouvrir avec').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Vous pouvez spécifier ci-dessous les éléments que vous souhaitez exclure du menu contextuel. Ces éléments peuvent être partiels (par exemple, &quot;pen wit&quot;) ou complets (&quot;Ouvrir avec&quot;).</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Aujourdhui</system:String>
<system:String x:Key="DaysAgo">Il y a {0} jours</system:String>
<system:String x:Key="OneMonthAgo">il y a 1 mois</system:String>
<system:String x:Key="MonthsAgo">Il y a {0} mois</system:String>
<system:String x:Key="OneYearAgo">il y a 1 an</system:String>
<system:String x:Key="YearsAgo">Il y a {0} ans</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">גודל</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">תאריך יצירה</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">תאריך שינוי</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">גיל הקובץ</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">הצגת מידע על קובץ</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">תבנית תאריך ושעה</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">אפשרות מיון:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">העתק נתיב</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">העתק את הנתיב של הפריט הנוכחי ללוח</system:String>
<system:String x:Key="plugin_explorer_copyname">העתק שם</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">העתק את שם הפריט הנוכחי ללוח</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">העתק</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">העתק את הקובץ הנוכחי ללוח</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">העתק את התיקייה הנוכחית ללוח</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">הצג תפריט הקשר מקורי (ניסיוני)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">כאן תוכל להגדיר פריטים שברצונך לכלול בתפריט ההקשר, הם יכולים להיות חלקיים (למשל 'pen wit') או שלמים ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">כאן תוכל להגדיר פריטים שברצונך להחריג מתפריט ההקשר, הם יכולים להיות חלקיים (למשל 'pen wit') או שלמים ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">היום</system:String>
<system:String x:Key="DaysAgo">לפני {0} ימים</system:String>
<system:String x:Key="OneMonthAgo">לפני חודש אחד</system:String>
<system:String x:Key="MonthsAgo">לפני {0} חודשים</system:String>
<system:String x:Key="OneYearAgo">לפני שנה אחת</system:String>
<system:String x:Key="YearsAgo">לפני {0} שנים</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Dimensioni</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Data di creazione</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Data della modifica</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Visualizza Informazioni File</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Formato data e ora</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Opzioni di ordinamento:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copia percorso</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copia negli appunti il percorso dell'elemento corrente</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copia</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copia file corrente negli appunti</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copia cartella corrente negli appunti</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Visualizza il menu contestuale nativo (sperimentale)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Sotto si può specificare elementi che si vuole includere nel menu contestuale, che possono essere parziali (es 'pri co') o completi ('Apri con').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">サイズ</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">作成日時</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">更新日時</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">ファイル情報の表示</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">日付と時刻の形式</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">パスをコピー</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">現在の項目のパスをコピー</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">コピー</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">現在のファイルをコピー</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">現在のフォルダーをコピー</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">크기</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">만든 날짜</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">수정한 날짜</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">파일 정보 표시</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">시간과 날짜 형식</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">정렬 옵션:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">경로 복사</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">이 항목의 경로를 클립보드에 복사</system:String>
<system:String x:Key="plugin_explorer_copyname">이름 복사</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">이 항목의 이름을 클립보드에 복사</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">복사하기</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">이 파일을 클립보드에 복사</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">이 파일을 클립보드에 복사</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Størrelse</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Dato opprettet</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Dato endret</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Vis filinfo</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Dato- og klokkeslettformat</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Alternativ for sortering:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Kopier sti</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Kopier sti til gjeldende element til utklippstavlen</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopier</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Kopier gjeldende fil til utklippstavlen</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Kopier gjeldende mappe til utklippstavlen</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Vis opprinnelig hurtigmeny (eksperimentell)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Nedenfor kan du spesifisere elementer du vil inkludere i hurtigtmenyen, de kan være delvise (f.eks. 'pne me') eller komplette ('Åpne med').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Nedenfor kan du spesifisere elementer du vil ekskludere fra hurtigtmenyen, de kan være delvise (f.eks. 'pne me') eller komplette ('Åpne med').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Grootte</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Datum aangemaakt</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Datum gewijzigd</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Bestandsinformatie weergeven</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Formaat voor datum en tijd</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copy</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Rozmiar</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Data utworzenia</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Data modyfikacji</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Wyświetl informacje o pliku</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Format daty i czasu</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Opcje sortowania:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Skopiuj Ścieżkę</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Kopiuj ścieżkę bieżącego elementu do schowka</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopiuj</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Kopiuj bieżący plik do schowka</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Kopiuj bieżący folder do schowka</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Wyświetl natywne menu kontekstowe (eksperymentalne)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Poniżej możesz określić elementy, które chcesz uwzględnić w menu kontekstowym. Mogą być one częściowe (np. &quot;otw w&quot;) lub pełne (&quot;Otwórz za pomocą&quot;).</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Poniżej możesz określić elementy, które chcesz wykluczyć z menu kontekstowego. Mogą być one częściowe (np. &quot;otw w&quot;) lub pełne (&quot;Otwórz za pomocą&quot;).</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Tamanho</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date Created</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date Modified</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copiar</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Tamanho</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Data de criação</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Data de modificação</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">Antiguidade</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Mostrar informações do ficheiro</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Formato de data e de hora</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Ordenação:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copiar caminho</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copiar caminho do item atual para área de transferência</system:String>
<system:String x:Key="plugin_explorer_copyname">Copiar nome</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copiar nome do item para a área de transferência</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copiar</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copiar ficheiro atual para a área de transferência</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copiar pasta atual para a área de transferência</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Mostrar menu de contexto nativo (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Aqui pode especificar os itens a incluir no menu de contexto. Podem ser parciais (ex.: 'brir co') ou completos ('Abrir com').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Aqui pode especificar os itens a excluir do menu de contexto. Podem ser parciais (ex.: 'brir co') ou completos ('Abrir com').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Hoje</system:String>
<system:String x:Key="DaysAgo">Há {0} dias</system:String>
<system:String x:Key="OneMonthAgo">Há 1 mês</system:String>
<system:String x:Key="MonthsAgo">Há {0} meses</system:String>
<system:String x:Key="OneYearAgo">Há 1 ano</system:String>
<system:String x:Key="YearsAgo">Há {0} anos</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Размер</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date Created</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date Modified</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Скопировать путь</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Скопировать</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Veľkosť</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Dátum vytvorenia</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Dátum úpravy</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">Čas od vytvorenia</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Zobraziť informácie o súbore</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Formát dátumu a času</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Zoradenie:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Kopírovať cestu</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Skopírovať cestu k aktuálnej položke do schránky</system:String>
<system:String x:Key="plugin_explorer_copyname">Kopírovať názov</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Skopírovať názov aktuálnej položky do schránky</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopírovať</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Skopírovať aktuálny súbor do schránky</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Skopírovať aktuálny priečinok do schránky</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Zobraziť natívnu kontextovú ponuku (experimentálne)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Nižšie môžete určiť položky, ktoré chcete zahrnúť do kontextovej ponuky, môžu byť čiastočné (napr. &quot;tvoriť v program&quot;) alebo úplné (&quot;Otvoriť v programe&quot;).</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Nižšie môžete určiť položky, ktoré chcete vylúčiť z kontextovej ponuky, môžu byť čiastočné (napr. &quot;tvoriť v program&quot;) alebo úplné (&quot;Otvoriť v programe&quot;).</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Dnes</system:String>
<system:String x:Key="DaysAgo">pred {0} dňami</system:String>
<system:String x:Key="OneMonthAgo">pred mesiacom</system:String>
<system:String x:Key="MonthsAgo">pred {0} mesiacmi</system:String>
<system:String x:Key="OneYearAgo">pred rokom</system:String>
<system:String x:Key="YearsAgo">pred {0} rokmi</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Size</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Date Created</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Date Modified</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Display File Info</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Copy path</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Copy path of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Copy</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Copy current file to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Copy current folder to clipboard</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Boyut</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Oluşturma Tarihi</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Değiştirme Tarihi</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Dosya Özelliklerini Göster</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Tarih ve saat biçimi</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sıralama Seçeneği:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Yolu kopyala</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Mevcut dosya konumunu panoya kopyala</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Kopyala</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Mevcut dosyayı panoya kopyala</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Mevcut klasörü panoya kopyala</system:String>
@ -162,4 +165,12 @@
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Display native context menu (experimental)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Below you can specify items you want to include in the context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

View file

@ -31,6 +31,7 @@
<system:String x:Key="plugin_explorer_previewpanel_display_file_size_checkbox">Розмір</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_creation_checkbox">Дата створення</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_modification_checkbox">Дата останньої зміни</system:String>
<system:String x:Key="plugin_explorer_previewpanel_display_file_age_checkbox">File Age</system:String>
<system:String x:Key="plugin_explorer_previewpanel_file_info_label">Показати інформацію про файл</system:String>
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Формат дати й часу</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Варіант сортування:</system:String>
@ -80,6 +81,8 @@
<!-- Context menu items -->
<system:String x:Key="plugin_explorer_copypath">Копіювати шлях</system:String>
<system:String x:Key="plugin_explorer_copypath_subtitle">Копіювати шлях до поточного елемента в буфер обміну</system:String>
<system:String x:Key="plugin_explorer_copyname">Copy name</system:String>
<system:String x:Key="plugin_explorer_copyname_subtitle">Copy name of current item to clipboard</system:String>
<system:String x:Key="plugin_explorer_copyfilefolder">Копіювати</system:String>
<system:String x:Key="plugin_explorer_copyfile_subtitle">Копіювання поточного файлу в буфер обміну</system:String>
<system:String x:Key="plugin_explorer_copyfolder_subtitle">Копіювати поточну папку в буфер обміну</system:String>
@ -161,6 +164,13 @@
<system:String x:Key="plugin_explorer_native_context_menu_header">Рідне контекстне меню</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_display_context_menu">Відображати рідне контекстне меню (експериментально)</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_include_patterns_guide">Нижче ви можете вказати елементи, які хочете включити до контекстного меню, вони можуть бути частковими (наприклад, «шир пера») або повними («Відкрити за допомогою»).</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Нижче ви можете вказати елементи, які хочете виключити з контекстного меню, вони можуть бути частковими (наприклад, «шир пера») або повними («Відкрити за допомогою»).</system:String>
<system:String x:Key="plugin_explorer_native_context_menu_exclude_patterns_guide">Below you can specify items you want to exclude from context menu, they can be partial (e.g. 'pen wit') or complete ('Open with').</system:String>
<!-- Preview Info -->
<system:String x:Key="Today">Today</system:String>
<system:String x:Key="DaysAgo">{0} days ago</system:String>
<system:String x:Key="OneMonthAgo">1 month ago</system:String>
<system:String x:Key="MonthsAgo">{0} months ago</system:String>
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

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