mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-16 19:33:11 +02:00
fix(translations): improve translation merger CLI and sync missing UI strings across locales (#5309)
# Description of Changes This pull request updates the Arabic translation file (`frontend/public/locales/ar-AR/translation.toml`) with a large number of new and improved strings, adding support for new features and enhancing clarity and coverage across the application. Additionally, it makes several improvements to the TOML language check script (`.github/scripts/check_language_toml.py`) and updates the corresponding GitHub Actions workflow to better track and validate translation changes. **Translation updates and enhancements:** * Added translations for new features and UI elements, including annotation tools, PDF/A-3b conversion, line art compression, background removal, split modes, onboarding tours, and more. [[1]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR343-R346) [[2]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR442-R460) [[3]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR514-R523) [[4]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR739-R743) [[5]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR1281-R1295) [[6]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR1412-R1416) [[7]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR2362-R2365) [[8]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR2411-R2415) [[9]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR2990) [[10]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR3408-R3420) [[11]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR3782-R3794) [[12]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR3812-R3815) [[13]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR3828-R3832) [[14]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effL3974-R4157) [[15]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR4208-R4221) [[16]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5247) [[17]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5414-R5423) [[18]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5444-R5447) * Improved and expanded coverage for settings, security, onboarding, and help menus, including detailed descriptions and tooltips for new and existing features. [[1]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR442-R460) [[2]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5247) [[3]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5414-R5423) [[4]](diffhunk://#diff-460d5f61a7649a5b149373af2e52a8a87d9a1964cf54240a78ad4747e7233effR5444-R5447) **TOML language check script improvements:** * Increased the maximum allowed TOML file size from 500 KB to 570 KB to accommodate larger translation files. * Improved file validation logic to more accurately skip or process files based on directory structure and file type, and added informative print statements for skipped files. * Enhanced reporting in the difference check: now, instead of raising exceptions for unsafe files or oversized files, the script logs warnings and continues processing, improving robustness and clarity in CI reports. * Adjusted the placement of file check report lines for clarity in the generated report. **Workflow and CI improvements:** * Updated the GitHub Actions workflow (`.github/workflows/check_toml.yml`) to trigger on changes to the translation script and workflow files, in addition to translation TOMLs, ensuring all relevant changes are validated. These changes collectively improve the translation quality and coverage for Arabic users, enhance the reliability and clarity of the translation validation process, and ensure smoother CI/CD workflows for localization updates. <img width="654" height="133" alt="image" src="https://github.com/user-attachments/assets/9f3e505d-927f-4dc0-9098-cee70bbe85ca" /> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
@@ -340,6 +340,10 @@ advance = "Nâng cao"
|
||||
edit = "Xem & Chỉnh sửa"
|
||||
popular = "Phổ biến"
|
||||
|
||||
[footer]
|
||||
discord = "Discord"
|
||||
issues = "GitHub"
|
||||
|
||||
[settings.preferences]
|
||||
title = "Tùy chọn"
|
||||
|
||||
@@ -435,6 +439,25 @@ latestVersion = "Phiên bản mới nhất"
|
||||
checkForUpdates = "Kiểm tra cập nhật"
|
||||
viewDetails = "Xem chi tiết"
|
||||
|
||||
[settings.security]
|
||||
title = "Security"
|
||||
description = "Update your password to keep your account secure."
|
||||
|
||||
[settings.security.password]
|
||||
subtitle = "Change your password. You will be logged out after updating."
|
||||
required = "All fields are required."
|
||||
mismatch = "New passwords do not match."
|
||||
error = "Unable to update password. Please verify your current password and try again."
|
||||
success = "Password updated successfully. Please sign in again."
|
||||
ssoDisabled = "Password changes are managed by your identity provider."
|
||||
current = "Current password"
|
||||
currentPlaceholder = "Enter your current password"
|
||||
new = "New password"
|
||||
newPlaceholder = "Enter a new password"
|
||||
confirm = "Confirm new password"
|
||||
confirmPlaceholder = "Re-enter your new password"
|
||||
update = "Update password"
|
||||
|
||||
[settings.hotkeys]
|
||||
title = "Phím tắt"
|
||||
description = "Tùy chỉnh phím tắt để truy cập công cụ nhanh. Nhấp \"Change shortcut\" và nhấn một tổ hợp phím mới. Nhấn Esc để hủy."
|
||||
@@ -488,11 +511,16 @@ low = "Thấp"
|
||||
title = "Thay đổi thông tin đăng nhập"
|
||||
header = "Cập nhật thông tin tài khoản của bạn"
|
||||
changePassword = "Bạn đang sử dụng thông tin đăng nhập mặc định. Vui lòng nhập mật khẩu mới"
|
||||
ssoManaged = "Your account is managed by your identity provider."
|
||||
newUsername = "Tên người dùng mới"
|
||||
oldPassword = "Mật khẩu hiện tại"
|
||||
newPassword = "Mật khẩu mới"
|
||||
confirmNewPassword = "Xác nhận mật khẩu mới"
|
||||
submit = "Gửi thay đổi"
|
||||
credsUpdated = "Account updated"
|
||||
description = "Changes saved. Please log in again."
|
||||
error = "Unable to update username. Please verify your password and try again."
|
||||
changeUsername = "Update your username. You will be logged out after updating."
|
||||
|
||||
[account]
|
||||
title = "Cài đặt tài khoản"
|
||||
@@ -708,6 +736,11 @@ tags = "chữ ký,chữ ký tay"
|
||||
title = "Ký"
|
||||
desc = "Thêm chữ ký vào PDF bằng cách vẽ, văn bản hoặc hình ảnh"
|
||||
|
||||
[home.annotate]
|
||||
tags = "annotate,highlight,draw"
|
||||
title = "Annotate"
|
||||
desc = "Highlight, draw, add notes and shapes in the viewer"
|
||||
|
||||
[home.flatten]
|
||||
tags = "làm phẳng,loại bỏ,tương tác"
|
||||
title = "Làm phẳng"
|
||||
@@ -1245,6 +1278,21 @@ cbzOptions = "Tùy chọn CBZ sang PDF"
|
||||
optimizeForEbook = "Tối ưu PDF cho thiết bị đọc sách điện tử (dùng Ghostscript)"
|
||||
cbzOutputOptions = "Tùy chọn PDF sang CBZ"
|
||||
cbzDpi = "DPI cho kết xuất ảnh"
|
||||
cbrOptions = "CBR Options"
|
||||
cbrOutputOptions = "PDF to CBR Options"
|
||||
cbrDpi = "DPI for image rendering"
|
||||
|
||||
[convert.ebookOptions]
|
||||
ebookOptions = "eBook to PDF Options"
|
||||
ebookOptionsDesc = "Options for converting eBooks to PDF"
|
||||
embedAllFonts = "Embed all fonts"
|
||||
embedAllFontsDesc = "Embed all fonts from the eBook into the generated PDF"
|
||||
includeTableOfContents = "Include table of contents"
|
||||
includeTableOfContentsDesc = "Add a generated table of contents to the resulting PDF"
|
||||
includePageNumbers = "Include page numbers"
|
||||
includePageNumbersDesc = "Add page numbers to the generated PDF"
|
||||
optimizeForEbookPdf = "Optimize for ebook readers"
|
||||
optimizeForEbookPdfDesc = "Optimize the PDF for eBook reading (smaller file size, better rendering on eInk devices)"
|
||||
|
||||
[imageToPdf]
|
||||
tags = "chuyển đổi,img,jpg,hình ảnh,ảnh"
|
||||
@@ -1361,6 +1409,11 @@ header = "Add attachments"
|
||||
add = "Thêm tệp đính kèm"
|
||||
remove = "Xóa tệp đính kèm"
|
||||
embed = "Nhúng tệp đính kèm"
|
||||
convertToPdfA3b = "Convert to PDF/A-3b"
|
||||
convertToPdfA3bDescription = "Creates an archival PDF with embedded attachments"
|
||||
convertToPdfA3bTooltip = "PDF/A-3b is an archival format ensuring long-term preservation. It allows embedding arbitrary file formats as attachments. Conversion requires Ghostscript and may take longer for large files."
|
||||
convertToPdfA3bTooltipHeader = "About PDF/A-3b Conversion"
|
||||
convertToPdfA3bTooltipTitle = "What it does"
|
||||
submit = "Add attachments"
|
||||
|
||||
[watermark]
|
||||
@@ -2306,6 +2359,10 @@ saved = "Đã lưu"
|
||||
label = "Tải lên ảnh chữ ký"
|
||||
placeholder = "Chọn tệp hình ảnh"
|
||||
hint = "Tải lên ảnh chữ ký định dạng PNG hoặc JPG"
|
||||
removeBackground = "Remove white background (make transparent)"
|
||||
processing = "Processing image..."
|
||||
backgroundRemovalFailedTitle = "Background removal failed"
|
||||
backgroundRemovalFailedMessage = "Could not remove the background from the image. Using original image instead."
|
||||
|
||||
[sign.instructions]
|
||||
title = "Cách thêm chữ ký"
|
||||
@@ -2351,6 +2408,11 @@ note = "Làm phẳng sẽ loại bỏ các thành phần tương tác khỏi PDF
|
||||
label = "Chỉ làm phẳng biểu mẫu"
|
||||
desc = "Chỉ làm phẳng các trường biểu mẫu, giữ nguyên các thành phần tương tác khác"
|
||||
|
||||
[flatten.renderDpi]
|
||||
label = "Rendering DPI (optional, recommended 150 DPI)"
|
||||
help = "Leave blank to use the system default. Higher DPI sharpens output but increases processing time and file size."
|
||||
placeholder = "e.g. 150"
|
||||
|
||||
[flatten.results]
|
||||
title = "Kết quả làm phẳng"
|
||||
|
||||
@@ -2925,6 +2987,7 @@ header = "Cắt cúp PDF"
|
||||
submit = "Gửi"
|
||||
noFileSelected = "Chọn một tệp PDF để bắt đầu cắt xén"
|
||||
reset = "Đặt lại về toàn bộ PDF"
|
||||
autoCrop = "Auto-crop whitespace"
|
||||
|
||||
[crop.preview]
|
||||
title = "Chọn vùng cắt"
|
||||
@@ -3342,6 +3405,19 @@ placeholder = "Nhập số lượng phân chia theo chiều ngang"
|
||||
label = "Phân chia theo chiều dọc"
|
||||
placeholder = "Nhập số lượng phân chia theo chiều dọc"
|
||||
|
||||
[split-by-sections.splitMode]
|
||||
label = "Split Mode"
|
||||
description = "Choose how to split the pages"
|
||||
splitAll = "Split all pages"
|
||||
splitAllExceptFirst = "Split all except first"
|
||||
splitAllExceptLast = "Split all except last"
|
||||
splitAllExceptFirstAndLast = "Split all except first and last"
|
||||
custom = "Custom pages"
|
||||
|
||||
[split-by-sections.customPages]
|
||||
label = "Custom Page Numbers"
|
||||
placeholder = "e.g. 2,4,6"
|
||||
|
||||
[AddStampRequest]
|
||||
tags = "Dấu,Thêm hình ảnh,căn giữa hình ảnh,Hình mờ,PDF,Nhúng,Tùy chỉnh"
|
||||
header = "Đóng dấu PDF"
|
||||
@@ -3703,6 +3779,19 @@ filesize = "Kích thước tệp"
|
||||
[compress.grayscale]
|
||||
label = "Áp dụng thang độ xám để nén"
|
||||
|
||||
[compress.linearize]
|
||||
label = "Linearize PDF for fast web viewing"
|
||||
|
||||
[compress.lineArt]
|
||||
label = "Convert images to line art"
|
||||
description = "Uses ImageMagick to reduce pages to high-contrast black and white for maximum size reduction."
|
||||
unavailable = "ImageMagick is not installed or enabled on this server"
|
||||
detailLevel = "Detail level"
|
||||
edgeEmphasis = "Edge emphasis"
|
||||
edgeLow = "Gentle"
|
||||
edgeMedium = "Balanced"
|
||||
edgeHigh = "Strong"
|
||||
|
||||
[compress.tooltip.header]
|
||||
title = "Tổng quan cài đặt nén"
|
||||
|
||||
@@ -3720,6 +3809,10 @@ bullet2 = "Giá trị cao giảm kích thước tệp"
|
||||
title = "Thang xám"
|
||||
text = "Chọn tùy chọn này để chuyển tất cả hình ảnh sang đen trắng, có thể giảm đáng kể kích thước tệp, đặc biệt với PDF quét hoặc tài liệu nhiều hình ảnh."
|
||||
|
||||
[compress.tooltip.lineArt]
|
||||
title = "Line Art"
|
||||
text = "Convert pages to high-contrast black and white using ImageMagick. Use detail level to control how much content becomes black, and edge emphasis to control how aggressively edges are detected."
|
||||
|
||||
[compress.error]
|
||||
failed = "Đã xảy ra lỗi khi nén PDF."
|
||||
|
||||
@@ -3732,6 +3825,11 @@ failed = "Đã xảy ra lỗi khi nén PDF."
|
||||
_value = "Cài đặt nén"
|
||||
1 = "1-3 nén PDF,</br> 4-6 nén ảnh nhẹ,</br> 7-9 nén ảnh mạnh sẽ làm giảm chất lượng hình ảnh đáng kể"
|
||||
|
||||
[compress.compressionLevel]
|
||||
range1to3 = "Lower values preserve quality but result in larger files"
|
||||
range4to6 = "Medium compression with moderate quality reduction"
|
||||
range7to9 = "Higher values reduce file size significantly but may reduce image clarity"
|
||||
|
||||
[decrypt]
|
||||
passwordPrompt = "Tệp này được bảo vệ bằng mật khẩu. Vui lòng nhập mật khẩu:"
|
||||
cancelled = "Đã hủy thao tác cho PDF: {0}"
|
||||
@@ -3971,23 +4069,92 @@ deleteSelected = "Xóa các trang đã chọn"
|
||||
closePdf = "Đóng PDF"
|
||||
exportAll = "Xuất PDF"
|
||||
downloadSelected = "Tải xuống các tệp đã chọn"
|
||||
downloadAll = "Tải xuống tất cả"
|
||||
saveAll = "Lưu tất cả"
|
||||
annotations = "Annotations"
|
||||
exportSelected = "Xuất các trang đã chọn"
|
||||
saveChanges = "Lưu thay đổi"
|
||||
toggleTheme = "Chuyển đổi chủ đề"
|
||||
toggleBookmarks = "Bật/tắt dấu trang"
|
||||
language = "Ngôn ngữ"
|
||||
toggleAnnotations = "Chuyển đổi hiển thị chú thích"
|
||||
search = "Tìm kiếm PDF"
|
||||
panMode = "Chế độ kéo"
|
||||
rotateLeft = "Xoay trái"
|
||||
rotateRight = "Xoay phải"
|
||||
toggleSidebar = "Chuyển đổi thanh bên"
|
||||
exportSelected = "Xuất các trang đã chọn"
|
||||
toggleAnnotations = "Chuyển đổi hiển thị chú thích"
|
||||
annotationMode = "Chuyển đổi chế độ chú thích"
|
||||
toggleBookmarks = "Bật/tắt dấu trang"
|
||||
print = "In PDF"
|
||||
draw = "Vẽ"
|
||||
save = "Lưu"
|
||||
saveChanges = "Lưu thay đổi"
|
||||
downloadAll = "Tải xuống tất cả"
|
||||
saveAll = "Lưu tất cả"
|
||||
|
||||
[textAlign]
|
||||
left = "Left"
|
||||
center = "Center"
|
||||
right = "Right"
|
||||
|
||||
[annotation]
|
||||
title = "Annotate"
|
||||
desc = "Use highlight, pen, text, and notes. Changes stay live—no flattening required."
|
||||
highlight = "Highlight"
|
||||
pen = "Pen"
|
||||
text = "Text box"
|
||||
note = "Note"
|
||||
rectangle = "Rectangle"
|
||||
ellipse = "Ellipse"
|
||||
select = "Select"
|
||||
exit = "Exit annotation mode"
|
||||
strokeWidth = "Width"
|
||||
opacity = "Opacity"
|
||||
strokeOpacity = "Stroke Opacity"
|
||||
fillOpacity = "Fill Opacity"
|
||||
fontSize = "Font size"
|
||||
chooseColor = "Choose colour"
|
||||
color = "Colour"
|
||||
strokeColor = "Stroke Colour"
|
||||
fillColor = "Fill Colour"
|
||||
underline = "Underline"
|
||||
strikeout = "Strikeout"
|
||||
squiggly = "Squiggly"
|
||||
inkHighlighter = "Freehand Highlighter"
|
||||
freehandHighlighter = "Freehand Highlighter"
|
||||
square = "Square"
|
||||
circle = "Circle"
|
||||
polygon = "Polygon"
|
||||
line = "Line"
|
||||
stamp = "Add Image"
|
||||
textMarkup = "Text Markup"
|
||||
drawing = "Drawing"
|
||||
shapes = "Shapes"
|
||||
notesStamps = "Notes & Stamps"
|
||||
settings = "Settings"
|
||||
borderOn = "Border: On"
|
||||
borderOff = "Border: Off"
|
||||
editInk = "Edit Pen"
|
||||
editLine = "Edit Line"
|
||||
editNote = "Edit Note"
|
||||
editText = "Edit Text Box"
|
||||
editTextMarkup = "Edit Text Markup"
|
||||
editSelected = "Edit Annotation"
|
||||
editSquare = "Edit Square"
|
||||
editCircle = "Edit Circle"
|
||||
editPolygon = "Edit Polygon"
|
||||
unsupportedType = "This annotation type is not fully supported for editing."
|
||||
textAlignment = "Text Alignment"
|
||||
noteIcon = "Note Icon"
|
||||
imagePreview = "Preview"
|
||||
contents = "Text"
|
||||
backgroundColor = "Background colour"
|
||||
clearBackground = "Remove background"
|
||||
noBackground = "No background"
|
||||
stampSettings = "Stamp Settings"
|
||||
savingCopy = "Preparing download..."
|
||||
saveFailed = "Unable to save copy"
|
||||
saveReady = "Download ready"
|
||||
selectAndMove = "Select and Edit"
|
||||
editSelectDescription = "Click an existing annotation to edit its colour, opacity, text, or size."
|
||||
editStampHint = "To change the image, delete this stamp and add a new one."
|
||||
editSwitchToSelect = "Switch to Select & Edit to edit this annotation."
|
||||
undo = "Undo"
|
||||
redo = "Redo"
|
||||
applyChanges = "Apply Changes"
|
||||
|
||||
[search]
|
||||
title = "Tìm kiếm PDF"
|
||||
@@ -4038,12 +4205,20 @@ settings = "Cài đặt"
|
||||
adminSettings = "Cài đặt quản trị"
|
||||
allTools = "All Tools"
|
||||
reader = "Trình đọc"
|
||||
tours = "Tours"
|
||||
showMeAround = "Show me around"
|
||||
|
||||
[quickAccess.toursTooltip]
|
||||
admin = "Watch walkthroughs here: Tools tour, New V2 layout tour, and the Admin tour."
|
||||
user = "Watch walkthroughs here: Tools tour and the New V2 layout tour."
|
||||
|
||||
[quickAccess.helpMenu]
|
||||
toolsTour = "Hướng dẫn công cụ"
|
||||
toolsTourDesc = "Tìm hiểu công cụ có thể làm gì"
|
||||
adminTour = "Hướng dẫn quản trị"
|
||||
adminTourDesc = "Khám phá cài đặt & tính năng quản trị"
|
||||
whatsNewTour = "See what's new in V2"
|
||||
whatsNewTourDesc = "Tour the updated layout"
|
||||
|
||||
[admin]
|
||||
error = "Lỗi"
|
||||
@@ -5069,6 +5244,7 @@ loading = "Đang tải..."
|
||||
back = "Quay lại"
|
||||
continue = "Tiếp tục"
|
||||
error = "Lỗi"
|
||||
save = "Save"
|
||||
|
||||
[config.overview]
|
||||
title = "Cấu hình ứng dụng"
|
||||
@@ -5235,6 +5411,16 @@ finish = "Hoàn tất"
|
||||
startTour = "Bắt đầu tham quan"
|
||||
startTourDescription = "Tham quan có hướng dẫn các tính năng chính của Stirling PDF"
|
||||
|
||||
[onboarding.whatsNew]
|
||||
quickAccess = "Start at the <strong>Quick Access</strong> rail to jump between Reader, Automate, your files, and all the tours."
|
||||
leftPanel = "The left <strong>Tools</strong> panel lists everything you can do. Browse categories or search to find a tool quickly."
|
||||
fileUpload = "Use the <strong>Files</strong> button to upload or pick a recent PDF. We will load a sample so you can see the workspace."
|
||||
rightRail = "The <strong>Right Rail</strong> holds quick actions to select files, change theme or language, and download results."
|
||||
topBar = "The top bar lets you swap between <strong>Viewer</strong>, <strong>Page Editor</strong>, and <strong>Active Files</strong>."
|
||||
pageEditorView = "Switch to the Page Editor to reorder, rotate, or delete pages."
|
||||
activeFilesView = "Use Active Files to see everything you have open and pick what to work on."
|
||||
wrapUp = "That is what is new in V2. Open the <strong>Tours</strong> menu anytime to replay this, the Tools tour, or the Admin tour."
|
||||
|
||||
[onboarding.welcomeModal]
|
||||
title = "Chào mừng đến với Stirling PDF!"
|
||||
description = "Bạn có muốn xem một chuyến tham quan nhanh 1 phút để tìm hiểu các tính năng chính và cách bắt đầu không?"
|
||||
@@ -5255,6 +5441,10 @@ download = "Tải xuống →"
|
||||
showMeAround = "Hướng dẫn nhanh"
|
||||
skipTheTour = "Bỏ qua hướng dẫn"
|
||||
|
||||
[onboarding.tourOverview]
|
||||
title = "Tour Overview"
|
||||
body = "Stirling PDF V2 ships with dozens of tools and a refreshed layout. Take a quick tour to see what changed and where to find the features you need."
|
||||
|
||||
[onboarding.serverLicense]
|
||||
skip = "Bỏ qua tạm thời"
|
||||
seePlans = "Xem gói →"
|
||||
@@ -5568,6 +5758,28 @@ contactSales = "Liên hệ bộ phận kinh doanh"
|
||||
contactToUpgrade = "Liên hệ với chúng tôi để nâng cấp hoặc tùy chỉnh gói của bạn"
|
||||
maxUsers = "Số người dùng tối đa"
|
||||
upTo = "Tối đa"
|
||||
getLicense = "Get Server License"
|
||||
upgradeToEnterprise = "Upgrade to Enterprise"
|
||||
selectPeriod = "Select Billing Period"
|
||||
monthlyBilling = "Monthly Billing"
|
||||
yearlyBilling = "Yearly Billing"
|
||||
checkoutOpened = "Checkout Opened"
|
||||
checkoutInstructions = "Complete your purchase in the Stripe tab. After payment, return here and refresh the page to activate your license. You will also receive an email with your license key."
|
||||
activateLicense = "Activate Your License"
|
||||
|
||||
[plan.static.licenseActivation]
|
||||
checkoutOpened = "Checkout Opened in New Tab"
|
||||
instructions = "Complete your purchase in the Stripe tab. Once your payment is complete, you will receive an email with your license key."
|
||||
enterKey = "Enter your license key below to activate your plan:"
|
||||
keyDescription = "Paste the license key from your email"
|
||||
activate = "Activate License"
|
||||
doLater = "I'll do this later"
|
||||
success = "License Activated!"
|
||||
successMessage = "Your license has been successfully activated. You can now close this window."
|
||||
|
||||
[plan.static.billingPortal]
|
||||
title = "Email Verification Required"
|
||||
message = "You will need to verify your email address in the Stripe billing portal. Check your email for a login link."
|
||||
|
||||
[plan.period]
|
||||
month = "tháng"
|
||||
@@ -5771,6 +5983,8 @@ 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."
|
||||
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 = "Enterprise License Required"
|
||||
enterpriseRequiredMessage = "The audit logging system is an enterprise feature. Please upgrade to an enterprise license to access audit logs and analytics."
|
||||
|
||||
[audit.error]
|
||||
title = "Lỗi khi tải hệ thống kiểm toán"
|
||||
@@ -6025,6 +6239,8 @@ reset = "Đặt lại thay đổi"
|
||||
downloadJson = "Tải JSON"
|
||||
generatePdf = "Tạo PDF"
|
||||
saveChanges = "Lưu thay đổi"
|
||||
applyChanges = "Apply Changes"
|
||||
downloadCopy = "Download Copy"
|
||||
|
||||
[pdfTextEditor.options.autoScaleText]
|
||||
title = "Tự căn chỉnh văn bản cho vừa hộp"
|
||||
@@ -6043,6 +6259,24 @@ descriptionInline = "Mẹo: Giữ Ctrl (Cmd) hoặc Shift để chọn nhiều h
|
||||
title = "Khóa văn bản đã chỉnh sửa thành một phần tử PDF duy nhất"
|
||||
description = "Khi bật, trình chỉnh sửa xuất mỗi hộp văn bản đã chỉnh sửa thành một phần tử văn bản PDF để tránh chồng ký tự hoặc trộn font."
|
||||
|
||||
[pdfTextEditor.options.advanced]
|
||||
title = "Advanced Settings"
|
||||
|
||||
[pdfTextEditor.tooltip.header]
|
||||
title = "Preview Limitations"
|
||||
|
||||
[pdfTextEditor.tooltip.textFocus]
|
||||
title = "Text and Image Focus"
|
||||
text = "This workspace focuses on editing text and repositioning embedded images. Complex page artwork, form widgets, and layered graphics are preserved for export but are not fully editable here."
|
||||
|
||||
[pdfTextEditor.tooltip.previewVariance]
|
||||
title = "Preview Variance"
|
||||
text = "Some visuals (such as table borders, shapes, or annotation appearances) may not display exactly in the preview. The exported PDF keeps the original drawing commands whenever possible."
|
||||
|
||||
[pdfTextEditor.tooltip.alpha]
|
||||
title = "Alpha Viewer"
|
||||
text = "This alpha viewer is still evolving—certain fonts, colours, transparency effects, and layout details may shift slightly. Please double-check the generated PDF before sharing."
|
||||
|
||||
[pdfTextEditor.manual]
|
||||
mergeTooltip = "Gộp các hộp đã chọn"
|
||||
merge = "Gộp vùng chọn"
|
||||
|
||||
Reference in New Issue
Block a user