diff --git a/src/translation/nl.json b/src/translation/nl.json index b019afff7..46d5537e9 100644 --- a/src/translation/nl.json +++ b/src/translation/nl.json @@ -602,7 +602,8 @@ "user": "Gebruiker", "privateKey": "Private sleutel", "cifsSealSupport": "Gebruik seal encryptie. SMB v3 is hiervoor minimaal benodigd", - "chown": "Extern bestandssysteem ondersteunt chown" + "chown": "Extern bestandssysteem ondersteunt chown", + "encryptedFilenames": "Encodeer bestandsnamen" }, "backupFailed": { "title": "Backup maken niet mogelijk" @@ -614,7 +615,7 @@ "backupEdit": { "preserved": { "tooltip": "Dit behoudt ook de mail en {{ appsLength }} app backup(s).", - "description": "Backup blijven maken, ongeacht het bewaarbeleid" + "description": "Backup behouden, ongeacht het bewaarbeleid" }, "title": "Bewerk Backup", "label": "Label" diff --git a/src/translation/ru.json b/src/translation/ru.json index 2f252fc82..9b0d675a9 100644 --- a/src/translation/ru.json +++ b/src/translation/ru.json @@ -891,7 +891,8 @@ "password": "Пароль", "setupMountDescription": "Если опция включена, Cloudron настроит точку монтирования на сервере", "cifsSealSupport": "Использовать SEAL шифрование. Требуется SMB v3", - "chown": "Удалённая файловая система поддерживает chown" + "chown": "Удалённая файловая система поддерживает chown", + "encryptedFilenames": "Шифровать имена файлов" }, "title": "Резервные копии", "logs": { diff --git a/src/translation/vi.json b/src/translation/vi.json index 6824845f8..6eaf9a8ef 100644 --- a/src/translation/vi.json +++ b/src/translation/vi.json @@ -93,14 +93,14 @@ "newApps": "App Mới", "chat": "Chat", "analytics": "Thống kê", - "crm": "Quản lý quan hệ khách hàng", + "crm": "Chăm sóc khách hàng", "forum": "Diễn đàn", "gallery": "Thư viện hình ảnh", "finance": "Tài chính", - "git": "Host code", + "git": "Chạy code", "email": "Email", "game": "Game", - "hosting": "Host web", + "hosting": "Chạy web", "media": "Hình ảnh", "learning": "Học tập", "notes": "Ghi chú", @@ -110,7 +110,7 @@ "blog": "Blog", "document": "Tài liệu", "project": "Quản lý dự án", - "federated": "Phần mềm Liên hiệp hoá" + "federated": "Liên hiệp hoá" }, "noAppsFound": "Không tìm thấy app.", "unstable": "Chưa ổn định", @@ -128,15 +128,17 @@ "users": "Người dùng", "groups": "Nhóm", "lowOnResources": "Cloudron này đang chạy gần hết bộ nhớ.", - "pleaseUpgradeServer": "Hãy nâng cấp server có bộ nhớ nhiều hơn. Hoặc, gỡ cài đặt những app không dùng đến để có thêm chỗ trống.", + "pleaseUpgradeServer": "Hãy nâng cấp server có bộ nhớ nhiều hơn. Hoặc, xoá những app không dùng đến để có thêm chỗ trống.", "setupSubscriptionAction": "Cài đặt gói đăng ký", - "installAnywayAction": "Vẫn cài đặt luôn", - "installAction": "Cài đặt", + "installAnywayAction": "Vẫn tải về luôn", + "installAction": "Tải về", "subscriptionRequired": "Để cài đặt thêm app, hãy đăng ký gói trả phí.", "userManagementNone": "App này có phần quản lý người dùng riêng. Phần cài đặt này điều chỉnh app có hiển thị hay không trên bảng dashboard của người dùng.", "userManagementSelectUsers": "Chỉ cho phép người dùng và nhóm sau", "configuredForCloudronEmail": "App này đã được cấu hình sẵn để sử dụng với Cloudron Email.", - "doInstallAction": "Cài đặt {{ dnsOverwrite ? 'and overwrite DNS' : '' }}" + "doInstallAction": "Tải về {{ dnsOverwrite ? 'and overwrite DNS' : '' }}", + "cloudflarePortWarning": "Cần tắt proxy Cloudflare để tên miền app này có thể truy cập được vào cổng", + "titleAndVersion": "App này đóng gói phần mềm {{ title }} {{ version }}" }, "appNotFoundDialog": { "title": "Không tìm thấy app", @@ -160,7 +162,11 @@ }, "searchPlaceholder": "Tìm kiếm app thay thế cho Github, Dropbox, Slack, Trello, …", "appMissing": "Thiếu app nào đó? Hãy nhắn cho chúng tôi.", - "categoryLabel": "Danh mục" + "categoryLabel": "Danh mục", + "ssofilter": { + "all": "Tất cả App", + "label": "Quản lý người dùng" + } }, "users": { "editUserDialog": { @@ -188,7 +194,9 @@ "groups": "Nhóm", "role": "Vai trò", "username": "Tên đăng nhập", - "fullName": "Họ tên" + "fullName": "Họ tên", + "fallbackEmailPlaceholder": "Không bắt buộc. Nếu không được xác định, email chính sẽ được sử dụng", + "displayNamePlaceholder": "Không bắt buộc. Nếu để trống, người dùng có thể tự cài đặt trong lúc đăng ký" }, "addUserDialog": { "addUserAction": "Thêm người dùng", @@ -218,17 +226,17 @@ "acceptSelfSignedCert": "Chấp nhận chứng chỉ số tự ký", "server": "URL server", "provider": "Nhà cung cấp", - "noopInfo": "Xác thực LDAP chưa được cấu hình.", + "noopInfo": "Xác thực LDAP chưa được thiết lập.", "subscriptionRequiredAction": "Cài đặt gói đăng ký ngay", "description": "Cloudron sẽ đồng bộ người dùng và nhóm từ server LDAP hay ActiveDirectory bên ngoài. Xác minh mật khẩu cho người dùng được dựa trên server ngoài. Việc đồng bộ hoá không được chạy tự động mà cần được khởi động bằng tay.", - "title": "LDAP", + "title": "Kết nối thư mục ngoài", "subscriptionRequired": "Tính năng này chỉ có trong gói trả phí.", "providerOther": "Khác", "providerDisabled": "Đã tắt" }, "users": { "inactiveTooltip": "Người dùng không hoạt động", - "resetPasswordTooltip": "Cài lại mật khẩu, tắc xác minh 2 Bước hay gửi link mời", + "resetPasswordTooltip": "Cài lại mật khẩu", "removeUserTooltip": "Xóa người dùng", "editUserTooltip": "Chỉnh sửa người dùng", "notActivatedYetTooltip": "Người dùng chưa được kích hoạt", @@ -239,7 +247,12 @@ "empty": "Không tìm thấy người dùng", "groups": "Nhóm", "user": "Người dùng", - "transferOwnershipTooltip": "Chuyển đổi quyền sở hữu" + "transferOwnershipTooltip": "Chuyển đổi quyền sở hữu", + "invitationTooltip": "Mời Người dùng", + "setGhostTooltip": "Nhập vai", + "count": "Tổng ng dùng: {{ count }}", + "mailmanagerTooltip": "Người dùng này có thể quản lý những ng dùng khác và cả những hộp thư", + "makeLocalTooltip": "Người dùng địa phương" }, "settings": { "saveAction": "Lưu", @@ -247,7 +260,8 @@ "subscriptionRequired": "Chức năng này chỉ có trong gói trả phí.", "require2FACheckbox": "Yêu cầu người dùng cài đặt Mã xác minh 2 bước", "allowProfileEditCheckbox": "Cho phép người dùng chỉnh sửa tên và email", - "title": "Cài đặt" + "title": "Cài đặt", + "require2FAWarning": "Hãy cài đặt Mã xác minh 2 Bước cho tài khoản của bạn trước đề phòng bị khoá ra khỏi TK." }, "groups": { "externalLdapTooltip": "Từ thư mục LDAP ngoài", @@ -257,7 +271,7 @@ "title": "Nhóm" }, "newUserAction": "Người dùng mới", - "title": "Người dùng", + "title": "Chỉ mục Người dùng", "editGroupDialog": { "title": "Chỉnh sửa nhóm {{ name }}", "externalLdapWarning": "Nhóm này được đồng bộ từ thư mục LDAP ngoài." @@ -279,15 +293,18 @@ "title": "Xoá nhóm {{ name }}" }, "passwordResetDialog": { - "title": "Đặt lại mật khẩu/xác minh 2 Bước cho {{ username }}", - "description": "Dùng link dưới đây để đặt lại mật khẩu hoặc mời lại {{ username }}:", + "title": "Đặt lại mật khẩu cho {{ username }}", + "description": "Đường link đặt lại mật khẩu đã được gửi đến {{ email }}:", "sendEmailLinkAction": "Gửi link qua email cho người dùng", "2FAIsSetup": "Dùng tính năng này để tắt mã xác minh 2 Bước cho người dùng. Người dùng có thể tự cài lại trong mục Hồ sơ.", - "newLinkAction": "Tạo link mới", - "resetLinkExplanation": "Dùng tính năng này để tạo link cài lại mật khẩu hay link mời tham gia. Link mới sẽ vô hiệu hoá link cũ ngay tức thì.", + "newLinkAction": "Gửi mail đường link đặt lại mật khẩu", + "resetLinkExplanation": "Dùng tính năng này để gửi mail đường link đặt lại mật khẩu đến địa chỉ email dự phòng của người dùng - {{ email }}.", "no2FASetup": "Người dùng chưa cài đặt mã xác minh 2 Bước.", "reset2FAAction": "Cài lại mã xác minh 2 Bước", - "emailSent": "Đã gửi" + "emailSent": "Đã gửi", + "sendAction": "Gửi mail", + "descriptionLink": "Sao chép đường link cài lại mật khẩu", + "descriptionEmail": "Gửi đường link đặt lại mật khẩu" }, "transferOwnershipDialog": { "newOwner": "Chủ sở hữu mới", @@ -302,14 +319,82 @@ "user": "Người dùng", "usermanager": "Quản lý người dùng", "admin": "Admin", - "owner": "Siêu Admin" + "owner": "Siêu Admin", + "mailmanager": "Quản lý Người dùng & Email" + }, + "exposedLdap": { + "description": "Cloudron có thể đóng vai trò là máy chủ chỉ mục người dùng trung tâm cho những app bên ngoài.", + "enabled": "Đã bật", + "title": "Máy chủ chỉ mục", + "ipRestriction": { + "description": "Máy chủ chỉ mục có thể được giới hạn cho những địa chỉ IP hoặc khoảng vùng cụ thể.", + "placeholder": "Viết xuống dòng những địa chỉ IP hoặc Subnet", + "label": "Giới hạn quyền truy cập" + }, + "secret": { + "label": "Mã bí mật", + "description": "Tất cả những yêu cầu LDAP cần phải được xác minh với mã bí mật này và tên người dùng user DN {{ userDN }}" + } + }, + "userImportDialog": { + "success": "{{ count }} người dùng đã được nhập vào.", + "title": "Nhập Người dùng", + "fileInput": "Chọn tập tin JSON hoặc CSV", + "importAction": "Nhập vào", + "description": "Tải lên một tập tin JSON hoặc là CSV với mã schema được mô tả trong hướng dẫn sử dụng", + "usersFound": "Đã tìm thấy {{ count }} người dùng để nhập vào.", + "failed": "Những ngừoi dùng sau đây không được nhập vào:", + "sendInviteCheckbox": "Gửi mail thư mời đến những người dùng đã được nhập vào" + }, + "userExport": { + "tooltip": "Xuất người dùng", + "csv": "Xuất ra tập tin dạng CSV", + "json": "Xuất ra tập tin dạng JSON" + }, + "stateFilter": { + "inactive": "Những người dùng không hoạt động", + "all": "Tất cả Người dùng", + "active": "Những người dùng đang hoạt động" + }, + "makeLocalDialog": { + "description": "Chức năng này sẽ di chuyển người dùng từ chỉ mục ngoài vào trong Cloudron.", + "title": "Người dùng địa phương", + "warning": "Phần đặt lại mật khẩu sẽ được kích hoạt để đặt một mật khẩu địa phương cho người dùng này.", + "submitAction": "Địa phương hoá" + }, + "setGhostDialog": { + "generatePassword": "Tạo mật khẩu", + "title": "Tạo mật khẩu để nhập vai người dùng {{ username }}", + "description": "Cài đặt một mật khẩu tạm thời để đăng nhập vào thay mặt người dùng trong các app hoặc dashboard. Mật khẩu tạm thời chỉ có hiệu lực trong vòng 6 tiếng.", + "password": "Mật khẩu", + "setPassword": "Cài mật khẩu" + }, + "setGhost": { + "password": "Mật khẩu" + }, + "invitationNotification": { + "title": "Đường link mời đã được gửi", + "body": "Email đã được gửi đến {{ email }}" + }, + "userImport": { + "tooltip": "Nhập Người dùng" + }, + "invitationDialog": { + "title": "Mời {{ username }}", + "inviteLinkExplanation": "Hãy dùng phần này để tạo một đường link mới để mời người dùng. Đường link này cũng sẽ được gửi đến người dùng và sẽ đặt lại mật khẩu cho họ.", + "newLinkAction": "Mời người dùng ngay", + "description": "Đường link mời sau đây đã được gửi đến {{ email }}:", + "sendAction": "Gửi mail", + "descriptionLink": "Sao chép đường link mời", + "descriptionEmail": "Gửi link mời" } }, "profile": { "changeAvatar": { "useGravatar": "Dùng Gravatar", "title": "Đổi ảnh đại diện", - "useCustomPicture": "Dùng ảnh tự chọn" + "useCustomPicture": "Dùng ảnh tự chọn", + "noAvatar": "Chưa có ảnh đại diện" }, "language": "Ngôn ngữ", "changePassword": { @@ -324,15 +409,15 @@ "disable2FA": { "password": "Mật khẩu", "disable": "Tắt", - "title": "Tắt chế độ Xác minh hai bước" + "title": "Tắt chế độ Xác minh 2 Bước" }, "enable2FA": { "description": "Admin Cloudron của bạn yêu cầu tất cả thành viên phải bật chế độ xác minh hai bước. Bạn không thể truy cập dashboard cho đến khi bật chế độ này.", - "title": "Bật chế độ Xác minh hai bước", + "title": "Bật chế độ Xác minh 2 Bước", "token": "Mã", "authenticatorAppDescription": "Dùng Google Authenticator (Android, iOS), FreeOTP authenticator (Android, iOS) hoặc một app TOTP tương tự để quét mã.", "enable": "Bật", - "setup2FA": "Cài đặt Xác minh hai bước" + "setup2FA": "Cài đặt Xác minh 2 Bước" }, "changeDisplayName": { "errorNameInvalid": "Tên hiển thị không hợp lệ", @@ -393,10 +478,22 @@ "changeFallbackEmail": { "title": "Thay đổi email khôi phục mật khẩu", "errorEmailRequired": "Bạn cần nhập một email hợp lệ", - "errorEmailInvalid": "Email không hợp lệ" + "errorEmailInvalid": "Email không hợp lệ", + "errorPasswordRequired": "Bạn cần nhập mật khẩu", + "email": "Email khôi phục mật khẩu mới", + "password": "Mật khẩu để xác nhận", + "errorWrongPassword": "Sai mật khẩu" }, "changePasswordAction": "Đổi mật khẩu", - "title": "Hồ sơ" + "title": "Hồ sơ", + "passwordResetAction": "Tôi quên mất mật khẩu của mình rồi", + "changeBackgroundImage": { + "title": "Đặt ảnh nền" + }, + "passwordResetNotification": { + "title": "Đã đặt lại mật khẩu thành công", + "body": "Email đã được gửi đến {{ email }}" + } }, "backups": { "location": { @@ -407,7 +504,8 @@ "endpoint": "Điểm Endpoint", "location": "Nơi sao lưu", "provider": "Nhà cung cấp", - "disabledList": "Những app sau đã tắt chế độ sao lưu tự động:" + "disabledList": "Những app sau đã tắt chế độ sao lưu tự động:", + "remount": "Đặt lại nơi lưu trữ" }, "title": "Bản sao lưu", "configureBackupStorage": { @@ -445,7 +543,20 @@ "title": "Cấu hình nơi lưu trữ bản sao lưu", "mountPoint": "Điểm mount", "noopNote": "Lựa chọn này sẽ làm hỏng tính năng sao lưu và khôi phục của Cloudron và chỉ nên dùng khi test hệ thống. Xin đảm bảo rằng server được sao lưu toàn bộ bằng những phương tiện khác.", - "format": "Định dạng lưu trữ" + "format": "Định dạng lưu trữ", + "encryptedFilenames": "Mã hoá tên tập tin", + "chown": "Hệ thống tập tin bên ngoài có hỗ trợ chown", + "username": "Tên đăng nhập", + "server": "IP hoặc hostname máy chủ", + "remoteDirectory": "Thư mục bên ngoài", + "password": "Mật khẩu", + "configureMount": "Hãy chọn cấu hình điểm đặt nơi lưu trữ", + "setupMountDescription": "Khi đã kiểm tra xong, Cloudron sẽ thiết lập điểm đặt nơi lưu trữ trên máy chủ", + "port": "Cổng", + "user": "Người dùng", + "privateKey": "Mật mã riêng", + "diskPath": "Đường dẫn đến ổ đĩa", + "cifsSealSupport": "Dùng mã hoá SEAL. Cần SMB thấp nhất là phiên bản v3" }, "cleanupBackups": { "description": "Các bản sao lưu được dọn sạch tự động dựa trên thời gian lưu giữ. Thao tác này sẽ xoá ngay lập tức các bản sao lưu đang có.", @@ -485,8 +596,10 @@ "noApps": "Không có app nào cả", "version": "Phiên bản", "contents": "Nội dung", - "noBackups": "Chưa có bản sao lưu nào được tạo", - "title": "Danh sách" + "noBackups": "Chưa có bản sao lưu nào được tạo.", + "title": "Danh sách", + "tooltipPreservedBackup": "Bản sao này sẽ được giữ lại", + "tooltipEditBackup": "Chỉnh sửa Bản sao lưu" }, "schedule": { "configure": "Cấu hình", @@ -498,6 +611,14 @@ "check": { "noop": "Tính năng sao lưu Cloudron đã tắt. Hãy chắc rằng server được sao lưu bằng một biện pháp khác. Xem thông tin thêm tại https://docs.cloudron.io/backups/#storage-providers.", "sameDisk": "Các bản sao lưu Cloudron đang ở trên cùng ổ đĩa với server chạy Cloudron. Việc này sẽ nguy hiểm và có thể dẫn đến mất dữ liệu nếu ổ đĩa bị trục trặc. Xem cách sao lưu tại ổ đĩa ngoài tại https://docs.cloudron.io/backups/#storage-providers." + }, + "backupEdit": { + "preserved": { + "tooltip": "Lựa chọn này cũng sẽ giữ lại những bản sao lưu mail và {{ appsLength }} app.", + "description": "Vẫn giữ bản sao lưu mặc kệ chính sách lưu giữ được định thế nào" + }, + "title": "Chỉnh sửa Bản sao lưu", + "label": "Nhãn" } }, "login": { @@ -529,7 +650,11 @@ "errorUsernameTooLong": "Tên đăng nhập quá dài", "errorUsernameTooShort": "Tên đăng nhập quá ngắn", "description": "Xin cài đặt tài khoản của bạn", - "welcomeTo": "Chào mừng đến" + "welcomeTo": "Chào mừng đến", + "noUsername": { + "description": "Tài khoản không thể được tạo khi thiếu tên đăng nhập.", + "title": "Không thể tạo tài khoản" + } }, "email": { "enableEmailDialog": { @@ -557,7 +682,13 @@ "name": "Tên", "disabledTooltip": "Chế độ email đã tắt cho tên miền này", "addAction": "Thêm hộp thư", - "title": "Hộp thư" + "title": "Hộp thư", + "importTooltip": "Nhập hộp thư", + "exportTooltip": "Xuất hộp thư", + "mailboxExport": { + "csv": "Định dạng CSV", + "json": "Định dạng JSON" + } }, "tabTitle": "Hộp thư", "port": "Cổng", @@ -573,10 +704,17 @@ "subscriptionRequired": "Tính năng này chỉ có trong các gói trả phí. Cài đặt gói trả phí ngay bây giờ", "description": "Những mail gửi đến địa chỉ mail không tồn tại sẽ được chuyển tiếp cho những hộp thư dưới đây.", "title": "Bắt hết cả mail" - } + }, + "enabled": "Máy chủ mail Cloudron được cài đặt để nhận thư đến cho tên miền này.", + "disabled": "Máy chủ mail Cloudron sẽ không nhận thư đến cho tên miền này.", + "howToConnectDescription": "Dùng những cài đặt bên dưới để chỉnh client trao đổi mail.", + "incomingPasswordUsage": "Mật khẩu của chủ sở hữu hộp thư", + "incomingUserInfo": "Tên đăng nhập", + "incomingPasswordInfo": "Mật khẩu" }, "config": { - "title": "Cấu hình email cho {{ domain }}" + "title": "Cấu hình email cho {{ domain }}", + "clientConfiguration": "Chỉnh client trao đổi email" }, "backAction": "Trở về mục email", "outbound": { @@ -599,7 +737,8 @@ }, "mailboxboxDialog": { "groupsHeader": "Nhóm", - "usersHeader": "Người dùng" + "usersHeader": "Người dùng", + "appsHeader": "App" }, "deleteMailinglistDialog": { "deleteAction": "Xoá", @@ -687,10 +826,21 @@ "tabTitle": "Cài đặt" }, "updateMailboxDialog": { - "activeCheckbox": "Hộp thư đang hoạt động" + "activeCheckbox": "Hộp thư đang hoạt động", + "enablePop3": "Bật truy cập POP3" }, "updateMailinglistDialog": { "activeCheckbox": "Danh sách chuyển tiếp đang hoạt động" + }, + "howToConnectInfoModal": "Đang chỉnh client trao đổi mail", + "mailboxImportDialog": { + "title": "Nhập hộp thư", + "description": "Tải lên tập tin JSON hoặc CSV với định dạng schema được mô tả trong hướng dẫn sử dụng.", + "fileInput": "Chọn tập tin JSON hoặc CSV", + "mailboxesFound": "Đã tìm thấy {{ count }} hộp thư để nhập vào", + "success": "{{ count }} hộp thư đã được nhập vào.", + "failed": "Những hộp thư sau không được nhập vào:", + "importAction": "Nhập vào" } }, "network": { @@ -719,9 +869,21 @@ "interface": "Tên giao diện mạng", "provider": "Nhà cung cấp", "description": "Cloudron dùng địa chỉ IP này để cài đặt các bản ghi DNS.", - "title": "Địa chỉ IP" + "title": "Địa chỉ IP", + "address": "Địa chỉ IP" }, - "title": "Mạng" + "title": "Mạng", + "ipv4": { + "address": "Địa chỉ IPv4" + }, + "ipv6": { + "address": "Địa chỉ IPv6", + "title": "IPv6", + "description": "Cloudron dùng địa chỉ IPv6 này để chỉnh các bản ghi DNS AAAA.\n" + }, + "configureIpv6": { + "title": "Cài đặt nhà cung cấp IPv6" + } }, "emails": { "typeFilterHeader": "Tất cả sự kiện", @@ -762,13 +924,13 @@ "searchPlaceholder": "Tìm kiếm", "type": { "spamFilterTrainedInfo": "Bộ lọc spam đã được rèn giũa thêm dựa trên nội dung hộp thư", - "deniedInfo": "Kết nối từ IP {{ remote.ip }} bị từ chối. Lý do: {{ details.message || details.reason }}", - "deliveredInfo": "Đã gửi mail cho {{ rcptTo | prettyEmailAddresses }} từ {{ mailFrom | prettyEmailAddresses }}", - "receivedInfo": "Đã lưu mail từ {{ mailFrom | prettyEmailAddresses }} vào hộp thư {{ rcptTo | prettyEmailAddresses }}", - "outboundInfo": "Mail đã xếp vào hàng để gửi đến {{ rcptTo | prettyEmailAddresses }} từ {{ mailFrom | prettyEmailAddresses }}", - "inboundInfo": "Nhận mail từ {{ mailFrom | prettyEmailAddresses }} đến {{ rcptTo | prettyEmailAddresses }}. Có phải spam không: {{ details.spamStatus.indexOf('Yes,') === 0 ? 'Yes' : 'No' }}", - "deferredInfo": "Không gửi được mail cho {{ rcptTo | prettyEmailAddresses }}. {{ details.message || details.reason }}. Sẽ tự động thử lại sau {{ details.delay }} giây nữa.", - "bounceInfo": "Gửi trả về {{ mailFrom | prettyEmailAddresses }} cho email gửi đến {{ rcptTo | prettyEmailAddresses }}. Lý do: {{ details.message || details.reason }}", + "deniedInfo": "Kết nối bị từ chối", + "deliveredInfo": "Đã gửi thư", + "receivedInfo": "Đã lưu thư", + "outboundInfo": "Mail đã xếp vào hàng để được gửi đi", + "inboundInfo": "Thư đã được nhận", + "deferredInfo": "Không gửi được mail, hệ thống sẽ tự động thử lại sau {{ details.delay }} giây nữa.", + "bounceInfo": "Thư bị gửi trả về", "spamFilterTrained": "Bộ lọc spam đã được rèn giũa thêm", "bounce": "Bị trả về", "denied": "Bị từ chối", @@ -777,10 +939,13 @@ "incoming": "Nhận mail vào", "deferred": "Trì hoãn lại" }, - "empty": "Lò sự kiện hiện đang trống.", + "empty": "Log sự kiện hiện đang trống.", "details": "Chi tiết", - "time": "Thời gian", - "title": "Log sự kiện" + "time": "Vào lúc", + "title": "Log sự kiện email", + "from": "Đến từ", + "mailFrom": "Đến từ", + "rcptTo": "Gửi cho" }, "settings": { "solrFts": "Tìm kiếm dạng văn bản đầy đủ (Solr)", @@ -794,7 +959,9 @@ "spamFilter": "Lọc spam", "maxMailSize": "Kích cỡ mail tối đa", "info": "Các cài đặt này áp dụng cho tất cả các tên miền.", - "title": "Cài đặt" + "title": "Cài đặt", + "acl": "Danh sách quản lý truy cập mail", + "aclOverview": "{{ dnsblZonesCount }} vùng DNSBL" }, "domains": { "testEmailTooltip": "Gửi mail thử", @@ -805,7 +972,20 @@ "domain": "Tên miền", "title": "Tên miền" }, - "title": "Email" + "title": "Email", + "mailboxSharing": { + "description": "Khi tính năng này được bật, người dùng có thể chia sẻ thư mục IMAP của mình với những người dùng khác.", + "title": "Chia sẻ hộp thư", + "disabled": "Tính năng chia sẻ hộp thư đang tắt.", + "enableAction": "Bật", + "enabled": "Tính năng chia sẻ hộp thư đang bật." + }, + "aclDialog": { + "dnsblZones": "Vùng DNSBL", + "dnsblZonesInfo": "Địa chỉ IP đang muốn kết nối đến được dò tìm trong những danh sách IP bị chặn này", + "dnsblZonesPlaceholder": "Tên vùng (ghi xuống dòng)", + "title": "Đổi danh sách quản lý truy cập mail" + } }, "branding": { "changeLogo": { @@ -846,7 +1026,7 @@ "mountedAt": "{{ filesystem }} được gắn ở {{ mountpoint }}", "title": "Dung lượng ổ đĩa" }, - "title": "Thông tin hệ thống" + "title": "Hệ thống" }, "support": { "remoteSupport": { @@ -873,7 +1053,9 @@ "type": "Loại vấn đề", "subscriptionRequiredDescription": "Bạn có thể tìm thấy câu trả lời trong hướng dẫn sử dụng hoặc hỏi trên Diễn đàn.", "subscriptionRequired": "Phiếu hỗ trợ chỉ có trong những gói trả phí.", - "title": "Phiếu hỗ trợ" + "title": "Phiếu hỗ trợ", + "emailNotVerified": "Email tài khoản cloudron.io của bạn {{ email }} chưa được xác minh. Xin hãy xác minh mail trước để tạo phiếu hỗ trợ.", + "emailVerifyAction": "Xác minh ngay" }, "title": "Hỗ trợ" }, @@ -939,14 +1121,15 @@ "appstoreAccount": { "subscriptionReactivateAction": "Kích hoạt lại gói đăng ký", "subscriptionChangeAction": "Thay đổi gói đăng ký", - "subscriptionSetupAction": "Cài đặt gói đăng ký", + "subscriptionSetupAction": "Nâng cấp Gói Cao cấp", "subscriptionEndsAt": "Đã huỷ đăng ký và kết thúc vào", "cloudronId": "Mã Cloudron ID", "subscription": "Gói đăng ký", "email": "Email tài khoản", "setupAction": "Cài đặt tài khoản", "description": "Tài khoản Cloudron.io được dùng để truy cập Cửa hàng App và quản lý gói đăng ký.", - "title": "Tài khoản Cloudron.io" + "title": "Tài khoản Cloudron.io", + "emailNotVerified": "Địa chỉ email chưa được xác minh" }, "title": "Cài đặt" }, @@ -957,7 +1140,9 @@ "requireAdminRoleLabel": "Cần là admin mới truy cập được vào SFTP", "accessControl": "Quản lý quyền truy cập", "memoryLimitDescription": "Cloudron dành 50% giá trị này cho RAM và 50% còn lại cho swap.", - "title": "Cấu hình {{ name }}" + "title": "Cấu hình {{ name }}", + "recoveryModeDescription": "Nếu những dịch vụ đang chạy liên tục bị khởi động lại hoặc không có tín hiệu phản hồi vì gián đoạn thông tin, hãy cho dịch vụ vào chế độ phục hồi. Hãy dùng những hướng dẫn sau đây để khởi chạy dịch vụ lại lần nữa.", + "enableRecoveryMode": "Bật chế độ phục hồi" }, "restartActionTooltip": "Khởi động lại", "configureActionTooltip": "Cấu hình", @@ -1090,7 +1275,8 @@ "clearAll": "Xoá hết", "dismissTooltip": "Xoá", "nonePending": "Đã xem tất cả!", - "title": "Thông báo" + "title": "Thông báo", + "markAllAsRead": "Đánh dấu đã xem qua tất cả" }, "domains": { "removeDialog": { @@ -1137,7 +1323,11 @@ "domain": "Tên miền", "addDescription": "Thêm tên miền cho phép bạn cài đặt app trên những tên miền con. Cài đặt mail cho tên miền có thể được tuỳ chỉnh trên mục Email.", "editTitle": "Cấu hình {{ domain }}", - "addTitle": "Thêm tên miền" + "addTitle": "Thêm tên miền", + "wellKnownDescription": "Những giá trị nhập vào này sẽ được dùng bởi Cloudron để phản hồi về những đường link /.well-known/. Lưu ý rằng một app cần được đang chạy cài đặt sẵn trên tên miền gốc {{ domain }} để tính năng này có thể hoạt động được. Xem phần hướng dẫn sử dụng để biết thêm thông tin.", + "vultrToken": "Mật mã Vultr", + "jitsiHostname": "Vị trí Jitsi", + "hetznerToken": "Mật mã Hetzner" }, "subscriptionRequired": { "description": "Để thêm tên miền, hãy đăng ký gói trả phí.", @@ -1148,7 +1338,7 @@ "showLogsAction": "Hiển thị log", "cancelAction": "Hủy", "changeAction": "Thay đổi tên miền", - "description": "Lựa chọn này sẽ chuyển dashboard và mail server sang tên miền con my của tên miền được chọn.", + "description": "Lựa chọn này sẽ chuyển dashboard và mail server sang tên miền con my của tên miền chính được chọn.", "title": "Thay đổi tên miền dashboard" }, "renewCerts": { @@ -1168,7 +1358,11 @@ "description": "Lựa chọn này sẽ cấp lại các bản ghi DNS cho app và email cho tất cả tên miền.", "syncAction": "Đồng bộ DNS", "showLogsAction": "Hiển thị log" - } + }, + "domainWellKnown": { + "title": "Những vị trí Well-Known của {{ domain }}" + }, + "tooltipWellKnown": "Cài đặt những vị trí Well-Known" }, "app": { "appInfo": { @@ -1184,15 +1378,15 @@ }, "uninstall": { "uninstall": { - "uninstallAction": "Gỡ cài đặt", + "uninstallAction": "Xoá", "backupWarning": "Các bản sao lưu app sẽ không được xoá ngay mà sẽ dựa vào lịch trình sao lưu được định sẵn. Bạn có thể hồi sinh app từ một bản sao lưu hiện có bằng những hướng dẫn sau đây.", "description": "Lựa chọn này sẽ gỡ cài đặt app ngay lập tức và xoá hết tất cả những dữ liệu liên quan. Trang web sẽ không còn truy cập được sau đó.", - "title": "Gỡ cài đặt" + "title": "Xoá" }, "startStop": { "stopAction": "Dừng app", "startAction": "Chạy app", - "description": "App có thể được dừng chạy để bảo tồn tài nguyên server thay vì gỡ cài đặt. Những bản sao lưu tương lai sẽ không bao gồm những thay đổi từ thời điểm này đến bản sao lưu kề cận nhất. Vì lý do này, bạn nên tạo một bản sao lưu trước khi cho dừng app.", + "description": "App có thể được dừng chạy để bảo tồn tài nguyên server thay vì xoá app. Những bản sao lưu tương lai sẽ không bao gồm những thay đổi từ thời điểm này đến bản sao lưu kề cận nhất. Vì lý do này, bạn nên tạo một bản sao lưu trước khi cho dừng app.", "title": "Chạy / Dừng" } }, @@ -1252,7 +1446,7 @@ "lastUpdated": "Lần cuối cập nhật", "packageVersion": "Phiên bản đóng gói", "appId": "ID của app", - "description": "Tựa đề app và phiên bản", + "description": "Tên app và phiên bản", "title": "Thông tin app" } }, @@ -1279,9 +1473,17 @@ "title": "Địa chỉ mail GỬI TỪ (FROM)", "enable": "Dùng Mail Cloudron để gửi mail", "description2": "Khi bật, app sẽ được cấu hình để gửi mail qua mail server nội bộ bằng địa chỉ email này. Mail server nội bộ sẽ dùng phần cài đặt Mail gửi ra của {{ domain }} để gửi mail. Khi tắt, bạn có thể tuỳ chỉnh cài đặt mail trong app.", - "disable": "Không cài đặt mail", + "disable": "Không chỉnh nhận mail cho app này", "enableDescription": "App được cấu hình để gửi mail bằng địa chỉ email sau và theo cài đặt phần Mail gửi ra của {{ domain }}.", - "disableDescription": "Các cài đặt email của app chưa được chỉnh. Bạn có thể tuỳ chỉnh trong app." + "disableDescription": "Các cài đặt email của app chưa được chỉnh. Bạn có thể tuỳ chỉnh trong app.", + "displayName": "Tên người gửi" + }, + "inbox": { + "disable": "Không chỉnh hộp thư", + "disableDescription": "Cài đặt nhận mail đến của app đang được để trống. Bạn có thể tuỳ chỉnh nó trong app. Hãy chọn phần này nếu email của tên miền không được cài đặt trên Cloudron.", + "title": "Mail đến", + "enable": "Dùng mail Cloudron để nhận mail", + "enableDescription": "App được chỉnh để nhận thư bằng địa chỉ email bên dưới. Hãy chọn phần này nếu email của {{ domain }} đang được chạy trên máy chủ này." } }, "graphs": { @@ -1306,8 +1508,8 @@ "appdata": { "moveAction": "Chuyển dữ liệu", "dataDirPlaceholder": "Để trống để dùng giá trị mặc định của hệ thống", - "description": "Theo mặc định, dữ liệu của app được chứa ở {{ storagePath }}. Nếu server sắp dùng hết dung lượng ổ đĩa, bạn có thể gắn thêm một ổ đĩa EXT4 ngoài và chuyển dữ liệu app qua.", - "title": "Dữ liệu app" + "description": "Nếu hệ thống đang chạy sắp hết dung lượng ổ đĩa, hãy dùng chức năng này để dời những dữ liệu của app sang qua volume. Bất cứ dữ liệu nào trong đây đều được sao lưu như một phần trong tổng thể app.", + "title": "Thư mục Dữ liệu" } }, "resources": { @@ -1335,9 +1537,13 @@ "visibleForAllUsers": "Hiển thị với tất cả người dùng trên Cloudron", "sftpAccessControl": "Cài đặt này cũng quản lý truy cập SFTP.", "dashboardVisibility": "Chế độ hiển thị dashboard", - "descriptionSftp": "Cũng để quản lý truy cập SFTP.", - "description": "App này được cấu hình để xác minh người dùng bằng thư mục người dùng trên Cloudron.", + "descriptionSftp": "Cài đặt này cũng quản lý quyền truy cập SFTP.", + "description": "App này được cấu hình để xác minh người dùng bằng thư mục người dùng trên Cloudron. Cài đặt này quản lý việc ai có thể đăng nhập vào và sử dụng app.", "title": "Quản lý người dùng" + }, + "operators": { + "title": "Điều hành viên", + "description": "Điều hành viên có thể chỉnh và bảo trì app này." } }, "location": { @@ -1362,7 +1568,7 @@ "tags": "Tag", "label": "Nhãn" }, - "uninstallTabTitle": "Gỡ cài đặt", + "uninstallTabTitle": "Xoá", "repairTabTitle": "Sửa chữa", "backupsTabTitle": "Bản sao lưu", "updatesTabTitle": "Cập nhật", @@ -1392,10 +1598,11 @@ "states": { "notResponding": "Không có phản hồi", "stopped": "Đã dừng", - "running": "Đang chạy" + "running": "Đang chạy", + "updateAvailable": "Có phiên bản cập nhật mới" }, "cloneDialog": { - "cloneAction": "Nhân bản", + "cloneAction": "Nhân bản {{ dnsOverwrite ? 'and overwrite DNS' : '' }}", "location": "Nơi cài đặt", "description": "Sử dụng bản sao lưu từ {{ creationTime }} và phiên bản v{{ packageVersion }}", "title": "Nhân bản {{ app }}" @@ -1431,18 +1638,39 @@ "title": "Sửa chữa {{ app }}" }, "uninstallDialog": { - "uninstallAction": "Gỡ cài đặt", - "description": "Lựa chọn này sẽ ngay lập tức gỡ app {{ app }} và xoá toàn bộ dữ liệu trong đó.", - "title": "Gỡ cài đặt {{ app }}" + "uninstallAction": "Xoá", + "description": "Lựa chọn này sẽ ngay lập tức xoá app {{ app }} và xoá toàn bộ dữ liệu trong đó.", + "title": "Xoá {{ app }}" }, "stopDialog": { "title": "Chắc chắn dừng app {{ app }}?" - } + }, + "cron": { + "commonPattern": { + "twicePerHour": "Hai lần một giờ", + "everyMinute": "Mỗi Phút", + "everyHour": "Mỗi Tiếng", + "everyDay": "Mỗi ngày", + "twicePerDay": "Hai lần một ngày", + "everySunday": "Mỗi Chủ Nhật", + "daily": "Hằng ngày", + "hourly": "Mỗi tiếng", + "service": "Dịch vụ (chạy 1 lần)" + }, + "description": "Những tác vụ lặp lại cron cụ thể theo app có thể được thêm vào tại đây. Hãy lưu ý rằng những tác vụ cron cần thiết cho app chạy đã được liên kết sẵn với phần đóng gói app và không cần chỉnh ở đây.", + "title": "Bảng chạy cron", + "saveAction": "Lưu", + "addCommonPattern": "Thêm bản mẫu thông dụng" + }, + "eventlogTabTitle": "Log sự kiện", + "sftpInfoAction": "Quyền truy cập SFPT", + "cronTabTitle": "Tác vụ lặp lai cron", + "forumUrlAction": "Cần trợ giúp? Hãy hỏi thử trên diễn đàn nhé" }, "volumes": { "name": "Tên volume", "title": "Volume", - "description": "Volume là những thư mục trên server có thể được chia sẻ cho các app. Volume có thể là mount NFS/SSHFS hay những ổ đĩa lưu trữ ngoài gắn thêm vào server.", + "description": "Volume là những hệ thống tập tin trên máy hoặc bên ngoài. Volume có thể được dùng như một nơi lưu trữ chính cho dữ liệu hay là một vị trí lưu trữ được chia sẻ chung ra giữa các app.", "removeVolumeDialog": { "removeAction": "Xoá", "description": "Lựa chọn này sẽ xoá volume {{ volume }}. Dữ liệu trong đường dẫn host sẽ không được xoá.", @@ -1450,12 +1678,31 @@ }, "addVolumeDialog": { "addAction": "Thêm volume", - "title": "Thêm volume" + "title": "Thêm volume", + "server": "IP hoặc hostname máy chủ", + "remoteDirectory": "Thư mục bên ngoài", + "password": "Mật khẩu", + "diskPath": "Đường dẫn đến ổ đĩa", + "mountTypeInfo": "Cloudron sẽ chỉnh hệ thống để tự động mount lên volume này", + "port": "Cổng", + "user": "Người dùng", + "privateKey": "Mã SSH riêng", + "mountpointWarning": "Cloudron sẽ không chỉnh hệ thống để tự động mount lên volume này", + "username": "Tên đăng nhập" }, "removeVolumeActionTooltip": "Xoá volume", "openFileManagerActionTooltip": "Mở Quản lý tập tin", - "hostPath": "Đường dẫn host", - "addVolumeAction": "Thêm volume" + "hostPath": "Đường dẫn mount", + "addVolumeAction": "Thêm volume", + "updateVolumeDialog": { + "title": "Cập nhật Volume {{ volume }}" + }, + "mountStatus": "Trạng thái mount", + "type": "Dạng", + "tooltipEdit": "Chỉnh sửa Volume", + "localDirectory": "Thư mục trên máy", + "remountActionTooltip": "Mount Volume lại", + "mountType": "Dạng mount" }, "welcomeEmail": { "inviteLinkAction": "Bắt đầu tạo tải khoản", @@ -1476,7 +1723,8 @@ "fr": "Tiếng Pháp", "de": "Tiếng Đức", "en": "Tiếng Anh", - "es": "Tiếng Tây Ban Nha" + "es": "Tiếng Tây Ban Nha", + "ru": "Tiếng Nga" }, "passwordResetEmail": { "subject": "[<%= cloudron %>] Đặt lại mật khẩu", @@ -1508,5 +1756,20 @@ "resetAction": "Đặt lại", "usernameOrEmail": "Tên đăng nhập hoặc email", "title": "Đặt lại mật khẩu" + }, + "newLoginEmail": { + "topic": "Chúng tôi nhận thấy có một đăng nhập mới vào tài khoản Cloudron của bạn.", + "salutation": "Xin chào <%= user %>,", + "subject": "[<%= cloudron %>] Có đăng nhập mới vào tài khoản của bạn", + "notice": "Chhungs tôi nhận thấy một đăng nhập trên tài khoản Cloudron của bạn từ một thiết bị mới.", + "action": "Nếu người đó là bạn, bạn có thể thoải mái bỏ qua email này. Nếu đó không phải là bạn, bạn nên đổi mật khẩu của bạn ngay bây giờ." + }, + "supportConfig": { + "emailNotVerified": "Xin hãy xác minh địa chỉ email của tài khoản cloudron.io của bạn trước tiên để chắc rằng chúng tôi có thể liên lạc với bạn." + }, + "storage": { + "mounts": { + "description": "Các app có thể truy cập vào những volume được mount lên thông qua thư mục /media/{volume name}. Dữ liệu này không được bao gồm trong phần bản sao lưu của app." + } } }