- Add product loaders (product-loader.js, products-list-loader.js) to fetch data from Shopify - Extend Shopify API client with getProductByHandle() and getAllProducts() methods - Integrate Shopify metafields for multilingual support (custom.title_en, custom.description_en) - Refactor product.php and home.php templates to load content dynamically - Simplify product blueprint to minimal routing configuration - Create generic buy-button.php snippet with variant selection - Update footer.php with conditional script loading - Refactor _section--product.scss for better Sass structure - Add translations for loading states and product errors - Clean up old Kirby product content files Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
55 lines
1.9 KiB
PHP
55 lines
1.9 KiB
PHP
<?php
|
|
|
|
return [
|
|
'code' => 'fr',
|
|
'default' => true,
|
|
'direction' => 'ltr',
|
|
'locale' => 'fr_FR',
|
|
'name' => 'Français',
|
|
'url' => '/',
|
|
'translations' => [
|
|
// Général
|
|
'backToHome' => 'Retour à l\'accueil',
|
|
'backToShop' => 'Retour à la boutique',
|
|
'supportText' => 'Pour nous soutenir, vous pouvez aussi',
|
|
'makeDonation' => 'faire un don',
|
|
|
|
// Shop / Cart
|
|
'addToCart' => 'Ajouter au panier',
|
|
'cart' => 'Panier',
|
|
'cartEmpty' => 'Votre panier est vide',
|
|
'total' => 'Total',
|
|
'checkout' => 'Passer commande',
|
|
'remove' => 'Retirer',
|
|
'inStock' => 'En stock',
|
|
'outOfStock' => 'Rupture de stock',
|
|
'addingToCart' => 'Ajout en cours...',
|
|
'addedToCart' => 'Ajouté ! ✓',
|
|
'errorAddToCart' => 'Erreur - Réessayer',
|
|
'closeCart' => 'Fermer le panier',
|
|
'loading' => 'Chargement...',
|
|
'productNotFound' => 'Produit non trouvé',
|
|
'selectVariant' => 'Choisir',
|
|
|
|
// Blueprints - Home
|
|
'home.title' => 'Accueil',
|
|
'home.baseline.label' => 'Baseline',
|
|
'home.products.headline' => 'Produits',
|
|
'home.settings.headline' => 'Paramètres',
|
|
|
|
// Blueprints - Product
|
|
'product.title' => 'Produit',
|
|
'product.description.label' => 'Description',
|
|
'product.details.label' => 'Détails',
|
|
'product.details.item.label' => 'Détail',
|
|
'product.price.label' => 'Prix (€)',
|
|
'product.backgroundColor.label' => 'Couleur de fond',
|
|
'product.stock.label' => 'Stock',
|
|
'product.stock.help' => 'Partagé entre les versions FR et EN',
|
|
'product.snipcartId.label' => 'Identifiant Snipcart',
|
|
'product.sizes.label' => 'Tailles disponibles',
|
|
'product.images.headline' => 'Images du produit',
|
|
'product.meta.headline' => 'Métadonnées',
|
|
'product.tab.content' => 'Contenu',
|
|
]
|
|
];
|