Дезайн ыыыы

This commit is contained in:
loki5512344 2026-07-11 00:01:26 +03:00
parent 403d7086d4
commit e7c02c7feb
174 changed files with 15802 additions and 9725 deletions

175
frontend/js/i18n/de.js Normal file
View file

@ -0,0 +1,175 @@
// Deutsch — Übersetzungen. Fehlende Schlüssel werden automatisch aus en.js übernommen.
export default {
common: {
open: "Öffnen",
rename: "Umbenennen",
delete: "Löschen",
refresh: "Aktualisieren",
settings: "Einstellungen",
history: "Verlauf",
edit: "Bearbeiten",
save: "Speichern",
cancel: "Abbrechen",
ok: "OK",
copyPath: "Pfad kopieren",
newFolder: "Neuer Ordner",
upload: "Hochladen",
download: "Herunterladen",
},
toolbar: {
newConnection: "Neue Verbindung",
queueLabel: "Warteschlange",
uploadQueued: "Upload eingereiht: {name}",
downloadQueued: "Download eingereiht: {name}",
uploadQueuedMulti: "{n} Uploads eingereiht",
downloadQueuedMulti: "{n} Downloads eingereiht",
},
welcome: {
subtitle: "FTP / SFTP-Client",
newConnection: "Neue Verbindung",
recentConnections: "Letzte Verbindungen",
savedSites: "Gespeicherte Seiten",
},
connect: {
title: "Neue Verbindung",
host: "Host",
username: "Benutzername",
port: "Port",
password: "Passwort",
keyHint: "Leer lassen, um sich mit einem SSH-Schlüssel anzumelden (Agent oder ~/.ssh).",
keyFile: "Schlüsseldatei (optional)",
browse: "Durchsuchen…",
label: "Bezeichnung (optional)",
connect: "Verbinden",
connecting: "Verbinde…",
errorHost: "Host ist erforderlich.",
errorUser: "Benutzername ist erforderlich.",
errorPort: "Der Port muss eine Zahl zwischen 1 und 65535 sein.",
},
history: {
recentConnections: "Letzte Verbindungen",
noHistory: "Noch kein Verbindungsverlauf",
},
panels: {
localLabel: "LOKAL",
remoteLabel: "REMOTE — {host}",
loading: "Wird geladen…",
countItems: "{n} Elemente",
colName: "Name",
colModified: "Geändert",
colType: "Typ",
colSize: "Größe",
typeDir: "Ordner",
typeFile: "Datei",
typeLink: "Link",
pathCopied: "Pfad kopiert",
sidebarDrives: "LAUFWERKE",
sidebarBookmarks: "LESEZEICHEN",
sidebarRoot: "Stammverzeichnis",
sidebarRemoveBookmark: "Lesezeichen entfernen",
bookmarkThisFolder: "Diesen Ordner als Lesezeichen speichern",
addToBookmarks: "Zu Lesezeichen hinzufügen",
alreadyBookmarked: "Bereits als Lesezeichen gespeichert",
bookmarkAdded: "Lesezeichen hinzugefügt",
uploadToServer: "Auf Server hochladen",
downloadToLocal: "Lokal herunterladen",
notConnected: "Nicht verbunden",
movingFile: "Verschiebe {name}…",
movingFiles: "Verschiebe {n} Elemente…",
moved: "{n} Elemente verschoben",
moveFailedCount: "{n} Elemente konnten nicht verschoben werden",
deleted: "{n} Elemente gelöscht",
deleteFailedCount: "{n} Elemente konnten nicht gelöscht werden",
cannotMoveCrossConnection: "Verschieben zwischen unterschiedlichen Verbindungen nicht möglich",
noActiveConnection: "Keine aktive Verbindung",
opening: "{name} wird geöffnet…",
},
queue: {
title: "{n} Übertragungen",
doneSuffix: "{done}/{total} fertig",
failedSuffix: "{n} fehlgeschlagen",
empty: "Noch keine Übertragungen",
stateQueued: "Wartend",
stateUploading: "Wird hochgeladen…",
stateDownloading: "Wird heruntergeladen…",
stateComplete: "Fertig",
stateFailed: "Fehlgeschlagen",
statePaused: "Pausiert",
stateCancelled: "Abgebrochen",
stateRetrying: "Erneuter Versuch…",
},
status: {
notConnected: "Nicht verbunden",
},
dialogs: {
newFolderTitle: "Neuer Ordner",
newFolderPlaceholder: "Ordnername",
renameTitle: "Umbenennen",
renamePlaceholder: "Neuer Name",
deleteTitle: "„{name}\" löschen?",
deleteTitleMulti: "{n} Elemente löschen?",
deleteBody: "Diese Aktion kann nicht rückgängig gemacht werden.",
},
settings: {
title: "Einstellungen",
navGeneral: "Allgemein",
navAppearance: "Erscheinungsbild",
navConnections: "Verbindungen",
navHistory: "Verlauf",
navSecurity: "Sicherheit",
navTransfers: "Übertragungen",
navAbout: "Über",
language: "Sprache",
languageHint: "Sprache der Benutzeroberfläche.",
confirmDelete: "Vor dem Löschen bestätigen",
confirmDeleteHint: "Vor dem Löschen lokaler oder entfernter Dateien nachfragen.",
startupFolder: "Startordner",
startupFolderHint: "Der lokale Bereich wird hier geöffnet, wenn Wherry startet.",
homeDirectory: "Home-Verzeichnis",
useCurrentFolder: "Aktuellen Ordner verwenden",
resetToHome: "Auf Home zurücksetzen",
appearanceHint: "Wählen Sie, welche Bereiche im Hauptfenster sichtbar sind.",
toolbar: "Symbolleiste",
sidebar: "Seitenleiste",
statusBar: "Statusleiste",
transferQueue: "Übertragungswarteschlange",
sites: "Gespeicherte Seiten",
noSites: "Noch keine gespeicherten Seiten",
deleteSiteHover: "Diese Seite löschen",
removedSite: "Seite „{name}\" entfernt",
bookmarksTitle: "Lesezeichen",
noBookmarks: "Noch keine Lesezeichen",
bookmarkRemoved: "Lesezeichen entfernt",
historyTitle: "Verbindungsverlauf",
historyEmpty: "Noch kein Verbindungsverlauf",
confirmClear: "Gesamten Verbindungsverlauf löschen? Dies kann nicht rückgängig gemacht werden.",
clearAll: "Gesamten Verlauf löschen",
deleteAll: "Alles löschen",
cleared: "Verlauf gelöscht",
securityHint: "Passwörter werden in der lokalen Datenbank von Wherry gespeichert.",
noConnections: "Keine gespeicherten Verbindungen",
forgetPasswordHover: "Gespeichertes Passwort vergessen",
passwordForgotten: "Passwort vergessen",
forgetAll: "Alle gespeicherten Passwörter vergessen",
allForgotten: "Alle gespeicherten Passwörter vergessen",
concurrentTitle: "Gleichzeitige Übertragungen",
concurrentHint: "Wie viele Uploads/Downloads gleichzeitig laufen können.",
autoRemoveTitle: "Abgeschlossene Übertragungen automatisch entfernen",
autoRemoveHint: "Entfernt abgeschlossene Übertragungen automatisch aus der Warteschlange.",
never: "Nie",
tenSec: "10 s",
thirtySec: "30 s",
oneMin: "1 Min",
version: "Version",
license: "Lizenz",
database: "Datenbank",
revealInFolder: "Im Ordner zeigen",
},
};

186
frontend/js/i18n/en.js Normal file
View file

@ -0,0 +1,186 @@
// English strings — the fallback locale. Every other locale (see i18n.js
// `dictionaries` map) only needs to cover the keys it wants to override;
// missing keys fall back to this file automatically.
export default {
common: {
open: "Open",
rename: "Rename",
delete: "Delete",
refresh: "Refresh",
settings: "Settings",
history: "History",
edit: "Edit",
save: "Save",
cancel: "Cancel",
ok: "OK",
copyPath: "Copy path",
newFolder: "New folder",
upload: "Upload",
download: "Download",
},
toolbar: {
newConnection: "New Connection",
queueLabel: "Queue",
uploadQueued: "Queued upload: {name}",
downloadQueued: "Queued download: {name}",
uploadQueuedMulti: "Queued {n} uploads",
downloadQueuedMulti: "Queued {n} downloads",
},
welcome: {
subtitle: "FTP / SFTP client",
newConnection: "New Connection",
recentConnections: "Recent connections",
savedSites: "Saved sites",
},
connect: {
title: "New Connection",
host: "Host",
username: "Username",
port: "Port",
password: "Password",
keyHint: "Leave empty to sign in with an SSH key (agent or ~/.ssh).",
keyFile: "Key file (optional)",
browse: "Browse…",
label: "Label (optional)",
connect: "Connect",
connecting: "Connecting…",
errorHost: "Host is required.",
errorUser: "Username is required.",
errorPort: "Port must be a number between 1 and 65535.",
},
history: {
recentConnections: "Recent connections",
noHistory: "No connection history yet",
},
panels: {
localLabel: "LOCAL",
remoteLabel: "REMOTE — {host}",
loading: "Loading…",
countItems: "{n} items",
colName: "Name",
colModified: "Modified",
colType: "Type",
colSize: "Size",
typeDir: "Folder",
typeFile: "File",
typeLink: "Link",
pathCopied: "Path copied",
sidebarDrives: "Drives",
sidebarBookmarks: "Bookmarks",
sidebarRoot: "Root",
sidebarRemoveBookmark: "Remove bookmark",
bookmarkThisFolder: "Bookmark this folder",
addToBookmarks: "Add to bookmarks",
alreadyBookmarked: "Already bookmarked",
bookmarkAdded: "Bookmark added",
uploadToServer: "Upload to server",
downloadToLocal: "Download to local",
notConnected: "Not connected",
movingFile: "Moving {name}…",
movingFiles: "Moving {n} items…",
moved: "Moved {n} items",
moveFailedCount: "{n} items failed to move",
deleted: "Deleted {n} items",
deleteFailedCount: "{n} items failed to delete",
cannotMoveCrossConnection: "Can't move files between different connections",
noActiveConnection: "No active connection",
opening: "Opening {name}…",
},
queue: {
title: "{n} transfers",
doneSuffix: "{done}/{total} done",
failedSuffix: "{n} failed",
empty: "No transfers yet",
stateQueued: "Queued",
stateUploading: "Uploading",
stateDownloading: "Downloading",
stateComplete: "Complete",
stateFailed: "Failed",
statePaused: "Paused",
stateCancelled: "Cancelled",
stateRetrying: "Retrying",
},
status: {
notConnected: "Not connected",
},
dialogs: {
newFolderTitle: "New Folder",
newFolderPlaceholder: "Folder name",
renameTitle: "Rename",
renamePlaceholder: "New name",
deleteTitle: "Delete {name}?",
deleteTitleMulti: "Delete {n} items?",
deleteBody: "This can't be undone.",
},
settings: {
title: "Settings",
navGeneral: "General",
navAppearance: "Appearance",
navConnections: "Connections",
navHistory: "History",
navSecurity: "Security",
navTransfers: "Transfers",
navAbout: "About",
confirmDelete: "Confirm before delete",
confirmDeleteHint: "Ask before deleting files or folders, locally or on the server.",
language: "Language",
languageHint: "Interface language.",
startupFolder: "Startup folder",
startupFolderHint: "Local pane opens here when Wherry starts.",
homeDirectory: "Home directory",
useCurrentFolder: "Use current folder",
resetToHome: "Reset to home",
appearanceHint: "Toggle which parts of the window are visible.",
theme: "Theme",
themeHint: "Choose the application colour scheme.",
themeEmber: "Ember — Dark · Copper",
themeFrost: "Frost — Light · Blue",
themeMidnight: "Midnight — Dark · Indigo",
themeForest: "Forest — Dark · Green",
themeDawn: "Dawn — Light · Peach",
themeAsh: "Ash — High-contrast Dark · Neutral",
toolbar: "Toolbar",
sidebar: "Sidebar",
statusBar: "Status bar",
transferQueue: "Transfer queue",
sites: "Saved sites",
noSites: "No saved sites yet",
deleteSiteHover: "Remove this site",
removedSite: "Removed {name}",
bookmarksTitle: "Bookmarks",
noBookmarks: "No bookmarks yet",
bookmarkRemoved: "Bookmark removed",
historyTitle: "Connection history",
historyEmpty: "No connection history yet",
confirmClear: "Clear all connection history? This can't be undone.",
clearAll: "Clear all history",
deleteAll: "Delete all",
cleared: "History cleared",
securityHint:
"Passwords are stored in Wherry's local database.",
noConnections: "No saved connections",
forgetPasswordHover: "Forget saved password",
passwordForgotten: "Password forgotten",
forgetAll: "Forget all saved passwords",
allForgotten: "All saved passwords forgotten",
concurrentTitle: "Concurrent transfers",
concurrentHint: "How many uploads/downloads can run at the same time.",
autoRemoveTitle: "Auto-clear completed transfers",
autoRemoveHint: "Automatically remove finished transfers from the queue.",
never: "Never",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Version",
license: "License",
database: "Database",
revealInFolder: "Reveal in folder",
},
};

175
frontend/js/i18n/es.js Normal file
View file

@ -0,0 +1,175 @@
// Español — traducciones. Las claves faltantes se toman automáticamente de en.js.
export default {
common: {
open: "Abrir",
rename: "Renombrar",
delete: "Eliminar",
refresh: "Actualizar",
settings: "Configuración",
history: "Historial",
edit: "Editar",
save: "Guardar",
cancel: "Cancelar",
ok: "Aceptar",
copyPath: "Copiar ruta",
newFolder: "Nueva carpeta",
upload: "Subir",
download: "Descargar",
},
toolbar: {
newConnection: "Nueva conexión",
queueLabel: "Cola",
uploadQueued: "Subida en cola: {name}",
downloadQueued: "Descarga en cola: {name}",
uploadQueuedMulti: "{n} subidas en cola",
downloadQueuedMulti: "{n} descargas en cola",
},
welcome: {
subtitle: "Cliente FTP / SFTP",
newConnection: "Nueva conexión",
recentConnections: "Conexiones recientes",
savedSites: "Sitios guardados",
},
connect: {
title: "Nueva conexión",
host: "Host",
username: "Usuario",
port: "Puerto",
password: "Contraseña",
keyHint: "Déjalo vacío para iniciar sesión con una clave SSH (agente o ~/.ssh).",
keyFile: "Archivo de clave (opcional)",
browse: "Examinar…",
label: "Etiqueta (opcional)",
connect: "Conectar",
connecting: "Conectando…",
errorHost: "El host es obligatorio.",
errorUser: "El usuario es obligatorio.",
errorPort: "El puerto debe ser un número entre 1 y 65535.",
},
history: {
recentConnections: "Conexiones recientes",
noHistory: "Aún no hay historial de conexiones",
},
panels: {
localLabel: "LOCAL",
remoteLabel: "REMOTO — {host}",
loading: "Cargando…",
countItems: "{n} elementos",
colName: "Nombre",
colModified: "Modificado",
colType: "Tipo",
colSize: "Tamaño",
typeDir: "Carpeta",
typeFile: "Archivo",
typeLink: "Enlace",
pathCopied: "Ruta copiada",
sidebarDrives: "UNIDADES",
sidebarBookmarks: "MARCADORES",
sidebarRoot: "Raíz",
sidebarRemoveBookmark: "Quitar marcador",
bookmarkThisFolder: "Marcar esta carpeta",
addToBookmarks: "Añadir a marcadores",
alreadyBookmarked: "Ya está en marcadores",
bookmarkAdded: "Marcador añadido",
uploadToServer: "Subir al servidor",
downloadToLocal: "Descargar a local",
notConnected: "Sin conexión",
movingFile: "Moviendo {name}…",
movingFiles: "Moviendo {n} elementos…",
moved: "Movidos {n} elementos",
moveFailedCount: "{n} elementos no pudieron moverse",
deleted: "Eliminados {n} elementos",
deleteFailedCount: "{n} elementos no pudieron eliminarse",
cannotMoveCrossConnection: "No se puede mover entre conexiones diferentes",
noActiveConnection: "Sin conexión activa",
opening: "Abriendo {name}…",
},
queue: {
title: "{n} transferencias",
doneSuffix: "{done}/{total} completado",
failedSuffix: "{n} con errores",
empty: "Aún no hay transferencias",
stateQueued: "En cola",
stateUploading: "Subiendo…",
stateDownloading: "Descargando…",
stateComplete: "Completado",
stateFailed: "Fallido",
statePaused: "Pausado",
stateCancelled: "Cancelado",
stateRetrying: "Reintentando…",
},
status: {
notConnected: "Sin conexión",
},
dialogs: {
newFolderTitle: "Nueva carpeta",
newFolderPlaceholder: "Nombre de la carpeta",
renameTitle: "Renombrar",
renamePlaceholder: "Nombre nuevo",
deleteTitle: "¿Eliminar «{name}»?",
deleteTitleMulti: "¿Eliminar {n} elementos?",
deleteBody: "Esta acción no se puede deshacer.",
},
settings: {
title: "Configuración",
navGeneral: "General",
navAppearance: "Apariencia",
navConnections: "Conexiones",
navHistory: "Historial",
navSecurity: "Seguridad",
navTransfers: "Transferencias",
navAbout: "Acerca de",
language: "Idioma",
languageHint: "Idioma de la interfaz.",
confirmDelete: "Confirmar antes de eliminar",
confirmDeleteHint: "Preguntar antes de eliminar archivos locales o remotos.",
startupFolder: "Carpeta de inicio",
startupFolderHint: "El panel local se abrirá aquí al iniciar Wherry.",
homeDirectory: "Directorio personal",
useCurrentFolder: "Usar carpeta actual",
resetToHome: "Restablecer a inicio",
appearanceHint: "Elige qué paneles son visibles en la ventana principal.",
toolbar: "Barra de herramientas",
sidebar: "Barra lateral",
statusBar: "Barra de estado",
transferQueue: "Cola de transferencias",
sites: "Sitios guardados",
noSites: "Aún no hay sitios guardados",
deleteSiteHover: "Eliminar este sitio",
removedSite: "Sitio «{name}» eliminado",
bookmarksTitle: "Marcadores",
noBookmarks: "Aún no hay marcadores",
bookmarkRemoved: "Marcador eliminado",
historyTitle: "Historial de conexiones",
historyEmpty: "Aún no hay historial de conexiones",
confirmClear: "¿Eliminar todo el historial de conexiones? Esta acción no se puede deshacer.",
clearAll: "Borrar todo el historial",
deleteAll: "Eliminar todo",
cleared: "Historial borrado",
securityHint: "Las contraseñas se almacenan en la base de datos local de Wherry.",
noConnections: "Sin conexiones guardadas",
forgetPasswordHover: "Olvidar contraseña guardada",
passwordForgotten: "Contraseña olvidada",
forgetAll: "Olvidar todas las contraseñas guardadas",
allForgotten: "Todas las contraseñas guardadas olvidadas",
concurrentTitle: "Transferencias simultáneas",
concurrentHint: "Cuántas subidas/descargas pueden ejecutarse al mismo tiempo.",
autoRemoveTitle: "Eliminar automáticamente transferencias completadas",
autoRemoveHint: "Elimina automáticamente las transferencias finalizadas de la cola.",
never: "Nunca",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Versión",
license: "Licencia",
database: "Base de datos",
revealInFolder: "Mostrar en carpeta",
},
};

175
frontend/js/i18n/fr.js Normal file
View file

@ -0,0 +1,175 @@
// Français — traductions. Les clés manquantes sont automatiquement reprises de en.js.
export default {
common: {
open: "Ouvrir",
rename: "Renommer",
delete: "Supprimer",
refresh: "Actualiser",
settings: "Paramètres",
history: "Historique",
edit: "Modifier",
save: "Enregistrer",
cancel: "Annuler",
ok: "OK",
copyPath: "Copier le chemin",
newFolder: "Nouveau dossier",
upload: "Envoyer",
download: "Télécharger",
},
toolbar: {
newConnection: "Nouvelle connexion",
queueLabel: "File d'attente",
uploadQueued: "Envoi mis en file d'attente : {name}",
downloadQueued: "Téléchargement mis en file d'attente : {name}",
uploadQueuedMulti: "{n} envois en file d'attente",
downloadQueuedMulti: "{n} téléchargements en file d'attente",
},
welcome: {
subtitle: "Client FTP / SFTP",
newConnection: "Nouvelle connexion",
recentConnections: "Connexions récentes",
savedSites: "Sites enregistrés",
},
connect: {
title: "Nouvelle connexion",
host: "Hôte",
username: "Nom d'utilisateur",
port: "Port",
password: "Mot de passe",
keyHint: "Laissez vide pour vous connecter avec une clé SSH (agent ou ~/.ssh).",
keyFile: "Fichier de clé (facultatif)",
browse: "Parcourir…",
label: "Étiquette (facultatif)",
connect: "Connecter",
connecting: "Connexion…",
errorHost: "L'hôte est requis.",
errorUser: "Le nom d'utilisateur est requis.",
errorPort: "Le port doit être un nombre compris entre 1 et 65535.",
},
history: {
recentConnections: "Connexions récentes",
noHistory: "Aucun historique de connexions",
},
panels: {
localLabel: "LOCAL",
remoteLabel: "DISTANT — {host}",
loading: "Chargement…",
countItems: "{n} éléments",
colName: "Nom",
colModified: "Modifié",
colType: "Type",
colSize: "Taille",
typeDir: "Dossier",
typeFile: "Fichier",
typeLink: "Lien",
pathCopied: "Chemin copié",
sidebarDrives: "DISQUES",
sidebarBookmarks: "FAVORIS",
sidebarRoot: "Racine",
sidebarRemoveBookmark: "Supprimer le favori",
bookmarkThisFolder: "Ajouter ce dossier aux favoris",
addToBookmarks: "Ajouter aux favoris",
alreadyBookmarked: "Déjà dans les favoris",
bookmarkAdded: "Favori ajouté",
uploadToServer: "Envoyer vers le serveur",
downloadToLocal: "Télécharger en local",
notConnected: "Non connecté",
movingFile: "Déplacement de {name}…",
movingFiles: "Déplacement de {n} éléments…",
moved: "{n} éléments déplacés",
moveFailedCount: "{n} éléments n'ont pas pu être déplacés",
deleted: "{n} éléments supprimés",
deleteFailedCount: "{n} éléments n'ont pas pu être supprimés",
cannotMoveCrossConnection: "Impossible de déplacer entre différentes connexions",
noActiveConnection: "Aucune connexion active",
opening: "Ouverture de {name}…",
},
queue: {
title: "{n} transferts",
doneSuffix: "{done}/{total} terminé",
failedSuffix: "{n} échec(s)",
empty: "Aucun transfert pour l'instant",
stateQueued: "En attente",
stateUploading: "Envoi…",
stateDownloading: "Téléchargement…",
stateComplete: "Terminé",
stateFailed: "Échec",
statePaused: "En pause",
stateCancelled: "Annulé",
stateRetrying: "Nouvelle tentative…",
},
status: {
notConnected: "Non connecté",
},
dialogs: {
newFolderTitle: "Nouveau dossier",
newFolderPlaceholder: "Nom du dossier",
renameTitle: "Renommer",
renamePlaceholder: "Nouveau nom",
deleteTitle: "Supprimer « {name} » ?",
deleteTitleMulti: "Supprimer {n} éléments ?",
deleteBody: "Cette action est irréversible.",
},
settings: {
title: "Paramètres",
navGeneral: "Général",
navAppearance: "Apparence",
navConnections: "Connexions",
navHistory: "Historique",
navSecurity: "Sécurité",
navTransfers: "Transferts",
navAbout: "À propos",
language: "Langue",
languageHint: "Langue de l'interface.",
confirmDelete: "Confirmer avant la suppression",
confirmDeleteHint: "Demander confirmation avant de supprimer des fichiers locaux ou distants.",
startupFolder: "Dossier de démarrage",
startupFolderHint: "Le panneau local s'ouvrira ici au démarrage de Wherry.",
homeDirectory: "Dossier personnel",
useCurrentFolder: "Utiliser le dossier actuel",
resetToHome: "Réinitialiser au dossier personnel",
appearanceHint: "Choisissez les panneaux visibles dans la fenêtre principale.",
toolbar: "Barre d'outils",
sidebar: "Barre latérale",
statusBar: "Barre d'état",
transferQueue: "File d'attente des transferts",
sites: "Sites enregistrés",
noSites: "Aucun site enregistré pour l'instant",
deleteSiteHover: "Supprimer ce site",
removedSite: "Site « {name} » supprimé",
bookmarksTitle: "Favoris",
noBookmarks: "Aucun favori pour l'instant",
bookmarkRemoved: "Favori supprimé",
historyTitle: "Historique des connexions",
historyEmpty: "Aucun historique de connexions",
confirmClear: "Supprimer tout l'historique des connexions ? Cette action est irréversible.",
clearAll: "Effacer tout l'historique",
deleteAll: "Tout supprimer",
cleared: "Historique effacé",
securityHint: "Les mots de passe sont stockés dans la base de données locale de Wherry.",
noConnections: "Aucune connexion enregistrée",
forgetPasswordHover: "Oublier le mot de passe enregistré",
passwordForgotten: "Mot de passe oublié",
forgetAll: "Oublier tous les mots de passe enregistrés",
allForgotten: "Tous les mots de passe enregistrés oubliés",
concurrentTitle: "Transferts simultanés",
concurrentHint: "Combien d'envois/téléchargements peuvent s'exécuter simultanément.",
autoRemoveTitle: "Suppression automatique des transferts terminés",
autoRemoveHint: "Efface automatiquement les transferts terminés de la file d'attente.",
never: "Jamais",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Version",
license: "Licence",
database: "Base de données",
revealInFolder: "Afficher dans le dossier",
},
};

175
frontend/js/i18n/it.js Normal file
View file

@ -0,0 +1,175 @@
// Italiano — traduzioni. Le chiavi mancanti vengono automaticamente prese da en.js.
export default {
common: {
open: "Apri",
rename: "Rinomina",
delete: "Elimina",
refresh: "Aggiorna",
settings: "Impostazioni",
history: "Cronologia",
edit: "Modifica",
save: "Salva",
cancel: "Annulla",
ok: "OK",
copyPath: "Copia percorso",
newFolder: "Nuova cartella",
upload: "Carica",
download: "Scarica",
},
toolbar: {
newConnection: "Nuova connessione",
queueLabel: "Coda",
uploadQueued: "Caricamento in coda: {name}",
downloadQueued: "Download in coda: {name}",
uploadQueuedMulti: "{n} caricamenti in coda",
downloadQueuedMulti: "{n} download in coda",
},
welcome: {
subtitle: "Client FTP / SFTP",
newConnection: "Nuova connessione",
recentConnections: "Connessioni recenti",
savedSites: "Siti salvati",
},
connect: {
title: "Nuova connessione",
host: "Host",
username: "Nome utente",
port: "Porta",
password: "Password",
keyHint: "Lascia vuoto per accedere con una chiave SSH (agente o ~/.ssh).",
keyFile: "File chiave (opzionale)",
browse: "Sfoglia…",
label: "Etichetta (opzionale)",
connect: "Connetti",
connecting: "Connessione…",
errorHost: "L'host è obbligatorio.",
errorUser: "Il nome utente è obbligatorio.",
errorPort: "La porta deve essere un numero compreso tra 1 e 65535.",
},
history: {
recentConnections: "Connessioni recenti",
noHistory: "Nessuna cronologia connessioni",
},
panels: {
localLabel: "LOCALE",
remoteLabel: "REMOTO — {host}",
loading: "Caricamento…",
countItems: "{n} elementi",
colName: "Nome",
colModified: "Modificato",
colType: "Tipo",
colSize: "Dimensione",
typeDir: "Cartella",
typeFile: "File",
typeLink: "Collegamento",
pathCopied: "Percorso copiato",
sidebarDrives: "UNITÀ",
sidebarBookmarks: "PREFERITI",
sidebarRoot: "Radice",
sidebarRemoveBookmark: "Rimuovi preferito",
bookmarkThisFolder: "Aggiungi cartella ai preferiti",
addToBookmarks: "Aggiungi ai preferiti",
alreadyBookmarked: "Già nei preferiti",
bookmarkAdded: "Preferito aggiunto",
uploadToServer: "Carica sul server",
downloadToLocal: "Scarica in locale",
notConnected: "Non connesso",
movingFile: "Spostamento {name}…",
movingFiles: "Spostamento di {n} elementi…",
moved: "{n} elementi spostati",
moveFailedCount: "{n} elementi non spostati",
deleted: "{n} elementi eliminati",
deleteFailedCount: "{n} elementi non eliminati",
cannotMoveCrossConnection: "Impossibile spostare tra connessioni diverse",
noActiveConnection: "Nessuna connessione attiva",
opening: "Apertura di {name}…",
},
queue: {
title: "{n} trasferimenti",
doneSuffix: "{done}/{total} completato",
failedSuffix: "{n} falliti",
empty: "Nessun trasferimento ancora",
stateQueued: "In coda",
stateUploading: "Caricamento…",
stateDownloading: "Download…",
stateComplete: "Completato",
stateFailed: "Non riuscito",
statePaused: "In pausa",
stateCancelled: "Annullato",
stateRetrying: "Nuovo tentativo…",
},
status: {
notConnected: "Non connesso",
},
dialogs: {
newFolderTitle: "Nuova cartella",
newFolderPlaceholder: "Nome cartella",
renameTitle: "Rinomina",
renamePlaceholder: "Nuovo nome",
deleteTitle: "Eliminare «{name}»?",
deleteTitleMulti: "Eliminare {n} elementi?",
deleteBody: "Questa azione non può essere annullata.",
},
settings: {
title: "Impostazioni",
navGeneral: "Generale",
navAppearance: "Aspetto",
navConnections: "Connessioni",
navHistory: "Cronologia",
navSecurity: "Sicurezza",
navTransfers: "Trasferimenti",
navAbout: "Informazioni",
language: "Lingua",
languageHint: "Lingua dell'interfaccia.",
confirmDelete: "Conferma prima di eliminare",
confirmDeleteHint: "Chiedi conferma prima di eliminare file locali o remoti.",
startupFolder: "Cartella di avvio",
startupFolderHint: "Il pannello locale si aprirà qui all'avvio di Wherry.",
homeDirectory: "Cartella Home",
useCurrentFolder: "Usa cartella corrente",
resetToHome: "Ripristina su Home",
appearanceHint: "Scegli quali pannelli sono visibili nella finestra principale.",
toolbar: "Barra degli strumenti",
sidebar: "Barra laterale",
statusBar: "Barra di stato",
transferQueue: "Coda dei trasferimenti",
sites: "Siti salvati",
noSites: "Nessun sito salvato",
deleteSiteHover: "Elimina questo sito",
removedSite: "Sito «{name}» rimosso",
bookmarksTitle: "Preferiti",
noBookmarks: "Nessun preferito",
bookmarkRemoved: "Preferito rimosso",
historyTitle: "Cronologia connessioni",
historyEmpty: "Nessuna cronologia connessioni",
confirmClear: "Eliminare tutta la cronologia delle connessioni? Questa azione non può essere annullata.",
clearAll: "Cancella tutta la cronologia",
deleteAll: "Elimina tutto",
cleared: "Cronologia cancellata",
securityHint: "Le password sono conservate nel database locale di Wherry.",
noConnections: "Nessuna connessione salvata",
forgetPasswordHover: "Dimentica password salvata",
passwordForgotten: "Password dimenticata",
forgetAll: "Dimentica tutte le password salvate",
allForgotten: "Tutte le password salvate dimenticate",
concurrentTitle: "Trasferimenti simultanei",
concurrentHint: "Quanti caricamenti/download possono essere eseguiti contemporaneamente.",
autoRemoveTitle: "Rimozione automatica trasferimenti completati",
autoRemoveHint: "Rimuove automaticamente i trasferimenti terminati dalla coda.",
never: "Mai",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Versione",
license: "Licenza",
database: "Database",
revealInFolder: "Mostra nella cartella",
},
};

175
frontend/js/i18n/ja.js Normal file
View file

@ -0,0 +1,175 @@
// 日本語 — 翻訳。不足しているキーは自動的に en.js から取得されます。
export default {
common: {
open: "開く",
rename: "名前を変更",
delete: "削除",
refresh: "更新",
settings: "設定",
history: "履歴",
edit: "編集",
save: "保存",
cancel: "キャンセル",
ok: "OK",
copyPath: "パスをコピー",
newFolder: "新規フォルダ",
upload: "アップロード",
download: "ダウンロード",
},
toolbar: {
newConnection: "新規接続",
queueLabel: "キュー",
uploadQueued: "アップロードをキューに追加しました: {name}",
downloadQueued: "ダウンロードをキューに追加しました: {name}",
uploadQueuedMulti: "{n} 件のアップロードをキューに追加",
downloadQueuedMulti: "{n} 件のダウンロードをキューに追加",
},
welcome: {
subtitle: "FTP / SFTP クライアント",
newConnection: "新規接続",
recentConnections: "最近の接続",
savedSites: "保存済みサイト",
},
connect: {
title: "新規接続",
host: "ホスト",
username: "ユーザー名",
port: "ポート",
password: "パスワード",
keyHint: "SSH 鍵でサインインする場合は空欄のままにしてください(エージェントまたは ~/.ssh)。",
keyFile: "鍵ファイル(任意)",
browse: "参照…",
label: "ラベル(任意)",
connect: "接続",
connecting: "接続中…",
errorHost: "ホストを入力してください。",
errorUser: "ユーザー名を入力してください。",
errorPort: "ポートは 1〜65535 の数値で指定してください。",
},
history: {
recentConnections: "最近の接続",
noHistory: "接続履歴はまだありません",
},
panels: {
localLabel: "ローカル",
remoteLabel: "リモート — {host}",
loading: "読み込み中…",
countItems: "{n} 件",
colName: "名前",
colModified: "更新日時",
colType: "種類",
colSize: "サイズ",
typeDir: "フォルダ",
typeFile: "ファイル",
typeLink: "リンク",
pathCopied: "パスをコピーしました",
sidebarDrives: "ドライブ",
sidebarBookmarks: "ブックマーク",
sidebarRoot: "ルート",
sidebarRemoveBookmark: "ブックマークを削除",
bookmarkThisFolder: "このフォルダをブックマーク",
addToBookmarks: "ブックマークに追加",
alreadyBookmarked: "既にブックマーク済みです",
bookmarkAdded: "ブックマークを追加しました",
uploadToServer: "サーバーへアップロード",
downloadToLocal: "ローカルにダウンロード",
notConnected: "未接続",
movingFile: "{name} を移動中…",
movingFiles: "{n} 件のアイテムを移動中…",
moved: "{n} 件のアイテムを移動しました",
moveFailedCount: "{n} 件のアイテムの移動に失敗しました",
deleted: "{n} 件のアイテムを削除しました",
deleteFailedCount: "{n} 件のアイテムの削除に失敗しました",
cannotMoveCrossConnection: "異なる接続間では移動できません",
noActiveConnection: "アクティブな接続がありません",
opening: "{name} を開いています…",
},
queue: {
title: "{n} 件の転送",
doneSuffix: "{done}/{total} 完了",
failedSuffix: "失敗 {n} 件",
empty: "転送はまだありません",
stateQueued: "待機中",
stateUploading: "アップロード中…",
stateDownloading: "ダウンロード中…",
stateComplete: "完了",
stateFailed: "失敗",
statePaused: "一時停止",
stateCancelled: "キャンセル済み",
stateRetrying: "再試行中…",
},
status: {
notConnected: "未接続",
},
dialogs: {
newFolderTitle: "新規フォルダ",
newFolderPlaceholder: "フォルダ名",
renameTitle: "名前を変更",
renamePlaceholder: "新しい名前",
deleteTitle: "「{name}」を削除しますか?",
deleteTitleMulti: "{n} 件のアイテムを削除しますか?",
deleteBody: "この操作は元に戻せません。",
},
settings: {
title: "設定",
navGeneral: "一般",
navAppearance: "外観",
navConnections: "接続",
navHistory: "履歴",
navSecurity: "セキュリティ",
navTransfers: "転送",
navAbout: "情報",
language: "言語",
languageHint: "インターフェースの言語。",
confirmDelete: "削除前に確認する",
confirmDeleteHint: "ローカルまたはリモートのファイルを削除する前に確認ダイアログを表示します。",
startupFolder: "起動時のフォルダ",
startupFolderHint: "Wherry 起動時にローカルパネルがここで開きます。",
homeDirectory: "ホームディレクトリ",
useCurrentFolder: "現在のフォルダを使用",
resetToHome: "ホームにリセット",
appearanceHint: "メインウィンドウに表示するパネルを選択します。",
toolbar: "ツールバー",
sidebar: "サイドバー",
statusBar: "ステータスバー",
transferQueue: "転送キュー",
sites: "保存済みサイト",
noSites: "保存済みのサイトはまだありません",
deleteSiteHover: "このサイトを削除",
removedSite: "サイト「{name}」を削除しました",
bookmarksTitle: "ブックマーク",
noBookmarks: "ブックマークはまだありません",
bookmarkRemoved: "ブックマークを削除しました",
historyTitle: "接続履歴",
historyEmpty: "接続履歴はまだありません",
confirmClear: "接続履歴をすべて削除しますか?この操作は元に戻せません。",
clearAll: "すべての履歴を消去",
deleteAll: "すべて削除",
cleared: "履歴を消去しました",
securityHint: "パスワードは Wherry のローカルデータベースに保存されます。",
noConnections: "保存済みの接続はありません",
forgetPasswordHover: "保存済みのパスワードを削除",
passwordForgotten: "パスワードを削除しました",
forgetAll: "保存済みのパスワードをすべて削除",
allForgotten: "保存済みのパスワードをすべて削除しました",
concurrentTitle: "同時転送数",
concurrentHint: "同時に実行できるアップロード/ダウンロードの数。",
autoRemoveTitle: "完了した転送を自動的に削除",
autoRemoveHint: "完了した転送をキューから自動的に消去します。",
never: "しない",
tenSec: "10秒",
thirtySec: "30秒",
oneMin: "1分",
version: "バージョン",
license: "ライセンス",
database: "データベース",
revealInFolder: "フォルダで表示",
},
};

175
frontend/js/i18n/ko.js Normal file
View file

@ -0,0 +1,175 @@
// 한국어 — 번역. 누락된 키는 자동으로 en.js에서 가져옵니다.
export default {
common: {
open: "열기",
rename: "이름 바꾸기",
delete: "삭제",
refresh: "새로고침",
settings: "설정",
history: "기록",
edit: "편집",
save: "저장",
cancel: "취소",
ok: "확인",
copyPath: "경로 복사",
newFolder: "새 폴더",
upload: "업로드",
download: "다운로드",
},
toolbar: {
newConnection: "새 연결",
queueLabel: "대기열",
uploadQueued: "업로드 대기열에 추가됨: {name}",
downloadQueued: "다운로드 대기열에 추가됨: {name}",
uploadQueuedMulti: "{n}개 업로드 대기열에 추가",
downloadQueuedMulti: "{n}개 다운로드 대기열에 추가",
},
welcome: {
subtitle: "FTP / SFTP 클라이언트",
newConnection: "새 연결",
recentConnections: "최근 연결",
savedSites: "저장된 사이트",
},
connect: {
title: "새 연결",
host: "호스트",
username: "사용자 이름",
port: "포트",
password: "비밀번호",
keyHint: "SSH 키로 로그인하려면 비워 두세요(에이전트 또는 ~/.ssh).",
keyFile: "키 파일(선택 사항)",
browse: "찾아보기…",
label: "라벨(선택 사항)",
connect: "연결",
connecting: "연결 중…",
errorHost: "호스트를 입력해야 합니다.",
errorUser: "사용자 이름을 입력해야 합니다.",
errorPort: "포트는 1에서 65535 사이의 숫자여야 합니다.",
},
history: {
recentConnections: "최근 연결",
noHistory: "연결 기록이 아직 없습니다",
},
panels: {
localLabel: "로컬",
remoteLabel: "원격 — {host}",
loading: "로딩 중…",
countItems: "{n}개 항목",
colName: "이름",
colModified: "수정됨",
colType: "유형",
colSize: "크기",
typeDir: "폴더",
typeFile: "파일",
typeLink: "링크",
pathCopied: "경로가 복사되었습니다",
sidebarDrives: "드라이브",
sidebarBookmarks: "북마크",
sidebarRoot: "루트",
sidebarRemoveBookmark: "북마크 제거",
bookmarkThisFolder: "이 폴더 북마크",
addToBookmarks: "북마크에 추가",
alreadyBookmarked: "이미 북마크됨",
bookmarkAdded: "북마크 추가됨",
uploadToServer: "서버에 업로드",
downloadToLocal: "로컬에 다운로드",
notConnected: "연결 안 됨",
movingFile: "{name} 이동 중…",
movingFiles: "{n}개 항목 이동 중…",
moved: "{n}개 항목 이동됨",
moveFailedCount: "{n}개 항목 이동 실패",
deleted: "{n}개 항목 삭제됨",
deleteFailedCount: "{n}개 항목 삭제 실패",
cannotMoveCrossConnection: "서로 다른 연결 간에는 이동할 수 없습니다",
noActiveConnection: "활성 연결이 없습니다",
opening: "{name} 여는 중…",
},
queue: {
title: "{n}개 전송",
doneSuffix: "{done}/{total} 완료",
failedSuffix: "실패 {n}개",
empty: "아직 전송이 없습니다",
stateQueued: "대기 중",
stateUploading: "업로드 중…",
stateDownloading: "다운로드 중…",
stateComplete: "완료",
stateFailed: "실패",
statePaused: "일시 중지",
stateCancelled: "취소됨",
stateRetrying: "재시도 중…",
},
status: {
notConnected: "연결 안 됨",
},
dialogs: {
newFolderTitle: "새 폴더",
newFolderPlaceholder: "폴더 이름",
renameTitle: "이름 바꾸기",
renamePlaceholder: "새 이름",
deleteTitle: "\"{name}\"을(를) 삭제하시겠습니까?",
deleteTitleMulti: "{n}개 항목을 삭제하시겠습니까?",
deleteBody: "이 작업은 되돌릴 수 없습니다.",
},
settings: {
title: "설정",
navGeneral: "일반",
navAppearance: "외관",
navConnections: "연결",
navHistory: "기록",
navSecurity: "보안",
navTransfers: "전송",
navAbout: "정보",
language: "언어",
languageHint: "인터페이스 언어.",
confirmDelete: "삭제 전 확인",
confirmDeleteHint: "로컬 또는 원격 파일을 삭제하기 전에 확인 대화 상자를 표시합니다.",
startupFolder: "시작 폴더",
startupFolderHint: "Wherry을 시작하면 로컬 패널이 여기에서 열립니다.",
homeDirectory: "홈 디렉터리",
useCurrentFolder: "현재 폴더 사용",
resetToHome: "홈으로 재설정",
appearanceHint: "메인 창에 표시할 패널을 선택하세요.",
toolbar: "도구 모음",
sidebar: "사이드바",
statusBar: "상태 표시줄",
transferQueue: "전송 대기열",
sites: "저장된 사이트",
noSites: "저장된 사이트가 아직 없습니다",
deleteSiteHover: "이 사이트 삭제",
removedSite: "사이트 \"{name}\" 삭제됨",
bookmarksTitle: "북마크",
noBookmarks: "북마크가 아직 없습니다",
bookmarkRemoved: "북마크 제거됨",
historyTitle: "연결 기록",
historyEmpty: "연결 기록이 아직 없습니다",
confirmClear: "모든 연결 기록을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
clearAll: "전체 기록 지우기",
deleteAll: "모두 삭제",
cleared: "기록이 지워졌습니다",
securityHint: "비밀번호는 Wherry의 로컬 데이터베이스에 저장됩니다.",
noConnections: "저장된 연결이 없습니다",
forgetPasswordHover: "저장된 비밀번호 삭제",
passwordForgotten: "비밀번호가 삭제되었습니다",
forgetAll: "저장된 모든 비밀번호 삭제",
allForgotten: "저장된 모든 비밀번호가 삭제되었습니다",
concurrentTitle: "동시 전송",
concurrentHint: "동시에 실행할 수 있는 업로드/다운로드 수입니다.",
autoRemoveTitle: "완료된 전송 자동 제거",
autoRemoveHint: "완료된 전송을 대기열에서 자동으로 지웁니다.",
never: "안 함",
tenSec: "10초",
thirtySec: "30초",
oneMin: "1분",
version: "버전",
license: "라이선스",
database: "데이터베이스",
revealInFolder: "폴더에서 보기",
},
};

175
frontend/js/i18n/pl.js Normal file
View file

@ -0,0 +1,175 @@
// Polski — tłumaczenia. Brakujące klucze są automatycznie pobierane z en.js.
export default {
common: {
open: "Otwórz",
rename: "Zmień nazwę",
delete: "Usuń",
refresh: "Odśwież",
settings: "Ustawienia",
history: "Historia",
edit: "Edytuj",
save: "Zapisz",
cancel: "Anuluj",
ok: "OK",
copyPath: "Kopiuj ścieżkę",
newFolder: "Nowy folder",
upload: "Prześlij",
download: "Pobierz",
},
toolbar: {
newConnection: "Nowe połączenie",
queueLabel: "Kolejka",
uploadQueued: "Wysyłanie dodane do kolejki: {name}",
downloadQueued: "Pobieranie dodane do kolejki: {name}",
uploadQueuedMulti: "{n} wysyłań w kolejce",
downloadQueuedMulti: "{n} pobrań w kolejce",
},
welcome: {
subtitle: "Klient FTP / SFTP",
newConnection: "Nowe połączenie",
recentConnections: "Ostatnie połączenia",
savedSites: "Zapisane serwery",
},
connect: {
title: "Nowe połączenie",
host: "Host",
username: "Nazwa użytkownika",
port: "Port",
password: "Hasło",
keyHint: "Pozostaw puste, aby zalogować się kluczem SSH (agent lub ~/.ssh).",
keyFile: "Plik klucza (opcjonalnie)",
browse: "Przeglądaj…",
label: "Etykieta (opcjonalnie)",
connect: "Połącz",
connecting: "Łączenie…",
errorHost: "Host jest wymagany.",
errorUser: "Nazwa użytkownika jest wymagana.",
errorPort: "Port musi być liczbą od 1 do 65535.",
},
history: {
recentConnections: "Ostatnie połączenia",
noHistory: "Brak historii połączeń",
},
panels: {
localLabel: "LOKALNE",
remoteLabel: "ZDALNE — {host}",
loading: "Ładowanie…",
countItems: "{n} elementów",
colName: "Nazwa",
colModified: "Zmodyfikowano",
colType: "Typ",
colSize: "Rozmiar",
typeDir: "Folder",
typeFile: "Plik",
typeLink: "Link",
pathCopied: "Skopiowano ścieżkę",
sidebarDrives: "DYSKI",
sidebarBookmarks: "ZAKŁADKI",
sidebarRoot: "Główny",
sidebarRemoveBookmark: "Usuń zakładkę",
bookmarkThisFolder: "Dodaj folder do zakładek",
addToBookmarks: "Dodaj do zakładek",
alreadyBookmarked: "Już w zakładkach",
bookmarkAdded: "Dodano zakładkę",
uploadToServer: "Wyślij na serwer",
downloadToLocal: "Pobierz do lokalnego",
notConnected: "Brak połączenia",
movingFile: "Przenoszenie {name}…",
movingFiles: "Przenoszenie {n} elementów…",
moved: "Przeniesiono {n} elementów",
moveFailedCount: "Nie udało się przenieść {n} elementów",
deleted: "Usunięto {n} elementów",
deleteFailedCount: "Nie udało się usunąć {n} elementów",
cannotMoveCrossConnection: "Nie można przenosić między różnymi połączeniami",
noActiveConnection: "Brak aktywnego połączenia",
opening: "Otwieranie {name}…",
},
queue: {
title: "{n} transferów",
doneSuffix: "{done}/{total} gotowe",
failedSuffix: "Błędów: {n}",
empty: "Brak transferów",
stateQueued: "W kolejce",
stateUploading: "Wysyłanie…",
stateDownloading: "Pobieranie…",
stateComplete: "Gotowe",
stateFailed: "Niepowodzenie",
statePaused: "Wstrzymane",
stateCancelled: "Anulowane",
stateRetrying: "Ponawianie…",
},
status: {
notConnected: "Brak połączenia",
},
dialogs: {
newFolderTitle: "Nowy folder",
newFolderPlaceholder: "Nazwa folderu",
renameTitle: "Zmień nazwę",
renamePlaceholder: "Nowa nazwa",
deleteTitle: "Usunąć «{name}»?",
deleteTitleMulti: "Usunąć {n} elementów?",
deleteBody: "Tej operacji nie można cofnąć.",
},
settings: {
title: "Ustawienia",
navGeneral: "Ogólne",
navAppearance: "Wygląd",
navConnections: "Połączenia",
navHistory: "Historia",
navSecurity: "Bezpieczeństwo",
navTransfers: "Transfery",
navAbout: "O programie",
language: "Język",
languageHint: "Język interfejsu.",
confirmDelete: "Potwierdzaj przed usunięciem",
confirmDeleteHint: "Pytaj przed usunięciem plików lokalnych lub zdalnych.",
startupFolder: "Folder startowy",
startupFolderHint: "Panel lokalny otworzy się tutaj po uruchomieniu Wherry.",
homeDirectory: "Katalog domowy",
useCurrentFolder: "Użyj bieżącego folderu",
resetToHome: "Przywróć domyślny",
appearanceHint: "Wybierz, które panele są widoczne w oknie głównym.",
toolbar: "Pasek narzędzi",
sidebar: "Pasek boczny",
statusBar: "Pasek stanu",
transferQueue: "Kolejka transferów",
sites: "Zapisane serwery",
noSites: "Brak zapisanych serwerów",
deleteSiteHover: "Usuń ten serwer",
removedSite: "Serwer «{name}» usunięty",
bookmarksTitle: "Zakładki",
noBookmarks: "Brak zakładek",
bookmarkRemoved: "Usunięto zakładkę",
historyTitle: "Historia połączeń",
historyEmpty: "Brak historii połączeń",
confirmClear: "Usunąć całą historię połączeń? Tej operacji nie można cofnąć.",
clearAll: "Wyczyść całą historię",
deleteAll: "Usuń wszystko",
cleared: "Historia wyczyszczona",
securityHint: "Hasła są przechowywane w lokalnej bazie danych Wherry.",
noConnections: "Brak zapisanych połączeń",
forgetPasswordHover: "Zapomnij zapisane hasło",
passwordForgotten: "Zapomniano hasło",
forgetAll: "Zapomnij wszystkie zapisane hasła",
allForgotten: "Zapomniano wszystkie zapisane hasła",
concurrentTitle: "Równoczesne transfery",
concurrentHint: "Ile wysyłek/pobrań może działać jednocześnie.",
autoRemoveTitle: "Automatyczne usuwanie ukończonych transferów",
autoRemoveHint: "Automatycznie usuwa zakończone transfery z kolejki.",
never: "Nigdy",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Wersja",
license: "Licencja",
database: "Baza danych",
revealInFolder: "Pokaż w folderze",
},
};

175
frontend/js/i18n/pt.js Normal file
View file

@ -0,0 +1,175 @@
// Português — traduções. As chaves ausentes são automaticamente obtidas do en.js.
export default {
common: {
open: "Abrir",
rename: "Renomear",
delete: "Excluir",
refresh: "Atualizar",
settings: "Configurações",
history: "Histórico",
edit: "Editar",
save: "Salvar",
cancel: "Cancelar",
ok: "OK",
copyPath: "Copiar caminho",
newFolder: "Nova pasta",
upload: "Enviar",
download: "Baixar",
},
toolbar: {
newConnection: "Nova conexão",
queueLabel: "Fila",
uploadQueued: "Envio na fila: {name}",
downloadQueued: "Download na fila: {name}",
uploadQueuedMulti: "{n} envios na fila",
downloadQueuedMulti: "{n} downloads na fila",
},
welcome: {
subtitle: "Cliente FTP / SFTP",
newConnection: "Nova conexão",
recentConnections: "Conexões recentes",
savedSites: "Sites salvos",
},
connect: {
title: "Nova conexão",
host: "Host",
username: "Usuário",
port: "Porta",
password: "Senha",
keyHint: "Deixe em branco para entrar com uma chave SSH (agente ou ~/.ssh).",
keyFile: "Arquivo de chave (opcional)",
browse: "Procurar…",
label: "Rótulo (opcional)",
connect: "Conectar",
connecting: "Conectando…",
errorHost: "O host é obrigatório.",
errorUser: "O nome de usuário é obrigatório.",
errorPort: "A porta deve ser um número entre 1 e 65535.",
},
history: {
recentConnections: "Conexões recentes",
noHistory: "Nenhum histórico de conexões ainda",
},
panels: {
localLabel: "LOCAL",
remoteLabel: "REMOTO — {host}",
loading: "Carregando…",
countItems: "{n} itens",
colName: "Nome",
colModified: "Modificado",
colType: "Tipo",
colSize: "Tamanho",
typeDir: "Pasta",
typeFile: "Arquivo",
typeLink: "Link",
pathCopied: "Caminho copiado",
sidebarDrives: "UNIDADES",
sidebarBookmarks: "FAVORITOS",
sidebarRoot: "Raiz",
sidebarRemoveBookmark: "Remover favorito",
bookmarkThisFolder: "Adicionar pasta aos favoritos",
addToBookmarks: "Adicionar aos favoritos",
alreadyBookmarked: "Já está nos favoritos",
bookmarkAdded: "Favorito adicionado",
uploadToServer: "Enviar para o servidor",
downloadToLocal: "Baixar para local",
notConnected: "Não conectado",
movingFile: "Movendo {name}…",
movingFiles: "Movendo {n} itens…",
moved: "{n} itens movidos",
moveFailedCount: "{n} itens falharam ao mover",
deleted: "{n} itens excluídos",
deleteFailedCount: "{n} itens falharam ao excluir",
cannotMoveCrossConnection: "Não é possível mover entre conexões diferentes",
noActiveConnection: "Nenhuma conexão ativa",
opening: "Abrindo {name}…",
},
queue: {
title: "{n} transferências",
doneSuffix: "{done}/{total} concluído",
failedSuffix: "{n} falharam",
empty: "Nenhuma transferência ainda",
stateQueued: "Na fila",
stateUploading: "Enviando…",
stateDownloading: "Baixando…",
stateComplete: "Concluído",
stateFailed: "Falhou",
statePaused: "Pausado",
stateCancelled: "Cancelado",
stateRetrying: "Tentando novamente…",
},
status: {
notConnected: "Não conectado",
},
dialogs: {
newFolderTitle: "Nova pasta",
newFolderPlaceholder: "Nome da pasta",
renameTitle: "Renomear",
renamePlaceholder: "Novo nome",
deleteTitle: "Excluir «{name}»?",
deleteTitleMulti: "Excluir {n} itens?",
deleteBody: "Esta ação não pode ser desfeita.",
},
settings: {
title: "Configurações",
navGeneral: "Geral",
navAppearance: "Aparência",
navConnections: "Conexões",
navHistory: "Histórico",
navSecurity: "Segurança",
navTransfers: "Transferências",
navAbout: "Sobre",
language: "Idioma",
languageHint: "Idioma da interface.",
confirmDelete: "Confirmar antes de excluir",
confirmDeleteHint: "Perguntar antes de excluir arquivos locais ou remotos.",
startupFolder: "Pasta inicial",
startupFolderHint: "O painel local abrirá aqui quando o Wherry iniciar.",
homeDirectory: "Diretório inicial",
useCurrentFolder: "Usar pasta atual",
resetToHome: "Redefinir para inicial",
appearanceHint: "Escolha quais painéis ficam visíveis na janela principal.",
toolbar: "Barra de ferramentas",
sidebar: "Barra lateral",
statusBar: "Barra de status",
transferQueue: "Fila de transferências",
sites: "Sites salvos",
noSites: "Ainda não há sites salvos",
deleteSiteHover: "Excluir este site",
removedSite: "Site «{name}» removido",
bookmarksTitle: "Favoritos",
noBookmarks: "Ainda não há favoritos",
bookmarkRemoved: "Favorito removido",
historyTitle: "Histórico de conexões",
historyEmpty: "Nenhum histórico de conexões ainda",
confirmClear: "Excluir todo o histórico de conexões? Esta ação não pode ser desfeita.",
clearAll: "Limpar todo o histórico",
deleteAll: "Excluir tudo",
cleared: "Histórico apagado",
securityHint: "As senhas são armazenadas no banco de dados local do Wherry.",
noConnections: "Nenhuma conexão salva",
forgetPasswordHover: "Esquecer senha salva",
passwordForgotten: "Senha esquecida",
forgetAll: "Esquecer todas as senhas salvas",
allForgotten: "Todas as senhas salvas esquecidas",
concurrentTitle: "Transferências simultâneas",
concurrentHint: "Quantos envios/downloads podem ser executados ao mesmo tempo.",
autoRemoveTitle: "Remover automaticamente transferências concluídas",
autoRemoveHint: "Remove automaticamente as transferências concluídas da fila.",
never: "Nunca",
tenSec: "10s",
thirtySec: "30s",
oneMin: "1 min",
version: "Versão",
license: "Licença",
database: "Banco de dados",
revealInFolder: "Mostrar na pasta",
},
};

175
frontend/js/i18n/ru.js Normal file
View file

@ -0,0 +1,175 @@
// Русский — переводы. Недостающие ключи автоматически берутся из en.js.
export default {
common: {
open: "Открыть",
rename: "Переименовать",
delete: "Удалить",
refresh: "Обновить",
settings: "Настройки",
history: "История",
edit: "Изменить",
save: "Сохранить",
cancel: "Отмена",
ok: "ОК",
copyPath: "Скопировать путь",
newFolder: "Новая папка",
upload: "Загрузить",
download: "Скачать",
},
toolbar: {
newConnection: "Новое подключение",
queueLabel: "Очередь",
uploadQueued: "Загрузка добавлена в очередь: {name}",
downloadQueued: "Скачивание добавлено в очередь: {name}",
uploadQueuedMulti: "Добавлено в очередь: {n} загрузок",
downloadQueuedMulti: "Добавлено в очередь: {n} скачиваний",
},
welcome: {
subtitle: "FTP / SFTP-клиент",
newConnection: "Новое подключение",
recentConnections: "Недавние подключения",
savedSites: "Сохранённые сайты",
},
connect: {
title: "Новое подключение",
host: "Хост",
username: "Имя пользователя",
port: "Порт",
password: "Пароль",
keyHint: "Оставьте пустым для входа по SSH-ключу (агент или ~/.ssh).",
keyFile: "Файл ключа (необязательно)",
browse: "Обзор…",
label: "Метка (необязательно)",
connect: "Подключиться",
connecting: "Подключение…",
errorHost: "Укажите хост.",
errorUser: "Укажите имя пользователя.",
errorPort: "Порт должен быть числом от 1 до 65535.",
},
history: {
recentConnections: "Недавние подключения",
noHistory: "История подключений пуста",
},
panels: {
localLabel: "ЛОКАЛЬНО",
remoteLabel: "УДАЛЁННО — {host}",
loading: "Загрузка…",
countItems: "{n} объектов",
colName: "Имя",
colModified: "Изменён",
colType: "Тип",
colSize: "Размер",
typeDir: "Папка",
typeFile: "Файл",
typeLink: "Ссылка",
pathCopied: "Путь скопирован",
sidebarDrives: "ДИСКИ",
sidebarBookmarks: "ЗАКЛАДКИ",
sidebarRoot: "Корень",
sidebarRemoveBookmark: "Удалить закладку",
bookmarkThisFolder: "Добавить папку в закладки",
addToBookmarks: "Добавить в закладки",
alreadyBookmarked: "Уже в закладках",
bookmarkAdded: "Закладка добавлена",
uploadToServer: "Загрузить на сервер",
downloadToLocal: "Скачать на локальный",
notConnected: "Не подключено",
movingFile: "Перемещение {name}…",
movingFiles: "Перемещение {n} элементов…",
moved: "Перемещено {n} элементов",
moveFailedCount: "Не удалось переместить {n} элементов",
deleted: "Удалено {n} элементов",
deleteFailedCount: "Не удалось удалить {n} элементов",
cannotMoveCrossConnection: "Нельзя перемещать между разными подключениями",
noActiveConnection: "Нет активного подключения",
opening: "Открывается {name}…",
},
queue: {
title: "Передач: {n}",
doneSuffix: "{done}/{total} готово",
failedSuffix: "Ошибок: {n}",
empty: "Передач пока нет",
stateQueued: "В очереди",
stateUploading: "Загрузка…",
stateDownloading: "Скачивание…",
stateComplete: "Готово",
stateFailed: "Ошибка",
statePaused: "Приостановлено",
stateCancelled: "Отменено",
stateRetrying: "Повтор…",
},
status: {
notConnected: "Не подключено",
},
dialogs: {
newFolderTitle: "Новая папка",
newFolderPlaceholder: "Имя папки",
renameTitle: "Переименовать",
renamePlaceholder: "Новое имя",
deleteTitle: "Удалить «{name}»?",
deleteTitleMulti: "Удалить {n} элементов?",
deleteBody: "Это действие необратимо.",
},
settings: {
title: "Настройки",
navGeneral: "Общие",
navAppearance: "Внешний вид",
navConnections: "Подключения",
navHistory: "История",
navSecurity: "Безопасность",
navTransfers: "Передачи",
navAbout: "О программе",
language: "Язык интерфейса",
languageHint: "Язык интерфейса.",
confirmDelete: "Подтверждать перед удалением",
confirmDeleteHint: "Спрашивать подтверждение перед удалением файлов локально или на сервере.",
startupFolder: "Стартовая папка",
startupFolderHint: "Локальная панель будет открываться здесь при запуске Wherry.",
homeDirectory: "Домашняя папка",
useCurrentFolder: "Использовать текущую папку",
resetToHome: "Сбросить на домашнюю",
appearanceHint: "Выберите, какие панели отображать в главном окне.",
toolbar: "Панель инструментов",
sidebar: "Боковая панель",
statusBar: "Строка состояния",
transferQueue: "Очередь передач",
sites: "Сохранённые сайты",
noSites: "Сохранённых сайтов пока нет",
deleteSiteHover: "Удалить этот сайт",
removedSite: "Сайт «{name}» удалён",
bookmarksTitle: "Закладки",
noBookmarks: "Закладок пока нет",
bookmarkRemoved: "Закладка удалена",
historyTitle: "История подключений",
historyEmpty: "История подключений пуста",
confirmClear: "Удалить всю историю подключений? Это действие необратимо.",
clearAll: "Очистить всю историю",
deleteAll: "Удалить всё",
cleared: "История очищена",
securityHint: "Пароли хранятся в локальной базе данных Wherry.",
noConnections: "Нет сохранённых подключений",
forgetPasswordHover: "Забыть сохранённый пароль",
passwordForgotten: "Пароль забыт",
forgetAll: "Забыть все сохранённые пароли",
allForgotten: "Все сохранённые пароли забыты",
concurrentTitle: "Одновременные передачи",
concurrentHint: "Сколько загрузок/скачиваний может выполняться одновременно.",
autoRemoveTitle: "Автоудаление завершённых передач",
autoRemoveHint: "Автоматически очищать завершённые передачи из очереди.",
never: "Никогда",
tenSec: "10с",
thirtySec: "30с",
oneMin: "1 мин",
version: "Версия",
license: "Лицензия",
database: "База данных",
revealInFolder: "Показать в папке",
},
};

175
frontend/js/i18n/tr.js Normal file
View file

@ -0,0 +1,175 @@
// Türkçe — çeviriler. Eksik anahtarlar otomatik olarak en.js'den alınır.
export default {
common: {
open: "Aç",
rename: "Yeniden Adlandır",
delete: "Sil",
refresh: "Yenile",
settings: "Ayarlar",
history: "Geçmiş",
edit: "Düzenle",
save: "Kaydet",
cancel: "İptal",
ok: "Tamam",
copyPath: "Yolu Kopyala",
newFolder: "Yeni Klasör",
upload: "Yükle",
download: "İndir",
},
toolbar: {
newConnection: "Yeni Bağlantı",
queueLabel: "Kuyruk",
uploadQueued: "Yükleme kuyruğa eklendi: {name}",
downloadQueued: "İndirme kuyruğa eklendi: {name}",
uploadQueuedMulti: "{n} yükleme kuyruğa eklendi",
downloadQueuedMulti: "{n} indirme kuyruğa eklendi",
},
welcome: {
subtitle: "FTP / SFTP İstemcisi",
newConnection: "Yeni Bağlantı",
recentConnections: "Son Bağlantılar",
savedSites: "Kayıtlı Siteler",
},
connect: {
title: "Yeni Bağlantı",
host: "Sunucu",
username: "Kullanıcı Adı",
port: "Port",
password: "Parola",
keyHint: "SSH anahtarıyla oturum açmak için boş bırakın (aracı veya ~/.ssh).",
keyFile: "Anahtar dosyası (isteğe bağlı)",
browse: "Gözat…",
label: "Etiket (isteğe bağlı)",
connect: "Bağlan",
connecting: "Bağlanıyor…",
errorHost: "Sunucu adresi gerekli.",
errorUser: "Kullanıcı adı gerekli.",
errorPort: "Port 1 ile 65535 arasında bir sayı olmalıdır.",
},
history: {
recentConnections: "Son Bağlantılar",
noHistory: "Henüz bağlantı geçmişi yok",
},
panels: {
localLabel: "YEREL",
remoteLabel: "UZAK — {host}",
loading: "Yükleniyor…",
countItems: "{n} öğe",
colName: "Ad",
colModified: "Değiştirilme",
colType: "Tür",
colSize: "Boyut",
typeDir: "Klasör",
typeFile: "Dosya",
typeLink: "Bağlantı",
pathCopied: "Yol kopyalandı",
sidebarDrives: "SÜRÜCÜLER",
sidebarBookmarks: "YER İMLERİ",
sidebarRoot: "Kök",
sidebarRemoveBookmark: "Yer imini kaldır",
bookmarkThisFolder: "Bu klasörü yer imlerine ekle",
addToBookmarks: "Yer imlerine ekle",
alreadyBookmarked: "Zaten yer imlerinde",
bookmarkAdded: "Yer imi eklendi",
uploadToServer: "Sunucuya Yükle",
downloadToLocal: "Yerel İndir",
notConnected: "Bağlı değil",
movingFile: "{name} taşınıyor…",
movingFiles: "{n} öğe taşınıyor…",
moved: "{n} öğe taşındı",
moveFailedCount: "{n} öğe taşınamadı",
deleted: "{n} öğe silindi",
deleteFailedCount: "{n} öğe silinemedi",
cannotMoveCrossConnection: "Farklı bağlantılar arasında taşıma yapılamaz",
noActiveConnection: "Etkin bağlantı yok",
opening: "{name} açılıyor…",
},
queue: {
title: "{n} aktarım",
doneSuffix: "{done}/{total} tamamlandı",
failedSuffix: "{n} başarısız",
empty: "Henüz aktarım yok",
stateQueued: "Sırada",
stateUploading: "Yükleniyor…",
stateDownloading: "İndiriliyor…",
stateComplete: "Tamamlandı",
stateFailed: "Başarısız",
statePaused: "Duraklatıldı",
stateCancelled: "İptal edildi",
stateRetrying: "Yeniden deneniyor…",
},
status: {
notConnected: "Bağlı değil",
},
dialogs: {
newFolderTitle: "Yeni Klasör",
newFolderPlaceholder: "Klasör adı",
renameTitle: "Yeniden Adlandır",
renamePlaceholder: "Yeni ad",
deleteTitle: "\"{name}\" silinsin mi?",
deleteTitleMulti: "{n} öğe silinsin mi?",
deleteBody: "Bu işlem geri alınamaz.",
},
settings: {
title: "Ayarlar",
navGeneral: "Genel",
navAppearance: "Görünüm",
navConnections: "Bağlantılar",
navHistory: "Geçmiş",
navSecurity: "Güvenlik",
navTransfers: "Aktarımlar",
navAbout: "Hakkında",
language: "Dil",
languageHint: "Arayüz dili.",
confirmDelete: "Silmeden önce onayla",
confirmDeleteHint: "Yerel veya uzak dosyaları silmeden önce bir onay penceresi gösterir.",
startupFolder: "Başlangıç klasörü",
startupFolderHint: "Wherry başlatıldığında yerel panel burada açılır.",
homeDirectory: "Ana dizin",
useCurrentFolder: "Geçerli Klasörü Kullan",
resetToHome: "Ana Dizine Sıfırla",
appearanceHint: "Ana penceredeki hangi panellerin görüneceğini seçin.",
toolbar: "Araç Çubuğu",
sidebar: "Kenar Çubuğu",
statusBar: "Durum Çubuğu",
transferQueue: "Aktarım Kuyruğu",
sites: "Kayıtlı Siteler",
noSites: "Henüz kayıtlı site yok",
deleteSiteHover: "Bu siteyi sil",
removedSite: "\"{name}\" sitesi kaldırıldı",
bookmarksTitle: "Yer İmleri",
noBookmarks: "Henüz yer imi yok",
bookmarkRemoved: "Yer imi kaldırıldı",
historyTitle: "Bağlantı Geçmişi",
historyEmpty: "Henüz bağlantı geçmişi yok",
confirmClear: "Tüm bağlantı geçmişi silinsin mi? Bu işlem geri alınamaz.",
clearAll: "Tüm Geçmişi Temizle",
deleteAll: "Tümünü Sil",
cleared: "Geçmiş temizlendi",
securityHint: "Parolalar, Wherry'nin yerel veritabanında saklanır.",
noConnections: "Kayıtlı bağlantı yok",
forgetPasswordHover: "Kayıtlı parolayı unut",
passwordForgotten: "Parola unutuldu",
forgetAll: "Kayıtlı Tüm Parolaları Unut",
allForgotten: "Kayıtlı tüm parolalar unutuldu",
concurrentTitle: "Eşzamanlı Aktarımlar",
concurrentHint: "Aynı anda kaç yükleme/indirme çalışabileceği.",
autoRemoveTitle: "Tamamlanan Aktarımları Otomatik Kaldır",
autoRemoveHint: "Tamamlanan aktarımları kuyruktan otomatik olarak temizler.",
never: "Asla",
tenSec: "10sn",
thirtySec: "30sn",
oneMin: "1 dk",
version: "Sürüm",
license: "Lisans",
database: "Veritabanı",
revealInFolder: "Klasörde Göster",
},
};

175
frontend/js/i18n/zh.js Normal file
View file

@ -0,0 +1,175 @@
// 简体中文 — 翻译。缺失的键会自动从 en.js 中获取。
export default {
common: {
open: "打开",
rename: "重命名",
delete: "删除",
refresh: "刷新",
settings: "设置",
history: "历史记录",
edit: "编辑",
save: "保存",
cancel: "取消",
ok: "确定",
copyPath: "复制路径",
newFolder: "新建文件夹",
upload: "上传",
download: "下载",
},
toolbar: {
newConnection: "新建连接",
queueLabel: "队列",
uploadQueued: "已加入上传队列:{name}",
downloadQueued: "已加入下载队列:{name}",
uploadQueuedMulti: "已加入队列: {n} 个上传",
downloadQueuedMulti: "已加入队列: {n} 个下载",
},
welcome: {
subtitle: "FTP / SFTP 客户端",
newConnection: "新建连接",
recentConnections: "最近的连接",
savedSites: "已保存的站点",
},
connect: {
title: "新建连接",
host: "主机",
username: "用户名",
port: "端口",
password: "密码",
keyHint: "留空以使用 SSH 密钥登录(代理或 ~/.ssh)。",
keyFile: "密钥文件(可选)",
browse: "浏览…",
label: "标签(可选)",
connect: "连接",
connecting: "正在连接…",
errorHost: "请输入主机地址。",
errorUser: "请输入用户名。",
errorPort: "端口必须是 1 到 65535 之间的数字。",
},
history: {
recentConnections: "最近的连接",
noHistory: "暂无连接历史记录",
},
panels: {
localLabel: "本地",
remoteLabel: "远程 — {host}",
loading: "加载中…",
countItems: "{n} 项",
colName: "名称",
colModified: "修改时间",
colType: "类型",
colSize: "大小",
typeDir: "文件夹",
typeFile: "文件",
typeLink: "链接",
pathCopied: "路径已复制",
sidebarDrives: "磁盘",
sidebarBookmarks: "书签",
sidebarRoot: "根目录",
sidebarRemoveBookmark: "移除书签",
bookmarkThisFolder: "将此文件夹加入书签",
addToBookmarks: "添加到书签",
alreadyBookmarked: "已在书签中",
bookmarkAdded: "已添加书签",
uploadToServer: "上传到服务器",
downloadToLocal: "下载到本地",
notConnected: "未连接",
movingFile: "正在移动 {name}…",
movingFiles: "正在移动 {n} 项…",
moved: "已移动 {n} 项",
moveFailedCount: "{n} 项移动失败",
deleted: "已删除 {n} 项",
deleteFailedCount: "{n} 项删除失败",
cannotMoveCrossConnection: "无法在不同连接之间移动",
noActiveConnection: "没有活动连接",
opening: "正在打开 {name}…",
},
queue: {
title: "{n} 个传输",
doneSuffix: "{done}/{total} 已完成",
failedSuffix: "{n} 个失败",
empty: "暂无传输",
stateQueued: "排队中",
stateUploading: "上传中…",
stateDownloading: "下载中…",
stateComplete: "已完成",
stateFailed: "失败",
statePaused: "已暂停",
stateCancelled: "已取消",
stateRetrying: "正在重试…",
},
status: {
notConnected: "未连接",
},
dialogs: {
newFolderTitle: "新建文件夹",
newFolderPlaceholder: "文件夹名称",
renameTitle: "重命名",
renamePlaceholder: "新名称",
deleteTitle: "删除「{name}」?",
deleteTitleMulti: "删除 {n} 项?",
deleteBody: "此操作无法撤销。",
},
settings: {
title: "设置",
navGeneral: "通用",
navAppearance: "外观",
navConnections: "连接",
navHistory: "历史记录",
navSecurity: "安全",
navTransfers: "传输",
navAbout: "关于",
language: "语言",
languageHint: "界面语言。",
confirmDelete: "删除前进行确认",
confirmDeleteHint: "删除本地或远程文件前显示确认对话框。",
startupFolder: "启动文件夹",
startupFolderHint: "Wherry 启动时,本地面板将在此处打开。",
homeDirectory: "主目录",
useCurrentFolder: "使用当前文件夹",
resetToHome: "重置为主目录",
appearanceHint: "选择主窗口中显示哪些面板。",
toolbar: "工具栏",
sidebar: "侧边栏",
statusBar: "状态栏",
transferQueue: "传输队列",
sites: "已保存的站点",
noSites: "尚无已保存的站点",
deleteSiteHover: "删除此站点",
removedSite: "已删除站点「{name}」",
bookmarksTitle: "书签",
noBookmarks: "尚无书签",
bookmarkRemoved: "已移除书签",
historyTitle: "连接历史记录",
historyEmpty: "暂无连接历史记录",
confirmClear: "删除全部连接历史记录?此操作无法撤销。",
clearAll: "清除全部历史记录",
deleteAll: "全部删除",
cleared: "历史记录已清除",
securityHint: "密码存储在 Wherry 的本地数据库中。",
noConnections: "没有已保存的连接",
forgetPasswordHover: "忘记已保存的密码",
passwordForgotten: "密码已忘记",
forgetAll: "忘记所有已保存的密码",
allForgotten: "所有已保存的密码已忘记",
concurrentTitle: "并发传输数",
concurrentHint: "可同时运行的上传/下载数量。",
autoRemoveTitle: "自动移除已完成的传输",
autoRemoveHint: "自动从队列中清除已完成的传输。",
never: "从不",
tenSec: "10秒",
thirtySec: "30秒",
oneMin: "1分钟",
version: "版本",
license: "许可证",
database: "数据库",
revealInFolder: "在文件夹中显示",
},
};