From fd8459592d2490f85b7fca69fff37c238d1a4a9a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 22 Oct 2026 04:19:38 +0000 Subject: [PATCH] Fix #3494: package status spacing without notes ## Summary Package status notes are parenthetical fragments joined with spaces; templates without {note} are used when there are no missing links or skipped fonts, so folder paths are not followed by stray spaces or double gaps. ## Tests - package_status_without_notes_has_no_extra_spaces - package_status_message_templates_parse extended Closes storytold/vectorcraft#3494 Co-authored-by: nrq6993-a11y --- crates/ui-egui/src/dialogs/package.rs | 48 +++++++++++++++------ crates/ui-egui/src/dialogs/tests_package.rs | 14 ++++++ crates/ui-egui/src/i18n/bg.tsv | 7 +++ crates/ui-egui/src/i18n/cs.tsv | 7 +++ crates/ui-egui/src/i18n/da.tsv | 7 +++ crates/ui-egui/src/i18n/de.tsv | 7 +++ crates/ui-egui/src/i18n/el.tsv | 7 +++ crates/ui-egui/src/i18n/es.tsv | 7 +++ crates/ui-egui/src/i18n/fi.tsv | 7 +++ crates/ui-egui/src/i18n/fr.tsv | 7 +++ crates/ui-egui/src/i18n/hu.tsv | 7 +++ crates/ui-egui/src/i18n/id.tsv | 7 +++ crates/ui-egui/src/i18n/it.tsv | 7 +++ crates/ui-egui/src/i18n/ja.tsv | 7 +++ crates/ui-egui/src/i18n/ka.tsv | 7 +++ crates/ui-egui/src/i18n/ko.tsv | 7 +++ crates/ui-egui/src/i18n/nl.tsv | 7 +++ crates/ui-egui/src/i18n/pl.tsv | 7 +++ crates/ui-egui/src/i18n/pt-br.tsv | 7 +++ crates/ui-egui/src/i18n/ru.tsv | 7 +++ crates/ui-egui/src/i18n/sv.tsv | 7 +++ crates/ui-egui/src/i18n/tests.rs | 8 +++- crates/ui-egui/src/i18n/tr.tsv | 8 +++- crates/ui-egui/src/i18n/uk.tsv | 7 +++ crates/ui-egui/src/i18n/vi.tsv | 7 +++ crates/ui-egui/src/i18n/zh-hans.tsv | 7 +++ crates/ui-egui/src/i18n/zh-hant.tsv | 7 +++ 27 files changed, 222 insertions(+), 17 deletions(-) diff --git a/crates/ui-egui/src/dialogs/package.rs b/crates/ui-egui/src/dialogs/package.rs index 438e42854..590218e7e 100644 --- a/crates/ui-egui/src/dialogs/package.rs +++ b/crates/ui-egui/src/dialogs/package.rs @@ -116,32 +116,52 @@ fn confirm(app: &mut VectorcraftApp, d: &Dialog) -> Result { let missing = r["missingLinks"].as_array().map_or(0, Vec::len); // The fonts left out: their license doesn't allow it, or they aren't on this computer. let fonts = r["skippedFonts"].as_array().into_iter().flatten().filter_map(|f| f["font"].as_str()).collect::>().join(", "); - let mut shown_note = if missing > 0 { - format!(" ({})", crate::i18n::fmt(tl!("{count} linked file(s) not found"), &[("count", &missing.to_string())])) - } else { - String::new() - }; - if !fonts.is_empty() { - shown_note.push_str(&format!(" ({})", crate::i18n::fmt(tl!("fonts not copied: {fonts}"), &[("fonts", &fonts)]))); - } + let shown_note = package_status_note(missing, &fonts); let n_s = n.to_string(); if web { let (name, data) = (r["name"].as_str().unwrap_or("package.zip"), r["dataBase64"].as_str().unwrap_or_default()); let bytes = vectorcraft_format::base64_decode(data).ok_or("the package came back damaged")?; io::write_named(app, None, name, &bytes)?; - app.status(crate::i18n::fmt(tl!("Packaged {n} file(s){note}"), &[("n", &n_s), ("note", &shown_note)])); + let status = if shown_note.is_empty() { + crate::i18n::fmt(tl!("Packaged {n} file(s)"), &[("n", &n_s)]) + } else { + crate::i18n::fmt(tl!("Packaged {n} file(s) {note}"), &[("n", &n_s), ("note", &shown_note)]) + }; + app.status(status); return Ok(r); } let folder = r["folder"].as_str().unwrap_or_default().to_string(); - app.status(crate::i18n::fmt(tl!("Packaged {n} file(s) in {folder} {note}"), &[("n", &n_s), ("folder", &folder), ("note", &shown_note)])); - let detail = crate::i18n::fmt( - tl!("{count} file(s) in {folder} {note}. Show the package folder?"), - &[("count", &n_s), ("folder", &folder), ("note", &shown_note)], - ); + let status = if shown_note.is_empty() { + crate::i18n::fmt(tl!("Packaged {n} file(s) in {folder}"), &[("n", &n_s), ("folder", &folder)]) + } else { + crate::i18n::fmt(tl!("Packaged {n} file(s) in {folder} {note}"), &[("n", &n_s), ("folder", &folder), ("note", &shown_note)]) + }; + app.status(status); + let detail = if shown_note.is_empty() { + crate::i18n::fmt(tl!("{count} file(s) in {folder}. Show the package folder?"), &[("count", &n_s), ("folder", &folder)]) + } else { + crate::i18n::fmt( + tl!("{count} file(s) in {folder} {note}. Show the package folder?"), + &[("count", &n_s), ("folder", &folder), ("note", &shown_note)], + ) + }; ask(app, tl!("Package created"), &detail, "file.showPackage", json!({ "folder": folder })); Ok(r) } +/// Parenthetical notes after the folder path in a package status (`(2 linked file(s) not found)` …), +/// joined with spaces and without a leading space (#3494). +fn package_status_note(missing: usize, fonts: &str) -> String { + let mut parts = Vec::new(); + if missing > 0 { + parts.push(format!("({})", crate::i18n::fmt(tl!("{count} linked file(s) not found"), &[("count", &missing.to_string())]))); + } + if !fonts.is_empty() { + parts.push(format!("({})", crate::i18n::fmt(tl!("fonts not copied: {fonts}"), &[("fonts", fonts)]))); + } + parts.join(" ") +} + /// `file.showPackage {folder}`: show a package folder in the file manager. pub fn show_package(app: &mut VectorcraftApp, p: &Value) -> Result { let folder = p.get("folder").and_then(Value::as_str).ok_or("missing `folder`")?.to_string(); diff --git a/crates/ui-egui/src/dialogs/tests_package.rs b/crates/ui-egui/src/dialogs/tests_package.rs index 2dc2f1254..68fe1c765 100644 --- a/crates/ui-egui/src/dialogs/tests_package.rs +++ b/crates/ui-egui/src/dialogs/tests_package.rs @@ -134,6 +134,20 @@ fn fonts_left_out_of_the_package_are_named() { assert!(app.ui.status.contains(gone), "{}", app.ui.status); } +#[test] +fn package_status_without_notes_has_no_extra_spaces() { + let dir = Folder::new("spaces"); + let mut app = saved(&dir); + app.run("ui.packageDialog", json!({})).unwrap(); + let out = dir.path("out"); + std::fs::create_dir_all(&out).unwrap(); + app.ui.dialog.as_mut().unwrap().fields.insert("folder".into(), json!(out)); + confirm(&mut app).unwrap(); + assert!(!app.ui.status.ends_with(' '), "{}", app.ui.status); + let detail = app.ui.dialog.as_ref().unwrap().str("detail"); + assert!(!detail.contains(" ."), "{detail}"); +} + #[test] fn package_without_a_location_says_so() { let dir = Folder::new("empty"); diff --git a/crates/ui-egui/src/i18n/bg.tsv b/crates/ui-egui/src/i18n/bg.tsv index 540028cfd..b66475eb0 100644 --- a/crates/ui-egui/src/i18n/bg.tsv +++ b/crates/ui-egui/src/i18n/bg.tsv @@ -5358,3 +5358,10 @@ theme Appearance Външен вид Fresco Фреска Effect Gallery… Галерия с ефекти… Effect Gallery Dialog Диалог „Галерия с ефекти“ +@msg Packaged {n} file(s) in {folder} Пакетирани са {n} файла в {folder} +@msg Packaged {n} file(s) {note} Пакетирани са {n} файла {note} +@msg Packaged {n} file(s) Пакетирани са {n} файла + Packaged {n} file(s) Пакетирани са {n} файла + Packaged {n} file(s) in {folder} Пакетирани са {n} файла в {folder} + Packaged {n} file(s) {note} Пакетирани са {n} файла {note} + {count} file(s) in {folder}. Show the package folder? {count} файл(а) в {folder}. Показване на папката на пакета? diff --git a/crates/ui-egui/src/i18n/cs.tsv b/crates/ui-egui/src/i18n/cs.tsv index 150d11b1c..9a5256f57 100644 --- a/crates/ui-egui/src/i18n/cs.tsv +++ b/crates/ui-egui/src/i18n/cs.tsv @@ -5402,3 +5402,10 @@ mark-style Japanese Japonské Fresco Freska Effect Gallery… Galerie efektů… Effect Gallery Dialog Dialog Galerie efektů +@msg Packaged {n} file(s) in {folder} Zabaleno souborů: {n} do {folder} +@msg Packaged {n} file(s) {note} Zabaleno souborů: {n} {note} +@msg Packaged {n} file(s) Zabaleno souborů: {n} + Packaged {n} file(s) Zabaleno souborů: {n} + Packaged {n} file(s) in {folder} Zabaleno souborů: {n} do {folder} + Packaged {n} file(s) {note} Zabaleno souborů: {n} {note} + {count} file(s) in {folder}. Show the package folder? Souborů: {count} v {folder}. Zobrazit složku balíčku? diff --git a/crates/ui-egui/src/i18n/da.tsv b/crates/ui-egui/src/i18n/da.tsv index 037759900..ea3b4cf9f 100644 --- a/crates/ui-egui/src/i18n/da.tsv +++ b/crates/ui-egui/src/i18n/da.tsv @@ -5374,3 +5374,10 @@ swatch Bright Violet Kraftig violet Fresco Fresko Effect Gallery… Effektgalleri… Effect Gallery Dialog Dialogboksen Effektgalleri +@msg Packaged {n} file(s) in {folder} Pakkede {n} fil(er) i {folder} +@msg Packaged {n} file(s) {note} Pakkede {n} fil(er) {note} +@msg Packaged {n} file(s) Pakkede {n} fil(er) + Packaged {n} file(s) Pakkede {n} fil(er) + Packaged {n} file(s) in {folder} Pakkede {n} fil(er) i {folder} + Packaged {n} file(s) {note} Pakkede {n} fil(er) {note} + {count} file(s) in {folder}. Show the package folder? {count} fil(er) i {folder}. Vis pakkemappen? diff --git a/crates/ui-egui/src/i18n/de.tsv b/crates/ui-egui/src/i18n/de.tsv index 15793ab3c..be635c5d5 100644 --- a/crates/ui-egui/src/i18n/de.tsv +++ b/crates/ui-egui/src/i18n/de.tsv @@ -4983,3 +4983,10 @@ effect Soft Weich Fresco Fresko Effect Gallery… Effekt-Galerie… Effect Gallery Dialog Dialogfeld „Effekt-Galerie“ +@msg Packaged {n} file(s) in {folder} {n} Datei(en) in {folder} verpackt +@msg Packaged {n} file(s) {note} {n} Datei(en) verpackt {note} +@msg Packaged {n} file(s) {n} Datei(en) verpackt + Packaged {n} file(s) {n} Datei(en) verpackt + Packaged {n} file(s) in {folder} {n} Datei(en) in {folder} verpackt + Packaged {n} file(s) {note} {n} Datei(en) verpackt {note} + {count} file(s) in {folder}. Show the package folder? {count} Datei(en) in {folder}. Paketordner anzeigen? diff --git a/crates/ui-egui/src/i18n/el.tsv b/crates/ui-egui/src/i18n/el.tsv index d84206d0e..3d5783a54 100644 --- a/crates/ui-egui/src/i18n/el.tsv +++ b/crates/ui-egui/src/i18n/el.tsv @@ -5354,3 +5354,10 @@ effect Points Σημεία Fresco Νωπογραφία Effect Gallery… Συλλογή εφέ… Effect Gallery Dialog Παράθυρο διαλόγου Συλλογή εφέ +@msg Packaged {n} file(s) in {folder} Συσκευάστηκαν {n} αρχεία στον φάκελο {folder} +@msg Packaged {n} file(s) {note} Συσκευάστηκαν {n} αρχεία {note} +@msg Packaged {n} file(s) Συσκευάστηκαν {n} αρχεία + Packaged {n} file(s) Συσκευάστηκαν {n} αρχεία + Packaged {n} file(s) in {folder} Συσκευάστηκαν {n} αρχεία στον φάκελο {folder} + Packaged {n} file(s) {note} Συσκευάστηκαν {n} αρχεία {note} + {count} file(s) in {folder}. Show the package folder? {count} αρχεία στον φάκελο {folder}. Να εμφανιστεί ο φάκελος συσκευασίας; diff --git a/crates/ui-egui/src/i18n/es.tsv b/crates/ui-egui/src/i18n/es.tsv index e080d910b..369d8c0a7 100644 --- a/crates/ui-egui/src/i18n/es.tsv +++ b/crates/ui-egui/src/i18n/es.tsv @@ -5344,3 +5344,10 @@ mark-style Japanese Japonesas Fresco Fresco Effect Gallery… Galería de efectos… Effect Gallery Dialog Cuadro de diálogo Galería de efectos +@msg Packaged {n} file(s) in {folder} Se empaquetaron {n} archivo(s) en {folder} +@msg Packaged {n} file(s) {note} Se empaquetaron {n} archivo(s) {note} +@msg Packaged {n} file(s) Se empaquetaron {n} archivo(s) + Packaged {n} file(s) Se empaquetaron {n} archivo(s) + Packaged {n} file(s) in {folder} Se empaquetaron {n} archivo(s) en {folder} + Packaged {n} file(s) {note} Se empaquetaron {n} archivo(s) {note} + {count} file(s) in {folder}. Show the package folder? {count} archivo(s) en {folder}. ¿Mostrar la carpeta del paquete? diff --git a/crates/ui-egui/src/i18n/fi.tsv b/crates/ui-egui/src/i18n/fi.tsv index 2ad8276db..7d93f0751 100644 --- a/crates/ui-egui/src/i18n/fi.tsv +++ b/crates/ui-egui/src/i18n/fi.tsv @@ -5433,3 +5433,10 @@ swatch Bright Violet Kirkas violetti Fresco Fresko Effect Gallery… Tehostegalleria… Effect Gallery Dialog Tehostegalleria-valintaikkuna +@msg Packaged {n} file(s) in {folder} Paketoitiin {n} tiedosto(a) kansioon {folder} +@msg Packaged {n} file(s) {note} Paketoitiin {n} tiedosto(a) {note} +@msg Packaged {n} file(s) Paketoitiin {n} tiedosto(a) + Packaged {n} file(s) Paketoitiin {n} tiedosto(a) + Packaged {n} file(s) in {folder} Paketoitiin {n} tiedosto(a) kansioon {folder} + Packaged {n} file(s) {note} Paketoitiin {n} tiedosto(a) {note} + {count} file(s) in {folder}. Show the package folder? {count} tiedosto(a) kansiossa {folder}. Näytetäänkö pakettikansio? diff --git a/crates/ui-egui/src/i18n/fr.tsv b/crates/ui-egui/src/i18n/fr.tsv index 585eeb268..2e2c13196 100644 --- a/crates/ui-egui/src/i18n/fr.tsv +++ b/crates/ui-egui/src/i18n/fr.tsv @@ -5401,3 +5401,10 @@ theme Appearance Apparence Fresco Fresque Effect Gallery… Galerie d'effets… Effect Gallery Dialog Boîte de dialogue Galerie d'effets +@msg Packaged {n} file(s) in {folder} {n} fichier(s) assemblé(s) dans {folder} +@msg Packaged {n} file(s) {note} {n} fichier(s) assemblé(s) {note} +@msg Packaged {n} file(s) {n} fichier(s) assemblé(s) + Packaged {n} file(s) {n} fichier(s) assemblé(s) + Packaged {n} file(s) in {folder} {n} fichier(s) assemblé(s) dans {folder} + Packaged {n} file(s) {note} {n} fichier(s) assemblé(s) {note} + {count} file(s) in {folder}. Show the package folder? {count} fichier(s) dans {folder}. Afficher le dossier de l’assemblage ? diff --git a/crates/ui-egui/src/i18n/hu.tsv b/crates/ui-egui/src/i18n/hu.tsv index 02884a9ce..44166d5a0 100644 --- a/crates/ui-egui/src/i18n/hu.tsv +++ b/crates/ui-egui/src/i18n/hu.tsv @@ -5388,3 +5388,10 @@ imageTrace Outline Körvonal Fresco Freskó Effect Gallery… Effektusgaléria… Effect Gallery Dialog Effektusgaléria párbeszédpanel +@msg Packaged {n} file(s) in {folder} Becsomagolt fájlok: {n}, mappa: {folder} +@msg Packaged {n} file(s) {note} Becsomagolt fájlok: {n} {note} +@msg Packaged {n} file(s) Becsomagolt fájlok: {n} + Packaged {n} file(s) Becsomagolt fájlok: {n} + Packaged {n} file(s) in {folder} Becsomagolt fájlok: {n}, mappa: {folder} + Packaged {n} file(s) {note} Becsomagolt fájlok: {n} {note} + {count} file(s) in {folder}. Show the package folder? Fájlok: {count}, mappa: {folder}. Megnyitod a csomag mappáját? diff --git a/crates/ui-egui/src/i18n/id.tsv b/crates/ui-egui/src/i18n/id.tsv index 13a1d9789..0d18d3799 100644 --- a/crates/ui-egui/src/i18n/id.tsv +++ b/crates/ui-egui/src/i18n/id.tsv @@ -5374,3 +5374,10 @@ swatch Bright Violet Violet cerah Fresco Fresko Effect Gallery… Galeri Efek… Effect Gallery Dialog Dialog Galeri Efek +@msg Packaged {n} file(s) in {folder} Berhasil mengemas {n} file di {folder} +@msg Packaged {n} file(s) {note} Berhasil mengemas {n} file {note} +@msg Packaged {n} file(s) Berhasil mengemas {n} file + Packaged {n} file(s) Berhasil mengemas {n} file + Packaged {n} file(s) in {folder} Berhasil mengemas {n} file di {folder} + Packaged {n} file(s) {note} Berhasil mengemas {n} file {note} + {count} file(s) in {folder}. Show the package folder? {count} file dalam {folder}. Tampilkan folder paket? diff --git a/crates/ui-egui/src/i18n/it.tsv b/crates/ui-egui/src/i18n/it.tsv index b51c0895a..fdb0f9e19 100644 --- a/crates/ui-egui/src/i18n/it.tsv +++ b/crates/ui-egui/src/i18n/it.tsv @@ -5017,3 +5017,10 @@ lighting Light Luce Fresco Affresco Effect Gallery… Galleria effetti… Effect Gallery Dialog Finestra di dialogo Galleria effetti +@msg Packaged {n} file(s) in {folder} Pacchetto creato con {n} file in {folder} +@msg Packaged {n} file(s) {note} Pacchetto creato con {n} file {note} +@msg Packaged {n} file(s) Pacchetto creato con {n} file + Packaged {n} file(s) Pacchetto creato con {n} file + Packaged {n} file(s) in {folder} Pacchetto creato con {n} file in {folder} + Packaged {n} file(s) {note} Pacchetto creato con {n} file {note} + {count} file(s) in {folder}. Show the package folder? {count} file in {folder}. Vuoi mostrare la cartella del pacchetto? diff --git a/crates/ui-egui/src/i18n/ja.tsv b/crates/ui-egui/src/i18n/ja.tsv index f397a9825..671a3f835 100644 --- a/crates/ui-egui/src/i18n/ja.tsv +++ b/crates/ui-egui/src/i18n/ja.tsv @@ -5079,3 +5079,10 @@ lighting Light ライト Simulate prints overprints as Overprint Preview shows them; separations always keep them. A preset flattens transparency before printing (PostScript files always flatten it). シミュレートでは、オーバープリントプレビューと同じ見え方でオーバープリントを印刷します。分版では常にオーバープリントが保持されます。プリセットを選ぶと、印刷前に透明が分割・統合されます (PostScript ファイルでは常に分割・統合されます)。 Effect Gallery… 効果ギャラリー… Effect Gallery Dialog 効果ギャラリーダイアログ +@msg Packaged {n} file(s) in {folder} {n} 個のファイルを {folder} にパッケージしました +@msg Packaged {n} file(s) {note} {n} 個のファイルをパッケージしました {note} +@msg Packaged {n} file(s) {n} 個のファイルをパッケージしました + Packaged {n} file(s) {n} 個のファイルをパッケージしました + Packaged {n} file(s) in {folder} {n} 個のファイルを {folder} にパッケージしました + Packaged {n} file(s) {note} {n} 個のファイルをパッケージしました {note} + {count} file(s) in {folder}. Show the package folder? {folder} に {count} 個のファイル。パッケージフォルダーを表示しますか? diff --git a/crates/ui-egui/src/i18n/ka.tsv b/crates/ui-egui/src/i18n/ka.tsv index 5ea99e684..e5bd4b2fc 100644 --- a/crates/ui-egui/src/i18n/ka.tsv +++ b/crates/ui-egui/src/i18n/ka.tsv @@ -5311,3 +5311,10 @@ imageTrace Outline კონტური Select artwork to apply effects აირჩიეთ ნამუშევარი ეფექტების გამოსაყენებლად Effect Gallery… ეფექტების გალერეა… Effect Gallery Dialog ეფექტების გალერეა დიალოგი +@msg Packaged {n} file(s) in {folder} შეფუთულია ფაილი ({n}) საქაღალდეში {folder} +@msg Packaged {n} file(s) {note} შეფუთულია ფაილი ({n}) {note} +@msg Packaged {n} file(s) შეფუთულია ფაილი ({n}) + Packaged {n} file(s) შეფუთულია ფაილი ({n}) + Packaged {n} file(s) in {folder} შეფუთულია ფაილი ({n}) საქაღალდეში {folder} + Packaged {n} file(s) {note} შეფუთულია ფაილი ({n}) {note} + {count} file(s) in {folder}. Show the package folder? ფაილები: {count}, ადგილი: {folder}. ვაჩვენოთ შეფუთვის საქაღალდე? diff --git a/crates/ui-egui/src/i18n/ko.tsv b/crates/ui-egui/src/i18n/ko.tsv index 1181b8eaf..bcb591a38 100644 --- a/crates/ui-egui/src/i18n/ko.tsv +++ b/crates/ui-egui/src/i18n/ko.tsv @@ -4980,3 +4980,10 @@ lighting Light 광원 Fresco 프레스코 Effect Gallery… 효과 갤러리… Effect Gallery Dialog 효과 갤러리 대화 상자 +@msg Packaged {n} file(s) in {folder} {folder}에 파일 {n}개를 패키지했습니다 +@msg Packaged {n} file(s) {note} 파일 {n}개를 패키지했습니다 {note} +@msg Packaged {n} file(s) 파일 {n}개를 패키지했습니다 + Packaged {n} file(s) 파일 {n}개를 패키지했습니다 + Packaged {n} file(s) in {folder} {folder}에 파일 {n}개를 패키지했습니다 + Packaged {n} file(s) {note} 파일 {n}개를 패키지했습니다 {note} + {count} file(s) in {folder}. Show the package folder? {folder}에 파일 {count}개. 패키지 폴더를 표시하시겠습니까? diff --git a/crates/ui-egui/src/i18n/nl.tsv b/crates/ui-egui/src/i18n/nl.tsv index 9a43532e7..6666f4515 100644 --- a/crates/ui-egui/src/i18n/nl.tsv +++ b/crates/ui-egui/src/i18n/nl.tsv @@ -5417,3 +5417,10 @@ swatch Bright Violet Felviolet Fresco Fresco Effect Gallery… Effectgalerij… Effect Gallery Dialog Dialoogvenster Effectgalerij +@msg Packaged {n} file(s) in {folder} {n} bestand(en) verpakt in {folder} +@msg Packaged {n} file(s) {note} {n} bestand(en) verpakt {note} +@msg Packaged {n} file(s) {n} bestand(en) verpakt + Packaged {n} file(s) {n} bestand(en) verpakt + Packaged {n} file(s) in {folder} {n} bestand(en) verpakt in {folder} + Packaged {n} file(s) {note} {n} bestand(en) verpakt {note} + {count} file(s) in {folder}. Show the package folder? {count} bestand(en) in {folder}. De pakketmap openen? diff --git a/crates/ui-egui/src/i18n/pl.tsv b/crates/ui-egui/src/i18n/pl.tsv index f537afcf3..6728f08a3 100644 --- a/crates/ui-egui/src/i18n/pl.tsv +++ b/crates/ui-egui/src/i18n/pl.tsv @@ -5254,3 +5254,10 @@ mark-style Japanese Japońskie Fresco Fresk Effect Gallery… Galeria efektów… Effect Gallery Dialog Okno dialogowe Galeria efektów +@msg Packaged {n} file(s) in {folder} Spakowane pliki: {n} w {folder} +@msg Packaged {n} file(s) {note} Spakowane pliki: {n} {note} +@msg Packaged {n} file(s) Spakowane pliki: {n} + Packaged {n} file(s) Spakowane pliki: {n} + Packaged {n} file(s) in {folder} Spakowane pliki: {n} w {folder} + Packaged {n} file(s) {note} Spakowane pliki: {n} {note} + {count} file(s) in {folder}. Show the package folder? Pliki: {count} w {folder}. Pokazać folder pakietu? diff --git a/crates/ui-egui/src/i18n/pt-br.tsv b/crates/ui-egui/src/i18n/pt-br.tsv index fac337a7b..2652b733e 100644 --- a/crates/ui-egui/src/i18n/pt-br.tsv +++ b/crates/ui-egui/src/i18n/pt-br.tsv @@ -5319,3 +5319,10 @@ mark-style Japanese Japonesas Fresco Afresco Effect Gallery… Galeria de Efeitos… Effect Gallery Dialog Caixa de diálogo Galeria de Efeitos +@msg Packaged {n} file(s) in {folder} {n} arquivo(s) empacotado(s) em {folder} +@msg Packaged {n} file(s) {note} {n} arquivo(s) empacotado(s) {note} +@msg Packaged {n} file(s) {n} arquivo(s) empacotado(s) + Packaged {n} file(s) {n} arquivo(s) empacotado(s) + Packaged {n} file(s) in {folder} {n} arquivo(s) empacotado(s) em {folder} + Packaged {n} file(s) {note} {n} arquivo(s) empacotado(s) {note} + {count} file(s) in {folder}. Show the package folder? {count} arquivo(s) em {folder}. Mostrar a pasta do pacote? diff --git a/crates/ui-egui/src/i18n/ru.tsv b/crates/ui-egui/src/i18n/ru.tsv index fc8645d15..121c69b02 100644 --- a/crates/ui-egui/src/i18n/ru.tsv +++ b/crates/ui-egui/src/i18n/ru.tsv @@ -5013,3 +5013,10 @@ lighting Light Свет Fresco Фреска Effect Gallery… Галерея эффектов… Effect Gallery Dialog Диалог «Галерея эффектов» +@msg Packaged {n} file(s) in {folder} Упаковано файлов: {n} в {folder} +@msg Packaged {n} file(s) {note} Упаковано файлов: {n} {note} +@msg Packaged {n} file(s) Упаковано файлов: {n} + Packaged {n} file(s) Упаковано файлов: {n} + Packaged {n} file(s) in {folder} Упаковано файлов: {n} в {folder} + Packaged {n} file(s) {note} Упаковано файлов: {n} {note} + {count} file(s) in {folder}. Show the package folder? Файлов: {count} в {folder}. Показать папку пакета? diff --git a/crates/ui-egui/src/i18n/sv.tsv b/crates/ui-egui/src/i18n/sv.tsv index 9cfe7e22e..e667d47fe 100644 --- a/crates/ui-egui/src/i18n/sv.tsv +++ b/crates/ui-egui/src/i18n/sv.tsv @@ -5358,3 +5358,10 @@ theme Appearance Utseende Fresco Fresk Effect Gallery… Effektgalleri… Effect Gallery Dialog Dialogrutan Effektgalleri +@msg Packaged {n} file(s) in {folder} Paketerade {n} fil(er) i {folder} +@msg Packaged {n} file(s) {note} Paketerade {n} fil(er) {note} +@msg Packaged {n} file(s) Paketerade {n} fil(er) + Packaged {n} file(s) Paketerade {n} fil(er) + Packaged {n} file(s) in {folder} Paketerade {n} fil(er) i {folder} + Packaged {n} file(s) {note} Paketerade {n} fil(er) {note} + {count} file(s) in {folder}. Show the package folder? {count} fil(er) i {folder}. Visa paketmappen? diff --git a/crates/ui-egui/src/i18n/tests.rs b/crates/ui-egui/src/i18n/tests.rs index 7725b96ba..e0ebdf7e3 100644 --- a/crates/ui-egui/src/i18n/tests.rs +++ b/crates/ui-egui/src/i18n/tests.rs @@ -1688,11 +1688,15 @@ fn messages_translate_by_template_and_their_parts() { #[test] fn package_status_message_templates_parse() { let c = Catalog::parse(concat!( - "@msg\tPackaged {n} file(s) in {folder} {note}\tpackaged\n", - "@msg\t{count} file(s) in {folder} {note}. Show the package folder?\tdetail\n", + "@msg\tPackaged {n} file(s) in {folder}\tpackaged plain\n", + "@msg\tPackaged {n} file(s) in {folder} {note}\tpackaged noted\n", + "@msg\t{count} file(s) in {folder}. Show the package folder?\tdetail plain\n", + "@msg\t{count} file(s) in {folder} {note}. Show the package folder?\tdetail noted\n", )); + assert!(c.message("Packaged 1 file(s) in /tmp/foo").is_some()); assert!(c.message("Packaged 1 file(s) in /tmp/foo (1 linked file(s) not found)").is_some()); assert!(c.message("2 file(s) in /tmp/foo. Show the package folder?").is_some()); + assert!(c.message("2 file(s) in /tmp/foo (1 linked file(s) not found). Show the package folder?").is_some()); assert!(Catalog::parse("@msg\tPackaged {n} file(s) in {folder}{note}\tbad\n").message("Packaged 1 file(s) in /a b").is_none()); } diff --git a/crates/ui-egui/src/i18n/tr.tsv b/crates/ui-egui/src/i18n/tr.tsv index 0d85400be..d2bd8ad07 100644 --- a/crates/ui-egui/src/i18n/tr.tsv +++ b/crates/ui-egui/src/i18n/tr.tsv @@ -5361,8 +5361,14 @@ theme Appearance Görünüm Fresco Fresk Effect Gallery… Efekt Galerisi… Effect Gallery Dialog Efekt Galerisi İletişim Kutusu - +@msg Packaged {n} file(s) in {folder} {folder} biçiminde paketlenmiş {n} dosyası/dosyaları +@msg Packaged {n} file(s) {note} Paketlenmiş {n} dosyası/dosyaları {note} +@msg Packaged {n} file(s) Paketlenmiş {n} dosyası/dosyaları # Artwork drag between document tabs. Drop Artwork Çizimi Bırak @msg {key} must be [x, y] with finite coordinates {key}, sonlu koordinatlı [x, y] olmalı @msg ids must contain 1–10000 object ids ids 1–10000 nesne kimliği içermeli + Packaged {n} file(s) Paketlenmiş {n} dosyası/dosyaları + Packaged {n} file(s) in {folder} {folder} biçiminde paketlenmiş {n} dosyası/dosyaları + Packaged {n} file(s) {note} Paketlenmiş {n} dosyası/dosyaları {note} + {count} file(s) in {folder}. Show the package folder? {folder} içindeki {count} dosyası/dosyaları. Paket klasörü gösterilsin mi? diff --git a/crates/ui-egui/src/i18n/uk.tsv b/crates/ui-egui/src/i18n/uk.tsv index 2a5327d3d..5aeb9b144 100644 --- a/crates/ui-egui/src/i18n/uk.tsv +++ b/crates/ui-egui/src/i18n/uk.tsv @@ -4997,3 +4997,10 @@ lighting Light Світло Fresco Фреска Effect Gallery… Галерея ефектів… Effect Gallery Dialog Діалог «Галерея ефектів» +@msg Packaged {n} file(s) in {folder} Упаковано файли: {n} {folder} +@msg Packaged {n} file(s) {note} Упаковано файли: {n} {note} +@msg Packaged {n} file(s) Упаковано файли: {n} + Packaged {n} file(s) Упаковано файли: {n} + Packaged {n} file(s) in {folder} Упаковано файли: {n} {folder} + Packaged {n} file(s) {note} Упаковано файли: {n} {note} + {count} file(s) in {folder}. Show the package folder? файлів: {count} {folder}. Показати папку пакета? diff --git a/crates/ui-egui/src/i18n/vi.tsv b/crates/ui-egui/src/i18n/vi.tsv index a66655964..00f5cf042 100644 --- a/crates/ui-egui/src/i18n/vi.tsv +++ b/crates/ui-egui/src/i18n/vi.tsv @@ -4997,3 +4997,10 @@ theme Appearance Giao diện Fresco Bích họa Effect Gallery… Thư viện hiệu ứng… Effect Gallery Dialog Hộp thoại Thư viện hiệu ứng +@msg Packaged {n} file(s) in {folder} Đã đóng gói {n} tệp trong {folder} +@msg Packaged {n} file(s) {note} Đã đóng gói {n} tệp {note} +@msg Packaged {n} file(s) Đã đóng gói {n} tệp + Packaged {n} file(s) Đã đóng gói {n} tệp + Packaged {n} file(s) in {folder} Đã đóng gói {n} tệp trong {folder} + Packaged {n} file(s) {note} Đã đóng gói {n} tệp {note} + {count} file(s) in {folder}. Show the package folder? {count} tệp trong {folder}. Hiện thư mục gói? diff --git a/crates/ui-egui/src/i18n/zh-hans.tsv b/crates/ui-egui/src/i18n/zh-hans.tsv index 62d6f357c..be7bdf10b 100644 --- a/crates/ui-egui/src/i18n/zh-hans.tsv +++ b/crates/ui-egui/src/i18n/zh-hans.tsv @@ -5241,3 +5241,10 @@ lighting Light 光源 Fresco 壁画 Effect Gallery… 效果库… Effect Gallery Dialog 效果库对话框 +@msg Packaged {n} file(s) in {folder} 已将 {n} 个文件打包到 {folder} +@msg Packaged {n} file(s) {note} 已打包 {n} 个文件 {note} +@msg Packaged {n} file(s) 已打包 {n} 个文件 + Packaged {n} file(s) 已打包 {n} 个文件 + Packaged {n} file(s) in {folder} 已将 {n} 个文件打包到 {folder} + Packaged {n} file(s) {note} 已打包 {n} 个文件 {note} + {count} file(s) in {folder}. Show the package folder? {folder} 中有 {count} 个文件。要显示打包文件夹吗? diff --git a/crates/ui-egui/src/i18n/zh-hant.tsv b/crates/ui-egui/src/i18n/zh-hant.tsv index 9f1ed0e7c..01e3a90b3 100644 --- a/crates/ui-egui/src/i18n/zh-hant.tsv +++ b/crates/ui-egui/src/i18n/zh-hant.tsv @@ -5036,3 +5036,10 @@ lighting Light 光源 Fresco 壁畫 Effect Gallery… 效果庫… Effect Gallery Dialog 效果庫對話框 +@msg Packaged {n} file(s) in {folder} 已將 {n} 個檔案封裝到 {folder} +@msg Packaged {n} file(s) {note} 已封裝 {n} 個檔案 {note} +@msg Packaged {n} file(s) 已封裝 {n} 個檔案 + Packaged {n} file(s) 已封裝 {n} 個檔案 + Packaged {n} file(s) in {folder} 已將 {n} 個檔案封裝到 {folder} + Packaged {n} file(s) {note} 已封裝 {n} 個檔案 {note} + {count} file(s) in {folder}. Show the package folder? {folder} 中有 {count} 個檔案。要顯示封裝資料夾嗎?