Compare commits

..

No commits in common. "5d9f0977d61d5ef4ba8888472ad1360f101131f6" and "cfea84fd5e7ec9c1d2366293e5db12baaa4e3a81" have entirely different histories.

4 changed files with 129 additions and 198 deletions

View File

@ -378,13 +378,7 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
password := getParam(flags, "password") password := getParam(flags, "password")
if password == "" { if password == "" {
var pwd string password, err = users.HashPwd("admin")
pwd, err = users.RandomPwd()
checkErr(err)
log.Println("Generated random admin password for quick setup:", pwd)
password, err = users.HashPwd(pwd)
checkErr(err) checkErr(err)
} }

View File

@ -14,7 +14,7 @@
"file": "Fichier", "file": "Fichier",
"folder": "Dossier", "folder": "Dossier",
"fullScreen": "Plein écran", "fullScreen": "Plein écran",
"hideDotfiles": "Masquer les fichiers cachés", "hideDotfiles": "Masquer les dotfiles",
"info": "Info", "info": "Info",
"more": "Plus", "more": "Plus",
"move": "Déplacer", "move": "Déplacer",
@ -22,16 +22,15 @@
"new": "Nouveau", "new": "Nouveau",
"next": "Suivant", "next": "Suivant",
"ok": "OK", "ok": "OK",
"permalink": "Obtenir le lien permanent", "permalink": "Obtenir un lien permanent",
"previous": "Précédent", "previous": "Précédent",
"preview": "Prévisualiser",
"publish": "Publier", "publish": "Publier",
"rename": "Renommer", "rename": "Renommer",
"replace": "Remplacer", "replace": "Remplacer",
"reportIssue": "Signaler un problème", "reportIssue": "Rapport d'erreur",
"save": "Enregistrer", "save": "Enregistrer",
"schedule": "Planifier", "schedule": "Fixer la date",
"search": "Rechercher", "search": "Chercher",
"select": "Sélectionner", "select": "Sélectionner",
"selectMultiple": "Sélection multiple", "selectMultiple": "Sélection multiple",
"share": "Partager", "share": "Partager",
@ -41,22 +40,18 @@
"toggleSidebar": "Afficher/Masquer la barre latérale", "toggleSidebar": "Afficher/Masquer la barre latérale",
"update": "Mettre à jour", "update": "Mettre à jour",
"upload": "Importer", "upload": "Importer",
"openFile": "Ouvrir le fichier", "openFile": "Ouvrir le fichier"
"discardChanges": "Annuler"
}, },
"download": { "download": {
"downloadFile": "Télécharger le fichier", "downloadFile": "Télécharger le fichier",
"downloadFolder": "Télécharger le dossier", "downloadFolder": "Télécharger le dossier",
"downloadSelected": "Télécharger la sélection" "downloadSelected": "Télécharger la selection"
},
"upload": {
"abortUpload": "Êtes-vous sûr de vouloir annuler ?"
}, },
"errors": { "errors": {
"forbidden": "Vous n'avez pas la permission d'accéder à cela.", "forbidden": "Vous n'avez pas la permission d'accéder à cela.",
"internal": "Aïe ! Quelque chose s'est mal passé.", "internal": "Aïe ! Quelque chose s'est mal passé.",
"notFound": "Impossible d'accéder à cet emplacement.", "notFound": "Impossible d'accéder à cet emplacement.",
"connection": "Le serveur est injoignable." "connection": "Le serveur n'est pas accessible."
}, },
"files": { "files": {
"body": "Corps", "body": "Corps",
@ -66,15 +61,15 @@
"home": "Accueil", "home": "Accueil",
"lastModified": "Dernière modification", "lastModified": "Dernière modification",
"loading": "Chargement...", "loading": "Chargement...",
"lonely": "C'est un peu désert ici...", "lonely": "Il semble qu'il n'y ait rien par ici...",
"metadata": "Métadonnées", "metadata": "Metadonnées",
"multipleSelectionEnabled": "Sélection multiple activée", "multipleSelectionEnabled": "Sélection multiple activée",
"name": "Nom", "name": "Nom",
"size": "Taille", "size": "Taille",
"sortByLastModified": "Trier par date de modification", "sortByLastModified": "Trier par date de dernière modification",
"sortByName": "Trier par nom", "sortByName": "Trier par nom",
"sortBySize": "Trier par taille", "sortBySize": "Trier par taille",
"noPreview": "L'aperçu n'est pas disponible pour ce fichier." "noPreview": "Il n'y a pas de prévisualisation pour ce fichier."
}, },
"help": { "help": {
"click": "Sélectionner un élément", "click": "Sélectionner un élément",
@ -110,7 +105,6 @@
"deleteMessageMultiple": "Êtes-vous sûr de vouloir supprimer ces {count} élément(s) ?", "deleteMessageMultiple": "Êtes-vous sûr de vouloir supprimer ces {count} élément(s) ?",
"deleteMessageSingle": "Êtes-vous sûr de vouloir supprimer cet élément ?", "deleteMessageSingle": "Êtes-vous sûr de vouloir supprimer cet élément ?",
"deleteMessageShare": "Êtes-vous sûr de vouloir supprimer ce partage ({path}) ?", "deleteMessageShare": "Êtes-vous sûr de vouloir supprimer ce partage ({path}) ?",
"deleteUser": "Êtes-vous sûr de vouloir supprimer cet utilisateur ?",
"deleteTitle": "Supprimer", "deleteTitle": "Supprimer",
"displayName": "Nom :", "displayName": "Nom :",
"download": "Télécharger", "download": "Télécharger",
@ -131,33 +125,31 @@
"rename": "Renommer", "rename": "Renommer",
"renameMessage": "Nouveau nom pour", "renameMessage": "Nouveau nom pour",
"replace": "Remplacer", "replace": "Remplacer",
"replaceMessage": "L'un des fichiers que vous êtes en train d'importer a le même nom qu'un autre déjà présent. Voulez-vous remplacer le fichier actuel par le nouveau ?\n", "replaceMessage": "Un des fichiers que vous êtes en train d'importer a le même nom qu'un autre déjà présent. Voulez-vous remplacer le fichier actuel par le nouveau ?\n",
"schedule": "Planifier", "schedule": "Fixer la date",
"scheduleMessage": "Choisissez une date pour planifier la publication de ce post", "scheduleMessage": "Choisissez une date pour planifier la publication de ce post",
"show": "Montrer", "show": "Montrer",
"size": "Taille", "size": "Taille",
"upload": "Importer", "upload": "Importer",
"uploadFiles": "Importation de {files} fichiers...", "uploadFiles": "Importation de {files} fichiers...",
"uploadMessage": "Sélectionnez une option d'import.", "uploadMessage": "Séléctionnez une option d'import.",
"optionalPassword": "Mot de passe optionnel", "optionalPassword": "Mot de passe optionnel"
"resolution": "Résolution",
"discardEditorChanges": "Êtes-vous sûr de vouloir annuler les modifications apportées ?"
}, },
"search": { "search": {
"images": "Images", "images": "Images",
"music": "Musique", "music": "Musique",
"pdf": "PDF", "pdf": "PDF",
"pressToSearch": "Appuyez sur Entrée pour rechercher...", "pressToSearch": "Appuyez du entrée pour chercher...",
"search": "Recherche en cours...", "search": "Recherche en cours...",
"typeToSearch": "Écrivez pour rechercher...", "typeToSearch": "Écrivez pour chercher...",
"types": "Types", "types": "Types",
"video": "Vidéo" "video": "Video"
}, },
"settings": { "settings": {
"admin": "Admin", "admin": "Admin",
"administrator": "Administrateur", "administrator": "Administrateur",
"allowCommands": "Exécuter des commandes", "allowCommands": "Exécuter des commandes",
"allowEdit": "Éditer, renommer et supprimer des fichiers ou des dossiers", "allowEdit": "Editer, renommer et supprimer des fichiers ou des dossiers",
"allowNew": "Créer de nouveaux fichiers et dossiers", "allowNew": "Créer de nouveaux fichiers et dossiers",
"allowPublish": "Publier de nouveaux posts et pages", "allowPublish": "Publier de nouveaux posts et pages",
"allowSignup": "Autoriser les utilisateurs à s'inscrire", "allowSignup": "Autoriser les utilisateurs à s'inscrire",
@ -166,39 +158,32 @@
"brandingDirectoryPath": "Chemin du dossier d'image de marque", "brandingDirectoryPath": "Chemin du dossier d'image de marque",
"brandingHelp": "Vous pouvez personnaliser l'apparence de votre instance de File Browser en changeant son nom, en remplaçant le logo, en ajoutant des styles personnalisés et même en désactivant les liens externes vers GitHub.\nPour plus d'informations sur la personnalisation de l'image de marque, veuillez consulter la {0}.", "brandingHelp": "Vous pouvez personnaliser l'apparence de votre instance de File Browser en changeant son nom, en remplaçant le logo, en ajoutant des styles personnalisés et même en désactivant les liens externes vers GitHub.\nPour plus d'informations sur la personnalisation de l'image de marque, veuillez consulter la {0}.",
"changePassword": "Modifier le mot de passe", "changePassword": "Modifier le mot de passe",
"commandRunner": "Exécuteur de commandes", "commandRunner": "Command runner",
"commandRunnerHelp": "Ici, vous pouvez définir les commandes qui seront exécutées lors des événements nommés précédemments. Vous devez en écrire une par ligne. Les variables d'environnement {0} et {1} seront disponibles, {0} étant relatif à {1}. Pour plus d'informations sur cette fonctionnalité et les variables d'environnement disponibles, veuillez lire la {2}.", "commandRunnerHelp": "Ici, vous pouvez définir les commandes qui sont exécutées pour les événements nommés précédemments. Vous devez en écrire une par ligne. Les variables d'environnement {0} et {1} seront disponibles, {0} étant relatif à {1}. Pour plus d'informations sur cette fonctionnalité et les variables d'environnement disponibles, veuillez lire la {2}.",
"commandsUpdated": "Commandes mises à jour !", "commandsUpdated": "Commandes mises à jour !",
"createUserDir": "Créer automatiquement un dossier pour l'utilisateur", "createUserDir": "Créer automatiquement un dossier pour l'utilisateur",
"tusUploads": "Uploads segmentés",
"tusUploadsHelp": "File Browser prend en charge les uploads segmentés afin de permettre une gestion efficace, fiable et reprenable sur des réseaux instables.",
"tusUploadsChunkSize": "Taille maximale autorisée par segment (les uploads directs seront utilisés pour les fichiers plus petits). Vous pouvez entrer un entier en octets ou une chaîne telle que 10MB, 1GB, etc.",
"tusUploadsRetryCount": "Nombre de tentatives en cas d'échec d'un segment.",
"userHomeBasePath": "Chemin de base pour les répertoires personnels des utilisateurs",
"userScopeGenerationPlaceholder": "Le périmètre sera généré automatiquement",
"createUserHomeDirectory": "Créer le répertoire personnel de l'utilisateur",
"customStylesheet": "Feuille de style personnalisée", "customStylesheet": "Feuille de style personnalisée",
"defaultUserDescription": "Paramètres par défaut pour les nouveaux utilisateurs.", "defaultUserDescription": "Paramètres par défaut pour les nouveaux utilisateurs.",
"disableExternalLinks": "Désactiver les liens externes (sauf la documentation)", "disableExternalLinks": "Désactiver les liens externes (sauf la documentation)",
"disableUsedDiskPercentage": "Désactiver le graphique de pourcentage d'utilisation du disque", "disableUsedDiskPercentage": "Disable used disk percentage graph",
"documentation": "documentation", "documentation": "documentation",
"examples": "Exemples", "examples": "Exemples",
"executeOnShell": "Exécuter dans le shell", "executeOnShell": "Exécuter dans le shell",
"executeOnShellDescription": "Par défaut, File Browser exécute les commandes en appelant directement leurs binaires. Si vous voulez les exécuter sur un shell à la place (comme Bash ou PowerShell), vous pouvez le définir ici avec les arguments et les drapeaux requis. S'il est défini, la commande que vous exécutez sera ajoutée en tant qu'argument. Cela s'applique à la fois aux commandes utilisateur et aux crochets d'événements.", "executeOnShellDescription": "Par défaut, File Browser exécute les commandes en appelant directement leurs binaires. Si vous voulez les exécuter sur un shell à la place (comme Bash ou PowerShell), vous pouvez le définir ici avec les arguments et les drapeaux requis. S'il est défini, la commande que vous exécutez sera ajoutée en tant qu'argument. Cela s'applique à la fois aux commandes utilisateur et aux crochets d'événements.",
"globalRules": "Il s'agit d'un ensemble global de règles d'autorisation et d'interdiction. Elles s'appliquent à tous les utilisateurs. Vous pouvez définir des règles spécifiques sur les paramètres de chaque utilisateur pour remplacer celles-ci.", "globalRules": "Il s'agit d'un ensemble global de règles d'autorisation et d'interdiction. Elles s'appliquent à tous les utilisateurs. Vous pouvez définir des règles spécifiques sur les paramètres de chaque utilisateur pour remplacer celles-ci.",
"globalSettings": "Paramètres globaux", "globalSettings": "Paramètres généraux",
"hideDotfiles": "Cacher les fichiers de configuration utilisateur (dotfiles)", "hideDotfiles": "Cacher les fichiers de configuration utilisateur (dotfiles)",
"insertPath": "Insérer le chemin", "insertPath": "Insérez le chemin",
"insertRegex": "Insérer une expression régulière", "insertRegex": "Insérez l'expression régulière",
"instanceName": "Nom de l'instance", "instanceName": "Nom de l'instance",
"language": "Langue", "language": "Langue",
"lockPassword": "Empêcher l'utilisateur de changer son mot de passe", "lockPassword": "Empêcher l'utilisateur de changer son mot de passe",
"newPassword": "Votre nouveau mot de passe", "newPassword": "Votre nouveau mot de passe",
"newPasswordConfirm": "Confirmation du nouveau mot de passe", "newPasswordConfirm": "Confirmation du nouveau mot de passe",
"newUser": "Nouvel utilisateur", "newUser": "Nouvel Utilisateur",
"password": "Mot de passe", "password": "Mot de passe",
"passwordUpdated": "Mot de passe mis à jour !", "passwordUpdated": "Mot de passe mis à jour !",
"path": "Chemin", "path": "",
"perm": { "perm": {
"create": "Créer des fichiers et des dossiers", "create": "Créer des fichiers et des dossiers",
"delete": "Supprimer des fichiers et des dossiers", "delete": "Supprimer des fichiers et des dossiers",
@ -224,14 +209,14 @@
"singleClick": "Utiliser un simple clic pour ouvrir les fichiers et les dossiers", "singleClick": "Utiliser un simple clic pour ouvrir les fichiers et les dossiers",
"themes": { "themes": {
"dark": "Sombre", "dark": "Sombre",
"light": "Clair", "light": "Lumineux",
"title": "Thème" "title": "Thème"
}, },
"user": "Utilisateur", "user": "Utilisateur",
"userCommands": "Commandes", "userCommands": "Commandes",
"userCommandsHelp": "Une liste séparée par des espaces des commandes permises pour l'utilisateur. Exemple :\n", "userCommandsHelp": "Une liste séparée par des espaces des commandes permises pour l'utilisateur. Exemple :",
"userCreated": "Utilisateur créé !", "userCreated": "Utilisateur créé !",
"userDefaults": "Paramètres par défaut de l'utilisateur", "userDefaults": "User default settings",
"userDeleted": "Utilisateur supprimé !", "userDeleted": "Utilisateur supprimé !",
"userManagement": "Gestion des utilisateurs", "userManagement": "Gestion des utilisateurs",
"userUpdated": "Utilisateur mis à jour !", "userUpdated": "Utilisateur mis à jour !",
@ -252,7 +237,7 @@
"siteSettings": "Paramètres du site" "siteSettings": "Paramètres du site"
}, },
"success": { "success": {
"linkCopied": "Lien copié !" "linkCopied": "Lien copié!"
}, },
"time": { "time": {
"days": "Jours", "days": "Jours",

View File

@ -3,153 +3,133 @@
"cancel": "Anuluj", "cancel": "Anuluj",
"clear": "Wyczyść", "clear": "Wyczyść",
"close": "Zamknij", "close": "Zamknij",
"continue": "Kontynuuj",
"copy": "Kopiuj", "copy": "Kopiuj",
"copyFile": "Kopiuj plik", "copyFile": "Kopiuj plik",
"copyToClipboard": "Kopiuj do schowka", "copyToClipboard": "kopiuj do schowka",
"copyDownloadLinkToClipboard": "Kopiuj link pobierania do schowka",
"create": "Utwórz", "create": "Utwórz",
"delete": "Usuń", "delete": "Usuń",
"download": "Pobierz", "download": "Pobierz",
"file": "Plik", "hideDotfiles": "",
"folder": "Folder", "info": "Informacja",
"fullScreen": "Przełącz tryb pełnoekranowy", "more": "Więce",
"hideDotfiles": "Ukryj pliki poprzedzone kropką",
"info": "Informacje",
"more": "Więcej",
"move": "Przenieś", "move": "Przenieś",
"moveFile": "Przenieś plik", "moveFile": "Przenieś plik",
"new": "Nowy", "new": "Nowy",
"next": "Następny", "next": "Następny",
"ok": "OK", "ok": "OK",
"permalink": "Uzyskaj stały link", "permalink": "Uzyskaj link bezpośredni (permalink)",
"previous": "Poprzedni", "previous": "Poprzedni",
"preview": "Podgląd",
"publish": "Opublikuj", "publish": "Opublikuj",
"rename": "Zmień nazwę", "rename": "Zmień nazwę",
"replace": "Zamień", "replace": "Zamień",
"reportIssue": "Zgłoś problem", "reportIssue": "Zgłoś problem",
"save": "Zapisz", "save": "Zapisz",
"schedule": "Harmonogram", "schedule": "Grafik",
"search": "Szukaj", "search": "Szukaj",
"select": "Zaznacz", "select": "Wybierz",
"selectMultiple": "Zaznacz wiele", "selectMultiple": "Zaznacz wiele",
"share": "Udostępnij", "share": "Udostępnij",
"shell": "Przełącz powłokę", "shell": "Pokaż/ukryj powłokę",
"submit": "Prześlij",
"switchView": "Zmień widok", "switchView": "Zmień widok",
"toggleSidebar": "Przełącz pasek boczny", "toggleSidebar": "Pokaż/ukryj panel boczny",
"update": "Aktualizuj", "update": "Aktualizuj",
"upload": "Wyślij", "upload": "Wgraj"
"openFile": "Otwórz plik",
"discardChanges": "Odrzuć"
}, },
"download": { "download": {
"downloadFile": "Pobierz plik", "downloadFile": "Pobierz plik",
"downloadFolder": "Pobierz folder", "downloadFolder": "Pobierz folder",
"downloadSelected": "Pobierz zaznaczone" "downloadSelected": "Pobierz zaznaczone"
}, },
"upload": {
"abortUpload": "Czy na pewno chcesz przerwać?"
},
"errors": { "errors": {
"forbidden": "Nie masz zezwolenia na dostęp do tego.", "forbidden": "Nie posiadasz uprawnień potrzebnych, by uzyskać do tego dostęp.",
"internal": "Pojawił się poważny problem.", "internal": "Pojawił się poważny problem.",
"notFound": "Ta lokalizacja jest nieosiągalna.", "notFound": "Ten adres nie jest poprawny."
"connection": "Serwer jest nieosiągalny."
}, },
"files": { "files": {
"body": "Zawartość", "body": "Body",
"closePreview": "Zamknij podgląd", "closePreview": "Zamknij poprzednie",
"files": "Pliki", "files": "Pliki",
"folders": "Foldery", "folders": "Foldery",
"home": "Główny", "home": "Katalog domowy",
"lastModified": "Ostatnio zmodyfikowano", "lastModified": "Ostatnio modyfikowane",
"loading": "Ładowanie...", "loading": "Ładowanie...",
"lonely": "Smutno, gdy tak pusto...", "lonely": "Smutno gdy tak pusto...",
"metadata": "Metadane", "metadata": "Metadane",
"multipleSelectionEnabled": "Włączono zaznaczenie wielokrotne", "multipleSelectionEnabled": "Zaznaczenie wielu włączone",
"name": "Nazwa", "name": "Nazwa",
"size": "Rozmiar", "size": "Rozmiar",
"sortByLastModified": "Sortuj wg ostatniej modyfikacji", "sortByLastModified": "Sortuj wg. daty modyfikacji",
"sortByName": "Sortuj wg nazwy", "sortByName": "Sortuj wg. nazwy",
"sortBySize": "Sortuj wg rozmiaru", "sortBySize": "Sortuj wg. rozmiaru"
"noPreview": "Podgląd tego pliku jest niedostępny."
}, },
"help": { "help": {
"click": "zaznacz plik lub folder", "click": "wybierz plik lub foler",
"ctrl": { "ctrl": {
"click": "zaznacz wiele plików lub folderów", "click": "wybierz wiele plików lub folderów",
"f": "otwórz wyszukiwarkę", "f": "otwórz wyszukiwarkę",
"s": "pobierz aktywny plik lub folder" "s": "pobierz aktywny plik lub folder"
}, },
"del": "usuń zaznaczone elementy", "del": "usuń zaznaczone",
"doubleClick": "otwórz plik lub folder", "doubleClick": "otwórz plik lub folder",
"esc": "wyczyść zaznaczenie i/lub zamknij monit", "esc": "wyczyść zaznaczenie i/lub zamknij okno z powiadomieniem",
"f1": "te informacje", "f1": "ta informacja",
"f2": "zmień nazwę pliku", "f2": "zmień nazwę pliku",
"help": "Pomoc" "help": "Pomoc"
}, },
"login": { "login": {
"createAnAccount": "Utwórz konto", "createAnAccount": "Utwórz konto",
"loginInstead": "Mam już konto", "loginInstead": "Takie konto już istnieje",
"password": "Hasło", "password": "Hasło",
"passwordConfirm": "Potwierdzenie hasła", "passwordConfirm": "Potwierdzenie hasła",
"passwordsDontMatch": "Hasła nie pasują do siebie", "passwordsDontMatch": "Hasła różnią się",
"signup": "Rejestracja", "signup": "Rejestracja",
"submit": "Zaloguj", "submit": "Logowanie",
"username": "Nazwa użytkownika", "username": "Nazwa użytkownika",
"usernameTaken": "Ta nazwa użytkownika jest zajęta", "usernameTaken": "Nazwa użytkownika już zajęta",
"wrongCredentials": "Błędne dane logowania" "wrongCredentials": "Błędne dane logowania"
}, },
"permanent": "Permanentny", "permanent": "Permanentny",
"prompts": { "prompts": {
"copy": "Kopiuj", "copy": "Kopiuj",
"copyMessage": "Wybierz lokalizację docelową:", "copyMessage": "Wybierz lokalizację do której mają być skopiowane wybrane pliki",
"currentlyNavigating": "Aktualnie poruszasz się po:", "currentlyNavigating": "Obecnie przeglądasz:",
"deleteMessageMultiple": "Czy na pewno chcesz usunąć pliki: {count}?", "deleteMessageMultiple": "Czy jesteś pewien że chcesz usunąć {count} plik(ów)?",
"deleteMessageSingle": "Czy na pewno chcesz usunąć ten plik/folder?", "deleteMessageSingle": "Czy jesteś pewien, że chcesz usunąć ten plik/folder?",
"deleteMessageShare": "Czy na pewno chcesz usunąć ten udział ({path})?",
"deleteUser": "Czy na pewno chcesz usunąć tego użytkownika?",
"deleteTitle": "Usuń pliki", "deleteTitle": "Usuń pliki",
"displayName": "Wyświetlana nazwa:", "displayName": "Wyświetlana Nazwa:",
"download": "Pobierz pliki", "download": "Pobierz pliki",
"downloadMessage": "Wybierz format, w którym chcesz pobrać.", "downloadMessage": "Wybierz format, jaki chesz pobrać.",
"error": "Pojawił się jakiś błąd", "error": "Pojawił się nieznany błąd",
"fileInfo": "Informacje o pliku", "fileInfo": "Informacje o pliku",
"filesSelected": "Zaznaczone pliki: {count}", "filesSelected": "{count} plików zostało zaznaczonych.",
"lastModified": "Ostatnio zmodyfikowano", "lastModified": "Osatnio Zmodyfikowane",
"move": "Przenieś", "move": "Przenieś",
"moveMessage": "Wybierz nową lokalizację dla swoich plików/folderów:", "moveMessage": "Wybierz nową lokalizację dla swoich plik(ów)/folder(ów):",
"newArchetype": "Utwórz nowy wpis na bazie wybranego wzorca. Twój plik będzie utworzony w wybranym folderze.", "newArchetype": "Utwórz nowy wpis na bazie wybranego wzorca. Twój plik będzie utworzony w wybranym folderze.",
"newDir": "Nowy folder", "newDir": "Nowy folder",
"newDirMessage": "Nazwij nowy folder.", "newDirMessage": "Podaj nazwę tworzonego folderu.",
"newFile": "Nowy plik", "newFile": "Nowy plik",
"newFileMessage": "Nazwij nowy plik.", "newFileMessage": "Podaj nazwętworzonego pliku.",
"numberDirs": "Liczba folderów", "numberDirs": "Ilość katalogów",
"numberFiles": "Liczba plików", "numberFiles": "Ilość plików",
"rename": "Zmień nazwę", "rename": "Zmień nazwę",
"renameMessage": "Podaj nową nazwę dla", "renameMessage": "Podaj nową nazwę dla",
"replace": "Zamień", "replace": "Zamień",
"replaceMessage": "Jeden z przesyłanych plików chce nadpisać istniejący plik o tej samej nazwie. Chcesz pominąć ten plik i kontynuować przesyłanie reszty plików, czy nadpisać istniejący plik?\n", "replaceMessage": "Jednen z plików który próbujesz wrzucić próbje nadpisać plik o tej samej nazwie. Czy chcesz nadpisać poprzedni plik?\n",
"schedule": "Grafik", "schedule": "Grafi",
"scheduleMessage": "Wybierz datę i czas dla publikacji tego wpisu.", "scheduleMessage": "Wybierz datę i czas dla publikacji tego wpisu.",
"show": "Pokaż", "show": "Pokaż",
"size": "Rozmiar", "size": "Rozmiar",
"upload": "Wyślij", "upload": "Prześlij",
"uploadFiles": "Wysyłam pliki: {files}...", "uploadMessage": "Proszę wybrać metodę przesyłania"
"uploadMessage": "Wybierz opcję przesyłania.",
"optionalPassword": "Opcjonalne hasło",
"resolution": "Rozdzielczość",
"discardEditorChanges": "Czy na pewno chcesz odrzucić wprowadzone zmiany?"
}, },
"search": { "search": {
"images": "Obrazy", "images": "Zdjęcia",
"music": "Muzyka", "music": "Muzyka",
"pdf": "PDF", "pdf": "PDF",
"pressToSearch": "Naciśnij Enter, aby wyszukać...", "pressToSearch": "Wciśnij enter, aby wyszukać...",
"search": "Szukaj...", "search": "Szukaj...",
"typeToSearch": "Typ plików do wyszukania...", "typeToSearch": "Zacznij pisać, aby wyszukać...",
"types": "Typy", "types": "Typy",
"video": "Wideo" "video": "Wideo"
}, },
@ -157,80 +137,70 @@
"admin": "Admin", "admin": "Admin",
"administrator": "Administrator", "administrator": "Administrator",
"allowCommands": "Wykonaj polecenie", "allowCommands": "Wykonaj polecenie",
"allowEdit": "Edycja, zmiana nazwy i usuniecie plików lub folderów", "allowEdit": "Edycja, zmiana nazwy i usuniecie plików lub folderów",
"allowNew": "Tworzenie nowych plików lub folderów", "allowNew": "Tworzenie nowych plików lub folderów",
"allowPublish": "Tworzenie nowych wpisów i stron", "allowPublish": "Tworzenie nowych wpisów i stron",
"allowSignup": "Pozwól użytkownikom na rejestrację", "allowSignup": "Zezwól na rejestrację użytkowników",
"avoidChanges": "(pozostaw puste, aby uniknąć zmian)", "avoidChanges": "(pozostaw puste aby nie zosatało zmienione)",
"branding": "Personalizacja", "branding": "Branding",
"brandingDirectoryPath": "Ścieżka do folderu personalizacji", "brandingDirectoryPath": "Folder brandingowy",
"brandingHelp": "Możesz zmodyfikować wygląd instancji File Browser poprzez zmianę nazwy, logo, dodanie własnych stylów graficznych, a nawet usunięcia linków do serwisu GitHub. Więcej informacji o modyfikacji wyglądu znajdziesz w {0}.", "brandingHelp": "Możesz dostosować wygląd i doznania użytkownika swojej instancji File Browser poprzez zmianę jej nazwy, zmianę logo, dodanie własnych stylów, a nawet wyłączyć linki zewnętrzne do GitHuba.\nW celu pozyskania większej ilości informacji nt. osobistego brandingu, zapoznaj się z {0}.",
"changePassword": "Zmień hasło", "changePassword": "Zmień Hasło",
"commandRunner": "Narzędzie do wykonywania poleceń", "commandRunner": "Narzędzie do wykonywania poleceń",
"commandRunnerHelp": "Tu możesz ustawić polecenia, które będą wykonywane przy danych zdarzeniach. Musisz wpisywać po jednym na wiersz. Zmienne środowiskowe {0} i {1} będą dostępne, gdzie {0} jest względne wobec {1}. Więcej informacji o tej funkcji i dostępnych zmiennych środowiskowych znajdziesz w {2}.", "commandRunnerHelp": "Tu możesz ustawić komendy, które będą wykonywane przy danych zdarzeniach. Musisz wpisywać po jednej na linjkę. Zmienne środowiskowe {0} i {1} będą dostępne, gdzie {0} jest względne wobec {1}. Więcej informacji o tej funkcji i dostępnych zmiennych środowiskowych znajdziesz tutaj: {2}.",
"commandsUpdated": "Polecenie zaktualizowane!", "commandsUpdated": "Polecenie zaktualizowane!",
"createUserDir": "Automatycznie twórz katalog domowy podczas dodawania użytkownika", "createUserDir": "Automatycznie utwórz katalog domowy użytkownika podczas dodania nowego użytkownika",
"tusUploads": "Przesyłanie we fragmentach", "customStylesheet": "Własny arkusz stylów",
"tusUploadsHelp": "File Browser wspiera przesyłanie plików we fragmentach, co pozwala na proces przesyłania, który jest wydajny, pewny i możliwy do wznowienia nawet w sieciach o wątpliwej stabilności przesyłu danych.", "defaultUserDescription": "Oto domyślne ustawienia dla nowych użytkowników.",
"tusUploadsChunkSize": "Oznacza maksymalny rozmiar przesyłanych plików (dla mniejszych plików użyte zostanie przesyłanie bezpośrednie). Możesz ustawić tę wartość zarówno zapisaną samymi cyframi w bajtach, jak i podać ją w formie skróconej, np. poprzez 10MB, 1GB itp.", "disableExternalLinks": "Wyłącz linki zewnętrzne (z wyjątkiem dokumentacji)",
"tusUploadsRetryCount": "Liczba prób ponowienia transferu w przypadku wystapienia problemu z przesyłem.", "disableUsedDiskPercentage": "Disable used disk percentage graph",
"userHomeBasePath": "Ścieżka podstawowa dla katalogów domowych użytkowników", "documentation": "dokumentacja",
"userScopeGenerationPlaceholder": "Zakres zostanie wygenerowany automatycznie",
"createUserHomeDirectory": "Utwórz katalog domowy użytkownika",
"customStylesheet": "Własny arkusz stylu",
"defaultUserDescription": "To są domyślne ustawienia dla nowych użytkowników.",
"disableExternalLinks": "Wyłącz linki zewnętrzne (z wyjątkiem dokumentacji)",
"disableUsedDiskPercentage": "Wyłącz wykres procentowy używanego dysku",
"documentation": "dokumentacji",
"examples": "Przykłady", "examples": "Przykłady",
"executeOnShell": "Wykonaj w powłoce", "executeOnShell": "Wykonaj w powłoce",
"executeOnShellDescription": "Domyślnie File Browser wykonuje polecenia poprzez bezpośrednie uruchomienie odpowiednich plików binarnych. Jeśli chcesz uruchamiać polecenia z poziomu powłoki (np. Bash lub PowerShell), możesz zdefiniować je tutaj, z wykorzystaniem odpowiednich argumentów i flag. Gdy się na to zdecydujesz, wykonywane polecenie będzie załączone jako argument. Tyczy się to tak poleceń użytkownika, jak i zaczepów zdarzeń.", "executeOnShellDescription": "Domyślnie File Browser wykonuje polecenia wywołując ich pliki binarne bezpośrednio. Jesli preferujesz wykonywanie ich w powłoce (jak np. Bash czy PowerShell), możesz zdefiniować to tutaj wraz z wymaganymi flagami i argumentami. Jeśli to ustawienie jest aktywne, polecenie które wykonarz zostanie dodane jako argument. Stosuje się to zarówno do poleceń użytkownika jak i zaczepów zdarzeń.",
"globalRules": "Globalny zestaw reguł zezwalających i zakazujących. Dotyczą każdego użytkownika. Aby zastąpić ustawienia globalne, możesz zdefiniować określone reguły indywidualnie dla każdego użytkownika.", "globalRules": "To jest globalne zestawienie reguł zezwalających i zabraniających. Stosują się one do każdego użytkownika. Możesz zdefiniować indywidualne zasady w ustawieniach każdego użytkownika, by zignorować te reguły.",
"globalSettings": "Ustawienia globalne", "globalSettings": "Ustawienia Globalne",
"hideDotfiles": "Ukryj pliki poprzedzone kropką", "hideDotfiles": "Ukryj ukryte pliki",
"insertPath": "Wstaw ścieżkę", "insertPath": "Wstaw ścieżkę",
"insertRegex": "Wstaw wyrażenie regularne", "insertRegex": "Wstaw wyrażenie regularne",
"instanceName": "Nazwa instancji", "instanceName": "Nazwa instancji",
"language": "Język", "language": "Język",
"lockPassword": "Zablokuj użytkownikowi możliwość zmiany hasła", "lockPassword": "Zablokuj użytkownikowi możliwość zmiany hasła",
"newPassword": "Nowe hasło", "newPassword": "Twoje nowe hasło",
"newPasswordConfirm": "Potwierdź nowe hasło", "newPasswordConfirm": "Potwierdź swoje hasło",
"newUser": "Nowy użytkownik", "newUser": "Nowy Użytkownik",
"password": "Hasło", "password": "Hasło",
"passwordUpdated": "Hasło zostało zaktualizowane!", "passwordUpdated": "Hasło zostało zapisane!",
"path": "Ścieżka", "path": "Ścieżka",
"perm": { "perm": {
"create": "Tworzenie plików i folderów", "create": "Tworzenie plików i katalogów",
"delete": "Usuwanie plików i folderów", "delete": "Usuwanie plików i katalogów",
"download": "Pobieranie", "download": "Pobieranie",
"execute": "Wykonywanie poleceń", "execute": "Wykonywanie poleceń",
"modify": "Edytowanie plików", "modify": "Edycja plików",
"rename": "Zmienianie nazwy lub przenoszenie plików i katalogów", "rename": "Zmiana nazw lub przenoszenie plików i katalogów",
"share": "Udostępnianie plików" "share": "Udostępnianie plików"
}, },
"permissions": "Uprawnienia", "permissions": "Uprawnienia",
"permissionsHelp": "Możesz ustawić użytkownika jako administratora lub wybrać uprawnienia indywidualnie. Jeśli wybierzesz „Administrator”, wszystkie pozostałe opcje zostaną automatycznie zaznaczone. Zarządzanie użytkownikami pozostaje przywilejem administratora.\n", "permissionsHelp": "Możesz uczynić użytkownika administratorem, lub wybrać uprawnienia indywidualnie. Jeśli zaznaczysz opcję \"Administrator\", wszystkie pozostałe opcje zostaną automatycznie zaznaczone. Zarządzanie użytkownikami pozostaje przywilejem administratora.\n",
"profileSettings": "Twój profil", "profileSettings": "Twój profil",
"ruleExample1": "uniemożliwia dostęp do plików poprzedzonych kropką (takich jak .git, .gitignore) we wszystkich folderach.\n", "ruleExample1": "uniemożliwia dostęp do któregokolwiek z ukrytych plików (takich jak .git, .gitignore) w każdym folderze.\n",
"ruleExample2": "blokuje dostęp do pliku o nazwie Caddyfile w katalogu głównym zakresu.", "ruleExample2": "blokuje dostęp do pliku Caddyfile w głównym katalogu zakresu.",
"rules": "Uprawnienia", "rules": "Uprawnienia",
"rulesHelp": "Tutaj możesz zdefiniować zestaw reguł zezwalających i zakazujących dla tego użytkownika. Zablokowane pliki nie pojawią się na listach i nie będą dostępne dla użytkownika. Obsługujemy wyrażenia regularne i ścieżki względne w stosunku do zakresu użytkownika.\n", "rulesHelp": "Tu możesz zdefiniować zestawienie reguł zezwalających i zabraniających dla tego konkretnego użytkownika. Zablokowane pliki nie będą widoczne na listach i nie będą dostępne dla użytkownika. Wspierane są wyrażenia regularne i ścieżki względne wobec zakresu użytkownika.\n",
"scope": "Zakres", "scope": "Zakres",
"setDateFormat": "Ustaw dokładny format daty", "settingsUpdated": "Uprawnienia Zapisane!",
"settingsUpdated": "Ustawienia zaktualizowane!",
"shareDuration": "Okres udostępniania", "shareDuration": "Okres udostępniania",
"shareManagement": "Zarządzanie udostępnianiem", "shareManagement": "Zarządzanie udostępnianiem",
"shareDeleted": "Udostępnienie usunięte!", "singleClick": "Pojedyncze kliknięcie",
"singleClick": "Używaj pojedynczych kliknięć, aby otwierać pliki i foldery",
"themes": { "themes": {
"default": "Domyślny systemowy", "dark": "ciemny",
"dark": "Ciemny", "light": "jasny",
"light": "Jasny", "title": "Motywy"
"title": "Motyw"
}, },
"user": "Użytkownik", "user": "Użytkownik",
"userCommands": "Polecenia", "userCommands": "Polecenia",
"userCommandsHelp": "Oddzielona spacjami lista z dostępnymi poleceniami dla tego użytkownika. Przykład:\n", "userCommandsHelp": "Lista oddzielonych spacjami poleceń dostępnych dla tego użytkownika. Przykład:\n",
"userCreated": "Użytkownik zapisany!", "userCreated": "Użytkownik zapisany!",
"userDefaults": "Domyślne ustawienia użytkownika", "userDefaults": "Domyślne ustawienia użytkownika",
"userDeleted": "Użytkownik usunięty!", "userDeleted": "Użytkownik usunięty!",
@ -241,8 +211,8 @@
}, },
"sidebar": { "sidebar": {
"help": "Pomoc", "help": "Pomoc",
"hugoNew": "Nowy Hugo", "hugoNew": "Hugo New",
"login": "Zaloguj", "login": "Login",
"logout": "Wyloguj", "logout": "Wyloguj",
"myFiles": "Moje pliki", "myFiles": "Moje pliki",
"newFile": "Nowy plik", "newFile": "Nowy plik",
@ -250,10 +220,10 @@
"preview": "Podgląd", "preview": "Podgląd",
"settings": "Ustawienia", "settings": "Ustawienia",
"signup": "Rejestracja", "signup": "Rejestracja",
"siteSettings": "Ustawienia strony" "siteSettings": "Ustawienia Strony"
}, },
"success": { "success": {
"linkCopied": "Link skopiowany!" "linkCopied": "Link Skopiowany!"
}, },
"time": { "time": {
"days": "Dni", "days": "Dni",

View File

@ -1,15 +1,9 @@
package users package users
import ( import (
"crypto/rand"
"encoding/base64"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
) )
// randomPasswordBytesCount is chosen to fit in a base64 string without padding
const randomPasswordBytesCount = 9
// HashPwd hashes a password. // HashPwd hashes a password.
func HashPwd(password string) (string, error) { func HashPwd(password string) (string, error) {
bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
@ -21,15 +15,3 @@ func CheckPwd(password, hash string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil return err == nil
} }
func RandomPwd() (string, error) {
randomPasswordBytes := make([]byte, randomPasswordBytesCount)
var _, err = rand.Read(randomPasswordBytes)
if err != nil {
return "", err
}
// This is done purely to make the password human-readable
var randomPasswordString = base64.URLEncoding.EncodeToString(randomPasswordBytes)
return randomPasswordString, nil
}