MENU-BAR: with Import Photos… unbound, the no-photos line says so without a shortcut

This commit is contained in:
Nathaniel Ledford
2026-10-29 08:47:39 -04:00
parent f1a53e29b2
commit 59f83f5c7c
19 changed files with 20 additions and 3 deletions
+1
View File
@@ -57,6 +57,7 @@
"Add to Local": "Přidat do místních souborů",
"Add to My Photos": "Přidat do mých fotografií",
"Can't be moved here": "Sem nelze přesunout",
"Import photos with File → Import Photos…, or drop them here": "Importujte fotografie přes Soubor → Importovat fotografie… nebo je přetáhněte sem",
"This row covers more than one disk: drop on a folder inside it": "Tento řádek zahrnuje více disků: přetáhněte položky na některou ze složek v něm",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Místní fotografie zatím nejsou v knihovně: nejprve použijte Přidat do mých fotografií a pak je přesuňte",
"Add to My Photos First": "Nejprve přidat do mých fotografií",
+1
View File
@@ -57,6 +57,7 @@
"Add to Local": "Zu „Lokal“ hinzufügen",
"Add to My Photos": "Zu „Meine Fotos“ hinzufügen",
"Can't be moved here": "Hierher nicht verschiebbar",
"Import photos with File → Import Photos…, or drop them here": "Importiere Fotos über Datei → Fotos importieren… oder lege sie hier ab",
"This row covers more than one disk: drop on a folder inside it": "Diese Zeile umfasst mehr als ein Laufwerk: auf einem Ordner darin ablegen",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Lokale Fotos sind noch nicht in der Bibliothek: erst zu „Meine Fotos“ hinzufügen, dann verschieben",
"Add to Selected Photos": "Zu ausgewählten Fotos hinzufügen",
+1
View File
@@ -42,6 +42,7 @@
"Add to Local": "Añadir a Local",
"Add to My Photos": "Añadir a Mis fotos",
"Can't be moved here": "No se pueden mover aquí",
"Import photos with File → Import Photos…, or drop them here": "Importar fotos con Archivo → Importar fotos… o soltarlas aquí",
"This row covers more than one disk: drop on a folder inside it": "Esta fila abarca más de un disco: suéltalas en una carpeta dentro de ella",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Las fotos locales aún no están en la biblioteca: primero Añadir a Mis fotos y luego muévelas",
"Add to Selected Photos": "Añadir a las fotos seleccionadas",
+1
View File
@@ -908,6 +908,7 @@
"Import from Folder…": "Tuo kansiosta…",
"Import new photos": "Tuo uudet kuvat",
"Import photos to get started": "Aloita tuomalla kuvia",
"Import photos with File → Import Photos…, or drop them here": "Tuo kuvia valitsemalla Tiedosto → Tuo kuvia… tai pudota ne tähän",
"Imported": "Tuotu",
"Imported Photos": "Tuodut kuvat",
"Importing": "Tuodaan",
+1
View File
@@ -42,6 +42,7 @@
"Add to Local": "Ajouter à Local",
"Add to My Photos": "Ajouter à Mes photos",
"Can't be moved here": "Impossible de les déplacer ici",
"Import photos with File → Import Photos…, or drop them here": "Importez des photos avec Fichier → Importer des photos… ou déposez-les ici",
"This row covers more than one disk: drop on a folder inside it": "Cette ligne couvre plusieurs disques : déposez-les sur un dossier qu’elle contient",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Les photos locales ne sont pas encore dans la bibliothèque : Ajouter à Mes photos d’abord, puis déplacez-les",
"Add to Selected Photos": "Ajouter aux photos sélectionnées",
+1
View File
@@ -912,6 +912,7 @@
"Import from Folder…": "Impor dari folder…",
"Import new photos": "Impor foto baru",
"Import photos to get started": "Impor foto untuk memulai",
"Import photos with File → Import Photos…, or drop them here": "Impor foto melalui File → Impor foto…, atau seret ke sini",
"Imported": "Diimpor",
"Imported Photos": "Foto yang diimpor",
"Importing": "Mengimpor",
+1
View File
@@ -42,6 +42,7 @@
"Add to Local": "Aggiungi a Locale",
"Add to My Photos": "Aggiungi a Le mie foto",
"Can't be moved here": "Non si possono spostare qui",
"Import photos with File → Import Photos…, or drop them here": "Importa le foto con File → Importa foto…, oppure trascinale qui",
"This row covers more than one disk: drop on a folder inside it": "Questa riga comprende più di un disco: rilascia su una cartella al suo interno",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Le foto locali non sono ancora nella libreria: prima Aggiungi a Le mie foto, poi spostale",
"Add to Selected Photos": "Aggiungi alle foto selezionate",
+1
View File
@@ -43,6 +43,7 @@
"Add to Local": "ローカルに追加",
"Add to My Photos": "マイフォトに追加",
"Can't be moved here": "ここには移動できません",
"Import photos with File → Import Photos…, or drop them here": "「ファイル → 写真を読み込む…」から読み込むか、ここに写真をドロップしてください",
"This row covers more than one disk: drop on a folder inside it": "この行は複数のディスクにまたがっています。中のフォルダにドロップしてください",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "ローカルの写真はまだライブラリにありません。先に「マイフォトに追加」してから移動してください",
"Add to Selected Photos": "選択した写真に追加",
+1
View File
@@ -970,6 +970,7 @@
"Import from Device": "იმპორტი მოწყობილობიდან",
"Import from Folder…": "იმპორტი საქაღალდიდან…",
"Import new photos": "ახალი ფოტოების იმპორტი",
"Import photos with File → Import Photos…, or drop them here": "ფოტოების იმპორტისთვის გამოიყენეთ ფაილი → ფოტოების იმპორტი…, ან ჩააგდეთ ისინი აქ",
"Import presets from other editors: XMP presets, classic `.lrtemplate` files, \"DNG presets\" from mobile apps and `.zip`": "პრესეტების იმპორტი სხვა რედაქტორებიდან: XMP პრესეტები, კლასიკური `.lrtemplate` ფაილები, მობილური აპების „DNG პრესეტები“ და `.zip`",
"Import ▸ Copy verifies every copy, like Move (issue #96): each file is written as a new file, synced to disk and": "იმპორტი → კოპირება ყოველ ასლს ამოწმებს, ისევე როგორც გადატანა (ხარვეზი #96): ყოველი ფაილი ახალ ფაილად იწერება, დისკზე სინქრონიზდება და",
"Import ▸ Move: photos go into the destination (with the same folders and renaming as Copy, e.g.": "იმპორტი → გადატანა: ფოტოები დანიშნულების ადგილას გადადის (იგივე საქაღალდეებითა და გადარქმევით, რაც კოპირებისას, მაგ.",
+1
View File
@@ -657,6 +657,7 @@
"Import as new": "Importuj jako nowe",
"Import from Device": "Importuj z urządzenia",
"Import from Folder…": "Importuj z folderu…",
"Import photos with File → Import Photos…, or drop them here": "Importuj zdjęcia przez Plik → Importuj zdjęcia… lub przeciągnij je tutaj",
"Imported": "Zaimportowane",
"Imported Photos": "Zaimportowane zdjęcia",
"Importing": "Importowanie",
+1
View File
@@ -44,6 +44,7 @@
"Add to Local": "Adicionar a Local",
"Add to My Photos": "Adicionar às Minhas fotos",
"Can't be moved here": "Não podem ser movidas para cá",
"Import photos with File → Import Photos…, or drop them here": "Importe fotos com Arquivo → Importar fotos… ou solte-as aqui",
"This row covers more than one disk: drop on a folder inside it": "Esta linha abrange mais de um disco: solte em uma pasta dentro dela",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "As fotos locais ainda não estão na biblioteca: primeiro Adicionar às Minhas fotos, depois mova-as",
"Add to Selected Photos": "Adicionar às fotos selecionadas",
+1
View File
@@ -27,6 +27,7 @@
"Add to Favorites": "Добавить в избранное",
"Add to My Photos": "Добавить в «Мои фото»",
"Can't be moved here": "Сюда переместить нельзя",
"Import photos with File → Import Photos…, or drop them here": "Импортируйте фото через Файл → Импорт фото… или перетащите их сюда",
"This row covers more than one disk: drop on a folder inside it": "Эта строка охватывает несколько дисков: перетащите на папку внутри неё",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "Локальных фото ещё нет в библиотеке: сначала «Добавить в «Мои фото»», затем перемещайте",
"Add to Selected Photos": "Добавить к выбранным фото",
+1
View File
@@ -25,6 +25,7 @@
"4 MiB and connections at 16.": "4 MiB och anslutningar till 16.",
"630 drivers): on Windows the window and GPU rendering use DirectX 12 only and never load the Vulkan driver unless": "630-drivrutiner): i Windows använder fönstret och GPU-renderingen endast DirectX 12 och läser aldrig in Vulkan-drivrutinen om inte",
"= exactly": "= exakt",
"Import photos with File → Import Photos…, or drop them here": "Importera foton med Arkiv → Importera foton… eller släpp dem här",
"`img_1-1.JPG`; on case-insensitive volumes the case change still goes through.": "`img_1-1.JPG`; på skiftlägesokänsliga volymer går ändringen av skiftläge ändå igenom.",
"`Photos/2026/20260114/20260114_001.jpg`) together with their XMP sidecars; each original leaves the card only after its": "`Photos/2026/20260114/20260114_001.jpg`) tillsammans med sina XMP-sidofiler; varje original lämnar kortet först efter att dess",
"A 16:9 frame with black bars above and below, the title in the corner, fades through black and a closing card.": "En 16:9-bild med svarta fält ovanför och nedanför, titeln i hörnet, toningar via svart och ett avslutande kort.",
+1
View File
@@ -111,6 +111,7 @@
"Home": "Домашня тека",
"Horizontal inset (% of short edge)": "Відступ по горизонталі (% короткого краю)",
"ISO Speed": "Чутливість ISO",
"Import photos with File → Import Photos…, or drop them here": "Імпортуйте фото через Файл → Імпортувати фото… або перетягніть їх сюди",
"Imported": "Імпортовані",
"Join the ArtCraft Discord": "Приєднатися до Discord ArtCraft",
"Join the ArtCraft Discord…": "Приєднатися до Discord ArtCraft…",
+1
View File
@@ -831,6 +831,7 @@
"Import from Device": "Nhập từ thiết bị",
"Import from Folder…": "Nhập từ thư mục…",
"Import new photos": "Nhập ảnh mới",
"Import photos with File → Import Photos…, or drop them here": "Nhập ảnh bằng Tệp → Nhập ảnh…, hoặc thả vào đây",
"Import presets from other editors: XMP presets, classic `.lrtemplate` files, \"DNG presets\" from mobile apps and `.zip`": "Nhập thiết lập sẵn từ trình soạn khác: preset XMP, tệp `.lrtemplate` cổ điển, \"DNG presets\" từ app di động và `.zip`",
"Import ▸ Copy verifies every copy, like Move (issue #96): each file is written as a new file, synced to disk and": "Nhập → Sao chép xác minh mọi bản sao, như Di chuyển (issue #96): mỗi tệp ghi thành tệp mới, đồng bộ ra đĩa và",
"Import ▸ Move: photos go into the destination (with the same folders and renaming as Copy, e.g.": "Nhập → Di chuyển: ảnh vào đích (cùng thư mục và đổi tên như Sao chép, ví dụ",
+1
View File
@@ -44,6 +44,7 @@
"Add to Local": "添加到本地",
"Add to My Photos": "添加到我的照片",
"Can't be moved here": "无法移到这里",
"Import photos with File → Import Photos…, or drop them here": "使用“文件 → 导入照片…”导入照片,或将照片拖放到此处",
"This row covers more than one disk: drop on a folder inside it": "此行涵盖多个磁盘:请拖放到其中的文件夹",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "本地照片尚未在图库中:请先“添加到我的照片”,再移动",
"Add to Selected Photos": "添加到所选照片",
+1
View File
@@ -44,6 +44,7 @@
"Add to Local": "加入本機",
"Add to My Photos": "加入我的照片",
"Can't be moved here": "無法移到這裡",
"Import photos with File → Import Photos…, or drop them here": "使用「檔案 → 匯入照片…」,或將照片拖放至此",
"This row covers more than one disk: drop on a folder inside it": "此列涵蓋多個磁碟:請拖放到其中的資料夾",
"Local photos aren't in the library yet: Add to My Photos first, then move them": "本機照片尚未在照片庫中:請先「加入我的照片」,再移動",
"Add to Selected Photos": "加入選取的照片",
+2 -2
View File
@@ -51,13 +51,13 @@ pub fn hint(keymap: &Keymap, mac: bool) -> String {
/// The grid's second line when a view with no photos is not the empty library (an empty album, say):
/// the way in is File → Import Photos…, with the shortcut that command is bound to now, written as
/// menus write it. With no shortcut it is the drop hint alone.
/// menus write it. With no shortcut the sentence leaves it out.
pub fn no_photos_body(keymap: &Keymap, mac: bool) -> String {
match crate::shortcuts::shortcut_of(keymap, "file.addPhotos") {
Some(sc) => {
crate::i18n::tr_format!("Import photos with File → Import Photos… ({}), or drop them here", crate::menubar::shortcut_text(sc, mac))
}
None => hint(keymap, mac),
None => crate::i18n::tr("Import photos with File → Import Photos…, or drop them here").to_string(),
}
}
+1 -1
View File
@@ -156,7 +156,7 @@ fn the_no_photos_line_lists_modifiers_in_the_menu_order() {
assert!(rebound.contains("⌥⇧⌘I"), "{rebound}");
crate::shortcuts::assign(&mut keymap, "file.addPhotos", None).unwrap();
let unbound = empty_library::no_photos_body(&keymap, true);
assert!(!unbound.contains('⌘') && !unbound.contains("Cmd"), "{unbound}");
assert!(!unbound.contains('⌘') && !unbound.contains("Cmd") && !unbound.starts_with("or "), "{unbound}");
}
#[test]