diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
index 6037c100e..df962a675 100644
--- a/.github/workflows/spelling.yml
+++ b/.github/workflows/spelling.yml
@@ -34,12 +34,12 @@ name: Check Spelling
# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
on:
- push:
- branches:
- - '**'
- - '!l10n_dev'
- tags-ignore:
- - "**"
+# push:
+# branches:
+# - '**'
+# - '!l10n_dev'
+# tags-ignore:
+# - "**"
pull_request_target:
branches:
- '**'
@@ -65,7 +65,7 @@ jobs:
outputs:
followup: ${{ steps.spelling.outputs.followup }}
runs-on: ubuntu-latest
- if: (contains(github.event_name, 'pull_request') && github.head_ref != 'l10n_dev') || github.event_name == 'push'
+ if: (contains(github.event_name, 'pull_request') && github.head_ref != 'l10n_dev')
concurrency:
group: spelling-${{ github.event.pull_request.number || github.ref }}
# note: If you use only_check_changed_files, you do not want cancel-in-progress
@@ -103,21 +103,21 @@ jobs:
- comment-push:
- name: Report (Push)
- # If your workflow isn't running on push, you can remove this job
- runs-on: ubuntu-latest
- needs: spelling
- permissions:
- contents: write
- if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
- steps:
- - name: comment
- uses: check-spelling/check-spelling@main
- with:
- checkout: true
- spell_check_this: check-spelling/spell-check-this@main
- task: ${{ needs.spelling.outputs.followup }}
+# comment-push:
+# name: Report (Push)
+# # If your workflow isn't running on push, you can remove this job
+# runs-on: ubuntu-latest
+# needs: spelling
+# permissions:
+# contents: write
+# if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
+# steps:
+# - name: comment
+# uses: check-spelling/check-spelling@main
+# with:
+# checkout: true
+# spell_check_this: check-spelling/spell-check-this@main
+# task: ${{ needs.spelling.outputs.followup }}
comment-pr:
name: Report (PR)
diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml
index 35b624a2a..8fc179093 100644
--- a/Flow.Launcher/Languages/it.xaml
+++ b/Flow.Launcher/Languages/it.xaml
@@ -336,7 +336,7 @@
Indietro / Menu contestuale
Navigazione tra le voci
Apri il menu di scelta rapida
- Apri la cartella Contaning
+ Apri cartella superiore
Esegui come amministratore
Cronologia Query
Torna al risultato nel menu contestuale
diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml
index b19383e44..ed2760857 100644
--- a/Flow.Launcher/Languages/pt-pt.xaml
+++ b/Flow.Launcher/Languages/pt-pt.xaml
@@ -335,7 +335,7 @@ Queira por favor mover a pasta do seu perfil de {0} para {1}
Recuar/Menu de contexto
Navegação nos itens
Abrir menu de contexto
- Abrir pasta
+ Abrir pasta do resultado
Executar como administrador
Histórico de consultas
Voltar aos resultados no menu de contexto
diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml
index ec3ca684b..2bda02604 100644
--- a/Flow.Launcher/Languages/tr.xaml
+++ b/Flow.Launcher/Languages/tr.xaml
@@ -234,7 +234,7 @@
Arg For File
- Default Web Browser
+ Varsayılan İnternet Tarayıcısı
The default setting follows the OS default browser setting. If specified separately, flow uses that browser.
Browser
Browser Name
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/es.xaml
index 962f41708..3e174aa4e 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/es.xaml
@@ -89,9 +89,9 @@
Añadir al acceso rápido
Añade elemento actual al acceso rápido
Añadido/a correctamente
- Añadido/a correctamente al acceso rápido
+ Añadido correctamente al acceso rápido
Eliminado/a correctamente
- Eliminado/a correctamente del acceso rápido
+ Eliminado correctamente del acceso rápido
Añade al acceso rápido para que se pueda abrir con la palabra clave de acción que activa la búsqueda del explorador
Eliminar del acceso rápido
Eliminar del acceso rápido
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/sk.xaml
index bd93ece22..40f1fb80c 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/sk.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/sk.xaml
@@ -79,7 +79,7 @@
Otvoriť umiestnenie aktuálnej položky
Otvoriť v editore:
Nepodarilo sa otvoriť súbor {0} v editore {1} – {2}
- Otvori v príkazovom riadku:
+ Otvoriť v príkazovom riadku:
Nepodarilo sa otvoriť priečinok {0} v prostredí {1} – {2}
Vylúčiť položku a jej podpriečinky z indexu vyhľadávania
Vylúčiť z indexu vyhľadávania
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/da.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/da.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/da.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/da.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/de.xaml
index 43cb0328d..48f1fb754 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/de.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/de.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indikator
Stellt Vorschläge für Plugin-Befehle bereit
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es-419.xaml
index 8385355a9..2786e5c35 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es-419.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es-419.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Indicador de Plugins
Sugiere palabras clave de plugins
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es.xaml
index ef611c1ad..6ee0843cd 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/es.xaml
@@ -1,7 +1,9 @@
+ Activa {0} palabra clave de acción del complemento
+
Indicador de complementos
Proporciona sugerencias de palabras de acción para los complementos
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/fr.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/fr.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/fr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/fr.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/it.xaml
index 35e176367..9590cdf33 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/it.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/it.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Indicatore Plugin
Fornisce suggerimenti sulle parole d'azione dei plugin
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ja.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ja.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ja.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ja.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ko.xaml
index 328b63ced..41a4abfcf 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ko.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ko.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
플러그인 인디케이터
플러그인의 액션 키워드 제안을 제공합니다
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nb.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nb.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nb.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nb.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nl.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nl.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/nl.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pl.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pl.xaml
index c9d607b65..f8e3eb3ff 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pl.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Pokazuje podpowiedzi jakich zainstalowanych wtyczek możesz użyć
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-br.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-br.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-br.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-br.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-pt.xaml
index 355f709fa..057cb36aa 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-pt.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/pt-pt.xaml
@@ -1,7 +1,9 @@
+ Palavra-chave para ativar o plugin {0}
+
Plugin Indicador
Disponibiliza sugestões de palavras-chave para os plugins
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ru.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ru.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/ru.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sk.xaml
index 34548c30a..6b1083bfe 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sk.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sk.xaml
@@ -1,7 +1,9 @@
+ Aktivovať plugin {0} aktivačným príkazom
+
Plugin Indicator
Ponúka návrhy pre akcie pluginov
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sr.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sr.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/sr.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/tr.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/tr.xaml
index 9196c9e75..f7f4d8d76 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/tr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/tr.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Eklenti Göstergesi
Eklenti eylemleri hakkında kelime önerileri sunar
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/uk-UA.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/uk-UA.xaml
index 985aa6920..893948d3d 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/uk-UA.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/uk-UA.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
Plugin Indicator
Provides plugins action words suggestions
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-cn.xaml
index 81d413847..9abaed7c4 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-cn.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-cn.xaml
@@ -1,7 +1,9 @@
+ 激活 {0} 插件的关键字
+
插件关键词提示
提供插件关键词搜索提示
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-tw.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-tw.xaml
index a25bf1d0c..0c6477a34 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-tw.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/zh-tw.xaml
@@ -1,7 +1,9 @@
+ Activate {0} plugin action keyword
+
套件關鍵字提示
提供套件關鍵字搜尋提示
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.PluginsManager/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.PluginsManager/Languages/it.xaml
index 27e5918c7..362fb41f3 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginsManager/Languages/it.xaml
+++ b/Plugins/Flow.Launcher.Plugin.PluginsManager/Languages/it.xaml
@@ -15,7 +15,7 @@
Impossibile trovare il file dei metadati plugin.json dal file zip estratto.
Errore: esiste già un plugin che ha la stessa o maggiore versione con {0}.
Errore durante l'installazione del plugin
- Errore durante il tentativo di installare {0}
+ Error occurred while trying to install {0}
Nessun aggiornamento disponibile
Tutti i plugin sono aggiornati
{0} da {1} {2}{3}Vuoi aggiornare questo plugin? Dopo l'aggiornamento, Flow si riavvierà automaticamente.
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/da.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/da.xaml
index a059b7259..905f7e787 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/da.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/da.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
@@ -79,7 +79,7 @@
Customized Explorer
Args
- You can customized the explorer used for opening the container folder by inputting the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is available.
+ You can customized the explorer used for opening the container folder by inputing the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is available.
Enter the customized args you want to add for your customized explorer. %s for parent directory, %f for full path (which only works for win32). Check the explorer's website for details.
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/de.xaml
index 92433bf7d..bf844188e 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/de.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/de.xaml
@@ -53,7 +53,7 @@
Dateiendungen dürfen nicht leer sein
Protocols can't be empty
- Indexiere Dateiendungen
+ Indexiere Dateiendungen
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/es-419.xaml
index 3b1c593fa..4a18143bf 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/es-419.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/es-419.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
@@ -79,7 +79,7 @@
Customized Explorer
Args
- You can customized the explorer used for opening the container folder by inputting the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is avaliable.
+ You can customized the explorer used for opening the container folder by inputing the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is available.
Enter the customized args you want to add for your customized explorer. %s for parent directory, %f for full path (which only works for win32). Check the explorer's website for details.
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/es.xaml
index 61f595a95..4955c4ea2 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/es.xaml
@@ -53,7 +53,7 @@
Las extensiones de archivo no pueden estar vacías
Los protocolos no pueden estar vacíos
- Extensiones de archivo
+ Extensiones de archivo
Protocolos URL
Juegos Steam
Juegos Epic
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/fr.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/fr.xaml
index dd6187acb..2c03b733d 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/fr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/fr.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
@@ -79,7 +79,7 @@
Customized Explorer
Args
- You can customized the explorer used for opening the container folder by inputting the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is avaliable.
+ You can customized the explorer used for opening the container folder by inputing the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is available.
Enter the customized args you want to add for your customized explorer. %s for parent directory, %f for full path (which only works for win32). Check the explorer's website for details.
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/it.xaml
index e890b69cc..46a28f00a 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/it.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/it.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
@@ -79,7 +79,7 @@
Customized Explorer
Args
- You can customized the explorer used for opening the container folder by inputting the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is avaliable.
+ You can customized the explorer used for opening the container folder by inputing the Environmental Variable of the explorer you want to use. It will be useful to use CMD to test whether the Environmental Variable is available.
Enter the customized args you want to add for your customized explorer. %s for parent directory, %f for full path (which only works for win32). Check the explorer's website for details.
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/ja.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/ja.xaml
index bee3b6081..863735769 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/ja.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/ja.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- Index file suffixes
+ Index file suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/ko.xaml
index bcd03812d..9741a7fe2 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/ko.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/ko.xaml
@@ -53,7 +53,7 @@
파일 확장자는 비울 수 없습니다
Protocols can't be empty
- 파일 확장자
+ 파일 확장자
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/nb.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/nb.xaml
index adb3c14c2..e62854305 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/nb.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/nb.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/nl.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/nl.xaml
index 9c0376277..3c3b20afd 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/nl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/nl.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/pl.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/pl.xaml
index 3ec2c49c9..c46a92006 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/pl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/pl.xaml
@@ -53,7 +53,7 @@
Musisz podać rozszerzenia plików
Protocols can't be empty
- Rozszerzenia indeksowanych plików
+ Rozszerzenia indeksowanych plików
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-br.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-br.xaml
index c1852aeb9..f9cbcb9f9 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-br.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-br.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-pt.xaml
index 743b380e9..669fe3182 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-pt.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/pt-pt.xaml
@@ -53,7 +53,7 @@
Não pode indicar sufixos vazios
Os protocolos não podem estar vazios
- Sufixos de ficheiros
+ Sufixos de ficheiros
Protocolos de URL
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/ru.xaml
index f8d28c5a8..d0ec4eee1 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/ru.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/ru.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/sk.xaml
index e017b58f9..ee62a823e 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/sk.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/sk.xaml
@@ -53,7 +53,7 @@
Pole s príponami nemôže byť prázdne
Protokoly musia byť vyplnené
- Prípony súborov
+ Prípony súborov
Protokoly URL
Hry v službe Steam
Hry v službe Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/sr.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/sr.xaml
index a81d64415..f77bce039 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/sr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/sr.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/tr.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/tr.xaml
index a13543483..3d1f087f2 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/tr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/tr.xaml
@@ -53,7 +53,7 @@
Dosya uzantıları boş olamaz
Protocols can't be empty
- İndekslenecek Uzantılar
+ İndekslenecek Uzantılar
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/uk-UA.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/uk-UA.xaml
index c645210fd..83062ce6e 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/uk-UA.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/uk-UA.xaml
@@ -53,7 +53,7 @@
File suffixes can't be empty
Protocols can't be empty
- File Suffixes
+ File Suffixes
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-cn.xaml
index b438dc9a1..3a6fbda5d 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-cn.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-cn.xaml
@@ -53,7 +53,7 @@
文件后缀不能为空
协议不能为空
- 文件后缀
+ 文件后缀
URL 协议
Steam 游戏
Epic 游戏
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-tw.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-tw.xaml
index 1bfa9465e..d27b5f78f 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-tw.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/zh-tw.xaml
@@ -53,7 +53,7 @@
副檔名不能為空
Protocols can't be empty
- 索引副檔名清單
+ 索引副檔名清單
URL Protocols
Steam Games
Epic Games
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLinkHelper.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLinkHelper.cs
index b93fb23c9..78c66d604 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLinkHelper.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLinkHelper.cs
@@ -3,6 +3,7 @@ using System.Text;
using System.Runtime.InteropServices;
using Accessibility;
using System.Runtime.InteropServices.ComTypes;
+using Flow.Launcher.Plugin.Program.Logger;
namespace Flow.Launcher.Plugin.Program.Programs
{
@@ -119,9 +120,19 @@ namespace Flow.Launcher.Plugin.Program.Programs
// To set the app description
if (!String.IsNullOrEmpty(target))
{
- buffer = new StringBuilder(MAX_PATH);
- ((IShellLinkW)link).GetDescription(buffer, MAX_PATH);
- description = buffer.ToString();
+ try
+ {
+ buffer = new StringBuilder(MAX_PATH);
+ ((IShellLinkW)link).GetDescription(buffer, MAX_PATH);
+ description = buffer.ToString();
+ }
+ catch (COMException e)
+ {
+ // C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\MiracastView.lnk always cause exception
+ ProgramLogger.LogException($"|IShellLinkW|retrieveTargetPath|{path}" +
+ "|Error caused likely due to trying to get the description of the program",
+ e);
+ }
buffer.Clear();
((IShellLinkW)link).GetArguments(buffer, MAX_PATH);
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs
new file mode 100644
index 000000000..4f344d89e
--- /dev/null
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs
@@ -0,0 +1,92 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Text;
+
+
+namespace Flow.Launcher.Plugin.Program.Programs
+{
+ // From PT Run
+ ///
+ /// Class to get localized name of shell items like 'My computer'. The localization is based on the 'windows display language'.
+ /// Reused code from https://stackoverflow.com/questions/41423491/how-to-get-localized-name-of-known-folder for the method
+ ///
+ public static class ShellLocalization
+ {
+ internal const uint DONTRESOLVEDLLREFERENCES = 0x00000001;
+ internal const uint LOADLIBRARYASDATAFILE = 0x00000002;
+
+ [DllImport("shell32.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)]
+ internal static extern int SHGetLocalizedName(string pszPath, StringBuilder pszResModule, ref int cch, out int pidsRes);
+
+ [DllImport("user32.dll", EntryPoint = "LoadStringW", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)]
+ internal static extern int LoadString(IntPtr hModule, int resourceID, StringBuilder resourceValue, int len);
+
+ [DllImport("kernel32.dll", CharSet = CharSet.Unicode, ExactSpelling = true, EntryPoint = "LoadLibraryExW")]
+ internal static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, uint dwFlags);
+
+ [DllImport("kernel32.dll", ExactSpelling = true)]
+ internal static extern int FreeLibrary(IntPtr hModule);
+
+ [DllImport("kernel32.dll", EntryPoint = "ExpandEnvironmentStringsW", CharSet = CharSet.Unicode, ExactSpelling = true)]
+ internal static extern uint ExpandEnvironmentStrings(string lpSrc, StringBuilder lpDst, int nSize);
+
+ ///
+ /// Returns the localized name of a shell item.
+ ///
+ /// Path to the shell item (e. g. shortcut 'File Explorer.lnk').
+ /// The localized name as string or .
+ public static string GetLocalizedName(string path)
+ {
+ StringBuilder resourcePath = new StringBuilder(1024);
+ StringBuilder localizedName = new StringBuilder(1024);
+ int len, id;
+ len = resourcePath.Capacity;
+
+ // If there is no resource to localize a file name the method returns a non zero value.
+ if (SHGetLocalizedName(path, resourcePath, ref len, out id) == 0)
+ {
+ _ = ExpandEnvironmentStrings(resourcePath.ToString(), resourcePath, resourcePath.Capacity);
+ IntPtr hMod = LoadLibraryEx(resourcePath.ToString(), IntPtr.Zero, DONTRESOLVEDLLREFERENCES | LOADLIBRARYASDATAFILE);
+ if (hMod != IntPtr.Zero)
+ {
+ if (LoadString(hMod, id, localizedName, localizedName.Capacity) != 0)
+ {
+ string lString = localizedName.ToString();
+ _ = FreeLibrary(hMod);
+ return lString;
+ }
+
+ _ = FreeLibrary(hMod);
+ }
+ }
+
+ return string.Empty;
+ }
+
+ ///
+ /// This method returns the localized path to a shell item (folder or file)
+ ///
+ /// The path to localize
+ /// The localized path or the original path if localized version is not available
+ public static string GetLocalizedPath(string path)
+ {
+ path = Environment.ExpandEnvironmentVariables(path);
+ string ext = Path.GetExtension(path);
+ var pathParts = path.Split("\\");
+ string[] locPath = new string[pathParts.Length];
+
+ for (int i = 0; i < pathParts.Length; i++)
+ {
+ int iElements = i + 1;
+ string lName = GetLocalizedName(string.Join("\\", pathParts[..iElements]));
+ locPath[i] = !string.IsNullOrEmpty(lName) ? lName : pathParts[i];
+ }
+
+ string newPath = string.Join("\\", locPath);
+ newPath = !newPath.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase) ? newPath + ext : newPath;
+
+ return newPath;
+ }
+ }
+}
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
index b1ec70068..2f84fdbf5 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
@@ -249,24 +249,24 @@ namespace Flow.Launcher.Plugin.Program.Programs
private static IEnumerable CurrentUserPackages()
{
- var u = WindowsIdentity.GetCurrent().User;
+ var user = WindowsIdentity.GetCurrent().User;
- if (u != null)
+ if (user != null)
{
- var id = u.Value;
- PackageManager m;
+ var userId = user.Value;
+ PackageManager packageManager;
try
{
- m = new PackageManager();
+ packageManager = new PackageManager();
}
catch
{
// Bug from https://github.com/microsoft/CsWinRT, using Microsoft.Windows.SDK.NET.Ref 10.0.19041.0.
// Only happens on the first time, so a try catch can fix it.
- m = new PackageManager();
+ packageManager = new PackageManager();
}
- var ps = m.FindPackagesForUser(id);
- ps = ps.Where(p =>
+ var packages = packageManager.FindPackagesForUser(userId);
+ packages = packages.Where(p =>
{
try
{
@@ -277,12 +277,12 @@ namespace Flow.Launcher.Plugin.Program.Programs
}
catch (Exception e)
{
- ProgramLogger.LogException("UWP", "CurrentUserPackages", $"{id}", "An unexpected error occurred and "
+ ProgramLogger.LogException("UWP", "CurrentUserPackages", $"{p.Id.FullName}", "An unexpected error occurred and "
+ $"unable to verify if package is valid", e);
return false;
}
});
- return ps;
+ return packages;
}
else
{
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
index 3373948a3..dec43530e 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs
@@ -23,7 +23,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
public class Win32 : IProgram, IEquatable
{
public string Name { get; set; }
- public string UniqueIdentifier { get => _uid; set => _uid = value == null ? string.Empty : value.ToLowerInvariant(); } // For path comparison
+ public string UniqueIdentifier { get => _uid; set => _uid = value == null ? string.Empty : value.ToLowerInvariant(); } // For path comparison
public string IcoPath { get; set; }
///
/// Path of the file. It's the path of .lnk and .url for .lnk and .url files.
@@ -34,16 +34,22 @@ namespace Flow.Launcher.Plugin.Program.Programs
///
public string LnkResolvedPath { get; set; }
///
- /// Path of the actual executable file.
+ /// Path of the actual executable file. Args are included.
///
public string ExecutablePath => LnkResolvedPath ?? FullPath;
public string ParentDirectory { get; set; }
+ ///
+ /// Name of the executable for .lnk files
+ ///
public string ExecutableName { get; set; }
public string Description { get; set; }
public bool Valid { get; set; }
public bool Enabled { get; set; }
public string Location => ParentDirectory;
+ // Localized name based on windows display language
+ public string LocalizedName { get; set; } = string.Empty;
+
private const string ShortcutExtension = "lnk";
private const string UrlExtension = "url";
private const string ExeExtension = "exe";
@@ -63,48 +69,90 @@ namespace Flow.Launcher.Plugin.Program.Programs
Enabled = false
};
+ private static MatchResult Match(string query, IReadOnlyCollection candidates)
+ {
+ if (candidates.Count == 0)
+ return null;
+
+ var match = candidates.Select(candidate => StringMatcher.FuzzySearch(query, candidate))
+ .MaxBy(match => match.Score);
+
+ return match?.IsSearchPrecisionScoreMet() ?? false ? match : null;
+ }
public Result Result(string query, IPublicAPI api)
{
string title;
MatchResult matchResult;
- // We suppose Name won't be null
- if (!Main._settings.EnableDescription || Description == null || Name.StartsWith(Description))
+ // Name of the result
+ // Check equality to avoid matching again in candidates
+ bool useLocalizedName = !string.IsNullOrEmpty(LocalizedName) && !Name.Equals(LocalizedName);
+ string resultName = useLocalizedName ? LocalizedName : Name;
+
+ if (!Main._settings.EnableDescription)
{
- title = Name;
- matchResult = StringMatcher.FuzzySearch(query, title);
- }
- else if (Description.StartsWith(Name))
- {
- title = Description;
- matchResult = StringMatcher.FuzzySearch(query, Description);
+ title = resultName;
+ matchResult = StringMatcher.FuzzySearch(query, resultName);
}
else
{
- title = $"{Name}: {Description}";
- var nameMatch = StringMatcher.FuzzySearch(query, Name);
- var descriptionMatch = StringMatcher.FuzzySearch(query, Description);
- if (descriptionMatch.Score > nameMatch.Score)
+ if (string.IsNullOrEmpty(Description) || resultName.StartsWith(Description))
{
- for (int i = 0; i < descriptionMatch.MatchData.Count; i++)
- {
- descriptionMatch.MatchData[i] += Name.Length + 2; // 2 is ": "
- }
- matchResult = descriptionMatch;
+ // Description is invalid or included in resultName
+ // Description is always localized, so Name.StartsWith(Description) is generally useless
+ title = resultName;
+ matchResult = StringMatcher.FuzzySearch(query, resultName);
+ }
+ else if (Description.StartsWith(resultName))
+ {
+ // resultName included in Description
+ title = Description;
+ matchResult = StringMatcher.FuzzySearch(query, Description);
+ }
+ else
+ {
+ // Search in both
+ title = $"{resultName}: {Description}";
+ var nameMatch = StringMatcher.FuzzySearch(query, resultName);
+ var descriptionMatch = StringMatcher.FuzzySearch(query, Description);
+ if (descriptionMatch.Score > nameMatch.Score)
+ {
+ for (int i = 0; i < descriptionMatch.MatchData.Count; i++)
+ {
+ descriptionMatch.MatchData[i] += resultName.Length + 2; // 2 is ": "
+ }
+ matchResult = descriptionMatch;
+ }
+ else
+ {
+ matchResult = nameMatch;
+ }
}
- else matchResult = nameMatch;
}
+ List candidates = new List();
+
if (!matchResult.IsSearchPrecisionScoreMet())
{
if (ExecutableName != null) // only lnk program will need this one
- matchResult = StringMatcher.FuzzySearch(query, ExecutableName);
-
- if (!matchResult.IsSearchPrecisionScoreMet())
+ {
+ candidates.Add(ExecutableName);
+ }
+ if (useLocalizedName)
+ {
+ candidates.Add(Name);
+ }
+ matchResult = Match(query, candidates);
+ if (matchResult == null)
+ {
return null;
-
- matchResult.MatchData = new List();
+ }
+ else
+ {
+ // Nothing to highlight in title in this case
+ matchResult.MatchData.Clear();
+ }
}
string subtitle = string.Empty;
@@ -267,51 +315,40 @@ namespace Flow.Launcher.Plugin.Program.Programs
ShellLinkHelper _helper = new ShellLinkHelper();
string target = _helper.retrieveTargetPath(path);
- if (!string.IsNullOrEmpty(target))
+ if (!string.IsNullOrEmpty(target) && File.Exists(target))
{
- var extension = Extension(target);
- if (extension == ExeExtension && File.Exists(target))
+ program.LnkResolvedPath = Path.GetFullPath(target);
+ program.ExecutableName = Path.GetFileName(target);
+
+ var args = _helper.arguments;
+ if (!string.IsNullOrEmpty(args))
{
- program.LnkResolvedPath = Path.GetFullPath(target);
- program.ExecutableName = Path.GetFileName(target);
+ program.LnkResolvedPath += " " + args;
+ }
- var args = _helper.arguments;
- if(!string.IsNullOrEmpty(args))
+ var description = _helper.description;
+ if (!string.IsNullOrEmpty(description))
+ {
+ program.Description = description;
+ }
+ else
+ {
+ var info = FileVersionInfo.GetVersionInfo(target);
+ if (!string.IsNullOrEmpty(info.FileDescription))
{
- program.LnkResolvedPath += " " + args;
- }
-
- var description = _helper.description;
- if (!string.IsNullOrEmpty(description))
- {
- program.Description = description;
- }
- else
- {
- var info = FileVersionInfo.GetVersionInfo(target);
- if (!string.IsNullOrEmpty(info.FileDescription))
- {
- program.Description = info.FileDescription;
- }
+ program.Description = info.FileDescription;
}
}
}
- return program;
- }
- catch (COMException e)
- {
- // C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\MiracastView.lnk always cause exception
- ProgramLogger.LogException($"|Win32|LnkProgram|{path}" +
- "|Error caused likely due to trying to get the description of the program",
- e);
+ program.LocalizedName = ShellLocalization.GetLocalizedName(path);
- return Default;
+ return program;
}
catch (FileNotFoundException e)
{
ProgramLogger.LogException($"|Win32|LnkProgram|{path}" +
- "|An unexpected error occurred in the calling method LnkProgram", e);
+ "|An unexpected error occurred in the calling method LnkProgram", e);
return Default;
}
@@ -378,7 +415,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
catch (FileNotFoundException e)
{
ProgramLogger.LogException($"|Win32|ExeProgram|{path}" +
- $"|File not found when trying to load the program from {path}", e);
+ $"|File not found when trying to load the program from {path}", e);
return Default;
}
@@ -398,8 +435,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
return Directory.EnumerateFiles(directory, "*", new EnumerationOptions
{
- IgnoreInaccessible = true,
- RecurseSubdirectories = recursive
+ IgnoreInaccessible = true, RecurseSubdirectories = recursive
}).Where(x => suffixes.Contains(Extension(x)));
}
@@ -408,7 +444,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
var extension = Path.GetExtension(path)?.ToLowerInvariant();
if (!string.IsNullOrEmpty(extension))
{
- return extension.Substring(1); // remove dot
+ return extension.Substring(1); // remove dot
}
else
{
@@ -420,7 +456,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
{
// Disabled custom sources are not in DisabledProgramSources
var paths = directories.AsParallel()
- .SelectMany(s => EnumerateProgramsInDir(s, suffixes));
+ .SelectMany(s => EnumerateProgramsInDir(s, suffixes));
// Remove disabled programs in DisabledProgramSources
var programs = ExceptDisabledSource(paths).Select(x => GetProgramFromPath(x, protocols));
@@ -452,8 +488,8 @@ namespace Flow.Launcher.Plugin.Program.Programs
var paths = pathEnv.Split(";", StringSplitOptions.RemoveEmptyEntries).DistinctBy(p => p.ToLowerInvariant());
var toFilter = paths.Where(x => commonParents.All(parent => !IsSubPathOf(x, parent)))
- .AsParallel()
- .SelectMany(p => EnumerateProgramsInDir(p, suffixes, recursive: false));
+ .AsParallel()
+ .SelectMany(p => EnumerateProgramsInDir(p, suffixes, recursive: false));
var programs = ExceptDisabledSource(toFilter.Distinct())
.Select(x => GetProgramFromPath(x, protocols));
@@ -483,7 +519,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
toFilter = toFilter.Distinct().Where(p => suffixes.Contains(Extension(p)));
var programs = ExceptDisabledSource(toFilter)
- .Select(x => GetProgramFromPath(x, protocols)).Where(x => x.Valid).ToList(); // ToList due to disposing issue
+ .Select(x => GetProgramFromPath(x, protocols)).Where(x => x.Valid).ToList(); // ToList due to disposing issue
return programs;
}
@@ -537,7 +573,8 @@ namespace Flow.Launcher.Plugin.Program.Programs
ExeExtension => ExeProgram(path),
UrlExtension => UrlProgram(path, protocols),
_ => Win32Program(path)
- }; ;
+ };
+ ;
}
public static IEnumerable ExceptDisabledSource(IEnumerable paths)
@@ -577,7 +614,6 @@ namespace Flow.Launcher.Plugin.Program.Programs
private static IEnumerable ProgramsHasher(IEnumerable programs)
{
- // TODO: Unable to distinguish multiple lnks to the same executable but with different params
return programs.GroupBy(p => p.ExecutablePath.ToLowerInvariant())
.AsParallel()
.SelectMany(g =>
@@ -748,10 +784,10 @@ namespace Flow.Launcher.Plugin.Program.Programs
{
var rel = Path.GetRelativePath(basePath, subPath);
return rel != "."
- && rel != ".."
- && !rel.StartsWith("../")
- && !rel.StartsWith(@"..\")
- && !Path.IsPathRooted(rel);
+ && rel != ".."
+ && !rel.StartsWith("../")
+ && !rel.StartsWith(@"..\")
+ && !Path.IsPathRooted(rel);
}
private static List GetCommonParents(IEnumerable programSources)
@@ -766,7 +802,7 @@ namespace Flow.Launcher.Plugin.Program.Programs
foreach (var source in group)
{
if (parents.Any(p => IsSubPathOf(source.Location, p.Location) &&
- source != p))
+ source != p))
{
parents.Remove(source);
}
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/es.xaml
index c72fcb7f3..1005e4b8f 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/es.xaml
@@ -32,7 +32,7 @@
¿Está seguro que desea apagar el equipo?
¿Está seguro que desea reiniciar el equipo?
¿Está seguro que desea reiniciar el equipo con opciones de arranque avanzadas?
- Are you sure you want to log off?
+ ¿Está seguro que desea cerrar la sesión?
Comandos del sistema
Proporciona comandos relacionados con el sistema. Por ejemplo, apagar, bloquear, configurar, etc.
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/pt-pt.xaml
index 76543aa4c..e53fd601d 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/pt-pt.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/pt-pt.xaml
@@ -32,7 +32,7 @@
Tem certeza de que deseja desligar o computador?
Tem a certeza que deseja reiniciar o computador?
Tem certeza de que deseja reiniciar o computador com as opções avançadas de arranque?
- Are you sure you want to log off?
+ Tem certeza de que deseja terminar a sessão?
Comandos do sistema
Disponibiliza os comandos relacionados com o sistema tais como: desligar, bloquear, reiniciar...
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/sk.xaml
index c9ed95c35..e0e3382a9 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/sk.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/sk.xaml
@@ -32,7 +32,7 @@
Naozaj chcete počítač vypnúť?
Naozaj chcete počítač reštartovať?
Naozaj chcete počítač reštartovať s pokročilými možnosťami spúšťania?
- Are you sure you want to log off?
+ Naozaj sa chcete odstrániť?
Systémové príkazy
Poskytuje príkazy súvisiace so systémom ako je vypnutie, uzamknutie počítača atď.
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/zh-cn.xaml
index c1174244a..50d556e98 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/zh-cn.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/zh-cn.xaml
@@ -32,7 +32,7 @@
您确定要关机吗?
您确定要重启吗
您确定要以高级启动选项重启计算机吗?
- Are you sure you want to log off?
+ 你确定要注销吗?
系统命令
系统系统相关的命令。例如,关机,锁定,设置等
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/da.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/da.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/da.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/da.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml
index 437f2c016..328482307 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml
@@ -6,7 +6,7 @@
New Tab
Öffne URL:{0}
- Kann URL nicht öffnen:{0}
+ Kann URL nicht öffnen:{0}
URL
Öffne eine eingegebene URL mit Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/es-419.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/es-419.xaml
index d17ba7fa5..66a1710ea 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/es-419.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/es-419.xaml
@@ -6,7 +6,7 @@
Nueva Pestaña
Abrir url:{0}
- No se puede abrir la url:{0}
+ Can't open url:{0}
URL
Abre la URL escrita desde Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/es.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/es.xaml
index ebac4dafd..fe83fa6f6 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/es.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/es.xaml
@@ -6,7 +6,7 @@
Nueva pestaña
Abrir url:{0}
- No se puede abrir la url:{0}
+ No se puede abrir la url:{0}
URL
Abre la URL escrita desde Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/fr.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/fr.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/fr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/fr.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/it.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/it.xaml
index 1b0ea4b62..1bed23b88 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/it.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/it.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/ja.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/ja.xaml
index 6727d6f79..532ff793d 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/ja.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/ja.xaml
@@ -6,7 +6,7 @@
New Tab
次のURLを開く:{0}
- 次のURLを開くことができません:{0}
+ 次のURLを開くことができません:{0}
URL
入力したURLをFlow Launcherから開くプラグインです。
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/ko.xaml
index e7e22d9aa..489a6d4b7 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/ko.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/ko.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Flow Launcher에 입력한 URL 열기
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/nb.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/nb.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/nb.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/nb.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/nl.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/nl.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/nl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/nl.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/pl.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/pl.xaml
index ff8359df3..8f1125d59 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/pl.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/pl.xaml
@@ -6,7 +6,7 @@
New Tab
Otwórz adres URL: {0}
- Nie udało się otworzyć adresu: {0}
+ Nie udało się otworzyć adresu: {0}
URL
Otwórz wpisany adres URL z poziomu Flow Launchera
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-br.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-br.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-br.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-br.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-pt.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-pt.xaml
index b94eb1f80..38d757721 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-pt.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/pt-pt.xaml
@@ -6,7 +6,7 @@
Novo separador
Abrir URL:{0}
- Impossível abrir URL:{0}
+ Não foi possível abrir o URL:{0}
URL
Abrir o URL no Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/ru.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/ru.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/ru.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/sk.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/sk.xaml
index 90151d44c..b2f2a018d 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/sk.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/sk.xaml
@@ -6,7 +6,7 @@
Nová karta
Otvoriť URL:{0}
- Adresa URL sa nedá otvoriť:{0}
+ Adresa URL sa nedá otvoriť:{0}
Adresa URL
Otvoriť zadanú adresu URL z Flow Launchera
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/sr.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/sr.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/sr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/sr.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/tr.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/tr.xaml
index cd44325c6..b8ae6a93c 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/tr.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/tr.xaml
@@ -6,7 +6,7 @@
New Tab
URL'yi Aç: {0}
- URL Açılamıyor: {0}
+ URL Açılamıyor: {0}
URL
Flow Launcher'a yazılan URL'leri açar
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/uk-UA.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/uk-UA.xaml
index 9997fa841..418731021 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/uk-UA.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/uk-UA.xaml
@@ -6,7 +6,7 @@
New Tab
Open url:{0}
- Can't open url:{0}
+ Can't open url:{0}
URL
Open the typed URL from Flow Launcher
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-cn.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-cn.xaml
index 103df5161..7d548e51a 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-cn.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-cn.xaml
@@ -6,7 +6,7 @@
新标签
打开链接:{0}
- 无法打开链接:{0}
+ 无法打开链接:{0}
打开链接
从 Flow Launcher 打开链接
diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-tw.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-tw.xaml
index 33a9264b7..bf64f3604 100644
--- a/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-tw.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/zh-tw.xaml
@@ -6,7 +6,7 @@
New Tab
開啟連結:{0}
- 無法開啟連結:{0}
+ 無法開啟連結:{0}
URL
從 Flow Launcher 開啟連結
diff --git a/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml b/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
index 57f763662..52cc648f7 100644
--- a/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
+++ b/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
@@ -9,7 +9,7 @@
Choose
삭제
편집
- 추
+ 추가
켬
Disabled
확인
diff --git a/Plugins/Flow.Launcher.Plugin.WindowsSettings/Properties/Resources.tr-TR.resx b/Plugins/Flow.Launcher.Plugin.WindowsSettings/Properties/Resources.tr-TR.resx
index 863a6a48e..49c4b7839 100644
--- a/Plugins/Flow.Launcher.Plugin.WindowsSettings/Properties/Resources.tr-TR.resx
+++ b/Plugins/Flow.Launcher.Plugin.WindowsSettings/Properties/Resources.tr-TR.resx
@@ -701,7 +701,7 @@
Area Gaming
- Game Mode
+ Oyun Modu
Area Gaming