Add custom page template for composable products, bump to v1.3.2
All checks were successful
Create Release Package / PHP Lint (push) Successful in 48s
Create Release Package / PHP CodeSniffer (push) Successful in 1m0s
Create Release Package / PHP Unit (push) Successful in 59s
Create Release Package / build-release (push) Successful in 1m4s

- Custom WooCommerce template with compact header + full-width selector
- Twig layout template (single-product-composable.html.twig) + PHP loader
- Body class 'single-product-composable' for CSS scoping
- Renamed *.twig to *.html.twig (proper naming convention)
- Refreshed .pot with accurate file refs, merged all .po files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 14:08:44 +01:00
parent 8877ce976a
commit 3ac1e0d6f7
15 changed files with 2145 additions and 1568 deletions

View File

@@ -4,8 +4,9 @@
msgid ""
msgstr ""
"Project-Id-Version: WooCommerce Composable Products 1.0.0\n"
"Report-Msgid-Bugs-To: https://github.com/magdev/wc-composable-product/issues\n"
"POT-Creation-Date: 2024-12-31 00:00+0000\n"
"Report-Msgid-Bugs-To: https://github.com/magdev/wc-composable-product/"
"issues\n"
"POT-Creation-Date: 2026-03-01 13:47+0100\n"
"PO-Revision-Date: 2024-12-31 00:00+0000\n"
"Last-Translator: Claude AI\n"
"Language-Team: French (Switzerland)\n"
@@ -15,250 +16,300 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: wc-composable-product.php
msgid "WooCommerce Composable Products requires WooCommerce to be installed and active."
msgstr "WooCommerce Composable Products nécessite une installation WooCommerce active."
#: wc-composable-product.php:44
msgid ""
"WooCommerce Composable Products requires WooCommerce to be installed and "
"active."
msgstr ""
"WooCommerce Composable Products nécessite une installation WooCommerce "
"active."
#: wc-composable-product.php
#: wc-composable-product.php:90
msgid "This plugin requires WooCommerce to be installed and active."
msgstr "Cette extension nécessite une installation WooCommerce active."
#: wc-composable-product.php
#: wc-composable-product.php:91
msgid "Plugin Activation Error"
msgstr "Erreur d'activation de l'extension"
#: includes/Admin/Settings.php
msgid "Composable Products"
msgstr "Produits Composables"
#: includes/Admin/Settings.php
msgid "Composable Products Settings"
msgstr "Paramètres des produits composables"
#: includes/Admin/Settings.php
msgid "Configure default settings for composable products."
msgstr "Configurez les paramètres par défaut pour les produits composables."
#: includes/Admin/Settings.php
msgid "Default Selection Limit"
msgstr "Limite de sélection par défaut"
#: includes/Admin/Settings.php
msgid "Default number of items customers can select."
msgstr "Nombre par défaut d'articles que les clients peuvent sélectionner (p. ex. 5 stickers pour CHF 50.-)."
#: includes/Admin/Settings.php
msgid "Default Pricing Mode"
msgstr "Mode de tarification par défaut"
#: includes/Admin/Settings.php
msgid "How to calculate the price of composable products."
msgstr "Comment calculer le prix des produits composables (p. ex. prix fixe CHF 50.- ou somme)."
#: includes/Admin/Settings.php
msgid "Sum of selected products"
msgstr "Somme des produits sélectionnés"
#: includes/Admin/Settings.php
msgid "Fixed price"
msgstr "Prix fixe"
#: includes/Admin/Settings.php
msgid "Show Product Images"
msgstr "Afficher les images des produits"
#: includes/Admin/Settings.php
msgid "Display product images in the selection interface."
msgstr "Afficher les images des produits dans l'interface de sélection."
#: includes/Admin/Settings.php
msgid "Show Product Prices"
msgstr "Afficher les prix des produits"
#: includes/Admin/Settings.php
msgid "Display individual product prices in the selection interface."
msgstr "Afficher les prix individuels des produits dans l'interface de sélection."
#: includes/Admin/Settings.php
msgid "Show Total Price"
msgstr "Afficher le prix total"
#: includes/Admin/Settings.php
msgid "Display the total price as customers make selections."
msgstr "Afficher le prix total pendant que les clients font leurs sélections."
#: includes/Plugin.php
msgid "Composable product"
msgstr "Produit composable"
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Sélectionnez vos produits"
#: templates/product-selector.twig
msgid "Choose up to"
msgstr "Choisissez jusqu'à"
#: templates/product-selector.twig
msgid "items from the selection below."
msgstr "articles de la sélection ci-dessous."
#: templates/product-selector.twig
msgid "Total Price:"
msgstr "Prix total :"
#: templates/product-selector.twig
msgid "Add to Cart"
msgstr "Ajouter au panier"
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Veuillez sélectionner au moins un produit."
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Vous pouvez sélectionner un maximum de %d produits."
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Un ou plusieurs produits sélectionnés ne sont pas disponibles."
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Produits sélectionnés"
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Options de composition"
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Limite de sélection"
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Nombre maximum d'articles que les clients peuvent sélectionner. Laisser vide pour utiliser la valeur par défaut globale."
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Mode de tarification"
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Comment calculer le prix."
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Prix fixe"
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Entrez le prix fixe pour ce produit composable."
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Utiliser la valeur par défaut globale"
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Critères de sélection"
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Comment sélectionner les produits disponibles."
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Par catégorie"
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Par étiquette"
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Par référence"
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Sélectionner les catégories"
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Sélectionner les catégories de produits à inclure."
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Sélectionner les étiquettes"
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Sélectionner les étiquettes de produits à inclure."
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Références des produits"
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Entrez les références des produits séparées par des virgules."
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "REF-1, REF-2, REF-3"
#: includes/StockManager.php
#. translators: %s: product name
#: includes/StockManager.php:60
#, php-format
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" est en rupture de stock et ne peut pas être sélectionné."
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Seulement %2$d de \"%1$s\" sont disponibles en stock."
#: templates/product-selector.html.twig
msgid "Add to Cart"
msgstr "Ajouter au panier"
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Stock réduit pour \"%1$s\": -%2$d (restant: %3$d)"
#: includes/Admin/ProductData.php:108
msgid ""
"Allow draft and private products in the selection. Useful when products "
"should only be sold as part of a composition."
msgstr ""
"Autoriser les brouillons et les produits privés dans la sélection. Utile "
"lorsque les produits ne doivent être vendus que dans le cadre d'une "
"composition."
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Stock restauré pour \"%1$s\": +%2$d (total: %3$d)"
#: includes/Admin/Settings.php:65
msgid ""
"Allow draft and private products to appear in composable product selections. "
"Useful when products should only be sold as part of a composition, not "
"individually."
msgstr ""
"Autoriser les brouillons et les produits privés dans les sélections de "
"produits composables. Utile lorsque les produits ne doivent être vendus que "
"dans le cadre d'une composition, pas individuellement."
#: templates/product-selector.twig
msgid "Out of stock"
msgstr "Rupture de stock"
#: includes/Admin/ProductData.php:126
msgid "By Category"
msgstr "Par catégorie"
#: templates/product-selector.twig
msgid "Only"
msgstr "Seulement"
#: includes/Admin/ProductData.php:128
msgid "By SKU"
msgstr "Par référence"
#: templates/product-selector.twig
msgid "left"
msgstr "restant"
#: includes/Admin/ProductData.php:127
msgid "By Tag"
msgstr "Par étiquette"
#: templates/product-selector.twig
#: templates/product-selector.html.twig
msgid "Choose up to"
msgstr "Choisissez jusqu'à"
#: includes/Admin/ProductData.php:34
msgid "Composable Options"
msgstr "Options de composition"
#: includes/Plugin.php:132
msgid "Composable product"
msgstr "Produit composable"
#: includes/Admin/Settings.php:21
msgid "Composable Products"
msgstr "Produits Composables"
#: includes/Admin/Settings.php:34
msgid "Composable Products Settings"
msgstr "Paramètres des produits composables"
#: includes/Admin/Settings.php:36
msgid "Configure default settings for composable products."
msgstr "Configurez les paramètres par défaut pour les produits composables."
#: includes/Admin/Settings.php:52
msgid "Default Pricing Mode"
msgstr "Mode de tarification par défaut"
#: includes/Admin/Settings.php:40
msgid "Default Selection Limit"
msgstr "Limite de sélection par défaut"
#: includes/Admin/Settings.php:41
msgid "Default number of items customers can select."
msgstr ""
"Nombre par défaut d'articles que les clients peuvent sélectionner (p. ex. 5 "
"stickers pour CHF 50.-)."
#: includes/Admin/Settings.php:79
msgid "Display individual product prices in the selection interface."
msgstr ""
"Afficher les prix individuels des produits dans l'interface de sélection."
#: includes/Admin/Settings.php:72
msgid "Display product images in the selection interface."
msgstr "Afficher les images des produits dans l'interface de sélection."
#: includes/Admin/Settings.php:86
msgid "Display the total price as customers make selections."
msgstr "Afficher le prix total pendant que les clients font leurs sélections."
#: includes/Admin/ProductData.php:196
msgid "Enter product SKUs separated by commas."
msgstr "Entrez les références des produits séparées par des virgules."
#: includes/Admin/ProductData.php:83
msgid "Enter the fixed price for this composable product."
msgstr "Entrez le prix fixe pour ce produit composable."
#: includes/Admin/ProductData.php:82
msgid "Fixed Price"
msgstr "Prix fixe"
#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59
msgid "Fixed price"
msgstr "Prix fixe"
#: includes/Admin/Settings.php:53
msgid "How to calculate the price of composable products."
msgstr ""
"Comment calculer le prix des produits composables (p. ex. prix fixe CHF 50.- "
"ou somme)."
#: includes/Admin/ProductData.php:69
msgid "How to calculate the price."
msgstr "Comment calculer le prix."
#: includes/Admin/ProductData.php:123
msgid "How to select available products."
msgstr "Comment sélectionner les produits disponibles."
#: templates/product-selector.html.twig
msgid "In stock"
msgstr "En stock"
#: templates/product-selector.twig
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Aucun produit disponible pour la sélection. Veuillez configurer les critères de produit dans le panneau d'administration."
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64
msgid "Include Non-Public Products"
msgstr "Inclure les produits non publics"
#: includes/Admin/Settings.php
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Autoriser les brouillons et les produits privés dans les sélections de produits composables. Utile lorsque les produits ne doivent être vendus que dans le cadre d'une composition, pas individuellement."
#: templates/product-selector.html.twig
msgid "items from the selection below."
msgstr "articles de la sélection ci-dessous."
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Autoriser les brouillons et les produits privés dans la sélection. Utile lorsque les produits ne doivent être vendus que dans le cadre d'une composition."
#: includes/Plugin.php:178
msgid "Maximum items selected"
msgstr ""
#: includes/Admin/ProductData.php
#: includes/Admin/ProductData.php:55
msgid ""
"Maximum number of items customers can select. Leave empty to use global "
"default."
msgstr ""
"Nombre maximum d'articles que les clients peuvent sélectionner. Laisser vide "
"pour utiliser la valeur par défaut globale."
#: includes/Admin/ProductData.php:113
msgid "No"
msgstr "Non"
#: templates/product-selector.html.twig
msgid ""
"No products available for selection. Please configure the product criteria "
"in the admin panel."
msgstr ""
"Aucun produit disponible pour la sélection. Veuillez configurer les critères "
"de produit dans le panneau d'administration."
#: includes/CartHandler.php:115
msgid "One or more selected products are not available."
msgstr "Un ou plusieurs produits sélectionnés ne sont pas disponibles."
#: templates/product-selector.html.twig
msgid "Only"
msgstr "Seulement"
#. translators: 1: product name, 2: stock quantity
#: includes/StockManager.php:69
#, php-format
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Seulement %2$d de \"%1$s\" sont disponibles en stock."
#: templates/product-selector.html.twig
msgid "Out of stock"
msgstr "Rupture de stock"
#: includes/CartHandler.php:84 includes/CartHandler.php:100
msgid "Please select at least one product."
msgstr "Veuillez sélectionner au moins un produit."
#: includes/Plugin.php:179
msgid "Please select at least one item"
msgstr ""
#: includes/Plugin.php:177
msgid "Please select items"
msgstr ""
#: includes/Admin/ProductData.php:68
msgid "Pricing Mode"
msgstr "Mode de tarification"
#: includes/Admin/ProductData.php:195
msgid "Product SKUs"
msgstr "Références des produits"
#: includes/Admin/ProductData.php:198
msgid "SKU-1, SKU-2, SKU-3"
msgstr "REF-1, REF-2, REF-3"
#: templates/product-selector.html.twig
msgid "Select Your Products"
msgstr "Sélectionnez vos produits"
#: includes/Admin/ProductData.php:138
msgid "Select Categories"
msgstr "Sélectionner les catégories"
#: includes/Admin/ProductData.php:165
msgid "Select Tags"
msgstr "Sélectionner les étiquettes"
#: includes/Admin/ProductData.php:159
msgid "Select product categories to include."
msgstr "Sélectionner les catégories de produits à inclure."
#: includes/Admin/ProductData.php:186
msgid "Select product tags to include."
msgstr "Sélectionner les étiquettes de produits à inclure."
#: includes/CartHandler.php:191
msgid "Selected Products"
msgstr "Produits sélectionnés"
#: includes/Admin/ProductData.php:122
msgid "Selection Criteria"
msgstr "Critères de sélection"
#: includes/Admin/ProductData.php:54
msgid "Selection Limit"
msgstr "Limite de sélection"
#: includes/Admin/Settings.php:71
msgid "Show Product Images"
msgstr "Afficher les images des produits"
#: includes/Admin/Settings.php:78
msgid "Show Product Prices"
msgstr "Afficher les prix des produits"
#: includes/Admin/Settings.php:85
msgid "Show Total Price"
msgstr "Afficher le prix total"
#. translators: 1: product name, 2: quantity, 3: remaining stock
#: includes/StockManager.php:168
#, php-format
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Stock réduit pour \"%1$s\": -%2$d (restant: %3$d)"
#. translators: 1: product name, 2: quantity, 3: new stock
#: includes/StockManager.php:235
#, php-format
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Stock restauré pour \"%1$s\": +%2$d (total: %3$d)"
#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58
msgid "Sum of selected products"
msgstr "Somme des produits sélectionnés"
#: templates/product-selector.html.twig
msgid "Total Price:"
msgstr "Prix total :"
#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111
msgid "Use global default"
msgstr "Utiliser la valeur par défaut globale"
#: includes/Admin/ProductData.php:112
msgid "Yes"
msgstr "Oui"
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Non"
#. translators: %d: selection limit
#: includes/CartHandler.php:95
#, php-format
msgid "You can select a maximum of %d products."
msgstr "Vous pouvez sélectionner un maximum de %d produits."
#: templates/product-selector.html.twig
msgid "left"
msgstr "restant"