diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json index 8a0b232..7f5e523 100644 --- a/meshchatx/src/frontend/locales/de.json +++ b/meshchatx/src/frontend/locales/de.json @@ -302,6 +302,31 @@ "copy": "Copy", "copy_to_clipboard": "Copy to clipboard" }, + "stickers": { + "settings_title": "Sticker", + "settings_description": "Gespeicherte Bilder für diese Identität. Im Composer nutzen oder aus Chats speichern. JSON-Backup exportieren oder importieren.", + "export": "Sticker exportieren", + "import": "Sticker importieren", + "export_done": "Sticker exportiert", + "replace_duplicates": "Doppelte Bilder beim Import ersetzen", + "count": "{count} gespeicherte Sticker", + "open_picker": "Sticker", + "picker_tooltip": "Emoji und Sticker", + "tab_emojis": "Emojis", + "tab_stickers": "Sticker", + "empty_library": "Noch keine Sticker.", + "drop_or_click_hint": "Bilder hier ablegen oder klicken (PNG, JPEG, GIF, WebP, BMP, max. 512 KB pro Datei).", + "add_more_hint": "Weitere Sticker per Ablegen oder Klick hinzufügen.", + "file_too_large": "Jeder Sticker darf höchstens 512 KB groß sein.", + "unsupported_type": "Nur PNG, JPEG, GIF, WebP oder BMP.", + "uploaded_count": "{count} Sticker hinzugefügt.", + "save_to_library": "Bild zu Sticker speichern", + "saved": "Sticker gespeichert", + "duplicate": "Bereits in der Sammlung", + "save_failed": "Sticker konnte nicht gespeichert werden", + "import_success": "Importiert {imported}, übersprungen {skipped_duplicates} Duplikate, ungültig {skipped_invalid}", + "import_failed": "Sticker-Import fehlgeschlagen" + }, "maintenance": { "title": "Wartung & Daten", "description": "Verwalten Sie Ihre lokalen Daten, löschen Sie Caches und sichern Sie Konversationen.", @@ -313,6 +338,9 @@ "clear_nomadnet_favs_desc": "Alle gespeicherten NomadNetwork-Knoten aus den Favoriten entfernen.", "clear_lxmf_icons": "LXMF-Icons löschen", "clear_lxmf_icons_desc": "Zwischengespeicherte LXMF-Benutzersymbole entfernen.", + "clear_stickers": "Alle Sticker löschen", + "clear_stickers_desc": "Alle gespeicherten Sticker-Bilder für diese Identität entfernen.", + "stickers_cleared": "Sticker gelöscht", "clear_archives": "Seitenarchive löschen", "clear_archives_desc": "Alle zwischengespeicherten NomadNetwork-Seiten löschen.", "clear_reticulum_docs": "Reticulum-Dokumentation löschen", @@ -430,6 +458,7 @@ "title": "Über", "third_party_licenses": "Lizenzen Dritter", "version": "v{version}", + "ui_build": "UI-Build {date}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", "python_version": "Python {version}", @@ -1201,7 +1230,20 @@ "listening_on": "Hört auf:", "provide_allowed_hash": "Bitte geben Sie mindestens einen erlaubten Identitäts-Hash an!", "failed_to_start_listener": "Starten des Listeners fehlgeschlagen", - "failed_to_stop_listener": "Stoppen des Listeners fehlgeschlagen" + "failed_to_stop_listener": "Stoppen des Listeners fehlgeschlagen", + "browse_file": "Durchsuchen", + "browse_folder": "Ordner wählen", + "receive_folder": "Ordner für empfangene Dateien", + "open_folder": "Ordner öffnen", + "show_in_folder": "Im Ordner anzeigen", + "received_file": "Datei empfangen", + "receive_failed": "Empfang fehlgeschlagen", + "send_complete": "Senden abgeschlossen", + "fetch_complete": "Abruf abgeschlossen", + "transfer_status": "Status", + "listening_active_background": "Hören läuft im Hintergrund weiter. Kehren Sie hierher zurück, um zu verwalten oder zu stoppen.", + "web_path_hint": "Browser können keine vollständigen Dateipfade anzeigen. Nutzen Sie die Desktop-App zum Auswählen oder fügen Sie den vollständigen Pfad auf diesem Rechner ein.", + "web_save_path_prompt": "Geben Sie den absoluten Ordnerpfad auf dem Rechner mit MeshChat (Server) ein, in dem die abgerufene Datei gespeichert werden soll:" }, "rnprobe": { "network_diagnostics": "Netzwerkdiagnose", diff --git a/meshchatx/src/frontend/locales/en.json b/meshchatx/src/frontend/locales/en.json index 1efa5f4..0d071ca 100644 --- a/meshchatx/src/frontend/locales/en.json +++ b/meshchatx/src/frontend/locales/en.json @@ -302,6 +302,31 @@ "loading": "Loading...", "ok": "OK" }, + "stickers": { + "settings_title": "Stickers", + "settings_description": "Saved images for this identity. Use them from the message composer or save images from chats. Export or import a JSON backup.", + "export": "Export stickers", + "import": "Import stickers", + "export_done": "Stickers exported", + "replace_duplicates": "Replace duplicate images when importing", + "count": "{count} saved sticker(s)", + "open_picker": "Stickers", + "picker_tooltip": "Emoji and stickers", + "tab_emojis": "Emojis", + "tab_stickers": "Stickers", + "empty_library": "No stickers yet.", + "drop_or_click_hint": "Drop images here or click to browse (PNG, JPEG, GIF, WebP, BMP, max 512 KB each).", + "add_more_hint": "Drop or click to add more stickers.", + "file_too_large": "Each sticker must be 512 KB or smaller.", + "unsupported_type": "Use PNG, JPEG, GIF, WebP, or BMP.", + "uploaded_count": "Added {count} sticker(s).", + "save_to_library": "Save image to stickers", + "saved": "Sticker saved", + "duplicate": "Already in your library", + "save_failed": "Could not save sticker", + "import_success": "Imported {imported}, skipped {skipped_duplicates} duplicates, invalid {skipped_invalid}", + "import_failed": "Failed to import stickers" + }, "maintenance": { "title": "Maintenance & Data", "description": "Manage your local data, clear caches, and backup conversations.", @@ -313,6 +338,9 @@ "clear_nomadnet_favs_desc": "Remove all saved NomadNetwork nodes from your favorites.", "clear_lxmf_icons": "Clear LXMF Icons", "clear_lxmf_icons_desc": "Remove cached LXMF user icons from your device.", + "clear_stickers": "Clear All Stickers", + "clear_stickers_desc": "Remove every saved sticker image for this identity.", + "stickers_cleared": "Stickers cleared", "clear_archives": "Clear Page Archives", "clear_archives_desc": "Delete all cached NomadNetwork pages.", "clear_reticulum_docs": "Clear Reticulum Docs", @@ -380,6 +408,7 @@ "title": "About", "third_party_licenses": "Third-party licenses", "version": "v{version}", + "ui_build": "UI build {date}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", "python_version": "Python {version}", diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json index cfe5607..0098c4d 100644 --- a/meshchatx/src/frontend/locales/it.json +++ b/meshchatx/src/frontend/locales/it.json @@ -302,6 +302,31 @@ "loading": "Caricamento...", "ok": "OK" }, + "stickers": { + "settings_title": "Sticker", + "settings_description": "Immagini salvate per questa identità. Usale nel compositore o salva immagini dalle chat. Esporta o importa un backup JSON.", + "export": "Esporta sticker", + "import": "Importa sticker", + "export_done": "Sticker esportati", + "replace_duplicates": "Sostituisci immagini duplicate durante l'importazione", + "count": "{count} sticker salvati", + "open_picker": "Sticker", + "picker_tooltip": "Emoji e sticker", + "tab_emojis": "Emoji", + "tab_stickers": "Sticker", + "empty_library": "Nessuno sticker.", + "drop_or_click_hint": "Trascina immagini qui o clicca per sfogliare (PNG, JPEG, GIF, WebP, BMP, max 512 KB ciascuna).", + "add_more_hint": "Trascina o clicca per aggiungere altri sticker.", + "file_too_large": "Ogni sticker deve essere al massimo 512 KB.", + "unsupported_type": "Usa PNG, JPEG, GIF, WebP o BMP.", + "uploaded_count": "Aggiunti {count} sticker.", + "save_to_library": "Salva immagine negli sticker", + "saved": "Sticker salvato", + "duplicate": "Già nella raccolta", + "save_failed": "Impossibile salvare lo sticker", + "import_success": "Importati {imported}, saltati {skipped_duplicates} duplicati, non validi {skipped_invalid}", + "import_failed": "Importazione sticker non riuscita" + }, "maintenance": { "title": "Manutenzione e Dati", "description": "Gestisci i tuoi dati locali, svuota le cache e fai il backup delle conversazioni.", @@ -313,6 +338,9 @@ "clear_nomadnet_favs_desc": "Rimuovi tutti i nodi NomadNetwork salvati dai tuoi preferiti.", "clear_lxmf_icons": "Cancella Icone LXMF", "clear_lxmf_icons_desc": "Rimuovi le icone utente LXMF memorizzate sul tuo dispositivo.", + "clear_stickers": "Cancella tutti gli sticker", + "clear_stickers_desc": "Rimuovi tutte le immagini sticker salvate per questa identità.", + "stickers_cleared": "Sticker cancellati", "clear_archives": "Cancella Archivi Pagine", "clear_archives_desc": "Elimina tutte le pagine NomadNetwork memorizzate.", "clear_reticulum_docs": "Cancella Documentazione Reticulum", @@ -430,6 +458,7 @@ "title": "Informazioni", "third_party_licenses": "Licenze di terze parti", "version": "v{version}", + "ui_build": "Build interfaccia {date}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", "python_version": "Python {version}", @@ -1305,7 +1334,20 @@ "listening_on": "In ascolto su:", "provide_allowed_hash": "Fornisci almeno un hash di identità consentito!", "failed_to_start_listener": "Impossibile avviare il listener", - "failed_to_stop_listener": "Impossibile fermare il listener" + "failed_to_stop_listener": "Impossibile fermare il listener", + "browse_file": "Sfoglia", + "browse_folder": "Scegli cartella", + "receive_folder": "Cartella file ricevuti", + "open_folder": "Apri cartella", + "show_in_folder": "Mostra nella cartella", + "received_file": "File ricevuto", + "receive_failed": "Ricezione non riuscita", + "send_complete": "Invio completato", + "fetch_complete": "Recupero completato", + "transfer_status": "Stato", + "listening_active_background": "L'ascolto continua in background. Torna qui per gestire o interrompere.", + "web_path_hint": "I browser non possono esporre percorsi completi. Usa l'app desktop per sfogliare o incolla il percorso completo su questa macchina.", + "web_save_path_prompt": "Inserisci il percorso assoluto della cartella sulla macchina che esegue MeshChat (server) dove salvare il file recuperato:" }, "rnprobe": { "network_diagnostics": "Diagnostica di Rete", diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json index f3380f4..53626db 100644 --- a/meshchatx/src/frontend/locales/ru.json +++ b/meshchatx/src/frontend/locales/ru.json @@ -302,6 +302,31 @@ "copy": "Copy", "copy_to_clipboard": "Copy to clipboard" }, + "stickers": { + "settings_title": "Стикеры", + "settings_description": "Сохранённые изображения для этой личности. Используйте в поле ввода или сохраняйте из чатов. Экспорт и импорт JSON.", + "export": "Экспорт стикеров", + "import": "Импорт стикеров", + "export_done": "Стикеры экспортированы", + "replace_duplicates": "Заменять дубликаты при импорте", + "count": "Сохранено стикеров: {count}", + "open_picker": "Стикеры", + "picker_tooltip": "Эмодзи и стикеры", + "tab_emojis": "Эмодзи", + "tab_stickers": "Стикеры", + "empty_library": "Пока нет стикеров.", + "drop_or_click_hint": "Перетащите сюда изображения или нажмите для выбора (PNG, JPEG, GIF, WebP, BMP, до 512 КБ каждое).", + "add_more_hint": "Перетащите или нажмите, чтобы добавить ещё.", + "file_too_large": "Каждый стикер не больше 512 КБ.", + "unsupported_type": "Допустимы PNG, JPEG, GIF, WebP или BMP.", + "uploaded_count": "Добавлено стикеров: {count}.", + "save_to_library": "Сохранить в стикеры", + "saved": "Стикер сохранён", + "duplicate": "Уже в коллекции", + "save_failed": "Не удалось сохранить стикер", + "import_success": "Импортировано {imported}, пропущено дубликатов {skipped_duplicates}, неверных {skipped_invalid}", + "import_failed": "Не удалось импортировать стикеры" + }, "maintenance": { "title": "Обслуживание и данные", "description": "Управляйте локальными данными, очищайте кэши и создавайте резервные копии разговоров.", @@ -313,6 +338,9 @@ "clear_nomadnet_favs_desc": "Удалить все сохраненные узлы NomadNetwork из избранного.", "clear_lxmf_icons": "Очистить LXMF-иконки", "clear_lxmf_icons_desc": "Удалить кэшированные LXMF-иконки пользователей с устройства.", + "clear_stickers": "Очистить все стикеры", + "clear_stickers_desc": "Удалить все сохранённые стикеры для этой личности.", + "stickers_cleared": "Стикеры очищены", "clear_archives": "Очистить архивы страниц", "clear_archives_desc": "Удалить все кэшированные страницы NomadNetwork.", "clear_reticulum_docs": "Очистить документацию Reticulum", @@ -430,6 +458,7 @@ "title": "О программе", "third_party_licenses": "Лицензии сторонних компонентов", "version": "v{version}", + "ui_build": "Сборка UI {date}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", "python_version": "Python {version}", @@ -1201,7 +1230,20 @@ "listening_on": "Прослушивание на:", "provide_allowed_hash": "Пожалуйста, укажите хотя бы один разрешенный хеш идентичности!", "failed_to_start_listener": "Не удалось запустить прослушиватель", - "failed_to_stop_listener": "Не удалось остановить прослушиватель" + "failed_to_stop_listener": "Не удалось остановить прослушиватель", + "browse_file": "Обзор", + "browse_folder": "Выбрать папку", + "receive_folder": "Папка для полученных файлов", + "open_folder": "Открыть папку", + "show_in_folder": "Показать в папке", + "received_file": "Файл получен", + "receive_failed": "Ошибка приёма", + "send_complete": "Отправка завершена", + "fetch_complete": "Получение завершено", + "transfer_status": "Статус", + "listening_active_background": "Прослушивание продолжается в фоне. Вернитесь сюда для управления или остановки.", + "web_path_hint": "Браузеры не показывают полные пути к файлам. Используйте настольное приложение для выбора или вставьте полный путь на этой машине.", + "web_save_path_prompt": "Введите абсолютный путь к папке на машине с MeshChat (сервер), куда сохранить полученный файл:" }, "rnprobe": { "network_diagnostics": "Диагностика сети",