From 3ac1e0d6f7d897fdcc96d14dccb517fc3443ef2c Mon Sep 17 00:00:00 2001 From: magdev Date: Sun, 1 Mar 2026 14:08:44 +0100 Subject: [PATCH] Add custom page template for composable products, bump to v1.3.2 - 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 --- CHANGELOG.md | 14 + assets/css/frontend.css | 82 +++ includes/Plugin.php | 41 ++ includes/ProductSelector.php | 2 +- languages/wc-composable-product-de_CH.po | 498 ++++++++++-------- .../wc-composable-product-de_CH_informal.po | 497 +++++++++-------- languages/wc-composable-product-de_DE.po | 494 +++++++++-------- .../wc-composable-product-de_DE_informal.po | 493 +++++++++-------- languages/wc-composable-product-fr_CH.po | 495 +++++++++-------- languages/wc-composable-product-it_CH.po | 494 +++++++++-------- languages/wc-composable-product.pot | 479 +++++++++-------- .../content-single-product-composable.php | 83 +++ ...lector.twig => product-selector.html.twig} | 0 templates/single-product-composable.html.twig | 37 ++ wc-composable-product.php | 4 +- 15 files changed, 2145 insertions(+), 1568 deletions(-) create mode 100644 templates/content-single-product-composable.php rename templates/{product-selector.twig => product-selector.html.twig} (100%) create mode 100644 templates/single-product-composable.html.twig diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a5ae14..d7ee771 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.2] - 2026-03-01 + +### Added + +- **Custom page template** for composable products — replaces the standard WooCommerce two-column layout (large image gallery + summary) with a compact product info header and full-width product selector grid +- New Twig template `single-product-composable.html.twig` with PHP loader for WooCommerce template override +- Body class `single-product-composable` for CSS scoping on composable product pages + +### Changed + +- Renamed Twig templates from `*.twig` to `*.html.twig` (proper Twig naming convention) +- Refreshed translation catalog (.pot) with accurate file references and line numbers +- Updated all .po/.mo translation files via `msgmerge` + ## [1.3.1] - 2026-03-01 ### Added diff --git a/assets/css/frontend.css b/assets/css/frontend.css index f21ded0..e0b3c4e 100755 --- a/assets/css/frontend.css +++ b/assets/css/frontend.css @@ -240,3 +240,85 @@ grid-template-columns: 1fr; } } + +/* ========================================================================= + Composable product page layout + ========================================================================= */ + +/* Compact product header */ +.composable-product-header { + display: flex; + align-items: flex-start; + gap: 1.5rem; + padding: 1.5rem; + margin-bottom: 1.5rem; + background: #fff; + border: 1px solid #e0e0e0; + border-radius: 8px; +} + +.composable-header-thumbnail { + flex-shrink: 0; +} + +.composable-header-thumbnail img { + width: 100px; + height: 100px; + object-fit: cover; + border-radius: 6px; +} + +.composable-header-info { + flex: 1; + min-width: 0; +} + +.composable-product-layout .product_title { + margin: 0 0 0.5rem; + font-size: 1.5rem; + line-height: 1.3; +} + +.composable-header-price { + margin-bottom: 0.5rem; + font-size: 1.1rem; + color: #2c3e50; + font-weight: 600; +} + +.composable-header-description { + color: #666; + font-size: 0.95rem; + line-height: 1.5; +} + +.composable-header-description p:last-child { + margin-bottom: 0; +} + +/* Full-width selector area */ +.composable-selector-area { + margin-bottom: 2rem; +} + +/* Override WooCommerce default product layout for composable products */ +.single-product-composable .composable-product-layout { + max-width: 100%; +} + +.single-product-composable .composable-product-layout .wc-composable-product-selector { + max-width: 100%; +} + +/* Responsive: stack header vertically on small screens */ +@media (max-width: 768px) { + .composable-product-header { + flex-direction: column; + align-items: center; + text-align: center; + } + + .composable-product-layout .product_title { + font-size: 1.25rem; + } +} diff --git a/includes/Plugin.php b/includes/Plugin.php index d46040b..ee7e623 100644 --- a/includes/Plugin.php +++ b/includes/Plugin.php @@ -64,6 +64,10 @@ class Plugin { // Admin settings add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_settings_page' ) ); + + // Custom page template for composable products + add_filter( 'wc_get_template_part', array( $this, 'override_single_product_template' ), 10, 3 ); + add_filter( 'body_class', array( $this, 'add_composable_body_class' ) ); } /** @@ -224,6 +228,43 @@ class Plugin { return $settings; } + /** + * Override single product template for composable products + * + * @param string $template Template path + * @param string $slug Template slug + * @param string $name Template name + * @return string + */ + public function override_single_product_template( $template, $slug, $name ) { + if ( 'content' === $slug && 'single-product' === $name ) { + global $product; + if ( $product && $product->get_type() === 'composable' ) { + $custom_template = WC_COMPOSABLE_PRODUCT_PATH . 'templates/content-single-product-composable.php'; + if ( file_exists( $custom_template ) ) { + return $custom_template; + } + } + } + return $template; + } + + /** + * Add body class for composable product pages + * + * @param array $classes Body CSS classes + * @return array + */ + public function add_composable_body_class( $classes ) { + if ( is_product() ) { + global $product; + if ( $product && $product->get_type() === 'composable' ) { + $classes[] = 'single-product-composable'; + } + } + return $classes; + } + /** * Get Twig environment * diff --git a/includes/ProductSelector.php b/includes/ProductSelector.php index 9c3902c..9578a21 100644 --- a/includes/ProductSelector.php +++ b/includes/ProductSelector.php @@ -73,6 +73,6 @@ class ProductSelector { // Render template — Twig handles escaping via registered esc_html/esc_attr/esc_url functions. $plugin = Plugin::instance(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output escaped by Twig template. - echo $plugin->render_template( 'product-selector.twig', $context ); + echo $plugin->render_template( 'product-selector.html.twig', $context ); } } diff --git a/languages/wc-composable-product-de_CH.po b/languages/wc-composable-product-de_CH.po index d91ff5f..ad6470a 100755 --- a/languages/wc-composable-product-de_CH.po +++ b/languages/wc-composable-product-de_CH.po @@ -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: German (Switzerland)\n" @@ -15,250 +16,301 @@ 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 erfordert eine installierte und aktive WooCommerce-Installation." +#: wc-composable-product.php:44 +msgid "" +"WooCommerce Composable Products requires WooCommerce to be installed and " +"active." +msgstr "" +"WooCommerce Composable Products erfordert eine installierte und aktive " +"WooCommerce-Installation." -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." -msgstr "Dieses Plugin erfordert eine installierte und aktive WooCommerce-Installation." +msgstr "" +"Dieses Plugin erfordert eine installierte und aktive WooCommerce-" +"Installation." -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "Plugin-Aktivierungsfehler" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "Zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "Einstellungen für zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "Konfigurieren Sie die Standardeinstellungen für zusammenstellbare Produkte." - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "Standard-Auswahllimit" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "Standardanzahl der Artikel, die Kunden auswählen können (z.B. 5 Sticker für CHF 50.-)." - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "Standard-Preismodus" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird (z.B. Festpreis CHF 50.- oder Summe)." - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "Summe der ausgewählten Produkte" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "Festpreis" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "Produktbilder anzeigen" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "Produktpreise anzeigen" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "Gesamtpreis anzeigen" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." - -#: includes/Plugin.php -msgid "Composable product" -msgstr "Zusammenstellbares Produkt" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "Wählen Sie Ihre Produkte" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "Wählen Sie bis zu" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "Artikel aus der untenstehenden Auswahl." - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "Gesamtpreis:" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "In den Warenkorb" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "Bitte wählen Sie mindestens ein Produkt aus." - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "Sie können maximal %d Produkte auswählen." - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "Ausgewählte Produkte" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "Zusammenstellungsoptionen" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "Auswahllimit" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden." - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "Preismodus" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "Wie der Preis berechnet wird." - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "Festpreis" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein." - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "Globalen Standard verwenden" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "Auswahlkriterien" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "Wie verfügbare Produkte ausgewählt werden." - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "Nach Kategorie" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "Nach Schlagwort" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "Nach Artikelnummer" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "Kategorien auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "Produktkategorien auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "Schlagwörter auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "Produkt-Artikelnummern" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein." - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "ART-1, ART-2, ART-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\" ist nicht an Lager und kann nicht ausgewählt werden." -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." -msgstr "Nur %2$d von \"%1$s\" sind an Lager verfügbar." +#: templates/product-selector.html.twig +msgid "Add to Cart" +msgstr "In den Warenkorb" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "" +"Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn " +"Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %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 "" +"Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte " +"anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung " +"verkauft werden sollen, nicht einzeln." -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "Nicht an Lager" +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "Nach Kategorie" -#: templates/product-selector.twig -msgid "Only" -msgstr "Nur" +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "Nach Artikelnummer" -#: templates/product-selector.twig -msgid "left" -msgstr "übrig" +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "Nach Schlagwort" -#: templates/product-selector.twig +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "Wählen Sie bis zu" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "Zusammenstellungsoptionen" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "Zusammenstellbares Produkt" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "Zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "Einstellungen für zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "" +"Konfigurieren Sie die Standardeinstellungen für zusammenstellbare Produkte." + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "Standard-Preismodus" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "Standard-Auswahllimit" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "" +"Standardanzahl der Artikel, die Kunden auswählen können (z.B. 5 Sticker für " +"CHF 50.-)." + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein." + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein." + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "Festpreis" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "Festpreis" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "" +"Wie der Preis für zusammenstellbare Produkte berechnet wird (z.B. Festpreis " +"CHF 50.- oder Summe)." + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "Wie der Preis berechnet wird." + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "Wie verfügbare Produkte ausgewählt werden." + +#: templates/product-selector.html.twig msgid "In stock" msgstr "An Lager" -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich." - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 msgid "Include Non-Public Products" msgstr "Nicht-öffentliche Produkte einbeziehen" -#: 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 "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln." +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "Artikel aus der untenstehenden Auswahl." -#: 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 "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." +#: 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 "" +"Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um " +"den globalen Standard zu verwenden." + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "Nein" + +#: templates/product-selector.html.twig +msgid "" +"No products available for selection. Please configure the product criteria " +"in the admin panel." +msgstr "" +"Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die " +"Produktkriterien im Admin-Bereich." + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "Nur" + +#. 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 "Nur %2$d von \"%1$s\" sind an Lager verfügbar." + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "Nicht an Lager" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "Bitte wählen Sie mindestens ein Produkt aus." + +#: 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 "Preismodus" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "Produkt-Artikelnummern" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "ART-1, ART-2, ART-3" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "Wählen Sie Ihre Produkte" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "Kategorien auswählen" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "Schlagwörter auswählen" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "Produktkategorien auswählen, die einbezogen werden sollen." + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "Ausgewählte Produkte" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "Auswahlkriterien" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "Auswahllimit" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "Produktbilder anzeigen" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "Produktpreise anzeigen" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "Gesamtpreis anzeigen" + +#. 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 "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "Summe der ausgewählten Produkte" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "Gesamtpreis:" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "Globalen Standard verwenden" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "Ja" -#: includes/Admin/ProductData.php -msgid "No" -msgstr "Nein" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "Sie können maximal %d Produkte auswählen." + +#: templates/product-selector.html.twig +msgid "left" +msgstr "übrig" diff --git a/languages/wc-composable-product-de_CH_informal.po b/languages/wc-composable-product-de_CH_informal.po index 3afa972..b755509 100755 --- a/languages/wc-composable-product-de_CH_informal.po +++ b/languages/wc-composable-product-de_CH_informal.po @@ -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: German (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 erfordert eine installierte und aktive WooCommerce-Installation." +#: wc-composable-product.php:44 +msgid "" +"WooCommerce Composable Products requires WooCommerce to be installed and " +"active." +msgstr "" +"WooCommerce Composable Products erfordert eine installierte und aktive " +"WooCommerce-Installation." -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." -msgstr "Dieses Plugin erfordert eine installierte und aktive WooCommerce-Installation." +msgstr "" +"Dieses Plugin erfordert eine installierte und aktive WooCommerce-" +"Installation." -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "Plugin-Aktivierungsfehler" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "Zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "Einstellungen für zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "Konfiguriere die Standardeinstellungen für zusammenstellbare Produkte." - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "Standard-Auswahllimit" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "Standardanzahl der Artikel, die Kunden auswählen können (z.B. 5 Sticker für CHF 50.-)." - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "Standard-Preismodus" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird (z.B. Festpreis CHF 50.- oder Summe)." - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "Summe der ausgewählten Produkte" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "Festpreis" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "Produktbilder anzeigen" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "Produktpreise anzeigen" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "Gesamtpreis anzeigen" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." - -#: includes/Plugin.php -msgid "Composable product" -msgstr "Zusammenstellbares Produkt" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "Wähle deine Produkte" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "Wähle bis zu" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "Artikel aus der untenstehenden Auswahl." - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "Gesamtpreis:" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "In den Warenkorb" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "Bitte wähle mindestens ein Produkt aus." - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "Du kannst maximal %d Produkte auswählen." - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "Ausgewählte Produkte" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "Zusammenstellungsoptionen" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "Auswahllimit" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden." - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "Preismodus" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "Wie der Preis berechnet wird." - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "Festpreis" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein." - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "Globalen Standard verwenden" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "Auswahlkriterien" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "Wie verfügbare Produkte ausgewählt werden." - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "Nach Kategorie" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "Nach Schlagwort" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "Nach Artikelnummer" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "Kategorien auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "Produktkategorien auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "Schlagwörter auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "Produkt-Artikelnummern" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein." - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "ART-1, ART-2, ART-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\" ist nicht an Lager und kann nicht ausgewählt werden." -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." -msgstr "Nur %2$d von \"%1$s\" sind an Lager verfügbar." +#: templates/product-selector.html.twig +msgid "Add to Cart" +msgstr "In den Warenkorb" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "" +"Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn " +"Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %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 "" +"Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte " +"anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung " +"verkauft werden sollen, nicht einzeln." -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "Nicht an Lager" +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "Nach Kategorie" -#: templates/product-selector.twig -msgid "Only" -msgstr "Nur" +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "Nach Artikelnummer" -#: templates/product-selector.twig -msgid "left" -msgstr "übrig" +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "Nach Schlagwort" -#: templates/product-selector.twig +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "Wähle bis zu" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "Zusammenstellungsoptionen" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "Zusammenstellbares Produkt" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "Zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "Einstellungen für zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "Konfiguriere die Standardeinstellungen für zusammenstellbare Produkte." + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "Standard-Preismodus" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "Standard-Auswahllimit" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "" +"Standardanzahl der Artikel, die Kunden auswählen können (z.B. 5 Sticker für " +"CHF 50.-)." + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein." + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein." + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "Festpreis" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "Festpreis" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "" +"Wie der Preis für zusammenstellbare Produkte berechnet wird (z.B. Festpreis " +"CHF 50.- oder Summe)." + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "Wie der Preis berechnet wird." + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "Wie verfügbare Produkte ausgewählt werden." + +#: templates/product-selector.html.twig msgid "In stock" msgstr "An Lager" -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich." - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 msgid "Include Non-Public Products" msgstr "Nicht-öffentliche Produkte einbeziehen" -#: 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 "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln." +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "Artikel aus der untenstehenden Auswahl." -#: 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 "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." +#: 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 "" +"Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um " +"den globalen Standard zu verwenden." + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "Nein" + +#: templates/product-selector.html.twig +msgid "" +"No products available for selection. Please configure the product criteria " +"in the admin panel." +msgstr "" +"Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die " +"Produktkriterien im Admin-Bereich." + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "Nur" + +#. 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 "Nur %2$d von \"%1$s\" sind an Lager verfügbar." + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "Nicht an Lager" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "Bitte wähle mindestens ein Produkt aus." + +#: 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 "Preismodus" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "Produkt-Artikelnummern" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "ART-1, ART-2, ART-3" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "Wähle deine Produkte" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "Kategorien auswählen" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "Schlagwörter auswählen" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "Produktkategorien auswählen, die einbezogen werden sollen." + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "Ausgewählte Produkte" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "Auswahlkriterien" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "Auswahllimit" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "Produktbilder anzeigen" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "Produktpreise anzeigen" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "Gesamtpreis anzeigen" + +#. 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 "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "Summe der ausgewählten Produkte" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "Gesamtpreis:" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "Globalen Standard verwenden" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "Ja" -#: includes/Admin/ProductData.php -msgid "No" -msgstr "Nein" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "Du kannst maximal %d Produkte auswählen." + +#: templates/product-selector.html.twig +msgid "left" +msgstr "übrig" diff --git a/languages/wc-composable-product-de_DE.po b/languages/wc-composable-product-de_DE.po index 8778c9a..9d856ff 100755 --- a/languages/wc-composable-product-de_DE.po +++ b/languages/wc-composable-product-de_DE.po @@ -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: German\n" @@ -15,250 +16,297 @@ 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 erfordert eine installierte und aktive WooCommerce-Installation." +#: wc-composable-product.php:44 +msgid "" +"WooCommerce Composable Products requires WooCommerce to be installed and " +"active." +msgstr "" +"WooCommerce Composable Products erfordert eine installierte und aktive " +"WooCommerce-Installation." -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." -msgstr "Dieses Plugin erfordert eine installierte und aktive WooCommerce-Installation." +msgstr "" +"Dieses Plugin erfordert eine installierte und aktive WooCommerce-" +"Installation." -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "Plugin-Aktivierungsfehler" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "Zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "Einstellungen für zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "Konfigurieren Sie die Standardeinstellungen für zusammenstellbare Produkte." - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "Standard-Auswahllimit" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "Standardanzahl der Artikel, die Kunden auswählen können." - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "Standard-Preismodus" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird." - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "Summe der ausgewählten Produkte" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "Festpreis" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "Produktbilder anzeigen" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "Produktpreise anzeigen" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "Gesamtpreis anzeigen" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." - -#: includes/Plugin.php -msgid "Composable product" -msgstr "Zusammenstellbares Produkt" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "Wählen Sie Ihre Produkte" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "Wählen Sie bis zu" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "Artikel aus der untenstehenden Auswahl." - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "Gesamtpreis:" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "In den Warenkorb" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "Bitte wählen Sie mindestens ein Produkt aus." - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "Sie können maximal %d Produkte auswählen." - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "Ausgewählte Produkte" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "Zusammenstellungsoptionen" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "Auswahllimit" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden." - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "Preismodus" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "Wie der Preis berechnet wird." - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "Festpreis" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein." - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "Globalen Standard verwenden" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "Auswahlkriterien" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "Wie verfügbare Produkte ausgewählt werden." - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "Nach Kategorie" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "Nach Schlagwort" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "Nach Artikelnummer" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "Kategorien auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "Produktkategorien auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "Schlagwörter auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "Produkt-Artikelnummern" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein." - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "ART-1, ART-2, ART-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\" ist nicht auf Lager und kann nicht ausgewählt werden." -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." -msgstr "Nur %2$d von \"%1$s\" sind auf Lager verfügbar." +#: templates/product-selector.html.twig +msgid "Add to Cart" +msgstr "In den Warenkorb" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "" +"Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn " +"Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %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 "" +"Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte " +"anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung " +"verkauft werden sollen, nicht einzeln." -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "Nicht auf Lager" +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "Nach Kategorie" -#: templates/product-selector.twig -msgid "Only" -msgstr "Nur" +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "Nach Artikelnummer" -#: templates/product-selector.twig -msgid "left" -msgstr "übrig" +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "Nach Schlagwort" -#: templates/product-selector.twig +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "Wählen Sie bis zu" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "Zusammenstellungsoptionen" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "Zusammenstellbares Produkt" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "Zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "Einstellungen für zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "" +"Konfigurieren Sie die Standardeinstellungen für zusammenstellbare Produkte." + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "Standard-Preismodus" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "Standard-Auswahllimit" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "Standardanzahl der Artikel, die Kunden auswählen können." + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein." + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein." + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "Festpreis" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "Festpreis" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird." + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "Wie der Preis berechnet wird." + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "Wie verfügbare Produkte ausgewählt werden." + +#: templates/product-selector.html.twig msgid "In stock" msgstr "Auf Lager" -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich." - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 msgid "Include Non-Public Products" msgstr "Nicht-öffentliche Produkte einbeziehen" -#: 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 "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln." +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "Artikel aus der untenstehenden Auswahl." -#: 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 "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." +#: 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 "" +"Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um " +"den globalen Standard zu verwenden." + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "Nein" + +#: templates/product-selector.html.twig +msgid "" +"No products available for selection. Please configure the product criteria " +"in the admin panel." +msgstr "" +"Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die " +"Produktkriterien im Admin-Bereich." + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "Nur" + +#. 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 "Nur %2$d von \"%1$s\" sind auf Lager verfügbar." + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "Nicht auf Lager" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "Bitte wählen Sie mindestens ein Produkt aus." + +#: 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 "Preismodus" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "Produkt-Artikelnummern" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "ART-1, ART-2, ART-3" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "Wählen Sie Ihre Produkte" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "Kategorien auswählen" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "Schlagwörter auswählen" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "Produktkategorien auswählen, die einbezogen werden sollen." + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "Ausgewählte Produkte" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "Auswahlkriterien" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "Auswahllimit" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "Produktbilder anzeigen" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "Produktpreise anzeigen" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "Gesamtpreis anzeigen" + +#. 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 "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "Summe der ausgewählten Produkte" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "Gesamtpreis:" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "Globalen Standard verwenden" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "Ja" -#: includes/Admin/ProductData.php -msgid "No" -msgstr "Nein" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "Sie können maximal %d Produkte auswählen." + +#: templates/product-selector.html.twig +msgid "left" +msgstr "übrig" diff --git a/languages/wc-composable-product-de_DE_informal.po b/languages/wc-composable-product-de_DE_informal.po index a838dcc..cb47865 100755 --- a/languages/wc-composable-product-de_DE_informal.po +++ b/languages/wc-composable-product-de_DE_informal.po @@ -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: German\n" @@ -15,250 +16,296 @@ 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 erfordert eine installierte und aktive WooCommerce-Installation." +#: wc-composable-product.php:44 +msgid "" +"WooCommerce Composable Products requires WooCommerce to be installed and " +"active." +msgstr "" +"WooCommerce Composable Products erfordert eine installierte und aktive " +"WooCommerce-Installation." -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." -msgstr "Dieses Plugin erfordert eine installierte und aktive WooCommerce-Installation." +msgstr "" +"Dieses Plugin erfordert eine installierte und aktive WooCommerce-" +"Installation." -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "Plugin-Aktivierungsfehler" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "Zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "Einstellungen für zusammenstellbare Produkte" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "Konfiguriere die Standardeinstellungen für zusammenstellbare Produkte." - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "Standard-Auswahllimit" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "Standardanzahl der Artikel, die Kunden auswählen können." - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "Standard-Preismodus" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird." - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "Summe der ausgewählten Produkte" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "Festpreis" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "Produktbilder anzeigen" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "Produktpreise anzeigen" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "Gesamtpreis anzeigen" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." - -#: includes/Plugin.php -msgid "Composable product" -msgstr "Zusammenstellbares Produkt" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "Wähle deine Produkte" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "Wähle bis zu" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "Artikel aus der untenstehenden Auswahl." - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "Gesamtpreis:" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "In den Warenkorb" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "Bitte wähle mindestens ein Produkt aus." - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "Du kannst maximal %d Produkte auswählen." - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "Ausgewählte Produkte" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "Zusammenstellungsoptionen" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "Auswahllimit" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden." - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "Preismodus" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "Wie der Preis berechnet wird." - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "Festpreis" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein." - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "Globalen Standard verwenden" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "Auswahlkriterien" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "Wie verfügbare Produkte ausgewählt werden." - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "Nach Kategorie" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "Nach Schlagwort" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "Nach Artikelnummer" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "Kategorien auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "Produktkategorien auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "Schlagwörter auswählen" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "Produkt-Artikelnummern" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein." - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "ART-1, ART-2, ART-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\" ist nicht auf Lager und kann nicht ausgewählt werden." -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." -msgstr "Nur %2$d von \"%1$s\" sind auf Lager verfügbar." +#: templates/product-selector.html.twig +msgid "Add to Cart" +msgstr "In den Warenkorb" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "" +"Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn " +"Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %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 "" +"Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte " +"anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung " +"verkauft werden sollen, nicht einzeln." -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "Nicht auf Lager" +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "Nach Kategorie" -#: templates/product-selector.twig -msgid "Only" -msgstr "Nur" +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "Nach Artikelnummer" -#: templates/product-selector.twig -msgid "left" -msgstr "übrig" +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "Nach Schlagwort" -#: templates/product-selector.twig +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "Wähle bis zu" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "Zusammenstellungsoptionen" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "Zusammenstellbares Produkt" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "Zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "Einstellungen für zusammenstellbare Produkte" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "Konfiguriere die Standardeinstellungen für zusammenstellbare Produkte." + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "Standard-Preismodus" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "Standard-Auswahllimit" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "Standardanzahl der Artikel, die Kunden auswählen können." + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "Einzelne Produktpreise in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "Produktbilder in der Auswahlschnittstelle anzeigen." + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen." + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein." + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein." + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "Festpreis" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "Festpreis" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "Wie der Preis für zusammenstellbare Produkte berechnet wird." + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "Wie der Preis berechnet wird." + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "Wie verfügbare Produkte ausgewählt werden." + +#: templates/product-selector.html.twig msgid "In stock" msgstr "Auf Lager" -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich." - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 msgid "Include Non-Public Products" msgstr "Nicht-öffentliche Produkte einbeziehen" -#: 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 "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln." +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "Artikel aus der untenstehenden Auswahl." -#: 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 "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen." +#: 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 "" +"Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um " +"den globalen Standard zu verwenden." + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "Nein" + +#: templates/product-selector.html.twig +msgid "" +"No products available for selection. Please configure the product criteria " +"in the admin panel." +msgstr "" +"Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die " +"Produktkriterien im Admin-Bereich." + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar." + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "Nur" + +#. 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 "Nur %2$d von \"%1$s\" sind auf Lager verfügbar." + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "Nicht auf Lager" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "Bitte wähle mindestens ein Produkt aus." + +#: 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 "Preismodus" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "Produkt-Artikelnummern" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "ART-1, ART-2, ART-3" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "Wähle deine Produkte" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "Kategorien auswählen" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "Schlagwörter auswählen" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "Produktkategorien auswählen, die einbezogen werden sollen." + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen." + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "Ausgewählte Produkte" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "Auswahlkriterien" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "Auswahllimit" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "Produktbilder anzeigen" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "Produktpreise anzeigen" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "Gesamtpreis anzeigen" + +#. 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 "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %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 "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "Summe der ausgewählten Produkte" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "Gesamtpreis:" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "Globalen Standard verwenden" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "Ja" -#: includes/Admin/ProductData.php -msgid "No" -msgstr "Nein" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "Du kannst maximal %d Produkte auswählen." + +#: templates/product-selector.html.twig +msgid "left" +msgstr "übrig" diff --git a/languages/wc-composable-product-fr_CH.po b/languages/wc-composable-product-fr_CH.po index 38e613d..d0562a5 100755 --- a/languages/wc-composable-product-fr_CH.po +++ b/languages/wc-composable-product-fr_CH.po @@ -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" diff --git a/languages/wc-composable-product-it_CH.po b/languages/wc-composable-product-it_CH.po index c7b4e04..272e038 100755 --- a/languages/wc-composable-product-it_CH.po +++ b/languages/wc-composable-product-it_CH.po @@ -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: Italian (Switzerland)\n" @@ -15,250 +16,299 @@ 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 richiede un'installazione WooCommerce attiva." +#: wc-composable-product.php:44 +msgid "" +"WooCommerce Composable Products requires WooCommerce to be installed and " +"active." +msgstr "" +"WooCommerce Composable Products richiede un'installazione WooCommerce attiva." -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." msgstr "Questo plugin richiede un'installazione WooCommerce attiva." -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "Errore di attivazione del plugin" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "Prodotti Componibili" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "Impostazioni prodotti componibili" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "Configurare le impostazioni predefinite per i prodotti componibili." - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "Limite di selezione predefinito" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "Numero predefinito di articoli che i clienti possono selezionare (p. es. 5 adesivi per CHF 50.-)." - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "Modalità di prezzo predefinita" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "Come calcolare il prezzo dei prodotti componibili (p. es. prezzo fisso CHF 50.- o somma)." - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "Somma dei prodotti selezionati" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "Prezzo fisso" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "Mostra immagini prodotti" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "Visualizzare le immagini dei prodotti nell'interfaccia di selezione." - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "Mostra prezzi prodotti" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "Visualizzare i prezzi individuali dei prodotti nell'interfaccia di selezione." - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "Mostra prezzo totale" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "Visualizzare il prezzo totale mentre i clienti effettuano le selezioni." - -#: includes/Plugin.php -msgid "Composable product" -msgstr "Prodotto componibile" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "Seleziona i tuoi prodotti" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "Scegli fino a" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "articoli dalla selezione qui sotto." - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "Prezzo totale:" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "Aggiungi al carrello" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "Seleziona almeno un prodotto." - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "Puoi selezionare un massimo di %d prodotti." - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "Uno o più prodotti selezionati non sono disponibili." - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "Prodotti selezionati" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "Opzioni di composizione" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "Limite di selezione" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "Numero massimo di articoli che i clienti possono selezionare. Lasciare vuoto per utilizzare il valore predefinito globale." - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "Modalità di prezzo" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "Come calcolare il prezzo." - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "Prezzo fisso" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "Inserisci il prezzo fisso per questo prodotto componibile." - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "Usa predefinito globale" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "Criteri di selezione" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "Come selezionare i prodotti disponibili." - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "Per categoria" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "Per etichetta" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "Per codice articolo" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "Seleziona categorie" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "Selezionare le categorie di prodotti da includere." - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "Seleziona etichette" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "Selezionare le etichette dei prodotti da includere." - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "Codici articolo prodotti" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "Inserire i codici articolo dei prodotti separati da virgole." - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "COD-1, COD-2, COD-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\" è esaurito e non può essere selezionato." -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." -msgstr "Solo %2$d di \"%1$s\" sono disponibili in magazzino." +#: templates/product-selector.html.twig +msgid "Add to Cart" +msgstr "Aggiungi al carrello" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "Giacenza ridotta per \"%1$s\": -%2$d (rimanenti: %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 "" +"Consenti bozze e prodotti privati nella selezione. Utile quando i prodotti " +"devono essere venduti solo come parte di una composizione." -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "Giacenza ripristinata per \"%1$s\": +%2$d (totale: %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 "" +"Consenti la visualizzazione di bozze e prodotti privati nelle selezioni dei " +"prodotti componibili. Utile quando i prodotti devono essere venduti solo " +"come parte di una composizione, non singolarmente." -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "Esaurito" +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "Per categoria" -#: templates/product-selector.twig -msgid "Only" -msgstr "Solo" +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "Per codice articolo" -#: templates/product-selector.twig -msgid "left" -msgstr "rimasti" +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "Per etichetta" -#: templates/product-selector.twig +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "Scegli fino a" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "Opzioni di composizione" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "Prodotto componibile" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "Prodotti Componibili" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "Impostazioni prodotti componibili" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "Configurare le impostazioni predefinite per i prodotti componibili." + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "Modalità di prezzo predefinita" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "Limite di selezione predefinito" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "" +"Numero predefinito di articoli che i clienti possono selezionare (p. es. 5 " +"adesivi per CHF 50.-)." + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "" +"Visualizzare i prezzi individuali dei prodotti nell'interfaccia di selezione." + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "Visualizzare le immagini dei prodotti nell'interfaccia di selezione." + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "" +"Visualizzare il prezzo totale mentre i clienti effettuano le selezioni." + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "Inserire i codici articolo dei prodotti separati da virgole." + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "Inserisci il prezzo fisso per questo prodotto componibile." + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "Prezzo fisso" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "Prezzo fisso" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "" +"Come calcolare il prezzo dei prodotti componibili (p. es. prezzo fisso CHF " +"50.- o somma)." + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "Come calcolare il prezzo." + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "Come selezionare i prodotti disponibili." + +#: templates/product-selector.html.twig msgid "In stock" msgstr "Disponibile" -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "Nessun prodotto disponibile per la selezione. Si prega di configurare i criteri del prodotto nel pannello di amministrazione." - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 msgid "Include Non-Public Products" msgstr "Includi prodotti non pubblici" -#: 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 "Consenti la visualizzazione di bozze e prodotti privati nelle selezioni dei prodotti componibili. Utile quando i prodotti devono essere venduti solo come parte di una composizione, non singolarmente." +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "articoli dalla selezione qui sotto." -#: 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 "Consenti bozze e prodotti privati nella selezione. Utile quando i prodotti devono essere venduti solo come parte di una composizione." +#: 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 "" +"Numero massimo di articoli che i clienti possono selezionare. Lasciare vuoto " +"per utilizzare il valore predefinito globale." + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "No" + +#: templates/product-selector.html.twig +msgid "" +"No products available for selection. Please configure the product criteria " +"in the admin panel." +msgstr "" +"Nessun prodotto disponibile per la selezione. Si prega di configurare i " +"criteri del prodotto nel pannello di amministrazione." + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "Uno o più prodotti selezionati non sono disponibili." + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "Solo" + +#. 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 "Solo %2$d di \"%1$s\" sono disponibili in magazzino." + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "Esaurito" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "Seleziona almeno un prodotto." + +#: 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 "Modalità di prezzo" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "Codici articolo prodotti" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "COD-1, COD-2, COD-3" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "Seleziona i tuoi prodotti" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "Seleziona categorie" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "Seleziona etichette" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "Selezionare le categorie di prodotti da includere." + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "Selezionare le etichette dei prodotti da includere." + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "Prodotti selezionati" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "Criteri di selezione" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "Limite di selezione" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "Mostra immagini prodotti" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "Mostra prezzi prodotti" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "Mostra prezzo totale" + +#. 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 "Giacenza ridotta per \"%1$s\": -%2$d (rimanenti: %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 "Giacenza ripristinata per \"%1$s\": +%2$d (totale: %3$d)" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "Somma dei prodotti selezionati" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "Prezzo totale:" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "Usa predefinito globale" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "Sì" -#: includes/Admin/ProductData.php -msgid "No" -msgstr "No" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "Puoi selezionare un massimo di %d prodotti." + +#: templates/product-selector.html.twig +msgid "left" +msgstr "rimasti" diff --git a/languages/wc-composable-product.pot b/languages/wc-composable-product.pot index 15cd61c..b08a67a 100755 --- a/languages/wc-composable-product.pot +++ b/languages/wc-composable-product.pot @@ -2,9 +2,9 @@ # This file is distributed under the GPL v3 or later. msgid "" msgstr "" -"Project-Id-Version: WooCommerce Composable Products 1.1.6\n" +"Project-Id-Version: WooCommerce Composable Products 1.3.2\n" "Report-Msgid-Bugs-To: https://github.com/magdev/wc-composable-product/issues\n" -"POT-Creation-Date: 2024-12-31 00:00+0000\n" +"POT-Creation-Date: 2026-03-01 13:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -12,252 +12,273 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: WP-CLI\n" -#: wc-composable-product.php +#: wc-composable-product.php:44 msgid "WooCommerce Composable Products requires WooCommerce to be installed and active." msgstr "" -#: wc-composable-product.php +#: wc-composable-product.php:90 msgid "This plugin requires WooCommerce to be installed and active." msgstr "" -#: wc-composable-product.php +#: wc-composable-product.php:91 msgid "Plugin Activation Error" msgstr "" -#: includes/Admin/Settings.php -msgid "Composable Products" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Composable Products Settings" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Configure default settings for composable products." -msgstr "" - -#: includes/Admin/Settings.php -msgid "Default Selection Limit" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Default number of items customers can select." -msgstr "" - -#: includes/Admin/Settings.php -msgid "Default Pricing Mode" -msgstr "" - -#: includes/Admin/Settings.php -msgid "How to calculate the price of composable products." -msgstr "" - -#: includes/Admin/Settings.php -msgid "Sum of selected products" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Fixed price" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Show Product Images" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Display product images in the selection interface." -msgstr "" - -#: includes/Admin/Settings.php -msgid "Show Product Prices" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Display individual product prices in the selection interface." -msgstr "" - -#: includes/Admin/Settings.php -msgid "Show Total Price" -msgstr "" - -#: includes/Admin/Settings.php -msgid "Display the total price as customers make selections." -msgstr "" - -#: includes/Plugin.php -msgid "Composable product" -msgstr "" - -#: includes/ProductSelector.php, templates/product-selector.twig -msgid "Select Your Products" -msgstr "" - -#: templates/product-selector.twig -msgid "Choose up to" -msgstr "" - -#: templates/product-selector.twig -msgid "items from the selection below." -msgstr "" - -#: templates/product-selector.twig -msgid "Total Price:" -msgstr "" - -#: templates/product-selector.twig -msgid "Add to Cart" -msgstr "" - -#: includes/CartHandler.php -msgid "Please select at least one product." -msgstr "" - -#: includes/CartHandler.php -msgid "You can select a maximum of %d products." -msgstr "" - -#: includes/CartHandler.php -msgid "One or more selected products are not available." -msgstr "" - -#: includes/CartHandler.php -msgid "Selected Products" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Composable Options" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Selection Limit" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Maximum number of items customers can select. Leave empty to use global default." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Pricing Mode" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "How to calculate the price." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Fixed Price" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Enter the fixed price for this composable product." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Use global default" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Selection Criteria" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "How to select available products." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "By Category" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "By Tag" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "By SKU" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Select Categories" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Select product categories to include." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Select Tags" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Select product tags to include." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Product SKUs" -msgstr "" - -#: includes/Admin/ProductData.php -msgid "Enter product SKUs separated by commas." -msgstr "" - -#: includes/Admin/ProductData.php -msgid "SKU-1, SKU-2, SKU-3" -msgstr "" - -#: includes/StockManager.php +#. translators: %s: product name +#: includes/StockManager.php:60 +#, php-format msgid "\"%s\" is out of stock and cannot be selected." msgstr "" -#: includes/StockManager.php -msgid "Only %2$d of \"%1$s\" are available in stock." +#: templates/product-selector.html.twig +msgid "Add to Cart" msgstr "" -#: includes/StockManager.php -msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)" -msgstr "" - -#: includes/StockManager.php -msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)" -msgstr "" - -#: templates/product-selector.twig -msgid "Out of stock" -msgstr "" - -#: templates/product-selector.twig -msgid "Only" -msgstr "" - -#: templates/product-selector.twig -msgid "left" -msgstr "" - -#: templates/product-selector.twig -msgid "In stock" -msgstr "" - -#: templates/product-selector.twig -msgid "No products available for selection. Please configure the product criteria in the admin panel." -msgstr "" - -#: includes/Admin/Settings.php, includes/Admin/ProductData.php -msgid "Include Non-Public Products" -msgstr "" - -#: 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 "" - -#: includes/Admin/ProductData.php +#: 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 "" -#: includes/Admin/ProductData.php +#: 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 "" + +#: includes/Admin/ProductData.php:126 +msgid "By Category" +msgstr "" + +#: includes/Admin/ProductData.php:128 +msgid "By SKU" +msgstr "" + +#: includes/Admin/ProductData.php:127 +msgid "By Tag" +msgstr "" + +#: templates/product-selector.html.twig +msgid "Choose up to" +msgstr "" + +#: includes/Admin/ProductData.php:34 +msgid "Composable Options" +msgstr "" + +#: includes/Plugin.php:132 +msgid "Composable product" +msgstr "" + +#: includes/Admin/Settings.php:21 +msgid "Composable Products" +msgstr "" + +#: includes/Admin/Settings.php:34 +msgid "Composable Products Settings" +msgstr "" + +#: includes/Admin/Settings.php:36 +msgid "Configure default settings for composable products." +msgstr "" + +#: includes/Admin/Settings.php:52 +msgid "Default Pricing Mode" +msgstr "" + +#: includes/Admin/Settings.php:40 +msgid "Default Selection Limit" +msgstr "" + +#: includes/Admin/Settings.php:41 +msgid "Default number of items customers can select." +msgstr "" + +#: includes/Admin/Settings.php:79 +msgid "Display individual product prices in the selection interface." +msgstr "" + +#: includes/Admin/Settings.php:72 +msgid "Display product images in the selection interface." +msgstr "" + +#: includes/Admin/Settings.php:86 +msgid "Display the total price as customers make selections." +msgstr "" + +#: includes/Admin/ProductData.php:196 +msgid "Enter product SKUs separated by commas." +msgstr "" + +#: includes/Admin/ProductData.php:83 +msgid "Enter the fixed price for this composable product." +msgstr "" + +#: includes/Admin/ProductData.php:82 +msgid "Fixed Price" +msgstr "" + +#: includes/Admin/ProductData.php:74 includes/Admin/Settings.php:59 +msgid "Fixed price" +msgstr "" + +#: includes/Admin/Settings.php:53 +msgid "How to calculate the price of composable products." +msgstr "" + +#: includes/Admin/ProductData.php:69 +msgid "How to calculate the price." +msgstr "" + +#: includes/Admin/ProductData.php:123 +msgid "How to select available products." +msgstr "" + +#: templates/product-selector.html.twig +msgid "In stock" +msgstr "" + +#: includes/Admin/ProductData.php:107 includes/Admin/Settings.php:64 +msgid "Include Non-Public Products" +msgstr "" + +#: templates/product-selector.html.twig +msgid "items from the selection below." +msgstr "" + +#: includes/Plugin.php:178 +msgid "Maximum items selected" +msgstr "" + +#: includes/Admin/ProductData.php:55 +msgid "Maximum number of items customers can select. Leave empty to use global default." +msgstr "" + +#: includes/Admin/ProductData.php:113 +msgid "No" +msgstr "" + +#: templates/product-selector.html.twig +msgid "No products available for selection. Please configure the product criteria in the admin panel." +msgstr "" + +#: includes/CartHandler.php:115 +msgid "One or more selected products are not available." +msgstr "" + +#: templates/product-selector.html.twig +msgid "Only" +msgstr "" + +#. 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 "" + +#: templates/product-selector.html.twig +msgid "Out of stock" +msgstr "" + +#: includes/CartHandler.php:84 includes/CartHandler.php:100 +msgid "Please select at least one product." +msgstr "" + +#: 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 "" + +#: includes/Admin/ProductData.php:195 +msgid "Product SKUs" +msgstr "" + +#: includes/Admin/ProductData.php:198 +msgid "SKU-1, SKU-2, SKU-3" +msgstr "" + +#: templates/product-selector.html.twig +msgid "Select Your Products" +msgstr "" + +#: includes/Admin/ProductData.php:138 +msgid "Select Categories" +msgstr "" + +#: includes/Admin/ProductData.php:165 +msgid "Select Tags" +msgstr "" + +#: includes/Admin/ProductData.php:159 +msgid "Select product categories to include." +msgstr "" + +#: includes/Admin/ProductData.php:186 +msgid "Select product tags to include." +msgstr "" + +#: includes/CartHandler.php:191 +msgid "Selected Products" +msgstr "" + +#: includes/Admin/ProductData.php:122 +msgid "Selection Criteria" +msgstr "" + +#: includes/Admin/ProductData.php:54 +msgid "Selection Limit" +msgstr "" + +#: includes/Admin/Settings.php:71 +msgid "Show Product Images" +msgstr "" + +#: includes/Admin/Settings.php:78 +msgid "Show Product Prices" +msgstr "" + +#: includes/Admin/Settings.php:85 +msgid "Show Total Price" +msgstr "" + +#. 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 "" + +#. 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 "" + +#: includes/Admin/ProductData.php:73 includes/Admin/Settings.php:58 +msgid "Sum of selected products" +msgstr "" + +#: templates/product-selector.html.twig +msgid "Total Price:" +msgstr "" + +#: includes/Admin/ProductData.php:72 includes/Admin/ProductData.php:111 +msgid "Use global default" +msgstr "" + +#: includes/Admin/ProductData.php:112 msgid "Yes" msgstr "" -#: includes/Admin/ProductData.php -msgid "No" +#. translators: %d: selection limit +#: includes/CartHandler.php:95 +#, php-format +msgid "You can select a maximum of %d products." +msgstr "" + +#: templates/product-selector.html.twig +msgid "left" msgstr "" diff --git a/templates/content-single-product-composable.php b/templates/content-single-product-composable.php new file mode 100644 index 0000000..e399aa0 --- /dev/null +++ b/templates/content-single-product-composable.php @@ -0,0 +1,83 @@ +get_image_id(); +$context = array( + 'product_id' => $product->get_id(), + 'product_name' => $product->get_name(), + 'price_html' => $product->get_price_html(), + 'short_description' => $product->get_short_description(), + 'image_html' => $image_id ? wp_get_attachment_image( $image_id, array( 100, 100 ), false, array( 'class' => 'composable-header-image' ) ) : '', + 'permalink' => get_permalink( $product->get_id() ), + 'product_class' => implode( ' ', wc_get_product_class( 'composable-product-layout', $product ) ), + 'selector_html' => $selector_html, + 'after_summary_html' => $after_summary_html, +); + +$plugin = \Magdev\WcComposableProduct\Plugin::instance(); +// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output escaped by Twig template. +echo $plugin->render_template( 'single-product-composable.html.twig', $context ); + +// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- WooCommerce hook. +do_action( 'woocommerce_after_single_product' ); diff --git a/templates/product-selector.twig b/templates/product-selector.html.twig similarity index 100% rename from templates/product-selector.twig rename to templates/product-selector.html.twig diff --git a/templates/single-product-composable.html.twig b/templates/single-product-composable.html.twig new file mode 100644 index 0000000..48d2ac6 --- /dev/null +++ b/templates/single-product-composable.html.twig @@ -0,0 +1,37 @@ +{# Custom single product template for composable products #} +
+ + {# Compact product header — replaces the large image gallery #} +
+ {% if image_html %} +
+ {{ image_html|raw }} +
+ {% endif %} + +
+

{{ product_name|esc_html }}

+ + {% if price_html %} +
+ {{ price_html|raw }} +
+ {% endif %} + + {% if short_description %} +
+ {{ short_description|raw }} +
+ {% endif %} +
+
+ + {# Full-width product selector #} +
+ {{ selector_html|raw }} +
+ + {# WooCommerce after-summary content (tabs, related products) #} + {{ after_summary_html|raw }} + +
diff --git a/wc-composable-product.php b/wc-composable-product.php index 953130e..6bcf659 100644 --- a/wc-composable-product.php +++ b/wc-composable-product.php @@ -4,7 +4,7 @@ * Plugin Name: WooCommerce Composable Products * Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-composable-product * Description: Create composable products where customers select a limited number of items from a configurable set - * Version: 1.3.1 + * Version: 1.3.2 * Author: Marco Graetsch * Author URI: https://src.bundespruefstelle.ch/magdev * License: GPL v3 or later @@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit; // Define plugin constants -define( 'WC_COMPOSABLE_PRODUCT_VERSION', '1.3.1' ); +define( 'WC_COMPOSABLE_PRODUCT_VERSION', '1.3.2' ); define( 'WC_COMPOSABLE_PRODUCT_FILE', __FILE__ ); define( 'WC_COMPOSABLE_PRODUCT_PATH', plugin_dir_path( __FILE__ ) ); define( 'WC_COMPOSABLE_PRODUCT_URL', plugin_dir_url( __FILE__ ) );