mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(erase-object): add freeform lasso selection mode (#503)
Adds a Brush | Lasso toggle to the object eraser. Lasso lets the user drag a freeform loop that auto-closes and fills into the mask, so they select around a subject instead of painting every pixel. Frontend-only; the mask contract is unchanged. Also un-skips the erase-object e2e suite via a shared mockAiFeaturesInstalled helper (7 tests now run; 2 multi-file tests fixme'd for a pre-existing tool-page remount bug). Closes #492.
This commit is contained in:
@@ -1555,6 +1555,8 @@ export const ar: TranslationKeys = {
|
||||
progressLabelBatch: "جاري تكبير {count} صورة",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "فرشاة",
|
||||
lassoMode: "لاسو",
|
||||
brushSize: "حجم الفرشاة",
|
||||
fine: "دقيق",
|
||||
wide: "عريض",
|
||||
@@ -1563,6 +1565,7 @@ export const ar: TranslationKeys = {
|
||||
outputFormat: "صيغة الإخراج",
|
||||
quality: "الجودة",
|
||||
paintHint: "ارسم فوق الكائنات التي تريد إزالتها. استخدم Ctrl+Z للتراجع.",
|
||||
lassoHint: "ارسم حلقة حول الكائن الذي تريد إزالته. استخدم Ctrl+Z للتراجع.",
|
||||
submit: "مسح الكائن",
|
||||
submitBatch: "مسح الكل ({count})",
|
||||
progressLabel: "جاري مسح الكائن",
|
||||
|
||||
@@ -1572,6 +1572,8 @@ export const de: TranslationKeys = {
|
||||
progressLabelBatch: "{count} Bilder werden hochskaliert",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pinsel",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Pinselgröße",
|
||||
fine: "Fein",
|
||||
wide: "Breit",
|
||||
@@ -1581,6 +1583,8 @@ export const de: TranslationKeys = {
|
||||
quality: "Qualität",
|
||||
paintHint:
|
||||
"Malen Sie über die Objekte, die Sie entfernen möchten. Strg+Z zum Rückgängigmachen.",
|
||||
lassoHint:
|
||||
"Ziehen Sie eine Schlaufe um das Objekt, das Sie entfernen möchten. Strg+Z zum Rückgängigmachen.",
|
||||
submit: "Objekt entfernen",
|
||||
submitBatch: "Alle entfernen ({count})",
|
||||
progressLabel: "Objekt wird entfernt",
|
||||
|
||||
@@ -1519,6 +1519,8 @@ export const en = {
|
||||
progressLabelBatch: "Upscaling {count} images",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Brush",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Brush Size",
|
||||
fine: "Fine",
|
||||
wide: "Wide",
|
||||
@@ -1527,6 +1529,7 @@ export const en = {
|
||||
outputFormat: "Output Format",
|
||||
quality: "Quality",
|
||||
paintHint: "Paint over the objects you want to remove. Use Ctrl+Z to undo.",
|
||||
lassoHint: "Draw a loop around the object you want to remove. Use Ctrl+Z to undo.",
|
||||
submit: "Erase Object",
|
||||
submitBatch: "Erase All ({count})",
|
||||
progressLabel: "Erasing object",
|
||||
|
||||
@@ -1555,6 +1555,8 @@ export const es: TranslationKeys = {
|
||||
progressLabelBatch: "Escalando {count} imágenes",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pincel",
|
||||
lassoMode: "Lazo",
|
||||
brushSize: "Tamaño del pincel",
|
||||
fine: "Fino",
|
||||
wide: "Ancho",
|
||||
@@ -1563,6 +1565,8 @@ export const es: TranslationKeys = {
|
||||
outputFormat: "Formato de salida",
|
||||
quality: "Calidad",
|
||||
paintHint: "Pinta sobre los objetos que quieras eliminar. Usa Ctrl+Z para deshacer.",
|
||||
lassoHint:
|
||||
"Dibuja un lazo alrededor del objeto que quieras eliminar. Usa Ctrl+Z para deshacer.",
|
||||
submit: "Borrar objeto",
|
||||
submitBatch: "Borrar todos ({count})",
|
||||
progressLabel: "Borrando objeto",
|
||||
|
||||
@@ -1579,6 +1579,8 @@ export const fr: TranslationKeys = {
|
||||
progressLabelBatch: "Agrandissement de {count} images",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pinceau",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Taille du pinceau",
|
||||
fine: "Fin",
|
||||
wide: "Large",
|
||||
@@ -1588,6 +1590,8 @@ export const fr: TranslationKeys = {
|
||||
quality: "Qualité",
|
||||
paintHint:
|
||||
"Peignez sur les objets que vous souhaitez supprimer. Utilisez Ctrl+Z pour annuler.",
|
||||
lassoHint:
|
||||
"Tracez une boucle autour de l'objet que vous souhaitez supprimer. Utilisez Ctrl+Z pour annuler.",
|
||||
submit: "Effacer l'objet",
|
||||
submitBatch: "Tout effacer ({count})",
|
||||
progressLabel: "Effacement de l'objet",
|
||||
|
||||
@@ -1385,6 +1385,8 @@ export const hi: TranslationKeys = {
|
||||
progressLabelBatch: "{count} इमेज अपस्केल हो रही हैं",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "ब्रश",
|
||||
lassoMode: "लासो",
|
||||
brushSize: "ब्रश साइज़",
|
||||
fine: "महीन",
|
||||
wide: "चौड़ा",
|
||||
@@ -1393,6 +1395,7 @@ export const hi: TranslationKeys = {
|
||||
outputFormat: "आउटपुट फॉर्मेट",
|
||||
quality: "क्वालिटी",
|
||||
paintHint: "जिन वस्तुओं को हटाना है उन पर पेंट करें। पूर्ववत के लिए Ctrl+Z दबाएं।",
|
||||
lassoHint: "जिस वस्तु को हटाना है उसके चारों ओर लूप बनाएं। पूर्ववत के लिए Ctrl+Z दबाएं।",
|
||||
submit: "ऑब्जेक्ट मिटाएं",
|
||||
submitBatch: "सभी मिटाएं ({count})",
|
||||
progressLabel: "ऑब्जेक्ट मिटाया जा रहा है",
|
||||
|
||||
@@ -1565,6 +1565,8 @@ export const id: TranslationKeys = {
|
||||
progressLabelBatch: "Memperbesar {count} gambar",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Kuas",
|
||||
lassoMode: "Laso",
|
||||
brushSize: "Ukuran Kuas",
|
||||
fine: "Halus",
|
||||
wide: "Lebar",
|
||||
@@ -1573,6 +1575,8 @@ export const id: TranslationKeys = {
|
||||
outputFormat: "Format Output",
|
||||
quality: "Kualitas",
|
||||
paintHint: "Cat di atas objek yang ingin Anda hapus. Gunakan Ctrl+Z untuk undo.",
|
||||
lassoHint:
|
||||
"Gambar lingkaran di sekeliling objek yang ingin Anda hapus. Gunakan Ctrl+Z untuk undo.",
|
||||
submit: "Hapus Objek",
|
||||
submitBatch: "Hapus Semua ({count})",
|
||||
progressLabel: "Menghapus objek",
|
||||
|
||||
@@ -1570,6 +1570,8 @@ export const it: TranslationKeys = {
|
||||
progressLabelBatch: "Ingrandimento di {count} immagini",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pennello",
|
||||
lassoMode: "Lazo",
|
||||
brushSize: "Dimensione pennello",
|
||||
fine: "Sottile",
|
||||
wide: "Largo",
|
||||
@@ -1578,6 +1580,8 @@ export const it: TranslationKeys = {
|
||||
outputFormat: "Formato di output",
|
||||
quality: "Qualità",
|
||||
paintHint: "Dipingi sopra gli oggetti che vuoi rimuovere. Usa Ctrl+Z per annullare.",
|
||||
lassoHint:
|
||||
"Traccia un anello attorno all'oggetto che vuoi rimuovere. Usa Ctrl+Z per annullare.",
|
||||
submit: "Cancella oggetto",
|
||||
submitBatch: "Cancella tutti ({count})",
|
||||
progressLabel: "Cancellazione oggetto",
|
||||
|
||||
@@ -1527,6 +1527,8 @@ export const ja: TranslationKeys = {
|
||||
progressLabelBatch: "{count}枚の画像をアップスケール中",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "ブラシ",
|
||||
lassoMode: "投げ縄",
|
||||
brushSize: "ブラシサイズ",
|
||||
fine: "細い",
|
||||
wide: "太い",
|
||||
@@ -1535,6 +1537,7 @@ export const ja: TranslationKeys = {
|
||||
outputFormat: "出力フォーマット",
|
||||
quality: "品質",
|
||||
paintHint: "除去したいオブジェクトの上を塗ってください。Ctrl+Zで元に戻せます。",
|
||||
lassoHint: "除去したいオブジェクトを囲むように輪を描いてください。Ctrl+Zで元に戻せます。",
|
||||
submit: "消去",
|
||||
submitBatch: "すべて消去({count})",
|
||||
progressLabel: "オブジェクトを消去中",
|
||||
|
||||
@@ -1509,6 +1509,8 @@ export const ko: TranslationKeys = {
|
||||
progressLabelBatch: "{count}개 이미지 업스케일 중",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "브러시",
|
||||
lassoMode: "올가미",
|
||||
brushSize: "브러시 크기",
|
||||
fine: "가늘게",
|
||||
wide: "굵게",
|
||||
@@ -1517,6 +1519,7 @@ export const ko: TranslationKeys = {
|
||||
outputFormat: "출력 포맷",
|
||||
quality: "품질",
|
||||
paintHint: "제거할 객체 위를 칠하세요. Ctrl+Z로 실행 취소할 수 있습니다.",
|
||||
lassoHint: "제거할 객체 주위에 올가미를 그리세요. Ctrl+Z로 실행 취소할 수 있습니다.",
|
||||
submit: "객체 지우기",
|
||||
submitBatch: "모두 지우기 ({count})",
|
||||
progressLabel: "객체 지우는 중",
|
||||
|
||||
@@ -1569,6 +1569,8 @@ export const nl: TranslationKeys = {
|
||||
progressLabelBatch: "{count} afbeeldingen opschalen",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Penseel",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Penseelgrootte",
|
||||
fine: "Fijn",
|
||||
wide: "Breed",
|
||||
@@ -1578,6 +1580,8 @@ export const nl: TranslationKeys = {
|
||||
quality: "Kwaliteit",
|
||||
paintHint:
|
||||
"Verf over de objecten die je wilt verwijderen. Gebruik Ctrl+Z om ongedaan te maken.",
|
||||
lassoHint:
|
||||
"Teken een lus rond het object dat je wilt verwijderen. Gebruik Ctrl+Z om ongedaan te maken.",
|
||||
submit: "Object verwijderen",
|
||||
submitBatch: "Alles verwijderen ({count})",
|
||||
progressLabel: "Object verwijderen",
|
||||
|
||||
@@ -1570,6 +1570,8 @@ export const pl: TranslationKeys = {
|
||||
progressLabelBatch: "Powiększanie {count} obrazów",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pędzel",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Rozmiar pędzla",
|
||||
fine: "Cienki",
|
||||
wide: "Szeroki",
|
||||
@@ -1578,6 +1580,7 @@ export const pl: TranslationKeys = {
|
||||
outputFormat: "Format wyjściowy",
|
||||
quality: "Jakość",
|
||||
paintHint: "Zamaluj obiekty, które chcesz usunąć. Naciśnij Ctrl+Z, aby cofnąć.",
|
||||
lassoHint: "Narysuj pętlę wokół obiektu, który chcesz usunąć. Naciśnij Ctrl+Z, aby cofnąć.",
|
||||
submit: "Usuń obiekt",
|
||||
submitBatch: "Usuń wszystko ({count})",
|
||||
progressLabel: "Usuwanie obiektu",
|
||||
|
||||
@@ -1568,6 +1568,8 @@ export const ptBR: TranslationKeys = {
|
||||
progressLabelBatch: "Ampliando {count} imagens",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pincel",
|
||||
lassoMode: "Laço",
|
||||
brushSize: "Tamanho do pincel",
|
||||
fine: "Fino",
|
||||
wide: "Largo",
|
||||
@@ -1576,6 +1578,7 @@ export const ptBR: TranslationKeys = {
|
||||
outputFormat: "Formato de saída",
|
||||
quality: "Qualidade",
|
||||
paintHint: "Pinte sobre os objetos que deseja remover. Use Ctrl+Z para desfazer.",
|
||||
lassoHint: "Desenhe um laço ao redor do objeto que deseja remover. Use Ctrl+Z para desfazer.",
|
||||
submit: "Apagar objeto",
|
||||
submitBatch: "Apagar todos ({count})",
|
||||
progressLabel: "Apagando objeto",
|
||||
|
||||
@@ -1565,6 +1565,8 @@ export const ru: TranslationKeys = {
|
||||
progressLabelBatch: "Увеличение {count} изображений",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Кисть",
|
||||
lassoMode: "Лассо",
|
||||
brushSize: "Размер кисти",
|
||||
fine: "Тонкая",
|
||||
wide: "Широкая",
|
||||
@@ -1573,6 +1575,7 @@ export const ru: TranslationKeys = {
|
||||
outputFormat: "Формат вывода",
|
||||
quality: "Качество",
|
||||
paintHint: "Закрасьте объекты, которые хотите удалить. Нажмите Ctrl+Z для отмены.",
|
||||
lassoHint: "Обведите петлёй объект, который хотите удалить. Нажмите Ctrl+Z для отмены.",
|
||||
submit: "Удалить объект",
|
||||
submitBatch: "Удалить всё ({count})",
|
||||
progressLabel: "Удаление объекта",
|
||||
|
||||
@@ -1565,6 +1565,8 @@ export const sv: TranslationKeys = {
|
||||
progressLabelBatch: "Uppskalar {count} bilder",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Pensel",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Penselstorlek",
|
||||
fine: "Fin",
|
||||
wide: "Bred",
|
||||
@@ -1573,6 +1575,7 @@ export const sv: TranslationKeys = {
|
||||
outputFormat: "Utdataformat",
|
||||
quality: "Kvalitet",
|
||||
paintHint: "Måla över objekten du vill ta bort. Använd Ctrl+Z för att ångra.",
|
||||
lassoHint: "Rita en ögla runt objektet du vill ta bort. Använd Ctrl+Z för att ångra.",
|
||||
submit: "Radera objekt",
|
||||
submitBatch: "Radera alla ({count})",
|
||||
progressLabel: "Raderar objekt",
|
||||
|
||||
@@ -1545,6 +1545,8 @@ export const th: TranslationKeys = {
|
||||
progressLabelBatch: "กำลังขยาย {count} ภาพ",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "แปรง",
|
||||
lassoMode: "ลาสโซ",
|
||||
brushSize: "ขนาดแปรง",
|
||||
fine: "ละเอียด",
|
||||
wide: "กว้าง",
|
||||
@@ -1553,6 +1555,7 @@ export const th: TranslationKeys = {
|
||||
outputFormat: "รูปแบบเอาต์พุต",
|
||||
quality: "คุณภาพ",
|
||||
paintHint: "ระบายทับวัตถุที่ต้องการลบ กด Ctrl+Z เพื่อเลิกทำ",
|
||||
lassoHint: "วาดวงรอบวัตถุที่ต้องการลบ กด Ctrl+Z เพื่อเลิกทำ",
|
||||
submit: "ลบวัตถุ",
|
||||
submitBatch: "ลบทั้งหมด ({count})",
|
||||
progressLabel: "กำลังลบวัตถุ",
|
||||
|
||||
@@ -1568,6 +1568,8 @@ export const tr: TranslationKeys = {
|
||||
progressLabelBatch: "{count} görüntü büyütülüyor",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Fırça",
|
||||
lassoMode: "Kement",
|
||||
brushSize: "Fırça Boyutu",
|
||||
fine: "İnce",
|
||||
wide: "Geniş",
|
||||
@@ -1577,6 +1579,8 @@ export const tr: TranslationKeys = {
|
||||
quality: "Kalite",
|
||||
paintHint:
|
||||
"Kaldırmak istediğiniz nesnelerin üzerini boyayın. Geri almak için Ctrl+Z kullanın.",
|
||||
lassoHint:
|
||||
"Kaldırmak istediğiniz nesnenin etrafına bir ilmek çizin. Geri almak için Ctrl+Z kullanın.",
|
||||
submit: "Nesneyi Sil",
|
||||
submitBatch: "Tümünü Sil ({count})",
|
||||
progressLabel: "Nesne siliniyor",
|
||||
|
||||
@@ -1568,6 +1568,8 @@ export const uk: TranslationKeys = {
|
||||
progressLabelBatch: "Збільшення {count} зображень",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Пензель",
|
||||
lassoMode: "Ласо",
|
||||
brushSize: "Розмір пензля",
|
||||
fine: "Тонкий",
|
||||
wide: "Широкий",
|
||||
@@ -1576,6 +1578,7 @@ export const uk: TranslationKeys = {
|
||||
outputFormat: "Формат виводу",
|
||||
quality: "Якість",
|
||||
paintHint: "Замалюйте об'єкти, які хочете видалити. Натисніть Ctrl+Z для скасування.",
|
||||
lassoHint: "Обведіть петлею об'єкт, який хочете видалити. Натисніть Ctrl+Z для скасування.",
|
||||
submit: "Видалити об'єкт",
|
||||
submitBatch: "Видалити все ({count})",
|
||||
progressLabel: "Видалення об'єкта",
|
||||
|
||||
@@ -1568,6 +1568,8 @@ export const vi: TranslationKeys = {
|
||||
progressLabelBatch: "Đang phóng to {count} ảnh",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "Cọ",
|
||||
lassoMode: "Lasso",
|
||||
brushSize: "Kích thước cọ",
|
||||
fine: "Mảnh",
|
||||
wide: "Rộng",
|
||||
@@ -1576,6 +1578,7 @@ export const vi: TranslationKeys = {
|
||||
outputFormat: "Định dạng đầu ra",
|
||||
quality: "Chất lượng",
|
||||
paintHint: "Tô lên các đối tượng bạn muốn xóa. Nhấn Ctrl+Z để hoàn tác.",
|
||||
lassoHint: "Vẽ một vòng quanh đối tượng bạn muốn xóa. Nhấn Ctrl+Z để hoàn tác.",
|
||||
submit: "Xóa đối tượng",
|
||||
submitBatch: "Xóa tất cả ({count})",
|
||||
progressLabel: "Đang xóa đối tượng",
|
||||
|
||||
@@ -1333,6 +1333,8 @@ export const zhCN: TranslationKeys = {
|
||||
progressLabelBatch: "正在放大 {count} 张图片",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "画笔",
|
||||
lassoMode: "套索",
|
||||
brushSize: "画笔大小",
|
||||
fine: "细",
|
||||
wide: "粗",
|
||||
@@ -1341,6 +1343,7 @@ export const zhCN: TranslationKeys = {
|
||||
outputFormat: "输出格式",
|
||||
quality: "质量",
|
||||
paintHint: "涂抹要移除的物体。按 Ctrl+Z 撤销。",
|
||||
lassoHint: "在要移除的物体周围画一个圈。按 Ctrl+Z 撤销。",
|
||||
submit: "擦除物体",
|
||||
submitBatch: "全部擦除({count})",
|
||||
progressLabel: "正在擦除物体",
|
||||
|
||||
@@ -1333,6 +1333,8 @@ export const zhTW: TranslationKeys = {
|
||||
progressLabelBatch: "正在放大{count}張影像",
|
||||
},
|
||||
"erase-object": {
|
||||
brushMode: "筆刷",
|
||||
lassoMode: "套索",
|
||||
brushSize: "筆刷大小",
|
||||
fine: "精細",
|
||||
wide: "寬大",
|
||||
@@ -1341,6 +1343,7 @@ export const zhTW: TranslationKeys = {
|
||||
outputFormat: "輸出格式",
|
||||
quality: "品質",
|
||||
paintHint: "在要移除的物件上塗抹。按Ctrl+Z復原。",
|
||||
lassoHint: "在要移除的物件周圍畫一個圈。按Ctrl+Z復原。",
|
||||
submit: "擦除物件",
|
||||
submitBatch: "全部擦除({count})",
|
||||
progressLabel: "正在擦除物件",
|
||||
|
||||
Reference in New Issue
Block a user