taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit fa12bc4eb14318e60df9f957597d75e050366d67
parent 799e00552c1382eec44f633b4a944844fe87ab29
Author: Florian Dold <dold@taler.net>
Date:   Wed,  4 Nov 2026 00:17:23 +0100

merchant web UI: translate inventory controls

Diffstat:
Mpackages/taler-merchant-webui/src/i18n/de-CH.po | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mpackages/taler-merchant-webui/src/i18n/de.po | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mpackages/taler-merchant-webui/src/i18n/fr.po | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mpackages/taler-merchant-webui/src/i18n/it.po | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mpackages/taler-merchant-webui/src/i18n/strings.ts | 210+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mpackages/taler-merchant-webui/src/i18n/taler-merchant-webui.pot | 113+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
6 files changed, 737 insertions(+), 82 deletions(-)

diff --git a/packages/taler-merchant-webui/src/i18n/de-CH.po b/packages/taler-merchant-webui/src/i18n/de-CH.po @@ -4770,15 +4770,8 @@ msgstr "Preis bearbeiten" msgid "Delete product" msgstr "Produkt löschen" -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:407 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:432 -msgid "Stock / sold" -msgstr "Bestand / verkauft" - -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:411 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:542 -msgid "Stock not tracked" -msgstr "Bestand nicht erfasst" +#~ msgid "Stock not tracked" +#~ msgstr "Bestand nicht erfasst" #: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:414 msgid "Sold count unavailable" @@ -5148,9 +5141,8 @@ msgstr "" "Einschalten, um den Bestand zu führen und Artikel beim Bezahlen zu " "reservieren." -#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:634 -msgid "Units in Stock" -msgstr "Bestand in Einheiten" +#~ msgid "Units in Stock" +#~ msgstr "Bestand in Einheiten" #: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:652 msgid "Next Delivery Date" @@ -14631,3 +14623,111 @@ msgstr "Nein" #: packages/taler-merchant-webui/src/screens/InventoryTemplateDetails.tsx:65 msgid "No deadline" msgstr "Keine Frist" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:73 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:428 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:562 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:484 +msgid "Unlimited" +msgstr "Unbegrenzt" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:75 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:485 +#| msgid "Bank receipt status unavailable" +msgid "Exact stock balance unavailable" +msgstr "Genauer Lagerbestand nicht verfügbar" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:76 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:486 +#| msgid "%1$s in stock" +msgid "%1$s stock balance" +msgstr "Lagerbestand: %1$s" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:164 +msgid "Please sign in again." +msgstr "Bitte melden Sie sich erneut an." + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:187 +msgid "" +"The loss was submitted but could not be confirmed. Retry to check the same " +"loss." +msgstr "Der Verlust wurde übermittelt, konnte aber nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen." + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:424 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:452 +#| msgid "Stock / sold" +msgid "Stock balance / sold" +msgstr "Lagerbestand / verkauft" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:436 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:572 +#| msgid "%1$s pots" +msgid "%1$s lost" +msgstr "%1$s verloren" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:53 +#| msgid "Enter a positive whole-number redemption threshold." +msgid "Enter a positive whole number of lost units." +msgstr "Geben Sie eine positive ganze Anzahl verlorener Einheiten ein." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:60 +msgid "The loss exceeds the stock balance." +msgstr "Der Verlust übersteigt den Lagerbestand." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:77 +msgid "Stock changed. Review the updated totals and submit the loss again." +msgstr "Der Bestand hat sich geändert. Prüfen Sie die aktualisierten Summen und übermitteln Sie den Verlust erneut." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:82 +#| msgid "No sales recorded in %1$s." +msgid "Loss recorded." +msgstr "Verlust erfasst." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:89 +msgid "The loss could not be confirmed. Retry to check the same loss." +msgstr "Der Verlust konnte nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:101 +msgid "Total units lost" +msgstr "Insgesamt verlorene Einheiten" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:108 +msgid "Additional units lost" +msgstr "Weitere verlorene Einheiten" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:123 +msgid "" +"Record whole units lost, spoiled, or stolen. This saves separately from " +"other product edits." +msgstr "Erfassen Sie ganze Einheiten, die verloren, verdorben oder gestohlen wurden. Dies wird getrennt von anderen Produktänderungen gespeichert." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +#| msgid "Retry" +msgid "Retry loss" +msgstr "Verlust erneut prüfen" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Record loss" +msgstr "Verlust erfassen" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:410 +msgid "Total units stocked cannot decrease. Record a loss instead." +msgstr "Die insgesamt eingelagerten Einheiten können nicht verringert werden. Erfassen Sie stattdessen einen Verlust." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:692 +msgid "" +"Stock tracking cannot be enabled for an existing product with unlimited " +"inventory." +msgstr "Die Bestandsverfolgung kann für ein bestehendes Produkt mit unbegrenztem Bestand nicht aktiviert werden." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:704 +msgid "Total units stocked" +msgstr "Insgesamt eingelagerte Einheiten" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:724 +msgid "Fractional stock is read-only. Exact remaining stock is unavailable." +msgstr "Bruchteilige Bestände sind schreibgeschützt. Der genaue Restbestand ist nicht verfügbar." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:725 +msgid "Lifetime units received, including units already sold or lost." +msgstr "Alle bisher erhaltenen Einheiten, einschliesslich bereits verkaufter oder verlorener Einheiten." diff --git a/packages/taler-merchant-webui/src/i18n/de.po b/packages/taler-merchant-webui/src/i18n/de.po @@ -4768,15 +4768,8 @@ msgstr "Preis bearbeiten" msgid "Delete product" msgstr "Produkt löschen" -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:407 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:432 -msgid "Stock / sold" -msgstr "Bestand / verkauft" - -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:411 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:542 -msgid "Stock not tracked" -msgstr "Bestand nicht erfasst" +#~ msgid "Stock not tracked" +#~ msgstr "Bestand nicht erfasst" #: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:414 msgid "Sold count unavailable" @@ -5146,9 +5139,8 @@ msgstr "" "Einschalten, um den Bestand zu führen und Artikel beim Bezahlen zu " "reservieren." -#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:634 -msgid "Units in Stock" -msgstr "Bestand in Einheiten" +#~ msgid "Units in Stock" +#~ msgstr "Bestand in Einheiten" #: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:652 msgid "Next Delivery Date" @@ -14628,3 +14620,111 @@ msgstr "Nein" #: packages/taler-merchant-webui/src/screens/InventoryTemplateDetails.tsx:65 msgid "No deadline" msgstr "Keine Frist" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:73 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:428 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:562 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:484 +msgid "Unlimited" +msgstr "Unbegrenzt" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:75 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:485 +#| msgid "Bank receipt status unavailable" +msgid "Exact stock balance unavailable" +msgstr "Genauer Lagerbestand nicht verfügbar" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:76 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:486 +#| msgid "%1$s in stock" +msgid "%1$s stock balance" +msgstr "Lagerbestand: %1$s" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:164 +msgid "Please sign in again." +msgstr "Bitte melden Sie sich erneut an." + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:187 +msgid "" +"The loss was submitted but could not be confirmed. Retry to check the same " +"loss." +msgstr "Der Verlust wurde übermittelt, konnte aber nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen." + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:424 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:452 +#| msgid "Stock / sold" +msgid "Stock balance / sold" +msgstr "Lagerbestand / verkauft" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:436 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:572 +#| msgid "%1$s pots" +msgid "%1$s lost" +msgstr "%1$s verloren" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:53 +#| msgid "Enter a positive whole-number redemption threshold." +msgid "Enter a positive whole number of lost units." +msgstr "Geben Sie eine positive ganze Anzahl verlorener Einheiten ein." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:60 +msgid "The loss exceeds the stock balance." +msgstr "Der Verlust übersteigt den Lagerbestand." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:77 +msgid "Stock changed. Review the updated totals and submit the loss again." +msgstr "Der Bestand hat sich geändert. Prüfen Sie die aktualisierten Summen und übermitteln Sie den Verlust erneut." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:82 +#| msgid "No sales recorded in %1$s." +msgid "Loss recorded." +msgstr "Verlust erfasst." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:89 +msgid "The loss could not be confirmed. Retry to check the same loss." +msgstr "Der Verlust konnte nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:101 +msgid "Total units lost" +msgstr "Insgesamt verlorene Einheiten" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:108 +msgid "Additional units lost" +msgstr "Weitere verlorene Einheiten" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:123 +msgid "" +"Record whole units lost, spoiled, or stolen. This saves separately from " +"other product edits." +msgstr "Erfassen Sie ganze Einheiten, die verloren, verdorben oder gestohlen wurden. Dies wird getrennt von anderen Produktänderungen gespeichert." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +#| msgid "Retry" +msgid "Retry loss" +msgstr "Verlust erneut prüfen" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Record loss" +msgstr "Verlust erfassen" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:410 +msgid "Total units stocked cannot decrease. Record a loss instead." +msgstr "Die insgesamt eingelagerten Einheiten können nicht verringert werden. Erfassen Sie stattdessen einen Verlust." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:692 +msgid "" +"Stock tracking cannot be enabled for an existing product with unlimited " +"inventory." +msgstr "Die Bestandsverfolgung kann für ein bestehendes Produkt mit unbegrenztem Bestand nicht aktiviert werden." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:704 +msgid "Total units stocked" +msgstr "Insgesamt eingelagerte Einheiten" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:724 +msgid "Fractional stock is read-only. Exact remaining stock is unavailable." +msgstr "Bruchteilige Bestände sind schreibgeschützt. Der genaue Restbestand ist nicht verfügbar." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:725 +msgid "Lifetime units received, including units already sold or lost." +msgstr "Alle bisher erhaltenen Einheiten, einschließlich bereits verkaufter oder verlorener Einheiten." diff --git a/packages/taler-merchant-webui/src/i18n/fr.po b/packages/taler-merchant-webui/src/i18n/fr.po @@ -4738,15 +4738,8 @@ msgstr "Modifier le prix" msgid "Delete product" msgstr "Supprimer le produit" -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:407 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:432 -msgid "Stock / sold" -msgstr "Stock / ventes" - -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:411 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:542 -msgid "Stock not tracked" -msgstr "Stock non suivi" +#~ msgid "Stock not tracked" +#~ msgstr "Stock non suivi" #: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:414 msgid "Sold count unavailable" @@ -5116,9 +5109,8 @@ msgstr "Suivre le stock de ce produit" msgid "Enable to track quantity in stock and reserve items during checkout." msgstr "Activez pour suivre le stock et réserver les articles au paiement." -#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:634 -msgid "Units in Stock" -msgstr "Unités en stock" +#~ msgid "Units in Stock" +#~ msgstr "Unités en stock" #: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:652 msgid "Next Delivery Date" @@ -14588,3 +14580,111 @@ msgstr "Non" #: packages/taler-merchant-webui/src/screens/InventoryTemplateDetails.tsx:65 msgid "No deadline" msgstr "Aucun délai" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:73 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:428 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:562 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:484 +msgid "Unlimited" +msgstr "Illimité" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:75 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:485 +#| msgid "Bank receipt status unavailable" +msgid "Exact stock balance unavailable" +msgstr "Stock restant exact indisponible" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:76 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:486 +#| msgid "%1$s in stock" +msgid "%1$s stock balance" +msgstr "Stock restant : %1$s" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:164 +msgid "Please sign in again." +msgstr "Veuillez vous reconnecter." + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:187 +msgid "" +"The loss was submitted but could not be confirmed. Retry to check the same " +"loss." +msgstr "La perte a été envoyée mais n’a pas pu être confirmée. Réessayez pour vérifier cette même perte." + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:424 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:452 +#| msgid "Stock / sold" +msgid "Stock balance / sold" +msgstr "Stock restant / vendu" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:436 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:572 +#| msgid "%1$s pots" +msgid "%1$s lost" +msgstr "%1$s perdus" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:53 +#| msgid "Enter a positive whole-number redemption threshold." +msgid "Enter a positive whole number of lost units." +msgstr "Saisissez un nombre entier positif d’unités perdues." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:60 +msgid "The loss exceeds the stock balance." +msgstr "La perte dépasse le stock restant." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:77 +msgid "Stock changed. Review the updated totals and submit the loss again." +msgstr "Le stock a changé. Vérifiez les totaux actualisés et soumettez à nouveau la perte." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:82 +#| msgid "No sales recorded in %1$s." +msgid "Loss recorded." +msgstr "Perte enregistrée." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:89 +msgid "The loss could not be confirmed. Retry to check the same loss." +msgstr "La perte n’a pas pu être confirmée. Réessayez pour vérifier cette même perte." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:101 +msgid "Total units lost" +msgstr "Total des unités perdues" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:108 +msgid "Additional units lost" +msgstr "Unités perdues supplémentaires" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:123 +msgid "" +"Record whole units lost, spoiled, or stolen. This saves separately from " +"other product edits." +msgstr "Enregistrez les unités entières perdues, avariées ou volées. Cet enregistrement est indépendant des autres modifications du produit." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +#| msgid "Retry" +msgid "Retry loss" +msgstr "Réessayer la perte" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Record loss" +msgstr "Enregistrer une perte" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:410 +msgid "Total units stocked cannot decrease. Record a loss instead." +msgstr "Le total des unités approvisionnées ne peut pas diminuer. Enregistrez une perte à la place." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:692 +msgid "" +"Stock tracking cannot be enabled for an existing product with unlimited " +"inventory." +msgstr "Le suivi du stock ne peut pas être activé pour un produit existant avec un stock illimité." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:704 +msgid "Total units stocked" +msgstr "Total des unités approvisionnées" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:724 +msgid "Fractional stock is read-only. Exact remaining stock is unavailable." +msgstr "Le stock fractionnaire est en lecture seule. Le stock restant exact est indisponible." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:725 +msgid "Lifetime units received, including units already sold or lost." +msgstr "Toutes les unités reçues depuis le début, y compris celles déjà vendues ou perdues." diff --git a/packages/taler-merchant-webui/src/i18n/it.po b/packages/taler-merchant-webui/src/i18n/it.po @@ -4720,15 +4720,8 @@ msgstr "Modifica prezzo" msgid "Delete product" msgstr "Elimina prodotto" -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:407 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:432 -msgid "Stock / sold" -msgstr "Scorte / venduti" - -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:411 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:542 -msgid "Stock not tracked" -msgstr "Scorte non monitorate" +#~ msgid "Stock not tracked" +#~ msgstr "Scorte non monitorate" #: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:414 msgid "Sold count unavailable" @@ -5093,9 +5086,8 @@ msgstr "Tieni traccia delle scorte di questo prodotto" msgid "Enable to track quantity in stock and reserve items during checkout." msgstr "Attiva per tenere le scorte e riservare gli articoli al pagamento." -#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:634 -msgid "Units in Stock" -msgstr "Unità disponibili" +#~ msgid "Units in Stock" +#~ msgstr "Unità disponibili" #: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:652 msgid "Next Delivery Date" @@ -14528,3 +14520,111 @@ msgstr "No" #: packages/taler-merchant-webui/src/screens/InventoryTemplateDetails.tsx:65 msgid "No deadline" msgstr "Nessun termine" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:73 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:428 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:562 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:484 +msgid "Unlimited" +msgstr "Illimitato" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:75 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:485 +#| msgid "Bank receipt status unavailable" +msgid "Exact stock balance unavailable" +msgstr "Giacenza esatta non disponibile" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:76 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:486 +#| msgid "%1$s in stock" +msgid "%1$s stock balance" +msgstr "Giacenza: %1$s" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:164 +msgid "Please sign in again." +msgstr "Accedi nuovamente." + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:187 +msgid "" +"The loss was submitted but could not be confirmed. Retry to check the same " +"loss." +msgstr "La perdita è stata inviata ma non è stato possibile confermarla. Riprova per verificare la stessa perdita." + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:424 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:452 +#| msgid "Stock / sold" +msgid "Stock balance / sold" +msgstr "Giacenza / venduto" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:436 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:572 +#| msgid "%1$s pots" +msgid "%1$s lost" +msgstr "%1$s persi" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:53 +#| msgid "Enter a positive whole-number redemption threshold." +msgid "Enter a positive whole number of lost units." +msgstr "Inserisci un numero intero positivo di unità perse." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:60 +msgid "The loss exceeds the stock balance." +msgstr "La perdita supera la giacenza." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:77 +msgid "Stock changed. Review the updated totals and submit the loss again." +msgstr "La giacenza è cambiata. Controlla i totali aggiornati e invia nuovamente la perdita." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:82 +#| msgid "No sales recorded in %1$s." +msgid "Loss recorded." +msgstr "Perdita registrata." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:89 +msgid "The loss could not be confirmed. Retry to check the same loss." +msgstr "Non è stato possibile confermare la perdita. Riprova per verificare la stessa perdita." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:101 +msgid "Total units lost" +msgstr "Totale unità perse" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:108 +msgid "Additional units lost" +msgstr "Ulteriori unità perse" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:123 +msgid "" +"Record whole units lost, spoiled, or stolen. This saves separately from " +"other product edits." +msgstr "Registra le unità intere perse, deteriorate o rubate. Il salvataggio è separato dalle altre modifiche al prodotto." + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +#| msgid "Retry" +msgid "Retry loss" +msgstr "Riprova la perdita" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Record loss" +msgstr "Registra perdita" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:410 +msgid "Total units stocked cannot decrease. Record a loss instead." +msgstr "Il totale delle unità ricevute non può diminuire. Registra invece una perdita." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:692 +msgid "" +"Stock tracking cannot be enabled for an existing product with unlimited " +"inventory." +msgstr "Il monitoraggio delle scorte non può essere attivato per un prodotto esistente con scorte illimitate." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:704 +msgid "Total units stocked" +msgstr "Totale unità ricevute" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:724 +msgid "Fractional stock is read-only. Exact remaining stock is unavailable." +msgstr "Le scorte frazionarie sono di sola lettura. La giacenza esatta non è disponibile." + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:725 +msgid "Lifetime units received, including units already sold or lost." +msgstr "Tutte le unità ricevute, comprese quelle già vendute o perse." diff --git a/packages/taler-merchant-webui/src/i18n/strings.ts b/packages/taler-merchant-webui/src/i18n/strings.ts @@ -1773,8 +1773,6 @@ strings["it"] = { "Edit product": ["Modifica prodotto"], "Edit price": ["Modifica prezzo"], "Delete product": ["Elimina prodotto"], - "Stock / sold": ["Scorte / venduti"], - "Stock not tracked": ["Scorte non monitorate"], "Sold count unavailable": ["Numero di vendite non disponibile"], "1 unit": ["1 unità"], "%1$s units": ["%1$s unità"], @@ -1915,7 +1913,6 @@ strings["it"] = { "Enable to track quantity in stock and reserve items during checkout.": [ "Attiva per tenere le scorte e riservare gli articoli al pagamento.", ], - "Units in Stock": ["Unità disponibili"], "Next Delivery Date": ["Prossima data di consegna"], "4. Product Categories (Point of Sale)": [ "4. Categorie di prodotti (punto vendita)", @@ -5873,6 +5870,49 @@ strings["it"] = { "Yes": ["Sì"], "No": ["No"], "No deadline": ["Nessun termine"], + "Unlimited": ["Illimitato"], + "Exact stock balance unavailable": ["Giacenza esatta non disponibile"], + "%1$s stock balance": ["Giacenza: %1$s"], + "Please sign in again.": ["Accedi nuovamente."], + "The loss was submitted but could not be confirmed. Retry to check the same loss.": + [ + "La perdita è stata inviata ma non è stato possibile confermarla. Riprova per verificare la stessa perdita.", + ], + "Stock balance / sold": ["Giacenza / venduto"], + "%1$s lost": ["%1$s persi"], + "Enter a positive whole number of lost units.": [ + "Inserisci un numero intero positivo di unità perse.", + ], + "The loss exceeds the stock balance.": ["La perdita supera la giacenza."], + "Stock changed. Review the updated totals and submit the loss again.": [ + "La giacenza è cambiata. Controlla i totali aggiornati e invia nuovamente la perdita.", + ], + "Loss recorded.": ["Perdita registrata."], + "The loss could not be confirmed. Retry to check the same loss.": [ + "Non è stato possibile confermare la perdita. Riprova per verificare la stessa perdita.", + ], + "Total units lost": ["Totale unità perse"], + "Additional units lost": ["Ulteriori unità perse"], + "Record whole units lost, spoiled, or stolen. This saves separately from other product edits.": + [ + "Registra le unità intere perse, deteriorate o rubate. Il salvataggio è separato dalle altre modifiche al prodotto.", + ], + "Retry loss": ["Riprova la perdita"], + "Record loss": ["Registra perdita"], + "Total units stocked cannot decrease. Record a loss instead.": [ + "Il totale delle unità ricevute non può diminuire. Registra invece una perdita.", + ], + "Stock tracking cannot be enabled for an existing product with unlimited inventory.": + [ + "Il monitoraggio delle scorte non può essere attivato per un prodotto esistente con scorte illimitate.", + ], + "Total units stocked": ["Totale unità ricevute"], + "Fractional stock is read-only. Exact remaining stock is unavailable.": [ + "Le scorte frazionarie sono di sola lettura. La giacenza esatta non è disponibile.", + ], + "Lifetime units received, including units already sold or lost.": [ + "Tutte le unità ricevute, comprese quelle già vendute o perse.", + ], }, }, domain: "messages", @@ -5880,8 +5920,8 @@ strings["it"] = { lang: "it", completeness: 100, _pogen: { - total: 2880, - translated: 2880, + total: 2899, + translated: 2899, untranslated: [], optional: [], }, @@ -7655,8 +7695,6 @@ strings["fr"] = { "Edit product": ["Modifier le produit"], "Edit price": ["Modifier le prix"], "Delete product": ["Supprimer le produit"], - "Stock / sold": ["Stock / ventes"], - "Stock not tracked": ["Stock non suivi"], "Sold count unavailable": ["Quantité vendue indisponible"], "1 unit": ["1 unité"], "%1$s units": ["%1$s unités"], @@ -7797,7 +7835,6 @@ strings["fr"] = { "Enable to track quantity in stock and reserve items during checkout.": [ "Activez pour suivre le stock et réserver les articles au paiement.", ], - "Units in Stock": ["Unités en stock"], "Next Delivery Date": ["Prochaine date de livraison"], "4. Product Categories (Point of Sale)": [ "4. Catégories de produits (point de vente)", @@ -11783,6 +11820,51 @@ strings["fr"] = { "Yes": ["Oui"], "No": ["Non"], "No deadline": ["Aucun délai"], + "Unlimited": ["Illimité"], + "Exact stock balance unavailable": ["Stock restant exact indisponible"], + "%1$s stock balance": ["Stock restant : %1$s"], + "Please sign in again.": ["Veuillez vous reconnecter."], + "The loss was submitted but could not be confirmed. Retry to check the same loss.": + [ + "La perte a été envoyée mais n’a pas pu être confirmée. Réessayez pour vérifier cette même perte.", + ], + "Stock balance / sold": ["Stock restant / vendu"], + "%1$s lost": ["%1$s perdus"], + "Enter a positive whole number of lost units.": [ + "Saisissez un nombre entier positif d’unités perdues.", + ], + "The loss exceeds the stock balance.": [ + "La perte dépasse le stock restant.", + ], + "Stock changed. Review the updated totals and submit the loss again.": [ + "Le stock a changé. Vérifiez les totaux actualisés et soumettez à nouveau la perte.", + ], + "Loss recorded.": ["Perte enregistrée."], + "The loss could not be confirmed. Retry to check the same loss.": [ + "La perte n’a pas pu être confirmée. Réessayez pour vérifier cette même perte.", + ], + "Total units lost": ["Total des unités perdues"], + "Additional units lost": ["Unités perdues supplémentaires"], + "Record whole units lost, spoiled, or stolen. This saves separately from other product edits.": + [ + "Enregistrez les unités entières perdues, avariées ou volées. Cet enregistrement est indépendant des autres modifications du produit.", + ], + "Retry loss": ["Réessayer la perte"], + "Record loss": ["Enregistrer une perte"], + "Total units stocked cannot decrease. Record a loss instead.": [ + "Le total des unités approvisionnées ne peut pas diminuer. Enregistrez une perte à la place.", + ], + "Stock tracking cannot be enabled for an existing product with unlimited inventory.": + [ + "Le suivi du stock ne peut pas être activé pour un produit existant avec un stock illimité.", + ], + "Total units stocked": ["Total des unités approvisionnées"], + "Fractional stock is read-only. Exact remaining stock is unavailable.": [ + "Le stock fractionnaire est en lecture seule. Le stock restant exact est indisponible.", + ], + "Lifetime units received, including units already sold or lost.": [ + "Toutes les unités reçues depuis le début, y compris celles déjà vendues ou perdues.", + ], }, }, domain: "messages", @@ -11790,8 +11872,8 @@ strings["fr"] = { lang: "fr", completeness: 100, _pogen: { - total: 2880, - translated: 2880, + total: 2899, + translated: 2899, untranslated: [], optional: [], }, @@ -13553,8 +13635,6 @@ strings["de"] = { "Edit product": ["Produkt bearbeiten"], "Edit price": ["Preis bearbeiten"], "Delete product": ["Produkt löschen"], - "Stock / sold": ["Bestand / verkauft"], - "Stock not tracked": ["Bestand nicht erfasst"], "Sold count unavailable": ["Verkaufszahl nicht verfügbar"], "1 unit": ["1 Einheit"], "%1$s units": ["%1$s Einheiten"], @@ -13699,7 +13779,6 @@ strings["de"] = { "Enable to track quantity in stock and reserve items during checkout.": [ "Einschalten, um den Bestand zu führen und Artikel beim Bezahlen zu reservieren.", ], - "Units in Stock": ["Bestand in Einheiten"], "Next Delivery Date": ["Nächster Liefertermin"], "4. Product Categories (Point of Sale)": [ "4. Produktkategorien (Point of Sale)", @@ -17657,6 +17736,53 @@ strings["de"] = { "Yes": ["Ja"], "No": ["Nein"], "No deadline": ["Keine Frist"], + "Unlimited": ["Unbegrenzt"], + "Exact stock balance unavailable": [ + "Genauer Lagerbestand nicht verfügbar", + ], + "%1$s stock balance": ["Lagerbestand: %1$s"], + "Please sign in again.": ["Bitte melden Sie sich erneut an."], + "The loss was submitted but could not be confirmed. Retry to check the same loss.": + [ + "Der Verlust wurde übermittelt, konnte aber nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen.", + ], + "Stock balance / sold": ["Lagerbestand / verkauft"], + "%1$s lost": ["%1$s verloren"], + "Enter a positive whole number of lost units.": [ + "Geben Sie eine positive ganze Anzahl verlorener Einheiten ein.", + ], + "The loss exceeds the stock balance.": [ + "Der Verlust übersteigt den Lagerbestand.", + ], + "Stock changed. Review the updated totals and submit the loss again.": [ + "Der Bestand hat sich geändert. Prüfen Sie die aktualisierten Summen und übermitteln Sie den Verlust erneut.", + ], + "Loss recorded.": ["Verlust erfasst."], + "The loss could not be confirmed. Retry to check the same loss.": [ + "Der Verlust konnte nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen.", + ], + "Total units lost": ["Insgesamt verlorene Einheiten"], + "Additional units lost": ["Weitere verlorene Einheiten"], + "Record whole units lost, spoiled, or stolen. This saves separately from other product edits.": + [ + "Erfassen Sie ganze Einheiten, die verloren, verdorben oder gestohlen wurden. Dies wird getrennt von anderen Produktänderungen gespeichert.", + ], + "Retry loss": ["Verlust erneut prüfen"], + "Record loss": ["Verlust erfassen"], + "Total units stocked cannot decrease. Record a loss instead.": [ + "Die insgesamt eingelagerten Einheiten können nicht verringert werden. Erfassen Sie stattdessen einen Verlust.", + ], + "Stock tracking cannot be enabled for an existing product with unlimited inventory.": + [ + "Die Bestandsverfolgung kann für ein bestehendes Produkt mit unbegrenztem Bestand nicht aktiviert werden.", + ], + "Total units stocked": ["Insgesamt eingelagerte Einheiten"], + "Fractional stock is read-only. Exact remaining stock is unavailable.": [ + "Bruchteilige Bestände sind schreibgeschützt. Der genaue Restbestand ist nicht verfügbar.", + ], + "Lifetime units received, including units already sold or lost.": [ + "Alle bisher erhaltenen Einheiten, einschließlich bereits verkaufter oder verlorener Einheiten.", + ], }, }, domain: "messages", @@ -17664,8 +17790,8 @@ strings["de"] = { lang: "de", completeness: 100, _pogen: { - total: 2880, - translated: 2880, + total: 2899, + translated: 2899, untranslated: [], optional: [], }, @@ -19427,8 +19553,6 @@ strings["de-CH"] = { "Edit product": ["Produkt bearbeiten"], "Edit price": ["Preis bearbeiten"], "Delete product": ["Produkt löschen"], - "Stock / sold": ["Bestand / verkauft"], - "Stock not tracked": ["Bestand nicht erfasst"], "Sold count unavailable": ["Verkaufszahl nicht verfügbar"], "1 unit": ["1 Einheit"], "%1$s units": ["%1$s Einheiten"], @@ -19573,7 +19697,6 @@ strings["de-CH"] = { "Enable to track quantity in stock and reserve items during checkout.": [ "Einschalten, um den Bestand zu führen und Artikel beim Bezahlen zu reservieren.", ], - "Units in Stock": ["Bestand in Einheiten"], "Next Delivery Date": ["Nächster Liefertermin"], "4. Product Categories (Point of Sale)": [ "4. Produktkategorien (Point of Sale)", @@ -23531,6 +23654,53 @@ strings["de-CH"] = { "Yes": ["Ja"], "No": ["Nein"], "No deadline": ["Keine Frist"], + "Unlimited": ["Unbegrenzt"], + "Exact stock balance unavailable": [ + "Genauer Lagerbestand nicht verfügbar", + ], + "%1$s stock balance": ["Lagerbestand: %1$s"], + "Please sign in again.": ["Bitte melden Sie sich erneut an."], + "The loss was submitted but could not be confirmed. Retry to check the same loss.": + [ + "Der Verlust wurde übermittelt, konnte aber nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen.", + ], + "Stock balance / sold": ["Lagerbestand / verkauft"], + "%1$s lost": ["%1$s verloren"], + "Enter a positive whole number of lost units.": [ + "Geben Sie eine positive ganze Anzahl verlorener Einheiten ein.", + ], + "The loss exceeds the stock balance.": [ + "Der Verlust übersteigt den Lagerbestand.", + ], + "Stock changed. Review the updated totals and submit the loss again.": [ + "Der Bestand hat sich geändert. Prüfen Sie die aktualisierten Summen und übermitteln Sie den Verlust erneut.", + ], + "Loss recorded.": ["Verlust erfasst."], + "The loss could not be confirmed. Retry to check the same loss.": [ + "Der Verlust konnte nicht bestätigt werden. Versuchen Sie es erneut, um denselben Verlust zu prüfen.", + ], + "Total units lost": ["Insgesamt verlorene Einheiten"], + "Additional units lost": ["Weitere verlorene Einheiten"], + "Record whole units lost, spoiled, or stolen. This saves separately from other product edits.": + [ + "Erfassen Sie ganze Einheiten, die verloren, verdorben oder gestohlen wurden. Dies wird getrennt von anderen Produktänderungen gespeichert.", + ], + "Retry loss": ["Verlust erneut prüfen"], + "Record loss": ["Verlust erfassen"], + "Total units stocked cannot decrease. Record a loss instead.": [ + "Die insgesamt eingelagerten Einheiten können nicht verringert werden. Erfassen Sie stattdessen einen Verlust.", + ], + "Stock tracking cannot be enabled for an existing product with unlimited inventory.": + [ + "Die Bestandsverfolgung kann für ein bestehendes Produkt mit unbegrenztem Bestand nicht aktiviert werden.", + ], + "Total units stocked": ["Insgesamt eingelagerte Einheiten"], + "Fractional stock is read-only. Exact remaining stock is unavailable.": [ + "Bruchteilige Bestände sind schreibgeschützt. Der genaue Restbestand ist nicht verfügbar.", + ], + "Lifetime units received, including units already sold or lost.": [ + "Alle bisher erhaltenen Einheiten, einschliesslich bereits verkaufter oder verlorener Einheiten.", + ], }, }, domain: "messages", @@ -23538,8 +23708,8 @@ strings["de-CH"] = { lang: "de-CH", completeness: 100, _pogen: { - total: 2880, - translated: 2880, + total: 2899, + translated: 2899, untranslated: [], optional: [], }, diff --git a/packages/taler-merchant-webui/src/i18n/taler-merchant-webui.pot b/packages/taler-merchant-webui/src/i18n/taler-merchant-webui.pot @@ -4509,16 +4509,6 @@ msgstr "" msgid "Delete product" msgstr "" -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:407 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:432 -msgid "Stock / sold" -msgstr "" - -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:411 -#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:542 -msgid "Stock not tracked" -msgstr "" - #: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:414 msgid "Sold count unavailable" msgstr "" @@ -4870,10 +4860,6 @@ msgstr "" msgid "Enable to track quantity in stock and reserve items during checkout." msgstr "" -#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:634 -msgid "Units in Stock" -msgstr "" - #: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:652 msgid "Next Delivery Date" msgstr "" @@ -13163,3 +13149,102 @@ msgstr "" #: packages/taler-merchant-webui/src/screens/InventoryTemplateDetails.tsx:65 msgid "No deadline" msgstr "" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:73 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:428 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:562 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:484 +msgid "Unlimited" +msgstr "" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:75 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:485 +msgid "Exact stock balance unavailable" +msgstr "" + +#: packages/taler-merchant-webui/src/utils/inventory.ts:76 +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:486 +msgid "%1$s stock balance" +msgstr "" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:164 +msgid "Please sign in again." +msgstr "" + +#: packages/taler-merchant-webui/src/api/hooks/useInventory.ts:187 +msgid "The loss was submitted but could not be confirmed. Retry to check the same loss." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:424 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:452 +msgid "Stock balance / sold" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:436 +#: packages/taler-merchant-webui/src/screens/InventoryScreen.tsx:572 +msgid "%1$s lost" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:53 +msgid "Enter a positive whole number of lost units." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:60 +msgid "The loss exceeds the stock balance." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:77 +msgid "Stock changed. Review the updated totals and submit the loss again." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:82 +msgid "Loss recorded." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:89 +msgid "The loss could not be confirmed. Retry to check the same loss." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:101 +msgid "Total units lost" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:108 +msgid "Additional units lost" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:123 +msgid "" +"Record whole units lost, spoiled, or stolen. This saves separately from other " +"product edits." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Retry loss" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/ProductLossFields.tsx:141 +msgid "Record loss" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:410 +msgid "Total units stocked cannot decrease. Record a loss instead." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:692 +msgid "" +"Stock tracking cannot be enabled for an existing product with unlimited " +"inventory." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:704 +msgid "Total units stocked" +msgstr "" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:724 +msgid "Fractional stock is read-only. Exact remaining stock is unavailable." +msgstr "" + +#: packages/taler-merchant-webui/src/screens/CreateProductScreen.tsx:725 +msgid "Lifetime units received, including units already sold or lost." +msgstr ""