diff --git a/src/Filee.App/Assets/i18n/ar.json b/src/Filee.App/Assets/i18n/ar.json
index 2e478d2ed..a59b45196 100644
--- a/src/Filee.App/Assets/i18n/ar.json
+++ b/src/Filee.App/Assets/i18n/ar.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. اختر ملف تعريف",
"toolbar.step_arrange": "2. رتّب الإعدادات المسبقة",
"toolbar.add_profile": "ملف تعريف جديد",
+ "toolbar.profile_up": "نقل ملف التعريف لأعلى",
+ "toolbar.profile_down": "نقل ملف التعريف لأسفل",
+ "toolbar.profile_order_hint": "إذا اشترك ملفا تعريف في امتداد واحد، فسيُفتح الأعلى منهما في القائمة. يَنقل Alt+↑ / Alt+↓ ملف التعريف المحدد.",
"toolbar.profile_new": "ملف تعريف جديد",
"toolbar.delete_profile": "حذف ملف التعريف",
"toolbar.reset_profile": "استعادة الافتراضي",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "الامتداد {0} موجود في القائمة بالفعل.",
"toolbar.ext_also_in": "موجود أيضًا في «{0}»",
"toolbar.ext_in_profile": "في {0}",
- "toolbar.ext_claimed_first": "{0}: موجود أيضًا في «{1}»، وهو أسبق في القائمة، لذلك ما زالت هذه الملفات تفتح «{1}».",
+ "toolbar.ext_claimed_first": "{0}: موجود أيضًا في «{1}»، وهو أسبق في القائمة، لذلك ما زالت هذه الملفات تفتح «{1}». انقل ملف التعريف هذا فوق «{1}» لتُفتح هنا.",
"toolbar.ext_claimed_later": "{0}: موجود أيضًا في «{1}».\nملف التعريف هذا أسبق في القائمة، لذلك ستفتح هذه الملفات هذا الملف الآن.",
"toolbar.ext_unknown": "{0}: لا يعرف Filee نوع الملف هذا.\nيمكنك الاحتفاظ به، لكن لا يمكن تحويل هذه الملفات.",
"toolbar.ext_unknown_tip": "نوع ملف غير معروف",
diff --git a/src/Filee.App/Assets/i18n/de.json b/src/Filee.App/Assets/i18n/de.json
index bd6d41814..daefc0bec 100644
--- a/src/Filee.App/Assets/i18n/de.json
+++ b/src/Filee.App/Assets/i18n/de.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. Profil auswählen",
"toolbar.step_arrange": "2. Vorlagen anordnen",
"toolbar.add_profile": "Neues Profil",
+ "toolbar.profile_up": "Profil nach oben",
+ "toolbar.profile_down": "Profil nach unten",
+ "toolbar.profile_order_hint": "Haben zwei Profile dieselbe Endung, öffnet das obere. Alt+↑ / Alt+↓ verschiebt das ausgewählte Profil.",
"toolbar.profile_new": "Neues Profil",
"toolbar.delete_profile": "Profil löschen",
"toolbar.reset_profile": "Auf Standard zurücksetzen",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} steht bereits in der Liste.",
"toolbar.ext_also_in": "Auch in „{0}“",
"toolbar.ext_in_profile": "in {0}",
- "toolbar.ext_claimed_first": "{0}: auch in „{1}“. Dieses Profil steht weiter oben in der Liste, daher öffnen diese Dateien weiterhin „{1}“.",
+ "toolbar.ext_claimed_first": "{0}: auch in „{1}“. „{1}“ steht weiter oben in der Liste, daher öffnen diese Dateien weiterhin „{1}“. Schiebe dieses Profil darüber, damit sie hier geöffnet werden.",
"toolbar.ext_claimed_later": "{0}: auch in „{1}“.\nDieses Profil steht weiter oben in der Liste, daher öffnen diese Dateien jetzt dieses Profil.",
"toolbar.ext_unknown": "{0}: Filee kennt diesen Dateityp nicht.\nDu kannst ihn behalten, die Dateien lassen sich jedoch nicht konvertieren.",
"toolbar.ext_unknown_tip": "Unbekannter Dateityp",
diff --git a/src/Filee.App/Assets/i18n/en.json b/src/Filee.App/Assets/i18n/en.json
index f41855faa..039fbef45 100644
--- a/src/Filee.App/Assets/i18n/en.json
+++ b/src/Filee.App/Assets/i18n/en.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Choose a profile",
"toolbar.step_arrange": "2. Arrange presets",
"toolbar.add_profile": "New profile",
+ "toolbar.profile_up": "Move profile up",
+ "toolbar.profile_down": "Move profile down",
+ "toolbar.profile_order_hint": "When two profiles share an extension, the higher one opens. Alt+↑ / Alt+↓ moves the selected profile.",
"toolbar.profile_new": "New profile",
"toolbar.delete_profile": "Delete profile",
"toolbar.reset_profile": "Reset to default",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} is already in the list.",
"toolbar.ext_also_in": "Also in “{0}”",
"toolbar.ext_in_profile": "in {0}",
- "toolbar.ext_claimed_first": "{0}: also in “{1}”, which comes first in the list, so these files still open “{1}”.",
+ "toolbar.ext_claimed_first": "{0}: also in “{1}”, which comes first in the list, so these files still open “{1}”. Move this profile above “{1}” to open them here.",
"toolbar.ext_claimed_later": "{0}: also in “{1}”.\nThis profile comes first in the list, so these files now open this one instead.",
"toolbar.ext_unknown": "{0}: Filee doesn't know this file type.\nYou can keep it, but these files can't be converted.",
"toolbar.ext_unknown_tip": "Unknown file type",
diff --git a/src/Filee.App/Assets/i18n/es.json b/src/Filee.App/Assets/i18n/es.json
index 18f3d58d9..5ed50a700 100644
--- a/src/Filee.App/Assets/i18n/es.json
+++ b/src/Filee.App/Assets/i18n/es.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. Elige un perfil",
"toolbar.step_arrange": "2. Coloca los ajustes preestablecidos",
"toolbar.add_profile": "Nuevo perfil",
+ "toolbar.profile_up": "Subir perfil",
+ "toolbar.profile_down": "Bajar perfil",
+ "toolbar.profile_order_hint": "Si dos perfiles comparten una extensión, se abre el que está más arriba. Alt+↑ / Alt+↓ mueve el perfil seleccionado.",
"toolbar.profile_new": "Nuevo perfil",
"toolbar.delete_profile": "Eliminar perfil",
"toolbar.reset_profile": "Restablecer perfil",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} ya está en la lista.",
"toolbar.ext_also_in": "También en «{0}»",
"toolbar.ext_in_profile": "en {0}",
- "toolbar.ext_claimed_first": "{0}: también en «{1}», que va antes en la lista, así que estos archivos siguen abriendo «{1}».",
+ "toolbar.ext_claimed_first": "{0}: también en «{1}», que va antes en la lista, así que estos archivos siguen abriendo «{1}». Sube este perfil por encima de «{1}» para que se abran aquí.",
"toolbar.ext_claimed_later": "{0}: también en «{1}».\nEste perfil va antes en la lista, así que ahora estos archivos abren este en su lugar.",
"toolbar.ext_unknown": "{0}: Filee no conoce este tipo de archivo.\nPuedes conservarlo, pero estos archivos no se pueden convertir.",
"toolbar.ext_unknown_tip": "Tipo de archivo desconocido",
diff --git a/src/Filee.App/Assets/i18n/fr.json b/src/Filee.App/Assets/i18n/fr.json
index c5d243b5e..a9049faff 100644
--- a/src/Filee.App/Assets/i18n/fr.json
+++ b/src/Filee.App/Assets/i18n/fr.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Choisir un profil",
"toolbar.step_arrange": "2. Organiser les préréglages",
"toolbar.add_profile": "Nouveau profil",
+ "toolbar.profile_up": "Monter le profil",
+ "toolbar.profile_down": "Descendre le profil",
+ "toolbar.profile_order_hint": "Si deux profils partagent une extension, c'est celui placé le plus haut qui s'ouvre. Alt+↑ / Alt+↓ déplace le profil sélectionné.",
"toolbar.profile_new": "Nouveau profil",
"toolbar.delete_profile": "Supprimer le profil",
"toolbar.reset_profile": "Rétablir par défaut",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} est déjà dans la liste.",
"toolbar.ext_also_in": "Aussi dans « {0} »",
"toolbar.ext_in_profile": "dans {0}",
- "toolbar.ext_claimed_first": "{0} : aussi dans « {1} », placé plus haut dans la liste ; ces fichiers ouvrent donc toujours « {1} ».",
+ "toolbar.ext_claimed_first": "{0} : aussi dans « {1} », placé plus haut dans la liste ; ces fichiers ouvrent donc toujours « {1} ». Placez ce profil au-dessus de « {1} » pour qu'ils s'ouvrent ici.",
"toolbar.ext_claimed_later": "{0} : aussi dans « {1} ».\nCe profil est placé plus haut dans la liste : ces fichiers l'ouvrent désormais à la place.",
"toolbar.ext_unknown": "{0} : Filee ne connaît pas ce type de fichier.\nVous pouvez le garder, mais ces fichiers ne pourront pas être convertis.",
"toolbar.ext_unknown_tip": "Type de fichier inconnu",
diff --git a/src/Filee.App/Assets/i18n/hi.json b/src/Filee.App/Assets/i18n/hi.json
index a3e798a5e..725823a01 100644
--- a/src/Filee.App/Assets/i18n/hi.json
+++ b/src/Filee.App/Assets/i18n/hi.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. प्रोफ़ाइल चुनें",
"toolbar.step_arrange": "2. प्रीसेट व्यवस्थित करें",
"toolbar.add_profile": "नई प्रोफ़ाइल",
+ "toolbar.profile_up": "प्रोफ़ाइल ऊपर ले जाएँ",
+ "toolbar.profile_down": "प्रोफ़ाइल नीचे ले जाएँ",
+ "toolbar.profile_order_hint": "अगर दो प्रोफ़ाइलों में एक ही एक्सटेंशन है, तो सूची में ऊपर वाली खुलती है। Alt+↑ / Alt+↓ से चुनी गई प्रोफ़ाइल ऊपर-नीचे होती है।",
"toolbar.profile_new": "नई प्रोफ़ाइल",
"toolbar.delete_profile": "प्रोफ़ाइल हटाएँ",
"toolbar.reset_profile": "डिफ़ॉल्ट पर रीसेट करें",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} पहले से सूची में है।",
"toolbar.ext_also_in": "“{0}” में भी है",
"toolbar.ext_in_profile": "{0} में",
- "toolbar.ext_claimed_first": "{0}: “{1}” में भी है, जो सूची में पहले आती है, इसलिए ये फ़ाइलें अब भी “{1}” खोलेंगी।",
+ "toolbar.ext_claimed_first": "{0}: “{1}” में भी है, जो सूची में पहले आती है, इसलिए ये फ़ाइलें अब भी “{1}” खोलेंगी। इन्हें यहाँ खोलने के लिए इस प्रोफ़ाइल को “{1}” से ऊपर ले जाएँ।",
"toolbar.ext_claimed_later": "{0}: “{1}” में भी है।\nयह प्रोफ़ाइल सूची में पहले आती है, इसलिए अब ये फ़ाइलें इसी को खोलेंगी।",
"toolbar.ext_unknown": "{0}: Filee इस फ़ाइल प्रकार को नहीं जानता।\nआप इसे रख सकते हैं, पर ये फ़ाइलें कन्वर्ट नहीं हो सकतीं।",
"toolbar.ext_unknown_tip": "अज्ञात फ़ाइल प्रकार",
diff --git a/src/Filee.App/Assets/i18n/ja.json b/src/Filee.App/Assets/i18n/ja.json
index b6960a369..e2759e2cc 100644
--- a/src/Filee.App/Assets/i18n/ja.json
+++ b/src/Filee.App/Assets/i18n/ja.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. プロファイルを選択",
"toolbar.step_arrange": "2. プリセットを配置",
"toolbar.add_profile": "新しいプロファイル",
+ "toolbar.profile_up": "プロファイルを上へ移動",
+ "toolbar.profile_down": "プロファイルを下へ移動",
+ "toolbar.profile_order_hint": "同じ拡張子が複数のプロファイルにある場合は、一覧で上にあるものが使われます。Alt+↑ / Alt+↓ で選択中のプロファイルを移動できます。",
"toolbar.profile_new": "新しいプロファイル",
"toolbar.delete_profile": "プロファイルを削除",
"toolbar.reset_profile": "既定に戻す",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0}はすでに一覧にあります。",
"toolbar.ext_also_in": "「{0}」にも登録されています",
"toolbar.ext_in_profile": "{0}内",
- "toolbar.ext_claimed_first": "{0}:「{1}」にも登録されています。一覧ではそちらの方が先にあるため、この形式のファイルには引き続き「{1}」が使われます。",
+ "toolbar.ext_claimed_first": "{0}:「{1}」にも登録されています。一覧ではそちらの方が先にあるため、この形式のファイルには引き続き「{1}」が使われます。このプロファイルを「{1}」より上に移動すると、こちらが使われます。",
"toolbar.ext_claimed_later": "{0}:「{1}」にも登録されています。\nこのプロファイルの方が一覧で先にあるため、この形式のファイルにはこちらが使われます。",
"toolbar.ext_unknown": "{0}:Fileeはこのファイル形式を認識できません。\n登録はできますが、このファイルは変換できません。",
"toolbar.ext_unknown_tip": "不明なファイル形式",
diff --git a/src/Filee.App/Assets/i18n/ko.json b/src/Filee.App/Assets/i18n/ko.json
index 09604ddae..8213328ad 100644
--- a/src/Filee.App/Assets/i18n/ko.json
+++ b/src/Filee.App/Assets/i18n/ko.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. 프로필 선택",
"toolbar.step_arrange": "2. 프리셋 배치",
"toolbar.add_profile": "새 프로필",
+ "toolbar.profile_up": "프로필 위로",
+ "toolbar.profile_down": "프로필 아래로",
+ "toolbar.profile_order_hint": "두 프로필에 같은 확장자가 있으면 목록에서 위에 있는 프로필로 열려요. Alt+↑ / Alt+↓로 선택한 프로필을 옮길 수 있어요.",
"toolbar.profile_new": "새 프로필",
"toolbar.delete_profile": "프로필 삭제",
"toolbar.reset_profile": "기본값으로 초기화",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0}은(는) 이미 목록에 있어요.",
"toolbar.ext_also_in": "“{0}”에도 있음",
"toolbar.ext_in_profile": "{0}에 있음",
- "toolbar.ext_claimed_first": "{0}: “{1}”에도 있어요.\n목록에서 “{1}”이(가) 먼저라서 이 파일들은 계속 “{1}”로 열려요.",
+ "toolbar.ext_claimed_first": "{0}: “{1}”에도 있어요.\n목록에서 “{1}”이(가) 먼저라서 이 파일들은 계속 “{1}”로 열려요. 이 프로필을 “{1}”보다 위로 옮기면 여기서 열려요.",
"toolbar.ext_claimed_later": "{0}: “{1}”에도 있어요.\n목록에서 이 프로필이 먼저라서 이제 이 파일들은 이 프로필로 열려요.",
"toolbar.ext_unknown": "{0}: Filee가 모르는 파일 형식이에요.\n넣어 둘 수는 있지만 이 파일들은 변환할 수 없어요.",
"toolbar.ext_unknown_tip": "알 수 없는 파일 형식",
diff --git a/src/Filee.App/Assets/i18n/ne.json b/src/Filee.App/Assets/i18n/ne.json
index dade701b1..47c19c8ba 100644
--- a/src/Filee.App/Assets/i18n/ne.json
+++ b/src/Filee.App/Assets/i18n/ne.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "१. प्रोफाइल छनोट गर्नुहोस्",
"toolbar.step_arrange": "२. प्रिसेटहरू व्यवस्थित गर्नुहोस्",
"toolbar.add_profile": "नयाँ प्रोफाइल",
+ "toolbar.profile_up": "प्रोफाइल माथि सार्नुहोस्",
+ "toolbar.profile_down": "प्रोफाइल तल सार्नुहोस्",
+ "toolbar.profile_order_hint": "दुई प्रोफाइलमा एउटै एक्सटेन्सन भए सूचीमा माथि रहेको प्रोफाइल खुल्छ। Alt+↑ / Alt+↓ ले छानिएको प्रोफाइल सार्छ।",
"toolbar.profile_new": "नयाँ प्रोफाइल",
"toolbar.delete_profile": "प्रोफाइल हटाउनुहोस्",
"toolbar.reset_profile": "पूर्वनिर्धारितमा रिसेट गर्नुहोस्",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} पहिले नै सूचीमा छ।",
"toolbar.ext_also_in": "“{0}” मा पनि छ",
"toolbar.ext_in_profile": "{0} मा",
- "toolbar.ext_claimed_first": "{0}: “{1}” मा पनि छ, जुन सूचीमा पहिले आउँछ, त्यसैले यी फाइलहरूले अझै “{1}” खोल्नेछन्।",
+ "toolbar.ext_claimed_first": "{0}: “{1}” मा पनि छ, जुन सूचीमा पहिले आउँछ, त्यसैले यी फाइलहरूले अझै “{1}” खोल्नेछन्। यी फाइलहरू यहीँ खोल्न यो प्रोफाइललाई “{1}” भन्दा माथि सार्नुहोस्।",
"toolbar.ext_claimed_later": "{0}: “{1}” मा पनि छ।\nयो प्रोफाइल सूचीमा पहिले आउँछ, त्यसैले यी फाइलहरूले अब यसको सट्टा यो प्रोफाइल खोल्नेछन्।",
"toolbar.ext_unknown": "{0}: Filee लाई यो फाइल प्रकार थाहा छैन।\nतपाईंले यसलाई राख्न सक्नुहुन्छ, तर यी फाइलहरू रूपान्तरण गर्न सकिँदैन।",
"toolbar.ext_unknown_tip": "अज्ञात फाइल प्रकार",
diff --git a/src/Filee.App/Assets/i18n/pl.json b/src/Filee.App/Assets/i18n/pl.json
index 0c7af06e2..e4d72e60b 100644
--- a/src/Filee.App/Assets/i18n/pl.json
+++ b/src/Filee.App/Assets/i18n/pl.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Wybierz profil",
"toolbar.step_arrange": "2. Ułóż ustawienia",
"toolbar.add_profile": "Nowy profil",
+ "toolbar.profile_up": "Przesuń profil w górę",
+ "toolbar.profile_down": "Przesuń profil w dół",
+ "toolbar.profile_order_hint": "Gdy dwa profile mają to samo rozszerzenie, otwiera się ten wyżej na liście. Alt+↑ / Alt+↓ przesuwa zaznaczony profil.",
"toolbar.profile_new": "Nowy profil",
"toolbar.delete_profile": "Usuń profil",
"toolbar.reset_profile": "Przywróć domyślny",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} jest już na liście.",
"toolbar.ext_also_in": "Także w „{0}”",
"toolbar.ext_in_profile": "w {0}",
- "toolbar.ext_claimed_first": "{0}: także w „{1}”, który jest wcześniej na liście, więc te pliki nadal otwierają „{1}”.",
+ "toolbar.ext_claimed_first": "{0}: także w „{1}”, który jest wcześniej na liście, więc te pliki nadal otwierają „{1}”. Przesuń ten profil nad „{1}”, aby otwierały się tutaj.",
"toolbar.ext_claimed_later": "{0}: także w „{1}”.\nTen profil jest wcześniej na liście, więc te pliki otwierają teraz ten profil.",
"toolbar.ext_unknown": "{0}: Filee nie zna tego typu pliku.\nMożesz go zostawić, ale tych plików nie da się przekonwertować.",
"toolbar.ext_unknown_tip": "Nieznany typ pliku",
diff --git a/src/Filee.App/Assets/i18n/pt-BR.json b/src/Filee.App/Assets/i18n/pt-BR.json
index 88d47fdae..4613c7159 100644
--- a/src/Filee.App/Assets/i18n/pt-BR.json
+++ b/src/Filee.App/Assets/i18n/pt-BR.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Escolha um perfil",
"toolbar.step_arrange": "2. Organize as predefinições",
"toolbar.add_profile": "Novo perfil",
+ "toolbar.profile_up": "Mover perfil para cima",
+ "toolbar.profile_down": "Mover perfil para baixo",
+ "toolbar.profile_order_hint": "Quando dois perfis têm a mesma extensão, abre o que está mais acima. Alt+↑ / Alt+↓ move o perfil selecionado.",
"toolbar.profile_new": "Novo perfil",
"toolbar.delete_profile": "Excluir perfil",
"toolbar.reset_profile": "Restaurar padrão",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} já está na lista.",
"toolbar.ext_also_in": "Também em “{0}”",
"toolbar.ext_in_profile": "em {0}",
- "toolbar.ext_claimed_first": "{0}: também em “{1}”, que vem primeiro na lista, então estes arquivos ainda abrem “{1}”.",
+ "toolbar.ext_claimed_first": "{0}: também em “{1}”, que vem primeiro na lista, então estes arquivos ainda abrem “{1}”. Mova este perfil para cima de “{1}” para abri-los aqui.",
"toolbar.ext_claimed_later": "{0}: também em “{1}”.\nEste perfil vem primeiro na lista, então estes arquivos agora abrem este.",
"toolbar.ext_unknown": "{0}: o Filee não conhece este tipo de arquivo.\nVocê pode manter, mas estes arquivos não podem ser convertidos.",
"toolbar.ext_unknown_tip": "Tipo de arquivo desconhecido",
diff --git a/src/Filee.App/Assets/i18n/pt-PT.json b/src/Filee.App/Assets/i18n/pt-PT.json
index f89ce25c5..6b1e6e363 100644
--- a/src/Filee.App/Assets/i18n/pt-PT.json
+++ b/src/Filee.App/Assets/i18n/pt-PT.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Escolhe um perfil",
"toolbar.step_arrange": "2. Organiza as predefinições",
"toolbar.add_profile": "Novo perfil",
+ "toolbar.profile_up": "Mover perfil para cima",
+ "toolbar.profile_down": "Mover perfil para baixo",
+ "toolbar.profile_order_hint": "Quando dois perfis têm a mesma extensão, abre o que está mais acima. Alt+↑ / Alt+↓ move o perfil selecionado.",
"toolbar.profile_new": "Novo perfil",
"toolbar.delete_profile": "Eliminar perfil",
"toolbar.reset_profile": "Repor valores de origem",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} já está na lista.",
"toolbar.ext_also_in": "Também em «{0}»",
"toolbar.ext_in_profile": "em {0}",
- "toolbar.ext_claimed_first": "{0}: também em «{1}», que aparece primeiro na lista. Estes ficheiros continuam, por isso, a abrir «{1}».",
+ "toolbar.ext_claimed_first": "{0}: também em «{1}», que aparece primeiro na lista. Estes ficheiros continuam, por isso, a abrir «{1}». Move este perfil para cima de «{1}» para os abrir aqui.",
"toolbar.ext_claimed_later": "{0}: também em «{1}».\nEste perfil aparece primeiro na lista, pelo que estes ficheiros passam a abri-lo.",
"toolbar.ext_unknown": "{0}: o Filee não conhece este tipo de ficheiro.\nPodes mantê-lo, mas estes ficheiros não podem ser convertidos.",
"toolbar.ext_unknown_tip": "Tipo de ficheiro desconhecido",
diff --git a/src/Filee.App/Assets/i18n/ru.json b/src/Filee.App/Assets/i18n/ru.json
index 47f36cb2d..83f6bd040 100644
--- a/src/Filee.App/Assets/i18n/ru.json
+++ b/src/Filee.App/Assets/i18n/ru.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. Выберите профиль",
"toolbar.step_arrange": "2. Расставьте пресеты",
"toolbar.add_profile": "Новый профиль",
+ "toolbar.profile_up": "Переместить профиль выше",
+ "toolbar.profile_down": "Переместить профиль ниже",
+ "toolbar.profile_order_hint": "Если у двух профилей есть одно и то же расширение, открывается тот, что выше. Alt+↑ / Alt+↓ перемещает выбранный профиль.",
"toolbar.profile_new": "Новый профиль",
"toolbar.delete_profile": "Удалить профиль",
"toolbar.reset_profile": "Сбросить",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} уже есть в списке.",
"toolbar.ext_also_in": "Также в «{0}»",
"toolbar.ext_in_profile": "в {0}",
- "toolbar.ext_claimed_first": "{0}: также в «{1}», а он выше в списке, поэтому такие файлы по-прежнему открывают «{1}».",
+ "toolbar.ext_claimed_first": "{0}: также в «{1}», а он выше в списке, поэтому такие файлы по-прежнему открывают «{1}». Переместите этот профиль выше «{1}», чтобы они открывались здесь.",
"toolbar.ext_claimed_later": "{0}: также в «{1}».\nЭтот профиль выше в списке, поэтому такие файлы теперь открывают его.",
"toolbar.ext_unknown": "{0}: Filee не знает такой тип файлов.\nЕго можно оставить, но такие файлы не сконвертируются.",
"toolbar.ext_unknown_tip": "Неизвестный тип файлов",
diff --git a/src/Filee.App/Assets/i18n/th.json b/src/Filee.App/Assets/i18n/th.json
index ff9466b61..e4088b3c1 100644
--- a/src/Filee.App/Assets/i18n/th.json
+++ b/src/Filee.App/Assets/i18n/th.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. เลือกโปรไฟล์",
"toolbar.step_arrange": "2. จัดเรียงพรีเซ็ต",
"toolbar.add_profile": "โปรไฟล์ใหม่",
+ "toolbar.profile_up": "เลื่อนโปรไฟล์ขึ้น",
+ "toolbar.profile_down": "เลื่อนโปรไฟล์ลง",
+ "toolbar.profile_order_hint": "ถ้าสองโปรไฟล์มีนามสกุลไฟล์เดียวกัน จะเปิดด้วยโปรไฟล์ที่อยู่สูงกว่า กด Alt+↑ / Alt+↓ เพื่อเลื่อนโปรไฟล์ที่เลือก",
"toolbar.profile_new": "โปรไฟล์ใหม่",
"toolbar.delete_profile": "ลบโปรไฟล์",
"toolbar.reset_profile": "รีเซ็ตเป็นค่าเริ่มต้น",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} มีอยู่ในรายการแล้ว",
"toolbar.ext_also_in": "อยู่ใน “{0}” ด้วย",
"toolbar.ext_in_profile": "ใน {0}",
- "toolbar.ext_claimed_first": "{0}: อยู่ใน “{1}” ด้วย ซึ่งอยู่ก่อนหน้าในรายการ ดังนั้นไฟล์เหล่านี้จะยังคงเปิดด้วย “{1}”",
+ "toolbar.ext_claimed_first": "{0}: อยู่ใน “{1}” ด้วย ซึ่งอยู่ก่อนหน้าในรายการ ดังนั้นไฟล์เหล่านี้จะยังคงเปิดด้วย “{1}” เลื่อนโปรไฟล์นี้ขึ้นไปไว้เหนือ “{1}” เพื่อให้เปิดด้วยโปรไฟล์นี้",
"toolbar.ext_claimed_later": "{0}: อยู่ใน “{1}” ด้วย\nโปรไฟล์นี้อยู่ก่อนหน้าในรายการ ดังนั้นไฟล์เหล่านี้จะเปิดด้วยโปรไฟล์นี้แทน",
"toolbar.ext_unknown": "{0}: Filee ไม่รู้จักประเภทไฟล์นี้\nคุณสามารถเก็บไว้ได้ แต่ไฟล์เหล่านี้จะไม่สามารถแปลงได้",
"toolbar.ext_unknown_tip": "ไม่รู้จักประเภทไฟล์นี้",
diff --git a/src/Filee.App/Assets/i18n/tr.json b/src/Filee.App/Assets/i18n/tr.json
index ad1043c97..8a9671386 100644
--- a/src/Filee.App/Assets/i18n/tr.json
+++ b/src/Filee.App/Assets/i18n/tr.json
@@ -536,6 +536,9 @@
"toolbar.step_profile": "1. Profil seçin",
"toolbar.step_arrange": "2. Ön ayarları düzenleyin",
"toolbar.add_profile": "Yeni profil",
+ "toolbar.profile_up": "Profili yukarı taşı",
+ "toolbar.profile_down": "Profili aşağı taşı",
+ "toolbar.profile_order_hint": "İki profil aynı uzantıya sahipse listede üstte olan açılır. Alt+↑ / Alt+↓ seçili profili taşır.",
"toolbar.profile_new": "Yeni profil",
"toolbar.delete_profile": "Profili sil",
"toolbar.reset_profile": "Varsayılana sıfırla",
@@ -581,7 +584,7 @@
"toolbar.ext_duplicate": "{0} zaten listede.",
"toolbar.ext_also_in": "“{0}” profilinde de var",
"toolbar.ext_in_profile": "{0} içinde",
- "toolbar.ext_claimed_first": "{0}: listede önce gelen “{1}” profilinde de var; bu dosyalar hâlâ “{1}” profilini açar.",
+ "toolbar.ext_claimed_first": "{0}: listede önce gelen “{1}” profilinde de var; bu dosyalar hâlâ “{1}” profilini açar. Burada açılmaları için bu profili “{1}” profilinin üstüne taşıyın.",
"toolbar.ext_claimed_later": "{0}: “{1}” profilinde de var.\nBu profil listede önce geldiği için dosyalar artık bunu açar.",
"toolbar.ext_unknown": "{0}: Filee bu dosya türünü tanımıyor.\nTutabilirsiniz ancak bu dosyalar dönüştürülemez.",
"toolbar.ext_unknown_tip": "Bilinmeyen dosya türü",
diff --git a/src/Filee.App/Assets/i18n/zh-CN.json b/src/Filee.App/Assets/i18n/zh-CN.json
index e0b384c6f..78ef80a8c 100644
--- a/src/Filee.App/Assets/i18n/zh-CN.json
+++ b/src/Filee.App/Assets/i18n/zh-CN.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. 选择配置",
"toolbar.step_arrange": "2. 排列预设",
"toolbar.add_profile": "新建配置",
+ "toolbar.profile_up": "上移配置",
+ "toolbar.profile_down": "下移配置",
+ "toolbar.profile_order_hint": "两个配置包含相同的扩展名时,打开列表中靠上的那个。按 Alt+↑ / Alt+↓ 可移动所选配置。",
"toolbar.profile_new": "新配置",
"toolbar.delete_profile": "删除配置",
"toolbar.reset_profile": "恢复默认",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} 已在列表中。",
"toolbar.ext_also_in": "也在“{0}”中",
"toolbar.ext_in_profile": "在“{0}”中",
- "toolbar.ext_claimed_first": "{0}:也在“{1}”中。\n“{1}”在列表中靠前,所以这些文件仍会打开“{1}”。",
+ "toolbar.ext_claimed_first": "{0}:也在“{1}”中。\n“{1}”在列表中靠前,所以这些文件仍会打开“{1}”。把此配置移到“{1}”上方,这些文件就会用此配置打开。",
"toolbar.ext_claimed_later": "{0}:也在“{1}”中。\n此配置在列表中靠前,所以这些文件现在会改用此配置。",
"toolbar.ext_unknown": "{0}:Filee 不认识这种文件类型。\n可以保留,但这些文件无法转换。",
"toolbar.ext_unknown_tip": "未知文件类型",
diff --git a/src/Filee.App/Assets/i18n/zh-TW.json b/src/Filee.App/Assets/i18n/zh-TW.json
index ae6a38060..322a6791d 100644
--- a/src/Filee.App/Assets/i18n/zh-TW.json
+++ b/src/Filee.App/Assets/i18n/zh-TW.json
@@ -550,6 +550,9 @@
"toolbar.step_profile": "1. 選擇設定檔",
"toolbar.step_arrange": "2. 排列預設",
"toolbar.add_profile": "新增設定檔",
+ "toolbar.profile_up": "上移設定檔",
+ "toolbar.profile_down": "下移設定檔",
+ "toolbar.profile_order_hint": "兩個設定檔包含相同的副檔名時,會開啟清單中較上方的那個。按 Alt+↑ / Alt+↓ 可移動所選設定檔。",
"toolbar.profile_new": "新設定檔",
"toolbar.delete_profile": "刪除設定檔",
"toolbar.reset_profile": "還原為初始設定",
@@ -595,7 +598,7 @@
"toolbar.ext_duplicate": "{0} 已在清單中。",
"toolbar.ext_also_in": "也在「{0}」中",
"toolbar.ext_in_profile": "在「{0}」中",
- "toolbar.ext_claimed_first": "{0}:也在「{1}」中。\n「{1}」在清單中排在前面,所以這些檔案仍會開啟「{1}」。",
+ "toolbar.ext_claimed_first": "{0}:也在「{1}」中。\n「{1}」在清單中排在前面,所以這些檔案仍會開啟「{1}」。把此設定檔移到「{1}」上方,這些檔案就會改用此設定檔開啟。",
"toolbar.ext_claimed_later": "{0}:也在「{1}」中。\n此設定檔在清單中排在前面,所以這些檔案現在會改用此設定檔。",
"toolbar.ext_unknown": "{0}:Filee 不認識這種檔案類型。\n可以保留,但這些檔案無法轉換。",
"toolbar.ext_unknown_tip": "未知檔案類型",
diff --git a/src/Filee.App/ViewModels/Pages/ToolbarPageViewModel.cs b/src/Filee.App/ViewModels/Pages/ToolbarPageViewModel.cs
index bdc6354f6..f01f584cf 100644
--- a/src/Filee.App/ViewModels/Pages/ToolbarPageViewModel.cs
+++ b/src/Filee.App/ViewModels/Pages/ToolbarPageViewModel.cs
@@ -3,7 +3,8 @@
// The drag gestures themselves live in the view (ToolbarPage.axaml.cs); this class only mutates the model.
// A profile is either normal (extension chips, ExtensionTagsViewModel) or for mixed selections (check list,
// MixedExtensionsViewModel). Normal profiles are kept before the mixed ones, so a new mixed profile never takes over
-// the catch-all role of the built-in "Mixed files" donut (see ProfileSelector).
+// the catch-all role of the built-in "Mixed files" donut (see ProfileSelector). Move up / Move down (Alt+↑ / Alt+↓)
+// reorder a profile among its own kind, which decides the profile that opens for a shared extension (#522).
using System.Collections.ObjectModel;
using System.Diagnostics;
@@ -235,7 +236,11 @@ internal static PaletteTab TabOf(Preset preset)
[ObservableProperty] private PaletteTabItem? _selectedTab;
[ObservableProperty] private bool _showTabRow;
- partial void OnProfileSearchChanged(string value) => VisibleProfiles.Query = value;
+ partial void OnProfileSearchChanged(string value)
+ {
+ VisibleProfiles.Query = value;
+ NotifyMoveChanged();
+ }
partial void OnPaletteSearchChanged(string value)
{
_pendingTabRestore = null;
@@ -309,6 +314,7 @@ partial void OnSelectedProfileChanged(ProfileItemViewModel? value)
// The list box briefly drops its selection while the selected profile is moved (see Reposition).
if (_repositioning)
return;
+ NotifyMoveChanged();
_loading = true;
ProfileName = value is null ? "" : _loc.DisplayName(value.Profile);
_loading = false;
@@ -369,6 +375,54 @@ private void Reposition(ProfileItemViewModel item)
{
_repositioning = false;
}
+ NotifyMoveChanged();
+ }
+
+ /// The profile the selected one would pass going , among those the search shows.
+ private ToolbarProfile? MoveNeighbor(int direction) =>
+ Profile is { } profile
+ ? ProfileOrder.Neighbor(_store.Profiles, profile, direction, p => VisibleProfiles.Any(v => v.Profile == p))
+ : null;
+
+ private bool CanMoveProfileUp() => MoveNeighbor(-1) is not null;
+ private bool CanMoveProfileDown() => MoveNeighbor(1) is not null;
+
+ ///
+ /// Moves the selected profile above the profile of its kind shown above it: the higher of two profiles with the
+ /// same extension opens for it (#522). With a search, it passes the one the list shows, not a hidden one.
+ ///
+ [RelayCommand(CanExecute = nameof(CanMoveProfileUp))]
+ private void MoveProfileUp() => MoveProfile(-1);
+
+ /// Moves the selected profile below the profile of its kind shown below it.
+ [RelayCommand(CanExecute = nameof(CanMoveProfileDown))]
+ private void MoveProfileDown() => MoveProfile(1);
+
+ private void MoveProfile(int direction)
+ {
+ if (SelectedProfile is not { } item
+ || ProfileOrder.Move(_store.Profiles, item.Profile, direction, p => VisibleProfiles.Any(v => v.Profile == p)) is not { } move)
+ return;
+ _repositioning = true;
+ try
+ {
+ Profiles.Move(move.From, move.To);
+ SelectedProfile = item;
+ }
+ finally
+ {
+ _repositioning = false;
+ }
+ SaveOwnLibrary();
+ // The remarks under the extensions say which profile comes first; that just changed.
+ RebuildProfileEditor();
+ NotifyMoveChanged();
+ }
+
+ private void NotifyMoveChanged()
+ {
+ MoveProfileUpCommand.NotifyCanExecuteChanged();
+ MoveProfileDownCommand.NotifyCanExecuteChanged();
}
/// Shows the chips or the check list for the selected profile.
@@ -523,6 +577,7 @@ private void AddProfile()
var item = new ProfileItemViewModel(profile, _loc);
Profiles.Insert(index, item);
SelectedProfile = item;
+ NotifyMoveChanged();
}
[RelayCommand]
@@ -539,6 +594,7 @@ private async Task DeleteProfile()
SaveOwnLibrary();
Profiles.Remove(SelectedProfile!);
SelectedProfile = Profiles.FirstOrDefault();
+ NotifyMoveChanged();
}
[RelayCommand]
@@ -580,6 +636,7 @@ internal void Reset(ProfileItemViewModel item)
foreach (var other in Profiles)
other.Refresh(_loc);
RebuildProfileEditor();
+ NotifyMoveChanged();
ForgetJudgements(item.Profile.Id);
Rebuild();
}
diff --git a/src/Filee.App/Views/Pages/ToolbarPage.axaml b/src/Filee.App/Views/Pages/ToolbarPage.axaml
index 611899134..c57d78ade 100644
--- a/src/Filee.App/Views/Pages/ToolbarPage.axaml
+++ b/src/Filee.App/Views/Pages/ToolbarPage.axaml
@@ -45,6 +45,14 @@
+
+
+
+