Skip to content

Commit

Permalink
feat(core): Add French translations for API messages (#2837)
Browse files Browse the repository at this point in the history
  • Loading branch information
saoudi-h authored May 8, 2024
1 parent 429f88d commit e45e7b7
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/core/src/i18n/i18n.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export class I18nService implements OnModuleInit {
.use(ICU)
.init({
nsSeparator: false,
preload: ['en', 'de', 'ru', 'uk'],
preload: ['en', 'de', 'ru', 'uk', 'fr'],
fallbackLng: 'en',
detection: {
lookupQuerystring: 'languageCode',
Expand Down
138 changes: 138 additions & 0 deletions packages/core/src/i18n/messages/fr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
{
"error": {
"active-user-does-not-have-sufficient-permissions": "L'utilisateur actif ne dispose pas des permissions suffisantes",
"available-currency-codes-must-include-default": "availableCurrencyCodes doit inclure defaultCurrencyCode ({ defaultCurrencyCode })",
"cannot-delete-role": "Le rôle \"{ roleCode }\" ne peut pas être supprimé",
"cannot-delete-sole-superadmin": "Le seul SuperAdmin ne peut pas être supprimé",
"cannot-locate-customer-for-user": "Impossible de localiser un Client pour l'utilisateur",
"cannot-modify-role": "Le rôle \"{ roleCode }\" ne peut pas être modifié",
"cannot-move-collection-into-self": "Impossible de déplacer une Collection dans elle-même",
"cannot-transition-payment-from-to": "Impossible de changer l'état du Paiement de \"{ fromState }\" à \"{ toState }\"",
"cannot-transition-refund-from-to": "Impossible de changer l'état du Remboursement de \"{ fromState }\" à \"{ toState }\"",
"cannot-transition-fulfillment-from-to": "Impossible de changer l'état de l'Exécution de \"{ fromState }\" à \"{ toState }\"",
"channel-not-found": "Aucun Canal avec le token \"{ token }\" n'a été trouvé",
"collection-id-or-slug-must-be-provided": "L'id de la Collection ou le slug doit être fourni",
"collection-id-slug-mismatch": "L'id et le slug fournis font référence à des Collections différentes",
"conditions-required-for-action": "L'action de Promotion \"{ action }\" requiert les conditions suivantes : { conditions }",
"configurable-argument-is-required": "L'argument \"{ name }\" est requis",
"country-code-not-valid": "Le code pays \"{ countryCode }\" n'a pas été reconnu",
"currency-not-available-in-channel": "La devise \"{ currencyCode }\" n'est pas disponible dans le Canal actuel",
"customer-does-not-belong-to-customer-group": "Le client n'appartient pas à ce groupe de clients",
"default-channel-not-found": "Canal par défaut non trouvé",
"entity-has-no-translation-in-language": "L'entité traduisible \"{ entityName }\" n'a pas été traduite dans la langue demandée ({ languageCode })",
"entity-with-id-not-found": "Aucun(e) { entityName } avec l'id \"{ id }\" n'a été trouvé(e)",
"items-cannot-be-removed-from-default-channel": "Les articles ne peuvent pas être retirés du Canal par défaut",
"facetfilterinput-invalid-input": "Un objet FacetValueFilterInput ne peut pas spécifier les champs 'and' et 'or' simultanément",
"field-invalid-datetime-range-max": "La valeur du champ personnalisé \"{ name }\" [{ value }] est supérieure au maximum [{ max }]",
"field-invalid-datetime-range-min": "La valeur du champ personnalisé \"{ name }\" [{ value }] est inférieure au minimum [{ min }]",
"field-invalid-non-nullable": "La valeur du champ personnalisé \"{ name }\" ne peut pas être définie à null",
"field-invalid-no-permission": "Vous n'avez pas les permissions nécessaires pour mettre à jour le champ \"{ name }\"",
"field-invalid-number-range-max": "La valeur du champ personnalisé \"{ name }\" [{ value }] dépasse le maximum [{ max }]",
"field-invalid-number-range-min": "La valeur du champ personnalisé \"{ name }\" [{ value }] est inférieure au minimum [{ min }]",
"field-invalid-readonly": "Le champ personnalisé \"{ name }\" est en lecture seule",
"field-invalid-string-option": "La valeur du champ personnalisé \"{ name }\" [\"{ value }\"] est invalide. Les options valides sont : [{ validOptions }]",
"field-invalid-string-pattern": "La valeur du champ personnalisé \"{ name }\" [\"{ value }\"] ne correspond pas au motif [{ pattern }]",
"forbidden": "Vous n'êtes actuellement pas autorisé à effectuer cette action",
"invalid-sort-field": "Le champ de tri \"{ fieldName }\" est invalide. Les champs valides sont : { validFields }",
"list-query-limit-exceeded": "Impossible de prendre plus de { limit } résultats dans une requête de liste",
"no-active-tax-zone": "La zone fiscale active n'a pas pu être déterminée. Assurez-vous qu'une zone fiscale par défaut est définie pour le canal actuel.",
"no-configurable-operation-def-with-code-found": "Aucun { type } avec le code \"{ code }\" n'a été trouvé",
"no-price-found-for-channel": "Aucune information de prix n'a été trouvée pour l'ID de la Variante de Produit \"{ variantId}\" dans le Canal \"{ channel }\".",
"no-search-plugin-configured": "Aucun plugin de recherche n'a été configuré",
"order-could-not-be-determined-or-created": "Aucune Commande active n'a pu être déterminée ni créée",
"order-does-not-contain-line-with-id": "Cette commande ne contient pas de Ligne de Commande avec l'id { id }",
"pending-identifier-missing": "L'adresse e-mail en attente de mise à jour n'a pas pu être trouvée",
"permission-invalid": "La permission \"{ permission }\" ne peut pas être attribuée",
"product-id-or-slug-must-be-provided": "L'id du Produit ou le slug doit être fourni",
"product-id-slug-mismatch": "L'id et le slug fournis font référence à des Produits différents",
"product-option-group-already-assigned": "Le groupe d'options de produit \"{ groupCode }\" est déjà attribué au produit \"{ productName }\"",
"product-variant-option-ids-not-compatible": "Les optionIds de la Variante de Produit doivent inclure un optionId de chaque groupe : {groupNames}",
"product-variant-options-combination-already-exists": "Une Variante de Produit avec les options sélectionnées existe déjà : {variantName}",
"promotion-channels-can-only-be-changed-from-default-channel": "Les canaux de promotion peuvent uniquement être modifiés à partir du Canal par défaut",
"stockonhand-cannot-be-negative": "stockOnHand ne peut pas être une valeur négative",
"superadmin-must-have-superadmin-role": "Il n'est pas possible de retirer le rôle de SuperAdmin au seul SuperAdmin",
"target-customer-not-assigned-to-order-channels": "Le Client ciblé n'est pas assigné aux mêmes Canaux que la Commande. IDs de canaux manquants : { missingChannelIds }",
"unauthorized": "Les informations d'identification ne correspondent pas. Veuillez vérifier et réessayer"
},
"errorResult": {
"ALREADY_LOGGED_IN_ERROR": "Impossible d'attribuer un Client à la Commande lorsqu'on est déjà connecté",
"ALREADY_REFUNDED_ERROR": "Impossible de rembourser un Article de la Commande qui a déjà été remboursé",
"CANCEL_ACTIVE_ORDER_ERROR": "Impossible d'annuler des Lignes de Commande d'une Commande dans l'état \"{ orderState }\"",
"CANCEL_PAYMENT_ERROR": "L'annulation du paiement a échoué",
"CHANNEL_DEFAULT_LANGUAGE_ERROR": "Impossible de rendre la langue \"{ language }\" indisponible car elle est utilisée comme langue par défaut par le canal \"{ channelCode }\"",
"COUPON_CODE_EXPIRED_ERROR": "Le code coupon \"{ couponCode }\" a expiré",
"COUPON_CODE_INVALID_ERROR": "Le code coupon \"{ couponCode }\" n'est pas valide",
"COUPON_CODE_LIMIT_ERROR": "Le code coupon ne peut pas être utilisé plus de {limit, plural, one {une fois} other {# fois}} par client",
"CREATE_FULFILLMENT_ERROR": "Une erreur s'est produite lors de la tentative de création de l'Exécution",
"DUPLICATE_ENTITY_ERROR": "L'entité n'a pas pu être dupliquée",
"EMAIL_ADDRESS_CONFLICT_ERROR": "L'adresse e-mail n'est pas disponible",
"EMPTY_ORDER_LINE_SELECTION_ERROR": "Au moins une Ligne de Commande doit être spécifiée",
"FACET_IN_USE_ERROR": "Le Facet \"{ facetCode }\" inclut des FacetValues qui sont attribués à {productCount, plural, =0 {} one {1 Produit} other {# Produits}} {variantCount, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}}",
"IDENTIFIER_CHANGE_TOKEN_INVALID_ERROR": "Le jeton de changement d'identifiant n'est pas reconnu",
"INELIGIBLE_SHIPPING_METHOD_ERROR": "Cette Commande n'est pas éligible pour la Méthode d'Expédition sélectionnée",
"INSUFFICIENT_STOCK_ERROR": "{quantityAvailable, plural, =0 {Aucun article n'a été} one {Seul un article a été} other {Seulement # articles ont été}} ajouté(s) à la commande en raison d'un stock insuffisant",
"INSUFFICIENT_STOCK_ON_HAND_ERROR": "Impossible de créer une Exécution car \"{productVariantName}\" a un stockOnHand insuffisant ({stockOnHand})",
"INVALID_CREDENTIALS_ERROR": "Les informations d'identification fournies sont invalides",
"ITEMS_ALREADY_FULFILLED_ERROR": "Un ou plusieurs Articles de la Commande font déjà partie d'une Exécution",
"LANGUAGE_NOT_AVAILABLE_ERROR": "La langue \"{languageCode}\" n'est pas disponible. Activez-la d'abord via les Paramètres Globaux et réessayez",
"MANUAL_PAYMENT_STATE_ERROR": "Un paiement manuel ne peut être ajouté que dans l'état \"ArrangingPayment\" ou \"ArrangingAdditionalPayment\"",
"MIME_TYPE_ERROR": "Le type MIME \"{ mimeType }\" n'est pas autorisé.",
"MISSING_CONDITIONS_ERROR": "Une Promotion doit avoir au moins une condition ou un code coupon défini",
"MISSING_PASSWORD_ERROR": "Un mot de passe doit être fourni",
"NEGATIVE_QUANTITY_ERROR": "La quantité pour un Article de la Commande ne peut pas être négative",
"NO_ACTIVE_ORDER_ERROR": "Il n'y a aucune Commande active associée à la session en cours",
"NOTHING_TO_REFUND_ERROR": "Rien à rembourser",
"NOT_VERIFIED_ERROR": "Veuillez vérifier cette adresse e-mail avant de vous connecter",
"ORDER_LIMIT_ERROR": "Impossible d'ajouter des articles. Une commande peut comprendre un maximum de { maxItems } articles",
"ORDER_MODIFICATION_ERROR": "Le contenu de la Commande peut uniquement être modifié dans l'état \"AddingItems\"",
"ORDER_PAYMENT_STATE_ERROR": "Un Paiement ne peut être ajouté que lorsque la Commande est dans l'état \"ArrangingPayment\"",
"ORDER_STATE_TRANSITION_ERROR": "Impossible de changer l'état de la Commande de \"{ fromState }\" à \"{ toState }\"",
"PASSWORD_ALREADY_SET_ERROR": "Un mot de passe a déjà été défini lors de l'inscription",
"PASSWORD_RESET_TOKEN_EXPIRED_ERROR": "Le jeton de réinitialisation du mot de passe a expiré",
"PASSWORD_RESET_TOKEN_INVALID_ERROR": "Le jeton de réinitialisation du mot de passe n'est pas reconnu",
"PASSWORD_VALIDATION_ERROR": "Le mot de passe est invalide",
"PAYMENT_DECLINED_ERROR": "Le paiement a été refusé",
"PAYMENT_FAILED_ERROR": "Le paiement a échoué",
"PAYMENT_ORDER_MISMATCH_ERROR": "Le Paiement et les Lignes de Commande n'appartiennent pas à la même Commande",
"PAYMENT_STATE_TRANSITION_ERROR": "Impossible de changer l'état du Paiement de \"{ fromState }\" à \"{ toState }\"",
"PRODUCT_OPTION_IN_USE_ERROR": "Impossible de retirer le groupe d'options de produit \"{ optionGroupCode }\" car il est utilisé par {productVariantCount, plural, one {une Variante de Produit} other {# Variantes de Produit}}. Utilisez l'argument `force` pour le retirer malgré tout",
"QUANTITY_TOO_GREAT_ERROR": "La quantité spécifiée est supérieure aux Articles de la Commande disponibles",
"REFUND_AMOUNT_ERROR": "Le montant spécifié dépasse le montant remboursable pour ce paiement",
"REFUND_ORDER_STATE_ERROR": "Impossible de rembourser une Commande dans l'état \"{ orderState }\"",
"SETTLE_PAYMENT_ERROR": "L'établissement du paiement a échoué",
"VERIFICATION_TOKEN_EXPIRED_ERROR": "Le jeton de vérification a expiré. Utilisez refreshCustomerVerification pour envoyer un nouveau jeton.",
"VERIFICATION_TOKEN_INVALID_ERROR": "Le jeton de vérification n'est pas reconnu"
},
"message": {
"asset-to-be-deleted-is-featured": "L'{assetCount, plural, one {Asset est} other {Assets sont}} présenté(s) par {products, plural, =0 {} one {1 Produit} other {# Produits}} {variants, plural, =0 {} one { 1 Variante de Produit} other { # Variantes de Produit}} {collections, plural, =0 {} one { 1 Collection} other { # Collections}}",
"cannot-delete-last-stock-location": "L'emplacement de stockage restant ne peut pas être supprimé",
"cannot-remove-tax-category-due-to-tax-rates": "Impossible de retirer la Catégorie Fiscale \"{ name }\" car elle est référencée par {count, plural, one {1 Taux Fiscal} other {# Taux Fiscaux}}",
"cannot-transition-order-contains-products-which-are-unavailable": "Impossible de passer à \"{ toState }\" car la Commande contient des Variantes de Produit qui ne sont plus disponibles",
"cannot-transition-from-arranging-additional-payment": "Impossible de passer de \"ArrangingAdditionalPayment\" à moins que le total de la Commande ne soit couvert par des Paiements",
"cannot-transition-order-from-to": "Impossible de changer l'état de la Commande de \"{ fromState }\" à \"{ toState }\"",
"cannot-transition-no-additional-payments-needed": "Impossible de passer la Commande à l'état \"ArrangingAdditionalPayment\" car aucun paiement supplémentaire n'est nécessaire",
"cannot-transition-to-shipping-when-order-is-empty": "Impossible de passer la Commande à l'état \"ArrangingShipping\" lorsque celle-ci est vide",
"cannot-transition-to-payment-due-to-insufficient-stock": "Impossible de passer la Commande à l'état \"ArrangingPayment\" en raison d'un stock insuffisant de { productVariantNames }",
"cannot-transition-to-payment-without-customer": "Impossible de passer la Commande à l'état \"ArrangingPayment\" sans les détails du Client",
"cannot-transition-to-payment-without-shipping-method": "Impossible de passer la Commande à l'état \"ArrangingPayment\" sans Méthode d'Expédition",
"cannot-transition-unless-all-cancelled": "Impossible de passer la Commande à l'état \"Cancelled\" à moins que tous les Articles de la Commande ne soient annulés",
"cannot-transition-unless-all-order-items-delivered": "Impossible de passer la Commande à l'état \"Delivered\" à moins que tous les Articles de la Commande ne soient livrés",
"cannot-transition-unless-some-order-items-delivered": "Impossible de passer la Commande à l'état \"PartiallyDelivered\" à moins que certains Articles de la Commande ne soient livrés",
"cannot-transition-unless-some-order-items-shipped": "Impossible de passer la Commande à l'état \"PartiallyShipped\" à moins que certains Articles de la Commande ne soient expédiés",
"cannot-transition-unless-all-order-items-shipped": "Impossible de passer la Commande à l'état \"Shipped\" à moins que tous les Articles de la Commande ne soient expédiés",
"cannot-transition-without-authorized-payments": "Impossible de passer la Commande à l'état \"PaymentAuthorized\" lorsque le total n'est pas couvert par des Paiements autorisés",
"cannot-transition-without-modification-payment": "Peut seulement passer à l'état \"ArrangingAdditionalPayment\"",
"cannot-transition-without-settled-payments": "Impossible de passer la Commande à l'état \"PaymentSettled\" lorsque le total n'est pas couvert par des Paiements réglés",
"country-used-in-addresses": "Le Pays sélectionné ne peut pas être supprimé car il est utilisé dans {count, plural, one {1 Adresse} other {# Adresses}}",
"entity-duplication-no-permission": "Vous n'avez pas les permissions nécessaires pour dupliquer cette entité",
"entity-duplication-no-strategy-found": "Aucune stratégie de duplication avec le code \"{ code }\" n'a été trouvée pour le type d'entité \"{ entityName }\"",
"facet-force-deleted": "Le Facet a été supprimé et ses FacetValues ont été retirés de {products, plural, =0 {} one {1 Produit} other {# Produits}}{both, select, both {, } single {} other {}}{variants, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}}",
"facet-used": "Le Facet \"{ facetCode }\" inclut des FacetValues qui sont attribués à {products, plural, =0 {} one {1 Produit} other {# Produits}}{both, select, both {, } single {} other {}}{variants, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}}",
"facet-value-force-deleted": "La FacetValue sélectionnée a été retirée de {products, plural, =0 {} one {1 Produit} other {# Produits}}{both, select, both {, } single {} other {}}{variants, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}} et supprimée",
"facet-value-used": "La FacetValue \"{ facetValueCode }\" est attribuée à {products, plural, =0 {} one {1 Produit} other {# Produits}}{both, select, both {, } single {} other {}}{variants, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}}",
"payment-method-used-in-channels": "La méthode de paiement sélectionnée est assignée aux Canaux suivants : { channelCodes }. Définissez \"force: true\" pour la supprimer de tous les Canaux.",
"product-option-used": "Impossible de supprimer l'option \"{code}\" car elle est utilisée par {count, plural, =0 {} one {1 Variante de Produit} other {# Variantes de Produit}}",
"zone-used-in-channels": "La Zone sélectionnée ne peut pas être supprimée car elle est utilisée comme défaut dans les Canaux suivants : { channelCodes }",
"zone-used-in-tax-rates": "La Zone sélectionnée ne peut pas être supprimée car elle est utilisée dans les Taux Fiscaux suivants : { taxRateNames }"
}
}

0 comments on commit e45e7b7

Please sign in to comment.