diff --git a/01-frontend/public/locales/de/translation.json b/01-frontend/public/locales/de/translation.json index db9639d..d796600 100644 --- a/01-frontend/public/locales/de/translation.json +++ b/01-frontend/public/locales/de/translation.json @@ -1,3 +1,11 @@ { - "ratingFrom": "Bewertung vom" + "almostSoldOut": "Fast ausverkauft", + "available": "verfügbar", + "freeShipping": "Kostenloser Versand ab 50€ Bestellwert", + "inStock": "Verfügbar", + "outOfStock": "Ausverkauft", + "rateThisProduct": "Dieses Produkt bewerten", + "ratingFrom": "Bewertung vom", + "review": "Produktrezension (optional)", + "search": "Suchen..." } diff --git a/01-frontend/public/locales/en/translation.json b/01-frontend/public/locales/en/translation.json index e1370b3..9835030 100644 --- a/01-frontend/public/locales/en/translation.json +++ b/01-frontend/public/locales/en/translation.json @@ -1,3 +1,11 @@ { - "ratingFrom": "Rating from" + "almostSoldOut": "Almost sold out", + "available": "available", + "freeShipping": "Free shipping for orders over 50€", + "inStock": "In stock", + "outOfStock": "Out of stock", + "rateThisProduct": "Rate this product", + "ratingFrom": "Rating from", + "review": "Product review (optional)", + "search": "Search..." } diff --git a/01-frontend/src/helper/homepage/ItemCard.tsx b/01-frontend/src/helper/homepage/ItemCard.tsx index 5597f73..185a77e 100644 --- a/01-frontend/src/helper/homepage/ItemCard.tsx +++ b/01-frontend/src/helper/homepage/ItemCard.tsx @@ -4,8 +4,11 @@ import { useNavigate } from "react-router-dom"; import Item from "../../components/Item"; import { useBasket } from "../BasketProvider"; import "../helper.css"; +import {useTranslation} from 'react-i18next'; export default function ItemCard({ item }: { item: Item }) { + + const { t } = useTranslation(); const navigate = useNavigate() const { addToBasket } = useBasket(); @@ -42,15 +45,15 @@ export default function ItemCard({ item }: { item: Item }) { {item.stock > 10 ? ( - In Stock + {t('inStock')} ) : item.stock > 0 ?( - Almost Sold Out + {t('almostSoldOut')} ) : ( - Out of Stock + {t('outOfStock')} )} diff --git a/01-frontend/src/helper/navbar/NavBar.tsx b/01-frontend/src/helper/navbar/NavBar.tsx index 829fda8..d152fa8 100644 --- a/01-frontend/src/helper/navbar/NavBar.tsx +++ b/01-frontend/src/helper/navbar/NavBar.tsx @@ -15,6 +15,7 @@ import AdbIcon from '@mui/icons-material/Adb'; import { alpha, InputBase, styled } from '@mui/material'; import SearchIcon from '@mui/icons-material/Search'; import { useNavigate } from 'react-router-dom'; +import {useTranslation} from 'react-i18next'; import './NavBar.css'; const pages = ['Categories', 'Checkout', 'Contact']; @@ -63,6 +64,8 @@ const Search = styled('div')(({ theme }) => ({ })); export default function NavBar() { + + const { t } = useTranslation(); const navigate = useNavigate(); const [anchorElNav, setAnchorElNav] = React.useState(null); const [anchorElUser, setAnchorElUser] = React.useState(null); @@ -113,7 +116,7 @@ export default function NavBar() { diff --git a/01-frontend/src/helper/productpage/ProductInfo.tsx b/01-frontend/src/helper/productpage/ProductInfo.tsx index a749b63..523938e 100644 --- a/01-frontend/src/helper/productpage/ProductInfo.tsx +++ b/01-frontend/src/helper/productpage/ProductInfo.tsx @@ -3,8 +3,11 @@ import Item from "../../components/Item"; import React, { useState } from "react"; import { Close, LocalShipping, ShoppingCart } from "@mui/icons-material"; import { useBasket } from "../BasketProvider"; +import {useTranslation} from "react-i18next"; export default function ProductInfo({ item }: { item: Item }) { + + const { t } = useTranslation(); const [quantity, setQuantity] = useState(1); const [open, setOpen] = useState(false); const [imageDimensions, setImageDimensions] = useState({ width: 0, height: 0 }); @@ -114,12 +117,12 @@ export default function ProductInfo({ item }: { item: Item }) { {item.stock > 10 ? ( - In Stock ({item.stock} available) + {t('inStock')} ({item.stock} {t('available')}) ) : item.stock > 0 ? ( - Almost sold out ({item.stock} available) + {t('almostSoldOut')} ({item.stock} {t('available')}) ) : ( - Out of Stock + {t('outOfStock')} )} @@ -147,7 +150,7 @@ export default function ProductInfo({ item }: { item: Item }) { - Free shipping on orders over €50 + {t('freeShipping')} diff --git a/01-frontend/src/helper/productpage/Ratings.tsx b/01-frontend/src/helper/productpage/Ratings.tsx index 19c413e..699ff23 100644 --- a/01-frontend/src/helper/productpage/Ratings.tsx +++ b/01-frontend/src/helper/productpage/Ratings.tsx @@ -3,9 +3,11 @@ import RatingCard from "./RatingCard"; import RatingType from "../../components/Rating"; import React, { useState } from "react"; import { Close } from "@mui/icons-material"; +import {useTranslation} from 'react-i18next'; export default function Ratings() { + const { t } = useTranslation(); const [open, setOpen] = useState(false); const handleClose = ( @@ -66,10 +68,10 @@ export default function Ratings() {
- Rate this product: + {t('rateThisProduct')}: