From 10a92fcc171d7dd973533606efb7523d85d17b55 Mon Sep 17 00:00:00 2001 From: u8array Date: Sun, 11 Oct 2026 05:09:12 +0200 Subject: [PATCH] feat(output): the dialog picks the renderer beside the action that uses its image --- README.md | 6 +-- src/components/Output/OutputDialog.test.tsx | 27 ++++++++++++++ src/components/Output/OutputDialog.tsx | 2 + .../Output/OutputDialog.web.test.tsx | 18 +++++++++ src/components/Output/RendererSelect.tsx | 37 +++++++++++++++++++ src/components/Output/SystemPrintBody.tsx | 2 + .../PrinterSettings/PreviewSettingsTab.tsx | 9 +++-- src/lib/previewProviderLabel.ts | 22 ++++++++++- src/locales/ar.ts | 5 ++- src/locales/bg.ts | 5 ++- src/locales/cs.ts | 5 ++- src/locales/da.ts | 5 ++- src/locales/de.ts | 5 ++- src/locales/el.ts | 5 ++- src/locales/en.ts | 5 ++- src/locales/es.ts | 5 ++- src/locales/et.ts | 5 ++- src/locales/fa.ts | 5 ++- src/locales/fi.ts | 5 ++- src/locales/fr.ts | 5 ++- src/locales/he.ts | 5 ++- src/locales/hr.ts | 5 ++- src/locales/hu.ts | 5 ++- src/locales/it.ts | 5 ++- src/locales/ja.ts | 5 ++- src/locales/ko.ts | 5 ++- src/locales/lt.ts | 5 ++- src/locales/lv.ts | 5 ++- src/locales/nl.ts | 5 ++- src/locales/no.ts | 5 ++- src/locales/pl.ts | 5 ++- src/locales/pt.ts | 5 ++- src/locales/ro.ts | 5 ++- src/locales/sk.ts | 5 ++- src/locales/sl.ts | 5 ++- src/locales/sr.ts | 5 ++- src/locales/sv.ts | 5 ++- src/locales/tr.ts | 5 ++- src/locales/zh-hans.ts | 5 ++- src/locales/zh-hant.ts | 5 ++- 40 files changed, 211 insertions(+), 72 deletions(-) create mode 100644 src/components/Output/RendererSelect.tsx diff --git a/README.md b/README.md index 0cab4cb6..56981f2e 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,8 @@ The **ZPL** panel at the bottom shows the generated ZPL, **Copy** puts it on the - **File → Export ZPL:** saves a `.zpl` file, or `.prn` where the save dialog offers file types - **File → Output:** opens the output dialog with two destinations. - - **Print** sends the code to a Zebra over the network, through the Zebra Browser Print agent in the browser, or through the system spooler or USB on desktop. Its **Other printer** way renders the label and hands it to the operating system's print dialog, which reaches any printer with a driver. On desktop, **Check printer** asks the printer for its state over the network or USB. - - **File** writes a **PDF** with one page per label page, rendered by the preview renderer. With the renderer off, ZPLab captures the canvas, so the PDF holds the current page only. The **Scope** option **One label per data row** needs the renderer and holds one page per row. **PNG** saves the canvas drawing of the current label. + - **Print** sends the code to a Zebra over the network, through the Zebra Browser Print agent in the browser, or through the system spooler or USB on desktop. Its **Other printer** way renders the label and hands it to the operating system's print dialog, which reaches any printer with a driver. Its **Renderer** select picks the preview renderer. On desktop, **Check printer** asks the printer for its state over the network or USB. + - **File** writes a **PDF** with one page per label page, rendered by the chosen **Renderer**. With **Built-in**, the PDF holds the current page only. The **Scope** option **One label per data row** needs the renderer and holds one page per row. **PNG** saves the canvas drawing of the current label. ### 5. Save the design @@ -155,7 +155,7 @@ On desktop, **Connect data** also reads an Excel worksheet. **File → Settings - Saved designs and label exports exclude **Setup Script** values such as printer name and locale. - **Clear** resets the **Setup Script** values and keeps the uploads. -The **App → Printer** tab sets how labels are sent and to which printer. On desktop, **Adopt from printer** reads the printer's own settings and asks which of the differing values to adopt. **File → Output** opens with that method selected. The **App → Preview** tab selects the renderer: the connected printer (desktop), Labelary, or off. It takes a premium Labelary endpoint and API key. The key is stored in the OS keychain on desktop and in browser storage on the web. +The **App → Printer** tab sets how labels are sent and to which printer. On desktop, **Adopt from printer** reads the printer's own settings and asks which of the differing values to adopt. **File → Output** opens with that method selected. The **App → Preview** tab selects the renderer: the connected printer (desktop), Labelary, or **Built-in**. It takes a premium Labelary endpoint and API key. The key is stored in the OS keychain on desktop and in browser storage on the web. ### MCP server diff --git a/src/components/Output/OutputDialog.test.tsx b/src/components/Output/OutputDialog.test.tsx index bcceb280..5f15c8b7 100644 --- a/src/components/Output/OutputDialog.test.tsx +++ b/src/components/Output/OutputDialog.test.tsx @@ -161,6 +161,33 @@ describe("OutputDialog", () => { expect(output.compareDocumentPosition(notice) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy(); }); + it("offers the renderer where its image is used and writes the shared setting", () => { + act(() => { + useLabelStore.setState({ previewProvider: "labelary", labelaryNoticeAcknowledged: true }); + }); + const r = showDialog(); + act(() => { + fireEvent.click(r.getByText(loc.tabSystem)); + }); + act(() => { + fireEvent.click(r.getByRole("button", { name: loc.rendererHeading })); + }); + act(() => { + r.getByRole("option", { name: en.printerSettings.preview.providerPrinter }).click(); + }); + expect(useLabelStore.getState().previewProvider).toBe("printer"); + + act(() => { + useLabelStore.getState().setOutputChoice({ kind: "file", fileFormat: "pdf" }); + }); + expect(r.getByRole("button", { name: loc.rendererHeading })).toBeTruthy(); + // The PNG is always the canvas, so there is nothing to pick. + act(() => { + useLabelStore.getState().setOutputChoice({ fileFormat: "png" }); + }); + expect(r.queryByRole("button", { name: loc.rendererHeading })).toBeNull(); + }); + it("stays and says that the label is rendering", async () => { let finish: () => void = () => undefined; const onPrintImage = vi.fn(() => new Promise((resolve) => (finish = resolve))); diff --git a/src/components/Output/OutputDialog.tsx b/src/components/Output/OutputDialog.tsx index e025245e..74ee641f 100644 --- a/src/components/Output/OutputDialog.tsx +++ b/src/components/Output/OutputDialog.tsx @@ -26,6 +26,7 @@ import { usePrintWays } from "../../hooks/usePrintWays"; import { useSendNotices } from "../../hooks/useSendNotices"; import { ActiveRowNotice, DatasetNotice } from "./DatasetNotice"; import { SystemPrintBody } from "./SystemPrintBody"; +import { RendererSelect } from "./RendererSelect"; import { ZebraWayPanel } from "./ZebraWayPanel"; interface Props { @@ -189,6 +190,7 @@ export function OutputDialog({ zpl, source, facts, onClose, onPrintImage, onExpo {choice.fileFormat === "pdf" ? ( <> + {scopeChoosable && ( // Flex on an inner box, because a legend inside a flex fieldset lays out per browser.
diff --git a/src/components/Output/OutputDialog.web.test.tsx b/src/components/Output/OutputDialog.web.test.tsx index 3b539aab..3b096bb4 100644 --- a/src/components/Output/OutputDialog.web.test.tsx +++ b/src/components/Output/OutputDialog.web.test.tsx @@ -30,6 +30,24 @@ describe("OutputDialog in the browser", () => { expect(printButton(r.container)).toBeTruthy(); }); + it("lists the printer renderer but locks it, like the settings do", () => { + const r = showDialog({ facts: webFacts }); + act(() => { + fireEvent.click(r.getByRole("button", { name: loc.rendererHeading })); + }); + expect(r.getByRole("option", { name: en.printerSettings.preview.providerPrinter }).getAttribute("aria-disabled")).toBe("true"); + expect(r.getByRole("option", { name: en.printerSettings.preview.providerNone }).getAttribute("aria-disabled")).toBeNull(); + }); + + it("names the renderer that draws when the stored one cannot", () => { + act(() => { + useLabelStore.setState({ previewProvider: "printer" }); + }); + const r = showDialog({ facts: webFacts }); + // The stored printer choice degrades to Labelary off the desktop, not to the built-in renderer. + expect(r.getByText(`Currently active: ${en.printerSettings.preview.providerLabelary}`)).toBeTruthy(); + }); + it("runs the print path the rendered label takes", async () => { const r = showDialog({ facts: webFacts }); diff --git a/src/components/Output/RendererSelect.tsx b/src/components/Output/RendererSelect.tsx new file mode 100644 index 00000000..f8f5e385 --- /dev/null +++ b/src/components/Output/RendererSelect.tsx @@ -0,0 +1,37 @@ +import { useId } from "react"; +import { useT } from "../../hooks/useT"; +import { formatTemplate } from "../../lib/formatTemplate"; +import { previewProviderChoices, previewProviderLabel } from "../../lib/previewProviderLabel"; +import { selectEffectivePreviewProvider, useLabelStore } from "../../store/labelStore"; +import type { PreviewProvider } from "../../store/slices/uiSlice"; +import { sectionHeadingCls } from "../ui/formStyles"; +import { Select } from "../ui/Select"; + +/** The renderer choice beside the action that uses its image, writing the same setting as the settings tab. */ +export function RendererSelect() { + const t = useT(); + const id = useId(); + const chosen = useLabelStore((s) => s.previewProvider); + const effective = useLabelStore(selectEffectivePreviewProvider); + const labelaryAvailable = useLabelStore((s) => s.thirdParty.labelary); + const setProvider = useLabelStore((s) => s.setPreviewProvider); + const choices = previewProviderChoices(t, { thirdParty: { labelary: labelaryAvailable } }); + return ( +
+ + + id={id} + value={chosen} + onChange={setProvider} + groups={[{ options: choices.map((c) => ({ value: c.provider, label: c.label, disabled: c.disabled, tooltip: c.reason })) }]} + /> + {effective !== chosen && ( + + {formatTemplate(t.printerSettings.preview.providerInUseFmt, { provider: previewProviderLabel(t, effective) })} + + )} +
+ ); +} diff --git a/src/components/Output/SystemPrintBody.tsx b/src/components/Output/SystemPrintBody.tsx index 3ae0c2a7..3223fa90 100644 --- a/src/components/Output/SystemPrintBody.tsx +++ b/src/components/Output/SystemPrintBody.tsx @@ -1,6 +1,7 @@ import { useT } from "../../hooks/useT"; import { primaryButtonCls } from "../ui/formStyles"; import { Tooltip } from "../ui/Tooltip"; +import { RendererSelect } from "./RendererSelect"; /** The system way's body, with no device to pick and nothing to address. */ export function SystemPrintBody({ onPrint, rendering, locked }: { onPrint: () => void; rendering: boolean; locked: boolean }) { @@ -8,6 +9,7 @@ export function SystemPrintBody({ onPrint, rendering, locked }: { onPrint: () => const loc = t.zebraPrint; return (
+

{rendering ? loc.systemRendering : ""}

diff --git a/src/components/PrinterSettings/PreviewSettingsTab.tsx b/src/components/PrinterSettings/PreviewSettingsTab.tsx index 08b51e08..8942cfc3 100644 --- a/src/components/PrinterSettings/PreviewSettingsTab.tsx +++ b/src/components/PrinterSettings/PreviewSettingsTab.tsx @@ -6,18 +6,19 @@ import { isDefaultHost } from "../../lib/labelary"; import { labelCls, inputCls, buttonCls, sectionHeadingCls } from "../ui/formStyles"; import { RadioOption } from "../ui/RadioOption"; import { formatTemplate } from "../../lib/formatTemplate"; -import { previewProviderLabel } from "../../lib/previewProviderLabel"; +import { previewProviderChoices, previewProviderLabel } from "../../lib/previewProviderLabel"; /** Preview configuration: which renderer draws the overlay and the Labelary privacy consent. */ export function PreviewSettingsTab() { const t = useT(); const loc = t.printerSettings.preview; - // The radio shows the stored choice, so a click always commits. A degraded build names what renders instead. + // The radio shows the stored choice, so a click always commits. The note names what draws where the choice is out of reach. const chosen = useLabelStore((s) => s.previewProvider); const provider = useLabelStore(selectEffectivePreviewProvider); const setProvider = useLabelStore((s) => s.setPreviewProvider); const labelaryAvailable = useLabelStore((s) => s.thirdParty.labelary); + const locked = Object.fromEntries(previewProviderChoices(t, { thirdParty: { labelary: labelaryAvailable } }).map((c) => [c.provider, c.disabled])); const labelaryConsent = useLabelStore((s) => s.labelaryNoticeAcknowledged); const acknowledgeLabelaryNotice = useLabelStore((s) => s.acknowledgeLabelaryNotice); const revokeLabelaryNotice = useLabelStore((s) => s.revokeLabelaryNotice); @@ -84,7 +85,7 @@ export function PreviewSettingsTab() { current={chosen} onSelect={setProvider} label={loc.providerLabelary} - disabled={!labelaryAvailable} + disabled={locked.labelary} /> ): PreviewProviderChoice[] { + const loc = t.printerSettings.preview; + return [ + { provider: "labelary", label: loc.providerLabelary, disabled: !s.thirdParty.labelary }, + { provider: "printer", label: loc.providerPrinter, disabled: !isDesktopShell, ...(isDesktopShell ? {} : { reason: loc.providerPrinterDesktopOnly }) }, + { provider: "none", label: loc.providerNone, disabled: false }, + ]; +} diff --git a/src/locales/ar.ts b/src/locales/ar.ts index fb6470ef..08077fcd 100644 --- a/src/locales/ar.ts +++ b/src/locales/ar.ts @@ -855,8 +855,8 @@ const ar = { providerPrinter: 'الطابعة المتصلة', providerPrinterHint: 'تعرض الطابعة الملصق باستخدام برنامجها الثابت الخاص؛ لا يتم طباعة أي شيء.', providerPrinterDesktopOnly: 'يتطلب تطبيق سطح المكتب.', - providerNone: 'إيقاف', - providerNoneHint: 'يُخفي المعاينة. يستخدم تصدير PDF والطباعة كصورة اللوحة.', + providerNone: 'مدمج', + providerNoneHint: 'لا توجد طبقة معاينة. يستخدم تصدير PDF والطباعة كصورة رسم اللوحة، لذا يحتوي PDF على الصفحة الحالية فقط.', providerInUseFmt: 'نشط حاليًا: {provider}', printerTargetHint: 'يتم ضبط الطابعة ضمن التطبيق، الطابعة.', privacyHeading: 'الخصوصية', @@ -1887,6 +1887,7 @@ const ar = { tabUsb: 'طابعة ZPL (USB)', tabSystem: 'طابعة أخرى', wayHeading: 'الطابعة', + rendererHeading: 'العارض', wayNetwork: 'يرسل عبر TCP مباشرة إلى الطابعة، دون مشغّل أو قائمة انتظار. الطابعة تجيب، لذلك تعمل الحالة والمعاينة.', wayNetworkWeb: 'يرسل الكود إلى منفذ الطابعة. لا يحصل المتصفح على رد، فلا يُقرأ أي شيء.', wayBrowserPrint: 'يمر عبر Zebra Browser Print على الكمبيوتر الذي يشغّل المتصفح.', diff --git a/src/locales/bg.ts b/src/locales/bg.ts index 40e0fb3f..db3cf602 100644 --- a/src/locales/bg.ts +++ b/src/locales/bg.ts @@ -855,8 +855,8 @@ const bg = { providerPrinter: 'Свързан принтер', providerPrinterHint: 'Принтерът рендира етикета със собствения си фърмуер; нищо не се отпечатва.', providerPrinterDesktopOnly: 'Изисква настолното приложение.', - providerNone: 'Изключено', - providerNoneHint: 'Скрива прегледа. Експортът на PDF и печатът като изображение използват платното.', + providerNone: 'Вграден', + providerNoneHint: 'Няма слой за преглед. Експортът на PDF и печатът като изображение използват рисунката на платното, затова PDF съдържа само текущата страница.', providerInUseFmt: 'В момента активен: {provider}', printerTargetHint: 'Принтерът се задава под Приложение, Принтер.', privacyHeading: 'Поверителност', @@ -1887,6 +1887,7 @@ const bg = { tabUsb: 'ZPL принтер (USB)', tabSystem: 'Друг принтер', wayHeading: 'Принтер', + rendererHeading: 'Визуализатор', wayNetwork: 'Изпраща директно към принтера по TCP, без драйвер и опашка. Принтерът отговаря, затова състоянието и визуализацията работят.', wayNetworkWeb: 'Изпраща кода до порта на принтера. Браузърът не получава отговор, затова нищо не се чете обратно.', wayBrowserPrint: 'Минава през Zebra Browser Print на компютъра, на който работи браузърът.', diff --git a/src/locales/cs.ts b/src/locales/cs.ts index dc6bab95..32198460 100644 --- a/src/locales/cs.ts +++ b/src/locales/cs.ts @@ -855,8 +855,8 @@ const cs = { providerPrinter: 'Připojená tiskárna', providerPrinterHint: 'Tiskárna vykreslí štítek pomocí vlastního firmwaru; nic se netiskne.', providerPrinterDesktopOnly: 'Vyžaduje desktopovou aplikaci.', - providerNone: 'Vypnuto', - providerNoneHint: 'Skryje náhled. Export PDF a tisk jako obrázek používají plátno.', + providerNone: 'Vestavěné', + providerNoneHint: 'Žádná vrstva náhledu. Export PDF a tisk jako obrázek používají kreslení plátna, takže PDF obsahuje jen aktuální stránku.', providerInUseFmt: 'Aktuálně aktivní: {provider}', printerTargetHint: 'Tiskárna se nastavuje pod Aplikace, Tiskárna.', privacyHeading: 'Soukromí', @@ -1887,6 +1887,7 @@ const cs = { tabUsb: 'ZPL tiskárna (USB)', tabSystem: 'Jiná tiskárna', wayHeading: 'Tiskárna', + rendererHeading: 'Vykreslovač', wayNetwork: 'Posílá přes TCP přímo na tiskárnu, bez ovladače a tiskové fronty. Tiskárna odpovídá, proto funguje stav i náhled.', wayNetworkWeb: 'Odesílá kód na port tiskárny. Prohlížeč nedostane odpověď, takže se nic nenačte zpět.', wayBrowserPrint: 'Jde přes Zebra Browser Print na počítači, na kterém běží prohlížeč.', diff --git a/src/locales/da.ts b/src/locales/da.ts index c2189ca5..1a8d86bd 100644 --- a/src/locales/da.ts +++ b/src/locales/da.ts @@ -855,8 +855,8 @@ const da = { providerPrinter: 'Tilsluttet printer', providerPrinterHint: 'Printeren gengiver etiketten med sin egen firmware; der udskrives ikke noget.', providerPrinterDesktopOnly: 'Kræver desktopappen.', - providerNone: 'Fra', - providerNoneHint: 'Skjuler forhåndsvisningen. PDF-eksport og udskrift som billede bruger lærredet.', + providerNone: 'Indbygget', + providerNoneHint: "Intet forhåndsvisningslag. PDF-eksport og udskrift som billede bruger lærredets optegning, så PDF'en kun indeholder den aktuelle side.", providerInUseFmt: 'Aktiv nu: {provider}', printerTargetHint: 'Printeren indstilles under App, Printer.', privacyHeading: 'Privatliv', @@ -1887,6 +1887,7 @@ const da = { tabUsb: 'ZPL-printer (USB)', tabSystem: 'Anden printer', wayHeading: 'Printer', + rendererHeading: 'Renderer', wayNetwork: 'Sender over TCP direkte til printeren, uden driver og kø. Printeren svarer, så status og forhåndsvisning virker.', wayNetworkWeb: 'Sender koden til printerens port. Browseren får intet svar, så intet læses retur.', wayBrowserPrint: 'Går via Zebra Browser Print på den computer, der kører browseren.', diff --git a/src/locales/de.ts b/src/locales/de.ts index 60701a64..99d0335a 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -855,8 +855,8 @@ const de = { providerPrinter: 'Verbundener Drucker', providerPrinterHint: 'Der Drucker rendert das Label mit seiner eigenen Firmware; es wird nichts gedruckt.', providerPrinterDesktopOnly: 'Nur in der Desktop-App verfügbar.', - providerNone: 'Aus', - providerNoneHint: 'Blendet die Vorschau aus. PDF-Export und Bilddruck nutzen den Canvas.', + providerNone: 'Integriert', + providerNoneHint: 'Kein Vorschau-Overlay. PDF-Export und Bilddruck nutzen die Canvas-Zeichnung, daher enthält das PDF nur die aktuelle Seite.', providerInUseFmt: 'Gerade aktiv: {provider}', printerTargetHint: 'Der Drucker wird unter App, Drucker eingestellt.', privacyHeading: 'Datenschutz', @@ -1137,6 +1137,7 @@ const de = { tabUsb: 'ZPL-Drucker (USB)', tabSystem: 'Anderer Drucker', wayHeading: 'Drucker', + rendererHeading: 'Renderer', wayNetwork: 'Sendet per TCP direkt an den Drucker, ohne Treiber und Warteschlange. Der Drucker antwortet, darum funktionieren Status und Vorschau.', wayNetworkWeb: 'Sendet den Code an den Druckerport. Der Browser bekommt keine Antwort, der Drucker antwortet also nicht.', wayBrowserPrint: 'Läuft über Zebra Browser Print auf dem Rechner, der den Browser ausführt.', diff --git a/src/locales/el.ts b/src/locales/el.ts index 8172201b..4ee7fdf1 100644 --- a/src/locales/el.ts +++ b/src/locales/el.ts @@ -855,8 +855,8 @@ const el = { providerPrinter: 'Συνδεδεμένος εκτυπωτής', providerPrinterHint: 'Ο εκτυπωτής αποδίδει την ετικέτα με το δικό του firmware· δεν εκτυπώνεται τίποτα.', providerPrinterDesktopOnly: 'Απαιτεί την εφαρμογή υπολογιστή.', - providerNone: 'Ανενεργό', - providerNoneHint: 'Αποκρύπτει την προεπισκόπηση. Η εξαγωγή PDF και η εκτύπωση ως εικόνα χρησιμοποιούν τον καμβά.', + providerNone: 'Ενσωματωμένο', + providerNoneHint: 'Καμία επικάλυψη προεπισκόπησης. Η εξαγωγή PDF και η εκτύπωση ως εικόνα χρησιμοποιούν το σχέδιο του καμβά, οπότε το PDF περιέχει μόνο την τρέχουσα σελίδα.', providerInUseFmt: 'Ενεργό αυτήν τη στιγμή: {provider}', printerTargetHint: 'Ο εκτυπωτής ρυθμίζεται στην Εφαρμογή, Εκτυπωτής.', privacyHeading: 'Απόρρητο', @@ -1887,6 +1887,7 @@ const el = { tabUsb: 'Εκτυπωτής ZPL (USB)', tabSystem: 'Άλλος εκτυπωτής', wayHeading: 'Εκτυπωτής', + rendererHeading: 'Μηχανή απόδοσης', wayNetwork: "Στέλνει μέσω TCP απευθείας στον εκτυπωτή, χωρίς οδηγό και σειρά αναμονής. Ο εκτυπωτής απαντά, γι' αυτό λειτουργούν η κατάσταση και η προεπισκόπηση.", wayNetworkWeb: 'Στέλνει τον κώδικα στη θύρα του εκτυπωτή. Το πρόγραμμα περιήγησης δεν λαμβάνει απάντηση, οπότε τίποτα δεν διαβάζεται πίσω.', wayBrowserPrint: 'Περνάει μέσω του Zebra Browser Print στον υπολογιστή που εκτελεί το πρόγραμμα περιήγησης.', diff --git a/src/locales/en.ts b/src/locales/en.ts index 6eaec068..5d9d6451 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -855,8 +855,8 @@ const en = { providerPrinter: 'Connected printer', providerPrinterHint: 'The printer renders the label with its own firmware; nothing is printed.', providerPrinterDesktopOnly: 'Requires the desktop app.', - providerNone: 'Off', - providerNoneHint: 'Hides Preview. PDF export and image print use the canvas.', + providerNone: 'Built-in', + providerNoneHint: 'No preview overlay. PDF export and image print use the canvas drawing, so the PDF holds the current page only.', providerInUseFmt: 'Currently active: {provider}', printerTargetHint: 'The printer is set under App, Printer.', privacyHeading: 'Privacy', @@ -1137,6 +1137,7 @@ const en = { tabUsb: 'ZPL printer (USB)', tabSystem: 'Other printer', wayHeading: 'Printer', + rendererHeading: 'Renderer', wayNetwork: 'Sends over TCP straight to the printer, past any driver or queue. The printer answers, so status and preview work.', wayNetworkWeb: "Posts the code to the printer's port. The browser gets no reply, so nothing reads back.", wayBrowserPrint: 'Goes through Zebra Browser Print on the computer running the browser.', diff --git a/src/locales/es.ts b/src/locales/es.ts index 763ac789..61d58273 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -855,8 +855,8 @@ const es = { providerPrinter: 'Impresora conectada', providerPrinterHint: 'La impresora renderiza la etiqueta con su propio firmware; no se imprime nada.', providerPrinterDesktopOnly: 'Requiere la aplicación de escritorio.', - providerNone: 'Desactivado', - providerNoneHint: 'Oculta la vista previa. La exportación a PDF y la impresión como imagen usan el lienzo.', + providerNone: 'Integrado', + providerNoneHint: 'Sin superposición de vista previa. La exportación a PDF y la impresión como imagen usan el dibujo del lienzo, por lo que el PDF solo contiene la página actual.', providerInUseFmt: 'Actualmente activo: {provider}', printerTargetHint: 'La impresora se configura en App, Impresora.', privacyHeading: 'Privacidad', @@ -1887,6 +1887,7 @@ const es = { tabUsb: 'Impresora ZPL (USB)', tabSystem: 'Otra impresora', wayHeading: 'Impresora', + rendererHeading: 'Renderizador', wayNetwork: 'Envía por TCP directamente a la impresora, sin controlador ni cola. La impresora responde, por eso funcionan el estado y la vista previa.', wayNetworkWeb: 'Envía el código al puerto de la impresora. El navegador no recibe respuesta, así que nada responde.', wayBrowserPrint: 'Pasa por Zebra Browser Print en el ordenador que ejecuta el navegador.', diff --git a/src/locales/et.ts b/src/locales/et.ts index eeba0fbf..a74bdcd3 100644 --- a/src/locales/et.ts +++ b/src/locales/et.ts @@ -855,8 +855,8 @@ const et = { providerPrinter: 'Ühendatud printer', providerPrinterHint: 'Printer renderdab sildi oma püsivara abil; midagi ei prindita.', providerPrinterDesktopOnly: 'Nõuab lauaarvutirakendust.', - providerNone: 'Väljas', - providerNoneHint: 'Peidab eelvaate. PDF-eksport ja pildina printimine kasutavad lõuendit.', + providerNone: 'Sisseehitatud', + providerNoneHint: 'Eelvaate ülekatet pole. PDF-eksport ja pildina printimine kasutavad lõuendi joonistust, mistõttu PDF sisaldab vaid praegust lehekülge.', providerInUseFmt: 'Praegu aktiivne: {provider}', printerTargetHint: 'Printer seadistatakse jaotises Rakendus, Printer.', privacyHeading: 'Privaatsus', @@ -1887,6 +1887,7 @@ const et = { tabUsb: 'ZPL-printer (USB)', tabSystem: 'Muu printer', wayHeading: 'Printer', + rendererHeading: 'Renderdaja', wayNetwork: 'Saadab TCP kaudu otse printerisse, draiverit ja järjekorda vahele jättes. Printer vastab, seetõttu töötavad olek ja eelvaade.', wayNetworkWeb: 'Saadab koodi printeri porti. Brauser ei saa vastust, nii et midagi tagasi ei loeta.', wayBrowserPrint: 'Käib Zebra Browser Printi kaudu arvutis, kus brauser töötab.', diff --git a/src/locales/fa.ts b/src/locales/fa.ts index 917e26b4..e6f784c9 100644 --- a/src/locales/fa.ts +++ b/src/locales/fa.ts @@ -855,8 +855,8 @@ const fa = { providerPrinter: 'چاپگر متصل', providerPrinterHint: 'چاپگر برچسب را با فریمور خودش رندر می‌کند؛ چیزی چاپ نمی‌شود.', providerPrinterDesktopOnly: 'به برنامه دسکتاپ نیاز دارد.', - providerNone: 'خاموش', - providerNoneHint: 'پیش‌نمایش را پنهان می‌کند. خروجی PDF و چاپ به‌صورت تصویر از بوم استفاده می‌کنند.', + providerNone: 'توکار', + providerNoneHint: 'بدون لایه پیش‌نمایش. خروجی PDF و چاپ به‌صورت تصویر از ترسیم بوم استفاده می‌کنند، بنابراین PDF فقط صفحه فعلی را دارد.', providerInUseFmt: 'اکنون فعال: {provider}', printerTargetHint: 'چاپگر در برنامه، چاپگر تنظیم می‌شود.', privacyHeading: 'حریم خصوصی', @@ -1887,6 +1887,7 @@ const fa = { tabUsb: 'چاپگر ZPL (USB)', tabSystem: 'چاپگر دیگر', wayHeading: 'چاپگر', + rendererHeading: 'موتور رندر', wayNetwork: 'با TCP مستقیم به چاپگر می‌فرستد، بدون درایور و صف چاپ. چاپگر پاسخ می‌دهد، بنابراین وضعیت و پیش‌نمایش کار می‌کنند.', wayNetworkWeb: 'کد را به پورت چاپگر ارسال می‌کند. مرورگر پاسخی دریافت نمی‌کند، پس چیزی خوانده نمی‌شود.', wayBrowserPrint: 'از طریق Zebra Browser Print روی کامپیوتری که مرورگر را اجرا می‌کند عبور می‌کند.', diff --git a/src/locales/fi.ts b/src/locales/fi.ts index 60cd4cc5..b090823f 100644 --- a/src/locales/fi.ts +++ b/src/locales/fi.ts @@ -855,8 +855,8 @@ const fi = { providerPrinter: 'Yhdistetty tulostin', providerPrinterHint: 'Tulostin renderöi etiketin omalla laiteohjelmistollaan; mitään ei tulosteta.', providerPrinterDesktopOnly: 'Vaatii työpöytäsovelluksen.', - providerNone: 'Pois', - providerNoneHint: 'Piilottaa esikatselun. PDF-vienti ja kuvana tulostus käyttävät kangasta.', + providerNone: 'Sisäänrakennettu', + providerNoneHint: 'Ei esikatselukerrosta. PDF-vienti ja kuvana tulostus käyttävät kankaan piirrosta, joten PDF sisältää vain nykyisen sivun.', providerInUseFmt: 'Tällä hetkellä käytössä: {provider}', printerTargetHint: 'Tulostin asetetaan kohdassa Sovellus, Tulostin.', privacyHeading: 'Tietosuoja', @@ -1887,6 +1887,7 @@ const fi = { tabUsb: 'ZPL-tulostin (USB)', tabSystem: 'Muu tulostin', wayHeading: 'Tulostin', + rendererHeading: 'Renderöijä', wayNetwork: 'Lähettää TCP:n yli suoraan tulostimelle, ohi ajurin ja jonon. Tulostin vastaa, joten tila ja esikatselu toimivat.', wayNetworkWeb: 'Lähettää koodin tulostimen porttiin. Selain ei saa vastausta, jolloin mitään ei lueta takaisin.', wayBrowserPrint: 'Kulkee Zebra Browser Printin kautta tietokoneella, jolla selain on käynnissä.', diff --git a/src/locales/fr.ts b/src/locales/fr.ts index f21e0b97..2dc11cbc 100644 --- a/src/locales/fr.ts +++ b/src/locales/fr.ts @@ -855,8 +855,8 @@ const fr = { providerPrinter: 'Imprimante connectée', providerPrinterHint: "L'imprimante restitue l'étiquette avec son propre micrologiciel ; rien n'est imprimé.", providerPrinterDesktopOnly: "Nécessite l'application de bureau.", - providerNone: 'Désactivé', - providerNoneHint: "Masque l'aperçu. L'export PDF et l'impression en image utilisent le canevas.", + providerNone: 'Intégré', + providerNoneHint: "Aucune superposition d'aperçu. L'export PDF et l'impression en image utilisent le dessin du canevas, donc le PDF ne contient que la page actuelle.", providerInUseFmt: 'Actuellement actif : {provider}', printerTargetHint: "L'imprimante se règle dans App, Imprimante.", privacyHeading: 'Confidentialité', @@ -1887,6 +1887,7 @@ const fr = { tabUsb: 'Imprimante ZPL (USB)', tabSystem: 'Autre imprimante', wayHeading: 'Imprimante', + rendererHeading: 'Moteur de rendu', wayNetwork: "Envoie en TCP directement à l'imprimante, sans pilote ni file d'attente. L'imprimante répond, donc l'état et l'aperçu fonctionnent.", wayNetworkWeb: "Envoie le code au port de l'imprimante. Le navigateur ne reçoit aucune réponse, donc rien ne répond.", wayBrowserPrint: "Passe par Zebra Browser Print sur l'ordinateur qui exécute le navigateur.", diff --git a/src/locales/he.ts b/src/locales/he.ts index f97109c2..c8d06712 100644 --- a/src/locales/he.ts +++ b/src/locales/he.ts @@ -855,8 +855,8 @@ const he = { providerPrinter: 'מדפסת מחוברת', providerPrinterHint: 'המדפסת מעבדת את התווית באמצעות הקושחה שלה; דבר לא מודפס בפועל.', providerPrinterDesktopOnly: 'דורש את אפליקציית שולחן העבודה.', - providerNone: 'כבוי', - providerNoneHint: 'מסתיר את התצוגה המקדימה. ייצוא PDF והדפסה כתמונה משתמשים בקנבס.', + providerNone: 'מובנה', + providerNoneHint: 'אין שכבת תצוגה מקדימה. ייצוא PDF והדפסה כתמונה משתמשים בציור הקנבס, כך שה-PDF מכיל רק את העמוד הנוכחי.', providerInUseFmt: 'פעיל כעת: {provider}', printerTargetHint: 'המדפסת מוגדרת תחת אפליקציה, מדפסת.', privacyHeading: 'פרטיות', @@ -1887,6 +1887,7 @@ const he = { tabUsb: 'מדפסת ZPL (USB)', tabSystem: 'מדפסת אחרת', wayHeading: 'מדפסת', + rendererHeading: 'מנוע עיבוד', wayNetwork: 'שולח ב-TCP ישירות למדפסת, בלי מנהל התקן ותור הדפסה. המדפסת משיבה, ולכן המצב והתצוגה המקדימה עובדים.', wayNetworkWeb: 'שולח את הקוד לפורט המדפסת. הדפדפן לא מקבל תגובה, כך ששום דבר לא נקרא בחזרה.', wayBrowserPrint: 'עובר דרך Zebra Browser Print במחשב שמריץ את הדפדפן.', diff --git a/src/locales/hr.ts b/src/locales/hr.ts index 3700aea8..37777652 100644 --- a/src/locales/hr.ts +++ b/src/locales/hr.ts @@ -855,8 +855,8 @@ const hr = { providerPrinter: 'Povezani pisač', providerPrinterHint: 'Pisač prikazuje naljepnicu vlastitim firmverom; ništa se ne ispisuje.', providerPrinterDesktopOnly: 'Zahtijeva desktop aplikaciju.', - providerNone: 'Isključeno', - providerNoneHint: 'Skriva pregled. Izvoz PDF-a i ispis kao slika koriste platno.', + providerNone: 'Ugrađeno', + providerNoneHint: 'Nema sloja pregleda. Izvoz PDF-a i ispis kao slika koriste crtež platna, pa PDF sadrži samo trenutnu stranicu.', providerInUseFmt: 'Trenutno aktivno: {provider}', printerTargetHint: 'Pisač se postavlja pod Aplikacija, Pisač.', privacyHeading: 'Privatnost', @@ -1887,6 +1887,7 @@ const hr = { tabUsb: 'ZPL pisač (USB)', tabSystem: 'Drugi pisač', wayHeading: 'Pisač', + rendererHeading: 'Prikazivač', wayNetwork: 'Šalje preko TCP-a izravno na pisač, bez upravljačkog programa i reda čekanja. Pisač odgovara, zato rade stanje i pretpregled.', wayNetworkWeb: 'Šalje kod na port pisača. Preglednik ne prima odgovor, pa ništa ne čita natrag.', wayBrowserPrint: 'Prolazi kroz Zebra Browser Print na računalu koje pokreće preglednik.', diff --git a/src/locales/hu.ts b/src/locales/hu.ts index 9304ee9d..4b49828d 100644 --- a/src/locales/hu.ts +++ b/src/locales/hu.ts @@ -855,8 +855,8 @@ const hu = { providerPrinter: 'Csatlakoztatott nyomtató', providerPrinterHint: 'A nyomtató a saját firmware-ével jeleníti meg a címkét; nem történik nyomtatás.', providerPrinterDesktopOnly: 'Az asztali alkalmazás szükséges hozzá.', - providerNone: 'Kikapcsolva', - providerNoneHint: 'Elrejti az előnézetet. A PDF-exportálás és a képként nyomtatás a vászont használja.', + providerNone: 'Beépített', + providerNoneHint: 'Nincs előnézeti réteg. A PDF-exportálás és a képként nyomtatás a vászon rajzát használják, így a PDF csak az aktuális oldalt tartalmazza.', providerInUseFmt: 'Jelenleg aktív: {provider}', printerTargetHint: 'A nyomtatót az Alkalmazás, Nyomtató alatt kell beállítani.', privacyHeading: 'Adatvédelem', @@ -1887,6 +1887,7 @@ const hu = { tabUsb: 'ZPL-nyomtató (USB)', tabSystem: 'Másik nyomtató', wayHeading: 'Nyomtató', + rendererHeading: 'Megjelenítő', wayNetwork: 'TCP-n közvetlenül a nyomtatóra küld, illesztőprogram és nyomtatási sor nélkül. A nyomtató válaszol, ezért működik az állapot és az előnézet.', wayNetworkWeb: 'Elküldi a kódot a nyomtató portjára. A böngésző nem kap választ, így semmi nem olvas vissza.', wayBrowserPrint: 'A böngészőt futtató számítógépen keresztül a Zebra Browser Printen megy át.', diff --git a/src/locales/it.ts b/src/locales/it.ts index f34729c1..ad220fdd 100644 --- a/src/locales/it.ts +++ b/src/locales/it.ts @@ -855,8 +855,8 @@ const it = { providerPrinter: 'Stampante collegata', providerPrinterHint: "La stampante renderizza l'etichetta con il proprio firmware; non viene stampato nulla.", providerPrinterDesktopOnly: "Richiede l'app desktop.", - providerNone: 'Disattivato', - providerNoneHint: "Nasconde l'anteprima. L'esportazione PDF e la stampa come immagine usano la tela.", + providerNone: 'Integrato', + providerNoneHint: "Nessuna sovrapposizione di anteprima. L'esportazione PDF e la stampa come immagine usano il disegno della tela, quindi il PDF contiene solo la pagina corrente.", providerInUseFmt: 'Attualmente attivo: {provider}', printerTargetHint: 'La stampante si imposta in App, Stampante.', privacyHeading: 'Privacy', @@ -1887,6 +1887,7 @@ const it = { tabUsb: 'Stampante ZPL (USB)', tabSystem: 'Altra stampante', wayHeading: 'Stampante', + rendererHeading: 'Motore di rendering', wayNetwork: 'Invia via TCP direttamente alla stampante, senza driver né coda. La stampante risponde, quindi stato e anteprima funzionano.', wayNetworkWeb: 'Invia il codice alla porta della stampante. Il browser non riceve risposta, quindi nulla risponde.', wayBrowserPrint: 'Passa da Zebra Browser Print sul computer che esegue il browser.', diff --git a/src/locales/ja.ts b/src/locales/ja.ts index b5fce4a4..7241bc48 100644 --- a/src/locales/ja.ts +++ b/src/locales/ja.ts @@ -855,8 +855,8 @@ const ja = { providerPrinter: '接続中のプリンター', providerPrinterHint: 'プリンター自身のファームウェアでラベルを描画します。実際には印刷されません。', providerPrinterDesktopOnly: 'デスクトップアプリが必要です。', - providerNone: 'オフ', - providerNoneHint: 'プレビューを非表示にします。PDFエクスポートと画像印刷はキャンバスを使用します。', + providerNone: '内蔵', + providerNoneHint: 'プレビューのオーバーレイはありません。PDFエクスポートと画像印刷はキャンバスの描画を使用するため、PDFには現在のページのみが含まれます。', providerInUseFmt: '現在有効: {provider}', printerTargetHint: 'プリンターはアプリ、プリンターで設定します。', privacyHeading: 'プライバシー', @@ -1887,6 +1887,7 @@ const ja = { tabUsb: 'ZPLプリンター (USB)', tabSystem: 'その他のプリンター', wayHeading: 'プリンター', + rendererHeading: 'レンダラー', wayNetwork: 'ドライバーやキューを通さず、TCP でプリンターに直接送ります。プリンターが応答するので、状態表示とプレビューが使えます。', wayNetworkWeb: 'コードをプリンターのポートに送信します。ブラウザーは応答を受け取らないため、何も読み取りません。', wayBrowserPrint: 'ブラウザを実行しているコンピューター上のZebra Browser Printを経由します。', diff --git a/src/locales/ko.ts b/src/locales/ko.ts index 069e89c5..cb5b4ba9 100644 --- a/src/locales/ko.ts +++ b/src/locales/ko.ts @@ -855,8 +855,8 @@ const ko = { providerPrinter: '연결된 프린터', providerPrinterHint: '프린터가 자체 펌웨어로 라벨을 렌더링하며 실제로 인쇄되지는 않습니다.', providerPrinterDesktopOnly: '데스크톱 앱이 필요합니다.', - providerNone: '사용 안 함', - providerNoneHint: '미리보기를 숨깁니다. PDF 내보내기와 이미지 인쇄는 캔버스를 사용합니다.', + providerNone: '내장', + providerNoneHint: '미리보기 오버레이가 없습니다. PDF 내보내기와 이미지 인쇄는 캔버스 그림을 사용하므로 PDF에는 현재 페이지만 포함됩니다.', providerInUseFmt: '현재 사용 중: {provider}', printerTargetHint: '프린터는 앱, 프린터에서 설정합니다.', privacyHeading: '개인정보', @@ -1887,6 +1887,7 @@ const ko = { tabUsb: 'ZPL 프린터 (USB)', tabSystem: '다른 프린터', wayHeading: '프린터', + rendererHeading: '렌더러', wayNetwork: '드라이버와 대기열을 거치지 않고 TCP로 프린터에 직접 보냅니다. 프린터가 응답하므로 상태와 미리 보기가 작동합니다.', wayNetworkWeb: '코드를 프린터 포트로 전송합니다. 브라우저는 응답을 받지 못하므로 아무것도 읽어오지 않습니다.', wayBrowserPrint: '브라우저를 실행하는 컴퓨터의 Zebra Browser Print를 거칩니다.', diff --git a/src/locales/lt.ts b/src/locales/lt.ts index 79a94e99..43e193d4 100644 --- a/src/locales/lt.ts +++ b/src/locales/lt.ts @@ -855,8 +855,8 @@ const lt = { providerPrinter: 'Prijungtas spausdintuvas', providerPrinterHint: 'Spausdintuvas atvaizduoja etiketę naudodamas savo programinę-aparatinę įrangą; nieko nespausdinama.', providerPrinterDesktopOnly: 'Reikalinga darbalaukio programa.', - providerNone: 'Išjungta', - providerNoneHint: 'Paslepia peržiūrą. PDF eksportas ir spausdinimas kaip vaizdas naudoja drobę.', + providerNone: 'Įmontuotas', + providerNoneHint: 'Nėra peržiūros sluoksnio. PDF eksportas ir spausdinimas kaip vaizdas naudoja drobės piešinį, todėl PDF faile yra tik dabartinis puslapis.', providerInUseFmt: 'Šiuo metu aktyvus: {provider}', printerTargetHint: 'Spausdintuvas nustatomas skiltyje Programa, Spausdintuvas.', privacyHeading: 'Privatumas', @@ -1887,6 +1887,7 @@ const lt = { tabUsb: 'ZPL spausdintuvas (USB)', tabSystem: 'Kitas spausdintuvas', wayHeading: 'Spausdintuvas', + rendererHeading: 'Atvaizdavimo įrankis', wayNetwork: 'Siunčia per TCP tiesiai į spausdintuvą, aplenkdama tvarkyklę ir eilę. Spausdintuvas atsako, todėl veikia būsena ir peržiūra.', wayNetworkWeb: 'Siunčia kodą į spausdintuvo prievadą. Naršyklė nesulaukia atsakymo, todėl atgal nieko nenuskaitoma.', wayBrowserPrint: 'Eina per Zebra Browser Print kompiuteryje, kuriame veikia naršyklė.', diff --git a/src/locales/lv.ts b/src/locales/lv.ts index 4ff5e4e6..29b6c76d 100644 --- a/src/locales/lv.ts +++ b/src/locales/lv.ts @@ -855,8 +855,8 @@ const lv = { providerPrinter: 'Pievienotais printeris', providerPrinterHint: 'Printeris renderē etiķeti, izmantojot savu aparātprogrammatūru; nekas netiek izdrukāts.', providerPrinterDesktopOnly: 'Nepieciešama galddatora lietotne.', - providerNone: 'Izslēgts', - providerNoneHint: 'Paslēpj priekšskatījumu. PDF eksports un drukāšana kā attēls izmanto audeklu.', + providerNone: 'Iebūvēts', + providerNoneHint: 'Nav priekšskatījuma slāņa. PDF eksports un drukāšana kā attēls izmanto audekla zīmējumu, tāpēc PDF ietver tikai pašreizējo lapu.', providerInUseFmt: 'Pašlaik aktīvs: {provider}', printerTargetHint: 'Printeris tiek iestatīts sadaļā Lietotne, Printeris.', privacyHeading: 'Privātums', @@ -1887,6 +1887,7 @@ const lv = { tabUsb: 'ZPL printeris (USB)', tabSystem: 'Cits printeris', wayHeading: 'Printeris', + rendererHeading: 'Renderētājs', wayNetwork: 'Sūta pa TCP tieši uz printeri, apejot draiveri un rindu. Printeris atbild, tāpēc darbojas statuss un priekšskatījums.', wayNetworkWeb: 'Nosūta kodu uz printera portu. Pārlūkprogramma nesaņem atbildi, tāpēc nekas netiek nolasīts atpakaļ.', wayBrowserPrint: 'Notiek caur Zebra Browser Print datorā, kurā darbojas pārlūkprogramma.', diff --git a/src/locales/nl.ts b/src/locales/nl.ts index 0cc2462f..3153827f 100644 --- a/src/locales/nl.ts +++ b/src/locales/nl.ts @@ -855,8 +855,8 @@ const nl = { providerPrinter: 'Verbonden printer', providerPrinterHint: 'De printer rendert het label met zijn eigen firmware; er wordt niets afgedrukt.', providerPrinterDesktopOnly: 'Vereist de desktop-app.', - providerNone: 'Uit', - providerNoneHint: 'Verbergt het voorbeeld. PDF-export en afdrukken als afbeelding gebruiken het canvas.', + providerNone: 'Ingebouwd', + providerNoneHint: 'Geen voorbeeldoverlay. PDF-export en afdrukken als afbeelding gebruiken de tekening van het canvas, dus de PDF bevat alleen de huidige pagina.', providerInUseFmt: 'Momenteel actief: {provider}', printerTargetHint: 'De printer wordt ingesteld onder App, Printer.', privacyHeading: 'Privacy', @@ -1887,6 +1887,7 @@ const nl = { tabUsb: 'ZPL-printer (USB)', tabSystem: 'Andere printer', wayHeading: 'Printer', + rendererHeading: 'Renderer', wayNetwork: 'Stuurt via TCP rechtstreeks naar de printer, zonder driver en wachtrij. De printer antwoordt, daarom werken status en voorbeeld.', wayNetworkWeb: 'Stuurt de code naar de printerpoort. De browser krijgt geen antwoord, dus niets leest terug.', wayBrowserPrint: 'Loopt via Zebra Browser Print op de computer die de browser uitvoert.', diff --git a/src/locales/no.ts b/src/locales/no.ts index 84ed8583..5ae05f1b 100644 --- a/src/locales/no.ts +++ b/src/locales/no.ts @@ -855,8 +855,8 @@ const no = { providerPrinter: 'Tilkoblet skriver', providerPrinterHint: 'Skriveren gjengir etiketten med sin egen fastvare; ingenting skrives ut.', providerPrinterDesktopOnly: 'Krever skrivebordsappen.', - providerNone: 'Av', - providerNoneHint: 'Skjuler forhåndsvisningen. PDF-eksport og utskrift som bilde bruker lerretet.', + providerNone: 'Innebygd', + providerNoneHint: 'Ingen forhåndsvisningsoverlegg. PDF-eksport og utskrift som bilde bruker tegningen på lerretet, så PDF-en inneholder bare den aktuelle siden.', providerInUseFmt: 'Aktiv nå: {provider}', printerTargetHint: 'Skriveren stilles inn under App, Skriver.', privacyHeading: 'Personvern', @@ -1887,6 +1887,7 @@ const no = { tabUsb: 'ZPL-skriver (USB)', tabSystem: 'Annen skriver', wayHeading: 'Skriver', + rendererHeading: 'Rendringsmotor', wayNetwork: 'Sender over TCP direkte til skriveren, uten driver og kø. Skriveren svarer, så status og forhåndsvisning virker.', wayNetworkWeb: 'Sender koden til skriverporten. Nettleseren får ikke svar, så ingenting leser tilbake.', wayBrowserPrint: 'Går via Zebra Browser Print på datamaskinen som kjører nettleseren.', diff --git a/src/locales/pl.ts b/src/locales/pl.ts index 4c60fb0f..8a1eb2cc 100644 --- a/src/locales/pl.ts +++ b/src/locales/pl.ts @@ -855,8 +855,8 @@ const pl = { providerPrinter: 'Podłączona drukarka', providerPrinterHint: 'Drukarka renderuje etykietę za pomocą własnego oprogramowania układowego; nic nie jest drukowane.', providerPrinterDesktopOnly: 'Wymaga aplikacji desktopowej.', - providerNone: 'Wyłączone', - providerNoneHint: 'Ukrywa podgląd. Eksport PDF i drukowanie jako obraz używają płótna.', + providerNone: 'Wbudowany', + providerNoneHint: 'Brak nakładki podglądu. Eksport PDF i drukowanie jako obraz korzystają z rysunku na płótnie, więc PDF zawiera tylko bieżącą stronę.', providerInUseFmt: 'Obecnie aktywne: {provider}', printerTargetHint: 'Drukarkę ustawia się w Aplikacja, Drukarka.', privacyHeading: 'Prywatność', @@ -1887,6 +1887,7 @@ const pl = { tabUsb: 'Drukarka ZPL (USB)', tabSystem: 'Inna drukarka', wayHeading: 'Drukarka', + rendererHeading: 'Silnik renderowania', wayNetwork: 'Wysyła przez TCP wprost do drukarki, bez sterownika i kolejki. Drukarka odpowiada, dlatego status i podgląd działają.', wayNetworkWeb: 'Wysyła kod na port drukarki. Przeglądarka nie otrzymuje odpowiedzi, więc nic nie wraca.', wayBrowserPrint: 'Przechodzi przez Zebra Browser Print na komputerze, na którym działa przeglądarka.', diff --git a/src/locales/pt.ts b/src/locales/pt.ts index 69eaa992..27eba70f 100644 --- a/src/locales/pt.ts +++ b/src/locales/pt.ts @@ -855,8 +855,8 @@ const pt = { providerPrinter: 'Impressora conectada', providerPrinterHint: 'A impressora renderiza a etiqueta com seu próprio firmware; nada é impresso.', providerPrinterDesktopOnly: 'Requer o aplicativo de desktop.', - providerNone: 'Desativado', - providerNoneHint: 'Oculta a pré-visualização. A exportação em PDF e a impressão como imagem usam a tela.', + providerNone: 'Integrado', + providerNoneHint: 'Sem sobreposição de pré-visualização. A exportação em PDF e a impressão como imagem usam o desenho da tela, portanto o PDF contém apenas a página atual.', providerInUseFmt: 'Atualmente ativo: {provider}', printerTargetHint: 'A impressora é definida em App, Impressora.', privacyHeading: 'Privacidade', @@ -1887,6 +1887,7 @@ const pt = { tabUsb: 'Impressora ZPL (USB)', tabSystem: 'Outra impressora', wayHeading: 'Impressora', + rendererHeading: 'Renderizador', wayNetwork: 'Envia por TCP direto para a impressora, sem driver nem fila. A impressora responde, por isso o status e a pré-visualização funcionam.', wayNetworkWeb: 'Envia o código para a porta da impressora. O navegador não recebe resposta, então nada responde.', wayBrowserPrint: 'Passa pelo Zebra Browser Print no computador que executa o navegador.', diff --git a/src/locales/ro.ts b/src/locales/ro.ts index ab1c2b58..490be55d 100644 --- a/src/locales/ro.ts +++ b/src/locales/ro.ts @@ -855,8 +855,8 @@ const ro = { providerPrinter: 'Imprimantă conectată', providerPrinterHint: 'Imprimanta randează eticheta cu propriul firmware; nu se imprimă nimic.', providerPrinterDesktopOnly: 'Necesită aplicația desktop.', - providerNone: 'Dezactivat', - providerNoneHint: 'Ascunde previzualizarea. Exportul PDF și tipărirea ca imagine folosesc pânza.', + providerNone: 'Integrat', + providerNoneHint: 'Fără suprapunere de previzualizare. Exportul PDF și tipărirea ca imagine folosesc desenul pânzei, astfel încât PDF-ul conține doar pagina curentă.', providerInUseFmt: 'Activ în prezent: {provider}', printerTargetHint: 'Imprimanta se setează la Aplicație, Imprimantă.', privacyHeading: 'Confidențialitate', @@ -1887,6 +1887,7 @@ const ro = { tabUsb: 'Imprimantă ZPL (USB)', tabSystem: 'Altă imprimantă', wayHeading: 'Imprimantă', + rendererHeading: 'Motor de randare', wayNetwork: 'Trimite prin TCP direct către imprimantă, fără driver și fără coadă. Imprimanta răspunde, de aceea starea și previzualizarea funcționează.', wayNetworkWeb: 'Trimite codul la portul imprimantei. Browserul nu primește răspuns, așa că nimic nu se citește înapoi.', wayBrowserPrint: 'Trece prin Zebra Browser Print pe computerul care rulează browserul.', diff --git a/src/locales/sk.ts b/src/locales/sk.ts index e14e13f7..15651927 100644 --- a/src/locales/sk.ts +++ b/src/locales/sk.ts @@ -855,8 +855,8 @@ const sk = { providerPrinter: 'Pripojená tlačiareň', providerPrinterHint: 'Tlačiareň vykreslí štítok pomocou vlastného firmvéru; nič sa netlačí.', providerPrinterDesktopOnly: 'Vyžaduje desktopovú aplikáciu.', - providerNone: 'Vypnuté', - providerNoneHint: 'Skryje náhľad. Export PDF a tlač ako obrázok používajú plátno.', + providerNone: 'Vstavané', + providerNoneHint: 'Žiadna vrstva náhľadu. Export PDF a tlač ako obrázok používajú kresbu plátna, takže PDF obsahuje iba aktuálnu stránku.', providerInUseFmt: 'Aktuálne aktívne: {provider}', printerTargetHint: 'Tlačiareň sa nastavuje v Aplikácia, Tlačiareň.', privacyHeading: 'Súkromie', @@ -1887,6 +1887,7 @@ const sk = { tabUsb: 'ZPL tlačiareň (USB)', tabSystem: 'Iná tlačiareň', wayHeading: 'Tlačiareň', + rendererHeading: 'Vykresľovač', wayNetwork: 'Posiela cez TCP priamo na tlačiareň, bez ovládača a tlačového frontu. Tlačiareň odpovedá, preto funguje stav aj náhľad.', wayNetworkWeb: 'Odosiela kód na port tlačiarne. Prehliadač nedostane odpoveď, takže sa nič nenačíta späť.', wayBrowserPrint: 'Ide cez Zebra Browser Print na počítači, na ktorom beží prehliadač.', diff --git a/src/locales/sl.ts b/src/locales/sl.ts index 1c94544f..1e7f2c9d 100644 --- a/src/locales/sl.ts +++ b/src/locales/sl.ts @@ -855,8 +855,8 @@ const sl = { providerPrinter: 'Povezan tiskalnik', providerPrinterHint: 'Tiskalnik izriše nalepko z lastno strojno programsko opremo; nič se ne natisne.', providerPrinterDesktopOnly: 'Zahteva namizno aplikacijo.', - providerNone: 'Izklopljeno', - providerNoneHint: 'Skrije predogled. Izvoz PDF in tiskanje kot slika uporabljata platno.', + providerNone: 'Vgrajeno', + providerNoneHint: 'Brez plasti predogleda. Izvoz PDF in tiskanje kot slika uporabljata risbo platna, zato PDF vsebuje samo trenutno stran.', providerInUseFmt: 'Trenutno aktivno: {provider}', printerTargetHint: 'Tiskalnik nastavite pod Aplikacija, Tiskalnik.', privacyHeading: 'Zasebnost', @@ -1887,6 +1887,7 @@ const sl = { tabUsb: 'ZPL tiskalnik (USB)', tabSystem: 'Drug tiskalnik', wayHeading: 'Tiskalnik', + rendererHeading: 'Izrisovalnik', wayNetwork: 'Pošilja prek TCP neposredno na tiskalnik, brez gonilnika in čakalne vrste. Tiskalnik odgovori, zato delujeta stanje in predogled.', wayNetworkWeb: 'Pošlje kodo na vrata tiskalnika. Brskalnik ne prejme odziva, zato nič ne prebere nazaj.', wayBrowserPrint: 'Poteka preko Zebra Browser Print na računalniku, ki poganja brskalnik.', diff --git a/src/locales/sr.ts b/src/locales/sr.ts index 4aabbb19..8670e1bc 100644 --- a/src/locales/sr.ts +++ b/src/locales/sr.ts @@ -855,8 +855,8 @@ const sr = { providerPrinter: 'Povezani štampač', providerPrinterHint: 'Štampač prikazuje nalepnicu sopstvenim firmverom; ništa se ne štampa.', providerPrinterDesktopOnly: 'Zahteva desktop aplikaciju.', - providerNone: 'Isključeno', - providerNoneHint: 'Скрива преглед. Извоз PDF-а и штампа као слика користе платно.', + providerNone: 'Ugrađeno', + providerNoneHint: 'Nema sloja pregleda. Izvoz PDF-a i štampa kao slika koriste crtež platna, pa PDF sadrži samo trenutnu stranicu.', providerInUseFmt: 'Trenutno aktivno: {provider}', printerTargetHint: 'Штампач се подешава под Апликација, Штампач.', privacyHeading: 'Приватност', @@ -1887,6 +1887,7 @@ const sr = { tabUsb: 'ZPL штампач (USB)', tabSystem: 'Drugi štampač', wayHeading: 'Штампач', + rendererHeading: 'Приказивач', wayNetwork: 'Шаље преко TCP-а директно на штампач, без драјвера и реда за штампу. Штампач одговара, зато раде статус и преглед.', wayNetworkWeb: 'Шаље код на порт штампача. Прегледач не прима одговор, па ништа не чита назад.', wayBrowserPrint: 'Иде преко Zebra Browser Print-а на рачунару који покреће прегледач.', diff --git a/src/locales/sv.ts b/src/locales/sv.ts index e7200f50..12965c03 100644 --- a/src/locales/sv.ts +++ b/src/locales/sv.ts @@ -855,8 +855,8 @@ const sv = { providerPrinter: 'Ansluten skrivare', providerPrinterHint: 'Skrivaren renderar etiketten med sin egen firmware; inget skrivs ut.', providerPrinterDesktopOnly: 'Kräver skrivbordsappen.', - providerNone: 'Av', - providerNoneHint: 'Döljer förhandsvisningen. PDF-export och utskrift som bild använder duken.', + providerNone: 'Inbyggd', + providerNoneHint: 'Inget förhandsgranskningsöverlägg. PDF-export och utskrift som bild använder ritningen på duken, så PDF-filen innehåller bara den aktuella sidan.', providerInUseFmt: 'Aktiv just nu: {provider}', printerTargetHint: 'Skrivaren ställs in under App, Skrivare.', privacyHeading: 'Integritet', @@ -1887,6 +1887,7 @@ const sv = { tabUsb: 'ZPL-skrivare (USB)', tabSystem: 'Annan skrivare', wayHeading: 'Skrivare', + rendererHeading: 'Renderare', wayNetwork: 'Skickar över TCP direkt till skrivaren, utan drivrutin och kö. Skrivaren svarar, så status och förhandsvisning fungerar.', wayNetworkWeb: 'Skickar koden till skrivarens port. Webbläsaren får inget svar, så inget läser tillbaka.', wayBrowserPrint: 'Går via Zebra Browser Print på datorn som kör webbläsaren.', diff --git a/src/locales/tr.ts b/src/locales/tr.ts index 730b1175..c38c15bd 100644 --- a/src/locales/tr.ts +++ b/src/locales/tr.ts @@ -855,8 +855,8 @@ const tr = { providerPrinter: 'Bağlı yazıcı', providerPrinterHint: 'Yazıcı etiketi kendi ürün yazılımıyla oluşturur; hiçbir şey yazdırılmaz.', providerPrinterDesktopOnly: 'Masaüstü uygulamasını gerektirir.', - providerNone: 'Kapalı', - providerNoneHint: 'Önizlemeyi gizler. PDF dışa aktarma ve görüntü olarak yazdırma tuvali kullanır.', + providerNone: 'Yerleşik', + providerNoneHint: 'Önizleme katmanı yok. PDF dışa aktarma ve görüntü olarak yazdırma tuval çizimini kullanır, bu nedenle PDF yalnızca geçerli sayfayı içerir.', providerInUseFmt: 'Şu anda etkin: {provider}', printerTargetHint: 'Yazıcı Uygulama, Yazıcı altında ayarlanır.', privacyHeading: 'Gizlilik', @@ -1887,6 +1887,7 @@ const tr = { tabUsb: 'ZPL yazıcı (USB)', tabSystem: 'Diğer yazıcı', wayHeading: 'Yazıcı', + rendererHeading: 'Oluşturucu', wayNetwork: 'TCP üzerinden doğrudan yazıcıya gönderir, sürücü ve kuyruk devreye girmez. Yazıcı yanıt verir, bu yüzden durum ve önizleme çalışır.', wayNetworkWeb: 'Kodu yazıcı portuna gönderir. Tarayıcı yanıt almaz, bu yüzden hiçbir şey geri okunmaz.', wayBrowserPrint: 'Tarayıcıyı çalıştıran bilgisayardaki Zebra Browser Print üzerinden gider.', diff --git a/src/locales/zh-hans.ts b/src/locales/zh-hans.ts index 38a5cf80..f136e8be 100644 --- a/src/locales/zh-hans.ts +++ b/src/locales/zh-hans.ts @@ -855,8 +855,8 @@ const zhHans = { providerPrinter: '已连接的打印机', providerPrinterHint: '打印机使用自身固件渲染标签;不会实际打印任何内容。', providerPrinterDesktopOnly: '需要桌面应用。', - providerNone: '关闭', - providerNoneHint: '隐藏预览。PDF 导出和图片打印使用画布。', + providerNone: '内置', + providerNoneHint: '没有预览叠加层。PDF 导出和图片打印使用画布绘图,因此 PDF 仅包含当前页面。', providerInUseFmt: '当前使用:{provider}', printerTargetHint: '打印机在应用、打印机下设置。', privacyHeading: '隐私', @@ -1887,6 +1887,7 @@ const zhHans = { tabUsb: 'ZPL打印机 (USB)', tabSystem: '其他打印机', wayHeading: '打印机', + rendererHeading: '渲染方式', wayNetwork: '通过 TCP 直接发送到打印机,不经过驱动和队列。打印机会应答,所以状态和预览都可用。', wayNetworkWeb: '将代码发送到打印机端口。浏览器收不到回复,因此不会回读。', wayBrowserPrint: '通过运行浏览器的计算机上的 Zebra Browser Print 发送。', diff --git a/src/locales/zh-hant.ts b/src/locales/zh-hant.ts index 9c3b47f3..2ca8a0a0 100644 --- a/src/locales/zh-hant.ts +++ b/src/locales/zh-hant.ts @@ -855,8 +855,8 @@ const zhHant = { providerPrinter: '已連線的印表機', providerPrinterHint: '印表機會使用自身韌體算繪標籤;不會實際列印任何內容。', providerPrinterDesktopOnly: '需要桌面應用程式。', - providerNone: '關閉', - providerNoneHint: '隱藏預覽。PDF 匯出與圖片列印使用畫布。', + providerNone: '內建', + providerNoneHint: '沒有預覽疊加層。PDF 匯出與圖片列印使用畫布繪圖,因此 PDF 僅包含目前頁面。', providerInUseFmt: '目前使用:{provider}', printerTargetHint: '印表機在應用程式、印表機下設定。', privacyHeading: '隱私', @@ -1887,6 +1887,7 @@ const zhHant = { tabUsb: 'ZPL印表機 (USB)', tabSystem: '其他印表機', wayHeading: '印表機', + rendererHeading: '算繪方式', wayNetwork: '透過 TCP 直接送到印表機,不經過驅動程式和佇列。印表機會回應,所以狀態和預覽都可用。', wayNetworkWeb: '將程式碼傳送至印表機連接埠。瀏覽器收不到回覆,因此不會回讀。', wayBrowserPrint: '透過執行瀏覽器的電腦上的 Zebra Browser Print 傳送。',