From a8ca0197dee97dfe7298353be4ddafc666434397 Mon Sep 17 00:00:00 2001 From: Wanztwurst Date: Thu, 22 Apr 2021 17:13:08 +0200 Subject: [PATCH] feat(core): Improved translations Closes #839 --- .../src/lib/static/i18n-messages/de.json | 12 +- .../e2e/configurable-operation.e2e-spec.ts | 2 +- packages/core/e2e/product.e2e-spec.ts | 2 +- packages/core/src/i18n/messages/de.json | 201 +++++++++--------- packages/core/src/i18n/messages/en.json | 5 +- .../helpers/config-arg/config-arg.service.ts | 1 - .../services/product-variant.service.ts | 2 +- 7 files changed, 111 insertions(+), 114 deletions(-) diff --git a/packages/admin-ui/src/lib/static/i18n-messages/de.json b/packages/admin-ui/src/lib/static/i18n-messages/de.json index e9d1e0fd57..dfddcb0f1c 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/de.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/de.json @@ -137,10 +137,10 @@ "sku": "Artikelnummer", "slug": "Slug", "slug-pattern-error": "Ungültiger Slug", - "stock-allocated": "Bestand reserviert", + "stock-allocated": "Lagerbestand reserviert", "stock-allocated-tooltip": "Anzahl der Artikel, die bereits bestellt, aber noch nicht abgewickelt wurden", - "stock-on-hand": "Bestand", - "stock-on-hand-tooltip": "Bestand dieses Artikels im Lager", + "stock-on-hand": "Lagerbestand", + "stock-on-hand-tooltip": "Lagerbestand dieses Artikels", "stock-saleable": "Verkaufbar", "stock-saleable-tooltip": "Anzahl der verkauftbaren Einheiten dieses Artikels; berücksichtigt reservierte Artikel und eingestellte Fehlmenge", "tax-category": "Steuerkategorie", @@ -365,8 +365,8 @@ "could-not-connect-to-server": "Es konnte keine Verbindung zum Vendure-Server auf { url } hergestellt werden.", "facet-value-form-values-do-not-match": "Die Anzahl der Werte im Facetten-Formular stimmt nicht mit der tatsächlichen Anzahl der Werte überein", "health-check-failed": "Systemzustandsprüfung fehlgeschlagen", - "no-default-shipping-zone-set": "Dieser Kanal hat keine Standard-Versandzone. Dies kann zu Fehlern bei der Berechnung der Auftragsversandkosten führen.", - "no-default-tax-zone-set": "Dieser Kanal verfügt nicht über ein Standard-Steuerzone, was zu Fehlern bei der Preisberechnung führen kann. Bitte erstellen oder wählen Sie eine Zone.", + "no-default-shipping-zone-set": "Dieser Kanal verfügt nicht über eine Standard-Versandzone. Dies kann zu Fehlern bei der Berechnung der Auftragsversandkosten führen.", + "no-default-tax-zone-set": "Dieser Kanal verfügt nicht über eine Standard-Steuerzone, was zu Fehlern bei der Preisberechnung führen kann. Bitte erstellen oder wählen Sie eine Zone.", "product-variant-form-values-do-not-match": "Die Anzahl der Varianten im Produktformular stimmt nicht mit der tatsächlichen Anzahl der Varianten überein." }, "lang": { @@ -762,7 +762,7 @@ "test-result": "Test-Ergebnis", "test-shipping-method": "Test-Versandart", "test-shipping-methods": "Test-Versandarten", - "track-inventory-default": "Bestand standardmäßig verfolgen", + "track-inventory-default": "Lagerbestand standardmäßig verfolgen", "update-zone": "Zone aktualisieren", "view-zone-members": "Mitglieder anzeigen", "zone": "Zone" diff --git a/packages/core/e2e/configurable-operation.e2e-spec.ts b/packages/core/e2e/configurable-operation.e2e-spec.ts index eb1d6777c4..7f65d30d30 100644 --- a/packages/core/e2e/configurable-operation.e2e-spec.ts +++ b/packages/core/e2e/configurable-operation.e2e-spec.ts @@ -116,7 +116,7 @@ describe('Configurable operations', () => { }, }, ); - }, "The argument 'required' is required, but the value is [null]"), + }, "The argument 'required' is required"), ); }); diff --git a/packages/core/e2e/product.e2e-spec.ts b/packages/core/e2e/product.e2e-spec.ts index 017c024234..934c67cc5d 100644 --- a/packages/core/e2e/product.e2e-spec.ts +++ b/packages/core/e2e/product.e2e-spec.ts @@ -1301,7 +1301,7 @@ describe('Product resolver', () => { ], }, ); - }, 'A ProductVariant already exists with the options:'), + }, 'A ProductVariant with the selected options already exists: Variant 1'), ); it('updateProductVariants updates variants', async () => { diff --git a/packages/core/src/i18n/messages/de.json b/packages/core/src/i18n/messages/de.json index d4b8a9b816..39fb91ef72 100644 --- a/packages/core/src/i18n/messages/de.json +++ b/packages/core/src/i18n/messages/de.json @@ -1,117 +1,116 @@ { "error": { - "cannot-delete-role": "Die Rolle '{ roleCode }' kann nicht gelöscht werden", + "cannot-delete-role": "Die Rolle \"{ roleCode }\" kann nicht gelöscht werden", "cannot-locate-customer-for-user": "Es konnte kein Kunde für den Nutzer gefunden werden", - "cannot-modify-role": "Die Rolle '{ roleCode }' kann nicht verändert werden", - "cannot-create-sales-for-active-order": "Es kann kein Sale für eine aktive Bestellung erstellen werden", - "cannot-move-collection-into-self": "Es kann keine Collection in sich selbst verschoben werden", - "cannot-transition-payment-from-to": "Die Bezahlung kann nicht von \"{ fromState }\" zu \"{ toState }\" verändern werden", - "cannot-transition-refund-from-to": "Die Rückerstattung kann nicht von \"{ fromState }\" zu \"{ toState }\" verändern werden", - "cannot-transition-fulfillment-from-to": "Die Versandmethode kann nicht von \"{ fromState }\" zu \"{ toState }\" verändern werden", - "collection-id-or-slug-must-be-provided": "Entweder die Collection id oder der slug muss angegeben werden", - "collection-id-slug-mismatch": "Die angegebene id und der slug führen zu unterschiedlichen Collections", - "conditions-required-for-action": "Die PromotionAction '{ action }' erfordert die folgende Bedingung: { conditions }", - "configurable-argument-is-required": "Das Argument '{ name }' wird gefordert, aber der Wert ist [{ value }]", - "country-code-not-valid": "Der Landescode \"{ countryCode }\" wurde nicht gefunden", - "customer-does-not-belong-to-customer-group": "Kunde gehört nicht zu dieser Kundengruppe", - "default-channel-not-found": "Standard Kanal nicht gefunden", - "entity-has-no-translation-in-language": "Übersetzbare Entity '{ entityName }' wurde nicht in die geforderte Sprache übersetzt ({ languageCode })", - "entity-with-id-not-found": "Es konnte kein/e { entityName } mit der id '{ id }' gefunden werden", - "facetfilterinput-invalid-input": "Ein FacetValueFilterInput Objekt kann nicht 'and' und 'or' Felder gleichzeitig angeben", - "field-invalid-datetime-range-max": "Das Feld '{ name }' mit [{ value }] ist größer als das Maximum [{ max }]", - "field-invalid-datetime-range-min": "Das Feld '{ name }' mit [{ value }] ist kleiner als das Minimum [{ min }]", - "field-invalid-non-nullable": "Das Feld '{ name }' kann nicht null gesetzt werden", - "field-invalid-number-range-max": "Das Feld '{ name }' mit [{ value }] ist größer als das Maximum [{ max }]", - "field-invalid-number-range-min": "Das Feld '{ name }' mit [{ value }] ist kleiner als das Minimum [{ min }]", - "field-invalid-readonly": "Das Feld '{ name }' kann nur gelesen werden", - "field-invalid-string-option": "Das Feld '{ name }' mit ['{ value }'] ist ungültig. Valide Optionen sind [{ validOptions }]", - "field-invalid-string-pattern": "Das Feld '{ name }' mit ['{ value }'] passt nicht zum Pattern [{ pattern }]", - "forbidden": "Du bist momentan nicht authorisiert diese Aktion durchzuführen", - "invalid-sort-field": "Das Sortierfeld '{ fieldName }' ist invalid. Valide Felder sind: { validFields }", - "list-query-limit-exceeded": "Es können nicht mehr als { limit } Ergebnisse von einer Listenanfrage erhalten werden", - "no-active-tax-zone": "Die aktive Steuerzone konnte nicht definiert werden. Es wird ein valider Steuercode für diesen Kanal benötigt.", - "no-configurable-operation-def-with-code-found": "Es wurde kein { type } mit dem code '{ code }' gefunden", - "no-price-found-for-channel": "Es wurden keine Preisinformationen für die ProductVariant ID '{ variantId }' in dem Kanal '{ channel }' gefunden.", - "no-search-plugin-configured": "Es wurde kein Such Plugin konfiguriert", - "order-does-not-contain-line-with-id": "Die Bestellung beeinhaltet keine OrderLine mit der id { id }", - "pending-identifier-missing": "Die ausstehende email address konnte nicht gefunden werden", - "permission-invalid": "Die Berechtigung \"{ permission }\" wurde nicht zugewiesen", - "products-cannot-be-removed-from-default-channel": "Produkte können nicht vom Standard channel entfernt werden", - "product-id-or-slug-must-be-provided": "Entweder Produkt id oder slug müssen angegeben werden", - "product-id-slug-mismatch": "Die angegebene id und slug verweisen zu unterschiedlichen Produkten", - "product-variant-option-ids-not-compatible": "ProductVariant optionIds müssen eine optionId von jeder dieser Gruppen enthalten: {groupNames}", - "product-variant-options-combination-already-exists": "Eine ProductVariant mit den folgenden Optionen existiert bereits: {optionNames}", - "promotion-channels-can-only-be-changed-from-default-channel": "Promotions channels können nur vom Standard Kanal aus verändert werden", - "stockonhand-cannot-be-negative": "stockOnHand kann keinen negativen Wert betragen", - "unauthorized": "Die Anmeldedaten passen nicht. Bitte überprüfen und erneut versuchen" + "cannot-modify-role": "Die Rolle \"{ roleCode }\" kann nicht geändert werden", + "cannot-create-sales-for-active-order": "Es kann kein Sale für eine aktive Bestellung erstellt werden", + "cannot-move-collection-into-self": "Es kann keine Sammlung in sich selbst verschoben werden", + "cannot-transition-payment-from-to": "Die Zahlung kann nicht von \"{ fromState }\" zu \"{ toState }\" geändert werden", + "cannot-transition-refund-from-to": "Die Rückerstattung kann nicht von \"{ fromState }\" zu \"{ toState }\" geändert werden", + "cannot-transition-fulfillment-from-to": "Die Versandmethode kann nicht von \"{ fromState }\" zu \"{ toState }\" geändert werden", + "collection-id-or-slug-must-be-provided": "Entweder die Sammlungs-ID oder der Slug muss angegeben werden", + "collection-id-slug-mismatch": "Die angegebene ID und der Slug gehören zu unterschiedlichen Sammlungen", + "conditions-required-for-action": "Die PromotionAction \"{ action }\" erfordert die folgende Bedingung: { conditions }", + "configurable-argument-is-required": "Das Feld \"{ name }\" ist erforderlich", + "country-code-not-valid": "Der Landescode \"{ countryCode }\" konnte nicht gefunden werden", + "customer-does-not-belong-to-customer-group": "Der Kunde gehört nicht zu dieser Kundengruppe", + "default-channel-not-found": "Der Standardkanal konnte nicht gefunden werden", + "entity-has-no-translation-in-language": "Übersetzbare Entity \"{ entityName }\" wurde nicht in die geforderte Sprache übersetzt ({ languageCode })", + "entity-with-id-not-found": "Es konnte kein/e { entityName } mit der ID \"{ id }\" gefunden werden", + "facetfilterinput-invalid-input": "Ein FacetValueFilterInput-Objekt kann nicht \"and\" und \"or\" Felder gleichzeitig haben", + "field-invalid-datetime-range-max": "Das Feld \"{ name }\" mit [{ value }] ist größer als das Maximum [{ max }]", + "field-invalid-datetime-range-min": "Das Feld \"{ name }\" mit [{ value }] ist kleiner als das Minimum [{ min }]", + "field-invalid-non-nullable": "Das Feld \"{ name }\" kann nicht null gesetzt werden", + "field-invalid-number-range-max": "Das Feld \"{ name }\" mit [{ value }] ist größer als das Maximum [{ max }]", + "field-invalid-number-range-min": "Das Feld \"{ name }\" mit [{ value }] ist kleiner als das Minimum [{ min }]", + "field-invalid-readonly": "Das Feld \"{ name }\" kann nur gelesen werden", + "field-invalid-string-option": "Das Feld \"{ name }\" mit dem Wert [\"{ value }\"] ist ungültig. Gültige Optionen sind: [{ validOptions }]", + "field-invalid-string-pattern": "Das Feld \"{ name }\" mit dem Wert [\"{ value }\"] passt nicht zum Muster [{ pattern }]", + "forbidden": "Du bist momentan nicht autorisiert diese Aktion durchzuführen", + "invalid-sort-field": "Das Sortierfeld \"{ fieldName }\" ist ungültig. Gültige Felder sind: { validFields }", + "list-query-limit-exceeded": "Es können nicht mehr als { limit } Einträge gleichzeitig abgefragt werden", + "no-active-tax-zone": "Es konnte keine aktive Steuerzone für diesen Kanal gefunden werden", + "no-configurable-operation-def-with-code-found": "Es konnte kein { type } mit dem code \"{ code }\" gefunden werden", + "no-price-found-for-channel": "Es konnten keine Preisinformationen für die Produktvariante mit der ID \"{ variantId }\" in dem Kanal \"{ channel }\" gefunden werden", + "no-search-plugin-configured": "Es wurde kein Suchplugin konfiguriert", + "order-does-not-contain-line-with-id": "Die Bestellung beeinhaltet keine OrderLine mit der ID { id }", + "pending-identifier-missing": "Die zu ändernde E-Mail-Adresse konnte nicht gefunden werden", + "permission-invalid": "Die Berechtigung \"{ permission }\" kann nicht zugewiesen werden", + "products-cannot-be-removed-from-default-channel": "Produkte können nicht aus dem Standardkanal entfernt werden", + "product-id-or-slug-must-be-provided": "Entweder eine Produkt-ID oder Slug müssen angegeben werden", + "product-id-slug-mismatch": "Die angegebene ID und Slug verweisen zu unterschiedlichen Produkten", + "product-variant-option-ids-not-compatible": "Die optionIds einer Produktvariante müssen eine optionId aus jeder dieser Gruppen enthalten: {groupNames}", + "product-variant-options-combination-already-exists": "Eine Produktvariante mit den gewählten Optionen existiert bereits: {variantName}", + "promotion-channels-can-only-be-changed-from-default-channel": "Werbeaktionskanäle können nur vom Standardkanal aus geändert werden", + "stockonhand-cannot-be-negative": "Die Bestandsmenge kann nicht negativ sein", + "unauthorized": "Die Anmeldedaten sind falsch oder uns nicht bekannt, bitte versuchen Sie es erneut." }, "errorResult": { - "ALREADY_CANCELLED_ERROR": "Zu stornierende Menge ist größer als existierende OrderLine Menge", - "ALREADY_LOGGED_IN_ERROR": "Es kann kein Kunden für die Bestellung gesetzt werden wenn dieser bereits eingeloggt ist", - "ALREADY_REFUNDED_ERROR": "Es kann kein OrderItem rückerstatten werden, welches schon erstattet wurde", - "CANCEL_ACTIVE_ORDER_ERROR": "Es kann keine OrderLine storniert werden, wenn die Bestellung in dem Status \"{ orderState }\" ist", - "CHANNEL_DEFAULT_LANGUAGE_ERROR": "Die Sprache \"{ language }\" kann nicht verstellt werden da sie als defaultLanguage vom Kanal \"{ channelCode }\" festelegt wurde", - "COUPON_CODE_EXPIRED_ERROR": "Der Coupon code \"{ couponCode }\" ist abgelaufen", - "COUPON_CODE_INVALID_ERROR": "Der Coupon code \"{ couponCode }\" is nicht gültig", - "COUPON_CODE_LIMIT_ERROR": "Der Coupon code kann nicht mehr als {limit, plural, one {once} other {# times}} pro Kunde verwendet werden", - "EMAIL_ADDRESS_CONFLICT_ERROR": "Die Email-Addresse ist nicht verfügbar", + "ALREADY_LOGGED_IN_ERROR": "Der Bestellung kann kein Kunde zugewiesen werden, wenn dieser bereits eingeloggt ist", + "ALREADY_REFUNDED_ERROR": "Es kann kein OrderItem zurückerstattet werden, welches bereits erstattet wurde", + "CANCEL_ACTIVE_ORDER_ERROR": "Es kann keine OrderLine storniert werden, wenn die Bestellung den Status \"{ orderState }\" hat", + "CHANNEL_DEFAULT_LANGUAGE_ERROR": "Die Sprache \"{ language }\" kann nicht geändert werden, da sie als Standardsprache vom Kanal \"{ channelCode }\" festelegt wurde", + "COUPON_CODE_EXPIRED_ERROR": "Der Gutscheincode \"{ couponCode }\" ist abgelaufen", + "COUPON_CODE_INVALID_ERROR": "Der Gutscheincode \"{ couponCode }\" ist ungültig", + "COUPON_CODE_LIMIT_ERROR": "Der Gutscheincode kann nicht mehr als {limit, plural, one {ein Mal} other {# Mal}} pro Kunde verwendet werden", + "EMAIL_ADDRESS_CONFLICT_ERROR": "Die E-Mail-Adresse ist nicht verfügbar", "EMPTY_ORDER_LINE_SELECTION_ERROR": "Mindestens eine OrderLine muss spezifiziert werden", - "IDENTIFIER_CHANGE_TOKEN_INVALID_ERROR": "Identifier change token nicht gefunden", - "INELIGIBLE_SHIPPING_METHOD_ERROR": "Diese Bestellung ist für die gewählte Versandart nicht geeignet", - "INSUFFICIENT_STOCK_ERROR": "{quantityAvailable, plural, =0 {No items were} Ein {Only 1 item was} other {Only # items were}} wurde zur order hinzugefügt wegen fehlendem Inventar", - "INSUFFICIENT_STOCK_ON_HAND_ERROR": "Es kann keine Lieferung von '{productVariantName}' erstellen werden, da der stockOnHand ({stockOnHand}) zu gering ist", - "INVALID_CREDENTIALS_ERROR": "Die eingegebenen Anmeldedaten sind falsch", - "ITEMS_ALREADY_FULFILLED_ERROR": "Ein oder mehr OrderItems sind bereit Teil der Lieferung", - "LANGUAGE_NOT_AVAILABLE_ERROR": "Die Sprache \"{languageCode}\" ist nicht vorhanden. Ändere die globalen Einstellung und versuche es nochmal", - "MANUAL_PAYMENT_STATE_ERROR": "Eine manuelle Bezahlung kann nur im \"ArrangingAdditionalPayment\" Zustand hinzugefügt werden", - "MIME_TYPE_ERROR": "Der MIME type '{ mimeType }' ist nicht erlaubt", - "MISSING_CONDITIONS_ERROR": "Eine Promotion muss eine condition oder einen coupon code enthalten", - "MISSING_PASSWORD_ERROR": "Ein Passwort muss angegeben werden", + "IDENTIFIER_CHANGE_TOKEN_INVALID_ERROR": "Identifier change token nicht erkannt", + "INELIGIBLE_SHIPPING_METHOD_ERROR": "Diese Bestellung ist für die gewählte Versandart nicht qualifiziert", + "INSUFFICIENT_STOCK_ERROR": "Wegen unzureichender Lagermenge {quantityAvailable, plural, =0 {wurden keine} one {wurde nur ein} other {wurden nur #}} Artikel zur Bestellung hinzugefügt", + "INSUFFICIENT_STOCK_ON_HAND_ERROR": "Es kann keine Lieferung von \"{productVariantName}\" erfolgen, da der Lagerbestand ({stockOnHand}) zu gering ist", + "INVALID_CREDENTIALS_ERROR": "Die angegebenen Anmeldedaten sind falsch", + "ITEMS_ALREADY_FULFILLED_ERROR": "Ein oder mehrere Artikel sind bereits Teil einer Lieferung", + "LANGUAGE_NOT_AVAILABLE_ERROR": "Die Sprache \"{languageCode}\" ist nicht vorhanden. Aktiviere sie erst in den globalen Einstellungen und versuche es erneut", + "MANUAL_PAYMENT_STATE_ERROR": "Eine manuelle Zahlung kann nur im Status \"ArrangingAdditionalPayment\" hinzugefügt werden", + "MIME_TYPE_ERROR": "Der Dateityp \"{ mimeType }\" ist nicht erlaubt", + "MISSING_CONDITIONS_ERROR": "Eine Werbeaktion muss eine Bedingung oder einen Gutscheincode enthalten", + "MISSING_PASSWORD_ERROR": "Es muss ein Passwort angegeben werden", "NEGATIVE_QUANTITY_ERROR": "Die Menge eines Artikels kann nicht negativ sein", - "NO_ACTIVE_ORDER_ERROR": "Es gibt keine aktive Bestellung in der momentanen Sitzung", - "NOTHING_TO_REFUND_ERROR": "Es gibt keine Rückerstattung", - "NOT_VERIFIED_ERROR": "Bitte bestätige deine Emailaddresse bevor du dich anmeldest", - "ORDER_LIMIT_ERROR": "Man kann die Artikel nicht hinzufügen. Eine Bestellung kann maximal { maxItems } Artikel enthalten", - "ORDER_MODIFICATION_ERROR": "Der Inhalt der Bestellung kann nur im \"AddingItems\" Zustand verändert werden", - "ORDER_PAYMENT_STATE_ERROR": "Eine Bezahlung kann nur im \"ArrangingPayment\" Zustand hinzugefügt werden", - "ORDER_STATE_TRANSITION_ERROR": "Der Zustand der Bestellung kan nicht von \"{ fromState }\" zu \"{ toState }\" verändert werden", + "NO_ACTIVE_ORDER_ERROR": "Es gibt keine aktive Bestellung in der aktuellen Sitzung", + "NOTHING_TO_REFUND_ERROR": "Es gibt nichts zurückzuerstatten", + "NOT_VERIFIED_ERROR": "Bitte bestätige deine E-Mail-Adresse, bevor du dich anmeldest", + "ORDER_LIMIT_ERROR": "Der Artikel konnte nicht hinzugefügt werden. Eine Bestellung kann maximal { maxItems } Artikel enthalten", + "ORDER_MODIFICATION_ERROR": "Der Inhalt der Bestellung kann nur im Status \"AddingItems\" geändert werden", + "ORDER_PAYMENT_STATE_ERROR": "Eine Zahlung kann nur im Status \"ArrangingPayment\" hinzugefügt werden", + "ORDER_STATE_TRANSITION_ERROR": "Der Status der Bestellung kan nicht von \"{ fromState }\" zu \"{ toState }\" geändert werden", "PASSWORD_ALREADY_SET_ERROR": "Ein Passwort wurde während der Registrierung bereits festgelegt", - "PASSWORD_RESET_TOKEN_EXPIRED_ERROR": "Passwort Reset Token ist leider abgelaufen", - "PASSWORD_RESET_TOKEN_INVALID_ERROR": "Passwort Reset Token ist leider falsch", - "PAYMENT_DECLINED_ERROR": "Bezahlung wurde abgelehnt", - "PAYMENT_FAILED_ERROR": "Bezahlung fehlgeschlagen", - "PAYMENT_ORDER_MISMATCH_ERROR": "Die Bezahlung und OrderLines gehören nicht zueinander", - "PAYMENT_STATE_TRANSITION_ERROR": "Der Zustand der Bezahlung kann nicht von \"{ fromState }\" zu \"{ toState }\" verändert werden", - "PRODUCT_OPTION_IN_USE_ERROR": "Die ProductOptionGroup \"{ optionGroupCode }\" kann nicht entfernt werden, solange sie von {productVariantCount, plural, one {1 ProductVariant} other {# ProductVariants}} benutzt wird", + "PASSWORD_RESET_TOKEN_EXPIRED_ERROR": "Das Token zum Passwortzurücksetzen ist leider abgelaufen", + "PASSWORD_RESET_TOKEN_INVALID_ERROR": "Das Token zum Passwortzurücksetzen ist leider falsch", + "PAYMENT_DECLINED_ERROR": "Die Zahlung wurde abgelehnt", + "PAYMENT_FAILED_ERROR": "Zahlung fehlgeschlagen", + "PAYMENT_ORDER_MISMATCH_ERROR": "Die Zahlung und OrderLines gehören nicht zueinander", + "PAYMENT_STATE_TRANSITION_ERROR": "Der Status der Zahlung kann nicht von \"{ fromState }\" zu \"{ toState }\" geändert werden", + "PRODUCT_OPTION_IN_USE_ERROR": "Die ProductOptionGroup \"{ optionGroupCode }\" kann nicht entfernt werden, solange sie von {productVariantCount, plural, one {einer Produktvariante} other {# Produktvarianten}} genutzt wird", "QUANTITY_TOO_GREAT_ERROR": "Die gewählte Menge ist größer als die verfügbaren OrderItems", - "REFUND_ORDER_STATE_ERROR": "Eine Bestellung kann im Zustand \"{ orderState }\" nicht erstattet werden", + "REFUND_ORDER_STATE_ERROR": "Eine Bestellung kann im Status \"{ orderState }\" nicht erstattet werden", "SETTLE_PAYMENT_ERROR": "Abrechnung der Zahlung fehlgeschlagen", - "VERIFICATION_TOKEN_EXPIRED_ERROR": "Verifizierungs Token abgelaufen. Benutze refreshCustomerVerification um ein neuen Token zu erhalten", - "VERIFICATION_TOKEN_INVALID_ERROR": "Verifizierungs Token nicht gefunden" + "VERIFICATION_TOKEN_EXPIRED_ERROR": "Verifizierungstoken abgelaufen. Benutze refreshCustomerVerification um einen neuen Token zu versenden", + "VERIFICATION_TOKEN_INVALID_ERROR": "Verifizierungstoken nicht gefunden" }, "message": { - "asset-to-be-deleted-is-featured": "Der gewählte {assetCount, plural, one {Asset is} other {Assets are}} soll gelöscht werden, ist aber enthalten in {products, plural, =0 {} one {1 Product} other {# Products}} {variants, plural, =0 {} one { 1 ProductVariant} other { # ProductVariants}} {collections, plural, =0 {} one { 1 Collection} other { # Collections}}", - "cannot-remove-tax-category-due-to-tax-rates": "Die TaxCategory \"{ name }\" kann nicht entfernt werden, da sie in {count, plural, one {1 TaxRate} other {# TaxRates}} enthalten ist", - "cannot-transition-from-arranging-additional-payment": "Der Übergang von dem \"ArrangingAdditionalPayment\" Zustand funktioniert nur wenn die Bestellsumme vollständig beglichen wurde", + "asset-to-be-deleted-is-featured": "{assetCount, plural, one {Das gewählte Asset wird} other {Die gewählten Assets werden}} von {products, plural, =0 {} one {einem Produkt} other {# Produkten}} {variants, plural, =0 {} one {einer Produktvariante} other {# Produktvarianten}} {collections, plural, =0 {} one {einer Sammlung} other {# Sammlungen}} verwendet", + "cannot-remove-tax-category-due-to-tax-rates": "Die Steuerkategorie \"{ name }\" kann nicht entfernt werden, da sie {count, plural, one {einen Steuersatz} other {# Steuersätze}} beinhaltet", + "cannot-transition-from-arranging-additional-payment": "Der Übergang von dem Status \"ArrangingAdditionalPayment\" funktioniert nur, wenn die Bestellsumme vollständig beglichen wurde", "cannot-transition-order-from-to": "Der Übergang von \"{ fromState }\" zu \"{ toState }\" funktioniert nicht", - "cannot-transition-no-additional-payments-needed": "Die Bestellung kann nicht zum \"ArrangingAdditionalPayment\" Zustand übergehen, da keine zusätzliche Bezahlung benötigt wird", - "cannot-transition-to-shipping-when-order-is-empty": "Die Bestellung kann nicht zum \"ArrangingShipping\" Zustand übergehen, wenn sie leer ist", - "cannot-transition-to-payment-without-customer": "Die Bestellung kann ohne die Kunden Details nicht zum \"ArrangingPayment\" Zustand übergehen", - "cannot-transition-unless-all-cancelled": "Die Bestellung kann erst zum \"Cancelled\" Zustand übergehen, wenn alle OrderItems vorher storniert wurden", - "cannot-transition-unless-all-order-items-delivered": "Die Bestellung kann erst zum \"Delivered\" Zustand übergehen, wenn alle OrderItems geliefert sind", - "cannot-transition-unless-some-order-items-delivered": "Die Bestellung kann erst zum \"PartiallyDelivered\" Zustand übergehen, wenn einige OrderItems geliefert wurden", - "cannot-transition-unless-some-order-items-shipped": "Die Bestellung kann erst zum \"PartiallyShipped\" Zustand übergehen, wenn einige OrderItems versandt zu haben", - "cannot-transition-unless-all-order-items-shipped": "Die Bestellung kann erst zum \"Shipped\" Zustand übergehen, wenn alle OrderItems versandt sind", - "cannot-transition-without-authorized-payments": "Die Bestellung kann nicht zum \"PaymentAuthorized\" Zustand übergehen, wenn die Summe nicht durch autorisierte Zahlungen gedeckt ist", - "cannot-transition-without-modification-payment": "Die Bestellung kann nur in den Zustand \"ArrangingAdditionalPayment\" übergehen", - "cannot-transition-without-settled-payments": "Die Bestellung kann nicht in den Zustand \"PaymentSettled\" übergehen, wenn die Summe nicht durch abgerechnete Zahlungen gedeckt ist", - "country-used-in-addresses": "Das gewählte Land kann nicht gelöscht werden, da es in {count, plural, one {1 Address} other {# Addresses}} genutzt wird", - "facet-force-deleted": "Die Facette wurde gelöscht und der FacetValues wurde von {products, plural, =0 {} one {1 Product} other {# Products}}{both, select, both { , } single {}}{variants, plural, =0 {} one {1 ProductVariant} other {# ProductVariants}} entfernt", - "facet-used": "Die ausgewählte Facette enthält FacetValues, die zu: {products, plural, =0 {} one {1 Product} other {# Products}}{both, select, both { , } single {}}{variants, plural, =0 {} one {1 ProductVariant} other {# ProductVariants}} zugewiesen sind", - "facet-value-force-deleted": "Der gewählte FacetValue wurde von {products, plural, =0 {} one {1 Product} other {# Products}}{both, select, both { , } single {}}{variants, plural, =0 {} one {1 ProductVariant} other {# ProductVariants}} entfernt und gelöscht", - "facet-value-used": "Der gewählte FacetValue wurde zu {products, plural, =0 {} one {1 Product} other {# Products}}{both, select, both { , } single {}}{variants, plural, =0 {} one {1 ProductVariant} other {# ProductVariants}} zugewiesen", - "payment-method-used-in-channels": "Die gewählte Zahlungsmethode den folgenden Kanälen zugewiesen: { channelCodes }. Mit \"force: true\" wird sie von allen Kanälen entfernt.", + "cannot-transition-no-additional-payments-needed": "Die Bestellung kann nicht zum Status \"ArrangingAdditionalPayment\" übergehen, da keine zusätzliche Zahlung benötigt wird", + "cannot-transition-to-shipping-when-order-is-empty": "Die Bestellung kann nicht zum Status \"ArrangingShipping\" übergehen, da sie leer ist", + "cannot-transition-to-payment-without-customer": "Die Bestellung kann ohne die Kundendetails nicht zum Status \"ArrangingPayment\" übergehen", + "cannot-transition-unless-all-cancelled": "Die Bestellung kann erst zum Status \"Cancelled\" übergehen, wenn alle OrderItems vorher storniert wurden", + "cannot-transition-unless-all-order-items-delivered": "Die Bestellung kann erst zum Status \"Delivered\" übergehen, wenn alle OrderItems geliefert sind", + "cannot-transition-unless-some-order-items-delivered": "Die Bestellung kann erst zum Status \"PartiallyDelivered\" übergehen, wenn einige OrderItems geliefert wurden", + "cannot-transition-unless-some-order-items-shipped": "Die Bestellung kann erst zum Status \"PartiallyShipped\" übergehen, wenn einige OrderItems versendet wurden", + "cannot-transition-unless-all-order-items-shipped": "Die Bestellung kann erst zum Status \"Shipped\" übergehen, wenn alle OrderItems versandt sind", + "cannot-transition-without-authorized-payments": "Die Bestellung kann nicht zum Status \"PaymentAuthorized\" übergehen, da die Summe nicht durch autorisierte Zahlungen gedeckt ist", + "cannot-transition-without-modification-payment": "Die Bestellung kann nur in den Status \"ArrangingAdditionalPayment\" übergehen", + "cannot-transition-without-settled-payments": "Die Bestellung kann nicht in den Status \"PaymentSettled\" übergehen, da die Summe noch nicht komplett abgerechnet ist", + "country-used-in-addresses": "Das gewählte Land kann nicht gelöscht werden, da es von {count, plural, one {einer Adresse} other {# Adressen}} genutzt wird", + "facet-force-deleted": "Die Facette wurde gelöscht und ihre FacetValues wurden von {products, plural, =0 {} one {einem Produkt} other {# Produkten}}{both, select, both { und } single {}}{variants, plural, =0 {} one {einer Produktvariante} other {# Produktvariantem}} entfernt", + "facet-used": "Die ausgewählte Facette enthält FacetValues, die {products, plural, =0 {} one {einem Produkt} other {# Produkten}}{both, select, both { und } single {}}{variants, plural, =0 {} one {einer Produktvariante} other {# Produktvarianten}} zugewiesen sind", + "facet-value-force-deleted": "Der gewählte FacetValue wurde von {products, plural, =0 {} one {einem Produkt} other {# Produkten}}{both, select, both { und } single {}}{variants, plural, =0 {} one {einer Produktvariante} other {# Produktvarianten}} entfernt und gelöscht", + "facet-value-used": "Der gewählte FacetValue wurde {products, plural, =0 {} one {einem Produkt} other {# Produkten}}{both, select, both { und } single {}}{variants, plural, =0 {} one {einer Produktvariante} other {# Produktvarianten}} zugewiesen", + "payment-method-used-in-channels": "Die gewählte Zahlungsmethode wird von den folgenden Kanälen verwendet: { channelCodes }. Mit \"force: true\" wird sie von allen Kanälen entfernt.", "zone-used-in-channels": "Die ausgewählte Zone kann nicht gelöscht werden, da sie als Standard in den folgenden Kanälen verwendet wird: { channelCodes }", - "zone-used-in-tax-rates": "Die ausgewählte Zone kann nicht gelöscht werden, da sie in den folgenden TaxRates verwendet wird: { taxRateNames }" + "zone-used-in-tax-rates": "Die ausgewählte Zone kann nicht gelöscht werden, da sie in den folgenden Steuersätzen verwendet wird: { taxRateNames }" } } \ No newline at end of file diff --git a/packages/core/src/i18n/messages/en.json b/packages/core/src/i18n/messages/en.json index 442b16887a..9ecfdd3820 100644 --- a/packages/core/src/i18n/messages/en.json +++ b/packages/core/src/i18n/messages/en.json @@ -11,7 +11,7 @@ "collection-id-or-slug-must-be-provided": "Either the Collection id or slug must be provided", "collection-id-slug-mismatch": "The provided id and slug refer to different Collections", "conditions-required-for-action": "The PromotionAction '{ action }' requires the following conditions: { conditions }", - "configurable-argument-is-required": "The argument '{ name }' is required, but the value is [{ value }]", + "configurable-argument-is-required": "The argument '{ name }' is required", "country-code-not-valid": "The countryCode \"{ countryCode }\" was not recognized", "customer-does-not-belong-to-customer-group": "Customer does not belong to this CustomerGroup", "default-channel-not-found": "Default channel not found", @@ -40,13 +40,12 @@ "product-id-or-slug-must-be-provided": "Either the Product id or slug must be provided", "product-id-slug-mismatch": "The provided id and slug refer to different Products", "product-variant-option-ids-not-compatible": "ProductVariant optionIds must include one optionId from each of the groups: {groupNames}", - "product-variant-options-combination-already-exists": "A ProductVariant already exists with the options: {optionNames}", + "product-variant-options-combination-already-exists": "A ProductVariant with the selected options already exists: {variantName}", "promotion-channels-can-only-be-changed-from-default-channel": "Promotions channels may only be changed from the Default Channel", "stockonhand-cannot-be-negative": "stockOnHand cannot be a negative value", "unauthorized": "The credentials did not match. Please check and try again" }, "errorResult": { - "ALREADY_CANCELLED_ERROR": "Quantity to cancel is greater than existing OrderLine quantity", "ALREADY_LOGGED_IN_ERROR": "Cannot set a Customer for the Order when already logged in", "ALREADY_REFUNDED_ERROR": "Cannot refund an OrderItem which has already been refunded", "CANCEL_ACTIVE_ORDER_ERROR": "Cannot cancel OrderLines from an Order in the \"{ orderState }\" state", diff --git a/packages/core/src/service/helpers/config-arg/config-arg.service.ts b/packages/core/src/service/helpers/config-arg/config-arg.service.ts index c04ec60377..ca7d9e9231 100644 --- a/packages/core/src/service/helpers/config-arg/config-arg.service.ts +++ b/packages/core/src/service/helpers/config-arg/config-arg.service.ts @@ -103,7 +103,6 @@ export class ConfigArgService { if (val == null) { throw new UserInputError('error.configurable-argument-is-required', { name, - value: String(val), }); } } diff --git a/packages/core/src/service/services/product-variant.service.ts b/packages/core/src/service/services/product-variant.service.ts index 4363ed7642..1b65fe7ae1 100644 --- a/packages/core/src/service/services/product-variant.service.ts +++ b/packages/core/src/service/services/product-variant.service.ts @@ -723,7 +723,7 @@ export class ProductVariantService { const variantOptionIds = this.sortJoin(variant.options, ',', 'id'); if (variantOptionIds === inputOptionIds) { throw new UserInputError('error.product-variant-options-combination-already-exists', { - optionNames: this.sortJoin(variant.options, ', ', 'code'), + variantName: translateDeep(variant, ctx.languageCode).name, }); } });