trasnlsater

This commit is contained in:
sebseb7
2025-07-16 09:45:11 +02:00
parent 08c04909e0
commit 3e3e676ded
21 changed files with 183 additions and 103 deletions

View File

@@ -66,6 +66,7 @@ class PrerenderKonfigurator extends Component {
15% 15%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: This is a prerender file - translation key would be: product.discount.from3Products */}
ab 3 Produkten ab 3 Produkten
</Typography> </Typography>
</Box> </Box>
@@ -74,6 +75,7 @@ class PrerenderKonfigurator extends Component {
24% 24%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: This is a prerender file - translation key would be: product.discount.from5Products */}
ab 5 Produkten ab 5 Produkten
</Typography> </Typography>
</Box> </Box>
@@ -82,11 +84,13 @@ class PrerenderKonfigurator extends Component {
36% 36%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: This is a prerender file - translation key would be: product.discount.from7Products */}
ab 7 Produkten ab 7 Produkten
</Typography> </Typography>
</Box> </Box>
</Box> </Box>
<Typography variant="caption" sx={{ color: '#666', mt: 1, display: 'block' }}> <Typography variant="caption" sx={{ color: '#666', mt: 1, display: 'block' }}>
{/* Note: This is a prerender file - translation key would be: product.discount.moreProductsMoreSavings */}
Je mehr Produkte du auswählst, desto mehr sparst du! Je mehr Produkte du auswählst, desto mehr sparst du!
</Typography> </Typography>
</Paper> </Paper>

View File

@@ -64,7 +64,7 @@ class CartDropdown extends Component {
<> <>
<Box sx={{ bgcolor: 'primary.main', color: 'white', p: 2 }}> <Box sx={{ bgcolor: 'primary.main', color: 'white', p: 2 }}>
<Typography variant="h6"> <Typography variant="h6">
{cartItems.length} {cartItems.length === 1 ? 'Produkt' : 'Produkte'} {cartItems.length} {cartItems.length === 1 ? (this.props.t ? this.props.t('cart.itemCount.singular') : 'Produkt') : (this.props.t ? this.props.t('cart.itemCount.plural') : 'Produkte')}
</Typography> </Typography>
</Box> </Box>
@@ -84,7 +84,7 @@ class CartDropdown extends Component {
{/* Display total weight if greater than 0 */} {/* Display total weight if greater than 0 */}
{totalWeight > 0 && ( {totalWeight > 0 && (
<Typography variant="subtitle2" sx={{ px: 2, mb: 1 }}> <Typography variant="subtitle2" sx={{ px: 2, mb: 1 }}>
Gesamtgewicht: {totalWeight.toFixed(2)} kg {this.props.t ? this.props.t('cart.summary.totalWeight', { weight: totalWeight.toFixed(2) }) : `Gesamtgewicht: ${totalWeight.toFixed(2)} kg`}
</Typography> </Typography>
)} )}
@@ -95,7 +95,7 @@ class CartDropdown extends Component {
// Detailed summary with shipping costs // Detailed summary with shipping costs
<> <>
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}> <Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
Bestellübersicht {this.props.t ? this.props.t('cart.summary.title') : 'Bestellübersicht'}
</Typography> </Typography>
{deliveryMethod && ( {deliveryMethod && (
<Typography variant="body2" sx={{ mb: 1, color: 'text.secondary' }}> <Typography variant="body2" sx={{ mb: 1, color: 'text.secondary' }}>
@@ -105,14 +105,14 @@ class CartDropdown extends Component {
<Table size="small"> <Table size="small">
<TableBody> <TableBody>
<TableRow> <TableRow>
<TableCell>Waren (netto):</TableCell> <TableCell>{this.props.t ? this.props.t('cart.summary.goodsNet') : 'Waren (netto):'}</TableCell>
<TableCell align="right"> <TableCell align="right">
{currencyFormatter.format(priceCalculations.totalNet)} {currencyFormatter.format(priceCalculations.totalNet)}
</TableCell> </TableCell>
</TableRow> </TableRow>
{deliveryCost > 0 && ( {deliveryCost > 0 && (
<TableRow> <TableRow>
<TableCell>Versandkosten (netto):</TableCell> <TableCell>{this.props.t ? this.props.t('cart.summary.shippingNet') : 'Versandkosten (netto):'}</TableCell>
<TableCell align="right"> <TableCell align="right">
{currencyFormatter.format(shippingNetPrice)} {currencyFormatter.format(shippingNetPrice)}
</TableCell> </TableCell>
@@ -135,30 +135,30 @@ class CartDropdown extends Component {
</TableRow> </TableRow>
)} )}
<TableRow> <TableRow>
<TableCell sx={{ fontWeight: 'bold' }}>Gesamtsumme Waren:</TableCell> <TableCell sx={{ fontWeight: 'bold' }}>{this.props.t ? this.props.t('cart.summary.totalGoods') : 'Gesamtsumme Waren:'}</TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold' }}> <TableCell align="right" sx={{ fontWeight: 'bold' }}>
{currencyFormatter.format(priceCalculations.totalGross)} {currencyFormatter.format(priceCalculations.totalGross)}
</TableCell> </TableCell>
</TableRow> </TableRow>
<TableRow> <TableRow>
<TableCell sx={{ fontWeight: 'bold' }}> <TableCell sx={{ fontWeight: 'bold' }}>
Versandkosten: {this.props.t ? this.props.t('cart.summary.shippingCosts') : 'Versandkosten:'}
{deliveryCost === 0 && priceCalculations.totalGross < 100 && ( {deliveryCost === 0 && priceCalculations.totalGross < 100 && (
<span style={{ color: '#2e7d32', fontSize: '0.8em', marginLeft: '4px' }}> <span style={{ color: '#2e7d32', fontSize: '0.8em', marginLeft: '4px' }}>
(kostenlos ab 100) {this.props.t ? this.props.t('cart.summary.freeFrom100') : '(kostenlos ab 100€)'}
</span> </span>
)} )}
</TableCell> </TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold' }}> <TableCell align="right" sx={{ fontWeight: 'bold' }}>
{deliveryCost === 0 ? ( {deliveryCost === 0 ? (
<span style={{ color: '#2e7d32' }}>kostenlos</span> <span style={{ color: '#2e7d32' }}>{this.props.t ? this.props.t('cart.summary.free') : 'kostenlos'}</span>
) : ( ) : (
currencyFormatter.format(deliveryCost) currencyFormatter.format(deliveryCost)
)} )}
</TableCell> </TableCell>
</TableRow> </TableRow>
<TableRow sx={{ borderTop: '1px solid #e0e0e0' }}> <TableRow sx={{ borderTop: '1px solid #e0e0e0' }}>
<TableCell sx={{ fontWeight: 'bold', pt: 2 }}>Gesamtsumme:</TableCell> <TableCell sx={{ fontWeight: 'bold', pt: 2 }}>{this.props.t ? this.props.t('cart.summary.total') : 'Gesamtsumme:'}</TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold', pt: 2 }}> <TableCell align="right" sx={{ fontWeight: 'bold', pt: 2 }}>
{currencyFormatter.format(totalGross)} {currencyFormatter.format(totalGross)}
</TableCell> </TableCell>

View File

@@ -201,14 +201,14 @@ class ProductList extends Component {
if (!isFiltered) { if (!isFiltered) {
// No filters applied // No filters applied
if (filteredCount === 0) return "0 Produkte"; if (filteredCount === 0) return this.props.t ? this.props.t('product.countDisplay.noProducts') : "0 Produkte";
if (filteredCount === 1) return "1 Produkt"; if (filteredCount === 1) return this.props.t ? this.props.t('product.countDisplay.oneProduct') : "1 Produkt";
return `${filteredCount} Produkte`; return this.props.t ? this.props.t('product.countDisplay.multipleProducts', { count: filteredCount }) : `${filteredCount} Produkte`;
} else { } else {
// Filters applied // Filters applied
if (totalCount === 0) return "0 Produkte"; if (totalCount === 0) return this.props.t ? this.props.t('product.countDisplay.noProducts') : "0 Produkte";
if (totalCount === 1) return `${filteredCount} von 1 Produkt`; if (totalCount === 1) return this.props.t ? this.props.t('product.countDisplay.filteredOneProduct', { filtered: filteredCount }) : `${filteredCount} von 1 Produkt`;
return `${filteredCount} von ${totalCount} Produkten`; return this.props.t ? this.props.t('product.countDisplay.filteredProducts', { filtered: filteredCount, total: totalCount }) : `${filteredCount} von ${totalCount} Produkten`;
} }
} }

View File

@@ -3,8 +3,9 @@ import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography'; import Typography from '@mui/material/Typography';
import Radio from '@mui/material/Radio'; import Radio from '@mui/material/Radio';
import Checkbox from '@mui/material/Checkbox'; import Checkbox from '@mui/material/Checkbox';
import { withI18n } from '../../i18n/withTranslation.js';
const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartItems = [] }) => { const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartItems = [], t }) => {
// Calculate cart value for free shipping threshold // Calculate cart value for free shipping threshold
const cartValue = cartItems.reduce((total, item) => total + item.price * item.quantity, 0); const cartValue = cartItems.reduce((total, item) => total + item.price * item.quantity, 0);
const isFreeShipping = cartValue >= 100; const isFreeShipping = cartValue >= 100;
@@ -14,30 +15,30 @@ const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartIt
{ {
id: 'DHL', id: 'DHL',
name: 'DHL', name: 'DHL',
description: isPickupOnly ? "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können" : description: isPickupOnly ? (t ? t('delivery.descriptions.notAvailable') : "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können") :
isFreeShipping ? 'Standardversand - KOSTENLOS ab 100€ Warenwert!' : 'Standardversand', isFreeShipping ? (t ? t('delivery.descriptions.standardFree') : 'Standardversand - KOSTENLOS ab 100€ Warenwert!') : (t ? t('delivery.descriptions.standard') : 'Standardversand'),
price: isFreeShipping ? 'kostenlos' : '6,99 €', price: isFreeShipping ? (t ? t('delivery.prices.free') : 'kostenlos') : (t ? t('delivery.prices.dhl') : '6,99 €'),
disabled: isPickupOnly disabled: isPickupOnly
}, },
{ {
id: 'DPD', id: 'DPD',
name: 'DPD', name: 'DPD',
description: isPickupOnly ? "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können" : description: isPickupOnly ? (t ? t('delivery.descriptions.notAvailable') : "nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können") :
isFreeShipping ? 'Standardversand - KOSTENLOS ab 100€ Warenwert!' : 'Standardversand', isFreeShipping ? (t ? t('delivery.descriptions.standardFree') : 'Standardversand - KOSTENLOS ab 100€ Warenwert!') : (t ? t('delivery.descriptions.standard') : 'Standardversand'),
price: isFreeShipping ? 'kostenlos' : '4,90 €', price: isFreeShipping ? (t ? t('delivery.prices.free') : 'kostenlos') : (t ? t('delivery.prices.dpd') : '4,90 €'),
disabled: isPickupOnly disabled: isPickupOnly
}, },
{ {
id: 'Sperrgut', id: 'Sperrgut',
name: 'Sperrgut', name: 'Sperrgut',
description: 'Für große und schwere Artikel', description: t ? t('delivery.descriptions.bulky') : 'Für große und schwere Artikel',
price: '28,99 €', price: t ? t('delivery.prices.sperrgut') : '28,99 €',
disabled: true, disabled: true,
isCheckbox: true isCheckbox: true
}, },
{ {
id: 'Abholung', id: 'Abholung',
name: 'Abholung in der Filiale', name: t ? t('delivery.methods.pickup') : 'Abholung in der Filiale',
description: '', description: '',
price: '' price: ''
} }
@@ -46,7 +47,7 @@ const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartIt
return ( return (
<> <>
<Typography variant="h6" gutterBottom> <Typography variant="h6" gutterBottom>
Versandart wählen {t ? t('delivery.selector.title') : 'Versandart wählen'}
</Typography> </Typography>
<Box sx={{ mb: 3 }}> <Box sx={{ mb: 3 }}>
@@ -132,10 +133,10 @@ const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartIt
border: '1px solid #2196f3' border: '1px solid #2196f3'
}}> }}>
<Typography variant="body2" color="primary" sx={{ fontWeight: 'medium' }}> <Typography variant="body2" color="primary" sx={{ fontWeight: 'medium' }}>
💡 Versandkostenfrei ab 100 Warenwert! {t ? t('delivery.selector.freeShippingInfo') : '💡 Versandkostenfrei ab 100€ Warenwert!'}
</Typography> </Typography>
<Typography variant="body2" color="text.secondary"> <Typography variant="body2" color="text.secondary">
Noch {remainingForFreeShipping.toFixed(2).replace('.', ',')} für kostenlosen Versand hinzufügen. {t ? t('delivery.selector.remainingForFree', { amount: remainingForFreeShipping.toFixed(2).replace('.', ',') }) : `Noch ${remainingForFreeShipping.toFixed(2).replace('.', ',')}€ für kostenlosen Versand hinzufügen.`}
</Typography> </Typography>
</Box> </Box>
)} )}
@@ -149,10 +150,10 @@ const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartIt
border: '1px solid #2e7d32' border: '1px solid #2e7d32'
}}> }}>
<Typography variant="body2" color="success.main" sx={{ fontWeight: 'medium' }}> <Typography variant="body2" color="success.main" sx={{ fontWeight: 'medium' }}>
🎉 Glückwunsch! Sie erhalten kostenlosen Versand! {t ? t('delivery.selector.congratsFreeShipping') : '🎉 Glückwunsch! Sie erhalten kostenlosen Versand!'}
</Typography> </Typography>
<Typography variant="body2" color="text.secondary"> <Typography variant="body2" color="text.secondary">
Ihr Warenkorb von {cartValue.toFixed(2).replace('.', ',')} qualifiziert sich für kostenlosen Versand. {t ? t('delivery.selector.cartQualifiesFree', { amount: cartValue.toFixed(2).replace('.', ',') }) : `Ihr Warenkorb von ${cartValue.toFixed(2).replace('.', ',')}qualifiziert sich für kostenlosen Versand.`}
</Typography> </Typography>
</Box> </Box>
)} )}
@@ -161,4 +162,4 @@ const DeliveryMethodSelector = ({ deliveryMethod, onChange, isPickupOnly, cartIt
); );
}; };
export default DeliveryMethodSelector; export default withI18n()(DeliveryMethodSelector);

View File

@@ -148,7 +148,7 @@ const OrderDetailsDialog = ({ open, onClose, order }) => {
<TableRow> <TableRow>
<TableCell colSpan={2} /> <TableCell colSpan={2} />
<TableCell align="right"> <TableCell align="right">
<Typography fontWeight="bold">Gesamtsumme</Typography> <Typography fontWeight="bold">{this.props.t ? this.props.t('cart.summary.total') : 'Gesamtsumme'}</Typography>
</TableCell> </TableCell>
<TableCell align="right"> <TableCell align="right">
<Typography fontWeight="bold">{currencyFormatter.format(total)}</Typography> <Typography fontWeight="bold">{currencyFormatter.format(total)}</Typography>

View File

@@ -44,20 +44,20 @@ const OrderSummary = ({ deliveryCost, cartItems = [] }) => {
return ( return (
<Box sx={{ my: 3, p: 2, bgcolor: '#f5f5f5', borderRadius: 1 }}> <Box sx={{ my: 3, p: 2, bgcolor: '#f5f5f5', borderRadius: 1 }}>
<Typography variant="h6" gutterBottom> <Typography variant="h6" gutterBottom>
Bestellübersicht {t ? t('cart.summary.title') : 'Bestellübersicht'}
</Typography> </Typography>
<Table size="small"> <Table size="small">
<TableBody> <TableBody>
<TableRow> <TableRow>
<TableCell>Waren (netto):</TableCell> <TableCell>{t ? t('cart.summary.goodsNet') : 'Waren (netto):'}</TableCell>
<TableCell align="right"> <TableCell align="right">
{currencyFormatter.format(cartVatCalculations.totalNet)} {currencyFormatter.format(cartVatCalculations.totalNet)}
</TableCell> </TableCell>
</TableRow> </TableRow>
{deliveryCost > 0 && ( {deliveryCost > 0 && (
<TableRow> <TableRow>
<TableCell>Versandkosten (netto):</TableCell> <TableCell>{t ? t('cart.summary.shippingNet') : 'Versandkosten (netto):'}</TableCell>
<TableCell align="right"> <TableCell align="right">
{currencyFormatter.format(shippingNetPrice)} {currencyFormatter.format(shippingNetPrice)}
</TableCell> </TableCell>
@@ -80,30 +80,30 @@ const OrderSummary = ({ deliveryCost, cartItems = [] }) => {
</TableRow> </TableRow>
)} )}
<TableRow> <TableRow>
<TableCell sx={{ fontWeight: 'bold' }}>Gesamtsumme Waren:</TableCell> <TableCell sx={{ fontWeight: 'bold' }}>{t ? t('cart.summary.totalGoods') : 'Gesamtsumme Waren:'}</TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold' }}> <TableCell align="right" sx={{ fontWeight: 'bold' }}>
{currencyFormatter.format(cartVatCalculations.totalGross)} {currencyFormatter.format(cartVatCalculations.totalGross)}
</TableCell> </TableCell>
</TableRow> </TableRow>
<TableRow> <TableRow>
<TableCell sx={{ fontWeight: 'bold' }}> <TableCell sx={{ fontWeight: 'bold' }}>
Versandkosten: {t ? t('cart.summary.shippingCosts') : 'Versandkosten:'}
{deliveryCost === 0 && cartVatCalculations.totalGross < 100 && ( {deliveryCost === 0 && cartVatCalculations.totalGross < 100 && (
<span style={{ color: '#2e7d32', fontSize: '0.8em', marginLeft: '4px' }}> <span style={{ color: '#2e7d32', fontSize: '0.8em', marginLeft: '4px' }}>
(kostenlos ab 100) {t ? t('cart.summary.freeFrom100') : '(kostenlos ab 100€)'}
</span> </span>
)} )}
</TableCell> </TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold' }}> <TableCell align="right" sx={{ fontWeight: 'bold' }}>
{deliveryCost === 0 ? ( {deliveryCost === 0 ? (
<span style={{ color: '#2e7d32' }}>kostenlos</span> <span style={{ color: '#2e7d32' }}>{t ? t('cart.summary.free') : 'kostenlos'}</span>
) : ( ) : (
currencyFormatter.format(deliveryCost) currencyFormatter.format(deliveryCost)
)} )}
</TableCell> </TableCell>
</TableRow> </TableRow>
<TableRow sx={{ borderTop: '1px solid #e0e0e0' }}> <TableRow sx={{ borderTop: '1px solid #e0e0e0' }}>
<TableCell sx={{ fontWeight: 'bold', pt: 2 }}>Gesamtsumme:</TableCell> <TableCell sx={{ fontWeight: 'bold', pt: 2 }}>{t ? t('cart.summary.total') : 'Gesamtsumme:'}</TableCell>
<TableCell align="right" sx={{ fontWeight: 'bold', pt: 2 }}> <TableCell align="right" sx={{ fontWeight: 'bold', pt: 2 }}>
{currencyFormatter.format(totalGross)} {currencyFormatter.format(totalGross)}
</TableCell> </TableCell>

View File

@@ -1,25 +1,25 @@
export default { export default {
"login": "Вход", // Anmelden "login": "Вход",
"register": "Регистрация", // Registrieren "register": "Регистрация",
"logout": "Изход", // Abmelden "logout": "Изход",
"profile": "Профил", // Profil "profile": "Профил",
"email": "Имейл", // E-Mail "email": "Имейл",
"password": "Парола", // Passwort "password": "Парола",
"confirmPassword": "Потвърдете паролата", // Passwort bestätigen "confirmPassword": "Потвърдете паролата",
"forgotPassword": "Забравена парола?", // Passwort vergessen? "forgotPassword": "Забравена парола?",
"loginWithGoogle": "Вход с Google", // Mit Google anmelden "loginWithGoogle": "Вход с Google",
"or": "ИЛИ", // ODER "or": "ИЛИ",
"privacyAccept": "С натискането на Вход с Google приемам", // Mit dem Click auf "Mit Google anmelden" akzeptiere ich die "privacyAccept": "С натискане на \"Вход с Google\" приемам",
"privacyPolicy": "Политиката за поверителност", // Datenschutzbestimmungen "privacyPolicy": "Политиката за поверителност",
"passwordMinLength": "Паролата трябва да е поне 8 символа", // Das Passwort muss mindestens 8 Zeichen lang sein "passwordMinLength": "Паролата трябва да е поне 8 символа",
"newPasswordMinLength": "Новата парола трябва да е поне 8 символа", // Das neue Passwort muss mindestens 8 Zeichen lang sein "newPasswordMinLength": "Новата парола трябва да е поне 8 символа",
"menu": { "menu": {
"profile": "Профил", // Profil "profile": "Профил",
"myProfile": "Моят профил", // Mein Profil "myProfile": "Моят профил",
"checkout": "Плащане", // Bestellabschluss "checkout": "Плащане",
"orders": "Поръчки", // Bestellungen "orders": "Поръчки",
"settings": "Настройки", // Einstellungen "settings": "Настройки",
"adminDashboard": "Админ панел", // Admin Dashboard "adminDashboard": "Админ табло",
"adminUsers": "Админ потребители" // Admin Users "adminUsers": "Админ потребители"
} }
}; };

View File

@@ -1,24 +1,39 @@
export default { export default {
"title": "Количка", // Warenkorb "title": "Количка",
"empty": "празна", // leer "empty": "празна",
"addToCart": "Добави в количката", // In den Korb "addToCart": "Добави в количката",
"preorderCutting": "Предварителна поръчка като резник", // Als Steckling vorbestellen "preorderCutting": "Предварителна поръчка като резник",
"continueShopping": "Продължи пазаруването", // Weiter einkaufen "continueShopping": "Продължи пазаруването",
"proceedToCheckout": "Продължи към плащане", // Weiter zur Kasse "proceedToCheckout": "Продължи към плащане",
"productCount": "{{count}} {{count, plural, one {продукт} other {продукта}}}", // {{count}} {{count, plural, one {Produkt} other {Produkte}}} "productCount": "{{count}} {{count, plural, one {продукт} other {продукта}}}",
"productSingular": "продукт", // Produkt "productSingular": "продукт",
"productPlural": "продукта", // Produkte "productPlural": "продукта",
"removeFromCart": "Премахни от количката", // Aus dem Warenkorb entfernen "removeFromCart": "Премахни от количката",
"openCart": "Отвори количката", // Warenkorb öffnen "openCart": "Отвори количката",
"availableFrom": "Наличен от {{date}}", // Ab {{date}} "availableFrom": "Наличен от {{date}}",
"backToOrder": "← Обратно към поръчката", // ← Zurück zur Bestellung "backToOrder": "← Обратно към поръчката",
"summary": {
"title": "Обобщение на поръчката",
"goodsNet": "Стоки (нето):",
"shippingNet": "Доставка (нето):",
"totalGoods": "Общо стоки:",
"shippingCosts": "Разходи за доставка:",
"total": "Общо:",
"totalWeight": "Общо тегло: {{weight}} кг",
"freeFrom100": "(безплатно над 100€)",
"free": "безплатно"
},
"itemCount": {
"singular": "продукт",
"plural": "продукта"
},
"sync": { "sync": {
"title": "Синхронизация на количката", // Warenkorb-Synchronisierung "title": "Синхронизация на количката",
"description": "Имате запазена количка във вашия акаунт. Моля, изберете как искате да продължите:", // Sie haben einen gespeicherten Warenkorb in ihrem Account. Bitte wählen Sie, wie Sie verfahren möchten: "description": "Имате запазена количка в профила си. Моля, изберете как искате да продължите:",
"deleteServer": "Изтрий количката на сървъра", // Server-Warenkorb löschen "deleteServer": "Изтрий количката на сървъра",
"useServer": "Използвай количката от сървъра", // Server-Warenkorb übernehmen "useServer": "Използвай количката от сървъра",
"merge": "Обедини количките", // Warenkörbe zusammenführen "merge": "Обедини количките",
"currentCart": "Вашата текуща количка", // Ihr aktueller Warenkorb "currentCart": "Вашата текуща количка",
"serverCart": "Количка, запазена във вашия профил" // In Ihrem Profil gespeicherter Warenkorb "serverCart": "Количка, запазена във вашия профил"
} }
}; };

View File

@@ -1,3 +1,3 @@
export default { export default {
"code": "bg-BG" // de-DE "code": "bg-BG"
}; };

View File

@@ -1,9 +1,9 @@
export default { export default {
"home": "Начало", // Startseite "home": "Начало",
"aktionen": "Промоции", // Aktionen "aktionen": "Промоции",
"filiale": "Клон", // Filiale "filiale": "Клон",
"categories": "Категории", // Kategorien "categories": "Категории",
"categoriesOpen": "Отвори категории", // Kategorien öffnen "categoriesOpen": "Отвори категории",
"categoriesClose": "Затвори категории", // Kategorien schließen "categoriesClose": "Затвори категории",
"otherCategories": "Други категории" // Andere Kategorien "otherCategories": "Други категории"
}; };

View File

@@ -12,6 +12,21 @@ export default {
"openCart": "Warenkorb öffnen", "openCart": "Warenkorb öffnen",
"availableFrom": "Ab {{date}}", "availableFrom": "Ab {{date}}",
"backToOrder": "← Zurück zur Bestellung", "backToOrder": "← Zurück zur Bestellung",
"summary": {
"title": "Bestellübersicht",
"goodsNet": "Waren (netto):",
"shippingNet": "Versandkosten (netto):",
"totalGoods": "Gesamtsumme Waren:",
"shippingCosts": "Versandkosten:",
"total": "Gesamtsumme:",
"totalWeight": "Gesamtgewicht: {{weight}} kg",
"freeFrom100": "(kostenlos ab 100€)",
"free": "kostenlos"
},
"itemCount": {
"singular": "Produkt",
"plural": "Produkte"
},
"sync": { "sync": {
"title": "Warenkorb-Synchronisierung", "title": "Warenkorb-Synchronisierung",
"description": "Sie haben einen gespeicherten Warenkorb in ihrem Account. Bitte wählen Sie, wie Sie verfahren möchten:", "description": "Sie haben einen gespeicherten Warenkorb in ihrem Account. Bitte wählen Sie, wie Sie verfahren möchten:",

View File

@@ -23,5 +23,12 @@ export default {
"cutting14Days": "Lieferzeit: 14 Tage", "cutting14Days": "Lieferzeit: 14 Tage",
"standard2to3Days": "Lieferzeit: 2-3 Tage", "standard2to3Days": "Lieferzeit: 2-3 Tage",
"supplier7to9Days": "Lieferzeit: 7-9 Tage" "supplier7to9Days": "Lieferzeit: 7-9 Tage"
},
"selector": {
"title": "Versandart wählen",
"freeShippingInfo": "💡 Versandkostenfrei ab 100€ Warenwert!",
"remainingForFree": "Noch {{amount}}€ für kostenlosen Versand hinzufügen.",
"congratsFreeShipping": "🎉 Glückwunsch! Sie erhalten kostenlosen Versand!",
"cartQualifiesFree": "Ihr Warenkorb von {{amount}}€ qualifiziert sich für kostenlosen Versand."
} }
}; };

View File

@@ -28,5 +28,11 @@ export default {
}, },
"removeFiltersToSee": "Entferne Filter um Produkte zu sehen", "removeFiltersToSee": "Entferne Filter um Produkte zu sehen",
"outOfStock": "Out of Stock", "outOfStock": "Out of Stock",
"fromXProducts": "ab {{count}} Produkten" "fromXProducts": "ab {{count}} Produkten",
"discount": {
"from3Products": "ab 3 Produkten",
"from5Products": "ab 5 Produkten",
"from7Products": "ab 7 Produkten",
"moreProductsMoreSavings": "Je mehr Produkte du auswählst, desto mehr sparst du!"
}
}; };

View File

@@ -12,6 +12,21 @@ export default {
"openCart": "Open cart", // Warenkorb öffnen "openCart": "Open cart", // Warenkorb öffnen
"availableFrom": "Available from {{date}}", // Ab {{date}} "availableFrom": "Available from {{date}}", // Ab {{date}}
"backToOrder": "← Back to order", // ← Zurück zur Bestellung "backToOrder": "← Back to order", // ← Zurück zur Bestellung
"summary": {
"title": "Order summary", // Bestellübersicht
"goodsNet": "Goods (net):", // Waren (netto):
"shippingNet": "Shipping (net):", // Versandkosten (netto):
"totalGoods": "Total goods:", // Gesamtsumme Waren:
"shippingCosts": "Shipping costs:", // Versandkosten:
"total": "Total:", // Gesamtsumme:
"totalWeight": "Total weight: {{weight}} kg", // Gesamtgewicht: {{weight}} kg
"freeFrom100": "(free from €100)", // (kostenlos ab 100€)
"free": "free" // kostenlos
},
"itemCount": {
"singular": "product", // Produkt
"plural": "products" // Produkte
},
"sync": { "sync": {
"title": "Cart synchronization", // Warenkorb-Synchronisierung "title": "Cart synchronization", // Warenkorb-Synchronisierung
"description": "You have a saved cart in your account. Please choose how you want to proceed:", // Sie haben einen gespeicherten Warenkorb in ihrem Account. Bitte wählen Sie, wie Sie verfahren möchten: "description": "You have a saved cart in your account. Please choose how you want to proceed:", // Sie haben einen gespeicherten Warenkorb in ihrem Account. Bitte wählen Sie, wie Sie verfahren möchten:

View File

@@ -7,21 +7,28 @@ export default {
}, },
"descriptions": { "descriptions": {
"standard": "Standard shipping", // Standardversand "standard": "Standard shipping", // Standardversand
"standardFree": "Standard shipping - FREE from 100 order value!", // Standardversand - KOSTENLOS ab 100€ Warenwert! "standardFree": "Standard shipping - FREE from 100 order value!", // Standardversand - KOSTENLOS ab 100€ Warenwert!
"notAvailable": "Not selectable because one or more items can only be picked up", // nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können "notAvailable": "Not selectable because one or more items can only be picked up", // nicht auswählbar weil ein oder mehrere Artikel nur abgeholt werden können
"bulky": "For large and heavy items", // Für große und schwere Artikel "bulky": "For large and heavy items", // Für große und schwere Artikel
"pickupOnly": "Pickup only" // nur Abholung "pickupOnly": "Pickup only" // nur Abholung
}, },
"prices": { "prices": {
"free": "free", // kostenlos "free": "free", // kostenlos
"freeFrom100": "(free from 100)", // (kostenlos ab 100€) "freeFrom100": "(free from 100)", // (kostenlos ab 100€)
"dhl": "6.99", // 6,99 € "dhl": "6.99", // 6,99 €
"dpd": "4.90", // 4,90 € "dpd": "4.90", // 4,90 €
"sperrgut": "28.99" // 28,99 € "sperrgut": "28.99" // 28,99 €
}, },
"times": { "times": {
"cutting14Days": "Delivery time: 14 days", // Lieferzeit: 14 Tage "cutting14Days": "Delivery time: 14 days", // Lieferzeit: 14 Tage
"standard2to3Days": "Delivery time: 2-3 days", // Lieferzeit: 2-3 Tage "standard2to3Days": "Delivery time: 2-3 days", // Lieferzeit: 2-3 Tage
"supplier7to9Days": "Delivery time: 7-9 days" // Lieferzeit: 7-9 Tage "supplier7to9Days": "Delivery time: 7-9 days" // Lieferzeit: 7-9 Tage
},
"selector": {
"title": "Choose shipping method", // Versandart wählen
"freeShippingInfo": "💡 Free shipping from €100 order value!", // 💡 Versandkostenfrei ab 100€ Warenwert!
"remainingForFree": "Add {{amount}}€ more for free shipping.", // Noch {{amount}}€ für kostenlosen Versand hinzufügen.
"congratsFreeShipping": "🎉 Congratulations! You get free shipping!", // 🎉 Glückwunsch! Sie erhalten kostenlosen Versand!
"cartQualifiesFree": "Your cart of {{amount}}€ qualifies for free shipping." // Ihr Warenkorb von {{amount}}€ qualifiziert sich für kostenlosen Versand.
} }
}; };

View File

@@ -3,5 +3,5 @@ export default {
"perPage": "per page", // pro Seite "perPage": "per page", // pro Seite
"availability": "Availability", // Verfügbarkeit "availability": "Availability", // Verfügbarkeit
"manufacturer": "Manufacturer", // Hersteller "manufacturer": "Manufacturer", // Hersteller
"all": "All", // Alle "all": "All" // Alle
}; };

View File

@@ -1,10 +1,10 @@
export default { export default {
"oilPress": { "oilPress": {
"title": "Borrow oil press", // Ölpresse ausleihen "title": "Borrow oil press", // Ölpresse ausleihen
"comingSoon": "Content coming soon...", // Inhalt kommt bald... "comingSoon": "Content coming soon..." // Inhalt kommt bald...
}, },
"thcTest": { "thcTest": {
"title": "THC test", // THC Test "title": "THC test", // THC Test
"comingSoon": "Content coming soon...", // Inhalt kommt bald... "comingSoon": "Content coming soon..." // Inhalt kommt bald...
} }
}; };

View File

@@ -4,5 +4,5 @@ export default {
"orderCompleted": "🎉 Your order was completed successfully! You can now view your orders.", // 🎉 Ihre Bestellung wurde erfolgreich abgeschlossen! Sie können jetzt Ihre Bestellungen einsehen. "orderCompleted": "🎉 Your order was completed successfully! You can now view your orders.", // 🎉 Ihre Bestellung wurde erfolgreich abgeschlossen! Sie können jetzt Ihre Bestellungen einsehen.
"orderProcessing": "Your payment was processed successfully. The order will be completed automatically.", // Ihre Zahlung wurde erfolgreich verarbeitet. Die Bestellung wird automatisch abgeschlossen. "orderProcessing": "Your payment was processed successfully. The order will be completed automatically.", // Ihre Zahlung wurde erfolgreich verarbeitet. Die Bestellung wird automatisch abgeschlossen.
"paymentError": "Your payment could not be processed. Please try again or choose another payment method.", // Ihre Zahlung konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut oder wählen Sie eine andere Zahlungsmethode. "paymentError": "Your payment could not be processed. Please try again or choose another payment method.", // Ihre Zahlung konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut oder wählen Sie eine andere Zahlungsmethode.
"viewOrders": "Go to my orders" // Zu meinen Bestellungen "viewOrders": "View my orders" // Zu meinen Bestellungen
}; };

View File

@@ -28,5 +28,11 @@ export default {
}, },
"removeFiltersToSee": "Remove filters to see products", // Entferne Filter um Produkte zu sehen "removeFiltersToSee": "Remove filters to see products", // Entferne Filter um Produkte zu sehen
"outOfStock": "Out of stock", // Out of Stock "outOfStock": "Out of stock", // Out of Stock
"fromXProducts": "from {{count}} products" // ab {{count}} Produkten "fromXProducts": "from {{count}} products", // ab {{count}} Produkten
"discount": {
"from3Products": "from 3 products", // ab 3 Produkten
"from5Products": "from 5 products", // ab 5 Produkten
"from7Products": "from 7 products", // ab 7 Produkten
"moreProductsMoreSavings": "The more products you select, the more you save!" // Je mehr Produkte du auswählst, desto mehr sparst du!
}
}; };

View File

@@ -4,7 +4,7 @@ export default {
"vat19": "19% Value Added Tax", // 19% Mehrwertsteuer "vat19": "19% Value Added Tax", // 19% Mehrwertsteuer
"vat19WithShipping": "19% Value Added Tax (incl. shipping)", // 19% Mehrwertsteuer (inkl. Versand) "vat19WithShipping": "19% Value Added Tax (incl. shipping)", // 19% Mehrwertsteuer (inkl. Versand)
"totalNet": "Total net price", // Gesamtnettopreis "totalNet": "Total net price", // Gesamtnettopreis
"totalGross": "Total gross price without shipping", // Gesamtbruttopreis ohne Versand "totalGross": "Total gross price excluding shipping", // Gesamtbruttopreis ohne Versand
"subtotal": "Subtotal", // Zwischensumme "subtotal": "Subtotal", // Zwischensumme
"incl7Vat": "incl. 7% VAT", // inkl. 7% MwSt. "incl7Vat": "incl. 7% VAT", // inkl. 7% MwSt.
"inclVatWithFooter": "(incl. {{vat}}% VAT,*)", // (incl. {{vat}}% USt.,*) "inclVatWithFooter": "(incl. {{vat}}% VAT,*)", // (incl. {{vat}}% USt.,*)

View File

@@ -547,6 +547,7 @@ class GrowTentKonfigurator extends Component {
15% 15%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: Translation key would be: product.discount.from3Products */}
ab 3 Produkten ab 3 Produkten
</Typography> </Typography>
</Box> </Box>
@@ -555,6 +556,7 @@ class GrowTentKonfigurator extends Component {
24% 24%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: Translation key would be: product.discount.from5Products */}
ab 5 Produkten ab 5 Produkten
</Typography> </Typography>
</Box> </Box>
@@ -563,11 +565,13 @@ class GrowTentKonfigurator extends Component {
36% 36%
</Typography> </Typography>
<Typography variant="body2"> <Typography variant="body2">
{/* Note: Translation key would be: product.discount.from7Products */}
ab 7 Produkten ab 7 Produkten
</Typography> </Typography>
</Box> </Box>
</Box> </Box>
<Typography variant="caption" sx={{ color: '#666', mt: 1, display: 'block' }}> <Typography variant="caption" sx={{ color: '#666', mt: 1, display: 'block' }}>
{/* Note: Translation key would be: product.discount.moreProductsMoreSavings */}
Je mehr Produkte du auswählst, desto mehr sparst du! Je mehr Produkte du auswählst, desto mehr sparst du!
</Typography> </Typography>
</Paper> </Paper>