translations and version bump (#5878)

This commit is contained in:
Anthony Stirling
2026-03-06 11:09:18 +00:00
committed by GitHub
parent 7c1eb4183b
commit 456106195e
41 changed files with 24601 additions and 1121 deletions
+615 -28
View File
@@ -96,6 +96,8 @@ pin = "Ghim tệp (giữ hoạt động sau khi chạy công cụ)"
poweredBy = "Được hỗ trợ bởi"
pro = "Pro"
processTimeWarning = "Cảnh báo: Quá trình này có thể mất đến một phút tùy thuộc vào kích thước tệp"
processingComplete = "Tệp của bạn đã sẵn sàng."
processingCompleteMultiple = "{{count}} tệp đã sẵn sàng."
property = "Thuộc tính"
quickPosition = "Vị trí nhanh"
red = "Đỏ"
@@ -105,6 +107,7 @@ save = "Lưu"
saveToBrowser = "Lưu vào trình duyệt"
saveUnavailable = "Không thể lưu mục này"
seeDockerHub = "Xem Docker Hub"
editSecret = "Chỉnh sửa giá trị này"
selectFillter = "-- Chọn --"
size = "Kích thước"
sponsor = "Nhà tài trợ"
@@ -651,6 +654,7 @@ description = "Cấu hình nhà cung cấp xác thực bên ngoài như OAuth2 v
disconnect = "Ngắt kết nối"
disconnected = "Ngắt kết nối nhà cung cấp thành công"
disconnectError = "Không thể ngắt kết nối nhà cung cấp"
documentation = "Xem tài liệu"
imageResolutionFull = "Đầy đủ (Kích thước gốc)"
imageResolutionReduced = "Giảm (Tối đa 1200px)"
linkedServices = "Dịch vụ đã liên kết"
@@ -964,6 +968,18 @@ label = "Ngôn ngữ mặc định"
description = "Kích thước tải lên tối đa (ví dụ: 100MB, 1GB)"
label = "Giới hạn tải lên tệp"
[admin.settings.general.hideDisabledTools]
description = "Ẩn các công cụ bị vô hiệu hóa khỏi giao diện"
label = "Ẩn công cụ bị vô hiệu hóa"
[admin.settings.general.hideDisabledTools.googleDrive]
description = "Ẩn nút Google Drive khi chưa bật"
label = "Ẩn Google Drive"
[admin.settings.general.hideDisabledTools.mobileScanner]
description = "Ẩn nút quét QR trên di động khi chưa bật"
label = "Ẩn Trình quét di động"
[admin.settings.general.frontendUrl]
description = "URL gốc cho frontend (vd., https://pdf.example.com). Dùng cho liên kết mời qua email và tải lên bằng mã QR trên di động. Để trống để dùng URL backend."
label = "URL Frontend"
@@ -1148,6 +1164,8 @@ title = "Bảo mật"
[admin.settings.security.audit]
label = "Ghi nhật ký kiểm toán"
showDetails = "Hiển thị chi tiết mức kiểm toán"
hideDetails = "Ẩn chi tiết mức kiểm toán"
[admin.settings.security.audit.enabled]
description = "Theo dõi hành động người dùng và sự kiện hệ thống cho mục đích tuân thủ và giám sát bảo mật"
@@ -1157,10 +1175,32 @@ label = "Bật ghi nhật ký kiểm toán"
description = "0=TẮT, 1=CƠ BẢN, 2=TIÊU CHUẨN, 3=CHI TIẾT"
label = "Mức kiểm toán"
[admin.settings.security.audit.levelDetails]
off = "Không ghi nhật ký kiểm toán (trừ các sự kiện bảo mật quan trọng)"
basic = "Thao tác tệp PDF (nén, tách, gộp, v.v.) và thay đổi cài đặt. Ghi nhận: trạng thái thao tác (thành công/thất bại), tham số phương thức, thời gian. Lượng log tối thiểu."
standard = "Sự kiện BASIC cộng thêm: đăng nhập/đăng xuất người dùng, thay đổi tài khoản, yêu cầu GET chung. Loại trừ các cuộc gọi thăm dò liên tục (/auth/me, /app-config, /health, v.v.) để giảm nhiễu log. Phù hợp cho hầu hết triển khai."
verbose = "Sự kiện STANDARD cộng thêm: các cuộc gọi thăm dò liên tục, tất cả yêu cầu GET, chi tiết thời gian. Cảnh báo: lượng log lớn và ảnh hưởng hiệu năng."
[admin.settings.security.audit.retentionDays]
description = "Số ngày lưu trữ nhật ký kiểm toán"
label = "Giữ nhật ký (ngày)"
[admin.settings.security.audit.advancedOptions]
title = "Tùy chọn nâng cao"
description = "Các tùy chọn sau sẽ tăng thời gian xử lý và sử dụng bộ nhớ. Chỉ bật khi thực sự cần thiết."
[admin.settings.security.audit.captureFileHash]
description = "Trích xuất mã băm SHA-256 của các tệp PDF tải lên để xác minh tính toàn vẹn. Độc lập với mức kiểm toán."
label = "Ghi nhận mã băm tệp (SHA-256)"
[admin.settings.security.audit.capturePdfAuthor]
description = "Trích xuất trường tác giả từ tài liệu PDF trong quá trình xử lý. Yêu cầu phân tích PDF, tăng độ trễ. Độc lập với mức kiểm toán."
label = "Ghi nhận metadata Tác giả PDF"
[admin.settings.security.audit.captureOperationResults]
description = "Ghi nhận giá trị trả về của phương thức. Không khuyến nghị: làm tăng đáng kể lượng log và dung lượng đĩa."
label = "Ghi nhận kết quả thao tác"
[admin.settings.security.csrfDisabled]
description = "Tắt bảo vệ Cross-Site Request Forgery (không khuyến nghị)"
label = "Tắt bảo vệ CSRF"
@@ -1536,72 +1576,152 @@ tags = "embed,attach,file,attachment,attachments"
title = "Add attachments"
[audit]
configureAudit = "Cấu hình ghi nhật ký kiểm toán"
configureAuditMessage = "Điều chỉnh mức ghi nhật ký kiểm toán, thời gian lưu trữ và các cài đặt khác trong phần Bảo mật & Xác thực."
disabled = "Ghi nhật ký kiểm toán đã bị tắt"
disabledMessage = "Bật ghi nhật ký kiểm toán trong cấu hình ứng dụng để theo dõi các sự kiện hệ thống."
enterpriseRequired = "Yêu cầu giấy phép Enterprise"
enterpriseRequiredMessage = "Hệ thống ghi nhật ký kiểm toán là tính năng Enterprise. Vui lòng nâng cấp lên giấy phép Enterprise để truy cập nhật ký và phân tích."
goToSettings = "Đi tới cài đặt kiểm toán"
notAvailable = "Hệ thống kiểm toán không khả dụng"
notAvailableMessage = "Hệ thống kiểm toán chưa được cấu hình hoặc không khả dụng."
[audit.charts]
byType = "Sự kiện theo loại"
byUser = "Sự kiện theo người dùng"
day = "Ngày"
error = "Lỗi khi tải biểu đồ"
month = "Tháng"
overTime = "Sự kiện theo thời gian"
title = "Bảng điều khiển kiểm toán"
week = "Tuần"
[audit.error]
title = "Lỗi khi tải hệ thống kiểm toán"
[audit.events]
actions = "Hành động"
clearFilters = "Xóa"
details = "Chi tiết"
endDate = "Ngày kết thúc"
error = "Lỗi khi tải sự kiện"
eventDetails = "Chi tiết sự kiện"
filterByType = "Lọc theo loại"
filterByUser = "Lọc theo người dùng"
ipAddress = "Địa chỉ IP"
noEvents = "Không tìm thấy sự kiện"
startDate = "Ngày bắt đầu"
timestamp = "Dấu thời gian"
title = "Sự kiện kiểm toán"
type = "Loại"
user = "Người dùng"
viewDetails = "Xem chi tiết"
[audit.export]
clearFilters = "Xóa"
description = "Xuất sự kiện kiểm toán sang định dạng CSV hoặc JSON. Dùng bộ lọc để giới hạn dữ liệu xuất."
endDate = "Ngày kết thúc"
error = "Không thể xuất dữ liệu"
exportButton = "Xuất dữ liệu"
fieldAuthor = "Tác giả (từ PDF)"
fieldDate = "Ngày"
fieldDocumentName = "Tên tài liệu"
fieldFileHash = "Mã băm tệp (SHA-256)"
fieldIpAddress = "Địa chỉ IP"
fieldOperationResults = "Kết quả thao tác"
fieldOutcome = "Kết quả (Thành công/Thất bại)"
fieldTool = "Công cụ"
fieldUsername = "Tên người dùng"
filterByType = "Lọc theo loại"
filterByUser = "Lọc theo người dùng"
filters = "Bộ lọc (Tùy chọn)"
format = "Định dạng xuất"
selectFields = "Chọn trường để bao gồm"
startDate = "Ngày bắt đầu"
title = "Xuất dữ liệu kiểm toán"
verboseRequired = "Yêu cầu mức kiểm toán VERBOSE"
[audit.systemStatus]
autoRefresh = "Tự động làm mới"
autoRefreshLabel = "Tự động làm mới mỗi 30 giây"
captureBySettings = "Bật trong cài đặt"
capturedFields = "Trường đã ghi nhận"
date = "Ngày"
days = "ngày"
disabled = "Đã tắt"
documentName = "Tên tài liệu"
enabled = "Đã bật"
fileHash = "Mã băm tệp"
level = "Mức kiểm toán"
pdfAuthor = "Tác giả PDF"
retention = "Thời gian lưu trữ"
status = "Ghi nhật ký kiểm toán"
title = "Trạng thái hệ thống"
tool = "Công cụ"
totalEvents = "Tổng số sự kiện"
username = "Tên người dùng"
verboseOnly = "Chỉ VERBOSE"
[audit.stats]
activeUsers = "Người dùng hoạt động"
attention = "Cần chú ý"
avgLatency = "Độ trễ trung bình"
error = "Lỗi tải thống kê"
errorLoadingStats = "Không tải được thống kê"
excellent = "Xuất sắc"
good = "Tốt"
noData = "N/A"
successRate = "Tỷ lệ thành công"
title = "Tổng quan"
totalEvents = "Tổng số sự kiện"
vsLastPeriod = "so với kỳ trước"
[audit.charts]
byTool = "Công cụ được dùng nhiều nhất"
byType = "Sự kiện theo loại"
byUser = "Sự kiện theo người dùng"
day = "Ngày"
error = "Lỗi khi tải biểu đồ"
hourlyActivity = "Hoạt động theo giờ"
month = "Tháng"
noData = "Không có dữ liệu cho giai đoạn này"
overTime = "Sự kiện theo thời gian"
title = "Bảng điều khiển kiểm toán"
week = "Tuần"
[audit.events]
actions = "Hành động"
author = "Tác giả"
clearFilters = "Xóa"
details = "Chi tiết"
documentName = "Tài liệu"
endDate = "Ngày kết thúc"
error = "Lỗi khi tải sự kiện"
eventDetails = "Chi tiết sự kiện"
failure = "Thất bại"
fileHash = "Mã băm tệp"
filterByType = "Lọc theo loại"
filterByUser = "Lọc theo người dùng"
ipAddress = "Địa chỉ IP"
noEvents = "Không tìm thấy sự kiện"
outcome = "Trạng thái"
sortAsc = "Sắp xếp tăng dần"
sortDesc = "Sắp xếp giảm dần"
startDate = "Ngày bắt đầu"
success = "Thành công"
timestamp = "Dấu thời gian"
title = "Sự kiện kiểm toán"
type = "Loại"
user = "Người dùng"
viewDetails = "Xem chi tiết"
[audit.filters]
allOutcomes = "Tất cả"
failureOnly = "Chỉ thất bại"
last7Days = "7 ngày qua"
last30Days = "30 ngày qua"
outcomeFilter = "Kết quả"
quickPresets = "Bộ lọc nhanh"
successOnly = "Chỉ thành công"
thisMonth = "Tháng này"
today = "Hôm nay"
[audit.tabs]
clearData = "Xóa dữ liệu"
dashboard = "Bảng điều khiển"
events = "Sự kiện kiểm toán"
export = "Xuất"
[audit.clearData]
cancel = "Hủy"
codeDoesNotMatch = "Mã không khớp"
codePlaceholder = "Nhập mã tại đây"
confirmationCode = "Mã xác nhận"
confirmationRequired = "Xóa toàn bộ dữ liệu kiểm toán"
confirmMessage = "Thao tác này sẽ xóa vĩnh viễn tất cả nhật ký kiểm toán. Nhập mã xác nhận bên dưới để tiếp tục."
confirmTitle = "Vui lòng xác nhận bạn muốn xóa"
deleteButton = "Xóa"
enterCode = "Mã xác nhận"
enterCodeBelow = "Nhập mã chính xác như hiển thị ở trên (phân biệt chữ hoa/thường)"
initiateDelete = "Xóa toàn bộ dữ liệu"
irreversible = "KHÔNG THỂ HOÀN TÁC"
success = "Thành công"
successMessage = "Đã xóa thành công toàn bộ dữ liệu kiểm toán"
warning1 = "Hành động này không thể hoàn tác"
warning2 = "Xóa dữ liệu kiểm toán sẽ loại bỏ vĩnh viễn tất cả nhật ký kiểm toán lịch sử, bao gồm sự kiện bảo mật, hoạt động người dùng và thao tác tệp khỏi cơ sở dữ liệu."
[auth]
accessDenied = "Từ chối truy cập"
insufficientPermissions = "Bạn không có quyền thực hiện thao tác này."
@@ -2254,9 +2374,11 @@ copy = "Sao chép"
done = "Xong"
error = "Lỗi"
expand = "Mở rộng"
learnMore = "Tìm hiểu thêm"
lines = "dòng"
loading = "Đang tải..."
next = "Tiếp"
operation = "thao tác này"
preview = "Xem trước"
previous = "Trước"
refresh = "Làm mới"
@@ -2920,6 +3042,7 @@ copyStack = "Sao chép Stack Trace"
discordSubmit = "Discord - Gửi bài đăng hỗ trợ"
dismissAllErrors = "Bỏ qua tất cả lỗi"
encryptedPdfMustRemovePassword = "PDF này đã được mã hóa hoặc bảo vệ bằng mật khẩu. Vui lòng mở khóa trước khi chuyển đổi sang PDF/A."
generic = "Đã xảy ra lỗi"
github = "Gửi ticket trên GitHub"
githubSubmit = "GitHub - Gửi ticket"
incorrectPasswordProvided = "Mật khẩu PDF không đúng hoặc chưa được cung cấp."
@@ -4456,6 +4579,10 @@ upgradeCompleteMessage = "Gói đăng ký của bạn đã nâng cấp thành c
upgradeSuccess = "Thanh toán thành công! Gói của bạn đã được nâng cấp. Giấy phép trên server đã được cập nhật. Bạn sẽ sớm nhận email xác nhận."
upgradeTitle = "Nâng cấp lên {{planName}}"
yearly = "Theo năm"
checkoutOpened = "Trang thanh toán đã mở trong trình duyệt"
checkoutInstructions = "Hoàn tất mua hàng trong cửa sổ trình duyệt vừa mở. Sau khi thanh toán xong, quay lại đây và nhấp nút bên dưới để làm mới thông tin thanh toán của bạn."
refreshBilling = "Tôi đã hoàn tất thanh toán - Làm mới thông tin thanh toán"
closeLater = "Để sau"
[payment.emailStage]
continue = "Tiếp tục"
@@ -4679,6 +4806,13 @@ prompt = "Chọn trang để trích xuất bảng"
submit = "Trích xuất"
title = "PDF sang CSV"
[PDFToXLSX]
header = "PDF sang Excel"
prompt = "Chọn trang để trích xuất bảng"
submit = "Chuyển đổi"
title = "PDF sang Excel (XLSX)"
tags = "bảng tính,excel,xlsx,bảng,trích xuất,chuyển đổi"
[PDFToHTML]
credit = "Dịch vụ này sử dụng pdftohtml để chuyển đổi tệp."
header = "PDF sang HTML"
@@ -4835,6 +4969,7 @@ customPricing = "Tùy chỉnh"
featureComparison = "So sánh tính năng"
from = "Từ"
hideComparison = "Ẩn so sánh tính năng"
included = "Đã bao gồm"
includedInCurrent = "Bao gồm trong gói của bạn"
licensedSeats = "Đã cấp phép: {{count}} ghế"
manage = "Quản lý"
@@ -4852,9 +4987,11 @@ title = "Gói đang hoạt động"
[plan.availablePlans]
subtitle = "Chọn gói phù hợp với nhu cầu của bạn"
loadError = "Không thể tải giá gói. Sử dụng giá trị mặc định."
title = "Các gói khả dụng"
[plan.enterprise]
siteLicense = "Giấy phép theo site"
highlight1 = "Giá tùy chỉnh"
highlight2 = "Hỗ trợ chuyên trách"
highlight3 = "Tính năng mới nhất"
@@ -4928,6 +5065,81 @@ keyDescription = "Dán khóa giấy phép từ email của bạn"
success = "Đã kích hoạt giấy phép!"
successMessage = "Giấy phép của bạn đã được kích hoạt thành công. Bạn có thể đóng cửa sổ này."
[plan.team]
name = "Team"
siteLicense = "Giấy phép theo site"
[credits]
enableOverageBilling = "Bật tính phí vượt mức"
maybeLater = "Để sau"
upgrade = "Nâng cấp"
[credits.modal]
advancedMonitoring = "Giám sát nâng cao"
allInOneWorkspace = "Không gian làm việc PDF tất cả trong một (viewer, tools & agent)"
apiSandbox = "API sandbox"
contactSales = "Liên hệ bộ phận kinh doanh"
creditsRemaining = "Còn lại {{current}} trên {{total}}"
creditsThisMonth = "Tín dụng hàng tháng"
current = "Gói hiện tại"
customPricing = "Tùy chỉnh"
customSmartFolders = "Thư mục thông minh tùy chỉnh"
dedicatedSupportSlas = "Hỗ trợ riêng & SLA"
enterpriseSubscription = "Enterprise"
everythingInCredits = "Bao gồm mọi thứ trong Credits, cộng thêm:"
everythingInFree = "Bao gồm mọi thứ trong Free, cộng thêm:"
fasterThroughput = "Tốc độ xử lý nhanh gấp 10 lần"
forRegularWork = "Dành cho công việc PDF thường xuyên:"
freeTier = "Bậc Free"
fullyPrivateFiles = "Tệp hoàn toàn riêng tư"
largeFileProcessing = "Xử lý tệp lớn"
managedMemberMessage = "Bạn có quyền truy cập tín dụng không giới hạn thông qua nhóm của mình. Nếu cần hỗ trợ, vui lòng liên hệ trưởng nhóm."
managedMemberTitle = "Tín dụng không giới hạn"
meteringBillingNote = "Tín dụng vượt mức sẽ được tính phí hàng tháng cùng với gói Team của bạn. Theo dõi mức sử dụng bất cứ lúc nào trong cài đặt tài khoản."
meteringExplanation = "Gói Team của bạn bao gồm {{credits}} tín dụng mỗi tháng. Khi dùng hết, tính phí vượt mức sẽ tự động cung cấp thêm tín dụng để bạn không bao giờ phải dừng công việc."
meteringIncluded = "Bao gồm {{credits}} tín dụng/tháng với Team"
meteringNoCommitment = "Không cam kết, có thể hủy bất cứ lúc nào"
meteringNeverRunOut = "Không bao giờ hết tín dụng"
meteringPayAsYouGo = "Chỉ trả cho phần bạn dùng"
meteringPrice = "Tín dụng bổ sung với giá {{price}}/tín dụng"
meteringTitle = "Tính phí vượt mức theo mức sử dụng"
monthlyCredits = "tín dụng hàng tháng"
orgWideAccess = "Kiểm soát truy cập toàn tổ chức"
overage = "vượt mức"
perMonth = "/tháng"
popular = "Phổ biến"
premiumAiModels = "Mô hình AI cao cấp"
prioritySupport = "Hỗ trợ ưu tiên"
privateDocCloud = "Đám mây tài liệu riêng tư"
ragFineTuning = "RAG + fine-tuning"
secureApiAccess = "Truy cập API an toàn"
selfHostLink = "Xem tài liệu và các gói"
selfHostPrompt = "Muốn tự triển khai?"
standardThroughput = "Tốc độ xử lý tiêu chuẩn"
subtitle = "Nâng cấp lên Team để có lượng tín dụng gấp 10 lần và xử lý nhanh hơn."
subtitlePro = "Bật tính phí vượt mức tự động để không bao giờ hết tín dụng."
teamLeaderOnly = "Chỉ trưởng nhóm mới có thể bật tính phí vượt mức"
teamSubscription = "Team"
titleExhausted = "Bạn đã dùng hết tín dụng miễn phí"
titleExhaustedPro = "Bạn đã hết tín dụng"
unlimitedApiAccess = "Truy cập API không giới hạn"
unlimitedMonthlyCredits = "Giấy phép theo site"
unlimitedSeats = "Số ghế không giới hạn"
[credits.modal.features]
everythingInCredits = "Bao gồm mọi thứ trong Credits, cộng thêm:"
everythingInFree = "Bao gồm mọi thứ trong Free, cộng thêm:"
forRegularWork = "Dành cho công việc PDF thường xuyên:"
[credits.insufficient]
brief = "Tín dụng không đủ. Bạn cần {{required}} tín dụng nhưng chỉ có {{current}}."
freeTier = "Nâng cấp lên Team để có tín dụng gấp 10 lần và tính phí vượt mức không giới hạn."
managedMember = "Vui lòng liên hệ trưởng nhóm để được hỗ trợ."
message = "Bạn không có đủ tín dụng để chạy {{tool}}. Hiện bạn có {{current}} tín dụng."
messageWithAmount = "Bạn cần {{required}} tín dụng để chạy {{tool}}, nhưng bạn chỉ có {{current}}."
teamMember = "Bật tính phí vượt mức để không bao giờ hết tín dụng."
title = "Tín dụng không đủ"
[printFile]
header = "In tệp vào máy in"
submit = "In"
@@ -5565,6 +5777,70 @@ user = "Đăng nhập với tư cách"
saas = "Stirling Cloud"
selfhosted = "Tự lưu trữ"
[settings.planBilling]
currentPlan = "Gói hiện tại"
loading = "Đang tải thông tin thanh toán..."
notAvailable = "Gói & Thanh toán chỉ khả dụng khi kết nối với Stirling Cloud (chế độ SaaS)."
title = "Gói & Thanh toán"
[settings.planBilling.billing]
manageBilling = "Quản lý thanh toán"
nextBillingDate = "Ngày thanh toán tiếp theo"
overageCost = "Chi phí vượt mức hiện tại: {{amount}} ({{credits}} tín dụng)"
[settings.planBilling.credits]
estimatedCost = "Chi phí ước tính: {{amount}}"
freeTierInfo = "Gói Free bao gồm {{freeCredits}} tín dụng mỗi tháng. Nâng cấp lên Team để có {{teamCredits}} tín dụng/tháng và tính phí vượt mức trả theo mức dùng."
included = "{{count}} tín dụng/tháng (đã bao gồm)"
noOverage = "Tháng này không có phí vượt mức. Bạn đang dùng {{count}} tín dụng đã bao gồm."
overage = "+ {{count}} vượt mức"
overageInfo = "Tín dụng vượt mức được tính phí {{price}} mỗi tín dụng. Bạn chỉ trả cho phần vượt quá hạn mức hàng tháng."
title = "Mức sử dụng tín dụng"
[settings.planBilling.errors]
fetchFailed = "Không thể lấy dữ liệu thanh toán"
retry = "Thử lại"
[settings.planBilling.status]
active = "Đang hoạt động"
canceled = "Đã hủy"
pastDue = "Quá hạn"
trial = "Dùng thử"
[settings.planBilling.tier]
enterprise = "Enterprise"
enterpriseDescription = "Tính năng và hỗ trợ doanh nghiệp tùy chỉnh"
free = "Free"
freeDescription = "50 tín dụng mỗi tháng"
team = "Team"
teamBadge = "Team"
teamDescription = "Bao gồm 500 tín dụng/tháng, tính phí vượt mức tự động để dịch vụ không gián đoạn"
teamTooltipCredits = "Gói Team bao gồm {{credits}} tín dụng/tháng."
teamTooltipFineprint = "Chỉ trả cho phần dùng vượt quá tín dụng bao gồm."
teamTooltipOverage = "Tính phí vượt mức tự động {{price}}/tín dụng đảm bảo dịch vụ không gián đoạn."
[settings.planBilling.team]
managedByTeam = "Được quản lý bởi nhóm"
memberCount = "{{count}} thành viên nhóm"
[settings.planBilling.trial]
daysRemaining = "Còn {{days}} ngày"
daysRemainingFull = "Bản dùng thử của bạn kết thúc sau {{days}} ngày"
endDate = "Hết hạn: {{date}}"
endsOn = "Kết thúc dùng thử"
title = "Đang dùng thử miễn phí"
[settings.planBilling.upgrade]
cta = "Nâng cấp lên Team"
featureApi = "Truy cập API để tự động hóa"
featureCredits = "{{teamCredits}} tín dụng mỗi tháng (so với {{freeCredits}} của Free)"
featureMembers = "Thành viên nhóm không giới hạn"
featureSupport = "Hỗ trợ ưu tiên"
featureThroughput = "Tốc độ xử lý nhanh hơn"
opensInBrowser = "Mở trong trình duyệt để hoàn tất nâng cấp"
subtitle = "Nâng cấp lên Team để có:"
title = "Nâng cấp gói của bạn"
[settings.developer]
apiKeys = "API Keys"
title = "Nhà phát triển"
@@ -5689,6 +5965,9 @@ people = "Thành viên"
teams = "Nhóm"
title = "Không gian làm việc"
[settings.team]
title = "Nhóm"
[setup]
description = "Bắt đầu bằng cách chọn cách bạn muốn sử dụng Stirling PDF"
welcome = "Chào mừng đến với Stirling PDF"
@@ -6011,6 +6290,11 @@ desc = "Tự động chia bằng tờ phân cách"
name = "Trang phân cách"
tooltip = "Dùng tờ phân cách QR giữa các tài liệu khi quét"
[split.methods.byPoster]
name = "Phần in được"
desc = "Chia các trang lớn thành kích thước có thể in"
tooltip = "Chia các trang quá khổ thành các phần nhỏ phù hợp để in trên giấy tiêu chuẩn (A4, Letter, v.v.)"
[split.methods.byPages]
desc = "Trích xuất các trang cụ thể (1,3,5-10)"
name = "Số trang"
@@ -6029,6 +6313,7 @@ tooltip = "Chỉ định kích thước tệp tối đa (ví dụ: 10MB, 500KB)"
[split.methods.prefix]
splitAt = "Chia tại"
splitBy = "Chia theo"
splitInto = "Chia thành"
[split.methodSelection.tooltip]
bullet1 = "Nhấp vào một thẻ phương thức để chọn"
@@ -6048,6 +6333,21 @@ selectMethodFirst = "Vui lòng chọn một phương thức chia trước"
chooseMethod = "Chọn phương thức"
settings = "Cài đặt"
[split.poster]
rightToLeft = "Chia từ phải sang trái"
[split.poster.pageSize]
label = "Kích thước trang đích"
description = "Kích thước trang đầu ra để in"
[split.poster.xFactor]
label = "Số cột"
description = "Số cột để chia mỗi trang"
[split.poster.yFactor]
label = "Số hàng"
description = "Số hàng để chia mỗi trang"
[split.tooltip.byChapters]
bullet1 = "Cấp dấu trang: Cấp sẽ dùng để chia (1=bậc cao nhất)"
bullet2 = "Bao gồm Siêu dữ liệu: Giữ nguyên thuộc tính tài liệu"
@@ -6085,6 +6385,14 @@ bullet5 = "Bật Chế độ in hai mặt nếu quét cả hai mặt của tờ
text = "Tự động chia tài liệu đã quét bằng các tờ phân cách vật lý có mã QR. Hoàn hảo khi xử lý nhiều tài liệu quét chung."
title = "Chia theo trang phân cách"
[split.tooltip.byPoster]
bullet1 = "Kích thước trang đích: Chọn cỡ giấy đầu ra (A4, Letter, v.v.)"
bullet2 = "Phân chia ngang/dọc: Kích thước lưới để chia"
bullet3 = "Phải sang Trái: Đảo thứ tự cột cho bố cục RTL"
bullet4 = "In và ghép các mảnh để tạo poster"
text = "Chia các trang PDF lớn thành các phần nhỏ có thể in phù hợp với cỡ giấy tiêu chuẩn. Hoàn hảo để tạo bản in poster từ các trang quá khổ."
title = "Chia cho in poster"
[split.tooltip.byPages]
bullet1 = "Điểm chia đơn: 3,7 (chia sau trang 3 và 7)"
bullet2 = "Điểm chia theo khoảng: 3-8 (chia trước trang 3 và sau trang 8)"
@@ -6364,9 +6672,13 @@ tags = "chụp web,lưu trang,web sang tài liệu,lưu trữ"
title = "URL sang PDF"
[usage]
aboutUsageAnalytics = "Giới thiệu về Phân tích sử dụng"
configureSettings = "Cấu hình cài đặt phân tích"
error = "Lỗi khi tải thống kê sử dụng"
noData = "Không có dữ liệu"
noDataMessage = "Hiện không có thống kê sử dụng."
usageAnalyticsExplanation = "Phân tích sử dụng theo dõi các yêu cầu endpoint và mẫu sử dụng công cụ. Kết hợp với bảng điều khiển Ghi nhật ký kiểm toán, bạn có tầm nhìn đầy đủ về hoạt động hệ thống, hiệu năng và sự kiện bảo mật."
viewAuditLogs = "Xem nhật ký kiểm toán"
[usage.chart]
title = "Biểu đồ sử dụng điểm cuối"
@@ -6947,3 +7259,278 @@ cancel = "Hủy"
confirm = "Giải nén"
message = "ZIP này chứa {{count}} tệp. Vẫn giải nén?"
title = "Tệp ZIP lớn"
[cloudBadge]
tooltip = "Thao tác này sẽ sử dụng tín dụng đám mây của bạn"
[team]
cancelInviteError = "Không hủy được lời mời"
confirmCancelInvite = "Bạn có chắc muốn hủy lời mời này?"
confirmLeave = "Bạn có chắc muốn rời nhóm này?"
confirmLeaveLeader = "Là trưởng nhóm, rời đi sẽ xóa bạn khỏi nhóm. Bạn có chắc không?"
confirmRemove = "Bạn có chắc muốn xóa thành viên này?"
editName = "Chỉnh sửa tên nhóm"
inviteCancelled = "Đã hủy lời mời"
inviteError = "Gửi lời mời không thành công"
inviteSent = "Đã gửi lời mời thành công"
leader = "Trưởng nhóm"
leaveButton = "Rời nhóm"
leaveError = "Rời nhóm không thành công"
leaveSuccess = "Đã rời nhóm thành công"
loading = "Đang tải thông tin nhóm..."
memberCount = "{{count}} thành viên"
memberRemoved = "Đã xóa thành viên thành công"
namePlaceholder = "Nhập tên nhóm"
personal = "Cá nhân"
removeError = "Xóa thành viên không thành công"
renameError = "Đổi tên nhóm không thành công"
renameSuccess = "Đã đổi tên nhóm thành công"
[team.invitationBanner]
message = "đã mời bạn tham gia"
acceptButton = "Chấp nhận"
rejectButton = "Từ chối"
[team.features]
badge = "Tính năng Team"
subtitle = "Cộng tác với nhóm của bạn"
title = "Cộng tác theo nhóm"
viewPlans = "Xem các gói"
[team.features.billing]
description = "Quản lý thanh toán và đăng ký"
title = "Quản lý thanh toán"
[team.features.credits]
description = "Kho tín dụng dùng chung cho tất cả thành viên"
title = "Tín dụng dùng chung"
[team.features.dashboard]
description = "Xem hoạt động và mức sử dụng của nhóm"
title = "Bảng điều khiển nhóm"
[team.features.invite]
description = "Thêm thành viên vào nhóm của bạn"
title = "Mời thành viên"
[team.invite]
cancelLabel = "Hủy"
invalidEmail = "Địa chỉ email không hợp lệ"
placeholder = "Nhập địa chỉ email"
sendButton = "Gửi lời mời"
title = "Mời thành viên nhóm"
[team.members]
emailColumn = "Email"
empty = "Chưa có thành viên nhóm"
nameColumn = "Tên"
pending = "Đang chờ"
remove = "Xóa"
roleColumn = "Vai trò"
title = "Thành viên nhóm"
[team.upgrade]
button = "Nâng cấp lên Team"
description = "Mở khóa tính năng cộng tác nhóm"
title = "Nâng cấp lên gói Team"
[provider.oauth2.google]
scope = "Xác thực đăng nhập"
[provider.oauth2.google.clientId]
label = "Client ID"
description = "OAuth2 Client ID từ Google Cloud Console"
[provider.oauth2.google.clientSecret]
label = "Client Secret"
description = "OAuth2 client secret từ Google Cloud Console"
[provider.oauth2.google.scopes]
label = "Scopes"
description = "Danh sách scope OAuth2, phân tách bằng dấu phẩy"
[provider.oauth2.google.useAsUsername]
label = "Dùng làm Tên người dùng"
description = "Trường dùng làm tên người dùng (email, name, given_name, family_name)"
[provider.oauth2.github]
scope = "Xác thực đăng nhập"
[provider.oauth2.github.clientId]
label = "Client ID"
description = "OAuth2 Client ID từ GitHub Developer Settings"
[provider.oauth2.github.clientSecret]
label = "Client Secret"
description = "OAuth2 client secret từ GitHub Developer Settings"
[provider.oauth2.github.scopes]
label = "Scopes"
description = "Danh sách scope OAuth2, phân tách bằng dấu phẩy"
[provider.oauth2.github.useAsUsername]
label = "Dùng làm Tên người dùng"
description = "Trường dùng làm tên người dùng (email, login, name)"
[provider.oauth2.keycloak]
scope = "SSO"
[provider.oauth2.keycloak.issuer]
label = "Issuer URL"
description = "URL endpoint OpenID Connect Discovery của realm Keycloak"
[provider.oauth2.keycloak.clientId]
label = "Client ID"
description = "OAuth2 Client ID từ Keycloak"
[provider.oauth2.keycloak.clientSecret]
label = "Client Secret"
description = "OAuth2 client secret từ Keycloak"
[provider.oauth2.keycloak.scopes]
label = "Scopes"
description = "Danh sách scope OAuth2, phân tách bằng dấu phẩy"
[provider.oauth2.keycloak.useAsUsername]
label = "Dùng làm Tên người dùng"
description = "Trường dùng làm tên người dùng (email, name, given_name, family_name, preferred_username)"
[provider.oauth2.generic]
name = "OAuth2 Tổng quát"
scope = "SSO"
[provider.oauth2.generic.enabled]
label = "Bật OAuth2 Tổng quát"
description = "Bật xác thực bằng nhà cung cấp OAuth2 tùy chỉnh"
[provider.oauth2.generic.provider]
label = "Tên nhà cung cấp"
description = "Tên nhà cung cấp OAuth2 của bạn (ví dụ: Azure AD, Okta)"
[provider.oauth2.generic.issuer]
label = "Issuer URL"
description = "Nhà cung cấp hỗ trợ OpenID Connect Discovery (/.well-known/openid-configuration)"
[provider.oauth2.generic.clientId]
label = "Client ID"
description = "OAuth2 Client ID từ nhà cung cấp của bạn"
[provider.oauth2.generic.clientSecret]
label = "Client Secret"
description = "OAuth2 client secret từ nhà cung cấp của bạn"
[provider.oauth2.generic.scopes]
label = "Scopes"
description = "Danh sách scope OAuth2, phân tách bằng dấu phẩy"
[provider.oauth2.generic.useAsUsername]
label = "Dùng làm Tên người dùng"
description = "Trường dùng làm tên người dùng"
[provider.oauth2.generic.autoCreateUser]
label = "Tự động tạo người dùng"
description = "Tự động tạo tài khoản người dùng khi đăng nhập OAuth2 lần đầu"
[provider.oauth2.generic.blockRegistration]
label = "Chặn đăng ký"
description = "Ngăn người dùng mới đăng ký qua OAuth2"
[provider.smtp]
name = "SMTP Mail"
scope = "Thông báo email"
[provider.smtp.enabled]
label = "Bật Email"
description = "Bật thông báo email và chức năng SMTP"
[provider.smtp.host]
label = "SMTP Host"
description = "Tên máy chủ hoặc địa chỉ IP của máy chủ SMTP của bạn"
[provider.smtp.port]
label = "SMTP Port"
description = "Cổng kết nối SMTP (thường là 25, 465 hoặc 587)"
[provider.smtp.username]
label = "SMTP Username"
description = "Tên người dùng để xác thực SMTP"
[provider.smtp.password]
label = "SMTP Password"
description = "Mật khẩu để xác thực SMTP"
[provider.smtp.from]
label = "Địa chỉ người gửi"
description = "Địa chỉ email dùng làm người gửi"
[provider.saml2]
name = "SAML2"
scope = "SSO (SAML)"
[provider.saml2.enabled]
label = "Bật SAML2"
description = "Bật xác thực SAML2 (chỉ dành cho Enterprise)"
[provider.saml2.provider]
label = "Tên nhà cung cấp"
description = "Tên nhà cung cấp SAML2 của bạn"
[provider.saml2.registrationId]
label = "Registration ID"
description = "Tên ứng dụng Service Provider (SP) của bạn"
[provider.saml2.idpMetadataUri]
label = "IDP Metadata URI"
description = "URI metadata của nhà cung cấp của bạn"
[provider.saml2.idpSingleLoginUrl]
label = "IDP Single Login URL"
description = "URL để khởi tạo SSO"
[provider.saml2.idpSingleLogoutUrl]
label = "IDP Single Logout URL"
description = "URL để khởi tạo SLO"
[provider.saml2.idpIssuer]
label = "IDP Issuer"
description = "ID của nhà cung cấp của bạn"
[provider.saml2.idpCert]
label = "Chứng chỉ IDP"
description = "Đường dẫn chứng chỉ (ví dụ: classpath:okta.cert)"
[provider.saml2.privateKey]
label = "Khóa riêng"
description = "Đường dẫn khóa riêng của bạn"
[provider.saml2.spCert]
label = "Chứng chỉ SP"
description = "Đường dẫn chứng chỉ ký của bạn"
[provider.saml2.autoCreateUser]
label = "Tự động tạo người dùng"
description = "Tự động tạo tài khoản người dùng khi đăng nhập SAML2 lần đầu"
[provider.saml2.blockRegistration]
label = "Chặn đăng ký"
description = "Ngăn người dùng mới đăng ký qua SAML2"
[provider.googledrive]
name = "Google Drive"
scope = "Nhập tệp"
[provider.googledrive.enabled]
label = "Bật bộ chọn tệp Google Drive"
description = "Cho phép người dùng nhập tệp trực tiếp từ Google Drive"
[provider.googledrive.clientId]
label = "Client ID"
description = "Google OAuth 2.0 Client ID từ Google Cloud Console"
[provider.googledrive.apiKey]
label = "API Key"
description = "Google API Key cho Google Picker API từ Google Cloud Console"
[provider.googledrive.appId]
label = "App ID"
description = "Google Drive App ID từ Google Cloud Console"