@@ -101,7 +108,7 @@ export default function FilterModal({ isOpen, onClose }: FilterModalProps) {
-
Roast level
+
{t("roast_level")}
{["Light", "Medium", "Strong"].map((strength) => (
- {strength}
+ {t(`strength.${strength.toLowerCase()}`)}
))}
-
Region
+
{t("region")}
{["Region A", "Region B", "Region C"].map((region) => (
- {region}
+
+ {t(`regions.${region.replace(" ", "_").toLowerCase()}`)}
+
))}
-
Order by
+
{t("order_by")}
{["Highest price", "Lowest price"].map((order) => (
))}
@@ -174,7 +185,7 @@ export default function FilterModal({ isOpen, onClose }: FilterModalProps) {
onClick={handleApply}
className="w-full bg-surface-secondary-default text-black py-3 px-4 rounded-lg font-medium hover:bg-yellow-500 transition-colors"
>
- Apply
+ {t("apply")}
diff --git a/apps/web/src/app/_components/features/LogoutModal.tsx b/apps/web/src/app/_components/features/LogoutModal.tsx
index 9cb9fbf..6d159b7 100644
--- a/apps/web/src/app/_components/features/LogoutModal.tsx
+++ b/apps/web/src/app/_components/features/LogoutModal.tsx
@@ -1,5 +1,6 @@
import Button from "@repo/ui/button";
import { useRouter } from "next/navigation";
+import { useTranslation } from "react-i18next";
import BottomModal from "~/app/_components/ui/BottomModal";
interface LogoutModalProps {
@@ -8,11 +9,12 @@ interface LogoutModalProps {
}
function LogoutModal({ isOpen, onClose }: LogoutModalProps) {
+ const { t } = useTranslation();
const router = useRouter();
const handleLogout = () => {
// TODO: Implement logout/disconnect logic
- alert("Implement logout logic");
+ alert(t("logout_logic"));
onClose();
router.push("/");
};
@@ -20,16 +22,14 @@ function LogoutModal({ isOpen, onClose }: LogoutModalProps) {
return (
- Do you want to disconnect?
+ {t("disconnect_confirmation")}
diff --git a/apps/web/src/app/_components/features/OrderListItem.tsx b/apps/web/src/app/_components/features/OrderListItem.tsx
index 3a45186..2232305 100644
--- a/apps/web/src/app/_components/features/OrderListItem.tsx
+++ b/apps/web/src/app/_components/features/OrderListItem.tsx
@@ -3,6 +3,7 @@
import { ChevronRightIcon } from "@heroicons/react/24/outline";
import Image from "next/image";
import Link from "next/link";
+import { useTranslation } from "react-i18next";
interface OrderListItemProps {
productName: string;
@@ -17,6 +18,8 @@ export default function OrderListItem({
status,
onClick,
}: OrderListItemProps) {
+ const { t } = useTranslation();
+
return (
- {status}
+ {t(`order_status.${status.toLowerCase()}`)}
diff --git a/apps/web/src/app/_components/features/OrderListPriceItem.tsx b/apps/web/src/app/_components/features/OrderListPriceItem.tsx
index 0fb900b..4298a74 100644
--- a/apps/web/src/app/_components/features/OrderListPriceItem.tsx
+++ b/apps/web/src/app/_components/features/OrderListPriceItem.tsx
@@ -3,6 +3,7 @@
import { ChevronRightIcon } from "@heroicons/react/24/outline";
import Image from "next/image";
import Link from "next/link";
+import { useTranslation } from "react-i18next";
interface OrderListItemProps {
productName: string;
@@ -17,6 +18,8 @@ export default function OrderListPriceItem({
price,
onClick,
}: OrderListItemProps) {
+ const { t } = useTranslation();
+
return (
{productName}
-
{name}
+
{t("ordered_by", { name })}
- {price} USD
+
+ {t("price_with_currency", { price })}
+
diff --git a/apps/web/src/app/_components/features/ProducerInfo.tsx b/apps/web/src/app/_components/features/ProducerInfo.tsx
index b8249b5..4b0d683 100644
--- a/apps/web/src/app/_components/features/ProducerInfo.tsx
+++ b/apps/web/src/app/_components/features/ProducerInfo.tsx
@@ -2,6 +2,7 @@ import { ChevronRightIcon } from "@heroicons/react/24/outline";
import Image from "next/image";
import { useRouter } from "next/navigation";
import { useState } from "react";
+import { useTranslation } from "react-i18next";
import { FarmModal } from "./FarmModal";
interface ProducerInfoProps {
@@ -33,13 +34,14 @@ export function ProducerInfo({
}: ProducerInfoProps) {
const [isFarmModalOpen, setIsFarmModalOpen] = useState(false);
const router = useRouter();
+ const { t } = useTranslation();
const farmData = {
name: farmName,
since: farmSince ?? "2020",
- bio: farmBio ?? "Farm bio description",
- experiences: farmExperiences ?? "Farm experiences",
- goodPractices: farmGoodPractices ?? "Farm good practices",
+ bio: farmBio ?? t("farm_bio_placeholder"),
+ experiences: farmExperiences ?? t("farm_experiences_placeholder"),
+ goodPractices: farmGoodPractices ?? t("farm_good_practices_placeholder"),
};
const openFarmModal = () => setIsFarmModalOpen(true);
@@ -50,14 +52,14 @@ export function ProducerInfo({