diff --git a/frontend/src/i18n/translations/da.ts b/frontend/src/i18n/translations/da.ts index 377e172..8da2798 100644 --- a/frontend/src/i18n/translations/da.ts +++ b/frontend/src/i18n/translations/da.ts @@ -1,435 +1,320 @@ export default { // Navbar "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", - - "navbar.links.shares": "My shares", - "navbar.links.reverse": "Reverse shares", - - "navbar.avatar.account": "My account", + "navbar.signin": "Log ind", + "navbar.home": "Hjem", + "navbar.signup": "Opret bruger", + "navbar.links.shares": "Mine delte filer", + "navbar.links.reverse": "Omvendt deling", + "navbar.avatar.account": "Min bruger", "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.avatar.signout": "Log ud", // END navbar - // / - "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", + "home.title": "En self-hosted fildelingsplatform.", + "home.description": "Er du sikker på, at du vil overlade dine personlige filer til tredjeparter som WeTransfer?", "home.bullet.a.name": "Self-Hosted", - "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", - "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - - "home.button.start": "Get started", + "home.bullet.a.description": "Host Pingvin Share på din egen maskine.", + "home.bullet.b.name": "Privatliv", + "home.bullet.b.description": "Dine filer er dine filer og bør ikke komme i hænderne på tredjeparter.", + "home.bullet.c.name": "Ingen irriterende grænse for filstørrelse", + "home.bullet.c.description": "Upload så store filer, som du vil. Kun din harddisk sætter grænsen.", + "home.button.start": "Kom i gang", "home.button.source": "Source code", // END / - // /auth/signin - "signin.title": "Welcome back", - "signin.description": "You don't have an account yet?", - "signin.button.signup": "Sign up", - "signin.input.email-or-username": "Email or username", - "signin.input.email-or-username.placeholder": "Your email or username", - "signin.input.password": "Password", - "signin.input.password.placeholder": "Your password", - "signin.button.submit": "Sign in", - "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signin.title": "Velkommen tilbage", + "signin.description": "Har du ikke en bruger endnu?", + "signin.button.signup": "Opret bruger", + "signin.input.email-or-username": "E-mail eller brugernavn", + "signin.input.email-or-username.placeholder": "Din e-mail eller dit brugernavn", + "signin.input.password": "Adgangskode", + "signin.input.password.placeholder": "Din adgangskode", + "signin.button.submit": "Log ind", + "signIn.notify.totp-required.title": "2-faktor login påkrævet", + "signIn.notify.totp-required.description": "Indtast den aktuelle engangskode fra din 2-faktor Authenticator", // END /auth/signin - // /auth/signup - "signup.title": "Create an account", - "signup.description": "Already have an account?", - "signup.button.signin": "Sign in", - "signup.input.username": "Username", - "signup.input.username.placeholder": "Your username", - "signup.input.email": "Email", - "signup.input.email.placeholder": "Your email", - "signup.button.submit": "Let's get started", - + "signup.title": "Opret en bruger", + "signup.description": "Har du allerede en bruger?", + "signup.button.signin": "Log ind", + "signup.input.username": "Brugernavn", + "signup.input.username.placeholder": "Dit brugernavn", + "signup.input.email": "E-mail", + "signup.input.email.placeholder": "Din e-mail", + "signup.button.submit": "Lad os komme i gang", // END /auth/signup - // /auth/reset-password - "resetPassword.title": "Forgot your password?", - "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", - "resetPassword.button.back": "Back to sign in page", - "resetPassword.text.resetPassword": "Reset password", - "resetPassword.text.enterNewPassword": "Enter your new password", - "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.title": "Glemt din adgangskode?", + "resetPassword.description": "Indtast din e-mail for at nulstille din adgangskode.", + "resetPassword.notify.success": "En e-mail er blevet sendt med et link til at nulstille din adgangskode.", + "resetPassword.button.back": "Tilbage til login", + "resetPassword.text.resetPassword": "Nulstil adgangskode", + "resetPassword.text.enterNewPassword": "Indtast din nye adgangskode", + "resetPassword.input.password": "Ny adgangskode", + "resetPassword.notify.passwordReset": "Adgangskoden er blevet nulstillet.", // /account - "account.title": "My account", - - "account.card.info.title": "Account info", - "account.card.info.username": "Username", - "account.card.info.email": "Email", - "account.notify.info.success": "Account updated successfully", - - "account.card.password.title": "Password", - "account.card.password.old": "Old password", - "account.card.password.new": "New password", - "account.notify.password.success": "Password changed successfully", - - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", + "account.title": "Min bruger", + "account.card.info.title": "Brugerinfo", + "account.card.info.username": "Brugernavn", + "account.card.info.email": "E-mail", + "account.notify.info.success": "Brugeren blev opdateret med succes", + "account.card.password.title": "Adgangskode", + "account.card.password.old": "Gammel adgangskode", + "account.card.password.new": "Ny adgangskode", + "account.notify.password.success": "Adgangskoden er ændret", + "account.card.security.title": "Sikkerhed", + "account.card.security.totp.enable.description": "Indtast din nuværende adgangskode for at begynde opsætningen af 2-faktor login", + "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", "account.card.security.totp.button.start": "Start", - "account.modal.totp.title": "Enable TOTP", - "account.modal.totp.step1": "Step 1: Add your authenticator", - "account.modal.totp.step2": "Step 2: Validate your code", - "account.modal.totp.enterManually": "Enter manually", - "account.modal.totp.code": "Code", - "account.modal.totp.clickToCopy": "Click to copy", - "account.modal.totp.verify": "Verify", - "account.notify.totp.disable": "TOTP disabled successfully", - "account.notify.totp.enable": "TOTP enabled successfully", - - "account.card.language.title": "Language", - "account.card.color.title": "Color scheme", - + "account.modal.totp.title": "Aktiver 2-faktor login", + "account.modal.totp.step1": "Trin 1: Tilføj din 2-faktor Authenticator", + "account.modal.totp.step2": "Trin 2: Valider din kode", + "account.modal.totp.enterManually": "Indtast manuelt", + "account.modal.totp.code": "Kode", + "account.modal.totp.clickToCopy": "Klik for at kopiere", + "account.modal.totp.verify": "Bekræft", + "account.notify.totp.disable": "2-faktor blev deaktiveret", + "account.notify.totp.enable": "2-faktor blev deaktiveret", + "account.card.language.title": "Sprog", + "account.card.color.title": "Farveskema", // ThemeSwitcher.tsx - "account.theme.dark": "Dark", - "account.theme.light": "Light", + "account.theme.dark": "Mørkt", + "account.theme.light": "Lyst", "account.theme.system": "System", - - "account.button.delete": "Delete Account", - "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.button.delete": "Slet bruger", + "account.modal.delete.title": "Slet bruger", + "account.modal.delete.description": "Er du sikker på at du vil slette din bruger, herunder alle dine aktive delinger?", // END /account - // /account/shares - "account.shares.title": "My shares", - "account.shares.title.empty": "It's empty here 👀", - "account.shares.description.empty": "You don't have any shares.", - "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.title": "Mine delte filer", + "account.shares.title.empty": "Der er tomt her 👀", + "account.shares.description.empty": "Du har ingen delinger.", + "account.shares.button.create": "Opret en", + "account.shares.info.title": "Share informations", "account.shares.table.id": "ID", - "account.shares.table.name": "Name", - "account.shares.table.description": "Description", - "account.shares.table.visitors": "Visitors", - "account.shares.table.expiresAt": "Expires at", - "account.shares.table.createdAt": "Created at", - "account.shares.table.size": "Size", - - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.table.name": "Navn", + "account.shares.table.description": "Beskrivelse", + "account.shares.table.visitors": "Besøgende", + "account.shares.table.expiresAt": "Udløber d", + "account.shares.table.createdAt": "Oprettet d.", + "account.shares.table.size": "Størrelse", + "account.shares.modal.share-link": "Del link", + "account.shares.modal.delete.title": "Delete share {share}", + "account.shares.modal.delete.description": "Ønsker du virkelig at slette denne deling?", // END /account/shares - // /account/reverseShares - "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - - "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.title": "Omvendt deling", + "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", + "account.reverseShares.title.empty": "Der er tomt her 👀", + "account.reverseShares.description.empty": "You don't have any reverse shares.", // showCreateReverseShareModal.tsx - "account.reverseShares.modal.expiration.label": "Expiration", - "account.reverseShares.modal.expiration.minute-singular": "Minute", - "account.reverseShares.modal.expiration.minute-plural": "Minutes", - "account.reverseShares.modal.expiration.hour-singular": "Hour", - "account.reverseShares.modal.expiration.hour-plural": "Hours", - "account.reverseShares.modal.expiration.day-singular": "Day", - "account.reverseShares.modal.expiration.day-plural": "Days", - "account.reverseShares.modal.expiration.week-singular": "Week", - "account.reverseShares.modal.expiration.week-plural": "Weeks", - "account.reverseShares.modal.expiration.month-singular": "Month", - "account.reverseShares.modal.expiration.month-plural": "Months", - "account.reverseShares.modal.expiration.year-singular": "Year", - "account.reverseShares.modal.expiration.year-plural": "Years", - - "account.reverseShares.modal.max-size.label": "Max share size", - - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - - "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", - "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - - "account.reverseShares.table.no-shares": "No shares created yet", - "account.reverseShares.table.count.singular": "share", - "account.reverseShares.table.count.plural": "shares", - "account.reverseShares.table.shares": "Shares", - "account.reverseShares.table.remaining": "Remaining uses", - "account.reverseShares.table.max-size": "Max share size", - "account.reverseShares.table.expires": "Expires at", - - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.expiration.label": "Udløb", + "account.reverseShares.modal.expiration.minute-singular": "Minut", + "account.reverseShares.modal.expiration.minute-plural": "Minutter", + "account.reverseShares.modal.expiration.hour-singular": "Time", + "account.reverseShares.modal.expiration.hour-plural": "Timer", + "account.reverseShares.modal.expiration.day-singular": "Dag", + "account.reverseShares.modal.expiration.day-plural": "Dage", + "account.reverseShares.modal.expiration.week-singular": "Uge", + "account.reverseShares.modal.expiration.week-plural": "Uger", + "account.reverseShares.modal.expiration.month-singular": "Måned", + "account.reverseShares.modal.expiration.month-plural": "Måneder", + "account.reverseShares.modal.expiration.year-singular": "År", + "account.reverseShares.modal.expiration.year-plural": "År", + "account.reverseShares.modal.max-size.label": "Maksimal størrelse for deling", + "account.reverseShares.modal.send-email": "Send e-mail notifikation", + "account.reverseShares.modal.send-email.description": "Send en e-mail notifikation, når der oprettes en deling med dette omvendte delingslink.", + "account.reverseShares.modal.max-use.label": "Maksimal anvendelser", + "account.reverseShares.modal.max-use.description": "Det maksimale antal gange, denne URL kan bruges til at oprette en deling.", + "account.reverseShare.never-expires": "Denne omvendte deling udløber aldrig.", + "account.reverseShare.expires-on": "Denne omvendte deling udløber den {expiration}.", + "account.reverseShares.table.no-shares": "Der er ikke oprettet nogle delinger endnu", + "account.reverseShares.table.count.singular": "del", + "account.reverseShares.table.count.plural": "delinger", + "account.reverseShares.table.shares": "Delinger", + "account.reverseShares.table.remaining": "Resterende anvendelser", + "account.reverseShares.table.max-size": "Maksimal størrelse for deling", + "account.reverseShares.table.expires": "Udløber d", + "account.reverseShares.modal.reverse-share-link": "Omvendt deling", + "account.reverseShares.modal.delete.title": "Delete reverse share", + "account.reverseShares.modal.delete.description": "Ønsker du virkelig at slette denne omvendte deling? Hvis du gør det, vil de tilknyttede delinger også blive slettet.", // END /account/reverseShares - // /admin "admin.title": "Administration", - "admin.button.users": "User management", - "admin.button.config": "Configuration", + "admin.button.users": "Brugeradministration", + "admin.button.config": "Konfiguration", "admin.version": "Version", // END /admin - // /admin/users - "admin.users.title": "User management", - "admin.users.table.username": "Username", - "admin.users.table.email": "Email", + "admin.users.title": "Brugeradministration", + "admin.users.table.username": "Brugernavn", + "admin.users.table.email": "E-mail", "admin.users.table.admin": "Admin", - - "admin.users.edit.update.title": "Update user {username}", - "admin.users.edit.update.admin-privileges": "Admin privileges", - "admin.users.edit.update.change-password.title": "Change password", - "admin.users.edit.update.change-password.field": "New password", - "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - - "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.edit.update.title": "Opdater bruger {username}", + "admin.users.edit.update.admin-privileges": "Admin rettigheder", + "admin.users.edit.update.change-password.title": "Skift adgangskode", + "admin.users.edit.update.change-password.field": "Ny adgangskode", + "admin.users.edit.update.change-password.button": "Gem ny adgangskode", + "admin.users.edit.update.notify.password.success": "Adgangskoden er ændret", + "admin.users.edit.delete.title": "Slet bruger {username}", + "admin.users.edit.delete.description": "Er du sikker på du vil slette denne bruger og tilhørende delinger?", // showCreateUserModal.tsx - "admin.users.modal.create.title": "Create user", - "admin.users.modal.create.username": "Username", - "admin.users.modal.create.email": "Email", - "admin.users.modal.create.password": "Password", - "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", + "admin.users.modal.create.title": "Opret bruger", + "admin.users.modal.create.username": "Brugernavn", + "admin.users.modal.create.email": "E-mail", + "admin.users.modal.create.password": "Adgangskode", + "admin.users.modal.create.manual-password": "Angiv adgangskode manuelt", + "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", // END /admin/users - // /upload "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.notify.generic-error": "Der opstod en fejl under afslutningen af din deling.", + "upload.notify.count-failed": "{count} files failed to upload. Trying again.", // Dropzone.tsx - "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.title": "Upload filer", + "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", + "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", // FileList.tsx - "upload.filelist.name": "Name", - "upload.filelist.size": "Size", - + "upload.filelist.name": "Navn", + "upload.filelist.size": "Størrelse", // showCreateUploadModal.tsx - "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", - "upload.modal.link.error.taken": "This link is already in use", - "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - - "upload.modal.expires.never": "never", - "upload.modal.expires.never-long": "Never Expires", - + "upload.modal.title": "Opret Deling", + "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", + "upload.modal.link.error.taken": "Det valgte link er allerede i brug", + "upload.modal.not-signed-in": "Du er ikke logget ind", + "upload.modal.not-signed-in-description": "Du vil ikke være i stand til at slette din deling manuelt og se antallet af besøgende.", + "upload.modal.expires.never": "aldrig", + "upload.modal.expires.never-long": "Udløber aldrig", "upload.modal.link.label": "Link", - "upload.modal.link.placeholder": "myAwesomeShare", - - "upload.modal.expires.label": "Expiration", - "upload.modal.expires.minute-singular": "Minute", - "upload.modal.expires.minute-plural": "Minutes", - "upload.modal.expires.hour-singular": "Hour", - "upload.modal.expires.hour-plural": "Hours", - "upload.modal.expires.day-singular": "Day", - "upload.modal.expires.day-plural": "Days", - "upload.modal.expires.week-singular": "Week", - "upload.modal.expires.week-plural": "Weeks", - "upload.modal.expires.month-singular": "Month", - "upload.modal.expires.month-plural": "Months", - "upload.modal.expires.year-singular": "Year", - "upload.modal.expires.year-plural": "Years", - - "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - - "upload.modal.accordion.email.title": "Email recipients", - "upload.modal.accordion.email.placeholder": "Enter email recipients", - "upload.modal.accordion.email.invalid-email": "Invalid email address", - - "upload.modal.accordion.security.title": "Security options", - "upload.modal.accordion.security.password.label": "Password protection", - "upload.modal.accordion.security.password.placeholder": "No password", - "upload.modal.accordion.security.max-views.label": "Maximum views", - "upload.modal.accordion.security.max-views.placeholder": "No limit", - + "upload.modal.link.placeholder": "minAwesomeDeling", + "upload.modal.expires.label": "Udløb", + "upload.modal.expires.minute-singular": "Minut", + "upload.modal.expires.minute-plural": "Minutter", + "upload.modal.expires.hour-singular": "Time", + "upload.modal.expires.hour-plural": "Timer", + "upload.modal.expires.day-singular": "Dag", + "upload.modal.expires.day-plural": "Dage", + "upload.modal.expires.week-singular": "Uge", + "upload.modal.expires.week-plural": "Uger", + "upload.modal.expires.month-singular": "Måned", + "upload.modal.expires.month-plural": "Måneder", + "upload.modal.expires.year-singular": "År", + "upload.modal.expires.year-plural": "År", + "upload.modal.accordion.description.title": "Beskrivelse", + "upload.modal.accordion.description.placeholder": "Note for the recipients of this share", + "upload.modal.accordion.email.title": "E-mail modtagere", + "upload.modal.accordion.email.placeholder": "Indtast e-mail modtagere", + "upload.modal.accordion.email.invalid-email": "Ugyldig e-mailadresse", + "upload.modal.accordion.security.title": "Sikkerhedsindstillinger", + "upload.modal.accordion.security.password.label": "Adgangskodebeskyttelse", + "upload.modal.accordion.security.password.placeholder": "Ingen adgangskode", + "upload.modal.accordion.security.max-views.label": "Max antal visninger", + "upload.modal.accordion.security.max-views.placeholder": "Ingen begrænsning", // showCompletedUploadModal.tsx - "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", - "upload.modal.completed.share-ready": "Share ready", - + "upload.modal.completed.never-expires": "Denne deling vil aldrig udløbe.", + "upload.modal.completed.expires-on": "Denne omvendte deling udløber den {expiration}.", + "upload.modal.completed.share-ready": "Delingen er klar", // END /upload - // /share/[id] - "share.title": "Share {shareId}", - "share.description": "Look what I've shared with you!", - "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", - "share.error.removed.title": "Share removed", - "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - - "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", - "share.modal.password": "Password", - "share.modal.error.invalid-password": "Invalid password", - - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - - "share.modal.file-link": "File link", - "share.table.name": "Name", - "share.table.size": "Size", - - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.title": "Del {shareId}", + "share.description": "Se hvad jeg har delt med dig!", + "share.error.visitor-limit-exceeded.title": "Grænsen for besøgende overskredet", + "share.error.visitor-limit-exceeded.description": "Besøgsgrænsen for denne deling er blevet overskredet.", + "share.error.removed.title": "Deling fjernet", + "share.error.not-found.title": "Delingen blev ikke fundet", + "share.error.not-found.description": "Den deling, du leder efter, eksisterer ikke.", + "share.modal.password.title": "Adgangskode påkrævet", + "share.modal.password.description": "For at få adgang til denne deling, indtast venligst adgangskoden til delingen.", + "share.modal.password": "Adgangskode", + "share.modal.error.invalid-password": "Ugyldig adgangskode", + "share.button.download-all": "Download alle", + "share.notify.download-all-preparing": "Delingen forberedes. Prøv igen om et par minutter.", + "share.modal.file-link": "Fil link", + "share.table.name": "Navn", + "share.table.size": "Størrelse", + "share.modal.file-preview.error.not-supported.title": "Forhåndsvisning ikke understøttet", + "share.modal.file-preview.error.not-supported.description": "En forhåndsvisning for thise filtype er ikke understøttet. Download venligst filen for at se den.", // END /share/[id] - // /admin/config - "admin.config.title": "Configuration", - "admin.config.category.general": "General", - "admin.config.category.share": "Share", - "admin.config.category.email": "Email", + "admin.config.title": "Konfiguration", + "admin.config.category.general": "Generelt", + "admin.config.category.share": "Del", + "admin.config.category.email": "E-mail", "admin.config.category.smtp": "SMTP", - - "admin.config.general.app-name": "App name", - "admin.config.general.app-name.description": "Name of the application", + "admin.config.general.app-name": "App-navn", + "admin.config.general.app-name.description": "Navnet på applikationen", "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", - "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.app-url.description": "På hvilken URL Pingvin Share er tilgængelig", + "admin.config.general.show-home-page": "Vis forside", + "admin.config.general.show-home-page.description": "Om forsiden skal vises", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", - "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.general.logo.description": "Skift dit logo ved at uploade et nyt billede. Billedet skal være PNG og skal have formatet 1:1.", + "admin.config.general.logo.placeholder": "Vælg billede", + "admin.config.email.enable-share-email-recipients": "Aktiver deling til e-mail modtagere", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", - "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", - "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", - "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", - "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", - "admin.config.share.max-size": "Max size", - "admin.config.share.max-size.description": "Maximum share size in bytes", - - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", - "admin.config.smtp.host": "Host", - "admin.config.smtp.host.description": "Host of the SMTP server", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-message": "Nulstil adgangskode besked", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.invite-subject": "Invitations emne", + "admin.config.email.invite-subject.description": "Emne for den e-mail, der sendes, når en administrator inviterer en ny bruger.", + "admin.config.email.invite-message": "Invitations besked", + "admin.config.email.invite-message.description": "Besked som bliver sendt, når en administrator inviterer en bruger. {url} vil blive erstattet med invitations-URL'en og {password} med adgangskoden.", + "admin.config.share.allow-registration": "Tillad oprettelser", + "admin.config.share.allow-registration.description": "Om alle skal kunne oprette en bruger", + "admin.config.share.allow-unauthenticated-shares": "Tillad uautoriserede delinger", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", + "admin.config.share.max-size": "Maks. størrelse", + "admin.config.share.max-size.description": "Maksimal filstørrelse i bytes", + "admin.config.smtp.enabled": "Aktiveret", + "admin.config.smtp.enabled.description": "Om SMTP er aktiveret. Aktiver kun SMTP, hvis du har indtastet SMTP-server vært, port, e-mail, bruger og adgangskode.", + "admin.config.smtp.host": "Vært", + "admin.config.smtp.host.description": "Vært for SMTP serveren", "admin.config.smtp.port": "Port", - "admin.config.smtp.port.description": "Port of the SMTP server", - "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", - "admin.config.smtp.username": "Username", - "admin.config.smtp.username.description": "Username of the SMTP server", - "admin.config.smtp.password": "Password", - "admin.config.smtp.password.description": "Password of the SMTP server", - "admin.config.smtp.button.test": "Send test email", - + "admin.config.smtp.port.description": "Porten til SMTP serveren", + "admin.config.smtp.email": "E-mail", + "admin.config.smtp.email.description": "E-mail adressen som der skal afsendes fra", + "admin.config.smtp.username": "Brugernavn", + "admin.config.smtp.username.description": "Brugernavnet til SMTP serveren", + "admin.config.smtp.password": "Adgangskode", + "admin.config.smtp.password.description": "Adgangskoden til SMTP serveren", + "admin.config.smtp.button.test": "Send test e-mail", // 404 "404.title": "404", - "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.description": "Ups! Denne side findes ikke.", + "404.button.home": "Bring me back home", // Common translations - "common.button.save": "Save", - "common.button.create": "Create", + "common.button.save": "Gem", + "common.button.create": "Opret", "common.button.submit": "Submit", - "common.button.delete": "Delete", - "common.button.cancel": "Cancel", - "common.button.confirm": "Confirm", - "common.button.disable": "Disable", - "common.button.share": "Share", - "common.button.generate": "Generate", - "common.button.done": "Done", + "common.button.delete": "Slet", + "common.button.cancel": "Annuller", + "common.button.confirm": "Bekræft", + "common.button.disable": "Deaktiver", + "common.button.share": "Del", + "common.button.generate": "Generer", + "common.button.done": "Færdig", "common.text.link": "Link", - "common.text.or": "or", - "common.button.go-back": "Go back", - "common.notify.copied": "Your link was copied to the clipboard", - - "common.error": "Error", - "common.error.unknown": "An unknown error occurred", - "common.error.invalid-email": "Invalid email address", - "common.error.too-short": "Must be at least {length} characters", - "common.error.too-long": "Must be at most {length} characters", - "common.error.exact-length": "Must be exactly {length} characters", - "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.text.or": "eller", + "common.button.go-back": "Gå tilbage", + "common.notify.copied": "Linket blev kopieret til udklipsholderen", + "common.error": "Fejl", + "common.error.unknown": "En ukendt fejl opstod", + "common.error.invalid-email": "Ugyldig e-mail", + "common.error.too-short": "Skal være på mindst {length} tegn", + "common.error.too-long": "Må højst være {length} tegn", + "common.error.exact-length": "Skal være præcis {length} tegn", + "common.error.invalid-number": "Skal være et tal", + "common.error.field-required": "Dette felt er påkrævet" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/de.ts b/frontend/src/i18n/translations/de.ts index 377e172..d407b7c 100644 --- a/frontend/src/i18n/translations/de.ts +++ b/frontend/src/i18n/translations/de.ts @@ -1,93 +1,71 @@ export default { // Navbar - "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", - - "navbar.links.shares": "My shares", + "navbar.upload": "Hochladen", + "navbar.signin": "Anmelden", + "navbar.home": "Startseite", + "navbar.signup": "Registrieren", + "navbar.links.shares": "Meine Freigaben", "navbar.links.reverse": "Reverse shares", - - "navbar.avatar.account": "My account", + "navbar.avatar.account": "Mein Konto", "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.avatar.signout": "Abmelden", // END navbar - // / - "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", - "home.bullet.a.name": "Self-Hosted", + "home.title": "Eine selbst gehostete Dateifreigabe-Plattform.", + "home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?", + "home.bullet.a.name": "Selbst gehostet", "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", + "home.bullet.b.name": "Privatsphäre", + "home.bullet.b.description": "Your files are your files and should never get into the hands of third parties.", "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - + "home.bullet.c.description": "Upload as big files as you want. Only your hard drive will be your limit.", "home.button.start": "Get started", "home.button.source": "Source code", // END / - // /auth/signin - "signin.title": "Welcome back", - "signin.description": "You don't have an account yet?", - "signin.button.signup": "Sign up", - "signin.input.email-or-username": "Email or username", - "signin.input.email-or-username.placeholder": "Your email or username", - "signin.input.password": "Password", - "signin.input.password.placeholder": "Your password", - "signin.button.submit": "Sign in", - "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signin.title": "Willkommen zurück", + "signin.description": "Du hast noch kein Konto?", + "signin.button.signup": "Registrieren", + "signin.input.email-or-username": "Email oder Benutzername", + "signin.input.email-or-username.placeholder": "Deine Email Adresse oder Benutzername", + "signin.input.password": "Passwort", + "signin.input.password.placeholder": "Dein Passwort", + "signin.button.submit": "Anmelden", + "signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt", + "signIn.notify.totp-required.description": "Bitte füge deinen Zwei-Faktor-Authentifizierungscode ein", // END /auth/signin - // /auth/signup - "signup.title": "Create an account", - "signup.description": "Already have an account?", - "signup.button.signin": "Sign in", - "signup.input.username": "Username", - "signup.input.username.placeholder": "Your username", + "signup.title": "Erstelle ein Konto", + "signup.description": "Besitzt du bereits ein Konto?", + "signup.button.signin": "Anmelden", + "signup.input.username": "Benutzername", + "signup.input.username.placeholder": "Dein Benutzername", "signup.input.email": "Email", - "signup.input.email.placeholder": "Your email", - "signup.button.submit": "Let's get started", - + "signup.input.email.placeholder": "Deine Emailadresse", + "signup.button.submit": "Lass uns loslegen", // END /auth/signup - // /auth/reset-password - "resetPassword.title": "Forgot your password?", - "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", - "resetPassword.button.back": "Back to sign in page", - "resetPassword.text.resetPassword": "Reset password", - "resetPassword.text.enterNewPassword": "Enter your new password", - "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.title": "Passwort vergessen?", + "resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.", + "resetPassword.notify.success": "Ein Link zum Rücksetzen des Passwortes wurde an deine Emailadresse versandt.", + "resetPassword.button.back": "Zurück zur Anmeldeseite", + "resetPassword.text.resetPassword": "Passwort zurücksetzen", + "resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein", + "resetPassword.input.password": "Neues Passwort", + "resetPassword.notify.passwordReset": "Dein Passwort wurde erfolgreich zurückgesetzt.", // /account - "account.title": "My account", - - "account.card.info.title": "Account info", - "account.card.info.username": "Username", + "account.title": "Mein Konto", + "account.card.info.title": "Kontoinformationen", + "account.card.info.username": "Benutzername", "account.card.info.email": "Email", - "account.notify.info.success": "Account updated successfully", - - "account.card.password.title": "Password", - "account.card.password.old": "Old password", - "account.card.password.new": "New password", + "account.notify.info.success": "Konto erfolgreich aktualisiert", + "account.card.password.title": "Passwort", + "account.card.password.old": "Altes Passwort", + "account.card.password.new": "Neues Passwort", "account.notify.password.success": "Password changed successfully", - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", + "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP", + "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", "account.card.security.totp.button.start": "Start", "account.modal.totp.title": "Enable TOTP", "account.modal.totp.step1": "Step 1: Add your authenticator", @@ -98,28 +76,22 @@ export default { "account.modal.totp.verify": "Verify", "account.notify.totp.disable": "TOTP disabled successfully", "account.notify.totp.enable": "TOTP enabled successfully", - "account.card.language.title": "Language", "account.card.color.title": "Color scheme", - // ThemeSwitcher.tsx "account.theme.dark": "Dark", "account.theme.light": "Light", "account.theme.system": "System", - "account.button.delete": "Delete Account", "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.modal.delete.description": "Do you really want to delete your account including all your active shares?", // END /account - // /account/shares "account.shares.title": "My shares", "account.shares.title.empty": "It's empty here 👀", "account.shares.description.empty": "You don't have any shares.", "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.info.title": "Share informations", "account.shares.table.id": "ID", "account.shares.table.name": "Name", "account.shares.table.description": "Description", @@ -127,24 +99,15 @@ export default { "account.shares.table.expiresAt": "Expires at", "account.shares.table.createdAt": "Created at", "account.shares.table.size": "Size", - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.modal.delete.title": "Delete share {share}", + "account.shares.modal.delete.description": "Do you really want to delete this share?", // END /account/shares - // /account/reverseShares "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - + "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.description.empty": "You don't have any reverse shares.", // showCreateReverseShareModal.tsx "account.reverseShares.modal.expiration.label": "Expiration", "account.reverseShares.modal.expiration.minute-singular": "Minute", @@ -159,20 +122,13 @@ export default { "account.reverseShares.modal.expiration.month-plural": "Months", "account.reverseShares.modal.expiration.year-singular": "Year", "account.reverseShares.modal.expiration.year-plural": "Years", - "account.reverseShares.modal.max-size.label": "Max share size", - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - + "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", + "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - + "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", "account.reverseShares.table.no-shares": "No shares created yet", "account.reverseShares.table.count.singular": "share", "account.reverseShares.table.count.plural": "shares", @@ -180,88 +136,60 @@ export default { "account.reverseShares.table.remaining": "Remaining uses", "account.reverseShares.table.max-size": "Max share size", "account.reverseShares.table.expires": "Expires at", - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.delete.title": "Delete reverse share", + "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", // END /account/reverseShares - // /admin "admin.title": "Administration", "admin.button.users": "User management", "admin.button.config": "Configuration", "admin.version": "Version", // END /admin - // /admin/users "admin.users.title": "User management", "admin.users.table.username": "Username", "admin.users.table.email": "Email", "admin.users.table.admin": "Admin", - "admin.users.edit.update.title": "Update user {username}", "admin.users.edit.update.admin-privileges": "Admin privileges", "admin.users.edit.update.change-password.title": "Change password", "admin.users.edit.update.change-password.field": "New password", "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - + "admin.users.edit.update.notify.password.success": "Password changed successfully", "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", // showCreateUserModal.tsx "admin.users.modal.create.title": "Create user", "admin.users.modal.create.username": "Username", "admin.users.modal.create.email": "Email", "admin.users.modal.create.password": "Password", "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", + "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", // END /admin/users - // /upload "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.notify.generic-error": "An error occurred while finishing your share.", + "upload.notify.count-failed": "{count} files failed to upload. Trying again.", // Dropzone.tsx "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", + "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", // FileList.tsx "upload.filelist.name": "Name", "upload.filelist.size": "Size", - // showCreateUploadModal.tsx "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", + "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", "upload.modal.link.error.taken": "This link is already in use", "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - + "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", "upload.modal.expires.never": "never", "upload.modal.expires.never-long": "Never Expires", - "upload.modal.link.label": "Link", "upload.modal.link.placeholder": "myAwesomeShare", - "upload.modal.expires.label": "Expiration", "upload.modal.expires.minute-singular": "Minute", "upload.modal.expires.minute-plural": "Minutes", @@ -275,139 +203,97 @@ export default { "upload.modal.expires.month-plural": "Months", "upload.modal.expires.year-singular": "Year", "upload.modal.expires.year-plural": "Years", - "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - + "upload.modal.accordion.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.email.title": "Email recipients", "upload.modal.accordion.email.placeholder": "Enter email recipients", "upload.modal.accordion.email.invalid-email": "Invalid email address", - "upload.modal.accordion.security.title": "Security options", "upload.modal.accordion.security.password.label": "Password protection", "upload.modal.accordion.security.password.placeholder": "No password", "upload.modal.accordion.security.max-views.label": "Maximum views", "upload.modal.accordion.security.max-views.placeholder": "No limit", - // showCompletedUploadModal.tsx "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", + "upload.modal.completed.expires-on": "This share will expire on {expiration}.", "upload.modal.completed.share-ready": "Share ready", - // END /upload - // /share/[id] "share.title": "Share {shareId}", "share.description": "Look what I've shared with you!", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", + "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", "share.error.removed.title": "Share removed", "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - + "share.error.not-found.description": "The share you're looking for doesn't exist.", "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", + "share.modal.password.description": "To access this share please enter the password for the share.", "share.modal.password": "Password", "share.modal.error.invalid-password": "Invalid password", - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - + "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", "share.modal.file-link": "File link", "share.table.name": "Name", "share.table.size": "Size", - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.modal.file-preview.error.not-supported.description": "A preview for thise file type is unsupported. Please download the file to view it.", // END /share/[id] - // /admin/config "admin.config.title": "Configuration", "admin.config.category.general": "General", "admin.config.category.share": "Share", "admin.config.category.email": "Email", "admin.config.category.smtp": "SMTP", - "admin.config.general.app-name": "App name", "admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", + "admin.config.general.app-url.description": "On which URL Pingvin Share is available", "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", + "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", + "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", + "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", + "admin.config.share.allow-registration.description": "Whether registration is allowed", + "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", "admin.config.share.max-size": "Max size", "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", + "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", "admin.config.smtp.host": "Host", "admin.config.smtp.host.description": "Host of the SMTP server", "admin.config.smtp.port": "Port", "admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", + "admin.config.smtp.email.description": "Email address which the emails get sent from", "admin.config.smtp.username": "Username", "admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.password": "Password", "admin.config.smtp.password.description": "Password of the SMTP server", "admin.config.smtp.button.test": "Send test email", - // 404 "404.title": "404", "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.button.home": "Bring me back home", // Common translations "common.button.save": "Save", "common.button.create": "Create", @@ -423,13 +309,12 @@ export default { "common.text.or": "or", "common.button.go-back": "Go back", "common.notify.copied": "Your link was copied to the clipboard", - "common.error": "Error", "common.error.unknown": "An unknown error occurred", "common.error.invalid-email": "Invalid email address", "common.error.too-short": "Must be at least {length} characters", "common.error.too-long": "Must be at most {length} characters", "common.error.exact-length": "Must be exactly {length} characters", - "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.error.invalid-number": "Muss eine Zahl sein", + "common.error.field-required": "Dieses Feld ist erforderlich" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/es.ts b/frontend/src/i18n/translations/es.ts index 377e172..bfebd53 100644 --- a/frontend/src/i18n/translations/es.ts +++ b/frontend/src/i18n/translations/es.ts @@ -1,413 +1,299 @@ export default { // Navbar - "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", - - "navbar.links.shares": "My shares", - "navbar.links.reverse": "Reverse shares", - - "navbar.avatar.account": "My account", - "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.upload": "Subir", + "navbar.signin": "Iniciar sesión", + "navbar.home": "Inicio", + "navbar.signup": "Registrarse", + "navbar.links.shares": "Mis compartidos", + "navbar.links.reverse": "Compartidos conmigo", + "navbar.avatar.account": "Mi cuenta", + "navbar.avatar.admin": "Administración", + "navbar.avatar.signout": "Cerrar sesión", // END navbar - // / - "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", - "home.bullet.a.name": "Self-Hosted", - "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", - "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - - "home.button.start": "Get started", - "home.button.source": "Source code", + "home.title": "Una plataforma autoalojada para compartir archivos.", + "home.description": "¿En realidad quieres dejar tus archivos personales en manos de terceros como WeTransfer?", + "home.bullet.a.name": "Autoalojada", + "home.bullet.a.description": "Aloja Pingvin Share en tu propio equipo.", + "home.bullet.b.name": "Privacidad", + "home.bullet.b.description": "Tus archivos son tus archivos y nunca deberían terminar en manos de terceros.", + "home.bullet.c.name": "Sin molestos límites de tamaño de archivo", + "home.bullet.c.description": "Sube archivos tan grandes como quieras. El único límite es la capacidad de tu disco duro.", + "home.button.start": "Comenzar", + "home.button.source": "Código fuente", // END / - // /auth/signin - "signin.title": "Welcome back", - "signin.description": "You don't have an account yet?", - "signin.button.signup": "Sign up", - "signin.input.email-or-username": "Email or username", - "signin.input.email-or-username.placeholder": "Your email or username", - "signin.input.password": "Password", - "signin.input.password.placeholder": "Your password", - "signin.button.submit": "Sign in", - "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signin.title": "Bienvenido nuevamente", + "signin.description": "¿Todavía no tienes una cuenta?", + "signin.button.signup": "Registrarse", + "signin.input.email-or-username": "Correo o nombre de usuario", + "signin.input.email-or-username.placeholder": "Tu correo o nombre de usuario", + "signin.input.password": "Contraseña", + "signin.input.password.placeholder": "Tu contraseña", + "signin.button.submit": "Iniciar sesión", + "signIn.notify.totp-required.title": "Se requiere autenticación de dos factores", + "signIn.notify.totp-required.description": "Por favor ingrese su código de autenticación de dos factores", // END /auth/signin - // /auth/signup - "signup.title": "Create an account", - "signup.description": "Already have an account?", - "signup.button.signin": "Sign in", - "signup.input.username": "Username", - "signup.input.username.placeholder": "Your username", - "signup.input.email": "Email", - "signup.input.email.placeholder": "Your email", - "signup.button.submit": "Let's get started", - + "signup.title": "Crear una cuenta", + "signup.description": "¿Ya tienes una cuenta?", + "signup.button.signin": "Iniciar sesión", + "signup.input.username": "Nombre de usuario", + "signup.input.username.placeholder": "Tu nombre de usuario", + "signup.input.email": "Correo", + "signup.input.email.placeholder": "Tu correo", + "signup.button.submit": "Comencemos", // END /auth/signup - // /auth/reset-password - "resetPassword.title": "Forgot your password?", - "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", - "resetPassword.button.back": "Back to sign in page", - "resetPassword.text.resetPassword": "Reset password", - "resetPassword.text.enterNewPassword": "Enter your new password", - "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.title": "¿Olvidaste tu contraseña?", + "resetPassword.description": "Ingresa tu correo para restablecer tu contraseña.", + "resetPassword.notify.success": "Se ha enviado un correo con el enlace para restablecer tu contraseña.", + "resetPassword.button.back": "Volver al inicio de sesión", + "resetPassword.text.resetPassword": "Restablecer contraseña", + "resetPassword.text.enterNewPassword": "Ingresa tu nueva contraseña", + "resetPassword.input.password": "Nueva contraseña", + "resetPassword.notify.passwordReset": "Tu contraseña se ha restablecido correctamente.", // /account - "account.title": "My account", - - "account.card.info.title": "Account info", - "account.card.info.username": "Username", - "account.card.info.email": "Email", - "account.notify.info.success": "Account updated successfully", - - "account.card.password.title": "Password", - "account.card.password.old": "Old password", - "account.card.password.new": "New password", - "account.notify.password.success": "Password changed successfully", - - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.button.start": "Start", - "account.modal.totp.title": "Enable TOTP", - "account.modal.totp.step1": "Step 1: Add your authenticator", - "account.modal.totp.step2": "Step 2: Validate your code", - "account.modal.totp.enterManually": "Enter manually", - "account.modal.totp.code": "Code", - "account.modal.totp.clickToCopy": "Click to copy", - "account.modal.totp.verify": "Verify", - "account.notify.totp.disable": "TOTP disabled successfully", - "account.notify.totp.enable": "TOTP enabled successfully", - - "account.card.language.title": "Language", - "account.card.color.title": "Color scheme", - + "account.title": "Mi cuenta", + "account.card.info.title": "Información de cuenta", + "account.card.info.username": "Nombre de usuario", + "account.card.info.email": "Correo", + "account.notify.info.success": "Cuenta actualizada correctamente", + "account.card.password.title": "Contraseña", + "account.card.password.old": "Anterior contraseña", + "account.card.password.new": "Nueva contraseña", + "account.notify.password.success": "Contraseña cambiada correctamente", + "account.card.security.title": "Seguridad", + "account.card.security.totp.enable.description": "Ingrese su contraseña actual para habilitar TOTP", + "account.card.security.totp.disable.description": "Ingrese su contraseña actual para deshabilitar TOTP", + "account.card.security.totp.button.start": "Iniciar", + "account.modal.totp.title": "Habilitar TOTP", + "account.modal.totp.step1": "Paso 1: Añadir tu autentificador", + "account.modal.totp.step2": "Paso 2: Validar tu código", + "account.modal.totp.enterManually": "Ingresar manualmente", + "account.modal.totp.code": "Código", + "account.modal.totp.clickToCopy": "Clic para copiar", + "account.modal.totp.verify": "Verificar", + "account.notify.totp.disable": "TOTP deshabilitado correctamente", + "account.notify.totp.enable": "TOTP habilitado correctamente", + "account.card.language.title": "Idioma", + "account.card.color.title": "Esquema de colores", // ThemeSwitcher.tsx - "account.theme.dark": "Dark", - "account.theme.light": "Light", - "account.theme.system": "System", - - "account.button.delete": "Delete Account", - "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.theme.dark": "Oscuro", + "account.theme.light": "Claro", + "account.theme.system": "Sistema", + "account.button.delete": "Eliminar Cuenta", + "account.modal.delete.title": "Eliminar Cuenta", + "account.modal.delete.description": "¿Realmente quieres eliminar tu cuenta con todos los archivos que estás compartiendo actualmente?", // END /account - // /account/shares - "account.shares.title": "My shares", - "account.shares.title.empty": "It's empty here 👀", - "account.shares.description.empty": "You don't have any shares.", - "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.title": "Mis compartidos", + "account.shares.title.empty": "Aquí está vacío 👀", + "account.shares.description.empty": "No tienes nada compartido.", + "account.shares.button.create": "Crear uno", + "account.shares.info.title": "Información del archivo compartido", "account.shares.table.id": "ID", - "account.shares.table.name": "Name", - "account.shares.table.description": "Description", - "account.shares.table.visitors": "Visitors", - "account.shares.table.expiresAt": "Expires at", - "account.shares.table.createdAt": "Created at", - "account.shares.table.size": "Size", - - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.table.name": "Nombre", + "account.shares.table.description": "Descripción", + "account.shares.table.visitors": "Visitas", + "account.shares.table.expiresAt": "Expira en", + "account.shares.table.createdAt": "Creado en", + "account.shares.table.size": "Tamaño", + "account.shares.modal.share-link": "Enlace", + "account.shares.modal.delete.title": "Eliminar archivo {share}", + "account.shares.modal.delete.description": "¿Seguro que quieres eliminar este archivo compartido?", // END /account/shares - // /account/reverseShares "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - - "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.description": "Un reverse share te permite generar una URL única con la que usuarios externos pueden compartir archivos.", + "account.reverseShares.title.empty": "Aquí está vacío 👀", + "account.reverseShares.description.empty": "No tienes ninguna reverse share.", // showCreateReverseShareModal.tsx - "account.reverseShares.modal.expiration.label": "Expiration", - "account.reverseShares.modal.expiration.minute-singular": "Minute", - "account.reverseShares.modal.expiration.minute-plural": "Minutes", - "account.reverseShares.modal.expiration.hour-singular": "Hour", - "account.reverseShares.modal.expiration.hour-plural": "Hours", - "account.reverseShares.modal.expiration.day-singular": "Day", - "account.reverseShares.modal.expiration.day-plural": "Days", - "account.reverseShares.modal.expiration.week-singular": "Week", - "account.reverseShares.modal.expiration.week-plural": "Weeks", - "account.reverseShares.modal.expiration.month-singular": "Month", - "account.reverseShares.modal.expiration.month-plural": "Months", - "account.reverseShares.modal.expiration.year-singular": "Year", - "account.reverseShares.modal.expiration.year-plural": "Years", - - "account.reverseShares.modal.max-size.label": "Max share size", - - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - - "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", - "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - - "account.reverseShares.table.no-shares": "No shares created yet", - "account.reverseShares.table.count.singular": "share", - "account.reverseShares.table.count.plural": "shares", - "account.reverseShares.table.shares": "Shares", - "account.reverseShares.table.remaining": "Remaining uses", - "account.reverseShares.table.max-size": "Max share size", - "account.reverseShares.table.expires": "Expires at", - - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.expiration.label": "Expiración", + "account.reverseShares.modal.expiration.minute-singular": "Minuto", + "account.reverseShares.modal.expiration.minute-plural": "Minutos", + "account.reverseShares.modal.expiration.hour-singular": "Hora", + "account.reverseShares.modal.expiration.hour-plural": "Horas", + "account.reverseShares.modal.expiration.day-singular": "Día", + "account.reverseShares.modal.expiration.day-plural": "Días", + "account.reverseShares.modal.expiration.week-singular": "Semana", + "account.reverseShares.modal.expiration.week-plural": "Semanas", + "account.reverseShares.modal.expiration.month-singular": "Mes", + "account.reverseShares.modal.expiration.month-plural": "Meses", + "account.reverseShares.modal.expiration.year-singular": "Año", + "account.reverseShares.modal.expiration.year-plural": "Años", + "account.reverseShares.modal.max-size.label": "Tamaño máximo a compartir", + "account.reverseShares.modal.send-email": "Enviar notificación por correo", + "account.reverseShares.modal.send-email.description": "Enviar una notificación por correo cuando se comparta algo con este enlace de Reverse Share.", + "account.reverseShares.modal.max-use.label": "Máximo de usos", + "account.reverseShares.modal.max-use.description": "Cantidad máxima de veces que esta URL se puede usar para crear un archivo compartido.", + "account.reverseShare.never-expires": "Esta Reverse Share nunca expirará.", + "account.reverseShare.expires-on": "Esta Reverse Share expirará en {expiration}.", + "account.reverseShares.table.no-shares": "Todavía no has compartido un archivo", + "account.reverseShares.table.count.singular": "compartido", + "account.reverseShares.table.count.plural": "compartidos", + "account.reverseShares.table.shares": "Compartidos", + "account.reverseShares.table.remaining": "Usos restantes", + "account.reverseShares.table.max-size": "Tamaño máximo de archivo", + "account.reverseShares.table.expires": "Expira en", + "account.reverseShares.modal.reverse-share-link": "Enlace de Reverse Share", + "account.reverseShares.modal.delete.title": "Eliminar Reverse Share", + "account.reverseShares.modal.delete.description": "¿Seguro que quieres eliminar esta Reverse Share? Si lo haces, todos los archivos asociados también serán eliminados.", // END /account/reverseShares - // /admin - "admin.title": "Administration", - "admin.button.users": "User management", - "admin.button.config": "Configuration", - "admin.version": "Version", + "admin.title": "Administración", + "admin.button.users": "Gestión de usuarios", + "admin.button.config": "Configuración", + "admin.version": "Versión", // END /admin - // /admin/users - "admin.users.title": "User management", - "admin.users.table.username": "Username", - "admin.users.table.email": "Email", - "admin.users.table.admin": "Admin", - - "admin.users.edit.update.title": "Update user {username}", - "admin.users.edit.update.admin-privileges": "Admin privileges", - "admin.users.edit.update.change-password.title": "Change password", - "admin.users.edit.update.change-password.field": "New password", - "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - - "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.title": "Gestión de usuarios", + "admin.users.table.username": "Nombre de usuario", + "admin.users.table.email": "Correo", + "admin.users.table.admin": "Administrador", + "admin.users.edit.update.title": "Actualizar usuario {username}", + "admin.users.edit.update.admin-privileges": "Privilegios de administrador", + "admin.users.edit.update.change-password.title": "Cambiar contraseña", + "admin.users.edit.update.change-password.field": "Nueva contraseña", + "admin.users.edit.update.change-password.button": "Guardar nueva contraseña", + "admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente", + "admin.users.edit.delete.title": "Eliminar usuario {username}", + "admin.users.edit.delete.description": "¿Realmente quiere eliminar este usuario y todos sus archivos compartidos?", // showCreateUserModal.tsx - "admin.users.modal.create.title": "Create user", - "admin.users.modal.create.username": "Username", - "admin.users.modal.create.email": "Email", - "admin.users.modal.create.password": "Password", - "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", - "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.title": "Crear usuario", + "admin.users.modal.create.username": "Nombre de usuario", + "admin.users.modal.create.email": "Correo", + "admin.users.modal.create.password": "Contraseña", + "admin.users.modal.create.manual-password": "Establecer contraseña manualmente", + "admin.users.modal.create.manual-password.description": "Si no se marca, el usuario recibirá un correo con un enlace para configurar su contraseña.", + "admin.users.modal.create.admin": "Privilegios de administrador", + "admin.users.modal.create.admin.description": "Si se marca, el usuario podrá acceder al panel de administrador.", // END /admin/users - // /upload - "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.title": "Subir", + "upload.notify.generic-error": "Ha ocurrido un error mientras se compartía tu archivo.", + "upload.notify.count-failed": "No se pudo cargar {count} archivos. Intentando nuevamente.", // Dropzone.tsx - "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.title": "Subir archivos", + "upload.dropzone.description": "Arrastra archivos aquí para comenzar a compartir. Aceptamos archivos de un tamaño menor a {maxSize} en total.", + "upload.dropzone.notify.file-too-big": "Tus archivos exceden el tamaño máximo de {maxSize}.", // FileList.tsx - "upload.filelist.name": "Name", - "upload.filelist.size": "Size", - + "upload.filelist.name": "Nombre", + "upload.filelist.size": "Tamaño", // showCreateUploadModal.tsx - "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", - "upload.modal.link.error.taken": "This link is already in use", - "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - - "upload.modal.expires.never": "never", - "upload.modal.expires.never-long": "Never Expires", - - "upload.modal.link.label": "Link", + "upload.modal.title": "Crear archivo compartido", + "upload.modal.link.error.invalid": "Solo puede contener letras, números, guiones y guiones bajos", + "upload.modal.link.error.taken": "Este enlace ya está en uso", + "upload.modal.not-signed-in": "No has iniciado sesión", + "upload.modal.not-signed-in-description": "No podrás eliminar tus archivos compartidos manualmente ni ver el número de visitas.", + "upload.modal.expires.never": "nunca", + "upload.modal.expires.never-long": "Nunca Expira", + "upload.modal.link.label": "Enlace", "upload.modal.link.placeholder": "myAwesomeShare", - - "upload.modal.expires.label": "Expiration", - "upload.modal.expires.minute-singular": "Minute", - "upload.modal.expires.minute-plural": "Minutes", - "upload.modal.expires.hour-singular": "Hour", - "upload.modal.expires.hour-plural": "Hours", - "upload.modal.expires.day-singular": "Day", - "upload.modal.expires.day-plural": "Days", - "upload.modal.expires.week-singular": "Week", - "upload.modal.expires.week-plural": "Weeks", - "upload.modal.expires.month-singular": "Month", - "upload.modal.expires.month-plural": "Months", - "upload.modal.expires.year-singular": "Year", - "upload.modal.expires.year-plural": "Years", - - "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - - "upload.modal.accordion.email.title": "Email recipients", - "upload.modal.accordion.email.placeholder": "Enter email recipients", - "upload.modal.accordion.email.invalid-email": "Invalid email address", - - "upload.modal.accordion.security.title": "Security options", - "upload.modal.accordion.security.password.label": "Password protection", - "upload.modal.accordion.security.password.placeholder": "No password", - "upload.modal.accordion.security.max-views.label": "Maximum views", - "upload.modal.accordion.security.max-views.placeholder": "No limit", - + "upload.modal.expires.label": "Expiración", + "upload.modal.expires.minute-singular": "Minuto", + "upload.modal.expires.minute-plural": "Minutos", + "upload.modal.expires.hour-singular": "Hora", + "upload.modal.expires.hour-plural": "Horas", + "upload.modal.expires.day-singular": "Día", + "upload.modal.expires.day-plural": "Días", + "upload.modal.expires.week-singular": "Semana", + "upload.modal.expires.week-plural": "Semanas", + "upload.modal.expires.month-singular": "Mes", + "upload.modal.expires.month-plural": "Meses", + "upload.modal.expires.year-singular": "Año", + "upload.modal.expires.year-plural": "Años", + "upload.modal.accordion.description.title": "Descripción", + "upload.modal.accordion.description.placeholder": "Nota para los destinatarios de este archivo", + "upload.modal.accordion.email.title": "Correo de los destinatarios", + "upload.modal.accordion.email.placeholder": "Ingresa los correos de los destinatarios", + "upload.modal.accordion.email.invalid-email": "Dirección de correo inválida", + "upload.modal.accordion.security.title": "Opciones de seguridad", + "upload.modal.accordion.security.password.label": "Protección por contraseña", + "upload.modal.accordion.security.password.placeholder": "Sin contraseña", + "upload.modal.accordion.security.max-views.label": "Máximo de vistas", + "upload.modal.accordion.security.max-views.placeholder": "Sin límite", // showCompletedUploadModal.tsx - "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", - "upload.modal.completed.share-ready": "Share ready", - + "upload.modal.completed.never-expires": "Este archivo nunca expirará.", + "upload.modal.completed.expires-on": "Este archivo expira en {expiration}.", + "upload.modal.completed.share-ready": "Archivo listo", // END /upload - // /share/[id] - "share.title": "Share {shareId}", - "share.description": "Look what I've shared with you!", - "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", - "share.error.removed.title": "Share removed", - "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - - "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", - "share.modal.password": "Password", - "share.modal.error.invalid-password": "Invalid password", - - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - - "share.modal.file-link": "File link", - "share.table.name": "Name", - "share.table.size": "Size", - - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.title": "Archivo {shareId}", + "share.description": "¡Mira lo que he compartido contigo!", + "share.error.visitor-limit-exceeded.title": "Se excedió el límite de visitas", + "share.error.visitor-limit-exceeded.description": "Se ha excedido el límite de visitas para este archivo.", + "share.error.removed.title": "Archivo eliminado", + "share.error.not-found.title": "Archivo no encontrado", + "share.error.not-found.description": "El archivo que estás buscando no existe.", + "share.modal.password.title": "Se requiere contraseña", + "share.modal.password.description": "Por favor ingrese la contraseña para poder acceder a este archivo compartido.", + "share.modal.password": "Contraseña", + "share.modal.error.invalid-password": "Contraseña inválida", + "share.button.download-all": "Descargar todo", + "share.notify.download-all-preparing": "Se está preparando el archivo. Intente de nuevo en unos minutos.", + "share.modal.file-link": "Enlace del archivo", + "share.table.name": "Nombre", + "share.table.size": "Tamaño", + "share.modal.file-preview.error.not-supported.title": "Vista previa no disponible", + "share.modal.file-preview.error.not-supported.description": "La vista previa para este tipo de archivo no está disponible. Por favor descargue el archivo para verlo.", // END /share/[id] - // /admin/config - "admin.config.title": "Configuration", + "admin.config.title": "Configuración", "admin.config.category.general": "General", "admin.config.category.share": "Share", - "admin.config.category.email": "Email", + "admin.config.category.email": "Correo", "admin.config.category.smtp": "SMTP", - - "admin.config.general.app-name": "App name", - "admin.config.general.app-name.description": "Name of the application", + "admin.config.general.app-name": "Nombre de la App", + "admin.config.general.app-name.description": "Nombre de la aplicación", "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", - "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.app-url.description": "En cuál URL está disponible Pingvin Share", + "admin.config.general.show-home-page": "Mostrar página de inicio", + "admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", - "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", + "admin.config.general.logo.placeholder": "Elegir imagen", + "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", + "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", + "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", + "admin.config.share.allow-registration.description": "Whether registration is allowed", + "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", "admin.config.share.max-size": "Max size", "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", + "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", "admin.config.smtp.host": "Host", "admin.config.smtp.host.description": "Host of the SMTP server", "admin.config.smtp.port": "Port", "admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", + "admin.config.smtp.email.description": "Email address which the emails get sent from", "admin.config.smtp.username": "Username", "admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.password": "Password", "admin.config.smtp.password.description": "Password of the SMTP server", "admin.config.smtp.button.test": "Send test email", - // 404 "404.title": "404", "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.button.home": "Bring me back home", // Common translations "common.button.save": "Save", "common.button.create": "Create", @@ -419,11 +305,10 @@ export default { "common.button.share": "Share", "common.button.generate": "Generate", "common.button.done": "Done", - "common.text.link": "Link", + "common.text.link": "Enlace", "common.text.or": "or", "common.button.go-back": "Go back", "common.notify.copied": "Your link was copied to the clipboard", - "common.error": "Error", "common.error.unknown": "An unknown error occurred", "common.error.invalid-email": "Invalid email address", @@ -431,5 +316,5 @@ export default { "common.error.too-long": "Must be at most {length} characters", "common.error.exact-length": "Must be exactly {length} characters", "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.error.field-required": "This field is required" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/fr.ts b/frontend/src/i18n/translations/fr.ts index 377e172..0bd2fa5 100644 --- a/frontend/src/i18n/translations/fr.ts +++ b/frontend/src/i18n/translations/fr.ts @@ -1,435 +1,320 @@ export default { // Navbar - "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", - - "navbar.links.shares": "My shares", - "navbar.links.reverse": "Reverse shares", - - "navbar.avatar.account": "My account", + "navbar.upload": "Envoyer", + "navbar.signin": "Se connecter", + "navbar.home": "Accueil", + "navbar.signup": "S'inscrire", + "navbar.links.shares": "Mes partages", + "navbar.links.reverse": "Partages inversés", + "navbar.avatar.account": "Mon compte", "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.avatar.signout": "Se déconnecter", // END navbar - // / - "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", - "home.bullet.a.name": "Self-Hosted", - "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", - "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - - "home.button.start": "Get started", - "home.button.source": "Source code", + "home.title": "Une plateforme de partage de fichier auto-hébergée.", + "home.description": "Voulez-vous vraiment remettre vos fichiers personnels dans les mains de tiers comme WeTransfer ?", + "home.bullet.a.name": "Auto-hébergé", + "home.bullet.a.description": "Hébergez Pingvin Share sur votre propre machine.", + "home.bullet.b.name": "Confidentialité", + "home.bullet.b.description": "Vos fichiers sont vos fichiers et ne devraient jamais être mis entre les mains de tiers.", + "home.bullet.c.name": "Aucune rébarbative limite de taille", + "home.bullet.c.description": "Téléchargez des fichiers volumineux que vous le souhaitez. Seul votre disque dur est la limite.", + "home.button.start": "Commencer", + "home.button.source": "Code source", // END / - // /auth/signin - "signin.title": "Welcome back", - "signin.description": "You don't have an account yet?", - "signin.button.signup": "Sign up", - "signin.input.email-or-username": "Email or username", - "signin.input.email-or-username.placeholder": "Your email or username", - "signin.input.password": "Password", - "signin.input.password.placeholder": "Your password", - "signin.button.submit": "Sign in", - "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signin.title": "Content de vous revoir", + "signin.description": "Pas encore de compte ?", + "signin.button.signup": "S'inscrire", + "signin.input.email-or-username": "Email ou pseudo", + "signin.input.email-or-username.placeholder": "Votre email ou pseudo", + "signin.input.password": "Mot de passe", + "signin.input.password.placeholder": "Votre mot de passe", + "signin.button.submit": "Se connecter", + "signIn.notify.totp-required.title": "Une authentification à deux facteurs est requise", + "signIn.notify.totp-required.description": "Veuillez entrer votre code d'authentification à deux facteurs", // END /auth/signin - // /auth/signup - "signup.title": "Create an account", - "signup.description": "Already have an account?", - "signup.button.signin": "Sign in", - "signup.input.username": "Username", - "signup.input.username.placeholder": "Your username", - "signup.input.email": "Email", - "signup.input.email.placeholder": "Your email", - "signup.button.submit": "Let's get started", - + "signup.title": "Créer un compte", + "signup.description": "Vous avez déjà un compte ?", + "signup.button.signin": "Se connecter", + "signup.input.username": "Pseudo", + "signup.input.username.placeholder": "Votre pseudo", + "signup.input.email": "Adresse mail", + "signup.input.email.placeholder": "Votre adresse mail", + "signup.button.submit": "Commençons", // END /auth/signup - // /auth/reset-password - "resetPassword.title": "Forgot your password?", - "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", - "resetPassword.button.back": "Back to sign in page", - "resetPassword.text.resetPassword": "Reset password", - "resetPassword.text.enterNewPassword": "Enter your new password", - "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.title": "Mot de passe oublié ?", + "resetPassword.description": "Saisissez votre email pour réinitialiser votre mot de passe.", + "resetPassword.notify.success": "Un mail a été envoyé avec un lien pour réinitialiser votre mot de passe.", + "resetPassword.button.back": "Retour à la page de connexion", + "resetPassword.text.resetPassword": "Réinitialiser le mot de passe", + "resetPassword.text.enterNewPassword": "Saisissez votre nouveau mot de passe", + "resetPassword.input.password": "Nouveau mot de passe", + "resetPassword.notify.passwordReset": "Votre mot de passe a bien été réinitialisé.", // /account - "account.title": "My account", - - "account.card.info.title": "Account info", - "account.card.info.username": "Username", - "account.card.info.email": "Email", - "account.notify.info.success": "Account updated successfully", - - "account.card.password.title": "Password", - "account.card.password.old": "Old password", - "account.card.password.new": "New password", - "account.notify.password.success": "Password changed successfully", - - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.button.start": "Start", - "account.modal.totp.title": "Enable TOTP", - "account.modal.totp.step1": "Step 1: Add your authenticator", - "account.modal.totp.step2": "Step 2: Validate your code", - "account.modal.totp.enterManually": "Enter manually", + "account.title": "Mon compte", + "account.card.info.title": "Détails du compte", + "account.card.info.username": "Pseudo", + "account.card.info.email": "Adresse mail", + "account.notify.info.success": "Compte mis à jour avec succès", + "account.card.password.title": "Mot de passe", + "account.card.password.old": "Ancien mot de passe", + "account.card.password.new": "Nouveau mot de passe", + "account.notify.password.success": "Le mot de passe a été modifié avec succès", + "account.card.security.title": "Sécurité", + "account.card.security.totp.enable.description": "Entrez votre mot de passe actuel pour commencer à activer TOTP", + "account.card.security.totp.disable.description": "Entrez votre mot de passe pour désactiver TOTP", + "account.card.security.totp.button.start": "Commencer", + "account.modal.totp.title": "Activer TOTP", + "account.modal.totp.step1": "Étape 1 : Ajouter votre authentificateur", + "account.modal.totp.step2": "Étape 2 : Valider votre code", + "account.modal.totp.enterManually": "Saisir manuellement", "account.modal.totp.code": "Code", - "account.modal.totp.clickToCopy": "Click to copy", - "account.modal.totp.verify": "Verify", - "account.notify.totp.disable": "TOTP disabled successfully", - "account.notify.totp.enable": "TOTP enabled successfully", - - "account.card.language.title": "Language", - "account.card.color.title": "Color scheme", - + "account.modal.totp.clickToCopy": "Cliquez pour copier", + "account.modal.totp.verify": "Vérifier", + "account.notify.totp.disable": "TOTP désactivé", + "account.notify.totp.enable": "TOTP activé", + "account.card.language.title": "Langue", + "account.card.color.title": "Thème de couleurs", // ThemeSwitcher.tsx - "account.theme.dark": "Dark", - "account.theme.light": "Light", - "account.theme.system": "System", - - "account.button.delete": "Delete Account", - "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.theme.dark": "Sombre", + "account.theme.light": "Clair", + "account.theme.system": "Système", + "account.button.delete": "Supprimer le compte", + "account.modal.delete.title": "Supprimer le compte", + "account.modal.delete.description": "Voulez-vous vraiment supprimer votre compte, y compris tous vos partages actifs ?", // END /account - // /account/shares - "account.shares.title": "My shares", - "account.shares.title.empty": "It's empty here 👀", - "account.shares.description.empty": "You don't have any shares.", - "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.title": "Mes partages", + "account.shares.title.empty": "Il n'y a rien ici 👀", + "account.shares.description.empty": "Vous n’avez aucun partage.", + "account.shares.button.create": "Créez-en un", + "account.shares.info.title": "Détails du partage", "account.shares.table.id": "ID", - "account.shares.table.name": "Name", + "account.shares.table.name": "Nom", "account.shares.table.description": "Description", - "account.shares.table.visitors": "Visitors", - "account.shares.table.expiresAt": "Expires at", - "account.shares.table.createdAt": "Created at", - "account.shares.table.size": "Size", - - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.table.visitors": "Visiteurs", + "account.shares.table.expiresAt": "Expire le", + "account.shares.table.createdAt": "Créé le", + "account.shares.table.size": "Taille", + "account.shares.modal.share-link": "Lien de partage", + "account.shares.modal.delete.title": "Supprimer le partage {share}", + "account.shares.modal.delete.description": "Voulez-vous vraiment supprimer ce partage ?", // END /account/shares - // /account/reverseShares - "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - - "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.title": "Partages inversés", + "account.reverseShares.description": "Un partage unversé vous permet de générer une URL unique qui permet à des utilisateurs externes de créer un partage.", + "account.reverseShares.title.empty": "Il n'y a rien ici 👀", + "account.reverseShares.description.empty": "Vous n'avez aucun partage inversé.", // showCreateReverseShareModal.tsx "account.reverseShares.modal.expiration.label": "Expiration", "account.reverseShares.modal.expiration.minute-singular": "Minute", "account.reverseShares.modal.expiration.minute-plural": "Minutes", - "account.reverseShares.modal.expiration.hour-singular": "Hour", - "account.reverseShares.modal.expiration.hour-plural": "Hours", - "account.reverseShares.modal.expiration.day-singular": "Day", - "account.reverseShares.modal.expiration.day-plural": "Days", - "account.reverseShares.modal.expiration.week-singular": "Week", - "account.reverseShares.modal.expiration.week-plural": "Weeks", - "account.reverseShares.modal.expiration.month-singular": "Month", - "account.reverseShares.modal.expiration.month-plural": "Months", - "account.reverseShares.modal.expiration.year-singular": "Year", - "account.reverseShares.modal.expiration.year-plural": "Years", - - "account.reverseShares.modal.max-size.label": "Max share size", - - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - - "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", - "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - - "account.reverseShares.table.no-shares": "No shares created yet", - "account.reverseShares.table.count.singular": "share", - "account.reverseShares.table.count.plural": "shares", - "account.reverseShares.table.shares": "Shares", - "account.reverseShares.table.remaining": "Remaining uses", - "account.reverseShares.table.max-size": "Max share size", - "account.reverseShares.table.expires": "Expires at", - - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.expiration.hour-singular": "Heure", + "account.reverseShares.modal.expiration.hour-plural": "Heures", + "account.reverseShares.modal.expiration.day-singular": "Jour", + "account.reverseShares.modal.expiration.day-plural": "Jours", + "account.reverseShares.modal.expiration.week-singular": "Semaine", + "account.reverseShares.modal.expiration.week-plural": "Semaines", + "account.reverseShares.modal.expiration.month-singular": "Mois", + "account.reverseShares.modal.expiration.month-plural": "Mois", + "account.reverseShares.modal.expiration.year-singular": "An", + "account.reverseShares.modal.expiration.year-plural": "Ans", + "account.reverseShares.modal.max-size.label": "Taille maximale du partage", + "account.reverseShares.modal.send-email": "Envoyer un mail de notification", + "account.reverseShares.modal.send-email.description": "Envoyer une notification par courriel lorsqu'un partage est créé depuis ce partage inversé.", + "account.reverseShares.modal.max-use.label": "Nombre d'utilisation max", + "account.reverseShares.modal.max-use.description": "Le nombre maximal de fois que cette URL peut être utilisée pour créer un partage.", + "account.reverseShare.never-expires": "Ce partage inversé n'expirera jamais.", + "account.reverseShare.expires-on": "Ce partage inversé expirera le {expiration}.", + "account.reverseShares.table.no-shares": "Aucun partage créé pour le moment", + "account.reverseShares.table.count.singular": "partage", + "account.reverseShares.table.count.plural": "partages", + "account.reverseShares.table.shares": "Partages", + "account.reverseShares.table.remaining": "Utilisations restantes", + "account.reverseShares.table.max-size": "Taille maximale du partage", + "account.reverseShares.table.expires": "Expire dans", + "account.reverseShares.modal.reverse-share-link": "Lien du partage inversé", + "account.reverseShares.modal.delete.title": "Supprimer le partage inversé", + "account.reverseShares.modal.delete.description": "Voulez-vous vraiment supprimer ce pot commun ? Si vous le faites, les partages qu'il contient seront également supprimés.", // END /account/reverseShares - // /admin "admin.title": "Administration", - "admin.button.users": "User management", - "admin.button.config": "Configuration", + "admin.button.users": "Gestion des utilisateurs", + "admin.button.config": "Paramètres", "admin.version": "Version", // END /admin - // /admin/users - "admin.users.title": "User management", - "admin.users.table.username": "Username", - "admin.users.table.email": "Email", + "admin.users.title": "Gestion des utilisateurs", + "admin.users.table.username": "Pseudo", + "admin.users.table.email": "Adresse mail", "admin.users.table.admin": "Admin", - - "admin.users.edit.update.title": "Update user {username}", - "admin.users.edit.update.admin-privileges": "Admin privileges", - "admin.users.edit.update.change-password.title": "Change password", - "admin.users.edit.update.change-password.field": "New password", - "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - - "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.edit.update.title": "Modifier l'utilisateur {username}", + "admin.users.edit.update.admin-privileges": "Privilèges admin", + "admin.users.edit.update.change-password.title": "Changer le mot de passe", + "admin.users.edit.update.change-password.field": "Nouveau mot de passe", + "admin.users.edit.update.change-password.button": "Enregistrer le nouveau mot de passe", + "admin.users.edit.update.notify.password.success": "Le mot de passe a été modifié", + "admin.users.edit.delete.title": "Supprimer l'utilisateur {username}", + "admin.users.edit.delete.description": "Voulez-vous vraiment supprimer cet utilisateur et toutes ses partages ?", // showCreateUserModal.tsx - "admin.users.modal.create.title": "Create user", - "admin.users.modal.create.username": "Username", - "admin.users.modal.create.email": "Email", - "admin.users.modal.create.password": "Password", - "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", - "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.title": "Créer un utilisateur", + "admin.users.modal.create.username": "Surnom", + "admin.users.modal.create.email": "Courriel", + "admin.users.modal.create.password": "Mot de passe", + "admin.users.modal.create.manual-password": "Définir le mot de passe manuellement", + "admin.users.modal.create.manual-password.description": "S'il n'est pas coché, l'utilisateur recevra un mail avec un lien pour définir son mot de passe.", + "admin.users.modal.create.admin": "Privilèges admin", + "admin.users.modal.create.admin.description": "Si coché, l'utilisateur pourra accéder au panneau d'administration.", // END /admin/users - // /upload - "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.title": "Téléverser", + "upload.notify.generic-error": "Une erreur est survenue durant le traitement de votre partage.", + "upload.notify.count-failed": "{count} fichier(s) n'a(ont) pas pu être envoyés. Veuillez réessayer.", // Dropzone.tsx - "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.title": "Téléverser des fichiers", + "upload.dropzone.description": "Glissez-déposez des fichiers ici pour commencer votre partage. Ils ne peuvent avoir une taille supérieur à {maxSize} au total.", + "upload.dropzone.notify.file-too-big": "Vos fichiers dépassent la taille maximale de {maxSize}.", // FileList.tsx - "upload.filelist.name": "Name", - "upload.filelist.size": "Size", - + "upload.filelist.name": "Nom", + "upload.filelist.size": "Taille", // showCreateUploadModal.tsx - "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", - "upload.modal.link.error.taken": "This link is already in use", - "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - - "upload.modal.expires.never": "never", - "upload.modal.expires.never-long": "Never Expires", - - "upload.modal.link.label": "Link", - "upload.modal.link.placeholder": "myAwesomeShare", - + "upload.modal.title": "Créer un partage", + "upload.modal.link.error.invalid": "Ne peut contenir que des lettres, des chiffres, des tirets bas et des traits d'union", + "upload.modal.link.error.taken": "Ce lien est déjà utilisé", + "upload.modal.not-signed-in": "Vous n'êtes pas connecté", + "upload.modal.not-signed-in-description": "Vous ne pourrez pas supprimer votre partage manuellement et afficher le nombre de visiteurs.", + "upload.modal.expires.never": "jamais", + "upload.modal.expires.never-long": "N'expire jamais", + "upload.modal.link.label": "Lien", + "upload.modal.link.placeholder": "monSuperPartage", "upload.modal.expires.label": "Expiration", "upload.modal.expires.minute-singular": "Minute", "upload.modal.expires.minute-plural": "Minutes", - "upload.modal.expires.hour-singular": "Hour", - "upload.modal.expires.hour-plural": "Hours", - "upload.modal.expires.day-singular": "Day", - "upload.modal.expires.day-plural": "Days", - "upload.modal.expires.week-singular": "Week", - "upload.modal.expires.week-plural": "Weeks", - "upload.modal.expires.month-singular": "Month", - "upload.modal.expires.month-plural": "Months", - "upload.modal.expires.year-singular": "Year", - "upload.modal.expires.year-plural": "Years", - + "upload.modal.expires.hour-singular": "Heure", + "upload.modal.expires.hour-plural": "Heures", + "upload.modal.expires.day-singular": "Jour", + "upload.modal.expires.day-plural": "Jours", + "upload.modal.expires.week-singular": "Semaine", + "upload.modal.expires.week-plural": "Semaines", + "upload.modal.expires.month-singular": "Mois", + "upload.modal.expires.month-plural": "Mois", + "upload.modal.expires.year-singular": "An", + "upload.modal.expires.year-plural": "Ans", "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - - "upload.modal.accordion.email.title": "Email recipients", - "upload.modal.accordion.email.placeholder": "Enter email recipients", - "upload.modal.accordion.email.invalid-email": "Invalid email address", - - "upload.modal.accordion.security.title": "Security options", - "upload.modal.accordion.security.password.label": "Password protection", - "upload.modal.accordion.security.password.placeholder": "No password", - "upload.modal.accordion.security.max-views.label": "Maximum views", - "upload.modal.accordion.security.max-views.placeholder": "No limit", - + "upload.modal.accordion.description.placeholder": "Note pour les destinataires de ce partage", + "upload.modal.accordion.email.title": "Destinataires du mail", + "upload.modal.accordion.email.placeholder": "Saisir les destinataires du mail", + "upload.modal.accordion.email.invalid-email": "Adresse mail invalide", + "upload.modal.accordion.security.title": "Options de sécurité", + "upload.modal.accordion.security.password.label": "Protection par mot de passe", + "upload.modal.accordion.security.password.placeholder": "Aucun mot de passe", + "upload.modal.accordion.security.max-views.label": "Nombre de vues maximum", + "upload.modal.accordion.security.max-views.placeholder": "Aucune limite", // showCompletedUploadModal.tsx - "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", - "upload.modal.completed.share-ready": "Share ready", - + "upload.modal.completed.never-expires": "Ce partage n'expirera jamais.", + "upload.modal.completed.expires-on": "Ce partage expirera le {expiration}.", + "upload.modal.completed.share-ready": "Partage prêt", // END /upload - // /share/[id] - "share.title": "Share {shareId}", - "share.description": "Look what I've shared with you!", - "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", - "share.error.removed.title": "Share removed", - "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - - "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", - "share.modal.password": "Password", - "share.modal.error.invalid-password": "Invalid password", - - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - - "share.modal.file-link": "File link", - "share.table.name": "Name", - "share.table.size": "Size", - - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.title": "Partage {shareId}", + "share.description": "Regardez ce que j'ai partagé !", + "share.error.visitor-limit-exceeded.title": "Limite de visiteurs dépassée", + "share.error.visitor-limit-exceeded.description": "La limite de visiteurs de ce partage a été dépassée.", + "share.error.removed.title": "Partage supprimé", + "share.error.not-found.title": "Partage introuvable", + "share.error.not-found.description": "Le partage que vous cherchez n'existe pas.", + "share.modal.password.title": "Mot de passe requis", + "share.modal.password.description": "Pour accéder à ce partage, veuillez entrer le mot de passe du partage.", + "share.modal.password": "Mot de passe", + "share.modal.error.invalid-password": "Mot de passe incorrect", + "share.button.download-all": "Télécharger tout", + "share.notify.download-all-preparing": "Le partage est en préparation. Réessayez dans quelques minutes.", + "share.modal.file-link": "Lien du fichier", + "share.table.name": "Nom", + "share.table.size": "Taille", + "share.modal.file-preview.error.not-supported.title": "Aperçu non supporté", + "share.modal.file-preview.error.not-supported.description": "Un aperçu pour ce type de fichier n'est pas pris en charge. Veuillez télécharger le fichier pour le voir.", // END /share/[id] - // /admin/config - "admin.config.title": "Configuration", - "admin.config.category.general": "General", - "admin.config.category.share": "Share", - "admin.config.category.email": "Email", + "admin.config.title": "Paramètres", + "admin.config.category.general": "Général", + "admin.config.category.share": "Partage", + "admin.config.category.email": "Adresse mail", "admin.config.category.smtp": "SMTP", - - "admin.config.general.app-name": "App name", - "admin.config.general.app-name.description": "Name of the application", - "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", - "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.app-name": "Nom de l'app", + "admin.config.general.app-name.description": "Nom de l'application", + "admin.config.general.app-url": "URL de l’application", + "admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible", + "admin.config.general.show-home-page": "Afficher la page d'accueil", + "admin.config.general.show-home-page.description": "Afficher ou non la page d'accueil", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", - "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", - "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", - "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", - "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", - "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", - "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", - "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", - "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", - "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", - "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", - "admin.config.share.max-size": "Max size", - "admin.config.share.max-size.description": "Maximum share size in bytes", - - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", - "admin.config.smtp.host": "Host", - "admin.config.smtp.host.description": "Host of the SMTP server", + "admin.config.general.logo.description": "Changez votre logo en téléchargeant une nouvelle image. L'image doit être un PNG et doit avoir un ratio 1:1.", + "admin.config.general.logo.placeholder": "Sélectionner une image", + "admin.config.email.enable-share-email-recipients": "Activer les destinataires du courriel du partage", + "admin.config.email.enable-share-email-recipients.description": "Autorise les mails des destinataires du partage. N'activez cette option que si vous avez activé SMTP.", + "admin.config.email.share-recipients-subject": "Sujet des destinataires du partage", + "admin.config.email.share-recipients-subject.description": "Sujet du mail qui est envoyé aux destinataires du partage.", + "admin.config.email.share-recipients-message": "Message des destinataires du partage", + "admin.config.email.share-recipients-message.description": "Message qui est envoyé aux destinataires du partage. Valeurs possibles:\n {creator} - Le pseudo de l'auteur du partage\n {shareUrl} - L'URL du partage\n {desc} - La description du partage\n {expires} - La date d'expiration du partage\n Les variables seront remplacées par les vraies valeurs.", + "admin.config.email.reverse-share-subject": "Sujet du partage inversé", + "admin.config.email.reverse-share-subject.description": "Sujet du courriel qui est envoyé lorsque quelqu'un a créé un partage avec le lien de votre pot commun.", + "admin.config.email.reverse-share-message": "Message du partage inversé", + "admin.config.email.reverse-share-message.description": "Message qui est envoyé lorsque quelqu'un créé un partage avec le lien de votre partage inversé. {shareUrl} sera remplacé par le nom du créateur et l'URL de partage.", + "admin.config.email.reset-password-subject": "Sujet de réinitialisation du mot de passe", + "admin.config.email.reset-password-subject.description": "Sujet du mail qui est envoyé lorsqu'un utilisateur demande une réinitialisation du mot de passe.", + "admin.config.email.reset-password-message": "Message de réinitialisation du mot de passe", + "admin.config.email.reset-password-message.description": "Message qui est envoyé lorsqu'un utilisateur demande à réinitialiser son mot de passe. {url} sera remplacé par l'URL de réinitialisation du mot de passe.", + "admin.config.email.invite-subject": "Sujet de l'invitation", + "admin.config.email.invite-subject.description": "Sujet du courriel qui est envoyé lorsqu'un administrateur invite un utilisateur.", + "admin.config.email.invite-message": "Message de l'invitation", + "admin.config.email.invite-message.description": "Message qui est envoyé lorsqu'un administrateur invite un utilisateur. {url} sera remplacé par l'URL d'invitation et {password} avec le mot de passe.", + "admin.config.share.allow-registration": "Autoriser les inscriptions", + "admin.config.share.allow-registration.description": "Autorise l'inscription", + "admin.config.share.allow-unauthenticated-shares": "Autoriser les partages non authentifiés", + "admin.config.share.allow-unauthenticated-shares.description": "Si les utilisateurs non connectés peuvent créer des partages", + "admin.config.share.max-size": "Taille max", + "admin.config.share.max-size.description": "Taille maximale du fichier en octets", + "admin.config.smtp.enabled": "Activé", + "admin.config.smtp.enabled.description": "Active SMTP. Activez ceci uniquement si vous avez saisit l'hôte, le port, le courriel, l'utilisateur et le mot de passe de votre serveur SMTP.", + "admin.config.smtp.host": "Hôte", + "admin.config.smtp.host.description": "Hôte du serveur SMTP", "admin.config.smtp.port": "Port", - "admin.config.smtp.port.description": "Port of the SMTP server", - "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", - "admin.config.smtp.username": "Username", - "admin.config.smtp.username.description": "Username of the SMTP server", - "admin.config.smtp.password": "Password", - "admin.config.smtp.password.description": "Password of the SMTP server", - "admin.config.smtp.button.test": "Send test email", - + "admin.config.smtp.port.description": "Port du serveur SMTP", + "admin.config.smtp.email": "Adresse mail", + "admin.config.smtp.email.description": "Adresse à partir de laquelle les mails sont envoyés", + "admin.config.smtp.username": "Nom d'utilisateur", + "admin.config.smtp.username.description": "Nom d'utilisateur du serveur SMTP", + "admin.config.smtp.password": "Mot de passe", + "admin.config.smtp.password.description": "Mot de passe du serveur SMTP", + "admin.config.smtp.button.test": "Envoyer un mail de test", // 404 "404.title": "404", - "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.description": "Désolé, mais cette page n’existe pas.", + "404.button.home": "Retour à l'accueil", // Common translations - "common.button.save": "Save", - "common.button.create": "Create", - "common.button.submit": "Submit", - "common.button.delete": "Delete", - "common.button.cancel": "Cancel", - "common.button.confirm": "Confirm", - "common.button.disable": "Disable", - "common.button.share": "Share", - "common.button.generate": "Generate", - "common.button.done": "Done", - "common.text.link": "Link", - "common.text.or": "or", - "common.button.go-back": "Go back", - "common.notify.copied": "Your link was copied to the clipboard", - - "common.error": "Error", - "common.error.unknown": "An unknown error occurred", - "common.error.invalid-email": "Invalid email address", - "common.error.too-short": "Must be at least {length} characters", - "common.error.too-long": "Must be at most {length} characters", - "common.error.exact-length": "Must be exactly {length} characters", - "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.button.save": "Sauvegarder", + "common.button.create": "Créer", + "common.button.submit": "Envoyer", + "common.button.delete": "Supprimer", + "common.button.cancel": "Annuler", + "common.button.confirm": "Confirmer", + "common.button.disable": "Désactiver", + "common.button.share": "Partager", + "common.button.generate": "Générer", + "common.button.done": "Terminer", + "common.text.link": "Lien", + "common.text.or": "ou", + "common.button.go-back": "Précédent", + "common.notify.copied": "Votre lien a été copié dans le presse-papiers", + "common.error": "Erreur", + "common.error.unknown": "Une erreur inconnue est survenue", + "common.error.invalid-email": "Courriel invalid", + "common.error.too-short": "Doit comporter au moins {length} caractères", + "common.error.too-long": "Doit comporter au plus {length} caractères", + "common.error.exact-length": "Doit comporter exactement {length} caractères", + "common.error.invalid-number": "Doit être un nombre", + "common.error.field-required": "Ce champ est obligatoire" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/pt.ts b/frontend/src/i18n/translations/pt.ts index 377e172..a3119e8 100644 --- a/frontend/src/i18n/translations/pt.ts +++ b/frontend/src/i18n/translations/pt.ts @@ -1,36 +1,27 @@ export default { // Navbar - "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", - + "navbar.upload": "Carregar", + "navbar.signin": "Iniciar sessão", + "navbar.home": "Início", + "navbar.signup": "Registar-se", "navbar.links.shares": "My shares", "navbar.links.reverse": "Reverse shares", - - "navbar.avatar.account": "My account", - "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.avatar.account": "A minha conta", + "navbar.avatar.admin": "Administração", + "navbar.avatar.signout": "Terminar sessão", // END navbar - // / "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", + "home.description": "Deseja realmente dar os seus arquivos pessoais na mão de terceiros como o WeTransfer?", "home.bullet.a.name": "Self-Hosted", "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", + "home.bullet.b.name": "Privacidade", + "home.bullet.b.description": "Your files are your files and should never get into the hands of third parties.", "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - + "home.bullet.c.description": "Upload as big files as you want. Only your hard drive will be your limit.", "home.button.start": "Get started", "home.button.source": "Source code", // END / - // /auth/signin "signin.title": "Welcome back", "signin.description": "You don't have an account yet?", @@ -41,11 +32,8 @@ export default { "signin.input.password.placeholder": "Your password", "signin.button.submit": "Sign in", "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signIn.notify.totp-required.description": "Please enter your two-factor authentication code", // END /auth/signin - // /auth/signup "signup.title": "Create an account", "signup.description": "Already have an account?", @@ -55,39 +43,29 @@ export default { "signup.input.email": "Email", "signup.input.email.placeholder": "Your email", "signup.button.submit": "Let's get started", - // END /auth/signup - // /auth/reset-password "resetPassword.title": "Forgot your password?", "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", + "resetPassword.notify.success": "An email has been sent with a link to reset your password.", "resetPassword.button.back": "Back to sign in page", "resetPassword.text.resetPassword": "Reset password", "resetPassword.text.enterNewPassword": "Enter your new password", "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.notify.passwordReset": "Your password has been reset successfully.", // /account "account.title": "My account", - "account.card.info.title": "Account info", "account.card.info.username": "Username", "account.card.info.email": "Email", "account.notify.info.success": "Account updated successfully", - "account.card.password.title": "Password", "account.card.password.old": "Old password", "account.card.password.new": "New password", "account.notify.password.success": "Password changed successfully", - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", + "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP", + "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", "account.card.security.totp.button.start": "Start", "account.modal.totp.title": "Enable TOTP", "account.modal.totp.step1": "Step 1: Add your authenticator", @@ -98,28 +76,22 @@ export default { "account.modal.totp.verify": "Verify", "account.notify.totp.disable": "TOTP disabled successfully", "account.notify.totp.enable": "TOTP enabled successfully", - "account.card.language.title": "Language", "account.card.color.title": "Color scheme", - // ThemeSwitcher.tsx "account.theme.dark": "Dark", "account.theme.light": "Light", "account.theme.system": "System", - "account.button.delete": "Delete Account", "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.modal.delete.description": "Do you really want to delete your account including all your active shares?", // END /account - // /account/shares "account.shares.title": "My shares", "account.shares.title.empty": "It's empty here 👀", "account.shares.description.empty": "You don't have any shares.", "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.info.title": "Share informations", "account.shares.table.id": "ID", "account.shares.table.name": "Name", "account.shares.table.description": "Description", @@ -127,24 +99,15 @@ export default { "account.shares.table.expiresAt": "Expires at", "account.shares.table.createdAt": "Created at", "account.shares.table.size": "Size", - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.modal.delete.title": "Delete share {share}", + "account.shares.modal.delete.description": "Do you really want to delete this share?", // END /account/shares - // /account/reverseShares "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - + "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.description.empty": "You don't have any reverse shares.", // showCreateReverseShareModal.tsx "account.reverseShares.modal.expiration.label": "Expiration", "account.reverseShares.modal.expiration.minute-singular": "Minute", @@ -159,20 +122,13 @@ export default { "account.reverseShares.modal.expiration.month-plural": "Months", "account.reverseShares.modal.expiration.year-singular": "Year", "account.reverseShares.modal.expiration.year-plural": "Years", - "account.reverseShares.modal.max-size.label": "Max share size", - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - + "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", + "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - + "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", "account.reverseShares.table.no-shares": "No shares created yet", "account.reverseShares.table.count.singular": "share", "account.reverseShares.table.count.plural": "shares", @@ -180,88 +136,60 @@ export default { "account.reverseShares.table.remaining": "Remaining uses", "account.reverseShares.table.max-size": "Max share size", "account.reverseShares.table.expires": "Expires at", - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.delete.title": "Delete reverse share", + "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", // END /account/reverseShares - // /admin "admin.title": "Administration", "admin.button.users": "User management", "admin.button.config": "Configuration", "admin.version": "Version", // END /admin - // /admin/users "admin.users.title": "User management", "admin.users.table.username": "Username", "admin.users.table.email": "Email", "admin.users.table.admin": "Admin", - "admin.users.edit.update.title": "Update user {username}", "admin.users.edit.update.admin-privileges": "Admin privileges", "admin.users.edit.update.change-password.title": "Change password", "admin.users.edit.update.change-password.field": "New password", "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - + "admin.users.edit.update.notify.password.success": "Password changed successfully", "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", // showCreateUserModal.tsx "admin.users.modal.create.title": "Create user", "admin.users.modal.create.username": "Username", "admin.users.modal.create.email": "Email", "admin.users.modal.create.password": "Password", "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", + "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", // END /admin/users - // /upload "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.notify.generic-error": "An error occurred while finishing your share.", + "upload.notify.count-failed": "{count} files failed to upload. Trying again.", // Dropzone.tsx "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", + "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", // FileList.tsx "upload.filelist.name": "Name", "upload.filelist.size": "Size", - // showCreateUploadModal.tsx "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", + "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", "upload.modal.link.error.taken": "This link is already in use", "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - + "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", "upload.modal.expires.never": "never", "upload.modal.expires.never-long": "Never Expires", - "upload.modal.link.label": "Link", "upload.modal.link.placeholder": "myAwesomeShare", - "upload.modal.expires.label": "Expiration", "upload.modal.expires.minute-singular": "Minute", "upload.modal.expires.minute-plural": "Minutes", @@ -275,139 +203,97 @@ export default { "upload.modal.expires.month-plural": "Months", "upload.modal.expires.year-singular": "Year", "upload.modal.expires.year-plural": "Years", - "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - + "upload.modal.accordion.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.email.title": "Email recipients", "upload.modal.accordion.email.placeholder": "Enter email recipients", "upload.modal.accordion.email.invalid-email": "Invalid email address", - "upload.modal.accordion.security.title": "Security options", "upload.modal.accordion.security.password.label": "Password protection", "upload.modal.accordion.security.password.placeholder": "No password", "upload.modal.accordion.security.max-views.label": "Maximum views", "upload.modal.accordion.security.max-views.placeholder": "No limit", - // showCompletedUploadModal.tsx "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", + "upload.modal.completed.expires-on": "This share will expire on {expiration}.", "upload.modal.completed.share-ready": "Share ready", - // END /upload - // /share/[id] "share.title": "Share {shareId}", "share.description": "Look what I've shared with you!", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", + "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", "share.error.removed.title": "Share removed", "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - + "share.error.not-found.description": "The share you're looking for doesn't exist.", "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", + "share.modal.password.description": "To access this share please enter the password for the share.", "share.modal.password": "Password", "share.modal.error.invalid-password": "Invalid password", - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - + "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", "share.modal.file-link": "File link", "share.table.name": "Name", "share.table.size": "Size", - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.modal.file-preview.error.not-supported.description": "A preview for thise file type is unsupported. Please download the file to view it.", // END /share/[id] - // /admin/config "admin.config.title": "Configuration", "admin.config.category.general": "General", "admin.config.category.share": "Share", "admin.config.category.email": "Email", "admin.config.category.smtp": "SMTP", - "admin.config.general.app-name": "App name", "admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", + "admin.config.general.app-url.description": "On which URL Pingvin Share is available", "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", + "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", + "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", + "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", + "admin.config.share.allow-registration.description": "Whether registration is allowed", + "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", "admin.config.share.max-size": "Max size", "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", + "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", "admin.config.smtp.host": "Host", "admin.config.smtp.host.description": "Host of the SMTP server", "admin.config.smtp.port": "Port", "admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", + "admin.config.smtp.email.description": "Email address which the emails get sent from", "admin.config.smtp.username": "Username", "admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.password": "Password", "admin.config.smtp.password.description": "Password of the SMTP server", "admin.config.smtp.button.test": "Send test email", - // 404 "404.title": "404", "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.button.home": "Bring me back home", // Common translations "common.button.save": "Save", "common.button.create": "Create", @@ -423,7 +309,6 @@ export default { "common.text.or": "or", "common.button.go-back": "Go back", "common.notify.copied": "Your link was copied to the clipboard", - "common.error": "Error", "common.error.unknown": "An unknown error occurred", "common.error.invalid-email": "Invalid email address", @@ -431,5 +316,5 @@ export default { "common.error.too-long": "Must be at most {length} characters", "common.error.exact-length": "Must be exactly {length} characters", "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.error.field-required": "This field is required" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/th.ts b/frontend/src/i18n/translations/th.ts index 377e172..11fea41 100644 --- a/frontend/src/i18n/translations/th.ts +++ b/frontend/src/i18n/translations/th.ts @@ -4,33 +4,24 @@ export default { "navbar.signin": "Sign in", "navbar.home": "Home", "navbar.signup": "Sign Up", - "navbar.links.shares": "My shares", "navbar.links.reverse": "Reverse shares", - "navbar.avatar.account": "My account", "navbar.avatar.admin": "Administration", "navbar.avatar.signout": "Sign out", // END navbar - // / "home.title": "A self-hosted file sharing platform.", - - "home.description": - "Do you really want to give your personal files in the hand of third parties like WeTransfer?", + "home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?", "home.bullet.a.name": "Self-Hosted", "home.bullet.a.description": "Host Pingvin Share on your own machine.", "home.bullet.b.name": "Privacy", - "home.bullet.b.description": - "Your files are your files and should never get into the hands of third parties.", + "home.bullet.b.description": "Your files are your files and should never get into the hands of third parties.", "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": - "Upload as big files as you want. Only your hard drive will be your limit.", - + "home.bullet.c.description": "Upload as big files as you want. Only your hard drive will be your limit.", "home.button.start": "Get started", "home.button.source": "Source code", // END / - // /auth/signin "signin.title": "Welcome back", "signin.description": "You don't have an account yet?", @@ -41,11 +32,8 @@ export default { "signin.input.password.placeholder": "Your password", "signin.button.submit": "Sign in", "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": - "Please enter your two-factor authentication code", - + "signIn.notify.totp-required.description": "Please enter your two-factor authentication code", // END /auth/signin - // /auth/signup "signup.title": "Create an account", "signup.description": "Already have an account?", @@ -55,39 +43,29 @@ export default { "signup.input.email": "Email", "signup.input.email.placeholder": "Your email", "signup.button.submit": "Let's get started", - // END /auth/signup - // /auth/reset-password "resetPassword.title": "Forgot your password?", "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": - "An email has been sent with a link to reset your password.", + "resetPassword.notify.success": "An email has been sent with a link to reset your password.", "resetPassword.button.back": "Back to sign in page", "resetPassword.text.resetPassword": "Reset password", "resetPassword.text.enterNewPassword": "Enter your new password", "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": - "Your password has been reset successfully.", - + "resetPassword.notify.passwordReset": "Your password has been reset successfully.", // /account "account.title": "My account", - "account.card.info.title": "Account info", "account.card.info.username": "Username", "account.card.info.email": "Email", "account.notify.info.success": "Account updated successfully", - "account.card.password.title": "Password", "account.card.password.old": "Old password", "account.card.password.new": "New password", "account.notify.password.success": "Password changed successfully", - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": - "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": - "Enter your current password to start enabling TOTP", + "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP", + "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", "account.card.security.totp.button.start": "Start", "account.modal.totp.title": "Enable TOTP", "account.modal.totp.step1": "Step 1: Add your authenticator", @@ -98,28 +76,22 @@ export default { "account.modal.totp.verify": "Verify", "account.notify.totp.disable": "TOTP disabled successfully", "account.notify.totp.enable": "TOTP enabled successfully", - "account.card.language.title": "Language", "account.card.color.title": "Color scheme", - // ThemeSwitcher.tsx "account.theme.dark": "Dark", "account.theme.light": "Light", "account.theme.system": "System", - "account.button.delete": "Delete Account", "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": - "Do you really want to delete your account including all your active shares?", + "account.modal.delete.description": "Do you really want to delete your account including all your active shares?", // END /account - // /account/shares "account.shares.title": "My shares", "account.shares.title.empty": "It's empty here 👀", "account.shares.description.empty": "You don't have any shares.", "account.shares.button.create": "Create one", - - "account.shares.info.title": "Share informatons", + "account.shares.info.title": "Share informations", "account.shares.table.id": "ID", "account.shares.table.name": "Name", "account.shares.table.description": "Description", @@ -127,24 +99,15 @@ export default { "account.shares.table.expiresAt": "Expires at", "account.shares.table.createdAt": "Created at", "account.shares.table.size": "Size", - "account.shares.modal.share-link": "Share link", - - "account.shares.modal.delete.title": "Delete {share}", - "account.shares.modal.delete.description": - "Do you really want to delete this share?", - + "account.shares.modal.delete.title": "Delete share {share}", + "account.shares.modal.delete.description": "Do you really want to delete this share?", // END /account/shares - // /account/reverseShares "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": - "A reverse share allows you to generate a unique URL that allows external users to create a share.", - + "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", "account.reverseShares.title.empty": "It's empty here 👀", - "account.reverseShares.description.empty": - "You don't have any reverse shares.", - + "account.reverseShares.description.empty": "You don't have any reverse shares.", // showCreateReverseShareModal.tsx "account.reverseShares.modal.expiration.label": "Expiration", "account.reverseShares.modal.expiration.minute-singular": "Minute", @@ -159,20 +122,13 @@ export default { "account.reverseShares.modal.expiration.month-plural": "Months", "account.reverseShares.modal.expiration.year-singular": "Year", "account.reverseShares.modal.expiration.year-plural": "Years", - "account.reverseShares.modal.max-size.label": "Max share size", - "account.reverseShares.modal.send-email": "Send email notification", - "account.reverseShares.modal.send-email.description": - "Send an email notification when a share is created with this reverse share link.", - + "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.max-use.label": "Max uses", - "account.reverseShares.modal.max-use.description": - "The maximum amount of times this URL can be used to create a share.", + "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": - "This reverse share will expire on {expiration}.", - + "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", "account.reverseShares.table.no-shares": "No shares created yet", "account.reverseShares.table.count.singular": "share", "account.reverseShares.table.count.plural": "shares", @@ -180,88 +136,60 @@ export default { "account.reverseShares.table.remaining": "Remaining uses", "account.reverseShares.table.max-size": "Max share size", "account.reverseShares.table.expires": "Expires at", - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - - "account.reverseShares.modal.delete.title": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - "account.reverseShares.modal.delete.description": - "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", - + "account.reverseShares.modal.delete.title": "Delete reverse share", + "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", // END /account/reverseShares - // /admin "admin.title": "Administration", "admin.button.users": "User management", "admin.button.config": "Configuration", "admin.version": "Version", // END /admin - // /admin/users "admin.users.title": "User management", "admin.users.table.username": "Username", "admin.users.table.email": "Email", "admin.users.table.admin": "Admin", - "admin.users.edit.update.title": "Update user {username}", "admin.users.edit.update.admin-privileges": "Admin privileges", "admin.users.edit.update.change-password.title": "Change password", "admin.users.edit.update.change-password.field": "New password", "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": - "Password changed successfully", - + "admin.users.edit.update.notify.password.success": "Password changed successfully", "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": - "Do you really want to delete this user and all his shares?", - + "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", // showCreateUserModal.tsx "admin.users.modal.create.title": "Create user", "admin.users.modal.create.username": "Username", "admin.users.modal.create.email": "Email", "admin.users.modal.create.password": "Password", "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": - "If not checked, the user will receive an email with a link to set their password.", + "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": - "If checked, the user will be able to access the admin panel.", - + "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", // END /admin/users - // /upload "upload.title": "Upload", - - "upload.notify.generic-error": - "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} filed failed to upload. Trying again.", - + "upload.notify.generic-error": "An error occurred while finishing your share.", + "upload.notify.count-failed": "{count} files failed to upload. Trying again.", // Dropzone.tsx "upload.dropzone.title": "Upload files", - "upload.dropzone.description": - "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": - "Your files exceed the maximum share size of {maxSize}.", - + "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", + "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", // FileList.tsx "upload.filelist.name": "Name", "upload.filelist.size": "Size", - // showCreateUploadModal.tsx "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": - "Can only contain letters, numbers, underscores, and hyphens", + "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", "upload.modal.link.error.taken": "This link is already in use", "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": - "You will be unable to delete your share manually and view the visitor count.", - + "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", "upload.modal.expires.never": "never", "upload.modal.expires.never-long": "Never Expires", - "upload.modal.link.label": "Link", "upload.modal.link.placeholder": "myAwesomeShare", - "upload.modal.expires.label": "Expiration", "upload.modal.expires.minute-singular": "Minute", "upload.modal.expires.minute-plural": "Minutes", @@ -275,139 +203,97 @@ export default { "upload.modal.expires.month-plural": "Months", "upload.modal.expires.year-singular": "Year", "upload.modal.expires.year-plural": "Years", - "upload.modal.accordion.description.title": "Description", - "upload.modal.accordion.description.placeholder": - "Note for the recipients of this share", - + "upload.modal.accordion.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.email.title": "Email recipients", "upload.modal.accordion.email.placeholder": "Enter email recipients", "upload.modal.accordion.email.invalid-email": "Invalid email address", - "upload.modal.accordion.security.title": "Security options", "upload.modal.accordion.security.password.label": "Password protection", "upload.modal.accordion.security.password.placeholder": "No password", "upload.modal.accordion.security.max-views.label": "Maximum views", "upload.modal.accordion.security.max-views.placeholder": "No limit", - // showCompletedUploadModal.tsx "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": - "This share will expire on {expiration}.", + "upload.modal.completed.expires-on": "This share will expire on {expiration}.", "upload.modal.completed.share-ready": "Share ready", - // END /upload - // /share/[id] "share.title": "Share {shareId}", "share.description": "Look what I've shared with you!", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": - "The visitor limit from this share has been exceeded.", + "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", "share.error.removed.title": "Share removed", "share.error.not-found.title": "Share not found", - "share.error.not-found.description": - "The share you're looking for doesn't exist.", - + "share.error.not-found.description": "The share you're looking for doesn't exist.", "share.modal.password.title": "Password required", - "share.modal.password.description": - "To access this share please enter the password for the share.", + "share.modal.password.description": "To access this share please enter the password for the share.", "share.modal.password": "Password", "share.modal.error.invalid-password": "Invalid password", - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": - "The share is preparing. Try again in a few minutes.", - + "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", "share.modal.file-link": "File link", "share.table.name": "Name", "share.table.size": "Size", - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": - "A preview for thise file type is unsupported. Please download the file to view it.", - + "share.modal.file-preview.error.not-supported.description": "A preview for thise file type is unsupported. Please download the file to view it.", // END /share/[id] - // /admin/config "admin.config.title": "Configuration", "admin.config.category.general": "General", "admin.config.category.share": "Share", "admin.config.category.email": "Email", "admin.config.category.smtp": "SMTP", - "admin.config.general.app-name": "App name", "admin.config.general.app-name.description": "Name of the application", "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": - "On which URL Pingvin Share is available", + "admin.config.general.app-url.description": "On which URL Pingvin Share is available", "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": - "Whether to show the home page", + "admin.config.general.show-home-page.description": "Whether to show the home page", "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": - "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", + "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", "admin.config.general.logo.placeholder": "Pick image", - - "admin.config.email.enable-share-email-recipients": - "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": - "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": - "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": - "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual values.", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": - "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": - "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": - "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": - "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": - "Subject of the email which gets sent when an admin invites a user.", + "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": - "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", + "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": - "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": - "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": - "Whether unauthorized users can create shares", + "admin.config.share.allow-registration.description": "Whether registration is allowed", + "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", "admin.config.share.max-size": "Max size", "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": - "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", + "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", "admin.config.smtp.host": "Host", "admin.config.smtp.host.description": "Host of the SMTP server", "admin.config.smtp.port": "Port", "admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": - "Email address which the emails get sent from", + "admin.config.smtp.email.description": "Email address which the emails get sent from", "admin.config.smtp.username": "Username", "admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.password": "Password", "admin.config.smtp.password.description": "Password of the SMTP server", "admin.config.smtp.button.test": "Send test email", - // 404 "404.title": "404", "404.description": "Oops this page doesn't exist.", - "404.button.home": "Gring me back home", - + "404.button.home": "Bring me back home", // Common translations "common.button.save": "Save", "common.button.create": "Create", @@ -423,7 +309,6 @@ export default { "common.text.or": "or", "common.button.go-back": "Go back", "common.notify.copied": "Your link was copied to the clipboard", - "common.error": "Error", "common.error.unknown": "An unknown error occurred", "common.error.invalid-email": "Invalid email address", @@ -431,5 +316,5 @@ export default { "common.error.too-long": "Must be at most {length} characters", "common.error.exact-length": "Must be exactly {length} characters", "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required", -}; + "common.error.field-required": "This field is required" +}; \ No newline at end of file diff --git a/frontend/src/i18n/translations/zh.ts b/frontend/src/i18n/translations/zh.ts new file mode 100644 index 0000000..11fea41 --- /dev/null +++ b/frontend/src/i18n/translations/zh.ts @@ -0,0 +1,320 @@ +export default { + // Navbar + "navbar.upload": "Upload", + "navbar.signin": "Sign in", + "navbar.home": "Home", + "navbar.signup": "Sign Up", + "navbar.links.shares": "My shares", + "navbar.links.reverse": "Reverse shares", + "navbar.avatar.account": "My account", + "navbar.avatar.admin": "Administration", + "navbar.avatar.signout": "Sign out", + // END navbar + // / + "home.title": "A self-hosted file sharing platform.", + "home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?", + "home.bullet.a.name": "Self-Hosted", + "home.bullet.a.description": "Host Pingvin Share on your own machine.", + "home.bullet.b.name": "Privacy", + "home.bullet.b.description": "Your files are your files and should never get into the hands of third parties.", + "home.bullet.c.name": "No annoying file size limit", + "home.bullet.c.description": "Upload as big files as you want. Only your hard drive will be your limit.", + "home.button.start": "Get started", + "home.button.source": "Source code", + // END / + // /auth/signin + "signin.title": "Welcome back", + "signin.description": "You don't have an account yet?", + "signin.button.signup": "Sign up", + "signin.input.email-or-username": "Email or username", + "signin.input.email-or-username.placeholder": "Your email or username", + "signin.input.password": "Password", + "signin.input.password.placeholder": "Your password", + "signin.button.submit": "Sign in", + "signIn.notify.totp-required.title": "Two-factor authentication required", + "signIn.notify.totp-required.description": "Please enter your two-factor authentication code", + // END /auth/signin + // /auth/signup + "signup.title": "Create an account", + "signup.description": "Already have an account?", + "signup.button.signin": "Sign in", + "signup.input.username": "Username", + "signup.input.username.placeholder": "Your username", + "signup.input.email": "Email", + "signup.input.email.placeholder": "Your email", + "signup.button.submit": "Let's get started", + // END /auth/signup + // /auth/reset-password + "resetPassword.title": "Forgot your password?", + "resetPassword.description": "Enter your email to reset your password.", + "resetPassword.notify.success": "An email has been sent with a link to reset your password.", + "resetPassword.button.back": "Back to sign in page", + "resetPassword.text.resetPassword": "Reset password", + "resetPassword.text.enterNewPassword": "Enter your new password", + "resetPassword.input.password": "New password", + "resetPassword.notify.passwordReset": "Your password has been reset successfully.", + // /account + "account.title": "My account", + "account.card.info.title": "Account info", + "account.card.info.username": "Username", + "account.card.info.email": "Email", + "account.notify.info.success": "Account updated successfully", + "account.card.password.title": "Password", + "account.card.password.old": "Old password", + "account.card.password.new": "New password", + "account.notify.password.success": "Password changed successfully", + "account.card.security.title": "Security", + "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP", + "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", + "account.card.security.totp.button.start": "Start", + "account.modal.totp.title": "Enable TOTP", + "account.modal.totp.step1": "Step 1: Add your authenticator", + "account.modal.totp.step2": "Step 2: Validate your code", + "account.modal.totp.enterManually": "Enter manually", + "account.modal.totp.code": "Code", + "account.modal.totp.clickToCopy": "Click to copy", + "account.modal.totp.verify": "Verify", + "account.notify.totp.disable": "TOTP disabled successfully", + "account.notify.totp.enable": "TOTP enabled successfully", + "account.card.language.title": "Language", + "account.card.color.title": "Color scheme", + // ThemeSwitcher.tsx + "account.theme.dark": "Dark", + "account.theme.light": "Light", + "account.theme.system": "System", + "account.button.delete": "Delete Account", + "account.modal.delete.title": "Delete Account", + "account.modal.delete.description": "Do you really want to delete your account including all your active shares?", + // END /account + // /account/shares + "account.shares.title": "My shares", + "account.shares.title.empty": "It's empty here 👀", + "account.shares.description.empty": "You don't have any shares.", + "account.shares.button.create": "Create one", + "account.shares.info.title": "Share informations", + "account.shares.table.id": "ID", + "account.shares.table.name": "Name", + "account.shares.table.description": "Description", + "account.shares.table.visitors": "Visitors", + "account.shares.table.expiresAt": "Expires at", + "account.shares.table.createdAt": "Created at", + "account.shares.table.size": "Size", + "account.shares.modal.share-link": "Share link", + "account.shares.modal.delete.title": "Delete share {share}", + "account.shares.modal.delete.description": "Do you really want to delete this share?", + // END /account/shares + // /account/reverseShares + "account.reverseShares.title": "Reverse shares", + "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", + "account.reverseShares.title.empty": "It's empty here 👀", + "account.reverseShares.description.empty": "You don't have any reverse shares.", + // showCreateReverseShareModal.tsx + "account.reverseShares.modal.expiration.label": "Expiration", + "account.reverseShares.modal.expiration.minute-singular": "Minute", + "account.reverseShares.modal.expiration.minute-plural": "Minutes", + "account.reverseShares.modal.expiration.hour-singular": "Hour", + "account.reverseShares.modal.expiration.hour-plural": "Hours", + "account.reverseShares.modal.expiration.day-singular": "Day", + "account.reverseShares.modal.expiration.day-plural": "Days", + "account.reverseShares.modal.expiration.week-singular": "Week", + "account.reverseShares.modal.expiration.week-plural": "Weeks", + "account.reverseShares.modal.expiration.month-singular": "Month", + "account.reverseShares.modal.expiration.month-plural": "Months", + "account.reverseShares.modal.expiration.year-singular": "Year", + "account.reverseShares.modal.expiration.year-plural": "Years", + "account.reverseShares.modal.max-size.label": "Max share size", + "account.reverseShares.modal.send-email": "Send email notification", + "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", + "account.reverseShares.modal.max-use.label": "Max uses", + "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", + "account.reverseShare.never-expires": "This reverse share will never expire.", + "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", + "account.reverseShares.table.no-shares": "No shares created yet", + "account.reverseShares.table.count.singular": "share", + "account.reverseShares.table.count.plural": "shares", + "account.reverseShares.table.shares": "Shares", + "account.reverseShares.table.remaining": "Remaining uses", + "account.reverseShares.table.max-size": "Max share size", + "account.reverseShares.table.expires": "Expires at", + "account.reverseShares.modal.reverse-share-link": "Reverse share link", + "account.reverseShares.modal.delete.title": "Delete reverse share", + "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", + // END /account/reverseShares + // /admin + "admin.title": "Administration", + "admin.button.users": "User management", + "admin.button.config": "Configuration", + "admin.version": "Version", + // END /admin + // /admin/users + "admin.users.title": "User management", + "admin.users.table.username": "Username", + "admin.users.table.email": "Email", + "admin.users.table.admin": "Admin", + "admin.users.edit.update.title": "Update user {username}", + "admin.users.edit.update.admin-privileges": "Admin privileges", + "admin.users.edit.update.change-password.title": "Change password", + "admin.users.edit.update.change-password.field": "New password", + "admin.users.edit.update.change-password.button": "Save new password", + "admin.users.edit.update.notify.password.success": "Password changed successfully", + "admin.users.edit.delete.title": "Delete user {username}", + "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", + // showCreateUserModal.tsx + "admin.users.modal.create.title": "Create user", + "admin.users.modal.create.username": "Username", + "admin.users.modal.create.email": "Email", + "admin.users.modal.create.password": "Password", + "admin.users.modal.create.manual-password": "Set password manually", + "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", + "admin.users.modal.create.admin": "Admin privileges", + "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", + // END /admin/users + // /upload + "upload.title": "Upload", + "upload.notify.generic-error": "An error occurred while finishing your share.", + "upload.notify.count-failed": "{count} files failed to upload. Trying again.", + // Dropzone.tsx + "upload.dropzone.title": "Upload files", + "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", + "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", + // FileList.tsx + "upload.filelist.name": "Name", + "upload.filelist.size": "Size", + // showCreateUploadModal.tsx + "upload.modal.title": "Create Share", + "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", + "upload.modal.link.error.taken": "This link is already in use", + "upload.modal.not-signed-in": "You're not signed in", + "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", + "upload.modal.expires.never": "never", + "upload.modal.expires.never-long": "Never Expires", + "upload.modal.link.label": "Link", + "upload.modal.link.placeholder": "myAwesomeShare", + "upload.modal.expires.label": "Expiration", + "upload.modal.expires.minute-singular": "Minute", + "upload.modal.expires.minute-plural": "Minutes", + "upload.modal.expires.hour-singular": "Hour", + "upload.modal.expires.hour-plural": "Hours", + "upload.modal.expires.day-singular": "Day", + "upload.modal.expires.day-plural": "Days", + "upload.modal.expires.week-singular": "Week", + "upload.modal.expires.week-plural": "Weeks", + "upload.modal.expires.month-singular": "Month", + "upload.modal.expires.month-plural": "Months", + "upload.modal.expires.year-singular": "Year", + "upload.modal.expires.year-plural": "Years", + "upload.modal.accordion.description.title": "Description", + "upload.modal.accordion.description.placeholder": "Note for the recipients of this share", + "upload.modal.accordion.email.title": "Email recipients", + "upload.modal.accordion.email.placeholder": "Enter email recipients", + "upload.modal.accordion.email.invalid-email": "Invalid email address", + "upload.modal.accordion.security.title": "Security options", + "upload.modal.accordion.security.password.label": "Password protection", + "upload.modal.accordion.security.password.placeholder": "No password", + "upload.modal.accordion.security.max-views.label": "Maximum views", + "upload.modal.accordion.security.max-views.placeholder": "No limit", + // showCompletedUploadModal.tsx + "upload.modal.completed.never-expires": "This share will never expire.", + "upload.modal.completed.expires-on": "This share will expire on {expiration}.", + "upload.modal.completed.share-ready": "Share ready", + // END /upload + // /share/[id] + "share.title": "Share {shareId}", + "share.description": "Look what I've shared with you!", + "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", + "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", + "share.error.removed.title": "Share removed", + "share.error.not-found.title": "Share not found", + "share.error.not-found.description": "The share you're looking for doesn't exist.", + "share.modal.password.title": "Password required", + "share.modal.password.description": "To access this share please enter the password for the share.", + "share.modal.password": "Password", + "share.modal.error.invalid-password": "Invalid password", + "share.button.download-all": "Download all", + "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", + "share.modal.file-link": "File link", + "share.table.name": "Name", + "share.table.size": "Size", + "share.modal.file-preview.error.not-supported.title": "Preview not supported", + "share.modal.file-preview.error.not-supported.description": "A preview for thise file type is unsupported. Please download the file to view it.", + // END /share/[id] + // /admin/config + "admin.config.title": "Configuration", + "admin.config.category.general": "General", + "admin.config.category.share": "Share", + "admin.config.category.email": "Email", + "admin.config.category.smtp": "SMTP", + "admin.config.general.app-name": "App name", + "admin.config.general.app-name.description": "Name of the application", + "admin.config.general.app-url": "App URL", + "admin.config.general.app-url.description": "On which URL Pingvin Share is available", + "admin.config.general.show-home-page": "Show home page", + "admin.config.general.show-home-page.description": "Whether to show the home page", + "admin.config.general.logo": "Logo", + "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", + "admin.config.general.logo.placeholder": "Pick image", + "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", + "admin.config.email.share-recipients-subject": "Share recipients subject", + "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", + "admin.config.email.share-recipients-message": "Share recipients message", + "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", + "admin.config.email.reverse-share-subject": "Reverse share subject", + "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", + "admin.config.email.reverse-share-message": "Reverse share message", + "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", + "admin.config.email.reset-password-subject": "Reset password subject", + "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", + "admin.config.email.reset-password-message": "Reset password message", + "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", + "admin.config.email.invite-subject": "Invite subject", + "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", + "admin.config.email.invite-message": "Invite message", + "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", + "admin.config.share.allow-registration": "Allow registration", + "admin.config.share.allow-registration.description": "Whether registration is allowed", + "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", + "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", + "admin.config.share.max-size": "Max size", + "admin.config.share.max-size.description": "Maximum share size in bytes", + "admin.config.smtp.enabled": "Enabled", + "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", + "admin.config.smtp.host": "Host", + "admin.config.smtp.host.description": "Host of the SMTP server", + "admin.config.smtp.port": "Port", + "admin.config.smtp.port.description": "Port of the SMTP server", + "admin.config.smtp.email": "Email", + "admin.config.smtp.email.description": "Email address which the emails get sent from", + "admin.config.smtp.username": "Username", + "admin.config.smtp.username.description": "Username of the SMTP server", + "admin.config.smtp.password": "Password", + "admin.config.smtp.password.description": "Password of the SMTP server", + "admin.config.smtp.button.test": "Send test email", + // 404 + "404.title": "404", + "404.description": "Oops this page doesn't exist.", + "404.button.home": "Bring me back home", + // Common translations + "common.button.save": "Save", + "common.button.create": "Create", + "common.button.submit": "Submit", + "common.button.delete": "Delete", + "common.button.cancel": "Cancel", + "common.button.confirm": "Confirm", + "common.button.disable": "Disable", + "common.button.share": "Share", + "common.button.generate": "Generate", + "common.button.done": "Done", + "common.text.link": "Link", + "common.text.or": "or", + "common.button.go-back": "Go back", + "common.notify.copied": "Your link was copied to the clipboard", + "common.error": "Error", + "common.error.unknown": "An unknown error occurred", + "common.error.invalid-email": "Invalid email address", + "common.error.too-short": "Must be at least {length} characters", + "common.error.too-long": "Must be at most {length} characters", + "common.error.exact-length": "Must be exactly {length} characters", + "common.error.invalid-number": "Must be a number", + "common.error.field-required": "This field is required" +}; \ No newline at end of file