mirror of
https://github.com/stonith404/pingvin-share.git
synced 2024-11-15 11:50:34 +01:00
chore(translations): update translations via Crowdin (#569)
* New translations en-us.ts (Vietnamese) * New translations en-us.ts (Vietnamese)
This commit is contained in:
parent
42a985be04
commit
d05988f281
@ -1,400 +1,294 @@
|
|||||||
export default {
|
export default {
|
||||||
// Navbar
|
// Navbar
|
||||||
"navbar.upload": "Upload",
|
"navbar.upload": "Tải lên",
|
||||||
"navbar.signin": "Sign in",
|
"navbar.signin": "Đăng nhập",
|
||||||
"navbar.home": "Home",
|
"navbar.home": "Trang chủ",
|
||||||
"navbar.signup": "Sign Up",
|
"navbar.signup": "Đăng kí",
|
||||||
|
|
||||||
"navbar.links.shares": "My shares",
|
"navbar.links.shares": "My shares",
|
||||||
"navbar.links.reverse": "Reverse shares",
|
"navbar.links.reverse": "Reverse shares",
|
||||||
|
"navbar.avatar.account": "Tài khoản",
|
||||||
"navbar.avatar.account": "My account",
|
|
||||||
"navbar.avatar.admin": "Administration",
|
"navbar.avatar.admin": "Administration",
|
||||||
"navbar.avatar.signout": "Sign out",
|
"navbar.avatar.signout": "Đăng xuất",
|
||||||
// END navbar
|
// END navbar
|
||||||
|
|
||||||
// /
|
// /
|
||||||
"home.title": "A <h>self-hosted</h> file sharing platform.",
|
"home.title": "A <h>self-hosted</h> 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.name": "Self-Hosted",
|
||||||
"home.bullet.a.description": "Host Pingvin Share on your own machine.",
|
"home.bullet.a.description": "Host Pingvin Share on your own machine.",
|
||||||
"home.bullet.b.name": "Privacy",
|
"home.bullet.b.name": "Quyền riêng tư",
|
||||||
"home.bullet.b.description":
|
"home.bullet.b.description": "Các tệp thuộc quyền sở hữu của bạn và không được chia sẻ với bên thứ ba.",
|
||||||
"Your files are your files and should never get into the hands of third parties.",
|
"home.bullet.c.name": "Không có giới hạn dung lượng tệp",
|
||||||
"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":
|
"home.button.start": "Bắt đầu",
|
||||||
"Upload as big files as you want. Only your hard drive will be your limit.",
|
"home.button.source": "Mã nguồn",
|
||||||
|
|
||||||
"home.button.start": "Get started",
|
|
||||||
"home.button.source": "Source code",
|
|
||||||
// END /
|
// END /
|
||||||
|
|
||||||
// /auth/signin
|
// /auth/signin
|
||||||
"signin.title": "Welcome back",
|
"signin.title": "Chào mừng trở lại",
|
||||||
"signin.description": "You don't have an account yet?",
|
"signin.description": "Chưa có tài khoản?",
|
||||||
"signin.button.signup": "Sign up",
|
"signin.button.signup": "Đăng kí",
|
||||||
"signin.input.email-or-username": "Email or username",
|
"signin.input.email-or-username": "Email hoặc tên tài khoản",
|
||||||
"signin.input.email-or-username.placeholder": "Your email or username",
|
"signin.input.email-or-username.placeholder": "Email hoặc tên tài khoản",
|
||||||
"signin.input.password": "Password",
|
"signin.input.password": "Mật khẩu",
|
||||||
"signin.input.password.placeholder": "Your password",
|
"signin.input.password.placeholder": "Mật khẩu",
|
||||||
"signin.button.submit": "Sign in",
|
"signin.button.submit": "Đăng nhập",
|
||||||
"signIn.notify.totp-required.title": "Two-factor authentication required",
|
"signIn.notify.totp-required.title": "Two-factor authentication required",
|
||||||
"signIn.notify.totp-required.description":
|
"signIn.notify.totp-required.description": "Please enter your two-factor authentication code",
|
||||||
"Please enter your two-factor authentication code",
|
"signIn.oauth.or": "HOẶC",
|
||||||
"signIn.oauth.or": "OR",
|
"signIn.oauth.signInWith": "Đăng nhập bằng",
|
||||||
"signIn.oauth.signInWith": "Sign in with",
|
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "Google",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
"signIn.oauth.discord": "Discord",
|
"signIn.oauth.discord": "Discord",
|
||||||
"signIn.oauth.oidc": "OpenID",
|
"signIn.oauth.oidc": "OpenID",
|
||||||
|
|
||||||
// END /auth/signin
|
// END /auth/signin
|
||||||
|
|
||||||
// /auth/signup
|
// /auth/signup
|
||||||
"signup.title": "Create an account",
|
"signup.title": "Tạo tài khoản",
|
||||||
"signup.description": "Already have an account?",
|
"signup.description": "Đã có tài khoản?",
|
||||||
"signup.button.signin": "Sign in",
|
"signup.button.signin": "Đăng nhập",
|
||||||
"signup.input.username": "Username",
|
"signup.input.username": "Tên đăng nhập",
|
||||||
"signup.input.username.placeholder": "Your username",
|
"signup.input.username.placeholder": "Tên đăng nhập",
|
||||||
"signup.input.email": "Email",
|
"signup.input.email": "Email",
|
||||||
"signup.input.email.placeholder": "Your email",
|
"signup.input.email.placeholder": "Email",
|
||||||
"signup.button.submit": "Let's get started",
|
"signup.button.submit": "Let's get started",
|
||||||
|
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
|
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
"totp.title": "TOTP Authentication",
|
"totp.title": "TOTP Authentication",
|
||||||
"totp.button.signIn": "Sign in",
|
"totp.button.signIn": "Đăng nhập",
|
||||||
|
|
||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
|
|
||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Forgot your password?",
|
"resetPassword.title": "Quên mật khẩu?",
|
||||||
"resetPassword.description": "Enter your email to reset your password.",
|
"resetPassword.description": "Nhập email để khôi phục mật khẩu.",
|
||||||
"resetPassword.notify.success":
|
"resetPassword.notify.success": "Email khôi phục mật khẩu đã được gửi nếu như địa chỉ email này tồn tại.",
|
||||||
"A message with a link to reset your password has been sent if the email exists.",
|
"resetPassword.button.back": "Quay lại trang đăng nhập",
|
||||||
"resetPassword.button.back": "Back to sign in page",
|
|
||||||
"resetPassword.text.resetPassword": "Reset password",
|
"resetPassword.text.resetPassword": "Reset password",
|
||||||
"resetPassword.text.enterNewPassword": "Enter your new password",
|
"resetPassword.text.enterNewPassword": "Enter your new password",
|
||||||
"resetPassword.input.password": "New password",
|
"resetPassword.input.password": "New password",
|
||||||
"resetPassword.notify.passwordReset":
|
"resetPassword.notify.passwordReset": "Your password has been reset successfully.",
|
||||||
"Your password has been reset successfully.",
|
|
||||||
|
|
||||||
// /account
|
// /account
|
||||||
"account.title": "My account",
|
"account.title": "Tài khoản",
|
||||||
|
"account.card.info.title": "Thông tin tài khoản",
|
||||||
"account.card.info.title": "Account info",
|
|
||||||
"account.card.info.username": "Username",
|
"account.card.info.username": "Username",
|
||||||
"account.card.info.email": "Email",
|
"account.card.info.email": "Email",
|
||||||
"account.notify.info.success": "Account updated successfully",
|
"account.notify.info.success": "Cập nhật tài khoản thành công",
|
||||||
|
"account.card.password.title": "Mật khẩu",
|
||||||
"account.card.password.title": "Password",
|
"account.card.password.old": "Mật khẩu cũ",
|
||||||
"account.card.password.old": "Old password",
|
"account.card.password.new": "Mật khẩu mới",
|
||||||
"account.card.password.new": "New password",
|
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
||||||
"account.card.password.noPasswordSet":
|
"account.notify.password.success": "Thay đổi mật khẩu thành công",
|
||||||
"You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.oauth.title": "Đăng nhập bằng mạng xã hội",
|
||||||
"account.notify.password.success": "Password changed successfully",
|
|
||||||
|
|
||||||
"account.card.oauth.title": "Social login",
|
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
"account.card.oauth.google": "Google",
|
"account.card.oauth.google": "Google",
|
||||||
"account.card.oauth.microsoft": "Microsoft",
|
"account.card.oauth.microsoft": "Microsoft",
|
||||||
"account.card.oauth.discord": "Discord",
|
"account.card.oauth.discord": "Discord",
|
||||||
"account.card.oauth.oidc": "OpenID",
|
"account.card.oauth.oidc": "OpenID",
|
||||||
"account.card.oauth.link": "Link",
|
"account.card.oauth.link": "Liên kết",
|
||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Hủy liên kết",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Đã hủy liên kết",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Huỷ liên kết tài khoản",
|
||||||
"account.modal.unlink.description":
|
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
||||||
"Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.notify.oauth.unlinked.success": "Hủy liên kết thành công",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"account.card.security.title": "Bảo mật",
|
||||||
|
"account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP",
|
||||||
"account.card.security.title": "Security",
|
"account.card.security.totp.disable.description": "Enter your current password to disable TOTP",
|
||||||
"account.card.security.totp.enable.description":
|
"account.card.security.totp.button.start": "Bắt đầu",
|
||||||
"Enter your current password to start enabling TOTP",
|
"account.modal.totp.title": "Bật 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.step1": "Step 1: Add your authenticator",
|
||||||
"account.modal.totp.step2": "Step 2: Validate your code",
|
"account.modal.totp.step2": "Step 2: Validate your code",
|
||||||
"account.modal.totp.enterManually": "Enter manually",
|
"account.modal.totp.enterManually": "Enter manually",
|
||||||
"account.modal.totp.code": "Code",
|
"account.modal.totp.code": "Code",
|
||||||
"common.button.clickToCopy": "Click to copy",
|
"common.button.clickToCopy": "Nhấn để sao chép",
|
||||||
"account.modal.totp.verify": "Verify",
|
"account.modal.totp.verify": "Verify",
|
||||||
"account.notify.totp.disable": "TOTP disabled successfully",
|
"account.notify.totp.disable": "Tắt TOTP thành công",
|
||||||
"account.notify.totp.enable": "TOTP enabled successfully",
|
"account.notify.totp.enable": "Bật TOTP thành công",
|
||||||
|
"account.card.language.title": "Ngôn ngữ",
|
||||||
"account.card.language.title": "Language",
|
"account.card.language.description": "Dự án này được dịch bởi cộng đồng. 1 vài ngôn ngữ có thể chưa được hoàn thiện.",
|
||||||
"account.card.language.description":
|
|
||||||
"The project is translated by the community. Some languages might be incomplete.",
|
|
||||||
"account.card.color.title": "Color scheme",
|
"account.card.color.title": "Color scheme",
|
||||||
|
|
||||||
// ThemeSwitcher.tsx
|
// ThemeSwitcher.tsx
|
||||||
"account.theme.dark": "Dark",
|
"account.theme.dark": "Tối",
|
||||||
"account.theme.light": "Light",
|
"account.theme.light": "Sáng",
|
||||||
"account.theme.system": "System",
|
"account.theme.system": "Theo hệ thống",
|
||||||
|
"account.button.delete": "Xóa tài khoản",
|
||||||
"account.button.delete": "Delete Account",
|
"account.modal.delete.title": "Xóa tài khoản",
|
||||||
"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
|
// END /account
|
||||||
|
|
||||||
// /account/shares
|
// /account/shares
|
||||||
"account.shares.title": "My shares",
|
"account.shares.title": "My shares",
|
||||||
"account.shares.title.empty": "It's empty here 👀",
|
"account.shares.title.empty": "It's empty here 👀",
|
||||||
"account.shares.description.empty": "You don't have any shares.",
|
"account.shares.description.empty": "You don't have any shares.",
|
||||||
"account.shares.button.create": "Create one",
|
"account.shares.button.create": "Create one",
|
||||||
|
|
||||||
"account.shares.info.title": "Share informations",
|
"account.shares.info.title": "Share informations",
|
||||||
"account.shares.table.id": "ID",
|
"account.shares.table.id": "ID",
|
||||||
"account.shares.table.name": "Name",
|
"account.shares.table.name": "Tên",
|
||||||
"account.shares.table.description": "Description",
|
"account.shares.table.description": "Mô tả",
|
||||||
"account.shares.table.visitors": "Visitors",
|
"account.shares.table.visitors": "Lượng truy cập",
|
||||||
"account.shares.table.expiresAt": "Expires at",
|
"account.shares.table.expiresAt": "Hết hạn vào",
|
||||||
"account.shares.table.createdAt": "Created at",
|
"account.shares.table.createdAt": "Đã tạo lúc",
|
||||||
"account.shares.table.size": "Size",
|
"account.shares.table.size": "Dung lượng",
|
||||||
|
|
||||||
"account.shares.modal.share-informations": "Share informations",
|
"account.shares.modal.share-informations": "Share informations",
|
||||||
"account.shares.modal.share-link": "Share link",
|
"account.shares.modal.share-link": "Chia sẻ liên kết",
|
||||||
|
|
||||||
"account.shares.modal.delete.title": "Delete share {share}",
|
"account.shares.modal.delete.title": "Delete share {share}",
|
||||||
"account.shares.modal.delete.description":
|
"account.shares.modal.delete.description": "Do you really want to delete this share?",
|
||||||
"Do you really want to delete this share?",
|
|
||||||
|
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
|
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
"account.reverseShares.title": "Reverse shares",
|
"account.reverseShares.title": "Reverse shares",
|
||||||
"account.reverseShares.description":
|
"account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.",
|
||||||
"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.title.empty": "It's empty here 👀",
|
||||||
"account.reverseShares.description.empty":
|
"account.reverseShares.description.empty": "You don't have any reverse shares.",
|
||||||
"You don't have any reverse shares.",
|
|
||||||
|
|
||||||
// showCreateReverseShareModal.tsx
|
// showCreateReverseShareModal.tsx
|
||||||
"account.reverseShares.modal.title": "Create reverse share",
|
"account.reverseShares.modal.title": "Create reverse share",
|
||||||
"account.reverseShares.modal.expiration.label": "Expiration",
|
"account.reverseShares.modal.expiration.label": "Thời hạn",
|
||||||
"account.reverseShares.modal.expiration.minute-singular": "Minute",
|
"account.reverseShares.modal.expiration.minute-singular": "Phút",
|
||||||
"account.reverseShares.modal.expiration.minute-plural": "Minutes",
|
"account.reverseShares.modal.expiration.minute-plural": "Phút",
|
||||||
"account.reverseShares.modal.expiration.hour-singular": "Hour",
|
"account.reverseShares.modal.expiration.hour-singular": "Giờ",
|
||||||
"account.reverseShares.modal.expiration.hour-plural": "Hours",
|
"account.reverseShares.modal.expiration.hour-plural": "Giờ",
|
||||||
"account.reverseShares.modal.expiration.day-singular": "Day",
|
"account.reverseShares.modal.expiration.day-singular": "Ngày",
|
||||||
"account.reverseShares.modal.expiration.day-plural": "Days",
|
"account.reverseShares.modal.expiration.day-plural": "Ngày",
|
||||||
"account.reverseShares.modal.expiration.week-singular": "Week",
|
"account.reverseShares.modal.expiration.week-singular": "Tuần",
|
||||||
"account.reverseShares.modal.expiration.week-plural": "Weeks",
|
"account.reverseShares.modal.expiration.week-plural": "Tuần",
|
||||||
"account.reverseShares.modal.expiration.month-singular": "Month",
|
"account.reverseShares.modal.expiration.month-singular": "Tháng",
|
||||||
"account.reverseShares.modal.expiration.month-plural": "Months",
|
"account.reverseShares.modal.expiration.month-plural": "Tháng",
|
||||||
"account.reverseShares.modal.expiration.year-singular": "Year",
|
"account.reverseShares.modal.expiration.year-singular": "Năm",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Years",
|
"account.reverseShares.modal.expiration.year-plural": "Năm",
|
||||||
|
|
||||||
"account.reverseShares.modal.max-size.label": "Max share size",
|
"account.reverseShares.modal.max-size.label": "Max share size",
|
||||||
|
|
||||||
"account.reverseShares.modal.send-email": "Send email notification",
|
"account.reverseShares.modal.send-email": "Send email notification",
|
||||||
"account.reverseShares.modal.send-email.description":
|
"account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.",
|
||||||
"Send an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.simplified": "Chế độ đơn giản",
|
||||||
|
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will be able to customize only the name and description of the share.",
|
||||||
"account.reverseShares.modal.simplified": "Simple mode",
|
|
||||||
"account.reverseShares.modal.simplified.description":
|
|
||||||
"Make it easy for the person uploading the file to share it with you. They will be able to customize only the name and description of the share.",
|
|
||||||
|
|
||||||
"account.reverseShares.modal.public-access": "Public access",
|
"account.reverseShares.modal.public-access": "Public access",
|
||||||
"account.reverseShares.modal.public-access.description":
|
"account.reverseShares.modal.public-access.description": "Make the created shares with this reverse share public. If disabled, only you and the creator of the share can view it.",
|
||||||
"Make the created shares with this reverse share public. If disabled, only you and the creator of the share can view it.",
|
|
||||||
|
|
||||||
"account.reverseShares.modal.max-use.label": "Max uses",
|
"account.reverseShares.modal.max-use.label": "Max uses",
|
||||||
"account.reverseShares.modal.max-use.description":
|
"account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.",
|
||||||
"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.never-expires": "This reverse share will never expire.",
|
||||||
"account.reverseShare.expires-on":
|
"account.reverseShare.expires-on": "This reverse share will expire on {expiration}.",
|
||||||
"This reverse share will expire on {expiration}.",
|
|
||||||
|
|
||||||
"account.reverseShares.table.no-shares": "No shares created yet",
|
"account.reverseShares.table.no-shares": "No shares created yet",
|
||||||
"account.reverseShares.table.count.singular": "share",
|
"account.reverseShares.table.count.singular": "share",
|
||||||
"account.reverseShares.table.count.plural": "shares",
|
"account.reverseShares.table.count.plural": "shares",
|
||||||
"account.reverseShares.table.shares": "Shares",
|
"account.reverseShares.table.shares": "Shares",
|
||||||
"account.reverseShares.table.remaining": "Remaining uses",
|
"account.reverseShares.table.remaining": "Remaining uses",
|
||||||
"account.reverseShares.table.max-size": "Max share size",
|
"account.reverseShares.table.max-size": "Max share size",
|
||||||
"account.reverseShares.table.expires": "Expires at",
|
"account.reverseShares.table.expires": "Hết hạn vào",
|
||||||
|
|
||||||
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
|
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
|
||||||
|
|
||||||
"account.reverseShares.modal.delete.title": "Delete reverse share",
|
"account.reverseShares.modal.delete.title": "Delete reverse share",
|
||||||
"account.reverseShares.modal.delete.description":
|
"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.",
|
||||||
"Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
|
|
||||||
|
|
||||||
// END /account/reverseShares
|
// END /account/reverseShares
|
||||||
|
|
||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Administration",
|
"admin.title": "Administration",
|
||||||
"admin.button.users": "User management",
|
"admin.button.users": "User management",
|
||||||
"admin.button.shares": "Share management",
|
"admin.button.shares": "Share management",
|
||||||
"admin.button.config": "Configuration",
|
"admin.button.config": "Configuration",
|
||||||
"admin.version": "Version",
|
"admin.version": "Phiên bản",
|
||||||
// END /admin
|
// END /admin
|
||||||
|
|
||||||
// /admin/users
|
// /admin/users
|
||||||
"admin.users.title": "User management",
|
"admin.users.title": "User management",
|
||||||
"admin.users.table.username": "Username",
|
"admin.users.table.username": "Username",
|
||||||
"admin.users.table.email": "Email",
|
"admin.users.table.email": "Email",
|
||||||
"admin.users.table.admin": "Admin",
|
"admin.users.table.admin": "Admin",
|
||||||
|
|
||||||
"admin.users.edit.update.title": "Update user {username}",
|
"admin.users.edit.update.title": "Update user {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "Admin privileges",
|
"admin.users.edit.update.admin-privileges": "Admin privileges",
|
||||||
"admin.users.edit.update.change-password.title": "Change password",
|
"admin.users.edit.update.change-password.title": "Change password",
|
||||||
"admin.users.edit.update.change-password.field": "New password",
|
"admin.users.edit.update.change-password.field": "New password",
|
||||||
"admin.users.edit.update.change-password.button": "Save new password",
|
"admin.users.edit.update.change-password.button": "Save new password",
|
||||||
"admin.users.edit.update.notify.password.success":
|
"admin.users.edit.update.notify.password.success": "Password changed successfully",
|
||||||
"Password changed successfully",
|
|
||||||
|
|
||||||
"admin.users.edit.delete.title": "Delete user {username}",
|
"admin.users.edit.delete.title": "Delete user {username}",
|
||||||
"admin.users.edit.delete.description":
|
"admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?",
|
||||||
"Do you really want to delete this user and all his shares?",
|
|
||||||
|
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Create user",
|
"admin.users.modal.create.title": "Create user",
|
||||||
"admin.users.modal.create.username": "Username",
|
"admin.users.modal.create.username": "Username",
|
||||||
"admin.users.modal.create.email": "Email",
|
"admin.users.modal.create.email": "Email",
|
||||||
"admin.users.modal.create.password": "Password",
|
"admin.users.modal.create.password": "Password",
|
||||||
"admin.users.modal.create.manual-password": "Set password manually",
|
"admin.users.modal.create.manual-password": "Set password manually",
|
||||||
"admin.users.modal.create.manual-password.description":
|
"admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.",
|
||||||
"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": "Admin privileges",
|
||||||
"admin.users.modal.create.admin.description":
|
"admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.",
|
||||||
"If checked, the user will be able to access the admin panel.",
|
|
||||||
|
|
||||||
// END /admin/users
|
// END /admin/users
|
||||||
|
|
||||||
// /admin/shares
|
// /admin/shares
|
||||||
"admin.shares.title": "Share management",
|
"admin.shares.title": "Share management",
|
||||||
"admin.shares.table.id": "Share ID",
|
"admin.shares.table.id": "Share ID",
|
||||||
"admin.shares.table.username": "Creator",
|
"admin.shares.table.username": "Creator",
|
||||||
"admin.shares.table.visitors": "Visitors",
|
"admin.shares.table.visitors": "Visitors",
|
||||||
"admin.shares.table.expires": "Expires At",
|
"admin.shares.table.expires": "Expires At",
|
||||||
|
|
||||||
"admin.shares.edit.delete.title": "Delete share {id}",
|
"admin.shares.edit.delete.title": "Delete share {id}",
|
||||||
"admin.shares.edit.delete.description":
|
"admin.shares.edit.delete.description": "Do you really want to delete this share?",
|
||||||
"Do you really want to delete this share?",
|
|
||||||
|
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
|
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
||||||
"upload.notify.generic-error":
|
|
||||||
"An error occurred while finishing your share.",
|
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload files",
|
"upload.dropzone.title": "Upload files",
|
||||||
"upload.dropzone.description":
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.",
|
||||||
"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.notify.file-too-big":
|
|
||||||
"Your files exceed the maximum share size of {maxSize}.",
|
|
||||||
|
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Name",
|
"upload.filelist.name": "Name",
|
||||||
"upload.filelist.size": "Size",
|
"upload.filelist.size": "Size",
|
||||||
|
|
||||||
// showCreateUploadModal.tsx
|
// showCreateUploadModal.tsx
|
||||||
"upload.modal.title": "Create Share",
|
"upload.modal.title": "Create Share",
|
||||||
"upload.modal.link.error.invalid":
|
"upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens",
|
||||||
"Can only contain letters, numbers, underscores, and hyphens",
|
|
||||||
"upload.modal.link.error.taken": "This link is already in use",
|
"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": "You're not signed in",
|
||||||
"upload.modal.not-signed-in-description":
|
"upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.",
|
||||||
"You will be unable to delete your share manually and view the visitor count.",
|
|
||||||
|
|
||||||
"upload.modal.expires.never": "never",
|
"upload.modal.expires.never": "never",
|
||||||
"upload.modal.expires.never-long": "Never Expires",
|
"upload.modal.expires.never-long": "Never Expires",
|
||||||
"upload.modal.expires.error.too-long":
|
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
||||||
"Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.link.label": "Liên kết",
|
||||||
|
"upload.modal.expires.label": "Thời hạn",
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.expires.minute-singular": "Phút",
|
||||||
"upload.modal.expires.label": "Expiration",
|
"upload.modal.expires.minute-plural": "Phút",
|
||||||
"upload.modal.expires.minute-singular": "Minute",
|
"upload.modal.expires.hour-singular": "Giờ",
|
||||||
"upload.modal.expires.minute-plural": "Minutes",
|
"upload.modal.expires.hour-plural": "Giờ",
|
||||||
"upload.modal.expires.hour-singular": "Hour",
|
"upload.modal.expires.day-singular": "Ngày",
|
||||||
"upload.modal.expires.hour-plural": "Hours",
|
"upload.modal.expires.day-plural": "Ngày",
|
||||||
"upload.modal.expires.day-singular": "Day",
|
"upload.modal.expires.week-singular": "Tuần",
|
||||||
"upload.modal.expires.day-plural": "Days",
|
"upload.modal.expires.week-plural": "Tuần",
|
||||||
"upload.modal.expires.week-singular": "Week",
|
"upload.modal.expires.month-singular": "Tháng",
|
||||||
"upload.modal.expires.week-plural": "Weeks",
|
"upload.modal.expires.month-plural": "Tháng",
|
||||||
"upload.modal.expires.month-singular": "Month",
|
"upload.modal.expires.year-singular": "Năm",
|
||||||
"upload.modal.expires.month-plural": "Months",
|
"upload.modal.expires.year-plural": "Năm",
|
||||||
"upload.modal.expires.year-singular": "Year",
|
|
||||||
"upload.modal.expires.year-plural": "Years",
|
|
||||||
|
|
||||||
"upload.modal.accordion.name-and-description.title": "Name and description",
|
"upload.modal.accordion.name-and-description.title": "Name and description",
|
||||||
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
"upload.modal.accordion.name-and-description.name.placeholder": "Tên",
|
||||||
"upload.modal.accordion.name-and-description.description.placeholder":
|
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
|
||||||
"Note for the recipients of this share",
|
|
||||||
|
|
||||||
"upload.modal.accordion.email.title": "Email recipients",
|
"upload.modal.accordion.email.title": "Email recipients",
|
||||||
"upload.modal.accordion.email.placeholder": "Enter email recipients",
|
"upload.modal.accordion.email.placeholder": "Enter email recipients",
|
||||||
"upload.modal.accordion.email.invalid-email": "Invalid email address",
|
"upload.modal.accordion.email.invalid-email": "Invalid email address",
|
||||||
|
|
||||||
"upload.modal.accordion.security.title": "Security options",
|
"upload.modal.accordion.security.title": "Security options",
|
||||||
"upload.modal.accordion.security.password.label": "Password protection",
|
"upload.modal.accordion.security.password.label": "Password protection",
|
||||||
"upload.modal.accordion.security.password.placeholder": "No password",
|
"upload.modal.accordion.security.password.placeholder": "No password",
|
||||||
"upload.modal.accordion.security.max-views.label": "Maximum views",
|
"upload.modal.accordion.security.max-views.label": "Maximum views",
|
||||||
"upload.modal.accordion.security.max-views.placeholder": "No limit",
|
"upload.modal.accordion.security.max-views.placeholder": "No limit",
|
||||||
|
|
||||||
// showCompletedUploadModal.tsx
|
// showCompletedUploadModal.tsx
|
||||||
"upload.modal.completed.never-expires": "This share will never expire.",
|
"upload.modal.completed.never-expires": "This share will never expire.",
|
||||||
"upload.modal.completed.expires-on":
|
"upload.modal.completed.expires-on": "This share will expire on {expiration}.",
|
||||||
"This share will expire on {expiration}.",
|
|
||||||
"upload.modal.completed.share-ready": "Share ready",
|
"upload.modal.completed.share-ready": "Share ready",
|
||||||
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
|
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
|
||||||
|
|
||||||
// END /upload
|
// END /upload
|
||||||
|
|
||||||
// /share/[id]
|
// /share/[id]
|
||||||
"share.title": "Share {shareId}",
|
"share.title": "Share {shareId}",
|
||||||
"share.description": "Look what I've shared with you!",
|
"share.description": "Look what I've shared with you!",
|
||||||
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
|
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
|
||||||
"share.error.visitor-limit-exceeded.description":
|
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
|
||||||
"The visitor limit from this share has been exceeded.",
|
|
||||||
"share.error.removed.title": "Share removed",
|
"share.error.removed.title": "Share removed",
|
||||||
"share.error.not-found.title": "Share not found",
|
"share.error.not-found.title": "Share not found",
|
||||||
"share.error.not-found.description":
|
"share.error.not-found.description": "The share you're looking for doesn't exist.",
|
||||||
"The share you're looking for doesn't exist.",
|
|
||||||
"share.error.access-denied.title": "Private share",
|
"share.error.access-denied.title": "Private share",
|
||||||
"share.error.access-denied.description": "The current account does not have permission to access this share",
|
"share.error.access-denied.description": "The current account does not have permission to access this share",
|
||||||
|
|
||||||
"share.modal.password.title": "Password required",
|
"share.modal.password.title": "Password required",
|
||||||
"share.modal.password.description":
|
"share.modal.password.description": "To access this share please enter the password for the share.",
|
||||||
"To access this share please enter the password for the share.",
|
"share.modal.password": "Mật khẩu",
|
||||||
"share.modal.password": "Password",
|
"share.modal.error.invalid-password": "Mật khẩu không hợp lệ",
|
||||||
"share.modal.error.invalid-password": "Invalid password",
|
"share.button.download-all": "Tải xuống tất cả",
|
||||||
|
"share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.",
|
||||||
"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.modal.file-link": "File link",
|
||||||
"share.table.name": "Name",
|
"share.table.name": "Name",
|
||||||
"share.table.size": "Size",
|
"share.table.size": "Size",
|
||||||
|
|
||||||
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
||||||
"share.modal.file-preview.error.not-supported.description":
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
"A preview for this file type is unsupported. Please download the file to view it.",
|
|
||||||
|
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
|
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Append file",
|
||||||
"share.edit.notify.generic-error":
|
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
||||||
"An error occurred while finishing your share.",
|
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Share updated successfully",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
|
|
||||||
// /admin/config
|
// /admin/config
|
||||||
"admin.config.title": "Configuration",
|
"admin.config.title": "Configuration",
|
||||||
"admin.config.category.general": "General",
|
"admin.config.category.general": "General",
|
||||||
@ -402,174 +296,114 @@ export default {
|
|||||||
"admin.config.category.email": "Email",
|
"admin.config.category.email": "Email",
|
||||||
"admin.config.category.smtp": "SMTP",
|
"admin.config.category.smtp": "SMTP",
|
||||||
"admin.config.category.oauth": "Social Login",
|
"admin.config.category.oauth": "Social Login",
|
||||||
|
|
||||||
"admin.config.general.app-name": "App name",
|
"admin.config.general.app-name": "App name",
|
||||||
"admin.config.general.app-name.description": "Name of the application",
|
"admin.config.general.app-name.description": "Name of the application",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "URL ứng dụng",
|
||||||
"admin.config.general.app-url.description":
|
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
|
||||||
"On which URL Pingvin Share is available",
|
|
||||||
"admin.config.general.show-home-page": "Show home page",
|
"admin.config.general.show-home-page": "Show home page",
|
||||||
"admin.config.general.show-home-page.description":
|
"admin.config.general.show-home-page.description": "Whether to show the home page",
|
||||||
"Whether to show the home page",
|
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
"admin.config.general.session-duration.description":
|
"admin.config.general.session-duration.description": "Time in hours after which a user must log in again (default: 3 months).",
|
||||||
"Time in hours after which a user must log in again (default: 3 months).",
|
|
||||||
"admin.config.general.logo": "Logo",
|
"admin.config.general.logo": "Logo",
|
||||||
"admin.config.general.logo.description":
|
"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.",
|
||||||
"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": "Chọn ảnh",
|
||||||
"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": "Share recipients subject",
|
||||||
"admin.config.email.share-recipients-subject.description":
|
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
|
||||||
"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": "Share recipients message",
|
||||||
"admin.config.email.share-recipients-message.description":
|
"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.",
|
||||||
"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": "Reverse share subject",
|
||||||
"admin.config.email.reverse-share-subject.description":
|
"admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.",
|
||||||
"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": "Reverse share message",
|
||||||
"admin.config.email.reverse-share-message.description":
|
"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.",
|
||||||
"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": "Reset password subject",
|
||||||
"admin.config.email.reset-password-subject.description":
|
"admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.",
|
||||||
"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": "Reset password message",
|
||||||
"admin.config.email.reset-password-message.description":
|
"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.",
|
||||||
"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": "Invite subject",
|
||||||
"admin.config.email.invite-subject.description":
|
"admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.",
|
||||||
"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": "Invite message",
|
||||||
"admin.config.email.invite-message.description":
|
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the password of the user.",
|
||||||
"Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the password of the user.",
|
"admin.config.share.allow-registration": "Cho phép đăng ký",
|
||||||
|
"admin.config.share.allow-registration.description": "Whether registration is allowed",
|
||||||
"admin.config.share.allow-registration": "Allow registration",
|
"admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares",
|
||||||
"admin.config.share.allow-registration.description":
|
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
|
||||||
"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-expiration": "Max expiration",
|
"admin.config.share.max-expiration": "Max expiration",
|
||||||
"admin.config.share.max-expiration.description":
|
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
||||||
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
"admin.config.share.max-size": "Kích thước tối đa",
|
||||||
"admin.config.share.max-size": "Max size",
|
"admin.config.share.max-size.description": "Kích thước tối đa (bytes)",
|
||||||
"admin.config.share.max-size.description": "Maximum share size in bytes",
|
"admin.config.share.zip-compression-level": "Cấp độ nén Zip",
|
||||||
"admin.config.share.zip-compression-level": "Zip compression level",
|
"admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
|
||||||
"admin.config.share.zip-compression-level.description":
|
"admin.config.share.chunk-size": "Kích cỡ mảnh",
|
||||||
"Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
|
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks speed up uploads for stable connections.",
|
||||||
"admin.config.share.chunk-size": "Chunk size",
|
|
||||||
"admin.config.share.chunk-size.description":
|
|
||||||
"Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks speed up uploads for stable connections.",
|
|
||||||
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
||||||
"admin.config.share.auto-open-share-modal.description":
|
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
||||||
"The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
|
||||||
|
|
||||||
"admin.config.smtp.enabled": "Enabled",
|
"admin.config.smtp.enabled": "Enabled",
|
||||||
"admin.config.smtp.enabled.description":
|
"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.",
|
||||||
"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": "Máy chủ",
|
||||||
"admin.config.smtp.host": "Host",
|
|
||||||
"admin.config.smtp.host.description": "Host of the SMTP server",
|
"admin.config.smtp.host.description": "Host of the SMTP server",
|
||||||
"admin.config.smtp.port": "Port",
|
"admin.config.smtp.port": "Cổng",
|
||||||
"admin.config.smtp.port.description": "Port of the SMTP server",
|
"admin.config.smtp.port.description": "Port of the SMTP server",
|
||||||
"admin.config.smtp.email": "Email",
|
"admin.config.smtp.email": "Email",
|
||||||
"admin.config.smtp.email.description":
|
"admin.config.smtp.email.description": "Email address which the emails get sent from",
|
||||||
"Email address which the emails get sent from",
|
|
||||||
"admin.config.smtp.username": "Username",
|
"admin.config.smtp.username": "Username",
|
||||||
"admin.config.smtp.username.description": "Username of the SMTP server",
|
"admin.config.smtp.username.description": "Username of the SMTP server",
|
||||||
"admin.config.smtp.password": "Password",
|
"admin.config.smtp.password": "Password",
|
||||||
"admin.config.smtp.password.description": "Password of the SMTP server",
|
"admin.config.smtp.password.description": "Password of the SMTP server",
|
||||||
"admin.config.smtp.button.test": "Send test email",
|
"admin.config.smtp.button.test": "Send test email",
|
||||||
"admin.config.smtp.allow-unauthorized-certificates":
|
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
|
||||||
"Trust unauthorized SMTP server certificates",
|
"admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.",
|
||||||
"admin.config.smtp.allow-unauthorized-certificates.description":
|
|
||||||
"Only set this to true if you need to trust self signed certificates.",
|
|
||||||
|
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration": "Allow registration",
|
||||||
"admin.config.oauth.allow-registration.description":
|
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
||||||
"Allow users to register via social login",
|
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
||||||
"admin.config.oauth.ignore-totp.description":
|
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
||||||
"Whether to ignore TOTP when user using social login",
|
|
||||||
"admin.config.oauth.disable-password": "Disable password login",
|
"admin.config.oauth.disable-password": "Disable password login",
|
||||||
"admin.config.oauth.disable-password.description":
|
"admin.config.oauth.disable-password.description": "Whether to disable password login\nMake sure that an OAuth provider is properly configured before activating this configuration to avoid being locked out.",
|
||||||
"Whether to disable password login\nMake sure that an OAuth provider is properly configured before activating this configuration to avoid being locked out.",
|
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description":
|
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
||||||
"Whether GitHub login is enabled",
|
|
||||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
"admin.config.oauth.github-client-id.description":
|
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
|
||||||
"Client ID of the GitHub OAuth app",
|
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
||||||
"admin.config.oauth.github-client-secret.description":
|
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
|
||||||
"Client secret of the GitHub OAuth app",
|
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description":
|
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
||||||
"Whether Google login is enabled",
|
|
||||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
"admin.config.oauth.google-client-id": "Google Client ID",
|
||||||
"admin.config.oauth.google-client-id.description":
|
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
|
||||||
"Client ID of the Google OAuth app",
|
"admin.config.oauth.google-client-secret": "Google Client Secret",
|
||||||
"admin.config.oauth.google-client-secret": "Google Client secret",
|
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
|
||||||
"admin.config.oauth.google-client-secret.description":
|
|
||||||
"Client secret of the Google OAuth app",
|
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description":
|
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
||||||
"Whether Microsoft login is enabled",
|
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
||||||
"admin.config.oauth.microsoft-tenant.description":
|
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
||||||
"Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||||
"admin.config.oauth.microsoft-client-id.description":
|
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
|
||||||
"Client ID of the Microsoft OAuth app",
|
|
||||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
||||||
"admin.config.oauth.microsoft-client-secret.description":
|
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
|
||||||
"Client secret of the Microsoft OAuth app",
|
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description":
|
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
||||||
"Whether Discord login is enabled",
|
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description":
|
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
||||||
"Limit signing in to users in a specific server. Leave it blank to disable.",
|
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
||||||
"admin.config.oauth.discord-client-id.description":
|
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
|
||||||
"Client ID of the Discord OAuth app",
|
|
||||||
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
||||||
"admin.config.oauth.discord-client-secret.description":
|
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
|
||||||
"Client secret of the Discord OAuth app",
|
|
||||||
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
||||||
"admin.config.oauth.oidc-enabled.description":
|
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
|
||||||
"Whether OpenID Connect login is enabled",
|
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
||||||
"admin.config.oauth.oidc-discovery-uri.description":
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
||||||
"Discovery URI of the OpenID Connect OAuth app",
|
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
||||||
"admin.config.oauth.oidc-username-claim.description":
|
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
|
||||||
"Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
|
|
||||||
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
|
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
|
||||||
"admin.config.oauth.oidc-role-path.description":
|
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.",
|
||||||
"Must be a valid JMES path referencing an array of roles. " +
|
|
||||||
"Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " +
|
|
||||||
"Leave it blank if you don't know what this config is.",
|
|
||||||
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
|
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
|
||||||
"admin.config.oauth.oidc-role-general-access.description":
|
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a user’s roles for them to log in. " + "Leave it blank if you don't know what this config is.",
|
||||||
"Role required for general access. Must be present in a user’s roles for them to log in. " +
|
|
||||||
"Leave it blank if you don't know what this config is.",
|
|
||||||
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
|
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
|
||||||
"admin.config.oauth.oidc-role-admin-access.description":
|
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a user’s roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
|
||||||
"Role required for administrative access. Must be present in a user’s roles for them to access the admin panel. " +
|
|
||||||
"Leave it blank if you don't know what this config is.",
|
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
||||||
"admin.config.oauth.oidc-client-id.description":
|
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
|
||||||
"Client ID of the OpenID Connect OAuth app",
|
|
||||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
||||||
"admin.config.oauth.oidc-client-secret.description":
|
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
|
||||||
"Client secret of the OpenID Connect OAuth app",
|
|
||||||
|
|
||||||
"admin.config.category.ldap": "LDAP",
|
"admin.config.category.ldap": "LDAP",
|
||||||
"admin.config.ldap.enabled": "Enabled LDAP",
|
"admin.config.ldap.enabled": "Enabled LDAP",
|
||||||
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
|
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
|
||||||
@ -585,63 +419,53 @@ export default {
|
|||||||
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
|
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
|
||||||
"admin.config.ldap.admin-groups": "Admin group",
|
"admin.config.ldap.admin-groups": "Admin group",
|
||||||
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
|
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
|
||||||
|
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Oops this page doesn't exist.",
|
"404.description": "Oops this page doesn't exist.",
|
||||||
"404.button.home": "Bring me back home",
|
"404.button.home": "Về trang chủ",
|
||||||
|
|
||||||
// error
|
// error
|
||||||
"error.title": "Error",
|
"error.title": "Lỗi",
|
||||||
"error.description": "Oops!",
|
"error.description": "Oops!",
|
||||||
"error.button.back": "Go back",
|
"error.button.back": "Go back",
|
||||||
"error.msg.default": "Something went wrong.",
|
"error.msg.default": "Something went wrong.",
|
||||||
"error.msg.access_denied":
|
"error.msg.access_denied": "You canceled the authentication process, please try again.",
|
||||||
"You canceled the authentication process, please try again.",
|
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
||||||
"error.msg.expired_token":
|
|
||||||
"The authentication process took too long, please try again.",
|
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Internal Error",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "Can't get email address from this {0} account.",
|
||||||
"error.msg.already_linked":
|
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
||||||
"This {0} account is already linked to another account.",
|
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
||||||
"error.msg.unverified_account":
|
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
||||||
"This {0} account is unverified, please try again after verification.",
|
"error.msg.user_not_allowed": "You are not allowed to sign in.",
|
||||||
"error.msg.user_not_allowed":
|
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
||||||
"You are not allowed to sign in.",
|
|
||||||
"error.msg.cannot_get_user_info":
|
|
||||||
"Can not get your user info from this {0} account.",
|
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_google": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
"error.param.provider_discord": "Discord",
|
"error.param.provider_discord": "Discord",
|
||||||
"error.param.provider_oidc": "OpenID Connect",
|
"error.param.provider_oidc": "OpenID Connect",
|
||||||
|
|
||||||
// Common translations
|
// Common translations
|
||||||
"common.button.save": "Save",
|
"common.button.save": "Lưu",
|
||||||
"common.button.create": "Create",
|
"common.button.create": "Tạo",
|
||||||
"common.button.submit": "Submit",
|
"common.button.submit": "Submit",
|
||||||
"common.button.delete": "Delete",
|
"common.button.delete": "Xóa",
|
||||||
"common.button.cancel": "Cancel",
|
"common.button.cancel": "Hủy",
|
||||||
"common.button.confirm": "Confirm",
|
"common.button.confirm": "Xác nhận",
|
||||||
"common.button.disable": "Disable",
|
"common.button.disable": "Disable",
|
||||||
"common.button.share": "Share",
|
"common.button.share": "Share",
|
||||||
"common.button.generate": "Generate",
|
"common.button.generate": "Generate",
|
||||||
"common.button.done": "Done",
|
"common.button.done": "Done",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
"common.text.navigate-to-link": "Go to the link",
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "or",
|
"common.text.or": "hoặc",
|
||||||
"common.button.go-back": "Go back",
|
"common.button.go-back": "Quay lại",
|
||||||
"common.button.go-home": "Go home",
|
"common.button.go-home": "Về trang chủ",
|
||||||
"common.notify.copied": "Your link was copied to the clipboard",
|
"common.notify.copied": "Đã sao chép liên kết vào bộ nhớ",
|
||||||
"common.success": "Success",
|
"common.success": "Thành công",
|
||||||
|
|
||||||
"common.error": "Error",
|
"common.error": "Error",
|
||||||
"common.error.unknown": "An unknown error occurred",
|
"common.error.unknown": "An unknown error occurred",
|
||||||
"common.error.invalid-email": "Invalid email address",
|
"common.error.invalid-email": "Invalid email address",
|
||||||
"common.error.too-short": "Must be at least {length} characters",
|
"common.error.too-short": "Must be at least {length} characters",
|
||||||
"common.error.too-long": "Must be at most {length} characters",
|
"common.error.too-long": "Must be at most {length} characters",
|
||||||
"common.error.exact-length": "Must be exactly {length} characters",
|
"common.error.exact-length": "Must be exactly {length} characters",
|
||||||
"common.error.invalid-number": "Must be a number",
|
"common.error.invalid-number": "Phải là số",
|
||||||
"common.error.field-required": "This field is required",
|
"common.error.field-required": "Trường bắt buộc"
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user