diff --git a/packages/evershop/src/components/common/ProductNoThumbnail.jsx b/packages/evershop/src/components/common/ProductNoThumbnail.jsx new file mode 100644 index 000000000..86aefacdb --- /dev/null +++ b/packages/evershop/src/components/common/ProductNoThumbnail.jsx @@ -0,0 +1,26 @@ +import React from 'react'; + +const ProductNoThumbnail = ({ width, height }) => ( + + + + + +); + +export default ProductNoThumbnail; diff --git a/packages/evershop/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx b/packages/evershop/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx index 78ec7c92d..2461f084a 100644 --- a/packages/evershop/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx +++ b/packages/evershop/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import '@components/frontStore/catalog/product/list/item/Thumbnail.scss'; -import NoThumbnail from '@components/frontStore/catalog/product/single/NoThumbnail'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; function Thumbnail({ url, imageUrl, alt }) { return ( @@ -13,7 +13,7 @@ function Thumbnail({ url, imageUrl, alt }) { )} {!imageUrl && ( - + )} diff --git a/packages/evershop/src/components/frontStore/checkout/cart/items/Items.jsx b/packages/evershop/src/components/frontStore/checkout/cart/items/Items.jsx index 55a9a47dd..69baea54d 100644 --- a/packages/evershop/src/components/frontStore/checkout/cart/items/Items.jsx +++ b/packages/evershop/src/components/frontStore/checkout/cart/items/Items.jsx @@ -6,6 +6,7 @@ import { _ } from '@evershop/evershop/src/lib/locale/translate'; import { ItemOptions } from './ItemOptions'; import { ItemVariantOptions } from './ItemVariantOptions'; import './Items.scss'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; function Items({ items, setting: { displayCheckoutPriceIncludeTax } }) { const AppContextDispatch = useAppDispatch(); @@ -54,7 +55,7 @@ function Items({ items, setting: { displayCheckoutPriceIncludeTax } }) {
-
+
{item.thumbnail && ( )} {!item.thumbnail && ( - - - + )}
diff --git a/packages/evershop/src/components/frontStore/checkout/cart/items/Items.scss b/packages/evershop/src/components/frontStore/checkout/cart/items/Items.scss index 73c347fe8..bd84a8c59 100644 --- a/packages/evershop/src/components/frontStore/checkout/cart/items/Items.scss +++ b/packages/evershop/src/components/frontStore/checkout/cart/items/Items.scss @@ -35,6 +35,11 @@ } } .product-info { + .product-image { + background: rgb(246, 246, 246); + min-height: 100px; + min-width: 100px; + } @media screen and (max-width: 767px) { img { max-width: 5rem; diff --git a/packages/evershop/src/components/frontStore/checkout/checkout/summary/Items.jsx b/packages/evershop/src/components/frontStore/checkout/checkout/summary/Items.jsx index 73a1376c0..95e7efaed 100644 --- a/packages/evershop/src/components/frontStore/checkout/checkout/summary/Items.jsx +++ b/packages/evershop/src/components/frontStore/checkout/checkout/summary/Items.jsx @@ -1,6 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import './Items.scss'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; function ItemVariantOptions({ options = [] }) { if (!Array.isArray(options) || !options || options.length === 0) { @@ -50,18 +51,7 @@ function Items({ items, displayCheckoutPriceIncludeTax }) { {item.productName} )} {!item.thumbnail && ( - + )}
{item.qty} diff --git a/packages/evershop/src/components/frontStore/checkout/success/summary/items/Items.jsx b/packages/evershop/src/components/frontStore/checkout/success/summary/items/Items.jsx index a9f7d0ede..24458c7f4 100644 --- a/packages/evershop/src/components/frontStore/checkout/success/summary/items/Items.jsx +++ b/packages/evershop/src/components/frontStore/checkout/success/summary/items/Items.jsx @@ -2,6 +2,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import { ItemVariantOptions } from '@components/frontStore/checkout/cart/items/ItemVariantOptions'; import './Items.scss'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; function Items({ items, displayCheckoutPriceIncludeTax }) { return ( @@ -18,18 +19,7 @@ function Items({ items, displayCheckoutPriceIncludeTax }) { {item.productName} )} {!item.thumbnail && ( - + )}
{item.qty} diff --git a/packages/evershop/src/components/frontStore/customer/detail/Order.jsx b/packages/evershop/src/components/frontStore/customer/detail/Order.jsx index 829601817..faf8df037 100644 --- a/packages/evershop/src/components/frontStore/customer/detail/Order.jsx +++ b/packages/evershop/src/components/frontStore/customer/detail/Order.jsx @@ -1,6 +1,7 @@ import { _ } from '@evershop/evershop/src/lib/locale/translate'; import PropTypes from 'prop-types'; import React from 'react'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; export default function Order({ order }) { return ( @@ -18,18 +19,7 @@ export default function Order({ order }) { /> )} {!item.thumbnail && ( - + )}
diff --git a/packages/evershop/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js b/packages/evershop/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js index f0d65a67c..a2dc8a010 100644 --- a/packages/evershop/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js +++ b/packages/evershop/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js @@ -11,24 +11,16 @@ function getUrls(image) { const listingVersion = image.replace(/.([^.]*)$/, '-list.$1'); const thumb = fs.existsSync(path.join(CONSTANTS.MEDIAPATH, thumbVersion)) ? `/assets${thumbVersion}` - : `/assets/theme/frontStore${getConfig( - 'catalog.product.image.placeHolder' - )}`; + : null; const single = fs.existsSync(path.join(CONSTANTS.MEDIAPATH, singleVersion)) ? `/assets${singleVersion}` - : `/assets/theme/frontStore${getConfig( - 'catalog.product.image.placeHolder' - )}`; + : null; const listing = fs.existsSync(path.join(CONSTANTS.MEDIAPATH, listingVersion)) ? `/assets${listingVersion}` - : `/assets/theme/frontStore${getConfig( - 'catalog.product.image.placeHolder' - )}`; + : null; const origin = fs.existsSync(path.join(CONSTANTS.MEDIAPATH, image)) ? `/assets${image}` - : `/assets/theme/frontStore${getConfig( - 'catalog.product.image.placeHolder' - )}`; + : null; return { thumb, single, diff --git a/packages/evershop/src/modules/catalog/pages/frontStore/productView/Images.jsx b/packages/evershop/src/modules/catalog/pages/frontStore/productView/Images.jsx index a59befcaf..57a6dcee6 100644 --- a/packages/evershop/src/modules/catalog/pages/frontStore/productView/Images.jsx +++ b/packages/evershop/src/modules/catalog/pages/frontStore/productView/Images.jsx @@ -1,6 +1,6 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ /* eslint-disable react/no-array-index-key */ -import NoThumbnail from '@components/frontStore/catalog/product/single/NoThumbnail'; +import ProductNoThumbnail from '@components/common/ProductNoThumbnail'; import PropTypes from 'prop-types'; import React, { useEffect, useState } from 'react'; @@ -20,7 +20,7 @@ function Current({ image }) { {image && ( {image.alt} )} - {!image && } + {!image && }
); } diff --git a/translations/nl/account.csv b/translations/nl/account.csv new file mode 100644 index 000000000..c1c4995eb --- /dev/null +++ b/translations/nl/account.csv @@ -0,0 +1,33 @@ +Login, Inloggen +Logout, Uitloggen +Email, E-mail +Password, Wachtwoord +Forgot your password?, Wachtwoord vergeten? +Create an account, Maak een account aan +Register, Registreren +Full Name, Volledige Naam +Full name, Volledige naam +SIGN IN, Inloggen +Order History, Bestelgeschiedenis +Account Details, Accountsgegevens +You have not placed any orders yet, U heeft nog geen bestellingen geplaatst +My Account, Mijn account +Already have an account?, Heeft u al een account? +Contact information, Contactinformatie +City, Stad +Account Information, Account informatie +Address, Adres +Postcode, Postcode +Postcode is required, Postcode is verplicht +Telephone is required, Telefoon is verplicht +Telephone, Telefoon +Full name is required, Volledige naam is verplicht +Country is required, Land is verplicht +Country, Land +Province is required, Provincie is verplicht +Province, Provincie +Billing Address, Factuuradres +Shipping Address, Verzendadres +Create A New Account, Maak een nieuw account aan +Contact, Contact +Customer information, Klant informatie \ No newline at end of file diff --git a/translations/nl/catalog.csv b/translations/nl/catalog.csv new file mode 100644 index 000000000..2f86d0a4b --- /dev/null +++ b/translations/nl/catalog.csv @@ -0,0 +1,6 @@ +Featured collection, Uitgelichte collectie +SHOP BY, Winkel op +Sort By, Sorteren op +There is no product to display, Er zijn geen producten om te tonen +${count} products, ${count} producten +Search results for "${keyword}", Zoekresultaten voor “${keyword}” \ No newline at end of file diff --git a/translations/nl/checkout.csv b/translations/nl/checkout.csv new file mode 100644 index 000000000..3c1794659 --- /dev/null +++ b/translations/nl/checkout.csv @@ -0,0 +1,46 @@ +Total, Totaal +Order, Bestelling +Sku, SKU +Continue to shipping, Doorgaan naar verzenden +Continue shopping, Doorgaan met winkelen +Continue Shopping, Doorgaan met Winkelen +CONTINUE SHOPPING, DOORGAAN MET WINKELEN +Shopping cart, Winkelmandje +Product, Product +Price, Prijs +Quantity, Aantal +Remove, Verwijderen +Qty, Aantal +Sub total, Subtotaal +Discount(${coupon}), Korting(${coupon}) +Order summary, Besteloverzicht +Taxes and shipping calculated at checkout, BTW en verzendkosten worden berekend bij betaling +CHECKOUT, Betalen +Change, Veranderen +Payment Method, Betaalmethode +Shipping Method, Verzendmethode +No payment methods available, Geen betaalmethodes beschikbaar +Place Order, Plaats Bestelling +My billing address is same as shipping address, Factuuradres is hetzelfde als het verzendadres +${count} items, ${count} producten +Discount, Korting +Shipping, Verzending +No tax, Geen BTW +Tax, BTW +Sorry, there is no available method for your address, Excuses, er is geen beschikbare methode voor uw adres +Please enter a shipping address in order to see shipping quotes, Voer een verzendadres in om verzendkosten te berekenen +Continue to payment, Doorgaan naar betaling +No payment method available, Geen betaalmethodes beschikbaar +Ship to, Verzenden naar +Shipment, Verzending +Thank you ${name}!, Bedankt, ${name}! +Contact information, Contactinformatie +Order #${orderNumber}, Bestelling #${orderNumber} +ADD TO CART, TOEVOEGEN AAN WINKELMANDJE +Please select variant options, Selecteer alstublieft opties +VIEW CART (${count}), WINKELMANDJE BEKIJKEN (${count}) +JUST ADDED TO YOUR CART, TOEGEVOEGD AAN WINKELMANDJE +Promotion code?, Kortingscode? +Enter coupon code, Voer kortingscode in +Apply, Toepassen +Your cart is empty!, Uw winkelmandje is leeg! \ No newline at end of file diff --git a/translations/nl/general.csv b/translations/nl/general.csv new file mode 100644 index 000000000..cba1cd9de --- /dev/null +++ b/translations/nl/general.csv @@ -0,0 +1,7 @@ +Discount ${discount} For All Orders Over ${price}, Korting van ${discount} voor alle bestellingen over ${price} +Please select, Selecteren... +The page you requested does not exist., De opgevraagde pagina bestaat niet. +Continue shopping, Doorgaan met winkelen +404 Page Not Found, 404 pagina niet gevonden +Home, Home +Not found, Niet gevonden \ No newline at end of file