From 2fccfc272fb0e3ad4c06ea18df69369bc79d0792 Mon Sep 17 00:00:00 2001 From: Connor Cleveland Date: Sat, 21 Oct 2023 21:05:31 -0500 Subject: [PATCH 1/3] Add support for sharing table views via link --- client/public/locales/cs/common.json | 501 ++++++++++++------------ client/public/locales/de/common.json | 465 +++++++++++----------- client/public/locales/en/common.json | 499 +++++++++++------------ client/public/locales/es/common.json | 501 ++++++++++++------------ client/public/locales/fr/common.json | 489 +++++++++++------------ client/public/locales/hu/common.json | 497 +++++++++++------------ client/public/locales/it/common.json | 487 +++++++++++------------ client/public/locales/nb-NO/common.json | 485 +++++++++++------------ client/public/locales/nl/common.json | 489 +++++++++++------------ client/public/locales/pl/common.json | 501 ++++++++++++------------ client/public/locales/ru/common.json | 475 +++++++++++----------- client/public/locales/sv/common.json | 499 +++++++++++------------ client/public/locales/uk/common.json | 501 ++++++++++++------------ client/public/locales/zh/common.json | 497 +++++++++++------------ client/src/pages/filaments/list.tsx | 18 +- client/src/pages/spools/list.tsx | 18 +- client/src/pages/vendors/list.tsx | 18 +- client/src/utils/saveload.ts | 31 +- 18 files changed, 3525 insertions(+), 3446 deletions(-) diff --git a/client/public/locales/cs/common.json b/client/public/locales/cs/common.json index 139e3801d..33693f810 100644 --- a/client/public/locales/cs/common.json +++ b/client/public/locales/cs/common.json @@ -1,264 +1,265 @@ { - "actions": { - "list": "Seznam", - "create": "Vytvořit", - "edit": "Upravit", - "show": "Zobrazit", - "clone": "Duplikovat" + "actions": { + "list": "Seznam", + "create": "Vytvořit", + "edit": "Upravit", + "show": "Zobrazit", + "clone": "Duplikovat" + }, + "buttons": { + "create": "Vytvořit", + "save": "Uložit", + "logout": "Odhlášení", + "delete": "Smazat", + "edit": "Upravit", + "cancel": "Storno", + "confirm": "Jste si jistý?", + "filter": "Filtr", + "clear": "Přehled", + "refresh": "Obnovit", + "show": "Zobrazit", + "undo": "Zpět", + "import": "Import", + "clone": "Duplikovat", + "archive": "Archivovat", + "unArchive": "Zrušit archivaci", + "hideArchived": "Skrýt archivované", + "showArchived": "Zobrazit archivované", + "notAccessTitle": "Nemáte oprávnění k přístupu", + "hideColumns": "Skrýt sloupce", + "clearFilters": "Zrušit filtry", + "share": "sdílet" + }, + "warnWhenUnsavedChanges": "Jste si jisti, že chcete odejít? Máte neuložené změny.", + "notifications": { + "success": "Úspěšné", + "error": "Chyba (status code: {{statusCode}})", + "undoable": "Máte {{seconds}} sekund na zrušení.", + "createSuccess": "Úspěšně vytvořeno {{resource}}", + "createError": "Při vytváření došlo k chybě {{resource}} (status code: {{statusCode}})", + "deleteSuccess": "Úspěšně vymazáno {{resource}}", + "deleteError": "Chyba při odstranění {{resource}} (status code: {{statusCode}})", + "editSuccess": "Úspěšně upraveno {{resource}}", + "editError": "Chyba při úpravě {{resource}} (status code: {{statusCode}})", + "importProgress": "Importování: {{processed}}/{{total}}" + }, + "loading": "Načítání", + "version": "Verze", + "unknown": "Neznámý", + "yes": "Ano", + "no": "Ne", + "tags": { + "clone": "Duplikovat" + }, + "dashboard": { + "title": "Panel" + }, + "printing": { + "generic": { + "title": "Tisk", + "description": "Níže uvedeným nastavením dosáhnete požadovaného rozložení tisku. Mějte na paměti, že tiskárny a váš operační systém mohou použít vlastní okraje a měřítka, takže možná budete muset provést několik pokusů a omylů, než bude vše správně. Před tiskem na skutečné štítky si to vyzkoušejte na kousku běžného papíru.", + "helpMargin": "Okraje by měly být nastaveny tak, aby odpovídaly papíru na štítky a tiskárně, jejich změna ovlivní velikost celé mřížky.", + "helpPrinterMargin": "Bezpečná zóna by měla být nastavena tak, jak blízko okraje papíru může tiskárna tisknout, jejich změna neovlivní celou mřížku.", + "print": "Tisk", + "columns": "Sloupce", + "rows": "Řádky", + "paperSize": "Velikost papíru", + "customSize": "Vlastní", + "dimensions": "Rozměry", + "showBorder": "Zobrazit ohraničení", + "previewScale": "Náhled měřítka", + "skipItems": "Vynechat položky", + "contentSettings": "Nastavení obsahu", + "layoutSettings": "Nastavení rozvržení", + "horizontalSpacing": "Vodorovná rozteč", + "verticalSpacing": "Svislá rozteč", + "marginLeft": "Levý okraj", + "marginRight": "Pravý okraj", + "marginTop": "Horní okraj", + "marginBottom": "Dolní okraj", + "printerMarginLeft": "Okraj tiskárny vlevo", + "printerMarginRight": "Okraj tiskárny vpravo", + "printerMarginTop": "Okraj tiskárny horní", + "printerMarginBottom": "Okraj tiskárny dolní", + "borders": { + "none": "Žádný", + "border": "Ohraničení", + "grid": "Mřížka" + } }, - "buttons": { - "create": "Vytvořit", - "save": "Uložit", - "logout": "Odhlášení", - "delete": "Smazat", - "edit": "Upravit", - "cancel": "Storno", - "confirm": "Jste si jistý?", - "filter": "Filtr", - "clear": "Přehled", - "refresh": "Obnovit", - "show": "Zobrazit", - "undo": "Zpět", - "import": "Import", - "clone": "Duplikovat", - "archive": "Archivovat", - "unArchive": "Zrušit archivaci", - "hideArchived": "Skrýt archivované", - "showArchived": "Zobrazit archivované", - "notAccessTitle": "Nemáte oprávnění k přístupu", - "hideColumns": "Skrýt sloupce", - "clearFilters": "Zrušit filtry" + "qrcode": { + "button": "Tisk QR kódů", + "title": "Tisk QR kódů", + "spoolWeight": "Hmotnost cívky: {{weight}}", + "lotNr": "Číslo šarže: {{lot}}", + "bedTemp": "BT: {{temp}}", + "extruderTemp": "ET: {{temp}}", + "textSize": "Velikost textu obsahu", + "showSpoolmanIcon": "Zobrazit ikonu Spoolman", + "showVendor": "Výrobce", + "showContent": "Tisk štítku", + "showLotNr": "Číslo šarže", + "showSpoolWeight": "Hmotnost cívky", + "showTemperatures": "Teploty", + "showSpoolComment": "Poznámka k cívce", + "showFilamentComment": "Poznámka k filamentu", + "showVendorComment": "Poznámka k výrobci" }, - "warnWhenUnsavedChanges": "Jste si jisti, že chcete odejít? Máte neuložené změny.", - "notifications": { - "success": "Úspěšné", - "error": "Chyba (status code: {{statusCode}})", - "undoable": "Máte {{seconds}} sekund na zrušení.", - "createSuccess": "Úspěšně vytvořeno {{resource}}", - "createError": "Při vytváření došlo k chybě {{resource}} (status code: {{statusCode}})", - "deleteSuccess": "Úspěšně vymazáno {{resource}}", - "deleteError": "Chyba při odstranění {{resource}} (status code: {{statusCode}})", - "editSuccess": "Úspěšně upraveno {{resource}}", - "editError": "Chyba při úpravě {{resource}} (status code: {{statusCode}})", - "importProgress": "Importování: {{processed}}/{{total}}" + "spoolSelect": { + "title": "Vybrat cívky", + "description": "Vyberte cívky pro tisk QR kódů.", + "showArchived": "Zobrazit archivované", + "noSpoolsSelected": "Nevybrali jste žádné cívky.", + "selectAll": "Vybrat/odebrat vše", + "selectedTotal_one": "{{count}} vybraná cívka", + "selectedTotal_few": "{{count}} vybraných cívek", + "selectedTotal_other": "{{count}} vybrané cívky" + } + }, + "scanner": { + "title": "Skener QR kódu", + "description": "Naskenováním QR kódu Spoolman zobrazíte podrobnosti o cívce.", + "error": { + "notAllowed": "Nemáte povolen přístup ke kameře.", + "insecureContext": "Stránka se nezobrazuje přes protokol HTTPS.", + "streamApiNotSupported": "Prohlížeč nepodporuje MediaStream API.", + "notReadable": "Kamera není čitelná.", + "notFound": "Nebyla nalezena žádná kamera.", + "unknown": "Došlo k neznámé chybě. ({{error}})" + } + }, + "spool": { + "spool": "Cívky", + "fields": { + "id": "ID", + "filament_name": "Filament", + "filament": "Filament", + "material": "Materiál", + "weight_to_use": "Hmotnost", + "used_weight": "Použitá hmotnost", + "remaining_weight": "Zbývající hmotnost", + "measured_weight": "Naměřená hmotnost", + "used_length": "Použitá délka", + "remaining_length": "Zbývající délka", + "location": "Umístění", + "lot_nr": "Číslo umístění", + "first_used": "První použití", + "last_used": "Naposledy použitá", + "registered": "Registrováno", + "comment": "Komentář", + "archived": "Archivováno" }, - "loading": "Načítání", - "version": "Verze", - "unknown": "Neznámý", - "yes": "Ano", - "no": "Ne", - "tags": { - "clone": "Duplikovat" + "fields_help": { + "weight_to_use": "Vyberte, jakou hodnotu hmotnosti chcete zadat. Naměřená hmotnost je k dispozici pouze v případě, že je pro vybraný filament nastavena hmotnost cívky.", + "used_weight": "Kolik filamntu bylo z cívky spotřebováno. Na nové cívce by mělo být použito 0 g.", + "remaining_weight": "Kolik filamentu zbývá na cívce. U nové cívky by to mělo odpovídat hmotnosti filamentu na cívce.", + "measured_weight": "Jaká je hmotnost filamentu a cívky.", + "location": "Kde se cívka nachází, pokud máte více míst, kde cívky skladujete.", + "lot_nr": "Číslo šarže výrobce. Lze použít k zajištění jednotné barvy tisku v případě použití více cívek." }, - "dashboard": { - "title": "Panel" + "titles": { + "create": "Vytvořit cívku", + "clone": "Duplovat cívku", + "edit": "Upravit cívku", + "list": "Cívky", + "show": "Zobrazit cívku", + "archive": "Archivní cívka", + "show_title": "[Cívka #{{id}}] {{name}}" }, - "printing": { - "generic": { - "title": "Tisk", - "description": "Níže uvedeným nastavením dosáhnete požadovaného rozložení tisku. Mějte na paměti, že tiskárny a váš operační systém mohou použít vlastní okraje a měřítka, takže možná budete muset provést několik pokusů a omylů, než bude vše správně. Před tiskem na skutečné štítky si to vyzkoušejte na kousku běžného papíru.", - "helpMargin": "Okraje by měly být nastaveny tak, aby odpovídaly papíru na štítky a tiskárně, jejich změna ovlivní velikost celé mřížky.", - "helpPrinterMargin": "Bezpečná zóna by měla být nastavena tak, jak blízko okraje papíru může tiskárna tisknout, jejich změna neovlivní celou mřížku.", - "print": "Tisk", - "columns": "Sloupce", - "rows": "Řádky", - "paperSize": "Velikost papíru", - "customSize": "Vlastní", - "dimensions": "Rozměry", - "showBorder": "Zobrazit ohraničení", - "previewScale": "Náhled měřítka", - "skipItems": "Vynechat položky", - "contentSettings": "Nastavení obsahu", - "layoutSettings": "Nastavení rozvržení", - "horizontalSpacing": "Vodorovná rozteč", - "verticalSpacing": "Svislá rozteč", - "marginLeft": "Levý okraj", - "marginRight": "Pravý okraj", - "marginTop": "Horní okraj", - "marginBottom": "Dolní okraj", - "printerMarginLeft": "Okraj tiskárny vlevo", - "printerMarginRight": "Okraj tiskárny vpravo", - "printerMarginTop": "Okraj tiskárny horní", - "printerMarginBottom": "Okraj tiskárny dolní", - "borders": { - "none": "Žádný", - "border": "Ohraničení", - "grid": "Mřížka" - } - }, - "qrcode": { - "button": "Tisk QR kódů", - "title": "Tisk QR kódů", - "spoolWeight": "Hmotnost cívky: {{weight}}", - "lotNr": "Číslo šarže: {{lot}}", - "bedTemp": "BT: {{temp}}", - "extruderTemp": "ET: {{temp}}", - "textSize": "Velikost textu obsahu", - "showSpoolmanIcon": "Zobrazit ikonu Spoolman", - "showVendor": "Výrobce", - "showContent": "Tisk štítku", - "showLotNr": "Číslo šarže", - "showSpoolWeight": "Hmotnost cívky", - "showTemperatures": "Teploty", - "showSpoolComment": "Poznámka k cívce", - "showFilamentComment": "Poznámka k filamentu", - "showVendorComment": "Poznámka k výrobci" - }, - "spoolSelect": { - "title": "Vybrat cívky", - "description": "Vyberte cívky pro tisk QR kódů.", - "showArchived": "Zobrazit archivované", - "noSpoolsSelected": "Nevybrali jste žádné cívky.", - "selectAll": "Vybrat/odebrat vše", - "selectedTotal_one": "{{count}} vybraná cívka", - "selectedTotal_few": "{{count}} vybraných cívek", - "selectedTotal_other": "{{count}} vybrané cívky" - } + "messages": { + "archive": "Opravdu chcete tuto cívku archivovat?" }, - "scanner": { - "title": "Skener QR kódu", - "description": "Naskenováním QR kódu Spoolman zobrazíte podrobnosti o cívce.", - "error": { - "notAllowed": "Nemáte povolen přístup ke kameře.", - "insecureContext": "Stránka se nezobrazuje přes protokol HTTPS.", - "streamApiNotSupported": "Prohlížeč nepodporuje MediaStream API.", - "notReadable": "Kamera není čitelná.", - "notFound": "Nebyla nalezena žádná kamera.", - "unknown": "Došlo k neznámé chybě. ({{error}})" - } + "form": { + "new_location_prompt": "Zadejte nové umístění", + "spool_updated": "Od otevření této stránky byla tato cívka někým/něčím aktualizována. Uložením se tyto změny přepíší!" + } + }, + "filament": { + "filament": "Filamenty", + "fields": { + "id": "Id", + "vendor_name": "Výrobce", + "vendor": "Výrobce", + "name": "Název", + "material": "Materiál", + "price": "Cena", + "density": "Hustota", + "diameter": "Průměr", + "weight": "Váha", + "spool_weight": "Hmotnost cívky", + "article_number": "Číslo výrobku", + "registered": "Registrováno", + "comment": "Komentář", + "settings_extruder_temp": "Teplota extruderu", + "settings_bed_temp": "Teplota podložky", + "color_hex": "Barva" }, - "spool": { - "spool": "Cívky", - "fields": { - "id": "ID", - "filament_name": "Filament", - "filament": "Filament", - "material": "Materiál", - "weight_to_use": "Hmotnost", - "used_weight": "Použitá hmotnost", - "remaining_weight": "Zbývající hmotnost", - "measured_weight": "Naměřená hmotnost", - "used_length": "Použitá délka", - "remaining_length": "Zbývající délka", - "location": "Umístění", - "lot_nr": "Číslo umístění", - "first_used": "První použití", - "last_used": "Naposledy použitá", - "registered": "Registrováno", - "comment": "Komentář", - "archived": "Archivováno" - }, - "fields_help": { - "weight_to_use": "Vyberte, jakou hodnotu hmotnosti chcete zadat. Naměřená hmotnost je k dispozici pouze v případě, že je pro vybraný filament nastavena hmotnost cívky.", - "used_weight": "Kolik filamntu bylo z cívky spotřebováno. Na nové cívce by mělo být použito 0 g.", - "remaining_weight": "Kolik filamentu zbývá na cívce. U nové cívky by to mělo odpovídat hmotnosti filamentu na cívce.", - "measured_weight": "Jaká je hmotnost filamentu a cívky.", - "location": "Kde se cívka nachází, pokud máte více míst, kde cívky skladujete.", - "lot_nr": "Číslo šarže výrobce. Lze použít k zajištění jednotné barvy tisku v případě použití více cívek." - }, - "titles": { - "create": "Vytvořit cívku", - "clone": "Duplovat cívku", - "edit": "Upravit cívku", - "list": "Cívky", - "show": "Zobrazit cívku", - "archive": "Archivní cívka", - "show_title": "[Cívka #{{id}}] {{name}}" - }, - "messages": { - "archive": "Opravdu chcete tuto cívku archivovat?" - }, - "form": { - "new_location_prompt": "Zadejte nové umístění", - "spool_updated": "Od otevření této stránky byla tato cívka někým/něčím aktualizována. Uložením se tyto změny přepíší!" - } + "fields_help": { + "name": "Název filamentu, aby se tento typ filamentu odlišil od ostatních filamentů od stejného dodavatele. Měl by obsahovat například barvu.", + "material": "Např. PLA, ABS, ASA, PETG, atd.", + "price": "Cena celé cívky v měně nastavené v systému.", + "weight": "Hmotnost plného cívky filamentu (čistá hmotnost). Tato hmotnost by neměla zahrnovat hmotnost samotné cívky, ale pouze filamentu. Obvykle se uvádí na obalu.", + "spool_weight": "Hmotnost prázdné cívky. Slouží k určení naměřené hmotnosti cívky.", + "article_number": "Např. EAN, UPC, atd." }, - "filament": { - "filament": "Filamenty", - "fields": { - "id": "Id", - "vendor_name": "Výrobce", - "vendor": "Výrobce", - "name": "Název", - "material": "Materiál", - "price": "Cena", - "density": "Hustota", - "diameter": "Průměr", - "weight": "Váha", - "spool_weight": "Hmotnost cívky", - "article_number": "Číslo výrobku", - "registered": "Registrováno", - "comment": "Komentář", - "settings_extruder_temp": "Teplota extruderu", - "settings_bed_temp": "Teplota podložky", - "color_hex": "Barva" - }, - "fields_help": { - "name": "Název filamentu, aby se tento typ filamentu odlišil od ostatních filamentů od stejného dodavatele. Měl by obsahovat například barvu.", - "material": "Např. PLA, ABS, ASA, PETG, atd.", - "price": "Cena celé cívky v měně nastavené v systému.", - "weight": "Hmotnost plného cívky filamentu (čistá hmotnost). Tato hmotnost by neměla zahrnovat hmotnost samotné cívky, ale pouze filamentu. Obvykle se uvádí na obalu.", - "spool_weight": "Hmotnost prázdné cívky. Slouží k určení naměřené hmotnosti cívky.", - "article_number": "Např. EAN, UPC, atd." - }, - "titles": { - "create": "Vytvořit filament", - "clone": "Duplikovat filament", - "edit": "Upravit filament", - "list": "Filamenty", - "show": "Zobrazit filament", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "Toto vlákno bylo od doby, kdy jste otevřeli tuto stránku, někým/něčím aktualizováno. Uložením se tyto změny přepíší!" - } + "titles": { + "create": "Vytvořit filament", + "clone": "Duplikovat filament", + "edit": "Upravit filament", + "list": "Filamenty", + "show": "Zobrazit filament", + "show_title": "[Filament #{{id}}] {{name}}" }, - "vendor": { - "vendor": "Výrobci", - "fields": { - "id": "Id", - "name": "Název", - "registered": "Registrováno", - "comment": "Komentář" - }, - "titles": { - "create": "Vytvořit výrobce", - "clone": "Duplikovat výrobce", - "edit": "Upravit výrobce", - "list": "Výrobci", - "show": "Zobrazit výrobce", - "show_title": "[Výrobce #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "Od otevření této stránky byl tento prodejce někým/něčím aktualizován. Uložením se tyto změny přepíší!" - } + "form": { + "filament_updated": "Toto vlákno bylo od doby, kdy jste otevřeli tuto stránku, někým/něčím aktualizováno. Uložením se tyto změny přepíší!" + } + }, + "vendor": { + "vendor": "Výrobci", + "fields": { + "id": "Id", + "name": "Název", + "registered": "Registrováno", + "comment": "Komentář" }, - "table": { - "actions": "Akce" + "titles": { + "create": "Vytvořit výrobce", + "clone": "Duplikovat výrobce", + "edit": "Upravit výrobce", + "list": "Výrobci", + "show": "Zobrazit výrobce", + "show_title": "[Výrobce #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filamenty | Spoolman", - "show": "#{{id}} Zobrazit Filament | Spoolman", - "edit": "#{{id}} Upravit Filament | Spoolman", - "create": "Vytvořit Filament | Spoolman", - "clone": "#{{id}} Duplikovat Filament | Spoolman" - }, - "spool": { - "list": "Cívky | Spoolman", - "show": "#{{id}} Zobrazit cívku | Spoolman", - "edit": "#{{id}} Upravit cívku | Spoolman", - "create": "Vytvořit cívku | Spoolman", - "clone": "#{{id}} Duplikovat cívku | Spoolman" - }, - "vendor": { - "list": "Výrobci | Spoolman", - "show": "#{{id}} Zobrazit výrobce | Spoolman", - "edit": "#{{id}} Upravit výrobce | Spoolman", - "create": "Vytvořit výrobce | Spoolman", - "clone": "#{{id}} Duplikovat výrobce | Spoolman" - } + "form": { + "vendor_updated": "Od otevření této stránky byl tento prodejce někým/něčím aktualizován. Uložením se tyto změny přepíší!" + } + }, + "table": { + "actions": "Akce" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Filamenty | Spoolman", + "show": "#{{id}} Zobrazit Filament | Spoolman", + "edit": "#{{id}} Upravit Filament | Spoolman", + "create": "Vytvořit Filament | Spoolman", + "clone": "#{{id}} Duplikovat Filament | Spoolman" + }, + "spool": { + "list": "Cívky | Spoolman", + "show": "#{{id}} Zobrazit cívku | Spoolman", + "edit": "#{{id}} Upravit cívku | Spoolman", + "create": "Vytvořit cívku | Spoolman", + "clone": "#{{id}} Duplikovat cívku | Spoolman" + }, + "vendor": { + "list": "Výrobci | Spoolman", + "show": "#{{id}} Zobrazit výrobce | Spoolman", + "edit": "#{{id}} Upravit výrobce | Spoolman", + "create": "Vytvořit výrobce | Spoolman", + "clone": "#{{id}} Duplikovat výrobce | Spoolman" } + } } diff --git a/client/public/locales/de/common.json b/client/public/locales/de/common.json index aac92be40..0798bd0d0 100644 --- a/client/public/locales/de/common.json +++ b/client/public/locales/de/common.json @@ -1,246 +1,247 @@ { - "actions": { - "list": "Auflisten", - "create": "Erstellen", - "edit": "Bearbeiten", - "show": "Anzeigen", - "clone": "Duplizieren" + "actions": { + "list": "Auflisten", + "create": "Erstellen", + "edit": "Bearbeiten", + "show": "Anzeigen", + "clone": "Duplizieren" + }, + "buttons": { + "create": "Erstellen", + "save": "Speichern", + "logout": "Abmelden", + "delete": "Löschen", + "edit": "Bearbeiten", + "cancel": "Abbrechen", + "confirm": "Sicher?", + "filter": "Filter", + "clear": "Löschen", + "refresh": "Aktualisieren", + "show": "Anzeigen", + "undo": "Rückgängig", + "import": "Importieren", + "clone": "Duplizieren", + "notAccessTitle": "Keine Berechtigung, um hierauf zuzugreifen", + "hideColumns": "Spalten anpassen", + "clearFilters": "Filter leeren", + "share": "Teilen" + }, + "warnWhenUnsavedChanges": "Sicher? Nicht gespeicherte Änderungen gehen verloren!", + "notifications": { + "success": "Erfolg", + "error": "Fehler (status code: {{statusCode}})", + "undoable": "Noch {{seconds}} Sekunden um die Aktion rückgängig zu machen", + "createSuccess": "{{resource}} erfolgreich erstellt.", + "createError": "Fehler beim Erstellen {{resource}} (status code: {{statusCode}})", + "deleteSuccess": "{{resource}} erfolgreich gelöscht.", + "deleteError": "Fehler beim Löschen {{resource}} (status code: {{statusCode}})", + "editSuccess": "{{resource}} erfolgreich bearbeitet.", + "editError": "Fehler beim Bearbeiten {{resource}} (status code: {{statusCode}})", + "importProgress": "{{processed}}/{{total}} importiert" + }, + "loading": "Laden", + "version": "Version", + "unknown": "Unbekannt", + "yes": "Ja", + "no": "Nein", + "tags": { + "clone": "Duplizieren" + }, + "dashboard": { + "title": "Dashboard" + }, + "printing": { + "generic": { + "title": "Drucken", + "description": "Einstellungen unten anpassen, um das gewünschte Drucklayout zu erstellen. Der Drucker oder das Betriebssystem fügen möglichweise eigene Abstände und Skalierungen hinzu. Eventuell muss ein wenig experimentiert werden, bevor alles korrekt funktioniert. Auf normalem Papier testen, bevor auf Label-Papier gedruckt wird.", + "helpMargin": "Abstände sollten so konfiguriert werden, dass sie zum Papier und Drucker passen. Änderungen beeinflussen die Größe des gesamten Gitters.", + "helpPrinterMargin": "Der Sicherheitsabstand sollte so eingestellt werden, wie dicht der Drucker am Rand des Papiers drucken kann. Änderungen beeinflussen nicht die Größe des Gitters.", + "print": "Drucken", + "columns": "Spalten", + "rows": "Reihen", + "paperSize": "Papiergröße", + "customSize": "Benutzerdefiniert", + "dimensions": "Dimensionen", + "showBorder": "Rahmen anzeigen", + "previewScale": "Vorschau-Skalierung", + "skipItems": "Elemente überspringen", + "contentSettings": "Einstellungen: Inhalt", + "layoutSettings": "Einstellungen: Layout", + "horizontalSpacing": "Horizontaler Abstand", + "verticalSpacing": "Vertikaler Abstand", + "marginLeft": "Abstand Links", + "marginRight": "Abstand Rechts", + "marginTop": "Abstand Oben", + "marginBottom": "Abstand Unten", + "printerMarginLeft": "Sicherheitsabstand Links", + "printerMarginRight": "Sicherheitsabstand Rechts", + "printerMarginTop": "Sicherheitsabstand Oben", + "printerMarginBottom": "Sicherheitsabstand Unten", + "borders": { + "none": "Keine", + "border": "Rahmen", + "grid": "Gitter" + } }, - "buttons": { - "create": "Erstellen", - "save": "Speichern", - "logout": "Abmelden", - "delete": "Löschen", - "edit": "Bearbeiten", - "cancel": "Abbrechen", - "confirm": "Sicher?", - "filter": "Filter", - "clear": "Löschen", - "refresh": "Aktualisieren", - "show": "Anzeigen", - "undo": "Rückgängig", - "import": "Importieren", - "clone": "Duplizieren", - "notAccessTitle": "Keine Berechtigung, um hierauf zuzugreifen", - "hideColumns": "Spalten anpassen", - "clearFilters": "Filter leeren" + "qrcode": { + "button": "QR-Codes drucken", + "title": "QR Codes Drucken", + "spoolWeight": "Gewicht Spule: {{weight}}", + "lotNr": "Ch. Nr: {{lot}}", + "bedTemp": "BT: {{temp}}", + "extruderTemp": "DT: {{temp}}", + "textSize": "Textgröße Label", + "showSpoolmanIcon": "Spoolman Icon anzeigen", + "showVendor": "Hersteller", + "showContent": "Label drucken", + "showLotNr": "Chargennummer", + "showSpoolWeight": "Gewicht Spule", + "showTemperatures": "Temperaturen", + "showSpoolComment": "Kommentar: Spule", + "showFilamentComment": "Kommentar: Filament", + "showVendorComment": "Kommentar: Hersteller" }, - "warnWhenUnsavedChanges": "Sicher? Nicht gespeicherte Änderungen gehen verloren!", - "notifications": { - "success": "Erfolg", - "error": "Fehler (status code: {{statusCode}})", - "undoable": "Noch {{seconds}} Sekunden um die Aktion rückgängig zu machen", - "createSuccess": "{{resource}} erfolgreich erstellt.", - "createError": "Fehler beim Erstellen {{resource}} (status code: {{statusCode}})", - "deleteSuccess": "{{resource}} erfolgreich gelöscht.", - "deleteError": "Fehler beim Löschen {{resource}} (status code: {{statusCode}})", - "editSuccess": "{{resource}} erfolgreich bearbeitet.", - "editError": "Fehler beim Bearbeiten {{resource}} (status code: {{statusCode}})", - "importProgress": "{{processed}}/{{total}} importiert" + "spoolSelect": { + "title": "Spulenauswahl", + "description": "Spulen auswählen, für die ein QR-Code gedruckt werden soll.", + "showArchived": "Archivierte anzeigen", + "noSpoolsSelected": "Keine Spulen ausgewählt.", + "selectAll": "Alle aus-/abwählen", + "selectedTotal_one": "{{count}} Spulen ausgewählt", + "selectedTotal_other": "{{count}} Spulen ausgewählt" + } + }, + "scanner": { + "title": "QR-Code Scanner", + "description": "Spoolman QR-Code scannen, um Details zur Spule anzuzeigen.", + "error": { + "notAllowed": "Zugriff auf Kamera wurde nicht erlaubt.", + "insecureContext": "Die Seite wird nicht über HTTPS bereitgestellt.", + "streamApiNotSupported": "Der Browser unterstützt die MediaStream API nicht.", + "notReadable": "Zugriff auf Kamera nicht möglich.", + "notFound": "Keine Kamera gefunden.", + "unknown": "Ein unbekannter Fehler ist aufgetreten. ({{error}})" + } + }, + "spool": { + "spool": "Spulen", + "fields": { + "id": "ID", + "filament_name": "Filament", + "filament": "Filament", + "material": "Material", + "weight_to_use": "Gewicht", + "used_weight": "Verbrauchtes Gewicht", + "remaining_weight": "Verbleibendes Gewicht", + "measured_weight": "Gemessenes Gewicht", + "used_length": "Verbrauchte Länge", + "remaining_length": "Verbleibende Länge", + "location": "Ort", + "lot_nr": "Chargennummer", + "first_used": "Erste Verwendung", + "last_used": "Letzte Verwendung", + "registered": "Registriert", + "comment": "Kommentar", + "archived": "Archiviert" }, - "loading": "Laden", - "version": "Version", - "unknown": "Unbekannt", - "yes": "Ja", - "no": "Nein", - "tags": { - "clone": "Duplizieren" + "fields_help": { + "weight_to_use": "Auswählen welches Gewicht verwendet werden soll. \"Gemessenes Gewicht\" ist nur verfügbar, wenn das Gewicht der Spule für das Filament hinterlegt ist", + "used_weight": "Wie viel Gewicht bereits verbraucht wurdez z.B. 0g für eine neue Spule.", + "remaining_weight": "Wie viel Filament noch auf der Spule ist. Entspricht dem auf der Spule angegeben Nettogewicht, wenn die Spule neu ist.", + "measured_weight": "Gesamtgewicht von Spule und Filament.", + "location": "Ort, an dem die Spule gelagert wird.", + "lot_nr": "Chargennummer des Herstellers. Kann verwendet werden um gleichmäßige Farben zu garantieren, wenn mehrere Spulen verwendet werden." }, - "dashboard": { - "title": "Dashboard" + "titles": { + "create": "Spule erstellen", + "clone": "Spule duplizieren", + "edit": "Spule bearbeiten", + "list": "Spulen", + "show": "Spule anzeigen", + "archive": "Spule archivieren" }, - "printing": { - "generic": { - "title": "Drucken", - "description": "Einstellungen unten anpassen, um das gewünschte Drucklayout zu erstellen. Der Drucker oder das Betriebssystem fügen möglichweise eigene Abstände und Skalierungen hinzu. Eventuell muss ein wenig experimentiert werden, bevor alles korrekt funktioniert. Auf normalem Papier testen, bevor auf Label-Papier gedruckt wird.", - "helpMargin": "Abstände sollten so konfiguriert werden, dass sie zum Papier und Drucker passen. Änderungen beeinflussen die Größe des gesamten Gitters.", - "helpPrinterMargin": "Der Sicherheitsabstand sollte so eingestellt werden, wie dicht der Drucker am Rand des Papiers drucken kann. Änderungen beeinflussen nicht die Größe des Gitters.", - "print": "Drucken", - "columns": "Spalten", - "rows": "Reihen", - "paperSize": "Papiergröße", - "customSize": "Benutzerdefiniert", - "dimensions": "Dimensionen", - "showBorder": "Rahmen anzeigen", - "previewScale": "Vorschau-Skalierung", - "skipItems": "Elemente überspringen", - "contentSettings": "Einstellungen: Inhalt", - "layoutSettings": "Einstellungen: Layout", - "horizontalSpacing": "Horizontaler Abstand", - "verticalSpacing": "Vertikaler Abstand", - "marginLeft": "Abstand Links", - "marginRight": "Abstand Rechts", - "marginTop": "Abstand Oben", - "marginBottom": "Abstand Unten", - "printerMarginLeft": "Sicherheitsabstand Links", - "printerMarginRight": "Sicherheitsabstand Rechts", - "printerMarginTop": "Sicherheitsabstand Oben", - "printerMarginBottom": "Sicherheitsabstand Unten", - "borders": { - "none": "Keine", - "border": "Rahmen", - "grid": "Gitter" - } - }, - "qrcode": { - "button": "QR-Codes drucken", - "title": "QR Codes Drucken", - "spoolWeight": "Gewicht Spule: {{weight}}", - "lotNr": "Ch. Nr: {{lot}}", - "bedTemp": "BT: {{temp}}", - "extruderTemp": "DT: {{temp}}", - "textSize": "Textgröße Label", - "showSpoolmanIcon": "Spoolman Icon anzeigen", - "showVendor": "Hersteller", - "showContent": "Label drucken", - "showLotNr": "Chargennummer", - "showSpoolWeight": "Gewicht Spule", - "showTemperatures": "Temperaturen", - "showSpoolComment": "Kommentar: Spule", - "showFilamentComment": "Kommentar: Filament", - "showVendorComment": "Kommentar: Hersteller" - }, - "spoolSelect": { - "title": "Spulenauswahl", - "description": "Spulen auswählen, für die ein QR-Code gedruckt werden soll.", - "showArchived": "Archivierte anzeigen", - "noSpoolsSelected": "Keine Spulen ausgewählt.", - "selectAll": "Alle aus-/abwählen", - "selectedTotal_one": "{{count}} Spulen ausgewählt", - "selectedTotal_other": "{{count}} Spulen ausgewählt" - } + "messages": { + "archive": "Sicher das die Spule archiviert werden soll?" + } + }, + "filament": { + "filament": "Filamente", + "fields": { + "id": "ID", + "vendor_name": "Hersteller", + "vendor": "Hersteller", + "name": "Name", + "material": "Material", + "price": "Preis", + "density": "Dichte", + "diameter": "Durchmesser", + "weight": "Gewicht", + "spool_weight": "Gewicht Spule", + "article_number": "Artikelnummer", + "registered": "Registriert", + "comment": "Kommentar", + "settings_extruder_temp": "Düsentemperatur", + "settings_bed_temp": "Betttemperatur", + "color_hex": "Farbe" }, - "scanner": { - "title": "QR-Code Scanner", - "description": "Spoolman QR-Code scannen, um Details zur Spule anzuzeigen.", - "error": { - "notAllowed": "Zugriff auf Kamera wurde nicht erlaubt.", - "insecureContext": "Die Seite wird nicht über HTTPS bereitgestellt.", - "streamApiNotSupported": "Der Browser unterstützt die MediaStream API nicht.", - "notReadable": "Zugriff auf Kamera nicht möglich.", - "notFound": "Keine Kamera gefunden.", - "unknown": "Ein unbekannter Fehler ist aufgetreten. ({{error}})" - } + "fields_help": { + "name": "Name des Filaments um es von anderen Typen des gleichen Herstellers zu unterscheiden. Sollte z.B. die Farbe enthalten.", + "material": "z.B. PLA, ABS, PETG, etc.", + "price": "Preis einer vollen Spule in der im System konfigurierten Währung", + "weight": "Das Gewicht einer vollen Spule (Nettogewicht). Sollte nicht das Gewicht der Spule, sondern nur dass des Filaments auf der Spule enthalten. Entspricht normalerweise dem Gewicht, das auf der Spule aufgedruckt ist.", + "spool_weight": "Das Gewicht der leeren Spule. Wird aktuell noch nicht verwendet, könnte aber von Drittanbieter-Apps genutzt werden, um z.B. das verbleibende Gewicht von einem gemessen Gewicht zu berechnen.", + "article_number": "z.B. EAN, UPC o.Ä." }, - "spool": { - "spool": "Spulen", - "fields": { - "id": "ID", - "filament_name": "Filament", - "filament": "Filament", - "material": "Material", - "weight_to_use": "Gewicht", - "used_weight": "Verbrauchtes Gewicht", - "remaining_weight": "Verbleibendes Gewicht", - "measured_weight": "Gemessenes Gewicht", - "used_length": "Verbrauchte Länge", - "remaining_length": "Verbleibende Länge", - "location": "Ort", - "lot_nr": "Chargennummer", - "first_used": "Erste Verwendung", - "last_used": "Letzte Verwendung", - "registered": "Registriert", - "comment": "Kommentar", - "archived": "Archiviert" - }, - "fields_help": { - "weight_to_use": "Auswählen welches Gewicht verwendet werden soll. \"Gemessenes Gewicht\" ist nur verfügbar, wenn das Gewicht der Spule für das Filament hinterlegt ist", - "used_weight": "Wie viel Gewicht bereits verbraucht wurdez z.B. 0g für eine neue Spule.", - "remaining_weight": "Wie viel Filament noch auf der Spule ist. Entspricht dem auf der Spule angegeben Nettogewicht, wenn die Spule neu ist.", - "measured_weight": "Gesamtgewicht von Spule und Filament.", - "location": "Ort, an dem die Spule gelagert wird.", - "lot_nr": "Chargennummer des Herstellers. Kann verwendet werden um gleichmäßige Farben zu garantieren, wenn mehrere Spulen verwendet werden." - }, - "titles": { - "create": "Spule erstellen", - "clone": "Spule duplizieren", - "edit": "Spule bearbeiten", - "list": "Spulen", - "show": "Spule anzeigen", - "archive": "Spule archivieren" - }, - "messages": { - "archive": "Sicher das die Spule archiviert werden soll?" - } + "titles": { + "create": "Filament erstellen", + "clone": "Filament duplizieren", + "edit": "Filament bearbeiten", + "list": "Filamente", + "show": "Filament anzeigen" + } + }, + "vendor": { + "vendor": "Hersteller", + "fields": { + "id": "Id", + "name": "Name", + "registered": "Registriert", + "comment": "Kommentar" }, + "titles": { + "create": "Hersteller erstellen", + "clone": "Hersteller duplizieren", + "edit": "Hersteller bearbeiten", + "list": "Hersteller", + "show": "Hersteller anzeigen" + } + }, + "table": { + "actions": "Aktionen" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", "filament": { - "filament": "Filamente", - "fields": { - "id": "ID", - "vendor_name": "Hersteller", - "vendor": "Hersteller", - "name": "Name", - "material": "Material", - "price": "Preis", - "density": "Dichte", - "diameter": "Durchmesser", - "weight": "Gewicht", - "spool_weight": "Gewicht Spule", - "article_number": "Artikelnummer", - "registered": "Registriert", - "comment": "Kommentar", - "settings_extruder_temp": "Düsentemperatur", - "settings_bed_temp": "Betttemperatur", - "color_hex": "Farbe" - }, - "fields_help": { - "name": "Name des Filaments um es von anderen Typen des gleichen Herstellers zu unterscheiden. Sollte z.B. die Farbe enthalten.", - "material": "z.B. PLA, ABS, PETG, etc.", - "price": "Preis einer vollen Spule in der im System konfigurierten Währung", - "weight": "Das Gewicht einer vollen Spule (Nettogewicht). Sollte nicht das Gewicht der Spule, sondern nur dass des Filaments auf der Spule enthalten. Entspricht normalerweise dem Gewicht, das auf der Spule aufgedruckt ist.", - "spool_weight": "Das Gewicht der leeren Spule. Wird aktuell noch nicht verwendet, könnte aber von Drittanbieter-Apps genutzt werden, um z.B. das verbleibende Gewicht von einem gemessen Gewicht zu berechnen.", - "article_number": "z.B. EAN, UPC o.Ä." - }, - "titles": { - "create": "Filament erstellen", - "clone": "Filament duplizieren", - "edit": "Filament bearbeiten", - "list": "Filamente", - "show": "Filament anzeigen" - } - }, - "vendor": { - "vendor": "Hersteller", - "fields": { - "id": "Id", - "name": "Name", - "registered": "Registriert", - "comment": "Kommentar" - }, - "titles": { - "create": "Hersteller erstellen", - "clone": "Hersteller duplizieren", - "edit": "Hersteller bearbeiten", - "list": "Hersteller", - "show": "Hersteller anzeigen" - } + "list": "Filamente | Spoolman", + "show": "#{{id}} Filament anzeigen | Spoolman", + "edit": "#{{id}} Filament bearbeiten | Spoolman", + "create": "Filament erstellen | Spoolman", + "clone": "#{{id}} Filament duplizieren | Spoolman" }, - "table": { - "actions": "Aktionen" + "spool": { + "list": "Spulen | Spoolman", + "show": "#{{id}} Spule anzeigen | Spoolman", + "edit": "#{{id}} Spule bearbeiten | Spoolman", + "create": "Spule erstellen | Spoolman", + "clone": "#{{id}} Spule duplizieren | Spoolman" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filamente | Spoolman", - "show": "#{{id}} Filament anzeigen | Spoolman", - "edit": "#{{id}} Filament bearbeiten | Spoolman", - "create": "Filament erstellen | Spoolman", - "clone": "#{{id}} Filament duplizieren | Spoolman" - }, - "spool": { - "list": "Spulen | Spoolman", - "show": "#{{id}} Spule anzeigen | Spoolman", - "edit": "#{{id}} Spule bearbeiten | Spoolman", - "create": "Spule erstellen | Spoolman", - "clone": "#{{id}} Spule duplizieren | Spoolman" - }, - "vendor": { - "list": "Hersteler | Spoolman", - "show": "#{{id}} Hersteller anzeigen | Spoolman", - "edit": "#{{id}} Hersteller bearbeiten | Spoolman", - "create": "Herstellen erstellen | Spoolman", - "clone": "#{{id}} Hersteller duplizieren | Spoolman" - } + "vendor": { + "list": "Hersteler | Spoolman", + "show": "#{{id}} Hersteller anzeigen | Spoolman", + "edit": "#{{id}} Hersteller bearbeiten | Spoolman", + "create": "Herstellen erstellen | Spoolman", + "clone": "#{{id}} Hersteller duplizieren | Spoolman" } + } } diff --git a/client/public/locales/en/common.json b/client/public/locales/en/common.json index 621d43537..0e4015f34 100644 --- a/client/public/locales/en/common.json +++ b/client/public/locales/en/common.json @@ -1,263 +1,264 @@ { - "actions": { - "list": "List", - "create": "Create", - "edit": "Edit", - "show": "Show", - "clone": "Clone" + "actions": { + "list": "List", + "create": "Create", + "edit": "Edit", + "show": "Show", + "clone": "Clone" + }, + "buttons": { + "create": "Create", + "save": "Save", + "logout": "Log out", + "delete": "Delete", + "edit": "Edit", + "cancel": "Cancel", + "confirm": "Are you sure?", + "filter": "Filter", + "clear": "Clear", + "refresh": "Refresh", + "show": "Show", + "undo": "Undo", + "import": "Import", + "clone": "Clone", + "archive": "Archive", + "unArchive": "Unarchive", + "hideArchived": "Hide Archived", + "showArchived": "Show Archived", + "notAccessTitle": "You don't have permission to access", + "hideColumns": "Hide Columns", + "clearFilters": "Clear Filters", + "share": "Share" + }, + "warnWhenUnsavedChanges": "Are you sure you want to leave? You have unsaved changes.", + "notifications": { + "success": "Successful", + "error": "Error (status code: {{statusCode}})", + "undoable": "You have {{seconds}} seconds to undo.", + "createSuccess": "Successfully created {{resource}}", + "createError": "There was an error creating {{resource}} (status code: {{statusCode}})", + "deleteSuccess": "Successfully deleted {{resource}}", + "deleteError": "Error when deleting {{resource}} (status code: {{statusCode}})", + "editSuccess": "Successfully edited {{resource}}", + "editError": "Error when editing {{resource}} (status code: {{statusCode}})", + "importProgress": "Importing: {{processed}}/{{total}}" + }, + "loading": "Loading", + "version": "Version", + "unknown": "Unknown", + "yes": "Yes", + "no": "No", + "tags": { + "clone": "Clone" + }, + "dashboard": { + "title": "Dashboard" + }, + "printing": { + "generic": { + "title": "Printing", + "description": "Tune in the settings below to get the desired print layout. Keep in mind that printers and your OS may apply it's own margins and scaling, so you may need to perform some trial-and-error before it's all correct. Test it on a piece of regular paper before printing on the actual labels.", + "helpMargin": "Margins should be configured to match your label paper and printer, changing these will affect the size of the entire grid.", + "helpPrinterMargin": "Safe-Zone should be set to how close to the paper edge your printer can print, changing these will not affect the entire grid.", + "print": "Print", + "columns": "Columns", + "rows": "Rows", + "paperSize": "Paper Size", + "customSize": "Custom", + "dimensions": "Dimensions", + "showBorder": "Show Border", + "previewScale": "Preview Scale", + "skipItems": "Skip Items", + "contentSettings": "Content Settings", + "layoutSettings": "Layout Settings", + "horizontalSpacing": "Horizontal Spacing", + "verticalSpacing": "Vertical Spacing", + "marginLeft": "Left Margin", + "marginRight": "Right Margin", + "marginTop": "Top Margin", + "marginBottom": "Bottom Margin", + "printerMarginLeft": "Safe-Zone Left", + "printerMarginRight": "Safe-Zone Right", + "printerMarginTop": "Safe-Zone Top", + "printerMarginBottom": "Safe-Zone Bottom", + "borders": { + "none": "None", + "border": "Border", + "grid": "Grid" + } }, - "buttons": { - "create": "Create", - "save": "Save", - "logout": "Log out", - "delete": "Delete", - "edit": "Edit", - "cancel": "Cancel", - "confirm": "Are you sure?", - "filter": "Filter", - "clear": "Clear", - "refresh": "Refresh", - "show": "Show", - "undo": "Undo", - "import": "Import", - "clone": "Clone", - "archive": "Archive", - "unArchive": "Unarchive", - "hideArchived": "Hide Archived", - "showArchived": "Show Archived", - "notAccessTitle": "You don't have permission to access", - "hideColumns": "Hide Columns", - "clearFilters": "Clear Filters" + "qrcode": { + "button": "Print QR Codes", + "title": "QR Code Printing", + "spoolWeight": "Spool Weight: {{weight}}", + "lotNr": "Lot Nr: {{lot}}", + "bedTemp": "BT: {{temp}}", + "extruderTemp": "ET: {{temp}}", + "textSize": "Content Text Size", + "showSpoolmanIcon": "Show Spoolman Icon", + "showVendor": "Vendor", + "showContent": "Print Label", + "showLotNr": "Lot Nr", + "showSpoolWeight": "Spool Weight", + "showTemperatures": "Temperatures", + "showSpoolComment": "Spool Comment", + "showFilamentComment": "Filament Comment", + "showVendorComment": "Vendor Comment" }, - "warnWhenUnsavedChanges": "Are you sure you want to leave? You have unsaved changes.", - "notifications": { - "success": "Successful", - "error": "Error (status code: {{statusCode}})", - "undoable": "You have {{seconds}} seconds to undo.", - "createSuccess": "Successfully created {{resource}}", - "createError": "There was an error creating {{resource}} (status code: {{statusCode}})", - "deleteSuccess": "Successfully deleted {{resource}}", - "deleteError": "Error when deleting {{resource}} (status code: {{statusCode}})", - "editSuccess": "Successfully edited {{resource}}", - "editError": "Error when editing {{resource}} (status code: {{statusCode}})", - "importProgress": "Importing: {{processed}}/{{total}}" + "spoolSelect": { + "title": "Select Spools", + "description": "Select spools to print QR codes for.", + "showArchived": "Show Archived", + "noSpoolsSelected": "You have not selected any spools.", + "selectAll": "Select/Unselect All", + "selectedTotal_one": "{{count}} spool selected", + "selectedTotal_other": "{{count}} spools selected" + } + }, + "scanner": { + "title": "QR Code Scanner", + "description": "Scan a Spoolman QR code to view details about the spool.", + "error": { + "notAllowed": "You have not allowed access to the camera.", + "insecureContext": "The page is not served over HTTPS.", + "streamApiNotSupported": "The browser does not support the MediaStream API.", + "notReadable": "The camera is not readable.", + "notFound": "No camera was found.", + "unknown": "An unknown error occurred. ({{error}})" + } + }, + "spool": { + "spool": "Spools", + "fields": { + "id": "ID", + "filament_name": "Filament", + "filament": "Filament", + "material": "Material", + "weight_to_use": "Weight", + "used_weight": "Used Weight", + "remaining_weight": "Remaining Weight", + "measured_weight": "Measured Weight", + "used_length": "Used Length", + "remaining_length": "Remaining Length", + "location": "Location", + "lot_nr": "Lot Nr", + "first_used": "First Used", + "last_used": "Last Used", + "registered": "Registered", + "comment": "Comment", + "archived": "Archived" }, - "loading": "Loading", - "version": "Version", - "unknown": "Unknown", - "yes": "Yes", - "no": "No", - "tags": { - "clone": "Clone" + "fields_help": { + "weight_to_use": "Select what weight value to enter. Measured weight is only available if the spool weight is set for the selected filament.", + "used_weight": "How much filament has been used from the spool. A new spool should have 0g used.", + "remaining_weight": "How much filament is left on the spool. For a new spool this should match the spool weight.", + "measured_weight": "How much the filament and spool weigh.", + "location": "Where the spool is located if you have multiple locations where you store your spools.", + "lot_nr": "Manufacturer's lot number. Can be used to ensure a print has consistent color if multiple spools are used." }, - "dashboard": { - "title": "Dashboard" + "titles": { + "create": "Create Spool", + "clone": "Clone Spool", + "edit": "Edit Spool", + "list": "Spools", + "show": "Show Spool", + "show_title": "[Spool #{{id}}] {{name}}", + "archive": "Archive Spool" }, - "printing": { - "generic": { - "title": "Printing", - "description": "Tune in the settings below to get the desired print layout. Keep in mind that printers and your OS may apply it's own margins and scaling, so you may need to perform some trial-and-error before it's all correct. Test it on a piece of regular paper before printing on the actual labels.", - "helpMargin": "Margins should be configured to match your label paper and printer, changing these will affect the size of the entire grid.", - "helpPrinterMargin": "Safe-Zone should be set to how close to the paper edge your printer can print, changing these will not affect the entire grid.", - "print": "Print", - "columns": "Columns", - "rows": "Rows", - "paperSize": "Paper Size", - "customSize": "Custom", - "dimensions": "Dimensions", - "showBorder": "Show Border", - "previewScale": "Preview Scale", - "skipItems": "Skip Items", - "contentSettings": "Content Settings", - "layoutSettings": "Layout Settings", - "horizontalSpacing": "Horizontal Spacing", - "verticalSpacing": "Vertical Spacing", - "marginLeft": "Left Margin", - "marginRight": "Right Margin", - "marginTop": "Top Margin", - "marginBottom": "Bottom Margin", - "printerMarginLeft": "Safe-Zone Left", - "printerMarginRight": "Safe-Zone Right", - "printerMarginTop": "Safe-Zone Top", - "printerMarginBottom": "Safe-Zone Bottom", - "borders": { - "none": "None", - "border": "Border", - "grid": "Grid" - } - }, - "qrcode": { - "button": "Print QR Codes", - "title": "QR Code Printing", - "spoolWeight": "Spool Weight: {{weight}}", - "lotNr": "Lot Nr: {{lot}}", - "bedTemp": "BT: {{temp}}", - "extruderTemp": "ET: {{temp}}", - "textSize": "Content Text Size", - "showSpoolmanIcon": "Show Spoolman Icon", - "showVendor": "Vendor", - "showContent": "Print Label", - "showLotNr": "Lot Nr", - "showSpoolWeight": "Spool Weight", - "showTemperatures": "Temperatures", - "showSpoolComment": "Spool Comment", - "showFilamentComment": "Filament Comment", - "showVendorComment": "Vendor Comment" - }, - "spoolSelect": { - "title": "Select Spools", - "description": "Select spools to print QR codes for.", - "showArchived": "Show Archived", - "noSpoolsSelected": "You have not selected any spools.", - "selectAll": "Select/Unselect All", - "selectedTotal_one": "{{count}} spool selected", - "selectedTotal_other": "{{count}} spools selected" - } + "form": { + "new_location_prompt": "Enter a new location", + "spool_updated": "This spool has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" }, - "scanner": { - "title": "QR Code Scanner", - "description": "Scan a Spoolman QR code to view details about the spool.", - "error": { - "notAllowed": "You have not allowed access to the camera.", - "insecureContext": "The page is not served over HTTPS.", - "streamApiNotSupported": "The browser does not support the MediaStream API.", - "notReadable": "The camera is not readable.", - "notFound": "No camera was found.", - "unknown": "An unknown error occurred. ({{error}})" - } + "messages": { + "archive": "Are you sure you want to archive this spool?" + } + }, + "filament": { + "filament": "Filaments", + "fields": { + "id": "ID", + "vendor_name": "Vendor", + "vendor": "Vendor", + "name": "Name", + "material": "Material", + "price": "Price", + "density": "Density", + "diameter": "Diameter", + "weight": "Weight", + "spool_weight": "Spool Weight", + "article_number": "Article Number", + "registered": "Registered", + "comment": "Comment", + "settings_extruder_temp": "Extruder Temp", + "settings_bed_temp": "Bed Temp", + "color_hex": "Color" }, - "spool": { - "spool": "Spools", - "fields": { - "id": "ID", - "filament_name": "Filament", - "filament": "Filament", - "material": "Material", - "weight_to_use": "Weight", - "used_weight": "Used Weight", - "remaining_weight": "Remaining Weight", - "measured_weight": "Measured Weight", - "used_length": "Used Length", - "remaining_length": "Remaining Length", - "location": "Location", - "lot_nr": "Lot Nr", - "first_used": "First Used", - "last_used": "Last Used", - "registered": "Registered", - "comment": "Comment", - "archived": "Archived" - }, - "fields_help": { - "weight_to_use": "Select what weight value to enter. Measured weight is only available if the spool weight is set for the selected filament.", - "used_weight": "How much filament has been used from the spool. A new spool should have 0g used.", - "remaining_weight": "How much filament is left on the spool. For a new spool this should match the spool weight.", - "measured_weight": "How much the filament and spool weigh.", - "location": "Where the spool is located if you have multiple locations where you store your spools.", - "lot_nr": "Manufacturer's lot number. Can be used to ensure a print has consistent color if multiple spools are used." - }, - "titles": { - "create": "Create Spool", - "clone": "Clone Spool", - "edit": "Edit Spool", - "list": "Spools", - "show": "Show Spool", - "show_title": "[Spool #{{id}}] {{name}}", - "archive": "Archive Spool" - }, - "form": { - "new_location_prompt": "Enter a new location", - "spool_updated": "This spool has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" - }, - "messages": { - "archive": "Are you sure you want to archive this spool?" - } + "fields_help": { + "name": "Filament name, to distinguish this filament type among others from the same vendor. Should contain the color for example.", + "material": "E.g. PLA, ABS, PETG, etc.", + "price": "Price of a full spool in the system configured currency.", + "weight": "The filament weight of a full spool (net weight). This should not include the weight of the spool itself, only the filament. It is what is usually written on the packaging.", + "spool_weight": "The weight of an empty spool. Used to determine measured weight of a spool.", + "article_number": "E.g. EAN, UPC, etc." }, - "filament": { - "filament": "Filaments", - "fields": { - "id": "ID", - "vendor_name": "Vendor", - "vendor": "Vendor", - "name": "Name", - "material": "Material", - "price": "Price", - "density": "Density", - "diameter": "Diameter", - "weight": "Weight", - "spool_weight": "Spool Weight", - "article_number": "Article Number", - "registered": "Registered", - "comment": "Comment", - "settings_extruder_temp": "Extruder Temp", - "settings_bed_temp": "Bed Temp", - "color_hex": "Color" - }, - "fields_help": { - "name": "Filament name, to distinguish this filament type among others from the same vendor. Should contain the color for example.", - "material": "E.g. PLA, ABS, PETG, etc.", - "price": "Price of a full spool in the system configured currency.", - "weight": "The filament weight of a full spool (net weight). This should not include the weight of the spool itself, only the filament. It is what is usually written on the packaging.", - "spool_weight": "The weight of an empty spool. Used to determine measured weight of a spool.", - "article_number": "E.g. EAN, UPC, etc." - }, - "titles": { - "create": "Create Filament", - "clone": "Clone Filament", - "edit": "Edit Filament", - "list": "Filaments", - "show": "Show Filament", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "This filament has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" - } + "titles": { + "create": "Create Filament", + "clone": "Clone Filament", + "edit": "Edit Filament", + "list": "Filaments", + "show": "Show Filament", + "show_title": "[Filament #{{id}}] {{name}}" }, - "vendor": { - "vendor": "Vendors", - "fields": { - "id": "Id", - "name": "Name", - "registered": "Registered", - "comment": "Comment" - }, - "titles": { - "create": "Create Vendor", - "clone": "Clone Vendor", - "edit": "Edit Vendor", - "list": "Vendors", - "show": "Show Vendor", - "show_title": "[Vendor #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "This vendor has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" - } + "form": { + "filament_updated": "This filament has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" + } + }, + "vendor": { + "vendor": "Vendors", + "fields": { + "id": "Id", + "name": "Name", + "registered": "Registered", + "comment": "Comment" }, - "table": { - "actions": "Actions" + "titles": { + "create": "Create Vendor", + "clone": "Clone Vendor", + "edit": "Edit Vendor", + "list": "Vendors", + "show": "Show Vendor", + "show_title": "[Vendor #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filaments | Spoolman", - "show": "#{{id}} Show Filament | Spoolman", - "edit": "#{{id}} Edit Filament | Spoolman", - "create": "Create Filament | Spoolman", - "clone": "#{{id}} Clone Filament | Spoolman" - }, - "spool": { - "list": "Spools | Spoolman", - "show": "#{{id}} Show Spool | Spoolman", - "edit": "#{{id}} Edit Spool | Spoolman", - "create": "Create Spool | Spoolman", - "clone": "#{{id}} Clone Spool | Spoolman" - }, - "vendor": { - "list": "Vendors | Spoolman", - "show": "#{{id}} Show Vendor | Spoolman", - "edit": "#{{id}} Edit Vendor | Spoolman", - "create": "Create Vendor | Spoolman", - "clone": "#{{id}} Clone Vendor | Spoolman" - } + "form": { + "vendor_updated": "This vendor has been updated by someone/something else since you opened this page. Saving will overwrite those changes!" + } + }, + "table": { + "actions": "Actions" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Filaments | Spoolman", + "show": "#{{id}} Show Filament | Spoolman", + "edit": "#{{id}} Edit Filament | Spoolman", + "create": "Create Filament | Spoolman", + "clone": "#{{id}} Clone Filament | Spoolman" + }, + "spool": { + "list": "Spools | Spoolman", + "show": "#{{id}} Show Spool | Spoolman", + "edit": "#{{id}} Edit Spool | Spoolman", + "create": "Create Spool | Spoolman", + "clone": "#{{id}} Clone Spool | Spoolman" + }, + "vendor": { + "list": "Vendors | Spoolman", + "show": "#{{id}} Show Vendor | Spoolman", + "edit": "#{{id}} Edit Vendor | Spoolman", + "create": "Create Vendor | Spoolman", + "clone": "#{{id}} Clone Vendor | Spoolman" } + } } diff --git a/client/public/locales/es/common.json b/client/public/locales/es/common.json index cf3bd1ed1..87a456739 100644 --- a/client/public/locales/es/common.json +++ b/client/public/locales/es/common.json @@ -1,264 +1,265 @@ { - "actions": { - "list": "Listar", - "create": "Crear", - "edit": "Editar", - "show": "Mostrar", - "clone": "Duplicar" + "actions": { + "list": "Listar", + "create": "Crear", + "edit": "Editar", + "show": "Mostrar", + "clone": "Duplicar" + }, + "buttons": { + "create": "Crear", + "save": "Guardar", + "logout": "Cerrar Sesión", + "delete": "Borrar", + "edit": "Editar", + "cancel": "Cancelar", + "confirm": "Seguro?", + "filter": "Filtrar", + "clear": "Limpiar", + "refresh": "Renovar", + "show": "Mostrar", + "undo": "Deshacer", + "import": "Importar", + "clone": "Duplicar", + "archive": "Archivar", + "unArchive": "Desarchivar", + "hideArchived": "Ocultar Archivados", + "showArchived": "Mostrar Archivados", + "notAccessTitle": "No tienes permiso de acceso", + "hideColumns": "Ocultar Columnas", + "clearFilters": "Borrar filtros", + "share": "compartir" + }, + "warnWhenUnsavedChanges": "Seguro que quieres salir?. Hay cambios sin guardar.", + "notifications": { + "success": "Éxito", + "error": "Error (status code: {{statusCode}})", + "undoable": "Tienes {{seconds}} segundos para deshacer.", + "createSuccess": "Has creado {{resource}} con éxito", + "createError": "Hubo un error al crear {{resource}} (status code: {{statusCode}})", + "deleteSuccess": "Has borrado {{resource}} con éxito", + "deleteError": "Error al borrar {{resource}} (status code: {{statusCode}})", + "editSuccess": "Has editado {{resource}} con éxito", + "editError": "Error al editar {{resource}} (status code: {{statusCode}})", + "importProgress": "Importando: {{processed}}/{{total}}" + }, + "loading": "Cargando", + "version": "Versión", + "unknown": "Desconocido", + "yes": "Si", + "no": "No", + "tags": { + "clone": "Duplicar" + }, + "dashboard": { + "title": "Panel" + }, + "spool": { + "spool": "Carretes", + "fields": { + "id": "ID", + "filament_name": "Filamento", + "filament": "Filamento", + "material": "Material", + "used_weight": "Peso Usado", + "remaining_weight": "Peso Restante", + "used_length": "Largo Usado", + "remaining_length": "Largo Restante", + "location": "Locación", + "lot_nr": "No. Lote", + "first_used": "Fecha de Primer Uso", + "last_used": "Ultimo Uso", + "registered": "Registrado", + "comment": "Comentarios", + "archived": "Archivado", + "measured_weight": "Peso Medido", + "weight_to_use": "Peso" }, - "buttons": { - "create": "Crear", - "save": "Guardar", - "logout": "Cerrar Sesión", - "delete": "Borrar", - "edit": "Editar", - "cancel": "Cancelar", - "confirm": "Seguro?", - "filter": "Filtrar", - "clear": "Limpiar", - "refresh": "Renovar", - "show": "Mostrar", - "undo": "Deshacer", - "import": "Importar", - "clone": "Duplicar", - "archive": "Archivar", - "unArchive": "Desarchivar", - "hideArchived": "Ocultar Archivados", - "showArchived": "Mostrar Archivados", - "notAccessTitle": "No tienes permiso de acceso", - "hideColumns": "Ocultar Columnas", - "clearFilters": "Borrar filtros" + "fields_help": { + "used_weight": "Cuanto filamento ha sido usado en el carrete. Un carrete nuevo debería tener 0g usados.", + "location": "Donde esta el carrete si se guardan los carretes en lugares distintos.", + "lot_nr": "Numero de lote de manufactura. Puede ser usado si el modelo a imprimir necesita color homogéneo y varios carretes son necesarios.", + "weight_to_use": "Elegir el peso a usar. El peso medido solo esta disponible si existe el valor de peso del carrete seleccionado.", + "measured_weight": "Cuanto pesa el filamento y el carrete.", + "remaining_weight": "Cuanto filamento resta en el carrete. Para un carrete nuevo el peso debe ser igual al peso indicado de fabrica." }, - "warnWhenUnsavedChanges": "Seguro que quieres salir?. Hay cambios sin guardar.", - "notifications": { - "success": "Éxito", - "error": "Error (status code: {{statusCode}})", - "undoable": "Tienes {{seconds}} segundos para deshacer.", - "createSuccess": "Has creado {{resource}} con éxito", - "createError": "Hubo un error al crear {{resource}} (status code: {{statusCode}})", - "deleteSuccess": "Has borrado {{resource}} con éxito", - "deleteError": "Error al borrar {{resource}} (status code: {{statusCode}})", - "editSuccess": "Has editado {{resource}} con éxito", - "editError": "Error al editar {{resource}} (status code: {{statusCode}})", - "importProgress": "Importando: {{processed}}/{{total}}" + "titles": { + "create": "Crear Carrete", + "clone": "Duplicar Carrete", + "edit": "Editar Carrete", + "list": "Carretes", + "show": "Mostrar Carrete", + "archive": "Archivar Carrete", + "show_title": "[Carrete #{{id}}] {{name}}" }, - "loading": "Cargando", - "version": "Versión", - "unknown": "Desconocido", - "yes": "Si", - "no": "No", - "tags": { - "clone": "Duplicar" + "messages": { + "archive": "Esta seguro que quiere archivar este carrete?" }, - "dashboard": { - "title": "Panel" + "form": { + "new_location_prompt": "Introduce una nueva ubicación", + "spool_updated": "Este spool ha sido actualizado por alguien/algo más desde que abriste esta página. ¡Al guardar, se sobrescribirán los cambios!" + } + }, + "filament": { + "filament": "Filamentos", + "fields": { + "id": "ID", + "vendor_name": "Marca", + "vendor": "Marca", + "name": "Nombre", + "material": "Material", + "price": "Precio", + "density": "Densidad", + "diameter": "Diámetro", + "weight": "Peso", + "spool_weight": "Peso del Carrete", + "article_number": "Numero de Articulo", + "registered": "Registrado", + "comment": "Comentarios", + "settings_extruder_temp": "Temp. de Extrusor", + "settings_bed_temp": "Temp. de Cama", + "color_hex": "Color" }, - "spool": { - "spool": "Carretes", - "fields": { - "id": "ID", - "filament_name": "Filamento", - "filament": "Filamento", - "material": "Material", - "used_weight": "Peso Usado", - "remaining_weight": "Peso Restante", - "used_length": "Largo Usado", - "remaining_length": "Largo Restante", - "location": "Locación", - "lot_nr": "No. Lote", - "first_used": "Fecha de Primer Uso", - "last_used": "Ultimo Uso", - "registered": "Registrado", - "comment": "Comentarios", - "archived": "Archivado", - "measured_weight": "Peso Medido", - "weight_to_use": "Peso" - }, - "fields_help": { - "used_weight": "Cuanto filamento ha sido usado en el carrete. Un carrete nuevo debería tener 0g usados.", - "location": "Donde esta el carrete si se guardan los carretes en lugares distintos.", - "lot_nr": "Numero de lote de manufactura. Puede ser usado si el modelo a imprimir necesita color homogéneo y varios carretes son necesarios.", - "weight_to_use": "Elegir el peso a usar. El peso medido solo esta disponible si existe el valor de peso del carrete seleccionado.", - "measured_weight": "Cuanto pesa el filamento y el carrete.", - "remaining_weight": "Cuanto filamento resta en el carrete. Para un carrete nuevo el peso debe ser igual al peso indicado de fabrica." - }, - "titles": { - "create": "Crear Carrete", - "clone": "Duplicar Carrete", - "edit": "Editar Carrete", - "list": "Carretes", - "show": "Mostrar Carrete", - "archive": "Archivar Carrete", - "show_title": "[Carrete #{{id}}] {{name}}" - }, - "messages": { - "archive": "Esta seguro que quiere archivar este carrete?" - }, - "form": { - "new_location_prompt": "Introduce una nueva ubicación", - "spool_updated": "Este spool ha sido actualizado por alguien/algo más desde que abriste esta página. ¡Al guardar, se sobrescribirán los cambios!" - } + "fields_help": { + "name": "Nombre del filamento, para distinguirlo de otros de la misma marca. Por ejemplo, debería contener el nombre del color.", + "material": "ej. PLA, ABS, PETG, etc.", + "price": "Precio del carrete completo en la divisa configurada en el sistema.", + "weight": "El peso de un carrete entero (peso neto). Esta cifra no debe incluir el peso del carrete vacío, solo el filamento. Es, usualmente, el peso escrito en la etiqueta del carrete.", + "spool_weight": "El peso de un carrete vacío. Se utiliza para determinar el peso medido de un carrete.", + "article_number": "ej. EAN, UPC, etc." }, - "filament": { - "filament": "Filamentos", - "fields": { - "id": "ID", - "vendor_name": "Marca", - "vendor": "Marca", - "name": "Nombre", - "material": "Material", - "price": "Precio", - "density": "Densidad", - "diameter": "Diámetro", - "weight": "Peso", - "spool_weight": "Peso del Carrete", - "article_number": "Numero de Articulo", - "registered": "Registrado", - "comment": "Comentarios", - "settings_extruder_temp": "Temp. de Extrusor", - "settings_bed_temp": "Temp. de Cama", - "color_hex": "Color" - }, - "fields_help": { - "name": "Nombre del filamento, para distinguirlo de otros de la misma marca. Por ejemplo, debería contener el nombre del color.", - "material": "ej. PLA, ABS, PETG, etc.", - "price": "Precio del carrete completo en la divisa configurada en el sistema.", - "weight": "El peso de un carrete entero (peso neto). Esta cifra no debe incluir el peso del carrete vacío, solo el filamento. Es, usualmente, el peso escrito en la etiqueta del carrete.", - "spool_weight": "El peso de un carrete vacío. Se utiliza para determinar el peso medido de un carrete.", - "article_number": "ej. EAN, UPC, etc." - }, - "titles": { - "create": "Crear Filamento", - "clone": "Duplicar Filamento", - "edit": "Editar Filamento", - "list": "Filamentos", - "show": "Mostrar Filamentos", - "show_title": "[Filamento #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "Este filamento ha sido actualizado por alguien/algo más desde que abrió esta página. ¡Al guardar, se sobrescribirán los cambios!" - } + "titles": { + "create": "Crear Filamento", + "clone": "Duplicar Filamento", + "edit": "Editar Filamento", + "list": "Filamentos", + "show": "Mostrar Filamentos", + "show_title": "[Filamento #{{id}}] {{name}}" }, - "vendor": { - "vendor": "Marcas", - "fields": { - "id": "Id", - "name": "Nombre", - "registered": "Registrado", - "comment": "Comentarios" - }, - "titles": { - "create": "Crear Marca", - "clone": "Duplicar Marca", - "edit": "Editar Marca", - "list": "Marcas", - "show": "Mostrar Marcas", - "show_title": "[Proveedor #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "Este vendedor ha sido actualizado por alguien/algo más desde que abrió esta página. ¡Al guardar, se sobrescribirán los cambios!" - } + "form": { + "filament_updated": "Este filamento ha sido actualizado por alguien/algo más desde que abrió esta página. ¡Al guardar, se sobrescribirán los cambios!" + } + }, + "vendor": { + "vendor": "Marcas", + "fields": { + "id": "Id", + "name": "Nombre", + "registered": "Registrado", + "comment": "Comentarios" }, - "table": { - "actions": "Acciones" + "titles": { + "create": "Crear Marca", + "clone": "Duplicar Marca", + "edit": "Editar Marca", + "list": "Marcas", + "show": "Mostrar Marcas", + "show_title": "[Proveedor #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filamentos | Spoolman", - "show": "#{{id}} Mostrar Filamentos | Spoolman", - "edit": "#{{id}} Editar Filamentos | Spoolman", - "create": "Crear Filamento | Spoolman", - "clone": "#{{id}} Duplicar Filamento | Spoolman" - }, - "spool": { - "list": "Carretes | Spoolman", - "show": "#{{id}} Mostrar Carrete | Spoolman", - "edit": "#{{id}} Editar Carrete | Spoolman", - "create": "Crear Carrete | Spoolman", - "clone": "#{{id}} Duplicar Carrete | Spoolman" - }, - "vendor": { - "list": "Marcas | Spoolman", - "show": "#{{id}} Mostrar Marca | Spoolman", - "edit": "#{{id}} Editar Marca | Spoolman", - "create": "Crear Marca | Spoolman", - "clone": "#{{id}} Duplicar Marca | Spoolman" - } + "form": { + "vendor_updated": "Este vendedor ha sido actualizado por alguien/algo más desde que abrió esta página. ¡Al guardar, se sobrescribirán los cambios!" + } + }, + "table": { + "actions": "Acciones" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Filamentos | Spoolman", + "show": "#{{id}} Mostrar Filamentos | Spoolman", + "edit": "#{{id}} Editar Filamentos | Spoolman", + "create": "Crear Filamento | Spoolman", + "clone": "#{{id}} Duplicar Filamento | Spoolman" }, - "printing": { - "qrcode": { - "extruderTemp": "TE:{{temp}}", - "showSpoolWeight": "Peso Carrete", - "showContent": "Imprimir Etiqueta", - "showVendorComment": "Comentarios de Marca", - "spoolWeight": "Peso de Carrete: {{weight}}", - "showTemperatures": "Temperaturas", - "showVendor": "Marca", - "showSpoolComment": "Comentario de Carrete", - "textSize": "Tamaño Letras de Contenido", - "title": "Impresión de Códigos QR", - "showSpoolmanIcon": "Mostrar Icono de Spoolman", - "showLotNr": "No. Lote", - "bedTemp": "TC:{{temp}}", - "lotNr": "No. Lote:{{lot}}", - "showFilamentComment": "Comentario de Filamento", - "button": "Imprimir Códigos QR" - }, - "generic": { - "printerMarginBottom": "Zona Segura Inferior", - "verticalSpacing": "Espacio Vertical", - "rows": "Filas", - "borders": { - "none": "Ninguno", - "grid": "Cuadricula", - "border": "Borde" - }, - "printerMarginTop": "Zona Segura Superior", - "customSize": "Tamaño Personal", - "title": "Imprimiendo", - "contentSettings": "Ajustes de Contenido", - "marginRight": "Margen Derecho", - "printerMarginRight": "Zona Segura Derecha", - "helpPrinterMargin": "La Zona de Seguridad debe ajustarse lo mas cercano posible al borde que tu impresora es capaz de imprimir. Cambiar estos valores no afectaran todas las etiquetas.", - "previewScale": "Previsualizar Escala", - "helpMargin": "Márgenes deben ser configurados a ser los mismos que tu papel e impresora. Cambiar los mismos afectaran todas las etiquetas.", - "marginTop": "Margen Superior", - "skipItems": "Saltar Elementos", - "layoutSettings": "Ajustes de Diseño", - "paperSize": "Tamaño de Papel", - "columns": "Columnas", - "description": "Ajustar los parámetros debajo para adquirir el diseño deseado. Recuerda que impresoras y el sistema operativo aplican sus propios márgenes y escala. Es probable que tengas que probar con valores varias veces hasta que el diseño te parezca correcto. Prueba en papel normal antes de usar etiquetas.", - "marginBottom": "Margen Inferior", - "horizontalSpacing": "Espacio Horizontal", - "marginLeft": "Margen Izquierdo", - "showBorder": "Mostrar Borde", - "printerMarginLeft": "Zona Segura Izquierda", - "dimensions": "Dimensiones", - "print": "Imprimir" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} carrete seleccionado", - "selectedTotal_many": "{{count}} carretes seleccionados", - "selectedTotal_other": "{{count}} carretes seleccionados", - "description": "Seleccionar Carretes para imprimir códigos de QR.", - "showArchived": "Mostrar Archivados", - "title": "Selección de Carretes", - "selectAll": "Seleccionar/Deseleccionar Todos", - "noSpoolsSelected": "No has seleccionado ningún carrete." - } + "spool": { + "list": "Carretes | Spoolman", + "show": "#{{id}} Mostrar Carrete | Spoolman", + "edit": "#{{id}} Editar Carrete | Spoolman", + "create": "Crear Carrete | Spoolman", + "clone": "#{{id}} Duplicar Carrete | Spoolman" + }, + "vendor": { + "list": "Marcas | Spoolman", + "show": "#{{id}} Mostrar Marca | Spoolman", + "edit": "#{{id}} Editar Marca | Spoolman", + "create": "Crear Marca | Spoolman", + "clone": "#{{id}} Duplicar Marca | Spoolman" + } + }, + "printing": { + "qrcode": { + "extruderTemp": "TE:{{temp}}", + "showSpoolWeight": "Peso Carrete", + "showContent": "Imprimir Etiqueta", + "showVendorComment": "Comentarios de Marca", + "spoolWeight": "Peso de Carrete: {{weight}}", + "showTemperatures": "Temperaturas", + "showVendor": "Marca", + "showSpoolComment": "Comentario de Carrete", + "textSize": "Tamaño Letras de Contenido", + "title": "Impresión de Códigos QR", + "showSpoolmanIcon": "Mostrar Icono de Spoolman", + "showLotNr": "No. Lote", + "bedTemp": "TC:{{temp}}", + "lotNr": "No. Lote:{{lot}}", + "showFilamentComment": "Comentario de Filamento", + "button": "Imprimir Códigos QR" + }, + "generic": { + "printerMarginBottom": "Zona Segura Inferior", + "verticalSpacing": "Espacio Vertical", + "rows": "Filas", + "borders": { + "none": "Ninguno", + "grid": "Cuadricula", + "border": "Borde" + }, + "printerMarginTop": "Zona Segura Superior", + "customSize": "Tamaño Personal", + "title": "Imprimiendo", + "contentSettings": "Ajustes de Contenido", + "marginRight": "Margen Derecho", + "printerMarginRight": "Zona Segura Derecha", + "helpPrinterMargin": "La Zona de Seguridad debe ajustarse lo mas cercano posible al borde que tu impresora es capaz de imprimir. Cambiar estos valores no afectaran todas las etiquetas.", + "previewScale": "Previsualizar Escala", + "helpMargin": "Márgenes deben ser configurados a ser los mismos que tu papel e impresora. Cambiar los mismos afectaran todas las etiquetas.", + "marginTop": "Margen Superior", + "skipItems": "Saltar Elementos", + "layoutSettings": "Ajustes de Diseño", + "paperSize": "Tamaño de Papel", + "columns": "Columnas", + "description": "Ajustar los parámetros debajo para adquirir el diseño deseado. Recuerda que impresoras y el sistema operativo aplican sus propios márgenes y escala. Es probable que tengas que probar con valores varias veces hasta que el diseño te parezca correcto. Prueba en papel normal antes de usar etiquetas.", + "marginBottom": "Margen Inferior", + "horizontalSpacing": "Espacio Horizontal", + "marginLeft": "Margen Izquierdo", + "showBorder": "Mostrar Borde", + "printerMarginLeft": "Zona Segura Izquierda", + "dimensions": "Dimensiones", + "print": "Imprimir" }, - "scanner": { - "title": "Escaner de Código QR", - "error": { - "insecureContext": "La página no se sirve a través de HTTPS.", - "notReadable": "La camara no ha sido leída.", - "notAllowed": "No has dado permiso de acceso a la cámara.", - "unknown": "Un error desconocido ocurrió. ({{error}})", - "notFound": "La cámara no ha sido detectada.", - "streamApiNotSupported": "El navegador no es compatible con la API MediaStream." - }, - "description": "Escanear códigos QR a Spoolman para ver detalles del carrete." + "spoolSelect": { + "selectedTotal_one": "{{count}} carrete seleccionado", + "selectedTotal_many": "{{count}} carretes seleccionados", + "selectedTotal_other": "{{count}} carretes seleccionados", + "description": "Seleccionar Carretes para imprimir códigos de QR.", + "showArchived": "Mostrar Archivados", + "title": "Selección de Carretes", + "selectAll": "Seleccionar/Deseleccionar Todos", + "noSpoolsSelected": "No has seleccionado ningún carrete." } + }, + "scanner": { + "title": "Escaner de Código QR", + "error": { + "insecureContext": "La página no se sirve a través de HTTPS.", + "notReadable": "La camara no ha sido leída.", + "notAllowed": "No has dado permiso de acceso a la cámara.", + "unknown": "Un error desconocido ocurrió. ({{error}})", + "notFound": "La cámara no ha sido detectada.", + "streamApiNotSupported": "El navegador no es compatible con la API MediaStream." + }, + "description": "Escanear códigos QR a Spoolman para ver detalles del carrete." + } } diff --git a/client/public/locales/fr/common.json b/client/public/locales/fr/common.json index 412ad57cf..4a938a9ff 100644 --- a/client/public/locales/fr/common.json +++ b/client/public/locales/fr/common.json @@ -1,258 +1,259 @@ { - "printing": { - "qrcode": { - "extruderTemp": "ET : {{temp}}", - "showSpoolWeight": "Poids de la bobine", - "showContent": "Imprimer l'étiquette", - "showVendorComment": "Commentaire sur le vendeur", - "spoolWeight": "Poids de la bobine : {{weight}}", - "showTemperatures": "Températures", - "showVendor": "Vendeur", - "showSpoolComment": "Commentaire sur la bobine", - "textSize": "Contenu Taille du texte", - "title": "Impression de codes QR", - "showSpoolmanIcon": "Montrer l'icône Spoolman", - "showLotNr": "N° de Lot", - "bedTemp": "BT : {{temp}}", - "lotNr": "N° de Lot : {{lot}}", - "showFilamentComment": "Commentaire sur le filament", - "button": "Imprimer des codes QR" - }, - "generic": { - "printerMarginBottom": "Zone de sécurité en bas", - "verticalSpacing": "Espacement vertical", - "rows": "Rangs", - "borders": { - "none": "Aucun", - "grid": "Grille", - "border": "Bordure" - }, - "printerMarginTop": "Zone de sécurité en haut", - "customSize": "Personnaliser", - "title": "Impression", - "contentSettings": "Paramètres du contenu", - "marginRight": "Marge droite", - "printerMarginRight": "Zone de sécurité à droite", - "helpPrinterMargin": "La zone de sécurité doit être définie en fonction de la proximité du bord du papier que votre imprimante peut imprimer, la modification de ces paramètres n'affectera pas l'ensemble de la grille.", - "previewScale": "Échelle de prévisualisation", - "helpMargin": "Les marges doivent être configurées en fonction de votre papier à étiquettes et de votre imprimante, car leur modification aura une incidence sur la taille de l'ensemble de la grille.", - "marginTop": "Marge supérieure", - "skipItems": "Passer les articles", - "layoutSettings": "Paramètres de mise en page", - "paperSize": "Format du papier", - "columns": "Colonnes", - "description": "Ajustez les paramètres ci-dessous pour obtenir la mise en page d'impression souhaitée. Gardez à l'esprit que les imprimantes et votre système d'exploitation peuvent appliquer leurs propres marges et mises à l'échelle, il se peut donc que vous deviez faire quelques essais et erreurs avant que tout soit correct. Testez-le sur une feuille de papier ordinaire avant d'imprimer les étiquettes proprement dites.", - "marginBottom": "Marge inférieure", - "horizontalSpacing": "Espacement horizontal", - "marginLeft": "Marge gauche", - "showBorder": "Afficher les bords", - "printerMarginLeft": "Zone de sécurité à gauche", - "dimensions": "Dimensions", - "print": "Imprimer" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} bobine sélectionnée", - "selectedTotal_many": "{{count}} bobines sélectionnées", - "selectedTotal_other": "{{count}} bobines sélectionnées", - "description": "Sélectionnez les bobines pour lesquelles vous souhaitez imprimer des codes QR.", - "showArchived": "Afficher les archives", - "title": "Sélectionner les bobines", - "selectAll": "Sélectionner/Désélectionner tout", - "noSpoolsSelected": "Vous n'avez sélectionné aucune bobine." - } + "printing": { + "qrcode": { + "extruderTemp": "ET : {{temp}}", + "showSpoolWeight": "Poids de la bobine", + "showContent": "Imprimer l'étiquette", + "showVendorComment": "Commentaire sur le vendeur", + "spoolWeight": "Poids de la bobine : {{weight}}", + "showTemperatures": "Températures", + "showVendor": "Vendeur", + "showSpoolComment": "Commentaire sur la bobine", + "textSize": "Contenu Taille du texte", + "title": "Impression de codes QR", + "showSpoolmanIcon": "Montrer l'icône Spoolman", + "showLotNr": "N° de Lot", + "bedTemp": "BT : {{temp}}", + "lotNr": "N° de Lot : {{lot}}", + "showFilamentComment": "Commentaire sur le filament", + "button": "Imprimer des codes QR" }, - "documentTitle": { - "vendor": { - "create": "Créer le Vendeur | Spoolman", - "clone": "#{{id}} Cloner le Vendeur | Spoolman", - "edit": "#{{id}} Editer le Vendeur | Spoolman", - "list": "Vendeurs | Spoolman", - "show": "#{{id}} Afficher le vendeur | Spoolman" - }, - "default": "Spoolman", - "spool": { - "edit": "#{{id}} Editer la Bobine | Spoolman", - "list": "Bobines | Spoolman", - "create": "Créer la Bobine | Spoolman", - "show": "#{{id}} Afficher la Bobine | Spoolman", - "clone": "#{{id}} Cloner la Bobine | Spoolman" - }, - "filament": { - "list": "Filaments | Spoolman", - "show": "#{{id}} Afficher le filament | Spoolman", - "clone": "#{{id}} Cloner le Filament | Spoolman", - "create": "Créer le filament | Spoolman", - "edit": "#{{id}} Editer le Filament | Spoolman" - }, - "suffix": " | Spoolman" + "generic": { + "printerMarginBottom": "Zone de sécurité en bas", + "verticalSpacing": "Espacement vertical", + "rows": "Rangs", + "borders": { + "none": "Aucun", + "grid": "Grille", + "border": "Bordure" + }, + "printerMarginTop": "Zone de sécurité en haut", + "customSize": "Personnaliser", + "title": "Impression", + "contentSettings": "Paramètres du contenu", + "marginRight": "Marge droite", + "printerMarginRight": "Zone de sécurité à droite", + "helpPrinterMargin": "La zone de sécurité doit être définie en fonction de la proximité du bord du papier que votre imprimante peut imprimer, la modification de ces paramètres n'affectera pas l'ensemble de la grille.", + "previewScale": "Échelle de prévisualisation", + "helpMargin": "Les marges doivent être configurées en fonction de votre papier à étiquettes et de votre imprimante, car leur modification aura une incidence sur la taille de l'ensemble de la grille.", + "marginTop": "Marge supérieure", + "skipItems": "Passer les articles", + "layoutSettings": "Paramètres de mise en page", + "paperSize": "Format du papier", + "columns": "Colonnes", + "description": "Ajustez les paramètres ci-dessous pour obtenir la mise en page d'impression souhaitée. Gardez à l'esprit que les imprimantes et votre système d'exploitation peuvent appliquer leurs propres marges et mises à l'échelle, il se peut donc que vous deviez faire quelques essais et erreurs avant que tout soit correct. Testez-le sur une feuille de papier ordinaire avant d'imprimer les étiquettes proprement dites.", + "marginBottom": "Marge inférieure", + "horizontalSpacing": "Espacement horizontal", + "marginLeft": "Marge gauche", + "showBorder": "Afficher les bords", + "printerMarginLeft": "Zone de sécurité à gauche", + "dimensions": "Dimensions", + "print": "Imprimer" }, - "spool": { - "fields": { - "measured_weight": "Poids mesuré", - "last_used": "Dernière utilisation", - "material": "Matériau", - "weight_to_use": "Poids", - "lot_nr": "N° de Lot", - "filament_name": "Filament", - "comment": "Commentaire", - "filament": "Filament", - "location": "Localisation", - "used_length": "Longueur utilisée", - "archived": "Archivé", - "remaining_length": "Longueur restante", - "registered": "Enregistré", - "first_used": "Première utilisation", - "used_weight": "Poids utilisé", - "id": "ID", - "remaining_weight": "Poids restant" - }, - "titles": { - "archive": "Archiver la bobine", - "show": "Afficher la bobine", - "edit": "Editer la bobine", - "create": "Créer une bobine", - "clone": "Cloner une bobine", - "list": "Bobines", - "show_title": "[Bobine #{{id}}] {{name}}" - }, - "fields_help": { - "used_weight": "Combien de filament a été utilisé à partir de la bobine. Une bobine neuve devrait avoir 0g utilisé.", - "weight_to_use": "Sélectionnez la valeur de poids à saisir. Le poids mesuré n'est disponible que si le poids de la bobine est défini pour le filament sélectionné.", - "measured_weight": "Le poids du filament et de la bobine.", - "lot_nr": "Numéro de lot du fabricant. Peut être utilisé pour s'assurer que la couleur d'une impression est homogène si plusieurs bobines sont utilisées.", - "remaining_weight": "La quantité de filament restant sur la bobine. Pour une nouvelle bobine, cela devrait correspondre au poids de la bobine.", - "location": "L'emplacement de la bobine si vous stockez vos bobines à plusieurs endroits." - }, - "spool": "Bobines", - "messages": { - "archive": "Êtes-vous sûr de vouloir archiver cette bobine ?" - }, - "form": { - "spool_updated": "Cette bobine a été mise à jour par quelqu'un/quelque chose depuis la dernière ouverture de la page. Enregistrer écrasera ces changements !", - "new_location_prompt": "Entrer une nouvelle localisation" - } + "spoolSelect": { + "selectedTotal_one": "{{count}} bobine sélectionnée", + "selectedTotal_many": "{{count}} bobines sélectionnées", + "selectedTotal_other": "{{count}} bobines sélectionnées", + "description": "Sélectionnez les bobines pour lesquelles vous souhaitez imprimer des codes QR.", + "showArchived": "Afficher les archives", + "title": "Sélectionner les bobines", + "selectAll": "Sélectionner/Désélectionner tout", + "noSpoolsSelected": "Vous n'avez sélectionné aucune bobine." + } + }, + "documentTitle": { + "vendor": { + "create": "Créer le Vendeur | Spoolman", + "clone": "#{{id}} Cloner le Vendeur | Spoolman", + "edit": "#{{id}} Editer le Vendeur | Spoolman", + "list": "Vendeurs | Spoolman", + "show": "#{{id}} Afficher le vendeur | Spoolman" }, - "buttons": { - "create": "Créer", - "save": "Enregistrer", - "show": "Voir", - "filter": "Filtre", - "cancel": "Abandonner", - "edit": "Editer", - "showArchived": "Voir les archives", - "archive": "Archiver", - "hideColumns": "Masquer les colonnes", - "confirm": "êtes-vous sur ?", - "delete": "Supprimer", - "undo": "Annuler", - "import": "Importer", - "logout": "Déconnexion", - "refresh": "Rafraichir", - "notAccessTitle": "Vous n'avez pas l'autorisation d'accéder", - "hideArchived": "Cacher les archives", - "clearFilters": "Effacer les filtres", - "unArchive": "Désarchiver", - "clone": "Cloner", - "clear": "Effacer" + "default": "Spoolman", + "spool": { + "edit": "#{{id}} Editer la Bobine | Spoolman", + "list": "Bobines | Spoolman", + "create": "Créer la Bobine | Spoolman", + "show": "#{{id}} Afficher la Bobine | Spoolman", + "clone": "#{{id}} Cloner la Bobine | Spoolman" }, "filament": { - "fields_help": { - "name": "Nom du filament, pour distinguer ce type de filament parmi d'autres du même fournisseur. Il doit contenir la couleur, par exemple.", - "article_number": "Exemple EAN, UPC, etc.", - "spool_weight": "Le poids d'une bobine vide. Utilisé pour déterminer le poids d'une bobine.", - "price": "Prix d'une bobine complète dans la devise configurée par le système.", - "weight": "Le poids du filament d'une bobine complète (poids net). Ce poids ne doit pas inclure le poids de la bobine elle-même, mais uniquement celui du filament. C'est ce qui est généralement indiqué sur l'emballage.", - "material": "Exemple PLA, ABS, PETG, etc." - }, - "fields": { - "material": "Matériau", - "vendor_name": "Vendeur", - "settings_extruder_temp": "Température de l'extrudeuse", - "comment": "Commentaire", - "diameter": "Diamètre", - "weight": "Poids", - "spool_weight": "Poids de la bobine", - "registered": "Enregistré", - "name": "Nom", - "price": "Prix", - "settings_bed_temp": "Température du lit", - "vendor": "Vendeur", - "density": "Densité", - "id": "ID", - "color_hex": "Couleur", - "article_number": "Numéro d'article" - }, - "titles": { - "clone": "Cloner un filament", - "show": "Afficher le filament", - "create": "Créer un filament", - "edit": "Editer le filament", - "list": "Filaments", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "filament": "Filaments" + "list": "Filaments | Spoolman", + "show": "#{{id}} Afficher le filament | Spoolman", + "clone": "#{{id}} Cloner le Filament | Spoolman", + "create": "Créer le filament | Spoolman", + "edit": "#{{id}} Editer le Filament | Spoolman" }, - "actions": { - "create": "Créer", - "clone": "Cloner", - "list": "Liste", - "show": "Voir", - "edit": "Editer" + "suffix": " | Spoolman" + }, + "spool": { + "fields": { + "measured_weight": "Poids mesuré", + "last_used": "Dernière utilisation", + "material": "Matériau", + "weight_to_use": "Poids", + "lot_nr": "N° de Lot", + "filament_name": "Filament", + "comment": "Commentaire", + "filament": "Filament", + "location": "Localisation", + "used_length": "Longueur utilisée", + "archived": "Archivé", + "remaining_length": "Longueur restante", + "registered": "Enregistré", + "first_used": "Première utilisation", + "used_weight": "Poids utilisé", + "id": "ID", + "remaining_weight": "Poids restant" }, - "scanner": { - "title": "Scanner de code QR", - "error": { - "insecureContext": "La page n'est pas servie par HTTPS.", - "notReadable": "L'appareil photo n'est pas lisible.", - "notAllowed": "Vous n'avez pas autorisé l'accès à l'appareil photo.", - "unknown": "Une erreur inconnue s'est produite. ({{error}})", - "notFound": "Aucun appareil photo n'a été trouvé.", - "streamApiNotSupported": "Le navigateur ne prend pas en charge l'API MediaStream." - }, - "description": "Scannez un code QR de Spoolman pour afficher les détails de la bobine." + "titles": { + "archive": "Archiver la bobine", + "show": "Afficher la bobine", + "edit": "Editer la bobine", + "create": "Créer une bobine", + "clone": "Cloner une bobine", + "list": "Bobines", + "show_title": "[Bobine #{{id}}] {{name}}" }, - "notifications": { - "deleteSuccess": "Suppression réussie {{resource}}", - "error": "Erreur (status code : {{statusCode}})", - "editError": "Erreur lors de l'édition {{resource}} (status code : {{statusCode}})", - "undoable": "Vous avez {{seconds}} secondes pour annuler.", - "importProgress": "Importation : {{processed}}/{{total}}", - "createError": "Une erreur s'est produite lors de la création de {{resource}}(status code : {{statusCode}})", - "success": "Réussite", - "editSuccess": "Édité avec succès {{resource}}", - "deleteError": "Erreur lors de la suppression de {{resource}} (status code : {{statusCode}})", - "createSuccess": "Création réussie de {{resource}}" + "fields_help": { + "used_weight": "Combien de filament a été utilisé à partir de la bobine. Une bobine neuve devrait avoir 0g utilisé.", + "weight_to_use": "Sélectionnez la valeur de poids à saisir. Le poids mesuré n'est disponible que si le poids de la bobine est défini pour le filament sélectionné.", + "measured_weight": "Le poids du filament et de la bobine.", + "lot_nr": "Numéro de lot du fabricant. Peut être utilisé pour s'assurer que la couleur d'une impression est homogène si plusieurs bobines sont utilisées.", + "remaining_weight": "La quantité de filament restant sur la bobine. Pour une nouvelle bobine, cela devrait correspondre au poids de la bobine.", + "location": "L'emplacement de la bobine si vous stockez vos bobines à plusieurs endroits." }, - "no": "Non", - "unknown": "Inconnu", - "vendor": { - "titles": { - "show": "Afficher le vendeur", - "edit": "Editer un Vendeur", - "clone": "Cloner un Vendeur", - "create": "Créer un Vendeur", - "list": "Vendeurs", - "show_title": "[Vendeur #{{id}}] {{name}}" - }, - "fields": { - "registered": "Enregistré", - "comment": "Commentaire", - "name": "Nom", - "id": "Id" - }, - "vendor": "Vendeurs" + "spool": "Bobines", + "messages": { + "archive": "Êtes-vous sûr de vouloir archiver cette bobine ?" }, - "yes": "Oui", - "version": "Version", - "table": { - "actions": "Actions" + "form": { + "spool_updated": "Cette bobine a été mise à jour par quelqu'un/quelque chose depuis la dernière ouverture de la page. Enregistrer écrasera ces changements !", + "new_location_prompt": "Entrer une nouvelle localisation" + } + }, + "buttons": { + "create": "Créer", + "save": "Enregistrer", + "show": "Voir", + "filter": "Filtre", + "cancel": "Abandonner", + "edit": "Editer", + "showArchived": "Voir les archives", + "archive": "Archiver", + "hideColumns": "Masquer les colonnes", + "confirm": "êtes-vous sur ?", + "delete": "Supprimer", + "undo": "Annuler", + "import": "Importer", + "logout": "Déconnexion", + "refresh": "Rafraichir", + "notAccessTitle": "Vous n'avez pas l'autorisation d'accéder", + "hideArchived": "Cacher les archives", + "clearFilters": "Effacer les filtres", + "unArchive": "Désarchiver", + "clone": "Cloner", + "clear": "Effacer", + "share": "partager" + }, + "filament": { + "fields_help": { + "name": "Nom du filament, pour distinguer ce type de filament parmi d'autres du même fournisseur. Il doit contenir la couleur, par exemple.", + "article_number": "Exemple EAN, UPC, etc.", + "spool_weight": "Le poids d'une bobine vide. Utilisé pour déterminer le poids d'une bobine.", + "price": "Prix d'une bobine complète dans la devise configurée par le système.", + "weight": "Le poids du filament d'une bobine complète (poids net). Ce poids ne doit pas inclure le poids de la bobine elle-même, mais uniquement celui du filament. C'est ce qui est généralement indiqué sur l'emballage.", + "material": "Exemple PLA, ABS, PETG, etc." }, - "warnWhenUnsavedChanges": "Êtes-vous sûr de vouloir quitter ? Vous avez des changements non sauvés.", - "loading": "Chargement", - "dashboard": { - "title": "Tableau de bord" + "fields": { + "material": "Matériau", + "vendor_name": "Vendeur", + "settings_extruder_temp": "Température de l'extrudeuse", + "comment": "Commentaire", + "diameter": "Diamètre", + "weight": "Poids", + "spool_weight": "Poids de la bobine", + "registered": "Enregistré", + "name": "Nom", + "price": "Prix", + "settings_bed_temp": "Température du lit", + "vendor": "Vendeur", + "density": "Densité", + "id": "ID", + "color_hex": "Couleur", + "article_number": "Numéro d'article" }, - "tags": { - "clone": "Cloner" - } + "titles": { + "clone": "Cloner un filament", + "show": "Afficher le filament", + "create": "Créer un filament", + "edit": "Editer le filament", + "list": "Filaments", + "show_title": "[Filament #{{id}}] {{name}}" + }, + "filament": "Filaments" + }, + "actions": { + "create": "Créer", + "clone": "Cloner", + "list": "Liste", + "show": "Voir", + "edit": "Editer" + }, + "scanner": { + "title": "Scanner de code QR", + "error": { + "insecureContext": "La page n'est pas servie par HTTPS.", + "notReadable": "L'appareil photo n'est pas lisible.", + "notAllowed": "Vous n'avez pas autorisé l'accès à l'appareil photo.", + "unknown": "Une erreur inconnue s'est produite. ({{error}})", + "notFound": "Aucun appareil photo n'a été trouvé.", + "streamApiNotSupported": "Le navigateur ne prend pas en charge l'API MediaStream." + }, + "description": "Scannez un code QR de Spoolman pour afficher les détails de la bobine." + }, + "notifications": { + "deleteSuccess": "Suppression réussie {{resource}}", + "error": "Erreur (status code : {{statusCode}})", + "editError": "Erreur lors de l'édition {{resource}} (status code : {{statusCode}})", + "undoable": "Vous avez {{seconds}} secondes pour annuler.", + "importProgress": "Importation : {{processed}}/{{total}}", + "createError": "Une erreur s'est produite lors de la création de {{resource}}(status code : {{statusCode}})", + "success": "Réussite", + "editSuccess": "Édité avec succès {{resource}}", + "deleteError": "Erreur lors de la suppression de {{resource}} (status code : {{statusCode}})", + "createSuccess": "Création réussie de {{resource}}" + }, + "no": "Non", + "unknown": "Inconnu", + "vendor": { + "titles": { + "show": "Afficher le vendeur", + "edit": "Editer un Vendeur", + "clone": "Cloner un Vendeur", + "create": "Créer un Vendeur", + "list": "Vendeurs", + "show_title": "[Vendeur #{{id}}] {{name}}" + }, + "fields": { + "registered": "Enregistré", + "comment": "Commentaire", + "name": "Nom", + "id": "Id" + }, + "vendor": "Vendeurs" + }, + "yes": "Oui", + "version": "Version", + "table": { + "actions": "Actions" + }, + "warnWhenUnsavedChanges": "Êtes-vous sûr de vouloir quitter ? Vous avez des changements non sauvés.", + "loading": "Chargement", + "dashboard": { + "title": "Tableau de bord" + }, + "tags": { + "clone": "Cloner" + } } diff --git a/client/public/locales/hu/common.json b/client/public/locales/hu/common.json index 80a4a0b62..5c0051354 100644 --- a/client/public/locales/hu/common.json +++ b/client/public/locales/hu/common.json @@ -1,263 +1,264 @@ { - "printing": { - "qrcode": { - "extruderTemp": "ET: {{temp}}", - "showSpoolWeight": "Tekercs súlya", - "showContent": "Címke nyomtatása", - "showVendorComment": "Gyártó megjegyzés", - "spoolWeight": "Orsó súlya: {{weight}}", - "showTemperatures": "Hőmérséklet", - "showVendor": "Gyártó", - "showSpoolComment": "Orsó Megjegyzés", - "textSize": "Tartalom szöveg mérete", - "title": "QR kód nyomtatása", - "showSpoolmanIcon": "Spoolman ikon megjelenítése", - "showLotNr": "Tételszám", - "bedTemp": "BT: {{temp}}", - "lotNr": "Tételszám: {{lot}}", - "showFilamentComment": "Filament Komment", - "button": "QR kódok nyomtatása" - }, - "generic": { - "printerMarginBottom": "Biztonságos zóna alja", - "verticalSpacing": "Függőleges térköz", - "rows": "Sorok", - "borders": { - "none": "Semmi", - "grid": "Keret", - "border": "Szél" - }, - "printerMarginTop": "Biztonságos zóna felül", - "customSize": "Egyéni", - "title": "Nyomtatás", - "contentSettings": "Tartalmi beállítások", - "marginRight": "Jobb margó", - "printerMarginRight": "Biztonságos zóna jobbra", - "helpPrinterMargin": "A biztonsági zónát úgy kell beállítani, hogy mekkora távolságban legyen a tárgyasztal szélétől, ahol a nyomtató tud nyomtatni. Ezeknek a beállításoknak a megváltoztatása nem befolyásolja az egész rácsot.", - "previewScale": "Előnézeti skála", - "helpMargin": "A margókat úgy kell beállítani, hogy illeszkedjenek a címképapírhoz és a nyomtatóhoz, azok megváltoztatása befolyásolja az egész rács méretét.", - "marginTop": "Felső margó", - "skipItems": "Elem átugrása", - "layoutSettings": "Elrendezés beállításai", - "paperSize": "Papír méret", - "columns": "Oszlopok", - "description": "A kívánt nyomtatási elrendezés eléréséhez állítsd be az alábbi beállításokat. Tartsd észben, hogy a nyomtatók és az operációs rendszer saját margókat és méretezéseket alkalmazhatnak, ezért szükséged lehet néhány próbára és hibára, mielőtt minden tökéletes lesz. Teszteld egy darab normál papíron, mielőtt az aktuális címkéken nyomtatnád.", - "marginBottom": "Alsó margó", - "horizontalSpacing": "Vízszintes távolság", - "marginLeft": "Bal margó", - "showBorder": "Szélek megjelenítése", - "printerMarginLeft": "Biztonságos zóna balra", - "dimensions": "Dimenziók", - "print": "Nyomtat" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} tekercs kiválasztva", - "selectedTotal_other": "{{count}} db tekercs kiválasztva", - "description": "Válassza ki a QR-kódok nyomtatásához szükséges tekercseket.", - "showArchived": "Archivált megjelenítése", - "title": "Tekercs kiválasztása", - "selectAll": "Összes kijelölése/kijelölésének törlése", - "noSpoolsSelected": "Nem választotál ki egyetlen tekercset sem." - } + "printing": { + "qrcode": { + "extruderTemp": "ET: {{temp}}", + "showSpoolWeight": "Tekercs súlya", + "showContent": "Címke nyomtatása", + "showVendorComment": "Gyártó megjegyzés", + "spoolWeight": "Orsó súlya: {{weight}}", + "showTemperatures": "Hőmérséklet", + "showVendor": "Gyártó", + "showSpoolComment": "Orsó Megjegyzés", + "textSize": "Tartalom szöveg mérete", + "title": "QR kód nyomtatása", + "showSpoolmanIcon": "Spoolman ikon megjelenítése", + "showLotNr": "Tételszám", + "bedTemp": "BT: {{temp}}", + "lotNr": "Tételszám: {{lot}}", + "showFilamentComment": "Filament Komment", + "button": "QR kódok nyomtatása" }, - "documentTitle": { - "vendor": { - "create": "Gyártó létrehozása | Spoolman", - "clone": "#{{id}} Gyártó másolása | Spoolman", - "edit": "#{{id}} Gyártó szerkesztése | Spoolman", - "list": "Gyártók | Spoolman", - "show": "#{{id}} Gyártó megjelenítése | Spoolman" - }, - "default": "Spoolman", - "spool": { - "edit": "#{{id}} Tekercs szerkesztése | Spoolman", - "list": "Tekercs | Spoolman", - "create": "Tekercs létrehozása | Spoolman", - "show": "#{{id}} Tekercs megjelítése | Spoolman", - "clone": "#{{id}} Tekercs másolása | Spoolman" - }, - "filament": { - "list": "Filamentek | Spoolman", - "show": "#{{id}} Filamentek mejelenítése | Spoolman", - "clone": "#{{id}} Filament másolása | Spoolman", - "create": "Filament létrehozása | Spoolman", - "edit": "#{{id}} Filament szerkesztése | Spoolman" - }, - "suffix": " | Spoolman" + "generic": { + "printerMarginBottom": "Biztonságos zóna alja", + "verticalSpacing": "Függőleges térköz", + "rows": "Sorok", + "borders": { + "none": "Semmi", + "grid": "Keret", + "border": "Szél" + }, + "printerMarginTop": "Biztonságos zóna felül", + "customSize": "Egyéni", + "title": "Nyomtatás", + "contentSettings": "Tartalmi beállítások", + "marginRight": "Jobb margó", + "printerMarginRight": "Biztonságos zóna jobbra", + "helpPrinterMargin": "A biztonsági zónát úgy kell beállítani, hogy mekkora távolságban legyen a tárgyasztal szélétől, ahol a nyomtató tud nyomtatni. Ezeknek a beállításoknak a megváltoztatása nem befolyásolja az egész rácsot.", + "previewScale": "Előnézeti skála", + "helpMargin": "A margókat úgy kell beállítani, hogy illeszkedjenek a címképapírhoz és a nyomtatóhoz, azok megváltoztatása befolyásolja az egész rács méretét.", + "marginTop": "Felső margó", + "skipItems": "Elem átugrása", + "layoutSettings": "Elrendezés beállításai", + "paperSize": "Papír méret", + "columns": "Oszlopok", + "description": "A kívánt nyomtatási elrendezés eléréséhez állítsd be az alábbi beállításokat. Tartsd észben, hogy a nyomtatók és az operációs rendszer saját margókat és méretezéseket alkalmazhatnak, ezért szükséged lehet néhány próbára és hibára, mielőtt minden tökéletes lesz. Teszteld egy darab normál papíron, mielőtt az aktuális címkéken nyomtatnád.", + "marginBottom": "Alsó margó", + "horizontalSpacing": "Vízszintes távolság", + "marginLeft": "Bal margó", + "showBorder": "Szélek megjelenítése", + "printerMarginLeft": "Biztonságos zóna balra", + "dimensions": "Dimenziók", + "print": "Nyomtat" }, - "spool": { - "fields": { - "measured_weight": "Mért súly", - "last_used": "Utolsó használat", - "material": "Anyag", - "weight_to_use": "Súly", - "lot_nr": "Tételszám", - "filament_name": "Szál", - "comment": "Megjegyzés", - "filament": "Szál", - "location": "Hely", - "used_length": "Felhasznált hossz", - "archived": "Arhivált", - "remaining_length": "Fennmaradó hossz", - "registered": "Nyilvántartott", - "first_used": "Első használat", - "used_weight": "Felhasznált súly", - "id": "ID", - "remaining_weight": "Hátralévő súly" - }, - "titles": { - "archive": "Arhivált tekercs", - "show": "Tekercs megjelenítése", - "edit": "Tekercs szerkesztése", - "create": "Tekercs létrehozása", - "clone": "Tekercs másolása", - "show_title": "[Tekercs #{{id}}] {{name}}", - "list": "Tekercs" - }, - "fields_help": { - "used_weight": "Mennyi filament használódott el a tekercsről. Egy új tekercsnek 0 gramm használt mennyiséggel kell rendelkeznie.", - "weight_to_use": "Válassza ki, hogy milyen súlyértéket kell beírni. A mérési súly csak akkor elérhető, ha a kiválasztott filamenthez be van állítva a tekercs súlya.", - "measured_weight": "Mennyit nyom a filament és a tekercs együtt.", - "lot_nr": "Gyártói tételszám. A szín egységesség ellenőrzésére használható, ha több tekercset használsz egy nyomtatáshoz.", - "remaining_weight": "Mennyi filament van még a tekercsen. Egy új tekercsnél ez a tekercs súlyával kell megegyeznie.", - "location": "Hol található a tekercs, ha több helyen tárolod a tekercseidet." - }, - "form": { - "new_location_prompt": "Add meg az új helyet", - "spool_updated": "Ez a tekercs azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" - }, - "spool": "Tekercs", - "messages": { - "archive": "Biztosan archiválni szeretné ezt a tekercset?" - } + "spoolSelect": { + "selectedTotal_one": "{{count}} tekercs kiválasztva", + "selectedTotal_other": "{{count}} db tekercs kiválasztva", + "description": "Válassza ki a QR-kódok nyomtatásához szükséges tekercseket.", + "showArchived": "Archivált megjelenítése", + "title": "Tekercs kiválasztása", + "selectAll": "Összes kijelölése/kijelölésének törlése", + "noSpoolsSelected": "Nem választotál ki egyetlen tekercset sem." + } + }, + "documentTitle": { + "vendor": { + "create": "Gyártó létrehozása | Spoolman", + "clone": "#{{id}} Gyártó másolása | Spoolman", + "edit": "#{{id}} Gyártó szerkesztése | Spoolman", + "list": "Gyártók | Spoolman", + "show": "#{{id}} Gyártó megjelenítése | Spoolman" }, - "buttons": { - "create": "Létrehoz", - "save": "Mentés", - "show": "Megjelenít", - "filter": "Szűrő", - "cancel": "Mégse", - "edit": "Szerkeszt", - "showArchived": "Arhiváltak megjelítése", - "archive": "Arhiválás", - "hideColumns": "Oszlopok elrejtése", - "confirm": "Biztos vagy benne?", - "delete": "Töröl", - "undo": "Visszavonás", - "import": "Importálás", - "logout": "Kijelentkezés", - "refresh": "Frissítés", - "notAccessTitle": "Nincs hozzáférésed", - "hideArchived": "Arhiváltak elrejtése", - "clearFilters": "Szűrők törlése", - "unArchive": "Arhiválás visszavonása", - "clone": "Másolás", - "clear": "Törlés" + "default": "Spoolman", + "spool": { + "edit": "#{{id}} Tekercs szerkesztése | Spoolman", + "list": "Tekercs | Spoolman", + "create": "Tekercs létrehozása | Spoolman", + "show": "#{{id}} Tekercs megjelítése | Spoolman", + "clone": "#{{id}} Tekercs másolása | Spoolman" }, "filament": { - "fields_help": { - "name": "Filament neve, hogy megkülönböztesd ezt a filament típust másoktól ugyanattól a gyártótól. Tartalmazhatja például a színét.", - "article_number": "Például. EAN, UPC stb.", - "spool_weight": "Az üres tekercs súlya. Ezt használják a tekercs mért súlyának meghatározásához.", - "price": "A teljes tekercs ára a konfigurált pénznemben a rendszerben.", - "weight": "A teljes tekercs súlya (nettó súly), amely nem tartalmazza a tekercs saját súlyát, csak a filament súlyát. Általában ez szerepel a csomagoláson.", - "material": "Például. PLA, ABS, PETG stb." - }, - "fields": { - "material": "Anyag", - "vendor_name": "Gyártó", - "settings_extruder_temp": "Extruder hőmérséklet", - "comment": "Megjegyzés", - "diameter": "Átmérő", - "weight": "Súly", - "spool_weight": "Tekercs súlya", - "registered": "Nyilvántartott", - "name": "Név", - "price": "Ár", - "settings_bed_temp": "Tárgyasztal hőmérséklet", - "vendor": "Gyártó", - "density": "Sűrűség", - "id": "ID", - "color_hex": "Szín", - "article_number": "Cikkszám" - }, - "titles": { - "clone": "Filament másolása", - "show_title": "[Filament #{{id}}] {{name}}", - "show": "Filament megjelítése", - "create": "Filament létrehozása", - "edit": "Filament szerkesztése", - "list": "Filamentek" - }, - "filament": "Filamentek", - "form": { - "filament_updated": "Ez a szál anyag azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" - } + "list": "Filamentek | Spoolman", + "show": "#{{id}} Filamentek mejelenítése | Spoolman", + "clone": "#{{id}} Filament másolása | Spoolman", + "create": "Filament létrehozása | Spoolman", + "edit": "#{{id}} Filament szerkesztése | Spoolman" }, - "actions": { - "create": "Létrehoz", - "clone": "Másol", - "list": "Lista", - "show": "Megjelenít", - "edit": "Szerkeszt" + "suffix": " | Spoolman" + }, + "spool": { + "fields": { + "measured_weight": "Mért súly", + "last_used": "Utolsó használat", + "material": "Anyag", + "weight_to_use": "Súly", + "lot_nr": "Tételszám", + "filament_name": "Szál", + "comment": "Megjegyzés", + "filament": "Szál", + "location": "Hely", + "used_length": "Felhasznált hossz", + "archived": "Arhivált", + "remaining_length": "Fennmaradó hossz", + "registered": "Nyilvántartott", + "first_used": "Első használat", + "used_weight": "Felhasznált súly", + "id": "ID", + "remaining_weight": "Hátralévő súly" }, - "vendor": { - "titles": { - "show_title": "[Gyártó #{{id}}] {{name}}", - "show": "Gyártó megjelenítése", - "edit": "Gyártó szerkesztése", - "clone": "Gyártó másolása", - "create": "Gyártó létrehozása", - "list": "Gyártók" - }, - "fields": { - "registered": "Nyilvántartott", - "comment": "Megjegyzés", - "name": "Név", - "id": "Id" - }, - "vendor": "Gyártók", - "form": { - "vendor_updated": "Ez a szállító azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" - } + "titles": { + "archive": "Arhivált tekercs", + "show": "Tekercs megjelenítése", + "edit": "Tekercs szerkesztése", + "create": "Tekercs létrehozása", + "clone": "Tekercs másolása", + "show_title": "[Tekercs #{{id}}] {{name}}", + "list": "Tekercs" }, - "scanner": { - "title": "QR kód beolvasása", - "error": { - "insecureContext": "Az oldal kiszolgálása nem HTTPS-en keresztül történik.", - "notReadable": "A kamera nem használható.", - "notAllowed": "Nincs jováhagyva a számodra a kamera használata.", - "unknown": "Ismeretlen hiba történt. ({{error}})", - "notFound": "Nem található kamera.", - "streamApiNotSupported": "A böngésző nem támogatja a MediaStream API-t." - }, - "description": "Olvass be egy Spoolman QR kódot a tekercsről szóló részletek megtekintéséhez." + "fields_help": { + "used_weight": "Mennyi filament használódott el a tekercsről. Egy új tekercsnek 0 gramm használt mennyiséggel kell rendelkeznie.", + "weight_to_use": "Válassza ki, hogy milyen súlyértéket kell beírni. A mérési súly csak akkor elérhető, ha a kiválasztott filamenthez be van állítva a tekercs súlya.", + "measured_weight": "Mennyit nyom a filament és a tekercs együtt.", + "lot_nr": "Gyártói tételszám. A szín egységesség ellenőrzésére használható, ha több tekercset használsz egy nyomtatáshoz.", + "remaining_weight": "Mennyi filament van még a tekercsen. Egy új tekercsnél ez a tekercs súlyával kell megegyeznie.", + "location": "Hol található a tekercs, ha több helyen tárolod a tekercseidet." }, - "notifications": { - "deleteSuccess": "Sikeresen törölve {{resource}}", - "error": "Hiba (Hibakód: {{statusCode}})", - "editError": "Hiba a {{resource}} szerkesztésekor (hibakód: {{statusCode}})", - "undoable": "{{seconds}} másodperced van visszavonásra.", - "importProgress": "Importálás: {{processed}}/{{total}}", - "createError": "Hiba történt a(z) {{resource}} létrehozásakor (hibakód: {{statusCode}})", - "success": "Sikeres", - "editSuccess": "Sikeresen módosítva {{resource}}", - "deleteError": "Hiba a(z) {{resource}} törlésekor (hibakód: {{statusCode}})", - "createSuccess": "Sikeresen létrehozva {{resource}}" + "form": { + "new_location_prompt": "Add meg az új helyet", + "spool_updated": "Ez a tekercs azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" }, - "no": "Nem", - "unknown": "Ismeretlen", - "yes": "Igen", - "version": "Verzió", - "table": { - "actions": "Műveletek" + "spool": "Tekercs", + "messages": { + "archive": "Biztosan archiválni szeretné ezt a tekercset?" + } + }, + "buttons": { + "create": "Létrehoz", + "save": "Mentés", + "show": "Megjelenít", + "filter": "Szűrő", + "cancel": "Mégse", + "edit": "Szerkeszt", + "showArchived": "Arhiváltak megjelítése", + "archive": "Arhiválás", + "hideColumns": "Oszlopok elrejtése", + "confirm": "Biztos vagy benne?", + "delete": "Töröl", + "undo": "Visszavonás", + "import": "Importálás", + "logout": "Kijelentkezés", + "refresh": "Frissítés", + "notAccessTitle": "Nincs hozzáférésed", + "hideArchived": "Arhiváltak elrejtése", + "clearFilters": "Szűrők törlése", + "unArchive": "Arhiválás visszavonása", + "clone": "Másolás", + "clear": "Törlés", + "share": "Ossza meg" + }, + "filament": { + "fields_help": { + "name": "Filament neve, hogy megkülönböztesd ezt a filament típust másoktól ugyanattól a gyártótól. Tartalmazhatja például a színét.", + "article_number": "Például. EAN, UPC stb.", + "spool_weight": "Az üres tekercs súlya. Ezt használják a tekercs mért súlyának meghatározásához.", + "price": "A teljes tekercs ára a konfigurált pénznemben a rendszerben.", + "weight": "A teljes tekercs súlya (nettó súly), amely nem tartalmazza a tekercs saját súlyát, csak a filament súlyát. Általában ez szerepel a csomagoláson.", + "material": "Például. PLA, ABS, PETG stb." }, - "warnWhenUnsavedChanges": "Biztos vagy benne, hogy kilépsz? Nem mentet változások vannak.", - "loading": "Betöltés", - "dashboard": { - "title": "Irányítópult" + "fields": { + "material": "Anyag", + "vendor_name": "Gyártó", + "settings_extruder_temp": "Extruder hőmérséklet", + "comment": "Megjegyzés", + "diameter": "Átmérő", + "weight": "Súly", + "spool_weight": "Tekercs súlya", + "registered": "Nyilvántartott", + "name": "Név", + "price": "Ár", + "settings_bed_temp": "Tárgyasztal hőmérséklet", + "vendor": "Gyártó", + "density": "Sűrűség", + "id": "ID", + "color_hex": "Szín", + "article_number": "Cikkszám" }, - "tags": { - "clone": "Másolás" + "titles": { + "clone": "Filament másolása", + "show_title": "[Filament #{{id}}] {{name}}", + "show": "Filament megjelítése", + "create": "Filament létrehozása", + "edit": "Filament szerkesztése", + "list": "Filamentek" + }, + "filament": "Filamentek", + "form": { + "filament_updated": "Ez a szál anyag azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" } + }, + "actions": { + "create": "Létrehoz", + "clone": "Másol", + "list": "Lista", + "show": "Megjelenít", + "edit": "Szerkeszt" + }, + "vendor": { + "titles": { + "show_title": "[Gyártó #{{id}}] {{name}}", + "show": "Gyártó megjelenítése", + "edit": "Gyártó szerkesztése", + "clone": "Gyártó másolása", + "create": "Gyártó létrehozása", + "list": "Gyártók" + }, + "fields": { + "registered": "Nyilvántartott", + "comment": "Megjegyzés", + "name": "Név", + "id": "Id" + }, + "vendor": "Gyártók", + "form": { + "vendor_updated": "Ez a szállító azóta frissült valaki/valami más által, mióta megnyitottad ezt az oldalt. A mentés felül fogja írni ezeket a változásokat!" + } + }, + "scanner": { + "title": "QR kód beolvasása", + "error": { + "insecureContext": "Az oldal kiszolgálása nem HTTPS-en keresztül történik.", + "notReadable": "A kamera nem használható.", + "notAllowed": "Nincs jováhagyva a számodra a kamera használata.", + "unknown": "Ismeretlen hiba történt. ({{error}})", + "notFound": "Nem található kamera.", + "streamApiNotSupported": "A böngésző nem támogatja a MediaStream API-t." + }, + "description": "Olvass be egy Spoolman QR kódot a tekercsről szóló részletek megtekintéséhez." + }, + "notifications": { + "deleteSuccess": "Sikeresen törölve {{resource}}", + "error": "Hiba (Hibakód: {{statusCode}})", + "editError": "Hiba a {{resource}} szerkesztésekor (hibakód: {{statusCode}})", + "undoable": "{{seconds}} másodperced van visszavonásra.", + "importProgress": "Importálás: {{processed}}/{{total}}", + "createError": "Hiba történt a(z) {{resource}} létrehozásakor (hibakód: {{statusCode}})", + "success": "Sikeres", + "editSuccess": "Sikeresen módosítva {{resource}}", + "deleteError": "Hiba a(z) {{resource}} törlésekor (hibakód: {{statusCode}})", + "createSuccess": "Sikeresen létrehozva {{resource}}" + }, + "no": "Nem", + "unknown": "Ismeretlen", + "yes": "Igen", + "version": "Verzió", + "table": { + "actions": "Műveletek" + }, + "warnWhenUnsavedChanges": "Biztos vagy benne, hogy kilépsz? Nem mentet változások vannak.", + "loading": "Betöltés", + "dashboard": { + "title": "Irányítópult" + }, + "tags": { + "clone": "Másolás" + } } diff --git a/client/public/locales/it/common.json b/client/public/locales/it/common.json index 55c0b79af..6159c7118 100644 --- a/client/public/locales/it/common.json +++ b/client/public/locales/it/common.json @@ -1,257 +1,258 @@ { - "printing": { - "qrcode": { - "extruderTemp": "ET: {{temp}}", - "showSpoolWeight": "Peso Bobina", - "showContent": "Stampa Etichetta", - "showVendorComment": "Note Aggiuntive Produttore", - "spoolWeight": "Peso Bobina: {{weight}}", - "showTemperatures": "Temperature", - "showVendor": "Produttore", - "showSpoolComment": "Note aggiuntive Bobina", - "textSize": "Dimensioni testo del contenuto", - "title": "Stampando QR-Codes", - "showSpoolmanIcon": "Mostra Icona Spoolman", - "showLotNr": "Lotto Nr", - "bedTemp": "BT: {{temp}}", - "lotNr": "Lotto Nr: {{lot}}", - "showFilamentComment": "Note Aggiuntive Filamento", - "button": "Stampa QR-Codes" - }, - "generic": { - "printerMarginBottom": "Safe-Zone Inferiore", - "verticalSpacing": "Spaziatura Verticale", - "rows": "Righe", - "borders": { - "none": "Nessuno", - "grid": "Griglia", - "border": "Bordo" - }, - "printerMarginTop": "Safe-Zone Superiore", - "customSize": "Personalizzato", - "title": "Stampando", - "contentSettings": "Impostazioni Contenuti", - "marginRight": "Margine Destro", - "printerMarginRight": "Safe-Zone Destra", - "helpPrinterMargin": "La Safe-Zone deve essere impostata in prossimità del bordo stampabile della carta; la modifica di questi valori non influirà sull'intera griglia.", - "previewScale": "Anteprima", - "helpMargin": "I margini devono essere configurati affinchè corrispondano alla carta per etichette e alla stampante, la modifica di questi influirà sulla dimensione dell'intera griglia.", - "marginTop": "Margine Superiore", - "skipItems": "Salta Elementi", - "layoutSettings": "Impostazioni di Layout", - "paperSize": "Dimensione Carta", - "columns": "Colonne", - "description": "Sintonizza le impostazioni di seguito per ottenere il layout di stampa desiderato. Tieni presente che le stampanti e il tuo sistema operativo potrebbero applicare i propri margini e ridimensionamenti, quindi potrebbe essere necessario eseguire alcuni tentativi ed errori prima che tutto sia corretto. Provalo su un pezzo di carta normale prima di stampare sulle etichette effettive.", - "marginBottom": "Margine Inferiore", - "horizontalSpacing": "Spaziatura Orizzontale", - "marginLeft": "Margine Sinistro", - "showBorder": "Mostra Bordi", - "printerMarginLeft": "Safe-Zone Sinistra", - "dimensions": "Dimensioni", - "print": "Stampa" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} bobina selezionata", - "selectedTotal_many": "{{count}} bobine selezionate", - "selectedTotal_other": "{{count}} bobine selezionate", - "description": "Seleziona le bobine per le quali stampare i QR-Codes.", - "showArchived": "Mostra Archiviati", - "title": "Seleziona Bobina", - "selectAll": "Seleziona/Deseleziona Tutti", - "noSpoolsSelected": "Non hai selezionato alcuna bobina." - } + "printing": { + "qrcode": { + "extruderTemp": "ET: {{temp}}", + "showSpoolWeight": "Peso Bobina", + "showContent": "Stampa Etichetta", + "showVendorComment": "Note Aggiuntive Produttore", + "spoolWeight": "Peso Bobina: {{weight}}", + "showTemperatures": "Temperature", + "showVendor": "Produttore", + "showSpoolComment": "Note aggiuntive Bobina", + "textSize": "Dimensioni testo del contenuto", + "title": "Stampando QR-Codes", + "showSpoolmanIcon": "Mostra Icona Spoolman", + "showLotNr": "Lotto Nr", + "bedTemp": "BT: {{temp}}", + "lotNr": "Lotto Nr: {{lot}}", + "showFilamentComment": "Note Aggiuntive Filamento", + "button": "Stampa QR-Codes" }, - "documentTitle": { - "vendor": { - "create": "Crea Produttore | Spoolman", - "clone": "#{{id}} Clona Produttore | Spoolman", - "edit": "#{{id}} Modifica Produttore | Spoolman", - "list": "Produttore | Spoolman", - "show": "#{{id}} Mostra Produttore | Spoolman" - }, - "default": "Spoolman", - "spool": { - "edit": "#{{id}} Modifica Bobina | Spoolman", - "list": "Bobine | Spoolman", - "create": "Crea Bobina | Spoolman", - "show": "#{{id}} Mostra Bobina | Spoolman", - "clone": "#{{id}} Clona Bobina | Spoolman" - }, - "filament": { - "list": "Filamenti | Spoolman", - "show": "#{{id}} Mostra Filamento | Spoolman", - "clone": "#{{id}} Clona Filamento | Spoolman", - "create": "Crea Filamento | Spoolman", - "edit": "#{{id}} Modifica Filamento | Spoolman" - }, - "suffix": " | Spoolman" + "generic": { + "printerMarginBottom": "Safe-Zone Inferiore", + "verticalSpacing": "Spaziatura Verticale", + "rows": "Righe", + "borders": { + "none": "Nessuno", + "grid": "Griglia", + "border": "Bordo" + }, + "printerMarginTop": "Safe-Zone Superiore", + "customSize": "Personalizzato", + "title": "Stampando", + "contentSettings": "Impostazioni Contenuti", + "marginRight": "Margine Destro", + "printerMarginRight": "Safe-Zone Destra", + "helpPrinterMargin": "La Safe-Zone deve essere impostata in prossimità del bordo stampabile della carta; la modifica di questi valori non influirà sull'intera griglia.", + "previewScale": "Anteprima", + "helpMargin": "I margini devono essere configurati affinchè corrispondano alla carta per etichette e alla stampante, la modifica di questi influirà sulla dimensione dell'intera griglia.", + "marginTop": "Margine Superiore", + "skipItems": "Salta Elementi", + "layoutSettings": "Impostazioni di Layout", + "paperSize": "Dimensione Carta", + "columns": "Colonne", + "description": "Sintonizza le impostazioni di seguito per ottenere il layout di stampa desiderato. Tieni presente che le stampanti e il tuo sistema operativo potrebbero applicare i propri margini e ridimensionamenti, quindi potrebbe essere necessario eseguire alcuni tentativi ed errori prima che tutto sia corretto. Provalo su un pezzo di carta normale prima di stampare sulle etichette effettive.", + "marginBottom": "Margine Inferiore", + "horizontalSpacing": "Spaziatura Orizzontale", + "marginLeft": "Margine Sinistro", + "showBorder": "Mostra Bordi", + "printerMarginLeft": "Safe-Zone Sinistra", + "dimensions": "Dimensioni", + "print": "Stampa" }, - "spool": { - "fields": { - "measured_weight": "Peso Misurato", - "last_used": "Ultimo Utilizzo", - "material": "Materiale", - "weight_to_use": "Peso", - "lot_nr": "Lotto Nr", - "filament_name": "Filamento", - "comment": "Note", - "filament": "Filamento", - "location": "Posizione", - "used_length": "Lunghezza Utilizzata", - "archived": "Archiviati", - "remaining_length": "Lunghezza Rimanente", - "registered": "Registrato", - "first_used": "Primo Utilizzo", - "used_weight": "Peso Utilizzato", - "id": "ID", - "remaining_weight": "Peso Rimanente" - }, - "titles": { - "archive": "Archivia Bobina", - "show": "Mostra Bobina", - "edit": "Modifica Bobina", - "create": "Crea Bobina", - "clone": "Clona Bobina", - "show_title": "[Bobina #{{id}}] {{name}}", - "list": "Bobine" - }, - "fields_help": { - "used_weight": "Quanto filamento è stato utilizzato dalla bobina. Una nuova bobina dovrebbe avere 0 gr utilizzati.", - "weight_to_use": "Selezionare il valore del peso da inserire. Il peso misurato è disponibile solo se il peso della bobina è impostato per il filamento selezionato.", - "measured_weight": "Quanto pesano il filamento e la bobina.", - "lot_nr": "Numero di lotto del produttore. Può essere utilizzato per garantire che la stampa abbia colori uniformi se vengono utilizzate più bobine.", - "remaining_weight": "Quanto filamento è rimasto sulla bobina. Per una nuova bobina questo dovrebbe corrispondere al peso della bobina.", - "location": "Dove si trova la bobina se disponi di più posizioni in cui conservare le bobine." - }, - "form": { - "new_location_prompt": "Inserisci nuova posizione" - }, - "spool": "Bobine", - "messages": { - "archive": "Sei sicuro di voler archiviare questa bobina?" - } + "spoolSelect": { + "selectedTotal_one": "{{count}} bobina selezionata", + "selectedTotal_many": "{{count}} bobine selezionate", + "selectedTotal_other": "{{count}} bobine selezionate", + "description": "Seleziona le bobine per le quali stampare i QR-Codes.", + "showArchived": "Mostra Archiviati", + "title": "Seleziona Bobina", + "selectAll": "Seleziona/Deseleziona Tutti", + "noSpoolsSelected": "Non hai selezionato alcuna bobina." + } + }, + "documentTitle": { + "vendor": { + "create": "Crea Produttore | Spoolman", + "clone": "#{{id}} Clona Produttore | Spoolman", + "edit": "#{{id}} Modifica Produttore | Spoolman", + "list": "Produttore | Spoolman", + "show": "#{{id}} Mostra Produttore | Spoolman" }, - "buttons": { - "create": "Crea", - "save": "Salva", - "show": "Mostra", - "filter": "Filtro", - "cancel": "Cancella", - "edit": "Modifica", - "showArchived": "Mostra Archiviati", - "archive": "Archivia", - "hideColumns": "Nascondi Colonna", - "confirm": "Confermi?", - "delete": "Elimina", - "undo": "Annulla", - "import": "Importa", - "logout": "Disconnettersi", - "refresh": "Aggiorna", - "notAccessTitle": "Non hai i permessi per accedere", - "hideArchived": "Nascondi Archiviati", - "clearFilters": "Cancella Filtri", - "unArchive": "Ripristina", - "clone": "Clona", - "clear": "Pulisci" + "default": "Spoolman", + "spool": { + "edit": "#{{id}} Modifica Bobina | Spoolman", + "list": "Bobine | Spoolman", + "create": "Crea Bobina | Spoolman", + "show": "#{{id}} Mostra Bobina | Spoolman", + "clone": "#{{id}} Clona Bobina | Spoolman" }, "filament": { - "fields_help": { - "name": "Nome del filamento, per distinguere questo tipo di filamento dagli altri dello stesso produttore. Dovrebbe contenere il colore, ad esempio.", - "article_number": "Es.: EAN, UPC, etc.", - "spool_weight": "Il peso di una bobina vuota. Utilizzato per determinare il peso misurato di una bobina.", - "price": "Prezzo di una bobina intera nella valuta configurata dal sistema.", - "weight": "Il peso del filamento di una bobina piena (peso netto). Questo non dovrebbe includere il peso della bobina stessa, ma solo del filamento. È quello che solitamente c'è scritto sulla confezione.", - "material": "Es.: PLA, ABS, PETG, etc." - }, - "fields": { - "material": "Materiale", - "vendor_name": "Produttore", - "settings_extruder_temp": "Temperatura Estrusore", - "comment": "Note", - "diameter": "Diametro", - "weight": "Peso", - "spool_weight": "Peso Bobina", - "registered": "Registrato", - "name": "Nome", - "price": "Prezzo", - "settings_bed_temp": "Temperatura Bed", - "vendor": "Produttore", - "density": "Densità", - "id": "ID", - "color_hex": "Colore", - "article_number": "Numero Articolo" - }, - "titles": { - "clone": "Clona Filamento", - "show_title": "[Filamento #{{id}}] {{name}}", - "show": "Mostra Filamento", - "create": "Crea Filamento", - "edit": "Modifica Filamento", - "list": "Filamenti" - }, - "filament": "Filamenti" + "list": "Filamenti | Spoolman", + "show": "#{{id}} Mostra Filamento | Spoolman", + "clone": "#{{id}} Clona Filamento | Spoolman", + "create": "Crea Filamento | Spoolman", + "edit": "#{{id}} Modifica Filamento | Spoolman" }, - "actions": { - "create": "Crea", - "clone": "Clona", - "list": "Lista", - "show": "Mostra", - "edit": "Modifica" + "suffix": " | Spoolman" + }, + "spool": { + "fields": { + "measured_weight": "Peso Misurato", + "last_used": "Ultimo Utilizzo", + "material": "Materiale", + "weight_to_use": "Peso", + "lot_nr": "Lotto Nr", + "filament_name": "Filamento", + "comment": "Note", + "filament": "Filamento", + "location": "Posizione", + "used_length": "Lunghezza Utilizzata", + "archived": "Archiviati", + "remaining_length": "Lunghezza Rimanente", + "registered": "Registrato", + "first_used": "Primo Utilizzo", + "used_weight": "Peso Utilizzato", + "id": "ID", + "remaining_weight": "Peso Rimanente" }, - "vendor": { - "titles": { - "show_title": "[Produttore #{{id}}] {{name}}", - "show": "Mostra Produttori", - "edit": "Modifica Produttore", - "clone": "Clona Produttore", - "create": "Crea Produttore", - "list": "Produttori" - }, - "fields": { - "registered": "Registrato", - "comment": "Note", - "name": "Nome", - "id": "Id" - }, - "vendor": "Produttori" + "titles": { + "archive": "Archivia Bobina", + "show": "Mostra Bobina", + "edit": "Modifica Bobina", + "create": "Crea Bobina", + "clone": "Clona Bobina", + "show_title": "[Bobina #{{id}}] {{name}}", + "list": "Bobine" }, - "scanner": { - "title": "QR-Code Scanner", - "error": { - "insecureContext": "La pagina non è disponibile tramite HTTPS.", - "notReadable": "La fotocamera non riesce a leggere.", - "notAllowed": "Non hai accesso alla fotocamera.", - "unknown": "Si è verificato un errore. ({{error}})", - "notFound": "Nessuna fotocamera rilevata.", - "streamApiNotSupported": "il browser non supporta le API MediaStream." - }, - "description": "Scansiona uno Spoolman QR-Code per visualizzare i dettagli della bobina." + "fields_help": { + "used_weight": "Quanto filamento è stato utilizzato dalla bobina. Una nuova bobina dovrebbe avere 0 gr utilizzati.", + "weight_to_use": "Selezionare il valore del peso da inserire. Il peso misurato è disponibile solo se il peso della bobina è impostato per il filamento selezionato.", + "measured_weight": "Quanto pesano il filamento e la bobina.", + "lot_nr": "Numero di lotto del produttore. Può essere utilizzato per garantire che la stampa abbia colori uniformi se vengono utilizzate più bobine.", + "remaining_weight": "Quanto filamento è rimasto sulla bobina. Per una nuova bobina questo dovrebbe corrispondere al peso della bobina.", + "location": "Dove si trova la bobina se disponi di più posizioni in cui conservare le bobine." }, - "notifications": { - "deleteSuccess": "{{resource}} cancellato con successo", - "error": "Errore (status code: {{statusCode}})", - "editError": "Errore durante la modifica di {{resource}} (status code: {{statusCode}})", - "undoable": "Hai {{seconds}} secondi per ripristinare.", - "importProgress": "Importando: {{processed}}/{{total}}", - "createError": "C'è stato un errore nella creazione di {{resource}} (status code: {{statusCode}})", - "success": "Riuscito", - "editSuccess": "{{resource}} modificata con successo", - "deleteError": "Error nella cancellazione di {{resource}} (status code: {{statusCode}})", - "createSuccess": "{{resource}} creata correttamente" + "form": { + "new_location_prompt": "Inserisci nuova posizione" }, - "no": "No", - "unknown": "Sconosciuto", - "yes": "Si", - "version": "Versione", - "table": { - "actions": "Azioni" + "spool": "Bobine", + "messages": { + "archive": "Sei sicuro di voler archiviare questa bobina?" + } + }, + "buttons": { + "create": "Crea", + "save": "Salva", + "show": "Mostra", + "filter": "Filtro", + "cancel": "Cancella", + "edit": "Modifica", + "showArchived": "Mostra Archiviati", + "archive": "Archivia", + "hideColumns": "Nascondi Colonna", + "confirm": "Confermi?", + "delete": "Elimina", + "undo": "Annulla", + "import": "Importa", + "logout": "Disconnettersi", + "refresh": "Aggiorna", + "notAccessTitle": "Non hai i permessi per accedere", + "hideArchived": "Nascondi Archiviati", + "clearFilters": "Cancella Filtri", + "unArchive": "Ripristina", + "clone": "Clona", + "clear": "Pulisci", + "share": "condividere" + }, + "filament": { + "fields_help": { + "name": "Nome del filamento, per distinguere questo tipo di filamento dagli altri dello stesso produttore. Dovrebbe contenere il colore, ad esempio.", + "article_number": "Es.: EAN, UPC, etc.", + "spool_weight": "Il peso di una bobina vuota. Utilizzato per determinare il peso misurato di una bobina.", + "price": "Prezzo di una bobina intera nella valuta configurata dal sistema.", + "weight": "Il peso del filamento di una bobina piena (peso netto). Questo non dovrebbe includere il peso della bobina stessa, ma solo del filamento. È quello che solitamente c'è scritto sulla confezione.", + "material": "Es.: PLA, ABS, PETG, etc." }, - "warnWhenUnsavedChanges": "Sei sicuro di uscire? Ci sono delle modifiche non salvate.", - "loading": "Caricamento", - "dashboard": { - "title": "Pannello di controllo" + "fields": { + "material": "Materiale", + "vendor_name": "Produttore", + "settings_extruder_temp": "Temperatura Estrusore", + "comment": "Note", + "diameter": "Diametro", + "weight": "Peso", + "spool_weight": "Peso Bobina", + "registered": "Registrato", + "name": "Nome", + "price": "Prezzo", + "settings_bed_temp": "Temperatura Bed", + "vendor": "Produttore", + "density": "Densità", + "id": "ID", + "color_hex": "Colore", + "article_number": "Numero Articolo" }, - "tags": { - "clone": "Clona" - } + "titles": { + "clone": "Clona Filamento", + "show_title": "[Filamento #{{id}}] {{name}}", + "show": "Mostra Filamento", + "create": "Crea Filamento", + "edit": "Modifica Filamento", + "list": "Filamenti" + }, + "filament": "Filamenti" + }, + "actions": { + "create": "Crea", + "clone": "Clona", + "list": "Lista", + "show": "Mostra", + "edit": "Modifica" + }, + "vendor": { + "titles": { + "show_title": "[Produttore #{{id}}] {{name}}", + "show": "Mostra Produttori", + "edit": "Modifica Produttore", + "clone": "Clona Produttore", + "create": "Crea Produttore", + "list": "Produttori" + }, + "fields": { + "registered": "Registrato", + "comment": "Note", + "name": "Nome", + "id": "Id" + }, + "vendor": "Produttori" + }, + "scanner": { + "title": "QR-Code Scanner", + "error": { + "insecureContext": "La pagina non è disponibile tramite HTTPS.", + "notReadable": "La fotocamera non riesce a leggere.", + "notAllowed": "Non hai accesso alla fotocamera.", + "unknown": "Si è verificato un errore. ({{error}})", + "notFound": "Nessuna fotocamera rilevata.", + "streamApiNotSupported": "il browser non supporta le API MediaStream." + }, + "description": "Scansiona uno Spoolman QR-Code per visualizzare i dettagli della bobina." + }, + "notifications": { + "deleteSuccess": "{{resource}} cancellato con successo", + "error": "Errore (status code: {{statusCode}})", + "editError": "Errore durante la modifica di {{resource}} (status code: {{statusCode}})", + "undoable": "Hai {{seconds}} secondi per ripristinare.", + "importProgress": "Importando: {{processed}}/{{total}}", + "createError": "C'è stato un errore nella creazione di {{resource}} (status code: {{statusCode}})", + "success": "Riuscito", + "editSuccess": "{{resource}} modificata con successo", + "deleteError": "Error nella cancellazione di {{resource}} (status code: {{statusCode}})", + "createSuccess": "{{resource}} creata correttamente" + }, + "no": "No", + "unknown": "Sconosciuto", + "yes": "Si", + "version": "Versione", + "table": { + "actions": "Azioni" + }, + "warnWhenUnsavedChanges": "Sei sicuro di uscire? Ci sono delle modifiche non salvate.", + "loading": "Caricamento", + "dashboard": { + "title": "Pannello di controllo" + }, + "tags": { + "clone": "Clona" + } } diff --git a/client/public/locales/nb-NO/common.json b/client/public/locales/nb-NO/common.json index b6c46f7c7..8eedae64b 100644 --- a/client/public/locales/nb-NO/common.json +++ b/client/public/locales/nb-NO/common.json @@ -1,256 +1,257 @@ { - "buttons": { - "create": "Opprett", - "save": "Lagre", - "show": "Vis", - "cancel": "Avbryt", - "edit": "Rediger", - "showArchived": "Vis arkiverte", - "archive": "Arkiver", - "hideColumns": "Skjul kolonner", - "confirm": "Er du sikker?", - "delete": "Slett", - "undo": "Angre", - "import": "Importer", - "logout": "Logg ut", - "hideArchived": "Skjul arkiverte", - "clearFilters": "Tøm filtre", - "unArchive": "Opphev arkivering", - "clone": "Klon", - "clear": "Tøm", - "filter": "Filtrer", - "refresh": "Gjenoppfrisk", - "notAccessTitle": "Du har ikke rettighet til å få tilgang" + "buttons": { + "create": "Opprett", + "save": "Lagre", + "show": "Vis", + "cancel": "Avbryt", + "edit": "Rediger", + "showArchived": "Vis arkiverte", + "archive": "Arkiver", + "hideColumns": "Skjul kolonner", + "confirm": "Er du sikker?", + "delete": "Slett", + "undo": "Angre", + "import": "Importer", + "logout": "Logg ut", + "hideArchived": "Skjul arkiverte", + "clearFilters": "Tøm filtre", + "unArchive": "Opphev arkivering", + "clone": "Klon", + "clear": "Tøm", + "filter": "Filtrer", + "refresh": "Gjenoppfrisk", + "notAccessTitle": "Du har ikke rettighet til å få tilgang", + "share": "Andel" + }, + "filament": { + "fields": { + "material": "Materiale", + "comment": "Kommentar", + "diameter": "Diameter", + "weight": "Vekt", + "registered": "Registrert", + "price": "Pris", + "color_hex": "Farge", + "name": "Navn", + "id": "ID", + "article_number": "Artikkelnummer", + "vendor_name": "Leverandør", + "settings_extruder_temp": "Dysetemperatur", + "spool_weight": "Spolevekt", + "vendor": "Leverandør", + "settings_bed_temp": "Printplate temp", + "density": "Tetthet" }, - "filament": { - "fields": { - "material": "Materiale", - "comment": "Kommentar", - "diameter": "Diameter", - "weight": "Vekt", - "registered": "Registrert", - "price": "Pris", - "color_hex": "Farge", - "name": "Navn", - "id": "ID", - "article_number": "Artikkelnummer", - "vendor_name": "Leverandør", - "settings_extruder_temp": "Dysetemperatur", - "spool_weight": "Spolevekt", - "vendor": "Leverandør", - "settings_bed_temp": "Printplate temp", - "density": "Tetthet" - }, - "fields_help": { - "name": "Filamentnavn, for å skille denne filamenttypen blant andre fra samme leverandør. Bør inneholde fargen f.eks.", - "article_number": "f.eks. EAN, UPC osv.", - "spool_weight": "Vekten av en tom spole. Brukes til å bestemme målt vekt på en spole.", - "price": "Pris på en full spole i den system- valutaen.", - "weight": "Filamentvekten til en full spole (nettovekt). Bør ikke inkludere vekten av selve spolen, kun filamentet. Det er det som vanligvis står på emballasjen.", - "material": "F.eks PLA,ABS,PETG, osv." - }, - "titles": { - "clone": "Kopier Filament", - "show_title": "[Filament #{{id}}] {{name}}", - "show": "Vis filament", - "create": "Opprett Filament", - "edit": "Endre Filament", - "list": "Filamenter" - }, - "filament": "Filamenter" + "fields_help": { + "name": "Filamentnavn, for å skille denne filamenttypen blant andre fra samme leverandør. Bør inneholde fargen f.eks.", + "article_number": "f.eks. EAN, UPC osv.", + "spool_weight": "Vekten av en tom spole. Brukes til å bestemme målt vekt på en spole.", + "price": "Pris på en full spole i den system- valutaen.", + "weight": "Filamentvekten til en full spole (nettovekt). Bør ikke inkludere vekten av selve spolen, kun filamentet. Det er det som vanligvis står på emballasjen.", + "material": "F.eks PLA,ABS,PETG, osv." }, - "printing": { - "generic": { - "rows": "Rader", - "borders": { - "none": "Ingen", - "grid": "Rutenett", - "border": "Grense" - }, - "customSize": "Egendefinert", - "contentSettings": "Innholdsinnstillinger", - "skipItems": "Hopp over elementer", - "paperSize": "Papirstørrelse", - "columns": "Kolonner", - "dimensions": "Dimensjoner", - "print": "Skriv ut", - "printerMarginBottom": "Trygghetsavstand, bunn", - "printerMarginTop": "Trygghetsavstand, topp", - "title": "Utskrift", - "marginRight": "Høyremarg", - "printerMarginRight": "Trygghetsavstand, høyre", - "marginTop": "Toppmarg", - "marginBottom": "Bunnmarg", - "printerMarginLeft": "Trygghetsavstand, venstre", - "verticalSpacing": "Vertikal avstand", - "helpPrinterMargin": "Safe-Zone bør settes til hvor nær papirkanten skriveren kan skrive ut, endring av disse vil ikke påvirke hele rutenettet.", - "previewScale": "Forhåndsvisningsskala", - "helpMargin": "Margene bør konfigureres til å matche etikettpapiret og skriveren, endring av disse vil påvirke størrelsen på hele rutenettet.", - "layoutSettings": "Layoutinnstillinger", - "description": "Still inn innstillingene nedenfor for å få ønsket utskriftsoppsett. Husk at skrivere og operativsystemet ditt kan bruke sine egne marger og skalering, så det kan hende du må prøve og feile før alt er riktig. Test det på et stykke vanlig papir før du skriver ut på selve etikettene.", - "horizontalSpacing": "Horisontal avstand", - "marginLeft": "Venstre marg", - "showBorder": "Vis side" - }, - "qrcode": { - "showTemperatures": "Temperaturer", - "button": "Skriv ut QR-koder", - "showVendorComment": "Leverandørkommentar", - "spoolWeight": "Spolevekt: {{weight}}", - "showVendor": "Leverandør", - "showSpoolComment": "Spolekommentar", - "title": "QR-kodeutskrift", - "extruderTemp": "ET: {{temp}}", - "showSpoolWeight": "Spolevekt", - "showContent": "Skriv ut etikett", - "textSize": "Tekststørrelse på innhold", - "showSpoolmanIcon": "Vis Spoolman ikon", - "showLotNr": "Batch Nr", - "bedTemp": "BT: {{temp}}", - "lotNr": "Batch Nr: {{lot}}", - "showFilamentComment": "Filament kommentar" - }, - "spoolSelect": { - "showArchived": "Vis arkiverte", - "title": "Velg spoler", - "noSpoolsSelected": "Du har ikke valgt noen spoler.", - "selectedTotal_one": "{{count}} spole valgt", - "selectedTotal_other": "{{count}} spoler valgt", - "description": "Velg spoler å printe ut QR-koder for.", - "selectAll": "Velg/fjern merking av alle" - } + "titles": { + "clone": "Kopier Filament", + "show_title": "[Filament #{{id}}] {{name}}", + "show": "Vis filament", + "create": "Opprett Filament", + "edit": "Endre Filament", + "list": "Filamenter" }, - "no": "Nei", - "unknown": "Ukjent", - "spool": { - "fields": { - "comment": "Kommentar", - "archived": "Arkivert", - "measured_weight": "Målt vekt", - "last_used": "Sist brukt", - "material": "Materiale", - "weight_to_use": "Vekt", - "used_length": "Brukt lengde", - "remaining_length": "Gjenstående lengde", - "registered": "Registrert", - "first_used": "Først brukt", - "used_weight": "Brukt vekt", - "id": "ID", - "remaining_weight": "Gjenstående vekt", - "lot_nr": "Batch Nr", - "filament_name": "Filament", - "filament": "Filament", - "location": "Lokasjon" - }, - "titles": { - "archive": "Arkiver spole", - "show": "Vis spole", - "edit": "Rediger spole", - "create": "Opprett spole", - "clone": "Klon spole", - "show_title": "[Spole #{{id}}] {{name}}", - "list": "Spoler" - }, - "spool": "Spoler", - "messages": { - "archive": "Arkivere denne spolen?" - }, - "fields_help": { - "used_weight": "Hvor mye filament har blitt benyttet fra spolen? En ny spole burde ha 0g benyttet.", - "weight_to_use": "Velg vekt å skrive inn. Målt vekt er kun tilgjengelig hvis spolevekt er satt for det valgte filament.", - "measured_weight": "Hvor mye veier filament og spole.", - "lot_nr": "Produsentens batch nummer. Kan bli benyttet or å verifiserer at print har en konsistent farge dersom flere spoler benyttes.", - "remaining_weight": "Hvor mye filament gjenstår på spolen. Ved en ny spole burde dette stemme med spolevekt.", - "location": "Hvor spolen er plassert hvis du har flere lokasjoner hvor du oppbevarer spoler." - }, - "form": { - "new_location_prompt": "Skriv inn en ny lokasjon" - } + "filament": "Filamenter" + }, + "printing": { + "generic": { + "rows": "Rader", + "borders": { + "none": "Ingen", + "grid": "Rutenett", + "border": "Grense" + }, + "customSize": "Egendefinert", + "contentSettings": "Innholdsinnstillinger", + "skipItems": "Hopp over elementer", + "paperSize": "Papirstørrelse", + "columns": "Kolonner", + "dimensions": "Dimensjoner", + "print": "Skriv ut", + "printerMarginBottom": "Trygghetsavstand, bunn", + "printerMarginTop": "Trygghetsavstand, topp", + "title": "Utskrift", + "marginRight": "Høyremarg", + "printerMarginRight": "Trygghetsavstand, høyre", + "marginTop": "Toppmarg", + "marginBottom": "Bunnmarg", + "printerMarginLeft": "Trygghetsavstand, venstre", + "verticalSpacing": "Vertikal avstand", + "helpPrinterMargin": "Safe-Zone bør settes til hvor nær papirkanten skriveren kan skrive ut, endring av disse vil ikke påvirke hele rutenettet.", + "previewScale": "Forhåndsvisningsskala", + "helpMargin": "Margene bør konfigureres til å matche etikettpapiret og skriveren, endring av disse vil påvirke størrelsen på hele rutenettet.", + "layoutSettings": "Layoutinnstillinger", + "description": "Still inn innstillingene nedenfor for å få ønsket utskriftsoppsett. Husk at skrivere og operativsystemet ditt kan bruke sine egne marger og skalering, så det kan hende du må prøve og feile før alt er riktig. Test det på et stykke vanlig papir før du skriver ut på selve etikettene.", + "horizontalSpacing": "Horisontal avstand", + "marginLeft": "Venstre marg", + "showBorder": "Vis side" }, - "yes": "Ja", - "version": "Versjon", - "vendor": { - "fields": { - "registered": "Registrert", - "name": "Navn", - "id": "ID", - "comment": "Kommentar" - }, - "titles": { - "show_title": "[Leverandør #{{id}}] {{name}}", - "show": "Vis leverandør", - "edit": "Rediger leverandør", - "create": "Opprett leverandør", - "list": "Leverandører", - "clone": "Kopier leverandør" - }, - "vendor": "Leverandører" + "qrcode": { + "showTemperatures": "Temperaturer", + "button": "Skriv ut QR-koder", + "showVendorComment": "Leverandørkommentar", + "spoolWeight": "Spolevekt: {{weight}}", + "showVendor": "Leverandør", + "showSpoolComment": "Spolekommentar", + "title": "QR-kodeutskrift", + "extruderTemp": "ET: {{temp}}", + "showSpoolWeight": "Spolevekt", + "showContent": "Skriv ut etikett", + "textSize": "Tekststørrelse på innhold", + "showSpoolmanIcon": "Vis Spoolman ikon", + "showLotNr": "Batch Nr", + "bedTemp": "BT: {{temp}}", + "lotNr": "Batch Nr: {{lot}}", + "showFilamentComment": "Filament kommentar" }, - "actions": { - "clone": "Klon", - "create": "Opprett", - "show": "Vis", - "edit": "Rediger", - "list": "Liste" + "spoolSelect": { + "showArchived": "Vis arkiverte", + "title": "Velg spoler", + "noSpoolsSelected": "Du har ikke valgt noen spoler.", + "selectedTotal_one": "{{count}} spole valgt", + "selectedTotal_other": "{{count}} spoler valgt", + "description": "Velg spoler å printe ut QR-koder for.", + "selectAll": "Velg/fjern merking av alle" + } + }, + "no": "Nei", + "unknown": "Ukjent", + "spool": { + "fields": { + "comment": "Kommentar", + "archived": "Arkivert", + "measured_weight": "Målt vekt", + "last_used": "Sist brukt", + "material": "Materiale", + "weight_to_use": "Vekt", + "used_length": "Brukt lengde", + "remaining_length": "Gjenstående lengde", + "registered": "Registrert", + "first_used": "Først brukt", + "used_weight": "Brukt vekt", + "id": "ID", + "remaining_weight": "Gjenstående vekt", + "lot_nr": "Batch Nr", + "filament_name": "Filament", + "filament": "Filament", + "location": "Lokasjon" + }, + "titles": { + "archive": "Arkiver spole", + "show": "Vis spole", + "edit": "Rediger spole", + "create": "Opprett spole", + "clone": "Klon spole", + "show_title": "[Spole #{{id}}] {{name}}", + "list": "Spoler" }, - "tags": { - "clone": "Klon" + "spool": "Spoler", + "messages": { + "archive": "Arkivere denne spolen?" }, - "scanner": { - "title": "QR-kodeskanner", - "error": { - "notReadable": "Kameraet kan ikke leses.", - "unknown": "Ukjent feil. {{error}}", - "notFound": "Fant ingen kameraer.", - "insecureContext": "Siden serveres ikke over HTTPS.", - "notAllowed": "Du har ikke gitt tilgang til kameraet.", - "streamApiNotSupported": "Nettleseren støtter ikke MediaStream API." - }, - "description": "Skann en Spoolman QR-kode for å se detaljer om spolen." + "fields_help": { + "used_weight": "Hvor mye filament har blitt benyttet fra spolen? En ny spole burde ha 0g benyttet.", + "weight_to_use": "Velg vekt å skrive inn. Målt vekt er kun tilgjengelig hvis spolevekt er satt for det valgte filament.", + "measured_weight": "Hvor mye veier filament og spole.", + "lot_nr": "Produsentens batch nummer. Kan bli benyttet or å verifiserer at print har en konsistent farge dersom flere spoler benyttes.", + "remaining_weight": "Hvor mye filament gjenstår på spolen. Ved en ny spole burde dette stemme med spolevekt.", + "location": "Hvor spolen er plassert hvis du har flere lokasjoner hvor du oppbevarer spoler." }, - "notifications": { - "error": "Feil (statuskode: {{statusCode}})", - "success": "Vellykket", - "deleteSuccess": "Slettet {{resource}}", - "editError": "Kunne ikke redigere {{resource}} (statuskode: {{statusCode}})", - "undoable": "Du har {{seconds}} sekunder på å angre.", - "importProgress": "Importerer: {{processed}}/{{total}}", - "createError": "Kunne ikke opprette {{resource}} (statuskode: {{statusCode}})", - "editSuccess": "{{resource}} redigert", - "deleteError": "Kunne ikke slette {{resource}} (statuskode: {{statusCode}})", - "createSuccess": "Opprettet {{resource}}" + "form": { + "new_location_prompt": "Skriv inn en ny lokasjon" + } + }, + "yes": "Ja", + "version": "Versjon", + "vendor": { + "fields": { + "registered": "Registrert", + "name": "Navn", + "id": "ID", + "comment": "Kommentar" }, - "loading": "Laster", - "documentTitle": { - "vendor": { - "create": "Opprett leverandør | Spoolman", - "clone": "#{{id}} Klon leverandør | Spoolman", - "edit": "#{{id}} Rediger leverandør | Spoolman", - "list": "Leverandører | Spoolman", - "show": "#{{id}} Vis leverandør | Spoolman" - }, - "default": "Spoolman", - "spool": { - "edit": "#{{id}} Rediger spole | Spoolman", - "list": "Spoler | Spoolman", - "create": "Opprett spole | Spoolman", - "show": "#{{id}} Vis spole | Spoolman", - "clone": "#{{id}} Klon spole| Spoolman" - }, - "suffix": " | Spoolman", - "filament": { - "list": "Filamenter | Spoolman", - "show": "#{{id}} Vis Filament | Spoolman", - "clone": "#{{id}} Kopier Filament | Spoolman", - "create": "Opprett Filament | Spoolman", - "edit": "#{{id}} Endre Filament | Spoolman" - } + "titles": { + "show_title": "[Leverandør #{{id}}] {{name}}", + "show": "Vis leverandør", + "edit": "Rediger leverandør", + "create": "Opprett leverandør", + "list": "Leverandører", + "clone": "Kopier leverandør" }, - "table": { - "actions": "Handliger" + "vendor": "Leverandører" + }, + "actions": { + "clone": "Klon", + "create": "Opprett", + "show": "Vis", + "edit": "Rediger", + "list": "Liste" + }, + "tags": { + "clone": "Klon" + }, + "scanner": { + "title": "QR-kodeskanner", + "error": { + "notReadable": "Kameraet kan ikke leses.", + "unknown": "Ukjent feil. {{error}}", + "notFound": "Fant ingen kameraer.", + "insecureContext": "Siden serveres ikke over HTTPS.", + "notAllowed": "Du har ikke gitt tilgang til kameraet.", + "streamApiNotSupported": "Nettleseren støtter ikke MediaStream API." }, - "warnWhenUnsavedChanges": "Er du sikker på at du vil forlate? Du har ulagrede endringer.", - "dashboard": { - "title": "Oversikt" + "description": "Skann en Spoolman QR-kode for å se detaljer om spolen." + }, + "notifications": { + "error": "Feil (statuskode: {{statusCode}})", + "success": "Vellykket", + "deleteSuccess": "Slettet {{resource}}", + "editError": "Kunne ikke redigere {{resource}} (statuskode: {{statusCode}})", + "undoable": "Du har {{seconds}} sekunder på å angre.", + "importProgress": "Importerer: {{processed}}/{{total}}", + "createError": "Kunne ikke opprette {{resource}} (statuskode: {{statusCode}})", + "editSuccess": "{{resource}} redigert", + "deleteError": "Kunne ikke slette {{resource}} (statuskode: {{statusCode}})", + "createSuccess": "Opprettet {{resource}}" + }, + "loading": "Laster", + "documentTitle": { + "vendor": { + "create": "Opprett leverandør | Spoolman", + "clone": "#{{id}} Klon leverandør | Spoolman", + "edit": "#{{id}} Rediger leverandør | Spoolman", + "list": "Leverandører | Spoolman", + "show": "#{{id}} Vis leverandør | Spoolman" + }, + "default": "Spoolman", + "spool": { + "edit": "#{{id}} Rediger spole | Spoolman", + "list": "Spoler | Spoolman", + "create": "Opprett spole | Spoolman", + "show": "#{{id}} Vis spole | Spoolman", + "clone": "#{{id}} Klon spole| Spoolman" + }, + "suffix": " | Spoolman", + "filament": { + "list": "Filamenter | Spoolman", + "show": "#{{id}} Vis Filament | Spoolman", + "clone": "#{{id}} Kopier Filament | Spoolman", + "create": "Opprett Filament | Spoolman", + "edit": "#{{id}} Endre Filament | Spoolman" } + }, + "table": { + "actions": "Handliger" + }, + "warnWhenUnsavedChanges": "Er du sikker på at du vil forlate? Du har ulagrede endringer.", + "dashboard": { + "title": "Oversikt" + } } diff --git a/client/public/locales/nl/common.json b/client/public/locales/nl/common.json index c13ce990e..3b889d4f7 100644 --- a/client/public/locales/nl/common.json +++ b/client/public/locales/nl/common.json @@ -1,257 +1,258 @@ { - "buttons": { - "create": "Aanmaken", - "save": "Opslaan", - "show": "Tonen", - "filter": "Filter", - "cancel": "Annuleren", - "edit": "Bewerken", - "showArchived": "Gearchiveerd tonen", - "archive": "Archiveren", - "hideColumns": "Kolommen verbergen", - "confirm": "Weet je het zeker?", - "delete": "Verwijderen", - "undo": "Ongedaan maken", - "import": "Importeren", - "logout": "Uitloggen", - "refresh": "Vernieuwen", - "notAccessTitle": "Je hebt geen toegang tot", - "hideArchived": "Gearchiveerd verbergen", - "clearFilters": "Filters leegmaken", - "unArchive": "Dearchiveren", - "clone": "Klonen", - "clear": "Wissen" + "buttons": { + "create": "Aanmaken", + "save": "Opslaan", + "show": "Tonen", + "filter": "Filter", + "cancel": "Annuleren", + "edit": "Bewerken", + "showArchived": "Gearchiveerd tonen", + "archive": "Archiveren", + "hideColumns": "Kolommen verbergen", + "confirm": "Weet je het zeker?", + "delete": "Verwijderen", + "undo": "Ongedaan maken", + "import": "Importeren", + "logout": "Uitloggen", + "refresh": "Vernieuwen", + "notAccessTitle": "Je hebt geen toegang tot", + "hideArchived": "Gearchiveerd verbergen", + "clearFilters": "Filters leegmaken", + "unArchive": "Dearchiveren", + "clone": "Klonen", + "clear": "Wissen", + "share": "delen" + }, + "actions": { + "create": "Aanmaken", + "clone": "Klonen", + "list": "Lijst", + "show": "Tonen", + "edit": "Bewerken" + }, + "printing": { + "generic": { + "rows": "Rijen", + "customSize": "Aangepast", + "title": "Afdrukkend", + "contentSettings": "Inhoudsinstellingen", + "helpPrinterMargin": "Safe-Zone moet worden ingesteld op hoe dicht bij de papierrand uw printer kan afdrukken. Als u deze wijzigt, heeft dit geen invloed op het hele raster.", + "previewScale": "Voorbeeldschaal", + "helpMargin": "Marges moeten worden geconfigureerd zodat ze overeenkomen met je labelpapier en printer. Als u deze wijzigt, heeft dit invloed op de grootte van het hele raster.", + "skipItems": "Items overlaan", + "paperSize": "Papierformaat", + "columns": "Kolommen", + "description": "Stem de onderstaande instellingen af om de gewenste printlay-out te krijgen. Houd er rekening mee dat printers en je besturingssysteem hun eigen marges en schaling kunnen toepassen, dus het kan zijn dat je met wat instellingen moet spelen voordat alles correct is. Test het op een stuk gewoon papier voordat u op de daadwerkelijke etiketten afdrukt.", + "showBorder": "Rand tonen", + "dimensions": "Afmetingen", + "print": "Printen", + "printerMarginBottom": "Onderste Safe-Zone", + "verticalSpacing": "Verticale afstand", + "borders": { + "none": "Geen", + "grid": "Raster", + "border": "Rand" + }, + "printerMarginTop": "Bovenste Safe-Zone", + "marginRight": "Rechter marge", + "printerMarginRight": "Rechter Safe-Zone", + "marginTop": "Bovenste marge", + "layoutSettings": "Opmaak instellingen", + "marginBottom": "Onderste marge", + "horizontalSpacing": "Horizontale afstand", + "marginLeft": "Linker marge", + "printerMarginLeft": "Linker Safe-Zone" }, - "actions": { - "create": "Aanmaken", - "clone": "Klonen", - "list": "Lijst", - "show": "Tonen", - "edit": "Bewerken" + "qrcode": { + "extruderTemp": "ET: {{temp}}", + "showSpoolWeight": "Gewicht spoel", + "showContent": "Label printen", + "showVendorComment": "Opmerking fabrikant", + "spoolWeight": "Gewicht spoel: {{weight}}", + "showTemperatures": "Temperaturen", + "showVendor": "Fabrikant", + "showSpoolComment": "Opmerking spoel", + "textSize": "Inhoud tekstgrootte", + "title": "QR-Code afdrukken", + "showSpoolmanIcon": "Spoolman icoon tonen", + "showLotNr": "Lotnr", + "bedTemp": "BT: {{temp}}", + "lotNr": "Lotnr: {{lot}}", + "showFilamentComment": "Opmerking filament", + "button": "QR-Codes afdrukken" }, - "printing": { - "generic": { - "rows": "Rijen", - "customSize": "Aangepast", - "title": "Afdrukkend", - "contentSettings": "Inhoudsinstellingen", - "helpPrinterMargin": "Safe-Zone moet worden ingesteld op hoe dicht bij de papierrand uw printer kan afdrukken. Als u deze wijzigt, heeft dit geen invloed op het hele raster.", - "previewScale": "Voorbeeldschaal", - "helpMargin": "Marges moeten worden geconfigureerd zodat ze overeenkomen met je labelpapier en printer. Als u deze wijzigt, heeft dit invloed op de grootte van het hele raster.", - "skipItems": "Items overlaan", - "paperSize": "Papierformaat", - "columns": "Kolommen", - "description": "Stem de onderstaande instellingen af om de gewenste printlay-out te krijgen. Houd er rekening mee dat printers en je besturingssysteem hun eigen marges en schaling kunnen toepassen, dus het kan zijn dat je met wat instellingen moet spelen voordat alles correct is. Test het op een stuk gewoon papier voordat u op de daadwerkelijke etiketten afdrukt.", - "showBorder": "Rand tonen", - "dimensions": "Afmetingen", - "print": "Printen", - "printerMarginBottom": "Onderste Safe-Zone", - "verticalSpacing": "Verticale afstand", - "borders": { - "none": "Geen", - "grid": "Raster", - "border": "Rand" - }, - "printerMarginTop": "Bovenste Safe-Zone", - "marginRight": "Rechter marge", - "printerMarginRight": "Rechter Safe-Zone", - "marginTop": "Bovenste marge", - "layoutSettings": "Opmaak instellingen", - "marginBottom": "Onderste marge", - "horizontalSpacing": "Horizontale afstand", - "marginLeft": "Linker marge", - "printerMarginLeft": "Linker Safe-Zone" - }, - "qrcode": { - "extruderTemp": "ET: {{temp}}", - "showSpoolWeight": "Gewicht spoel", - "showContent": "Label printen", - "showVendorComment": "Opmerking fabrikant", - "spoolWeight": "Gewicht spoel: {{weight}}", - "showTemperatures": "Temperaturen", - "showVendor": "Fabrikant", - "showSpoolComment": "Opmerking spoel", - "textSize": "Inhoud tekstgrootte", - "title": "QR-Code afdrukken", - "showSpoolmanIcon": "Spoolman icoon tonen", - "showLotNr": "Lotnr", - "bedTemp": "BT: {{temp}}", - "lotNr": "Lotnr: {{lot}}", - "showFilamentComment": "Opmerking filament", - "button": "QR-Codes afdrukken" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} spoel geselecteerd", - "selectedTotal_other": "{{count}} spoelen geselecteerd", - "description": "Selecteer spoelen waarvoor je QR-codes wilt afdrukken.", - "showArchived": "Gearchiveerde tonen", - "title": "Spoelen selecteren", - "selectAll": "Alles selecteren/deselecteren", - "noSpoolsSelected": "Je hebt geen spoelen geselecteerd." - } + "spoolSelect": { + "selectedTotal_one": "{{count}} spoel geselecteerd", + "selectedTotal_other": "{{count}} spoelen geselecteerd", + "description": "Selecteer spoelen waarvoor je QR-codes wilt afdrukken.", + "showArchived": "Gearchiveerde tonen", + "title": "Spoelen selecteren", + "selectAll": "Alles selecteren/deselecteren", + "noSpoolsSelected": "Je hebt geen spoelen geselecteerd." + } + }, + "notifications": { + "deleteSuccess": "{{resource}} succesvol verwijderd", + "error": "Fout (fout code {{statusCode}})", + "editError": "Fout opgetreden bij het bewerken van {{resource}} (status code {{statusCode}})", + "undoable": "Je hebt {{seconds}} seconden om ongedaan te maken.", + "importProgress": "Importeren: {{processed}}/{{total}}", + "createError": "Er is een fout opgetreden bij het aanmaken van {{resource}} (status code {{statusCode}})", + "success": "Succesvol", + "editSuccess": "{{resource}} succesvol bewerkt", + "deleteError": "Fout opgetreden bij het verwijderen van {{resource}} (status code {{statusCode}})", + "createSuccess": "{{resource}} succesvol aangemaakt" + }, + "no": "Nee", + "unknown": "Onbekend", + "yes": "Ja", + "version": "Versie", + "warnWhenUnsavedChanges": "Weet je zeker dat je wil vertrekken? Er zijn niet-opgeslagen wijzigingen.", + "loading": "Laden", + "dashboard": { + "title": "Dashboard" + }, + "tags": { + "clone": "Klonen" + }, + "documentTitle": { + "vendor": { + "create": "Fabrikant maken | Spoolman", + "clone": "#{{id}} Leverancier klonen | Spoolman", + "edit": "#{{id}} Fabrikant bewerken | Spoolman", + "list": "Fabrikanten | Spoolman", + "show": "#{{id}} Fabrikant tonen | Spoolman" }, - "notifications": { - "deleteSuccess": "{{resource}} succesvol verwijderd", - "error": "Fout (fout code {{statusCode}})", - "editError": "Fout opgetreden bij het bewerken van {{resource}} (status code {{statusCode}})", - "undoable": "Je hebt {{seconds}} seconden om ongedaan te maken.", - "importProgress": "Importeren: {{processed}}/{{total}}", - "createError": "Er is een fout opgetreden bij het aanmaken van {{resource}} (status code {{statusCode}})", - "success": "Succesvol", - "editSuccess": "{{resource}} succesvol bewerkt", - "deleteError": "Fout opgetreden bij het verwijderen van {{resource}} (status code {{statusCode}})", - "createSuccess": "{{resource}} succesvol aangemaakt" + "default": "Spoolman", + "spool": { + "edit": "#{{id}} Spoel bewerken | Spoolman", + "list": "Spoelen | Spoolman", + "create": "Spoel maken | Spoolman", + "show": "#{{id}} Spoel tonen | Spoolman", + "clone": "#{{id}} Spoel klonen | Spoolman" }, - "no": "Nee", - "unknown": "Onbekend", - "yes": "Ja", - "version": "Versie", - "warnWhenUnsavedChanges": "Weet je zeker dat je wil vertrekken? Er zijn niet-opgeslagen wijzigingen.", - "loading": "Laden", - "dashboard": { - "title": "Dashboard" + "filament": { + "list": "Filamenten | Spoolman", + "show": "#{{id}} Filament tonen | Spoolman", + "clone": "#{{id}} Filament klonen | Spoolman", + "create": "Filament maken | Spoolman", + "edit": "#{{id}} Filament bewerken | Spoolman" }, - "tags": { - "clone": "Klonen" + "suffix": " | Spoolman" + }, + "spool": { + "fields": { + "measured_weight": "Gemeten gewicht", + "last_used": "Laatst gebruikt", + "material": "Materiaal", + "weight_to_use": "Gewicht", + "lot_nr": "Lotnr", + "filament_name": "Filament", + "comment": "Opmerking", + "filament": "Filament", + "location": "Locatie", + "used_length": "Gebruikte lengte", + "archived": "Gearchiveerd", + "remaining_length": "Overgebleven lengte", + "registered": "Geregistreerd", + "first_used": "Eerst gebruikt", + "used_weight": "Gebruikt gewicht", + "id": "ID", + "remaining_weight": "Overgebleven gewicht" }, - "documentTitle": { - "vendor": { - "create": "Fabrikant maken | Spoolman", - "clone": "#{{id}} Leverancier klonen | Spoolman", - "edit": "#{{id}} Fabrikant bewerken | Spoolman", - "list": "Fabrikanten | Spoolman", - "show": "#{{id}} Fabrikant tonen | Spoolman" - }, - "default": "Spoolman", - "spool": { - "edit": "#{{id}} Spoel bewerken | Spoolman", - "list": "Spoelen | Spoolman", - "create": "Spoel maken | Spoolman", - "show": "#{{id}} Spoel tonen | Spoolman", - "clone": "#{{id}} Spoel klonen | Spoolman" - }, - "filament": { - "list": "Filamenten | Spoolman", - "show": "#{{id}} Filament tonen | Spoolman", - "clone": "#{{id}} Filament klonen | Spoolman", - "create": "Filament maken | Spoolman", - "edit": "#{{id}} Filament bewerken | Spoolman" - }, - "suffix": " | Spoolman" + "titles": { + "archive": "Spoel archiveren", + "show": "Spoel tonen", + "edit": "Spoel bewerken", + "create": "Spoel maken", + "clone": "Spoel klonen", + "list": "Spoelen", + "show_title": "[Spoel #{{id}}] {{name}}" }, - "spool": { - "fields": { - "measured_weight": "Gemeten gewicht", - "last_used": "Laatst gebruikt", - "material": "Materiaal", - "weight_to_use": "Gewicht", - "lot_nr": "Lotnr", - "filament_name": "Filament", - "comment": "Opmerking", - "filament": "Filament", - "location": "Locatie", - "used_length": "Gebruikte lengte", - "archived": "Gearchiveerd", - "remaining_length": "Overgebleven lengte", - "registered": "Geregistreerd", - "first_used": "Eerst gebruikt", - "used_weight": "Gebruikt gewicht", - "id": "ID", - "remaining_weight": "Overgebleven gewicht" - }, - "titles": { - "archive": "Spoel archiveren", - "show": "Spoel tonen", - "edit": "Spoel bewerken", - "create": "Spoel maken", - "clone": "Spoel klonen", - "list": "Spoelen", - "show_title": "[Spoel #{{id}}] {{name}}" - }, - "fields_help": { - "used_weight": "Hoeveel filament er van de spoel is gebruikt. Op een nieuwe spoel zal 0g gebruikt zijn.", - "weight_to_use": "Selecteer welke gewichtswaarde je wilt invoeren. Het gemeten gewicht is alleen beschikbaar als het spoelgewicht is ingesteld voor het geselecteerde filament.", - "measured_weight": "Hoeveel het filament en de spoel wegen.", - "lot_nr": "Lotnummer van de fabrikant. Kan worden gebruikt om ervoor te zorgen dat een afdruk een consistente kleur heeft als er meerdere spoelen worden gebruikt.", - "remaining_weight": "Hoeveel filament zit er nog op de spoel. Bij een nieuwe spoel zal dit overeenkomen met het spoelgewicht.", - "location": "Waar de spoel zich bevindt als je meerdere locaties hebt waar je jouw spoelen opslaat." - }, - "spool": "Spoelen", - "messages": { - "archive": "Weet je zeker dat je deze spoel wil archiveren?" - }, - "form": { - "new_location_prompt": "Voer een nieuwe locatie in", - "spool_updated": "Deze spoel is bijgewerkt door iemand/iets anders sinds je deze pagina hebt geopend. Opslaan zal die wijzigingen overschrijven!" - } + "fields_help": { + "used_weight": "Hoeveel filament er van de spoel is gebruikt. Op een nieuwe spoel zal 0g gebruikt zijn.", + "weight_to_use": "Selecteer welke gewichtswaarde je wilt invoeren. Het gemeten gewicht is alleen beschikbaar als het spoelgewicht is ingesteld voor het geselecteerde filament.", + "measured_weight": "Hoeveel het filament en de spoel wegen.", + "lot_nr": "Lotnummer van de fabrikant. Kan worden gebruikt om ervoor te zorgen dat een afdruk een consistente kleur heeft als er meerdere spoelen worden gebruikt.", + "remaining_weight": "Hoeveel filament zit er nog op de spoel. Bij een nieuwe spoel zal dit overeenkomen met het spoelgewicht.", + "location": "Waar de spoel zich bevindt als je meerdere locaties hebt waar je jouw spoelen opslaat." }, - "filament": { - "fields_help": { - "name": "Filamentnaam, om dit filamenttype onder andere van dezelfde fabrikant te onderscheiden. Kan bijvoorbeeld de kleur bevatten.", - "article_number": "Bv. EAN. UPC, enz.", - "spool_weight": "Het gewicht van een lege spoel. Wordt gebruikt om het gemeten gewicht van een spoel te bepalen.", - "price": "Prijs van een volledige spoel in de door het systeem geconfigureerde valuta.", - "weight": "Het filamentgewicht van een volle spoel (nettogewicht). Dit mag niet het gewicht van de spoel zelf omvatten, alleen het filament. Dit staat meestal op de verpakking.", - "material": "Bv. PLA, ABS, PETG, enz." - }, - "fields": { - "material": "Materiaal", - "vendor_name": "Fabrikant", - "settings_extruder_temp": "Extruder Temperatuur", - "comment": "Opmerking", - "diameter": "Diameter", - "weight": "Gewicht", - "spool_weight": "Gewicht spoel", - "registered": "Geregistreerd", - "name": "Naam", - "price": "Prijs", - "settings_bed_temp": "Bed temperatuur", - "vendor": "Fabrikant", - "density": "Dichtheid", - "id": "ID", - "color_hex": "Kleur", - "article_number": "Artiekelnummer" - }, - "titles": { - "clone": "Flimanent klonen", - "show": "Filament tonen", - "create": "Flimament maken", - "edit": "Filament bewerken", - "list": "Filamenten", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "filament": "Filamenten" + "spool": "Spoelen", + "messages": { + "archive": "Weet je zeker dat je deze spoel wil archiveren?" }, - "scanner": { - "title": "QR-Code scanner", - "error": { - "insecureContext": "De pagina wordt niet weergegeven via HTTPS.", - "notReadable": "De camera is niet leesbaar.", - "notAllowed": "Je hebt geen toegang tot de camera verleend.", - "unknown": "Er is een onbekende fout opgetreden. ({{error}})", - "notFound": "Geen camera gevonden.", - "streamApiNotSupported": "De browser ondersteunt de MediaStream API niet." - }, - "description": "Scan een Spoolman QR-Code om details van de spoel te tonen." + "form": { + "new_location_prompt": "Voer een nieuwe locatie in", + "spool_updated": "Deze spoel is bijgewerkt door iemand/iets anders sinds je deze pagina hebt geopend. Opslaan zal die wijzigingen overschrijven!" + } + }, + "filament": { + "fields_help": { + "name": "Filamentnaam, om dit filamenttype onder andere van dezelfde fabrikant te onderscheiden. Kan bijvoorbeeld de kleur bevatten.", + "article_number": "Bv. EAN. UPC, enz.", + "spool_weight": "Het gewicht van een lege spoel. Wordt gebruikt om het gemeten gewicht van een spoel te bepalen.", + "price": "Prijs van een volledige spoel in de door het systeem geconfigureerde valuta.", + "weight": "Het filamentgewicht van een volle spoel (nettogewicht). Dit mag niet het gewicht van de spoel zelf omvatten, alleen het filament. Dit staat meestal op de verpakking.", + "material": "Bv. PLA, ABS, PETG, enz." }, - "vendor": { - "titles": { - "show": "Fabrikant tonen", - "edit": "Fabrikant bewerken", - "clone": "Fabrikant klonen", - "create": "Fabrikant maken", - "list": "Fabrikanten", - "show_title": "[Fabrikant #{{id}}] {{name}}" - }, - "fields": { - "registered": "Geregistreerd", - "comment": "Opmerking", - "name": "Naam", - "id": "Id" - }, - "vendor": "Fabrikanten" + "fields": { + "material": "Materiaal", + "vendor_name": "Fabrikant", + "settings_extruder_temp": "Extruder Temperatuur", + "comment": "Opmerking", + "diameter": "Diameter", + "weight": "Gewicht", + "spool_weight": "Gewicht spoel", + "registered": "Geregistreerd", + "name": "Naam", + "price": "Prijs", + "settings_bed_temp": "Bed temperatuur", + "vendor": "Fabrikant", + "density": "Dichtheid", + "id": "ID", + "color_hex": "Kleur", + "article_number": "Artiekelnummer" }, - "table": { - "actions": "Akties" - } + "titles": { + "clone": "Flimanent klonen", + "show": "Filament tonen", + "create": "Flimament maken", + "edit": "Filament bewerken", + "list": "Filamenten", + "show_title": "[Filament #{{id}}] {{name}}" + }, + "filament": "Filamenten" + }, + "scanner": { + "title": "QR-Code scanner", + "error": { + "insecureContext": "De pagina wordt niet weergegeven via HTTPS.", + "notReadable": "De camera is niet leesbaar.", + "notAllowed": "Je hebt geen toegang tot de camera verleend.", + "unknown": "Er is een onbekende fout opgetreden. ({{error}})", + "notFound": "Geen camera gevonden.", + "streamApiNotSupported": "De browser ondersteunt de MediaStream API niet." + }, + "description": "Scan een Spoolman QR-Code om details van de spoel te tonen." + }, + "vendor": { + "titles": { + "show": "Fabrikant tonen", + "edit": "Fabrikant bewerken", + "clone": "Fabrikant klonen", + "create": "Fabrikant maken", + "list": "Fabrikanten", + "show_title": "[Fabrikant #{{id}}] {{name}}" + }, + "fields": { + "registered": "Geregistreerd", + "comment": "Opmerking", + "name": "Naam", + "id": "Id" + }, + "vendor": "Fabrikanten" + }, + "table": { + "actions": "Akties" + } } diff --git a/client/public/locales/pl/common.json b/client/public/locales/pl/common.json index 0fe2792d6..41eb46ddb 100644 --- a/client/public/locales/pl/common.json +++ b/client/public/locales/pl/common.json @@ -1,264 +1,265 @@ { - "actions": { - "list": "Lista", - "create": "Utwórz", - "edit": "Edytuj", - "show": "Pokaż", - "clone": "Sklonuj" + "actions": { + "list": "Lista", + "create": "Utwórz", + "edit": "Edytuj", + "show": "Pokaż", + "clone": "Sklonuj" + }, + "buttons": { + "edit": "Edytuj", + "unArchive": "Odarchiwizuj", + "cancel": "Anuluj", + "create": "Utwórz", + "save": "Zapisz", + "logout": "Wyloguj", + "delete": "Usuń", + "confirm": "Czy na pewno?", + "filter": "Filtruj", + "clear": "Wyczyść", + "refresh": "Odśwież", + "show": "Pokaż", + "undo": "Cofnij", + "import": "Importuj", + "clone": "Sklonuj", + "archive": "Archiwizuj", + "hideArchived": "Ukryj zarchiwizowane", + "showArchived": "Pokaż zarchiwizowane", + "notAccessTitle": "Nie masz zezwolenia na dostęp", + "hideColumns": "Edytuj kolumny", + "clearFilters": "Wyczyść filtry", + "share": "udział" + }, + "spool": { + "titles": { + "list": "Szpule", + "show": "Pokaż szpulę", + "edit": "Edytowanie szpuli", + "create": "Tworzenie szpuli", + "clone": "Klonowanie szpuli", + "archive": "Zarchiwizuj szpulę", + "show_title": "[Szpula #{{id}}] {{name}}" }, - "buttons": { - "edit": "Edytuj", - "unArchive": "Odarchiwizuj", - "cancel": "Anuluj", - "create": "Utwórz", - "save": "Zapisz", - "logout": "Wyloguj", - "delete": "Usuń", - "confirm": "Czy na pewno?", - "filter": "Filtruj", - "clear": "Wyczyść", - "refresh": "Odśwież", - "show": "Pokaż", - "undo": "Cofnij", - "import": "Importuj", - "clone": "Sklonuj", - "archive": "Archiwizuj", - "hideArchived": "Ukryj zarchiwizowane", - "showArchived": "Pokaż zarchiwizowane", - "notAccessTitle": "Nie masz zezwolenia na dostęp", - "hideColumns": "Edytuj kolumny", - "clearFilters": "Wyczyść filtry" + "spool": "Szpule", + "fields": { + "id": "ID", + "filament_name": "Filament", + "filament": "Filament", + "material": "Materiał", + "remaining_weight": "Pozostała waga", + "used_length": "Użyta długość", + "remaining_length": "Pozostała długość", + "location": "Lokalizacja", + "lot_nr": "Numer partii (LOT)", + "first_used": "Pierwsze użycie", + "last_used": "Ostatnie użycie", + "comment": "Komentarz", + "archived": "Zarchiwizowano", + "used_weight": "Użyta waga", + "registered": "Zarejestrowano", + "measured_weight": "Zmierzona waga", + "weight_to_use": "Waga" }, - "spool": { - "titles": { - "list": "Szpule", - "show": "Pokaż szpulę", - "edit": "Edytowanie szpuli", - "create": "Tworzenie szpuli", - "clone": "Klonowanie szpuli", - "archive": "Zarchiwizuj szpulę", - "show_title": "[Szpula #{{id}}] {{name}}" - }, - "spool": "Szpule", - "fields": { - "id": "ID", - "filament_name": "Filament", - "filament": "Filament", - "material": "Materiał", - "remaining_weight": "Pozostała waga", - "used_length": "Użyta długość", - "remaining_length": "Pozostała długość", - "location": "Lokalizacja", - "lot_nr": "Numer partii (LOT)", - "first_used": "Pierwsze użycie", - "last_used": "Ostatnie użycie", - "comment": "Komentarz", - "archived": "Zarchiwizowano", - "used_weight": "Użyta waga", - "registered": "Zarejestrowano", - "measured_weight": "Zmierzona waga", - "weight_to_use": "Waga" - }, - "fields_help": { - "location": "Wpisz gdzie znajduje się szpula, jeśli masz wiele lokalizacji, w których przechowujesz szpule.", - "lot_nr": "Numer partii producenta. Może być stosowany w celu zapewnienia jednolitego koloru wydruku w przypadku użycia wielu szpul.", - "used_weight": "Podaj ile filamentu użyto ze szpuli. Jeśli jest nowa, podaj 0g użycia.", - "remaining_weight": "Ile filamentu pozostało na szpuli. W przypadku nowej szpuli powinno to odpowiadać wadze szpuli.", - "measured_weight": "Waga filamentu i szpuli.", - "weight_to_use": "Wybierz jaką wagę wprowadzić. Zmierzona waga jest dostępna tylko wtedy, gdy waga szpuli jest ustawiona dla wybranego filamentu." - }, - "messages": { - "archive": "Czy na pewno chcesz zarchiwizować tę szpulę?" - }, - "form": { - "new_location_prompt": "Wprowadź nową lokalizację", - "spool_updated": "Szpula została zaktualizowana od czasu otwarcia tej strony. Zapisanie nadpisze te zmiany!" - } + "fields_help": { + "location": "Wpisz gdzie znajduje się szpula, jeśli masz wiele lokalizacji, w których przechowujesz szpule.", + "lot_nr": "Numer partii producenta. Może być stosowany w celu zapewnienia jednolitego koloru wydruku w przypadku użycia wielu szpul.", + "used_weight": "Podaj ile filamentu użyto ze szpuli. Jeśli jest nowa, podaj 0g użycia.", + "remaining_weight": "Ile filamentu pozostało na szpuli. W przypadku nowej szpuli powinno to odpowiadać wadze szpuli.", + "measured_weight": "Waga filamentu i szpuli.", + "weight_to_use": "Wybierz jaką wagę wprowadzić. Zmierzona waga jest dostępna tylko wtedy, gdy waga szpuli jest ustawiona dla wybranego filamentu." }, - "dashboard": { - "title": "Pulpit" + "messages": { + "archive": "Czy na pewno chcesz zarchiwizować tę szpulę?" }, - "notifications": { - "success": "Powodzenie", - "undoable": "Na cofnięcie masz {{seconds}} sek.", - "createSuccess": "Pomyślnie utworzono {{resource}}", - "deleteSuccess": "Pomyślnie usunięto {{resource}}", - "deleteError": "Błąd podczas usuwania {{resource}} (kod statusu: {{statusCode}})", - "editSuccess": "Pomyślnie edytowano {{resource}}", - "editError": "Błąd podczas edycji {{resource}} (kod statusu: {{statusCode}})", - "importProgress": "Importowanie: {{processed}}/{{total}}", - "error": "Błąd (kod statusu: {{statusCode}})", - "createError": "Wystąpił błąd podczas tworzenia {{resource}} (kod statusu: {{statusCode}})" + "form": { + "new_location_prompt": "Wprowadź nową lokalizację", + "spool_updated": "Szpula została zaktualizowana od czasu otwarcia tej strony. Zapisanie nadpisze te zmiany!" + } + }, + "dashboard": { + "title": "Pulpit" + }, + "notifications": { + "success": "Powodzenie", + "undoable": "Na cofnięcie masz {{seconds}} sek.", + "createSuccess": "Pomyślnie utworzono {{resource}}", + "deleteSuccess": "Pomyślnie usunięto {{resource}}", + "deleteError": "Błąd podczas usuwania {{resource}} (kod statusu: {{statusCode}})", + "editSuccess": "Pomyślnie edytowano {{resource}}", + "editError": "Błąd podczas edycji {{resource}} (kod statusu: {{statusCode}})", + "importProgress": "Importowanie: {{processed}}/{{total}}", + "error": "Błąd (kod statusu: {{statusCode}})", + "createError": "Wystąpił błąd podczas tworzenia {{resource}} (kod statusu: {{statusCode}})" + }, + "loading": "Wczytywanie", + "version": "Wersja", + "unknown": "Nieznane", + "yes": "Tak", + "no": "Nie", + "tags": { + "clone": "Klonuj" + }, + "printing": { + "generic": { + "title": "Drukowanie", + "helpMargin": "Marginesy powinny być skonfigurowane tak, aby pasowały do papieru etykietowego i drukarki, ich zmiana wpłynie na rozmiar całej siatki.", + "helpPrinterMargin": "Bezpieczna strefa powinna być ustawiona tak, aby znajdowała się jak najbliżej krawędzi papieru, na którym drukarka może drukować, zmiana tych ustawień nie wpłynie na całą siatkę.", + "print": "Drukuj", + "columns": "Kolumny", + "rows": "Wiersze", + "paperSize": "Rozmiar papieru", + "customSize": "Niestandardowy", + "dimensions": "Wymiary", + "showBorder": "Pokaż obramowanie", + "previewScale": "Skala podglądu", + "skipItems": "Pomiń elementy", + "contentSettings": "Ustawienia zawartości", + "layoutSettings": "Ustawienia układu", + "verticalSpacing": "Pionowy odstęp", + "marginLeft": "Lewy margines", + "marginRight": "Prawy margines", + "marginTop": "Górny margines", + "marginBottom": "Dolny margines", + "printerMarginLeft": "Bezpieczna strefa po lewej", + "printerMarginRight": "Bezpieczna strefa po prawej", + "printerMarginTop": "Bezpieczna strefa u góry", + "borders": { + "none": "Brak", + "border": "Obwódka", + "grid": "Siatka" + }, + "description": "Dostosuj poniższe ustawienia, aby uzyskać pożądany układ wydruku. Należy pamiętać, że drukarki i system operacyjny mogą stosować własne marginesy i skalowanie, więc może być konieczne wykonanie kilku prób i błędów, zanim wszystko będzie prawidłowe. Przed wydrukowaniem etykiet przetestuj je na zwykłym papierze.", + "horizontalSpacing": "Poziomy odstęp", + "printerMarginBottom": "Bezpieczna strefa u dołu" }, - "loading": "Wczytywanie", - "version": "Wersja", - "unknown": "Nieznane", - "yes": "Tak", - "no": "Nie", - "tags": { - "clone": "Klonuj" + "qrcode": { + "button": "Drukuj kody QR", + "title": "Drukowanie kodów QR", + "bedTemp": "TS: {{temp}}", + "extruderTemp": "TE: {{temp}}", + "textSize": "Rozmiar tekstu", + "showSpoolmanIcon": "Pokaż ikonę Spoolman", + "showVendor": "Producent", + "showContent": "Etykieta", + "showLotNr": "Nr. partii (LOT)", + "showSpoolWeight": "Waga szpuli", + "showTemperatures": "Temperatury", + "showFilamentComment": "Komentarz filamentu", + "showVendorComment": "Komentarz producenta", + "spoolWeight": "Waga szpuli: {{weight}}", + "lotNr": "LOT: {{lot}}", + "showSpoolComment": "Komentarz szpuli" }, - "printing": { - "generic": { - "title": "Drukowanie", - "helpMargin": "Marginesy powinny być skonfigurowane tak, aby pasowały do papieru etykietowego i drukarki, ich zmiana wpłynie na rozmiar całej siatki.", - "helpPrinterMargin": "Bezpieczna strefa powinna być ustawiona tak, aby znajdowała się jak najbliżej krawędzi papieru, na którym drukarka może drukować, zmiana tych ustawień nie wpłynie na całą siatkę.", - "print": "Drukuj", - "columns": "Kolumny", - "rows": "Wiersze", - "paperSize": "Rozmiar papieru", - "customSize": "Niestandardowy", - "dimensions": "Wymiary", - "showBorder": "Pokaż obramowanie", - "previewScale": "Skala podglądu", - "skipItems": "Pomiń elementy", - "contentSettings": "Ustawienia zawartości", - "layoutSettings": "Ustawienia układu", - "verticalSpacing": "Pionowy odstęp", - "marginLeft": "Lewy margines", - "marginRight": "Prawy margines", - "marginTop": "Górny margines", - "marginBottom": "Dolny margines", - "printerMarginLeft": "Bezpieczna strefa po lewej", - "printerMarginRight": "Bezpieczna strefa po prawej", - "printerMarginTop": "Bezpieczna strefa u góry", - "borders": { - "none": "Brak", - "border": "Obwódka", - "grid": "Siatka" - }, - "description": "Dostosuj poniższe ustawienia, aby uzyskać pożądany układ wydruku. Należy pamiętać, że drukarki i system operacyjny mogą stosować własne marginesy i skalowanie, więc może być konieczne wykonanie kilku prób i błędów, zanim wszystko będzie prawidłowe. Przed wydrukowaniem etykiet przetestuj je na zwykłym papierze.", - "horizontalSpacing": "Poziomy odstęp", - "printerMarginBottom": "Bezpieczna strefa u dołu" - }, - "qrcode": { - "button": "Drukuj kody QR", - "title": "Drukowanie kodów QR", - "bedTemp": "TS: {{temp}}", - "extruderTemp": "TE: {{temp}}", - "textSize": "Rozmiar tekstu", - "showSpoolmanIcon": "Pokaż ikonę Spoolman", - "showVendor": "Producent", - "showContent": "Etykieta", - "showLotNr": "Nr. partii (LOT)", - "showSpoolWeight": "Waga szpuli", - "showTemperatures": "Temperatury", - "showFilamentComment": "Komentarz filamentu", - "showVendorComment": "Komentarz producenta", - "spoolWeight": "Waga szpuli: {{weight}}", - "lotNr": "LOT: {{lot}}", - "showSpoolComment": "Komentarz szpuli" - }, - "spoolSelect": { - "title": "Wybierz szpule", - "description": "Wybierz szpule dla których mają być drukowane kody QR.", - "showArchived": "Pokaż zarchiwizowane", - "selectAll": "Wybierz/Odznacz wszystko", - "selectedTotal_one": "Wybrano {{count}} szpulę", - "selectedTotal_few": "Wybrano {{count}} szpule", - "selectedTotal_many": "Wybrano {{count}} szpul", - "noSpoolsSelected": "Nie wybrano żadnych szpul." - } + "spoolSelect": { + "title": "Wybierz szpule", + "description": "Wybierz szpule dla których mają być drukowane kody QR.", + "showArchived": "Pokaż zarchiwizowane", + "selectAll": "Wybierz/Odznacz wszystko", + "selectedTotal_one": "Wybrano {{count}} szpulę", + "selectedTotal_few": "Wybrano {{count}} szpule", + "selectedTotal_many": "Wybrano {{count}} szpul", + "noSpoolsSelected": "Nie wybrano żadnych szpul." + } + }, + "scanner": { + "title": "Skaner kodów QR", + "error": { + "notAllowed": "Nie zezwolono na dostęp do kamery.", + "insecureContext": "Strona nie jest dostarczana przez HTTPS.", + "streamApiNotSupported": "Przeglądarka nie obsługuje API MediaStream.", + "notReadable": "Kamera jest niedostępna do odczytu.", + "notFound": "Nie znaleziono kamery.", + "unknown": "Wystąpił nieznany błąd. ({{error}})" }, - "scanner": { - "title": "Skaner kodów QR", - "error": { - "notAllowed": "Nie zezwolono na dostęp do kamery.", - "insecureContext": "Strona nie jest dostarczana przez HTTPS.", - "streamApiNotSupported": "Przeglądarka nie obsługuje API MediaStream.", - "notReadable": "Kamera jest niedostępna do odczytu.", - "notFound": "Nie znaleziono kamery.", - "unknown": "Wystąpił nieznany błąd. ({{error}})" - }, - "description": "Zeskanuj kod QR Spoolman, aby wyświetlić szczegółowe informacje o szpuli." + "description": "Zeskanuj kod QR Spoolman, aby wyświetlić szczegółowe informacje o szpuli." + }, + "filament": { + "filament": "Filamenty", + "fields": { + "id": "ID", + "vendor_name": "Producent", + "vendor": "Producent", + "name": "Nazwa", + "material": "Materiał", + "price": "Cena", + "density": "Gęstość", + "diameter": "Średnica", + "weight": "Waga", + "spool_weight": "Waga szpuli", + "registered": "Zarejestrowano", + "comment": "Komentarz", + "settings_extruder_temp": "Temperatura ekstrudera", + "settings_bed_temp": "Temperatura stołu", + "color_hex": "Kolor", + "article_number": "Numer artykułu" }, - "filament": { - "filament": "Filamenty", - "fields": { - "id": "ID", - "vendor_name": "Producent", - "vendor": "Producent", - "name": "Nazwa", - "material": "Materiał", - "price": "Cena", - "density": "Gęstość", - "diameter": "Średnica", - "weight": "Waga", - "spool_weight": "Waga szpuli", - "registered": "Zarejestrowano", - "comment": "Komentarz", - "settings_extruder_temp": "Temperatura ekstrudera", - "settings_bed_temp": "Temperatura stołu", - "color_hex": "Kolor", - "article_number": "Numer artykułu" - }, - "fields_help": { - "material": "Np. PLA, ABS, PETG itp.", - "price": "Cena pełnej szpuli w walucie skonfigurowanej przez system.", - "spool_weight": "Waga pustej szpuli. Używana do określenia ciężaru szpuli.", - "article_number": "Np. EAN, UPC itp.", - "name": "Nazwa filamentu, aby odróżnić ten typ filamentu od innych pochodzących od tego samego producenta. Powinna zawierać np. kolor.", - "weight": "Waga filamentu na pełnej szpuli (waga netto). Nie powinno to obejmować wagi samej szpuli, a jedynie filamentu. Jest to zwykle napisane na opakowaniu." - }, - "titles": { - "create": "Tworzenie filamentu", - "clone": "Klonowanie filamentu", - "edit": "Edytowanie filamentu", - "list": "Filamenty", - "show": "Pokaż filament", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "Ten filament został zaktualizowany przez kogoś/coś innego od czasu otwarcia tej strony. Zapisanie nadpisze te zmiany!" - } + "fields_help": { + "material": "Np. PLA, ABS, PETG itp.", + "price": "Cena pełnej szpuli w walucie skonfigurowanej przez system.", + "spool_weight": "Waga pustej szpuli. Używana do określenia ciężaru szpuli.", + "article_number": "Np. EAN, UPC itp.", + "name": "Nazwa filamentu, aby odróżnić ten typ filamentu od innych pochodzących od tego samego producenta. Powinna zawierać np. kolor.", + "weight": "Waga filamentu na pełnej szpuli (waga netto). Nie powinno to obejmować wagi samej szpuli, a jedynie filamentu. Jest to zwykle napisane na opakowaniu." }, - "vendor": { - "vendor": "Producenci", - "fields": { - "id": "ID", - "name": "Nazwa", - "registered": "Zarejestrowano", - "comment": "Komentarz" - }, - "titles": { - "create": "Tworzenie producenta", - "clone": "Klonowanie producenta", - "edit": "Edycja producenta", - "list": "Producenci", - "show": "Pokaż producenta", - "show_title": "[Producent #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "Ten producent został zaktualizowany przez kogoś/coś innego od czasu otwarcia tej strony. Zapisanie spowoduje nadpisanie tych zmian!" - } + "titles": { + "create": "Tworzenie filamentu", + "clone": "Klonowanie filamentu", + "edit": "Edytowanie filamentu", + "list": "Filamenty", + "show": "Pokaż filament", + "show_title": "[Filament #{{id}}] {{name}}" + }, + "form": { + "filament_updated": "Ten filament został zaktualizowany przez kogoś/coś innego od czasu otwarcia tej strony. Zapisanie nadpisze te zmiany!" + } + }, + "vendor": { + "vendor": "Producenci", + "fields": { + "id": "ID", + "name": "Nazwa", + "registered": "Zarejestrowano", + "comment": "Komentarz" }, - "table": { - "actions": "Akcje" + "titles": { + "create": "Tworzenie producenta", + "clone": "Klonowanie producenta", + "edit": "Edycja producenta", + "list": "Producenci", + "show": "Pokaż producenta", + "show_title": "[Producent #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filamenty | Spoolman", - "edit": "#{{id}} Edycja filamentu | Spoolman", - "create": "Tworzenie filamentu | Spoolman", - "clone": "#{{id}} Klonowanie filamentu | Spoolman", - "show": "#{{id}} Filament | Spoolman" - }, - "spool": { - "list": "Szpule | Spoolman", - "show": "#{{id}} Szpula | Spoolman", - "edit": "#{{id}} Edycja szpuli | Spoolman", - "create": "Tworzenie szpuli | Spoolman", - "clone": "#{{id}} Klonowanie szpuli | Spoolman" - }, - "vendor": { - "show": "#{{id}} Producent | Spoolman", - "list": "Producenci | Spoolman", - "edit": "#{{id}} Edycja producenta | Spoolman", - "create": "Tworzenie producenta | Spoolman", - "clone": "#{{id}} Klonowanie producenta | Spoolman" - } + "form": { + "vendor_updated": "Ten producent został zaktualizowany przez kogoś/coś innego od czasu otwarcia tej strony. Zapisanie spowoduje nadpisanie tych zmian!" + } + }, + "table": { + "actions": "Akcje" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Filamenty | Spoolman", + "edit": "#{{id}} Edycja filamentu | Spoolman", + "create": "Tworzenie filamentu | Spoolman", + "clone": "#{{id}} Klonowanie filamentu | Spoolman", + "show": "#{{id}} Filament | Spoolman" + }, + "spool": { + "list": "Szpule | Spoolman", + "show": "#{{id}} Szpula | Spoolman", + "edit": "#{{id}} Edycja szpuli | Spoolman", + "create": "Tworzenie szpuli | Spoolman", + "clone": "#{{id}} Klonowanie szpuli | Spoolman" }, - "warnWhenUnsavedChanges": "Czy na pewno chcesz wyjść? Masz niezapisane zmiany." + "vendor": { + "show": "#{{id}} Producent | Spoolman", + "list": "Producenci | Spoolman", + "edit": "#{{id}} Edycja producenta | Spoolman", + "create": "Tworzenie producenta | Spoolman", + "clone": "#{{id}} Klonowanie producenta | Spoolman" + } + }, + "warnWhenUnsavedChanges": "Czy na pewno chcesz wyjść? Masz niezapisane zmiany." } diff --git a/client/public/locales/ru/common.json b/client/public/locales/ru/common.json index 6172e0e05..d293b71d4 100644 --- a/client/public/locales/ru/common.json +++ b/client/public/locales/ru/common.json @@ -1,251 +1,252 @@ { - "actions": { - "list": "Список", - "create": "Создать", - "edit": "Редактировать", - "show": "Просмотр", - "clone": "Клонировать" + "actions": { + "list": "Список", + "create": "Создать", + "edit": "Редактировать", + "show": "Просмотр", + "clone": "Клонировать" + }, + "buttons": { + "create": "Создать", + "save": "Сохранить", + "logout": "Выйти", + "delete": "Удалить", + "edit": "Редактировать", + "cancel": "Отмена", + "confirm": "Вы уверены?", + "filter": "Фильтр", + "clear": "Очистить", + "refresh": "Обновить", + "show": "Просмотр", + "undo": "Отменить", + "import": "Импорт", + "clone": "Клонировать", + "archive": "В архив", + "unArchive": "Из архива", + "hideArchived": "Скрыть архивные", + "showArchived": "Показать архивные", + "notAccessTitle": "У вас нет разрешения на доступ", + "hideColumns": "Скрыть столбцы", + "clearFilters": "Очистить фильтр", + "share": "делиться" + }, + "warnWhenUnsavedChanges": "Вы уверены, что хотите выйти? У вас есть несохраненные изменения.", + "notifications": { + "success": "Успешно", + "error": "Ошибка (status code: {{statusCode}})", + "undoable": "У вас есть {{seconds}} секунд, чтобы отменить действие.", + "createSuccess": "Успешно создано {{resource}}", + "createError": "Произошла ошибка при создании{{resource}} (status code: {{statusCode}})", + "deleteSuccess": "Успеешно удалено {{resource}}", + "deleteError": "Ошибка при удалении {{resource}} (status code: {{statusCode}})", + "editSuccess": "Успешно отредактировано {{resource}}", + "editError": "Ошибка при редактировании {{resource}} (status code: {{statusCode}})", + "importProgress": "Импорт: {{processed}}/{{total}}" + }, + "loading": "Загрузка", + "version": "Версия", + "unknown": "Неизвестно", + "yes": "Да", + "no": "Нет", + "tags": { + "clone": "Клонировать" + }, + "dashboard": { + "title": "Панель" + }, + "printing": { + "generic": { + "title": "Печать", + "description": "Настройте параметры ниже, чтобы получить желаемый макет печати. Имейте в виду, что принтеры и ваша ОС могут применять свои собственные поля и масштабирование, поэтому вам, возможно, придется выполнить несколько проб и ошибок, прежде чем все будет правильно. Прежде чем печатать на этикетках, проверьте это на листе обычной бумаги.", + "helpMargin": "Поля должны быть настроены в соответствии с вашей этикеточной бумагой и принтером. Их изменение повлияет на размер всей сетки.", + "helpPrinterMargin": "В безопасной зоне должно быть установлено, насколько близко к краю бумаги может печатать ваш принтер. Изменение этих значений не повлияет на всю сетку.", + "print": "Распечатать", + "columns": "Столбцы", + "rows": "Строки", + "paperSize": "Размер бумаги", + "customSize": "Настроить", + "dimensions": "Размеры", + "showBorder": "Печать границы", + "previewScale": "Масштаб предварительного просмотра", + "skipItems": "Пропустить элементы", + "contentSettings": "Настройки контента", + "layoutSettings": "Настройки макета", + "horizontalSpacing": "Горизонтальный интервал", + "verticalSpacing": "Вертикальный интервал", + "marginLeft": "Левое поле", + "marginRight": "Правое поле", + "marginTop": "Верхнее поле", + "marginBottom": "Нижнее поле", + "printerMarginLeft": "Безопасная зона слева", + "printerMarginRight": "Безопасная зона справа", + "printerMarginTop": "Безопасная зона сверху", + "printerMarginBottom": "Безопасная зона снизу", + "borders": { + "none": "Без рамки", + "border": "Общая", + "grid": "Сетка" + } }, - "buttons": { - "create": "Создать", - "save": "Сохранить", - "logout": "Выйти", - "delete": "Удалить", - "edit": "Редактировать", - "cancel": "Отмена", - "confirm": "Вы уверены?", - "filter": "Фильтр", - "clear": "Очистить", - "refresh": "Обновить", - "show": "Просмотр", - "undo": "Отменить", - "import": "Импорт", - "clone": "Клонировать", - "archive": "В архив", - "unArchive": "Из архива", - "hideArchived": "Скрыть архивные", - "showArchived": "Показать архивные", - "notAccessTitle": "У вас нет разрешения на доступ", - "hideColumns": "Скрыть столбцы", - "clearFilters": "Очистить фильтр" + "qrcode": { + "button": "Распечатать QR-коды", + "title": "Печать QR-кода", + "spoolWeight": "Вес катушки: {{weight}}", + "lotNr": "№ партии: {{lot}}", + "bedTemp": "ТС: {{temp}}", + "extruderTemp": "ТЕ: {{temp}}", + "textSize": "Размер текста", + "showSpoolmanIcon": "Показать иконку Spoolman", + "showVendor": "Производитель", + "showContent": "Печать информации", + "showLotNr": "№ партии", + "showSpoolWeight": "Вес катушки", + "showTemperatures": "Температура", + "showSpoolComment": "Комментарий к катушке", + "showFilamentComment": "Комментарий к филаменту", + "showVendorComment": "Комментарий к продавцу" }, - "warnWhenUnsavedChanges": "Вы уверены, что хотите выйти? У вас есть несохраненные изменения.", - "notifications": { - "success": "Успешно", - "error": "Ошибка (status code: {{statusCode}})", - "undoable": "У вас есть {{seconds}} секунд, чтобы отменить действие.", - "createSuccess": "Успешно создано {{resource}}", - "createError": "Произошла ошибка при создании{{resource}} (status code: {{statusCode}})", - "deleteSuccess": "Успеешно удалено {{resource}}", - "deleteError": "Ошибка при удалении {{resource}} (status code: {{statusCode}})", - "editSuccess": "Успешно отредактировано {{resource}}", - "editError": "Ошибка при редактировании {{resource}} (status code: {{statusCode}})", - "importProgress": "Импорт: {{processed}}/{{total}}" + "spoolSelect": { + "title": "Выберите катушки", + "description": "Выберите катушки для печати QR-кодов.", + "showArchived": "Показать архивные", + "noSpoolsSelected": "Вы не выбрали ни одной катушки.", + "selectAll": "Выбрать/отменить выбор всего", + "selectedTotal_one": "{{count}} катушка выбрана", + "selectedTotal_few": "{{count}} катушки выбрано", + "selectedTotal_many": "{{count}} катушек выбрано" + } + }, + "scanner": { + "title": "Сканер QR-кода", + "description": "Отсканируйте QR-код Spoolman, чтобы просмотреть подробную информацию о катушке.", + "error": { + "notAllowed": "Вы запретили доступ к камере.", + "insecureContext": "Страница не обслуживается по протоколу HTTPS.", + "streamApiNotSupported": "Браузер не поддерживает API MediaStream.", + "notReadable": "Камера не читается.", + "notFound": "Ни одна камера не найдена.", + "unknown": "Произошла неизвестная ошибка. ({{error}})" + } + }, + "spool": { + "spool": "Катушки", + "fields": { + "id": "ID", + "filament_name": "Филамент", + "filament": "Филамент", + "material": "Тип", + "used_weight": "Использованный вес", + "remaining_weight": "Оставшийся вес", + "used_length": "Использованная длина", + "remaining_length": "Оставшаяся длина", + "location": "Расположение", + "lot_nr": "№ партии", + "first_used": "Первое использование", + "last_used": "Последнее использование", + "registered": "Добавлен", + "comment": "Комментарий", + "archived": "В архиве", + "measured_weight": "Измеренный вес", + "weight_to_use": "Масса" }, - "loading": "Загрузка", - "version": "Версия", - "unknown": "Неизвестно", - "yes": "Да", - "no": "Нет", - "tags": { - "clone": "Клонировать" + "fields_help": { + "used_weight": "Сколько филамента было использовано с катушки. На новой катушке должно быть использовано 0 г.", + "location": "Где находится катушка, если у вас есть несколько мест хранения катушек.", + "lot_nr": "Номер партии производителя. Может использоваться для обеспечения однородного цвета отпечатка при использовании нескольких катушек.", + "weight_to_use": "Выберите, какое значение веса ввести. Измеренный вес доступен только в том случае, если вес катушки установлен для выбранной филамента.", + "measured_weight": "Сколько весит филамент и катушка.", + "remaining_weight": "Сколько филамента осталось на катушке. Для новой катушки этот вес должен соответствовать весу катушки." }, - "dashboard": { - "title": "Панель" + "titles": { + "create": "Создать Катушку", + "clone": "Клонировать Катушку", + "edit": "Редактировать Катушку", + "list": "Катушки", + "show": "Показать Катушку", + "archive": "Архивировать Катушку" }, - "printing": { - "generic": { - "title": "Печать", - "description": "Настройте параметры ниже, чтобы получить желаемый макет печати. Имейте в виду, что принтеры и ваша ОС могут применять свои собственные поля и масштабирование, поэтому вам, возможно, придется выполнить несколько проб и ошибок, прежде чем все будет правильно. Прежде чем печатать на этикетках, проверьте это на листе обычной бумаги.", - "helpMargin": "Поля должны быть настроены в соответствии с вашей этикеточной бумагой и принтером. Их изменение повлияет на размер всей сетки.", - "helpPrinterMargin": "В безопасной зоне должно быть установлено, насколько близко к краю бумаги может печатать ваш принтер. Изменение этих значений не повлияет на всю сетку.", - "print": "Распечатать", - "columns": "Столбцы", - "rows": "Строки", - "paperSize": "Размер бумаги", - "customSize": "Настроить", - "dimensions": "Размеры", - "showBorder": "Печать границы", - "previewScale": "Масштаб предварительного просмотра", - "skipItems": "Пропустить элементы", - "contentSettings": "Настройки контента", - "layoutSettings": "Настройки макета", - "horizontalSpacing": "Горизонтальный интервал", - "verticalSpacing": "Вертикальный интервал", - "marginLeft": "Левое поле", - "marginRight": "Правое поле", - "marginTop": "Верхнее поле", - "marginBottom": "Нижнее поле", - "printerMarginLeft": "Безопасная зона слева", - "printerMarginRight": "Безопасная зона справа", - "printerMarginTop": "Безопасная зона сверху", - "printerMarginBottom": "Безопасная зона снизу", - "borders": { - "none": "Без рамки", - "border": "Общая", - "grid": "Сетка" - } - }, - "qrcode": { - "button": "Распечатать QR-коды", - "title": "Печать QR-кода", - "spoolWeight": "Вес катушки: {{weight}}", - "lotNr": "№ партии: {{lot}}", - "bedTemp": "ТС: {{temp}}", - "extruderTemp": "ТЕ: {{temp}}", - "textSize": "Размер текста", - "showSpoolmanIcon": "Показать иконку Spoolman", - "showVendor": "Производитель", - "showContent": "Печать информации", - "showLotNr": "№ партии", - "showSpoolWeight": "Вес катушки", - "showTemperatures": "Температура", - "showSpoolComment": "Комментарий к катушке", - "showFilamentComment": "Комментарий к филаменту", - "showVendorComment": "Комментарий к продавцу" - }, - "spoolSelect": { - "title": "Выберите катушки", - "description": "Выберите катушки для печати QR-кодов.", - "showArchived": "Показать архивные", - "noSpoolsSelected": "Вы не выбрали ни одной катушки.", - "selectAll": "Выбрать/отменить выбор всего", - "selectedTotal_one": "{{count}} катушка выбрана", - "selectedTotal_few": "{{count}} катушки выбрано", - "selectedTotal_many": "{{count}} катушек выбрано" - } + "messages": { + "archive": "Вы уверены, что хотите добавить в архив эту катушку?" + } + }, + "filament": { + "filament": "Филаменты", + "fields": { + "id": "ID", + "vendor_name": "Производитель", + "vendor": "Производитель", + "name": "Имя", + "material": "Тип", + "price": "Цена", + "density": "Плотность", + "diameter": "Диаметр", + "weight": "Вес", + "spool_weight": "Вес катушки", + "article_number": "Артикул", + "registered": "Добавлен", + "comment": "Комментарий", + "settings_extruder_temp": "Температура экструдера", + "settings_bed_temp": "Температура стола", + "color_hex": "Цвет" }, - "scanner": { - "title": "Сканер QR-кода", - "description": "Отсканируйте QR-код Spoolman, чтобы просмотреть подробную информацию о катушке.", - "error": { - "notAllowed": "Вы запретили доступ к камере.", - "insecureContext": "Страница не обслуживается по протоколу HTTPS.", - "streamApiNotSupported": "Браузер не поддерживает API MediaStream.", - "notReadable": "Камера не читается.", - "notFound": "Ни одна камера не найдена.", - "unknown": "Произошла неизвестная ошибка. ({{error}})" - } + "fields_help": { + "name": "Название филамента, чтобы отличить этот тип филамента от друго филамента того же производителя. Например, должен содержать цвет.", + "material": "Например: PLA, ABS, PETG и т.д.", + "price": "Цена полной катушки в валюте, настроенной системой.", + "weight": "Вес филамента на полной катушке (вес нетто). Сюда не следует включать вес самой катушки, а только филамента. Это то, что обычно пишут на упаковке.", + "spool_weight": "Вес пустой катушки. В настоящее время ни для чего не используется, но может использоваться сторонними приложениями, например. Рассчитайте вес филамента на основе измерения веса.", + "article_number": "Например: EAN, UPC, и т.д." }, - "spool": { - "spool": "Катушки", - "fields": { - "id": "ID", - "filament_name": "Филамент", - "filament": "Филамент", - "material": "Тип", - "used_weight": "Использованный вес", - "remaining_weight": "Оставшийся вес", - "used_length": "Использованная длина", - "remaining_length": "Оставшаяся длина", - "location": "Расположение", - "lot_nr": "№ партии", - "first_used": "Первое использование", - "last_used": "Последнее использование", - "registered": "Добавлен", - "comment": "Комментарий", - "archived": "В архиве", - "measured_weight": "Измеренный вес", - "weight_to_use": "Масса" - }, - "fields_help": { - "used_weight": "Сколько филамента было использовано с катушки. На новой катушке должно быть использовано 0 г.", - "location": "Где находится катушка, если у вас есть несколько мест хранения катушек.", - "lot_nr": "Номер партии производителя. Может использоваться для обеспечения однородного цвета отпечатка при использовании нескольких катушек.", - "weight_to_use": "Выберите, какое значение веса ввести. Измеренный вес доступен только в том случае, если вес катушки установлен для выбранной филамента.", - "measured_weight": "Сколько весит филамент и катушка.", - "remaining_weight": "Сколько филамента осталось на катушке. Для новой катушки этот вес должен соответствовать весу катушки." - }, - "titles": { - "create": "Создать Катушку", - "clone": "Клонировать Катушку", - "edit": "Редактировать Катушку", - "list": "Катушки", - "show": "Показать Катушку", - "archive": "Архивировать Катушку" - }, - "messages": { - "archive": "Вы уверены, что хотите добавить в архив эту катушку?" - } + "titles": { + "create": "Создать филамент", + "clone": "Клонировать филамент", + "edit": "Редактировать филамент", + "list": "Филаменты", + "show": "Показать филамент" + } + }, + "vendor": { + "vendor": "Производитель", + "fields": { + "id": "Id", + "name": "Имя", + "registered": "Зарегистрирован", + "comment": "Комментарий" }, + "titles": { + "create": "Создать производителя", + "clone": "Клонировать производителя", + "edit": "Редактировать производителя", + "list": "Производители", + "show": "Показать производителя" + } + }, + "table": { + "actions": "Действия" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", "filament": { - "filament": "Филаменты", - "fields": { - "id": "ID", - "vendor_name": "Производитель", - "vendor": "Производитель", - "name": "Имя", - "material": "Тип", - "price": "Цена", - "density": "Плотность", - "diameter": "Диаметр", - "weight": "Вес", - "spool_weight": "Вес катушки", - "article_number": "Артикул", - "registered": "Добавлен", - "comment": "Комментарий", - "settings_extruder_temp": "Температура экструдера", - "settings_bed_temp": "Температура стола", - "color_hex": "Цвет" - }, - "fields_help": { - "name": "Название филамента, чтобы отличить этот тип филамента от друго филамента того же производителя. Например, должен содержать цвет.", - "material": "Например: PLA, ABS, PETG и т.д.", - "price": "Цена полной катушки в валюте, настроенной системой.", - "weight": "Вес филамента на полной катушке (вес нетто). Сюда не следует включать вес самой катушки, а только филамента. Это то, что обычно пишут на упаковке.", - "spool_weight": "Вес пустой катушки. В настоящее время ни для чего не используется, но может использоваться сторонними приложениями, например. Рассчитайте вес филамента на основе измерения веса.", - "article_number": "Например: EAN, UPC, и т.д." - }, - "titles": { - "create": "Создать филамент", - "clone": "Клонировать филамент", - "edit": "Редактировать филамент", - "list": "Филаменты", - "show": "Показать филамент" - } - }, - "vendor": { - "vendor": "Производитель", - "fields": { - "id": "Id", - "name": "Имя", - "registered": "Зарегистрирован", - "comment": "Комментарий" - }, - "titles": { - "create": "Создать производителя", - "clone": "Клонировать производителя", - "edit": "Редактировать производителя", - "list": "Производители", - "show": "Показать производителя" - } + "list": "Филаменты | Spoolman", + "show": "#{{id}} Показать филамент | Spoolman", + "edit": "#{{id}} Редактировать филамент | Spoolman", + "create": "Создать филамент | Spoolman", + "clone": "#{{id}} Клонировать филамент | Spoolman" }, - "table": { - "actions": "Действия" + "spool": { + "list": "Катушки | Spoolman", + "show": "#{{id}} Показать катушку | Spoolman", + "edit": "#{{id}} Редактировать катушку | Spoolman", + "create": "Создать катушку | Spoolman", + "clone": "#{{id}} Клонировать катушку | Spoolman" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Филаменты | Spoolman", - "show": "#{{id}} Показать филамент | Spoolman", - "edit": "#{{id}} Редактировать филамент | Spoolman", - "create": "Создать филамент | Spoolman", - "clone": "#{{id}} Клонировать филамент | Spoolman" - }, - "spool": { - "list": "Катушки | Spoolman", - "show": "#{{id}} Показать катушку | Spoolman", - "edit": "#{{id}} Редактировать катушку | Spoolman", - "create": "Создать катушку | Spoolman", - "clone": "#{{id}} Клонировать катушку | Spoolman" - }, - "vendor": { - "list": "Производители | Spoolman", - "show": "#{{id}} Показать производителя | Spoolman", - "edit": "#{{id}} Редактировать производителя | Spoolman", - "create": "Создать производителя | Spoolman", - "clone": "#{{id}} Клонировать производителя | Spoolman" - } + "vendor": { + "list": "Производители | Spoolman", + "show": "#{{id}} Показать производителя | Spoolman", + "edit": "#{{id}} Редактировать производителя | Spoolman", + "create": "Создать производителя | Spoolman", + "clone": "#{{id}} Клонировать производителя | Spoolman" } + } } diff --git a/client/public/locales/sv/common.json b/client/public/locales/sv/common.json index a30ead0af..00304d7f1 100644 --- a/client/public/locales/sv/common.json +++ b/client/public/locales/sv/common.json @@ -1,263 +1,264 @@ { - "actions": { - "list": "Lista", - "create": "Skapa", - "edit": "Ändra", - "show": "Visa", - "clone": "Klona" + "actions": { + "list": "Lista", + "create": "Skapa", + "edit": "Ändra", + "show": "Visa", + "clone": "Klona" + }, + "buttons": { + "create": "Skapa", + "save": "Spara", + "logout": "Logga ut", + "delete": "Ta bort", + "edit": "Ändra", + "cancel": "Avbryt", + "confirm": "Är du säker?", + "filter": "Filtrera", + "clear": "Rensa", + "refresh": "Uppdatera", + "show": "Visa", + "undo": "Ångra", + "import": "Importera", + "clone": "Klona", + "archive": "Arkivera", + "unArchive": "Avarkivera", + "hideArchived": "Dölj arkiverade", + "showArchived": "Visa arkiverade", + "notAccessTitle": "Du har inte tillgång till denna sida", + "hideColumns": "Dölj kolumner", + "clearFilters": "Rensa filter", + "share": "aktie" + }, + "warnWhenUnsavedChanges": "Är du säker på att du vill lämna sidan? Du har osparade ändringar.", + "notifications": { + "success": "Lyckades", + "error": "Fel (statuskod: {{statusCode}})", + "undoable": "Du har {{seconds}} sekunder på dig att ångra.", + "createSuccess": "Lyckades skapa {{resource}}", + "createError": "Det gick inte att skapa {{resource}} (statuskod: {{statusCode}})", + "deleteSuccess": "Lyckades ta bort {{resource}}", + "deleteError": "Det gick inte att ta bort {{resource}} (statuskod: {{statusCode}})", + "editSuccess": "Lyckades ändra {{resource}}", + "editError": "Det gick inte att ändra {{resource}} (statuskod: {{statusCode}})", + "importProgress": "Importerar: {{processed}}/{{total}}" + }, + "loading": "Laddar", + "version": "Version", + "unknown": "Okänd", + "yes": "Ja", + "no": "Nej", + "tags": { + "clone": "Klona" + }, + "dashboard": { + "title": "Hem" + }, + "printing": { + "generic": { + "title": "Utskrift", + "description": "Justera inställningarna nedan för att få önskat utskriftslayout. Kom ihåg att skrivare och ditt operativsystem kan tillämpa sina egna marginaler och skalning, så du kan behöva justera inställningarna därefter. Testa på ett vanligt papper innan du skriver ut på de faktiska etiketterna.", + "helpMargin": "Marginaler bör konfigureras för att matcha ditt etikettpapper och skrivare, ändringar av dessa kommer att påverka storleken på hela rutnätet.", + "helpPrinterMargin": "Säkerhetszon bör ställas in på hur nära papperskanten din skrivare kan skriva ut, ändringar av dessa kommer inte att påverka hela rutnätet.", + "print": "Skriv ut", + "columns": "Kolumner", + "rows": "Rader", + "paperSize": "Papperstyp", + "customSize": "Anpassad", + "dimensions": "Dimensioner", + "showBorder": "Visa ram", + "previewScale": "Skala förhandsgranskning", + "skipItems": "Hoppa över objekt", + "contentSettings": "Innehållsinställningar", + "layoutSettings": "Layoutinställningar", + "horizontalSpacing": "Horisontellt avstånd", + "verticalSpacing": "Vertikalt avstånd", + "marginLeft": "Marginal - vänster", + "marginRight": "Marginal - höger", + "marginTop": "Marginal - topp", + "marginBottom": "Marginal - botten", + "printerMarginLeft": "Säkerhetszon - vänster", + "printerMarginRight": "Säkerhetszon - höger", + "printerMarginTop": "Säkerhetszon - topp", + "printerMarginBottom": "Säkerhetszon - botten", + "borders": { + "none": "Ingen", + "border": "Ram", + "grid": "Rutnät" + } }, - "buttons": { - "create": "Skapa", - "save": "Spara", - "logout": "Logga ut", - "delete": "Ta bort", - "edit": "Ändra", - "cancel": "Avbryt", - "confirm": "Är du säker?", - "filter": "Filtrera", - "clear": "Rensa", - "refresh": "Uppdatera", - "show": "Visa", - "undo": "Ångra", - "import": "Importera", - "clone": "Klona", - "archive": "Arkivera", - "unArchive": "Avarkivera", - "hideArchived": "Dölj arkiverade", - "showArchived": "Visa arkiverade", - "notAccessTitle": "Du har inte tillgång till denna sida", - "hideColumns": "Dölj kolumner", - "clearFilters": "Rensa filter" + "qrcode": { + "button": "Skriv ut QR-koder", + "title": "QR-kod utskrift", + "spoolWeight": "Spolvikt: {{weight}}", + "lotNr": "Batch: {{lot}}", + "bedTemp": "BT: {{temp}}", + "extruderTemp": "ET: {{temp}}", + "textSize": "Textstorlek", + "showSpoolmanIcon": "Visa Spoolman-ikon", + "showContent": "Etikett", + "showVendor": "Leverantör", + "showLotNr": "Batchnummer", + "showSpoolWeight": "Spolvikt", + "showTemperatures": "Temperaturer", + "showSpoolComment": "Spolkommentar", + "showFilamentComment": "Filamentkommentar", + "showVendorComment": "Leverantörskommentar" }, - "warnWhenUnsavedChanges": "Är du säker på att du vill lämna sidan? Du har osparade ändringar.", - "notifications": { - "success": "Lyckades", - "error": "Fel (statuskod: {{statusCode}})", - "undoable": "Du har {{seconds}} sekunder på dig att ångra.", - "createSuccess": "Lyckades skapa {{resource}}", - "createError": "Det gick inte att skapa {{resource}} (statuskod: {{statusCode}})", - "deleteSuccess": "Lyckades ta bort {{resource}}", - "deleteError": "Det gick inte att ta bort {{resource}} (statuskod: {{statusCode}})", - "editSuccess": "Lyckades ändra {{resource}}", - "editError": "Det gick inte att ändra {{resource}} (statuskod: {{statusCode}})", - "importProgress": "Importerar: {{processed}}/{{total}}" + "spoolSelect": { + "title": "Välj spolar", + "description": "Välj spolar att skriva ut QR-koder för.", + "showArchived": "Tillåt arkiverade", + "noSpoolsSelected": "Du har inte valt några spolar.", + "selectAll": "Markera/avmarkera alla", + "selectedTotal_one": "{{count}} spole vald", + "selectedTotal_other": "{{count}} spolar valda" + } + }, + "scanner": { + "title": "Skanna QR-kod", + "description": "Skanna en QR-kod för att visa information om en spole.", + "error": { + "notAllowed": "Du har inte tillåtit åtkomst till kameran.", + "insecureContext": "Sidan måste använda sig av HTTPS.", + "streamApiNotSupported": "Webbläsaren stödjer inte MediaStream API.", + "notReadable": "Kameran är inte läsbar.", + "notFound": "Ingen kamera hittades.", + "unknown": "Ett okänt fel inträffade. ({{error}})" + } + }, + "spool": { + "spool": "Spolar", + "fields": { + "id": "ID", + "filament_name": "Filament", + "filament": "Filament", + "material": "Material", + "used_weight": "Använd vikt", + "remaining_weight": "Återstående vikt", + "used_length": "Använd längd", + "remaining_length": "Återstående längd", + "location": "Plats", + "lot_nr": "Batchnummer", + "first_used": "Användes först", + "last_used": "Användes senast", + "registered": "Registrerad", + "comment": "Kommentar", + "archived": "Arkiverad", + "measured_weight": "Uppmätt vikt", + "weight_to_use": "Vikt" }, - "loading": "Laddar", - "version": "Version", - "unknown": "Okänd", - "yes": "Ja", - "no": "Nej", - "tags": { - "clone": "Klona" + "fields_help": { + "used_weight": "Hur mycket filament som använts på spolen. En ny spole har värdet 0g.", + "location": "Vart spolen finns om du har flera platser att förvara spolar på.", + "lot_nr": "Tillverkarens batchnummer. Kan användas för att se till att en utskrift har jämn färg ifall flera spolar används.", + "weight_to_use": "Välj vilken typ av vikt du vill fylla i. Uppmätt vikt är endast tillgänglig om det valda filamentet har en spolvikt satt.", + "measured_weight": "Hur mycket filamentet och spolen väger tillsammans.", + "remaining_weight": "Hur mycket filament som finns kvar på spolen. För en ny spole så är detta det värdet som står på etiketten." }, - "dashboard": { - "title": "Hem" + "titles": { + "create": "Skapa spole", + "clone": "Klona spole", + "edit": "Ändra spole", + "list": "Spolar", + "show": "Visa spole", + "archive": "Arkivera spole", + "show_title": "[Spole #{{id}}] {{name}}" }, - "printing": { - "generic": { - "title": "Utskrift", - "description": "Justera inställningarna nedan för att få önskat utskriftslayout. Kom ihåg att skrivare och ditt operativsystem kan tillämpa sina egna marginaler och skalning, så du kan behöva justera inställningarna därefter. Testa på ett vanligt papper innan du skriver ut på de faktiska etiketterna.", - "helpMargin": "Marginaler bör konfigureras för att matcha ditt etikettpapper och skrivare, ändringar av dessa kommer att påverka storleken på hela rutnätet.", - "helpPrinterMargin": "Säkerhetszon bör ställas in på hur nära papperskanten din skrivare kan skriva ut, ändringar av dessa kommer inte att påverka hela rutnätet.", - "print": "Skriv ut", - "columns": "Kolumner", - "rows": "Rader", - "paperSize": "Papperstyp", - "customSize": "Anpassad", - "dimensions": "Dimensioner", - "showBorder": "Visa ram", - "previewScale": "Skala förhandsgranskning", - "skipItems": "Hoppa över objekt", - "contentSettings": "Innehållsinställningar", - "layoutSettings": "Layoutinställningar", - "horizontalSpacing": "Horisontellt avstånd", - "verticalSpacing": "Vertikalt avstånd", - "marginLeft": "Marginal - vänster", - "marginRight": "Marginal - höger", - "marginTop": "Marginal - topp", - "marginBottom": "Marginal - botten", - "printerMarginLeft": "Säkerhetszon - vänster", - "printerMarginRight": "Säkerhetszon - höger", - "printerMarginTop": "Säkerhetszon - topp", - "printerMarginBottom": "Säkerhetszon - botten", - "borders": { - "none": "Ingen", - "border": "Ram", - "grid": "Rutnät" - } - }, - "qrcode": { - "button": "Skriv ut QR-koder", - "title": "QR-kod utskrift", - "spoolWeight": "Spolvikt: {{weight}}", - "lotNr": "Batch: {{lot}}", - "bedTemp": "BT: {{temp}}", - "extruderTemp": "ET: {{temp}}", - "textSize": "Textstorlek", - "showSpoolmanIcon": "Visa Spoolman-ikon", - "showContent": "Etikett", - "showVendor": "Leverantör", - "showLotNr": "Batchnummer", - "showSpoolWeight": "Spolvikt", - "showTemperatures": "Temperaturer", - "showSpoolComment": "Spolkommentar", - "showFilamentComment": "Filamentkommentar", - "showVendorComment": "Leverantörskommentar" - }, - "spoolSelect": { - "title": "Välj spolar", - "description": "Välj spolar att skriva ut QR-koder för.", - "showArchived": "Tillåt arkiverade", - "noSpoolsSelected": "Du har inte valt några spolar.", - "selectAll": "Markera/avmarkera alla", - "selectedTotal_one": "{{count}} spole vald", - "selectedTotal_other": "{{count}} spolar valda" - } + "messages": { + "archive": "Är du säker på att du vill arkivera denna spole?" }, - "scanner": { - "title": "Skanna QR-kod", - "description": "Skanna en QR-kod för att visa information om en spole.", - "error": { - "notAllowed": "Du har inte tillåtit åtkomst till kameran.", - "insecureContext": "Sidan måste använda sig av HTTPS.", - "streamApiNotSupported": "Webbläsaren stödjer inte MediaStream API.", - "notReadable": "Kameran är inte läsbar.", - "notFound": "Ingen kamera hittades.", - "unknown": "Ett okänt fel inträffade. ({{error}})" - } + "form": { + "new_location_prompt": "Fyll i en ny plats", + "spool_updated": "Den här spolen har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" + } + }, + "filament": { + "filament": "Filament", + "fields": { + "id": "ID", + "vendor_name": "Leverantör", + "vendor": "Leverantör", + "name": "Namn", + "material": "Material", + "price": "Pris", + "density": "Densitet", + "diameter": "Diameter", + "weight": "Vikt", + "spool_weight": "Spolvikt", + "article_number": "Artikelnummer", + "registered": "Registrerad", + "comment": "Kommentar", + "settings_extruder_temp": "Extrudertemp", + "settings_bed_temp": "Bäddtemp", + "color_hex": "Färg" }, - "spool": { - "spool": "Spolar", - "fields": { - "id": "ID", - "filament_name": "Filament", - "filament": "Filament", - "material": "Material", - "used_weight": "Använd vikt", - "remaining_weight": "Återstående vikt", - "used_length": "Använd längd", - "remaining_length": "Återstående längd", - "location": "Plats", - "lot_nr": "Batchnummer", - "first_used": "Användes först", - "last_used": "Användes senast", - "registered": "Registrerad", - "comment": "Kommentar", - "archived": "Arkiverad", - "measured_weight": "Uppmätt vikt", - "weight_to_use": "Vikt" - }, - "fields_help": { - "used_weight": "Hur mycket filament som använts på spolen. En ny spole har värdet 0g.", - "location": "Vart spolen finns om du har flera platser att förvara spolar på.", - "lot_nr": "Tillverkarens batchnummer. Kan användas för att se till att en utskrift har jämn färg ifall flera spolar används.", - "weight_to_use": "Välj vilken typ av vikt du vill fylla i. Uppmätt vikt är endast tillgänglig om det valda filamentet har en spolvikt satt.", - "measured_weight": "Hur mycket filamentet och spolen väger tillsammans.", - "remaining_weight": "Hur mycket filament som finns kvar på spolen. För en ny spole så är detta det värdet som står på etiketten." - }, - "titles": { - "create": "Skapa spole", - "clone": "Klona spole", - "edit": "Ändra spole", - "list": "Spolar", - "show": "Visa spole", - "archive": "Arkivera spole", - "show_title": "[Spole #{{id}}] {{name}}" - }, - "messages": { - "archive": "Är du säker på att du vill arkivera denna spole?" - }, - "form": { - "new_location_prompt": "Fyll i en ny plats", - "spool_updated": "Den här spolen har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" - } + "fields_help": { + "name": "Filamentets namn, för att skilja detta filament från andra från samma leverantör. Bör innehålla färgen till exempel.", + "material": "T.ex. PLA, ABS, PETG, etc.", + "price": "Pris för en full spole i systemets valuta.", + "weight": "Vikten på en full spole (nettovikt). Detta ska inte inkludera vikten på spolen själv, bara filamentet. Det är vad som vanligtvis står på förpackningen.", + "spool_weight": "Vikten på en tom spole. Används för att beräkna filamentvikten från en vägning.", + "article_number": "T.ex. EAN, UPC, etc." }, - "filament": { - "filament": "Filament", - "fields": { - "id": "ID", - "vendor_name": "Leverantör", - "vendor": "Leverantör", - "name": "Namn", - "material": "Material", - "price": "Pris", - "density": "Densitet", - "diameter": "Diameter", - "weight": "Vikt", - "spool_weight": "Spolvikt", - "article_number": "Artikelnummer", - "registered": "Registrerad", - "comment": "Kommentar", - "settings_extruder_temp": "Extrudertemp", - "settings_bed_temp": "Bäddtemp", - "color_hex": "Färg" - }, - "fields_help": { - "name": "Filamentets namn, för att skilja detta filament från andra från samma leverantör. Bör innehålla färgen till exempel.", - "material": "T.ex. PLA, ABS, PETG, etc.", - "price": "Pris för en full spole i systemets valuta.", - "weight": "Vikten på en full spole (nettovikt). Detta ska inte inkludera vikten på spolen själv, bara filamentet. Det är vad som vanligtvis står på förpackningen.", - "spool_weight": "Vikten på en tom spole. Används för att beräkna filamentvikten från en vägning.", - "article_number": "T.ex. EAN, UPC, etc." - }, - "titles": { - "create": "Skapa filament", - "clone": "Klona filament", - "edit": "Ändra filament", - "list": "Filament", - "show": "Visa filament", - "show_title": "[Filament #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "Det här filamentet har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" - } + "titles": { + "create": "Skapa filament", + "clone": "Klona filament", + "edit": "Ändra filament", + "list": "Filament", + "show": "Visa filament", + "show_title": "[Filament #{{id}}] {{name}}" }, - "vendor": { - "vendor": "Leverantörer", - "fields": { - "id": "Id", - "name": "Namn", - "registered": "Registrerad", - "comment": "Kommentar" - }, - "titles": { - "create": "Skapa leverantör", - "clone": "Klona leverantör", - "edit": "Ändra leverantör", - "list": "Leverantörer", - "show": "Visa leverantör", - "show_title": "[Leverantör #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "Den här leverantören har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" - } + "form": { + "filament_updated": "Det här filamentet har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" + } + }, + "vendor": { + "vendor": "Leverantörer", + "fields": { + "id": "Id", + "name": "Namn", + "registered": "Registrerad", + "comment": "Kommentar" }, - "table": { - "actions": "Åtgärder" + "titles": { + "create": "Skapa leverantör", + "clone": "Klona leverantör", + "edit": "Ändra leverantör", + "list": "Leverantörer", + "show": "Visa leverantör", + "show_title": "[Leverantör #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "Filament | Spoolman", - "show": "#{{id}} Visa filament | Spoolman", - "edit": "#{{id}} Redigera filament | Spoolman", - "create": "Skapa filament | Spoolman", - "clone": "#{{id}} Klona filament | Spoolman" - }, - "spool": { - "list": "Spolar | Spoolman", - "show": "#{{id}} Visa spole | Spoolman", - "edit": "#{{id}} Redigera spole | Spoolman", - "create": "Skapa spole | Spoolman", - "clone": "#{{id}} Klona spole | Spoolman" - }, - "vendor": { - "list": "Leverantörer | Spoolman", - "show": "#{{id}} Visa leverantör | Spoolman", - "edit": "#{{id}} Redigera leverantör | Spoolman", - "create": "Skapa leverantör | Spoolman", - "clone": "#{{id}} Klona leverantör | Spoolman" - } + "form": { + "vendor_updated": "Den här leverantören har uppdaterats av något eller någon sedan du öppnade den här sidan. Om du sparar så skriver du över ändringarna!" + } + }, + "table": { + "actions": "Åtgärder" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Filament | Spoolman", + "show": "#{{id}} Visa filament | Spoolman", + "edit": "#{{id}} Redigera filament | Spoolman", + "create": "Skapa filament | Spoolman", + "clone": "#{{id}} Klona filament | Spoolman" + }, + "spool": { + "list": "Spolar | Spoolman", + "show": "#{{id}} Visa spole | Spoolman", + "edit": "#{{id}} Redigera spole | Spoolman", + "create": "Skapa spole | Spoolman", + "clone": "#{{id}} Klona spole | Spoolman" + }, + "vendor": { + "list": "Leverantörer | Spoolman", + "show": "#{{id}} Visa leverantör | Spoolman", + "edit": "#{{id}} Redigera leverantör | Spoolman", + "create": "Skapa leverantör | Spoolman", + "clone": "#{{id}} Klona leverantör | Spoolman" } + } } diff --git a/client/public/locales/uk/common.json b/client/public/locales/uk/common.json index 58d114449..59f2c1659 100644 --- a/client/public/locales/uk/common.json +++ b/client/public/locales/uk/common.json @@ -1,264 +1,265 @@ { - "buttons": { - "create": "Створити", - "save": "Зберегти", - "cancel": "Скасувати", - "edit": "Редагувати", - "showArchived": "Показати Архівовані", - "archive": "Архівувати", - "hideColumns": "Приховати Стовпці", - "confirm": "Ви впевнені?", - "delete": "Видалити", - "import": "Імпортувати", - "refresh": "Оновити", - "hideArchived": "Приховати Архівовані", - "clearFilters": "Очистити Фільтри", - "clear": "Очистити", - "show": "Показати", - "filter": "Фільтр", - "undo": "Скасувати", - "logout": "Вийти", - "notAccessTitle": "У Вас бракує прав для доступу", - "clone": "Клонувати", - "unArchive": "Розархівувати" + "buttons": { + "create": "Створити", + "save": "Зберегти", + "cancel": "Скасувати", + "edit": "Редагувати", + "showArchived": "Показати Архівовані", + "archive": "Архівувати", + "hideColumns": "Приховати Стовпці", + "confirm": "Ви впевнені?", + "delete": "Видалити", + "import": "Імпортувати", + "refresh": "Оновити", + "hideArchived": "Приховати Архівовані", + "clearFilters": "Очистити Фільтри", + "clear": "Очистити", + "show": "Показати", + "filter": "Фільтр", + "undo": "Скасувати", + "logout": "Вийти", + "notAccessTitle": "У Вас бракує прав для доступу", + "clone": "Клонувати", + "unArchive": "Розархівувати", + "share": "частка" + }, + "spool": { + "fields": { + "material": "Матеріал", + "weight_to_use": "Вага", + "filament_name": "Філамент", + "filament": "Філамент", + "used_length": "Використана Довжина", + "used_weight": "Використана Вага", + "id": "ІД", + "comment": "Коментар", + "measured_weight": "Виміряна Вага", + "last_used": "Востаннє Використано", + "lot_nr": "Номер партії", + "location": "Розташування", + "archived": "Архівовано", + "remaining_length": "Залишок Довжини", + "registered": "Додано", + "first_used": "Вперше Використано", + "remaining_weight": "Залишок Ваги" }, - "spool": { - "fields": { - "material": "Матеріал", - "weight_to_use": "Вага", - "filament_name": "Філамент", - "filament": "Філамент", - "used_length": "Використана Довжина", - "used_weight": "Використана Вага", - "id": "ІД", - "comment": "Коментар", - "measured_weight": "Виміряна Вага", - "last_used": "Востаннє Використано", - "lot_nr": "Номер партії", - "location": "Розташування", - "archived": "Архівовано", - "remaining_length": "Залишок Довжини", - "registered": "Додано", - "first_used": "Вперше Використано", - "remaining_weight": "Залишок Ваги" - }, - "spool": "Котушки", - "titles": { - "edit": "Редагувати Котушку", - "show_title": "[Котушка #{{id}}] {{name}}", - "list": "Котушки", - "archive": "Архівувати Котушку", - "show": "Відобразити Котушку", - "create": "Створити Котушку", - "clone": "Клонувати Котушку" - }, - "form": { - "spool_updated": "Ця котушка була оновлена кимось/чимось після відкриття цієї сторінки. Збереження перезапише ці зміни!", - "new_location_prompt": "Введіть нове розташування" - }, - "fields_help": { - "used_weight": "Скільки філаменту було використано з котушки. Для нової котушки слід використовувати 0g.", - "weight_to_use": "Виберіть значення ваги, яке ви хочете ввести. Виміряна вага доступна, лише якщо для вибраного філаменту встановлено вагу котушки.", - "measured_weight": "Яка вага філаменту та котушки.", - "lot_nr": "Номер партії виробника. Може використовуватися для гарантування рівномірного кольору друку при використанні декількох котушок.", - "remaining_weight": "Скільки філаменту залишилося на котушці. Для нової котушки це має відповідати вазі філаменту на котушці.", - "location": "Де розташована котушка, якщо у вас є кілька місць для зберігання котушок." - }, - "messages": { - "archive": "Ви впевнені що хочете архівувати цю котушку?" - } + "spool": "Котушки", + "titles": { + "edit": "Редагувати Котушку", + "show_title": "[Котушка #{{id}}] {{name}}", + "list": "Котушки", + "archive": "Архівувати Котушку", + "show": "Відобразити Котушку", + "create": "Створити Котушку", + "clone": "Клонувати Котушку" }, - "actions": { - "create": "Створити", - "show": "Показати", - "edit": "Редагувати", - "clone": "Клонувати", - "list": "Список" + "form": { + "spool_updated": "Ця котушка була оновлена кимось/чимось після відкриття цієї сторінки. Збереження перезапише ці зміни!", + "new_location_prompt": "Введіть нове розташування" }, - "printing": { - "generic": { - "rows": "Рядки", - "marginRight": "Правий Відступ", - "marginTop": "Верхній Відступ", - "marginBottom": "Нижній Відступ", - "marginLeft": "Лівий Відступ", - "dimensions": "Розміри", - "verticalSpacing": "Вертикальний відступ", - "customSize": "Нестандартний", - "title": "Друк", - "contentSettings": "Налаштування вмісту", - "helpPrinterMargin": "Безпечну зону слід встановити якомога ближче до краю паперу, наскільки принтер може друкувати, зміна не вплине на всю сітку.", - "previewScale": "Попередній перегляд масштабу", - "helpMargin": "Поля повинні бути встановлені відповідно до етикеткового паперу та принтера, їхня зміна вплине на розмір усієї сітки.", - "skipItems": "Пропустити елементи", - "layoutSettings": "Налаштування макета", - "columns": "Колонки", - "description": "Використовуйте наведені нижче параметри, щоб отримати бажаний макет друку. Майте на увазі, що принтери та ваша операційна система можуть використовувати власні настроювані поля та масштабування, тому вам може знадобитися декілька спроб щоб отримати правильний результат. Спробуйте це на аркуші звичайного паперу, перш ніж друкувати на справжніх етикетках.", - "horizontalSpacing": "Горизонтальний відступ", - "showBorder": "Відобразити поля", - "print": "Друк", - "borders": { - "grid": "Сітка", - "none": "Без полів", - "border": "Поле" - }, - "paperSize": "Розмір Паперу", - "printerMarginBottom": "Безпечна зона знизу", - "printerMarginTop": "Безпечна зона зверху", - "printerMarginRight": "Безпечна зона справа", - "printerMarginLeft": "Безпечна зона зліва" - }, - "spoolSelect": { - "selectedTotal_one": "{{count}} обрана котушка", - "selectedTotal_few": "{{count}} обрані котушки", - "selectedTotal_many": "{{count}} обраних котушок", - "showArchived": "Показати Архівні", - "description": "Виберіть котушки для друку QR-кодів.", - "title": "Виберіть котушки", - "selectAll": "Вибрати/Відмінити Всі", - "noSpoolsSelected": "Ви не вибрали жодної котушки." - }, - "qrcode": { - "spoolWeight": "Вага Котушки: {{weight}}", - "showTemperatures": "Температури", - "showVendor": "Виробник", - "showSpoolWeight": "Вага Котушки", - "extruderTemp": "ТЕ: {{temp}}", - "showContent": "Друк етикеток", - "showVendorComment": "Примітка про виробника", - "showSpoolComment": "Примітка про котушку", - "textSize": "Розмір тексту", - "title": "Друк QR-кодів", - "showSpoolmanIcon": "Відобразити іконку Spoolman", - "showLotNr": "Номер партії", - "bedTemp": "ТС: {{temp}}", - "lotNr": "Партія номер: {{lot}}", - "showFilamentComment": "Примітка про філамент", - "button": "Друкувати QR-коди" - } + "fields_help": { + "used_weight": "Скільки філаменту було використано з котушки. Для нової котушки слід використовувати 0g.", + "weight_to_use": "Виберіть значення ваги, яке ви хочете ввести. Виміряна вага доступна, лише якщо для вибраного філаменту встановлено вагу котушки.", + "measured_weight": "Яка вага філаменту та котушки.", + "lot_nr": "Номер партії виробника. Може використовуватися для гарантування рівномірного кольору друку при використанні декількох котушок.", + "remaining_weight": "Скільки філаменту залишилося на котушці. Для нової котушки це має відповідати вазі філаменту на котушці.", + "location": "Де розташована котушка, якщо у вас є кілька місць для зберігання котушок." }, - "notifications": { - "deleteSuccess": "Успішно видалено {{resource}}", - "error": "Помилка (код: {{statusCode}})", - "success": "Успішно", - "createSuccess": "Успішно створено {{resource}}", - "editError": "Помилка при редагуванні {{resource}} (код помилки: {{statusCode}})", - "undoable": "У Вас є {{seconds}} для скасування.", - "importProgress": "Імпортування: {{processed}}/{{total}}", - "createError": "Трапилась помилка при створенні {{resource}} (код помилки: {{statusCode}})", - "editSuccess": "Успішно змінено {{resource}}", - "deleteError": "Помилка при видаленні {{resource}} (код помилки: {{statusCode}})" + "messages": { + "archive": "Ви впевнені що хочете архівувати цю котушку?" + } + }, + "actions": { + "create": "Створити", + "show": "Показати", + "edit": "Редагувати", + "clone": "Клонувати", + "list": "Список" + }, + "printing": { + "generic": { + "rows": "Рядки", + "marginRight": "Правий Відступ", + "marginTop": "Верхній Відступ", + "marginBottom": "Нижній Відступ", + "marginLeft": "Лівий Відступ", + "dimensions": "Розміри", + "verticalSpacing": "Вертикальний відступ", + "customSize": "Нестандартний", + "title": "Друк", + "contentSettings": "Налаштування вмісту", + "helpPrinterMargin": "Безпечну зону слід встановити якомога ближче до краю паперу, наскільки принтер може друкувати, зміна не вплине на всю сітку.", + "previewScale": "Попередній перегляд масштабу", + "helpMargin": "Поля повинні бути встановлені відповідно до етикеткового паперу та принтера, їхня зміна вплине на розмір усієї сітки.", + "skipItems": "Пропустити елементи", + "layoutSettings": "Налаштування макета", + "columns": "Колонки", + "description": "Використовуйте наведені нижче параметри, щоб отримати бажаний макет друку. Майте на увазі, що принтери та ваша операційна система можуть використовувати власні настроювані поля та масштабування, тому вам може знадобитися декілька спроб щоб отримати правильний результат. Спробуйте це на аркуші звичайного паперу, перш ніж друкувати на справжніх етикетках.", + "horizontalSpacing": "Горизонтальний відступ", + "showBorder": "Відобразити поля", + "print": "Друк", + "borders": { + "grid": "Сітка", + "none": "Без полів", + "border": "Поле" + }, + "paperSize": "Розмір Паперу", + "printerMarginBottom": "Безпечна зона знизу", + "printerMarginTop": "Безпечна зона зверху", + "printerMarginRight": "Безпечна зона справа", + "printerMarginLeft": "Безпечна зона зліва" }, - "no": "Ні", - "yes": "Так", - "version": "Версія", - "scanner": { - "error": { - "unknown": "Сталась невідома помилка. ({{error}})", - "notFound": "Не знайдено жодної камери.", - "insecureContext": "Сторінка не відображається через HTTPS.", - "notReadable": "Камера недоступна.", - "notAllowed": "У вас недостатньо прав для доступу до камери.", - "streamApiNotSupported": "Браузер не підтримує MediaStream API." - }, - "title": "Сканер QR-кодів", - "description": "Відскануй QR-код Spoolman щоб переглянути подробиці про котушку." + "spoolSelect": { + "selectedTotal_one": "{{count}} обрана котушка", + "selectedTotal_few": "{{count}} обрані котушки", + "selectedTotal_many": "{{count}} обраних котушок", + "showArchived": "Показати Архівні", + "description": "Виберіть котушки для друку QR-кодів.", + "title": "Виберіть котушки", + "selectAll": "Вибрати/Відмінити Всі", + "noSpoolsSelected": "Ви не вибрали жодної котушки." }, - "loading": "Завантаження", - "filament": { - "fields": { - "material": "Матеріал", - "vendor_name": "Виробник", - "settings_extruder_temp": "Температура Екструдера", - "diameter": "Діаметр", - "weight": "Вага", - "spool_weight": "Вага Котушки", - "name": "Назва", - "price": "Ціна", - "settings_bed_temp": "Температура Столу", - "vendor": "Виробник", - "density": "Щільність", - "id": "ІД", - "color_hex": "Колір", - "article_number": "Артикул", - "comment": "Коментар", - "registered": "Додано" - }, - "titles": { - "show_title": "[Філамент #{{id}}] {{name}}", - "show": "Показати Філамент", - "edit": "Редагувати Філамент", - "list": "Філаменти", - "clone": "Клонувати Філамент", - "create": "Створити Філамент" - }, - "fields_help": { - "price": "Ціна всієї котушки у валюті, встановленій в системі.", - "material": "Наприклад PLA, ABS, PETG, тощо.", - "name": "Назва філаменту, щоб відрізнити цей філамент поміж інших від того самого виробника. Вона повинна містити, наприклад, колір.", - "article_number": "Напр. EAN, UPC тощо.", - "spool_weight": "Вага порожньої котушки. Використовується для визначення виміряної ваги котушки.", - "weight": "Вага повної котушки філаменту (нетто). Ця вага не повинна включати вагу самої котушки, а тільки філаменту. Зазвичай це вказується на упаковці." - }, - "filament": "Філаменти", - "form": { - "filament_updated": "Цей філамент хтось/щось оновив після того, як ви відкрили цю сторінку. Збереження перезапише ці зміни!" - } + "qrcode": { + "spoolWeight": "Вага Котушки: {{weight}}", + "showTemperatures": "Температури", + "showVendor": "Виробник", + "showSpoolWeight": "Вага Котушки", + "extruderTemp": "ТЕ: {{temp}}", + "showContent": "Друк етикеток", + "showVendorComment": "Примітка про виробника", + "showSpoolComment": "Примітка про котушку", + "textSize": "Розмір тексту", + "title": "Друк QR-кодів", + "showSpoolmanIcon": "Відобразити іконку Spoolman", + "showLotNr": "Номер партії", + "bedTemp": "ТС: {{temp}}", + "lotNr": "Партія номер: {{lot}}", + "showFilamentComment": "Примітка про філамент", + "button": "Друкувати QR-коди" + } + }, + "notifications": { + "deleteSuccess": "Успішно видалено {{resource}}", + "error": "Помилка (код: {{statusCode}})", + "success": "Успішно", + "createSuccess": "Успішно створено {{resource}}", + "editError": "Помилка при редагуванні {{resource}} (код помилки: {{statusCode}})", + "undoable": "У Вас є {{seconds}} для скасування.", + "importProgress": "Імпортування: {{processed}}/{{total}}", + "createError": "Трапилась помилка при створенні {{resource}} (код помилки: {{statusCode}})", + "editSuccess": "Успішно змінено {{resource}}", + "deleteError": "Помилка при видаленні {{resource}} (код помилки: {{statusCode}})" + }, + "no": "Ні", + "yes": "Так", + "version": "Версія", + "scanner": { + "error": { + "unknown": "Сталась невідома помилка. ({{error}})", + "notFound": "Не знайдено жодної камери.", + "insecureContext": "Сторінка не відображається через HTTPS.", + "notReadable": "Камера недоступна.", + "notAllowed": "У вас недостатньо прав для доступу до камери.", + "streamApiNotSupported": "Браузер не підтримує MediaStream API." }, - "unknown": "Невідомий", - "warnWhenUnsavedChanges": "Ви впевнені що хочете вийти? У Вас є незбережені зміни.", - "dashboard": { - "title": "Панель" + "title": "Сканер QR-кодів", + "description": "Відскануй QR-код Spoolman щоб переглянути подробиці про котушку." + }, + "loading": "Завантаження", + "filament": { + "fields": { + "material": "Матеріал", + "vendor_name": "Виробник", + "settings_extruder_temp": "Температура Екструдера", + "diameter": "Діаметр", + "weight": "Вага", + "spool_weight": "Вага Котушки", + "name": "Назва", + "price": "Ціна", + "settings_bed_temp": "Температура Столу", + "vendor": "Виробник", + "density": "Щільність", + "id": "ІД", + "color_hex": "Колір", + "article_number": "Артикул", + "comment": "Коментар", + "registered": "Додано" }, - "tags": { - "clone": "Клонувати" + "titles": { + "show_title": "[Філамент #{{id}}] {{name}}", + "show": "Показати Філамент", + "edit": "Редагувати Філамент", + "list": "Філаменти", + "clone": "Клонувати Філамент", + "create": "Створити Філамент" }, - "vendor": { - "titles": { - "show_title": "[Виробник #{{id}}] {{name}}", - "list": "Виробники", - "show": "Показати Виробника", - "edit": "Редагувати Виробника", - "clone": "Клонувати Виробника", - "create": "Створити Виробника" - }, - "fields": { - "comment": "Коментар", - "name": "Назва", - "registered": "Додано", - "id": "ІД" - }, - "vendor": "Виробники", - "form": { - "vendor_updated": "Цей виробник був оновлений кимось/чимось після відкриття цієї сторінки. Збереження перезапише ці зміни!" - } + "fields_help": { + "price": "Ціна всієї котушки у валюті, встановленій в системі.", + "material": "Наприклад PLA, ABS, PETG, тощо.", + "name": "Назва філаменту, щоб відрізнити цей філамент поміж інших від того самого виробника. Вона повинна містити, наприклад, колір.", + "article_number": "Напр. EAN, UPC тощо.", + "spool_weight": "Вага порожньої котушки. Використовується для визначення виміряної ваги котушки.", + "weight": "Вага повної котушки філаменту (нетто). Ця вага не повинна включати вагу самої котушки, а тільки філаменту. Зазвичай це вказується на упаковці." + }, + "filament": "Філаменти", + "form": { + "filament_updated": "Цей філамент хтось/щось оновив після того, як ви відкрили цю сторінку. Збереження перезапише ці зміни!" + } + }, + "unknown": "Невідомий", + "warnWhenUnsavedChanges": "Ви впевнені що хочете вийти? У Вас є незбережені зміни.", + "dashboard": { + "title": "Панель" + }, + "tags": { + "clone": "Клонувати" + }, + "vendor": { + "titles": { + "show_title": "[Виробник #{{id}}] {{name}}", + "list": "Виробники", + "show": "Показати Виробника", + "edit": "Редагувати Виробника", + "clone": "Клонувати Виробника", + "create": "Створити Виробника" }, - "documentTitle": { - "default": "Spoolman", - "spool": { - "list": "Котушки | Spoolman", - "edit": "#{{id}} Редагувати Котушку | Spoolman", - "create": "Створити Котушку | Spoolman", - "show": "#{{id}} Показати Котушку | Spoolman", - "clone": "#{{id}} Клонувати Котушку | Spoolman" - }, - "filament": { - "list": "Філаменти | Spoolman", - "show": "#{{id}} Показати Філамент | Spoolman", - "clone": "#{{id}} Клонувати Філамент | Spoolman", - "create": "Створити Філамент | Spoolman", - "edit": "#{{id}} Редагувати Філамент | Spoolman" - }, - "suffix": " | Spoolman", - "vendor": { - "list": "Виробники | Spoolman", - "create": "Створити Виробника | Spoolman", - "clone": "#{{id}} Клонувати Виробника | Spoolman", - "edit": "#{{id}} Редагувати Виробника | Spoolman", - "show": "#{{id}} Показати Виробника | Spoolman" - } + "fields": { + "comment": "Коментар", + "name": "Назва", + "registered": "Додано", + "id": "ІД" }, - "table": { - "actions": "Дії" + "vendor": "Виробники", + "form": { + "vendor_updated": "Цей виробник був оновлений кимось/чимось після відкриття цієї сторінки. Збереження перезапише ці зміни!" + } + }, + "documentTitle": { + "default": "Spoolman", + "spool": { + "list": "Котушки | Spoolman", + "edit": "#{{id}} Редагувати Котушку | Spoolman", + "create": "Створити Котушку | Spoolman", + "show": "#{{id}} Показати Котушку | Spoolman", + "clone": "#{{id}} Клонувати Котушку | Spoolman" + }, + "filament": { + "list": "Філаменти | Spoolman", + "show": "#{{id}} Показати Філамент | Spoolman", + "clone": "#{{id}} Клонувати Філамент | Spoolman", + "create": "Створити Філамент | Spoolman", + "edit": "#{{id}} Редагувати Філамент | Spoolman" + }, + "suffix": " | Spoolman", + "vendor": { + "list": "Виробники | Spoolman", + "create": "Створити Виробника | Spoolman", + "clone": "#{{id}} Клонувати Виробника | Spoolman", + "edit": "#{{id}} Редагувати Виробника | Spoolman", + "show": "#{{id}} Показати Виробника | Spoolman" } + }, + "table": { + "actions": "Дії" + } } diff --git a/client/public/locales/zh/common.json b/client/public/locales/zh/common.json index f87c2f1e1..ea0fd7b5f 100644 --- a/client/public/locales/zh/common.json +++ b/client/public/locales/zh/common.json @@ -1,262 +1,263 @@ { - "actions": { - "list": "列表", - "create": "创建", - "edit": "编辑", - "show": "查看", - "clone": "克隆" + "actions": { + "list": "列表", + "create": "创建", + "edit": "编辑", + "show": "查看", + "clone": "克隆" + }, + "buttons": { + "create": "创建", + "save": "保存", + "logout": "退出", + "delete": "删除", + "edit": "编辑", + "cancel": "取消", + "confirm": "您确定吗?", + "filter": "筛选", + "clear": "清除", + "refresh": "刷新", + "show": "显示", + "undo": "撤销", + "import": "导入", + "clone": "克隆", + "archive": "存档", + "unArchive": "取消存档", + "hideArchived": "隐藏存档", + "showArchived": "显示存档", + "notAccessTitle": "您没有访问权限", + "hideColumns": "隐藏列", + "clearFilters": "清除筛选器", + "share": "分享" + }, + "warnWhenUnsavedChanges": "您确定要离开吗?您有未保存的更改。", + "notifications": { + "success": "操作成功", + "error": "出现错误 (状态码:{{statusCode}})", + "undoable": "您有 {{seconds}} 秒可以撤销。", + "createSuccess": "成功创建 {{resource}}", + "createError": "创建 {{resource}} 时出现错误 (状态码:{{statusCode}})", + "deleteSuccess": "成功删除 {{resource}}", + "deleteError": "删除 {{resource}} 时出现错误 (状态码:{{statusCode}})", + "editSuccess": "成功修改 {{resource}}", + "editError": "修改 {{resource}} 时出现错误 (状态码:{{statusCode}})", + "importProgress": "导入中: {{processed}}/{{total}}" + }, + "loading": "加载中", + "version": "版本", + "unknown": "未知", + "yes": "是", + "no": "否", + "tags": { + "clone": "克隆" + }, + "dashboard": { + "title": "控制面板" + }, + "printing": { + "generic": { + "title": "打印中", + "description": "调整以下设置以获得所需的打印布局。请记住,打印机和您的操作系统可能会应用自己的边距和缩放,因此您可能需要多次尝试后才能正确打印。在实际标签上打印之前,请在一张普通纸上进行测试。", + "helpMargin": "页边距应设置为与您的标签纸和打印机相匹配,更改这些将影响整个网格的大小。", + "helpPrinterMargin": "安全区应设置为打印机可以打印的离纸张边缘距离,更改这些不会影响整个网格。", + "print": "打印", + "columns": "行", + "rows": "列", + "paperSize": "纸张尺寸", + "customSize": "自定义", + "dimensions": "尺寸标注", + "showBorder": "显示边框", + "previewScale": "预览比例", + "skipItems": "跳过项目", + "contentSettings": "内容设置", + "layoutSettings": "布局设置", + "horizontalSpacing": "水平间距", + "verticalSpacing": "垂直间距", + "marginLeft": "左边界", + "marginRight": "右边界", + "marginTop": "上边界", + "marginBottom": "下边界", + "printerMarginLeft": "安全区左侧", + "printerMarginRight": "安全区右侧", + "printerMarginTop": "安全区顶部", + "printerMarginBottom": "安全区底部", + "borders": { + "none": "无", + "border": "外边框", + "grid": "格子" + } }, - "buttons": { - "create": "创建", - "save": "保存", - "logout": "退出", - "delete": "删除", - "edit": "编辑", - "cancel": "取消", - "confirm": "您确定吗?", - "filter": "筛选", - "clear": "清除", - "refresh": "刷新", - "show": "显示", - "undo": "撤销", - "import": "导入", - "clone": "克隆", - "archive": "存档", - "unArchive": "取消存档", - "hideArchived": "隐藏存档", - "showArchived": "显示存档", - "notAccessTitle": "您没有访问权限", - "hideColumns": "隐藏列", - "clearFilters": "清除筛选器" + "qrcode": { + "button": "打印二维码", + "title": "打印二维码", + "spoolWeight": "料盘重量:{{weight}}", + "lotNr": "批号:{{lot}}", + "bedTemp": "热床温度:{{temp}}", + "extruderTemp": "挤出温度:{{temp}}", + "textSize": "内容文本大小", + "showSpoolmanIcon": "显示Spoolman图标", + "showVendor": "供应商", + "showContent": "打印标签", + "showLotNr": "批号", + "showSpoolWeight": "料盘重量", + "showTemperatures": "温度", + "showSpoolComment": "料盘备注", + "showFilamentComment": "耗材备注", + "showVendorComment": "供应商备注" }, - "warnWhenUnsavedChanges": "您确定要离开吗?您有未保存的更改。", - "notifications": { - "success": "操作成功", - "error": "出现错误 (状态码:{{statusCode}})", - "undoable": "您有 {{seconds}} 秒可以撤销。", - "createSuccess": "成功创建 {{resource}}", - "createError": "创建 {{resource}} 时出现错误 (状态码:{{statusCode}})", - "deleteSuccess": "成功删除 {{resource}}", - "deleteError": "删除 {{resource}} 时出现错误 (状态码:{{statusCode}})", - "editSuccess": "成功修改 {{resource}}", - "editError": "修改 {{resource}} 时出现错误 (状态码:{{statusCode}})", - "importProgress": "导入中: {{processed}}/{{total}}" + "spoolSelect": { + "title": "选择料盘", + "description": "选择要打印二维码的料盘。", + "showArchived": "显示存档", + "noSpoolsSelected": "您尚未选择任何料盘。", + "selectAll": "选择/取消选择全部", + "selectedTotal_other": "已选择{{count}}个料盘" + } + }, + "scanner": { + "title": "扫码二维码", + "description": "扫描Spoolman二维码,查看有关料盘的详细信息。", + "error": { + "notAllowed": "您不被允许访问相机。", + "insecureContext": "该页面不是通过HTTPS传输。", + "streamApiNotSupported": "浏览器不支持MediaStream API。", + "notReadable": "相机不可读。", + "notFound": "没有找到相机。", + "unknown": "发生未知错误。({{error}})" + } + }, + "spool": { + "spool": "料盘", + "fields": { + "id": "编号", + "filament_name": "耗材", + "filament": "耗材", + "material": "材料", + "weight_to_use": "重量", + "used_weight": "已用重量", + "remaining_weight": "剩余重量", + "measured_weight": "净重", + "used_length": "已用长度", + "remaining_length": "剩余长度", + "location": "位置", + "lot_nr": "批号", + "first_used": "首次使用", + "last_used": "最后使用", + "registered": "登记时间", + "comment": "备注", + "archived": "存档" }, - "loading": "加载中", - "version": "版本", - "unknown": "未知", - "yes": "是", - "no": "否", - "tags": { - "clone": "克隆" + "fields_help": { + "weight_to_use": "请选择要输入的重量值。净重只在所选的耗材设置了料盘重量时可用。", + "used_weight": "料盘已使用的耗材重量。一个新的料盘应该是0克。", + "remaining_weight": "料盘上剩余多少耗材。对于新的料盘,这个值应该与料盘重量相匹配。", + "measured_weight": "耗材和料盘的重量分别是多少。", + "location": "如果您有多个存放料盘的地方,请填写料盘所在的位置。", + "lot_nr": "制造商的批号。如果使用多个料盘可以使用批号进行控制,以确保打印颜色一致。" }, - "dashboard": { - "title": "控制面板" + "titles": { + "create": "创建料盘", + "clone": "克隆料盘", + "edit": "编辑料盘", + "list": "料盘列表", + "show": "查看料盘", + "archive": "料盘存档", + "show_title": "[料盘 #{{id}}] {{name}}" }, - "printing": { - "generic": { - "title": "打印中", - "description": "调整以下设置以获得所需的打印布局。请记住,打印机和您的操作系统可能会应用自己的边距和缩放,因此您可能需要多次尝试后才能正确打印。在实际标签上打印之前,请在一张普通纸上进行测试。", - "helpMargin": "页边距应设置为与您的标签纸和打印机相匹配,更改这些将影响整个网格的大小。", - "helpPrinterMargin": "安全区应设置为打印机可以打印的离纸张边缘距离,更改这些不会影响整个网格。", - "print": "打印", - "columns": "行", - "rows": "列", - "paperSize": "纸张尺寸", - "customSize": "自定义", - "dimensions": "尺寸标注", - "showBorder": "显示边框", - "previewScale": "预览比例", - "skipItems": "跳过项目", - "contentSettings": "内容设置", - "layoutSettings": "布局设置", - "horizontalSpacing": "水平间距", - "verticalSpacing": "垂直间距", - "marginLeft": "左边界", - "marginRight": "右边界", - "marginTop": "上边界", - "marginBottom": "下边界", - "printerMarginLeft": "安全区左侧", - "printerMarginRight": "安全区右侧", - "printerMarginTop": "安全区顶部", - "printerMarginBottom": "安全区底部", - "borders": { - "none": "无", - "border": "外边框", - "grid": "格子" - } - }, - "qrcode": { - "button": "打印二维码", - "title": "打印二维码", - "spoolWeight": "料盘重量:{{weight}}", - "lotNr": "批号:{{lot}}", - "bedTemp": "热床温度:{{temp}}", - "extruderTemp": "挤出温度:{{temp}}", - "textSize": "内容文本大小", - "showSpoolmanIcon": "显示Spoolman图标", - "showVendor": "供应商", - "showContent": "打印标签", - "showLotNr": "批号", - "showSpoolWeight": "料盘重量", - "showTemperatures": "温度", - "showSpoolComment": "料盘备注", - "showFilamentComment": "耗材备注", - "showVendorComment": "供应商备注" - }, - "spoolSelect": { - "title": "选择料盘", - "description": "选择要打印二维码的料盘。", - "showArchived": "显示存档", - "noSpoolsSelected": "您尚未选择任何料盘。", - "selectAll": "选择/取消选择全部", - "selectedTotal_other": "已选择{{count}}个料盘" - } + "messages": { + "archive": "您确定要存档此料盘吗?" }, - "scanner": { - "title": "扫码二维码", - "description": "扫描Spoolman二维码,查看有关料盘的详细信息。", - "error": { - "notAllowed": "您不被允许访问相机。", - "insecureContext": "该页面不是通过HTTPS传输。", - "streamApiNotSupported": "浏览器不支持MediaStream API。", - "notReadable": "相机不可读。", - "notFound": "没有找到相机。", - "unknown": "发生未知错误。({{error}})" - } + "form": { + "new_location_prompt": "输入一个新位置", + "spool_updated": "自您打开此页面以来,此料盘已被其他人/事物更新。保存将覆盖这些更改!" + } + }, + "filament": { + "filament": "耗材", + "fields": { + "id": "编号", + "vendor_name": "供应商", + "vendor": "供应商", + "name": "名称", + "material": "材料", + "price": "价格", + "density": "密度", + "diameter": "直径", + "weight": "重量", + "spool_weight": "料盘重量", + "article_number": "产品编号", + "registered": "登记时间", + "comment": "备注", + "settings_extruder_temp": "挤出头温度", + "settings_bed_temp": "热床温度", + "color_hex": "颜色" }, - "spool": { - "spool": "料盘", - "fields": { - "id": "编号", - "filament_name": "耗材", - "filament": "耗材", - "material": "材料", - "weight_to_use": "重量", - "used_weight": "已用重量", - "remaining_weight": "剩余重量", - "measured_weight": "净重", - "used_length": "已用长度", - "remaining_length": "剩余长度", - "location": "位置", - "lot_nr": "批号", - "first_used": "首次使用", - "last_used": "最后使用", - "registered": "登记时间", - "comment": "备注", - "archived": "存档" - }, - "fields_help": { - "weight_to_use": "请选择要输入的重量值。净重只在所选的耗材设置了料盘重量时可用。", - "used_weight": "料盘已使用的耗材重量。一个新的料盘应该是0克。", - "remaining_weight": "料盘上剩余多少耗材。对于新的料盘,这个值应该与料盘重量相匹配。", - "measured_weight": "耗材和料盘的重量分别是多少。", - "location": "如果您有多个存放料盘的地方,请填写料盘所在的位置。", - "lot_nr": "制造商的批号。如果使用多个料盘可以使用批号进行控制,以确保打印颜色一致。" - }, - "titles": { - "create": "创建料盘", - "clone": "克隆料盘", - "edit": "编辑料盘", - "list": "料盘列表", - "show": "查看料盘", - "archive": "料盘存档", - "show_title": "[料盘 #{{id}}] {{name}}" - }, - "messages": { - "archive": "您确定要存档此料盘吗?" - }, - "form": { - "new_location_prompt": "输入一个新位置", - "spool_updated": "自您打开此页面以来,此料盘已被其他人/事物更新。保存将覆盖这些更改!" - } + "fields_help": { + "name": "耗材名称,用于区分来自同一供应商的不同耗材类型。例如包含颜色信息。", + "material": "例如PLA、ABS、PETG等。", + "price": "一整卷耗材的价格。", + "weight": "一整卷耗材的重量(净重)。不应包括料盘本身的重量,仅计算耗材的重量。通常在包装上注明。", + "spool_weight": "空料盘的重量。使用它来计算耗材的重量。", + "article_number": "例如EAN、UPC等。" }, - "filament": { - "filament": "耗材", - "fields": { - "id": "编号", - "vendor_name": "供应商", - "vendor": "供应商", - "name": "名称", - "material": "材料", - "price": "价格", - "density": "密度", - "diameter": "直径", - "weight": "重量", - "spool_weight": "料盘重量", - "article_number": "产品编号", - "registered": "登记时间", - "comment": "备注", - "settings_extruder_temp": "挤出头温度", - "settings_bed_temp": "热床温度", - "color_hex": "颜色" - }, - "fields_help": { - "name": "耗材名称,用于区分来自同一供应商的不同耗材类型。例如包含颜色信息。", - "material": "例如PLA、ABS、PETG等。", - "price": "一整卷耗材的价格。", - "weight": "一整卷耗材的重量(净重)。不应包括料盘本身的重量,仅计算耗材的重量。通常在包装上注明。", - "spool_weight": "空料盘的重量。使用它来计算耗材的重量。", - "article_number": "例如EAN、UPC等。" - }, - "titles": { - "create": "创建耗材", - "clone": "克隆耗材", - "edit": "编辑耗材", - "list": "耗材列表", - "show": "查看耗材", - "show_title": "[耗材 #{{id}}] {{name}}" - }, - "form": { - "filament_updated": "自您打开此页面以来,此耗材已被其他人/事物更新。保存将覆盖这些更改!" - } + "titles": { + "create": "创建耗材", + "clone": "克隆耗材", + "edit": "编辑耗材", + "list": "耗材列表", + "show": "查看耗材", + "show_title": "[耗材 #{{id}}] {{name}}" }, - "vendor": { - "vendor": "供应商", - "fields": { - "id": "编号", - "name": "名称", - "registered": "登记时间", - "comment": "备注" - }, - "titles": { - "create": "创建供应商", - "clone": "克隆供应商", - "edit": "编辑供应商", - "list": "供应商列表", - "show": "查看供应商", - "show_title": "[供应商 #{{id}}] {{name}}" - }, - "form": { - "vendor_updated": "自您打开此页面以来,此供应商已被其他人/事物更新。保存将覆盖这些更改!" - } + "form": { + "filament_updated": "自您打开此页面以来,此耗材已被其他人/事物更新。保存将覆盖这些更改!" + } + }, + "vendor": { + "vendor": "供应商", + "fields": { + "id": "编号", + "name": "名称", + "registered": "登记时间", + "comment": "备注" }, - "table": { - "actions": "操作" + "titles": { + "create": "创建供应商", + "clone": "克隆供应商", + "edit": "编辑供应商", + "list": "供应商列表", + "show": "查看供应商", + "show_title": "[供应商 #{{id}}] {{name}}" }, - "documentTitle": { - "default": "Spoolman", - "suffix": " | Spoolman", - "filament": { - "list": "耗材列表 | Spoolman", - "show": "#{{id}} 查看耗材 | Spoolman", - "edit": "#{{id}} 编辑耗材 | Spoolman", - "create": "创建耗材 | Spoolman", - "clone": "#{{id}} 克隆耗材 | Spoolman" - }, - "spool": { - "list": "料盘列表 | Spoolman", - "show": "#{{id}} 查看料盘 | Spoolman", - "edit": "#{{id}} 编辑料盘 | Spoolman", - "create": "创建料盘 | Spoolman", - "clone": "#{{id}} 克隆料盘 | Spoolman" - }, - "vendor": { - "list": "供应商 | Spoolman", - "show": "#{{id}} 查看供应商 | Spoolman", - "edit": "#{{id}} 编辑供应商 | Spoolman", - "create": "创建供应商 | Spoolman", - "clone": "#{{id}} 克隆供应商 | Spoolman" - } + "form": { + "vendor_updated": "自您打开此页面以来,此供应商已被其他人/事物更新。保存将覆盖这些更改!" + } + }, + "table": { + "actions": "操作" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "耗材列表 | Spoolman", + "show": "#{{id}} 查看耗材 | Spoolman", + "edit": "#{{id}} 编辑耗材 | Spoolman", + "create": "创建耗材 | Spoolman", + "clone": "#{{id}} 克隆耗材 | Spoolman" + }, + "spool": { + "list": "料盘列表 | Spoolman", + "show": "#{{id}} 查看料盘 | Spoolman", + "edit": "#{{id}} 编辑料盘 | Spoolman", + "create": "创建料盘 | Spoolman", + "clone": "#{{id}} 克隆料盘 | Spoolman" + }, + "vendor": { + "list": "供应商 | Spoolman", + "show": "#{{id}} 查看供应商 | Spoolman", + "edit": "#{{id}} 编辑供应商 | Spoolman", + "create": "创建供应商 | Spoolman", + "clone": "#{{id}} 克隆供应商 | Spoolman" } + } } diff --git a/client/src/pages/filaments/list.tsx b/client/src/pages/filaments/list.tsx index 9c40be1f3..57d5cb17b 100644 --- a/client/src/pages/filaments/list.tsx +++ b/client/src/pages/filaments/list.tsx @@ -5,8 +5,8 @@ import { Table, Space, Button, Dropdown } from "antd"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import { IFilament } from "./model"; -import { EditOutlined, FilterOutlined } from "@ant-design/icons"; -import { TableState, useInitialTableState, useStoreInitialState } from "../../utils/saveload"; +import { EditOutlined, FilterOutlined, ShareAltOutlined } from "@ant-design/icons"; +import { TableState, shareSavedState, useInitialTableState, useStoreInitialState } from "../../utils/saveload"; import { DateColumn, FilteredQueryColumn, @@ -164,6 +164,20 @@ export const FilamentList: React.FC = () => { {t("buttons.hideColumns")} + {defaultButtons} )} diff --git a/client/src/pages/spools/list.tsx b/client/src/pages/spools/list.tsx index 6c0d73b51..9bb0317dc 100644 --- a/client/src/pages/spools/list.tsx +++ b/client/src/pages/spools/list.tsx @@ -5,8 +5,8 @@ import { Table, Space, Button, Dropdown, Modal } from "antd"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import { ISpool } from "./model"; -import { TableState, useInitialTableState, useSavedState, useStoreInitialState } from "../../utils/saveload"; -import { EditOutlined, FilterOutlined, InboxOutlined, ToTopOutlined } from "@ant-design/icons"; +import { TableState, shareSavedState, useInitialTableState, useSavedState, useStoreInitialState } from "../../utils/saveload"; +import { EditOutlined, FilterOutlined, InboxOutlined, ShareAltOutlined, ToTopOutlined } from "@ant-design/icons"; import { DateColumn, FilteredQueryColumn, @@ -221,6 +221,20 @@ export const SpoolList: React.FC = () => { {t("buttons.hideColumns")} + {defaultButtons} )} diff --git a/client/src/pages/vendors/list.tsx b/client/src/pages/vendors/list.tsx index 0c04895a2..06952932d 100644 --- a/client/src/pages/vendors/list.tsx +++ b/client/src/pages/vendors/list.tsx @@ -5,8 +5,8 @@ import { Table, Space, Button, Dropdown } from "antd"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import { IVendor } from "./model"; -import { TableState, useInitialTableState, useStoreInitialState } from "../../utils/saveload"; -import { EditOutlined, FilterOutlined } from "@ant-design/icons"; +import { TableState, shareSavedState, useInitialTableState, useStoreInitialState } from "../../utils/saveload"; +import { EditOutlined, FilterOutlined, ShareAltOutlined } from "@ant-design/icons"; import { DateColumn, RichColumn, SortedColumn } from "../../components/column"; import { useLiveify } from "../../components/liveify"; @@ -110,6 +110,20 @@ export const VendorList: React.FC = () => { {t("buttons.hideColumns")} + {defaultButtons} )} diff --git a/client/src/utils/saveload.ts b/client/src/utils/saveload.ts index f25c0a099..72bfb21f9 100644 --- a/client/src/utils/saveload.ts +++ b/client/src/utils/saveload.ts @@ -16,15 +16,16 @@ export interface TableState { export function useInitialTableState(tableId: string): TableState { const [initialState] = React.useState(() => { - const savedSorters = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; - const savedFilters = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; - const savedPagination = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; - const savedShowColumns = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; + const savedSorters = hasHashProperty(`${tableId}-sorters`) ? getHashProperty(`${tableId}-sorters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; + const savedFilters = hasHashProperty(`${tableId}-filters`) ? getHashProperty(`${tableId}-filters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; + const savedPagination = hasHashProperty(`${tableId}-pagination`) ? getHashProperty(`${tableId}-pagination`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; + const savedShowColumns = hasHashProperty(`${tableId}-showColumns`) ? getHashProperty(`${tableId}-showColumns`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; const sorters = savedSorters ? JSON.parse(savedSorters) : [{ field: "id", order: "asc" }]; const filters = savedFilters ? JSON.parse(savedFilters) : []; const pagination = savedPagination ? JSON.parse(savedPagination) : { page: 1, pageSize: 20 }; const showColumns = savedShowColumns ? JSON.parse(savedShowColumns) : undefined; + window.location.hash = ""; return { sorters, filters, pagination, showColumns }; }); return initialState; @@ -74,3 +75,25 @@ export function useSavedState(id: string, defaultValue: T) { return [state, setState] as const; } + +export function shareSavedState(tableId: string): string { + const tableStates = ['sorters', 'filters', 'pagination', 'showColumns']; + const params = new URLSearchParams(); + tableStates.forEach(s => { + let l = localStorage.getItem(`${tableId}-${s}`); + if (l) { + params.append(`${tableId}-${s}`, l); + } + }) + return `${window.location.origin}${window.location.pathname}#${params.toString()}` +} + +function getHashProperty(Id: string) { + const hash = new URLSearchParams(window.location.hash.substring(1)); + return hash.get(Id); +} + +function hasHashProperty(property: string): boolean { + const hash = new URLSearchParams(window.location.hash.substring(1)); + return hash.has(property); +} \ No newline at end of file From c1b591b62b53850f473ad511feaeca60f03ea9e8 Mon Sep 17 00:00:00 2001 From: Connor Cleveland Date: Sun, 22 Oct 2023 20:51:10 -0500 Subject: [PATCH 2/3] make url hash always represent current table state --- client/src/utils/saveload.ts | 44 ++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/client/src/utils/saveload.ts b/client/src/utils/saveload.ts index f25c0a099..945381f63 100644 --- a/client/src/utils/saveload.ts +++ b/client/src/utils/saveload.ts @@ -1,7 +1,6 @@ import React from "react"; import { CrudFilter, CrudSort } from "@refinedev/core"; import { isLocalStorageAvailable } from "./support"; - interface Pagination { current: number; pageSize: number; @@ -16,10 +15,10 @@ export interface TableState { export function useInitialTableState(tableId: string): TableState { const [initialState] = React.useState(() => { - const savedSorters = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; - const savedFilters = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; - const savedPagination = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; - const savedShowColumns = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; + const savedSorters = hasHashProperty(`${tableId}-sorters`) ? getHashProperty(`${tableId}-sorters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; + const savedFilters = hasHashProperty(`${tableId}-filters`) ? getHashProperty(`${tableId}-filters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; + const savedPagination = hasHashProperty(`${tableId}-pagination`) ? getHashProperty(`${tableId}-pagination`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; + const savedShowColumns = hasHashProperty(`${tableId}-showColumns`) ? getHashProperty(`${tableId}-showColumns`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; const sorters = savedSorters ? JSON.parse(savedSorters) : [{ field: "id", order: "asc" }]; const filters = savedFilters ? JSON.parse(savedFilters) : []; @@ -35,28 +34,44 @@ export function useStoreInitialState(tableId: string, state: TableState) { if (isLocalStorageAvailable) { localStorage.setItem(`${tableId}-sorters`, JSON.stringify(state.sorters)); } + if (JSON.stringify(state.sorters) != JSON.stringify([{ field: "id", order: "asc" }])) { + updateURLHash(`${tableId}-sorters`, JSON.stringify(state.sorters)); + } }, [tableId, state.sorters]); React.useEffect(() => { if (isLocalStorageAvailable) { localStorage.setItem(`${tableId}-filters`, JSON.stringify(state.filters)); } + if (JSON.stringify(state.filters) != JSON.stringify([])) { + updateURLHash(`${tableId}-filters`, JSON.stringify(state.filters)); + } }, [tableId, state.filters]); React.useEffect(() => { if (isLocalStorageAvailable) { localStorage.setItem(`${tableId}-pagination`, JSON.stringify(state.pagination)); } + if (JSON.stringify(state.pagination) != JSON.stringify({ current: 1, pageSize: 20 })) { + updateURLHash(`${tableId}-pagination`, JSON.stringify(state.pagination)); + } + }, [tableId, state.pagination]); React.useEffect(() => { if (isLocalStorageAvailable) { if (state.showColumns === undefined) { localStorage.removeItem(`${tableId}-showColumns`); + const params = new URLSearchParams(window.location.hash.substring(1)); + if (params.has(`${tableId}-showColumns`)) { + params.delete(`${tableId}-showColumns`) + } + window.location.hash = params.toString(); } else { localStorage.setItem(`${tableId}-showColumns`, JSON.stringify(state.showColumns)); } } + }, [tableId, state.showColumns]); } @@ -74,3 +89,22 @@ export function useSavedState(id: string, defaultValue: T) { return [state, setState] as const; } + +export function updateURLHash(Id: string, value: string) { + const params = new URLSearchParams(window.location.hash.substring(1)); + if (!params.has(Id)) { + params.append(Id, value) + } + params.set(Id, value); + window.location.hash = params.toString(); +} + +function getHashProperty(Id: string) { + const hash = new URLSearchParams(window.location.hash.substring(1)); + return hash.get(Id); +} + +function hasHashProperty(property: string): boolean { + const hash = new URLSearchParams(window.location.hash.substring(1)); + return hash.has(property); +} \ No newline at end of file From cf518b19c2b2e642607656004b8715a572e4476a Mon Sep 17 00:00:00 2001 From: Connor Cleveland Date: Mon, 23 Oct 2023 21:13:00 -0500 Subject: [PATCH 3/3] only update localStorage and hash if table setting differs from default --- client/src/utils/saveload.ts | 60 +++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/client/src/utils/saveload.ts b/client/src/utils/saveload.ts index 945381f63..4d20c6d15 100644 --- a/client/src/utils/saveload.ts +++ b/client/src/utils/saveload.ts @@ -15,10 +15,10 @@ export interface TableState { export function useInitialTableState(tableId: string): TableState { const [initialState] = React.useState(() => { - const savedSorters = hasHashProperty(`${tableId}-sorters`) ? getHashProperty(`${tableId}-sorters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; - const savedFilters = hasHashProperty(`${tableId}-filters`) ? getHashProperty(`${tableId}-filters`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; - const savedPagination = hasHashProperty(`${tableId}-pagination`) ? getHashProperty(`${tableId}-pagination`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; - const savedShowColumns = hasHashProperty(`${tableId}-showColumns`) ? getHashProperty(`${tableId}-showColumns`) : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; + const savedSorters = hasHashProperty('sorters') ? getHashProperty('sorters') : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-sorters`) : null; + const savedFilters = hasHashProperty('filters') ? getHashProperty('filters') : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-filters`) : null; + const savedPagination = hasHashProperty('pagination') ? getHashProperty('pagination') : isLocalStorageAvailable ? localStorage.getItem(`${tableId}-pagination`) : null; + const savedShowColumns = isLocalStorageAvailable ? localStorage.getItem(`${tableId}-showColumns`) : null; const sorters = savedSorters ? JSON.parse(savedSorters) : [{ field: "id", order: "asc" }]; const filters = savedFilters ? JSON.parse(savedFilters) : []; @@ -31,29 +31,39 @@ export function useInitialTableState(tableId: string): TableState { export function useStoreInitialState(tableId: string, state: TableState) { React.useEffect(() => { - if (isLocalStorageAvailable) { - localStorage.setItem(`${tableId}-sorters`, JSON.stringify(state.sorters)); - } - if (JSON.stringify(state.sorters) != JSON.stringify([{ field: "id", order: "asc" }])) { - updateURLHash(`${tableId}-sorters`, JSON.stringify(state.sorters)); + if (state.sorters.length > 0 && JSON.stringify(state.sorters) != JSON.stringify([{ field: "id", order: "asc" }])) { + if (isLocalStorageAvailable) { + localStorage.setItem(`${tableId}-sorters`, JSON.stringify(state.sorters)); + } + setURLHash(`sorters`, JSON.stringify(state.sorters)); + } else { + localStorage.removeItem(`${tableId}-sorters`) + removeURLHash('sorters'); } }, [tableId, state.sorters]); React.useEffect(() => { - if (isLocalStorageAvailable) { - localStorage.setItem(`${tableId}-filters`, JSON.stringify(state.filters)); - } - if (JSON.stringify(state.filters) != JSON.stringify([])) { - updateURLHash(`${tableId}-filters`, JSON.stringify(state.filters)); + let filters = state.filters.filter(f => f.value.length != 0); + if (filters.length > 0) { + if (isLocalStorageAvailable) { + localStorage.setItem(`${tableId}-filters`, JSON.stringify(filters)); + setURLHash('filters', JSON.stringify(state.filters)); + } + } else { + localStorage.removeItem(`${tableId}-filters`) + removeURLHash(`filters`); } }, [tableId, state.filters]); React.useEffect(() => { - if (isLocalStorageAvailable) { - localStorage.setItem(`${tableId}-pagination`, JSON.stringify(state.pagination)); - } if (JSON.stringify(state.pagination) != JSON.stringify({ current: 1, pageSize: 20 })) { - updateURLHash(`${tableId}-pagination`, JSON.stringify(state.pagination)); + if (isLocalStorageAvailable) { + localStorage.setItem(`${tableId}-pagination`, JSON.stringify(state.pagination)); + } + setURLHash(`pagination`, JSON.stringify(state.pagination)); + } else { + localStorage.removeItem(`${tableId}-pagination`) + removeURLHash(`pagination`); } }, [tableId, state.pagination]); @@ -62,11 +72,6 @@ export function useStoreInitialState(tableId: string, state: TableState) { if (isLocalStorageAvailable) { if (state.showColumns === undefined) { localStorage.removeItem(`${tableId}-showColumns`); - const params = new URLSearchParams(window.location.hash.substring(1)); - if (params.has(`${tableId}-showColumns`)) { - params.delete(`${tableId}-showColumns`) - } - window.location.hash = params.toString(); } else { localStorage.setItem(`${tableId}-showColumns`, JSON.stringify(state.showColumns)); } @@ -90,7 +95,7 @@ export function useSavedState(id: string, defaultValue: T) { return [state, setState] as const; } -export function updateURLHash(Id: string, value: string) { +function setURLHash(Id: string, value: string) { const params = new URLSearchParams(window.location.hash.substring(1)); if (!params.has(Id)) { params.append(Id, value) @@ -98,6 +103,13 @@ export function updateURLHash(Id: string, value: string) { params.set(Id, value); window.location.hash = params.toString(); } +function removeURLHash(Id: string) { + const params = new URLSearchParams(window.location.hash.substring(1)); + if (params.has(Id)) { + params.delete(Id) + } + window.location.hash = params.toString(); +} function getHashProperty(Id: string) { const hash = new URLSearchParams(window.location.hash.substring(1));