diff --git a/messages/fa.json b/messages/fa.json
index 7493c64..2e98cc5 100644
--- a/messages/fa.json
+++ b/messages/fa.json
@@ -50,7 +50,7 @@
"com_products_category_Ghermez_title": "قرمز",
"com_products_category_Semirom_title": "سمیرم",
"com_products_category_Zard_title": "زرد",
- "com_products_category_types_count": "تعداد نوع",
+ "com_products_category_types_count": "تعداد محصولات {count}",
"com_products_category_show_all_CTA": "نمایش محصولات",
"pages_products_content_title": "طبقهبندی آجر: درک تنوع و کاربردها",
"pages_products_content_description": "آجرها به عنوان یکی از قدیمیترین و پرکاربردترین مصالح ساختمانی بشر، در طول تاریخ دچار تحول زیادی شدهاند. امروزه این مصالح در طیف بسیار متنوعی تولید و عرضه میشوند و به مهندسان و معماران این امکان را میدهند تا مناسبترین آجر را برای هر پروژه و نیازی، از سازههای سنتی و تاریخی تا ساختمانهای مدرن و پیشرفته، انتخاب کنند. برای درک بهتر این تنوع، میتوان آجرها را بر اساس چند معیار کلیدی طبقهبندی کرد که هر یک ویژگیها و کاربردهای خاص خود را دارند.\n۱. طبقهبندی بر اساس روش تولید: از سنت تا صنعت پیشرفته\nروش تولید آجرها مستقیماً بر ظاهر، بافت و ویژگیهای آنها تأثیر میگذارد.\nآجرهای دستی/قالبی: این آجرها با فشار دادن دستی خاک رس در قالب تولید میشوند. نتیجه، آجری با بافت نسبتاً زبر، لبههای نامنظم و ظاهری سنتیتر است که هر قطعه حس منحصر به فردی دارد. این نوع آجر اغلب برای پروژههای مرمت یا ساخت ساختمانهایی با سبک روستایی یا قدیمی استفاده میشود.\nآجرهای ماشینی: این آجرها با استفاده از ماشینآلات صنعتی تولید میشوند که دقت ابعادی و یکنواختی ظاهری بسیار بالاتری دارند. آجرهای ماشینی خود به دو دسته اصلی تقسیم میشوند:\nآجرهای سوراخدار/توخالی: این آجرها دارای سوراخهایی هستند که چندین مزیت دارند: کاهش وزن ساختمان، بهبود عایق حرارتی و صوتی و افزایش چسبندگی ملات.\nآجرهای توپر: این آجرها بدون سوراخ بوده و مقاومت فشاری بسیار بالایی دارند. آنها برای سازههای باربر و دیوارهایی که به حداکثر استحکام نیاز دارند، ایدهآل هستند.\n۲. طبقهبندی بر اساس نوع و ترکیب مواد اولیه: از خاک رس تا بتن\nجنس آجر تعیینکننده ویژگیهای فیزیکی و شیمیایی آن است.",
diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx
index 8f65972..8f5dea9 100644
--- a/src/app/[locale]/layout.tsx
+++ b/src/app/[locale]/layout.tsx
@@ -19,18 +19,18 @@ export default async function RootLayout({
}>) {
const locale = params.locale;
+ const fontClass = locale === 'fa' ? 'font-fa' : 'font-en';
+
let messages;
try {
messages = (await import(`../../../messages/${locale}.json`)).default;
- console.log('locale');
- console.log(locale);
} catch (error) {
notFound();
}
return (
-
+
{children}
diff --git a/src/app/globals.css b/src/app/globals.css
index 11274b0..8576c22 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -1,113 +1,8 @@
@import "tailwindcss";
@import "tailwindcss/utilities";
-/* manrope-200 - latin */
-@font-face {
- font-display: swap;
+@import "../assets/fonts/manrope/manrope.css";
+@import "../assets/fonts/vazir/vazir.css";
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 200;
- src: url('../assets/fonts/manrope/manrope-v15-latin-200.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-200.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-200.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-200.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-200.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-200.svg#Manrope') format('svg');
-}
-
-/* manrope-300 - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 300;
- src: url('../assets/fonts/manrope/manrope-v15-latin-300.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-300.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-300.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-300.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-300.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-300.svg#Manrope') format('svg');
-}
-
-/* manrope-regular - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 400;
- src: url('../assets/fonts/manrope/manrope-v15-latin-regular.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-regular.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-regular.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-regular.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-regular.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-regular.svg#Manrope') format('svg');
-}
-
-/* manrope-500 - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 500;
- src: url('../assets/fonts/manrope/manrope-v15-latin-500.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-500.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-500.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-500.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-500.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-500.svg#Manrope') format('svg');
-}
-
-/* manrope-600 - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 600;
- src: url('../assets/fonts/manrope/manrope-v15-latin-600.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-600.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-600.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-600.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-600.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-600.svg#Manrope') format('svg');
-}
-
-/* manrope-700 - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 700;
- src: url('../assets/fonts/manrope/manrope-v15-latin-700.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-700.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-700.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-700.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-700.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-700.svg#Manrope') format('svg');
-}
-
-/* manrope-800 - latin */
-@font-face {
- font-display: swap;
-
- font-family: 'Manrope';
- font-style: normal;
- font-weight: 800;
- src: url('../assets/fonts/manrope/manrope-v15-latin-800.eot');
- src: url('../assets/fonts/manrope/manrope-v15-latin-800.eot?#iefix') format('embedded-opentype'),
- url('../assets/fonts/manrope/manrope-v15-latin-800.woff2') format('woff2'),
- url('../assets/fonts/manrope/manrope-v15-latin-800.woff') format('woff'),
- url('../assets/fonts/manrope/manrope-v15-latin-800.ttf') format('truetype'),
- url('../assets/fonts/manrope/manrope-v15-latin-800.svg#Manrope') format('svg');
-}
-
-* {
- font-family: 'Manrope';
-}
html{
font-size: 16px;
@@ -119,6 +14,14 @@ html{
}
}
+body.font-en *{
+ font-family: 'Manrope';
+}
+
+body.font-fa *{
+ font-family: 'Vazirmatn';
+}
+
:root {
--primary: #FA003F;
diff --git a/src/assets/constants/routeFactory/index.ts b/src/assets/constants/routeFactory/index.ts
index fef0986..8db0ada 100644
--- a/src/assets/constants/routeFactory/index.ts
+++ b/src/assets/constants/routeFactory/index.ts
@@ -1,5 +1,5 @@
type RouteFactory = (
- t: (key: string) => string,
+ t: any,
locale: string,
) => {
home: { title: string; route: () => string };
diff --git a/src/assets/fonts/manrope/manrope.css b/src/assets/fonts/manrope/manrope.css
new file mode 100644
index 0000000..fe3eda9
--- /dev/null
+++ b/src/assets/fonts/manrope/manrope.css
@@ -0,0 +1,104 @@
+/* manrope-200 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 200;
+ src: url('./manrope-v15-latin-200.eot');
+ src: url('./manrope-v15-latin-200.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-200.woff2') format('woff2'),
+ url('./manrope-v15-latin-200.woff') format('woff'),
+ url('./manrope-v15-latin-200.ttf') format('truetype'),
+ url('./manrope-v15-latin-200.svg#Manrope') format('svg');
+}
+
+/* manrope-300 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 300;
+ src: url('./manrope-v15-latin-300.eot');
+ src: url('./manrope-v15-latin-300.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-300.woff2') format('woff2'),
+ url('./manrope-v15-latin-300.woff') format('woff'),
+ url('./manrope-v15-latin-300.ttf') format('truetype'),
+ url('./manrope-v15-latin-300.svg#Manrope') format('svg');
+}
+
+/* manrope-regular - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 400;
+ src: url('./manrope-v15-latin-regular.eot');
+ src: url('./manrope-v15-latin-regular.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-regular.woff2') format('woff2'),
+ url('./manrope-v15-latin-regular.woff') format('woff'),
+ url('./manrope-v15-latin-regular.ttf') format('truetype'),
+ url('./manrope-v15-latin-regular.svg#Manrope') format('svg');
+}
+
+/* manrope-500 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 500;
+ src: url('./manrope-v15-latin-500.eot');
+ src: url('./manrope-v15-latin-500.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-500.woff2') format('woff2'),
+ url('./manrope-v15-latin-500.woff') format('woff'),
+ url('./manrope-v15-latin-500.ttf') format('truetype'),
+ url('./manrope-v15-latin-500.svg#Manrope') format('svg');
+}
+
+/* manrope-600 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 600;
+ src: url('./manrope-v15-latin-600.eot');
+ src: url('./manrope-v15-latin-600.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-600.woff2') format('woff2'),
+ url('./manrope-v15-latin-600.woff') format('woff'),
+ url('./manrope-v15-latin-600.ttf') format('truetype'),
+ url('./manrope-v15-latin-600.svg#Manrope') format('svg');
+}
+
+/* manrope-700 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 700;
+ src: url('./manrope-v15-latin-700.eot');
+ src: url('./manrope-v15-latin-700.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-700.woff2') format('woff2'),
+ url('./manrope-v15-latin-700.woff') format('woff'),
+ url('./manrope-v15-latin-700.ttf') format('truetype'),
+ url('./manrope-v15-latin-700.svg#Manrope') format('svg');
+}
+
+/* manrope-800 - latin */
+@font-face {
+ font-display: swap;
+
+ font-family: 'Manrope';
+ font-style: normal;
+ font-weight: 800;
+ src: url('./manrope-v15-latin-800.eot');
+ src: url('./manrope-v15-latin-800.eot?#iefix') format('embedded-opentype'),
+ url('./manrope-v15-latin-800.woff2') format('woff2'),
+ url('./manrope-v15-latin-800.woff') format('woff'),
+ url('./manrope-v15-latin-800.ttf') format('truetype'),
+ url('./manrope-v15-latin-800.svg#Manrope') format('svg');
+}
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Black.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Black.woff2
new file mode 100644
index 0000000..251a923
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Black.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Bold.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Bold.woff2
new file mode 100644
index 0000000..f97f0db
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Bold.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-ExtraBold.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-ExtraBold.woff2
new file mode 100644
index 0000000..e2b2d31
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-ExtraBold.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-ExtraLight.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-ExtraLight.woff2
new file mode 100644
index 0000000..d019c92
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-ExtraLight.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Light.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Light.woff2
new file mode 100644
index 0000000..41d75fb
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Light.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Medium.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Medium.woff2
new file mode 100644
index 0000000..2721237
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Medium.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Regular.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Regular.woff2
new file mode 100644
index 0000000..ac7cff8
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Regular.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-SemiBold.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-SemiBold.woff2
new file mode 100644
index 0000000..359e57e
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-SemiBold.woff2 differ
diff --git a/src/assets/fonts/vazir/Vazirmatn-FD-Thin.woff2 b/src/assets/fonts/vazir/Vazirmatn-FD-Thin.woff2
new file mode 100644
index 0000000..d9cfb37
Binary files /dev/null and b/src/assets/fonts/vazir/Vazirmatn-FD-Thin.woff2 differ
diff --git a/src/assets/fonts/vazir/vazir.css b/src/assets/fonts/vazir/vazir.css
new file mode 100644
index 0000000..a758278
--- /dev/null
+++ b/src/assets/fonts/vazir/vazir.css
@@ -0,0 +1,63 @@
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Thin.woff2') format('woff2');
+ font-weight: 100;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-ExtraLight.woff2') format('woff2');
+ font-weight: 200;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Light.woff2') format('woff2');
+ font-weight: 300;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Regular.woff2') format('woff2');
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Medium.woff2') format('woff2');
+ font-weight: 500;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-SemiBold.woff2') format('woff2');
+ font-weight: 600;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Bold.woff2') format('woff2');
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-ExtraBold.woff2') format('woff2');
+ font-weight: 800;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'Vazirmatn';
+ src: url('./Vazirmatn-FD-Black.woff2') format('woff2');
+ font-weight: 900;
+ font-style: normal;
+ font-display: swap;
+}