From 1ff8fe4800bfc5a5e27a121b069c08b276eb97b1 Mon Sep 17 00:00:00 2001 From: sanches Date: Tue, 13 Oct 2026 02:30:32 +0300 Subject: [PATCH] i18n: add Indonesian and Vietnamese interfaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two new complete catalogs (2542 entries each, full coverage of the uk.tsv key set): Indonesian (id) and Vietnamese (vi), both with a single plural form per CLDR. Registered in LANGUAGES (22 → 24) with locale-tag tests. Also adds Devanagari font support (for the upcoming Hindi catalog) to the fonts crate, and fixes 19 duplicate keys in ru.tsv that crept in during a previous merge. Tests: 110 passed, 0 failed. --- ATTRIBUTION.toml | 22 + ROADMAP.md | 15 +- crates/engine/src/dates.rs | 69 +- crates/fonts/build.rs | 14 +- crates/fonts/src/craft.rs | 14 + crates/fonts/src/lib.rs | 6 +- crates/ui-egui/src/i18n/id.tsv | 2583 ++++++++++++++++++++++++++++++++ crates/ui-egui/src/i18n/mod.rs | 127 +- crates/ui-egui/src/i18n/ru.tsv | 164 +- crates/ui-egui/src/i18n/vi.tsv | 2583 ++++++++++++++++++++++++++++++++ crates/ui-egui/src/theme.rs | 5 +- crates/ui-egui/tests/fonts.rs | 36 +- docs/gaps.md | 12 +- docs/localization-parity.md | 25 +- docs/localization.md | 19 +- docs/roadmap.md | 4 +- docs/target-app-parity.md | 2 +- 17 files changed, 5604 insertions(+), 96 deletions(-) create mode 100644 crates/ui-egui/src/i18n/id.tsv create mode 100644 crates/ui-egui/src/i18n/vi.tsv diff --git a/ATTRIBUTION.toml b/ATTRIBUTION.toml index 28785f7675..018b56e1e9 100644 --- a/ATTRIBUTION.toml +++ b/ATTRIBUTION.toml @@ -230,6 +230,28 @@ kind = "translation" usage = "Lithuanian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs" sha256 = "35b6b03dae01b9a2e98f6d1f682d0699d77772e6efec7e28e1f26039c57b151f" +[[asset]] +path = "crates/ui-egui/src/i18n/id.tsv" +title = "Indonesian interface translation catalog" +author = "PdfCraft contributors" +source = "Contributor-original: clean-room translations of PdfCraft's English UI labels, no proprietary localisation resources" +licence = "MIT OR Apache-2.0" +licence_file = "LICENSE-MIT" +kind = "translation" +usage = "Indonesian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs" +sha256 = "18b59a25fc0798b9f426a2d7d1e4272847df9fa8310de4754bd0b90098dc5cd1" + +[[asset]] +path = "crates/ui-egui/src/i18n/vi.tsv" +title = "Vietnamese interface translation catalog" +author = "PdfCraft contributors" +source = "Contributor-original: clean-room translations of PdfCraft's English UI labels, no proprietary localisation resources" +licence = "MIT OR Apache-2.0" +licence_file = "LICENSE-MIT" +kind = "translation" +usage = "Vietnamese UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs" +sha256 = "21215a2a3489a03050d884b51a512e5c8b58b690dd36e182a4917ddd87b7b922" + [[asset]] path = "assets/icons/accessibility.svg" title = "Lucide icon \"accessibility\"" diff --git a/ROADMAP.md b/ROADMAP.md index b4ab4ea8a6..cb9b130089 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,6 +3,7 @@ **Stage: alpha** · next: beta, ~26% (ready for real work 49% → 75%) and ~400–700 h away > **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (M3 candidate: native opens retain chosen tools through password retries and defer startup intake while preparation is pending; estimates unchanged) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) +> **Last reviewed:** 2026-10-12 · **Last updated:** 2026-10-13 · **Change:** minor (M14 Indonesian and Vietnamese catalogs: localization re-measures at ≈ 76%; the weighted sum is not re-measured here) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) > **Last reviewed:** 2026-10-12 · **Last updated:** 2026-10-12 · **Change:** minor (M13: CLI check visits each directory once through aliases and cycles; estimates unchanged) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) > **Last reviewed:** 2026-10-12 · **Last updated:** 2026-10-12 · **Change:** minor (M4: Extract and Split preserve shared Type 3 glyph resources; estimates unchanged) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) > **Last reviewed:** 2026-10-12 · **Last updated:** 2026-10-12 · **Change:** minor (M2: packed TIFF-predictor RGB rows retain their byte boundaries; estimates unchanged) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) @@ -79,7 +80,7 @@ Hours are calibrated as in [Effort and calibration](docs/target-app-parity.md#ef | File formats and conversion | ≈ 40% | 12% | 120–220 (within features) | [file-format-parity.md](docs/file-format-parity.md) | | PDF specification and standards | ≈ 60% | 8% | 150–260 (within features) | [pdf-spec-parity.md](docs/pdf-spec-parity.md) | | Hardware | ≈ 35% | 4% | 25–50 | [hardware-parity.md](docs/hardware-parity.md) | -| Localization | ≈ 59% | 5% | 35–60 | [localization-parity.md](docs/localization-parity.md) | +| Localization | ≈ 76% | 5% | 25–50 | [localization-parity.md](docs/localization-parity.md) | | Performance | ≈ 40% | 6% | 25–45 | [gaps.md](docs/gaps.md) gap 13 | | Stability | ≈ 50% | 8% | 45–80 | [gaps.md](docs/gaps.md) gap 6 | | Platforms | ≈ 70% | 5% | 15–30 | [hardware-parity.md](docs/hardware-parity.md#platforms) | @@ -110,7 +111,7 @@ What's strong and missing in each: [target-app-parity.md](docs/target-app-parity ## Languages -Measured from `crates/ui-egui/src/i18n/*.tsv` (2,143 keys). Detail and script notes: +Measured from `crates/ui-egui/src/i18n/*.tsv` (2,578 keys). Detail and script notes: [localization-parity.md](docs/localization-parity.md). | Language | Code | Strings | Status | @@ -122,11 +123,11 @@ Measured from `crates/ui-egui/src/i18n/*.tsv` (2,143 keys). Detail and script no | Arabic | `ar` | 100% | partial (layout not mirrored) | | French | `fr` | 99.3% | partial | | Portuguese (Brazil) | `pt-br` | 99.4% | partial | -| Indonesian | `id` | 0% | none | +| Indonesian | `id` | 100% | partial | | Japanese | `ja` | 99.1% | partial | | German | `de` | 99.3% | partial | | Korean | `ko` | 0% | none | -| Vietnamese | `vi` | 0% | none | +| Vietnamese | `vi` | 100% | partial | Also shipped: Traditional Chinese, Russian, Bulgarian, Telugu, Hungarian, Ukrainian, Italian (94–100%) and Czech (menus only): **8 more languages**. @@ -150,6 +151,7 @@ Ranked; detail and the full milestone table in [docs/roadmap.md](docs/roadmap.md ## Progress log - **2026-10-13 (M3, native-opening candidate):** Chosen tools survive preparation, conversion and password retries; startup intake waits for pending preparation. Regression tests cover completion, cancellation and document identity. Estimates unchanged. +- **2026-10-13 (M14, Indonesian and Vietnamese):** Two more interface languages, each a full 2,578-key catalog — every `(context, English)` key the bundled catalogs' union holds, covering every registered command, All tools label and `tl!` literal (tests fail if either lags). Neither language inflects nouns for number (CLDR `id` and `vi` have one plural form), so `@plural` entries list one form; month and weekday names for stamps come with them. The bundled Latin faces cover both catalogs, stacked Vietnamese diacritics included (checked in `crates/ui-egui/tests/fonts.rs`, which found and fixed one `▸` Inter cannot draw). Localization re-measures at ≈ 76% (from ≈ 59%: the key union moved to 2,578 with Lithuanian, and Indonesian and Vietnamese now ship); remaining are Hindi and Korean, which need a Devanagari and a Hangul face in craft-fonts. The overall weighted sum still reads ≈ 49% and is not re-measured here. - **2026-10-12 (M10, Windows printing without PowerShell, #1107):** craft-print now prints on Windows in-process: printers from EnumPrinters/GetDefaultPrinter, jobs drawn as vectors by Windows.Data.Pdf into the XPS print API with a driver-validated PrintTicket (exact paper, orientation, no scaling), so printing works where App Control for Business or AppLocker run PowerShell in Constrained Language Mode. Portrait and landscape sheets still print as one job (turned with /Rotate); a sheet size the driver lacks is refused rather than shrunk. Pins craft-libs f03ec27 (craft-libs#28); deny.toml allows the storytold/winprint.rs fork and adds a webpki-root-certs licence exception and a RUSTSEC-2024-0370 ignore for winprint's build-dependencies. An earlier craft-print revision was checked in Windows Sandbox under enforced WDAC: printers listed, CLI and desktop jobs spooled, and no powershell.exe in the 4688 audit. The final pinned revision passed craft-libs Windows CI, including a real paused-queue job; that Sandbox run has not been repeated. Estimates unchanged. - **2026-10-12 (M13, CLI robustness scans):** `pdfcraft-cli check` visits a directory once even when input roots overlap or directory symlinks lead back into the tree. PDFs reached through file symlinks remain accepted. Three real CLI regressions cover overlapping roots, a directory cycle and directory/file aliases. Estimates unchanged. - **2026-10-12 (M4, Type 3 extraction fidelity):** Extract and Split preserve shared image/resource dictionaries reached through Type 3 glyphs, including nested forms, patterns and soft masks. A bounded object-graph walk protects unknown glyph content; unreadable pages/forms retain their glyph resources, and shared explicit fonts are visited once. Separate page dictionaries still prune unused images. Synthetic save/reopen regressions and an opt-in Poppler pixel oracle cover resource ownership, nested forms, cycles, limits and repeated fonts. Estimates unchanged. @@ -165,7 +167,6 @@ Ranked; detail and the full milestone table in [docs/roadmap.md](docs/roadmap.md - **2026-10-12 (M1, #1339):** An incremental save of an unchanged classic-table file used to append `xref` and then `trailer` with no subsection, which qpdf reports as a damaged file. The section now has a zero-length subsection, so no object entry changes and a trailer-only edit is still written. Estimates unchanged. - **2026-10-12 (M12, auto-tag preview):** The engine and `accessibility_autotag_preview` propose paragraph and large-heading roles for bounded text blocks on one page, with locations and reasons. Every proposal needs review; images remain unclassified. No PDF tags are written yet. Synthetic tool tests cover normal text, a larger heading, bounds and unchanged source bytes. Estimates unchanged. - **2026-10-12 (M10, editing OCR text on scans):** Editing a recognised word on a scanned page now changes what the page shows. Before, the rewrite stayed invisible OCR text, so the scan still showed the old word; on a form, the whole OCR layer also grouped into one paragraph that rewrapped when one word changed. OCR words now group into phrases (a table cell or a tab stop splits them, and lines stay apart); an edit draws the phrase visibly in the scan's sampled ink colour over a cover in the sampled paper colour, keeping each word's width and growing rightwards. The editor covers the scanned word while typing. OCR words are now sized from their letters (a capitals-only word's box spans the cap height, not the full ascender-descender span), so recognised and rewritten text is as tall as the scanned word and sits on its baseline. Five engine tests on synthetic scans and a kittest UI test; `ocr.editable-text-output` is partial. -- **2026-10-12 (M2, Lab Bradford follow-up):** Lab white-point adaptation scales Bradford LMS cone responses using LMS white-point ratios. Independent D50 and equal-energy neutral/chromatic render oracles, D65 identity, direct/Indexed consistency with asymmetric chromatic Range, and degenerate-cone fallback cover the correction. CalRGB and the merged Indexed/Range scaling retain their behavior. Estimates unchanged. - **2026-10-12 (community, M14, recovery metadata):** A recovery snapshot whose metadata is missing, damaged or names another snapshot is no longer deleted when the folder is listed: it is offered for recovery without an original path (Save asks for a destination), and encrypted snapshots still ask for their password. Recovering one writes fresh metadata in place of the damaged file, and clearing the folder also removes metadata left without a snapshot. Before, a failed metadata write meant the next start deleted the finished snapshot. Synthetic regressions cover the failed write, missing, corrupt, mismatched and encrypted cases. Estimates unchanged. - **2026-10-12 (M7, Arabic ActualText):** Add text records each shaped line in typing order with `/ActualText`, so copy and search preserve mixed Arabic, Latin, digits and brackets. Edit text keeps the logical order supplied by `/ActualText` instead of reversing Arabic or Hebrew a second time. Adjacent visual glyph runs retain their own bidi recovery. Font-independent tests cover Arabic marks, numbers, Latin words, reopen and complete replacement; automation checks saved editor text and unchanged rendering. Font fallback and bidi typing remain separate gaps; estimates unchanged. - **2026-10-12 (M5, Fill & Sign text size):** The active Fill & Sign toolbar now chooses 4–300 pt for new text and dates; the in-place editor and saved annotation use that size, which persists in local settings. `fill_sign_add` accepts the same `font_size`. Feature and readiness estimates unchanged. @@ -198,8 +199,6 @@ Ranked; detail and the full milestone table in [docs/roadmap.md](docs/roadmap.md Newest first: the date, what moved, and the new overall estimate. -- **2026-10-12 (M3, GNOME title bar, #553):** On GNOME's Wayland session, whose compositor draws no window frames (it offers no `zxdg_decoration_manager_v1`), PdfCraft no longer shows winit's fallback title bar: it turns the frame off and the tab strip becomes the header bar, as in GNOME's own apps. Minimize, maximize/restore and close are drawn in Adwaita's style, in the order and on the side GNOME's `button-layout` names (Fedora's default shows only close); the window's edges and corners resize it, and a hairline outlines it while it isn't maximized. Preferences ▸ Use system title bar (shown only there) gives the window back winit's frame at once, without a restart (part of #1001), and `PDFCRAFT_TITLEBAR=app|system` overrides the choice. KDE, Sway, Hyprland, COSMIC and X11 keep the frame their desktop draws. Not done: right-clicking the header bar doesn't open GNOME's window menu (egui can't ask for it), the window has no shadow or rounded corners, the resize edges lie just inside the window rather than outside it, and Windows still uses its system frame (the rest of #1001). Estimates unchanged. -- **2026-10-12 (M0, build label):** A local or patched build can carry a label, set at compile time with `PDFCRAFT_BUILD_LABEL`: `pdfcraft --version`, `pdfcraft-cli --version`, About and the log show `0.7.1 (titlebar)`, and `packaging/linux/package.sh` names the files `pdfcraft-0.7.1-titlebar-…` and makes the .rpm/.deb release `1.titlebar`, which upgrades over the release of the same version (and the next release over it). The version itself is unchanged, so the update check still compares it with published releases. Unlabelled builds are as before. Estimates unchanged. - 2026-10-11: Organize Pages shows an editable, synchronized physical page-range selection (#1092), with bounded validation and UI/operation regression coverage; overall estimate unchanged. - **2026-10-11 (M5.7, scanned signatures, #1110):** Fill & Sign ▸ Add signature has a Scan tab: a phone photo of a signature on paper is framed automatically (all words; table, sheet edge and dust ignored; a sideways signature turned upright), the frame can be moved, resized or redrawn, the photo turned, and an ink-sensitivity slider picks up faint ink. A morphological paper estimate removes shadows and uneven light, and the trimmed ink is saved and reused like an image signature. Photos and images can also be dropped on the Image and Scan tabs. Photos keep the image-signature limits (#1124: a 4 MiB file, up to 32 megapixels decoded, scaled down to 4 megapixels), so a scan never processes more than 4 megapixels. `fill_sign_add` takes `scan` and `sensitivity`. Synthetic engine, UI and automation tests; checked by hand on real phone photos. Milestone and effort estimates unchanged. @@ -427,8 +426,6 @@ Newest first: the date, what moved, and the new overall estimate. | Date | Change | Summary | |---|---|---| -| 2026-10-12 | minor | M3/#1364 candidate: absolute local GoToR links require desktop consent or headless allow_absolute; existing relative navigation and validation retained. Estimates unchanged. | -| 2026-10-12 | minor | M8: redaction retires inherited `/Resources` so a parent `/Pages` can't keep a removed XObject reachable; only redacted pages that inherit are pinned (one shared reference), unredacted pages are untouched; estimates unchanged | | 2026-10-12 | minor | M7/#1200 candidate: bounded local GoToR opening, root-confined automation, and action-preserving appearance edits; named destinations and window behavior remain partial; estimates unchanged. | | 2026-10-12 | minor | Exclusive image crops resize with their pixels across nested states, intervening operators and content streams; shared clips remain fixed. Synthetic engine/tool regressions and private image save/reopen checks; estimates unchanged. | | 2026-10-11 | minor | M10: borderless inferred tables and positioned invoice watermarks (#773); estimates unchanged. | diff --git a/crates/engine/src/dates.rs b/crates/engine/src/dates.rs index e26d9ec60a..da1f5937e8 100644 --- a/crates/engine/src/dates.rs +++ b/crates/engine/src/dates.rs @@ -56,7 +56,7 @@ const AR_DAYS: [&str; 7] = ["الأحد", "الاثنين", "الثلاثاء", /// The languages month and weekday names can be written in (Preferences ▸ Date format ▸ Language): /// the interface languages, in the same order and with the same names. -pub static DATE_LANGUAGES: [DateLanguage; 22] = [ +pub static DATE_LANGUAGES: [DateLanguage; 24] = [ DateLanguage { code: "en", name: "English", @@ -360,6 +360,54 @@ pub static DATE_LANGUAGES: [DateLanguage; 22] = [ days: ["sekmadienis", "pirmadienis", "antradienis", "trečiadienis", "ketvirtadienis", "penktadienis", "šeštadienis"], days_short: ["sk", "pr", "an", "tr", "kt", "pn", "št"], }, + // Indonesian. Month and weekday names are the same with and after a day number, so + // `months_with_day` is `None`. + DateLanguage { + code: "id", + name: "Bahasa Indonesia", + months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], + months_with_day: None, + months_short: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des"], + days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], + days_short: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], + }, + // Vietnamese: the month name is `tháng Một` with a day number and `Tháng Một` standing + // alone, as in English. + DateLanguage { + code: "vi", + name: "Tiếng Việt", + months: [ + "Tháng Một", + "Tháng Hai", + "Tháng Ba", + "Tháng Tư", + "Tháng Năm", + "Tháng Sáu", + "Tháng Bảy", + "Tháng Tám", + "Tháng Chín", + "Tháng Mười", + "Tháng Mười Một", + "Tháng Mười Hai", + ], + months_with_day: Some([ + "tháng Một", + "tháng Hai", + "tháng Ba", + "tháng Tư", + "tháng Năm", + "tháng Sáu", + "tháng Bảy", + "tháng Tám", + "tháng Chín", + "tháng Mười", + "tháng Mười Một", + "tháng Mười Hai", + ]), + months_short: ["Thg 1", "Thg 2", "Thg 3", "Thg 4", "Thg 5", "Thg 6", "Thg 7", "Thg 8", "Thg 9", "Thg 10", "Thg 11", "Thg 12"], + days: ["Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"], + days_short: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"], + }, ]; /// The date language for `code` (any case), or `None` when there's none. @@ -660,6 +708,25 @@ mod tests { assert_eq!(in_lang("dddd, mmmm", "cs"), "sobota, březen"); } + /// Indonesian month names are the same with and after a day number; Vietnamese lowers `tháng` + /// after a day number and keeps it capitalised standing alone. + #[test] + fn indonesian_and_vietnamese_month_and_weekday_names() { + assert_eq!(in_lang("d mmmm yyyy", "id"), "7 Maret 2026"); + assert_eq!(in_lang("mmmm yyyy", "id"), "Maret 2026"); + assert_eq!(in_lang("dddd, d mmmm yyyy", "id"), "Sabtu, 7 Maret 2026"); + assert_eq!(in_lang("d mmmm yyyy", "vi"), "7 tháng Ba 2026"); + assert_eq!(in_lang("mmmm yyyy", "vi"), "Tháng Ba 2026"); + assert_eq!(in_lang("ddd, d mmm", "vi"), "T7, 7 Thg 3"); + // Indonesian month names are Latin, so they reach a PDF; Vietnamese ones are not Western + // European, and the date-text path refuses them with what to use instead. + let mut s = Session::new().with_clock(|| 1_700_000_000); + s.set_date_language(Some("vi")).unwrap(); + assert!(s.today_text_for_pdf(Some("d mmmm yyyy"), None).unwrap_err().contains("dd.mm.yyyy")); + s.set_date_language(Some("id")).unwrap(); + assert_eq!(s.today_text_for_pdf(Some("d mmmm yyyy"), None).as_deref(), Ok("14 November 2023")); + } + #[test] fn the_session_writes_names_in_its_date_language() { let mut s = Session::new().with_clock(|| 1_700_000_000); diff --git a/crates/fonts/build.rs b/crates/fonts/build.rs index 9be57030e7..397f6fc384 100644 --- a/crates/fonts/build.rs +++ b/crates/fonts/build.rs @@ -1,8 +1,8 @@ //! Embeds the fonts of the optional craft-fonts build input (`CRAFT_FONTS_DIR`) as `CRAFT_FONTS`. //! The recipe is craft-fonts' `docs/integration.md`; unset, `CRAFT_FONTS` is empty. It only reads //! the local checkout (no network). On wasm32 it embeds only the UI faces (BIZ UDPGothic Regular -//! and any `Arab`, `Telu`, `Hebr` or `Thai` face), to keep the web build within hosting limits (Cloudflare Pages: -//! 25 MiB per file). +//! and any `Arab`, `Telu`, `Hebr`, `Thai` or `Deva` face), to keep the web build within hosting +//! limits (Cloudflare Pages: 25 MiB per file). use std::fmt::Write as _; use std::path::PathBuf; @@ -55,8 +55,14 @@ fn craft_fonts(dir: &std::path::Path) -> Result { let telugu = scripts.split(',').any(|s| s.trim() == "Telu"); // And the Hebrew ones (small), for Hebrew text and Edit text on the web. let hebrew = scripts.split(',').any(|s| s.trim() == "Hebr"); - let web_face = - (*family == "BIZ UDPGothic" && *style == "Regular") || arabic || telugu || hebrew || scripts.split(',').any(|s| s.trim() == "Thai"); + // Devanagari too, for the Hindi interface (one small face). + let devanagari = scripts.split(',').any(|s| s.trim() == "Deva"); + let web_face = (*family == "BIZ UDPGothic" && *style == "Regular") + || arabic + || telugu + || hebrew + || scripts.split(',').any(|s| s.trim() == "Thai") + || devanagari; if wasm && !web_face { continue; } diff --git a/crates/fonts/src/craft.rs b/crates/fonts/src/craft.rs index 099179cf2e..ca5aa24e05 100644 --- a/crates/fonts/src/craft.rs +++ b/crates/fonts/src/craft.rs @@ -75,6 +75,20 @@ pub fn document_thai_font() -> Option<&'static CraftFont> { ui_thai_fonts().into_iter().next() } +/// The `Deva` craft-fonts faces for Devanagari interface text (the Hindi catalog, file names, +/// document titles), in manifest order. Empty when built without craft-fonts or when its revision +/// has no Devanagari face; a desktop build then falls back to one font already installed on the +/// machine (`SYSTEM_DEVANAGARI_FALLBACK`), and the web build shows replacement boxes. +pub fn ui_devanagari_fonts() -> Vec<&'static CraftFont> { + CRAFT_FONTS.iter().filter(|f| f.covers("Deva")).collect() +} + +/// The face for Devanagari text written into PDFs: the first `Deva` face. `None` when built +/// without craft-fonts or when its revision has no Devanagari face. +pub fn document_devanagari_font() -> Option<&'static CraftFont> { + ui_devanagari_fonts().into_iter().next() +} + /// The `Hebr` craft-fonts faces for Hebrew interface text (file names, document titles, text /// being edited), in manifest order. Empty when built without craft-fonts or when it has no /// Hebrew face. diff --git a/crates/fonts/src/lib.rs b/crates/fonts/src/lib.rs index 622c609f69..140e5619cf 100644 --- a/crates/fonts/src/lib.rs +++ b/crates/fonts/src/lib.rs @@ -16,9 +16,9 @@ mod shaping; pub mod source_shaping; mod std14; pub use craft::{ - CRAFT_FONTS, CraftFont, SHIPPORI_MINCHO, document_arabic_font, document_hebrew_font, document_japanese_font, document_japanese_font_for_style, - document_japanese_fonts_for_style, document_thai_font, ui_arabic_fonts, ui_chinese_fonts, ui_cjk_fonts, ui_hebrew_fonts, ui_japanese_fonts, - ui_telugu_fonts, ui_thai_fonts, + CRAFT_FONTS, CraftFont, SHIPPORI_MINCHO, document_arabic_font, document_devanagari_font, document_hebrew_font, document_japanese_font, + document_japanese_font_for_style, document_japanese_fonts_for_style, document_thai_font, ui_arabic_fonts, ui_chinese_fonts, ui_cjk_fonts, + ui_devanagari_fonts, ui_hebrew_fonts, ui_japanese_fonts, ui_telugu_fonts, ui_thai_fonts, }; pub use script::{ GlyphError, GlyphOutline, INTER_REGULAR, MAX_SIGNATURE_CHARS, ScriptOutline, japanese_glyph, japanese_glyph_from, script_missing, script_outline, diff --git a/crates/ui-egui/src/i18n/id.tsv b/crates/ui-egui/src/i18n/id.tsv new file mode 100644 index 0000000000..f1f5475f29 --- /dev/null +++ b/crates/ui-egui/src/i18n/id.tsv @@ -0,0 +1,2583 @@ +# Indonesian (id) catalog. Columns, separated by a TAB: context source translation +# +# Clean-room translations of PdfCraft's English UI labels. Use standard Indonesian computing +# terms; keep product and format names (PdfCraft, PDF, PDF/A, OCR, XFA, Word...) unchanged. +# Indonesian does not inflect nouns for number, so @plural entries list one form. + Menu Menu + Edit Edit + Pages Halaman + View Lihat + Help Bantuan + Zoom Zoom + Actual size Ukuran sebenarnya + Zoom to page level Zoom ke tingkat halaman + Fit to width Sesuaikan lebar + Display theme Tema tampilan + Side panels Panel samping + Preferences Preferensi + Preferences… Preferensi… + Interface language Bahasa antarmuka + Interface size Ukuran antarmuka + Auto ({percent}%) Otomatis ({percent}%) + Identity Identitas + Name on new comments Nama untuk komentar baru + Open… Buka… + Open Recent Buka yang baru saja dibuka + Clear Recent Files Hapus File Terbaru + Remove from Recent Hapus dari Terbaru + No recent files Tidak ada file terbaru + New blank PDF PDF kosong baru + Create PDF from file… Buat PDF dari file… + Create PDF from images… Buat PDF dari gambar… + Create PDF from multiple files… Buat PDF dari beberapa file… + Create separate PDFs… Buat PDF terpisah… + Create PDF from clipboard Buat PDF dari papan klip + Combine files… Gabung file… + Save Simpan + Save as… Simpan sebagai… + Close file Tutup file + Close all Tutup semua + Revert Kembalikan + Print… Cetak… + Document properties… Properti dokumen… + Find… Cari… + Advanced search… Pencarian lanjutan… + Copy Salin + Cut Potong + Paste Tempel + Delete Hapus + Select all Pilih semua + Cancel Batal + OK OK + Apply Terapkan + Close Tutup + Back Kembali + Next Berikutnya + Previous Sebelumnya + Name Nama + File name Nama file + Location Lokasi + Browse… Telusuri… + Choose… Pilih… + Search Cari + Clear Bersihkan + Refresh Segarkan + Loading… Memuat… + Save changes? Simpan perubahan? + Don't save Jangan simpan + Page Halaman + Page {n} Halaman {n} + of dari + Fit one full page muatkan satu halaman penuh + Single page Satu halaman + Two-page view Tampilan dua halaman + Continuous scrolling Gulir terus-menerus + Page display Tampilan halaman + Default page display Tampilan halaman bawaan + Default zoom Zoom bawaan + Full screen mode Mode layar penuh + Read mode Mode baca + Comments Komentar + Comment Komentar + Add comment Tambah komentar + Delete comment Hapus komentar + Reply Balas + Highlight Sorot + Underline Garis bawah + Strikethrough Coret + Text Teks + Font Font + Size Ukuran + Color Warna + Opacity Opasitas + Width Lebar + Height Tinggi + Rotation Rotasi + More Lainnya + Settings Pengaturan + General Umum + Language Bahasa + Appearance Tampilan + Theme Tema + Light Terang + Dark Gelap + System Sistem + Open file Buka file + Save file Simpan file + Export Ekspor + Import Impor + Export to image… Ekspor ke gambar… + Export to text… Ekspor ke teks… + Export to Word… Ekspor ke Word… + Export to HTML… Ekspor ke HTML… + Export to RTF… Ekspor ke RTF… + Reduce file size… Perkecil ukuran file… + Optimize PDF… Optimalkan PDF… + Protect using password… Lindungi dengan kata sandi… + Remove security Hapus keamanan + Security properties… Properti keamanan… + Organize pages Atur halaman + Rotate pages… Putar halaman… + Delete pages Hapus halaman + Insert blank page Sisipkan halaman kosong + Insert pages from file… Sisipkan halaman dari file… + Replace pages… Ganti halaman… + Extract pages… Ekstrak halaman… + Split document… Pisah dokumen… + Number pages… Nomor halaman… + Bookmarks Bookmark + New bookmark Bookmark baru + Forms Formulir + Form fields Kolom formulir + Signatures Tanda tangan + Sign Tanda tangani + Fill & Sign Isi & Tanda Tangani + Accessibility Aksesibilitas + Help… Bantuan… + Check for updates… Periksa pembaruan… + About PdfCraft Tentang PdfCraft + Automatically Otomatis + Never Tidak pernah + Always Selalu + Yes Ya + No Tidak + On Aktif + Off Nonaktif + Enabled Aktif + Disabled Nonaktif + Required Wajib + Optional Opsional + None Tidak ada + Unknown Tidak diketahui + Error Kesalahan + Warning Peringatan + Information Informasi + Success Berhasil + Failed Gagal + File File + Folder Folder + Choose a file… Pilih file… + Choose a folder… Pilih folder… + Open folder Buka folder + Create folder Buat folder + Remove Hapus + Rename Ganti nama + Duplicate Duplikat + Move Pindahkan + Copy to clipboard Salin ke papan klip + Copied to clipboard Disalin ke papan klip + Undo Urungkan + Redo Ulangi + Keyboard shortcuts Pintasan keyboard + Find tools and commands… Cari alat dan perintah… + Take a snapshot Ambil cuplikan + Organize Atur + Comment and review Komentar dan tinjau + Prepare a form Siapkan formulir + Protect Lindungi + Print Cetak + Create Buat + Convert Konversi + Optimize Optimalkan + Measure Ukur + Redact Sensor + Search results Hasil pencarian + No results Tidak ada hasil + Page {n} of {total} Halaman {n} dari {total} + {n} pages selected {n} halaman dipilih + · not fixable here · tidak dapat diperbaiki di sini + (page {p}) (halaman {p}) + (searching… {s} of {p} pages) (mencari… {s} dari {p} halaman) + ({n} at {dpi} dpi, the largest size they can be drawn at) ({n} pada {dpi} dpi, ukuran terbesar yang dapat digambarnya) + ({s} not exported: {first}) ({s} tidak diekspor: {first}) + on page {p} di halaman {p} + · password-protected · dilindungi kata sandi + (none) (tidak ada) + , Expires: , Berlaku hingga: + 1 difference found 1 perbedaan ditemukan + 1 file 1 file + 1 file done 1 file selesai + 1 file needs attention 1 file perlu perhatian + 1 instance 1 instans + 1 issue 1 masalah + 1 mark 1 tanda + 1 page 1 halaman + 1 page selected 1 halaman dipilih + 1 page selected. 1 halaman dipilih. + 180 degrees 180 derajat + 9 digit, A letter, O letter or digit, X any character 9 angka, A huruf, O huruf atau angka, X karakter apa pun + ; 1 page already had text ; 1 halaman sudah memiliki teks + ; failed: {list} ; gagal: {list} + ; {n} pages already had text ; {n} halaman sudah memiliki teks + ? of {n} ? dari {n} + A clean-room, open-source PDF application written in Rust. MIT OR Apache-2.0. Aplikasi PDF clean-room sumber terbuka yang ditulis dengan Rust. MIT OR Apache-2.0. + Accessibility Checker Pemeriksa Aksesibilitas + Accessibility Checker Options Opsi Pemeriksa Aksesibilitas + Acrobat 3.0 and later (40-bit RC4) Acrobat 3.0 dan yang lebih baru (40-bit RC4) + Acrobat 5.0 and later (128-bit RC4) Acrobat 5.0 dan yang lebih baru (128-bit RC4) + Acrobat 7.0 and later (128-bit AES) Acrobat 7.0 dan yang lebih baru (128-bit AES) + Acrobat X and later (256-bit AES) Acrobat X dan yang lebih baru (256-bit AES) + Action name: Nama tindakan: + Actions Tindakan + Active Aktif + Actual Size Ukuran sebenarnya + Actual text Teks aktual + Add Tambah + Add Step Tambah Langkah + Add a comment Tambahkan komentar + Add a reply Tambahkan balasan + Add a sticky note here Tambahkan catatan tempel di sini + Add an Action Tambahkan Tindakan + Add at least two files Tambahkan setidaknya dua file + Add files… Tambahkan file… + Add folder Tambahkan folder + Add folder and subfolders Tambahkan folder dan subfolder + Add folder and subfolders… Tambahkan folder dan subfolder… + Add folder… Tambahkan folder… + Add open documents Tambahkan dokumen terbuka + Add the choices people pick from. Tambahkan pilihan-pilihan yang dapat dipilih orang. + Add the files to combine Tambahkan file yang akan digabung + Add the steps this action runs, in order. Tambahkan langkah-langkah yang dijalankan tindakan ini, secara berurutan. + Add to Trusted Certificates Tambahkan ke Sertifikat Tepercaya + Add to trusted certificates Tambahkan ke sertifikat terpercaya + Added 1 comment Ditambahkan 1 komentar + Added more than once Ditambahkan lebih dari sekali + Added {n} comments Ditambahkan {n} komentar + Adds invisible text over each word; the page image is not changed Menambahkan teks tak terlihat di atas setiap kata; gambar halaman tidak diubah + Advanced Lanjutan + Advanced Options {chevron} Opsi Lanjutan {chevron} + Align Ratakan + Align left Rata kiri + Align right Rata kanan + Alignment: Perataan: + All Semua + All document contents Seluruh isi dokumen + All document contents except metadata Seluruh isi dokumen kecuali metadata + All open documents Semua dokumen terbuka + All pages Semua halaman + All pages in document Semua halaman dalam dokumen + All pages in range Semua halaman dalam rentang + Allow Rich Text Formatting Izinkan Pemformatan Teks Kaya + Allow user to enter custom text Izinkan pengguna memasukkan teks kustom + Also recognize pages that already have text Kenali juga halaman yang sudah memiliki teks + Alternate text Teks alternatif + An action with this name already exists. Tindakan dengan nama ini sudah ada. + An open-source PDF workbench — local, private, and scriptable. Meja kerja PDF sumber terbuka — lokal, privat, dan dapat diotomatisasi dengan skrip. + Angle Sudut + Animation effects Efek animasi + Annotations, form fill-in, and digital signatures Anotasi, pengisian formulir, dan tanda tangan digital + Any Apa pun + Any except extracting pages Apa pun kecuali ekstraksi halaman + Anyone opening the document will need this password. It's applied when you save. Siapa pun yang membuka dokumen ini akan memerlukan kata sandi ini. Berlaku saat Anda menyimpan. + Appear behind page Tampil di belakang halaman + Appear on top of page Tampil di atas halaman + Appearance mode Mode tampilan + Appearance settings… Pengaturan tampilan… + Applies to 1 page Berlaku untuk 1 halaman + Applies to {n} pages Berlaku untuk {n} halaman + Apply redactions Terapkan penyensoran + Apply scale Terapkan skala + Asks GitHub for the latest release. Nothing is downloaded or installed automatically. Meminta rilis terbaru dari GitHub. Tidak ada yang diunduh atau dipasang secara otomatis. + At most Paling banyak + Attachments Lampiran + Attachments Panel and Page Panel Lampiran dan Halaman + Audit space usage… Audit penggunaan ruang… + Author Penulis + Auto Otomatis + Auto follows the system's text size. Pages always render at the display's full resolution. Otomatis mengikuti ukuran teks sistem. Halaman selalu dirender pada resolusi penuh layar. + Auto portrait/landscape Potret/landscape otomatis + Auto-rotate pages Putar halaman otomatis + Auto-size text to fit redaction region Sesuaikan ukuran teks otomatis agar pas dengan area penyensoran + Available Tersedia + Back side only Hanya sisi belakang + Back to all tools Kembali ke semua alat + Back to the document Kembali ke dokumen + Before each selected page (select pages in Organize) Sebelum setiap halaman yang dipilih (pilih halaman di Atur) + Before the number Sebelum nomor + Bicubic downsampling to Downsampling bikubik hingga + Binding Pengikatan + Binding: Pengikatan: + Black and white Hitam dan putih + Bold Tebal + Booklet Buku kecil + Booklet subset: Subset buku kecil: + Bookmark options Opsi bookmark + Bookmarks Panel and Page Panel Bookmark dan Halaman + Border Color: Warna Garis Batas: + Borders and Colors Garis Batas dan Warna + Both sides Kedua sisi + Bottom Bawah + Bottom: Bawah: + Box Kotak + Browser's print dialog Dialog cetak browser + Butt Rata + Button is checked by default Tombol tercentang secara bawaan + Buttons with the same name and value are selected in unison Tombol dengan nama dan nilai yang sama dipilih bersama-sama + Bytes Byte + Calibrate from two points Kalibrasi dari dua titik + Can't be read: {e} Tidak dapat dibaca: {e} + Cancelling… Membatalkan… + Case-sensitive Pezonan huruf besar-kecil + Category: Kategori: + Center Tengah + Center window on screen Pusatkan jendela di layar + Centre Tengah + Certify Sertifikasi + Change settings… Ubah pengaturan… + Change the colour of line art as well as text Ubah warna gambar garis serta teks + Change {what} Ubah {what} + Changes allowed Perubahan yang diizinkan + Character limit 0 means no limit. A comb of characters needs a limit. Batas karakter 0 berarti tanpa batas. Susunan karakter memerlukan batas. + Character spacing Spasi karakter + Check Again Periksa Lagi + Check again Periksa lagi + Check box is checked by default Kotak centang tercentang secara bawaan + Check for updates Periksa pembaruan + Check spelling Periksa ejaan + Check the pages Periksa halaman + Check the pages of {name}: {why} Periksa halaman {name}: {why} + Checking Options ({on} of 32 in all categories) Memeriksa Opsi ({on} dari 32 di semua kategori) + Checking for a newer version… Mencari versi yang lebih baru… + Choose a PNG or JPEG image (up to 4 MiB). Transparency is preserved. Pilih gambar PNG atau JPEG (hingga 4 MiB). Transparansi dipertahankan. + Choose a folder for the exported files Pilih folder untuk file yang diekspor + Choose a folder for the extracted pages Pilih folder untuk halaman yang diekstrak + Choose a folder for the results Pilih folder untuk hasil + Choose a folder for the searchable files Pilih folder untuk file yang dapat dicari + Choose a layout: Pilih tata letak: + Choose a stamp, then click on the page to place it. Pilih stempel, lalu klik pada halaman untuk menempatkan. + Choose an image Pilih gambar + Choose images Pilih gambar + Choose image… Pilih gambar… + Choose photo… Pilih foto… + Choose the digital ID that you want to use for signing: Pilih ID digital yang ingin Anda gunakan untuk menandatangani: + Circle Lingkaran + Clean Up Bersihkan + Clean-up Pembersihan + Clear All Hapus Semua + Clear all Hapus semua + Clear selection / close find Hapus pilihan / tutup pencarian + Click on the page to add text; each click starts a new box, and ✓ finishes. Drag items to move them, drag a corner to resize, double-click text to edit it. Klik pada halaman untuk menambahkan teks; setiap klik memulai kotak baru, dan ✓ menyelesaikannya. Seret item untuk memindahkannya, seret sudut untuk mengubah ukurannya, klik dua kali teks untuk mengeditnya. + Click the first point to begin. Klik titik pertama untuk memulai. + Click to sort, drag to move the column. Drag its edge to resize it. Klik untuk mengurutkan, seret untuk memindahkan kolom. Seret tepinya untuk mengubah ukurannya. + Click vertices. Enter or double-click finishes a perimeter or area. Click the first point to close an area. Klik titik sudut. Enter atau klik dua kali menyelesaikan perimeter atau area. Klik titik pertama untuk menutup area. + Clockwise 90 degrees 90 derajat searah jarum jam + Close (Esc) Tutup (Esc) + Close Tab Tutup Tab + Close panel Tutup panel + Closed arrow Panah tertutup + Collapse Ciutkan + Collapse all Ciutkan semua + Collapse all bookmarks Ciutkan semua bookmark + Collapse tag Ciutkan tag + Collate Susun + Color: Warna: + Colour Warna + Colours are remapped while rendering; the document itself never changes. Warna dipetakan ulang saat merender; dokumen itu sendiri tidak pernah berubah. + Comb of Comb dari + Combine the rest Gabungkan sisanya + Combined {n} files Menggabungkan {n} file + Coming in milestone Segera hadir di milestone + Comment and form data Komentar dan data formulir + Commenting, filling in form fields, and signing existing signature fields Memberi komentar, mengisi kolom formulir, dan menandatangani kolom tanda tangan yang ada + Comments & Forms Komentar & Formulir + Comments only Hanya komentar + Commit selected value immediately Langsung terapkan nilai yang dipilih + Common Properties Properti Umum + Compare Files Bandingkan File + Compare this file with an older version: Compare files… in All tools. Bandingkan file ini dengan versi lama: Bandingkan file… di Semua alat. + Compatibility Kompatibilitas + Compress document structure (object streams) Kompres struktur dokumen (object streams) + Compression Kompresi + Configure New Digital ID Konfigurasi ID Digital Baru + Confirm Password Konfirmasi Kata Sandi + Conformance level: Tingkat kesesuaian: + Continue Lanjutkan + Copies, two-sided printing and colour are chosen in the browser's print dialog. Jumlah salinan, cetak dua sisi, dan warna dipilih dalam dialog cetak browser. + Copies: Salinan: + Copy selected text Salin teks yang dipilih + Copy text Salin teks + Couldn't check for updates: {e} Tidak dapat memeriksa pembaruan: {e} + Couldn't open the printer's preferences: {e} Tidak dapat membuka preferensi printer: {e} + Counterclockwise 90 degrees 90 derajat berlawanan arah jarum jam + Country/Region Negara/Wilayah + Create Custom Stamp Buat Stempel Kustom + Create Link Buat Tautan + Create PDF Comment Summary Buat Ringkasan Komentar PDF + Create PDF comment summary… Buat ringkasan komentar PDF… + Create PDF from images Buat PDF dari gambar + Create a new Digital ID (self-signed, saved to a password-protected file) Buat ID digital baru (ditandatangani sendiri, disimpan dalam file terlindungi kata sandi) + Create accessibility report Buat laporan aksesibilitas + Create custom stamp… Buat stempel kustom… + Create {what} Buat {what} + Created a PDF from {n} files Membuat PDF dari {n} file + Created a PDF from {n} files; left out: {names} Membuat PDF dari {n} file; tidak disertakan: {names} + Creates 1 file from {n} pages. Membuat 1 file dari {n} halaman. + Creates {f} files from {n} pages. Membuat {f} file dari {n} halaman. + Crop (% trimmed from each side) Potong (% dipangkas dari setiap sisi) + Currency symbol: Simbol mata uang: + Current page Halaman saat ini + Current page ({n}) Halaman saat ini ({n}) + Current page — type a page number or label (such as iv) and press Enter Halaman saat ini — ketik nomor atau label halaman (misalnya iv) lalu tekan Enter + Custom Kustom + Custom scale: Skala kustom: + Custom text: Teks kustom: + Custom: Kustom: + Cut and stack Potong dan tumpuk + Cut marks Tanda potong + DPI sets the printed page size without resampling the image. DPI mengatur ukuran halaman cetak tanpa mengambil ulang sampel gambar. + Dark theme Tema gelap + Date format Format tanggal + Decimal places: Tempat desimal: + Decimals Desimal + Declared conformance: {shown} Kesesuaian yang dinyatakan: {shown} + Decorative figure Gambar dekoratif + Default Bawaan + Default Value: Nilai Bawaan: + Default workspace mode Mode ruang kerja bawaan + Default: Bawaan: + Delete page {label} Hapus halaman {label} + Delete pages (Delete) Hapus halaman (Hapus) + Delete pages after extracting Hapus halaman setelah mengekstrak + Delete selected pages (Organize) Hapus halaman yang dipilih (Atur halaman) + Delete stamp Hapus stempel + Delete {o} Hapus {o} + Describe the figure Jelaskan gambarnya + Description Deskripsi + Description: Deskripsi: + Details Detail + Diamond Belah ketupat + Digital ID ID Digital + Digital ID password Kata sandi ID Digital + Direction: Arah: + Discard Buang + Discard Objects Buang Objek + Discard User Data Buang Data Pengguna + Discard alternate images Buang gambar alternatif + Discard document tags Buang tag dokumen + Discard embedded page thumbnails Buang thumbnail halaman yang tertanam + Discard embedded print settings Buang pengaturan cetak yang tertanam + Discard this text (Esc) Buang teks ini (Esc) + Dismiss Tutup + Distinguished name Nama distinguished + Distribute Distribusikan + Document Dokumen + Document Properties Properti Dokumen + Document Title Judul Dokumen + Document and markups Dokumen dan anotasi + Document and stamps Dokumen dan stempel + Document language Bahasa dokumen + Document properties ({key}) Properti dokumen ({key}) + Documents and view Dokumen dan tampilan + Done Selesai + Done adding text Selesai menambahkan teks + Download Unduh + Downsample to Turunkan sampel ke + Drag the selection to move it. Esc clears the selection. Seret pilihan untuk memindahkannya. Esc menghapus pilihan. + Drag to reorder Seret untuk mengurutkan ulang + Draw Gambar + Draw your {what} below. Gambar {what} Anda di bawah. + Drawing scale changes. Use Actual size for full-scale plans. Skala gambar berubah. Gunakan Ukuran sebenarnya untuk gambar berskala penuh. + Drop PDFs, images, text files or folders here, or choose them. Jatuhkan PDF, gambar, file teks, atau folder di sini, atau pilih dari komputer. + Duplicate "{name}" onto: Duplikasi "{name}" ke: + Duplicate Field Duplikasi Kolom + Duplicate… Duplikasi… + Dynamic Dinamis + Dynamic XFA form laid out from its template: {pages}, {fields}. Formulir XFA dinamis ditata dari templatenya: {pages}, {fields}. + Each file holds as many of the {n} pages as fit. Setiap file memuat sebanyak mungkin dari {n} halaman yang muat. + Each image is measured where pages draw it; an image is replaced only if the result is smaller. Setiap gambar diukur di tempat halaman menampilkannya; gambar hanya diganti jika hasilnya lebih kecil. + Each image once, named after the document and page. JPEG images are saved unchanged; others as PNG. Setiap gambar sekali, diberi nama sesuai dokumen dan halamannya. Gambar JPEG disimpan apa adanya; lainnya sebagai PNG. + Earlier in tab order Lebih awal dalam urutan tab + Edit Action Ubah Tindakan + Edit image Edit gambar + Edit text… Edit teks… + Edit… Edit… + Email Address Alamat Email + Enable Acrobat JavaScript Aktifkan Acrobat JavaScript + Enable copying of text, images, and other content Izinkan penyalinan teks, gambar, dan konten lainnya + Enable text access for screen reader devices for the visually impaired Aktifkan akses teks untuk pembaca layar bagi tuna netra + Encrypt Enkripsi + Endpoints Endpoint + Enhance page Tingkatkan halaman + Enter the password that opens it Masukkan kata sandi untuk membukanya + Enter the permissions password to allow combining Masukkan kata sandi izin untuk mengizinkan penggabungan + Entire page Seluruh halaman + Even Pages Only Hanya Halaman Genap + Even and Odd Pages Halaman Genap dan Ganjil + Even pages only Hanya halaman genap + Every PDF, image and text file in the folder Semua file PDF, gambar, dan teks di dalam folder + Every PDF, image and text file in the folder and the folders inside it Semua file PDF, gambar, dan teks di dalam folder beserta folder di dalamnya + Example: {sample} Contoh: {sample} + Exclude images smaller than Kecualikan gambar yang lebih kecil dari + Expand Perluas + Expand all Perluas semua + Expand all bookmarks Perluas semua bookmark + Expand tag Perluas tag + Expand top-level bookmarks Perluas bookmark tingkat atas + Explain Jelaskan + Export All Images Ekspor Semua Gambar + Export Value: {on} Nilai Ekspor: {on} + Export all to data file… Ekspor semua ke file data… + Export certificate… Ekspor sertifikat… + Export comments Ekspor komentar + Export form data Ekspor data formulir + Export stopped: {e} Ekspor dihentikan: {e} + Export to Image Ekspor ke Gambar + Export to Text Ekspor ke Teks + Exported 1 image Mengekspor 1 gambar + Exported the text of 1 page Mengekspor teks dari 1 halaman + Exported the text of {n} pages Mengekspor teks dari {n} halaman + Exported {n} images Mengekspor {n} gambar + Exporting… {d} of {t} Mengekspor… {d} dari {t} + Export… Ekspor… + Extract pages as separate files Ekstrak halaman sebagai file terpisah + Extract pages to a new document Ekstrak halaman ke dokumen baru + Extracted 1 page Mengekstrak 1 halaman + Extracted {n} pages Mengekstrak {n} halaman + Field is used for file selection Kolom ini digunakan untuk pemilihan file + Field names (comma-separated) Nama kolom (dipisahkan koma) + Field names with + - * / and parentheses; put \\ before spaces in names. Nama kolom dengan + - * / dan tanda kurung; letakkan \\ sebelum spasi dalam nama. + Field value is in range: Nilai kolom berada dalam rentang: + Field value is not validated Nilai kolom tidak divalidasi + Field: {field} on page {p} Kolom: {field} pada halaman {p} + Fields to reset (comma-separated; empty: all) Kolom yang akan direset (dipisahkan koma; kosong: semua) + Figure {i} of {n}{page} Gambar {i} dari {n}{page} + File (.p12, .pfx) File (.p12, .pfx) + File Name Nama File + File size Ukuran file + Files are combined from top to bottom. Leave Pages empty to take every page. File digabungkan dari atas ke bawah. Biarkan Halaman kosong untuk mengambil semua halaman. + Files are combined in the order shown. Drag them to change it. File digabungkan sesuai urutan yang ditampilkan. Seret untuk mengubah urutannya. + Files for {name} File untuk {name} + Files you open in PdfCraft appear here. Drop a PDF anywhere to open it. File yang Anda buka di PdfCraft akan muncul di sini. Jatuhkan PDF di mana saja untuk membukanya. + Fill & Sign dates Tanggal Isi & Tanda Tangani + Fill & Sign signature Tanda tangan Isi & Tanda Tangani + Fill Color: Warna Isian: + Fill colour Warna isian + Fill colour: none Warna isian: tidak ada + Filling in form fields and signing existing signature fields Mengisi kolom formulir dan menandatangani kolom tanda tangan yang ada + Filter comments Filter komentar + Find a tag Cari tag + Find options Opsi pencarian + Find text Cari teks + Find tools and commands Cari alat dan perintah + Finding document fonts… Mencari font dokumen… + Finish or discard the text being edited before selecting several objects. Selesaikan atau buang teks yang sedang diedit sebelum memilih beberapa objek. + First / last page Halaman pertama / terakhir + Fit Sesuaikan + Fit Height Sesuaikan Tinggi + Fit Page Sesuaikan Halaman + Fit Visible Sesuaikan Tampil + Fit Width Sesuaikan Lebar + Fit to height Sesuaikan tinggi + Fit to page Sesuaikan halaman + Fix Perbaiki + Fixed what could be fixed; 1 problem remains Memperbaiki yang bisa diperbaiki; 1 masalah tersisa + Fixed what could be fixed; {n} problems remain Memperbaiki yang bisa diperbaiki; {n} masalah tersisa + Flatten Fill & Sign when saving Ratakan Isi & Tanda Tangani saat menyimpan + Flip Horizontal Balik Horizontal + Flip Vertical Balik Vertikal + Flip horizontal Balik horizontal + Flip on long edge Balik pada sisi panjang + Flip on short edge Balik pada sisi pendek + Flip vertical Balik vertikal + Folders Folder + Font Size: Ukuran Font: + Font colour: Warna font: + Font size 0 uses automatic sizing. Ukuran font 0 menggunakan ukuran otomatis. + Font size: Ukuran font: + Font: Font: + Font: Helvetica Font: Helvetica + Fonts Font + For page sizes and margins. Untuk ukuran halaman dan margin. + Form data and PDF forms Data formulir dan formulir PDF + Form fields are flattened: their values stay visible. Saving rewrites the whole file. Kolom formulir diratakan: nilainya tetap terlihat. Menyimpan menulis ulang seluruh file. + Form fields only Hanya kolom formulir + Form fill-in and digital signatures Pengisian formulir dan tanda tangan digital + Format Format + Format text Format teks + Format: Format: + From Dari + From a PDF page or an image Dari halaman PDF atau gambar + From colour Dari warna + From {file} Dari {file} + From: Dari: + Front side only Hanya sisi depan + Get help, share feedback and follow development on Discord. Dapatkan bantuan, berikan masukan, dan ikuti pengembangan di Discord. + Go to a page view Ke tampilan halaman + Go to page {p} Ke halaman {p} + Go to the page Ke halaman tersebut + Go to this result Ke hasil ini + Graphic Grafis + Greyscale Skala abu-abu + Grid view Tampilan kisi + Hand (H) Tangan (H) + Has JavaScript actions (run in M6) Punya tindakan JavaScript (jalankan di M6) + Height: Tinggi: + Hide field highlights Sembunyikan sorotan kolom + Hide layer Sembunyikan lapisan + Hide menu bar Sembunyikan bilah menu + Hide password Sembunyikan kata sandi + Hide toolbars Sembunyikan bilah alat + Hide window controls Sembunyikan kontrol jendela + High Resolution Resolusi Tinggi + High resolution Resolusi tinggi + Highlight Style: Gaya Sorotan: + Highlight fields Sorot kolom + Home Beranda + Horizontal Horizontal + Horizontal reversed Horizontal terbalik + Horizontal scale Skala horizontal + Icon Ikon + Images and text Gambar dan teks + Images and text (converted to PDF) Gambar dan teks (dikonversi ke PDF) + Import list… Daftar impor… + Includes unsaved changes Termasuk perubahan yang belum disimpan + Indent Indentasi + Initial View Tampilan Awal + Ink sensitivity Sensitivitas tinta + Insert Date Sisipkan Tanggal + Insert Page Number Sisipkan Nomor Halaman + Insert a blank page after the selection Sisipkan halaman kosong setelah pilihan + Insert a file at the end Sisipkan file di akhir + Insert a file before page {label} Sisipkan file sebelum halaman {label} + Insert pages from a file… Sisipkan halaman dari file… + Inserting, deleting, and rotating pages Menyisipkan, menghapus, dan memutar halaman + Installed fonts… Font terpasang… + Intersections Irisan + Invisible Rectangle Persegi panjang tak terlihat + Issued by: Diterbitkan oleh: + Italic Miring + Item List Daftar Item + Item: Item: + Items marked Ready work today. Item yang ditandai Siap sudah berfungsi hari ini. + Its security settings don't allow copying pages Pengaturan keamanannya tidak mengizinkan penyalinan halaman + JavaScript Console Konsol JavaScript + JavaScript is turned off (Preferences ▸ JavaScript). JavaScript dimatikan (Preferensi > JavaScript). + JavaScript, e.g. getField("total").value JavaScript, misalnya getField("total").value + Join our Discord Gabung ke Discord kami + Join the ArtCraft community Gabung ke komunitas ArtCraft + Justify Ratakan kanan-kiri + Keep source fonts Pertahankan font sumber + Keep tool selected Pertahankan alat terpilih + Keep tool selected: on Pertahankan alat terpilih: aktif + Key Algorithm Algoritma kunci + Keychain · Gudang kunci · + Label Label + Labels Label + Labels: {preview}. Later pages keep their labels. Label: {preview}. Halaman berikutnya tetap memakai labelnya. + Landscape Landskap + Landscape Pages Halaman Landskap + Landscape and Portrait Pages Halaman Landskap dan Potret + Larger pages Halaman lebih besar + Later Nanti + Later in tab order Nanti dalam urutan tab + Layers Lapisan + Layers Panel and Page Panel Lapisan dan Halaman + Layout and Magnification Tata Letak dan Pembesaran + Leave out files that can't be read? Lewati file yang tidak dapat dibaca? + Left Kiri + Left Edge Tepi Kiri + Left out: {names} Dilewati: {names} + Left: Kiri: + Light theme Tema terang + Limit of Batas + Line Style: Gaya garis: + Line Thickness: Ketebalan garis: + Line ending Akhir baris + Line spacing Spasi baris + Line thickness Ketebalan garis + Link Action Tindakan Tautan + Link Appearance Tampilan Tautan + Link Properties Properti Tautan + Link Type: Jenis tautan: + List view Tampilan daftar + Load font… Muat font… + Locked Terkunci + Looking for PDFs… Mencari PDF… + Looking for printers… Mencari printer… + Low Resolution (150 dpi) Resolusi Rendah (150 dpi) + Low resolution Resolusi rendah + Magnification Pembesaran + Make Current Properties Default Jadikan Properti Saat Ini sebagai Bawaan + Margins Margin + Mark Page Range Tandai Rentang Halaman + Mark as comments Tandai sebagai komentar + Mark with checkmark Tandai dengan centang + Marked Ditandai + Mask: Masker: + Match page at 100% Samakan halaman pada 100% + Medium Sedang + Midpoints Titik tengah + Mixed Campuran + Modified Diubah + More options Opsi lainnya + More options: Opsi lainnya: + More ways to add files Cara lain untuk menambahkan file + Mouse wheel scroll speed Kecepatan gulir dengan roda mouse + Move down Pindahkan ke bawah + Move earlier Pindahkan lebih awal + Move later Pindahkan lebih nanti + Move up Pindahkan ke atas + Multi-line Multi-baris + Multiple Banyak + Multiple selection Pilihan ganda + Multiple words or phrases Banyak kata atau frasa + Name: Nama: + Navigation tab Tab navigasi + Needs manual check Perlu pemeriksaan manual + Negative number style: Gaya angka negatif: + New Action Tindakan Baru + New Action… Tindakan Baru… + New bookmark ({key}) Bookmark baru ({key}) + New file: File baru: + Next ({key}) Berikutnya ({key}) + Next / previous match Kecocokan berikutnya / sebelumnya + Next figure Gambar berikutnya + Next month Bulan berikutnya + Next page Halaman berikutnya + Next sheet Lembar berikutnya + Next view Tampilan berikutnya + No PDFs in this folder yet Belum ada PDF di folder ini + No actions Tidak ada tindakan + No changes allowed Perubahan tidak diizinkan + No changes to save Tidak ada perubahan untuk disimpan + No check has run yet. Pemeriksaan belum pernah dijalankan. + No color Tidak ada warna + No colour Tidak ada warna + No comments match. Tidak ada komentar yang cocok. + No comments yet. Belum ada komentar. + No differences in the text. Tidak ada perbedaan pada teks. + No digital IDs yet. Belum ada ID digital. + No documents are open Tidak ada dokumen yang terbuka + No file chosen Tidak ada file yang dipilih + No fill Tanpa isian + No fonts are referenced by the pages. Halaman tidak merujuk font apa pun. + No issues found Tidak ada masalah ditemukan + No limit Tanpa batas + No matches Tidak ada kecocokan + No matches. Tidak ada kecocokan. + No matching tools Tidak ada alat yang cocok + No openly licensed document fonts found. Load a font file. Tidak ditemukan font dokumen berlisensi terbuka. Muat sebuah file font. + No pages selected Tidak ada halaman yang dipilih + No photo chosen Tidak ada foto yang dipilih + No preview Tanpa pratinjau + No problems found: the document conforms to {level}. Tidak ada masalah ditemukan: dokumen memenuhi {level}. + No security Tanpa keamanan + No sheets Tidak ada lembar + No signature was found in the frame. Move the frame over the signature or raise the ink sensitivity. Tidak ada tanda tangan di dalam bingkai. Pindahkan bingkai ke atas tanda tangan atau naikkan sensitivitas tinta. + No status has been set. Status belum ditetapkan. + None (prefix only) Tidak ada (hanya awalan) + None found Tidak ditemukan + None — everything is allowed Tidak ada — semuanya diizinkan + Not allowed Tidak diizinkan + Not present Tidak ada + Nothing to redo Tidak ada yang perlu diulang + Nothing to undo Tidak ada yang perlu diurutkan + Number Nomor + Number of pages Jumlah halaman + Number pages Nomor halaman + Odd Pages Only Halaman Ganjil Saja + Odd pages only Hanya halaman ganjil + Offset from centre Offset dari titik tengah + Old file: File lama: + One word or phrase per line Satu kata atau frasa per baris + One {f} file per page, named after the document. Satu file {f} per halaman, diberi nama sesuai dokumen. + Only change the colour of black text or line art Ubah hanya warna teks hitam atau gambar garis + Only checked properties will change. Mixed means the selected fields have different values. Hanya properti yang dicentang yang akan berubah. Campuran berarti kolom yang dipilih memiliki nilai berbeda. + Only the page content changes: links, comments, form fields and bookmarks on the original pages stay. Hanya isi halaman yang berubah: tautan, komentar, kolom formulir dan bookmark pada halaman asli tetap. + Open Buka + Open a PDF ({key}) Buka PDF ({key}) + Open a PDF to measure it. Buka PDF untuk mengukurnya. + Open a document first Buka dokumen terlebih dahulu + Open a web page Buka halaman web + Open arrow Panah terbuka + Open email app Buka aplikasi email + Open in Full Screen mode Buka dalam mode Layar Penuh + Open in a new tab Buka di tab baru + Open link Buka tautan + Open the file as it was saved then Buka file seperti saat disimpan + Open the older version first Buka versi lama terlebih dahulu + Open this web page? Buka halaman web ini? + Open to page Buka ke halaman + Opened, but its security settings don't allow combining. Enter the permissions password. Terbuka, tetapi pengaturan keamanannya tidak mengizinkan penggabungan. Masukkan kata sandi izin. + Opens the printer driver's preferences. They are saved for every print from this computer; the copies, two-sided, grayscale and paper chosen here still apply. Membuka preferensi driver printer. Preferensi ini tersimpan untuk setiap cetak dari komputer ini; jumlah salinan, cetak dua sisi, skala abu-abu dan kertas yang dipilih di sini tetap berlaku. + Optimizing… cleaning up Mengoptimalkan… membersihkan + Optimizing… image {d} of {t} Mengoptimalkan… gambar {d} dari {t} + Optimizing… merging identical objects Mengoptimalkan… menggabungkan objek yang identik + Optimizing… removing user data Mengoptimalkan… menghapus data pengguna + Optimizing… writing the copy Mengoptimalkan… menulis salinan + Optional: needs an AI provider you configure Opsional: memerlukan penyedia AI yang Anda konfigurasi + Options… Opsi… + Organization Name Nama Organisasi + Organizational Unit Unit Organisasi + Orientation: Orientasi: + Original Asli + Original: replace pages Asli: ganti halaman + Other colour… Warna lain… + Outdent Kurangi indentasi + Output Keluaran + Output appears here. Keluaran akan muncul di sini. + Output intent: {list} Niat keluaran: {list} + Overlap: Tumpang tindih: + Owner password (no restrictions apply) Kata sandi pemilik (tidak ada pembatasan) + PDF Optimizer Pengoptimal PDF + PDF or image PDF atau gambar + PDF page: {size} Halaman PDF: {size} + PDF scale: {scale}% Skala PDF: {scale}% + PDF, images and text PDF, gambar dan teks + Page Only Halaman Saja + Page Range Options Opsi Rentang Halaman + Page Sizing & Handling Ukuran & Penanganan Halaman + Page background Latar halaman + Page display: {layout} Tampilan halaman: {layout} + Page layout Tata letak halaman + Page navigation Navigasi halaman + Page number Nomor halaman + Page order: Urutan halaman: + Page size Ukuran halaman + Page {label} Halaman {label} + Page {p} of {n} Halaman {p} dari {n} + Pages Panel and Page Panel Halaman dan Halaman + Pages from Halaman dari + Pages of {name} to combine, e.g. 1-3, 6 Halaman dari {name} yang akan digabung, misalnya 1-3, 6 + Pages per file Halaman per file + Pages per sheet: Halaman per lembar: + Pages to Print Halaman yang Dicetak + Pages: Halaman: + Pages: {k} of {n} Halaman: {k} dari {n} + Paper: Kertas: + Part of Bagian dari + Password Kata sandi + Password required Kata sandi diperlukan + Password security Keamanan kata sandi + Password-protected Dilindungi kata sandi + Paste after Tempel setelah + Paths Lokasi + Pattern Pola + Patterns Pola + Patterns (graphics objects) Pola (objek grafis) + PdfCraft didn't shut down normally. These documents had changes that were autosaved: PdfCraft tidak berhenti secara normal. Dokumen-dokumen ini memiliki perubahan yang disimpan otomatis: + PdfCraft works offline. No telemetry, no account, and no cloud processing unless you add a provider. PdfCraft bekerja secara luring. Tidak ada telemetri, tidak ada akun, dan tidak ada pemrosesan awan kecuali Anda menambahkan penyedia. + PdfCraft {c} is up to date. PdfCraft {c} sudah terbaru. + PdfCraft {v} is available. PdfCraft {v} tersedia. + Percentage Persentase + Permissions password Kata sandi izin + Permitted actions after certifying Tindakan yang diizinkan setelah disertifikasi + Photo Foto + Pick a tool in the quick bar, or type above. Pilih alat di bilah cepat, atau ketik di atas. + Pictures on those pages are recognized too; words already in the page's text are not added again Gambar di halaman-halaman itu juga dikenali; kata yang sudah ada dalam teks halaman tidak ditambahkan lagi + Pin a folder to Home Sematkan folder ke Beranda + Pin a folder to list its newest PDFs here, such as where your scanner or a synced cloud drive saves them. Sematkan folder untuk menampilkan PDF terbarunya di sini, misalnya tempat pemindai atau drive cloud tersinkron Anda menyimpannya. + Pin a folder… Sematkan folder… + Plain text in reading order; pages are separated by form feeds. Teks biasa dalam urutan baca; halaman dipisahkan oleh form feed. + Planned Direncanakan + Planned for milestone Direncanakan untuk tonggak + Points from the page's bottom-left corner. Titik diukur dari sudut kiri bawah halaman. + Portrait Potret + Portrait Pages Halaman Potret + Post Kirim + Poster Poster + Prefix Awalan + Preview Pratinjau + Preview unavailable: {e} Pratinjau tidak tersedia: {e} + Preview: page {p} of {n} Pratinjau: halaman {p} dari {n} + Previous ({key}) Sebelumnya ({key}) + Previous / next page Halaman sebelumnya / berikutnya + Previous figure Gambar sebelumnya + Previous month Bulan sebelumnya + Previous page Halaman sebelumnya + Previous sheet Lembar sebelumnya + Previous view Tampilan sebelumnya + Print ({key}) Cetak ({key}) + Print in grayscale Cetak dalam skala abu-abu + Print page border Cetak bingkai halaman + Print, NextPage, PrevPage, FirstPage or LastPage Print, NextPage, PrevPage, FirstPage atau LastPage + Printer paper and scaling may differ. Check driver settings. Kertas dan penskalaan printer bisa berbeda. Periksa pengaturan driver. + Printer properties Properti printer + Printer: Printer: + Printing allowed Pencetakan diizinkan + Privacy Privasi + Properties… Properti… + Protect Using Password Lindungi dengan Kata Sandi + Protected: the combined file won't keep its security settings Dilindungi: file gabungan tidak akan mempertahankan pengaturan keamanannya + Quality Kualitas + Read Only Hanya Baca + Reading colours Warna pembacaan + Ready Siap + Reason Alasan + Recent Terbaru + Recent colours Warna terbaru + Recognize Text Kenali Teks + Recognized 1 word 1 kata dikenali + Recognized {n} words {n} kata dikenali + Recognized {w} words in 1 file {w} kata dikenali dalam 1 file + Recognized {w} words in {n} files {w} kata dikenali dalam {n} file + Recognizing text… file {d} of {t} Mengenali teks… file {d} dari {t} + Recognizing text… page {d} of {t} Mengenali teks… halaman {d} dari {t} + Recommended tools Alat yang direkomendasikan + Recover Pulihkan + Recover unsaved documents? Pulihkan dokumen yang belum disimpan? + Redact all Sensor semua + Redacted area fill colour: Warna isi area bersensor: + Redaction Tool Properties Properti Alat Sensor + Redaction code: Kode sensor: + Reload Muat ulang + Reload documents when their files change on disk Muat ulang dokumen saat file-nya berubah di disk + Remove checkmark Hapus centang + Remove invalid links and bookmarks Hapus tautan dan bookmark yang tidak valid + Remove page Hapus halaman + Remove unreferenced named destinations Hapus tujuan bernama yang tidak dirujuk + Remove unused objects and merge identical ones Hapus objek yang tidak terpakai dan gabungkan yang identik + Remove {name} Hapus {name} + Remove {name} from Recent Hapus {name} dari Terbaru + Remove {n} files Hapus {n} file + Remove {n} pages Hapus {n} halaman + Reopen Closed Tab Buka Ulang Tab yang Ditutup + Reopen the files that were open when PdfCraft last closed Buka kembali file yang terbuka saat PdfCraft terakhir ditutup + Repair log Log perbaikan + Repeat overlay text Ulangi teks hamparan + Replace Image… Ganti Gambar… + Replace Pages Ganti Halaman + Replace document colours Ganti warna dokumen + Replace image Ganti gambar + Replacement text Teks pengganti + Replacement: pages of {name} Pengganti: halaman dari {name} + Replaces the existing one on those pages. Menggantikan yang ada di halaman-halaman itu. + Report Laporan + Report… Laporan… + Requires user to enter a password for: Memerlukan pengguna untuk memasukkan kata sandi untuk: + Reset columns Atur ulang kolom + Reset page size Atur ulang ukuran halaman + Reset to printer defaults Atur ulang ke bawaan printer + Resize window to initial page Ubah ukuran jendela ke halaman awal + Resolution Resolusi + Retain existing Pertahankan yang ada + Reveal in File Explorer Tampilkan di File Explorer + Reveal in Finder Tampilkan di Finder + Reverse closed arrow Balik panah tertutup + Reverse open arrow Balik panah terbuka + Reverse pages Balik halaman + Revert changes Kembalikan perubahan + Revert to the previously saved version of “{name}”? Changes since then can't be undone afterwards. Kembalikan ke versi “{name}” yang tersimpan sebelumnya? Perubahan setelahnya tidak dapat dibatalkan. + Review History Riwayat Tinjau + Revisions Revisi + Right Kanan + Right Edge Tepi Kanan + Rotate Clockwise Putar Searah Jarum Jam + Rotate Counterclockwise Putar Berlawanan Arah Jarum Jam + Rotate Pages Putar Halaman + Rotate clockwise Putar searah jarum jam + Rotate counterclockwise Putar berlawanan arah jarum jam + Rotate view Putar tampilan + Rotate view clockwise Putar tampilan searah jarum jam + Rotate view clockwise ({key}) Putar tampilan searah jarum jam ({key}) + Rotate view counterclockwise Putar tampilan berlawanan arah jarum jam + Rotate: Putar: + Rotation: Rotasi: + Running action… file {d} of {t} Menjalankan tindakan… file {d} dari {t} + Same as interface ({language}) Sama seperti antarmuka ({language}) + Sanitizing removes hidden information from the document: metadata, file attachments, comments, form fields (flattened), hidden text and layers, bookmarks, links, actions and scripts, and private application data. Pembersihan menghapus informasi tersembunyi dari dokumen: metadata, lampiran file, komentar, kolom formulir (diratakan), teks dan lapisan tersembunyi, bookmark, tautan, tindakan dan skrip, serta data aplikasi privat. + Save & Close Simpan & Tutup + Save ({key}) Simpan ({key}) + Save Image As… Simpan Gambar Sebagai… + Copy Image Salin Gambar + The image has been copied ({w} × {h} pixels) Gambar telah disalin ({w} × {h} piksel) + Couldn't copy the image: {e} Tidak dapat menyalin gambar: {e} + Copy Image in Original Format Salin Gambar dalam Format Asli + The image has been copied as a {ext} file Gambar telah disalin sebagai file {ext} + The page has changed; select the image again Halaman telah berubah; pilih gambar lagi + Save as PDF Simpan sebagai PDF + Save attachment… Simpan lampiran… + Save changes to “{name}” before closing? Simpan perubahan pada “{name}” sebelum menutup? + Save pages Simpan halaman + Save tag properties Simpan properti tag + Save the accessibility report Simpan laporan aksesibilitas + Save the document afterwards: saving rewrites the whole file so no trace of the removed content stays in it. Simpan dokumen setelahnya: penyimpanan menulis ulang seluruh file sehingga tidak ada jejak konten yang dihapus tertinggal di dalamnya. + Save the document afterwards; saving rewrites the whole file so nothing removed stays in it. Simpan dokumen setelahnya; penyimpanan menulis ulang seluruh file sehingga tidak ada yang dihapus tertinggal di dalamnya. + Save the spreadsheet Simpan lembar kerja + Save these pages as one PDF Simpan halaman ini sebagai satu PDF + Saved measurements Pengukuran tersimpan + Saved measurements. Pengukuran tersimpan. + Scale relative to target page Skala relatif terhadap halaman target + Scan Pindai + Script Name: Nama Skrip: + Script: Skrip: + Scripts run in a sandbox without file or network access. A script that asks to open a web page needs your permission first. With JavaScript off, Acrobat's standard format, validate and calculate functions still work. Skrip berjalan di sandbox tanpa akses file atau jaringan. Skrip yang meminta membuka halaman web memerlukan izin Anda terlebih dahulu. Dengan JavaScript nonaktif, fungsi format standar, validasi, dan hitung milik Acrobat tetap berfungsi. + Scroll long text Gulir teks panjang + Scroll tabs left Gulir tab ke kiri + Scroll tabs right Gulir tab ke kanan + Search comments Cari komentar + Search tools and commands… Cari alat dan perintah… + Searchable Image (Exact) Gambar yang Dapat Dicari (Tepat) + Searching… {s} of {p} pages Mencari… {s} dari {p} halaman + Searching… {s}/{p} Mencari… {s}/{p} + Security Keamanan + Security settings Pengaturan keamanan + Select (V) Pilih (V) + Select Action: Pilih Tindakan: + Select All Pilih Semua + Select Icon Pilih Ikon + Select Trigger: Pilih Pemicu: + Select a file first Pilih file terlebih dahulu + Select a file for the stamp Pilih file untuk stempel + Select a password-protected file first Pilih file terlindungi kata sandi terlebih dahulu + Select a word Pilih satu kata + Select all pages (Organize) Pilih semua halaman (Atur) + Select at most 1000 objects at a time. Pilih maksimal 1000 objek sekaligus. + Select data files to merge Pilih file data untuk digabung + Select format category: Pilih kategori format: + Select page {label} Pilih halaman {label} + Select pages Pilih halaman + Select the items to remove from this document. Pilih item yang akan dihapus dari dokumen ini. + Selected image files: {count} File gambar dipilih: {count} + Selected pages Halaman dipilih + Selection Pilihan + Sending to {printer}… Mengirim ke {printer}… + Sensitivity Sensitivitas + Sent to {printer} Dikirim ke {printer} + Sent to {printer}: {msg} Dikirim ke {printer}: {msg} + Separator style: Gaya pemisah: + Set Alternate Text Tetapkan Teks Alternatif + Set Fields to Same Size Samakan Ukuran Kolom + Set Page Boxes Tetapkan Kotak Halaman + Set layer visibility Atur visibilitas lapisan + Set status Tetapkan status + Set to current page ({n}) Samakan dengan halaman saat ini ({n}) + Set to zero Samakan dengan nol + Shared Field Properties Properti Kolom Bersama + Sheet {s} of {n} Lembar {s} dari {n} + Shift constrains to 45 degrees. Backspace removes a vertex. Escape cancels. Shift membatasi ke 45 derajat. Backspace menghapus simpul. Escape membatalkan. + Shift- or Ctrl/Command-click to select several fields. Klik Shift- atau Ctrl/Command untuk memilih beberapa kolom. + Shift-click to select several objects. Drag empty space to select an area. Klik Shift untuk memilih beberapa objek. Seret ruang kosong untuk memilih area. + Show Report Tampilkan Laporan + Show all Tampilkan semua + Show all comments Tampilkan semua komentar + Show certificate… Tampilkan sertifikat… + Show layer Tampilkan lapisan + Show less Tampilkan lebih sedikit + Show password Tampilkan kata sandi + Show the accessibility report Tampilkan laporan aksesibilitas + Show this dialog when the Checker starts Tampilkan dialog ini saat Pemeriksa dimulai + Show {n} more Tampilkan {n} lagi + Show: Tampilkan: + Shrink oversized pages Perkecil halaman yang terlalu besar + Sign Here Tanda Tangani Di Sini + Sign this field… Tanda tangani kolom ini… + Sign yourself Tanda tangani sendiri + Signature Details Detail Tanda Tangan + Signature is INVALID: Tanda tangan TIDAK VALID: + Signature is valid: Tanda tangan valid: + Signature panel Panel tanda tangan + Signature validity is UNKNOWN: Keabsahan tanda tangan TIDAK DIKETAHUI: + Signer's name Nama penanda tangan + Simplified field notation: Notasi kolom sederhana: + Single Page Halaman Tunggal + Single Page Continuous Halaman Tunggal Berurutan + Single word or phrase Satu kata atau frasa + Skip Rule Aturan Lewati + Skipped Dilewati + Slash Garis miring + Smaller pages Halaman lebih kecil + Snap to drawing Tempel ke gambar + Some bookmarks are not shown here: the panel lists a limited number, nested a limited depth. Sebagian bookmark tidak ditampilkan di sini: panel hanya menampilkan jumlah dan tingkat kedalaman yang terbatas. + Some page content couldn't be read; snapping uses the rest. Sebagian konten halaman tidak dapat dibaca; tempelan memakai bagian sisanya. + Sort by Urutkan menurut + Sort comments by: Urutkan komentar menurut: + Sort items Urutkan item + Source Sumber + Space Audit Audit Spasi + Special Khusus + Split document Pisah dokumen + Split into files… Pisah menjadi file… + Square Persegi + Standard Business Bisnis Standar + Start Mulai + Start Checking Mulai Pemeriksaan + Start page number Nomor halaman awal + Status Status + Steps Langkah + Strength: {s} Kekuatan: {s} + Style Gaya + Subject Subjek + Subset Subhimpunan + Summarize Options Ringkasan Opsi + Summary Ringkasan + Switch to List view to change the pages it takes. Beralih ke tampilan Daftar untuk mengubah halaman yang digunakannya. + Switch to two-page view first to show the cover page Beralih ke tampilan dua halaman terlebih dahulu untuk menampilkan halaman sampul + Tab order: move a field with its arrows. Urutan tab: pindahkan kolom dengan panahnya. + Tag type Tipe tag + Tags Tag + Text Color: Warna Teks: + Text alignment: Perataan teks: + Text in images isn't found; recognise text (OCR) first. Teks dalam gambar tidak ditemukan; lakukan pengenalan teks (OCR) terlebih dahulu. + Text is compared word by word; the differences are shown on the new file. Teks dibandingkan kata demi kata; perbedaan ditampilkan pada file baru. + Text recognition isn't installed: its model files are missing. Reinstall PdfCraft, or set PDFCRAFT_MODELS to the folder that holds them. Pengenalan teks belum terpasang: file modelnya hilang. Pasang ulang PdfCraft, atau atur PDFCRAFT_MODELS ke folder yang memuatnya. + Text to find Teks yang dicari + Text to insert Teks yang disisipkan + Text used as a clipping path cannot be moved with this selection. Teks yang dipakai sebagai jalur pemotongan tidak dapat dipindahkan dengan pilihan ini. + Text, marks and signatures become part of the page. Other comments stay editable. Teks, tanda, dan tanda tangan menjadi bagian dari halaman. Komentar lain tetap dapat diedit. + Thai and Arabic use regular fallback fonts when available. Bahasa Thai dan Arab memakai font cadangan biasa jika tersedia. + The PDF text fonts can't draw “{c}” ({code}). Choose supported text. Font teks PDF tidak dapat menggambar “{c}” ({code}). Pilih teks yang didukung. + The checker found 1 problem which may prevent the document from being fully accessible. Pemeriksa menemukan 1 masalah yang dapat menghambat dokumen agar sepenuhnya aksesibel. + The checker found no problems in this document. Pemeriksa tidak menemukan masalah pada dokumen ini. + The checker found {n} problems which may prevent the document from being fully accessible. Pemeriksa menemukan {n} masalah yang dapat menghambat dokumen agar sepenuhnya aksesibel. + The document now conforms to {level}; save it to keep the changes Dokumen sekarang sesuai dengan {level}; simpan untuk mempertahankan perubahan + The document opens without a password; this password is needed to change the restrictions. It's applied when you save. Dokumen terbuka tanpa kata sandi; kata sandi ini diperlukan untuk mengubah pembatasan. Ini berlaku saat Anda menyimpan. + The document's security settings don't allow copying text and images Pengaturan keamanan dokumen tidak mengizinkan penyalinan teks dan gambar + The document's security settings don't allow this change Pengaturan keamanan dokumen tidak mengizinkan perubahan ini + The existing action will be preserved. Tindakan yang ada akan dipertahankan. + The fonts PdfCraft writes with can't draw “{c}” ({code}), so it shows as ? in every PDF viewer. The text is saved. Font yang dipakai PdfCraft tidak dapat menggambar “{c}” ({code}), sehingga teks itu tampil sebagai ? di setiap penampil PDF. Teks tetap tersimpan. + The key is in the Windows certificate store, which may ask to allow PdfCraft to use it. Kunci berada di penyimpanan sertifikat Windows, yang mungkin meminta izin untuk memakai PdfCraft. + The key is in the macOS Keychain, which may ask to allow PdfCraft to use it. Kunci berada di Keychain macOS, yang mungkin meminta izin untuk memakai PdfCraft. + The newest {n} of {total} PDFs {n} PDF terbaru dari {total} + The password is only used to read the file; it isn't saved. Kata sandi hanya dipakai untuk membaca file; kata sandi tidak disimpan. + The printer driver's own settings for this print: paper tray, paper type, finishing and more. Pengaturan milik driver printer sendiri untuk cetakan ini: baki kertas, jenis kertas, finishing, dan lainnya. + The replacement file doesn't have that many pages. File pengganti tidak memiliki sebanyak itu halaman. + The same password is tried on each file. Kata sandi yang sama dicoba pada setiap file. + The signature will be invisible. Tanda tangan akan tidak terlihat. + The text is the same Teksnya sama + The value is shown as typed. Nilainya ditampilkan apa adanya. + There are no redaction marks (mark text, areas or pages first) Tidak ada tanda sensor (tandai teks, area, atau halaman terlebih dahulu) + These files can't be read, so they won't be in the combined PDF: File ini tidak dapat dibaca, jadi tidak akan ada dalam PDF gabungan: + These objects could not be moved. Select them again and try a smaller move. Objek ini tidak dapat dipindahkan. Pilih lagi dan coba perpindahan yang lebih kecil. + Thick Tebal + Thickness Ketebalan + Thin Tipis + This area has too many overlapping paths; intersection snapping is limited. Area ini memiliki terlalu banyak jalur yang bertumpuk; tempelan titik potong dibatasi. + This certificate is in your list of trusted certificates. Sertifikat ini ada dalam daftar sertifikat tepercaya Anda. + This certificate is not trusted. Signatures made with it show an unknown identity. Sertifikat ini tidak tepercaya. Tanda tangan yang dibuat dengannya menampilkan identitas yang tidak dikenal. + This certificate is trusted through a certificate above it in the chain. Sertifikat ini tepercaya melalui sertifikat di atasnya dalam rantai. + This comment's appearance can't be changed yet. Tampilan komentar ini belum dapat diubah. + This dialog shows the details of a certificate and its chain. Dialog ini menampilkan detail sebuah sertifikat dan rantainya. + This document contains {n} interactive form fields. Dokumen ini berisi {n} kolom formulir interaktif. + This document has no comments to flatten Dokumen ini tidak ada komentar untuk diratakan + This document has no document-level scripts. Dokumen ini tidak memiliki skrip tingkat dokumen. + This document has no editable structure tags. Dokumen ini tidak memiliki tag struktur yang dapat diedit. + This document has no form fields to flatten Dokumen ini tidak ada kolom formulir untuk diratakan + This document has no form fields you can fill in Dokumen ini tidak ada kolom formulir yang dapat Anda isi + This document has no pages. Dokumen ini tidak memiliki halaman. + This document has no restrictions to lift Dokumen ini tidak ada pembatasan untuk dilepas + This document has no signatures. Dokumen ini tidak memiliki tanda tangan. + This document has no tagged figures. Dokumen ini tidak memiliki gambar bertag. + This document has no {kind} to change Dokumen ini tidak ada {kind} untuk diubah + This document hasn't been checked yet. Dokumen ini belum diperiksa. + This document is secured. Some changes are restricted by its security settings. Dokumen ini diamankan. Beberapa perubahan dibatasi oleh pengaturan keamanannya. + This document isn't password-protected Dokumen ini tidak terlindungi kata sandi + This drawing exceeds the snapping limit; only the first paths are used. Gambar ini melampaui batas tempelan; hanya jalur pertama yang dipakai. + This field is locked. Unlock it to change its properties. Kolom ini terkunci. Buka kuncinya untuk mengubah propertinya. + This file changed on disk. Reload it to see the new version; your unsaved changes will be lost. File ini berubah di disk. Muat ulang untuk melihat versi baru; perubahan yang belum disimpan akan hilang. + This file was damaged and has been repaired. Saving keeps the repaired version. File ini rusak dan telah diperbaiki. Menyimpan mempertahankan versi yang sudah diperbaiki. + This folder isn't available right now. It may have moved, or its drive or cloud sync is offline. Folder ini sedang tidak tersedia. Folder mungkin telah berpindah, atau drive atau sinkronisasi cloud-nya sedang luring. + This form's scripts are turned off because one ran too long. Reopen the document to run them again. Skrip formulir ini dinonaktifkan karena salah satunya berjalan terlalu lama. Buka kembali dokumen untuk menjalankannya lagi. + This is a dynamic XFA form, which PdfCraft can't display yet. What you see is the file's placeholder page. Ini adalah formulir XFA dinamis, yang belum dapat ditampilkan oleh PdfCraft. Yang Anda lihat adalah halaman placeholder milik file tersebut. + This measurement needs at least {n} points. Pengukuran ini memerlukan minimal {n} titik. + This page contains objects that cannot be selected together. Halaman ini berisi objek yang tidak dapat dipilih bersama-sama. + This page couldn't be displayed.\n{e} Halaman ini tidak dapat ditampilkan.\n{e} + This printer offers no settings of its own. Printer ini tidak menyediakan pengaturan sendiri. + This printer's driver doesn't take two-sided settings from other programs, so its own setting applies. Change it in Properties… Driver printer ini tidak mengambil pengaturan cetak dua sisi dari program lain, jadi pengaturan miliknya yang berlaku. Ubah di Properti… + This web address mixes letters from different alphabets, a common way to imitate another site's name. Alamat web ini mencampur huruf dari beberapa abjad, cara umum untuk menyamar sebagai nama situs lain. + This web address uses letters from another alphabet, which can look like familiar ones. Alamat web ini memakai huruf dari abjad lain, yang bisa tampak seperti huruf yang familier. + Tile scale: Skala ubin: + Time Waktu + Title Judul + To change locked fields, also set Locked to No. Untuk mengubah kolom terkunci, tetapkan juga Terkunci ke Tidak. + To: Ke: + Today: {date} Hari ini: {date} + Toggle fit page / fit width Alihkan sesuaikan halaman / sesuaikan lebar + Tool Alat + Tools panel side Sisi panel alat + Tooltip: Tooltip: + Top Atas + Top-level bookmarks ({n}) Bookmark tingkat atas ({n}) + Total Total + Trust Percayai + Try the form as people filling it in will see it Coba formulir seperti yang akan dilihat oleh orang yang mengisinya + Two-Up (Cover Page) Dua-ke-Satu (Halaman Sampul) + Two-Up (Facing) Dua-ke-Satu (Bersebelahan) + Two-Up Continuous (Cover Page) Dua-ke-Satu Berurutan (Halaman Sampul) + Two-Up Continuous (Facing) Dua-ke-Satu Berurutan (Bersebelahan) + Two-sided: Dua sisi: + Type Tipe + Type text Ketik teks + Type the web address. Ketik alamat web. + Type your {what}. Ketik {what} Anda. + URL to submit to URL tujuan pengiriman + Unit Unit + Units Unit + Unknown author Penulis tidak dikenal + Unlock Buka kunci + Unlock {name} Buka kunci {name} + Unlock {n} files Buka kunci {n} file + Unlocked: the combined file won't be password-protected Tidak terkunci: file gabungan tidak akan terlindungi kata sandi + Unlock… Buka kunci… + Unpin Lepas sematan + Unpin {folder} Lepas sematan {folder} + Unplaced Belum ditempatkan + Unsupported measurements Pengukuran tidak didukung + Up Atas + Update Perbarui + Use 72 DPI (one point per pixel) Gunakan 72 DPI (satu titik per piksel) + Use Flate to encode streams that are not encoded Gunakan Flate untuk mengodekan stream yang belum dikodekan + Use a Digital ID from a file Gunakan ID Digital dari file + Use custom DPI Gunakan DPI kustom + Use each image's embedded DPI; use 72 DPI when it is absent. Gunakan DPI tertanam pada setiap gambar; gunakan 72 DPI jika tidak ada. + Use image resolution Gunakan resolusi gambar + Use now Gunakan sekarang + Use overlay text Gunakan teks overlay + Used when a PDF doesn't ask for a layout or zoom. Continuous scrolling never snaps between pages. Dipakai ketika PDF tidak meminta tata letak atau zoom. Gulir berurutan tidak pernah berhenti di antara halaman. + Used when opening PDFs. An explicit launch or control mode takes precedence for the session. Dipakai saat membuka PDF. Mode peluncuran atau mode kontrol eksplisit berlaku lebih dulu selama sesi. + User Interface Options Opsi Antarmuka Pengguna + User password Kata sandi pengguna + Valid for 5 years, for digital signatures. Self-signed IDs are usually not trusted by others. Berlaku selama 5 tahun, untuk tanda tangan digital. ID yang ditandatangani sendiri biasanya tidak tepercaya oleh orang lain. + Validate all Validasi semua + Value is not calculated Nilai belum dihitung + Value is the Nilainya adalah + Value: Nilai: + Verify Verifikasi + Verify to see what the document needs. Verifikasi untuk melihat apa yang dibutuhkan dokumen. + Version {v} Versi {v} + Vertical Vertikal + Vertical reversed Vertikal terbalik + Vertical text cannot be moved with this selection. Teks vertikal tidak dapat dipindahkan dengan pilihan ini. + View revision {n} Lihat revisi {n} + View signed version Lihat versi bertanda tangan + Viewport Area pandang + Viewport rectangle in page points (x, y, width, height) Persegi area pandang dalam titik halaman (x, y, lebar, tinggi) + Visible Rectangle Persegi Terlihat + Visual Visual + Warnings Peringatan + Welcome to PdfCraft Selamat datang di PdfCraft + What word or phrase would you like to search for? Kata atau frasa apa yang ingin Anda cari? + Whole words only Hanya kata utuh + Width: Lebar: + Window Options Opsi Jendela + Windows store · Windows store · + Write this email? Tulis email ini? + Wrong password Kata sandi salah + XFA form: its fields and its XFA data are kept in step, so other viewers show what you fill in. Formulir XFA: kolom dan data XFA-nya dijaga tetap sinkron, sehingga penampil lain menampilkan yang Anda isi. + You are about to apply 1 redaction mark. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. Anda akan menerapkan 1 tanda sensor. Teks, gambar, dan gambar-gambar di bawah tanda tersebut, serta komentar dan kolom formulir yang bertumpang tindih dengannya, akan dihapus permanen. + You are about to apply {n} redaction marks. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. Anda akan menerapkan {n} tanda sensor. Teks, gambar, dan gambar-gambar di bawah tanda tersebut, serta komentar dan kolom formulir yang bertumpang tindih dengannya, akan dihapus permanen. + You have version {c}. All releases are listed at {page}. Anda memiliki versi {c}. Semua rilis tercantum di {page}. + You have version {c}. Download the new version from its release page. Anda memiliki versi {c}. Unduh versi baru dari halaman rilisnya. + Your changes will be lost if you don't save them. Perubahan Anda akan hilang jika tidak Anda simpan. + ZIP ZIP + Zoom in Perbesar + Zoom in ({key}) Perbesar ({key}) + Zoom in / out (also pinch or {key}-scroll) Perbesar / perkecil (juga cubit atau gulir {key}) + Zoom out Perkecil + Zoom out ({key}) Perkecil ({key}) + already a PDF sudah berupa PDF + and {n} more dan {n} lagi + background latar belakang + characters karakter + e.g. My stamps mis. Stempel saya + e.g. en-US mis. en-US + for images above untuk gambar di atas + header or footer header atau footer + initials inisial + is available tersedia + is not available yet belum tersedia + just now baru saja + yesterday kemarin + needs an AI provider (off by default) membutuhkan penyedia AI (nonaktif secara bawaan) + no output folder was chosen tidak ada folder keluaran yang dipilih + no unused output name tidak ada nama keluaran yang belum terpakai + none tidak ada + of the following fields: dari kolom berikut: + AI assistant Asisten AI + Action Wizard Penyihir Tindakan + Action Wizard… Penyihir Tindakan… + Actions list Daftar tindakan + Add Bates numbering… Tambahkan penomoran Bates… + Add a button Tambahkan tombol + Add a callout Tambahkan kotak komentar + Add a checkbox Tambahkan kotak centang + Add a date field Tambahkan kolom tanggal + Add a digital signature field Tambahkan kolom tanda tangan digital + Add a drop-down list Tambahkan daftar tarik-turun + Add a list box Tambahkan kotak daftar + Add a radio button Tambahkan tombol radio + Add a stamp Tambahkan stempel + Add a sticky note Tambahkan catatan tempel + Add a text box Tambahkan kotak teks + Add a text field Tambahkan kolom teks + Add alternate text Tambahkan teks alternatif + Add alternate text… Tambahkan teks alternatif… + Add an image field Tambahkan kolom gambar + Add background… Tambahkan latar belakang… + Add comments Tambahkan komentar + Add content Tambahkan konten + Add files to combine Tambahkan file untuk digabung + Add form components Tambahkan komponen formulir + Add header & footer… Tambahkan header & footer… + Add image… Tambahkan gambar… + Add or edit links Tambahkan atau edit tautan + Add printer marks Tambahkan tanda cetak + Add search index Tambahkan indeks pencarian + Add text Tambahkan teks + Add watermark… Tambahkan tanda air… + Advanced optimization Optimasi lanjutan + Advanced options Opsi lanjutan + Apply PDF standards Terapkan standar PDF + Apply redactions… Terapkan penyensoran… + Archive documents Arsipkan dokumen + Area Luas + Arrow Panah + ArtCraft website Situs ArtCraft + Ask about this document Tanyakan tentang dokumen ini + Attach a file Lampirkan file + Attach file Lampirkan file + Audit space usage Periksa penggunaan ruang + Automatically tag PDF Tandai PDF secara otomatis + Background Latar belakang + Bates numbering Penomoran Bates + Blank page Halaman kosong + Bring your own model (off by default) Gunakan model Anda sendiri (nonaktif secara bawaan) + Button Tombol + Certificates Sertifikat + Certify (invisible signature) Sertifikasi (tanda tangan tak terlihat) + Certify (visible signature) Sertifikasi (tanda tangan terlihat) + Change initials Ubah inisial + Change reading options Ubah opsi baca + Change reading options… Ubah opsi baca… + Change signature Ubah tanda tangan + Check for accessibility Periksa aksesibilitas + Check for accessibility… Periksa aksesibilitas… + Checkbox Kotak centang + Checkmark Tanda centang + Clear form Kosongkan formulir + Clear redaction marks Hapus tanda penyensoran + Clipboard Papan klip + Cloud Awan + Column select Pilih kolom + Combine Gabung + Combine files Gabung file + Comment list Daftar komentar + Comments panel Panel komentar + Compare Bandingkan + Compare files Bandingkan file + Compare files… Bandingkan file… + Compress a PDF Kompres PDF + Console Konsol + Convert colors Konversi warna + Copy pages Salin halaman + Correct recognized text Koreksi teks hasil pengenalan + Create a PDF Buat PDF + Create from Buat dari + Create links from URLs Buat tautan dari URL + Crop pages Pangkas halaman + Cross Salib + Cut pages Potong halaman + Dark gray Abu-abu tua + Date Tanggal + Date field Kolom tanggal + Detect form fields Deteksi kolom formulir + Digital signature Tanda tangan digital + Digitally sign Tanda tangani secara digital + Distance Jarak + Document JavaScripts JavaScript dokumen + Document JavaScripts… JavaScript dokumen… + Document actions Tindakan dokumen + Dot Titik + Draw a cloud Gambar awan + Draw a line Gambar garis + Draw a polygon Gambar poligon + Draw a rectangle Gambar persegi panjang + Draw an arrow Gambar panah + Draw an oval Gambar oval + Draw connected lines Gambar garis terhubung + Draw freehand Gambar bebas + Drawing Gambar + Drawing scale Skala gambar + Drop-down list Daftar drop-down + Duplicate pages Duplikat halaman + Edit a PDF Edit PDF + Edit text & images Edit teks & gambar + Encrypt with certificate Enkripsi dengan sertifikat + Enhance camera image Perbaiki kualitas gambar kamera + Enhance scanned file Perbaiki hasil pindai file + Enter permissions password… Masukkan kata sandi izin… + Erase drawings Hapus gambar + Export a PDF Ekspor PDF + Export all comments to data file… Ekspor semua komentar ke file data… + Export all images Ekspor semua gambar + Export all images… Ekspor semua gambar… + Export data Ekspor data + Export form data… Ekspor data formulir… + Export measurements Ekspor hasil pengukuran + Export measurements as CSV Ekspor hasil pengukuran sebagai CSV + Export to Ekspor ke + Export to PowerPoint… Ekspor ke PowerPoint… + Extract Ekstrak + Extract pages Ekstrak halaman + Field list Daftar kolom + Field properties Properti kolom + Field properties… Properti kolom… + Fields Kolom + Fill Isi + Fill & Sign: add text Isi & Tanda Tangani: tambahkan teks + Fill & Sign: change initials Isi & Tanda Tangani: ubah inisial + Fill & Sign: change signature Isi & Tanda Tangani: ubah tanda tangan + Fill & Sign: checkmark Isi & Tanda Tangani: tanda centang + Fill & Sign: cross Isi & Tanda Tangani: salib + Fill & Sign: date Isi & Tanda Tangani: tanggal + Fill & Sign: dot Isi & Tanda Tangani: titik + Fill & Sign: initials Isi & Tanda Tangani: inisial + Fill & Sign: line Isi & Tanda Tangani: garis + Fill & Sign: remove saved initials Isi & Tanda Tangani: hapus inisial tersimpan + Fill & Sign: remove saved signature Isi & Tanda Tangani: hapus tanda tangan tersimpan + Fill & Sign: sign Isi & Tanda Tangani: tanda tangani + Find text and redact Cari teks dan sensor + Find text and redact… Cari teks dan sensor… + Fit to width scrolling Gulir sesuai lebar + Fit visible Sesuaikan yang terlihat + Fix hairlines Perbaiki garis rambut + Fix reading order Perbaiki urutan baca + Flatten comments Ratakan komentar + Flatten form fields Ratakan kolom formulir + Form fields panel Panel kolom formulir + Geospatial location Lokasi geospasial + Go to page… Ke halaman… + HTML web page Halaman web HTML + Header and footer Header dan footer + Hide all comments Sembunyikan semua komentar + Highlight text Sorot teks + Image Gambar + Image (PNG) Gambar (PNG) + Image field Kolom gambar + Images Gambar + Import comments… Impor komentar… + Import data Impor data + Import form data… Impor data formulir… + In multiple files Di beberapa file + In this file Di file ini + Index Indeks + Initials Inisial + Insert Sisipkan + Insert pages Sisipkan halaman + Insert text Sisipkan teks + JavaScript JavaScript + JavaScript console… Konsol JavaScript… + Join the ArtCraft Discord Gabung ke Discord ArtCraft + Light gray Abu-abu muda + Line Garis + Link Tautan + List box Kotak daftar + Make accessible Jadikan aksesibel + Manage embedded index Kelola indeks tersematam + Markup Anotasi + Marquee zoom Zoom area terpilih + Measure area Ukur luas + Measure distance Ukur jarak + Measure objects Ukur objek + Measure perimeter Ukur keliling + Measurement information Informasi pengukuran + Measurement snapping Snapping pengukuran + Merge data files into spreadsheet… Gabungkan file data ke spreadsheet… + Microsoft Word (.docx) Microsoft Word (.docx) + Modify page Ubah halaman + Multiple files Beberapa file + New bookmarks from structure Bookmark baru dari struktur + Open accessibility report Buka laporan aksesibilitas + Optimize scanned documents Optimalkan dokumen hasil pindai + Optimize scanned documents… Optimalkan dokumen hasil pindai… + Output preview Pratinjau keluaran + Oval Oval + PDF/A… PDF/A… + Page grid Kisi halaman + Page labels Label halaman + Page options Opsi halaman + Page transitions Transisi halaman + Paste pages Tempel halaman + PdfCraft on GitHub PdfCraft di GitHub + PdfCraft web page Halaman web PdfCraft + Perimeter Keliling + Pin folder to Home… Sematkan folder ke Beranda… + PostScript / EPS PostScript / EPS + Preflight Pemeriksaan pra-cetak + Prepare for accessibility Siapkan untuk aksesibilitas + Prepare for distribution Siapkan untuk distribusi + Prepare for distribution… Siapkan untuk distribusi… + Presentation (.pptx) Presentasi (.pptx) + Print production Produksi cetak + Protect a PDF Lindungi PDF + Protect with password Lindungi dengan kata sandi + Radio button Tombol radio + Recognize text Pengenalan teks + Recognize text in multiple files… Pengenalan teks di beberapa file… + Recognize text… Pengenalan teks… + Rectangle Persegi panjang + Redact a PDF Sensor PDF + Redact pages Sensori halaman + Redact pages… Sensori halaman… + Redact text and images Sensor teks dan gambar + Redaction properties… Properti penyensoran… + Reduce file size Perkecil ukuran file + Remove all links Hapus semua tautan + Remove background Hapus latar belakang + Remove header & footer Hapus header & footer + Remove hidden information Hapus informasi tersembunyi + Remove hidden information… Hapus informasi tersembunyi… + Remove watermark Hapus tanda air + Replace Ganti + Replace text Ganti teks + Reset panel layout Atur ulang tata letak panel + Review Tinjau + Rich Text Format (.rtf) Rich Text Format (.rtf) + Rotate Putar + Rotate pages Putar halaman + Rotate pages clockwise Putar halaman searah jarum jam + Rotate pages counterclockwise Putar halaman berlawanan arah jarum jam + Sanitize document Bersihkan dokumen + Sanitize document… Bersihkan dokumen… + Save as PDF/A Simpan sebagai PDF/A + Save as PDF/UA Simpan sebagai PDF/UA + Save as PDF/X Simpan sebagai PDF/X + Scan & OCR Pindai & OCR + Security properties Properti keamanan + Select files to compare Pilih file untuk dibandingkan + Separate PDFs Pisahkan PDF + Set measurement scale Atur skala pengukuran + Set page boxes Atur kotak halaman + Set page boxes… Atur kotak halaman… + Set properties Atur properti + Show cover page in two-page view Tampilkan halaman sampul dalam tampilan dua halaman + Signature Tanda tangan + Signatures panel Panel tanda tangan + Single file Satu file + Snapping Snapping + Split Pisah + Spreadsheet (.xlsx) Spreadsheet (.xlsx) + Squiggly underline Garis bawah bergelombang + Squiggly underline text Teks garis bawah bergelombang + Stamp Stempel + Stamp palette Palet stempel + Stamps Stempel + Standards Standar + Sticky note Catatan tempel + Strikethrough text Teks coret + Summarize Ringkas + Summarize comments Ringkas komentar + Switch light / dark theme Ganti tema terang / gelap + Tab order by columns Urutan tab menurut kolom + Tab order by rows Urutan tab menurut baris + Tab order: by columns Urutan tab: menurut kolom + Tab order: by document structure Urutan tab: menurut struktur dokumen + Tab order: by rows Urutan tab: menurut baris + Tags panel Panel tag + Text (plain) Teks (polos) + Text box Kotak teks + Text field Kolom teks + Timestamp Stempel waktu + Translate Terjemahkan + Underline text Teks bergaris bawah + Update background… Perbarui latar belakang… + Update header & footer… Perbarui header & footer… + Update watermark… Perbarui tanda air… + Use JavaScript Gunakan JavaScript + Use a certificate Gunakan sertifikat + Use guided actions Gunakan tindakan berpemandu + Use print production Gunakan produksi cetak + Use system setting Gunakan setelan sistem + Validate all signatures Validasi semua tanda tangan + Watermark Tanda air + Move object Pindahkan objek + Move objects Pindahkan objek + All tools Semua alat + Read Baca + E-Sign E-Sign + Tools Alat + Inspector Inspektur + on page {label} di halaman {label} + A font isn't embedded Font tidak tertanam + A {} action isn't allowed Tindakan {} tidak diizinkan + A {} annotation has additional actions Anotasi {} memiliki tindakan tambahan + A {} annotation has no appearance stream Anotasi {} tidak memiliki aliran tampilan + A {} annotation isn't set to print, or is hidden Anotasi {} tidak disetel untuk dicetak, atau disembunyikan + Accessibility Report Laporan Aksesibilitas + Add the PDFs to combine Tambahkan PDF untuk digabung + Added the first {n} PDFs in {folder} Menambahkan {n} PDF pertama di {folder} + CRL Signing Penandatanganan CRL + Certificate Signing Penandatanganan Sertifikat + Change Author Ubah Penulis + Change Keywords Ubah Kata Kunci + Change Subject Ubah Subjek + Change Title Ubah Judul + Choose a digital ID. Pilih ID digital. + Create links Buat tautan + Creator Pembuat + Cut and stack needs Two-sided: Off. Print single-sided sheets. Potong dan tumpuk memerlukan Dua sisi: Nonaktif. Cetak lembar satu sisi. + Data Encipherment Enkripsi Data + Decipher Only Hanya Dekripsi + Detailed Report Laporan Rinci + DeviceCMYK is used, but the PDF/A output intent isn't a CMYK profile DeviceCMYK digunakan, tetapi output intent PDF/A bukan profil CMYK + DeviceRGB is used, but the PDF/A output intent isn't an RGB profile DeviceRGB digunakan, tetapi output intent PDF/A bukan profil RGB + Digital Signature Tanda Tangan Digital + Document properties (⌘D) Properti dokumen (⌘D) + Drop PDFs or folders here, or choose them. Letakkan PDF atau folder di sini, atau pilih. + Encipher Only Hanya Enkripsi + English Inggris + Enter a URL Masukkan URL + Enter a name. Masukkan nama. + Enter a page number Masukkan nomor halaman + Enter the field names Masukkan nama kolom + Every PDF in the folder Semua PDF di folder + Every PDF in the folder and the folders inside it Semua PDF di folder dan folder di dalamnya + Field "{}" on page {p} has no description (tooltip) Kolom "{}" pada halaman {p} tidak memiliki deskripsi (tooltip) + Filename Nama file + Flatten Fill & Sign Ratakan Isi & Tanda Tangani + Font (unnamed) on page {p} doesn't map its characters to Unicode Font (tanpa nama) pada halaman {p} tidak memetakan karakternya ke Unicode + Font {} on page {p} doesn't map its characters to Unicode Font {} pada halaman {p} tidak memetakan karakternya ke Unicode + Form field on page {p} isn't tagged Kolom formulir pada halaman {p} tidak diberi tag + H{n} follows an H{d}; headings should not skip levels H{n} mengikuti H{d}; judul tidak boleh melompati level + Inserted text Teks yang disisipkan + Key Agreement Key Agreement + Key Encipherment Key Encipherment + Margins (in) Margin (in) + New bookmark (⌘B) Bookmark baru (⌘B) + Next (⌘G) Berikutnya (⌘G) + No PDFs found in {folder} Tidak ada PDF yang ditemukan di {folder} + No document language is set Bahasa dokumen belum diatur + No page has text: the document appears to be images of pages Tidak ada halaman yang memiliki teks: dokumen tampaknya berupa gambar halaman + Non-Repudiation Non-Repudiation + Only the document's owner can change its security (open it with the permissions password) Hanya pemilik dokumen yang dapat mengubah keamanannya (buka dengan kata sandi izin) + Open a PDF (⌘O) Buka PDF (⌘O) + Page {p} doesn't tab in structure order Halaman {p} tidak memiliki tab dalam urutan struktur + Page {p}: {n} untagged content item Halaman {p}: {n} item konten tanpa tag + Page {p}: {n} untagged content items Halaman {p}: {n} item konten tanpa tag + Page {} has additional actions Halaman {} memiliki tindakan tambahan + Panel layout could not be restored: {error} Tata letak panel tidak dapat dipulihkan: {error} + Panel move was not applied: {error} Pemindahan panel tidak diterapkan: {error} + PdfCraft can't check this signature yet: {}. PdfCraft belum dapat memeriksa tanda tangan ini: {}. + Previous (⇧⌘G) Sebelumnya (⇧⌘G) + Print (⌘P) Cetak (⌘P) + Producer Produsen + Redo {action} Ulangi {action} + Rendering… Merender… + Report created Laporan dibuat + Rev. {rev}: Certified by an unknown signer Rev. {rev}: Disertifikasi oleh penanda tangan yang tidak dikenal + Rev. {rev}: Certified by {name} Rev. {rev}: Disertifikasi oleh {name} + Rev. {rev}: Signed by an unknown signer Rev. {rev}: Ditandatangani oleh penanda tangan yang tidak dikenal + Rev. {rev}: Signed by {name} Rev. {rev}: Ditandatangani oleh {name} + Rotate view clockwise (⇧⌘+) Putar tampilan searah jarum jam (⇧⌘+) + Rule Name Nama Aturan + Save (M4) Simpan (M4) + Save as {level} Simpan sebagai {level} + Signature is invalid Tanda tangan tidak valid + Signature is valid Tanda tangan valid + Signature validity is unknown Keabsahan tanda tangan tidak diketahui + Signing time is from the clock on the signer's computer. Waktu penandatanganan berasal dari jam pada komputer penanda tangan. + Still rendering — this page is unusually complex… Masih merender — halaman ini sangat kompleks… + The ECDSA signature is not in canonical DER (trailing bytes, padding or a missing sign byte); it was read anyway. Tanda tangan ECDSA bukan DER kanonis (byte tambahan, padding, atau byte tanda yang hilang); tetapi tetap dibaca. + The ECDSA signature is the raw r and s values instead of a DER sequence; it was read anyway. Tanda tangan ECDSA berupa nilai r dan s mentah, bukan urutan DER; tetapi tetap dibaca. + The RSA signature value does not have the length of the key's modulus (leading zero bytes dropped or added); it was read anyway. Nilai tanda tangan RSA tidak memiliki panjang sebesar modulus kunci (nol di depan dihapus atau ditambahkan); tetapi tetap dibaca. + The RSA signature's DigestInfo has no NULL parameter (older signers write it so); it was read anyway. DigestInfo tanda tangan RSA tidak memiliki parameter NULL (penandatangan lama menulisnya demikian); tetapi tetap dibaca. + The certificate of {} does not allow this many CA certificates below it (path length), so it is not used to vouch for {}. Sertifikat {} tidak mengizinkan jumlah sertifikat CA sebesar itu di bawahnya (panjang jalur), sehingga tidak digunakan untuk menjamin {}. + The certificate of {} is not a CA certificate that may issue certificates, so it is not used to vouch for {}. Sertifikat {} bukan sertifikat CA yang dapat menerbitkan sertifikat, sehingga tidak digunakan untuk menjamin {}. + The certificate of {} was not valid at the time of signing, so it is not used to vouch for {}. Sertifikat {} tidak valid pada saat penandatanganan, sehingga tidak digunakan untuk menjamin {}. + The checker found problems which may prevent the document from being fully accessible. Pemeriksa menemukan masalah yang mungkin membuat dokumen tidak sepenuhnya dapat diakses. + The document has been altered or corrupted since the signature was applied. Dokumen telah diubah atau rusak sejak tanda tangan diterapkan. + The document has been altered or corrupted since the timestamp was applied. Dokumen telah diubah atau rusak sejak stempel waktu diterapkan. + The document has been altered since this signature was applied in ways it does not permit ({}). Dokumen telah diubah sejak tanda tangan ini diterapkan dengan cara yang tidak diizinkan ({}). + The document has been altered since this timestamp was applied in ways it does not permit ({}). Dokumen telah diubah sejak stempel waktu ini diterapkan dengan cara yang tidak diizinkan ({}). + The document has been modified since this signature was applied, but the changes are permitted ({}). Dokumen telah dimodifikasi sejak tanda tangan ini diterapkan, tetapi perubahannya diizinkan ({}). + The document has been modified since this timestamp was applied, but the changes are permitted ({}). Dokumen telah dimodifikasi sejak stempel waktu ini diterapkan, tetapi perubahannya diizinkan ({}). + The document has no tags (structure tree) Dokumen tidak memiliki tag (pohon struktur) + The document has no title Dokumen tidak memiliki judul + The document isn't marked as tagged (MarkInfo Marked) Dokumen tidak ditandai sebagai bertag (MarkInfo Marked) + The document isn't tagged, so none of its content is Dokumen tidak diberi tag, sehingga tidak ada isinya yang diberi tag + The document's embedded revocation information shows that the signer's certificate has not been revoked. Informasi pencabutan yang tertanam pada dokumen menunjukkan bahwa sertifikat penanda tangan belum dicabut. + The embedded timestamp token is valid and its authority is trusted; trusted time is {}. Token stempel waktu yang tertanam valid dan otoritasnya dipercaya; waktu yang dipercaya adalah {}. + The font {} isn't embedded Font {} tidak tertanam + The metadata doesn't identify the file as {} Metadata tidak mengidentifikasi file sebagai {} + The password is incorrect. Kata sandi salah. + The password must have at least 6 characters. Kata sandi harus memiliki minimal 6 karakter. + The passwords do not match. Kata sandi tidak cocok. + The security settings don't allow screen readers to read the text Pengaturan keamanan tidak mengizinkan pembaca layar untuk membaca teks + The signature algorithm and the SignerInfo's digest algorithm name different hashes; the signature was made with the SignerInfo's. Algoritma tanda tangan dan algoritma digest SignerInfo menunjuk hash yang berbeda; tanda tangan dibuat dengan milik SignerInfo. + The signature carries an unverified timestamp ({}): the timestamp authority is not in your list of trusted certificates, so the signing time claimed by the signer is used instead. Tanda tangan ini memuat stempel waktu yang belum diverifikasi ({}): otoritas stempel waktu tidak ada dalam daftar sertifikat tepercaya Anda, sehingga waktu penandatanganan yang diklaim oleh penanda tangan yang digunakan. + The signature contents are not hexadecimal. Isi tanda tangan bukan heksadesimal. + The signature could not be checked ({}). Tanda tangan tidak dapat diperiksa ({}). + The signature could not be read ({}). Tanda tangan tidak dapat dibaca ({}). + The signature could not be verified ({}). Tanda tangan tidak dapat diverifikasi ({}). + The signature has no valid byte range. Tanda tangan tidak memiliki rentang byte yang valid. + The signature includes an embedded timestamp. Tanda tangan menyertakan stempel waktu yang tertanam. + The signature is BER-encoded (indefinite lengths) rather than DER; it was read leniently. Tanda tangan dikodekan dengan BER (panjang tidak tetap), bukan DER; tetap dibaca secara toleran. + The signature uses the legacy adbe.x509.rsa_sha1 format. Tanda tangan menggunakan format lama adbe.x509.rsa_sha1. + The signature value does not match the signer's certificate: the signature is corrupt. Nilai tanda tangan tidak cocok dengan sertifikat penanda tangan: tanda tangan rusak. + The signature's byte range does not exclude exactly its contents. Rentang byte tanda tangan tidak mengecualikan tepat isi tanda tangan tersebut. + The signature's byte range does not match the file. Rentang byte tanda tangan tidak cocok dengan file. + The signature's timestamp token could not be verified ({}). Token stempel waktu tanda tangan tidak dapat diverifikasi ({}). + The signature's timestamp token does not cover the signature value. Token stempel waktu tanda tangan tidak mencakup nilai tanda tangan. + The signed content is a constructed (segmented) OCTET STRING, as BER allows; it was read anyway. Konten yang ditandatangani adalah OCTET STRING tersusun (bersegmen), sebagaimana diizinkan BER; tetap dibaca. + The signer's certificate does not allow digital signatures (its key usage has neither digital signature nor non-repudiation). Sertifikat penanda tangan tidak mengizinkan tanda tangan digital (penggunaan kuncinya tidak memuat digital signature maupun non-repudiation). + The signer's certificate has been revoked ({}). Sertifikat penanda tangan telah dicabut ({}). + The signer's certificate has critical extensions PdfCraft does not recognize ({}). Sertifikat penanda tangan memiliki ekstensi kritis yang tidak dikenali PdfCraft ({}). + The signer's certificate is not in the signature. Sertifikat penanda tangan tidak ada di dalam tanda tangan. + The signer's certificate is not issued for signing documents (its extended key usage has no document-signing purpose). Sertifikat penanda tangan tidak diterbitkan untuk menandatangani dokumen (penggunaan kunci ekstensifnya tidak memuat tujuan penandatanganan dokumen). + The signer's certificate was not valid at the time of signing. Sertifikat penanda tangan tidak valid pada saat penandatanganan. + The signer's identity is unknown because it has not been included in your list of trusted certificates and none of its parent certificates are trusted certificates. Identitas penanda tangan tidak diketahui karena tidak disertakan dalam daftar sertifikat tepercaya Anda dan tidak ada sertifikat induknya yang merupakan sertifikat tepercaya. + The signer's identity is valid. Identitas penanda tangan valid. + The timestamp authority's certificate was not valid at the time of timestamping. Sertifikat otoritas stempel waktu tidak valid pada saat pembuatan stempel waktu. + The timestamp contents are not hexadecimal. Isi stempel waktu bukan heksadesimal. + The timestamp has no valid byte range. Stempel waktu tidak memiliki rentang byte yang valid. + The timestamp token could not be read ({}). Token stempel waktu tidak dapat dibaca ({}). + The timestamp token is valid and its authority is trusted. Token stempel waktu valid dan otoritasnya dipercaya. + The timestamp token is valid, but the timestamp authority is not in your list of trusted certificates. Token stempel waktu valid, tetapi otoritas stempel waktu tidak ada dalam daftar sertifikat tepercaya Anda. + The timestamp's byte range does not exclude exactly its contents. Rentang byte stempel waktu tidak mengecualikan tepat isinya. + The timestamp's byte range does not match the file. Rentang byte stempel waktu tidak cocok dengan file. + The window shows the file name, not the title (Initial View > Show) Jendela menampilkan nama file, bukan judul (Tampilan Awal > Tampilkan) + There is no folder to save the digital ID in. Tidak ada folder untuk menyimpan ID digital. + This document has not been modified since this signature was applied. Dokumen ini belum dimodifikasi sejak tanda tangan ini diterapkan. + This document has not been modified since this timestamp was applied. Dokumen ini belum dimodifikasi sejak stempel waktu ini diterapkan. + This signature uses RIPEMD-160, a legacy 160-bit hash algorithm that is no longer recommended for signatures. It still validates, but it should not be relied on. Tanda tangan ini menggunakan RIPEMD-160, algoritme hash lama 160-bit yang tidak lagi direkomendasikan untuk tanda tangan. Tanda tangan ini tetap valid, tetapi tidak seharusnya diandalkan. + This signature uses SHA-1, a weak hash algorithm: collisions in it have been demonstrated. It still validates because many documents signed years ago use it, but it should not be relied on. Tanda tangan ini menggunakan SHA-1, algoritme hash yang lemah: tabrakan pada algoritme ini telah dibuktikan. Tanda tangan ini tetap valid karena banyak dokumen yang ditandatangani bertahun-tahun lalu memakainya, tetapi tidak seharusnya diandalkan. + Undo {action} Urungkan {action} + Unsigned signature field Kolom tanda tangan yang belum ditandatangani + Unsigned signature field: {name} Kolom tanda tangan yang belum ditandatangani: {name} + Zoom in (⌘+) Perbesar (⌘+) + Zoom in / out (also pinch or ⌘-scroll) Perbesar / perkecil (juga cubit atau ⌘-gulir) + Zoom out (⌘−) Perkecil (⌘−) + alternate text hides an annotation inside it teks alternatif menyembunyikan anotasi di dalamnya + alternate text on an element with no page content teks alternatif pada elemen tanpa konten halaman + comments komentar + document security store penyimpanan keamanan dokumen + document structure struktur dokumen + form fill pengisian formulir + its alternate text is inside another element's and will never be read teks alternatifnya berada di dalam elemen lain dan tidak akan pernah dibaca + links tautan + metadata metadata + no alternate text tanpa teks alternatif + no header cells (TH) tanpa sel header (TH) + no summary tanpa ringkasan + not in a TR bukan di dalam TR + not in a Table, THead, TBody or TFoot bukan di dalam Table, THead, TBody, atau TFoot + not in an L (list) bukan di dalam L (daftar) + not in an LI (list item) bukan di dalam LI (item daftar) + other changes perubahan lain + page content konten halaman + page {n} is out of range (1–{count}) halaman {n} di luar rentang (1–{count}) + pages added or removed halaman ditambahkan atau dihapus + rows have between {min} and {max} columns baris memiliki antara {min} dan {max} kolom + the first heading is an H{n}; headings should not skip levels judul pertama adalah H{n}; judul tidak boleh melompati level + the signed version could not be read versi yang ditandatangani tidak dapat dibaca + {n} pages and no bookmarks {n} halaman dan tanpa bookmark + {page} is not a page number or label {page} bukan nomor halaman atau label + {ty} element on page {p}: {what} elemen {ty} pada halaman {p}: {what} + {ty} element: {what} elemen {ty}: {what} + {who}, certificate issued by an unknown issuer. {who}, sertifikat diterbitkan oleh penerbit yang tidak dikenal. + {who}, certificate issued by {issuer}. {who}, sertifikat diterbitkan oleh {issuer}. + {} annotation on page {p} isn't tagged anotasi {} pada halaman {p} tidak diberi tag + {} annotations aren't allowed anotasi {} tidak diizinkan + … and {n} more … dan {n} lagi +@plural Delete {n} field|Delete {n} fields Hapus {n} kolom +@plural {n} byte|{n} bytes {n} byte +@plural {n} image optimized|{n} images optimized {n} gambar dioptimalkan +@plural {n} item discarded|{n} items discarded {n} item dibuang +@plural {n} pixel|{n} pixels {n} piksel +action wizard Start Mulai +comment menu Edit Edit + A button Sebuah tombol + A diagonal CONFIDENTIAL watermark on every page. Watermark CONFIDENTIAL diagonal pada setiap halaman. + A document needs at least one page: copy instead Dokumen memerlukan minimal satu halaman: gunakan salinan + A form field has additional actions Sebuah kolom formulir memiliki tindakan tambahan + A link Sebuah tautan + A script Sebuah skrip + A selected field has no widget on any page, so the fields can't be edited together. Kolom yang dipilih tidak memiliki widget di halaman mana pun, sehingga kolom tidak dapat diedit bersama. + A stream refers to an external file Sebuah stream mengacu ke file eksternal + A stream uses LZW compression Sebuah stream menggunakan kompresi LZW + A summary describes the table's purpose and layout. Add a Summary attribute to each table. Ringkasan menjelaskan tujuan dan tata letak tabel. Tambahkan atribut Ringkasan ke setiap tabel. + About Tentang + Accepted Diterima + Accessibility permission flag Bendera izin aksesibilitas + Accessibility permission flag is set Bendera izin aksesibilitas diaktifkan + Add Page Numbers Tambahkan Nomor Halaman + Add arrow Tambahkan panah + Add background Tambahkan latar belakang + Add bookmark Tambahkan bookmark + Add callout Tambahkan kotak komentar + Add checkmark Tambahkan tanda centang + Add cloud Tambahkan awan + Add connected lines Tambahkan garis terhubung + Add cross Tambahkan silang + Add dot Tambahkan titik + Add drawing Tambahkan gambar + Add field Tambahkan kolom + Add file attachment Tambahkan lampiran file + Add footer Tambahkan footer + Add header Tambahkan header + Add header & footer Tambahkan header & footer + Add highlight Tambahkan sorotan + Add image Tambahkan gambar + Add inserted text Tambahkan teks yang disisipkan + Add line Tambahkan garis + Add link Tambahkan tautan + Add oval Tambahkan oval + Add polygon Tambahkan poligon + Add rectangle Tambahkan persegi panjang + Add redaction mark Tambahkan tanda sensor + Add signature Tambahkan tanda tangan + Add squiggly underline Tambahkan garis bawah bergelombang + Add stamp Tambahkan stempel + Add sticky note Tambahkan catatan tempel + Add strikethrough Tambahkan coretan + Add text box Tambahkan kotak teks + Add underline Tambahkan garis bawah + Add watermark Tambahkan tanda air + Add {what} Tambahkan {what} + Added the first {n} files in {folder} Menambahkan {n} file pertama di {folder} + Adding images arrives on the web with file pickers for images Menambahkan gambar hadir di web bersama pemilih file untuk gambar + Algorithm Algoritma + Align fields Sejajarkan kolom + All annotations are tagged Semua anotasi diberi tag + All form fields are tagged Semua kolom formulir diberi tag + All form fields have description Semua kolom formulir memiliki deskripsi + All multimedia objects are tagged Semua objek multimedia diberi tag + All page content is tagged Semua konten halaman diberi tag + Allowed Diizinkan + Alternate Text Teks Alternatif + Alternate text inside an element that already has alternate text is never read. Remove the inner alternate text. Teks alternatif di dalam elemen yang sudah memiliki teks alternatif tidak akan pernah dibaca. Hapus teks alternatif di bagian dalam. + Alternate text must be associated with some content Teks alternatif harus terkait dengan konten tertentu + Alternate text on an element that contains a link or field hides that annotation from assistive technology. Move the alternate text. Teks alternatif pada elemen yang memuat tautan atau kolom menyembunyikan anotasi tersebut dari teknologi bantu. Pindahkan teks alternatif. + Alternate text on an element without page content is never reached. Remove it or attach the element to content. Teks alternatif pada elemen tanpa konten halaman tidak akan pernah dijangkau. Hapus atau pasang elemen tersebut ke konten. + Alternate text should not hide annotation Teks alternatif tidak boleh menyembunyikan anotasi + Alternate text that will never be read Teks alternatif yang tidak akan pernah dibaca + An action is already running Sebuah tindakan sedang berjalan + An embedded file has no AFRelationship File tertanam tidak memiliki AFRelationship + An image asks to be interpolated Sebuah gambar meminta untuk diinterpolasi + An image has alternates or OPI information Sebuah gambar memiliki gambar alternatif atau informasi OPI + Animation that flashes can cause seizures. Check scripts and media for flicker. Animasi yang berkedip dapat menyebabkan kejang. Periksa skrip dan media untuk kedipan. + Another file dialog is still open. Finish with it first. Dialog file lain masih terbuka. Selesaikan terlebih dahulu. + Application Aplikasi + Applied 1 redaction mark. Save to remove the content from the file. 1 tanda sensor diterapkan. Simpan untuk menghapus konten dari file. + Applied {n} redaction marks. Save to remove the content from the file. {n} tanda sensor diterapkan. Simpan untuk menghapus konten dari file. + Appropriate nesting Penumpukan yang sesuai + Arbitrary Mask Masker sembarang + Associated with content terkait dengan konten + At least one signature has problems. Setidaknya satu tanda tangan bermasalah. + At least one signature is invalid. Setidaknya satu tanda tangan tidak valid. + Attachment Lampiran + Basic constraints Batasan dasar + Beveled Miring + Black Hitam + Black on white Hitam di atas putih + Blue Biru + Bookmarks are present in large documents Bookmark ada pada dokumen besar + Both Keduanya + Button Properties Properti Tombol + Button Style: Gaya Tombol: + Calculate Hitung + Callout Kotak komentar + Cancelled Dibatalkan + Center Footer Text Pusatkan Teks Footer + Center Header Text Pusatkan Teks Header + Center horizontally Pusatkan secara horizontal + Center vertically Pusatkan secara vertikal + Certificate Viewer Penampil Sertifikat + Certified by {by} Disertifikasi oleh {by} + Change comment properties Ubah properti komentar + Change document properties Ubah properti dokumen + Change field properties Ubah properti kolom + Change initial view Ubah tampilan awal + Change link properties Ubah properti tautan + Change tag properties Ubah properti tag + Change {key} Ubah {key} + Changing the document Mengubah dokumen + Character encoding Pengodean karakter + Character limit: Batas karakter: + Check Periksa + Check Box Properties Properti Kotak Centang + Check Box Style: Gaya Kotak Centang: + Check that the tags read in the order a sighted reader would. Use the Reading Order tool or the Tags panel to correct it. Pastikan tag dibaca dalam urutan seperti yang akan dibaca pembaca yang melihat. Gunakan alat Urutan Baca atau panel Tag untuk memperbaikinya. + CheckBox CheckBox + Checked Dicentang + Choose a folder for the split files Pilih folder untuk file hasil pisah + Choose a folder on this computer to pin Pilih folder di komputer ini untuk disematkan + Click on the page to add a {tool}, or drag to set its size Klik pada halaman untuk menambahkan {tool}, atau seret untuk mengatur ukurannya + Click text or an image to edit it Klik teks atau gambar untuk mengeditnya + Color Images Gambar berwarna + Color Spaces Ruang warna + Color contrast Kontras warna + Comb of characters Sisir karakter + Combo Kombo + Coming in milestone {m}. Items marked Ready work today. Hadir di milestone {m}. Item bertanda Ready sudah dapat digunakan. + Command Perintah + Commenting Komentar + Comments and markups Komentar dan anotasi + Comments, links and fields must be in the tag tree to be announced. Tag the annotations. Komentar, tautan, dan kolom harus berada di pohon tag agar dapat diumumkan. Beri tag pada anotasi. + Completed Selesai + Configure a Digital ID for Signing Konfigurasikan ID Digital untuk Penandatanganan + Connected lines Garis terhubung + Content Streams Content Streams + Content copying Penyalinan konten + Content copying for accessibility Penyalinan konten untuk aksesibilitas + Contributors Kontributor + Copied {what} {what} disalin + Copy or cut pages first Salin atau potong halaman terlebih dahulu + Could not save: {e} Tidak dapat menyimpan: {e} + Couldn't add {name}: {e} Tidak dapat menambahkan {name}: {e} + Couldn't combine files: {e} Tidak dapat menggabungkan file: {e} + Couldn't create a PDF: {e} Tidak dapat membuat PDF: {e} + Couldn't download {name}: {e} Tidak dapat mengunduh {name}: {e} + Couldn't extract pages: {e} Tidak dapat mengekstrak halaman: {e} + Couldn't fit the visible content: {e} Tidak dapat menyesuaikan konten yang terlihat: {e} + Couldn't follow linked PDF: {reason} Tidak dapat mengikuti PDF tertaut: {reason} + Couldn't import the signature image: {e} Tidak dapat mengimpor gambar tanda tangan: {e} + Couldn't open revision {n}: {e} Tidak dapat membuka revisi {n}: {e} + Couldn't open the result: {e} Tidak dapat membuka hasil: {e} + Couldn't open the signed version: {e} Tidak dapat membuka versi yang ditandatangani: {e} + Couldn't open {name}: {e} Tidak dapat membuka {name}: {e} + Couldn't optimize the file Tidak dapat mengoptimalkan file + Couldn't optimize the file: {e} Tidak dapat mengoptimalkan file: {e} + Couldn't print from the browser ({e}); downloaded {name} to print instead Tidak dapat mencetak dari peramban ({e}); mengunduh {name} sebagai gantinya + Couldn't read {name}: {e} Tidak dapat membaca {name}: {e} + Couldn't recover {name}: {e} Tidak dapat memulihkan {name}: {e} + Couldn't reload {name}: {e} Tidak dapat memuat ulang {name}: {e} + Couldn't save the image: {e} Tidak dapat menyimpan gambar: {e} + Couldn't save {name}: {e} Tidak dapat menyimpan {name}: {e} + Couldn't save: {e} Tidak dapat menyimpan: {e} + Couldn't show the file picker. Please try again. Tidak dapat menampilkan pemilih file. Silakan coba lagi. + Couldn't split: {e} Tidak dapat memisah: {e} + Couldn't summarize comments: {e} Tidak dapat meringkas komentar: {e} + Couldn't take the snapshot: {e} Tidak dapat mengambil snapshot: {e} + Couldn't unlock {name}: {e} Tidak dapat membuka kunci {name}: {e} + Couldn't use the photo: {e} Tidak dapat menggunakan foto: {e} + Couldn't use {name}: {e} Tidak dapat menggunakan {name}: {e} + Couldn't write {name}: {e} Tidak dapat menulis {name}: {e} + Couldn't write {path}: {e} Tidak dapat menulis {path}: {e} + Create link Buat tautan + Created 1 link 1 tautan dibuat + Created a PDF from the first {n} files PDF dibuat dari {n} file pertama + Created a comment summary Ringkasan komentar dibuat + Created {n} links {n} tautan dibuat + Credit Cards Kartu Kredit + Crop page Potong halaman + Custom font Font kustom + Custom stamps arrive on the web with file pickers for images Stempel kustom hadir di versi web dengan pemilih file untuk gambar + Cut {what} Potong {what} + Dark gray theme Tema abu-abu gelap + Dashed Putus-putus + Dates Tanggal + Delete bookmark Hapus bookmark + Delete content Hapus konten + Delete document JavaScript Hapus JavaScript dokumen + Delete field Hapus kolom + Delete image Hapus gambar + Delete link Hapus tautan + Delete page Hapus halaman + Delete selected fields Hapus kolom yang dipilih + Deleted Dihapus + Detected 1 form field 1 kolom formulir terdeteksi + Detected {n} form fields {n} kolom formulir terdeteksi + Device colour is used, but there is no PDF/A output intent Warna perangkat digunakan, tetapi tidak ada output intent PDF/A + DeviceCMYK is used: it needs a CMYK output intent (not added automatically) DeviceCMYK digunakan: diperlukan output intent CMYK (tidak ditambahkan otomatis) + Diagnostic details Detail diagnostik + Digital Signature Properties Properti Tanda Tangan Digital + Discard all comments, forms and multimedia Buang semua komentar, formulir dan multimedia + Discard all links, actions and JavaScript Buang semua tautan, aksi dan JavaScript + Discard all object data (file attachments) Buang semua data objek (lampiran file) + Discard bookmarks Buang bookmark + Discard document information and metadata Buang informasi dokumen dan metadata + Discard hidden layer content Buang konten lapisan tersembunyi + Discard hidden text Buang teks tersembunyi + Discard private data of other applications Buang data pribadi aplikasi lain + Distribute fields Distribusikan kolom + Document Overhead Beban dokumen + Document assembly Penyusunan dokumen + Document has appropriate color contrast Dokumen memiliki kontras warna yang sesuai + Document is not image-only PDF Dokumen ini bukan PDF gambar saja + Document is tagged PDF Dokumen ini PDF bertanda + Document sanitized. Save to finish: saving rewrites the whole file. Dokumen dibersihkan. Simpan untuk menyelesaikan: penyimpanan menulis ulang seluruh file. + Document structure provides a logical reading order Struktur dokumen menyediakan urutan baca logis + Document title is showing in title bar Judul dokumen tampil di bilah judul + Documents of more than 20 pages need bookmarks for navigation. Add bookmarks for the main sections. Dokumen dengan lebih dari 20 halaman memerlukan bookmark untuk navigasi. Tambahkan bookmark untuk bagian utama. + Double-click Klik dua kali + Downloaded {name} {name} diunduh + Downloading attachments on the web arrives with M3.10 ({n} bytes ready) Mengunduh lampiran di versi web hadir dengan M3.10 ({n} byte siap) + Drag a rectangle around the area to copy Seret sebuah persegi panjang di sekitar area yang akan disalin + Drag a rectangle on a page to crop it; double-click a page for Set Page Boxes Seret persegi panjang pada halaman untuk memotongnya; klik dua kali halaman untuk Kotak Halaman + Drag a rectangle to create a link; double-click a link to edit it Seret persegi panjang untuk membuat tautan; klik dua kali tautan untuk mengeditnya + Drag the corners onto the document's edges, then choose Enhance page. Seret sudutnya ke tepi dokumen, lalu pilih Peningkatan halaman. + Drag to draw the area where the signature should appear. Seret untuk menggambar area tempat tanda tangan akan ditampilkan. + Dropdown Properties Properti Dropdown + Duplicate field Duplikat kolom + Duplicate page Duplikat halaman + Each field needs a tooltip that says what to enter. Add one in Field Properties > General > Tooltip. Setiap kolom memerlukan tooltip yang menjelaskan apa yang harus diisi. Tambahkan di Properti Kolom > Umum > Tooltip. + Edit comment Edit komentar + Edit content Edit konten + Edit document JavaScript Edit JavaScript dokumen + Edit fields Edit kolom + Edit script of {name} Edit skrip {name} + Edit text Edit teks + Editing Mengedit + Email Addresses Alamat Email + Embedded Files File Tersemat + Embedded files must be PDF/A files themselves (use PDF/A-3 for others) File tersemat harus berupa file PDF/A (gunakan PDF/A-3 untuk yang lain) + Encryption Enkripsi + Endpoint Endpoint + Erase Hapus + Eraser Penghapus + Even pages Halaman genap + Everything on a page must be tagged or marked as an artifact (decoration, headers, footers). Tag the untagged content. Semua yang ada di halaman harus bertanda atau ditandai sebagai artefak (dekorasi, header, footer). Tandai konten yang belum bertanda. + Execute a menu item Jalankan item menu + Export certificate Ekspor sertifikat + Exported to {path} Diekspor ke {path} + Extended Graphics States Status Grafik Diperluas + Field Kolom + Field descriptions Deskripsi kolom + Figures alternate text Teks alternatif gambar + Figures require alternate text Gambar memerlukan teks alternatif + File attachments Lampiran file + Files are combined in this order. Leave Pages empty to take every page. File digabungkan dalam urutan ini. Biarkan Halaman kosong untuk mengambil semua halaman. + Fill in {name} Isi {name} + Filling of form fields Pengisian kolom formulir + Flatten Ratakan + Flip image Balik gambar + Fonts must map their characters to Unicode so text can be read and copied. Fix the fonts or recreate the PDF. Font harus memetakan karakternya ke Unicode agar teks dapat dibaca dan disalin. Perbaiki font atau buat ulang PDF. + Form fields must be in the tag tree (Form tags) to be announced. Tag the form fields. Kolom formulir harus berada di pohon tag (tag Formulir) agar diumumkan. Tandai kolom formulir. + Formulas and similar non-text elements need alternate text. Add alternate text to them. Rumus dan elemen non-teks serupa memerlukan teks alternatif. Tambahkan teks alternatif ke elemen tersebut. + Gray Abu-abu + Grayscale Images Gambar Skala Abu-abu + Green Hijau + Green on black Hijau di atas hitam + H / Space (hold) H / Space (tahan) + Header cells (TH) tell listeners what each column or row holds. Mark the header cells. Sel header (TH) memberi tahu pendengar isi setiap kolom atau baris. Tandai sel header. + Headers Header + Heading levels shouldn't skip (an H1 followed by an H3). Retag the headings. Tingkat judul tidak boleh melompat (H1 diikuti H3). Ubah lagi tag judul. + Headings Judul + Hidden layers Lapisan tersembunyi + Hidden text Teks tersembunyi + Hide a field Sembunyikan kolom + Hides annotation Menyembunyikan anotasi + High Tinggi + Home / End Home / End + Horizontally Horizontal + Image-only PDF PDF gambar saja + Import {name} Impor {name} + Importing data arrives on the web with file pickers for data files Mengimpor data hadir di versi web dengan pemilih file untuk file data + Incorrect password. Try again. Kata sandi salah. Coba lagi. + Insert pages from {name} Sisipkan halaman dari {name} + Insert pages from {name} — 1 field renamed Sisipkan halaman dari {name} — 1 kolom diganti namanya + Insert pages from {name} — fields renamed Sisipkan halaman dari {name} — kolom diganti namanya + Inserted Disisipkan + Inset Inset + Intended usage Penggunaan yang dimaksud + Intersection Irisan + Invert Balik + Irregular tables confuse cell navigation. Give every row the same number of cells (counting spans). Tabel yang tidak rapi membingungkan navigasi sel. Berikan setiap baris jumlah sel yang sama (termasuk sel yang digabungkan). + Issued by Diterbitkan oleh + Issued to Diterbitkan kepada + Issuer Penerbit + Key usage Penggunaan kunci + Keywords Kata kunci + LI must be a child of L LI harus menjadi anak dari L + Landscape pages Halaman lanskap + Lbl and LBody Lbl dan LBody + Lbl and LBody must be children of LI Lbl dan LBody harus menjadi anak dari LI + Left Footer Text Teks Footer Kiri + Left Header Text Teks Header Kiri + Light blue Biru muda + Links, actions and JavaScripts Tautan, aksi dan JavaScript + List Daftar + List Box Properties Properti Kotak Daftar + List items Item daftar + List items belong in a list. Fix the list's tags. Item daftar harus berada dalam daftar. Perbaiki tag daftar. + List labels and bodies belong in a list item. Fix the list's tags. Label dan badan daftar harus berada dalam item daftar. Perbaiki tag daftar. + Lists Daftar + Load document font Muat font dokumen + Local cross-PDF links require the desktop app Tautan antar-PDF lokal memerlukan aplikasi desktop + Lock comment Kunci komentar + Logical Reading Order Urutan Baca Logis + Low Rendah + Make scans searchable, then make them smaller. Buat hasil pindai dapat dicari, lalu perkecil ukurannya. + Mark all Tandai semua + Mark as Confidential Tandai sebagai Rahasia + Mark differences Tandai perbedaan + Mark figure as decorative Tandai gambar sebagai dekoratif + Mark for redaction Tandai untuk disensor + Mark pages for redaction Tandai halaman untuk disensor + Match field sizes Samakan ukuran kolom + Maximum Maksimum + Measuring tool Alat pengukur + Merged 1 file into {path} 1 file digabungkan ke {path} + Merged {n} files into {path} {n} file digabungkan ke {path} + Merging data files needs the desktop app Menggabungkan file data memerlukan aplikasi desktop + Metadata Metadata + Midpoint Titik tengah + Minimum Minimum + Models Model + Mouse Down Tetikus Turun + Mouse Enter Tetikus Masuk + Mouse Exit Tetikus Keluar + Mouse Up Tetikus Naik + Move bookmark Pindahkan bookmark + Move comment Pindahkan komentar + Move image Pindahkan gambar + Move page Pindahkan halaman + Move pages Pindahkan halaman + Named Destinations Tujuan Bernama + Navigation links Tautan navigasi + Navigation links are not repetitive Tautan navigasi tidak berulang + Nested alternate text Teks alternatif bersarang + New {tool} comments will look like this one Komentar {tool} baru akan terlihat seperti yang ini + No PDFs, images or text files found in {folder} Tidak ditemukan PDF, gambar atau file teks di {folder} + No form fields were detected Tidak ada kolom formulir yang terdeteksi + No inaccessible scripts Tidak ada skrip yang tidak dapat diakses + No links to remove Tidak ada tautan untuk dihapus + No pages match those choices Tidak ada halaman yang cocok dengan pilihan tersebut + No unlinked web addresses were found in the text Tidak ditemukan alamat web tanpa tautan dalam teks + None of those files can be made into a PDF; use PDFs, images or .txt files Tidak ada file tersebut yang dapat dijadikan PDF; gunakan file PDF, gambar atau .txt + Note Catatan + Number every page in the footer. Beri nomor setiap halaman di footer. + Odd pages Halaman ganjil + On Blur Saat Kehilangan Fokus + On Focus Saat Fokus + On the web, open or drop an image to convert it Di versi web, buka atau seret gambar untuk mengonversinya + Open a web link Buka tautan web + Opened with Dibuka dengan + Opening the browser's print dialog… Membuka dialog cetak browser… + Optimization cancelled Optimalkan dibatalkan + Optimization is already running Optimalkan sudah berjalan + Optimize Scanned Documents Optimalkan Dokumen Hasil Pindai + Options Opsi + Orange Oranye + Other elements alternate text Teks alternatif elemen lainnya + Other elements that require alternate text Elemen lain yang memerlukan teks alternatif + Outline Kerangka + PDF producer Produsen PDF + PDF version Versi PDF + Page Content Konten Halaman + Page Range Rentang Halaman + Page does not require timed responses Halaman tidak memerlukan respons berjadwal + Page thumbnails Miniatur halaman + Page will not cause screen flicker Halaman tidak menyebabkan kedipan layar + Pages that are only pictures of text can't be read aloud or searched. Recognize text (OCR) to add a text layer. Halaman yang hanya berisi gambar teks tidak dapat dibaca dengan suara atau dicari. Gunakan Pengenalan teks (OCR) untuk menambahkan lapisan teks. + Pages with links, comments or fields should tab in structure order. The fix sets each page's tab order to Use Document Structure. Halaman dengan tautan, komentar atau kolom harus dapat di-tab dalam urutan struktur. Perbaikan mengatur urutan tab setiap halaman ke Gunakan Struktur Dokumen. + Passed Lulus + Password protection will be applied when you save Perlindungan kata sandi akan diterapkan saat Anda menyimpan + Path Jalur + PdfCraft is drawing without a graphics processor, so it may be slow. Updating the graphics driver may help. PdfCraft sedang menggambar tanpa akselerator grafis, jadi mungkin lambat. Memperbarui driver grafis mungkin membantu. + People may need more time to respond. Check that nothing has a time limit. Orang mungkin membutuhkan lebih banyak waktu untuk merespons. Pastikan tidak ada yang memiliki batas waktu. + Phone Number Nomor Telepon + Phone Numbers Nomor Telepon + Pictures need alternate text that describes them, or must be marked decorative. Add alternate text to each figure. Gambar memerlukan teks alternatif yang menjelaskannya, atau harus ditandai sebagai dekoratif. Tambahkan teks alternatif ke setiap gambar. + Pink Merah muda + Pinned folders need the desktop app Folder yang disematkan memerlukan aplikasi desktop + Pinned {folder} to Home {folder} disematkan ke Beranda + Place saved {what} Tempatkan {what} yang tersimpan + Planned for milestone {m} — open to see what it will include Direncanakan untuk milestone {m} — buka untuk melihat apa yang akan disertakan + Planned · {m} Direncanakan · {m} + Polygon Poligon + Polyline Polyline + Portable mode is off: {folder} can't be written ({error}). Settings are kept in your user folder instead. Mode portabel mati: {folder} tidak dapat ditulis ({error}). Pengaturan akan disimpan di folder pengguna Anda sebagai gantinya. + Portrait pages Halaman potret + Position Posisi + PostScript XObjects aren't allowed XObjects PostScript tidak diizinkan + Prepare for Distribution Siapkan untuk Distribusi + Preparing sheet {done} of {total} for printing… Menyiapkan lembar {done} dari {total} untuk pencetakan… + Preparing {n} sheets for printing… Menyiapkan {n} lembar untuk pencetakan… + Primary language Bahasa utama + Printing Mencetak + Private data of other applications Data pribadi aplikasi lain + Public key Kunci publik + Purple Ungu + PushButton PushButton + Radio Radio + Radio Button Properties Properti Tombol Radio + Re-type Password Ketik Ulang Kata Sandi + Red Merah + Redid {label} Mengulangi {label} + Regularity Keteraturan + Rejected Ditolak + Reliable character encoding is provided Pengodean karakter yang andal disediakan + Remove hidden information and flatten comments and form fields, so recipients see only the pages. Hapus informasi tersembunyi dan ratakan komentar serta kolom formulir agar penerima hanya melihat halaman. + Remove hidden information, metadata, scripts and embedded content, and rewrite the files. Hapus informasi tersembunyi, metadata, skrip dan konten tersemat, lalu tulis ulang file. + Remove redaction marks Hapus tanda sensor + Remove saved {what} Hapus {what} yang tersimpan + Removed 1 hidden item. Save to remove them from the file. 1 item tersembunyi dihapus. Simpan untuk menghapusnya dari file. + Removed 1 link 1 tautan dihapus + Removed {n} hidden items. Save to remove them from the file. {n} item tersembunyi dihapus. Simpan untuk menghapusnya dari file. + Removed {n} links {n} tautan dihapus + Rename bookmark Ganti nama bookmark + Rendering: hayro (bootstrap) · UI: egui · Icons: Lucide (ISC) · Fonts: Inter, JetBrains Mono, Dancing Script (OFL) Render: hayro (bootstrap) · UI: egui · Ikon: Lucide (ISC) · Font: Inter, JetBrains Mono, Dancing Script (OFL) + Repairs Perbaikan + Repeated navigation links should be skippable. Check links that appear on every page. Tautan navigasi yang berulang harus dapat dilewati. Periksa tautan yang muncul di setiap halaman. + Replace page Ganti halaman + Replace pages Ganti halaman + Replaced Diganti + Replacing images arrives on the web with image file pickers Mengganti gambar hadir di versi web dengan pemilih file gambar + Replacing images on page {p} arrives on the web with image pickers ({i}) Mengganti gambar di halaman {p} hadir di versi web dengan pemilih gambar ({i}) + Report Options Opsi Laporan + Reset a form Atur ulang formulir + Resize comment Ubah ukuran komentar + Restrictions Pembatasan + Restrictions lifted Pembatasan dihapus + Reverted to the last saved version Dikembalikan ke versi tersimpan terakhir + Right Footer Text Teks Footer Kanan + Right Header Text Teks Header Kanan + Rotate image Putar gambar + Rotate page Putar halaman + Rotate page {label} clockwise Putar halaman {label} searah jarum jam + Rotate page {label} counterclockwise Putar halaman {label} berlawanan arah jarum jam + Rows Baris + Run Jalankan + Run JavaScript Jalankan JavaScript + Run a JavaScript Jalankan sebuah JavaScript + Run form script Jalankan skrip formulir + SHA-1 digest Digest SHA-1 + SHA-256 digest Digest SHA-256 + Sanitize Bersihkan + Sanitize Documents Bersihkan Dokumen + Save as PDF/A-1b Simpan sebagai PDF/A-1b + Save as PDF/A-2b Simpan sebagai PDF/A-2b + Save as PDF/A-3b Simpan sebagai PDF/A-3b + Save image Simpan gambar + Save or revert changes before selecting another tag. Simpan atau kembalikan perubahan sebelum memilih tag lain. + Saved the print-ready PDF to {path} PDF siap cetak disimpan ke {path} + Saved {name} {name} disimpan + Saved {place}: {before} → {after} (not smaller){detail} Disimpan {place}: {before} → {after} (tidak lebih kecil){detail} + Saved {place}: {before} → {after} ({pct}% smaller){detail} Disimpan {place}: {before} → {after} ({pct}% lebih kecil){detail} + Saved, but reopening failed: {e} Tersimpan, tetapi membuka kembali gagal: {e} + Screen flicker Kedipan layar + Screen readers choose their voice from the document's language. Set it in Document Properties > Advanced > Language. Pembaca layar memilih suaranya dari bahasa dokumen. Atur di Properti dokumen > Lanjutan > Bahasa. + Scripted content must be usable with a keyboard and assistive technology. Check the document's scripts. Konten berskrip harus dapat digunakan dengan keyboard dan teknologi bantu. Periksa skrip dokumen. + Scripts Skrip + Scripts run in a sandbox without file or network access. With JavaScript off, Acrobat's standard format, validate and calculate functions still work. Skrip berjalan di sandbox tanpa akses file atau jaringan. Dengan JavaScript nonaktif, fungsi format, validasi dan hitung bawaan Acrobat tetap berfungsi. + Security method Metode keamanan + Security settings must allow assistive technology to read the content ("Enable text access for screen reader devices"). Change the document's security to allow it. Pengaturan keamanan harus mengizinkan teknologi bantu membaca konten ("Aktifkan akses teks untuk perangkat pembaca layar"). Ubah keamanan dokumen untuk mengizinkannya. + Security will be removed when you save Keamanan akan dihapus saat Anda menyimpan + Self-signed Ditandatangani sendiri + Serial number Nomor seri + Set alternate text Atur teks alternatif + Set bookmark destination Atur tujuan bookmark + Set document title Atur judul dokumen + Set status Accepted Atur status Diterima + Set status Cancelled Atur status Dibatalkan + Set status Completed Atur status Selesai + Set status None Atur status Tidak ada + Set status Rejected Atur status Ditolak + Set status Unmarked Atur status Belum ditandai + Set tab order Atur urutan tab + Set the image of {name} Atur gambar untuk {name} + Shadings Pembayangan + Show a field Tampilkan kolom + Sign with a Digital ID Tanda tangani dengan ID Digital + Signed and all signatures are valid. Ditandatangani dan semua tanda tangan valid. + Signed and saved to {path} Ditandatangani dan disimpan ke {path} + Signer Penanda tangan + Signing time Waktu penandatanganan + Social Security Number Nomor Jaminan Sosial + Social Security Numbers Nomor Jaminan Sosial + Solid Padat + Squiggly Bergelombang + Star Bintang + Strong Kuat + Structure Info Info struktur + Submit a form Kirim formulir + TH and TD TH dan TD + TH and TD must be children of TR TH dan TD harus menjadi anak dari TR + TR must be a child of Table, THead, TBody, or TFoot TR harus menjadi anak dari Table, THead, TBody, atau TFoot + Tab order Urutan tab + Tab order is consistent with structure order Urutan tab sesuai dengan urutan struktur + Table cells belong in a row. Fix the table's tags. Sel tabel harus berada dalam satu baris. Perbaiki tag tabel. + Table rows belong directly in a table or its head, body or foot. Fix the table's tags. Baris tabel harus berada langsung dalam tabel atau header, body, atau footer-nya. Perbaiki tag tabel. + Tables Tabel + Tables must contain the same number of columns in each row and rows in each column Tabel harus memiliki jumlah kolom yang sama di setiap baris dan jumlah baris yang sama di setiap kolom + Tables must have a summary Tabel harus memiliki ringkasan + Tables should have headers Tabel sebaiknya memiliki header + Tagged PDF PDF bertag + Tagged annotations Anotasi bertag + Tagged content Konten bertag + Tagged form fields Kolom formulir bertag + Tagged multimedia Multimedia bertag + Tags give the document a logical structure that assistive technology follows. Tag the document (Automatically tag PDF). Tag memberi struktur logis pada dokumen yang diikuti teknologi bantu. Beri tag pada dokumen (Beri tag PDF secara otomatis). + Text Field Properties Properti Kolom Teks + Text language is specified Bahasa teks sudah ditentukan + Text must contrast enough with its background for people with low vision. Check the colours by eye or with a contrast tool. Teks harus kontras cukup dengan latar belakangnya untuk orang dengan penglihatan rendah. Periksa warnanya dengan mata atau dengan alat kontras. + Text recognition is already running Pengenalan teks sudah berjalan + Text recognition isn't installed: its models are missing (run `cargo xtask models`, or set PDFCRAFT_MODELS). Pengenalan teks belum terpasang: modelnya tidak ada (jalankan `cargo xtask models`, atau atur PDFCRAFT_MODELS). + That didn't work: an internal error stopped it ({m}). Itu tidak berhasil: kesalahan internal menghentikannya ({m}). + That didn't work: an internal error stopped it ({m}). Your documents are unchanged. itu tidak berhasil: kesalahan internal menghentikannya ({m}). Dokumen Anda tidak berubah. + The Keychain's digital IDs couldn't be listed: {e} ID digital Keychain tidak dapat ditampilkan: {e} + The Windows store's digital IDs couldn't be listed: {e} ID digital di penyimpanan Windows tidak dapat ditampilkan: {e} + The clipboard has no image or text Papan klip tidak berisi gambar atau teks + The document changed while you were choosing a file, so nothing was changed. Dokumen berubah saat Anda memilih file, jadi tidak ada yang diubah. + The document changed while you were editing field properties. Dokumen berubah saat Anda mengedit properti kolom. + The document has additional actions (/AA) Dokumen memiliki tindakan tambahan (/AA) + The document has document-level JavaScript Dokumen memiliki JavaScript tingkat dokumen + The document has no XMP metadata Dokumen tidak memiliki metadata XMP + The document is encrypted Dokumen terenkripsi + The document is no longer open. Dokumen tidak lagi terbuka. + The document was closed before it could be saved. Dokumen ditutup sebelum dapat disimpan. + The document's security settings don't allow filling in form fields Pengaturan keamanan dokumen tidak mengizinkan pengisian kolom formulir + The field properties could not be changed. Properti kolom tidak dapat diubah. + The field properties dialog is no longer open. Dialog properti kolom tidak lagi terbuka. + The form asks to be submitted to {u}; PdfCraft doesn't send form data. Save the document to keep your entries. Formulir diminta untuk dikirim ke {u}; PdfCraft tidak mengirim data formulir. Simpan dokumen untuk mempertahankan isi Anda. + The form asks viewers to make appearances (NeedAppearances) Formulir meminta penampil untuk membuat tampilan (NeedAppearances) + The linked PDF opened, but its named destination was not applied. PDF tertaut terbuka, tetapi tujuan bernama tidak diterapkan. + The linked PDF opened, but its page destination was out of range. PDF tertaut terbuka, tetapi tujuan halamannya di luar rentang. + The operation failed. Operasi gagal. + The pages were extracted but not deleted, because the document changed while you were choosing a folder. Halaman diekstrak tetapi tidak dihapus, karena dokumen berubah saat Anda memilih folder. + The passwords don't match. Kata sandi tidak cocok. + The selected area has been copied ({w} × {h} pixels) Area yang dipilih telah disalin ({w} × {h} piksel) + The selected fields could not be found. Select them again. Kolom yang dipilih tidak ditemukan. Pilih lagi. + The standard fonts can't draw “{c}” ({code}). Only Western European characters can be added as text for now. Font standar tidak dapat menggambar “{c}” ({code}). Untuk saat ini hanya karakter Western European yang dapat ditambahkan sebagai teks. + The title in the metadata and the document information differ Judul dalam metadata dan informasi dokumen berbeda + The window should show a meaningful title rather than the file name. Set a title and Initial View > Show: Document Title. Jendela harus menampilkan judul yang bermakna, bukan nama file. Atur judul dan Tampilan Awal > Tampilkan: Judul Dokumen. + There are no redaction marks to apply Tidak ada tanda penyensoran untuk diterapkan + This PDF uses the unsupported {s} action. PDF ini menggunakan tindakan {s} yang tidak didukung. + This compatibility level supports only plain ASCII passwords. Tingkat kompatibilitas ini hanya mendukung kata sandi ASCII biasa. + This document can't be checked: it couldn't be read for editing Dokumen ini tidak dapat diperiksa: tidak dapat dibaca untuk diedit + This document has no attachments. Dokumen ini tidak memiliki lampiran. + This document has no bookmarks. Dokumen ini tidak memiliki bookmark. + This document has no form fields. Dokumen ini tidak memiliki kolom formulir. + This document has no layers. Dokumen ini tidak memiliki lapisan. + This file is already as small as it can be made ({size}). No copy was saved. File ini sudah sekecil mungkin ({size}). Tidak ada salinan yang disimpan. + This form also contains XFA data, which PdfCraft doesn't read yet. You can fill its fields, but Acrobat may show the XFA values instead. Formulir ini juga berisi data XFA, yang belum dibaca PdfCraft. Anda dapat mengisi kolomnya, tetapi Acrobat mungkin menampilkan nilai XFA sebagai gantinya. + Thumbnails Thumbnail + Timed responses Respons berjadwal + Type Password Ketik Kata Sandi + Type a password. Ketik kata sandi. + Typewriter Mesin ketik + Unchecked Tidak dicentang + Undid {label} Membatalkan {label} + Unlock comment Buka kunci komentar + Unlocked {n} of {m} files Membuka kunci {n} dari {m} file + Update background Perbarui latar belakang + Update header & footer Perbarui header & footer + Update watermark Perbarui tanda air + Use {what} Gunakan {what} + Valid Valid + Valid from Valid mulai + Valid to Valid sampai + Validate Validasi + Validity ends Validitas berakhir + Validity starts Validitas dimulai + Vertically Vertikal + Video, sound and rich media must be tagged to be announced. Tag the multimedia annotations. Video, suara, dan media kaya harus diberi tag agar dapat diumumkan. Beri tag pada anotasi multimedia. + Viewing Melihat + Weak Lemah + White on black Putih di atas hitam + Wrote 1 file to {dir} Menulis 1 file ke {dir} + Wrote {n} files to {dir} Menulis {n} file ke {dir} + X Object Forms Formulir Objek X + Yellow Kuning + Yellow on black Kuning di atas hitam + You can pin up to {n} folders. Unpin one first. Anda dapat menyematkan hingga {n} folder. Lepas sematan satu terlebih dahulu. + Your name Nama Anda + Zip Code Kode Pos + Zip Code + 4 Kode Pos + 4 + `{command}` {when} `{command}` {when} + a bookmark cannot be moved inside itself bookmark tidak dapat dipindahkan ke dalam dirinya sendiri + a document must keep at least one page dokumen harus mempertahankan setidaknya satu halaman + average rata-rata + maximum maksimum + minimum minimum + no such document tidak ada dokumen tersebut + nothing in the file matches this document tidak ada yang di dalam file ini cocok dengan dokumen ini + nothing to redo tidak ada yang perlu diulang + nothing to undo tidak ada yang perlu dibatalkan + pages halaman + product (x) perkalian (x) + sum (+) penjumlahan (+) + the document has no form fields dokumen tidak memiliki kolom formulir + the document has no page tree dokumen tidak memiliki pohon halaman + the document has no tags dokumen tidak memiliki tag + the document is protected by a password dokumen dilindungi kata sandi + the image is empty gambarnya kosong + the password is incorrect kata sandinya salah + the text recognition models are not installed (reinstall PdfCraft, or set PDFCRAFT_MODELS to the folder that holds them) model pengenalan teks belum terpasang (pasang ulang PdfCraft, atau atur PDFCRAFT_MODELS ke folder yang memuatnya) + the title must not be empty judul tidak boleh kosong + there are no pages to print tidak ada halaman untuk dicetak + there are no redaction marks to apply tidak ada tanda penyensoran untuk diterapkan + this document is signed: rewriting it would invalidate its signatures (save it incrementally instead) dokumen ini ditandatangani: menulis ulang akan membatalkan tanda tangannya (simpan secara bertahap sebagai gantinya) + this file isn't XFDF, FDF, XML or text form data file ini bukan XFDF, FDF, XML, atau data formulir teks + {0}: {1} {0}: {1} + {field}: {e} {field}: {e} + {file} is too large for a stamp (at most {n} MB) {file} terlalu besar untuk stempel (maksimal {n} MB) + {folder} is already pinned to Home {folder} sudah disematkan ke Beranda + {label} failed: {e} {label} gagal: {e} + {name} has no action {name} tidak memiliki tindakan + {name} is too large for a word list (at most 1 MB). {name} terlalu besar untuk daftar kata (maksimal 1 MB). + {name} submits the form to {url}; PdfCraft doesn't send form data. Save the document to keep your entries. {name} mengirim formulir ke {url}; PdfCraft tidak mengirim data formulir. Simpan dokumen untuk mempertahankan isi Anda. + {name}: choosing images arrives on the web with file pickers for images {name}: memilih gambar Herrera ke situs web dengan pemilih file untuk gambar + {name}: the {other} action isn't supported yet {name}: tindakan {other} belum didukung + {who} in this document tried to open an address PdfCraft won't open: {e}. {who} dalam dokumen ini mencoba membuka alamat yang tidak akan dibuka PdfCraft: {e}. + {who} in this document tried to open an address PdfCraft won't open: {e}. Only web (http, https) and email (mailto) links open from documents. {who} dalam dokumen ini mencoba membuka alamat yang tidak akan dibuka PdfCraft: {e}. Hanya tautan web (http, https) dan email (mailto) yang terbuka dari dokumen. +animation effects Off Nonaktif +animation effects On Aktif + View more Lihat lebih banyak + View less Lihat lebih sedikit + Only continue if you trust this document. An address can carry information from the document, such as what you typed into its form. Lanjutkan hanya jika Anda memercayai dokumen ini. Alamat dapat membawa informasi dari dokumen, seperti yang Anda ketik ke formulirnya. + Print single-sided. Keep the sheets in order, cut at the marks, then stack the piles left to right, top to bottom. Cetak satu sisi. Pertahankan urutan lembarnya, potong pada tanda, lalu tumpuk tumpukan dari kiri ke kanan, dari atas ke bawah. + Sign a sheet of white paper and take a photo of it in bright, even light (use the flash). Choose the photo or drop it here: PdfCraft finds the signature and removes the paper. Tandatangani selembar kertas putih dan ambil fotonya dengan cahaya terang dan merata (gunakan blitz). Pilih foto atau jatuhkan di sini: PdfCraft menemukan tanda tangan dan menghapus kertasnya. + This field's font can't draw “{c}” ({code}), so PdfCraft shows ? in its place. The value is saved, and other PDF viewers redraw the field from it. Font kolom ini tidak dapat menggambar “{c}” ({code}), jadi PdfCraft menampilkan ? sebagai gantinya. Nilainya disimpan, dan penampil PDF lain menggambar ulang kolom dari nilai itu. + {chars} can't be written into the PDF yet: Fill & Sign text is Western European only. Pick a numeric format such as dd.mm.yyyy. {chars} belum dapat ditulis ke PDF: teks Isi & Tanda Tangani hanya untuk Western European. Pilih format angka seperti dd.mm.yyyy. + January Januari + February Februari + March Maret + April April + May Mei + June Juni + July Juli + August Agustus + September September + October Oktober + November November + December Desember +calendar date January Januari +calendar date February Februari +calendar date March Maret +calendar date April April +calendar date May Mei +calendar date June Juni +calendar date July Juli +calendar date August Agustus +calendar date September September +calendar date October Oktober +calendar date November November +calendar date December Desember +calendar weekday Su Su +calendar weekday Mo Sen +calendar weekday Tu Sel +calendar weekday We Rab +calendar weekday Th Kam +calendar weekday Fr Jum +calendar weekday Sa Sab +signature pad Type Ketik +scroll speed Slow Lambat +scroll speed Normal Normal +scroll speed Fast Cepat +certificate Subject Subjek +certificate Issued to Diterbitkan untuk +certificate Issued by Diterbitkan oleh +certificate Valid from Valid mulai +certificate Valid to Valid sampai +certificate Intended usage Kegunaan yang dimaksud +certificate Version Versi +certificate Serial number Nomor seri +certificate Issuer Penerbit +certificate Validity starts Validitas dimulai +certificate Validity ends Validitas berakhir +certificate Public key Kunci publik +certificate Basic constraints Batasan dasar +certificate Key usage Penggunaan kunci +certificate Self-signed Ditandatangani sendiri +certificate SHA-1 digest Ringkasan SHA-1 +certificate SHA-256 digest Ringkasan SHA-256 + Certificate authority Otoritas sertifikat + End entity Entitas akhir + Float panel Jadikan panel mengambang + Move to group Pindahkan ke grup + Panels Panel + Resize panel window Ubah ukuran jendela panel + Resize panels Ubah ukuran panel + Grab bag Lain-lain + No contributor data was built into this copy. Data kontributor tidak disertakan dalam salinan ini. + No model credits were built into this copy. Kredit model tidak disertakan dalam salinan ini. + Reverse the order Balik urutan + Show Tampilkan + Sort Urutkan + Table Tabel + The field {name} no longer exists. Kolom {name} tidak lagi ada. + {n} contributors · {c} commits {n} kontributor · {c} commit + Username Nama pengguna + Display name Nama tampilan + Real name Nama asli + Name (A–Z) Nama (A–Z) + Merged PRs PR yang digabung + PRs PR + Commits Commit + Lines added Baris ditambahkan + +LOC +LOC + Lines deleted Baris dihapus + −LOC −LOC + Line delta Perubahan baris + ΔLOC ΔLOC + Binary assets added Aset biner ditambahkan + +Bin +Bin + Binary assets removed Aset biner dihapus + −Bin −Bin + First commit Commit pertama + First Pertama + Last commit Commit terakhir + Last Terakhir + Company Perusahaan + Model Model + Version Versi + % of all commits % dari semua commit + Lines +/− Baris +/− + @{login}: {prs} PRs, {commits} commits, +{added} / −{deleted} lines (Δ {delta}), +{bin_added} / −{bin_deleted} binary assets, {first} – {last} @{login}: {prs} PR, {commits} commit, +{added} / −{deleted} baris (Δ {delta}), +{bin_added} / −{bin_deleted} aset biner, {first} – {last} + of {name} dari {name} + of {pages} dari {pages} + on page {label} di halaman {label} + open to see what it will include buka untuk melihat apa yang akan disertakan + ships in milestone {m} rilis di milestone {m} + signature tanda tangan + sorted ascending terurut naik + sorted descending terurut menurun + to hingga + to {n} hingga {n} + watermark tanda air + yyyy or yy year · m or mm month · mmm or mmmm month name · d or dd day · ddd or dddd weekday. H, h, M, s and t are time letters and can't be used on their own: put {escape} before a letter to show it as is. yyyy atau yy tahun · m atau mm bulan · mmm atau mmmm nama bulan · d atau dd hari · ddd atau dddd nama hari. H, h, M, s, dan t adalah huruf waktu dan tidak dapat digunakan sendiri: letakkan {escape} sebelum huruf untuk menampilkannya apa adanya. + {c} of {n}{more} {c} dari {n}{more} + {dpi} pixels/inch {dpi} piksel/inci + {kind} Properties Properti {kind} + {kind} field kolom {kind} + {kind} · page {p} {kind} · halaman {p} + {kind} — click to show it on the page {kind} — klik untuk menampilkannya di halaman + {k} of {n} {k} dari {n} + {label} (1 issue) {label} (1 masalah) + {label} ({n} issues) {label} ({n} masalah) + {month} {day}, {y} {month} {day}, {y} + {month} {y} {month} {y} + {msg} to {dir} {msg} ke {dir} + {name} (default) {name} (bawaan) + {name} can't be combined: {why} {name} tidak dapat digabungkan: {why} + {name} is read-only {name} hanya baca + {name} — unsaved changes {name} — perubahan belum disimpan + {n} days ago {n} hari lalu + {n} differences found {n} perbedaan ditemukan + {n} fields selected {n} kolom dipilih + {n} files {n} file + {n} files done {n} file selesai + {n} files need attention {n} file perlu perhatian + {n} h ago {n} jam lalu + {n} instances {n} instans + {n} issues {n} masalah + {n} marks {n} tanda + {n} match(es) marked for redaction. {n} kecocokan ditandai untuk disensor. + {n} measurements use an unsupported format and are left out. {n} pengukuran menggunakan format yang tidak didukung dan dikecualikan. + {n} min ago {n} mnt lalu + {n} pages {n} halaman + {n} pages selected. {n} halaman dipilih. + {n} selected {n} dipilih + {n} tags {n} tag + {n} word(s) or phrase(s) {n} kata atau frasa + {n} {kind} {n} {kind} + {rule} - {status} {rule} - {status} + {s} action tindakan {s} + {verb} Background {verb} Latar Belakang + {verb} Header and Footer {verb} Header dan Footer + {verb} Watermark {verb} Tanda Air + {verb} as "{name}" {verb} sebagai "{name}" + {who} in this document wants to open this address in your browser: {who} dalam dokumen ini ingin membuka alamat ini di browser Anda: + {who} in this document wants to open your email app with this address: {who} dalam dokumen ini ingin membuka aplikasi email Anda dengan alamat ini: + {words} on {pages} {words} di {pages} + — (protection is applied when you save) — (perlindungan diterapkan saat Anda menyimpan) + “{name}” has security restrictions. Enter its permissions password to lift them. “{name}” memiliki pembatasan keamanan. Masukkan kata sandi izinnya untuk mencabut pembatasan tersebut. + “{name}” is protected. Enter a password to open it. “{name}” dilindungi. Masukkan kata sandi untuk membukanya. +@plural {n} page|{n} pages {n} halaman +@plural {n} file|{n} files {n} file +@plural {n} field|{n} fields {n} kolom +@plural {n} comment|{n} comments {n} komentar +@plural {n} result|{n} results {n} hasil +@plural {n} field name collides with earlier files and will be renamed: {list}|{n} field names collide with earlier files and will be renamed: {list} {n} nama kolom bertabrakan dengan file sebelumnya dan akan diganti nama: {list} +@plural {n} object selected|{n} objects selected {n} objek dipilih +@plural Downloaded {n} PDF|Downloaded {n} PDFs {n} PDF diunduh +key Ctrl Ctrl +key Shift Shift +key Delete Delete +key Esc Esc +key Home Home +key End End +key Space Space diff --git a/crates/ui-egui/src/i18n/mod.rs b/crates/ui-egui/src/i18n/mod.rs index 18a0fc54bf..a92a732895 100644 --- a/crates/ui-egui/src/i18n/mod.rs +++ b/crates/ui-egui/src/i18n/mod.rs @@ -147,7 +147,7 @@ fn plural_sl(n: u64) -> usize { } /// The registry. English first: it is the fallback and the source language. -pub static LANGUAGES: [LangInfo; 22] = [ +pub static LANGUAGES: [LangInfo; 24] = [ LangInfo { code: "en", name: "English", source: "", plural: plural_one_other, rtl: false, catalog: OnceLock::new() }, LangInfo { code: "ja", name: "日本語", source: include_str!("ja.tsv"), plural: plural_none, rtl: false, catalog: OnceLock::new() }, // Simplified Chinese; `zh`, `zh-CN`, `zh-SG` and `zh-Hans-*` locales resolve here (see `candidates`). @@ -207,6 +207,12 @@ pub static LANGUAGES: [LangInfo; 22] = [ LangInfo { code: "tr", name: "Türkçe", source: include_str!("tr.tsv"), plural: plural_none, rtl: false, catalog: OnceLock::new() }, // Lithuanian; every `lt-*` locale (`lt-LT`, `lt_LT.UTF-8`) resolves here. Three plural forms (one, few, other). LangInfo { code: "lt", name: "Lietuvių", source: include_str!("lt.tsv"), plural: plural_lithuanian, rtl: false, catalog: OnceLock::new() }, + // Indonesian; every `id-*` locale (`id-ID`, `id_ID.UTF-8`) resolves here. CLDR `id` counts have + // one form ("other"), so `@plural` entries list a single form. + LangInfo { code: "id", name: "Bahasa Indonesia", source: include_str!("id.tsv"), plural: plural_none, rtl: false, catalog: OnceLock::new() }, + // Vietnamese; every `vi-*` locale (`vi-VN`, `vi_VN.UTF-8`) resolves here. CLDR `vi` counts have + // one form ("other"), so `@plural` entries list a single form. + LangInfo { code: "vi", name: "Tiếng Việt", source: include_str!("vi.tsv"), plural: plural_none, rtl: false, catalog: OnceLock::new() }, ]; impl LangInfo { @@ -2378,6 +2384,125 @@ mod tests { assert!(missing.is_empty(), "untranslated Slovene UI literals: {missing:#?}"); } + #[test] + fn indonesian_and_vietnamese_are_registered_and_persist() { + let id = Lang::from_code("id").expect("id registered"); + let vi = Lang::from_code("vi").expect("vi registered"); + assert_eq!(id.name(), "Bahasa Indonesia"); + assert_eq!(vi.name(), "Tiếng Việt"); + assert_eq!(normalize_pref("ID"), Some("id")); + assert_eq!(normalize_pref("Vi"), Some("vi")); + for tag in ["id", "id-ID", "id_ID.UTF-8", "ID-id"] { + assert_eq!(lang_from_tag(tag), Some(id), "{tag}"); + } + for tag in ["vi", "vi-VN", "vi_VN.UTF-8", "VI-vn"] { + assert_eq!(lang_from_tag(tag), Some(vi), "{tag}"); + } + assert_eq!(first_supported("id-ID\r\nen-US"), Some(id)); + assert_eq!(first_supported("vi-VN\r\nen-US"), Some(vi)); + assert_eq!(tr(id, "Save"), "Simpan"); + assert_eq!(tr(id, "Save as…"), "Simpan sebagai…"); + assert_eq!(tr(id, "Bookmarks"), "Bookmark"); + assert_eq!(tr(id, "Fill & Sign"), "Isi & Tanda Tangani"); + assert_eq!(tr(vi, "Save"), "Lưu"); + assert_eq!(tr(vi, "Save as…"), "Lưu thành…"); + assert_eq!(tr(vi, "Bookmarks"), "Dấu trang"); + assert_eq!(tr(vi, "Fill & Sign"), "Điền & Ký"); + assert_eq!(tr(vi, "Interface language"), "Ngôn ngữ giao diện"); + assert_eq!(tr(id, "Interface language"), "Bahasa antarmuka"); + // One CLDR plural form (CLDR `id`, `vi`): the message reads the same for every count. + assert_eq!((0..=3).map(|n| (id.0.plural)(n)).collect::>(), [0, 0, 0, 0]); + assert_eq!((0..=3).map(|n| (vi.0.plural)(n)).collect::>(), [0, 0, 0, 0]); + for n in [0, 1, 2, 5] { + assert_eq!(trn(id, n, "{n} page", "{n} pages"), format!("{n} halaman")); + assert_eq!(trn(vi, n, "{n} page", "{n} pages"), format!("{n} trang")); + assert_eq!(trn(id, n, "{n} field", "{n} fields"), format!("{n} kolom")); + assert_eq!(trn(vi, n, "{n} field", "{n} fields"), format!("{n} ô")); + } + let mut app = crate::PdfCraftApp::default(); + app.set_option("language", "ID").unwrap(); + assert_eq!(app.language, "id"); + let mut restored = crate::PdfCraftApp::default(); + restored.restore(&app.persist()); + assert_eq!(restored.language, "id"); + let mut app = crate::PdfCraftApp::default(); + app.set_option("language", "vi").unwrap(); + assert_eq!(app.language, "vi"); + let mut restored = crate::PdfCraftApp::default(); + restored.restore(&app.persist()); + assert_eq!(restored.language, "vi"); + assert!(restored.set_option("language", "xx").is_err()); + assert_eq!(restored.language, "vi"); + } + + /// Indonesian and Vietnamese translate every registered command and every All tools group, + /// section and item. + #[test] + fn indonesian_and_vietnamese_cover_commands_and_catalogue() { + for lang in [Lang::from_code("id").expect("id registered"), Lang::from_code("vi").expect("vi registered")] { + for command in pdfcraft_engine::commands::COMMANDS { + assert!(has(lang, command.label), "{} missing command: {}", lang.code(), command.label); + if let Some(menu) = command.menu { + assert!(has(lang, menu), "{} missing menu: {menu}", lang.code()); + } + } + for group in pdfcraft_engine::catalog::TOOL_GROUPS { + assert!(has(lang, group.label), "{} missing group: {}", lang.code(), group.label); + for section in group.sections { + assert!(has(lang, section.title), "{} missing section: {}", lang.code(), section.title); + for item in section.items { + assert!(has(lang, item.label), "{} missing item: {}", lang.code(), item.label); + } + } + } + } + } + + /// Every `tl!("…")` literal in the UI source is translated in Indonesian and Vietnamese, so a + /// new label cannot silently fall back to English in either. + #[test] + fn indonesian_and_vietnamese_cover_ui_literals() { + let mut stack = vec![std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src")]; + let mut literals = std::collections::BTreeSet::new(); + while let Some(dir) = stack.pop() { + for entry in std::fs::read_dir(dir).expect("UI source directory") { + let path = entry.expect("UI source entry").path(); + if path.is_dir() { + if path.file_name().is_some_and(|name| name != "i18n") { + stack.push(path); + } + } else if path.extension().is_some_and(|ext| ext == "rs") { + let source = std::fs::read_to_string(path).expect("UI source file").replace("\r\n", "\n"); + let mut rest = source.split("#[cfg(test)]\nmod ").next().unwrap_or_default(); + while let Some((_, after)) = rest.split_once("tl!(\"") { + let mut escaped = false; + let end = after + .char_indices() + .find_map(|(i, c)| { + if c == '"' && !escaped { + return Some(i); + } + escaped = c == '\\' && !escaped; + None + }) + .expect("closed tl! literal"); + let (raw, tail) = after.split_at(end); + if tail.starts_with("\")") { + let label: String = serde_json::from_str(&format!("\"{raw}\"")).expect("UI literal escapes"); + literals.insert(label); + } + rest = tail.strip_prefix('"').expect("closing quote"); + } + } + } + } + assert!(literals.len() > 900, "source scan found only {} literals", literals.len()); + for lang in [Lang::from_code("id").expect("id registered"), Lang::from_code("vi").expect("vi registered")] { + let missing: Vec<_> = literals.iter().filter(|label| !has(lang, label)).collect(); + assert!(missing.is_empty(), "untranslated {} UI literals: {missing:#?}", lang.code()); + } + } + #[test] fn bulgarian_is_registered() { let bg = Lang::from_code("bg").expect("bg registered"); diff --git a/crates/ui-egui/src/i18n/ru.tsv b/crates/ui-egui/src/i18n/ru.tsv index 7f628088d6..0658b5a147 100644 --- a/crates/ui-egui/src/i18n/ru.tsv +++ b/crates/ui-egui/src/i18n/ru.tsv @@ -7,10 +7,20 @@ # (Acrobat's included) was consulted or copied; add entries the same way. # Product and technology names (PdfCraft, PDF, Acrobat JavaScript ...) are not translated; # the trailing "…" of dialog commands is kept. - +# Document font selection +# Shared field properties (Prepare a form). +# Multi-object selection and movement (#844) +# Keyboard key names, distinct from command labels. +# Shared panel docking +# Architectural print controls (follow-up to #599). +# Accessibility structure tags. +# PDF tab context menu (#1233) + Delete Удалить + Home Главная Menu Меню File Файл Edit Редактирование + Off Выключено Pages Страницы View Просмотр Help Справка @@ -24,9 +34,6 @@ Name on new comments Имя в новых комментариях Open… Открыть… Open Recent Открыть недавние - Clear Recent Files Очистить недавние файлы - Remove from Recent Убрать из недавних - Remove {name} from Recent Убрать {name} из недавних Pin folder to Home… Закрепить папку на главной… Folders Папки Pin a folder… Закрепить папку… @@ -83,8 +90,6 @@ Display theme Тема оформления Side panels Боковые панели Enable Acrobat JavaScript Включить Acrobat JavaScript - Flatten Fill & Sign when saving Расплющить «Заполнить и подписать» при сохранении - Text, marks and signatures become part of the page. Other comments stay editable. Текст, пометки и подписи становятся частью страницы. Остальные комментарии можно по-прежнему править. OK OK Join our Discord Присоединяйтесь к нашему Discord Close Закрыть @@ -99,7 +104,7 @@ Previous / next page Предыдущая / следующая страница Delete selected pages (Organize) Удалить выделенные страницы (Организация) Select all pages (Organize) Выделить все страницы (Организация) - Home Главная +key Home Home Open Открыть Open a PDF ({key}) Открыть PDF ({key}) Dark gray theme Тёмно-серая тема @@ -354,7 +359,7 @@ Page options Параметры страниц Page grid Сетка страниц Rotate Повернуть - Delete Удалить +key Delete Delete Extract Извлечь Insert Вставить Replace Заменить @@ -615,7 +620,6 @@ Bottom: Снизу: Width: Ширина: Height: Высота: - Rotation: Поворот: Points from the page's bottom-left corner. Точки от левого нижнего угла страницы. Alignment: Выравнивание: Default Value: Значение по умолчанию: @@ -697,14 +701,11 @@ of the following fields: из следующих полей: Simplified field notation: Упрощённая запись полей: Field names with + - * / and parentheses; put \\ before spaces in names. Имена полей с + - * / и скобками; ставьте \\ перед пробелами в именах. - -# Document font selection Finding document fonts… Поиск шрифтов для документа… Installed fonts… Установленные шрифты… Keep source fonts Сохранить исходные шрифты Load font… Загрузить шрифт… No openly licensed document fonts found. Load a font file. Шрифты с открытой лицензией не найдены. Загрузите файл шрифта. - Format text Форматировать текст Bold Полужирный Italic Курсив @@ -789,7 +790,7 @@ {verb} Header and Footer {verb} колонтитулы {verb} Watermark {verb} водяной знак {verb} Background {verb} фон - Margins Поля + Margins (in) Поля (дюймы) Left Header Text Текст левого колонтитула Center Header Text Текст центрального колонтитула Right Header Text Текст правого колонтитула @@ -955,13 +956,6 @@ This comment's appearance can't be changed yet. Внешний вид этого комментария пока нельзя изменить. Icon Значок Thickness Толщина - Line ending Окончание линии - Open arrow Открытая стрелка - Closed arrow Закрытая стрелка - Butt Торец - Reverse open arrow Обратная открытая стрелка - Reverse closed arrow Обратная закрытая стрелка - Slash Косая черта Modified Изменено No status has been set. Статус не установлен. Compare Files Сравнить файлы @@ -1174,7 +1168,7 @@ Collate Собирать в тетради Print in grayscale Печать в оттенках серого Two-sided: Двусторонняя: - Off Выкл +animation effects Off Выкл Flip on long edge Переворот по длинной стороне Flip on short edge Переворот по короткой стороне Paper: Бумага: @@ -2048,14 +2042,8 @@ Default page display Отображение страниц по умолчанию Default zoom Масштаб по умолчанию Used when a PDF doesn't ask for a layout or zoom. Continuous scrolling never snaps between pages. Используется, когда PDF не запрашивает макет или масштаб. Непрерывная прокрутка никогда не привязывается между страницами. - Reopen the files that were open when PdfCraft last closed Повторно открывать файлы, которые были открыты при последнем закрытии PdfCraft - Reload documents when their files change on disk Перезагружать документы при изменении их файлов на диске - This file changed on disk. Reload it to see the new version; your unsaved changes will be lost. Этот файл был изменён на диске. Перезагрузите его, чтобы увидеть новую версию; несохранённые изменения будут потеряны. - Reload Перезагрузить - Couldn't reload {name}: {e} Не удалось перезагрузить {name}: {e} Choose a PNG or JPEG image (up to 4 MiB). Transparency is preserved. Выберите изображение PNG или JPEG (до 4 МиБ). Прозрачность сохраняется. Couldn't import the signature image: {e} Не удалось импортировать изображение подписи: {e} - @plural {n} page|{n} pages {n} страница|{n} страницы|{n} страниц @plural {n} field|{n} fields {n} поле|{n} поля|{n} полей @plural {n} field name collides with earlier files and will be renamed: {list}|{n} field names collide with earlier files and will be renamed: {list} Имя {n} поля конфликтует с предыдущими файлами и будет переименовано: {list}|Названия {n} полей конфликтуют с предыдущими файлами и будут переименованы: {list}|Названия {n} полей конфликтуют с предыдущими файлами и будут переименованы: {list} @@ -2077,7 +2065,101 @@ Created a PDF from {n} files; left out: {names} PDF создан из файлов: {n}; пропущены: {names} Created a PDF from the first {n} files PDF создан из первых файлов: {n} Go to page… Перейти на страницу… - For page sizes and margins. Для размеров страниц и полей. + Optimization is already running Оптимизация уже выполняется + Optimization cancelled Оптимизация отменена + Couldn't optimize the file Не удалось оптимизировать файл + Files are combined in this order. Leave Pages empty to take every page. Файлы объединяются в этом порядке. Оставьте «Страницы» пустым, чтобы взять все страницы. + Portable mode is off: {folder} can't be written ({error}). Settings are kept in your user folder instead. Портативный режим выключен: невозможно записать в {folder} ({error}). Настройки хранятся в вашей пользовательской папке. + PdfCraft is drawing without a graphics processor, so it may be slow. Updating the graphics driver may help. PdfCraft работает без графического процессора, поэтому может быть медленным. Обновление графического драйвера может помочь. + Show Показывать + Sort Сортировать + Reverse the order Обратный порядок + Grab bag Разное + Table Таблица + Username Имя пользователя + Display name Отображаемое имя + Real name Настоящее имя + Name (A–Z) Имя (А–Я) + Merged PRs Принятые PR + PRs PR + Commits Коммиты + Lines added Добавлено строк + +LOC +LOC + Lines deleted Удалено строк + −LOC −LOC + Line delta Изменение количества строк + ΔLOC ΔLOC + Binary assets added Добавлено бинарных ресурсов + +Bin +Bin + Binary assets removed Удалено бинарных ресурсов + −Bin −Bin + First commit Первый коммит + First Первый + Last commit Последний коммит + Last Последний + No contributor data was built into this copy. В эту копию не встроены данные об участниках. + No model credits were built into this copy. В эту копию не встроены сведения о моделях. + {n} contributors · {c} commits Участников: {n} · Коммитов: {c} + Company Организация + Model Модель + % of all commits % всех коммитов + Lines +/− Строк +/− + @{login}: {prs} PRs, {commits} commits, +{added} / −{deleted} lines (Δ {delta}), +{bin_added} / −{bin_deleted} binary assets, {first} – {last} @{login}: PR: {prs}, коммитов: {commits}, +{added} / −{deleted} строк (Δ {delta}), +{bin_added} / −{bin_deleted} бинарных ресурсов, {first} – {last} + None of those files can be made into a PDF; use PDFs, images or .txt files Ни один из этих файлов нельзя преобразовать в PDF; используйте PDF, изображения или файлы .txt + About О программе + Contributors Участники + Models Модели + Only continue if you trust this document. An address can carry information from the document, such as what you typed into its form. Продолжайте только если доверяете этому документу. Адрес может содержать информацию из документа, например данные, введённые в форму. + Print single-sided. Keep the sheets in order, cut at the marks, then stack the piles left to right, top to bottom. Печатайте с одной стороны. Сохраняйте порядок листов, разрежьте по меткам, затем сложите стопки слева направо, сверху вниз. + Undo {action} Отменить {action} + Redo {action} Повторить {action} + Reopen the files that were open when PdfCraft last closed Повторно открывать файлы, которые были открыты при последнем закрытии PdfCraft + Clear Recent Files Очистить недавние файлы + Remove from Recent Убрать из недавних + Remove {name} from Recent Убрать {name} из недавних + Inserted text Вставленный текст + Add {what} Добавить: {what} + Use {what} Использовать: {what} + Place saved {what} Разместить сохранённое: {what} + Remove saved {what} Удалить сохранённое: {what} + A link Ссылка + A button Кнопка + A script Сценарий + {who} in this document tried to open an address PdfCraft won't open: {e}. {who} в этом документе пытается открыть адрес, который PdfCraft не открывает: {e}. + {who} in this document tried to open an address PdfCraft won't open: {e}. Only web (http, https) and email (mailto) links open from documents. {who} в этом документе пытается открыть адрес, который PdfCraft не открывает: {e}. Из документов открываются только веб-ссылки (http, https) и ссылки на электронную почту (mailto). + Another file dialog is still open. Finish with it first. Ещё открыто другое окно выбора файла. Сначала завершите работу с ним. + Couldn't show the file picker. Please try again. Не удалось показать окно выбора файла. Попробуйте ещё раз. + The document changed while you were choosing a file, so nothing was changed. Документ изменился, пока вы выбирали файл, поэтому ничего не изменено. + The document was closed before it could be saved. Документ был закрыт до того, как его удалось сохранить. + The pages were extracted but not deleted, because the document changed while you were choosing a folder. Страницы извлечены, но не удалены, потому что документ изменился, пока вы выбирали папку. + That didn't work: an internal error stopped it ({m}). Не удалось: действие остановила внутренняя ошибка ({m}). + The Windows store's digital IDs couldn't be listed: {e} Не удалось получить список цифровых удостоверений из хранилища Windows: {e} + Align fields Выровнять поля + Distribute fields Распределить поля + Match field sizes Задать одинаковые размеры полей + Mark for redaction Пометить для удаления содержимого + Mark pages for redaction Пометить страницы для удаления содержимого + Change document properties Изменить свойства документа + Mark differences Пометить различия + Run form script Выполнить сценарий формы + Scripted content must be usable with a keyboard and assistive technology. Check the document's scripts. Содержимое со сценариями должно быть доступно для управления с помощью клавиатуры и вспомогательных технологий. Проверьте сценарии документа. + Table rows belong directly in a table or its head, body or foot. Fix the table's tags. Строки таблицы должны принадлежать непосредственно таблице или её заголовочной, основной или нижней части. Исправьте теги таблицы. + Basic constraints Основные ограничения + Certificate authority Центр сертификации + End entity Конечный субъект + SHA-1 digest Отпечаток SHA-1 + SHA-256 digest Отпечаток SHA-256 + Squiggly Волнистое + Home / End Home / End + H / Space (hold) H / Пробел (удерживать) + Rotation: Поворот: + Line ending Окончание линии + Open arrow Открытая стрелка + Closed arrow Закрытая стрелка + Butt Торец + Reverse open arrow Обратная открытая стрелка + Reverse closed arrow Обратная закрытая стрелка + Slash Косая черта The PDF text fonts can't draw “{c}” ({code}). Choose supported text. Шрифты текста PDF не могут отобразить «{c}» ({code}). Выберите поддерживаемый текст. The standard fonts can't draw “{c}” ({code}). Only Western European characters can be added as text for now. Стандартные шрифты не могут отобразить «{c}» ({code}). Пока в виде текста можно добавлять только западноевропейские символы. This field's font can't draw “{c}” ({code}), so PdfCraft shows ? in its place. The value is saved, and other PDF viewers redraw the field from it. Шрифт этого поля не может отобразить «{c}» ({code}), поэтому PdfCraft показывает на его месте ?. Значение сохранено, и другие программы просмотра PDF перерисуют поле по нему. @@ -2085,6 +2167,8 @@ Larger pages Крупнее страницы Smaller pages Мельче страницы Reset page size Сбросить размер страниц + Flatten Fill & Sign when saving Расплющить «Заполнить и подписать» при сохранении + Text, marks and signatures become part of the page. Other comments stay editable. Текст, пометки и подписи становятся частью страницы. Остальные комментарии можно по-прежнему править. Date format Формат даты Fill & Sign dates Даты для «Заполнить и подписать» Pattern Шаблон @@ -2098,10 +2182,10 @@ Printer properties Свойства принтера Reset to printer defaults Вернуть параметры принтера по умолчанию This printer offers no settings of its own. У этого принтера нет собственных параметров. + Margins Поля + For page sizes and margins. Для размеров страниц и полей. Scroll tabs left Прокрутить вкладки влево Scroll tabs right Прокрутить вкладки вправо - -# Shared field properties (Prepare a form). Shared Field Properties Общие свойства полей {n} fields selected Выбрано полей: {n} Mixed Разные значения @@ -2121,8 +2205,6 @@ The field {name} no longer exists. Поле {name} больше не существует. A selected field has no widget on any page, so the fields can't be edited together. У одного из выбранных полей нет виджета ни на одной странице, поэтому поля нельзя изменить вместе. ({n} at {dpi} dpi, the largest size they can be drawn at) ({n} — с разрешением {dpi} dpi, максимальным, с каким их можно отрисовать) - -# Multi-object selection and movement (#844) @plural {n} object selected|{n} objects selected Выделен {n} объект|Выделено {n} объекта|Выделено {n} объектов Drag the selection to move it. Esc clears the selection. Перетащите выделение, чтобы переместить его. Esc снимает выделение. Shift-click to select several objects. Drag empty space to select an area. Щёлкните с Shift, чтобы выбрать несколько объектов. Протяните рамку на пустом месте, чтобы выделить область. @@ -2137,13 +2219,9 @@ Fill colour Цвет заливки No fill Без заливки Fill colour: none Цвет заливки: нет - -# Keyboard key names, distinct from command labels. key Ctrl Ctrl key Shift Shift -key Delete Delete key Esc Esc -key Home Home key End End key Space Пробел Grid view Вид сеткой @@ -2157,23 +2235,21 @@ key Space Пробел Collapse all Свернуть все Remove page Удалить страницу Remove {n} pages Удалить страницы: {n} - -# Shared panel docking Reset panel layout Сбросить расположение панелей Float panel Сделать панель плавающей Move to group Переместить в группу Panels Панели Resize panels Изменить размеры панелей Resize panel window Изменить размер окна панели - Tools Инструменты - Inspector Инспектор - -# Architectural print controls (follow-up to #599). PDF page: {size} Страница PDF: {size} Match page at 100% Подобрать бумагу, масштаб 100% PDF scale: {scale}% Масштаб PDF: {scale}% Printer paper and scaling may differ. Check driver settings. Бумага и масштаб принтера могут отличаться. Проверьте настройки драйвера. Drawing scale changes. Use Actual size for full-scale plans. Масштаб чертежа изменяется. Для печати в исходном масштабе выберите Фактический размер. + Reload documents when their files change on disk Перезагружать документы при изменении их файлов на диске + This file changed on disk. Reload it to see the new version; your unsaved changes will be lost. Этот файл был изменён на диске. Перезагрузите его, чтобы увидеть новую версию; несохранённые изменения будут потеряны. + Reload Перезагрузить + Couldn't reload {name}: {e} Не удалось перезагрузить {name}: {e} Select page {label} Выбрать страницу {label} Rotate page {label} counterclockwise Повернуть страницу {label} против часовой стрелки Rotate page {label} clockwise Повернуть страницу {label} по часовой стрелке @@ -2184,7 +2260,6 @@ scroll speed Normal Обычная scroll speed Fast Высокая Animation effects Эффекты анимации animation effects On Вкл -animation effects Off Выкл Enhance camera image Улучшить снимок с камеры Drag the corners onto the document's edges, then choose Enhance page. Перетащите углы к краям документа, затем выберите «Улучшить страницу». Enhance page Улучшить страницу @@ -2214,7 +2289,6 @@ animation effects Off Выкл Tools panel side Сторона панели инструментов Add comment Добавить комментарий Change tag properties Изменить свойства тега -# Accessibility structure tags. Tags panel Панель тегов Tags Теги Tag type Тип тега @@ -2240,8 +2314,6 @@ animation effects Off Выкл Ink sensitivity Чувствительность к чернилам No signature was found in the frame. Move the frame over the signature or raise the ink sensitivity. В рамке не найдена подпись. Наведите рамку на подпись или увеличьте чувствительность к чернилам. Couldn't use the photo: {e} Не удалось использовать фото: {e} - -# PDF tab context menu (#1233) Close Tab Закрыть вкладку Reopen Closed Tab Открыть закрытую вкладку Reveal in Finder Показать в Finder diff --git a/crates/ui-egui/src/i18n/vi.tsv b/crates/ui-egui/src/i18n/vi.tsv new file mode 100644 index 0000000000..6699c414f1 --- /dev/null +++ b/crates/ui-egui/src/i18n/vi.tsv @@ -0,0 +1,2583 @@ +# Vietnamese (vi) catalog. Columns, separated by a TAB: context source translation +# +# Clean-room translations of PdfCraft's English UI labels. Use standard Vietnamese computing +# terms; keep product and format names (PdfCraft, PDF, PDF/A, OCR, XFA, Word...) unchanged. +# Vietnamese does not inflect nouns for number, so @plural entries list one form. + Menu Trình đơn + Edit Chỉnh sửa + Pages Trang + View Xem + Help Trợ giúp + Zoom Thu phóng + Actual size Kích thước thực + Zoom to page level Thu phóng đến cỡ trang + Fit to width Vừa chiều rộng + Display theme Chủ đề hiển thị + Side panels Bảng bên + Preferences Tùy chọn + Preferences… Tùy chọn… + Interface language Ngôn ngữ giao diện + Interface size Cỡ giao diện + Auto ({percent}%) Tự động ({percent}%) + Identity Danh tính + Name on new comments Tên trong bình luận mới + Open… Mở… + Open Recent Đã mở gần đây + Clear Recent Files Xóa tệp đã mở gần đây + Remove from Recent Gỡ bỏ khỏi danh sách mở gần đây + No recent files Không có tệp mở gần đây + New blank PDF PDF trắng mới + Create PDF from file… Tạo PDF từ tệp… + Create PDF from images… Tạo PDF từ hình ảnh… + Create PDF from multiple files… Tạo PDF từ nhiều tệp… + Create separate PDFs… Tạo các PDF riêng… + Create PDF from clipboard Tạo PDF từ bộ nhớ tạm + Combine files… Kết hợp tệp… + Save Lưu + Save as… Lưu thành… + Close file Đóng tệp + Close all Đóng tất cả + Revert Hoàn nguyên + Print… In… + Document properties… Thuộc tính tài liệu… + Find… Tìm… + Advanced search… Tìm kiếm nâng cao… + Copy Sao chép + Cut Cắt + Paste Dán + Delete Xóa + Select all Chọn tất cả + Cancel Hủy + OK OK + Apply Áp dụng + Close Đóng + Back Quay lại + Next Tiếp theo + Previous Trước + Name Tên + File name Tên tệp + Location Vị trí + Browse… Duyệt… + Choose… Chọn… + Search Tìm + Clear Xóa hết + Refresh Làm mới + Loading… Đang tải… + Save changes? Lưu thay đổi? + Don't save Không lưu + Page Trang + Page {n} Trang {n} + of / + Fit one full page Vừa một trang đầy đủ + Single page Một trang + Two-page view Xem hai trang + Continuous scrolling Cuộn liên tục + Page display Hiển thị trang + Default page display Hiển thị trang mặc định + Default zoom Thu phóng mặc định + Full screen mode Chế độ toàn màn hình + Read mode Chế độ đọc + Comments Bình luận + Comment Bình luận + Add comment Thêm bình luận + Delete comment Xóa bình luận + Reply Trả lời + Highlight Tô sáng + Underline Gạch chân + Strikethrough Gạch ngang + Text Văn bản + Font Phông chữ + Size Kích thước + Color Màu + Opacity Độ mờ + Width Chiều rộng + Height Chiều cao + Rotation Xoay + More Thêm + Settings Cài đặt + General Chung + Language Ngôn ngữ + Appearance Giao diện hiển thị + Theme Chủ đề + Light Sáng + Dark Tối + System Hệ thống + Open file Mở tệp + Save file Lưu tệp + Export Xuất + Import Nhập + Export to image… Xuất ra hình ảnh… + Export to text… Xuất ra văn bản… + Export to Word… Xuất ra Word… + Export to HTML… Xuất ra HTML… + Export to RTF… Xuất ra RTF… + Reduce file size… Giảm kích thước tệp… + Optimize PDF… Tối ưu PDF… + Protect using password… Bảo vệ bằng mật khẩu… + Remove security Gỡ bỏ bảo mật + Security properties… Thuộc tính bảo mật… + Organize pages Sắp xếp trang + Rotate pages… Xoay trang… + Delete pages Xóa trang + Insert blank page Chèn trang trắng + Insert pages from file… Chèn trang từ tệp… + Replace pages… Thay thế trang… + Extract pages… Trích xuất trang… + Split document… Tách tài liệu… + Number pages… Đánh số trang… + Bookmarks Dấu trang + New bookmark Dấu trang mới + Forms Biểu mẫu + Form fields Ô biểu mẫu + Signatures Chữ ký + Sign Ký + Fill & Sign Điền & Ký + Accessibility Trợ năng + Help… Trợ giúp… + Check for updates… Kiểm tra cập nhật… + About PdfCraft Giới thiệu PdfCraft + Automatically Tự động + Never Không bao giờ + Always Luôn + Yes Có + No Không + On Bật + Off Tắt + Enabled Đã bật + Disabled Đã tắt + Required Bắt buộc + Optional Tùy chọn + None Không có + Unknown Không xác định + Error Lỗi + Warning Cảnh báo + Information Thông tin + Success Thành công + Failed Thất bại + File Tệp + Folder Thư mục + Choose a file… Chọn một tệp… + Choose a folder… Chọn một thư mục… + Open folder Mở thư mục + Create folder Tạo thư mục + Remove Gỡ bỏ + Rename Đổi tên + Duplicate Nhân bản + Move Di chuyển + Copy to clipboard Sao chép vào bộ nhớ tạm + Copied to clipboard Đã sao chép vào bộ nhớ tạm + Undo Hoàn tác + Redo Làm lại + Keyboard shortcuts Phím tắt + Find tools and commands… Tìm công cụ và lệnh… + Take a snapshot Chụp ảnh màn hình + Organize Sắp xếp + Comment and review Bình luận và xem lại + Prepare a form Chuẩn bị biểu mẫu + Protect Bảo vệ + Print In + Create Tạo + Convert Chuyển đổi + Optimize Tối ưu + Measure Đo + Redact Loại bỏ nội dung + Search results Kết quả tìm kiếm + No results Không có kết quả + Page {n} of {total} Trang {n} / {total} + {n} pages selected {n} trang đã chọn + · not fixable here · không thể sửa tại đây + (page {p}) (trang {p}) + (searching… {s} of {p} pages) (đang tìm… {s} trên {p} trang) + ({n} at {dpi} dpi, the largest size they can be drawn at) ({n} ở {dpi} dpi, kích thước lớn nhất có thể vẽ ra) + ({s} not exported: {first}) ({s} chưa xuất: {first}) + on page {p} trên trang {p} + · password-protected · được bảo vệ bằng mật khẩu + (none) (không có) + , Expires: , Hết hạn: + 1 difference found Tìm thấy 1 khác biệt + 1 file 1 tệp + 1 file done Đã xong 1 tệp + 1 file needs attention 1 tệp cần được xử lý + 1 instance 1 phiên bản + 1 issue 1 vấn đề + 1 mark 1 dấu + 1 page 1 trang + 1 page selected Đã chọn 1 trang + 1 page selected. Đã chọn 1 trang. + 180 degrees 180 độ + 9 digit, A letter, O letter or digit, X any character 9 chữ số, A chữ cái, O chữ cái hoặc chữ số, X ký tự bất kỳ + ; 1 page already had text ; 1 trang đã có văn bản + ; failed: {list} ; thất bại: {list} + ; {n} pages already had text ; {n} trang đã có văn bản + ? of {n} ? / {n} + A clean-room, open-source PDF application written in Rust. MIT OR Apache-2.0. Ứng dụng PDF mã nguồn mở phát triển theo nguyên tắc clean-room, viết bằng Rust. MIT OR Apache-2.0. + Accessibility Checker Trình kiểm tra trợ năng + Accessibility Checker Options Tùy chọn trình kiểm tra trợ năng + Acrobat 3.0 and later (40-bit RC4) Acrobat 3.0 trở lên (RC4 40-bit) + Acrobat 5.0 and later (128-bit RC4) Acrobat 5.0 trở lên (RC4 128-bit) + Acrobat 7.0 and later (128-bit AES) Acrobat 7.0 trở lên (AES 128-bit) + Acrobat X and later (256-bit AES) Acrobat X trở lên (AES 256-bit) + Action name: Tên hành động: + Actions Hành động + Active Đang hoạt động + Actual Size Kích thước thực + Actual text Văn bản thực tế + Add Thêm + Add Step Thêm bước + Add a comment Thêm một bình luận + Add a reply Thêm một trả lời + Add a sticky note here Thêm ghi chú dính tại đây + Add an Action Thêm một hành động + Add at least two files Thêm ít nhất hai tệp + Add files… Thêm tệp… + Add folder Thêm thư mục + Add folder and subfolders Thêm thư mục và thư mục con + Add folder and subfolders… Thêm thư mục và thư mục con… + Add folder… Thêm thư mục… + Add open documents Thêm tài liệu đang mở + Add the choices people pick from. Thêm các lựa chọn mà người dùng chọn. + Add the files to combine Thêm các tệp cần kết hợp + Add the steps this action runs, in order. Thêm các bước mà hành động này chạy, theo thứ tự. + Add to Trusted Certificates Thêm vào chứng thư tin cậy + Add to trusted certificates Thêm vào chứng thư tin cậy + Added 1 comment Đã thêm 1 bình luận + Added more than once Đã thêm nhiều lần + Added {n} comments Đã thêm {n} bình luận + Adds invisible text over each word; the page image is not changed Thêm văn bản vô hình đè lên từng từ; hình ảnh trang không thay đổi + Advanced Nâng cao + Advanced Options {chevron} Tùy chọn nâng cao {chevron} + Align Căn + Align left Căn trái + Align right Căn phải + Alignment: Căn chỉnh: + All Tất cả + All document contents Toàn bộ nội dung tài liệu + All document contents except metadata Toàn bộ nội dung tài liệu trừ siêu dữ liệu + All open documents Tất cả tài liệu đang mở + All pages Tất cả trang + All pages in document Tất cả trang trong tài liệu + All pages in range Tất cả trang trong phạm vi + Allow Rich Text Formatting Cho phép định dạng văn bản phong phú + Allow user to enter custom text Cho phép người dùng nhập văn bản tùy chỉnh + Also recognize pages that already have text Cũng nhận dạng các trang đã có văn bản + Alternate text Văn bản thay thế + An action with this name already exists. Đã có một hành động với tên này. + An open-source PDF workbench — local, private, and scriptable. Bàn làm việc PDF mã nguồn mở — cục bộ, riêng tư và có thể viết kịch bản. + Angle Góc + Animation effects Hiệu ứng chuyển động + Annotations, form fill-in, and digital signatures Chú thích, điền biểu mẫu và chữ ký số + Any Bất kỳ + Any except extracting pages Bất kỳ trừ trích xuất trang + Anyone opening the document will need this password. It's applied when you save. Bất kỳ ai mở tài liệu đều cần mật khẩu này. Mật khẩu được áp dụng khi bạn lưu. + Appear behind page Hiển thị sau trang + Appear on top of page Hiển thị đè lên trang + Appearance mode Chế độ hiển thị + Appearance settings… Cài đặt hiển thị… + Applies to 1 page Áp dụng cho 1 trang + Applies to {n} pages Áp dụng cho {n} trang + Apply redactions Áp dụng loại bỏ nội dung + Apply scale Áp dụng tỉ lệ + Asks GitHub for the latest release. Nothing is downloaded or installed automatically. Hỏi GitHub về bản phát hành mới nhất. Không có gì được tải xuống hoặc cài đặt tự động. + At most Tối đa + Attachments Tệp đính kèm + Attachments Panel and Page Bảng tệp đính kèm và trang + Audit space usage… Kiểm tra dung lượng đã dùng… + Author Tác giả + Auto Tự động + Auto follows the system's text size. Pages always render at the display's full resolution. Tự động đi theo cỡ chữ của hệ thống. Các trang luôn được hiển thị ở độ phân giải đầy đủ của màn hình. + Auto portrait/landscape Tự động dọc/ngang + Auto-rotate pages Tự động xoay trang + Auto-size text to fit redaction region Tự động cỡ chữ vừa vùng loại bỏ nội dung + Available Khả dụng + Back side only Chỉ mặt sau + Back to all tools Quay lại tất cả công cụ + Back to the document Quay lại tài liệu + Before each selected page (select pages in Organize) Trước mỗi trang đã chọn (chọn trang trong Sắp xếp trang) + Before the number Trước số + Bicubic downsampling to Lấy mẫu lại bicubic xuống + Binding Ràng buộc + Binding: Ràng buộc: + Black and white Đen trắng + Bold Đậm + Booklet Tập vở + Booklet subset: Tập vở được chọn: + Bookmark options Tùy chọn dấu trang + Bookmarks Panel and Page Bảng dấu trang và trang + Border Color: Màu viền: + Borders and Colors Viền và màu + Both sides Cả hai mặt + Bottom Dưới + Bottom: Dưới: + Box Hộp + Browser's print dialog Hộp thoại in của trình duyệt + Butt Phẳng + Button is checked by default Nút được chọn mặc định + Buttons with the same name and value are selected in unison Các nút có cùng tên và cùng giá trị được chọn đồng thời + Bytes Byte + Calibrate from two points Hiệu chuẩn từ hai điểm + Can't be read: {e} Không đọc được: {e} + Cancelling… Đang hủy… + Case-sensitive Phân biệt chữ hoa chữ thường + Category: Danh mục: + Center Giữa + Center window on screen Căn cửa sổ vào giữa màn hình + Centre Giữa + Certify Chứng nhận + Change settings… Thay đổi cài đặt… + Change the colour of line art as well as text Thay đổi màu của hình vẽ nét cũng như văn bản + Change {what} Thay đổi {what} + Changes allowed Thay đổi được phép + Character limit 0 means no limit. A comb of characters needs a limit. Giới hạn ký tự 0 nghĩa là không giới hạn. Ô kẹo ký tự cần phải có giới hạn. + Character spacing Khoảng cách ký tự + Check Again Kiểm tra lại + Check again Kiểm tra lại + Check box is checked by default Ô kiểm tra được chọn mặc định + Check for updates Kiểm tra cập nhật + Check spelling Kiểm tra chính tả + Check the pages Kiểm tra các trang + Check the pages of {name}: {why} Kiểm tra các trang của {name}: {why} + Checking Options ({on} of 32 in all categories) Đang kiểm tra Tùy chọn ({on} trên 32 trong tất cả danh mục) + Checking for a newer version… Đang kiểm tra phiên bản mới hơn… + Choose a PNG or JPEG image (up to 4 MiB). Transparency is preserved. Chọn hình ảnh PNG hoặc JPEG (tối đa 4 MiB). Độ trong suốt được giữ nguyên. + Choose a folder for the exported files Chọn thư mục cho các tệp đã xuất + Choose a folder for the extracted pages Chọn thư mục cho các trang đã trích xuất + Choose a folder for the results Chọn thư mục cho kết quả + Choose a folder for the searchable files Chọn thư mục cho các tệp có thể tìm kiếm + Choose a layout: Chọn bố cục: + Choose a stamp, then click on the page to place it. Chọn một con dấu, rồi nhấp vào trang để đặt nó. + Choose an image Chọn một hình ảnh + Choose images Chọn hình ảnh + Choose image… Chọn hình ảnh… + Choose photo… Chọn ảnh chụp… + Choose the digital ID that you want to use for signing: Chọn Digital ID mà bạn muốn dùng để ký: + Circle Hình tròn + Clean Up Dọn dẹp + Clean-up Dọn dẹp + Clear All Xóa tất cả + Clear all Xóa tất cả + Clear selection / close find Xóa lựa chọn / đóng thanh tìm kiếm + Click on the page to add text; each click starts a new box, and ✓ finishes. Drag items to move them, drag a corner to resize, double-click text to edit it. Nhấp vào trang để thêm văn bản; mỗi lần nhấp bắt đầu một hộp mới, và ✓ kết thúc. Kéo các mục để di chuyển, kéo một góc để đổi kích thước, nhấp đúp vào văn bản để chỉnh sửa. + Click the first point to begin. Nhấp vào điểm đầu tiên để bắt đầu. + Click to sort, drag to move the column. Drag its edge to resize it. Nhấp để sắp xếp, kéo để di chuyển cột. Kéo cạnh của nó để đổi kích thước. + Click vertices. Enter or double-click finishes a perimeter or area. Click the first point to close an area. Nhấp vào các đỉnh. Nhấn Enter hoặc nhấp đúp để hoàn tất một chu vi hoặc một vùng. Nhấp vào điểm đầu tiên để đóng một vùng. + Clockwise 90 degrees Theo chiều kim đồng hồ 90 độ + Close (Esc) Đóng (Esc) + Close Tab Đóng thẻ + Close panel Đóng bảng bên + Closed arrow Mũi tên khép kín + Collapse Thu gọn + Collapse all Thu gọn tất cả + Collapse all bookmarks Thu gọn tất cả dấu trang + Collapse tag Thu gọn thẻ + Collate Đối chiếu + Color: Màu: + Colour Màu + Colours are remapped while rendering; the document itself never changes. Màu được ánh xạ lại khi kết xuất; bản thân tài liệu không bao giờ thay đổi. + Comb of Ô kẹo của + Combine the rest Kết hợp phần còn lại + Combined {n} files Đã kết hợp {n} tệp + Coming in milestone Sẽ có trong phiên bản tiếp theo + Comment and form data Dữ liệu bình luận và biểu mẫu + Commenting, filling in form fields, and signing existing signature fields Bình luận, điền vào các ô biểu mẫu và ký các ô chữ ký hiện có + Comments & Forms Bình luận & Biểu mẫu + Comments only Chỉ bình luận + Commit selected value immediately Áp dụng ngay giá trị đã chọn + Common Properties Thuộc tính chung + Compare Files So sánh tệp + Compare this file with an older version: Compare files… in All tools. So sánh tệp này với một phiên bản cũ hơn: So sánh tệp… trong Tất cả công cụ. + Compatibility Tương thích + Compress document structure (object streams) Nén cấu trúc tài liệu (object streams) + Compression Nén + Configure New Digital ID Cấu hình Digital ID mới + Confirm Password Xác nhận mật khẩu + Conformance level: Mức tuân thủ: + Continue Tiếp tục + Copies, two-sided printing and colour are chosen in the browser's print dialog. Số bản in, in hai mặt và màu được chọn trong hộp thoại in của trình duyệt. + Copies: Số bản in: + Copy selected text Sao chép văn bản đã chọn + Copy text Sao chép văn bản + Couldn't check for updates: {e} Không thể kiểm tra cập nhật: {e} + Couldn't open the printer's preferences: {e} Không thể mở tùy chọn máy in: {e} + Counterclockwise 90 degrees Ngược chiều kim đồng hồ 90 độ + Country/Region Quốc gia/Khu vực + Create Custom Stamp Tạo con dấu tùy chỉnh + Create Link Tạo liên kết + Create PDF Comment Summary Tạo bản tóm tắt bình luận PDF + Create PDF comment summary… Tạo bản tóm tắt bình luận PDF… + Create PDF from images Tạo PDF từ hình ảnh + Create a new Digital ID (self-signed, saved to a password-protected file) Tạo Digital ID mới (tự ký, lưu vào tệp được bảo vệ bằng mật khẩu) + Create accessibility report Tạo báo cáo trợ năng + Create custom stamp… Tạo con dấu tùy chỉnh… + Create {what} Tạo {what} + Created a PDF from {n} files Đã tạo PDF từ {n} tệp + Created a PDF from {n} files; left out: {names} Đã tạo PDF từ {n} tệp; bỏ qua: {names} + Creates 1 file from {n} pages. Tạo 1 tệp từ {n} trang. + Creates {f} files from {n} pages. Tạo {f} tệp từ {n} trang. + Crop (% trimmed from each side) Cắt xén (% bị cắt ở mỗi cạnh) + Currency symbol: Ký hiệu tiền tệ: + Current page Trang hiện tại + Current page ({n}) Trang hiện tại ({n}) + Current page — type a page number or label (such as iv) and press Enter Trang hiện tại — nhập số trang hoặc nhãn (ví dụ iv) rồi nhấn Enter + Custom Tùy chỉnh + Custom scale: Tỷ lệ tùy chỉnh: + Custom text: Văn bản tùy chỉnh: + Custom: Tùy chỉnh: + Cut and stack Cắt và xếp chồng + Cut marks Dấu cắt + DPI sets the printed page size without resampling the image. DPI đặt kích thước trang in mà không lấy mẫu lại hình ảnh. + Dark theme Giao diện tối + Date format Định dạng ngày + Decimal places: Số chữ số thập phân: + Decimals Chữ số thập phân + Declared conformance: {shown} Mức tuân thủ khai báo: {shown} + Decorative figure Hình minh họa trang trí + Default Mặc định + Default Value: Giá trị mặc định: + Default workspace mode Chế độ không gian làm việc mặc định + Default: Mặc định: + Delete page {label} Xóa trang {label} + Delete pages (Delete) Xóa trang (Delete) + Delete pages after extracting Xóa trang sau khi trích xuất + Delete selected pages (Organize) Xóa các trang đã chọn (Sắp xếp trang) + Delete stamp Xóa con dấu + Delete {o} Xóa {o} + Describe the figure Mô tả hình minh họa + Description Mô tả + Description: Mô tả: + Details Chi tiết + Diamond Hình thoi + Digital ID Digital ID + Digital ID password Mật khẩu Digital ID + Direction: Hướng: + Discard Bỏ qua + Discard Objects Loại bỏ đối tượng + Discard User Data Loại bỏ dữ liệu người dùng + Discard alternate images Loại bỏ hình ảnh thay thế + Discard document tags Loại bỏ thẻ tài liệu + Discard embedded page thumbnails Loại bỏ ảnh thu nhỏ trang nhúng + Discard embedded print settings Loại bỏ cài đặt in nhúng + Discard this text (Esc) Bỏ văn bản này (Esc) + Dismiss Đóng + Distinguished name Tên phân biệt + Distribute Phân phối + Document Tài liệu + Document Properties Thuộc tính tài liệu + Document Title Tiêu đề tài liệu + Document and markups Tài liệu và chú thích + Document and stamps Tài liệu và con dấu + Document language Ngôn ngữ tài liệu + Document properties ({key}) Thuộc tính tài liệu ({key}) + Documents and view Tài liệu và chế độ xem + Done Xong + Done adding text Đã xong thêm văn bản + Download Tải xuống + Downsample to Giảm mẫu xuống + Drag the selection to move it. Esc clears the selection. Kéo vùng chọn để di chuyển. Esc xóa vùng chọn. + Drag to reorder Kéo để sắp xếp lại + Draw Vẽ + Draw your {what} below. Vẽ {what} của bạn bên dưới. + Drawing scale changes. Use Actual size for full-scale plans. Tỷ lệ bản vẽ thay đổi. Dùng Kích thước thực cho bản vẽ tỷ lệ 1:1. + Drop PDFs, images, text files or folders here, or choose them. Kéo thả PDF, hình ảnh, tệp văn bản hoặc thư mục vào đây, hoặc chọn chúng. + Duplicate "{name}" onto: Nhân bản "{name}" sang: + Duplicate Field Nhân bản ô + Duplicate… Nhân bản… + Dynamic Động + Dynamic XFA form laid out from its template: {pages}, {fields}. Biểu mẫu XFA động được bố trí từ mẫu của nó: {pages}, {fields}. + Each file holds as many of the {n} pages as fit. Mỗi tệp chứa càng nhiều trang trong {n} trang càng vừa. + Each image is measured where pages draw it; an image is replaced only if the result is smaller. Mỗi hình ảnh được đo tại nơi các trang vẽ nó; hình ảnh chỉ được thay thế nếu kết quả nhỏ hơn. + Each image once, named after the document and page. JPEG images are saved unchanged; others as PNG. Mỗi hình ảnh một lần, được đặt tên theo tài liệu và trang. Ảnh JPEG được lưu nguyên vẹn; ảnh khác dưới dạng PNG. + Earlier in tab order Sớm hơn trong thứ tự thẻ + Edit Action Chỉnh sửa hành động + Edit image Chỉnh sửa hình ảnh + Edit text… Chỉnh sửa văn bản… + Edit… Chỉnh sửa… + Email Address Địa chỉ email + Enable Acrobat JavaScript Bật JavaScript của Acrobat + Enable copying of text, images, and other content Cho phép sao chép văn bản, hình ảnh và nội dung khác + Enable text access for screen reader devices for the visually impaired Bật truy cập văn bản cho thiết bị đọc màn hình dành cho người khiếm thị + Encrypt Mã hóa + Endpoints Điểm cuối + Enhance page Tăng cường trang + Enter the password that opens it Nhập mật khẩu mở tệp đó + Enter the permissions password to allow combining Nhập mật khẩu quyền để cho phép kết hợp + Entire page Toàn bộ trang + Even Pages Only Chỉ trang chẵn + Even and Odd Pages Trang chẵn và lẻ + Even pages only Chỉ trang chẵn + Every PDF, image and text file in the folder Mọi tệp PDF, hình ảnh và văn bản trong thư mục + Every PDF, image and text file in the folder and the folders inside it Mọi tệp PDF, hình ảnh và văn bản trong thư mục và các thư mục bên trong + Example: {sample} Ví dụ: {sample} + Exclude images smaller than Loại trừ hình ảnh nhỏ hơn + Expand Mở rộng + Expand all Mở rộng tất cả + Expand all bookmarks Mở rộng tất cả dấu trang + Expand tag Mở rộng thẻ + Expand top-level bookmarks Mở rộng dấu trang cấp cao nhất + Explain Giải thích + Export All Images Xuất tất cả hình ảnh + Export Value: {on} Giá trị xuất: {on} + Export all to data file… Xuất tất cả sang tệp dữ liệu… + Export certificate… Xuất chứng thư… + Export comments Xuất bình luận + Export form data Xuất dữ liệu biểu mẫu + Export stopped: {e} Đã dừng xuất: {e} + Export to Image Xuất sang hình ảnh + Export to Text Xuất sang văn bản + Exported 1 image Đã xuất 1 hình ảnh + Exported the text of 1 page Đã xuất văn bản của 1 trang + Exported the text of {n} pages Đã xuất văn bản của {n} trang + Exported {n} images Đã xuất {n} hình ảnh + Exporting… {d} of {t} Đang xuất… {d} / {t} + Export… Xuất… + Extract pages as separate files Trích xuất trang thành các tệp riêng + Extract pages to a new document Trích xuất trang sang tài liệu mới + Extracted 1 page Đã trích xuất 1 trang + Extracted {n} pages Đã trích xuất {n} trang + Field is used for file selection Ô này được dùng để chọn tệp + Field names (comma-separated) Tên ô (phân tách bằng dấu phẩy) + Field names with + - * / and parentheses; put \\ before spaces in names. Tên ô với + - * / và dấu ngoặc; đặt \\ trước khoảng trắng trong tên. + Field value is in range: Giá trị ô nằm trong phạm vi: + Field value is not validated Giá trị ô không được kiểm tra + Field: {field} on page {p} Ô: {field} ở trang {p} + Fields to reset (comma-separated; empty: all) Các ô cần đặt lại (phân tách bằng dấu phẩy; trống: tất cả) + Figure {i} of {n}{page} Hình {i} / {n}{page} + File (.p12, .pfx) Tệp (.p12, .pfx) + File Name Tên tệp + File size Kích thước tệp + Files are combined from top to bottom. Leave Pages empty to take every page. Các tệp được kết hợp từ trên xuống dưới. Để trống Trang để lấy mọi trang. + Files are combined in the order shown. Drag them to change it. Các tệp được kết hợp theo thứ tự hiển thị. Kéo chúng để thay đổi thứ tự. + Files for {name} Các tệp cho {name} + Files you open in PdfCraft appear here. Drop a PDF anywhere to open it. Các tệp bạn mở trong PdfCraft sẽ xuất hiện ở đây. Kéo thả PDF vào bất kỳ đâu để mở. + Fill & Sign dates Ngày điền & ký + Fill & Sign signature Chữ ký điền & ký + Fill Color: Màu tô: + Fill colour Màu tô + Fill colour: none Màu tô: không có + Filling in form fields and signing existing signature fields Điền vào các ô biểu mẫu và ký các ô chữ ký hiện có + Filter comments Lọc bình luận + Find a tag Tìm một thẻ + Find options Tùy chọn tìm kiếm + Find text Tìm văn bản + Find tools and commands Tìm công cụ và lệnh + Finding document fonts… Đang tìm phông chữ của tài liệu… + Finish or discard the text being edited before selecting several objects. Hoàn tất hoặc bỏ văn bản đang chỉnh sửa trước khi chọn nhiều đối tượng. + First / last page Trang đầu / trang cuối + Fit Vừa + Fit Height Vừa chiều cao + Fit Page Vừa trang + Fit Visible Vừa vùng hiển thị + Fit Width Vừa chiều rộng + Fit to height Vừa chiều cao + Fit to page Vừa trang + Fix Sửa + Fixed what could be fixed; 1 problem remains Đã sửa những gì có thể sửa; còn lại 1 vấn đề + Fixed what could be fixed; {n} problems remain Đã sửa những gì có thể sửa; còn lại {n} vấn đề + Flatten Fill & Sign when saving Làm phẳng Điền & Ký khi lưu + Flip Horizontal Lật ngang + Flip Vertical Lật dọc + Flip horizontal Lật ngang + Flip on long edge Lật theo cạnh dài + Flip on short edge Lật theo cạnh ngắn + Flip vertical Lật dọc + Folders Thư mục + Font Size: Cỡ phông chữ: + Font colour: Màu phông chữ: + Font size 0 uses automatic sizing. Cỡ phông chữ 0 dùng kích thước tự động. + Font size: Cỡ phông chữ: + Font: Phông chữ: + Font: Helvetica Phông chữ: Helvetica + Fonts Phông chữ + For page sizes and margins. Dành cho kích thước trang và lề. + Form data and PDF forms Dữ liệu biểu mẫu và biểu mẫu PDF + Form fields are flattened: their values stay visible. Saving rewrites the whole file. Các ô biểu mẫu được làm phẳng: giá trị của chúng vẫn hiển thị. Việc lưu sẽ ghi lại toàn bộ tệp. + Form fields only Chỉ ô biểu mẫu + Form fill-in and digital signatures Điền biểu mẫu và chữ ký số + Format Định dạng + Format text Định dạng văn bản + Format: Định dạng: + From Từ + From a PDF page or an image Từ một trang PDF hoặc một hình ảnh + From colour Từ màu + From {file} Từ {file} + From: Từ: + Front side only Chỉ mặt trước + Get help, share feedback and follow development on Discord. Nhận trợ giúp, gửi phản hồi và theo dõi quá trình phát triển trên Discord. + Go to a page view Chuyển đến chế độ xem trang + Go to page {p} Đến trang {p} + Go to the page Đến trang đó + Go to this result Đến kết quả này + Graphic Đồ họa + Greyscale Thang xám + Grid view Chế độ lưới + Hand (H) Tay (H) + Has JavaScript actions (run in M6) Có hành động JavaScript (chạy ở M6) + Height: Chiều cao: + Hide field highlights Ẩn đánh dấu ô + Hide layer Ẩn lớp + Hide menu bar Ẩn thanh trình đơn + Hide password Ẩn mật khẩu + Hide toolbars Ẩn thanh công cụ + Hide window controls Ẩn nút điều khiển cửa sổ + High Resolution Độ phân giải cao + High resolution Độ phân giải cao + Highlight Style: Kiểu làm nổi bật: + Highlight fields Làm nổi bật ô + Home Trang chủ + Horizontal Ngang + Horizontal reversed Đảo ngang + Horizontal scale Tỷ lệ ngang + Icon Biểu tượng + Images and text Hình ảnh và văn bản + Images and text (converted to PDF) Hình ảnh và văn bản (chuyển đổi sang PDF) + Import list… Nhập danh sách… + Includes unsaved changes Bao gồm thay đổi chưa lưu + Indent Thụt lề + Initial View Chế độ xem ban đầu + Ink sensitivity Độ nhạy mực + Insert Date Chèn ngày + Insert Page Number Chèn số trang + Insert a blank page after the selection Chèn một trang trắng sau vùng chọn + Insert a file at the end Chèn một tệp vào cuối + Insert a file before page {label} Chèn một tệp trước trang {label} + Insert pages from a file… Chèn trang từ một tệp… + Inserting, deleting, and rotating pages Chèn, xóa và xoay trang + Installed fonts… Phông chữ đã cài đặt… + Intersections Giao điểm + Invisible Rectangle Hình chữ nhật vô hình + Issued by: Cấp bởi: + Italic Nghiêng + Item List Danh sách mục + Item: Mục: + Items marked Ready work today. Các mục được đánh dấu Đã sẵn sàng đều hoạt động ngay. + Its security settings don't allow copying pages Cài đặt bảo mật của tệp này không cho phép sao chép các trang + JavaScript Console Bảng điều khiển JavaScript + JavaScript is turned off (Preferences ▸ JavaScript). JavaScript đã bị tắt (Tùy chọn > JavaScript). + JavaScript, e.g. getField("total").value JavaScript, ví dụ getField("total").value + Join our Discord Tham gia Discord của chúng tôi + Join the ArtCraft community Tham gia cộng đồng ArtCraft + Justify Căn đều + Keep source fonts Giữ phông chữ gốc + Keep tool selected Giữ công cụ được chọn + Keep tool selected: on Giữ công cụ được chọn: Bật + Key Algorithm Thuật toán khóa + Keychain · Keychain · + Label Nhãn + Labels Nhãn + Labels: {preview}. Later pages keep their labels. Nhãn: {preview}. Các trang sau giữ nguyên nhãn của chúng. + Landscape Ngang + Landscape Pages Trang nằm ngang + Landscape and Portrait Pages Trang nằm ngang và nằm dọc + Larger pages Trang lớn hơn + Later Sau + Later in tab order Sau trong thứ tự tab + Layers Lớp + Layers Panel and Page Bảng Lớp và Trang + Layout and Magnification Bố cục và Độ phóng đại + Leave out files that can't be read? Bỏ qua các tệp không thể đọc? + Left Trái + Left Edge Cạnh trái + Left out: {names} Bỏ qua: {names} + Left: Còn lại: + Light theme Giao diện sáng + Limit of Giới hạn + Line Style: Kiểu đường: + Line Thickness: Độ dày đường: + Line ending Kết thúc dòng + Line spacing Giãn dòng + Line thickness Độ dày đường + Link Action Hành động liên kết + Link Appearance Giao diện hiển thị của liên kết + Link Properties Thuộc tính liên kết + Link Type: Loại liên kết: + List view Dạng danh sách + Load font… Tải phông chữ… + Locked Đã khóa + Looking for PDFs… Đang tìm PDF… + Looking for printers… Đang tìm máy in… + Low Resolution (150 dpi) Độ phân giải thấp (150 dpi) + Low resolution Độ phân giải thấp + Magnification Độ phóng đại + Make Current Properties Default Đặt thuộc tính hiện tại làm mặc định + Margins Lề + Mark Page Range Đánh dấu phạm vi trang + Mark as comments Đánh dấu là bình luận + Mark with checkmark Đánh dấu bằng dấu kiểm + Marked Đã đánh dấu + Mask: Mặt nạ: + Match page at 100% Khớp trang ở 100% + Medium Trung bình + Midpoints Điểm giữa + Mixed Hỗn hợp + Modified Đã sửa đổi + More options Tùy chọn khác + More options: Tùy chọn khác: + More ways to add files Thêm cách khác để thêm tệp + Mouse wheel scroll speed Tốc độ cuộn bằng lăn chuột + Move down Di chuyển xuống + Move earlier Di chuyển lên trước + Move later Di chuyển xuống sau + Move up Di chuyển lên + Multi-line Nhiều dòng + Multiple Nhiều + Multiple selection Chọn nhiều + Multiple words or phrases Nhiều từ hoặc cụm từ + Name: Tên: + Navigation tab Tab điều hướng + Needs manual check Cần kiểm tra thủ công + Negative number style: Kiểu số âm: + New Action Hành động mới + New Action… Hành động mới… + New bookmark ({key}) Dấu trang mới ({key}) + New file: Tệp mới: + Next ({key}) Tiếp theo ({key}) + Next / previous match Kết quả khớp tiếp theo / trước đó + Next figure Hình tiếp theo + Next month Tháng sau + Next page Trang tiếp theo + Next sheet Tờ tiếp theo + Next view Chế độ xem tiếp theo + No PDFs in this folder yet Chưa có PDF nào trong thư mục này + No actions Không có hành động nào + No changes allowed Không cho phép thay đổi + No changes to save Không có thay đổi nào để lưu + No check has run yet. Chưa chạy kiểm tra nào. + No color Không màu + No colour Không màu + No comments match. Không có bình luận nào khớp. + No comments yet. Chưa có bình luận nào. + No differences in the text. Không có khác biệt trong văn bản. + No digital IDs yet. Chưa có danh tính số nào. + No documents are open Không có tài liệu nào đang mở + No file chosen Chưa chọn tệp + No fill Không tô + No fonts are referenced by the pages. Các trang không tham chiếu phông chữ nào. + No issues found Không tìm thấy vấn đề nào + No limit Không giới hạn + No matches Không có kết quả khớp + No matches. Không có kết quả khớp. + No matching tools Không có công cụ phù hợp + No openly licensed document fonts found. Load a font file. Không tìm thấy phông chữ tài liệu nào có giấy phép mở. Hãy tải một tệp phông chữ. + No pages selected Chưa chọn trang nào + No photo chosen Chưa chọn ảnh + No preview Không có bản xem trước + No problems found: the document conforms to {level}. Không tìm thấy vấn đề nào: tài liệu tuân thủ {level}. + No security Không bảo mật + No sheets Không có tờ nào + No signature was found in the frame. Move the frame over the signature or raise the ink sensitivity. Không tìm thấy chữ ký nào trong khung. Di chuyển khung qua chữ ký hoặc tăng độ nhạy mực. + No status has been set. Chưa đặt trạng thái nào. + None (prefix only) Không có (chỉ tiền tố) + None found Không tìm thấy mục nào + None — everything is allowed Không có — cho phép tất cả + Not allowed Không cho phép + Not present Không có + Nothing to redo Không có gì để làm lại + Nothing to undo Không có gì để hoàn tác + Number Số + Number of pages Số trang + Number pages Đánh số trang + Odd Pages Only Chỉ trang lẻ + Odd pages only Chỉ trang lẻ + Offset from centre Lệch từ tâm + Old file: Tệp cũ: + One word or phrase per line Mỗi dòng một từ hoặc cụm từ + One {f} file per page, named after the document. Mỗi trang một tệp {f}, đặt tên theo tài liệu. + Only change the colour of black text or line art Chỉ thay đổi màu của văn bản đen hoặc hình vẽ nét + Only checked properties will change. Mixed means the selected fields have different values. Chỉ các thuộc tính được chọn mới thay đổi. Hỗn hợp nghĩa là các ô đã chọn có giá trị khác nhau. + Only the page content changes: links, comments, form fields and bookmarks on the original pages stay. Chỉ nội dung trang thay đổi: liên kết, bình luận, ô biểu mẫu và dấu trang trên các trang gốc vẫn giữ nguyên. + Open Mở + Open a PDF ({key}) Mở một PDF ({key}) + Open a PDF to measure it. Mở một PDF để đo. + Open a document first Hãy mở một tài liệu trước + Open a web page Mở một trang web + Open arrow Mũi tên mở + Open email app Mở ứng dụng email + Open in Full Screen mode Mở ở chế độ Toàn màn hình + Open in a new tab Mở trong tab mới + Open link Mở liên kết + Open the file as it was saved then Mở tệp ở trạng thái đã lưu khi đó + Open the older version first Hãy mở phiên bản cũ hơn trước + Open this web page? Mở trang web này? + Open to page Mở tại trang + Opened, but its security settings don't allow combining. Enter the permissions password. Đã mở, nhưng cài đặt bảo mật của tệp không cho phép kết hợp. Hãy nhập mật khẩu quyền. + Opens the printer driver's preferences. They are saved for every print from this computer; the copies, two-sided, grayscale and paper chosen here still apply. Mở tùy chọn của trình điều khiển máy in. Chúng được lưu cho mọi lần in từ máy tính này; số bản in, in hai mặt, thang xám và loại giấy chọn ở đây vẫn được áp dụng. + Optimizing… cleaning up Đang tối ưu… dọn dẹp + Optimizing… image {d} of {t} Đang tối ưu… ảnh {d} trên {t} + Optimizing… merging identical objects Đang tối ưu… hợp nhất các đối tượng giống nhau + Optimizing… removing user data Đang tối ưu… xóa dữ liệu người dùng + Optimizing… writing the copy Đang tối ưu… ghi bản sao + Optional: needs an AI provider you configure Tùy chọn: cần một nhà cung cấp AI mà bạn tự cấu hình + Options… Tùy chọn… + Organization Name Tên tổ chức + Organizational Unit Đơn vị tổ chức + Orientation: Hướng: + Original Gốc + Original: replace pages Bản gốc: thay thế trang + Other colour… Màu khác… + Outdent Giảm thụt lề + Output Đầu ra + Output appears here. Kết quả sẽ hiển thị ở đây. + Output intent: {list} Mục đích đầu ra: {list} + Overlap: Chồng lấn: + Owner password (no restrictions apply) Mật khẩu chủ sở hữu (không áp dụng hạn chế nào) + PDF Optimizer Trình tối ưu PDF + PDF or image PDF hoặc hình ảnh + PDF page: {size} Trang PDF: {size} + PDF scale: {scale}% Tỉ lệ PDF: {scale}% + PDF, images and text PDF, hình ảnh và văn bản + Page Only Chỉ trang + Page Range Options Tùy chọn phạm vi trang + Page Sizing & Handling Kích thước & xử lý trang + Page background Nền trang + Page display: {layout} Hiển thị trang: {layout} + Page layout Bố cục trang + Page navigation Điều hướng trang + Page number Số trang + Page order: Thứ tự trang: + Page size Kích thước trang + Page {label} Trang {label} + Page {p} of {n} Trang {p} / {n} + Pages Panel and Page Bảng Trang và Trang + Pages from Các trang từ + Pages of {name} to combine, e.g. 1-3, 6 Các trang của {name} cần kết hợp, ví dụ 1-3, 6 + Pages per file Số trang mỗi tệp + Pages per sheet: Số trang mỗi tờ: + Pages to Print Các trang cần in + Pages: Các trang: + Pages: {k} of {n} Trang: {k} / {n} + Paper: Giấy: + Part of Một phần của + Password Mật khẩu + Password required Yêu cầu mật khẩu + Password security Bảo mật bằng mật khẩu + Password-protected Được bảo vệ bằng mật khẩu + Paste after Dán sau + Paths Đường dẫn + Pattern Mẫu + Patterns Mẫu + Patterns (graphics objects) Mẫu (đối tượng đồ họa) + PdfCraft didn't shut down normally. These documents had changes that were autosaved: PdfCraft đã không tắt bình thường. Những tài liệu sau có thay đổi đã được lưu tự động: + PdfCraft works offline. No telemetry, no account, and no cloud processing unless you add a provider. PdfCraft hoạt động ngoại tuyến. Không theo dõi, không tài khoản và không xử lý trên đám mây trừ khi bạn thêm nhà cung cấp. + PdfCraft {c} is up to date. PdfCraft {c} đã là bản mới nhất. + PdfCraft {v} is available. Đã có PdfCraft {v}. + Percentage Phần trăm + Permissions password Mật khẩu quyền + Permitted actions after certifying Hành động được phép sau khi chứng nhận + Photo Ảnh + Pick a tool in the quick bar, or type above. Chọn một công cụ trong thanh nhanh, hoặc nhập ở trên. + Pictures on those pages are recognized too; words already in the page's text are not added again Hình ảnh trên các trang đó cũng được nhận dạng; các từ đã có trong văn bản trang sẽ không được thêm lại + Pin a folder to Home Ghim một thư mục vào Trang chủ + Pin a folder to list its newest PDFs here, such as where your scanner or a synced cloud drive saves them. Ghim một thư mục để liệt kê các PDF mới nhất ở đây, chẳng hạn nơi máy quét hoặc ổ đám mây đồng bộ lưu chúng. + Pin a folder… Ghim một thư mục… + Plain text in reading order; pages are separated by form feeds. Văn bản thuần theo thứ tự đọc; các trang được phân tách bằng ký tự điều khiển trang. + Planned Đã lên kế hoạch + Planned for milestone Dự kiến cho cột mốc + Points from the page's bottom-left corner. Điểm tính từ góc dưới bên trái của trang. + Portrait Dọc + Portrait Pages Trang nằm dọc + Post Đăng + Poster Áp phích + Prefix Tiền tố + Preview Xem trước + Preview unavailable: {e} Không xem trước được: {e} + Preview: page {p} of {n} Xem trước: trang {p} / {n} + Previous ({key}) Trước ({key}) + Previous / next page Trang trước / sau + Previous figure Hình trước + Previous month Tháng trước + Previous page Trang trước + Previous sheet Tờ trước + Previous view Chế độ xem trước + Print ({key}) In ({key}) + Print in grayscale In thang xám + Print page border In viền trang + Print, NextPage, PrevPage, FirstPage or LastPage Print, NextPage, PrevPage, FirstPage hoặc LastPage + Printer paper and scaling may differ. Check driver settings. Giấy và tỉ lệ của máy in có thể khác. Hãy kiểm tra cài đặt trình điều khiển. + Printer properties Thuộc tính máy in + Printer: Máy in: + Printing allowed Cho phép in + Privacy Quyền riêng tư + Properties… Thuộc tính… + Protect Using Password Bảo vệ bằng mật khẩu + Protected: the combined file won't keep its security settings Được bảo vệ: tệp sau khi kết hợp sẽ không giữ cài đặt bảo mật của nó + Quality Chất lượng + Read Only Chỉ đọc + Reading colours Màu sắc khi đọc + Ready Sẵn sàng + Reason Lý do + Recent Gần đây + Recent colours Màu gần đây + Recognize Text Nhận dạng văn bản + Recognized 1 word Đã nhận dạng 1 từ + Recognized {n} words Đã nhận dạng {n} từ + Recognized {w} words in 1 file Đã nhận dạng {w} từ trong 1 tệp + Recognized {w} words in {n} files Đã nhận dạng {w} từ trong {n} tệp + Recognizing text… file {d} of {t} Đang nhận dạng văn bản… tệp {d} trên {t} + Recognizing text… page {d} of {t} Đang nhận dạng văn bản… trang {d} trên {t} + Recommended tools Công cụ đề xuất + Recover Khôi phục + Recover unsaved documents? Khôi phục các tài liệu chưa lưu? + Redact all Loại bỏ toàn bộ nội dung + Redacted area fill colour: Màu tô vùng đã loại bỏ nội dung: + Redaction Tool Properties Thuộc tính công cụ loại bỏ nội dung + Redaction code: Mã loại bỏ nội dung: + Reload Tải lại + Reload documents when their files change on disk Tải lại tài liệu khi tệp của chúng thay đổi trên ổ đĩa + Remove checkmark Bỏ dấu kiểm + Remove invalid links and bookmarks Gỡ bỏ liên kết và dấu trang không hợp lệ + Remove page Gỡ bỏ trang + Remove unreferenced named destinations Gỡ bỏ các đích đến có tên không được tham chiếu + Remove unused objects and merge identical ones Gỡ bỏ các đối tượng không dùng và hợp nhất những đối tượng giống nhau + Remove {name} Gỡ bỏ {name} + Remove {name} from Recent Gỡ bỏ {name} khỏi Gần đây + Remove {n} files Gỡ bỏ {n} tệp + Remove {n} pages Gỡ bỏ {n} trang + Reopen Closed Tab Mở lại tab đã đóng + Reopen the files that were open when PdfCraft last closed Mở lại các tệp đang mở khi PdfCraft đóng lần trước + Repair log Nhật ký sửa chữa + Repeat overlay text Lặp lại văn bản phủ lên + Replace Image… Thay thế hình ảnh… + Replace Pages Thay thế trang + Replace document colours Thay thế màu của tài liệu + Replace image Thay thế hình ảnh + Replacement text Văn bản thay thế + Replacement: pages of {name} Thay thế: các trang của {name} + Replaces the existing one on those pages. Thay thế mục hiện có trên các trang đó. + Report Báo cáo + Report… Báo cáo… + Requires user to enter a password for: Yêu cầu người dùng nhập mật khẩu cho: + Reset columns Đặt lại số cột + Reset page size Đặt lại kích thước trang + Reset to printer defaults Đặt lại về mặc định của máy in + Resize window to initial page Đổi kích thước cửa sổ theo trang ban đầu + Resolution Độ phân giải + Retain existing Giữ nguyên hiện có + Reveal in File Explorer Hiển thị trong File Explorer + Reveal in Finder Hiển thị trong Finder + Reverse closed arrow Đảo hướng mũi tên đã đóng + Reverse open arrow Đảo hướng mũi tên đang mở + Reverse pages Đảo thứ tự trang + Revert changes Hoàn tác thay đổi + Revert to the previously saved version of “{name}”? Changes since then can't be undone afterwards. Quay lại phiên bản đã lưu trước đó của “{name}”? Những thay đổi từ đó trở đi sẽ không thể hoàn tác sau này. + Review History Lịch sử xem lại + Revisions Bản chỉnh sửa + Right Phải + Right Edge Cạnh phải + Rotate Clockwise Xoay theo chiều kim đồng hồ + Rotate Counterclockwise Xoay ngược chiều kim đồng hồ + Rotate Pages Xoay trang + Rotate clockwise Xoay theo chiều kim đồng hồ + Rotate counterclockwise Xoay ngược chiều kim đồng hồ + Rotate view Xoay chế độ xem + Rotate view clockwise Xoay chế độ xem theo chiều kim đồng hồ + Rotate view clockwise ({key}) Xoay chế độ xem theo chiều kim đồng hồ ({key}) + Rotate view counterclockwise Xoay chế độ xem ngược chiều kim đồng hồ + Rotate: Xoay: + Rotation: Xoay: + Running action… file {d} of {t} Đang chạy hành động… tệp {d} trong {t} + Same as interface ({language}) Giống giao diện ({language}) + Sanitizing removes hidden information from the document: metadata, file attachments, comments, form fields (flattened), hidden text and layers, bookmarks, links, actions and scripts, and private application data. Làm sạch sẽ loại bỏ thông tin ẩn khỏi tài liệu: siêu dữ liệu, tệp đính kèm, bình luận, ô biểu mẫu (được dàn phẳng), văn bản và lớp ẩn, dấu trang, liên kết, hành động và tập lệnh, cùng dữ liệu riêng của ứng dụng. + Save & Close Lưu & Đóng + Save ({key}) Lưu ({key}) + Save Image As… Lưu hình ảnh thành… + Copy Image Sao chép hình ảnh + The image has been copied ({w} × {h} pixels) Đã sao chép hình ảnh ({w} × {h} điểm ảnh) + Couldn't copy the image: {e} Không thể sao chép hình ảnh: {e} + Copy Image in Original Format Sao chép hình ảnh ở định dạng gốc + The image has been copied as a {ext} file Đã sao chép hình ảnh thành tệp {ext} + The page has changed; select the image again Trang đã thay đổi; hãy chọn lại hình ảnh + Save as PDF Lưu thành PDF + Save attachment… Lưu tệp đính kèm… + Save changes to “{name}” before closing? Lưu thay đổi vào “{name}” trước khi đóng? + Save pages Lưu các trang + Save tag properties Lưu thuộc tính thẻ + Save the accessibility report Lưu báo cáo trợ năng + Save the document afterwards: saving rewrites the whole file so no trace of the removed content stays in it. Lưu tài liệu sau đó: việc lưu sẽ ghi lại toàn bộ tệp nên không còn dấu vết của nội dung đã loại bỏ. + Save the document afterwards; saving rewrites the whole file so nothing removed stays in it. Lưu tài liệu sau đó; việc lưu sẽ ghi lại toàn bộ tệp nên không còn gì đã bị loại bỏ. + Save the spreadsheet Lưu bảng tính + Save these pages as one PDF Lưu các trang này thành một tệp PDF + Saved measurements Số đo đã lưu + Saved measurements. Đã lưu số đo. + Scale relative to target page Tỉ lệ so với trang đích + Scan Quét + Script Name: Tên tập lệnh: + Script: Tập lệnh: + Scripts run in a sandbox without file or network access. A script that asks to open a web page needs your permission first. With JavaScript off, Acrobat's standard format, validate and calculate functions still work. Tập lệnh chạy trong hộp cát, không có quyền truy cập tệp hay mạng. Một tập lệnh yêu cầu mở trang web sẽ cần bạn cho phép trước. Khi tắt JavaScript, các hàm định dạng, xác nhận và tính toán tiêu chuẩn của Acrobat vẫn hoạt động. + Scroll long text Cuộn văn bản dài + Scroll tabs left Cuộn thẻ sang trái + Scroll tabs right Cuộn thẻ sang phải + Search comments Tìm trong bình luận + Search tools and commands… Tìm công cụ và lệnh… + Searchable Image (Exact) Hình ảnh có thể tìm kiếm (Chính xác) + Searching… {s} of {p} pages Đang tìm… {s} trong {p} trang + Searching… {s}/{p} Đang tìm… {s}/{p} + Security Bảo mật + Security settings Cài đặt bảo mật + Select (V) Chọn (V) + Select Action: Chọn hành động: + Select All Chọn tất cả + Select Icon Chọn biểu tượng + Select Trigger: Chọn trình kích hoạt: + Select a file first Hãy chọn tệp trước + Select a file for the stamp Chọn một tệp cho con dấu + Select a password-protected file first Hãy chọn tệp được bảo vệ bằng mật khẩu trước + Select a word Chọn một từ + Select all pages (Organize) Chọn tất cả trang (Sắp xếp trang) + Select at most 1000 objects at a time. Chọn tối đa 1000 đối tượng mỗi lần. + Select data files to merge Chọn các tệp dữ liệu để hợp nhất + Select format category: Chọn danh mục định dạng: + Select page {label} Chọn trang {label} + Select pages Chọn trang + Select the items to remove from this document. Chọn các mục cần loại bỏ khỏi tài liệu này. + Selected image files: {count} Các tệp hình ảnh đã chọn: {count} + Selected pages Các trang đã chọn + Selection Lựa chọn + Sending to {printer}… Đang gửi tới {printer}… + Sensitivity Độ nhạy + Sent to {printer} Đã gửi tới {printer} + Sent to {printer}: {msg} Đã gửi tới {printer}: {msg} + Separator style: Kiểu dấu phân cách: + Set Alternate Text Đặt văn bản thay thế + Set Fields to Same Size Đặt các ô cùng kích thước + Set Page Boxes Đặt hộp trang + Set layer visibility Đặt khả năng hiển thị của lớp + Set status Đặt trạng thái + Set to current page ({n}) Đặt về trang hiện tại ({n}) + Set to zero Đặt về 0 + Shared Field Properties Thuộc tính ô dùng chung + Sheet {s} of {n} Trang tính {s} trên {n} + Shift constrains to 45 degrees. Backspace removes a vertex. Escape cancels. Shift giới hạn ở góc 45 độ. Backspace xóa một đỉnh. Escape hủy thao tác. + Shift- or Ctrl/Command-click to select several fields. Nhấn Shift- hoặc Ctrl/Command-click để chọn nhiều ô. + Shift-click to select several objects. Drag empty space to select an area. Nhấn Shift-click để chọn nhiều đối tượng. Kéo vùng trống để chọn một khu vực. + Show Report Hiện báo cáo + Show all Hiện tất cả + Show all comments Hiện tất cả bình luận + Show certificate… Hiện chứng thư… + Show layer Hiện lớp + Show less Hiện ít hơn + Show password Hiện mật khẩu + Show the accessibility report Hiện báo cáo trợ năng + Show this dialog when the Checker starts Hiện hộp thoại này khi Trình kiểm tra bắt đầu + Show {n} more Hiện thêm {n} + Show: Hiện: + Shrink oversized pages Thu nhỏ các trang quá khổ + Sign Here Ký tại đây + Sign this field… Ký ô này… + Sign yourself Tự ký + Signature Details Chi tiết chữ ký + Signature is INVALID: Chữ ký KHÔNG HỢP LỆ: + Signature is valid: Chữ ký hợp lệ: + Signature panel Bảng chữ ký + Signature validity is UNKNOWN: Tính hợp lệ của chữ ký KHÔNG RÕ: + Signer's name Tên người ký + Simplified field notation: Ký hiệu ô rút gọn: + Single Page Trang đơn + Single Page Continuous Trang đơn liên tục + Single word or phrase Một từ hoặc cụm từ + Skip Rule Bỏ qua quy tắc + Skipped Đã bỏ qua + Slash Dấu gạch chéo + Smaller pages Các trang nhỏ hơn + Snap to drawing Bám theo nét vẽ + Some bookmarks are not shown here: the panel lists a limited number, nested a limited depth. Một số dấu trang không hiển thị ở đây: bảng chỉ liệt kê số lượng có giới hạn, với độ sâu lồng nhau có giới hạn. + Some page content couldn't be read; snapping uses the rest. Không thể đọc một phần nội dung trang; việc bám sử dụng phần còn lại. + Sort by Sắp xếp theo + Sort comments by: Sắp xếp bình luận theo: + Sort items Sắp xếp các mục + Source Nguồn + Space Audit Kiểm tra khoảng trắng + Special Đặc biệt + Split document Tách tài liệu + Split into files… Tách thành các tệp… + Square Vuông + Standard Business Standard Business + Start Bắt đầu + Start Checking Bắt đầu kiểm tra + Start page number Số trang bắt đầu + Status Trạng thái + Steps Các bước + Strength: {s} Độ mạnh: {s} + Style Kiểu + Subject Chủ thể + Subset Tập con + Summarize Options Tùy chọn tóm tắt + Summary Tóm tắt + Switch to List view to change the pages it takes. Chuyển sang chế độ xem Danh sách để thay đổi các trang mà nó dùng. + Switch to two-page view first to show the cover page Hãy chuyển sang chế độ xem hai trang trước để hiện trang bìa + Tab order: move a field with its arrows. Thứ tự tab: di chuyển một ô bằng các mũi tên của nó. + Tag type Loại thẻ + Tags Các thẻ + Text Color: Màu văn bản: + Text alignment: Căn chỉnh văn bản: + Text in images isn't found; recognise text (OCR) first. Không tìm thấy văn bản trong hình ảnh; hãy nhận dạng văn bản (OCR) trước. + Text is compared word by word; the differences are shown on the new file. Văn bản được so sánh từng từ; những khác biệt được hiển thị trên tệp mới. + Text recognition isn't installed: its model files are missing. Reinstall PdfCraft, or set PDFCRAFT_MODELS to the folder that holds them. Nhận dạng văn bản chưa được cài đặt: các tệp mô hình của nó đã thiếu. Hãy cài lại PdfCraft, hoặc đặt PDFCRAFT_MODELS trỏ tới thư mục chứa chúng. + Text to find Văn bản cần tìm + Text to insert Văn bản cần chèn + Text used as a clipping path cannot be moved with this selection. Văn bản dùng làm đường cắt không thể di chuyển với lựa chọn này. + Text, marks and signatures become part of the page. Other comments stay editable. Văn bản, dấu đánh dấu và chữ ký trở thành một phần của trang. Các bình luận khác vẫn có thể chỉnh sửa. + Thai and Arabic use regular fallback fonts when available. Tiếng Thái và tiếng Ả Rập dùng phông chữ dự phòng thông thường khi có sẵn. + The PDF text fonts can't draw “{c}” ({code}). Choose supported text. Các phông chữ văn bản của PDF không vẽ được “{c}” ({code}). Hãy chọn văn bản được hỗ trợ. + The checker found 1 problem which may prevent the document from being fully accessible. Trình kiểm tra tìm thấy 1 vấn đề có thể khiến tài liệu không hoàn toàn trợ năng. + The checker found no problems in this document. Trình kiểm tra không tìm thấy vấn đề nào trong tài liệu này. + The checker found {n} problems which may prevent the document from being fully accessible. Trình kiểm tra tìm thấy {n} vấn đề có thể khiến tài liệu không hoàn toàn trợ năng. + The document now conforms to {level}; save it to keep the changes Tài liệu hiện đã tuân thủ {level}; hãy lưu để giữ các thay đổi + The document opens without a password; this password is needed to change the restrictions. It's applied when you save. Tài liệu mở không cần mật khẩu; mật khẩu này cần thiết để thay đổi các hạn chế. Nó được áp dụng khi bạn lưu. + The document's security settings don't allow copying text and images Cài đặt bảo mật của tài liệu không cho phép sao chép văn bản và hình ảnh + The document's security settings don't allow this change Cài đặt bảo mật của tài liệu không cho phép thay đổi này + The existing action will be preserved. Hành động hiện có sẽ được giữ nguyên. + The fonts PdfCraft writes with can't draw “{c}” ({code}), so it shows as ? in every PDF viewer. The text is saved. Các phông chữ mà PdfCraft dùng để ghi không vẽ được “{c}” ({code}), nên nó hiện thành ? trong mọi trình xem PDF. Văn bản vẫn được lưu. + The key is in the Windows certificate store, which may ask to allow PdfCraft to use it. Khóa nằm trong kho chứng thư của Windows, có thể yêu cầu cho phép PdfCraft sử dụng nó. + The key is in the macOS Keychain, which may ask to allow PdfCraft to use it. Khóa nằm trong Keychain của macOS, có thể yêu cầu cho phép PdfCraft sử dụng nó. + The newest {n} of {total} PDFs {n} PDF mới nhất trong {total} + The password is only used to read the file; it isn't saved. Mật khẩu chỉ được dùng để đọc tệp; nó không được lưu. + The printer driver's own settings for this print: paper tray, paper type, finishing and more. Cài đặt riêng của trình điều khiển máy in cho lần in này: khay giấy, loại giấy, hoàn thiện và hơn thế nữa. + The replacement file doesn't have that many pages. Tệp thay thế không có nhiều trang như vậy. + The same password is tried on each file. Cùng một mật khẩu được thử trên từng tệp. + The signature will be invisible. Chữ ký sẽ không nhìn thấy được. + The text is the same Văn bản giống nhau + The value is shown as typed. Giá trị được hiển thị đúng như đã nhập. + There are no redaction marks (mark text, areas or pages first) Không có dấu loại bỏ nội dung nào (hãy đánh dấu văn bản, vùng hoặc trang trước) + These files can't be read, so they won't be in the combined PDF: Không thể đọc các tệp này, nên chúng sẽ không có trong PDF hợp nhất: + These objects could not be moved. Select them again and try a smaller move. Không thể di chuyển các đối tượng này. Hãy chọn lại chúng và thử di chuyển một khoảng nhỏ hơn. + Thick Đậm + Thickness Độ dày + Thin Mỏng + This area has too many overlapping paths; intersection snapping is limited. Khu vực này có quá nhiều đường dẫn chồng lấn; việc bám tại giao điểm bị giới hạn. + This certificate is in your list of trusted certificates. Chứng thư này nằm trong danh sách chứng thư tin cậy của bạn. + This certificate is not trusted. Signatures made with it show an unknown identity. Chứng thư này không được tin cậy. Các chữ ký tạo bằng nó hiển thị danh tính không xác định. + This certificate is trusted through a certificate above it in the chain. Chứng thư này được tin cậy thông qua một chứng thư ở trên nó trong chuỗi. + This comment's appearance can't be changed yet. Chưa thể thay đổi giao diện hiển thị của bình luận này. + This dialog shows the details of a certificate and its chain. Hộp thoại này hiển thị chi tiết của một chứng thư và chuỗi của nó. + This document contains {n} interactive form fields. Tài liệu này chứa {n} ô biểu mẫu tương tác. + This document has no comments to flatten Tài liệu này không có bình luận nào để dàn phẳng + This document has no document-level scripts. Tài liệu này không có tập lệnh ở cấp tài liệu. + This document has no editable structure tags. Tài liệu này không có thẻ cấu trúc nào để chỉnh sửa. + This document has no form fields to flatten Tài liệu này không có ô biểu mẫu nào để dàn phẳng + This document has no form fields you can fill in Tài liệu này không có ô biểu mẫu nào để điền + This document has no pages. Tài liệu này không có trang nào. + This document has no restrictions to lift Tài liệu này không có hạn chế nào để gỡ bỏ + This document has no signatures. Tài liệu này không có chữ ký nào. + This document has no tagged figures. Tài liệu này không có hình vẽ nào được gắn thẻ. + This document has no {kind} to change Tài liệu này không có {kind} nào để thay đổi + This document hasn't been checked yet. Tài liệu này chưa được kiểm tra. + This document is secured. Some changes are restricted by its security settings. Tài liệu này đã được bảo vệ. Một số thay đổi bị hạn chế bởi cài đặt bảo mật của nó. + This document isn't password-protected Tài liệu này không được bảo vệ bằng mật khẩu + This drawing exceeds the snapping limit; only the first paths are used. Nét vẽ này vượt quá giới hạn bám; chỉ những đường dẫn đầu tiên được dùng. + This field is locked. Unlock it to change its properties. Ô này đã bị khóa. Hãy mở khóa để thay đổi thuộc tính của nó. + This file changed on disk. Reload it to see the new version; your unsaved changes will be lost. Tệp này đã thay đổi trên đĩa. Hãy tải lại để xem phiên bản mới; các thay đổi chưa lưu của bạn sẽ bị mất. + This file was damaged and has been repaired. Saving keeps the repaired version. Tệp này bị hỏng và đã được sửa. Việc lưu sẽ giữ phiên bản đã sửa. + This folder isn't available right now. It may have moved, or its drive or cloud sync is offline. Thư mục này hiện không khả dụng. Có thể nó đã được di chuyển, hoặc ổ đĩa hay đồng bộ đám mây của nó đang ngoại tuyến. + This form's scripts are turned off because one ran too long. Reopen the document to run them again. Các tập lệnh của biểu mẫu này đã bị tắt vì một tập lệnh chạy quá lâu. Hãy mở lại tài liệu để chạy lại chúng. + This is a dynamic XFA form, which PdfCraft can't display yet. What you see is the file's placeholder page. Đây là biểu mẫu XFA động, PdfCraft chưa thể hiển thị được. Bạn đang thấy trang giữ chỗ của tệp. + This measurement needs at least {n} points. Số đo này cần ít nhất {n} điểm. + This page contains objects that cannot be selected together. Trang này chứa các đối tượng không thể chọn cùng lúc. + This page couldn't be displayed.\n{e} Không thể hiển thị trang này.\n{e} + This printer offers no settings of its own. Máy in này không có cài đặt riêng nào. + This printer's driver doesn't take two-sided settings from other programs, so its own setting applies. Change it in Properties… Trình điều khiển của máy in này không nhận cài đặt in hai mặt từ các chương trình khác, nên cài đặt riêng của nó sẽ được áp dụng. Hãy thay đổi trong Thuộc tính… + This web address mixes letters from different alphabets, a common way to imitate another site's name. Địa chỉ web này trộn lẫn chữ cái từ nhiều bảng chữ cái khác nhau, một cách phổ biến để bắt chước tên của trang web khác. + This web address uses letters from another alphabet, which can look like familiar ones. Địa chỉ web này dùng chữ cái từ một bảng chữ cái khác, có thể trông giống chữ quen thuộc. + Tile scale: Tỉ lệ xếp ô: + Time Thời gian + Title Tiêu đề + To change locked fields, also set Locked to No. Để thay đổi các ô đã bị khóa, hãy đặt Khóa thành Không. + To: Đến: + Today: {date} Hôm nay: {date} + Toggle fit page / fit width Chuyển đổi vừa trang / vừa chiều rộng + Tool Công cụ + Tools panel side Vị trí bảng công cụ + Tooltip: Chú giải: + Top Trên cùng + Top-level bookmarks ({n}) Dấu trang cấp cao nhất ({n}) + Total Tổng + Trust Tin cậy + Try the form as people filling it in will see it Xem trước biểu mẫu như người điền sẽ thấy + Two-Up (Cover Page) Hai trang (Trang bìa) + Two-Up (Facing) Hai trang (Đối diện) + Two-Up Continuous (Cover Page) Hai trang liên tục (Trang bìa) + Two-Up Continuous (Facing) Hai trang liên tục (Đối diện) + Two-sided: In hai mặt: + Type Loại + Type text Nhập văn bản + Type the web address. Nhập địa chỉ web. + Type your {what}. Nhập {what} của bạn. + URL to submit to URL để gửi tới + Unit Đơn vị + Units Đơn vị + Unknown author Tác giả không xác định + Unlock Mở khóa + Unlock {name} Mở khóa {name} + Unlock {n} files Mở khóa {n} tệp + Unlocked: the combined file won't be password-protected Đã mở khóa: tệp hợp nhất sẽ không được bảo vệ bằng mật khẩu + Unlock… Mở khóa… + Unpin Bỏ ghim + Unpin {folder} Bỏ ghim {folder} + Unplaced Chưa đặt + Unsupported measurements Số đo không được hỗ trợ + Up Lên + Update Cập nhật + Use 72 DPI (one point per pixel) Dùng 72 DPI (một điểm mỗi pixel) + Use Flate to encode streams that are not encoded Dùng Flate để mã hóa các luồng chưa được mã hóa + Use a Digital ID from a file Dùng Digital ID từ một tệp + Use custom DPI Dùng DPI tùy chỉnh + Use each image's embedded DPI; use 72 DPI when it is absent. Dùng DPI nhúng của từng hình ảnh; dùng 72 DPI khi không có. + Use image resolution Dùng độ phân giải hình ảnh + Use now Dùng ngay + Use overlay text Dùng văn bản phủ + Used when a PDF doesn't ask for a layout or zoom. Continuous scrolling never snaps between pages. Dùng khi PDF không yêu cầu bố cục hoặc mức thu phóng. Cuộn liên tục không bao giờ bám giữa các trang. + Used when opening PDFs. An explicit launch or control mode takes precedence for the session. Dùng khi mở PDF. Chế độ khởi chạy hoặc chế độ điều khiển tường minh sẽ được ưu tiên cho phiên làm việc này. + User Interface Options Tùy chọn giao diện người dùng + User password Mật khẩu người dùng + Valid for 5 years, for digital signatures. Self-signed IDs are usually not trusted by others. Có hiệu lực 5 năm, dành cho chữ ký số. Digital ID tự ký thường không được người khác tin cậy. + Validate all Xác nhận tất cả + Value is not calculated Giá trị không được tính toán + Value is the Giá trị là + Value: Giá trị: + Verify Xác minh + Verify to see what the document needs. Xác minh để xem tài liệu cần gì. + Version {v} Phiên bản {v} + Vertical Dọc + Vertical reversed Dọc đảo ngược + Vertical text cannot be moved with this selection. Văn bản dọc không thể di chuyển với lựa chọn này. + View revision {n} Xem bản sửa đổi {n} + View signed version Xem phiên bản đã ký + Viewport Khung xem + Viewport rectangle in page points (x, y, width, height) Hình chữ nhật khung xem theo điểm trang (x, y, chiều rộng, chiều cao) + Visible Rectangle Hình chữ nhật hiển thị + Visual Trực quan + Warnings Cảnh báo + Welcome to PdfCraft Chào mừng đến với PdfCraft + What word or phrase would you like to search for? Bạn muốn tìm từ hoặc cụm từ nào? + Whole words only Chỉ từ đầy đủ + Width: Chiều rộng: + Window Options Tùy chọn cửa sổ + Windows store · Cửa hàng Windows · + Write this email? Viết email này? + Wrong password Sai mật khẩu + XFA form: its fields and its XFA data are kept in step, so other viewers show what you fill in. Biểu mẫu XFA: các ô của nó và dữ liệu XFA được đồng bộ với nhau, nên các trình xem khác hiển thị đúng những gì bạn điền. + You are about to apply 1 redaction mark. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. Bạn sắp áp dụng 1 dấu loại bỏ nội dung. Văn bản, hình ảnh và nét vẽ nằm dưới các dấu, cùng bình luận và ô biểu mẫu chồng lấn chúng, sẽ bị xóa vĩnh viễn. + You are about to apply {n} redaction marks. Text, images and drawings under the marks, and comments and form fields that overlap them, are removed permanently. Bạn sắp áp dụng {n} dấu loại bỏ nội dung. Văn bản, hình ảnh và nét vẽ nằm dưới các dấu, cùng bình luận và ô biểu mẫu chồng lấn chúng, sẽ bị xóa vĩnh viễn. + You have version {c}. All releases are listed at {page}. Bạn đang có phiên bản {c}. Tất cả các bản phát hành được liệt kê tại {page}. + You have version {c}. Download the new version from its release page. Bạn đang có phiên bản {c}. Hãy tải phiên bản mới từ trang phát hành của nó. + Your changes will be lost if you don't save them. Các thay đổi của bạn sẽ bị mất nếu bạn không lưu. + ZIP ZIP + Zoom in Phóng to + Zoom in ({key}) Phóng to ({key}) + Zoom in / out (also pinch or {key}-scroll) Phóng to / thu nhỏ (cũng có thể dùng hai ngón tay vuốt hoặc cuộn bằng {key}) + Zoom out Thu nhỏ + Zoom out ({key}) Thu nhỏ ({key}) + already a PDF đã là PDF + and {n} more và {n} nữa + background nền + characters ký tự + e.g. My stamps ví dụ: Con dấu của tôi + e.g. en-US ví dụ: en-US + for images above cho các hình ảnh phía trên + header or footer đầu trang hoặc chân trang + initials chữ viết tắt + is available khả dụng + is not available yet chưa khả dụng + just now vừa xong + yesterday hôm qua + needs an AI provider (off by default) cần một nhà cung cấp AI (tắt theo mặc định) + no output folder was chosen chưa chọn thư mục đầu ra + no unused output name không có tên đầu ra nào chưa dùng + none không có + of the following fields: trong số các ô sau: + AI assistant AI Assistant + Action Wizard Trình hướng dẫn hành động + Action Wizard… Trình hướng dẫn hành động… + Actions list Danh sách hành động + Add Bates numbering… Thêm đánh số Bates… + Add a button Thêm một nút + Add a callout Thêm một hộp thoại chú thích + Add a checkbox Thêm một ô kiểm tra + Add a date field Thêm một ô ngày + Add a digital signature field Thêm một ô chữ ký số + Add a drop-down list Thêm một danh sách thả xuống + Add a list box Thêm một hộp danh sách + Add a radio button Thêm nút chọn + Add a stamp Thêm con dấu + Add a sticky note Thêm ghi chú dính + Add a text box Thêm hộp văn bản + Add a text field Thêm ô văn bản + Add alternate text Thêm văn bản thay thế + Add alternate text… Thêm văn bản thay thế… + Add an image field Thêm ô hình ảnh + Add background… Thêm nền… + Add comments Thêm bình luận + Add content Thêm nội dung + Add files to combine Thêm tệp để kết hợp + Add form components Thêm thành phần biểu mẫu + Add header & footer… Thêm đầu trang & chân trang… + Add image… Thêm hình ảnh… + Add or edit links Thêm hoặc chỉnh sửa liên kết + Add printer marks Thêm dấu in + Add search index Thêm chỉ mục tìm kiếm + Add text Thêm văn bản + Add watermark… Thêm hình mờ… + Advanced optimization Tối ưu nâng cao + Advanced options Tùy chọn nâng cao + Apply PDF standards Áp dụng tiêu chuẩn PDF + Apply redactions… Áp dụng loại bỏ nội dung… + Archive documents Lưu trữ tài liệu + Area Diện tích + Arrow Mũi tên + ArtCraft website Trang web ArtCraft + Ask about this document Hỏi về tài liệu này + Attach a file Đính kèm một tệp + Attach file Đính kèm tệp + Audit space usage Kiểm tra mức sử dụng dung lượng + Automatically tag PDF Tự động gắn thẻ PDF + Background Nền + Bates numbering Đánh số Bates + Blank page Trang trắng + Bring your own model (off by default) Dùng mô hình của riêng bạn (mặc định tắt) + Button Nút + Certificates Chứng thư + Certify (invisible signature) Chứng nhận (chữ ký vô hình) + Certify (visible signature) Chứng nhận (chữ ký nhìn thấy được) + Change initials Đổi chữ viết tắt + Change reading options Đổi tùy chọn đọc + Change reading options… Đổi tùy chọn đọc… + Change signature Đổi chữ ký + Check for accessibility Kiểm tra trợ năng + Check for accessibility… Kiểm tra trợ năng… + Checkbox Ô tích + Checkmark Dấu tích + Clear form Xóa biểu mẫu + Clear redaction marks Xóa dấu loại bỏ nội dung + Clipboard Bảng tạm + Cloud Đám mây + Column select Chọn theo cột + Combine Kết hợp + Combine files Kết hợp tệp + Comment list Danh sách bình luận + Comments panel Bảng bình luận + Compare So sánh + Compare files So sánh tệp + Compare files… So sánh tệp… + Compress a PDF Nén một PDF + Console Bảng điều khiển + Convert colors Chuyển đổi màu + Copy pages Sao chép trang + Correct recognized text Sửa văn bản đã nhận dạng + Create a PDF Tạo một PDF + Create from Tạo từ + Create links from URLs Tạo liên kết từ URL + Crop pages Cắt lề trang + Cross Dấu chéo + Cut pages Cắt trang + Dark gray Xám đậm + Date Ngày + Date field Ô ngày + Detect form fields Phát hiện ô biểu mẫu + Digital signature Chữ ký số + Digitally sign Ký số + Distance Khoảng cách + Document JavaScripts JavaScripts của tài liệu + Document JavaScripts… JavaScripts của tài liệu… + Document actions Hành động của tài liệu + Dot Dấu chấm + Draw a cloud Vẽ đám mây + Draw a line Vẽ đường thẳng + Draw a polygon Vẽ đa giác + Draw a rectangle Vẽ hình chữ nhật + Draw an arrow Vẽ mũi tên + Draw an oval Vẽ hình bầu dục + Draw connected lines Vẽ các đường thẳng nối tiếp + Draw freehand Vẽ tự do + Drawing Vẽ tay + Drawing scale Tỉ lệ vẽ + Drop-down list Danh sách thả xuống + Duplicate pages Nhân bản trang + Edit a PDF Chỉnh sửa một PDF + Edit text & images Chỉnh sửa văn bản & hình ảnh + Encrypt with certificate Mã hóa bằng chứng thư + Enhance camera image Cải thiện hình ảnh máy ảnh + Enhance scanned file Cải thiện tệp đã quét + Enter permissions password… Nhập mật khẩu quyền… + Erase drawings Xóa nét vẽ + Export a PDF Xuất một PDF + Export all comments to data file… Xuất tất cả bình luận ra tệp dữ liệu… + Export all images Xuất tất cả hình ảnh + Export all images… Xuất tất cả hình ảnh… + Export data Xuất dữ liệu + Export form data… Xuất dữ liệu biểu mẫu… + Export measurements Xuất kết quả đo + Export measurements as CSV Xuất kết quả đo dưới dạng CSV + Export to Xuất vào + Export to PowerPoint… Xuất sang PowerPoint… + Extract Trích xuất + Extract pages Trích xuất trang + Field list Danh sách ô + Field properties Thuộc tính ô + Field properties… Thuộc tính ô… + Fields Các ô + Fill Điền + Fill & Sign: add text Điền & Ký: thêm văn bản + Fill & Sign: change initials Điền & Ký: đổi chữ viết tắt + Fill & Sign: change signature Điền & Ký: đổi chữ ký + Fill & Sign: checkmark Điền & Ký: dấu tích + Fill & Sign: cross Điền & Ký: dấu chéo + Fill & Sign: date Điền & Ký: ngày + Fill & Sign: dot Điền & Ký: dấu chấm + Fill & Sign: initials Điền & Ký: chữ viết tắt + Fill & Sign: line Điền & Ký: đường thẳng + Fill & Sign: remove saved initials Điền & Ký: gỡ bỏ chữ viết tắt đã lưu + Fill & Sign: remove saved signature Điền & Ký: gỡ bỏ chữ ký đã lưu + Fill & Sign: sign Điền & Ký: ký + Find text and redact Tìm văn bản và loại bỏ nội dung + Find text and redact… Tìm văn bản và loại bỏ nội dung… + Fit to width scrolling Cuộn vừa chiều rộng + Fit visible Vừa vùng nhìn thấy + Fix hairlines Sửa đường viền mảnh + Fix reading order Sửa thứ tự đọc + Flatten comments Làm phẳng bình luận + Flatten form fields Làm phẳng ô biểu mẫu + Form fields panel Bảng ô biểu mẫu + Geospatial location Vị trí địa lý + Go to page… Đến trang… + HTML web page Trang web HTML + Header and footer Đầu trang và chân trang + Hide all comments Ẩn tất cả bình luận + Highlight text Tô sáng văn bản + Image Hình ảnh + Image (PNG) Hình ảnh (PNG) + Image field Ô hình ảnh + Images Hình ảnh + Import comments… Nhập bình luận… + Import data Nhập dữ liệu + Import form data… Nhập dữ liệu biểu mẫu… + In multiple files Trong nhiều tệp + In this file Trong tệp này + Index Chỉ mục + Initials Chữ viết tắt + Insert Chèn + Insert pages Chèn trang + Insert text Chèn văn bản + JavaScript JavaScript + JavaScript console… Bảng điều khiển JavaScript… + Join the ArtCraft Discord Tham gia Discord của ArtCraft + Light gray Xám nhạt + Line Đường thẳng + Link Liên kết + List box Hộp danh sách + Make accessible Làm cho dễ tiếp cận + Manage embedded index Quản lý chỉ mục nhúng + Markup Chú thích + Marquee zoom Thu phóng vùng chọn + Measure area Đo diện tích + Measure distance Đo khoảng cách + Measure objects Đo đối tượng + Measure perimeter Đo chu vi + Measurement information Thông tin phép đo + Measurement snapping Bám phép đo + Merge data files into spreadsheet… Gộp các tệp dữ liệu vào bảng tính… + Microsoft Word (.docx) Microsoft Word (.docx) + Modify page Sửa đổi trang + Multiple files Nhiều tệp + New bookmarks from structure Tạo dấu trang mới từ cấu trúc + Open accessibility report Mở báo cáo trợ năng + Optimize scanned documents Tối ưu tài liệu đã quét + Optimize scanned documents… Tối ưu tài liệu đã quét… + Output preview Xem trước kết quả + Oval Hình bầu dục + PDF/A… PDF/A… + Page grid Lưới trang + Page labels Nhãn trang + Page options Tùy chọn trang + Page transitions Hiệu ứng chuyển trang + Paste pages Dán trang + PdfCraft on GitHub PdfCraft trên GitHub + PdfCraft web page Trang web PdfCraft + Perimeter Chu vi + Pin folder to Home… Ghim thư mục vào Trang chủ… + PostScript / EPS PostScript / EPS + Preflight Kiểm tra trước khi in + Prepare for accessibility Chuẩn bị cho trợ năng + Prepare for distribution Chuẩn bị để phân phối + Prepare for distribution… Chuẩn bị để phân phối… + Presentation (.pptx) Trình bày (.pptx) + Print production Dàn trang in + Protect a PDF Bảo vệ một PDF + Protect with password Bảo vệ bằng mật khẩu + Radio button Nút chọn + Recognize text Nhận dạng văn bản + Recognize text in multiple files… Nhận dạng văn bản trong nhiều tệp… + Recognize text… Nhận dạng văn bản… + Rectangle Hình chữ nhật + Redact a PDF Loại bỏ nội dung một PDF + Redact pages Loại bỏ nội dung trang + Redact pages… Loại bỏ nội dung trang… + Redact text and images Loại bỏ nội dung văn bản và hình ảnh + Redaction properties… Thuộc tính loại bỏ nội dung… + Reduce file size Giảm kích thước tệp + Remove all links Gỡ bỏ tất cả liên kết + Remove background Gỡ bỏ nền + Remove header & footer Gỡ bỏ đầu trang & chân trang + Remove hidden information Gỡ bỏ thông tin ẩn + Remove hidden information… Gỡ bỏ thông tin ẩn… + Remove watermark Gỡ bỏ hình mờ + Replace Thay thế + Replace text Thay thế văn bản + Reset panel layout Đặt lại bố cục bảng + Review Xem lại + Rich Text Format (.rtf) Rich Text Format (.rtf) + Rotate Xoay + Rotate pages Xoay trang + Rotate pages clockwise Xoay trang theo chiều kim đồng hồ + Rotate pages counterclockwise Xoay trang ngược chiều kim đồng hồ + Sanitize document Làm sạch tài liệu + Sanitize document… Làm sạch tài liệu… + Save as PDF/A Lưu dạng PDF/A + Save as PDF/UA Lưu dạng PDF/UA + Save as PDF/X Lưu dạng PDF/X + Scan & OCR Quét & OCR + Security properties Thuộc tính bảo mật + Select files to compare Chọn tệp để so sánh + Separate PDFs Tách PDF + Set measurement scale Đặt tỉ lệ đo + Set page boxes Đặt khung trang + Set page boxes… Đặt khung trang… + Set properties Đặt thuộc tính + Show cover page in two-page view Hiện trang bìa ở chế độ xem hai trang + Signature Chữ ký + Signatures panel Bảng chữ ký + Single file Một tệp + Snapping Bám + Split Tách + Spreadsheet (.xlsx) Bảng tính (.xlsx) + Squiggly underline Gạch chân gợn sóng + Squiggly underline text Gạch chân gợn sóng văn bản + Stamp Con dấu + Stamp palette Bảng màu con dấu + Stamps Con dấu + Standards Tiêu chuẩn + Sticky note Ghi chú dính + Strikethrough text Gạch ngang văn bản + Summarize Tóm tắt + Summarize comments Tóm tắt bình luận + Switch light / dark theme Chuyển giao diện sáng / tối + Tab order by columns Thứ tự Tab theo cột + Tab order by rows Thứ tự Tab theo hàng + Tab order: by columns Thứ tự Tab: theo cột + Tab order: by document structure Thứ tự Tab: theo cấu trúc tài liệu + Tab order: by rows Thứ tự Tab: theo hàng + Tags panel Bảng thẻ + Text (plain) Văn bản (thuần) + Text box Hộp văn bản + Text field Ô văn bản + Timestamp Dấu thời gian + Translate Dịch + Underline text Gạch chân văn bản + Update background… Cập nhật nền… + Update header & footer… Cập nhật đầu trang & chân trang… + Update watermark… Cập nhật hình mờ… + Use JavaScript Dùng JavaScript + Use a certificate Dùng một chứng thư + Use guided actions Dùng hành động có hướng dẫn + Use print production Dùng dàn trang in + Use system setting Dùng cài đặt hệ thống + Validate all signatures Xác thực tất cả chữ ký + Watermark Hình mờ + Move object Di chuyển đối tượng + Move objects Di chuyển các đối tượng + All tools Tất cả công cụ + Read Đọc + E-Sign Ký điện tử + Tools Công cụ + Inspector Trình kiểm tra + on page {label} trên trang {label} + A font isn't embedded Phông chữ chưa được nhúng + A {} action isn't allowed Hành động {} không được phép + A {} annotation has additional actions Chú thích {} có hành động bổ sung + A {} annotation has no appearance stream Chú thích {} không có luồng giao diện hiển thị + A {} annotation isn't set to print, or is hidden Chú thích {} không được đặt để in hoặc đang bị ẩn + Accessibility Report Báo cáo Trợ năng + Add the PDFs to combine Thêm các PDF để kết hợp + Added the first {n} PDFs in {folder} Đã thêm {n} PDF đầu tiên trong {folder} + CRL Signing Ký bằng CRL + Certificate Signing Ký bằng chứng thư + Change Author Đổi Tác giả + Change Keywords Đổi Từ khóa + Change Subject Đổi Chủ đề + Change Title Đổi Tiêu đề + Choose a digital ID. Chọn một danh tính số. + Create links Tạo liên kết + Creator Người tạo + Cut and stack needs Two-sided: Off. Print single-sided sheets. Cắt và xếp chồng cần có In hai mặt: Tắt. Hãy in các tờ in một mặt. + Data Encipherment Mã hóa dữ liệu + Decipher Only Chỉ giải mã + Detailed Report Báo cáo chi tiết + DeviceCMYK is used, but the PDF/A output intent isn't a CMYK profile Đang dùng DeviceCMYK, nhưng ý định đầu ra PDF/A không phải là hồ sơ CMYK + DeviceRGB is used, but the PDF/A output intent isn't an RGB profile Đang dùng DeviceRGB, nhưng ý định đầu ra PDF/A không phải là hồ sơ RGB + Digital Signature Chữ ký số + Document properties (⌘D) Thuộc tính tài liệu (⌘D) + Drop PDFs or folders here, or choose them. Kéo tệp PDF hoặc thư mục vào đây, hoặc chọn chúng. + Encipher Only Chỉ mã hóa + English Tiếng Anh + Enter a URL Nhập một URL + Enter a name. Nhập một tên. + Enter a page number Nhập số trang + Enter the field names Nhập tên các ô + Every PDF in the folder Mọi tệp PDF trong thư mục + Every PDF in the folder and the folders inside it Mọi tệp PDF trong thư mục và các thư mục bên trong + Field "{}" on page {p} has no description (tooltip) Ô "{}" trên trang {p} không có mô tả (chú thích) + Filename Tên tệp + Flatten Fill & Sign Dàn phẳng Điền & Ký + Font (unnamed) on page {p} doesn't map its characters to Unicode Phông chữ (không tên) trên trang {p} không ánh xạ các ký tự của nó sang Unicode + Font {} on page {p} doesn't map its characters to Unicode Phông chữ {} trên trang {p} không ánh xạ các ký tự của nó sang Unicode + Form field on page {p} isn't tagged Ô biểu mẫu trên trang {p} chưa được gắn thẻ + H{n} follows an H{d}; headings should not skip levels H{n} đứng sau một H{d}; các tiêu đề không nên bỏ qua cấp độ + Inserted text Văn bản đã chèn + Key Agreement Thỏa thuận khóa + Key Encipherment Mã hóa khóa + Margins (in) Lề (inch) + New bookmark (⌘B) Dấu trang mới (⌘B) + Next (⌘G) Tiếp theo (⌘G) + No PDFs found in {folder} Không tìm thấy tệp PDF nào trong {folder} + No document language is set Chưa đặt ngôn ngữ cho tài liệu + No page has text: the document appears to be images of pages Không trang nào có văn bản: tài liệu có vẻ chỉ là hình ảnh của các trang + Non-Repudiation Chống thoái chối + Only the document's owner can change its security (open it with the permissions password) Chỉ chủ sở hữu của tài liệu mới có thể thay đổi bảo mật của nó (mở bằng mật khẩu quyền) + Open a PDF (⌘O) Mở một tệp PDF (⌘O) + Page {p} doesn't tab in structure order Trang {p} không theo thứ tự tab trong cấu trúc + Page {p}: {n} untagged content item Trang {p}: {n} mục nội dung chưa gắn thẻ + Page {p}: {n} untagged content items Trang {p}: {n} mục nội dung chưa gắn thẻ + Page {} has additional actions Trang {} có hành động bổ sung + Panel layout could not be restored: {error} Không thể khôi phục bố cục bảng bên: {error} + Panel move was not applied: {error} Việc di chuyển bảng bên không được áp dụng: {error} + PdfCraft can't check this signature yet: {}. PdfCraft chưa thể kiểm tra chữ ký này: {}. + Previous (⇧⌘G) Trước (⇧⌘G) + Print (⌘P) In (⌘P) + Producer Nhà sản xuất + Redo {action} Làm lại {action} + Rendering… Đang kết xuất… + Report created Đã tạo báo cáo + Rev. {rev}: Certified by an unknown signer Bản {rev}: Được chứng nhận bởi người ký không xác định + Rev. {rev}: Certified by {name} Bản {rev}: Được chứng nhận bởi {name} + Rev. {rev}: Signed by an unknown signer Bản {rev}: Được ký bởi người ký không xác định + Rev. {rev}: Signed by {name} Bản {rev}: Được ký bởi {name} + Rotate view clockwise (⇧⌘+) Xoay giao diện theo chiều kim đồng hồ (⇧⌘+) + Rule Name Tên quy tắc + Save (M4) Lưu (M4) + Save as {level} Lưu thành {level} + Signature is invalid Chữ ký không hợp lệ + Signature is valid Chữ ký hợp lệ + Signature validity is unknown Không rõ tính hợp lệ của chữ ký + Signing time is from the clock on the signer's computer. Thời điểm ký lấy từ đồng hồ trên máy tính của người ký. + Still rendering — this page is unusually complex… Vẫn đang kết xuất — trang này phức tạp bất thường… + The ECDSA signature is not in canonical DER (trailing bytes, padding or a missing sign byte); it was read anyway. Chữ ký ECDSA không ở dạng DER chuẩn (byte thừa, phần đệm hoặc thiếu byte dấu); nó vẫn được đọc. + The ECDSA signature is the raw r and s values instead of a DER sequence; it was read anyway. Chữ ký ECDSA là giá trị r và s thô thay vì một chuỗi DER; nó vẫn được đọc. + The RSA signature value does not have the length of the key's modulus (leading zero bytes dropped or added); it was read anyway. Giá trị chữ ký RSA không có độ dài bằng modulus của khóa (byte 0 ở đầu bị bỏ hoặc thêm vào); nó vẫn được đọc. + The RSA signature's DigestInfo has no NULL parameter (older signers write it so); it was read anyway. DigestInfo của chữ ký RSA không có tham số NULL (các bộ ký cũ ghi như vậy); nó vẫn được đọc. + The certificate of {} does not allow this many CA certificates below it (path length), so it is not used to vouch for {}. Chứng thư của {} không cho phép có nhiều chứng thư CA như vậy bên dưới nó (độ dài đường dẫn), vì vậy nó không được dùng để bảo chứng cho {}. + The certificate of {} is not a CA certificate that may issue certificates, so it is not used to vouch for {}. Chứng thư của {} không phải là chứng thư CA có thể cấp chứng thư, vì vậy nó không được dùng để bảo chứng cho {}. + The certificate of {} was not valid at the time of signing, so it is not used to vouch for {}. Chứng thư của {} không hợp lệ tại thời điểm ký, vì vậy nó không được dùng để bảo chứng cho {}. + The checker found problems which may prevent the document from being fully accessible. Bộ kiểm tra phát hiện vấn đề có thể khiến tài liệu không hoàn toàn trợ năng. + The document has been altered or corrupted since the signature was applied. Tài liệu đã bị thay đổi hoặc hỏng kể từ khi chữ ký được áp dụng. + The document has been altered or corrupted since the timestamp was applied. Tài liệu đã bị thay đổi hoặc hỏng kể từ khi dấu thời gian được áp dụng. + The document has been altered since this signature was applied in ways it does not permit ({}). Tài liệu đã bị thay đổi theo những cách mà chữ ký này không cho phép ({}). + The document has been altered since this timestamp was applied in ways it does not permit ({}). Tài liệu đã bị thay đổi theo những cách mà dấu thời gian này không cho phép ({}). + The document has been modified since this signature was applied, but the changes are permitted ({}). Tài liệu đã được sửa đổi kể từ khi chữ ký này được áp dụng, nhưng các thay đổi đó được phép ({}). + The document has been modified since this timestamp was applied, but the changes are permitted ({}). Tài liệu đã được sửa đổi kể từ khi dấu thời gian này được áp dụng, nhưng các thay đổi đó được phép ({}). + The document has no tags (structure tree) Tài liệu không có thẻ nào (cây cấu trúc) + The document has no title Tài liệu không có tiêu đề + The document isn't marked as tagged (MarkInfo Marked) Tài liệu không được đánh dấu là đã gắn thẻ (MarkInfo Marked) + The document isn't tagged, so none of its content is Tài liệu chưa được gắn thẻ, vì vậy không có nội dung nào của nó được gắn thẻ + The document's embedded revocation information shows that the signer's certificate has not been revoked. Thông tin thu hồi nhúng trong tài liệu cho thấy chứng thư của người ký chưa bị thu hồi. + The embedded timestamp token is valid and its authority is trusted; trusted time is {}. Mã thông báo dấu thời gian nhúng hợp lệ và cơ quan của nó được tin cậy; thời gian tin cậy là {}. + The font {} isn't embedded Phông chữ {} không được nhúng + The metadata doesn't identify the file as {} Siêu dữ liệu không nhận diện tệp là {} + The password is incorrect. Mật khẩu không đúng. + The password must have at least 6 characters. Mật khẩu phải có ít nhất 6 ký tự. + The passwords do not match. Hai mật khẩu không khớp. + The security settings don't allow screen readers to read the text Cài đặt bảo mật không cho phép trình đọc màn hình đọc văn bản + The signature algorithm and the SignerInfo's digest algorithm name different hashes; the signature was made with the SignerInfo's. Thuật toán chữ ký và thuật toán băm trong SignerInfo chỉ định các hàm băm khác nhau; chữ ký được tạo bằng thuật toán của SignerInfo. + The signature carries an unverified timestamp ({}): the timestamp authority is not in your list of trusted certificates, so the signing time claimed by the signer is used instead. Chữ ký mang dấu thời gian chưa được xác minh ({}): cơ quan dấu thời gian không có trong danh sách chứng thư tin cậy của bạn, nên thời điểm ký mà người ký tuyên bố sẽ được dùng thay thế. + The signature contents are not hexadecimal. Nội dung chữ ký không phải là mã thập lục phân. + The signature could not be checked ({}). Không thể kiểm tra chữ ký ({}). + The signature could not be read ({}). Không thể đọc chữ ký ({}). + The signature could not be verified ({}). Không thể xác minh chữ ký ({}). + The signature has no valid byte range. Chữ ký không có phạm vi byte hợp lệ. + The signature includes an embedded timestamp. Chữ ký có chứa dấu thời gian nhúng. + The signature is BER-encoded (indefinite lengths) rather than DER; it was read leniently. Chữ ký được mã hóa theo BER (độ dài không xác định) thay vì DER; nó được đọc theo cách dễ dãi hơn. + The signature uses the legacy adbe.x509.rsa_sha1 format. Chữ ký dùng định dạng cũ adbe.x509.rsa_sha1. + The signature value does not match the signer's certificate: the signature is corrupt. Giá trị chữ ký không khớp với chứng thư của người ký: chữ ký bị hỏng. + The signature's byte range does not exclude exactly its contents. Phạm vi byte của chữ ký không loại trừ chính xác nội dung của nó. + The signature's byte range does not match the file. Phạm vi byte của chữ ký không khớp với tệp. + The signature's timestamp token could not be verified ({}). Không thể xác minh mã thông báo dấu thời gian của chữ ký ({}). + The signature's timestamp token does not cover the signature value. Mã thông báo dấu thời gian của chữ ký không bao phủ giá trị chữ ký. + The signed content is a constructed (segmented) OCTET STRING, as BER allows; it was read anyway. Nội dung được ký là một OCTET STRING dựng thành (phân đoạn), như BER cho phép; nó vẫn được đọc. + The signer's certificate does not allow digital signatures (its key usage has neither digital signature nor non-repudiation). Chứng thư của người ký không cho phép chữ ký số (mục đích sử dụng khóa của nó không có chữ ký số cũng không có chống thoái chối). + The signer's certificate has been revoked ({}). Chứng thư của người ký đã bị thu hồi ({}). + The signer's certificate has critical extensions PdfCraft does not recognize ({}). Chứng thư của người ký có các phần mở rộng quan trọng mà PdfCraft không nhận ra ({}). + The signer's certificate is not in the signature. Chứng thư của người ký không có trong chữ ký. + The signer's certificate is not issued for signing documents (its extended key usage has no document-signing purpose). Chứng thư của người ký không được cấp để ký tài liệu (mục đích sử dụng khóa mở rộng của nó không có mục đích ký tài liệu). + The signer's certificate was not valid at the time of signing. Chứng thư của người ký không hợp lệ tại thời điểm ký. + The signer's identity is unknown because it has not been included in your list of trusted certificates and none of its parent certificates are trusted certificates. Danh tính của người ký không xác định vì nó không có trong danh sách chứng thư tin cậy của bạn và không chứng thư cha nào của nó là chứng thư tin cậy. + The signer's identity is valid. Danh tính của người ký hợp lệ. + The timestamp authority's certificate was not valid at the time of timestamping. Chứng thư của cơ quan dấu thời gian không hợp lệ tại thời điểm đóng dấu thời gian. + The timestamp contents are not hexadecimal. Nội dung dấu thời gian không phải là mã thập lục phân. + The timestamp has no valid byte range. Dấu thời gian không có phạm vi byte hợp lệ. + The timestamp token could not be read ({}). Không thể đọc mã thông báo dấu thời gian ({}). + The timestamp token is valid and its authority is trusted. Mã thông báo dấu thời gian hợp lệ và cơ quan của nó được tin cậy. + The timestamp token is valid, but the timestamp authority is not in your list of trusted certificates. Mã thông báo dấu thời gian hợp lệ, nhưng cơ quan dấu thời gian không có trong danh sách chứng thư tin cậy của bạn. + The timestamp's byte range does not exclude exactly its contents. Phạm vi byte của dấu thời gian không loại trừ chính xác nội dung của nó. + The timestamp's byte range does not match the file. Phạm vi byte của dấu thời gian không khớp với tệp. + The window shows the file name, not the title (Initial View > Show) Cửa sổ hiển thị tên tệp chứ không phải tiêu đề (Initial View > Show) + There is no folder to save the digital ID in. Không có thư mục nào để lưu ID số. + This document has not been modified since this signature was applied. Tài liệu này chưa bị sửa đổi kể từ khi chữ ký này được áp dụng. + This document has not been modified since this timestamp was applied. Tài liệu này chưa bị sửa đổi kể từ khi dấu thời gian này được áp dụng. + This signature uses RIPEMD-160, a legacy 160-bit hash algorithm that is no longer recommended for signatures. It still validates, but it should not be relied on. Chữ ký này dùng RIPEMD-160, thuật toán băm 160 bit cũ không còn được khuyến nghị cho chữ ký. Nó vẫn hợp lệ, nhưng không nên tin dựa vào nó. + This signature uses SHA-1, a weak hash algorithm: collisions in it have been demonstrated. It still validates because many documents signed years ago use it, but it should not be relied on. Chữ ký này dùng SHA-1, một thuật toán băm yếu: đã chứng minh được sự trùng lặp trong đó. Nó vẫn hợp lệ vì nhiều tài liệu ký từ nhiều năm trước dùng nó, nhưng không nên tin dựa vào nó. + Undo {action} Hoàn tác {action} + Unsigned signature field Ô chữ ký chưa ký + Unsigned signature field: {name} Ô chữ ký chưa ký: {name} + Zoom in (⌘+) Thu phóng vào (⌘+) + Zoom in / out (also pinch or ⌘-scroll) Thu phóng vào / ra (cũng có thể dùng hai ngón tay vuốt hoặc cuộn bằng ⌘) + Zoom out (⌘−) Thu phóng ra (⌘−) + alternate text hides an annotation inside it văn bản thay thế che khuất một chú thích bên trong + alternate text on an element with no page content văn bản thay thế trên một phần tử không có nội dung trang + comments bình luận + document security store kho bảo mật của tài liệu + document structure cấu trúc tài liệu + form fill điền biểu mẫu + its alternate text is inside another element's and will never be read văn bản thay thế của nó nằm bên trong văn bản thay thế của phần tử khác và sẽ không bao giờ được đọc + links liên kết + metadata siêu dữ liệu + no alternate text không có văn bản thay thế + no header cells (TH) không có ô tiêu đề (TH) + no summary không có tóm tắt + not in a TR không nằm trong TR + not in a Table, THead, TBody or TFoot không nằm trong Table, THead, TBody hoặc TFoot + not in an L (list) không nằm trong L (danh sách) + not in an LI (list item) không nằm trong LI (mục danh sách) + other changes thay đổi khác + page content nội dung trang + page {n} is out of range (1–{count}) trang {n} nằm ngoài phạm vi (1–{count}) + pages added or removed trang được thêm hoặc bị xóa + rows have between {min} and {max} columns các hàng có từ {min} đến {max} cột + the first heading is an H{n}; headings should not skip levels tiêu đề đầu tiên là một H{n}; các tiêu đề không nên bỏ qua cấp độ + the signed version could not be read không thể đọc phiên bản đã ký + {n} pages and no bookmarks {n} trang và không có dấu trang + {page} is not a page number or label {page} không phải là số trang hoặc nhãn trang + {ty} element on page {p}: {what} phần tử {ty} trên trang {p}: {what} + {ty} element: {what} phần tử {ty}: {what} + {who}, certificate issued by an unknown issuer. {who}, chứng thư do một cơ quan cấp không xác định. + {who}, certificate issued by {issuer}. {who}, chứng thư do {issuer} cấp. + {} annotation on page {p} isn't tagged chú thích {} trên trang {p} chưa được gắn thẻ + {} annotations aren't allowed không cho phép chú thích {} + … and {n} more … và {n} nữa +@plural Delete {n} field|Delete {n} fields Xóa {n} ô +@plural {n} byte|{n} bytes {n} byte +@plural {n} image optimized|{n} images optimized Đã tối ưu {n} hình ảnh +@plural {n} item discarded|{n} items discarded Đã loại bỏ {n} mục +@plural {n} pixel|{n} pixels {n} pixel +action wizard Start Bắt đầu +comment menu Edit Chỉnh sửa + A button Một nút + A diagonal CONFIDENTIAL watermark on every page. Hình mờ chéo CONFIDENTIAL trên mọi trang. + A document needs at least one page: copy instead Một tài liệu cần có ít nhất một trang: hãy sao chép + A form field has additional actions Một ô biểu mẫu có hành động bổ sung + A link Một liên kết + A script Một kịch bản + A selected field has no widget on any page, so the fields can't be edited together. Ô đã chọn không có điều khiển trên bất kỳ trang nào, vì vậy không thể chỉnh sửa các ô cùng lúc. + A stream refers to an external file Một luồng tham chiếu đến một tệp bên ngoài + A stream uses LZW compression Một luồng dùng nén LZW + A summary describes the table's purpose and layout. Add a Summary attribute to each table. Phần tóm tắt mô tả mục đích và bố cục của bảng. Hãy thêm thuộc tính Summary cho mỗi bảng. + About Giới thiệu + Accepted Đã chấp nhận + Accessibility permission flag Cờ quyền trợ năng + Accessibility permission flag is set Cờ quyền trợ năng đã được đặt + Add Page Numbers Thêm số trang + Add arrow Thêm mũi tên + Add background Thêm nền + Add bookmark Thêm dấu trang + Add callout Thêm hộp thoại chú thích + Add checkmark Thêm dấu kiểm + Add cloud Thêm đám mây + Add connected lines Thêm đường nối + Add cross Thêm chữ thập + Add dot Thêm chấm + Add drawing Thêm hình vẽ + Add field Thêm ô + Add file attachment Thêm tệp đính kèm + Add footer Thêm chân trang + Add header Thêm đầu trang + Add header & footer Thêm đầu trang & chân trang + Add highlight Thêm tô sáng + Add image Thêm hình ảnh + Add inserted text Thêm văn bản đã chèn + Add line Thêm đường thẳng + Add link Thêm liên kết + Add oval Thêm hình bầu dục + Add polygon Thêm đa giác + Add rectangle Thêm hình chữ nhật + Add redaction mark Thêm dấu loại bỏ nội dung + Add signature Thêm chữ ký + Add squiggly underline Thêm gạch chân gợn sóng + Add stamp Thêm con dấu + Add sticky note Thêm ghi chú dính + Add strikethrough Thêm gạch ngang + Add text box Thêm hộp văn bản + Add underline Thêm gạch chân + Add watermark Thêm hình mờ + Add {what} Thêm {what} + Added the first {n} files in {folder} Đã thêm {n} tệp đầu tiên trong {folder} + Adding images arrives on the web with file pickers for images Thêm hình ảnh sẽ có trên web cùng với bộ chọn tệp cho hình ảnh + Algorithm Thuật toán + Align fields Căn các ô + All annotations are tagged Tất cả chú thích đều được gắn thẻ + All form fields are tagged Tất cả ô biểu mẫu đều được gắn thẻ + All form fields have description Tất cả ô biểu mẫu đều có mô tả + All multimedia objects are tagged Tất cả đối tượng đa phương tiện đều được gắn thẻ + All page content is tagged Tất cả nội dung trang đều được gắn thẻ + Allowed Được phép + Alternate Text Văn bản thay thế + Alternate text inside an element that already has alternate text is never read. Remove the inner alternate text. Văn bản thay thế bên trong một phần tử đã có văn bản thay thế sẽ không bao giờ được đọc. Hãy xóa văn bản thay thế bên trong. + Alternate text must be associated with some content Văn bản thay thế phải được liên kết với nội dung nào đó + Alternate text on an element that contains a link or field hides that annotation from assistive technology. Move the alternate text. Văn bản thay thế trên một phần tử chứa liên kết hoặc ô sẽ che khuất chú thích đó khỏi công nghệ trợ giúp. Hãy chuyển văn bản thay thế. + Alternate text on an element without page content is never reached. Remove it or attach the element to content. Văn bản thay thế trên một phần tử không có nội dung trang sẽ không bao giờ được tiếp cận. Hãy xóa nó hoặc gắn phần tử vào nội dung. + Alternate text should not hide annotation Văn bản thay thế không nên che khuất chú thích + Alternate text that will never be read Văn bản thay thế sẽ không bao giờ được đọc + An action is already running Một hành động đang chạy + An embedded file has no AFRelationship Một tệp nhúng không có AFRelationship + An image asks to be interpolated Một hình ảnh yêu cầu nội suy + An image has alternates or OPI information Một hình ảnh có thông tin thay thế hoặc OPI + Animation that flashes can cause seizures. Check scripts and media for flicker. Hoạt hình nhấp nháy có thể gây co giật. Hãy kiểm tra kịch bản và nội dung đa phương tiện xem có nhấp nháy không. + Another file dialog is still open. Finish with it first. Hộp thoại tệp khác vẫn đang mở. Hãy hoàn tất nó trước. + Application Ứng dụng + Applied 1 redaction mark. Save to remove the content from the file. Đã áp dụng 1 dấu loại bỏ nội dung. Hãy lưu để xóa nội dung khỏi tệp. + Applied {n} redaction marks. Save to remove the content from the file. Đã áp dụng {n} dấu loại bỏ nội dung. Hãy lưu để xóa nội dung khỏi tệp. + Appropriate nesting Lồng nhau phù hợp + Arbitrary Mask Mặt nạ tùy ý + Associated with content Được liên kết với nội dung + At least one signature has problems. Có ít nhất một chữ ký gặp vấn đề. + At least one signature is invalid. Có ít nhất một chữ ký không hợp lệ. + Attachment Tệp đính kèm + Basic constraints Ràng buộc cơ bản + Beveled Vát cạnh + Black Đen + Black on white Đen trên nền trắng + Blue Xanh dương + Bookmarks are present in large documents Có dấu trang trong tài liệu lớn + Both Cả hai + Button Properties Thuộc tính nút + Button Style: Kiểu nút: + Calculate Tính toán + Callout Hộp thoại chú thích + Cancelled Đã hủy + Center Footer Text Căn giữa văn bản chân trang + Center Header Text Căn giữa văn bản đầu trang + Center horizontally Căn giữa theo chiều ngang + Center vertically Căn giữa theo chiều dọc + Certificate Viewer Trình xem chứng thư + Certified by {by} Được chứng nhận bởi {by} + Change comment properties Thay đổi thuộc tính bình luận + Change document properties Thay đổi thuộc tính tài liệu + Change field properties Thay đổi thuộc tính ô + Change initial view Thay đổi chế độ xem ban đầu + Change link properties Thay đổi thuộc tính liên kết + Change tag properties Thay đổi thuộc tính thẻ + Change {key} Thay đổi {key} + Changing the document Đang thay đổi tài liệu + Character encoding Bảng mã ký tự + Character limit: Giới hạn ký tự: + Check Kiểm tra + Check Box Properties Thuộc tính ô chọn + Check Box Style: Kiểu ô chọn: + Check that the tags read in the order a sighted reader would. Use the Reading Order tool or the Tags panel to correct it. Kiểm tra xem các thẻ có được đọc theo thứ tự mà người đọc bình thường sẽ đọc không. Hãy dùng công cụ Thứ tự đọc hoặc bảng Thẻ để sửa lại. + CheckBox CheckBox + Checked Đã chọn + Choose a folder for the split files Chọn thư mục cho các tệp đã tách + Choose a folder on this computer to pin Chọn một thư mục trên máy tính này để ghim + Click on the page to add a {tool}, or drag to set its size Nhấp vào trang để thêm {tool}, hoặc kéo để đặt kích thước + Click text or an image to edit it Nhấp vào văn bản hoặc hình ảnh để chỉnh sửa + Color Images Ảnh màu + Color Spaces Không gian màu + Color contrast Độ tương phản màu + Comb of characters Lược răng cưa ký tự + Combo Combo + Coming in milestone {m}. Items marked Ready work today. Sẽ có trong mốc {m}. Các mục được đánh dấu Ready đã hoạt động. + Command Lệnh + Commenting Bình luận + Comments and markups Bình luận và chú thích + Comments, links and fields must be in the tag tree to be announced. Tag the annotations. Bình luận, liên kết và ô phải nằm trong cây thẻ thì mới được thông báo. Hãy gắn thẻ cho các chú thích. + Completed Đã hoàn thành + Configure a Digital ID for Signing Cấu hình ID số để ký + Connected lines Đường nối + Content Streams Luồng nội dung + Content copying Sao chép nội dung + Content copying for accessibility Sao chép nội dung cho trợ năng + Contributors Người đóng góp + Copied {what} Đã sao chép {what} + Copy or cut pages first Hãy sao chép hoặc cắt trang trước + Could not save: {e} Không thể lưu: {e} + Couldn't add {name}: {e} Không thể thêm {name}: {e} + Couldn't combine files: {e} Không thể kết hợp tệp: {e} + Couldn't create a PDF: {e} Không thể tạo tệp PDF: {e} + Couldn't download {name}: {e} Không thể tải xuống {name}: {e} + Couldn't extract pages: {e} Không thể trích xuất trang: {e} + Couldn't fit the visible content: {e} Không thể vừa với nội dung hiển thị: {e} + Couldn't follow linked PDF: {reason} Không thể mở tệp PDF được liên kết: {reason} + Couldn't import the signature image: {e} Không thể nhập hình ảnh chữ ký: {e} + Couldn't open revision {n}: {e} Không thể mở bản sửa đổi {n}: {e} + Couldn't open the result: {e} Không thể mở kết quả: {e} + Couldn't open the signed version: {e} Không thể mở phiên bản đã ký: {e} + Couldn't open {name}: {e} Không thể mở {name}: {e} + Couldn't optimize the file Không thể tối ưu tệp + Couldn't optimize the file: {e} Không thể tối ưu tệp: {e} + Couldn't print from the browser ({e}); downloaded {name} to print instead Không thể in từ trình duyệt ({e}); đã tải xuống {name} để in thay thế + Couldn't read {name}: {e} Không thể đọc {name}: {e} + Couldn't recover {name}: {e} Không thể khôi phục {name}: {e} + Couldn't reload {name}: {e} Không thể tải lại {name}: {e} + Couldn't save the image: {e} Không thể lưu hình ảnh: {e} + Couldn't save {name}: {e} Không thể lưu {name}: {e} + Couldn't save: {e} Không thể lưu: {e} + Couldn't show the file picker. Please try again. Không thể hiển thị bộ chọn tệp. Vui lòng thử lại. + Couldn't split: {e} Không thể tách: {e} + Couldn't summarize comments: {e} Không thể tóm tắt bình luận: {e} + Couldn't take the snapshot: {e} Không thể chụp ảnh chụp màn hình: {e} + Couldn't unlock {name}: {e} Không thể mở khóa {name}: {e} + Couldn't use the photo: {e} Không thể dùng ảnh: {e} + Couldn't use {name}: {e} Không thể dùng {name}: {e} + Couldn't write {name}: {e} Không thể ghi {name}: {e} + Couldn't write {path}: {e} Không thể ghi {path}: {e} + Create link Tạo liên kết + Created 1 link Đã tạo 1 liên kết + Created a PDF from the first {n} files Đã tạo PDF từ {n} tệp đầu tiên + Created a comment summary Đã tạo bản tóm tắt bình luận + Created {n} links Đã tạo {n} liên kết + Credit Cards Thẻ tín dụng + Crop page Cắt trang + Custom font Phông chữ tùy chỉnh + Custom stamps arrive on the web with file pickers for images Con dấu tùy chỉnh sẽ có trên web kèm bộ chọn tệp cho hình ảnh + Cut {what} Cắt {what} + Dark gray theme Giao diện màu xám đậm + Dashed Nét đứt + Dates Ngày tháng + Delete bookmark Xóa dấu trang + Delete content Xóa nội dung + Delete document JavaScript Xóa JavaScript của tài liệu + Delete field Xóa ô + Delete image Xóa hình ảnh + Delete link Xóa liên kết + Delete page Xóa trang + Delete selected fields Xóa các ô đã chọn + Deleted Đã xóa + Detected 1 form field Đã phát hiện 1 ô biểu mẫu + Detected {n} form fields Đã phát hiện {n} ô biểu mẫu + Device colour is used, but there is no PDF/A output intent Đang dùng màu thiết bị, nhưng không có ý định đầu ra PDF/A + DeviceCMYK is used: it needs a CMYK output intent (not added automatically) Đang dùng DeviceCMYK: cần có ý định đầu ra CMYK (không được thêm tự động) + Diagnostic details Chi tiết chẩn đoán + Digital Signature Properties Thuộc tính chữ ký số + Discard all comments, forms and multimedia Loại bỏ mọi bình luận, biểu mẫu và đa phương tiện + Discard all links, actions and JavaScript Loại bỏ mọi liên kết, hành động và JavaScript + Discard all object data (file attachments) Loại bỏ mọi dữ liệu đối tượng (tệp đính kèm) + Discard bookmarks Loại bỏ dấu trang + Discard document information and metadata Loại bỏ thông tin tài liệu và siêu dữ liệu + Discard hidden layer content Loại bỏ nội dung lớp ẩn + Discard hidden text Loại bỏ văn bản ẩn + Discard private data of other applications Loại bỏ dữ liệu riêng tư của ứng dụng khác + Distribute fields Phân bố các ô + Document Overhead Dung lượng tăng thêm + Document assembly Ghép tài liệu + Document has appropriate color contrast Tài liệu có độ tương phản màu phù hợp + Document is not image-only PDF Tài liệu không phải là PDF chỉ gồm hình ảnh + Document is tagged PDF Tài liệu là PDF đã gắn thẻ + Document sanitized. Save to finish: saving rewrites the whole file. Đã làm sạch tài liệu. Hãy Lưu để hoàn tất: việc lưu sẽ ghi lại toàn bộ tệp. + Document structure provides a logical reading order Cấu trúc tài liệu cung cấp thứ tự đọc hợp lý + Document title is showing in title bar Tiêu đề tài liệu đang hiển thị trên thanh tiêu đề + Documents of more than 20 pages need bookmarks for navigation. Add bookmarks for the main sections. Tài liệu trên 20 trang cần dấu trang để điều hướng. Hãy thêm dấu trang cho các phần chính. + Double-click Nhấp đúp + Downloaded {name} Đã tải xuống {name} + Downloading attachments on the web arrives with M3.10 ({n} bytes ready) Tải xuống tệp đính kèm trên web sẽ có trên web kèm M3.10 ({n} byte đã sẵn sàng) + Drag a rectangle around the area to copy Kéo một hình chữ nhật bao quanh vùng cần sao chép + Drag a rectangle on a page to crop it; double-click a page for Set Page Boxes Kéo một hình chữ nhật trên trang để cắt; nhấp đúp vào một trang để đặt Hộp trang + Drag a rectangle to create a link; double-click a link to edit it Kéo một hình chữ nhật để tạo liên kết; nhấp đúp vào một liên kết để chỉnh sửa + Drag the corners onto the document's edges, then choose Enhance page. Kéo các góc vào mép của tài liệu, rồi chọn Cải thiện trang. + Drag to draw the area where the signature should appear. Kéo để vẽ vùng nơi chữ ký sẽ xuất hiện. + Dropdown Properties Thuộc tính danh sách thả xuống + Duplicate field Nhân bản ô + Duplicate page Nhân bản trang + Each field needs a tooltip that says what to enter. Add one in Field Properties > General > Tooltip. Mỗi ô cần một chú thích cho biết cần nhập gì. Hãy thêm một chú thích trong Thuộc tính ô > Chung > Chú thích. + Edit comment Chỉnh sửa bình luận + Edit content Chỉnh sửa nội dung + Edit document JavaScript Chỉnh sửa JavaScript của tài liệu + Edit fields Chỉnh sửa các ô + Edit script of {name} Chỉnh sửa script của {name} + Edit text Chỉnh sửa văn bản + Editing Đang chỉnh sửa + Email Addresses Địa chỉ email + Embedded Files Tệp nhúng + Embedded files must be PDF/A files themselves (use PDF/A-3 for others) Tệp nhúng phải là tệp PDF/A (dùng PDF/A-3 cho các tệp khác) + Encryption Mã hóa + Endpoint Điểm cuối + Erase Xóa + Eraser Tẩy + Even pages Trang chẵn + Everything on a page must be tagged or marked as an artifact (decoration, headers, footers). Tag the untagged content. Mọi thứ trên một trang phải được gắn thẻ hoặc đánh dấu là artifact (họa tiết, đầu trang, chân trang). Hãy gắn thẻ cho nội dung chưa gắn thẻ. + Execute a menu item Chạy một mục trình đơn + Export certificate Xuất chứng thư + Exported to {path} Đã xuất tới {path} + Extended Graphics States Trạng thái đồ họa mở rộng + Field Ô + Field descriptions Mô tả ô + Figures alternate text Văn bản thay thế cho hình + Figures require alternate text Hình cần văn bản thay thế + File attachments Tệp đính kèm + Files are combined in this order. Leave Pages empty to take every page. Các tệp được kết hợp theo thứ tự này. Hãy để trống Trang để lấy mọi trang. + Fill in {name} Điền vào {name} + Filling of form fields Điền các ô biểu mẫu + Flatten Làm phẳng + Flip image Lật hình ảnh + Fonts must map their characters to Unicode so text can be read and copied. Fix the fonts or recreate the PDF. Phông chữ phải ánh xạ ký tự của mình sang Unicode để văn bản có thể được đọc và sao chép. Hãy sửa phông chữ hoặc tạo lại PDF. + Form fields must be in the tag tree (Form tags) to be announced. Tag the form fields. Các ô biểu mẫu phải nằm trong cây thẻ (thẻ biểu mẫu) để được thông báo. Hãy gắn thẻ cho các ô biểu mẫu. + Formulas and similar non-text elements need alternate text. Add alternate text to them. Công thức và các phần tử không phải văn bản tương tự cần có văn bản thay thế. Hãy thêm văn bản thay thế cho chúng. + Gray Xám + Grayscale Images Ảnh xám + Green Xanh lá + Green on black Xanh lá trên nền đen + H / Space (hold) H / Space (giữ) + Header cells (TH) tell listeners what each column or row holds. Mark the header cells. Ô tiêu đề (TH) cho trình đọc biết mỗi cột hoặc hàng chứa gì. Hãy đánh dấu các ô tiêu đề. + Headers Đầu trang + Heading levels shouldn't skip (an H1 followed by an H3). Retag the headings. Cấp đề mục không nên bị bỏ qua (H1 sau đó là H3). Hãy gắn thẻ lại các đề mục. + Headings Đề mục + Hidden layers Các lớp ẩn + Hidden text Văn bản ẩn + Hide a field Ẩn một ô + Hides annotation Ẩn chú thích + High Cao + Home / End Home / End + Horizontally Theo chiều ngang + Image-only PDF PDF chỉ gồm hình ảnh + Import {name} Nhập {name} + Importing data arrives on the web with file pickers for data files Nhập dữ liệu sẽ có trên web kèm bộ chọn tệp cho tệp dữ liệu + Incorrect password. Try again. Mật khẩu không đúng. Hãy thử lại. + Insert pages from {name} Chèn trang từ {name} + Insert pages from {name} — 1 field renamed Chèn trang từ {name} — đã đổi tên 1 ô + Insert pages from {name} — fields renamed Chèn trang từ {name} — đã đổi tên các ô + Inserted Đã chèn + Inset Thu vào trong + Intended usage Mục đích sử dụng + Intersection Giao + Invert Đảo ngược + Irregular tables confuse cell navigation. Give every row the same number of cells (counting spans). Bảng không đều gây khó điều hướng giữa các ô. Hãy cho mỗi hàng cùng số ô (tính cả các ô đã gộp). + Issued by Cấp bởi + Issued to Cấp cho + Issuer Bên cấp + Key usage Mục đích sử dụng khóa + Keywords Từ khóa + LI must be a child of L LI phải là phần tử con của L + Landscape pages Trang ngang + Lbl and LBody Lbl và LBody + Lbl and LBody must be children of LI Lbl và LBody phải là phần tử con của LI + Left Footer Text Văn bản chân trang trái + Left Header Text Văn bản đầu trang trái + Light blue Xanh nhạt + Links, actions and JavaScripts Liên kết, hành động và JavaScript + List Danh sách + List Box Properties Thuộc tính hộp danh sách + List items Mục danh sách + List items belong in a list. Fix the list's tags. Các mục danh sách phải thuộc một danh sách. Hãy sửa lại thẻ của danh sách. + List labels and bodies belong in a list item. Fix the list's tags. Nhãn và phần thân của danh sách phải thuộc một mục danh sách. Hãy sửa lại thẻ của danh sách. + Lists Danh sách + Load document font Tải phông chữ của tài liệu + Local cross-PDF links require the desktop app Liên kết cục bộ giữa các PDF cần có ứng dụng máy tính + Lock comment Khóa bình luận + Logical Reading Order Thứ tự đọc hợp lý + Low Thấp + Make scans searchable, then make them smaller. Làm cho bản quét có thể tìm kiếm, rồi làm cho chúng nhỏ hơn. + Mark all Đánh dấu tất cả + Mark as Confidential Đánh dấu là Mật + Mark differences Đánh dấu khác biệt + Mark figure as decorative Đánh dấu hình là trang trí + Mark for redaction Đánh dấu để loại bỏ nội dung + Mark pages for redaction Đánh dấu trang để loại bỏ nội dung + Match field sizes Khớp kích thước ô + Maximum Tối đa + Measuring tool Công cụ đo + Merged 1 file into {path} Đã hợp nhất 1 tệp vào {path} + Merged {n} files into {path} Đã hợp nhất {n} tệp vào {path} + Merging data files needs the desktop app Hợp nhất tệp dữ liệu cần có ứng dụng máy tính + Metadata Siêu dữ liệu + Midpoint Điểm giữa + Minimum Tối thiểu + Models Mô hình + Mouse Down Nhấn chuột xuống + Mouse Enter Chuột đi vào + Mouse Exit Chuột đi ra + Mouse Up Nhả chuột + Move bookmark Di chuyển dấu trang + Move comment Di chuyển bình luận + Move image Di chuyển hình ảnh + Move page Di chuyển trang + Move pages Di chuyển các trang + Named Destinations Đích đến có tên + Navigation links Liên kết điều hướng + Navigation links are not repetitive Liên kết điều hướng không bị lặp lại + Nested alternate text Văn bản thay thế lồng nhau + New {tool} comments will look like this one Các bình luận {tool} mới sẽ trông giống như bình luận này + No PDFs, images or text files found in {folder} Không tìm thấy PDF, hình ảnh hoặc tệp văn bản nào trong {folder} + No form fields were detected Không phát hiện ô biểu mẫu nào + No inaccessible scripts Không có script không thể truy cập + No links to remove Không có liên kết nào để gỡ bỏ + No pages match those choices Không có trang nào khớp với những lựa chọn đó + No unlinked web addresses were found in the text Không tìm thấy địa chỉ web chưa liên kết nào trong văn bản + None of those files can be made into a PDF; use PDFs, images or .txt files Không tệp nào trong số đó có thể tạo thành PDF; hãy dùng PDF, hình ảnh hoặc tệp .txt + Note Ghi chú + Number every page in the footer. Đánh số mọi trang trong chân trang. + Odd pages Trang lẻ + On Blur Khi mất tiêu điểm + On Focus Khi nhận tiêu điểm + On the web, open or drop an image to convert it Trên web, hãy mở hoặc thả một hình ảnh để chuyển đổi + Open a web link Mở một liên kết web + Opened with Được mở bằng + Opening the browser's print dialog… Đang mở hộp thoại in của trình duyệt… + Optimization cancelled Đã hủy tối ưu + Optimization is already running Tối ưu đang chạy + Optimize Scanned Documents Tối ưu tài liệu đã quét + Options Tùy chọn + Orange Cam + Other elements alternate text Văn bản thay thế cho phần tử khác + Other elements that require alternate text Phần tử khác cần văn bản thay thế + Outline Đề mục + PDF producer Trình tạo PDF + PDF version Phiên bản PDF + Page Content Nội dung trang + Page Range Phạm vi trang + Page does not require timed responses Trang không yêu cầu phản hồi có thời hạn + Page thumbnails Hình thu nhỏ của trang + Page will not cause screen flicker Trang sẽ không gây nhấp nháy màn hình + Pages that are only pictures of text can't be read aloud or searched. Recognize text (OCR) to add a text layer. Các trang chỉ là hình ảnh của chữ sẽ không thể đọc thành tiếng hoặc tìm kiếm. Hãy nhận dạng văn bản (OCR) để thêm một lớp văn bản. + Pages with links, comments or fields should tab in structure order. The fix sets each page's tab order to Use Document Structure. Các trang có liên kết, bình luận hoặc ô nên đi theo thứ tự cấu trúc khi dùng phím Tab. Cách sửa sẽ đặt thứ tự Tab của từng trang thành Dùng cấu trúc tài liệu. + Passed Đạt + Password protection will be applied when you save Bảo vệ bằng mật khẩu sẽ được áp dụng khi bạn lưu + Path Đường dẫn + PdfCraft is drawing without a graphics processor, so it may be slow. Updating the graphics driver may help. PdfCraft đang vẽ mà không có bộ xử lý đồ họa nên có thể sẽ chậm. Cập nhật trình điều khiển đồ họa có thể hữu ích. + People may need more time to respond. Check that nothing has a time limit. Mọi người có thể cần thêm thời gian để phản hồi. Hãy kiểm tra xem có gì đang giới hạn thời gian không. + Phone Number Số điện thoại + Phone Numbers Số điện thoại + Pictures need alternate text that describes them, or must be marked decorative. Add alternate text to each figure. Hình ảnh cần có văn bản thay thế mô tả chúng, hoặc phải được đánh dấu là trang trí. Hãy thêm văn bản thay thế cho từng hình. + Pink Hồng + Pinned folders need the desktop app Các thư mục đã ghim cần có ứng dụng máy tính + Pinned {folder} to Home Đã ghim {folder} vào Trang chủ + Place saved {what} Vị trí đã lưu {what} + Planned for milestone {m} — open to see what it will include Dự kiến cho cột mốc {m} — mở để xem nó sẽ bao gồm gì + Planned · {m} Dự kiến · {m} + Polygon Đa giác + Polyline Đường gấp khúc + Portable mode is off: {folder} can't be written ({error}). Settings are kept in your user folder instead. Chế độ di động đang tắt: không thể ghi vào {folder} ({error}). Cài đặt được giữ trong thư mục người dùng của bạn. + Portrait pages Trang dọc + Position Vị trí + PostScript XObjects aren't allowed Không cho phép XObject PostScript + Prepare for Distribution Chuẩn bị phát hành + Preparing sheet {done} of {total} for printing… Đang chuẩn bị tờ {done} trên {total} để in… + Preparing {n} sheets for printing… Đang chuẩn bị {n} tờ để in… + Primary language Ngôn ngữ chính + Printing In + Private data of other applications Dữ liệu riêng tư của ứng dụng khác + Public key Khóa công khai + Purple Tím + PushButton PushButton + Radio Radio + Radio Button Properties Thuộc tính nút radio + Re-type Password Nhập lại mật khẩu + Red Đỏ + Redid {label} Đã làm lại {label} + Regularity Đều đặn + Rejected Bị từ chối + Reliable character encoding is provided Có mã hóa ký tự đáng tin cậy + Remove hidden information and flatten comments and form fields, so recipients see only the pages. Loại bỏ thông tin ẩn và làm phẳng bình luận cùng các ô biểu mẫu, để người nhận chỉ thấy các trang. + Remove hidden information, metadata, scripts and embedded content, and rewrite the files. Loại bỏ thông tin ẩn, siêu dữ liệu, script và nội dung nhúng, rồi ghi lại các tệp. + Remove redaction marks Gỡ bỏ dấu đánh dấu loại bỏ nội dung + Remove saved {what} Gỡ bỏ {what} đã lưu + Removed 1 hidden item. Save to remove them from the file. Đã gỡ bỏ 1 mục ẩn. Hãy Lưu để xóa chúng khỏi tệp. + Removed 1 link Đã gỡ bỏ 1 liên kết + Removed {n} hidden items. Save to remove them from the file. Đã gỡ bỏ {n} mục ẩn. Hãy Lưu để xóa chúng khỏi tệp. + Removed {n} links Đã gỡ bỏ {n} liên kết + Rename bookmark Đổi tên dấu trang + Rendering: hayro (bootstrap) · UI: egui · Icons: Lucide (ISC) · Fonts: Inter, JetBrains Mono, Dancing Script (OFL) Kết xuất: hayro (bootstrap) · Giao diện: egui · Biểu tượng: Lucide (ISC) · Phông chữ: Inter, JetBrains Mono, Dancing Script (OFL) + Repairs Sửa chữa + Repeated navigation links should be skippable. Check links that appear on every page. Các liên kết điều hướng lặp lại nên có thể bỏ qua. Hãy kiểm tra các liên kết xuất hiện trên mọi trang. + Replace page Thay trang + Replace pages Thay các trang + Replaced Đã thay thế + Replacing images arrives on the web with image file pickers Thay hình ảnh sẽ có trên web kèm bộ chọn tệp hình ảnh + Replacing images on page {p} arrives on the web with image pickers ({i}) Thay hình ảnh trên trang {p} sẽ có trên web kèm bộ chọn hình ảnh ({i}) + Report Options Tùy chọn báo cáo + Reset a form Đặt lại biểu mẫu + Resize comment Đổi kích thước bình luận + Restrictions Hạn chế + Restrictions lifted Đã gỡ bỏ hạn chế + Reverted to the last saved version Đã hoàn nguyên về phiên bản đã lưu gần nhất + Right Footer Text Văn bản chân trang phải + Right Header Text Văn bản đầu trang phải + Rotate image Xoay hình ảnh + Rotate page Xoay trang + Rotate page {label} clockwise Xoay trang {label} theo chiều kim đồng hồ + Rotate page {label} counterclockwise Xoay trang {label} ngược chiều kim đồng hồ + Rows Các hàng + Run Chạy + Run JavaScript Chạy JavaScript + Run a JavaScript Chạy một JavaScript + Run form script Chạy script của biểu mẫu + SHA-1 digest Giá trị băm SHA-1 + SHA-256 digest Giá trị băm SHA-256 + Sanitize Làm sạch + Sanitize Documents Làm sạch tài liệu + Save as PDF/A-1b Lưu thành PDF/A-1b + Save as PDF/A-2b Lưu thành PDF/A-2b + Save as PDF/A-3b Lưu thành PDF/A-3b + Save image Lưu hình ảnh + Save or revert changes before selecting another tag. Hãy lưu hoặc hoàn nguyên thay đổi trước khi chọn thẻ khác. + Saved the print-ready PDF to {path} Đã lưu PDF sẵn sàng in vào {path} + Saved {name} Đã lưu {name} + Saved {place}: {before} → {after} (not smaller){detail} Đã lưu {place}: {before} → {after} (không nhỏ hơn){detail} + Saved {place}: {before} → {after} ({pct}% smaller){detail} Đã lưu {place}: {before} → {after} (nhỏ hơn {pct}%){detail} + Saved, but reopening failed: {e} Đã lưu, nhưng mở lại không thành công: {e} + Screen flicker Nhấp nháy màn hình + Screen readers choose their voice from the document's language. Set it in Document Properties > Advanced > Language. Trình đọc màn hình chọn giọng đọc theo ngôn ngữ của tài liệu. Hãy đặt trong Thuộc tính tài liệu > Nâng cao > Ngôn ngữ. + Scripted content must be usable with a keyboard and assistive technology. Check the document's scripts. Nội dung có script phải dùng được với bàn phím và công nghệ trợ giúp. Hãy kiểm tra các script của tài liệu. + Scripts Script + Scripts run in a sandbox without file or network access. With JavaScript off, Acrobat's standard format, validate and calculate functions still work. Script chạy trong hộp cát không có quyền truy cập tệp hay mạng. Khi tắt JavaScript, các hàm format, validate và calculate tiêu chuẩn của Acrobat vẫn hoạt động. + Security method Phương thức bảo mật + Security settings must allow assistive technology to read the content ("Enable text access for screen reader devices"). Change the document's security to allow it. Cài đặt bảo mật phải cho phép công nghệ trợ giúp đọc nội dung ("Bật truy cập văn bản cho thiết bị trình đọc màn hình"). Hãy thay đổi bảo mật của tài liệu để cho phép điều đó. + Security will be removed when you save Bảo mật sẽ được gỡ bỏ khi bạn lưu + Self-signed Tự ký + Serial number Số sê-ri + Set alternate text Đặt văn bản thay thế + Set bookmark destination Đặt đích đến dấu trang + Set document title Đặt tiêu đề tài liệu + Set status Accepted Đặt trạng thái Đã chấp nhận + Set status Cancelled Đặt trạng thái Đã hủy + Set status Completed Đặt trạng thái Đã hoàn thành + Set status None Đặt trạng thái Không có + Set status Rejected Đặt trạng thái Bị từ chối + Set status Unmarked Đặt trạng thái Chưa đánh dấu + Set tab order Đặt thứ tự Tab + Set the image of {name} Đặt hình ảnh cho {name} + Shadings Màu tô + Show a field Hiện một ô + Sign with a Digital ID Ký bằng Danh tính kỹ thuật số + Signed and all signatures are valid. Đã ký và mọi chữ ký đều hợp lệ. + Signed and saved to {path} Đã ký và lưu vào {path} + Signer Người ký + Signing time Thời điểm ký + Social Security Number Số an sinh xã hội + Social Security Numbers Số an sinh xã hội + Solid Nét liền + Squiggly Nét gợn sóng + Star Hình sao + Strong Đậm + Structure Info Thông tin cấu trúc + Submit a form Gửi biểu mẫu + TH and TD TH và TD + TH and TD must be children of TR TH và TD phải là phần tử con của TR + TR must be a child of Table, THead, TBody, or TFoot TR phải là phần tử con của Table, THead, TBody hoặc TFoot + Tab order Thứ tự Tab + Tab order is consistent with structure order Thứ tự Tab nhất quán với thứ tự cấu trúc + Table cells belong in a row. Fix the table's tags. Ô bảng phải nằm trong một hàng. Hãy sửa các thẻ của bảng. + Table rows belong directly in a table or its head, body or foot. Fix the table's tags. Hàng bảng phải nằm trực tiếp trong bảng hoặc phần đầu, thân hoặc chân của bảng. Hãy sửa các thẻ của bảng. + Tables Bảng + Tables must contain the same number of columns in each row and rows in each column Mỗi hàng của bảng phải có cùng số cột và mỗi cột phải có cùng số hàng + Tables must have a summary Bảng phải có phần tóm tắt + Tables should have headers Bảng nên có hàng tiêu đề + Tagged PDF PDF có gắn thẻ + Tagged annotations Chú thích có gắn thẻ + Tagged content Nội dung có gắn thẻ + Tagged form fields Ô biểu mẫu có gắn thẻ + Tagged multimedia Nội dung đa phương tiện có gắn thẻ + Tags give the document a logical structure that assistive technology follows. Tag the document (Automatically tag PDF). Các thẻ giúp tài liệu có cấu trúc logic mà công nghệ trợ giúp có thể tuân theo. Hãy gắn thẻ cho tài liệu (Tự động gắn thẻ PDF). + Text Field Properties Thuộc tính ô văn bản + Text language is specified Đã chỉ định ngôn ngữ văn bản + Text must contrast enough with its background for people with low vision. Check the colours by eye or with a contrast tool. Văn bản phải tương phản đủ với nền của nó đối với người khiếm thị. Hãy kiểm tra màu bằng mắt hoặc bằng công cụ đo tương phản. + Text recognition is already running Nhận dạng văn bản đang chạy + Text recognition isn't installed: its models are missing (run `cargo xtask models`, or set PDFCRAFT_MODELS). Nhận dạng văn bản chưa được cài đặt: thiếu mô hình của nó (chạy `cargo xtask models`, hoặc đặt PDFCRAFT_MODELS). + That didn't work: an internal error stopped it ({m}). Không thực hiện được: một lỗi nội bộ đã dừng nó ({m}). + That didn't work: an internal error stopped it ({m}). Your documents are unchanged. Không thực hiện được: một lỗi nội bộ đã dừng nó ({m}). Tài liệu của bạn không thay đổi. + The Keychain's digital IDs couldn't be listed: {e} Không thể liệt kê các định danh số của Keychain: {e} + The Windows store's digital IDs couldn't be listed: {e} Không thể liệt kê các định danh số của kho Windows: {e} + The clipboard has no image or text Bảng nhớ tạm không có hình ảnh hay văn bản + The document changed while you were choosing a file, so nothing was changed. Tài liệu đã thay đổi trong khi bạn đang chọn tệp, nên không có gì được thay đổi. + The document changed while you were editing field properties. Tài liệu đã thay đổi trong khi bạn đang chỉnh sửa thuộc tính ô. + The document has additional actions (/AA) Tài liệu có các hành động bổ sung (/AA) + The document has document-level JavaScript Tài liệu có JavaScript ở cấp tài liệu + The document has no XMP metadata Tài liệu không có siêu dữ liệu XMP + The document is encrypted Tài liệu đã được mã hóa + The document is no longer open. Tài liệu không còn được mở. + The document was closed before it could be saved. Tài liệu đã đóng trước khi có thể lưu. + The document's security settings don't allow filling in form fields Cài đặt bảo mật của tài liệu không cho phép điền vào các ô biểu mẫu + The field properties could not be changed. Không thể thay đổi thuộc tính ô. + The field properties dialog is no longer open. Hộp thoại thuộc tính ô không còn mở. + The form asks to be submitted to {u}; PdfCraft doesn't send form data. Save the document to keep your entries. Biểu mẫu yêu cầu gửi đến {u}; PdfCraft không gửi dữ liệu biểu mẫu. Hãy lưu tài liệu để giữ lại những gì bạn đã nhập. + The form asks viewers to make appearances (NeedAppearances) Biểu mẫu yêu cầu trình xem tạo giao diện hiển thị (NeedAppearances) + The linked PDF opened, but its named destination was not applied. PDF liên kết đã mở, nhưng đích đến theo tên của nó không được áp dụng. + The linked PDF opened, but its page destination was out of range. PDF liên kết đã mở, nhưng đích đến trang của nó nằm ngoài phạm vi. + The operation failed. Thao tác không thành công. + The pages were extracted but not deleted, because the document changed while you were choosing a folder. Các trang đã được trích xuất nhưng không bị xóa, vì tài liệu đã thay đổi trong khi bạn đang chọn thư mục. + The passwords don't match. Mật khẩu không khớp. + The selected area has been copied ({w} × {h} pixels) Vùng đã chọn đã được sao chép ({w} × {h} điểm ảnh) + The selected fields could not be found. Select them again. Không tìm thấy các ô đã chọn. Hãy chọn lại. + The standard fonts can't draw “{c}” ({code}). Only Western European characters can be added as text for now. Các phông chữ tiêu chuẩn không thể vẽ “{c}” ({code}). Hiện chỉ có thể thêm ký tự Tây Âu dưới dạng văn bản. + The title in the metadata and the document information differ Tiêu đề trong siêu dữ liệu và trong thông tin tài liệu khác nhau + The window should show a meaningful title rather than the file name. Set a title and Initial View > Show: Document Title. Cửa sổ nên hiển thị một tiêu đề có ý nghĩa thay vì tên tệp. Hãy đặt tiêu đề rồi chọn Initial View > Show: Document Title. + There are no redaction marks to apply Không có dấu loại bỏ nội dung nào để áp dụng + This PDF uses the unsupported {s} action. PDF này dùng hành động {s} không được hỗ trợ. + This compatibility level supports only plain ASCII passwords. Mức tương thích này chỉ hỗ trợ mật khẩu ASCII thuần. + This document can't be checked: it couldn't be read for editing Không thể kiểm tra tài liệu này: không đọc được để chỉnh sửa + This document has no attachments. Tài liệu này không có tệp đính kèm. + This document has no bookmarks. Tài liệu này không có dấu trang. + This document has no form fields. Tài liệu này không có ô biểu mẫu. + This document has no layers. Tài liệu này không có lớp. + This file is already as small as it can be made ({size}). No copy was saved. Tệp này đã nhỏ đến mức nhỏ nhất có thể ({size}). Không có bản sao nào được lưu. + This form also contains XFA data, which PdfCraft doesn't read yet. You can fill its fields, but Acrobat may show the XFA values instead. Biểu mẫu này cũng chứa dữ liệu XFA, mà PdfCraft chưa đọc được. Bạn có thể điền các ô của nó, nhưng Acrobat có thể hiển thị các giá trị XFA thay thế. + Thumbnails Hình thu nhỏ + Timed responses Câu trả lời có thời gian + Type Password Nhập mật khẩu + Type a password. Nhập mật khẩu. + Typewriter Máy đánh chữ + Unchecked Chưa đánh dấu + Undid {label} Đã hoàn tác {label} + Unlock comment Mở khóa bình luận + Unlocked {n} of {m} files Đã mở khóa {n} trong {m} tệp + Update background Cập nhật nền + Update header & footer Cập nhật đầu trang & chân trang + Update watermark Cập nhật hình mờ + Use {what} Dùng {what} + Valid Hợp lệ + Valid from Hiệu lực từ + Valid to Hiệu lực đến + Validate Xác thực + Validity ends Hiệu lực kết thúc + Validity starts Hiệu lực bắt đầu + Vertically Theo chiều dọc + Video, sound and rich media must be tagged to be announced. Tag the multimedia annotations. Video, âm thanh và nội dung đa phương tiện phải được gắn thẻ để được thông báo. Hãy gắn thẻ cho các chú thích đa phương tiện. + Viewing Xem + Weak Mờ + White on black Trắng trên nền đen + Wrote 1 file to {dir} Đã ghi 1 tệp vào {dir} + Wrote {n} files to {dir} Đã ghi {n} tệp vào {dir} + X Object Forms Biểu mẫu X Object + Yellow Vàng + Yellow on black Vàng trên nền đen + You can pin up to {n} folders. Unpin one first. Bạn có thể ghim tối đa {n} thư mục. Hãy bỏ ghim một thư mục trước. + Your name Tên của bạn + Zip Code Mã bưu chính + Zip Code + 4 Mã bưu chính + 4 + `{command}` {when} `{command}` {when} + a bookmark cannot be moved inside itself không thể di chuyển một dấu trang vào chính nó + a document must keep at least one page tài liệu phải giữ ít nhất một trang + average trung bình + maximum tối đa + minimum tối thiểu + no such document không có tài liệu như vậy + nothing in the file matches this document không có gì trong tệp khớp với tài liệu này + nothing to redo không có gì để làm lại + nothing to undo không có gì để hoàn tác + pages trang + product (x) nhân (x) + sum (+) cộng (+) + the document has no form fields tài liệu không có ô biểu mẫu + the document has no page tree tài liệu không có cây trang + the document has no tags tài liệu không có thẻ + the document is protected by a password tài liệu được bảo vệ bằng mật khẩu + the image is empty hình ảnh rỗng + the password is incorrect mật khẩu không đúng + the text recognition models are not installed (reinstall PdfCraft, or set PDFCRAFT_MODELS to the folder that holds them) mô hình nhận dạng văn bản chưa được cài đặt (cài lại PdfCraft, hoặc đặt PDFCRAFT_MODELS thành thư mục chứa chúng) + the title must not be empty tiêu đề không được để trống + there are no pages to print không có trang nào để in + there are no redaction marks to apply không có dấu loại bỏ nội dung nào để áp dụng + this document is signed: rewriting it would invalidate its signatures (save it incrementally instead) tài liệu này đã được ký: viết lại nó sẽ làm mất hiệu lực của các chữ ký đó (hãy lưu tăng dần thay thế) + this file isn't XFDF, FDF, XML or text form data tệp này không phải dữ liệu biểu mẫu XFDF, FDF, XML hay văn bản + {0}: {1} {0}: {1} + {field}: {e} {field}: {e} + {file} is too large for a stamp (at most {n} MB) {file} quá lớn cho một con dấu (tối đa {n} MB) + {folder} is already pinned to Home {folder} đã được ghim vào Trang chủ + {label} failed: {e} {label} không thành công: {e} + {name} has no action {name} không có hành động nào + {name} is too large for a word list (at most 1 MB). {name} quá lớn cho một danh sách từ (tối đa 1 MB). + {name} submits the form to {url}; PdfCraft doesn't send form data. Save the document to keep your entries. {name} gửi biểu mẫu đến {url}; PdfCraft không gửi dữ liệu biểu mẫu. Hãy lưu tài liệu để giữ lại những gì bạn đã nhập. + {name}: choosing images arrives on the web with file pickers for images {name}: chọn hình ảnh sẽ mở trang web kèm bộ chọn tệp dành cho hình ảnh + {name}: the {other} action isn't supported yet {name}: hành động {other} chưa được hỗ trợ + {who} in this document tried to open an address PdfCraft won't open: {e}. {who} trong tài liệu này đã cố mở một địa chỉ mà PdfCraft sẽ không mở: {e}. + {who} in this document tried to open an address PdfCraft won't open: {e}. Only web (http, https) and email (mailto) links open from documents. {who} trong tài liệu này đã cố mở một địa chỉ mà PdfCraft sẽ không mở: {e}. Chỉ liên kết web (http, https) và email (mailto) mở được từ tài liệu. +animation effects Off Tắt +animation effects On Bật + View more Xem thêm + View less Xem ít hơn + Only continue if you trust this document. An address can carry information from the document, such as what you typed into its form. Chỉ tiếp tục nếu bạn tin tưởng tài liệu này. Một địa chỉ có thể mang theo thông tin từ tài liệu, chẳng hạn những gì bạn đã nhập vào biểu mẫu của nó. + Print single-sided. Keep the sheets in order, cut at the marks, then stack the piles left to right, top to bottom. In một mặt. Giữ đúng thứ tự các tờ, cắt theo vạch, rồi xếp từng chồng từ trái sang phải, từ trên xuống dưới. + Sign a sheet of white paper and take a photo of it in bright, even light (use the flash). Choose the photo or drop it here: PdfCraft finds the signature and removes the paper. Hãy ký một tờ giấy trắng và chụp ảnh nó trong ánh sáng đủ sáng và đều (dùng đèn flash). Chọn bức ảnh hoặc kéo thả vào đây: PdfCraft sẽ tìm chữ ký và gỡ bỏ tờ giấy. + This field's font can't draw “{c}” ({code}), so PdfCraft shows ? in its place. The value is saved, and other PDF viewers redraw the field from it. Phông chữ của ô này không thể vẽ “{c}” ({code}), nên PdfCraft hiển thị ? thay thế. Giá trị vẫn được lưu và các trình xem PDF khác sẽ vẽ lại ô từ giá trị đó. + {chars} can't be written into the PDF yet: Fill & Sign text is Western European only. Pick a numeric format such as dd.mm.yyyy. {chars} chưa thể được ghi vào PDF: văn bản Điền & Ký chỉ dành cho Tây Âu. Hãy chọn một định dạng số như dd.mm.yyyy. + January Tháng Một + February Tháng Hai + March Tháng Ba + April Tháng Tư + May Tháng Năm + June Tháng Sáu + July Tháng Bảy + August Tháng Tám + September Tháng Chín + October Tháng Mười + November Tháng Mười Một + December Tháng Mười Hai +calendar date January tháng Một +calendar date February tháng Hai +calendar date March tháng Ba +calendar date April tháng Tư +calendar date May tháng Năm +calendar date June tháng Sáu +calendar date July tháng Bảy +calendar date August tháng Tám +calendar date September tháng Chín +calendar date October tháng Mười +calendar date November tháng Mười Một +calendar date December tháng Mười Hai +calendar weekday Su CN +calendar weekday Mo T2 +calendar weekday Tu T3 +calendar weekday We T4 +calendar weekday Th T5 +calendar weekday Fr T6 +calendar weekday Sa T7 +signature pad Type Nhập +scroll speed Slow Chậm +scroll speed Normal Bình thường +scroll speed Fast Nhanh +certificate Subject Chủ thể +certificate Issued to Cấp cho +certificate Issued by Cấp bởi +certificate Valid from Hiệu lực từ +certificate Valid to Hiệu lực đến +certificate Intended usage Mục đích sử dụng +certificate Version Phiên bản +certificate Serial number Số sê-ri +certificate Issuer Bên cấp +certificate Validity starts Hiệu lực bắt đầu +certificate Validity ends Hiệu lực kết thúc +certificate Public key Khóa công khai +certificate Basic constraints Ràng buộc cơ bản +certificate Key usage Cách dùng khóa +certificate Self-signed Tự ký +certificate SHA-1 digest Tóm lược SHA-1 +certificate SHA-256 digest Tóm lược SHA-256 + Certificate authority Cơ quan cấp chứng thư + End entity Thực thể cuối + Float panel Bảng nổi + Move to group Di chuyển vào nhóm + Panels Bảng bên + Resize panel window Đổi kích thước cửa sổ bảng bên + Resize panels Đổi kích thước các bảng bên + Grab bag Túi đồ + No contributor data was built into this copy. Bản này không có dữ liệu người đóng góp. + No model credits were built into this copy. Bản này không có thông tin ghi công mô hình. + Reverse the order Đảo thứ tự + Show Hiện + Sort Sắp xếp + Table Bảng + The field {name} no longer exists. Ô {name} không còn tồn tại. + {n} contributors · {c} commits {n} người đóng góp · {c} commit + Username Tên người dùng + Display name Tên hiển thị + Real name Tên thật + Name (A–Z) Tên (A–Z) + Merged PRs PR đã hợp nhất + PRs PR + Commits Commit + Lines added Số dòng đã thêm + +LOC +LOC + Lines deleted Số dòng đã xóa + −LOC −LOC + Line delta Chênh lệch dòng + ΔLOC ΔLOC + Binary assets added Tài nguyên nhị phân đã thêm + +Bin +Bin + Binary assets removed Tài nguyên nhị phân đã gỡ bỏ + −Bin −Bin + First commit Commit đầu tiên + First Đầu tiên + Last commit Commit cuối cùng + Last Cuối cùng + Company Công ty + Model Mô hình + Version Phiên bản + % of all commits % trong tất cả commit + Lines +/− Dòng +/− + @{login}: {prs} PRs, {commits} commits, +{added} / −{deleted} lines (Δ {delta}), +{bin_added} / −{bin_deleted} binary assets, {first} – {last} @{login}: {prs} PR, {commits} commit, +{added} / −{deleted} dòng (Δ {delta}), +{bin_added} / −{bin_deleted} tài nguyên nhị phân, {first} – {last} + of {name} trong {name} + of {pages} trong {pages} + on page {label} trên trang {label} + open to see what it will include mở ra để xem nó sẽ bao gồm những gì + ships in milestone {m} được phát hành trong mốc {m} + signature chữ ký + sorted ascending sắp xếp tăng dần + sorted descending sắp xếp giảm dần + to đến + to {n} đến {n} + watermark hình mờ + yyyy or yy year · m or mm month · mmm or mmmm month name · d or dd day · ddd or dddd weekday. H, h, M, s and t are time letters and can't be used on their own: put {escape} before a letter to show it as is. năm yyyy hoặc yy · tháng m hoặc mm · tên tháng mmm hoặc mmmm · ngày d hoặc dd · thứ ddd hoặc dddd. H, h, M, s và t là chữ cái thời gian và không thể dùng độc lập: hãy đặt {escape} trước chữ cái để hiển thị nguyên văn. + {c} of {n}{more} {c} trên {n}{more} + {dpi} pixels/inch {dpi} điểm ảnh/inch + {kind} Properties Thuộc tính {kind} + {kind} field ô {kind} + {kind} · page {p} {kind} · trang {p} + {kind} — click to show it on the page {kind} — nhấp để hiện nó trên trang + {k} of {n} {k} trên {n} + {label} (1 issue) {label} (1 vấn đề) + {label} ({n} issues) {label} ({n} vấn đề) + {month} {day}, {y} {month} {day}, {y} + {month} {y} {month} {y} + {msg} to {dir} {msg} vào {dir} + {name} (default) {name} (mặc định) + {name} can't be combined: {why} không thể kết hợp {name}: {why} + {name} is read-only {name} chỉ đọc + {name} — unsaved changes {name} — thay đổi chưa lưu + {n} days ago {n} ngày trước + {n} differences found tìm thấy {n} khác biệt + {n} fields selected đã chọn {n} ô + {n} files {n} tệp + {n} files done đã xong {n} tệp + {n} files need attention {n} tệp cần xử lý + {n} h ago {n} giờ trước + {n} instances {n} bản + {n} issues {n} vấn đề + {n} marks {n} dấu + {n} match(es) marked for redaction. đã đánh dấu {n} kết quả khớp để loại bỏ nội dung. + {n} measurements use an unsupported format and are left out. {n} số đo dùng định dạng không được hỗ trợ và bị bỏ qua. + {n} min ago {n} phút trước + {n} pages {n} trang + {n} pages selected. đã chọn {n} trang. + {n} selected đã chọn {n} + {n} tags {n} thẻ + {n} word(s) or phrase(s) {n} từ hoặc cụm từ + {n} {kind} {n} {kind} + {rule} - {status} {rule} - {status} + {s} action hành động {s} + {verb} Background {verb} nền + {verb} Header and Footer {verb} đầu trang và chân trang + {verb} Watermark {verb} hình mờ + {verb} as "{name}" {verb} với tên "{name}" + {who} in this document wants to open this address in your browser: {who} trong tài liệu này muốn mở địa chỉ này trong trình duyệt của bạn: + {who} in this document wants to open your email app with this address: {who} trong tài liệu này muốn mở ứng dụng email của bạn bằng địa chỉ này: + {words} on {pages} {words} trên {pages} + — (protection is applied when you save) — (bảo vệ được áp dụng khi bạn lưu) + “{name}” has security restrictions. Enter its permissions password to lift them. “{name}” có các hạn chế bảo mật. Nhập mật khẩu quyền của nó để gỡ bỏ. + “{name}” is protected. Enter a password to open it. “{name}” đã được bảo vệ. Nhập mật khẩu để mở nó. +@plural {n} page|{n} pages {n} trang +@plural {n} file|{n} files {n} tệp +@plural {n} field|{n} fields {n} ô +@plural {n} comment|{n} comments {n} bình luận +@plural {n} result|{n} results {n} kết quả +@plural {n} field name collides with earlier files and will be renamed: {list}|{n} field names collide with earlier files and will be renamed: {list} {n} tên ô trùng với các tệp trước đó và sẽ được đổi tên: {list} +@plural {n} object selected|{n} objects selected đã chọn {n} đối tượng +@plural Downloaded {n} PDF|Downloaded {n} PDFs Đã tải xuống {n} PDF +key Ctrl Ctrl +key Shift Shift +key Delete Delete +key Esc Esc +key Home Home +key End End +key Space Space diff --git a/crates/ui-egui/src/theme.rs b/crates/ui-egui/src/theme.rs index 9f2bb90090..182b5b6705 100644 --- a/crates/ui-egui/src/theme.rs +++ b/crates/ui-egui/src/theme.rs @@ -338,13 +338,14 @@ fn font_definitions_for_platform(prefer_hans: bool, platform: FontPolicyPlatform } } // Arabic-script faces (file names, document titles), Telugu faces (the Telugu interface, - // file names), Hebrew faces (file names, text being edited) and Thai faces after the CJK ones; the - // ranges don't overlap. + // file names), Hebrew faces (file names, text being edited), Thai faces and Devanagari faces + // (the Hindi interface) after the CJK ones; the ranges don't overlap. for face in pdfcraft_fonts::ui_arabic_fonts() .into_iter() .chain(pdfcraft_fonts::ui_telugu_fonts()) .chain(pdfcraft_fonts::ui_hebrew_fonts()) .chain(pdfcraft_fonts::ui_thai_fonts()) + .chain(pdfcraft_fonts::ui_devanagari_fonts()) { let name = face.name(); if !fonts.font_data.contains_key(&name) { diff --git a/crates/ui-egui/tests/fonts.rs b/crates/ui-egui/tests/fonts.rs index 63a31d4cfc..369164a20a 100644 --- a/crates/ui-egui/tests/fonts.rs +++ b/crates/ui-egui/tests/fonts.rs @@ -8,6 +8,7 @@ const JAPANESE: &str = "日本語の文字"; const CHINESE: &str = "简体中文欢迎"; const ARABIC: &str = "واحد اثنين"; const TELUGU: &str = "తెలుగు ఫైల్"; +const DEVANAGARI: &str = "हिंदी पाठ सम्पादन"; fn families() -> Vec { vec![FontId::proportional(13.0), FontId::monospace(13.0), theme::medium(13.0), theme::semibold(17.0)] @@ -163,7 +164,30 @@ fn system_fallback_covers_devanagari() { assert_eq!(stack.iter().filter(|n| *n == theme::SYSTEM_DEVANAGARI_FALLBACK).count(), 1, "{family:?}"); } let mut fonts = Fonts::new(TextOptions::default(), defs); - const DEVANAGARI: &str = "हिंदी पाठ सम्पादन"; + for id in families() { + assert!(fonts.has_glyphs(&id, DEVANAGARI), "{id:?} lacks {DEVANAGARI}"); + } + assert!(layout_widths(&mut fonts, DEVANAGARI).iter().all(|w| w.is_finite() && *w > 0.0)); +} + +/// Built with craft-fonts, Hindi text renders with real glyphs (no tofu) in every family: a +/// `Deva` face is a fallback after the app's own fonts. Without craft-fonts it is the installed +/// Devanagari fallback's job (see `system_fallback_covers_devanagari`), and the web build has +/// neither. +#[test] +fn devanagari_ui_text_uses_craft_fonts() { + if pdfcraft_fonts::ui_devanagari_fonts().is_empty() { + eprintln!("skipping devanagari_ui_text_uses_craft_fonts: built without craft-fonts (set CRAFT_FONTS_DIR to run it)"); + return; + } + let defs = theme::font_definitions(); + for family in [FontFamily::Proportional, FontFamily::Monospace] { + let stack = &defs.families[&family]; + let first = stack.iter().position(|n| pdfcraft_fonts::ui_devanagari_fonts().iter().any(|f| f.name() == *n)).expect("a Deva face is a fallback"); + let own = stack.iter().position(|n| n == "Inter" || n == "JetBrainsMono").expect("the app's own font"); + assert!(own < first, "{family:?}: {stack:?}"); + } + let mut fonts = Fonts::new(TextOptions::default(), defs); for id in families() { assert!(fonts.has_glyphs(&id, DEVANAGARI), "{id:?} lacks {DEVANAGARI}"); } @@ -264,7 +288,7 @@ fn ui_fonts_work_without_craft_fonts() { theme::install_fonts(&ctx); } -/// Latin- and Cyrillic-script catalogs (Czech, Brazilian Portuguese, German, Spanish, French, Russian, Bulgarian, Hungarian, Ukrainian, Italian, Slovene) are drawn entirely by the app's own faces +/// Latin- and Cyrillic-script catalogs (Czech, Brazilian Portuguese, German, Spanish, French, Russian, Bulgarian, Kazakh, Hungarian, Ukrainian, Italian, Slovene, Lithuanian, Greek, Turkish, Indonesian, Vietnamese) are drawn entirely by the app's own faces /// (Inter, JetBrains Mono): no letter falls through to egui's defaults or a CJK fallback. (egui's /// `has_glyphs` can't answer this: with only the primary face it is also the replacement face.) #[test] @@ -287,8 +311,14 @@ fn primary_ui_fonts_cover_latin_and_cyrillic_catalogs() { ("tr", include_str!("../src/i18n/tr.tsv")), ("sl", include_str!("../src/i18n/sl.tsv")), ("lt", include_str!("../src/i18n/lt.tsv")), + ("id", include_str!("../src/i18n/id.tsv")), + ("vi", include_str!("../src/i18n/vi.tsv")), ] { - let mut text = String::from("áčďéěíňóřšťúůýžÁČĎÉĚÍŇÓŘŠŤÚŮÝŽãõçâêôàÃÕÇÂÊÔÀñÑüÜäÄöÖőűß„“¿¡«»…ґҐєЄіІїЇәғқңөұүһӘҒҚҢӨҰҮҺ"); + // Vietnamese stacks its diacritics: the precomposed letters and the base letters they + // combine with, including `đ` and the tone marks `ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ế ề ể ễ ệ`. + let mut text = String::from( + "áčďéěíňóřšťúůýžÁČĎÉĚÍŇÓŘŠŤÚŮÝŽãõçâêôàÃÕÇÂÊÔÀñÑüÜäÄöÖőűß„“¿¡«»…ґҐєЄіІїЇәғқңөұүһӘҒҚҢӨҰҮҺđĐạảấầẩẫậắằẳẵặếềểễệọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ", + ); for line in catalog.lines().filter(|l| !l.starts_with('#')) { if let Some(translation) = line.split('\t').nth(2) { text.extend(translation.chars().filter(|c| !c.is_whitespace())); diff --git a/docs/gaps.md b/docs/gaps.md index 4c235c1745..dc98f77d53 100644 --- a/docs/gaps.md +++ b/docs/gaps.md @@ -38,7 +38,7 @@ update the numbers. | 11 | Accessibility: checker only, no tagging tools | feature | 40–70 | [target-app-parity.md](target-app-parity.md) | | 12 | No measured fidelity harness against Acrobat | quality | (in 2) | [target-app-parity.md](target-app-parity.md) | | 13 | Performance budgets and lazy loading of very large files | performance | 25–45 | this file | -| 14 | Arabic not mirrored; no Hindi, Indonesian, Korean, Vietnamese | localization | 30–50 | [localization-parity.md](localization-parity.md) | +| 14 | Arabic not mirrored; no Hindi, Korean | localization | 30–50 | [localization-parity.md](localization-parity.md) | | 15 | Forms: JavaScript object model, actions, submit, XFA depth | feature | 40–75 | [pdf-spec-parity.md](pdf-spec-parity.md) | | 16 | UI precision gaps (multi-select move, rulers, accelerators, windows) | UI/UX | 30–60 | [ui-parity.md](ui-parity.md) | | 17 | Certificate security and other protect gaps | feature, spec | 15–30 | [pdf-spec-parity.md](pdf-spec-parity.md) | @@ -236,14 +236,14 @@ update the numbers. to edit. - **Estimate:** 25–45 h. **Doc:** this file. -### 14. Arabic not mirrored; no Hindi, Indonesian, Korean, Vietnamese +### 14. Arabic not mirrored; no Hindi, Korean - **Missing:** a right-to-left layout (panels, menus, alignment), bidirectional text in the text - layout itself (wrapping, typed text); catalogs for Hindi, Indonesian, Korean and Vietnamese - (Acrobat ships Korean; it ships Arabic in its Middle East edition; it ships none of the other - three). + layout itself (wrapping, typed text); catalogs for Hindi and Korean, each with the script face it + needs (Acrobat ships Korean; it ships Arabic in its Middle East edition; it ships neither Hindi + nor Indonesian nor Vietnamese). Indonesian and Vietnamese ship as of 2026-10-13. - **Evidence:** [localization.md](localization.md) §Arabic; `misc.rtl-ui` planned. -- **Estimate:** 30–50 h (Arabic RTL 20–35, four catalogs 10–15 plus review). **Doc:** +- **Estimate:** 30–50 h (Arabic RTL 20–35, two catalogs 10–15 plus review). **Doc:** [localization-parity.md](localization-parity.md). ### 15. Forms: JavaScript object model, actions, submit, XFA depth diff --git a/docs/localization-parity.md b/docs/localization-parity.md index ccd5f88b90..7bc2d78076 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -1,6 +1,6 @@ # Localization parity -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (list all registered interface languages; preserve the original coverage snapshot) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (Indonesian and Vietnamese ship as full 2,578-key catalogs; the key union is now 2,578; the localization dimension re-measures at ≈ 76%) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) Per-language status of PdfCraft's interface against Acrobat Pro's. How translations work and how to add a language: [localization.md](localization.md). Summary in [ROADMAP.md](../ROADMAP.md). @@ -9,8 +9,11 @@ add a language: [localization.md](localization.md). Summary in [ROADMAP.md](../R - **Strings translated** is measured: the catalogs in `crates/ui-egui/src/i18n/.tsv`, counted as distinct `(context, English)` keys with a non-empty translation. The denominator is the union - of keys across all catalogs, **2,143**. Cross-check: of the 1,151 distinct `tl!("…")` literals in - `crates/ui-egui/src`, every full catalog covers 96.5–99.4% (7 literals are in no catalog yet). + of keys across all catalogs, **2,578** (it was 2,143 until the Lithuanian catalog arrived; the + percentages in the table below for the languages measured on 2026-10-10 are that older + snapshot's). Cross-check: of the `tl!("…")` literals in `crates/ui-egui/src`, Indonesian and + Vietnamese translate every one of them (required by `indonesian_and_vietnamese_cover_ui_literals`), + and two literals are in no catalog yet. English is built in. - **Not counted:** error details from the engine and the operating system, which are shown in English inside a translated frame; there is no translated user documentation or help yet (Acrobat @@ -34,16 +37,17 @@ add a language: [localization.md](localization.md). Summary in [ROADMAP.md](../R | Arabic | `ar` | 2,143 (100%) | dialogs and tooltips; no help | Letters joined and lines reordered at load, but **layout not mirrored**, wrapped lines break at the wrong end, typed text runs left to right (`localization.md` §Arabic) | no | partial | yes (Middle East edition) | 25–45 | | French | `fr` | 2,128 (99.3%) | dialogs and tooltips; no help | Latin | no | partial | yes | 1–2 | | Portuguese (Brazil) | `pt-br` | 2,130 (99.4%) | dialogs and tooltips; no help | Latin | community (#288) | partial | yes | 1–2 | -| Indonesian | `id` | 0 | none | Latin | no | none | no | 3–5 | +| Indonesian | `id` | 2,578 (100%) | dialogs and tooltips through `tl!`; no help | Latin, drawn by the bundled Inter and JetBrains Mono (tested in `crates/ui-egui/tests/fonts.rs`) | no | partial | no | 1–2 | | Japanese | `ja` | 2,123 (99.1%) | dialogs and tooltips; no help | BIZ UDPGothic from craft-fonts; IME patched on macOS, Windows, X11, Wayland; vertical text renders but can't be edited | no | partial | yes | 4–8 | | German | `de` | 2,128 (99.3%) | dialogs and tooltips; no help | Latin | community, in progress (#828: terminology, clipping) | partial | yes | 2–4 | | Korean | `ko` | 0 | none | Hangul IME patched (Microsoft and Apple Korean, `vendor/README.md` winit 3, 6, 9, 10); no Hangul UI face in craft-fonts | no | none | yes | 6–10 | -| Vietnamese | `vi` | 0 | none | Latin with stacked diacritics; bundled Inter covers them (not tested) | no | none | no | 3–5 | +| Vietnamese | `vi` | 2,578 (100%) | dialogs and tooltips through `tl!`; no help | Latin with stacked diacritics; the bundled Inter covers them, tested in `crates/ui-egui/tests/fonts.rs` | no | partial | no | 1–2 | -**Localization dimension ≈ 59%**: the mean over the twelve, counting a catalog's percentage but only -60% for Chinese and Arabic until their script problems are fixed, and 0 for the four missing -languages. **≈ 60–115 h** to bring all twelve to `full`, of which ≈ 35–60 h is engineering (Hans -face, RTL layout, bidi text) and the rest catalogs and fixes; native-speaker review needs humans. +**Localization dimension ≈ 76%**: the mean over the twelve, counting a catalog's percentage but only +60% for Chinese and Arabic until their script problems are fixed, and 0 for the two languages still +missing (Hindi, Korean). **≈ 55–90 h** to bring all twelve to `full`, of which ≈ 35–60 h is +engineering (Hans face, RTL layout, bidi text) and the rest the two remaining catalogs and fixes; +native-speaker review needs humans. No language is `full` except English: every catalog leaves engine error details in English, and none has translated help. @@ -67,7 +71,7 @@ none has translated help. | Turkish | `tr` | 2,313 entries | partial | yes | | Lithuanian | `lt` | 2,578 entries | partial; community native-speaker review ([#1401](https://github.com/storytold/pdfcraft/pull/1401)) | no | -**14 other languages** ship (21 catalogs plus English, 22 interface languages in Preferences). +**14 other languages** ship (23 catalogs plus English, 24 interface languages in Preferences). The entry counts without percentages were measured on 2026-10-12; they are not percentages of the older 2,143-key snapshot above. Their presence does not imply a detailed linguistic or runtime review. Acrobat languages PdfCraft lacks: Danish, Dutch, Finnish, Norwegian, Swedish, Hebrew. @@ -75,5 +79,6 @@ Acrobat languages PdfCraft lacks: Danish, Dutch, Finnish, Norwegian, Swedish, He | Date | Change | Summary | |---|---|---| +| 2026-10-13 | minor | Indonesian and Vietnamese ship as full 2,578-key catalogs with month and weekday names; the key union is 2,578 and the dimension re-measures at ≈ 76% (Hindi and Korean are the two languages still missing) | | 2026-10-12 | minor | Added current counts for Kazakh, Polish, Slovenian, Greek, Turkish and Lithuanian; retained existing language assessments and the original percentage snapshot | | 2026-10-10 | major | Created. Catalog counts measured from `crates/ui-egui/src/i18n/*.tsv` against the 2,143-key union; Acrobat's localizations from its bundle's `.lproj` and Sequences folder names | diff --git a/docs/localization.md b/docs/localization.md index 05240cafbf..10c979cb14 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -1,10 +1,11 @@ # Interface language -Choose **Menu > Edit > Preferences…** (Command-comma on macOS, Ctrl-comma elsewhere) **> Interface language** and select **Auto**, **English**, **日本語**, **简体中文**, **繁體中文**, **Čeština**, **Português (Brasil)**, **Deutsch**, **Español**, **Français**, **Русский**, **Қазақша**, **Български**, **తెలుగు**, **Magyar**, **Українська**, **Italiano**, **العربية**, **Polski**, **Slovenščina**, **Ελληνικά**, **Türkçe** or **Lietuvių**. The change applies immediately and persists between launches. Command ids, document contents and file names are unchanged. +Choose **Menu > Edit > Preferences…** (Command-comma on macOS, Ctrl-comma elsewhere) **> Interface language** and select **Auto**, **English**, **日本語**, **简体中文**, **繁體中文**, **Čeština**, **Português (Brasil)**, **Deutsch**, **Español**, **Français**, **Русский**, **Қазақша**, **Български**, **తెలుగు**, **Magyar**, **Українська**, **Italiano**, **العربية**, **Polski**, **Slovenščina**, **Ελληνικά**, **Türkçe**, **Lietuvių**, **Bahasa Indonesia** or **Tiếng Việt**. The change applies immediately and persists between launches. Command ids, document contents and file names are unchanged. Displayed keyboard shortcuts use the same active interface language. For example, German shows `Strg+K` and `Strg+Umschalt+S` in the toolbar, menus, command palette, tooltips and Keyboard shortcuts dialog; macOS keeps its modifier symbols (`⌘`, `⇧`, `⌃`). Key names have their own `key` catalog context, so the Delete key can read `Entf` while the command remains `Löschen`. A missing key-name entry falls back to the English key name. Actual bindings and machine-facing command ids remain stable. -**Auto** (the default) follows the system language: `LC_ALL`, `LC_MESSAGES` or `LANG`, then the preferred-languages list on macOS. Any Portuguese locale (`pt_BR`, `pt_PT`) uses the Brazilian catalog, any French locale (`fr`, `fr_FR`, `fr_CA`, `fr_BE`) the French one, any German locale (`de`, `de_DE`, `de_AT`, `de_CH`) the German one, and Chinese locales for Taiwan, Hong Kong and Macau (`zh_TW`, `zh_HK`, `zh_MO`, `zh-Hant`) the Traditional Chinese one; other Chinese locales (`zh`, `zh_CN`, `zh_SG`, `zh-Hans`) the Simplified Chinese one. Telugu locales (`te`, `te_IN`) use the Telugu catalog, Bulgarian locales (`bg`, `bg_BG`) the Bulgarian one, and Hungarian locales (`hu`, `hu_HU`) the Hungarian one, and Ukrainian locales (`uk`, `uk_UA`) the Ukrainian one, and Italian locales (`it`, `it_IT`, `it_CH`) the Italian one, and Arabic locales (`ar`, `ar_MA`, `ar_EG`, `ar_SA`, …) the Arabic one, and Turkish locales (`tr`, `tr_TR`) the Turkish one, and Slovenian locales (`sl`, `sl_SI`) the Slovenian one. A system language without a catalog shows English. On Windows, **Auto** uses the Windows display languages, in preference order, when no supported locale is selected by those environment variables. Neutral `C`/`POSIX` locale values (including `C.UTF-8`) inherited from a launcher do not override the Windows display language; explicitly named supported locales such as `fr_FR.UTF-8` still do. The query asks Windows directly (`GetUserPreferredUILanguages`, through the `sys-locale` crate) without starting a process, and is cached for the process. If detection fails or the display language has no catalog, PdfCraft shows English. +**Auto** (the default) follows the system language: `LC_ALL`, `LC_MESSAGES` or `LANG`, then the preferred-languages list on macOS. Any Portuguese locale (`pt_BR`, `pt_PT`) uses the Brazilian catalog, any French locale (`fr`, `fr_FR`, `fr_CA`, `fr_BE`) the French one, any German locale (`de`, `de_DE`, `de_AT`, `de_CH`) the German one, and Chinese locales for Taiwan, Hong Kong and Macau (`zh_TW`, `zh_HK`, `zh_MO`, `zh-Hant`) the Traditional Chinese one; other Chinese locales (`zh`, `zh_CN`, `zh_SG`, `zh-Hans`) the Simplified Chinese one. Telugu locales (`te`, `te_IN`) use the Telugu catalog, Bulgarian locales (`bg`, `bg_BG`) the Bulgarian one, and Hungarian locales (`hu`, `hu_HU`) the Hungarian one, and Ukrainian locales (`uk`, `uk_UA`) the Ukrainian one, and Italian locales (`it`, `it_IT`, `it_CH`) the Italian one, and Arabic locales (`ar`, `ar_MA`, `ar_EG`, `ar_SA`, …) the Arabic one, and Turkish locales (`tr`, `tr_TR`) the Turkish one, and Indonesian locales (`id`, `id_ID`) the Indonesian one, and Vietnamese locales (`vi`, `vi_VN`) the Vietnamese one. A system language without a catalog shows English. On Windows, **Auto** uses the Windows display languages, in preference order, when no supported locale is selected by those environment variables. Neutral `C`/`POSIX` locale values (including `C.UTF-8`) inherited from a launcher do not override the Windows display language; explicitly named supported locales such as `fr_FR.UTF-8` still do. The query asks Windows directly (`GetUserPreferredUILanguages`, through the `sys-locale` crate) without starting a process, and is cached for the process. If detection fails or the display language has no catalog, PdfCraft shows English. +**Auto** (the default) follows the system language: `LC_ALL`, `LC_MESSAGES` or `LANG`, then the preferred-languages list on macOS. Any Portuguese locale (`pt_BR`, `pt_PT`) uses the Brazilian catalog, any French locale (`fr`, `fr_FR`, `fr_CA`, `fr_BE`) the French one, any German locale (`de`, `de_DE`, `de_AT`, `de_CH`) the German one, and Chinese locales for Taiwan, Hong Kong and Macau (`zh_TW`, `zh_HK`, `zh_MO`, `zh-Hant`) the Traditional Chinese one; other Chinese locales (`zh`, `zh_CN`, `zh_SG`, `zh-Hans`) the Simplified Chinese one. Telugu locales (`te`, `te_IN`) use the Telugu catalog, Bulgarian locales (`bg`, `bg_BG`) the Bulgarian one, and Hungarian locales (`hu`, `hu_HU`) the Hungarian one, and Ukrainian locales (`uk`, `uk_UA`) the Ukrainian one, and Italian locales (`it`, `it_IT`, `it_CH`) the Italian one, and Arabic locales (`ar`, `ar_MA`, `ar_EG`, `ar_SA`, …) the Arabic one, and Slovenian locales (`sl`, `sl_SI`) the Slovenian one, and Indonesian locales (`id`, `id_ID`) the Indonesian one, and Vietnamese locales (`vi`, `vi_VN`) the Vietnamese one. A system language without a catalog shows English. On Windows, **Auto** uses the Windows display languages, in preference order, when no supported locale is selected by those environment variables. Neutral `C`/`POSIX` locale values (including `C.UTF-8`) inherited from a launcher do not override the Windows display language; explicitly named supported locales such as `fr_FR.UTF-8` still do. The query asks Windows directly (`GetUserPreferredUILanguages`, through the `sys-locale` crate) without starting a process, and is cached for the process. If detection fails or the display language has no catalog, PdfCraft shows English. The control channel exposes the setting through `ui.set`: @@ -12,10 +13,10 @@ The control channel exposes the setting through `ui.set`: {"method":"ui.set","params":{"key":"language","value":"ja"}} ``` -The value is `auto` or a language code (`en`, `ja`, `zh-hans`, `zh-hant`, `cs`, `pt-br`, `de`, `es`, `fr`, `ru`, `kk`, `bg`, `te`, `hu`, `uk`, `it`, `ar`, `pl`, `sl`, `el`, `tr`, `lt`), in any case. `ui.state` reports `language` as written in the preferences (`auto`, `en`, `ja`, `zh-hans`, `zh-hant`, `cs`, `pt-br`, `de`, `es`, `fr`, `ru`, `kk`, `bg`, `te`, `hu`, `uk`, `it`, `ar`, `pl`, `sl`, `el`, `tr` or `lt`). Unknown values return an error without changing the current setting. Preferences saved before this setting existed follow the system language. +The value is `auto` or a language code (`en`, `ja`, `zh-hans`, `zh-hant`, `cs`, `pt-br`, `de`, `es`, `fr`, `ru`, `kk`, `bg`, `te`, `hu`, `uk`, `it`, `ar`, `pl`, `sl`, `el`, `tr`, `lt`, `id`, `vi`), in any case. `ui.state` reports `language` as written in the preferences (`auto`, `en`, `ja`, `zh-hans`, `zh-hant`, `cs`, `pt-br`, `de`, `es`, `fr`, `ru`, `kk`, `bg`, `te`, `hu`, `uk`, `it`, `ar`, `pl`, `sl`, `el`, `tr`, `lt`, `id` or `vi`). Unknown values return an error without changing the current setting. Preferences saved before this setting existed follow the system language. -Dialogs, panels, menus, notices and history labels go through the catalog (`tl!`). Japanese, Traditional Chinese, Simplified Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic translate them (about 2,000–2,140 entries each); Czech and Turkish cover the menus so far. Untranslated labels use English. Error details that come from the engine or the operating system are shown as they are, inside a translated frame ("操作「…」に失敗しました: …"). The command palette matches the translated label, the English label and the command id. Vertical Japanese PDF rendering is an existing viewer feature; this change does not add vertical text editing. Per-language coverage, script support and what each language still needs are in [localization-parity.md](localization-parity.md). -Dialogs, panels, menus, notices and history labels go through the catalog (`tl!`). Japanese, Traditional Chinese, Simplified Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese, Arabic and Slovenian translate them (about 2,000–2,190 entries each); Czech covers the menus so far. Untranslated labels use English. Error details that come from the engine or the operating system are shown as they are, inside a translated frame ("操作「…」に失敗しました: …"). The command palette matches the translated label, the English label and the command id. Vertical Japanese PDF rendering is an existing viewer feature; this change does not add vertical text editing. Per-language coverage, script support and what each language still needs are in [localization-parity.md](localization-parity.md). +Dialogs, panels, menus, notices and history labels go through the catalog (`tl!`). Japanese, Traditional Chinese, Simplified Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic translate them (about 2,000–2,140 entries each); Czech and Turkish cover the menus so far. Indonesian and Vietnamese translate every key in the union (2,578 entries each, including every registered command, All tools label and `tl!` literal). Untranslated labels use English. Error details that come from the engine or the operating system are shown as they are, inside a translated frame ("操作「…」に失敗しました: …"). The command palette matches the translated label, the English label and the command id. Vertical Japanese PDF rendering is an existing viewer feature; this change does not add vertical text editing. Per-language coverage, script support and what each language still needs are in [localization-parity.md](localization-parity.md). +Dialogs, panels, menus, notices and history labels go through the catalog (`tl!`). Japanese, Traditional Chinese, Simplified Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese, Arabic and Slovenian translate them (about 2,000–2,190 entries each); Czech covers the menus so far. Indonesian and Vietnamese translate every key in the union (2,578 entries each). Untranslated labels use English. Error details that come from the engine or the operating system are shown as they are, inside a translated frame ("操作「…」に失敗しました: …"). The command palette matches the translated label, the English label and the command id. Vertical Japanese PDF rendering is an existing viewer feature; this change does not add vertical text editing. Per-language coverage, script support and what each language still needs are in [localization-parity.md](localization-parity.md). Whole sentences that the layers below word — what the accessibility checker found, what the PDF/A verifier reports, what a signature's details say, what is wrong with the pages to print, what an edit is called in the history — are translated too, because those layers hand the sentence over apart from the document's own words. See [Sentences the engine words](#sentences-the-engine-words). @@ -23,11 +24,13 @@ The Ukrainian catalog has 2,047 entries, written from the meaning of the English The Lithuanian catalog has 2,578 entries and three integer plural forms. Calendar headings use standalone month names; dates use genitive forms. Coverage tests check commands/tools, scanned literal and direct lookups, and source/context keys in the other bundled catalogs. Calendar, inspector and password-dialog UI regressions check dynamic labels and preserve document values. A native Lithuanian-speaking contributor has reviewed the translation. +The Indonesian and Vietnamese catalogs have 2,578 entries each: every `(context, English)` key the union of the bundled catalogs holds, written from the meaning of the English labels with Indonesian computing vocabulary and standard Vietnamese terms. Neither language inflects nouns for number ([CLDR](https://www.unicode.org/cldr/charts/48/supplemental/language_plural_rules.html) `id` and `vi` have one form, `other`), so their `@plural` entries list a single form that reads the same for every count. Catalog regressions require every registered command, every All tools group, section and item, and every `tl!` literal in both, and the font test requires the bundled Latin faces to cover both catalogs, stacked Vietnamese diacritics included. Month and weekday names for stamps are in the same two languages: Indonesian writes them as they stand, Vietnamese lower-cases `tháng` after a day number (`7 tháng Ba`) and keeps it capitalised standing alone (`Tháng Ba`). + Edit text reads Hebrew lines in typing order and writes them back in drawing order (`crates/edit/src/bidi.rs`); letters the page's own font lacks are drawn with the craft-fonts `Hebr` face (Noto Sans Hebrew) as Type 3 glyphs, and a build without one says so. Hebrew points (niqqud) can't be written yet. The craft-fonts revision pinned for CI and releases has no `Hebr` face yet, so until one is added releases report that error instead of drawing the missing letters. -Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian, Italian, Turkish and Lithuanian need only the bundled Latin faces (tested in `tests/fonts.rs`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. -Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian, Italian and Slovenian need only the bundled Latin faces (tested in `tests/fonts.rs`). Slovenian has four plural forms: one (1, 101, 201…), two (2, 102…), few (3, 4, 103…) and other (everything else, including 0, 5–20 and 21+), so `@plural` entries list four forms (`1 stran`, `2 strani`, `3 strani`, `5 strani`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. -Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Until craft-fonts has an allowed `Hans` face, the desktop app draws a Chinese interface with a Chinese face already installed on the machine (Microsoft YaHei or JhengHei on Windows, PingFang, Hiragino Sans GB or STHeiti on macOS, WenQuanYi or Droid Sans Fallback on Linux; never Noto CJK or Source Han), placed before the Japanese faces so a line keeps one face (#826). The web build has no installed fonts to fall back on. Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian and Italian need only the bundled Latin faces (tested in `tests/fonts.rs`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. +Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian, Italian, Turkish, Lithuanian, Indonesian and Vietnamese need only the bundled Latin faces (tested in `tests/fonts.rs`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. +Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian, Italian, Slovenian, Indonesian and Vietnamese need only the bundled Latin faces (tested in `tests/fonts.rs`). Slovenian has four plural forms: one (1, 101, 201…), two (2, 102…), few (3, 4, 103…) and other (everything else, including 0, 5–20 and 21+), so `@plural` entries list four forms (`1 stran`, `2 strani`, `3 strani`, `5 strani`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. +Japanese interface text uses BIZ UDPGothic from [craft-fonts](https://github.com/storytold/craft-fonts), an optional build input that every release includes (`CRAFT_FONTS_DIR`; see the README). A build made without it has no Japanese face, so Japanese labels show replacement boxes. Chinese is drawn with the same craft-fonts CJK faces (in Simplified Chinese the `Hans` faces come first, so a line never mixes faces with different baselines), so a character none of them has shows a replacement box (and every Chinese character does in a build without craft-fonts). Until craft-fonts has an allowed `Hans` face, the desktop app draws a Chinese interface with a Chinese face already installed on the machine (Microsoft YaHei or JhengHei on Windows, PingFang, Hiragino Sans GB or STHeiti on macOS, WenQuanYi or Droid Sans Fallback on Linux; never Noto CJK or Source Han), placed before the Japanese faces so a line keeps one face (#826). The web build has no installed fonts to fall back on. Russian, Bulgarian, Czech, Brazilian Portuguese, German, Spanish, French, Hungarian, Italian, Indonesian and Vietnamese need only the bundled Latin faces (tested in `tests/fonts.rs`). Hungarian uses the same one/other plural rule as English: 1 is singular, and every other count — including 0 — is the other form. After a numeral the noun stays singular (`1 oldal`, `2 oldal`). Telugu is drawn with a craft-fonts `Telu` face (Noto Sans Telugu, kept in the web build too), whose conjuncts egui shapes; a build without one shows Telugu labels as replacement boxes, and the release-pinned craft-fonts input has no Telugu face yet. The Brazilian Portuguese catalog has 2,000 entries: the ~1,826-entry gist André Cardoso posted in [#288](https://github.com/storytold/pdfcraft/issues/288), the labels added since, and a review of the existing wording. Portuguese, like French, treats 0 and 1 as singular (`1 página`, `2 páginas`). diff --git a/docs/roadmap.md b/docs/roadmap.md index fabb5e603d..e54c8389f5 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -116,9 +116,9 @@ total matches the parity estimate. | M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 45% | 25–45 | Done: MCP resources (document info, text, page images); headless tool table (123 tools incl. signing, optimizing, initial view, links, stamps, data exchange, comment review, forms authoring and scripts, redaction, sanitize, print, add content), opt-in MCP server over stdio, CLI `run`/`tools` (closed stdout pipes exit cleanly), UI control channel with drag. Missing: Action Wizard, AI providers
Done since: CLI run and MCP reject missing, empty, repeated and option-valued --root arguments before any tool/script execution or MCP initialization. A single-hyphen directory name remains valid; synthetic CLI regressions preserve a would-be overwritten file. `text_find` also caps the per-page match ranges it materializes at the remaining result limit plus one continuation match. CLI robustness scans visit each directory once through overlapping roots and symlink aliases. | | M12 | Accessibility, compare, measure, search, XFA | 200–380 | 30% | 90–160 | Done: new `a11y` crate with the Accessibility Checker (all 32 rules, report, Fix/Skip/Explain, options dialog and results panel, agent tools). Locatable figure, annotation and form findings highlight their page bounds.
Done since: 2D distance, perimeter and area measurements with persistent viewport calibration, snapping, live information and CSV export; a bounded text-only auto-tag proposal tool; text-only Apply writes marked content, paragraph tags and a parent tree, then opens the Tags panel for review. Missing: mixed-content and field autotag, heading/list/table/figure classification, Order/Content panels, Reading Order tool, compare, geospatial/3D measurement, search index, XFA | | M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 45% | 25–45 | Done: MCP resources (document info, text, page images); headless tool table (123 tools incl. signing, optimizing, initial view, links, stamps, data exchange, comment review, forms authoring and scripts, redaction, sanitize, print, add content), opt-in MCP server over stdio, CLI `run`/`tools` (closed stdout pipes exit cleanly), UI control channel with drag. Missing: Action Wizard, AI providers
Done since: CLI run and MCP reject missing, empty, repeated and option-valued --root arguments before any tool/script execution or MCP initialization. A single-hyphen directory name remains valid; synthetic CLI regressions preserve a would-be overwritten file. `text_find` also caps the per-page match ranges it materializes at the remaining result limit plus one continuation match. | -| M14 | 1.0 polish: performance, localization, installers | 120–250 | 15% | 80–150 | Done: PhotoCraft's translation system (`i18n/`: TSV catalogs, `tl!`, command-id and plural entries, system-language detection, strict catalog tests); every dialog, panel and notice goes through `tl!`. Catalogs of ≈ 2,000–2,140 entries for Japanese, Simplified and Traditional Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic (logical-order catalog put into display order; layout not yet mirrored); Czech covers the menus. Signed and notarized macOS builds, signed Windows installers (x64, x86, ARM64), AppImage, deb, rpm, Flatpak and FreeBSD packages. #307 (bounded large-PDF memory): shared resource indexes and parser metadata, lazy inspection, bounded caches; a 9,156-page file inspects in ≈ 1.8 s at ≈ 500 MiB instead of exceeding 10 GiB. Edits let go of the previous working file before writing the next (a 1 GiB file peaks at two copies while editing, not three; gap 13). Shortcut display uses localized modifier/key names across menus, toolbar, palette, Help and tooltips (#496). Lithuanian adds a 2,578-entry catalog and date names, reviewed by a native-speaking contributor. Validated candidate (macOS raster probe; Windows runtime unverified): the Windows policy changes only embedded JetBrains Mono; horizontal alpha-edge energy per ink improves 2.78%, 3.87% and 1.59% at 100%, 125% and 150%, and is down 0.79% at 200%. Inter is pixel-identical; layout hashes, glyph coverage and the 8 MiB atlas are unchanged. Timing and RSS ranges overlap, with no improvement claimed. Estimates unchanged. Missing: a right-to-left layout, a Chinese UI face in releases, Hindi/Indonesian/Korean/Vietnamese, file-backed input and global memory budgets, performance budgets, keyboard-only operation | +| M14 | 1.0 polish: performance, localization, installers | 120–250 | 15% | 80–150 | Done: PhotoCraft's translation system (`i18n/`: TSV catalogs, `tl!`, command-id and plural entries, system-language detection, strict catalog tests); every dialog, panel and notice goes through `tl!`. Catalogs of ≈ 2,000–2,140 entries for Japanese, Simplified and Traditional Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic (logical-order catalog put into display order; layout not yet mirrored); Czech covers the menus. Indonesian and Vietnamese add full 2,578-key catalogs (2026-10-13). Signed and notarized macOS builds, signed Windows installers (x64, x86, ARM64), AppImage, deb, rpm, Flatpak and FreeBSD packages. #307 (bounded large-PDF memory): shared resource indexes and parser metadata, lazy inspection, bounded caches; a 9,156-page file inspects in ≈ 1.8 s at ≈ 500 MiB instead of exceeding 10 GiB. Edits let go of the previous working file before writing the next (a 1 GiB file peaks at two copies while editing, not three; gap 13). Shortcut display uses localized modifier/key names across menus, toolbar, palette, Help and tooltips (#496). Lithuanian adds a 2,578-entry catalog and date names, reviewed by a native-speaking contributor. Validated candidate (macOS raster probe; Windows runtime unverified): the Windows policy changes only embedded JetBrains Mono; horizontal alpha-edge energy per ink improves 2.78%, 3.87% and 1.59% at 100%, 125% and 150%, and is down 0.79% at 200%. Inter is pixel-identical; layout hashes, glyph coverage and the 8 MiB atlas are unchanged. Timing and RSS ranges overlap, with no improvement claimed. Estimates unchanged. Missing: a right-to-left layout, a Chinese UI face in releases, Hindi/Korean catalogs and their Devanagari and Hangul faces, file-backed input and global memory budgets, performance budgets, keyboard-only operation | | M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 45% | 25–45 | Done: MCP resources (document info, text, page images); headless tool table (123 tools incl. signing, optimizing, initial view, links, stamps, data exchange, comment review, forms authoring and scripts, redaction, sanitize, print, add content), opt-in MCP server over stdio, CLI `run`/`tools` (closed stdout pipes exit cleanly), UI control channel with drag. Missing: Action Wizard, AI providers | -| M14 | 1.0 polish: performance, localization, installers | 120–250 | 15% | 80–150 | Done: PhotoCraft's translation system (`i18n/`: TSV catalogs, `tl!`, command-id and plural entries, system-language detection, strict catalog tests); every dialog, panel and notice goes through `tl!`. Catalogs of ≈ 2,000–2,140 entries for Japanese, Simplified and Traditional Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic (logical-order catalog put into display order; layout not yet mirrored); Czech covers the menus. Signed and notarized macOS builds, signed Windows installers (x64, x86, ARM64), AppImage, deb, rpm, Flatpak and FreeBSD packages. #307 (bounded large-PDF memory): shared resource indexes and parser metadata, lazy inspection, bounded caches; a 9,156-page file inspects in ≈ 1.8 s at ≈ 500 MiB instead of exceeding 10 GiB. Edits let go of the previous working file before writing the next (a 1 GiB file peaks at two copies while editing, not three; gap 13). Shortcut display uses localized modifier/key names across menus, toolbar, palette, Help and tooltips (#496). Traditional Chinese accessibility statuses, rule semantics and Taiwan form/table terms have catalog regressions. Missing: a right-to-left layout, a Chinese UI face in releases, Hindi/Indonesian/Korean/Vietnamese, file-backed input and global memory budgets, performance budgets, keyboard-only operation | +| M14 | 1.0 polish: performance, localization, installers | 120–250 | 15% | 80–150 | Done: PhotoCraft's translation system (`i18n/`: TSV catalogs, `tl!`, command-id and plural entries, system-language detection, strict catalog tests); every dialog, panel and notice goes through `tl!`. Catalogs of ≈ 2,000–2,140 entries for Japanese, Simplified and Traditional Chinese, Russian, Bulgarian, German, Spanish, French, Telugu, Hungarian, Ukrainian, Italian, Brazilian Portuguese and Arabic (logical-order catalog put into display order; layout not yet mirrored); Czech covers the menus. Indonesian and Vietnamese add full 2,578-key catalogs (2026-10-13). Signed and notarized macOS builds, signed Windows installers (x64, x86, ARM64), AppImage, deb, rpm, Flatpak and FreeBSD packages. #307 (bounded large-PDF memory): shared resource indexes and parser metadata, lazy inspection, bounded caches; a 9,156-page file inspects in ≈ 1.8 s at ≈ 500 MiB instead of exceeding 10 GiB. Edits let go of the previous working file before writing the next (a 1 GiB file peaks at two copies while editing, not three; gap 13). Shortcut display uses localized modifier/key names across menus, toolbar, palette, Help and tooltips (#496). Traditional Chinese accessibility statuses, rule semantics and Taiwan form/table terms have catalog regressions. Missing: a right-to-left layout, a Chinese UI face in releases, Hindi/Korean catalogs and their Devanagari and Hangul faces, file-backed input and global memory budgets, performance budgets, keyboard-only operation | | | **Total** | **2,085–3,840** | **≈ 49% ready** | **≈ 770–1,400** | Area view of the same work: [target-app-parity.md](target-app-parity.md#by-feature-area) | ## Upcoming milestones, ranked diff --git a/docs/target-app-parity.md b/docs/target-app-parity.md index 85d6f5a8b6..ef2a10d2e8 100644 --- a/docs/target-app-parity.md +++ b/docs/target-app-parity.md @@ -181,7 +181,7 @@ features total and are shown for orientation; the others add to it. | File formats and conversion | ≈ 40% | 12% | 120–220 | within features | PDF read/write strong, encrypted output included (#774 fixed); export Word is layout-poor (#773); no Excel/PowerPoint export, no Office/HTML/PostScript import | [file-format-parity.md](file-format-parity.md) | | PDF specification and standards | ≈ 60% | 8% | 150–260 | within features | ISO 32000 syntax, encryption, annotations and AcroForm strong; rendering and fonts borrowed from `hayro`; PDF 2.0 extras, linearization, public-key security absent; PDF/A partial, PDF/X/UA none | [pdf-spec-parity.md](pdf-spec-parity.md) | | Hardware | ≈ 35% | 4% | 25–50 | additional | Page raster is CPU only (Acrobat has GPU rendering); Windows CNG and macOS Keychain keys sign, no PKCS #11; no scanners; web printing goes through the browser's print dialog as pictures, not vectors | [hardware-parity.md](hardware-parity.md) | -| Localization | ≈ 59% over the 12 key languages | 5% | 35–60 | additional | 15 catalogs, 13 at 94–100%; Chinese UI shows tofu in releases (#826, #688); Arabic not mirrored; no Hindi, Indonesian, Korean, Vietnamese | [localization-parity.md](localization-parity.md) | +| Localization | ≈ 76% over the 12 key languages | 5% | 25–50 | additional | 17 catalogs; Chinese UI shows tofu in releases (#826, #688); Arabic not mirrored; no Hindi or Korean | [localization-parity.md](localization-parity.md) | | Performance | ≈ 40% | 6% | 25–45 | additional | 500-page smooth scrolling and large-file memory work (#307) done; no performance budgets (`misc.performance-budgets`), no lazy loading of GB files; blurry text at 1080p/1440p (#730) | [gaps.md](gaps.md) | | Stability | ≈ 50% | 8% | 45–80 | additional | Never-crash rules and nightly fuzzing; 245 open issues on 2026-10-10, many of them `fix(...)` reports of wrong results in shipped features (the #799–#821 batch is fixed) | [gaps.md](gaps.md) | | Platforms | ≈ 70% | 5% | 15–30 | additional | macOS (signed, notarized), Windows x64/x86/ARM64 (signed), Linux (AppImage, deb, rpm, Flatpak), FreeBSD, web (WASM). Acrobat has no Linux, FreeBSD or full web editor; we lack web OCR and web recovery | [hardware-parity.md](hardware-parity.md) |