@spree/dashboard-core 0.13.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +4 -0
  2. package/dist/vite/index.js +17 -3
  3. package/package.json +7 -7
  4. package/src/api-client.ts +643 -0
  5. package/src/components/address-form-dialog.test.ts +25 -0
  6. package/src/components/address-form-dialog.tsx +203 -79
  7. package/src/components/app-shell.tsx +171 -0
  8. package/src/components/app-sidebar.tsx +184 -27
  9. package/src/components/bulk-action-bar.tsx +89 -157
  10. package/src/components/country-combobox.tsx +69 -34
  11. package/src/components/country-state-fields.tsx +43 -11
  12. package/src/components/currency-select.tsx +81 -66
  13. package/src/components/export-button.tsx +62 -5
  14. package/src/components/file-upload-field.tsx +32 -10
  15. package/src/components/import-button.tsx +97 -36
  16. package/src/components/import-wizard-dialog.tsx +710 -0
  17. package/src/components/locale-select.tsx +70 -57
  18. package/src/components/media-picker-sheet.tsx +307 -0
  19. package/src/components/mobile-top-bar.tsx +75 -0
  20. package/src/components/nav-main.tsx +197 -27
  21. package/src/components/page-header.tsx +203 -61
  22. package/src/components/page-tabs.tsx +4 -1
  23. package/src/components/preferences-form.tsx +98 -4
  24. package/src/components/resource-combobox.tsx +52 -4
  25. package/src/components/resource-picker-sheet.tsx +209 -73
  26. package/src/components/resource-table.tsx +425 -131
  27. package/src/components/route-announcer.tsx +64 -0
  28. package/src/components/section-heading.tsx +95 -0
  29. package/src/components/settings-sidebar.tsx +290 -60
  30. package/src/components/sheet-top-bar.tsx +44 -0
  31. package/src/components/sidebar-search.tsx +83 -0
  32. package/src/components/sidebar-user.tsx +213 -0
  33. package/src/components/skip-link.tsx +36 -0
  34. package/src/components/store-date-picker.tsx +6 -2
  35. package/src/components/store-switcher.tsx +63 -22
  36. package/src/components/table-toolbar.tsx +1373 -442
  37. package/src/components/tag-combobox.tsx +12 -4
  38. package/src/components/top-bar-breadcrumbs.tsx +235 -0
  39. package/src/components/wizard-close-guard.test.ts +54 -0
  40. package/src/hooks/use-auto-collapse-sidebar.ts +57 -0
  41. package/src/hooks/use-command-palette.tsx +13 -0
  42. package/src/hooks/use-countries.test.ts +56 -0
  43. package/src/hooks/use-countries.ts +51 -5
  44. package/src/hooks/use-direct-upload.ts +16 -3
  45. package/src/hooks/use-export.ts +51 -16
  46. package/src/hooks/use-import.ts +261 -14
  47. package/src/hooks/use-package-types.ts +132 -0
  48. package/src/hooks/use-resource-mutation.ts +74 -13
  49. package/src/hooks/use-stock-locations.ts +131 -0
  50. package/src/hooks/use-switch-admin-locale.ts +2 -2
  51. package/src/hooks/use-visual-viewport-offset.ts +61 -0
  52. package/src/index.ts +45 -1
  53. package/src/lib/cancel-order-form.ts +27 -0
  54. package/src/lib/create-action-registry.ts +278 -0
  55. package/src/lib/date-presets.test.ts +86 -0
  56. package/src/lib/date-presets.ts +98 -0
  57. package/src/lib/delivery-form.ts +15 -0
  58. package/src/lib/docs.ts +32 -0
  59. package/src/lib/download.ts +13 -1
  60. package/src/lib/filters-to-ransack.test.ts +113 -0
  61. package/src/lib/filters-to-ransack.ts +22 -1
  62. package/src/lib/form-errors.ts +122 -10
  63. package/src/lib/form-mappers.ts +76 -0
  64. package/src/lib/fulfillment-items.test.ts +213 -0
  65. package/src/lib/fulfillment-items.ts +171 -0
  66. package/src/lib/i18n.ts +19 -11
  67. package/src/lib/import-types.ts +25 -0
  68. package/src/lib/label-upload-form.ts +22 -0
  69. package/src/lib/nav-registry.ts +71 -3
  70. package/src/lib/permissions.ts +46 -1
  71. package/src/lib/progress.ts +18 -0
  72. package/src/lib/query-keys.ts +13 -13
  73. package/src/lib/sample-csv.ts +21 -0
  74. package/src/lib/search-registry.ts +6 -2
  75. package/src/lib/settings-nav-registry.ts +104 -11
  76. package/src/lib/storefront.ts +19 -0
  77. package/src/lib/table-registry.ts +56 -0
  78. package/src/lib/type-labels.test.ts +68 -0
  79. package/src/lib/type-labels.ts +78 -0
  80. package/src/locales/ar.json +1889 -516
  81. package/src/locales/de.json +1883 -515
  82. package/src/locales/en.json +1886 -516
  83. package/src/locales/fr.json +1884 -516
  84. package/src/locales/pl.json +1913 -516
  85. package/src/locales/zh-CN.json +1883 -516
  86. package/src/pages/package-types.tsx +484 -0
  87. package/src/pages/settings-index.tsx +112 -0
  88. package/src/pages/stock-locations.tsx +674 -0
  89. package/src/plugin.ts +29 -0
  90. package/src/products/add-video-dialog.tsx +100 -0
  91. package/src/products/bulk-variants-dialog.tsx +301 -0
  92. package/src/products/carton-size.test.ts +51 -0
  93. package/src/products/carton-size.ts +20 -0
  94. package/src/products/currency-parts.ts +21 -0
  95. package/src/products/inventory-section.tsx +259 -0
  96. package/src/products/media-edit-sheet.tsx +336 -0
  97. package/src/products/normalize-customs.test.ts +39 -0
  98. package/src/products/normalize-customs.ts +27 -0
  99. package/src/products/normalize-money.test.ts +58 -0
  100. package/src/products/normalize-money.ts +73 -0
  101. package/src/products/normalize-quantity.test.ts +32 -0
  102. package/src/products/normalize-quantity.ts +31 -0
  103. package/src/products/product-bulk-price-editor.tsx +165 -0
  104. package/src/products/product-form-cards.tsx +1167 -0
  105. package/src/products/product-form-mapping.ts +212 -0
  106. package/src/products/product-schema.ts +318 -0
  107. package/src/products/product-types.ts +130 -0
  108. package/src/products/use-product-form-data.ts +273 -0
  109. package/src/products/variant-edit-sheet.tsx +725 -0
  110. package/src/products/variants-matrix.test.ts +154 -0
  111. package/src/products/variants-matrix.ts +244 -0
  112. package/src/products/variants-options-builder.tsx +571 -0
  113. package/src/products/variants-section.tsx +535 -0
  114. package/src/products/video-url.test.ts +71 -0
  115. package/src/products/video-url.ts +83 -0
  116. package/src/providers/auth-provider.tsx +70 -12
  117. package/src/providers/permission-provider.tsx +68 -28
  118. package/src/providers/sticky-header-provider.tsx +134 -0
  119. package/src/providers/store-provider.tsx +36 -3
  120. package/src/providers/tenant-provider.tsx +33 -0
  121. package/src/schemas/package-type.ts +95 -0
  122. package/src/schemas/stock-location.ts +126 -0
  123. package/src/tables/package-types.tsx +74 -0
  124. package/src/tables/stock-locations.tsx +124 -0
  125. package/src/vite/index.ts +40 -7
  126. package/src/components/top-bar.tsx +0 -210
@@ -1,365 +1,306 @@
1
1
  {
2
2
  "admin": {
3
+ "app_name": "Spree Admin",
4
+ "a11y": {
5
+ "breadcrumb": "Fil d'Ariane",
6
+ "breadcrumb_more": "Plus",
7
+ "bulk_actions": "Actions groupées",
8
+ "change_color": "Changer la couleur ({{value}})",
9
+ "clear_date": "Effacer la date",
10
+ "clear_selection": "Effacer la sélection",
11
+ "collapse_all": "Tout réduire",
12
+ "delete_image": "Supprimer l'image",
13
+ "drag_to_reorder": "Faire glisser pour réorganiser",
14
+ "edit_media": "Modifier le média",
15
+ "expand_all": "Tout développer",
16
+ "hide_value": "Masquer la valeur",
17
+ "pick_color": "Choisir une couleur",
18
+ "refetch": "Recharger",
19
+ "remove_image": "Retirer l'image",
20
+ "remove_value": "Retirer la valeur",
21
+ "reorder": "Réorganiser",
22
+ "select_all_rows": "Sélectionner toutes les lignes de cette page",
23
+ "select_row": "Sélectionner la ligne",
24
+ "settings_navigation": "Navigation des paramètres",
25
+ "show_value": "Afficher la valeur",
26
+ "sidebar": "Barre latérale",
27
+ "sidebar_description": "Affiche la barre latérale mobile.",
28
+ "stock_at_locations": "Stock par emplacement",
29
+ "store_switcher": "Changer de boutique",
30
+ "toggle_sidebar": "Afficher/masquer la barre latérale",
31
+ "upload_image": "Téléverser une image",
32
+ "user_menu": "Menu utilisateur",
33
+ "view_image": "Voir l'image"
34
+ },
35
+ "account": {
36
+ "community": "Communauté",
37
+ "contact_support": "Contacter le support",
38
+ "documentation": "Documentation",
39
+ "edit_profile": "Modifier le profil",
40
+ "language": {
41
+ "label": "Langue",
42
+ "update_failed": "Impossible d’enregistrer votre préférence de langue. Veuillez réessayer."
43
+ },
44
+ "log_out": "Se déconnecter",
45
+ "preferences": "Préférences",
46
+ "view_store": "Voir la boutique"
47
+ },
3
48
  "actions": {
49
+ "actions_menu": "Actions",
4
50
  "add": "Ajouter",
51
+ "adding": "Ajout…",
5
52
  "apply": "Appliquer",
53
+ "back": "Retour",
6
54
  "cancel": "Annuler",
7
55
  "clear": "Effacer",
8
- "revoke": "Révoquer",
9
56
  "close": "Fermer",
10
57
  "confirm": "Confirmer",
11
- "done": "Terminé",
58
+ "copied": "Copié !",
59
+ "copy": "Copier",
12
60
  "create": "Créer",
13
61
  "creating": "Création…",
14
62
  "delete": "Supprimer",
15
63
  "deleting": "Suppression…",
16
64
  "discard": "Abandonner",
17
65
  "discard_changes": "Abandonner les modifications",
66
+ "done": "Terminé",
67
+ "duplicate": "Dupliquer",
18
68
  "edit": "Modifier",
19
- "view": "Afficher",
69
+ "export": "Exporter",
70
+ "exporting": "Exportation…",
20
71
  "generate": "Générer",
72
+ "hide": "Masquer",
73
+ "import": "Importer",
74
+ "invite": "Inviter",
75
+ "more_actions": "Plus d'actions",
21
76
  "remove": "Retirer",
77
+ "remove_item": "Supprimer {{label}}",
78
+ "remove_rule": "Supprimer la règle",
79
+ "reset": "Réinitialiser",
80
+ "revoke": "Révoquer",
22
81
  "save": "Enregistrer",
23
82
  "saving": "Enregistrement…",
24
83
  "search": "Rechercher",
25
- "sign_in": "Se connecter",
26
- "signing_in": "Connexion…",
27
- "view_all": "Tout afficher",
28
- "view_details": "Voir les détails",
29
- "copy": "Copier",
30
- "copied": "Copié !",
31
- "export": "Exporter",
32
- "exporting": "Exportation…",
33
- "import": "Importer",
34
- "invite": "Inviter",
35
84
  "send": "Envoyer",
36
85
  "send_invitation": "Envoyer l'invitation",
37
86
  "sending": "Envoi…",
38
- "reset": "Réinitialiser",
39
87
  "show": "Afficher",
40
- "hide": "Masquer",
41
- "back": "Retour",
42
- "actions_menu": "Actions",
43
- "more_actions": "Plus d'actions",
44
- "adding": "Ajout…"
88
+ "sign_in": "Se connecter",
89
+ "signing_in": "Connexion…",
90
+ "view": "Afficher",
91
+ "view_all": "Tout afficher",
92
+ "view_details": "Voir les détails"
45
93
  },
46
- "row_actions": {
47
- "menu_label": "Ouvrir les actions",
48
- "edit": "Modifier",
49
- "clone": "Dupliquer",
50
- "delete": "Supprimer"
94
+ "address": {
95
+ "not_located_yet": "La carte apparaît une fois cette adresse localisée."
51
96
  },
52
- "a11y": {
53
- "breadcrumb": "Fil d'Ariane",
54
- "toggle_sidebar": "Afficher/masquer la barre latérale",
55
- "settings_navigation": "Navigation des paramètres",
56
- "user_menu": "Menu utilisateur",
57
- "drag_to_reorder": "Faire glisser pour réorganiser",
58
- "reorder": "Réorganiser",
59
- "select_all_rows": "Sélectionner toutes les lignes de cette page",
60
- "select_row": "Sélectionner la ligne",
61
- "clear_date": "Effacer la date",
62
- "clear_selection": "Effacer la sélection",
63
- "expand_all": "Tout développer",
64
- "collapse_all": "Tout réduire",
65
- "refetch": "Recharger",
66
- "hide_value": "Masquer la valeur",
67
- "show_value": "Afficher la valeur",
68
- "pick_color": "Choisir une couleur",
69
- "change_color": "Changer la couleur ({{value}})",
70
- "stock_at_locations": "Stock par emplacement",
71
- "edit_media": "Modifier le média",
72
- "delete_image": "Supprimer l'image",
73
- "remove_image": "Retirer l'image",
74
- "view_image": "Voir l'image",
75
- "upload_image": "Téléverser une image",
76
- "remove_value": "Retirer la valeur",
77
- "breadcrumb_more": "Plus",
78
- "sidebar": "Barre latérale",
79
- "sidebar_description": "Affiche la barre latérale mobile."
97
+ "address_book": {
98
+ "default_billing": "Facturation par défaut",
99
+ "default_shipping": "Livraison par défaut",
100
+ "set_default_billing": "Définir comme adresse de facturation par défaut",
101
+ "set_default_shipping": "Définir comme adresse de livraison par défaut"
102
+ },
103
+ "auth": {
104
+ "back_to_login": "Retour à la connexion",
105
+ "forgot_password": {
106
+ "error": "Une erreur s'est produite. Veuillez réessayer.",
107
+ "link": "Mot de passe oublié ?",
108
+ "sending": "Envoi…",
109
+ "sent_subtitle": "Si un compte existe pour cet e-mail, un lien de réinitialisation du mot de passe est en route.",
110
+ "sent_title": "Vérifiez vos e-mails",
111
+ "submit": "Envoyer le lien de réinitialisation",
112
+ "subtitle": "Saisissez votre e-mail et nous vous enverrons un lien pour réinitialiser votre mot de passe.",
113
+ "title": "Réinitialiser votre mot de passe"
114
+ },
115
+ "login": {
116
+ "account_not_provisioned": "Ce compte n'est pas autorisé pour cette boutique. Demandez une invitation à un administrateur.",
117
+ "divider": "ou",
118
+ "invalid_oauth_state": "Cette session de connexion a expiré ou n'était pas valide. Veuillez recommencer.",
119
+ "providers_error_message": "Impossible de charger les options de connexion. Veuillez actualiser la page ou contacter votre administrateur.",
120
+ "providers_error_title": "Connexion indisponible",
121
+ "rate_limit_exceeded": "Trop de tentatives de connexion. Veuillez patienter un instant et réessayer.",
122
+ "sso_button": "Continuer avec {{provider}}",
123
+ "sso_failed": "Nous n'avons pas pu vous connecter avec ce fournisseur. Veuillez réessayer.",
124
+ "subtitle": "Connectez-vous à votre compte administrateur",
125
+ "title": "Bon retour"
126
+ },
127
+ "logout": "Se déconnecter",
128
+ "reset_password": {
129
+ "confirm_password_label": "Confirmer le nouveau mot de passe",
130
+ "error": "Une erreur s'est produite. Veuillez réessayer.",
131
+ "missing_token_message": "Il manque le jeton à ce lien de réinitialisation du mot de passe.",
132
+ "missing_token_title": "Lien de réinitialisation invalide",
133
+ "new_password_label": "Nouveau mot de passe",
134
+ "request_new_link": "Demander un nouveau lien de réinitialisation",
135
+ "submit": "Réinitialiser le mot de passe",
136
+ "submitting": "Réinitialisation…",
137
+ "subtitle": "Saisissez un nouveau mot de passe pour votre compte administrateur.",
138
+ "title": "Choisir un nouveau mot de passe",
139
+ "token_invalid": "Ce lien de réinitialisation est invalide ou a expiré. Demandez-en un nouveau."
140
+ }
141
+ },
142
+ "color_picker": {
143
+ "no_color": "Aucune couleur"
80
144
  },
81
145
  "common": {
146
+ "active": "Actif",
147
+ "adjust_search_or_filters": "Essayez d’ajuster votre recherche ou vos filtres",
148
+ "all": "Tout",
149
+ "and": "et",
150
+ "are_you_sure": "Êtes-vous sûr ?",
151
+ "cancel": "Annuler",
152
+ "clear": "Effacer",
153
+ "comma_separated_hint": "Séparez les valeurs par des virgules.",
154
+ "default": "Par défaut",
155
+ "delete_confirm_message": "Êtes-vous sûr ? Cette action est irréversible.",
156
+ "deleted": "Supprimé",
157
+ "empty_value": "—",
158
+ "inactive": "Inactif",
159
+ "learn_more": "En savoir plus",
160
+ "skip_to_content": "Aller au contenu",
82
161
  "loading": "Chargement…",
83
- "searching": "Recherche…",
162
+ "next": "Suivant",
163
+ "no": "Non",
84
164
  "no_results": "Aucun résultat",
165
+ "combobox_more_results_one": "1 résultat de plus non affiché. Saisissez pour rechercher.",
166
+ "combobox_more_results_other": "{{count}} résultats de plus non affichés. Saisissez pour rechercher.",
167
+ "none": "Aucun",
85
168
  "optional": "Facultatif",
86
- "required": "Obligatoire",
87
- "yes": "Oui",
88
- "no": "Non",
89
169
  "or": "ou",
90
- "and": "et",
91
- "all": "Tout",
92
- "none": "Aucun",
93
170
  "page_of": "Page {{page}} sur {{total}}",
94
- "prev": "Précédent",
95
- "next": "Suivant",
96
- "select_placeholder": "Sélectionner…",
97
- "search_placeholder": "Rechercher…",
98
171
  "pick_date": "Choisir une date",
99
- "comma_separated_hint": "Séparez les valeurs par des virgules.",
100
- "are_you_sure": "Êtes-vous sûr ?",
172
+ "prev": "Précédent",
173
+ "prices": "Prix",
101
174
  "remove_question": "Supprimer ?",
102
- "deleted": "Supprimé",
175
+ "required": "Obligatoire",
176
+ "retry": "Réessayer",
177
+ "search_placeholder": "Rechercher…",
178
+ "searching": "Recherche…",
179
+ "select_placeholder": "Sélectionner…",
103
180
  "unsaved_changes": "Vous avez des modifications non enregistrées.",
104
- "prices": "Prix",
105
- "delete_confirm_message": "Êtes-vous sûr ? Cette action est irréversible.",
106
- "adjust_search_or_filters": "Essayez d’ajuster votre recherche ou vos filtres",
107
- "default": "Par défaut",
108
- "cancel": "Annuler",
109
- "empty_value": "—"
110
- },
111
- "color_picker": {
112
- "no_color": "Aucune couleur"
113
- },
114
- "messages": {
115
- "saved": "Enregistré",
116
- "created": "Créé",
117
- "updated": "Mis à jour",
118
- "removed": "Supprimé",
119
- "settings_updated": "Paramètres mis à jour",
120
- "store_settings_updated": "Paramètres de la boutique mis à jour",
121
- "invitation_sent": "Invitation envoyée",
122
- "invitation_resent": "Invitation renvoyée",
123
- "invitation_accepted": "Bienvenue sur Spree",
124
- "key_created": "Clé créée",
125
- "key_updated": "Clé mise à jour",
126
- "key_revoked": "Clé révoquée",
127
- "key_deleted": "Clé supprimée",
128
- "product_saved": "Produit enregistré",
129
- "product_created": "Produit créé",
130
- "product_deleted": "Produit supprimé",
131
- "order_saved": "Commande enregistrée",
132
- "customer_saved": "Client enregistré",
133
- "customer_deleted": "Client supprimé",
134
- "payment_method_saved": "Moyen de paiement enregistré",
135
- "tax_category_saved": "Catégorie de taxe enregistrée",
136
- "stock_location_saved": "Emplacement de stock enregistré",
137
- "promotion_created": "Promotion créée",
138
- "promotion_saved": "Promotion enregistrée",
139
- "promotion_deleted": "Promotion supprimée",
140
- "gift_card_created": "Carte cadeau créée",
141
- "address_saved": "Adresse enregistrée",
142
- "address_removed": "Adresse supprimée",
143
- "store_credit_saved": "Avoir enregistré",
144
- "store_credit_removed": "Avoir supprimé",
145
- "copied_to_clipboard": "Copié dans le presse-papiers",
146
- "profile_updated": "Profil mis à jour"
147
- },
148
- "errors": {
149
- "required": "Ce champ est obligatoire",
150
- "generic": "Une erreur s'est produite",
151
- "unexpected": "Une erreur inattendue s'est produite",
152
- "failed_to_load": "Échec du chargement",
153
- "failed_to_save": "Échec de l'enregistrement",
154
- "failed_to_update": "Échec de la mise à jour",
155
- "failed_to_create": "Échec de la création",
156
- "failed_to_delete": "Échec de la suppression",
157
- "failed_to_load_customer": "Échec du chargement du client",
158
- "failed_to_load_order": "Échec du chargement de la commande",
159
- "failed_to_load_product": "Échec du chargement du produit",
160
- "failed_to_send_invitation": "Échec de l'envoi de l'invitation",
161
- "failed_to_revoke_key": "Échec de la révocation de la clé",
162
- "failed_to_update_store": "Échec de la mise à jour des paramètres de la boutique",
163
- "failed_to_update_staff": "Échec de la mise à jour du personnel",
164
- "network": "Erreur réseau — veuillez réessayer",
165
- "unauthorized": "Vous n'avez pas l'autorisation d'effectuer cette action",
166
- "not_found": "Introuvable",
167
- "failed_to_update_profile": "Échec de la mise à jour du profil",
168
- "unexpected_retry": "Une erreur inattendue s’est produite. Veuillez réessayer."
181
+ "yes": "Oui"
169
182
  },
170
- "auth": {
171
- "login": {
172
- "title": "Bon retour",
173
- "subtitle": "Connectez-vous à votre compte administrateur"
174
- },
175
- "forgot_password": {
176
- "link": "Mot de passe oublié ?",
177
- "title": "Réinitialiser votre mot de passe",
178
- "subtitle": "Saisissez votre e-mail et nous vous enverrons un lien pour réinitialiser votre mot de passe.",
179
- "submit": "Envoyer le lien de réinitialisation",
180
- "sending": "Envoi…",
181
- "sent_title": "Vérifiez vos e-mails",
182
- "sent_subtitle": "Si un compte existe pour cet e-mail, un lien de réinitialisation du mot de passe est en route.",
183
- "error": "Une erreur s'est produite. Veuillez réessayer."
183
+ "components": {
184
+ "address_block": {
185
+ "not_provided": "Non renseigné"
184
186
  },
185
- "reset_password": {
186
- "title": "Choisir un nouveau mot de passe",
187
- "subtitle": "Saisissez un nouveau mot de passe pour votre compte administrateur.",
188
- "new_password_label": "Nouveau mot de passe",
189
- "confirm_password_label": "Confirmer le nouveau mot de passe",
190
- "submit": "Réinitialiser le mot de passe",
191
- "submitting": "Réinitialisation…",
192
- "token_invalid": "Ce lien de réinitialisation est invalide ou a expiré. Demandez-en un nouveau.",
193
- "error": "Une erreur s'est produite. Veuillez réessayer.",
194
- "missing_token_title": "Lien de réinitialisation invalide",
195
- "missing_token_message": "Il manque le jeton à ce lien de réinitialisation du mot de passe.",
196
- "request_new_link": "Demander un nouveau lien de réinitialisation"
187
+ "address_form_dialog": {
188
+ "description": "Mettre à jour les détails de l’adresse.",
189
+ "edit_title": "Modifier l’adresse"
197
190
  },
198
- "logout": "Se déconnecter",
199
- "back_to_login": "Retour à la connexion"
200
- },
201
- "fields": {
202
- "name": {
203
- "label": "Nom"
191
+ "bulk_action_bar": {
192
+ "default_error": "L’opération groupée a échoué",
193
+ "default_success": "{n} enregistrements mis à jour",
194
+ "selected": "{{count}} sélectionné(s)"
204
195
  },
205
- "label": {
206
- "label": "Libellé"
196
+ "channel_select": {
197
+ "placeholder": "Sélectionner un canal de vente",
198
+ "all_channels": "Tous les canaux"
207
199
  },
208
- "description": {
209
- "label": "Description"
210
- },
211
- "code": {
212
- "label": "Code"
213
- },
214
- "email": {
215
- "label": "E-mail"
216
- },
217
- "password": {
218
- "label": "Mot de passe"
219
- },
220
- "first_name": {
221
- "label": "Prénom"
222
- },
223
- "last_name": {
224
- "label": "Nom de famille"
225
- },
226
- "phone": {
227
- "label": "Téléphone"
228
- },
229
- "company": {
230
- "label": "Société"
231
- },
232
- "address1": {
233
- "label": "Adresse ligne 1"
234
- },
235
- "address2": {
236
- "label": "Adresse ligne 2"
237
- },
238
- "city": {
239
- "label": "Ville"
240
- },
241
- "zipcode": {
242
- "label": "Code postal"
243
- },
244
- "country_iso": {
245
- "label": "Pays"
246
- },
247
- "state_abbr": {
248
- "label": "État / Province"
249
- },
250
- "state_name": {
251
- "label": "État / Province"
252
- },
253
- "starts_at": {
254
- "label": "Début"
255
- },
256
- "ends_at": {
257
- "label": "Fin"
258
- },
259
- "expires_at": {
260
- "label": "Expiration"
261
- },
262
- "active": {
263
- "label": "Actif"
264
- },
265
- "kind": {
266
- "label": "Type"
267
- },
268
- "amount": {
269
- "label": "Montant"
270
- },
271
- "currency": {
272
- "label": "Devise"
273
- },
274
- "quantity": {
275
- "label": "Quantité"
276
- },
277
- "slug": {
278
- "label": "Slug"
279
- },
280
- "meta_title": {
281
- "label": "Méta-titre"
282
- },
283
- "meta_description": {
284
- "label": "Méta-description"
285
- },
286
- "status": {
287
- "label": "Statut"
288
- },
289
- "created_at": {
290
- "label": "Créé le"
291
- },
292
- "updated_at": {
293
- "label": "Mis à jour le"
294
- },
295
- "completed_at": {
296
- "label": "Terminé le"
297
- },
298
- "total": {
299
- "label": "Total"
200
+ "command_palette": {
201
+ "create": {
202
+ "heading": "Créer",
203
+ "label": "Créer : {{noun}}",
204
+ "nouns": {
205
+ "catalog": "Catalogue",
206
+ "catalog_plural": "Catalogues",
207
+ "category": "Catégorie",
208
+ "category_plural": "Catégories",
209
+ "collection": "Collection",
210
+ "collection_plural": "Collections",
211
+ "company": "Entreprise",
212
+ "company_plural": "Entreprises",
213
+ "customer": "Client",
214
+ "customer_group": "Groupe de clients",
215
+ "customer_group_plural": "Groupes de clients",
216
+ "customer_plural": "Clients",
217
+ "discount": "Remise",
218
+ "discount_plural": "Remises",
219
+ "gift_card": "Carte cadeau",
220
+ "gift_card_plural": "Cartes cadeaux",
221
+ "option_type": "Option",
222
+ "option_type_plural": "Options",
223
+ "order": "Commande",
224
+ "order_plural": "Commandes",
225
+ "price_list": "Liste de prix",
226
+ "price_list_plural": "Listes de prix",
227
+ "product": "Produit",
228
+ "product_plural": "Produits",
229
+ "promotion": "Promotion",
230
+ "promotion_plural": "Promotions",
231
+ "seller": "Vendeur",
232
+ "seller_plural": "Vendeurs",
233
+ "stock_location": "Entrepôt",
234
+ "stock_location_plural": "Entrepôts",
235
+ "stock_transfer": "Transfert",
236
+ "stock_transfer_plural": "Transferts"
237
+ },
238
+ "verbs": "nouveau,nouvelle,ajouter,créer"
239
+ },
240
+ "description": "Effectuez une recherche parmi les produits, les commandes et les clients, ou exécutez une commande.",
241
+ "empty_hint": "Saisissez du texte pour rechercher, ou choisissez une commande ci-dessous.",
242
+ "goto": "Aller à",
243
+ "goto_label": "Aller à {{label}}",
244
+ "hints": {
245
+ "close": "fermer",
246
+ "esc_key": "échap",
247
+ "navigate": "naviguer",
248
+ "select": "sélectionner"
249
+ },
250
+ "no_results": "Aucun résultat pour « {{query}} ».",
251
+ "placeholder": "Rechercher des produits, des commandes, des clients…",
252
+ "search_label": "Rechercher…",
253
+ "title": "Recherche et commandes"
300
254
  },
301
- "subtotal": {
302
- "label": "Sous-total"
255
+ "confirm_dialog": {
256
+ "title": "Êtes-vous sûr ?"
303
257
  },
304
- "tax": {
305
- "label": "Taxe"
258
+ "country_combobox": {
259
+ "empty": "Aucun pays trouvé",
260
+ "placeholder": "Sélectionner un pays",
261
+ "search_placeholder": "Rechercher des pays…"
306
262
  },
307
- "shipping": {
308
- "label": "Livraison"
263
+ "currency_select": {
264
+ "empty": "Aucune devise trouvée",
265
+ "placeholder": "Sélectionner une devise",
266
+ "search_placeholder": "Rechercher des devises…"
309
267
  },
310
- "discount": {
311
- "label": "Remise"
268
+ "custom_fields": {
269
+ "json_placeholder": "{ \"example\": \"value\" }"
312
270
  },
313
- "login": {
314
- "email": {
315
- "placeholder": "admin@example.com"
271
+ "date_range_picker": {
272
+ "presets": {
273
+ "last_14_days": "14 derniers jours",
274
+ "last_30_days": "30 derniers jours",
275
+ "last_7_days": "7 derniers jours",
276
+ "last_90_days": "90 derniers jours",
277
+ "this_month": "Ce mois-ci",
278
+ "year_to_date": "Depuis le début de l'année"
316
279
  }
317
280
  },
318
- "address": {
319
- "label": {
320
- "label": "Libellé",
321
- "placeholder": "ex. Domicile, Bureau"
322
- },
323
- "address1": {
324
- "label": "Adresse"
325
- },
326
- "address2": {
327
- "label": "Appartement, bureau, etc."
328
- },
329
- "postal_code": {
330
- "label": "Code postal"
281
+ "error_state": {
282
+ "retry": "Réessayer"
283
+ },
284
+ "export_button": {
285
+ "all": {
286
+ "description": "Ignorer les filtres et tout exporter dans cette boutique.",
287
+ "title": "Tous les enregistrements"
331
288
  },
332
- "is_default_billing": {
333
- "label": "Adresse de facturation par défaut"
289
+ "description": "Nous préparons votre fichier CSV en arrière-plan et le téléchargeons dès qu'il est prêt. Si cela prend un certain temps, vous recevrez également un lien par e-mail.",
290
+ "downloaded": "Export téléchargé",
291
+ "email_fallback": "Toujours en cours — nous vous enverrons un lien par e-mail dès qu’il sera prêt.",
292
+ "failed": "Échec de l’export : {{message}}",
293
+ "filtered": {
294
+ "count_few": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel.",
295
+ "count_many": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel.",
296
+ "count_one": "Exportez l'enregistrement {{formattedCount}} correspondant à votre filtre actuel.",
297
+ "count_other": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel.",
298
+ "no_filter": "Aucun filtre actif — équivaut à exporter tous les enregistrements.",
299
+ "title": "Filtre actuel",
300
+ "unknown_count": "Exportez les enregistrements correspondant à votre filtre actuel."
334
301
  },
335
- "is_default_shipping": {
336
- "label": "Adresse de livraison par défaut"
337
- }
338
- },
339
- "media": {
340
- "alt": {
341
- "label": "Texte alternatif",
342
- "placeholder": "Décrivez l'image pour l'accessibilité et le SEO"
343
- }
344
- },
345
- "storefront_visible": {
346
- "label": "Visible sur la boutique",
347
- "help": "Si désactivé, seuls les administrateurs voient cette option (commandes back-office, saisie manuelle)."
348
- },
349
- "pretty_name": {
350
- "label": "Nom complet"
351
- },
352
- "permalink": {
353
- "label": "Lien permanent"
354
- }
355
- },
356
- "components": {
357
- "currency_select": {
358
- "placeholder": "Sélectionner une devise",
359
- "empty": "Aucune devise trouvée"
360
- },
361
- "channel_select": {
362
- "placeholder": "Sélectionner un canal de vente"
302
+ "preparing": "Préparation de l’export…",
303
+ "title": "Exporter au format CSV"
363
304
  },
364
305
  "file_upload": {
365
306
  "attached": "Fichier joint",
@@ -370,261 +311,1688 @@
370
311
  "upload_failed": "Échec du téléversement : {{message}}",
371
312
  "uploading": "Téléversement…"
372
313
  },
314
+ "import_button": {
315
+ "delimiter_label": "Séparateur de colonnes",
316
+ "delimiters": {
317
+ "comma": "Virgule (,)",
318
+ "pipe": "Barre verticale (|)",
319
+ "semicolon": "Point-virgule (;)",
320
+ "tab": "Tabulation"
321
+ },
322
+ "description": "Téléversez un fichier CSV. Vous associerez ses colonnes aux champs à l'étape suivante.",
323
+ "download_template": "Télécharger le modèle CSV",
324
+ "drop_label": "Déposez un fichier CSV ici ou cliquez pour parcourir",
325
+ "failed": "Échec de l'import : {{message}}",
326
+ "submit": "Continuer",
327
+ "template_failed": "Échec du téléchargement du modèle : {{message}}",
328
+ "title": "Importer depuis un CSV"
329
+ },
330
+ "json_preview_drawer": {
331
+ "collapse_depth": "Profondeur de réduction",
332
+ "copied": "Copié",
333
+ "copy_all": "Tout copier",
334
+ "depth": "Profondeur {{level}}",
335
+ "failed_to_load": "Échec du chargement : {{message}}",
336
+ "open_raw": "Ouvrir la réponse brute",
337
+ "raw": "Brut",
338
+ "title": "JSON"
339
+ },
373
340
  "locale_select": {
374
- "placeholder": "Sélectionner une langue",
341
+ "empty": "Aucune langue trouvée",
375
342
  "multi_placeholder": "Ajouter des langues…",
376
- "empty": "Aucune langue trouvée"
343
+ "placeholder": "Sélectionner une langue",
344
+ "search_placeholder": "Rechercher des langues…"
377
345
  },
378
- "country_combobox": {
379
- "search_placeholder": "Rechercher des pays…",
380
- "empty": "Aucun pays trouvé"
346
+ "market_combobox": {
347
+ "empty": "Aucun marché ne correspond",
348
+ "search_placeholder": "Rechercher des marchés…"
381
349
  },
382
- "state_combobox": {
383
- "search_placeholder": "Rechercher des régions…",
384
- "empty": "Aucune région trouvée"
350
+ "media": {
351
+ "remove_tooltip": "Supprimer l’image"
385
352
  },
386
- "command_palette": {
387
- "placeholder": "Rechercher des produits, des commandes, des clients…",
388
- "title": "Recherche et commandes",
389
- "description": "Effectuez une recherche parmi les produits, les commandes et les clients, ou exécutez une commande.",
390
- "no_results": "Aucun résultat pour « {{query}} ».",
391
- "empty_hint": "Saisissez du texte pour rechercher, ou choisissez une commande ci-dessous.",
392
- "goto": "Aller à",
393
- "goto_label": "Aller à {{label}}"
353
+ "media_preview": {
354
+ "video_title": "Aperçu de la vidéo"
394
355
  },
395
- "bulk_action_bar": {
396
- "selected": "{{count}} sélectionné(s)",
397
- "default_success": "{n} enregistrements mis à jour",
398
- "default_error": "L’opération groupée a échoué"
356
+ "metadata_card": {
357
+ "empty_description": "Les applications et intégrations remplissent ceci automatiquement.",
358
+ "empty_title": "Aucune métadonnée",
359
+ "title": "Métadonnées"
360
+ },
361
+ "page_header": {
362
+ "copy_id": "Copier l'ID",
363
+ "copy_number": "Copier le numéro",
364
+ "view_as_json": "Voir en JSON"
365
+ },
366
+ "pagination": {
367
+ "first_page": "Aller à la première page",
368
+ "last_page": "Aller à la dernière page",
369
+ "next_page": "Aller à la page suivante",
370
+ "previous_page": "Aller à la page précédente",
371
+ "range": "{{from}}–{{to}} sur {{count}}",
372
+ "rows_per_page": "Lignes par page"
399
373
  },
400
374
  "preferences_form": {
401
375
  "comma_separated_hint": "Séparez les valeurs par des virgules.",
402
376
  "tiers": {
403
- "label": "Paliers",
377
+ "add_tier": "Ajouter un palier",
378
+ "empty": "Aucun palier pour le moment. Le taux de base s’applique jusqu’à l’ajout d’un palier.",
404
379
  "header_threshold": "Total de la commande ≥",
405
380
  "header_value": "Remise",
406
- "empty": "Aucun palier pour le moment. Le taux de base s’applique jusqu’à l’ajout d’un palier.",
407
- "add_tier": "Ajouter un palier",
381
+ "label": "Paliers",
408
382
  "remove_tier": "Supprimer le palier"
409
383
  },
410
384
  "unlimited": "Illimité"
411
385
  },
412
- "confirm_dialog": {
413
- "title": "Êtes-vous sûr ?"
386
+ "rich_text_editor": {
387
+ "blockquote": "Citation",
388
+ "bold": "Gras",
389
+ "bullet_list": "Liste à puces",
390
+ "image": "Image",
391
+ "italic": "Italique",
392
+ "link": "Lien",
393
+ "link_url_prompt": "URL",
394
+ "ordered_list": "Liste numérotée",
395
+ "placeholder": "Écrivez quelque chose…",
396
+ "redo": "Rétablir",
397
+ "strikethrough": "Barré",
398
+ "undo": "Annuler"
399
+ },
400
+ "secret_input": {
401
+ "new_value_placeholder": "Nouvelle valeur",
402
+ "replace": "Remplacer",
403
+ "stored_help": "Stocké sur le serveur. Cliquez sur Remplacer pour le faire pivoter."
404
+ },
405
+ "state_combobox": {
406
+ "empty": "Aucune région trouvée",
407
+ "placeholder": "Sélectionner une région",
408
+ "search_placeholder": "Rechercher des régions…"
414
409
  },
415
410
  "table_toolbar": {
416
- "search_placeholder": "Rechercher…",
417
- "filter_select_placeholder": "Sélectionner…",
418
- "filter_date_placeholder": "Choisir une date",
419
- "filter_text_placeholder": "Filtrer…",
420
- "filters_button": "Filtres",
421
- "sort_by": "Trier par",
422
- "sort_tooltip": "Trier",
423
- "order": "Ordre",
411
+ "add_filter": "Ajouter un filtre",
424
412
  "ascending": "Croissant",
425
- "descending": "Décroissant",
426
- "columns_tooltip": "Colonnes",
427
- "visible_columns": "Colonnes visibles",
428
- "reset_to_default": "Réinitialiser",
429
413
  "clear_all": "Tout effacer",
430
- "no_filters": "Aucun filtre. Cliquez ci-dessous pour en ajouter un.",
431
- "add_filter": "Ajouter un filtre",
414
+ "columns_tooltip": "Colonnes",
415
+ "date_presets": {
416
+ "all": "Toute date",
417
+ "custom": "Personnalisé",
418
+ "last_30_days": "30 derniers jours",
419
+ "last_7_days": "7 derniers jours",
420
+ "last_month": "Le mois dernier",
421
+ "this_month": "Ce mois-ci",
422
+ "today": "Aujourd'hui"
423
+ },
424
+ "date_range_end": "Fin",
425
+ "date_range_start": "Début",
426
+ "descending": "Décroissant",
427
+ "filter_by": "Filtrer par…",
428
+ "filter_date_placeholder": "Choisir une date",
429
+ "filter_select_placeholder": "Sélectionner…",
430
+ "filter_text_placeholder": "Filtrer…",
431
+ "filter_to_placeholder": "Filtrer sur…",
432
+ "more_conditions": "Autres conditions",
432
433
  "operators": {
434
+ "after": "après",
435
+ "before": "avant",
433
436
  "contains": "contient",
434
- "equals": "est égal à",
435
437
  "does_not_equal": "n'est pas égal à",
436
- "starts_with": "commence par",
437
438
  "ends_with": "se termine par",
438
- "is_set": "est défini",
439
- "is_not_set": "n'est pas défini",
439
+ "equals": "est égal à",
440
+ "greater_than": "supérieur à",
441
+ "greater_than_or_equal": "supérieur ou égal à",
440
442
  "is": "est",
441
- "is_not": "n'est pas",
442
443
  "is_any_of": "est l'un de",
443
444
  "is_none_of": "n'est aucun de",
444
- "greater_than": "supérieur à",
445
- "greater_than_or_equal": "supérieur ou égal à",
445
+ "is_not": "n'est pas",
446
+ "is_not_set": "n'est pas défini",
447
+ "is_set": "est défini",
446
448
  "less_than": "inférieur à",
447
449
  "less_than_or_equal": "inférieur ou égal à",
448
- "after": "après",
449
- "before": "avant",
450
450
  "on_or_after": "le ou après",
451
- "on_or_before": "le ou avant"
452
- }
451
+ "on_or_before": "le ou avant",
452
+ "starts_with": "commence par"
453
+ },
454
+ "order": "Ordre",
455
+ "remove_filter": "Supprimer le filtre",
456
+ "reset_to_default": "Réinitialiser",
457
+ "search_placeholder": "Rechercher…",
458
+ "sort_by": "Trier par",
459
+ "sort_tooltip": "Trier",
460
+ "visible_columns": "Colonnes visibles"
453
461
  },
454
- "media": {
455
- "remove_tooltip": "Supprimer l’image"
462
+ "tag_combobox": {
463
+ "create_option": "Créer « {{tag}} »",
464
+ "empty_hint": "Saisissez et appuyez sur Entrée pour créer un tag",
465
+ "placeholder": "Saisir des tags…"
456
466
  },
457
- "custom_fields": {
458
- "json_placeholder": "{ \"example\": \"value\" }"
467
+ "theme_toggle": {
468
+ "dark": "Sombre",
469
+ "label": "Thème",
470
+ "light": "Clair",
471
+ "system": "Système"
459
472
  },
460
- "export_button": {
461
- "title": "Exporter au format CSV",
462
- "description": "Nous préparons votre fichier CSV en arrière-plan et le téléchargeons dès qu'il est prêt. Si cela prend un certain temps, vous recevrez également un lien par e-mail.",
463
- "filtered": {
464
- "title": "Filtre actuel",
465
- "no_filter": "Aucun filtre actif — équivaut à exporter tous les enregistrements.",
466
- "unknown_count": "Exportez les enregistrements correspondant à votre filtre actuel.",
467
- "count_one": "Exportez l'enregistrement {{formattedCount}} correspondant à votre filtre actuel.",
468
- "count_other": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel.",
469
- "count_few": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel.",
470
- "count_many": "Exportez les {{formattedCount}} enregistrements correspondant à votre filtre actuel."
473
+ "wizard": {
474
+ "discard_cancel": "Continuer",
475
+ "discard_confirm": "Abandonner",
476
+ "discard_message": "Tout ce que vous avez saisi sera perdu. Cette action est irréversible.",
477
+ "discard_title": "Abandonner ce brouillon ?"
478
+ }
479
+ },
480
+ "custom_field_definitions": {
481
+ "errors": {
482
+ "failed_to_create": "Impossible de créer le champ personnalisé",
483
+ "failed_to_delete": "Impossible de supprimer le champ personnalisé",
484
+ "failed_to_update": "Impossible de mettre à jour le champ personnalisé"
485
+ },
486
+ "messages": {
487
+ "created": "Champ personnalisé créé",
488
+ "deleted": "Champ personnalisé supprimé",
489
+ "updated": "Champ personnalisé mis à jour"
490
+ }
491
+ },
492
+ "errors": {
493
+ "failed_to_create": "Échec de la création",
494
+ "failed_to_delete": "Échec de la suppression",
495
+ "failed_to_load": "Échec du chargement",
496
+ "failed_to_load_customer": "Échec du chargement du client",
497
+ "failed_to_load_order": "Échec du chargement de la commande",
498
+ "failed_to_load_product": "Échec du chargement du produit",
499
+ "failed_to_revoke_key": "Échec de la révocation de la clé",
500
+ "failed_to_save": "Échec de l'enregistrement",
501
+ "failed_to_send_invitation": "Échec de l'envoi de l'invitation",
502
+ "failed_to_update": "Échec de la mise à jour",
503
+ "failed_to_update_profile": "Échec de la mise à jour du profil",
504
+ "failed_to_update_staff": "Échec de la mise à jour du personnel",
505
+ "failed_to_update_store": "Échec de la mise à jour des paramètres de la boutique",
506
+ "generic": "Une erreur s'est produite",
507
+ "label_download_failed": "Impossible de télécharger l'étiquette",
508
+ "network": "Erreur réseau — veuillez réessayer",
509
+ "not_found": "Introuvable",
510
+ "required": "Ce champ est obligatoire",
511
+ "unauthorized": "Vous n'avez pas l'autorisation d'effectuer cette action",
512
+ "unexpected": "Une erreur inattendue s'est produite",
513
+ "unexpected_retry": "Une erreur inattendue s’est produite. Veuillez réessayer."
514
+ },
515
+ "fields": {
516
+ "active": {
517
+ "label": "Actif"
518
+ },
519
+ "address": {
520
+ "address1": {
521
+ "label": "Adresse"
471
522
  },
472
- "all": {
473
- "title": "Tous les enregistrements",
474
- "description": "Ignorer les filtres et tout exporter dans cette boutique."
523
+ "address2": {
524
+ "label": "Appartement, bureau, etc."
475
525
  },
476
- "preparing": "Préparation de l’export…",
477
- "downloaded": "Export téléchargé",
478
- "email_fallback": "Toujours en cours — nous vous enverrons un lien par e-mail dès qu’il sera prêt.",
479
- "failed": "Échec de l’export : {{message}}"
480
- },
481
- "import_button": {
482
- "title": "Importer depuis un CSV",
483
- "description": "Téléversez un fichier CSV. Vous associerez ses colonnes aux champs à l'étape suivante.",
484
- "drop_label": "Déposez un fichier CSV ici ou cliquez pour parcourir",
485
- "delimiter_label": "Séparateur de colonnes",
486
- "delimiters": {
487
- "comma": "Virgule (,)",
488
- "semicolon": "Point-virgule (;)",
489
- "pipe": "Barre verticale (|)",
490
- "tab": "Tabulation"
526
+ "is_default_billing": {
527
+ "label": "Adresse de facturation par défaut"
491
528
  },
492
- "download_template": "Télécharger le modèle CSV",
493
- "template_failed": "Échec du téléchargement du modèle : {{message}}",
494
- "submit": "Continuer",
495
- "failed": "Échec de l'import : {{message}}"
529
+ "is_default_shipping": {
530
+ "label": "Adresse de livraison par défaut"
531
+ },
532
+ "label": {
533
+ "label": "Libellé",
534
+ "placeholder": "ex. Domicile, Bureau"
535
+ },
536
+ "postal_code": {
537
+ "label": "Code postal"
538
+ }
496
539
  },
497
- "metadata_card": {
498
- "title": "Métadonnées",
499
- "empty_title": "Aucune métadonnée",
500
- "empty_description": "Les applications et intégrations remplissent ceci automatiquement."
540
+ "address1": {
541
+ "label": "Adresse ligne 1"
501
542
  },
502
- "rich_text_editor": {
503
- "placeholder": "Écrivez quelque chose…",
504
- "link_url_prompt": "URL",
505
- "bold": "Gras",
506
- "italic": "Italique",
507
- "strikethrough": "Barré",
508
- "bullet_list": "Liste à puces",
509
- "ordered_list": "Liste numérotée",
510
- "blockquote": "Citation",
511
- "link": "Lien",
512
- "undo": "Annuler",
513
- "redo": "Rétablir"
543
+ "address2": {
544
+ "label": "Adresse ligne 2"
514
545
  },
515
- "date_range_picker": {
516
- "presets": {
517
- "last_7_days": "7 derniers jours",
518
- "last_14_days": "14 derniers jours",
519
- "last_30_days": "30 derniers jours",
520
- "last_90_days": "90 derniers jours",
521
- "this_month": "Ce mois-ci",
522
- "year_to_date": "Depuis le début de l'année"
523
- }
546
+ "amount": {
547
+ "label": "Montant"
524
548
  },
525
- "pagination": {
526
- "range": "{{from}}–{{to}} sur {{count}}",
527
- "rows_per_page": "Lignes par page",
528
- "first_page": "Aller à la première page",
529
- "previous_page": "Aller à la page précédente",
530
- "next_page": "Aller à la page suivante",
531
- "last_page": "Aller à la dernière page"
549
+ "city": {
550
+ "label": "Ville"
532
551
  },
533
- "theme_toggle": {
534
- "label": "Thème",
535
- "light": "Clair",
536
- "dark": "Sombre",
537
- "system": "Système"
552
+ "code": {
553
+ "label": "Code"
538
554
  },
539
- "json_preview_drawer": {
540
- "copied": "Copié",
541
- "copy_all": "Tout copier",
542
- "open_raw": "Ouvrir la réponse brute",
543
- "raw": "Brut",
544
- "failed_to_load": "Échec du chargement : {{message}}",
545
- "collapse_depth": "Profondeur de réduction",
546
- "depth": "Profondeur {{level}}",
547
- "title": "JSON"
555
+ "company": {
556
+ "label": "Société"
548
557
  },
549
- "page_header": {
550
- "view_as_json": "Voir en JSON",
551
- "copy_id": "Copier l'ID",
552
- "copy_number": "Copier le numéro"
558
+ "completed_at": {
559
+ "label": "Terminé le"
553
560
  },
554
- "secret_input": {
555
- "replace": "Remplacer",
556
- "stored_help": "Stocké sur le serveur. Cliquez sur Remplacer pour le faire pivoter.",
557
- "new_value_placeholder": "Nouvelle valeur"
561
+ "contact_email": {
562
+ "label": "E-mail de contact"
558
563
  },
559
- "tag_combobox": {
560
- "placeholder": "Saisir des tags…",
561
- "empty_hint": "Saisissez et appuyez sur Entrée pour créer un tag",
562
- "create_option": "Créer « {{tag}} »"
564
+ "country_code": {
565
+ "label": "Pays"
563
566
  },
564
- "address_form_dialog": {
565
- "edit_title": "Modifier l’adresse",
566
- "description": "Mettre à jour les détails de l’adresse."
567
+ "created_at": {
568
+ "label": "Créé le"
567
569
  },
568
- "error_state": {
569
- "retry": "Réessayer"
570
+ "currency": {
571
+ "label": "Devise"
570
572
  },
571
- "address_block": {
572
- "not_provided": "Non renseigné"
573
- }
574
- },
575
- "validation": {
576
- "required": "{{field}} est obligatoire",
577
- "positive_number": "{{field}} doit être supérieur à 0",
578
- "min_length": "{{field}} doit comporter au moins {{count}} caractères",
579
- "passwords_dont_match": "Les mots de passe ne correspondent pas",
580
- "invalid_email_or_password": "E-mail ou mot de passe invalide",
581
- "invalid_email": "Saisissez une adresse e-mail valide",
582
- "invalid_hex_color": "Couleur hexadécimale invalide",
583
- "invalid_password": "Mot de passe invalide",
584
- "password_required": "Le mot de passe est obligatoire",
585
- "first_name_required": "Le prénom est obligatoire",
586
- "last_name_required": "Le nom est obligatoire"
587
- },
588
- "account": {
589
- "edit_profile": "Modifier le profil",
590
- "language": {
591
- "label": "Langue",
592
- "update_failed": "Impossible d’enregistrer votre préférence de langue. Veuillez réessayer."
573
+ "description": {
574
+ "label": "Description"
593
575
  },
594
- "view_store": "Voir la boutique",
595
- "documentation": "Documentation",
596
- "community": "Communauté",
597
- "contact_support": "Contacter le support",
598
- "log_out": "Se déconnecter"
599
- },
600
- "custom_field_definitions": {
601
- "messages": {
602
- "created": "Champ personnalisé créé",
603
- "updated": "Champ personnalisé mis à jour",
604
- "deleted": "Champ personnalisé supprimé"
576
+ "discount": {
577
+ "label": "Remise"
605
578
  },
606
- "errors": {
607
- "failed_to_create": "Impossible de créer le champ personnalisé",
608
- "failed_to_update": "Impossible de mettre à jour le champ personnalisé",
609
- "failed_to_delete": "Impossible de supprimer le champ personnalisé"
610
- }
611
- },
612
- "resource_picker": {
613
- "title": "Ajouter des produits",
614
- "search_placeholder": "Rechercher…",
615
- "empty": "Aucun résultat trouvé.",
616
- "already_added": "Ajouté",
617
- "selected_count_one": "{{count}} sélectionné",
618
- "selected_count_other": "{{count}} sélectionnés",
619
- "add_count_one": "Ajouter {{count}}",
620
- "add_count_other": "Ajouter {{count}}"
621
- },
622
- "image_upload": {
623
- "upload_cta": "Téléverser une image",
624
- "replace_cta": "Remplacer l'image",
625
- "remove_cta": "Retirer",
626
- "uploading": "Téléversement…",
627
- "upload_failed": "Échec du téléversement de l'image"
579
+ "email": {
580
+ "label": "E-mail"
581
+ },
582
+ "enabled": {
583
+ "label": "Activé"
584
+ },
585
+ "ends_at": {
586
+ "label": "Fin"
587
+ },
588
+ "expires_at": {
589
+ "label": "Expiration"
590
+ },
591
+ "first_name": {
592
+ "label": "Prénom"
593
+ },
594
+ "kind": {
595
+ "label": "Type"
596
+ },
597
+ "label": {
598
+ "label": "Libellé"
599
+ },
600
+ "last_name": {
601
+ "label": "Nom de famille"
602
+ },
603
+ "login": {
604
+ "email": {
605
+ "placeholder": "admin@example.com"
606
+ }
607
+ },
608
+ "media": {
609
+ "alt": {
610
+ "label": "Texte alternatif",
611
+ "placeholder": "Décrivez l'image pour l'accessibilité et le SEO"
612
+ },
613
+ "external_video_url": {
614
+ "help": "Collez un lien YouTube ou Vimeo.",
615
+ "label": "Lien vidéo",
616
+ "placeholder": "https://www.youtube.com/watch?v=..."
617
+ },
618
+ "poster": {
619
+ "help": "L'image fixe affichée avant la lecture. Laissez vide pour utiliser celle du fournisseur, si elle existe.",
620
+ "label": "Image de couverture"
621
+ }
622
+ },
623
+ "meta_description": {
624
+ "label": "Méta-description"
625
+ },
626
+ "meta_title": {
627
+ "label": "Méta-titre"
628
+ },
629
+ "name": {
630
+ "label": "Nom"
631
+ },
632
+ "package_type": {
633
+ "name": {
634
+ "label": "Nom"
635
+ },
636
+ "kind": {
637
+ "label": "Type",
638
+ "help": "Seul un carton maître peut être l'emballage d'un produit."
639
+ },
640
+ "length": {
641
+ "label": "Longueur"
642
+ },
643
+ "width": {
644
+ "label": "Largeur"
645
+ },
646
+ "height": {
647
+ "label": "Hauteur"
648
+ },
649
+ "dimensions_unit": {
650
+ "label": "Unité"
651
+ },
652
+ "dimensions": {
653
+ "help": "Utilisées pour le poids volumétrique et pour les mètres cubes des paliers de fret."
654
+ },
655
+ "weight": {
656
+ "label": "Poids à vide",
657
+ "help": "L'emballage lui-même, ajouté à son contenu."
658
+ },
659
+ "max_weight": {
660
+ "label": "Poids max.",
661
+ "help": "Ce qu'il peut porter."
662
+ },
663
+ "weight_unit": {
664
+ "label": "Unité"
665
+ },
666
+ "default": {
667
+ "label": "Emballage par défaut",
668
+ "help": "L'emballage sur lequel vos tarifs de colis sont calculés. Un seul par défaut à la fois."
669
+ }
670
+ },
671
+ "number": {
672
+ "label": "Numéro"
673
+ },
674
+ "password": {
675
+ "label": "Mot de passe"
676
+ },
677
+ "permalink": {
678
+ "label": "Lien permanent"
679
+ },
680
+ "phone": {
681
+ "label": "Téléphone"
682
+ },
683
+ "pretty_name": {
684
+ "label": "Nom complet"
685
+ },
686
+ "quantity": {
687
+ "label": "Quantité"
688
+ },
689
+ "shipping": {
690
+ "label": "Livraison"
691
+ },
692
+ "slug": {
693
+ "label": "Slug"
694
+ },
695
+ "starts_at": {
696
+ "label": "Début"
697
+ },
698
+ "state_code": {
699
+ "label": "État / Province"
700
+ },
701
+ "state_name": {
702
+ "label": "État / Province"
703
+ },
704
+ "status": {
705
+ "label": "Statut"
706
+ },
707
+ "stock_location": {
708
+ "active": {
709
+ "help": "Les emplacements inactifs n'apparaissent pas dans la sélection d'expédition.",
710
+ "label": "Actif"
711
+ },
712
+ "admin_name": {
713
+ "label": "Nom interne",
714
+ "placeholder": "Facultatif — affiché uniquement dans l'administration"
715
+ },
716
+ "backorderable_default": {
717
+ "help": "Les nouveaux articles en stock autorisent par défaut les commandes en attente en cas de rupture de stock.",
718
+ "label": "Réapprovisionnable par défaut"
719
+ },
720
+ "default": {
721
+ "help": "Les nouveaux articles en stock sont propagés ici. Un seul emplacement peut être défini par défaut.",
722
+ "label": "Emplacement par défaut"
723
+ },
724
+ "kind": {
725
+ "label": "Type"
726
+ },
727
+ "name": {
728
+ "placeholder": "Entrepôt de Brooklyn"
729
+ },
730
+ "pickup_enabled": {
731
+ "help": "Les clients peuvent retirer leurs commandes à cet emplacement lors du paiement.",
732
+ "label": "Autoriser le retrait par le client"
733
+ },
734
+ "pickup_instructions": {
735
+ "label": "Instructions de retrait",
736
+ "placeholder": "Où le client doit se rendre pour récupérer sa commande."
737
+ },
738
+ "pickup_ready_in_minutes": {
739
+ "label": "Prêt dans (minutes)",
740
+ "placeholder": "60"
741
+ },
742
+ "pickup_stock_policy": {
743
+ "label": "Règle de stock"
744
+ },
745
+ "propagate_all_variants": {
746
+ "help": "Créer des articles en stock à cet emplacement pour chaque variante de produit.",
747
+ "label": "Créer automatiquement des articles en stock pour toutes les variantes"
748
+ },
749
+ "returns_enabled": {
750
+ "help": "Les marchandises retournées reviennent à cet emplacement. Désactivez si les retours sont contrôlés ailleurs.",
751
+ "label": "Accepter les retours ici"
752
+ }
753
+ },
754
+ "storefront_visible": {
755
+ "help": "Si désactivé, seuls les administrateurs voient cette option (commandes back-office, saisie manuelle).",
756
+ "label": "Visible sur la boutique"
757
+ },
758
+ "subtotal": {
759
+ "label": "Sous-total"
760
+ },
761
+ "tax": {
762
+ "label": "Taxe"
763
+ },
764
+ "total": {
765
+ "label": "Total"
766
+ },
767
+ "updated_at": {
768
+ "label": "Mis à jour le"
769
+ },
770
+ "zipcode": {
771
+ "label": "Code postal"
772
+ },
773
+ "product": {
774
+ "available_on": {
775
+ "label": "Disponible le"
776
+ },
777
+ "category_ids": {
778
+ "label": "Catégories"
779
+ },
780
+ "channels": {
781
+ "label": "Canaux de vente"
782
+ },
783
+ "collection_ids": {
784
+ "help": "Seules les collections manuelles se définissent ici ; les automatiques suivent leurs règles.",
785
+ "label": "Collections"
786
+ },
787
+ "delivery_profile_id": {
788
+ "help": "Détermine les zones et méthodes de livraison qui atteignent ce produit.",
789
+ "label": "Profil d’expédition"
790
+ },
791
+ "description": {
792
+ "label": "Description",
793
+ "placeholder": "Rédigez une description du produit…"
794
+ },
795
+ "discontinue_on": {
796
+ "label": "Arrêter le"
797
+ },
798
+ "make_active_at": {
799
+ "label": "Activer le"
800
+ },
801
+ "name": {
802
+ "label": "Nom",
803
+ "placeholder": "Nom du produit"
804
+ },
805
+ "product_type_id": {
806
+ "help": "Détermine les options de livraison proposées au paiement.",
807
+ "label": "Type de produit"
808
+ },
809
+ "seller": {
810
+ "label": "Vendeur"
811
+ },
812
+ "tags": {
813
+ "label": "Étiquettes"
814
+ }
815
+ },
816
+ "variant": {
817
+ "backorder_limit": {
818
+ "help": "Nombre maximum d'unités vendues au-delà du stock disponible — plafonne les réassorts et les précommandes. Laissez vide pour illimité.",
819
+ "label": "Limite de réassort",
820
+ "placeholder": "Illimité"
821
+ },
822
+ "barcode": {
823
+ "label": "Code-barres"
824
+ },
825
+ "country_of_origin": {
826
+ "label": "Pays d'origine"
827
+ },
828
+ "customs_description": {
829
+ "label": "Description douanière",
830
+ "placeholder": "Description simple de la marchandise"
831
+ },
832
+ "depth": {
833
+ "label": "Profondeur"
834
+ },
835
+ "dimensions_unit": {
836
+ "label": "Unité"
837
+ },
838
+ "height": {
839
+ "label": "Hauteur"
840
+ },
841
+ "hs_code": {
842
+ "label": "Code SH",
843
+ "placeholder": "ex. 640411"
844
+ },
845
+ "preorder_ships_at": {
846
+ "help": "Date à laquelle vous prévoyez d'expédier les précommandes. Affichée aux clients comme promesse de livraison ; la précommande se termine une fois cette date passée.",
847
+ "label": "Expédié avant le",
848
+ "placeholder": "Choisir une date"
849
+ },
850
+ "preorderable": {
851
+ "help": "Vendez cette variante avant qu'elle soit en stock. Plafonnez les quantités avec la limite de réassort, saisissez le stock à recevoir comme quantité, ou laissez vide pour un nombre illimité.",
852
+ "label": "Disponible en précommande"
853
+ },
854
+ "sku": {
855
+ "label": "SKU",
856
+ "placeholder": "PRODUIT-ROUGE-S"
857
+ },
858
+ "weight": {
859
+ "label": "Poids"
860
+ },
861
+ "weight_unit": {
862
+ "label": "Unité"
863
+ },
864
+ "width": {
865
+ "label": "Largeur"
866
+ },
867
+ "minimum_order_quantity": {
868
+ "label": "Quantité minimale de commande",
869
+ "placeholder": "Aucun minimum",
870
+ "help": "La plus petite quantité qu'un acheteur peut commander. Laisser vide pour aucun minimum."
871
+ },
872
+ "order_multiple": {
873
+ "label": "Multiple de commande",
874
+ "placeholder": "Aucun multiple",
875
+ "help": "Chaque palier au-dessus du minimum. Laisser vide pour toute quantité."
876
+ },
877
+ "purchase_unit": {
878
+ "label": "Unité de vente",
879
+ "options": {
880
+ "unit": "Unités",
881
+ "carton": "Cartons"
882
+ }
883
+ },
884
+ "units_per_carton": {
885
+ "label": "Unités par carton"
886
+ },
887
+ "quantity_rule_invalid": "Saisissez un nombre entier supérieur à zéro, ou laissez vide.",
888
+ "carton_package_type_id": {
889
+ "label": "Carton",
890
+ "help": "Le carton dans lequel ce produit est emballé. Ses dimensions valent pour tout ce qui est emballé de la même façon."
891
+ },
892
+ "carton_weight": {
893
+ "label": "Poids du carton",
894
+ "help": "Le poids d’un carton rempli."
895
+ },
896
+ "cartons_per_pallet": {
897
+ "label": "Cartons par palette"
898
+ },
899
+ "carton_weight_invalid": "Saisissez un poids de carton supérieur à zéro, ou laissez le champ vide."
900
+ },
901
+ "minimum_order_quantity": {
902
+ "label": "Quantité minimale de commande",
903
+ "help": "La plus petite quantité qu'un acheteur peut commander. Laisser vide pour aucun minimum."
904
+ },
905
+ "order_multiple": {
906
+ "label": "Multiple de commande",
907
+ "help": "Chaque palier au-dessus du minimum. Laisser vide pour toute quantité."
908
+ }
909
+ },
910
+ "image_upload": {
911
+ "remove_cta": "Retirer",
912
+ "replace_cta": "Remplacer l'image",
913
+ "upload_cta": "Téléverser une image",
914
+ "upload_failed": "Échec du téléversement de l'image",
915
+ "uploading": "Téléversement…"
916
+ },
917
+ "imports": {
918
+ "download_original": "Télécharger le fichier d'origine",
919
+ "failed": {
920
+ "description": "Le fichier n'a pas pu être traité.",
921
+ "title": "Échec de l'import"
922
+ },
923
+ "failed_rows": {
924
+ "error": "Erreur",
925
+ "hide_data": "Masquer les données",
926
+ "next_page": "Page suivante",
927
+ "prev_page": "Page précédente",
928
+ "row_number": "Ligne",
929
+ "title": "Lignes en échec",
930
+ "view_data": "Voir les données"
931
+ },
932
+ "load_failed": "Impossible de charger l'import.",
933
+ "mapping": {
934
+ "description": "Associez les colonnes de votre fichier aux champs {{type}}.",
935
+ "field": "Champ",
936
+ "file_column": "Colonne du fichier",
937
+ "missing_required": "Associez les champs requis pour continuer : {{fields}}",
938
+ "not_mapped": "Non associée",
939
+ "required": "Requis",
940
+ "sample": "Exemple",
941
+ "start": "Lancer l'import",
942
+ "starting": "Lancement…",
943
+ "title": "Associer les colonnes"
944
+ },
945
+ "processing": {
946
+ "failed_count": "{{failed}} en échec",
947
+ "note": "Vous pouvez quitter cette page — l'import continue en arrière-plan.",
948
+ "preparing": "Préparation des lignes…",
949
+ "progress": "{{processed}} lignes traitées sur {{total}}",
950
+ "retrying": "Nouvelle tentative des lignes en échec · {{remaining}} restantes",
951
+ "title": "Traitement des lignes"
952
+ },
953
+ "results": {
954
+ "completed_title": "Import terminé",
955
+ "retry_failed": "Réessayer les lignes en échec ({{failed}})",
956
+ "retrying": "Nouvelle tentative…",
957
+ "summary": "{{completed}} lignes importées · {{failed}} en échec",
958
+ "view_records": "Voir {{type}}"
959
+ },
960
+ "status": {
961
+ "completed": "Terminé",
962
+ "completed_mapping": "En file",
963
+ "failed": "Échoué",
964
+ "mapping": "Association",
965
+ "pending": "En attente",
966
+ "processing": "En cours"
967
+ },
968
+ "step_descriptions": {
969
+ "complete": "Votre import est terminé. Vérifiez ce qui a été créé et mis à jour.",
970
+ "map_fields": "Associez chaque colonne de votre fichier à un champ dans Spree.",
971
+ "process_rows": "Vos lignes sont en cours d’import. Cela peut prendre quelques minutes."
972
+ },
973
+ "steps": {
974
+ "complete": "Terminé",
975
+ "map_fields": "Associer les champs",
976
+ "process_rows": "Traiter les lignes"
977
+ },
978
+ "try_again": "Réessayer",
979
+ "types": {
980
+ "customers": "Clients",
981
+ "price_list_prices": "Prix des listes de prix",
982
+ "product_translations": "Traductions de produits",
983
+ "products": "Produits",
984
+ "purchase_orders": "Bons de commande"
985
+ },
986
+ "wizard_title": "Import"
987
+ },
988
+ "media_picker": {
989
+ "confirm": "Ajouter la sélection",
990
+ "description": "Choisissez des fichiers déjà dans votre médiathèque, ou importez-en de nouveaux.",
991
+ "empty": "Votre médiathèque est vide. Importez un fichier pour commencer.",
992
+ "no_results": "Aucun fichier ne correspond à votre recherche.",
993
+ "search_placeholder": "Rechercher par nom…",
994
+ "selected_count_one": "{{count}} sélectionné",
995
+ "selected_count_other": "{{count}} sélectionnés",
996
+ "title": "Médiathèque",
997
+ "upload": "Importer"
998
+ },
999
+ "messages": {
1000
+ "address_removed": "Adresse supprimée",
1001
+ "address_saved": "Adresse enregistrée",
1002
+ "copied_to_clipboard": "Copié dans le presse-papiers",
1003
+ "created": "Créé",
1004
+ "customer_deleted": "Client supprimé",
1005
+ "customer_saved": "Client enregistré",
1006
+ "digital_asset_removed": "Fichier supprimé",
1007
+ "digital_asset_saved": "Fichier enregistré",
1008
+ "digital_link_reset": "Accès au téléchargement rétabli",
1009
+ "digital_links_email_sent": "E-mail de téléchargement envoyé",
1010
+ "gift_card_created": "Carte cadeau créée",
1011
+ "invitation_accepted": "Bienvenue sur Spree",
1012
+ "invitation_resent": "Invitation renvoyée",
1013
+ "invitation_sent": "Invitation envoyée",
1014
+ "key_created": "Clé créée",
1015
+ "key_deleted": "Clé supprimée",
1016
+ "key_revoked": "Clé révoquée",
1017
+ "key_updated": "Clé mise à jour",
1018
+ "order_saved": "Commande enregistrée",
1019
+ "payment_method_saved": "Moyen de paiement enregistré",
1020
+ "product_created": "Produit créé",
1021
+ "product_deleted": "Produit supprimé",
1022
+ "product_saved": "Produit enregistré",
1023
+ "profile_updated": "Profil mis à jour",
1024
+ "promotion_created": "Promotion créée",
1025
+ "promotion_deleted": "Promotion supprimée",
1026
+ "promotion_saved": "Promotion enregistrée",
1027
+ "removed": "Supprimé",
1028
+ "saved": "Enregistré",
1029
+ "settings_updated": "Paramètres mis à jour",
1030
+ "stock_location_saved": "Emplacement de stock enregistré",
1031
+ "store_credit_removed": "Avoir supprimé",
1032
+ "store_credit_saved": "Avoir enregistré",
1033
+ "store_settings_updated": "Paramètres de la boutique mis à jour",
1034
+ "tax_category_saved": "Catégorie de taxe enregistrée",
1035
+ "updated": "Mis à jour"
1036
+ },
1037
+ "package_types": {
1038
+ "table_title": "Types d'emballage",
1039
+ "search_placeholder": "Rechercher un emballage",
1040
+ "empty": "Aucun emballage. Ajoutez votre carton d'expédition, ainsi que les cartons et palettes des commandes en gros.",
1041
+ "add_cta": "Ajouter un type d'emballage",
1042
+ "default_badge": "Par défaut",
1043
+ "edit_sheet_title": "Type d'emballage",
1044
+ "create_description": "Une boîte, un carton, une palette ou un conteneur dans lequel les marchandises sont emballées.",
1045
+ "edit_description": "Les produits emballés dans ce carton suivent ses dimensions : une modification les corrige tous.",
1046
+ "dimensions_column": "Dimensions",
1047
+ "volume_column": "Volume",
1048
+ "kinds": {
1049
+ "box": "Carton",
1050
+ "envelope": "Enveloppe",
1051
+ "carton": "Carton maître",
1052
+ "pallet": "Palette",
1053
+ "container": "Conteneur"
1054
+ },
1055
+ "messages": {
1056
+ "added": "Type d'emballage ajouté",
1057
+ "updated": "Type d'emballage mis à jour",
1058
+ "deleted": "Type d'emballage supprimé"
1059
+ },
1060
+ "delete_confirm": {
1061
+ "title": "Supprimer ce type d'emballage ?",
1062
+ "message": "{{name}} sera supprimé. Les produits qui y sont emballés doivent d'abord être reconditionnés."
1063
+ },
1064
+ "validation": {
1065
+ "non_negative": "doit être supérieur ou égal à zéro"
1066
+ },
1067
+ "description": "Les boîtes, cartons et palettes dans lesquels vos marchandises sont expédiées, avec les dimensions et poids sur lesquels les transporteurs établissent leurs tarifs."
1068
+ },
1069
+ "pages": {
1070
+ "settings": {
1071
+ "stock_locations": {
1072
+ "add_sheet_title": "Ajouter un emplacement de stock",
1073
+ "edit_sheet_title": "Modifier l'emplacement de stock",
1074
+ "search_placeholder": "Rechercher des emplacements de stock…"
1075
+ },
1076
+ "package_types": {
1077
+ "add_sheet_title": "Ajouter un type d'emballage"
1078
+ }
1079
+ },
1080
+ "products": {
1081
+ "add_cta": "Ajouter un produit",
1082
+ "bulk": {
1083
+ "add_categories_action": "Ajouter aux catégories…",
1084
+ "add_channels_action": "Ajouter aux canaux de vente…",
1085
+ "add_collections_action": "Ajouter à des collections",
1086
+ "add_tags_action": "Ajouter des étiquettes…",
1087
+ "categories_add_description": "Choisissez les catégories auxquelles ajouter ces produits.",
1088
+ "categories_add_failed": "Échec de l'ajout des produits aux catégories",
1089
+ "categories_add_title": "Ajouter aux catégories",
1090
+ "categories_added": "{n} produits ajoutés aux catégories",
1091
+ "categories_remove_description": "Choisissez les catégories desquelles retirer ces produits.",
1092
+ "categories_remove_failed": "Échec du retrait des produits des catégories",
1093
+ "categories_remove_title": "Retirer des catégories",
1094
+ "categories_removed": "{n} produits retirés des catégories",
1095
+ "channels_add_description": "Choisissez les canaux de vente sur lesquels répertorier ces produits.",
1096
+ "channels_add_failed": "Échec du référencement des produits sur les canaux de vente",
1097
+ "channels_add_title": "Ajouter aux canaux de vente",
1098
+ "channels_added": "{n} produits répertoriés sur les canaux de vente",
1099
+ "channels_remove_description": "Choisissez les canaux de vente desquels retirer ces produits.",
1100
+ "channels_remove_failed": "Échec du retrait des produits des canaux de vente",
1101
+ "channels_remove_title": "Retirer des canaux de vente",
1102
+ "channels_removed": "{n} produits retirés des canaux de vente",
1103
+ "collections_add_description": "Les produits sélectionnés sont ajoutés à chaque collection choisie.",
1104
+ "collections_add_failed": "Impossible d'ajouter les produits aux collections",
1105
+ "collections_add_title": "Ajouter à des collections",
1106
+ "collections_added": "Produits ajoutés aux collections",
1107
+ "collections_remove_description": "Les produits sélectionnés sont retirés de chaque collection choisie.",
1108
+ "collections_remove_failed": "Impossible de retirer les produits des collections",
1109
+ "collections_remove_title": "Retirer de collections",
1110
+ "collections_removed": "Produits retirés des collections",
1111
+ "delete_confirm": {
1112
+ "message": "Les produits sélectionnés seront supprimés. Cette action est irréversible.",
1113
+ "title": "Supprimer {n} produits ?"
1114
+ },
1115
+ "delete_failed": "Échec de la suppression des produits",
1116
+ "deleted": "{n} produits supprimés",
1117
+ "remove_categories_action": "Retirer des catégories…",
1118
+ "remove_channels_action": "Retirer des canaux de vente…",
1119
+ "remove_collections_action": "Retirer de collections",
1120
+ "remove_tags_action": "Retirer des étiquettes…",
1121
+ "set_status_action": "Définir le statut…",
1122
+ "status_sheet_description": "Choisissez le statut à appliquer aux produits sélectionnés.",
1123
+ "status_sheet_title": "Définir le statut du produit",
1124
+ "status_update_failed": "Échec de la mise à jour du statut du produit",
1125
+ "status_updated": "Statut mis à jour sur {n} produits",
1126
+ "tags_add_description": "Choisissez ou créez des étiquettes à ajouter à ces produits.",
1127
+ "tags_add_failed": "Échec de l'ajout des étiquettes",
1128
+ "tags_add_title": "Ajouter des étiquettes",
1129
+ "tags_added": "Étiquettes ajoutées à {n} produits",
1130
+ "tags_remove_description": "Choisissez les étiquettes à retirer de ces produits.",
1131
+ "tags_remove_failed": "Échec du retrait des étiquettes",
1132
+ "tags_remove_title": "Retirer des étiquettes",
1133
+ "tags_removed": "Étiquettes retirées de {n} produits"
1134
+ },
1135
+ "clone_failed": "Échec de la duplication du produit",
1136
+ "clone_succeeded": "Produit dupliqué",
1137
+ "delete_failed": "Échec de la suppression du produit",
1138
+ "delete_succeeded": "Produit supprimé",
1139
+ "edit": {
1140
+ "bulk_prices": {
1141
+ "no_variants": "Ajoutez au moins une variante pour commencer à modifier les prix."
1142
+ }
1143
+ },
1144
+ "inventory": {
1145
+ "in_stock": "{{count}} en stock",
1146
+ "in_stock_short": "En stock",
1147
+ "on_backorder": "En réapprovisionnement",
1148
+ "out_of_stock": "En rupture de stock"
1149
+ },
1150
+ "media_empty": "Aucun média pour le moment.",
1151
+ "media_upload": "Téléverser un média",
1152
+ "new": {
1153
+ "create_failed": "Échec de la création du produit",
1154
+ "create_succeeded": "Produit créé",
1155
+ "description": "Configurez votre produit — ajoutez des variantes, des prix, des stocks, des médias et des champs personnalisés",
1156
+ "preview_slug_placeholder": "slug-de-votre-produit",
1157
+ "save_label": "Créer le produit",
1158
+ "title": "Nouveau produit"
1159
+ },
1160
+ "options": {
1161
+ "add_value": "Ajouter une valeur d'option",
1162
+ "sheet_title_create": "Créer un type d'option",
1163
+ "sheet_title_edit": "Modifier le type d'option",
1164
+ "table": {
1165
+ "values": "Valeurs"
1166
+ },
1167
+ "values_empty": "Aucune valeur pour le moment.",
1168
+ "values_section": "Valeurs"
1169
+ },
1170
+ "price_lists": {
1171
+ "activate": "Activer",
1172
+ "activate_confirm": {
1173
+ "message": "« {{name}} » s'appliquera immédiatement aux clients éligibles et restera active jusqu'à sa désactivation manuelle.",
1174
+ "message_with_end": "« {{name}} » s'appliquera immédiatement aux clients éligibles et restera active jusqu'à sa désactivation manuelle ou sa date de fin ({{ends_at}}).",
1175
+ "title": "Activer la liste de prix ?"
1176
+ },
1177
+ "add_cta": "Nouvelle liste de prix",
1178
+ "add_products_cta": "Ajouter des produits",
1179
+ "add_rule": "Ajouter une règle",
1180
+ "add_rule_help": "Choisissez un type de règle à configurer.",
1181
+ "basics_section": "Informations de base",
1182
+ "deactivate": "Désactiver",
1183
+ "deactivate_confirm": {
1184
+ "message": "« {{name}} » cessera immédiatement de s'appliquer aux clients. Les commandes existantes ne sont pas affectées.",
1185
+ "title": "Désactiver la liste de prix ?"
1186
+ },
1187
+ "delete_confirm": {
1188
+ "message": "Supprimer « {{name}} » supprime ses prix. Cette action est irréversible.",
1189
+ "title": "Supprimer la liste de prix ?"
1190
+ },
1191
+ "edit_prices": {
1192
+ "add_products_link": "Ajouter des produits",
1193
+ "columns": {
1194
+ "compare_at_price": "Prix de comparaison",
1195
+ "price": "Prix",
1196
+ "product": "Produit",
1197
+ "sku": "SKU",
1198
+ "variant": "Variante"
1199
+ },
1200
+ "compare_at_aria": "Prix de comparaison pour {{label}}",
1201
+ "count_summary_one": "{{count}} prix en {{currency}}",
1202
+ "count_summary_other": "{{count}} prix en {{currency}}",
1203
+ "currency_label": "Devise",
1204
+ "dirty_summary_one": "{{count}} modification non enregistrée",
1205
+ "dirty_summary_other": "{{count}} modifications non enregistrées",
1206
+ "discard_confirm": {
1207
+ "message_close_one": "Vous avez {{count}} prix non enregistré. La fermeture l'abandonnera.",
1208
+ "message_close_other": "Vous avez {{count}} prix non enregistrés. La fermeture les abandonnera.",
1209
+ "message_currency": "Changer de devise abandonnera vos prix non enregistrés.",
1210
+ "title": "Abandonner les prix non enregistrés ?"
1211
+ },
1212
+ "empty": "Aucun produit dans cette liste pour le moment.",
1213
+ "empty_no_base_prices": "Aucun prix de base pour le moment.",
1214
+ "empty_pick_products": "Choisissez des produits dans la liste de prix pour commencer à définir les prix.",
1215
+ "grid_aria": "Prix des variantes",
1216
+ "no_matches_for_filters": "Aucun prix ne correspond aux filtres actuels.",
1217
+ "no_matches_for_search": "Aucun prix ne correspond à « {{search}} ».",
1218
+ "price_aria": "Prix pour {{label}}",
1219
+ "save_cta": "Enregistrer les prix",
1220
+ "save_failed": "Échec de l'enregistrement des prix",
1221
+ "save_success_one": "{{count}} prix enregistré",
1222
+ "save_success_other": "{{count}} prix enregistrés",
1223
+ "search_placeholder": "Rechercher par produit, SKU ou option…",
1224
+ "title": "Modifier les prix — {{name}}",
1225
+ "variant_default": "Par défaut"
1226
+ },
1227
+ "edit_prices_cta": "Modifier les prix",
1228
+ "no_changes": "Aucune modification à enregistrer.",
1229
+ "prices_help_one": "{{count}} prix configuré. Ouvrez l'éditeur groupé pour le mettre à jour.",
1230
+ "prices_help_other": "{{count}} prix configurés. Ouvrez l'éditeur groupé pour les mettre à jour.",
1231
+ "prices_help_zero": "Choisissez les produits ci-dessus pour générer des prix indicatifs, puis ouvrez l'éditeur groupé.",
1232
+ "products_empty": "Aucun produit pour le moment — ajoutez-en un pour commencer à modifier les prix.",
1233
+ "products_empty_search": "Aucun produit ne correspond",
1234
+ "products_help": "Choisissez les produits auxquels cette liste s'applique. Des prix indicatifs sont créés à l'enregistrement — renseignez-les ci-dessous.",
1235
+ "products_search_placeholder": "Rechercher des produits par nom…",
1236
+ "products_section": "Produits",
1237
+ "products_selected_one": "{{count}} produit sélectionné.",
1238
+ "products_selected_other": "{{count}} produits sélectionnés.",
1239
+ "remove_rule_confirm": {
1240
+ "message": "La règle est supprimée lorsque vous enregistrez la liste de prix.",
1241
+ "title": "Retirer la règle ?"
1242
+ },
1243
+ "remove_selected": "Retirer la sélection",
1244
+ "rule_click_to_configure": "Cliquez pour configurer",
1245
+ "rule_default_description": "Ajustez les paramètres de la règle.",
1246
+ "rule_name_overflow": "{{names}} +{{count}} de plus",
1247
+ "rule_no_options": "Cette règle n'a aucune option configurable — sa seule présence applique la contrainte.",
1248
+ "rule_types_all_used": "Tous les types de règles disponibles sont déjà sur cette liste.",
1249
+ "rule_types_empty": "Aucun type de règle enregistré.",
1250
+ "rules_empty": "Aucune règle — cette liste s'applique à tous les acheteurs.",
1251
+ "rules_help": "Conditions qui déterminent quand cette liste s'applique. Utilisez « toutes » pour exiger chaque règle, « n'importe laquelle » pour prendre la première correspondance.",
1252
+ "rules_section": "Règles",
1253
+ "schedule": "Planifier",
1254
+ "schedule_confirm": {
1255
+ "message": "« {{name}} » sera mise en ligne le {{starts_at}} et restera active jusqu'à sa date de fin.",
1256
+ "title": "Planifier la liste de prix ?"
1257
+ },
1258
+ "schedule_section": "Planification",
1259
+ "sheet_title_create": "Créer une liste de prix",
1260
+ "sheet_title_edit": "Modifier la liste de prix",
1261
+ "subtitle": "Tarification ciblée pour des groupes de clients, des régions ou des paliers de volume.",
1262
+ "title": "Listes de prix",
1263
+ "unschedule": "Déplanifier",
1264
+ "unschedule_confirm": {
1265
+ "message": "« {{name}} » ne s'activera plus à sa date planifiée. Vous pourrez la replanifier ou l'activer manuellement plus tard.",
1266
+ "title": "Déplanifier la liste de prix ?"
1267
+ }
1268
+ },
1269
+ "publishing": {
1270
+ "caption_hidden_after": "Retiré le {{date}}",
1271
+ "caption_live": "Visible par les clients dès maintenant",
1272
+ "caption_not_available": "Masqué — le produit est {{product_status}}",
1273
+ "caption_scheduled": "Mise en ligne le {{date}}",
1274
+ "caption_unpublished": "A été masqué le {{date}}",
1275
+ "caption_window": "En ligne du {{start}} au {{end}}",
1276
+ "empty": "Pas encore répertorié sur un canal de vente.",
1277
+ "inactive_marker": "Inactif",
1278
+ "manage_cta": "Gérer",
1279
+ "manage_description": "Choisissez les canaux de vente sur lesquels ce produit est répertorié. Désactivez un canal pour le retirer partout.",
1280
+ "manage_title": "Gérer les canaux de vente",
1281
+ "no_channels": "Aucun canal de vente disponible. Créez-en un dans Paramètres → Canaux de vente.",
1282
+ "status_hidden": "Masqué",
1283
+ "status_live": "En ligne",
1284
+ "status_not_available": "Indisponible",
1285
+ "status_scheduled": "Planifié",
1286
+ "title": "Publication"
1287
+ },
1288
+ "section_basics": "Informations de base",
1289
+ "section_categorization": "Catégorisation",
1290
+ "section_inventory": "Stock",
1291
+ "section_media": "Médias",
1292
+ "section_organization": "Organisation",
1293
+ "section_pricing": "Tarification",
1294
+ "section_seo": "SEO",
1295
+ "section_variants": "Variantes",
1296
+ "status_options": {
1297
+ "active": "Actif",
1298
+ "archived": "Archivé",
1299
+ "draft": "Brouillon",
1300
+ "proposed": "En cours de revue",
1301
+ "rejected": "Modifications requises"
1302
+ },
1303
+ "status_under_review": "Ce produit est en cours de revue. Utilisez Approuver ou Rejeter pour décider.",
1304
+ "transfers": {
1305
+ "description_external": "Réception externe dans <strong>{{destination}}</strong>.",
1306
+ "description_internal": "Stock déplacé de <strong>{{source}}</strong> vers <strong>{{destination}}</strong>.",
1307
+ "edit_sheet_title": "Transfert {{number}}",
1308
+ "items_empty": "Aucun article pour le moment.",
1309
+ "section_from": "De",
1310
+ "section_items": "Articles",
1311
+ "section_to": "Vers",
1312
+ "sheet_title": "Nouveau transfert de stock"
1313
+ },
1314
+ "variants_empty": "Aucune variante pour le moment.",
1315
+ "variants_one": "{{count}} variante",
1316
+ "variants_other": "{{count}} variantes"
1317
+ }
1318
+ },
1319
+ "resource_picker": {
1320
+ "add_count_one": "Ajouter {{count}}",
1321
+ "add_count_other": "Ajouter {{count}}",
1322
+ "already_added": "Ajouté",
1323
+ "empty": "Aucun résultat trouvé.",
1324
+ "load_more": "Charger plus",
1325
+ "search_placeholder": "Rechercher…",
1326
+ "select_all_matching_one": "Sélectionner le résultat correspondant {{count}}",
1327
+ "select_all_matching_other": "Sélectionner les {{count}} résultats correspondants",
1328
+ "select_page_one": "Sélectionner {{count}} élément sur cette page",
1329
+ "select_page_other": "Sélectionner les {{count}} éléments sur cette page",
1330
+ "selected_count_one": "{{count}} sélectionné",
1331
+ "selected_count_other": "{{count}} sélectionnés",
1332
+ "title": "Ajouter des produits"
1333
+ },
1334
+ "row_actions": {
1335
+ "clone": "Dupliquer",
1336
+ "delete": "Supprimer",
1337
+ "edit": "Modifier",
1338
+ "menu_label": "Ouvrir les actions"
1339
+ },
1340
+ "settings_nav": {
1341
+ "groups": {
1342
+ "fulfillment": "Traitement des commandes",
1343
+ "team": "Équipe et accès"
1344
+ },
1345
+ "items": {
1346
+ "stock_locations": "Emplacements de stock"
1347
+ }
1348
+ },
1349
+ "settings_page": {
1350
+ "back_to_dashboard": "Retour au tableau de bord",
1351
+ "description": "Gérez votre boutique, votre configuration de vente et votre équipe.",
1352
+ "no_results": "Aucun paramètre ne correspond à « {{query}} ».",
1353
+ "search_placeholder": "Rechercher dans les paramètres",
1354
+ "title": "Paramètres"
1355
+ },
1356
+ "stock_locations": {
1357
+ "add_cta": "Ajouter un emplacement de stock",
1358
+ "badges": {
1359
+ "default": "Par défaut",
1360
+ "enabled": "Activé",
1361
+ "inactive": "Inactif"
1362
+ },
1363
+ "columns": {
1364
+ "default": "Par défaut",
1365
+ "location": "Emplacement",
1366
+ "pickup": "Retrait",
1367
+ "returns": "Retours",
1368
+ "seller": "Vendeur",
1369
+ "type": "Type"
1370
+ },
1371
+ "create_description": "Ajoutez un entrepôt, un magasin ou un point de retrait pour traiter les commandes.",
1372
+ "create_label": "Créer un emplacement de stock",
1373
+ "delete_confirm": {
1374
+ "message": "{{name}} sera supprimé. Les articles en stock à cet emplacement ne sont pas supprimés.",
1375
+ "title": "Supprimer l'emplacement de stock ?"
1376
+ },
1377
+ "edit_description": "Mettez à jour le nom, l'adresse, le retrait ou les politiques de stock.",
1378
+ "empty": "Aucun emplacement de stock pour le moment",
1379
+ "kinds": {
1380
+ "fulfillment_center": "Centre de distribution",
1381
+ "store": "Magasin",
1382
+ "warehouse": "Entrepôt"
1383
+ },
1384
+ "pickup_stock_policies": {
1385
+ "any": "Autoriser les transferts depuis d'autres emplacements",
1386
+ "local": "Uniquement les articles à cet emplacement"
1387
+ },
1388
+ "search_placeholder": "Rechercher par nom…",
1389
+ "section_behavior": "Comportement",
1390
+ "section_details": "Détails",
1391
+ "section_pickup": "Retrait",
1392
+ "section_returns": "Retours",
1393
+ "stock_levels": {
1394
+ "empty": "Aucun niveau de stock à cet emplacement pour le moment.",
1395
+ "empty_search": "Aucun niveau de stock ne correspond à votre recherche.",
1396
+ "help": "Ajustez les quantités disponibles et en réassort par variante.",
1397
+ "low_stock_marker": "stock faible",
1398
+ "search_placeholder": "Rechercher un SKU ou un produit…",
1399
+ "table": {
1400
+ "backorder": "Réassort",
1401
+ "on_hand": "Disponible",
1402
+ "variant": "Variante"
1403
+ },
1404
+ "title": "Stock à cet emplacement",
1405
+ "unknown_product": "Produit inconnu",
1406
+ "variant_count_one": "{{count}} variante",
1407
+ "variant_count_other": "{{count}} variantes"
1408
+ },
1409
+ "description": "Les entrepôts et boutiques où vous détenez du stock et depuis lesquels vous expédiez les commandes."
1410
+ },
1411
+ "validation": {
1412
+ "codes": {
1413
+ "accepted": "doit être accepté",
1414
+ "blank": "ne peut pas être vide",
1415
+ "confirmation": "ne correspond pas",
1416
+ "empty": "ne peut pas être vide",
1417
+ "equal_to": "doit être égal à {{count}}",
1418
+ "exclusion": "est réservé",
1419
+ "forbidden_reporting_member": "Ce rapport référence des données que vous n’êtes pas autorisé à lire.",
1420
+ "greater_than": "doit être supérieur à {{count}}",
1421
+ "greater_than_or_equal_to": "doit être supérieur ou égal à {{count}}",
1422
+ "inclusion": "ne fait pas partie de la liste",
1423
+ "invalid": "est invalide",
1424
+ "invalid_commission_rule_type": "{{type}} n’est pas une règle de commission proposée par cette boutique",
1425
+ "less_than": "doit être inférieur à {{count}}",
1426
+ "less_than_or_equal_to": "doit être inférieur ou égal à {{count}}",
1427
+ "not_a_number": "n'est pas un nombre",
1428
+ "not_an_integer": "doit être un nombre entier",
1429
+ "other_than": "doit être différent de {{count}}",
1430
+ "present": "doit être vide",
1431
+ "product_not_in_store": "doivent tous appartenir à cette boutique",
1432
+ "required": "doit exister",
1433
+ "seeded_report_read_only": "Ce rapport est intégré et ne peut pas être modifié. Enregistrez plutôt une copie.",
1434
+ "taken": "est déjà utilisé",
1435
+ "too_long": "est trop long ({{count}} caractères maximum)",
1436
+ "too_short": "est trop court ({{count}} caractères minimum)",
1437
+ "wrong_length": "n'a pas la bonne longueur ({{count}} caractères attendus)"
1438
+ },
1439
+ "country_required": "Le pays est requis",
1440
+ "currency_required": "La devise est requise",
1441
+ "first_name_required": "Le prénom est obligatoire",
1442
+ "invalid_email": "Saisissez une adresse e-mail valide",
1443
+ "invalid_email_or_password": "E-mail ou mot de passe invalide",
1444
+ "invalid_hex_color": "Couleur hexadécimale invalide",
1445
+ "invalid_password": "Mot de passe invalide",
1446
+ "last_name_required": "Le nom est obligatoire",
1447
+ "min_length": "{{field}} doit comporter au moins {{count}} caractères",
1448
+ "password_required": "Le mot de passe est obligatoire",
1449
+ "passwords_dont_match": "Les mots de passe ne correspondent pas",
1450
+ "positive_number": "{{field}} doit être supérieur à 0",
1451
+ "required": "{{field}} est obligatoire",
1452
+ "store_name_required": "Le nom de la boutique est requis"
1453
+ },
1454
+ "products": {
1455
+ "autocomplete": {
1456
+ "empty": "Aucun produit ne correspond",
1457
+ "placeholder": "Rechercher des produits par nom…"
1458
+ },
1459
+ "category_search_placeholder": "Rechercher des catégories…",
1460
+ "collection_search_placeholder": "Rechercher des collections…",
1461
+ "columns": {
1462
+ "in_stock": "En stock",
1463
+ "price": "Prix",
1464
+ "sku": "SKU"
1465
+ },
1466
+ "delete_confirm": "Voulez-vous vraiment supprimer ce produit ?",
1467
+ "delete_label": "Supprimer le produit",
1468
+ "inventory": {
1469
+ "backorder_aria": "Autoriser le réassort à {{location}}",
1470
+ "columns": {
1471
+ "backorder": "Réassort",
1472
+ "location": "Emplacement",
1473
+ "on_hand": "En stock"
1474
+ },
1475
+ "empty_no_locations": "Ajoutez un emplacement de stock dans les Paramètres pour commencer à suivre l'inventaire.",
1476
+ "empty_no_variants": "Les niveaux de stock sont gérés par emplacement de stock. Ajoutez une variante pour commencer à suivre l'inventaire.",
1477
+ "on_hand_aria": "En stock à {{location}}",
1478
+ "unknown_location": "Emplacement inconnu"
1479
+ },
1480
+ "media": {
1481
+ "add_from_library": "Ajouter depuis la médiathèque",
1482
+ "add_video": "Ajouter un lien vidéo",
1483
+ "add_video_submit": "Ajouter la vidéo",
1484
+ "add_video_title": "Ajouter un lien vidéo",
1485
+ "assigned_variants_help": "Sélectionnez les variantes que cette image représente. Laissez vide pour l'appliquer à toutes les variantes.",
1486
+ "assigned_variants_label": "Variantes associées",
1487
+ "delete_confirm": "Supprimer ce média ? Cette action est irréversible.",
1488
+ "drop_hint": "Glissez-déposez un média ici, ou cliquez pour parcourir",
1489
+ "edit_title": "Modifier le média",
1490
+ "file_types_hint": "Images (PNG, JPG, WebP) et vidéos (MP4, WebM, MOV)",
1491
+ "focal_point_help": "Cliquez sur l'image pour définir ce qui reste visible lors du recadrage.",
1492
+ "focal_point_reset": "Réinitialiser",
1493
+ "unsupported_file_one": "{{count}} fichier n'a pas été ajouté — seules les images et vidéos sont prises en charge.",
1494
+ "unsupported_file_other": "{{count}} fichiers n'ont pas été ajoutés — seules les images et vidéos sont prises en charge.",
1495
+ "upload_failed": "Échec du téléversement de {{name}} : {{message}}",
1496
+ "upload_status_failed": "Échec",
1497
+ "video_preview_title": "Aperçu de la vidéo",
1498
+ "video_url_invalid": "Saisissez un lien YouTube ou Vimeo."
1499
+ },
1500
+ "no_categories_found": "Aucune catégorie trouvée",
1501
+ "no_collections_found": "Aucune collection trouvée",
1502
+ "options": {
1503
+ "add_cta": "Ajouter un type d'option",
1504
+ "count_one": "{{count}} valeur",
1505
+ "count_other": "{{count}} valeurs",
1506
+ "create_description": "Définissez une option que les variantes peuvent utiliser (par ex. taille, couleur).",
1507
+ "create_label": "Créer un type d'option",
1508
+ "delete_confirm": {
1509
+ "message": "Cela supprimera également toutes ses valeurs. Les variantes utilisant ces valeurs les perdront.",
1510
+ "title": "Supprimer le type d'option ?"
1511
+ },
1512
+ "edit_description": "Modifiez le type d'option et ses valeurs.",
1513
+ "image_upload_failed": "Échec du téléversement de l'image",
1514
+ "kinds": {
1515
+ "buttons": "Boutons",
1516
+ "color_swatch": "Nuancier de couleurs",
1517
+ "dropdown": "Liste déroulante"
1518
+ },
1519
+ "value_label_placeholder": "par ex. Petit",
1520
+ "value_name_placeholder": "par ex. small",
1521
+ "values_help": "Faites glisser les valeurs pour les réorganiser. La première valeur est celle par défaut pour les nouvelles variantes."
1522
+ },
1523
+ "price_lists": {
1524
+ "errors": {
1525
+ "failed_to_activate": "Échec de l'activation de la liste de prix",
1526
+ "failed_to_deactivate": "Échec de la désactivation de la liste de prix"
1527
+ },
1528
+ "messages": {
1529
+ "activated": "Liste de prix activée",
1530
+ "created": "Liste de prix créée",
1531
+ "deactivated": "Liste de prix désactivée",
1532
+ "deleted": "Liste de prix supprimée",
1533
+ "updated": "Liste de prix mise à jour"
1534
+ },
1535
+ "validation": {
1536
+ "ends_after_starts": "Doit être postérieur à la date de début."
1537
+ }
1538
+ },
1539
+ "product_type_adds_options_one": "Ce type ajoute {{options}} aux nouveaux produits.",
1540
+ "product_type_adds_options_other": "Ce type ajoute {{options}} aux nouveaux produits.",
1541
+ "product_type_placeholder": "Aucun type de produit",
1542
+ "save_label": "Enregistrer le produit",
1543
+ "seo": {
1544
+ "meta_description_placeholder": "Description SEO",
1545
+ "meta_title_placeholder": "Titre SEO",
1546
+ "slug_placeholder": "url-du-produit"
1547
+ },
1548
+ "tax_category_placeholder": "Sélectionner une catégorie de taxe",
1549
+ "transfers": {
1550
+ "create_description": "Déplacer du stock entre les emplacements, ou recevoir du nouveau stock d’un fournisseur externe.",
1551
+ "delete_confirm": {
1552
+ "message": "Les mouvements de stock créés par ce transfert seront annulés.",
1553
+ "title": "Supprimer ce transfert ?"
1554
+ },
1555
+ "destination_placeholder": "Sélectionner l'emplacement de destination",
1556
+ "details_card": "Détails",
1557
+ "different_locations_error": "La source et la destination doivent être différentes.",
1558
+ "external_label": "Externe (réception fournisseur)",
1559
+ "fields": {
1560
+ "created": "Créé le",
1561
+ "external_receive": "Réception externe",
1562
+ "immutable_note": "Les transferts de stock sont immuables une fois créés.",
1563
+ "internal": "Interne",
1564
+ "reference": "Référence",
1565
+ "type": "Type"
1566
+ },
1567
+ "items_table": {
1568
+ "qty": "Qté",
1569
+ "sku": "SKU",
1570
+ "variant": "Variante"
1571
+ },
1572
+ "new_cta": "Nouveau transfert",
1573
+ "reference_label": "Référence",
1574
+ "reference_placeholder": "Numéro de commande, facture fournisseur, …",
1575
+ "review_description": "Vérifiez le transfert avant de le créer. Les articles ne pourront plus être modifiés ensuite.",
1576
+ "search_items_placeholder": "Rechercher par nom ou SKU (3 caractères ou plus)…"
1577
+ },
1578
+ "variants": {
1579
+ "add_option": "Ajouter une option",
1580
+ "bulk_edit": {
1581
+ "grid_aria": "Tableau d'édition groupée des variantes",
1582
+ "title": "Modifier les variantes en masse",
1583
+ "trigger": "Édition groupée",
1584
+ "unset": "Aucun"
1585
+ },
1586
+ "create_option_type": "Créer un nouveau type d'option",
1587
+ "create_option_type_title": "Nouveau type d'option",
1588
+ "create_value": "Nouvelle valeur",
1589
+ "create_value_title": "Nouvelle valeur d'option",
1590
+ "default_variant": "Variante par défaut",
1591
+ "edit_row_aria": "Modifier {{name}}",
1592
+ "edit_variant": "Modifier la variante — {{name}}",
1593
+ "errors": {
1594
+ "failed_to_create_option_type": "Impossible de créer le type d’option",
1595
+ "failed_to_create_value": "Impossible de créer la valeur"
1596
+ },
1597
+ "keep": "Tout conserver",
1598
+ "option_type_label": "Type d'option",
1599
+ "option_type_placeholder": "Choisissez un type d'option",
1600
+ "orphan_warning": "{{count}} variante(s) existante(s) seront supprimées à l'enregistrement :",
1601
+ "orphan_warning_one": "{{count}} variante existante ne correspond plus aux options sélectionnées et sera supprimée à l'enregistrement :",
1602
+ "orphan_warning_other": "{{count}} variantes existantes ne correspondent plus aux options sélectionnées et seront supprimées à l'enregistrement :",
1603
+ "remove_row_aria": "Retirer {{name}}",
1604
+ "sheet": {
1605
+ "availability": "Disponibilité",
1606
+ "customs": "Douane",
1607
+ "customs_help": "Utilisé sur les formulaires douaniers lorsque cet article franchit une frontière.",
1608
+ "identity": "Identité",
1609
+ "tax_category_placeholder": "Hériter du produit",
1610
+ "ordering": "Commande B2B",
1611
+ "ordering_help": "Combien un acheteur doit prendre. Vérifié lors de l'ajout au panier puis de nouveau au paiement. Le catalogue d'un groupe de clients ou d'une entreprise peut remplacer ces valeurs pour ses acheteurs. Le stock reste compté en unités.",
1612
+ "packing": "Emballage",
1613
+ "packing_help": "Comment ce produit quitte l’entrepôt en gros. Les devis de fret reposent sur ces chiffres.",
1614
+ "no_carton_types": "Ajoutez un type de carton dans <settingsLink>Paramètres → Types d'emballage</settingsLink> pour enregistrer la façon dont ce produit est emballé.",
1615
+ "carton_placeholder": "Aucun carton",
1616
+ "pending_save": "Les modifications sont enregistrées avec le produit."
1617
+ },
1618
+ "title": "Variantes",
1619
+ "variant_label": "Variante"
1620
+ }
1621
+ },
1622
+ "product_types": {
1623
+ "add_cta": "Ajouter un type de produit",
1624
+ "add_sheet_title": "Nouveau type de produit",
1625
+ "affects_new_only": {
1626
+ "description": "Modifier les types d’option et les catégories affecte les produits créés à partir de maintenant. Les produits ayant déjà ce type conservent ce qu’ils ont. Les champs personnalisés ci-dessous apparaissent toujours sur tous les produits de ce type.",
1627
+ "title": "Les modifications s’appliquent aux nouveaux produits"
1628
+ },
1629
+ "apply_to_products": {
1630
+ "confirm_label": "Appliquer",
1631
+ "cta_one": "Appliquer à {{count}} produit existant",
1632
+ "cta_other": "Appliquer à {{count}} produits existants",
1633
+ "message_one": "Cela ajoute les types d’option et catégories manquants de ce type à {{count}} produit. Rien n’est supprimé.",
1634
+ "message_other": "Cela ajoute les types d’option et catégories manquants de ce type à {{count}} produits. Rien n’est supprimé.",
1635
+ "title": "Appliquer aux produits existants"
1636
+ },
1637
+ "create_description": "Regroupez les produits et définissez leurs modes de livraison.",
1638
+ "create_label": "Créer le type de produit",
1639
+ "custom_delivery_profile": "Personnalisé",
1640
+ "default_delivery_profile": "Profil par défaut de la boutique",
1641
+ "delete_confirm": {
1642
+ "message": "Voulez-vous vraiment supprimer « {{name}} » ? Les types encore utilisés par des produits ne peuvent pas être supprimés.",
1643
+ "title": "Supprimer le type de produit"
1644
+ },
1645
+ "edit_description": "Modifier le nom ou les modes de livraison des produits de ce type.",
1646
+ "edit_sheet_title": "Modifier le type de produit",
1647
+ "empty": "Aucun type de produit",
1648
+ "messages": {
1649
+ "applied_to_products": "Application aux produits existants",
1650
+ "created": "Type de produit créé",
1651
+ "deleted": "Type de produit supprimé",
1652
+ "updated": "Type de produit mis à jour"
1653
+ },
1654
+ "no_categories": "Aucune catégorie",
1655
+ "no_option_types": "Aucun type d’option",
1656
+ "option_type_search_placeholder": "Rechercher des types d’option",
1657
+ "search_placeholder": "Rechercher des types de produit"
1658
+ },
1659
+ "calculators": {
1660
+ "default_refund_amount": "Montant de remboursement par défaut",
1661
+ "default_tax": "Taxe par défaut",
1662
+ "digital_delivery": "Livraison numérique",
1663
+ "flat_percent_item_total": "Pourcentage fixe",
1664
+ "flat_rate": "Tarif forfaitaire",
1665
+ "flexi_rate": "Tarif flexible",
1666
+ "per_item": "Par article",
1667
+ "percent_on_line_item": "Pourcentage par ligne d’article",
1668
+ "price_sack": "Palier de prix",
1669
+ "tiered_flat_rate": "Tarif forfaitaire par paliers",
1670
+ "tiered_percent": "Pourcentage par paliers"
1671
+ },
1672
+ "stock_levels": {
1673
+ "messages": {
1674
+ "stock_level_deleted": "Niveau de stock supprimé",
1675
+ "stock_updated": "Stock mis à jour"
1676
+ }
1677
+ },
1678
+ "option_types": {
1679
+ "columns": {
1680
+ "values": "Valeurs"
1681
+ },
1682
+ "kinds": {
1683
+ "buttons": "Boutons",
1684
+ "color_swatch": "Nuancier de couleur",
1685
+ "dropdown": "Liste déroulante"
1686
+ },
1687
+ "messages": {
1688
+ "created": "Type d'option créé",
1689
+ "deleted": "Type d'option supprimé",
1690
+ "updated": "Type d'option mis à jour"
1691
+ },
1692
+ "table": {
1693
+ "empty": "Aucun type d'option pour le moment",
1694
+ "search_placeholder": "Rechercher par nom…"
1695
+ },
1696
+ "value_count_one": "{{count}} valeur",
1697
+ "value_count_other": "{{count}} valeurs"
1698
+ },
1699
+ "media_library": {
1700
+ "download": "Télécharger"
1701
+ },
1702
+ "catalogs": {
1703
+ "terms": {
1704
+ "title": "Conditions commerciales",
1705
+ "description": "Les quantités que les acheteurs de cet accord doivent commander.",
1706
+ "no_rule_placeholder": "Aucune règle",
1707
+ "minimums_title": "Minimums de commande",
1708
+ "minimums_description": "Le montant minimal d'une commande entière, par devise.",
1709
+ "minimums_empty": "Aucun minimum de commande. Les acheteurs peuvent commander tout montant.",
1710
+ "minimum_amount_label": "Montant minimal",
1711
+ "validation": {
1712
+ "positive_integer": "Saisissez un nombre entier supérieur à zéro, ou laissez vide.",
1713
+ "currency_taken": "Cette devise a déjà un minimum.",
1714
+ "positive_amount": "Saisissez un montant supérieur à zéro.",
1715
+ "fix_terms": "Corrigez les règles de quantité signalées avant d’enregistrer."
1716
+ },
1717
+ "mixed": "Variable",
1718
+ "inherits": "Par défaut",
1719
+ "default_help": "S'applique à chaque produit de ce catalogue, sauf si un produit indique le sien dans la liste.",
1720
+ "column_minimum": "Minimum",
1721
+ "column_multiple": "Multiple",
1722
+ "help": {
1723
+ "minimum": "La plus petite quantité qu'un acheteur peut commander d'un produit. Une commande inférieure est refusée en indiquant les quantités valables les plus proches — rien n'est jamais arrondi.",
1724
+ "multiple": "Le pas. Avec un multiple de 24, un acheteur commande 24, 48 ou 72 — jamais 30. Les paliers partent du minimum : un minimum de 50 par pas de 24 autorise 50, 74 et 98.",
1725
+ "order_minimum": "Le montant minimal d'une commande entière, articles seuls — la livraison et la taxe n'y contribuent pas. Les acheteurs voient ce qu'il leur manque et la commande est refusée en dessous."
1726
+ }
1727
+ }
1728
+ },
1729
+ "types": {
1730
+ "calculator": {
1731
+ "default_refund_amount": {
1732
+ "name": "Montant de remboursement par défaut",
1733
+ "description": "Rembourse le montant payé à l'origine pour les articles retournés"
1734
+ },
1735
+ "default_tax": {
1736
+ "name": "Taxe par défaut",
1737
+ "description": "Applique le taux de taxe au montant imposable"
1738
+ },
1739
+ "digital_delivery": {
1740
+ "name": "Livraison numérique",
1741
+ "description": "Aucun frais de livraison — la commande est livrée numériquement"
1742
+ },
1743
+ "flat_percent_item_total": {
1744
+ "name": "Pourcentage fixe",
1745
+ "description": "Un pourcentage du total des articles de la commande"
1746
+ },
1747
+ "flat_rate": {
1748
+ "name": "Tarif forfaitaire",
1749
+ "description": "Un montant fixe, quel que soit le contenu de la commande"
1750
+ },
1751
+ "flexi_rate": {
1752
+ "name": "Tarif flexible",
1753
+ "description": "Un montant de base plus un montant par article"
1754
+ },
1755
+ "per_item": {
1756
+ "name": "Par article",
1757
+ "description": "Un montant fixe pour chaque article de la commande"
1758
+ },
1759
+ "percent_on_line_item": {
1760
+ "name": "Pourcentage par ligne d’article",
1761
+ "description": "Un pourcentage de chaque ligne de commande"
1762
+ },
1763
+ "price_sack": {
1764
+ "name": "Palier de prix",
1765
+ "description": "Un montant en dessous d'un seuil, un autre à partir de ce seuil"
1766
+ },
1767
+ "tiered_flat_rate": {
1768
+ "name": "Tarif forfaitaire par paliers",
1769
+ "description": "Un montant fixe qui varie selon le total de la commande"
1770
+ },
1771
+ "tiered_percent": {
1772
+ "name": "Pourcentage par paliers",
1773
+ "description": "Un pourcentage qui varie selon le total de la commande"
1774
+ }
1775
+ },
1776
+ "collection_rule": {
1777
+ "available_on": {
1778
+ "name": "Publié récemment",
1779
+ "description": "Produits publiés au cours des N derniers jours"
1780
+ },
1781
+ "sale": {
1782
+ "name": "En promotion",
1783
+ "description": "Produits actuellement remisés sous leur prix de référence"
1784
+ },
1785
+ "tag": {
1786
+ "name": "Étiquette",
1787
+ "description": "Produits portant une étiquette correspondante"
1788
+ }
1789
+ },
1790
+ "commission_rule": {
1791
+ "category_rule": {
1792
+ "name": "Catégorie",
1793
+ "description": "Applique ce taux uniquement aux produits des catégories choisies et de leurs sous-catégories"
1794
+ },
1795
+ "item_total_rule": {
1796
+ "name": "Valeur de vente",
1797
+ "description": "Applique ce taux uniquement aux ventes dans une plage de valeur"
1798
+ },
1799
+ "product_rule": {
1800
+ "name": "Produit",
1801
+ "description": "Applique ce taux uniquement aux produits sélectionnés"
1802
+ },
1803
+ "seller_rule": {
1804
+ "name": "Vendeur",
1805
+ "description": "Applique ce taux uniquement pour les vendeurs sélectionnés"
1806
+ }
1807
+ },
1808
+ "delivery_method_rule": {
1809
+ "channel_rule": {
1810
+ "name": "Canal de vente",
1811
+ "description": "Proposer ce mode de livraison uniquement sur les canaux choisis"
1812
+ },
1813
+ "company_rule": {
1814
+ "name": "Entreprise",
1815
+ "description": "Proposer ce mode de livraison uniquement aux commandes passées pour une entreprise, ou uniquement aux autres"
1816
+ },
1817
+ "excluded_products_rule": {
1818
+ "name": "Produits exclus",
1819
+ "description": "Masquer ce mode de livraison si la commande contient un de ces produits"
1820
+ },
1821
+ "item_total_rule": {
1822
+ "name": "Total des articles",
1823
+ "description": "Proposer ce mode de livraison uniquement si le total est dans une plage"
1824
+ },
1825
+ "volume_rule": {
1826
+ "name": "Volume",
1827
+ "description": "Proposer ce mode de livraison uniquement si le volume est dans une plage, en mètres cubes"
1828
+ },
1829
+ "weight_rule": {
1830
+ "name": "Poids",
1831
+ "description": "Proposer ce mode de livraison uniquement si le poids est dans une plage"
1832
+ }
1833
+ },
1834
+ "order_routing_rule": {
1835
+ "default_location": {
1836
+ "name": "Lieu de stock par défaut",
1837
+ "description": "Privilégie le lieu de stock marqué comme défaut"
1838
+ },
1839
+ "minimize_splits": {
1840
+ "name": "Minimiser les envois fractionnés",
1841
+ "description": "Privilégie le lieu capable d'expédier le plus d'articles à lui seul, évitant les envois fractionnés"
1842
+ },
1843
+ "preferred_location": {
1844
+ "name": "Lieu de stock préféré",
1845
+ "description": "Expédier depuis le lieu épinglé sur la commande, s'il est défini"
1846
+ }
1847
+ },
1848
+ "price_rule": {
1849
+ "channel_rule": {
1850
+ "name": "Canal de vente",
1851
+ "description": "Appliquer les prix selon le canal de vente"
1852
+ },
1853
+ "customer_group_rule": {
1854
+ "name": "Groupe de clients",
1855
+ "description": "Appliquer les prix à des groupes de clients précis"
1856
+ },
1857
+ "market_rule": {
1858
+ "name": "Marché",
1859
+ "description": "Appliquer les prix selon le marché"
1860
+ },
1861
+ "user_rule": {
1862
+ "name": "Client",
1863
+ "description": "Appliquer les prix à des clients précis"
1864
+ },
1865
+ "volume_rule": {
1866
+ "name": "Prix par volume",
1867
+ "description": "Appliquer les prix selon la quantité achetée"
1868
+ },
1869
+ "zone_rule": {
1870
+ "name": "Zone",
1871
+ "description": "Appliquer les prix selon la zone de livraison"
1872
+ }
1873
+ },
1874
+ "promotion_action": {
1875
+ "create_adjustment": {
1876
+ "name": "Créer un ajustement sur l'ensemble de la commande",
1877
+ "description": "Crée un ajustement de crédit promotionnel sur la commande"
1878
+ },
1879
+ "create_item_adjustments": {
1880
+ "name": "Créer un ajustement par ligne d'article",
1881
+ "description": "Crée un ajustement de crédit promotionnel sur une ligne d'article"
1882
+ },
1883
+ "create_line_items": {
1884
+ "name": "Créer des lignes d'article",
1885
+ "description": "Ajoute au panier la quantité spécifiée de la variante"
1886
+ },
1887
+ "free_shipping": {
1888
+ "name": "Livraison gratuite",
1889
+ "description": "Rend gratuites toutes les expéditions de la commande"
1890
+ }
1891
+ },
1892
+ "promotion_rule": {
1893
+ "category": {
1894
+ "name": "Catégories",
1895
+ "description": "La commande contient des produits des catégories spécifiées"
1896
+ },
1897
+ "channel": {
1898
+ "name": "Canaux de vente",
1899
+ "description": "Limiter aux commandes passées via des canaux de vente précis"
1900
+ },
1901
+ "country": {
1902
+ "name": "Pays",
1903
+ "description": "Limiter aux commandes dont l'adresse de livraison se trouve dans un pays spécifique"
1904
+ },
1905
+ "currency": {
1906
+ "name": "Devise",
1907
+ "description": "Limiter aux commandes dans une devise spécifique"
1908
+ },
1909
+ "customer": {
1910
+ "name": "Clients",
1911
+ "description": "Disponible uniquement pour les clients spécifiés"
1912
+ },
1913
+ "customer_group": {
1914
+ "name": "Groupe(s) de clients",
1915
+ "description": "Disponible uniquement pour les clients des groupes de clients spécifiés"
1916
+ },
1917
+ "customer_logged_in": {
1918
+ "name": "Uniquement les clients connectés",
1919
+ "description": "Disponible uniquement pour les clients connectés"
1920
+ },
1921
+ "first_order": {
1922
+ "name": "Première commande",
1923
+ "description": "Doit être la première commande du client"
1924
+ },
1925
+ "item_total": {
1926
+ "name": "Total des articles",
1927
+ "description": "Le total de la commande répond à ces critères"
1928
+ },
1929
+ "market": {
1930
+ "name": "Marchés",
1931
+ "description": "Limiter aux commandes provenant de marchés précis"
1932
+ },
1933
+ "one_use_per_user": {
1934
+ "name": "Une utilisation par utilisateur",
1935
+ "description": "Une seule utilisation par utilisateur"
1936
+ },
1937
+ "option_value": {
1938
+ "name": "Valeur(s) d'option",
1939
+ "description": "La commande contient des produits avec des valeurs d'option correspondantes"
1940
+ },
1941
+ "product": {
1942
+ "name": "Produit(s)",
1943
+ "description": "La commande contient le(s) produit(s) spécifié(s)"
1944
+ }
1945
+ },
1946
+ "seller_requirement": {
1947
+ "accept_terms": {
1948
+ "name": "Accepter les conditions",
1949
+ "description": "Le vendeur doit accepter vos conditions de la marketplace avant de vendre"
1950
+ },
1951
+ "attestation": {
1952
+ "name": "Confirmation du vendeur",
1953
+ "description": "Le vendeur doit confirmer une déclaration que vous rédigez"
1954
+ },
1955
+ "billing_address": {
1956
+ "name": "Adresse de facturation",
1957
+ "description": "Le vendeur doit fournir une adresse de facturation"
1958
+ },
1959
+ "complete_profile": {
1960
+ "name": "Compléter le profil",
1961
+ "description": "Le vendeur doit compléter son profil public"
1962
+ },
1963
+ "delivery_method": {
1964
+ "name": "Mode de livraison",
1965
+ "description": "Le vendeur doit configurer au moins un mode de livraison"
1966
+ },
1967
+ "document": {
1968
+ "name": "Document",
1969
+ "description": "Le vendeur doit téléverser un document à examiner"
1970
+ },
1971
+ "minimum_products": {
1972
+ "name": "Nombre minimum de produits",
1973
+ "description": "Le vendeur doit publier un nombre minimum de produits"
1974
+ },
1975
+ "operator_review": {
1976
+ "name": "Vérification manuelle",
1977
+ "description": "Un membre de votre équipe doit approuver le vendeur manuellement"
1978
+ },
1979
+ "payout_account": {
1980
+ "name": "Compte de versement",
1981
+ "description": "Le vendeur doit connecter un compte pour recevoir les versements"
1982
+ },
1983
+ "policy": {
1984
+ "name": "Politique du vendeur",
1985
+ "description": "Le vendeur doit publier les politiques de sa boutique"
1986
+ },
1987
+ "required_custom_fields": {
1988
+ "name": "Champs personnalisés obligatoires",
1989
+ "description": "Le vendeur doit remplir les champs personnalisés que vous rendez obligatoires"
1990
+ },
1991
+ "returns_address": {
1992
+ "name": "Adresse de retour",
1993
+ "description": "Le vendeur doit fournir une adresse pour les retours"
1994
+ }
1995
+ }
628
1996
  }
629
1997
  }
630
1998
  }