reza fixed some change

front
Reza_ashrafi 3 years ago
parent 01e6d2e755
commit 1f83de3b97
  1. 303
      public/ar1.json
  2. 303
      public/en1.json
  3. 123
      public/index.html
  4. 10
      src/views/Auth/Login/Cellphone/index.js
  5. 6
      src/views/Auth/Login/Code/index.js
  6. 12
      src/views/Auth/Profile/Birthdate/index.js
  7. 16
      src/views/Auth/Profile/index.js
  8. 8
      src/views/Auth/Splash/index.js
  9. 4
      src/views/ChatList/Search/index.js
  10. 2
      src/views/ChatRoom/Body/Input/index.js
  11. 8
      src/views/ChatRoom/Info/index.js
  12. 24
      src/views/Contact/index.js
  13. 2
      src/views/Download/index.js
  14. 4
      src/views/Faq/index.js
  15. 30
      src/views/Home/Footer/index.js
  16. 41
      src/views/Home/HomeHeader/index.js
  17. 2
      src/views/Home/HomeScroll/index.js
  18. 8
      src/views/Home/HomeSearch/index.js
  19. 8
      src/views/Home/HomeSlider/index.js
  20. 4
      src/views/Home/HomeStatic/index.js
  21. 4
      src/views/Home/Navbar/Laptop/index.js
  22. 32
      src/views/Home/Navbar/Mobile/NavbarDrawer/NavbarDrawer.js
  23. 16
      src/views/Home/Navbar/Mobile/index.js
  24. 36
      src/views/NewProfile/index.js
  25. 100
      src/views/Product/Gallery/Modal/index.js
  26. 2
      src/views/Product/MaterialModal/index.js
  27. 20
      src/views/Product/index.js
  28. 4
      src/views/Products/Filters/index.js
  29. 2
      src/views/Products/index.js
  30. 2
      src/views/QR/SubjectsDropdown/index.js
  31. 2
      src/views/QR/index.js
  32. 4
      src/views/QRScan/Modal/index.js

@ -0,0 +1,303 @@
{
"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه": "LOREM IPSOM هو نص ملفوف مع بساطة صناعة الطباعة ، باستخدام مصممي الجرافيك والطابعات والنصوص ، ولكن الصحف والمجلات في العمود والخط حسب الحاجة ، ومتطلبات التكنولوجيا الحالية ، ومجموعة متنوعة من التطبيقات التي تهدف إلى تحسين الأدوات عملي ، العديد من الكتب في ستين -",
"ما در دانوین با هدف ایجاد زیرساخت تعاملی و آموزشی با تولید محتوایی جذاب بصورت کتاب قصد داریم تغییراتی بنیادین در نظام آموزش و پرورش کشور ایجاد کنیم.": "في Danwin ، نعتزم إنشاء تغييرات أساسية في نظام التعليم في البلاد بهدف إنشاء بنية تحتية تفاعلية وتعليمية من خلال إنتاج محتوى جذاب في الكتاب.",
"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنام": "LOREM IPSOM هو نص مزيف مع بساطة غير لائقة لصناعة الطباعة واستخدام مصممي الجرافيك. الطابعات والنصوص ولكن أيضًا يوميًا",
"برای ارتباط با دنیای شگفت انگیز دانوین از فرم زیر استفاده کنید و پس از انتخاب دپارتمان مد نظر پیام خود را ارسال کنید.": "استخدم النموذج أدناه للتواصل مع عالم Danvin المذهل وإرسال رسالتك بعد اختيار القسم.",
"سازگار با نظام آ.پ : بطوریکه بتواند در مدارس فعلی مورد استفاده قرار گرفته و با نظام رسمی فعلی در تضاد نباشد": "متوافق مع AP: بحيث يمكن استخدامها في المدارس الحالية ولا تتعارض مع النظام الرسمي الحالي",
"کد فعال سازی در اختیار شما قرار گرفته است را در قسمت زیر وارد وارد تا کتاب الکترونیک آن فعالسازی شود": "رمز التنشيط متاح لك في القسم التالي لتنشيط كتابه الإلكتروني",
"بکارگیری عوامل متنوع سازگار با ارزشها برای علاقمندی دانش آموز و معلم به استفاده از محتوای دانوین": "تطبيق مجموعة متنوعة من العوامل المتوافقة مع اهتمام الطالب والمعلم باستخدام محتوى الدانوفين",
"بکارگیری بروز ترین تکنولوژی های تولید و مدیریت محتوای آموزشی-تربیتی (مانند واقعیت افزوده)": "باستخدام أحدث تقنيات إدارة المحتوى التعليمية والمحتوى التعليمي (مثل الواقع المعزز)",
"لطفا دوربین خود را روی کدی که در اختیار شما قرار گرفته قرار دهید تا اسکن دوربین انجام شود": "يرجى وضع الكاميرا على الرمز الذي لديك في مكانه لمسح الكاميرا",
"به دانوین خوش اومدی برای عضویت و ادامه شماره موبایلت رو وارد کن و روی گزینه ثبت بزن": "مرحبًا بك في Donwin للانضمام إلى رقم هاتفك المحمول والتسجيل في الخيار",
"در راستای نیل به سند تحول : تلاش برای نزدیکی گام به گام به آرمانها و اهداف سند تحول": "من أجل تحقيق وثيقة التحول: محاولة للتخطي -من خلال الخطوة أقرب إلى تطلعات وأهداف وثيقة التحول",
"از اینکه با نظرات خود ما را در ارتقای کیفیت محصولاتمان یاری کنید ، سپاسگزاریم": "شكرًا لك على مساعدتنا في الترويج لجودة منتجاتنا بتعليقاتك",
"برای استفاده از بخش واقعیت افزوده می بایست افزونه آن را نصب نمایید": "لاستخدام قسم الواقع المعزز الذي تحتاجه لتثبيت البرنامج المساعد",
"شایستگی در ایجاد فهم علمی در موضوع هدف و در موضوعات وابسته به آن": "الكفاءة في خلق فهم علمي في الموضوع وفي الموضوعات ذات الصلة",
"شایستگی در ایجاد زمینه ی معرفتی- ارزشی موثر برای محتواهای آموزشی": "الكفاءة في خلق قيمة فعالة المعرفية للمحتوى التعليمي",
"برای استفاده از این بخش باید یک کتاب فعال خریداری کرده باشید": "يجب أن تكون قد اشتريت كتابًا نشطًا لاستخدام هذا القسم",
"برای استفاده از این بخش باید یک کتاب را فعالسازی کرده باشید": "يجب عليك تنشيط كتاب لاستخدام هذا القسم",
"برای خدمات هوشمند کتاب کد فعال سازی را اینجا وارد نمایید": "أدخل رمز التنشيط هنا لخدمات الكتب الذكية",
"شرایط استفاده از دانوین و حریم خصوصی را مطالعه کرده ام": "لقد درست شروط استخدام دانوين والخصوصية",
"متن گفتگو محور ، روایی ، قابل فهم ،جذاب و سرگرم کننده": "النص القائم ، السرد ، مفهومة ، جذابة ومسلية",
"با توجه به شرایط یکی از دو گزینه زیر را انتخاب کنید": "حدد أحد الخيارين التاليين وفقًا للشروط",
"تمامی حقوق این وبسایت متعلق به دانوین می باشد. 1400": "جميع حقوق هذا الموقع مملوكة لشركة Danwin. 1400",
"پرداخت شما با خطا مواجه شد ، لطفا مجدد تلاش نمایید": "واجهت دفعتك خطأ ، يرجى المحاولة مرة أخرى",
"اگر کد تخفیفی دارید آن را در کادر زیر وارد نمائید": "إذا كان لديك رمز خصم ، أدخله في المربع أدناه",
"آدرس: تهران، میدان فردوسی، خیابان موسوی، پلاک ۳۰": "العنوان: رقم 1 ، ميدان فردودوس ، ميدان فردودوس",
"بستر تعاملی و اشتراک گذاری فیلم و محتوای آموزشی": "التفاعلية ومشاركة الأفلام والمحتوى التعليمي",
"مشخصات خودت رو وارد کنید و امتیاز هدیه بگیرید": "أدخل ملف التعريف الخاص بك واحصل على تصنيف هدايا",
"کامنت خود را وارد کرده و دکمه ثبت را بزنید.": "أدخل تعليقك واضغط على زر التسجيل.",
"گواهی تدریس ثبت شده و درحال بررسی می باشد": "شهادة البرامج التعليمية المسجلة ويجري مراجعتها",
"کارشناس ارشد علوم و فنون از دانشگاه تهران": "ماجستير العلوم والتكنولوجيا من جامعة طهران",
"ابتدا یک محصول به سبد خریدتان اضافه کنید.": "أضف أولاً منتجًا إلى عربة التسوق الخاصة بك.",
"جهت ادامه فرآیند خرید وارد حساب خود شوید": "تسجيل الدخول إلى حسابك لمواصلة عملية الشراء",
"در صورت نیاز تصویر مرتبط را انتخاب کنید.": "حدد الصورة ذات الصلة إذا لزم الأمر.",
"لطفا مشخصات خود را به صورت کامل نمایید.": "يرجى إكمال ملف التعريف الخاص بك.",
"برای دانلود این فایل روی اینجا کلیک کن": "اضغط هنا لتحميل هذا الملف",
"هیچ محصولی در سبد خرید شما وجود ندارد": "لا يوجد منتج في عربة التسوق الخاصة بك",
"محتوایی برای این صفحه در دسترس نیست.!": "المحتوى غير متوفر لهذه الصفحة.!",
"برای این کتاب نمونهای درج نشده است.": "لا توجد عينة لهذا الكتاب.",
"نمونه ای برای این محصول درج نشده است": "عينة لم يتم إدراجها لهذا المنتج",
"عملیات خرید شما با موفقیت انجام شد.": "تم تنفيذ عملية الشراء الخاصة بك بنجاح.",
"به راحتی از همین جا دانلود کنید...": "تنزيل بسهولة من هنا ...",
"بازگشت به مرحله قبل و اصلاح شماره": "العودة إلى المرحلة السابقة وتصحيح الرقم",
"دارای رویکرد آموزش سرگرم کننده ": "لديك نهج تعليمي ممتع",
"شرایط مرجوع کردن کالا در دانوین": "شروط للإشارة إلى البضائع في دانوين",
"روش ارسال با موفقیت تغییر یافت!": "تم تغيير طريقة الإرسال بنجاح!",
"درخواست شما با موفقیت انجام شد.": "تم تقديم طلبك بنجاح.",
"در حال بارگیری اطلاعات از سرور": "تحميل المعلومات من الخادم",
"گواهی تدریس خود را آپلود کنید.": "قم بتحميل شهادة التدريس الخاصة بك.",
"دریافت اپلیکیشن اختصاصی دانوین": "تلقى تطبيق دونوين المخصص",
"لطفا شماره صفحه را وارد نمایید": "الرجاء إدخال رقم الصفحة",
"کتاب شما با موفقیت فعال گردید.": "تم تنشيط كتابك بنجاح.",
"ثبت درخواست با موفقیت انجام شد": "تم الانتهاء من تسجيل الطلب بنجاح",
"کد تخفیف برای شما ثبت شده است": "تم تسجيل رمز الخصم لك",
"استاد علوم طبیعی پایه دوازدهم": "أستاذ الصف الثاني عشر",
"سلام چطوری میتونم کمکتون کنم؟": "مرحبا كيف يمكنني مساعدتك؟",
"محصولی با این مشخصات یافت نشد": "لم يتم العثور على المنتج مع هذا الملف الشخصي",
"آن را در قسمت زیر وارد کنید.": "أدخله في ما يلي.",
"زمان باقیمانده تا انقضای کد:": "الوقت المتبقي لانتهاء رمز:",
"کد فعالسازی محتوای الکترونیک": "رمز تنشيط المحتوى الإلكتروني",
"این کتاب شامل چه مواردی است؟": "ما هو هذا الكتاب؟",
"کد به شماره شما ارسال گردید.": "تم إرسال الرمز إلى رقمك.",
"عملیات با موفقیت انجام نشد!": "فشلت العملية!",
"برای شروع روی یک چت کلیک کن": "انقر على دردشة للبدء.",
"دریافت افزونه واقعیت افزوده": "احصل على البرنامج المساعد المعزز للواقع",
"به زودی این بخش فعال می شود": "بمجرد تنشيط هذا الجزء",
"سفارشی برای نماش وجود ندارد": "لا يوجد مخصص لإظهاره",
"اسکن کد QR موفقیت آمیز بود.": "كان فحص رمز الاستجابة السريعة ناجحًا.",
"کیفیت آموزش را بالا میبریم": "ارتداء جودة التدريب",
"شرایط استفاده و حریم خصوصی": "شروط الاستخدام والخصوصية",
"جذابیت کلید بهبود یادگیری": "مفتاح جذاب لتحسين التعلم",
"دنبال چه چیزی برات باشیم؟": "ماذا تبحث عنك؟",
"نام یک کتاب را جستجو کنید": "ابحث في اسم كتاب",
"فعال سازی کتاب الکترونیک": "تنشيط e -book",
"جستجو در عناوین کتاب ...": "ابحث في عناوين الكتب ...",
"مشاهده فهرست موضوعی کتاب": "عرض قائمة موضوع الكتاب",
"ارسال مجدد کد فعال سازی": "رمز التنشيط",
"2 دقیقه پیش آنلاین بوده": "قبل دقيقتين كانت على الإنترنت",
"یک کد تائیدیه به شماره": "رمز تأكيد للرقم",
"مالیات بر ارزش افزوده": "ضريبة القيمة المضافة",
"نام و نام خانوادگی": "الاسم الأول واسم العائلة",
"آتشفشانها و اقیانوسها": "البراكين والمحيطات",
"ویدئو های منحصر بفرد": "مقاطع فيديو فريدة",
"توضیحات محصول خالیست": "وصف المنتج فارغ",
"نحوه جدایی صفحات کره": "كيفية فصل صفحات الزبدة",
"نام و نام خانوادگی": "الاسم الأول واسم العائلة",
"به دانوین خوش آمدید.": "مرحبا بكم في دانوين.",
"رویکرد معرفتی-ارزشی": "النهج المعرفي القيمة",
"مشخصات تحویل گیرنده": "ملف تعريف المستلم",
"نمایش تمامی محتواها": "عرض كل المحتوى",
"مزیت رقابتی دانوین": "ميزة تنافسية Danovin",
"یک پیام بنویسید...": "اكتب رسالة ...",
"افزودن به سبد خرید": "أضف إلى السلة",
"فیلترهای اعمال شده": "المرشحات المطبقة",
"لذت یادگیری را با": "من دواعي سروري التعلم مع",
"افزودن کاربر جدید": "أضف مستخدمًا جديدًا",
"مطالعه نمونه کتاب": "كتاب قراءة العينة",
"مشاهده نمونه کتاب": "عرض كتاب العينة",
"مرتب سازی بر اساس": "ترتيب حسب",
"شما در حال مطالعه": "أنت تدرس",
"سخنی با خوانندگان": "تحدث إلى القراء",
"تصویر بارگزاری شد": "تم تحميل الصورة",
"ثبت کد فعال سازی": "تمكين تسجيل الكود",
"مسدود سازی مخاطب": "حظر الجمهور",
"لینک های کاربردی": "روابط عملية",
"اضافه کردن کاربر": "أضف المستخدم",
"تاریخ فعالسازی:": "تفعيل التسجيل:",
"پاسخ مدیریت سایت": "إجابة إدارة الموقع",
"دسته بندی موضوعی": "فئة الموضوع",
"جزئیات صورتحساب": "تفاصيل الفاتورة",
"ورود یا ثبتنام": "تسجيل الدخول أو التسجيل",
"کتابهای دانوین": "كتب دانفين",
"آدرس محل سکونت": "عنوان السكن",
"رسانه,فیلم,عکس": "وسائل الإعلام ، الفيلم ، الصورة",
"مطالعه کامل در": "دراسة كاملة في",
"نظرات خریداران": "تعليقات المشترين",
"نسخه الکترونیک": "نسخة إلكترونية",
"فعالسازی کتاب": "تنشيط الكتاب",
"واقعیت افزوده": "الواقع المعزز",
"مشخصات تحصیلی": "ملف تعريف المدرسة",
"مبلغ سبد خرید": "مبلغ عربة",
"دریافت افزونه": "احصل على البرنامج المساعد",
"سوالات متداول": "أسئلة مكررة",
"ویرایش مشخصات": "تعديل الملف الشخصي",
"پیگری سفارشات": "اتبع أوامر",
"فعال سازی شده": "تمكين",
"کد فعالسازی:": "رمز التفعيل:",
"در حال پردازش": "يعالج",
"آخرین مشاهدات": "الملاحظات الأخيرة",
"واحد مورد نظر": "الوحدة المطلوبة",
"نام خانوادگی": "اللقب",
"کد ملی/اتباع": "القانون الوطني/المواطنون",
"روشهای ارسال": "إرسال الطرق",
"سبد پیش خرید": "سلة قبل purchase",
"قیمت هر واحد": "السعر لكل وحدة",
"تاریخ انتشار": "يوم الاصدار",
"شناسه پرداخت": "رمز الدفع",
"کاربر میهمان": "حساب زائر",
"محتویات کتاب": "محتويات الكتاب",
"واحد محتوایی": "وحدة المحتوى",
"حساب کاربری": "الحساب",
"پایه تحصیلی": "صف دراسي",
"رشته تحصیلی": "رئيسي",
"فنی حرفهای": "مهني",
"مطالعه کامل": "دراسة كاملة",
"قیمت هر عدد": "سعر كل رقم",
"هزینه ارسال": "تكلفة الشحن",
"میزان تخفیف": "معدل الخصم",
"دسترسی سریع": "وصول سريع",
"موارد بیشتر": "أكثر",
"کتاب های من": "كتبي",
"کتابهای من": "كتبي",
"شناسه سفارش": "رقم التعريف الخاص بالطلب",
"پرداخت نشده": "غير مدفوع الأجر",
"فایل ثبت شد": "تم تسجيل الملف",
"پیش دبستان": "تجهيز",
"نام کاربری": "اسم االمستخدم",
"تاریخ تولد": "تاريخ الولادة",
"الکترونیکی": "إلكتروني",
"محسن محمدی": "محسن محمدي",
"شماره تماس": "رقم الهاتف",
"تجربه کنید": "خبرة",
"تماس با ما": "اتصل بنا",
"علمی تخیلی": "الخيال العلمي",
"ادامه مطلب": "اقرأ أكثر",
"بارکد خوان": "قارئ الباركود",
"دانوینیها": "دانوفيني",
"بروز رسانی": "تحديث",
"اسکن بارکد": "مسح الباركود",
"سفارشات من": "طلباتي",
"معرفی کتاب": "مقدمة كتاب",
"دوربین عقب": "الكاميرا الخلفية",
"دوربین جلو": "كاميرا أمامية",
"علوم چهارم": "العلم الرابع",
"محبوب ترین": "الأكثر شعبية",
"صفحه اصلی": "الصفحة الرئيسية",
"دانش آموز": "طالب علم",
"نام مدرسه": "اسم المدرسة",
"محل تدریس": "موقع التدريس",
"همراه با:": "مع:",
"تبادل نظر": "تبادل",
"باز ارسال": "إعادة -submit",
"ویرایش در": "تحرير في",
"عکس کاربر": "صورة المستخدم",
"درباره ما": "معلومات عنا",
"عکس محصول": "صورة المنتج",
"شهر/روستا": "المدينة/القرية",
"ارسال نظر": "نشر تعليق",
"نسخه چاپی": "النسخة المطبوعة",
"عکس مجصول": "صورة",
"مرتب سازی": "ترتيب",
"واحد فروش": "مبيعات",
"گران ترین": "الأغلى",
"ارسال شد": "أرسلت",
"سبد خرید": "عربة التسوق",
"کد تخفیف": "رمز التخفيض",
"صورتحساب": "مشروع قانون",
"پشتیبانی": "الدعم",
"متن پیام": "نص الرسالة",
"نام کتاب": "اسم الكتاب",
"زیست دهم": "يعيش",
"واحد فنی": "القسم التقني",
"جدیدترین": "الاجدد",
"دوازدهم": "الثاني عشر",
"شهرستان": "مدينة",
"کد پستی": "رمز بريدي",
"کاردانش": "يدها",
"فروشگاه": "متجر",
"محصولات": "منتجات",
"مبلغ کل": "المبلغ الإجمالي",
"پروفایل": "الملف الشخصي",
"توضیحات": "وصف",
"ناموجود": "غير متوفره",
"دانوینی": "دانوفيني",
"یازدهم": "الحاديه عشر",
"انسانی": "بشري",
"ذخیره": "متجر",
"جمع کل": "المجموع",
"پرداخت": "الدفع",
"ثبت کد": "تسجيل الكود",
"ثبت شد": "إنه مسجل",
"ویرایش": "يحرر",
"خلاقیت": ِبداع",
"تاریخی": "تاريخي",
"دانلود": "تحميل",
"بازگشت": "العودة",
"امتیاز": "تقييم",
"کد ملی": "رمز دولي",
"لغو شد": "ألغيت",
"انصراف": "انسحب",
"چهارم": "الرابع",
"عنوان": "عنوان",
"استان": "حالة",
"ریاضی": "الرياضيات",
"تجربی": "تجريبي",
"معارف": "التعليم",
"کاربر": "المستعمل",
"ادامه": "استمرار",
"وبلاگ": "مدونة",
"تومان": "إلى رجل",
"تعداد": "رقم",
"محصول": "المنتج",
"جستجو": "يبحث",
"ارسال": "إرسال",
"خاموش": "عن",
"رسانه": "وسائل الإعلام",
"ویدیو": "الفيديو",
"سیاسی": "سياسي",
"ورزشی": "رياضات",
"دقیقه": "الدقائق",
"تخفیف": "تخفيض",
"هستید": "أنت",
"مقدمه": "مقدمة",
"تایید": "يتأكد",
"موضوع": "عنوان",
"پنجم": "الخامس",
"هفتم": "السابع",
"هشتم": "ثامن",
"دختر": "بنت",
"معلم": "معلم",
"پرچم": "علَم",
"قیمت": "سعر",
"نسخه": "وصفة طبية",
"چاپی": "مطبعة",
"پایه": "القاعدة",
"کنسل": "إلغاء",
"پسند": "يحب",
"پاسخ": "إجابة",
"خروج": "مخرج",
"روشن": "لامع",
"لینک": "حلقة الوصل",
"فایل": "ملف",
"آدرس": "تبوك",
"تماس": "اتصال",
"خانه": "مسكن",
"لوگو": "شعار",
"مبلغ": "مقدار",
"صفحه": "صفحة",
"نکته": "تلميح",
"اول": "أولاً",
"دوم": "ثانيا",
"سوم": "ثالث",
"ششم": "السادس",
"نهم": "تاسع",
"دهم": "العاشر",
"نام": "اسم",
"پسر": "ولد",
"روز": "يوم",
"ماه": "شهر",
"سال": "سنة",
"ثبت": "سجل",
"حذف": "حذف",
"علی": "علي",
"صوت": "يبدو",
"عدد": "رقم",
"فلش": "السهام",
"عکس": "صورة",
"منو": "قائمة الطعام",
"قبل": "قبل",
"بعد": "التالي",
"متن": "نص",
"شو": "تبين"
}

@ -0,0 +1,303 @@
{
"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه": "Lorem Ipsom is a fabricated text with the simplicity of the printing industry, using graphic designers, printers and texts, but newspapers and magazines in the column and line as needed, and for the current technology requirements, and a variety of applications aimed at improving tools. Practical, many books in sixty -three",
"ما در دانوین با هدف ایجاد زیرساخت تعاملی و آموزشی با تولید محتوایی جذاب بصورت کتاب قصد داریم تغییراتی بنیادین در نظام آموزش و پرورش کشور ایجاد کنیم.": "In Danwin, we intend to create fundamental changes in the country's education system with the aim of creating interactive and educational infrastructure by producing attractive content in the book.",
"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنام": "Lorem Ipsom is a fake text with an inappropriate simplicity of the printing industry and using graphic designers. Printers and texts but also daily",
"برای ارتباط با دنیای شگفت انگیز دانوین از فرم زیر استفاده کنید و پس از انتخاب دپارتمان مد نظر پیام خود را ارسال کنید.": "Use the form below to connect with the amazing world of Danvin and send your message after selecting the department.",
"سازگار با نظام آ.پ : بطوریکه بتواند در مدارس فعلی مورد استفاده قرار گرفته و با نظام رسمی فعلی در تضاد نباشد": "Compatible with the AP: so that it can be used in current schools and is not in conflict with the current official system",
"کد فعال سازی در اختیار شما قرار گرفته است را در قسمت زیر وارد وارد تا کتاب الکترونیک آن فعالسازی شود": "The activation code is available to you in the following section to activate its e -book",
"بکارگیری عوامل متنوع سازگار با ارزشها برای علاقمندی دانش آموز و معلم به استفاده از محتوای دانوین": "Applying a variety of values compatible factors for student and teacher interest in using Danovin content",
"بکارگیری بروز ترین تکنولوژی های تولید و مدیریت محتوای آموزشی-تربیتی (مانند واقعیت افزوده)": "Using the most up-to-date teaching and educational content management technologies (such as augmented reality)",
"لطفا دوربین خود را روی کدی که در اختیار شما قرار گرفته قرار دهید تا اسکن دوربین انجام شود": "Please put your camera on the code you have in place to scan the camera",
"به دانوین خوش اومدی برای عضویت و ادامه شماره موبایلت رو وارد کن و روی گزینه ثبت بزن": "Welcome to Donwin to join your mobile number and register on the option",
"در راستای نیل به سند تحول : تلاش برای نزدیکی گام به گام به آرمانها و اهداف سند تحول": "In order to achieve the transformation document: attempt to step -by -step closer to the aspirations and goals of the transformation document",
"از اینکه با نظرات خود ما را در ارتقای کیفیت محصولاتمان یاری کنید ، سپاسگزاریم": "Thank you for helping us in promoting the quality of our products with your comments",
"برای استفاده از بخش واقعیت افزوده می بایست افزونه آن را نصب نمایید": "To use the augmented reality section you need to install the plugin",
"شایستگی در ایجاد فهم علمی در موضوع هدف و در موضوعات وابسته به آن": "Competence in creating a scientific understanding in the subject matter and in the subject -related subjects",
"شایستگی در ایجاد زمینه ی معرفتی- ارزشی موثر برای محتواهای آموزشی": "Competence in creating an epistemic-effective value for educational content",
"برای استفاده از این بخش باید یک کتاب فعال خریداری کرده باشید": "You must have purchased an active book to use this section",
"برای استفاده از این بخش باید یک کتاب را فعالسازی کرده باشید": "You must activate a book to use this section",
"برای خدمات هوشمند کتاب کد فعال سازی را اینجا وارد نمایید": "Enter activation code here for smart book services",
"شرایط استفاده از دانوین و حریم خصوصی را مطالعه کرده ام": "I have studied the terms of use of Danwin and Privacy",
"متن گفتگو محور ، روایی ، قابل فهم ،جذاب و سرگرم کننده": "The text -based, narrative, understandable, attractive and entertaining",
"با توجه به شرایط یکی از دو گزینه زیر را انتخاب کنید": "Select one of the following two options according to the terms",
"تمامی حقوق این وبسایت متعلق به دانوین می باشد. 1400": "All rights of this website are owned by Danwin. 1400",
"پرداخت شما با خطا مواجه شد ، لطفا مجدد تلاش نمایید": "Your payment faced an error, please try again",
"اگر کد تخفیفی دارید آن را در کادر زیر وارد نمائید": "If you have a discount code, enter it in the box below",
"آدرس: تهران، میدان فردوسی، خیابان موسوی، پلاک ۳۰": "Address: No. 1, Ferdowsi Square, Ferdowsi Square",
"بستر تعاملی و اشتراک گذاری فیلم و محتوای آموزشی": "Interactive and sharing movie and educational content",
"مشخصات خودت رو وارد کنید و امتیاز هدیه بگیرید": "Enter your own profile and get a gift rating",
"کامنت خود را وارد کرده و دکمه ثبت را بزنید.": "Enter your comment and hit the registration button.",
"گواهی تدریس ثبت شده و درحال بررسی می باشد": "Certificate of Tutorials recorded and is being reviewed",
"کارشناس ارشد علوم و فنون از دانشگاه تهران": "Master of Science and Technology from Tehran University",
"ابتدا یک محصول به سبد خریدتان اضافه کنید.": "First add a product to your shopping cart.",
"جهت ادامه فرآیند خرید وارد حساب خود شوید": "Login to your account to continue the purchase process",
"در صورت نیاز تصویر مرتبط را انتخاب کنید.": "Select the relevant image if needed.",
"لطفا مشخصات خود را به صورت کامل نمایید.": "Please complete your profile.",
"برای دانلود این فایل روی اینجا کلیک کن": "Click here to download this file",
"هیچ محصولی در سبد خرید شما وجود ندارد": "There is no product in your shopping cart",
"محتوایی برای این صفحه در دسترس نیست.!": "Content is not available for this page.!",
"برای این کتاب نمونهای درج نشده است.": "There is no sample for this book.",
"نمونه ای برای این محصول درج نشده است": "Sample not inserted for this product",
"عملیات خرید شما با موفقیت انجام شد.": "Your purchase operation was successfully carried out.",
"به راحتی از همین جا دانلود کنید...": "Easily download from here ...",
"بازگشت به مرحله قبل و اصلاح شماره": "Back to the previous stage and correcting the number",
"دارای رویکرد آموزش سرگرم کننده ": "Have a fun tutorial approach",
"شرایط مرجوع کردن کالا در دانوین": "Conditions to reference the goods in Danwin",
"روش ارسال با موفقیت تغییر یافت!": "The sending method was successfully changed!",
"درخواست شما با موفقیت انجام شد.": "Your request was successfully made.",
"در حال بارگیری اطلاعات از سرور": "Loading information from the server",
"گواهی تدریس خود را آپلود کنید.": "Upload your teaching certificate.",
"دریافت اپلیکیشن اختصاصی دانوین": "Received Donwin's dedicated app",
"لطفا شماره صفحه را وارد نمایید": "Please enter the page number",
"کتاب شما با موفقیت فعال گردید.": "Your book was successfully activated.",
"ثبت درخواست با موفقیت انجام شد": "Registration of the application was successfully completed",
"کد تخفیف برای شما ثبت شده است": "The discount code has been registered for you",
"استاد علوم طبیعی پایه دوازدهم": "Twelfth Grade Professor",
"سلام چطوری میتونم کمکتون کنم؟": "Hi how can I help you?",
"محصولی با این مشخصات یافت نشد": "Product was not found with this profile",
"آن را در قسمت زیر وارد کنید.": "Enter it in the following.",
"زمان باقیمانده تا انقضای کد:": "Remaining time to expire code:",
"کد فعالسازی محتوای الکترونیک": "Electronic Content Activation Code",
"این کتاب شامل چه مواردی است؟": "What is this book?",
"کد به شماره شما ارسال گردید.": "The code was sent to your number.",
"عملیات با موفقیت انجام نشد!": "Operation failed!",
"برای شروع روی یک چت کلیک کن": "Click on a chat to get started.",
"دریافت افزونه واقعیت افزوده": "Get augmented reality plugin",
"به زودی این بخش فعال می شود": "As soon as this part will be activated",
"سفارشی برای نماش وجود ندارد": "There is no custom to show",
"اسکن کد QR موفقیت آمیز بود.": "The scan of QR code was successful.",
"کیفیت آموزش را بالا میبریم": "Wear the quality of training",
"شرایط استفاده و حریم خصوصی": "Terms of use and privacy",
"جذابیت کلید بهبود یادگیری": "Attractive key to improving learning",
"دنبال چه چیزی برات باشیم؟": "What to look for for you?",
"نام یک کتاب را جستجو کنید": "Search the name of a book",
"فعال سازی کتاب الکترونیک": "E -book activation",
"جستجو در عناوین کتاب ...": "Search in book titles ...",
"مشاهده فهرست موضوعی کتاب": "View the Book Subject List",
"ارسال مجدد کد فعال سازی": "Re -send activation code",
"2 دقیقه پیش آنلاین بوده": "2 minutes ago was online",
"یک کد تائیدیه به شماره": "A confirmation code to number",
"مالیات بر ارزش افزوده": "VAT",
"نام و نام خانوادگی": "first name and last name",
"آتشفشانها و اقیانوسها": "Volcanoes and oceans",
"ویدئو های منحصر بفرد": "Unique videos",
"توضیحات محصول خالیست": "The product description is empty",
"نحوه جدایی صفحات کره": "How to separate butter pages",
"نام و نام خانوادگی": "first name and last name",
"به دانوین خوش آمدید.": "Welcome to Danwin.",
"رویکرد معرفتی-ارزشی": "The epistemic-valuable approach",
"مشخصات تحویل گیرنده": "The recipient's profile",
"نمایش تمامی محتواها": "Display all content",
"مزیت رقابتی دانوین": "Danovin competitive advantage",
"یک پیام بنویسید...": "Write a message ...",
"افزودن به سبد خرید": "Add to Cart",
"فیلترهای اعمال شده": "Filters applied",
"لذت یادگیری را با": "The pleasure of learning with",
"افزودن کاربر جدید": "Add new user",
"مطالعه نمونه کتاب": "Book sample reading",
"مشاهده نمونه کتاب": "View the sample book",
"مرتب سازی بر اساس": "order by",
"شما در حال مطالعه": "You are studying",
"سخنی با خوانندگان": "Talk to readers",
"تصویر بارگزاری شد": "The image was loaded",
"ثبت کد فعال سازی": "Enable Code Registration",
"مسدود سازی مخاطب": "Audience blocking",
"لینک های کاربردی": "Practical links",
"اضافه کردن کاربر": "Add the user",
"تاریخ فعالسازی:": "Activation Date:",
"پاسخ مدیریت سایت": "Site Management Answer",
"دسته بندی موضوعی": "Subject Category",
"جزئیات صورتحساب": "Billing details",
"ورود یا ثبتنام": "Login or registration",
"کتابهای دانوین": "Danvin Books",
"آدرس محل سکونت": "residence address",
"رسانه,فیلم,عکس": "Media, Movie, Photo",
"مطالعه کامل در": "Full study in",
"نظرات خریداران": "Buyers Comments",
"نسخه الکترونیک": "Electronic version",
"فعالسازی کتاب": "Activation of the book",
"واقعیت افزوده": "Augmented Reality",
"مشخصات تحصیلی": "School Profile",
"مبلغ سبد خرید": "Cart amount",
"دریافت افزونه": "Get the plugin",
"سوالات متداول": "Frequently Asked Questions",
"ویرایش مشخصات": "Edit Profile",
"پیگری سفارشات": "Follow orders",
"فعال سازی شده": "Enabled",
"کد فعالسازی:": "Activation code:",
"در حال پردازش": "Processing",
"آخرین مشاهدات": "Last observations",
"واحد مورد نظر": "The desired unit",
"نام خانوادگی": "last name",
"کد ملی/اتباع": "National code/nationals",
"روشهای ارسال": "Send methods",
"سبد پیش خرید": "Pre -purchase basket",
"قیمت هر واحد": "Price per unit",
"تاریخ انتشار": "Release date",
"شناسه پرداخت": "Payment code",
"کاربر میهمان": "Guest user",
"محتویات کتاب": "The contents of the book",
"واحد محتوایی": "Content unit",
"حساب کاربری": "Account",
"پایه تحصیلی": "Grade",
"رشته تحصیلی": "Major",
"فنی حرفهای": "Vocational",
"مطالعه کامل": "Full study",
"قیمت هر عدد": "Price of each number",
"هزینه ارسال": "shipping cost",
"میزان تخفیف": "Discount rate",
"دسترسی سریع": "quick access",
"موارد بیشتر": "More",
"کتاب های من": "My books",
"کتابهای من": "My books",
"شناسه سفارش": "Order ID",
"پرداخت نشده": "unpaid",
"فایل ثبت شد": "The file was recorded",
"پیش دبستان": "Prep",
"نام کاربری": "user name",
"تاریخ تولد": "Date of birth",
"الکترونیکی": "Electronic",
"محسن محمدی": "Mohsen Mohammadi",
"شماره تماس": "Phone number",
"تجربه کنید": "experience",
"تماس با ما": "contact us",
"علمی تخیلی": "Science Fiction",
"ادامه مطلب": "Read more",
"بارکد خوان": "Barcode reader",
"دانوینیها": "Danovini",
"بروز رسانی": "Update",
"اسکن بارکد": "Barcode scan",
"سفارشات من": "My orders",
"معرفی کتاب": "book introduction",
"دوربین عقب": "rear camera",
"دوربین جلو": "Front camera",
"علوم چهارم": "Fourth Science",
"محبوب ترین": "Most Popular",
"صفحه اصلی": "Main Page",
"دانش آموز": "student",
"نام مدرسه": "school name",
"محل تدریس": "Teaching site",
"همراه با:": "with:",
"تبادل نظر": "Exchange",
"باز ارسال": "Re -submit",
"ویرایش در": "Edit at",
"عکس کاربر": "User photo",
"درباره ما": "about us",
"عکس محصول": "Product photo",
"شهر/روستا": "City/Village",
"ارسال نظر": "Post a comment",
"نسخه چاپی": "Print version",
"عکس مجصول": "Photo",
"مرتب سازی": "Ordering",
"واحد فروش": "Sales",
"گران ترین": "the most expensive",
"ارسال شد": "Sent",
"سبد خرید": "Cart",
"کد تخفیف": "discount code",
"صورتحساب": "Bill",
"پشتیبانی": "Support",
"متن پیام": "The text of the message",
"نام کتاب": "The name of the book",
"زیست دهم": "Live",
"واحد فنی": "technical department",
"جدیدترین": "the newest",
"دوازدهم": "twelfth",
"شهرستان": "City",
"کد پستی": "Postal code",
"کاردانش": "Her hand",
"فروشگاه": "Store",
"محصولات": "Products",
"مبلغ کل": "Total Amount",
"پروفایل": "profile",
"توضیحات": "Description",
"ناموجود": "unavailable",
"دانوینی": "Danovini",
"یازدهم": "Eleventh",
"انسانی": "human",
"ذخیره": "Store",
"جمع کل": "total",
"پرداخت": "the payment",
"ثبت کد": "Code registration",
"ثبت شد": "it is registered",
"ویرایش": "Edit",
"خلاقیت": "Creativity",
"تاریخی": "Historical",
"دانلود": "Download",
"بازگشت": "coming back",
"امتیاز": "Rating",
"کد ملی": "National Code",
"لغو شد": "Cancelled",
"انصراف": "Withdrawn",
"چهارم": "Fourth",
"عنوان": "Title",
"استان": "State",
"ریاضی": "Math",
"تجربی": "Experimental",
"معارف": "education",
"کاربر": "User",
"ادامه": "Continuation",
"وبلاگ": "weblog",
"تومان": "Toman",
"تعداد": "Number",
"محصول": "the product",
"جستجو": "Search",
"ارسال": "submit",
"خاموش": "Off",
"رسانه": "Media",
"ویدیو": "the video",
"سیاسی": "Political",
"ورزشی": "Sports",
"دقیقه": "Minutes",
"تخفیف": "Discount",
"هستید": "You are",
"مقدمه": "Introduction",
"تایید": "Confirm",
"موضوع": "Topic",
"پنجم": "Fifth",
"هفتم": "Seventh",
"هشتم": "Eighth",
"دختر": "Girl",
"معلم": "Teacher",
"پرچم": "Flag",
"قیمت": "Price",
"نسخه": "prescription",
"چاپی": "Print",
"پایه": "the base",
"کنسل": "cancel",
"پسند": "Like",
"پاسخ": "Response",
"خروج": "Exit",
"روشن": "Bright",
"لینک": "link",
"فایل": "file",
"آدرس": "Address",
"تماس": "Contact",
"خانه": "Home",
"لوگو": "logo",
"مبلغ": "Amount",
"صفحه": "Page",
"نکته": "tip",
"اول": "First",
"دوم": "Second",
"سوم": "Third",
"ششم": "Sixth",
"نهم": "ninth",
"دهم": "Tenth",
"نام": "name",
"پسر": "Boy",
"روز": "Day",
"ماه": "Month",
"سال": "Year",
"ثبت": "Record",
"حذف": "Delete",
"علی": "Ali",
"صوت": "Sound",
"عدد": "number",
"فلش": "Arrows",
"عکس": "Picture",
"منو": "Menu",
"قبل": "Before",
"بعد": "Next",
"متن": "Text",
"شو": "show"
}

@ -1,55 +1,80 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta
name="viewport"
content="width=device-width, initial-scale=1"
user-scalable="false"
/>
<meta name="theme-color" content="#000000" />
<meta name="description" content="دانوین" />
<link
href="https://api.mapbox.com/mapbox-gl-js/v1.10.1/mapbox-gl.css"
rel="stylesheet"
/>
<meta name="mobile-web-app-capable" content="yes" />
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<head> <title>دانوین</title>
<meta charset="utf-8" /> <!-- Google Tag Manager -->
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> <script>
<meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="false" /> // const arJson = require("./ar1.json");
<meta name="theme-color" content="#000000" /> // console.log(JSON.parse(arJson));
<meta name="description" content="دانوین" /> function t(val) {
<link href="https://api.mapbox.com/mapbox-gl-js/v1.10.1/mapbox-gl.css" rel="stylesheet" /> return val;
<meta name="mobile-web-app-capable" content="yes" /> }
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>دانوین</title> (function (w, d, s, l, i) {
<!-- Google Tag Manager --> w[l] = w[l] || [];
<script>(function (w, d, s, l, i) { w[l].push({
w[l] = w[l] || []; w[l].push({ "gtm.start": new Date().getTime(),
'gtm.start': event: "gtm.js",
new Date().getTime(), event: 'gtm.js' });
}); var f = d.getElementsByTagName(s)[0], var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = j = d.createElement(s),
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); dl = l != "dataLayer" ? "&l=" + l : "";
})(window, document, 'script', 'dataLayer', 'GTM-WVV8H9L');</script> j.async = true;
<!-- End Google Tag Manager --> j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
</head> f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "GTM-WVV8H9L");
<body> </script>
<!-- Google Tag Manager (noscript) --> <!-- End Google Tag Manager -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WVV8H9L" height="0" width="0" </head>
style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="root"></div>
<script>
if ("serviceWorker" in navigator) {
window.addEventListener("load", function () {
navigator.serviceWorker
.register("./serviceworker.js")
.then((registration) => {
// Registration was successful
console.log(
"ServiceWorker registration successful with scope: ",
registration.scope
);
})
.catch((err) => {
console.log(err);
});
});
}
</script>
</body>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript
><iframe
src="https://www.googletagmanager.com/ns.html?id=GTM-WVV8H9L"
height="0"
width="0"
style="display: none; visibility: hidden"
></iframe
></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="root"></div>
<script>
if ("serviceWorker" in navigator) {
window.addEventListener("load", function () {
navigator.serviceWorker
.register("./serviceworker.js")
.then((registration) => {
// Registration was successful
console.log(
"ServiceWorker registration successful with scope: ",
registration.scope
);
})
.catch((err) => {
console.log(err);
});
});
}
const lang = localStorage.getItem("language");
</script>
</body>
</html> </html>

@ -37,7 +37,7 @@ export default class Cellphone extends Component {
style={{ width: "48%", height: "100%" }} style={{ width: "48%", height: "100%" }}
className="d-flex flex-column justify-content-center align-items-center" className="d-flex flex-column justify-content-center align-items-center"
> >
<img src={logo} alt="دانوین" /> <img src={logo} alt={window.t("دانوین")} />
<form <form
className="mb-3" className="mb-3"
onSubmit={() => onSubmit={() =>
@ -48,7 +48,7 @@ export default class Cellphone extends Component {
} }
> >
<span style={{ fontSize: fontSize.desktop.span }}>09</span> <span style={{ fontSize: fontSize.desktop.span }}>09</span>
<img src={iran} alt=window.t("پرچم") /> <img src={iran} alt={window.t("پرچم")} />
<input <input
style={{ fontSize: fontSize.desktop.span }} style={{ fontSize: fontSize.desktop.span }}
id="cellphone" id="cellphone"
@ -93,7 +93,7 @@ export default class Cellphone extends Component {
<div style={{ width: "48%", height: "100%", opacity: 0 }}> <div style={{ width: "48%", height: "100%", opacity: 0 }}>
<img <img
src={pic} src={pic}
alt=window.t("عکس") alt={window.t("عکس")}
style={{ width: "100%", height: "100%" }} style={{ width: "100%", height: "100%" }}
/> />
</div> </div>
@ -102,7 +102,7 @@ export default class Cellphone extends Component {
) : null} ) : null}
{window.innerWidth < 1000 ? ( {window.innerWidth < 1000 ? (
<div className="mobile-auth-cellphone d-flex flex-column align-items-center"> <div className="mobile-auth-cellphone d-flex flex-column align-items-center">
<img src={logo} alt="دانوین" /> <img src={logo} alt={window.t("دانوین")} />
<div className="d-flex flex-column"> <div className="d-flex flex-column">
<h1 style={{ fontSize: fontSize.mobile.h1 }}>دانوین</h1> <h1 style={{ fontSize: fontSize.mobile.h1 }}>دانوین</h1>
<p style={{ fontSize: fontSize.mobile.p }}> <p style={{ fontSize: fontSize.mobile.p }}>
@ -119,7 +119,7 @@ export default class Cellphone extends Component {
} }
> >
<span style={{ fontSize: fontSize.mobile.span }}>09</span> <span style={{ fontSize: fontSize.mobile.span }}>09</span>
<img src={iran} alt=window.t("پرچم") /> <img src={iran} alt={window.t("پرچم")} />
<input <input
id="cellphone" id="cellphone"
type="text" type="text"

@ -96,7 +96,7 @@ export default class Code extends Component {
style={{ width: "48%", height: "100%" }} style={{ width: "48%", height: "100%" }}
className="d-flex flex-column justify-content-center align-items-center p-5" className="d-flex flex-column justify-content-center align-items-center p-5"
> >
<img src={logo} alt="دانوین" /> <img src={logo} alt={window.test("دانوین")} />
<div className="auth-code__box--codes d-flex justify-content-around"> <div className="auth-code__box--codes d-flex justify-content-around">
<label htmlFor="code1"> <label htmlFor="code1">
<input <input
@ -208,7 +208,7 @@ export default class Code extends Component {
<div style={{ width: "48%", height: "100%" }} className="d-flex"> <div style={{ width: "48%", height: "100%" }} className="d-flex">
{/* <img {/* <img
src={pic} src={pic}
alt=window.t("عکس") alt={window.t("عکس")}
style={{ width: "100%", height: "100%" }} style={{ width: "100%", height: "100%" }}
/> */} /> */}
</div> </div>
@ -217,7 +217,7 @@ export default class Code extends Component {
) : null} ) : null}
{window.innerWidth < 1000 ? ( {window.innerWidth < 1000 ? (
<div className="mobile-auth-code d-flex flex-column p-3"> <div className="mobile-auth-code d-flex flex-column p-3">
<img src={logo} alt="دانوین" /> <img src={logo} alt={window.t("دانوین")} />
<div style={{ width: "100%" }} className="d-flex flex-column mb-1"> <div style={{ width: "100%" }} className="d-flex flex-column mb-1">
<h1 style={{ fontSize: fontSize.mobile.h1 }}>دانوین</h1> <h1 style={{ fontSize: fontSize.mobile.h1 }}>دانوین</h1>
<p style={{ fontSize: fontSize.mobile.p }}> <p style={{ fontSize: fontSize.mobile.p }}>

@ -31,7 +31,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="day" name="day"
placeholder=window.t("روز") placeholder={window.t("روز")}
maxLength={2} maxLength={2}
onInput={onInput.dayHandler} onInput={onInput.dayHandler}
parent={{ onChange }} parent={{ onChange }}
@ -41,7 +41,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="month" name="month"
placeholder=window.t("ماه") placeholder={window.t("ماه")}
maxLength={2} maxLength={2}
onInput={onInput.monthHandler} onInput={onInput.monthHandler}
parent={{ onChange }} parent={{ onChange }}
@ -51,7 +51,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="year" name="year"
placeholder=window.t("سال") placeholder={window.t("سال")}
maxLength={4} maxLength={4}
onInput={onInput.yearHandler} onInput={onInput.yearHandler}
parent={{ onChange }} parent={{ onChange }}
@ -67,7 +67,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="day" name="day"
placeholder=window.t("روز") placeholder={window.t("روز")}
maxLength={2} maxLength={2}
onInput={onInput.dayHandler} onInput={onInput.dayHandler}
parent={{ onChange }} parent={{ onChange }}
@ -77,7 +77,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="month" name="month"
placeholder=window.t("ماه") placeholder={window.t("ماه")}
maxLength={2} maxLength={2}
onInput={onInput.monthHandler} onInput={onInput.monthHandler}
parent={{ onChange }} parent={{ onChange }}
@ -87,7 +87,7 @@ export default function Birthdate(props) {
<Input <Input
variant="standard" variant="standard"
name="year" name="year"
placeholder=window.t("سال") placeholder={window.t("سال")}
maxLength={4} maxLength={4}
onInput={onInput.yearHandler} onInput={onInput.yearHandler}
parent={{ onChange }} parent={{ onChange }}

@ -199,7 +199,7 @@ class Profile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="firstName" name="firstName"
label=window.t("نام") label={window.t("نام")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
onInput={onInput.persianOnly} onInput={onInput.persianOnly}
@ -209,7 +209,7 @@ class Profile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="lastName" name="lastName"
label=window.t("نام خانوادگی") label={window.t("نام خانوادگی")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
onInput={onInput.persianOnly} onInput={onInput.persianOnly}
@ -219,7 +219,7 @@ class Profile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="username" name="username"
label=window.t(window.t("نام کاربری")) label={window.t("نام کاربری")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
align="left" align="left"
@ -238,7 +238,7 @@ class Profile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="nationalId" name="nationalId"
label=window.t("کد ملی/اتباع") label={window.t("کد ملی/اتباع")}
parent={this} parent={this}
align="left" align="left"
maxLength={13} maxLength={13}
@ -402,7 +402,7 @@ class Profile extends Component {
<Navbar /> <Navbar />
<div className="mobile-auth-profile d-flex flex-column"> <div className="mobile-auth-profile d-flex flex-column">
<br /> <br />
{/* <img src={logo} alt="دانوین" /> */} {/* <img src={logo} alt={window.t("دانوین")} /> */}
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<div className="d-flex flex-column"> <div className="d-flex flex-column">
@ -418,7 +418,7 @@ class Profile extends Component {
<Input <Input
name="firstName" name="firstName"
label=window.t("نام") label={window.t("نام")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
onInput={onInput.persianOnly} onInput={onInput.persianOnly}
@ -426,7 +426,7 @@ class Profile extends Component {
/> />
<Input <Input
name="lastName" name="lastName"
label=window.t("نام خانوادگی") label={window.t("نام خانوادگی")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
onInput={onInput.persianOnly} onInput={onInput.persianOnly}
@ -434,7 +434,7 @@ class Profile extends Component {
/> />
<Input <Input
name="username" name="username"
label=window.t(window.t("نام کاربری")) label={window.t("نام کاربری")}
parent={this} parent={this}
align="left" align="left"
defaultValue={profile} defaultValue={profile}

@ -9,16 +9,18 @@ export default function Splash(props) {
<> <>
{window.innerWidth > 1000 ? ( {window.innerWidth > 1000 ? (
<div className="splash d-flex flex-column justify-content-center align-items-center"> <div className="splash d-flex flex-column justify-content-center align-items-center">
<img src={logo} alt=window.t("لوگو") /> <img src={logo} alt={window.t("لوگو")} />
<ProgressBar interval={600} offset={10} /> <ProgressBar interval={600} offset={10} />
<span className="splash__span">در حال بارگیری اطلاعات از سرور</span> <span className="splash__span">در حال بارگیری اطلاعات از سرور</span>
</div> </div>
) : null} ) : null}
{window.innerWidth < 1000 ? ( {window.innerWidth < 1000 ? (
<div className="mobile-splash d-flex flex-column justify-content-center align-items-center"> <div className="mobile-splash d-flex flex-column justify-content-center align-items-center">
<img src={logo} alt=window.t("لوگو") /> <img src={logo} alt={window.t("لوگو")} />
<ProgressBar interval={600} offset={10} /> <ProgressBar interval={600} offset={10} />
<span className="mobile-splash__span">در حال بارگیری اطلاعات از سرور</span> <span className="mobile-splash__span">
در حال بارگیری اطلاعات از سرور
</span>
</div> </div>
) : null} ) : null}
</> </>

@ -17,9 +17,9 @@ export default function Search(props) {
<input <input
type="search" type="search"
style={{ fontSize: fontSize.desktop.input }} style={{ fontSize: fontSize.desktop.input }}
placeholder=window.t(window.t("جستجو")) placeholder={window.t(window.t("جستجو"))}
/> />
<img src={navbarSearch} alt=window.t(window.t("جستجو")) /> <img src={navbarSearch} alt={window.t(window.t("جستجو"))} />
</div> </div>
); );
} }

@ -145,7 +145,7 @@ export default class ChatInputs extends Component {
id="standard-textarea" id="standard-textarea"
label="" label=""
value={message} value={message}
placeholder=window.t("یک پیام بنویسید...") placeholder={window.t("یک پیام بنویسید...")}
rowsMax={4} rowsMax={4}
onChange={(e) => typeText("text", e.target.value)} onChange={(e) => typeText("text", e.target.value)}
multiline multiline

@ -80,7 +80,9 @@ export default class ChatInfo extends Component {
], ],
name: window.t("محسن محمدی"), name: window.t("محسن محمدی"),
lastAct: window.t("2 دقیقه پیش آنلاین بوده"), lastAct: window.t("2 دقیقه پیش آنلاین بوده"),
bio: window.t("لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنام"), bio: window.t(
"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنام"
),
}, },
}; };
} }
@ -136,7 +138,7 @@ export default class ChatInfo extends Component {
<img <img
className="desktop-contact-info__body--profileImage" className="desktop-contact-info__body--profileImage"
src={user.profileImages[0].src} src={user.profileImages[0].src}
alt=window.t("عکس کاربر") alt={window.t("عکس کاربر")}
/> />
<h1 style={{ fontSize: fontSize.desktop.h1 }}>{user.name}</h1> <h1 style={{ fontSize: fontSize.desktop.h1 }}>{user.name}</h1>
<div className="desktop-contact-info__body--bio d-flex flex-column"> <div className="desktop-contact-info__body--bio d-flex flex-column">
@ -243,7 +245,7 @@ export default class ChatInfo extends Component {
<img <img
className="desktop-contact-info__body--profileImage" className="desktop-contact-info__body--profileImage"
src={user.profileImages[0].src} src={user.profileImages[0].src}
alt=window.t("عکس کاربر") alt={window.t("عکس کاربر")}
/> />
<h1 style={{ fontSize: fontSize.mobile.h1 }}>{user.name}</h1> <h1 style={{ fontSize: fontSize.mobile.h1 }}>{user.name}</h1>
<div className="desktop-contact-info__body--bio d-flex flex-column"> <div className="desktop-contact-info__body--bio d-flex flex-column">

@ -58,7 +58,11 @@ class Contact extends Component {
</div> </div>
<div className="contact__forms--left d-flex flex-column"> <div className="contact__forms--left d-flex flex-column">
<div className="contact__location d-flex align-items-center"> <div className="contact__location d-flex align-items-center">
<img src={location} alt=window.t("آدرس") className="m-1" /> <img
src={location}
alt={window.t("آدرس")}
className="m-1"
/>
<p style={{ fontSize: fontSize.desktop.p }}> <p style={{ fontSize: fontSize.desktop.p }}>
{contactData?.address || ""} {contactData?.address || ""}
</p> </p>
@ -71,13 +75,21 @@ class Contact extends Component {
<span style={{ fontSize: fontSize.desktop.span }}> <span style={{ fontSize: fontSize.desktop.span }}>
{contactData?.cellphone || ""} {contactData?.cellphone || ""}
</span> </span>
<img src={contact} alt=window.t("تماس") className="m-1" /> <img
src={contact}
alt={window.t("تماس")}
className="m-1"
/>
</div> </div>
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<span style={{ fontSize: fontSize.desktop.span }}> <span style={{ fontSize: fontSize.desktop.span }}>
{contactData?.email || ""} {contactData?.email || ""}
</span> </span>
<img src={home} alt=window.t(window.t(window.t("خانه"))) className="m-1" /> <img
src={home}
alt={window.t("خانه")}
className="m-1"
/>
</div> </div>
</div> </div>
<div className="contact__map d-flex align-items-center mt-3"> <div className="contact__map d-flex align-items-center mt-3">
@ -106,7 +118,7 @@ class Contact extends Component {
<Support /> <Support />
<div className="mobile-contact__address d-flex flex-column"> <div className="mobile-contact__address d-flex flex-column">
<div className="mobile-contact__address--location d-flex align-items-center"> <div className="mobile-contact__address--location d-flex align-items-center">
<img src={location} alt=window.t("آدرس") className="m-1" /> <img src={location} alt={window.t("آدرس")} className="m-1" />
<p style={{ fontSize: fontSize.mobile.p }}> <p style={{ fontSize: fontSize.mobile.p }}>
{contactData?.address || ""}{" "} {contactData?.address || ""}{" "}
</p> </p>
@ -119,13 +131,13 @@ class Contact extends Component {
<span style={{ fontSize: fontSize.mobile.span }}> <span style={{ fontSize: fontSize.mobile.span }}>
{contactData?.cellphone || ""}{" "} {contactData?.cellphone || ""}{" "}
</span> </span>
<img src={contact} alt=window.t("تماس") className="m-1" /> <img src={contact} alt={window.t("تماس")} className="m-1" />
</div> </div>
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<span style={{ fontSize: fontSize.mobile.span }}> <span style={{ fontSize: fontSize.mobile.span }}>
{contactData?.email || ""} {contactData?.email || ""}
</span> </span>
<img src={home} alt=window.t(window.t(window.t("خانه"))) className="m-1" /> <img src={home} alt={window.t("خانه")} className="m-1" />
</div> </div>
</div> </div>
<div className="mobile-contact__address--map d-flex align-items-center mt-3"> <div className="mobile-contact__address--map d-flex align-items-center mt-3">

@ -45,7 +45,7 @@ class AR extends Component {
> >
<img <img
src="https://dnvn.ir/api/v1/file/1851" src="https://dnvn.ir/api/v1/file/1851"
alt=window.t(window.t("واقعیت افزوده")) alt={window.t("واقعیت افزوده")}
width="150" width="150"
/> />
</div> </div>

@ -99,7 +99,7 @@ class Faq extends Component {
<div className="faq__header--search d-flex align-items-center"> <div className="faq__header--search d-flex align-items-center">
<input <input
type="search" type="search"
placeholder=window.t("دنبال چه چیزی برات باشیم؟") placeholder={window.t("دنبال چه چیزی برات باشیم؟")}
onChange={(e) => this.handleSearch(e.target.value)} onChange={(e) => this.handleSearch(e.target.value)}
/> />
<button <button
@ -150,7 +150,7 @@ class Faq extends Component {
</h1> </h1>
<input <input
type="search" type="search"
placeholder=window.t("دنبال چه چیزی برات باشیم؟") placeholder={window.t("دنبال چه چیزی برات باشیم؟")}
onChange={(e) => this.handleSearch(e.target.value)} onChange={(e) => this.handleSearch(e.target.value)}
/> />
<button type="submit">جستجو</button> <button type="submit">جستجو</button>

@ -22,7 +22,11 @@ export default class Footer extends Component {
آموزش و پرورش کشور ایجاد کنیم. آموزش و پرورش کشور ایجاد کنیم.
</p> </p>
<div className="footer__location d-flex align-items-center mt-2"> <div className="footer__location d-flex align-items-center mt-2">
<img src={location} alt=window.t("آدرس") className="m-1" /> <img
src={location}
alt={window.t("آدرس")}
className="m-1"
/>
<p>آدرس: تهران، میدان فردوسی، خیابان موسوی، پلاک ۳۰</p> <p>آدرس: تهران، میدان فردوسی، خیابان موسوی، پلاک ۳۰</p>
</div> </div>
<div <div
@ -40,7 +44,11 @@ export default class Footer extends Component {
58795 58795
</a> </a>
<img src={contact} alt=window.t("تماس") className="m-1" /> <img
src={contact}
alt={window.t("تماس")}
className="m-1"
/>
</div> </div>
{/* <div {/* <div
className="d-flex align-items-center" className="d-flex align-items-center"
@ -54,11 +62,11 @@ export default class Footer extends Component {
> >
021-88814673 021-88814673
</a> </a>
<img src={contact} alt=window.t("تماس") className="m-1" /> <img src={contact} alt={window.t("تماس")} className="m-1" />
</div> */} </div> */}
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<span>Info@Danovin.ir</span> <span>Info@Danovin.ir</span>
<img src={home} alt=window.t(window.t(window.t("خانه"))) className="m-1" /> <img src={home} alt={window.t("خانه")} className="m-1" />
</div> </div>
</div> </div>
</div> </div>
@ -103,7 +111,11 @@ export default class Footer extends Component {
کاربردی می باشد، کتابهای زیادی در شصت و سه{" "} کاربردی می باشد، کتابهای زیادی در شصت و سه{" "}
</p> </p>
<div className="mobile-footer__location d-flex align-items-center mt-2"> <div className="mobile-footer__location d-flex align-items-center mt-2">
<img src={location} alt=window.t("آدرس") className="m-1" /> <img
src={location}
alt={window.t("آدرس")}
className="m-1"
/>
<p> <p>
تهران خیابان انقلاب اسلامی بن بست سروش پلاک 2 طبقه چهار تهران خیابان انقلاب اسلامی بن بست سروش پلاک 2 طبقه چهار
</p> </p>
@ -114,11 +126,15 @@ export default class Footer extends Component {
> >
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<span>02163462405</span> <span>02163462405</span>
<img src={contact} alt=window.t("تماس") className="m-1" /> <img
src={contact}
alt={window.t("تماس")}
className="m-1"
/>
</div> </div>
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
<span>Info@Danovin.ir</span> <span>Info@Danovin.ir</span>
<img src={home} alt=window.t(window.t(window.t("خانه"))) className="m-1" /> <img src={home} alt={window.t("خانه")} className="m-1" />
</div> </div>
</div> </div>
</div> </div>

@ -1,6 +1,6 @@
import React, { Component } from "react"; import React, { Component } from "react";
import ChevronLeftIcon from "@material-ui/icons/ChevronLeft"; import ChevronLeftIcon from "@material-ui/icons/ChevronLeft";
import {Link} from 'react-router-dom'; import { Link } from "react-router-dom";
import "./index.scss"; import "./index.scss";
export default class HomeHeader extends Component { export default class HomeHeader extends Component {
@ -12,23 +12,27 @@ export default class HomeHeader extends Component {
height ? "home-header d-flex flex-column" : "home-header d-flex" height ? "home-header d-flex flex-column" : "home-header d-flex"
} }
> >
{ {title ? (
title ? <div className="home-scroll__header d-flex"> <div className="home-scroll__header d-flex">
<h1>{title}</h1> <h1>{title}</h1>
<div className="home-scroll__header--more d-flex"> <div className="home-scroll__header--more d-flex">
<span>موارد بیشتر</span> <span>موارد بیشتر</span>
<ChevronLeftIcon <ChevronLeftIcon
style={{ width: 20, height: 20, color: "black", marginRight: 1 }} style={{
/> width: 20,
height: 20,
color: "black",
marginRight: 1,
}}
/>
</div>
</div> </div>
</div> : null ) : null}
}
<div className="home-scroll__list d-flex"> <div className="home-scroll__list d-flex">
{data.map((item, i) => ( {data.map((item, i) => (
<Item data={item} key={i} /> <Item data={item} key={i} />
))} ))}
</div> </div>
</header> </header>
); );
} }
@ -36,13 +40,16 @@ export default class HomeHeader extends Component {
const Item = (props) => { const Item = (props) => {
return ( return (
<Link to={props.data.link} style={{ <Link
width: `${props.data.width}%`, to={props.data.link}
height: "100%", style={{
}}> width: `${props.data.width}%`,
height: "100%",
}}
>
<img <img
src={props.data.image} src={props.data.image}
alt=window.t("عکس") alt={window.t("عکس")}
style={{ style={{
width: `${props.data.width}%`, width: `${props.data.width}%`,
height: "100%", height: "100%",

@ -20,7 +20,7 @@ export default class HomeScroll extends Component {
</div> </div>
<div className="mobile-home-scroll__header--more d-flex"> <div className="mobile-home-scroll__header--more d-flex">
<span>{moreText}</span> <span>{moreText}</span>
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</div> </div>
</div> </div>
<div className="mobile-home-scroll__list d-flex"> <div className="mobile-home-scroll__list d-flex">

@ -28,7 +28,7 @@ class HomeSearch extends Component {
return window.innerWidth > 1000 ? ( return window.innerWidth > 1000 ? (
<div className="home-search d-flex"> <div className="home-search d-flex">
<input <input
placeholder=window.t("جستجو در عناوین کتاب ...") placeholder={window.t("جستجو در عناوین کتاب ...")}
className="home-search__input d-flex" className="home-search__input d-flex"
type="text" type="text"
name="searchBox" name="searchBox"
@ -40,7 +40,7 @@ class HomeSearch extends Component {
/> />
<div className="home-search__select"> <div className="home-search__select">
<Select options={levels} name="levels" parent={this} /> <Select options={levels} name="levels" parent={this} />
{/* <img src={dropdown} alt=window.t("فلش") style={{ position: "relative" }} /> */} {/* <img src={dropdown} alt={window.t("فلش")} style={{ position: "relative" }} /> */}
</div> </div>
<button className="home-search__submit">جستجو</button> <button className="home-search__submit">جستجو</button>
</div> </div>
@ -49,13 +49,13 @@ class HomeSearch extends Component {
<div className="home-mobile-search d-flex"> <div className="home-mobile-search d-flex">
<div className="home-mobile-search__select" style={{ width: "100%" }}> <div className="home-mobile-search__select" style={{ width: "100%" }}>
<Select options={levels} name="levels" parent={this} /> <Select options={levels} name="levels" parent={this} />
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</div> </div>
</div> </div>
<div className="home-mobile-search "> <div className="home-mobile-search ">
<input <input
ref="input" ref="input"
placeholder=window.t("نام یک کتاب را جستجو کنید") placeholder={window.t("نام یک کتاب را جستجو کنید")}
className="home-mobile-search__input " className="home-mobile-search__input "
type="text" type="text"
name="searchBox" name="searchBox"

@ -34,7 +34,7 @@ const SimpleHeader = (props) => {
className="home-scroll__header--more d-flex align-items-center" className="home-scroll__header--more d-flex align-items-center"
> >
<span style={{ fontSize: fontSize.desktop.h1 }}>بیشتر</span> <span style={{ fontSize: fontSize.desktop.h1 }}>بیشتر</span>
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</Link> </Link>
) : null} ) : null}
</div> </div>
@ -51,7 +51,7 @@ const SimpleHeader = (props) => {
className="mobile-home-scroll__header--more d-flex align-items-center" className="mobile-home-scroll__header--more d-flex align-items-center"
> >
<span>بیشتر</span> <span>بیشتر</span>
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</Link> </Link>
) : null} */} ) : null} */}
</div> </div>
@ -74,7 +74,7 @@ const TabHeader = (props) => {
className="home-scroll__header--more d-flex align-items-center" className="home-scroll__header--more d-flex align-items-center"
> >
<span style={{ fontSize: fontSize.desktop.h1 }}>بیشتر</span> <span style={{ fontSize: fontSize.desktop.h1 }}>بیشتر</span>
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</Link> */} </Link> */}
</div> </div>
) : null} ) : null}
@ -86,7 +86,7 @@ const TabHeader = (props) => {
</div> </div>
{/* <div className="mobile-home-scroll__header--more d-flex align-items-center"> {/* <div className="mobile-home-scroll__header--more d-flex align-items-center">
<span>بیشتر</span> <span>بیشتر</span>
<img src={dropdown} alt=window.t("فلش") /> <img src={dropdown} alt={window.t("فلش")} />
</div> */} </div> */}
</div> </div>
) : null} ) : null}

@ -87,7 +87,7 @@ const Item = (props) => {
</div> </div>
<img <img
src={`https://dnvn.ir/api/v1/file/${props.data.fileId}`} src={`https://dnvn.ir/api/v1/file/${props.data.fileId}`}
alt=window.t("عکس") alt={window.t("عکس")}
/> />
</div> </div>
) : ( ) : (
@ -100,7 +100,7 @@ const Item = (props) => {
> >
<img <img
src={`https://dnvn.ir/api/v1/file/${props.data.fileId}`} src={`https://dnvn.ir/api/v1/file/${props.data.fileId}`}
alt=window.t("عکس") alt={window.t("عکس")}
style={{ float: "left" }} style={{ float: "left" }}
/> />
<div className="d-flex flex-column"> <div className="d-flex flex-column">

@ -36,7 +36,7 @@ class LaptopNavbar extends Component {
<nav className="laptop-navbar d-flex"> <nav className="laptop-navbar d-flex">
<div className="d-flex"> <div className="d-flex">
<Link to="/" className="laptop-navbar__logo"> <Link to="/" className="laptop-navbar__logo">
<img src={logo} alt=window.t("لوگو") /> <img src={logo} alt={window.t("لوگو")} />
</Link> </Link>
<ul className="laptop-navbar__list d-flex"> <ul className="laptop-navbar__list d-flex">
{links.map((item, i) => ( {links.map((item, i) => (
@ -92,7 +92,7 @@ class LaptopNavbar extends Component {
width="20" width="20"
height="23" height="23"
src={basket} src={basket}
alt=window.t("سبد خرید") alt={window.t("سبد خرید")}
style={{ marginRight: 5 }} style={{ marginRight: 5 }}
/> />
</Link> </Link>

@ -31,35 +31,35 @@ class NavbarDrawer extends Component {
{ {
name: window.t("صفحه اصلی"), name: window.t("صفحه اصلی"),
link: "/", link: "/",
icon: <img src={mobileHome} alt=window.t("صفحه اصلی") />, icon: <img src={mobileHome} alt={window.t("صفحه اصلی")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: "ورود یا ثبت نام", name: "ورود یا ثبت نام",
link: "/auth", link: "/auth",
icon: <img src={mobileLogout} alt=window.t("کتابهای من") />, icon: <img src={mobileLogout} alt={window.t("کتابهای من")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("درباره ما"), name: window.t("درباره ما"),
link: "/about", link: "/about",
icon: <img src={mobileBlog} alt=window.t("کتابهای من") />, icon: <img src={mobileBlog} alt={window.t("کتابهای من")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("فروشگاه"), name: window.t("فروشگاه"),
link: "/products", link: "/products",
icon: <img src={mobileBlog} alt=window.t("کتابهای من") />, icon: <img src={mobileBlog} alt={window.t("کتابهای من")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("سبد خرید"), name: window.t("سبد خرید"),
link: "/cart", link: "/cart",
icon: <img src={mobileBlog} alt=window.t("کتابهای من") />, icon: <img src={mobileBlog} alt={window.t("کتابهای من")} />,
toast: "", toast: "",
message: "", message: "",
}, },
@ -73,7 +73,7 @@ class NavbarDrawer extends Component {
{ {
name: window.t("پشتیبانی"), name: window.t("پشتیبانی"),
link: "/support", link: "/support",
icon: <img src={mobileDanger} alt=window.t("پشتیبانی") />, icon: <img src={mobileDanger} alt={window.t("پشتیبانی")} />,
toast: "", toast: "",
message: "", message: "",
// onClick: this.props.logout, // onClick: this.props.logout,
@ -83,35 +83,35 @@ class NavbarDrawer extends Component {
{ {
name: window.t("صفحه اصلی"), name: window.t("صفحه اصلی"),
link: "/", link: "/",
icon: <img src={mobileHome} alt=window.t("صفحه اصلی") />, icon: <img src={mobileHome} alt={window.t("صفحه اصلی")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t(window.t("واقعیت افزوده")), name: window.t(window.t("واقعیت افزوده")),
link: "/ar", link: "/ar",
icon: <img src={mobileAr} alt=window.t(window.t("واقعیت افزوده")) />, icon: <img src={mobileAr} alt={window.t("واقعیت افزوده")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("بارکد خوان"), name: window.t("بارکد خوان"),
link: "/qr-scan", link: "/qr-scan",
icon: <img src={qrcode} alt=window.t("بارکد خوان") />, icon: <img src={qrcode} alt={window.t("بارکد خوان")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("کتابهای من"), name: window.t("کتابهای من"),
link: "/mybooks", link: "/mybooks",
icon: <img src={mobileBlog} alt=window.t("کتابهای من") />, icon: <img src={mobileBlog} alt={window.t("کتابهای من")} />,
toast: "", toast: "",
message: "", message: "",
}, },
{ {
name: window.t("سبد خرید"), name: window.t("سبد خرید"),
link: "/cart", link: "/cart",
icon: <img src={mobileBasket} alt=window.t("فروشگاه") />, icon: <img src={mobileBasket} alt={window.t("فروشگاه")} />,
toast: "", toast: "",
message: "", message: "",
}, },
@ -125,14 +125,14 @@ class NavbarDrawer extends Component {
{ {
name: window.t("دانوینیها"), name: window.t("دانوینیها"),
link: "/", link: "/",
icon: <img src={mobileProfile} alt=window.t("دانوینیها") />, icon: <img src={mobileProfile} alt={window.t("دانوینیها")} />,
toast: window.t("به زودی این بخش فعال می شود"), toast: window.t("به زودی این بخش فعال می شود"),
message: "به زودی", message: "به زودی",
}, },
{ {
name: window.t("پشتیبانی"), name: window.t("پشتیبانی"),
link: "/support", link: "/support",
icon: <img src={mobileDanger} alt=window.t("پشتیبانی") />, icon: <img src={mobileDanger} alt={window.t("پشتیبانی")} />,
toast: "", toast: "",
message: "", message: "",
// onClick: this.props.logout, // onClick: this.props.logout,
@ -140,14 +140,14 @@ class NavbarDrawer extends Component {
{ {
name: window.t(window.t("ویرایش مشخصات")), name: window.t(window.t("ویرایش مشخصات")),
link: "/profile", link: "/profile",
icon: <img src={mobileMail} alt=window.t(window.t("ویرایش مشخصات")) />, icon: <img src={mobileMail} alt={window.t("ویرایش مشخصات")} />,
toast: "", toast: "",
// message: "4 پیام", // message: "4 پیام",
}, },
{ {
name: window.t("بروز رسانی"), name: window.t("بروز رسانی"),
link: "/", link: "/",
icon: <img src={mobileLogout} alt=window.t(window.t(window.t("خروج"))) />, icon: <img src={mobileLogout} alt={window.t("خروج")} />,
toast: "", toast: "",
message: "", message: "",
onClick: () => { onClick: () => {
@ -157,7 +157,7 @@ class NavbarDrawer extends Component {
{ {
name: window.t(window.t(window.t("خروج"))), name: window.t(window.t(window.t("خروج"))),
link: "/auth", link: "/auth",
icon: <img src={mobileLogout} alt=window.t(window.t(window.t("خروج"))) />, icon: <img src={mobileLogout} alt={window.t("خروج")} />,
toast: "", toast: "",
message: "", message: "",
onClick: () => { onClick: () => {

@ -18,7 +18,7 @@ function BackButton({ children }) {
let history = useHistory(); let history = useHistory();
return ( return (
<div type="button" onClick={() => history.goBack()}> <div type="button" onClick={() => history.goBack()}>
<img src={back} alt=window.t("بازگشت") /> <img src={back} alt={window.t("بازگشت")} />
</div> </div>
); );
} }
@ -82,10 +82,10 @@ export default function MobileNavbar(props) {
style={{ marginTop: 10 }} style={{ marginTop: 10 }}
onClick={toggleDrawer("right", true)} onClick={toggleDrawer("right", true)}
> >
<img src={hamburger} alt=window.t("منو") /> <img src={hamburger} alt={window.t("منو")} />
</div> </div>
<Link to="/" className="mobile-navbar__logo2" style={{}}> <Link to="/" className="mobile-navbar__logo2" style={{}}>
<img src={logo} alt=window.t("لوگو") className="logo" /> <img src={logo} alt={window.t("لوگو")} className="logo" />
</Link> </Link>
</div> </div>
<div className="mobile-navbar__left d-flex" style={{ marginLeft: 10 }}> <div className="mobile-navbar__left d-flex" style={{ marginLeft: 10 }}>
@ -115,23 +115,23 @@ export default function MobileNavbar(props) {
// style={{ transform: page !== "home" ? "translateX(-29px)" : "none" }} // style={{ transform: page !== "home" ? "translateX(-29px)" : "none" }}
> >
<Link to="/"> <Link to="/">
<img src={logo} alt=window.t("لوگو") /> <img src={logo} alt={window.t("لوگو")} />
</Link> </Link>
</div> */} </div> */}
<div <div
className="mobile-navbar__menu" className="mobile-navbar__menu"
onClick={toggleDrawer("right", true)} onClick={toggleDrawer("right", true)}
> >
<img src={hamburger} alt=window.t("منو") /> <img src={hamburger} alt={window.t("منو")} />
<Link to="/"> <Link to="/">
<img src={logo} alt=window.t("لوگو") className="logo" /> <img src={logo} alt={window.t("لوگو")} className="logo" />
</Link> </Link>
</div> </div>
<div className="mobile-navbar__left"> <div className="mobile-navbar__left">
{page === "home" || page === "download" ? ( {page === "home" || page === "download" ? (
<Link to={"/products"}> <Link to={"/products"}>
<img src={search} alt=window.t(window.t("جستجو")) /> <img src={search} alt={window.t(window.t("جستجو"))} />
</Link> </Link>
) : ( ) : (
<div className="d-flex align-items-center"> <div className="d-flex align-items-center">
@ -139,7 +139,7 @@ export default function MobileNavbar(props) {
window.location.pathname !== "/mybooks" && window.location.pathname !== "/mybooks" &&
window.location.pathname !== "/profile" && ( window.location.pathname !== "/profile" && (
<Link to={"/products"}> <Link to={"/products"}>
<img src={search} alt=window.t(window.t("جستجو")) /> <img src={search} alt={window.t("جستجو")} />
</Link> </Link>
)} )}
{window.location.pathname !== "/qr-scan" && {window.location.pathname !== "/qr-scan" &&

@ -221,7 +221,7 @@ class NewProfile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="firstName" name="firstName"
label=window.t("نام") label={window.t("نام")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
/> />
@ -229,7 +229,7 @@ class NewProfile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="lastName" name="lastName"
label=window.t("نام خانوادگی") label={window.t("نام خانوادگی")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
/> />
@ -237,7 +237,7 @@ class NewProfile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="username" name="username"
label=window.t(window.t("نام کاربری")) label={window.t("نام کاربری")}
parent={this} parent={this}
defaultValue={profile} defaultValue={profile}
align="left" align="left"
@ -255,7 +255,7 @@ class NewProfile extends Component {
<div className="mb-2"> <div className="mb-2">
<Input <Input
name="nationalId" name="nationalId"
label=window.t("کد ملی") label={window.t("کد ملی")}
parent={this} parent={this}
align="left" align="left"
defaultValue={profile} defaultValue={profile}
@ -390,7 +390,7 @@ class NewProfile extends Component {
) : null} ) : null}
{window.innerWidth < 1000 ? ( {window.innerWidth < 1000 ? (
<div className="mobile-auth-profile d-flex flex-column"> <div className="mobile-auth-profile d-flex flex-column">
<img src={logo} alt="دانوین" /> <img src={logo} alt={window.t("دانوین")} />
<h1 style={{ fontSize: fontSize.mobile.h1 }}>افزودن کاربر جدید</h1> <h1 style={{ fontSize: fontSize.mobile.h1 }}>افزودن کاربر جدید</h1>
<p style={{ fontSize: fontSize.mobile.p }}> <p style={{ fontSize: fontSize.mobile.p }}>
لطفا مشحصات خود را به صورت کامل وارد نمایید لطفا مشحصات خود را به صورت کامل وارد نمایید
@ -398,19 +398,19 @@ class NewProfile extends Component {
<Upload name="file" parent={this} /> <Upload name="file" parent={this} />
<Input <Input
name="firstName" name="firstName"
label=window.t("نام") label={window.t("نام")}
parent={this} parent={this}
onInput={this.forcePersian} onInput={this.forcePersian}
/> />
<Input <Input
name="lastName" name="lastName"
label=window.t("نام خانوادگی") label={window.t("نام خانوادگی")}
parent={this} parent={this}
onInput={this.forcePersian} onInput={this.forcePersian}
/> />
<Input <Input
name="username" name="username"
label=window.t(window.t("نام کاربری")) label={window.t(window.t("نام کاربری"))}
parent={this} parent={this}
align="left" align="left"
/> />
@ -422,7 +422,7 @@ class NewProfile extends Component {
/> />
<Input <Input
name="nationalId" name="nationalId"
label=window.t("کد ملی") label={window.t("کد ملی")}
parent={this} parent={this}
align="left" align="left"
maxLength={10} maxLength={10}
@ -489,10 +489,18 @@ class NewProfile extends Component {
label={window.t("شهر/روستا")} label={window.t("شهر/روستا")}
/> />
{this.state.userRoleId === window.t("دانش آموز") ? ( {this.state.userRoleId === window.t("دانش آموز") ? (
<Input parent={this} name="schoolId" label={window.t("نام مدرسه")} /> <Input
parent={this}
name="schoolId"
label={window.t("نام مدرسه")}
/>
) : null} ) : null}
{this.state.userRoleId === window.t("معلم") ? ( {this.state.userRoleId === window.t("معلم") ? (
<Input parent={this} name="schoolId" label={window.t("محل تدریس")} /> <Input
parent={this}
name="schoolId"
label={window.t("محل تدریس")}
/>
) : null} ) : null}
{this.state.userRoleId === window.t("معلم") ? ( {this.state.userRoleId === window.t("معلم") ? (
<Document parent={this} name="docFileIds" /> <Document parent={this} name="docFileIds" />
@ -503,7 +511,11 @@ class NewProfile extends Component {
label={window.t("کد پستی")} label={window.t("کد پستی")}
align="left" align="left"
/> />
<TextArea parent={this} label={window.t("آدرس محل سکونت")} name="address" /> <TextArea
parent={this}
label={window.t("آدرس محل سکونت")}
name="address"
/>
<div className="mobile-auth-profile__footer d-flex justify-content-center"> <div className="mobile-auth-profile__footer d-flex justify-content-center">
<button onClick={() => this.onSubmit()}>ذخیره</button> <button onClick={() => this.onSubmit()}>ذخیره</button>
</div> </div>

@ -1,68 +1,68 @@
import React, {useState} from 'react'; import React, { useState } from "react";
import Carousel from 'react-elastic-carousel'; import Carousel from "react-elastic-carousel";
import Video from '../../../QR/VideoBox/React-video-js-player/index'; import Video from "../../../QR/VideoBox/React-video-js-player/index";
import exit from '../../../../assets/icons/exit.svg'; import exit from "../../../../assets/icons/exit.svg";
import './index.scss'; import "./index.scss";
const Modal = (props) => { const Modal = (props) => {
const [displayed, setDisplayed] = useState(props.first ? props.first : props.gallery[0]) const [displayed, setDisplayed] = useState(
const {gallery, setModal} = props; props.first ? props.first : props.gallery[0]
return( );
const { gallery, setModal } = props;
return (
<> <>
{ {window.innerWidth > 1000 ? (
window.innerWidth > 1000 ?
<section className="modal d-flex flex-column align-items-center justify-content-center"> <section className="modal d-flex flex-column align-items-center justify-content-center">
<img className="modal__exit" src={exit} alt="خروح" onClick={() => setModal(null)} /> <img
className="modal__exit"
src={exit}
alt="خروح"
onClick={() => setModal(null)}
/>
<div className="modal__display"> <div className="modal__display">
{ {displayed.type === "image" ? (
displayed.type === 'image' ? <img src={displayed.value} alt={window.t("عکس")} />
<img src={displayed.value} alt=window.t("عکس") /> : null ) : null}
} {displayed.type === "film" ? <Video /> : null}
{
displayed.type === 'film' ?
<Video /> : null
}
</div> </div>
<footer className="modal__footer d-flex"> <footer className="modal__footer d-flex">
<Carousel <Carousel
itemsToShow={4} itemsToShow={4}
isRTL={true} isRTL={true}
enableTilt={false} enableTilt={false}
showArrows={true} showArrows={true}
pagination={false} pagination={false}
> >
{gallery.map((item, i) => ( {gallery.map((item, i) => (
<Item <Item
data={item} data={item}
key={i} key={i}
setDisplayed={setDisplayed} setDisplayed={setDisplayed}
active={item === displayed} active={item === displayed}
/> />
))} ))}
</Carousel> </Carousel>
</footer> </footer>
</section> : null </section>
} ) : null}
</> </>
); );
} };
export default Modal; export default Modal;
const Item = (props) => { const Item = (props) => {
return( return (
<div className="modal-carousel-item"> <div className="modal-carousel-item">
{ {props.data.type === "image" ? (
props.data.type === 'image' ? <img src={props.data.value} alt={window.t("عکس")} />
<img src={props.data.value} alt=window.t("عکس") /> : null ) : null}
} {props.data.type === "film" ? <Video /> : null}
{ <div
props.data.type === 'film' ? style={{ border: props.active ? "4px solid #1BBC6E" : "" }}
<Video /> : null className="modal-carousel-item__cover"
} onClick={() => props.setDisplayed(props.data)}
<div style={{ border: props.active ? '4px solid #1BBC6E' : '' }} className="modal-carousel-item__cover" onClick={() => props.setDisplayed(props.data)}> ></div>
</div>
</div> </div>
); );
} };

@ -74,7 +74,7 @@ function SimpleModal(props) {
کامنت خود را وارد کرده و دکمه ثبت را بزنید. کامنت خود را وارد کرده و دکمه ثبت را بزنید.
</h2> </h2>
<textarea <textarea
placeholder=window.t("متن پیام") placeholder={window.t("متن پیام")}
name="description" name="description"
rows="5" rows="5"
onChange={(e) => setText(e.target.value)} onChange={(e) => setText(e.target.value)}

@ -145,7 +145,9 @@ class Product extends Component {
<Info <Info
subTitle={`پایه ${grades[info.gradeId]}`} subTitle={`پایه ${grades[info.gradeId]}`}
title={`${info.name} ${grades[info.gradeId]}`} title={`${info.name} ${grades[info.gradeId]}`}
description={info.description || window.t("توضیحات محصول خالیست")} description={
info.description || window.t("توضیحات محصول خالیست")
}
/> />
<AddToCart <AddToCart
@ -169,7 +171,7 @@ class Product extends Component {
</h3> </h3>
<button onClick={() => this.handleOpenComment()}> <button onClick={() => this.handleOpenComment()}>
ارسال نظر ارسال نظر
<img src={send_comment} alt=window.t("ارسال نظر") /> <img src={send_comment} alt={window.t("ارسال نظر")} />
</button> </button>
</div> </div>
@ -217,7 +219,9 @@ class Product extends Component {
info.name info.name
} پایه ${grades[info.gradeId]}`}</h1> } پایه ${grades[info.gradeId]}`}</h1>
<h2 style={{ fontSize: fontSize.mobile.h2 }}> <h2 style={{ fontSize: fontSize.mobile.h2 }}>
{page !== "digital" ? window.t("نسخه چاپی") : window.t("نسخه الکترونیک")} {page !== "digital"
? window.t("نسخه چاپی")
: window.t("نسخه الکترونیک")}
</h2> </h2>
<h3 style={{ fontSize: fontSize.mobile.h1 }}> <h3 style={{ fontSize: fontSize.mobile.h1 }}>
{page === "digital" {page === "digital"
@ -242,7 +246,9 @@ class Product extends Component {
className="mobile-product__header--digitalButton" className="mobile-product__header--digitalButton"
style={{ fontSize: fontSize.mobile.a, opacity: 0.3 }} style={{ fontSize: fontSize.mobile.a, opacity: 0.3 }}
> >
{page === "digital" ? window.t("نسخه چاپی") : window.t("نسخه الکترونیک")} {page === "digital"
? window.t("نسخه چاپی")
: window.t("نسخه الکترونیک")}
</Link> </Link>
<Link <Link
to={ to={
@ -250,7 +256,9 @@ class Product extends Component {
} }
onClick={() => onClick={() =>
!info.sampleFileId !info.sampleFileId
? toast.info(window.t("برای این کتاب نمونهای درج نشده است.")) ? toast.info(
window.t("برای این کتاب نمونهای درج نشده است.")
)
: null : null
} }
className="mobile-product__header--purchase" className="mobile-product__header--purchase"
@ -299,7 +307,7 @@ class Product extends Component {
</h3> </h3>
<button onClick={() => this.handleOpenComment()}> <button onClick={() => this.handleOpenComment()}>
ارسال نظر ارسال نظر
<img src={send_comment} alt=window.t("ارسال نظر") /> <img src={send_comment} alt={window.t("ارسال نظر")} />
</button> </button>
</div> </div>
<div className="mobile-product__comments--list d-flex"> <div className="mobile-product__comments--list d-flex">

@ -20,14 +20,14 @@ export default class Filtesrs extends React.Component {
name="subject" name="subject"
parent={parent} parent={parent}
data={parent.props.subjects} data={parent.props.subjects}
title=window.t("دسته بندی موضوعی") title={window.t("دسته بندی موضوعی")}
theme="#D7FF17" theme="#D7FF17"
/> />
<TypicalFilters <TypicalFilters
name="level" name="level"
parent={parent} parent={parent}
data={parent.props.levels} data={parent.props.levels}
title=window.t(window.t("پایه تحصیلی")) title={window.t("پایه تحصیلی")}
theme="#FF8917" theme="#FF8917"
/> />
</div> </div>

@ -95,7 +95,7 @@ class Products extends Component {
placeholder={window.t(window.t("جستجو"))} placeholder={window.t(window.t("جستجو"))}
onChange={(e) => this.handleProductSearch(e.target.value)} onChange={(e) => this.handleProductSearch(e.target.value)}
/> />
<img src={navbarSearch} alt=window.t(window.t("جستجو")) /> <img src={navbarSearch} alt={window.t("جستجو")} />
</div> </div>
<div className="mobile-products__filters d-flex"> <div className="mobile-products__filters d-flex">
<div className="d-flex"> <div className="d-flex">

@ -55,7 +55,7 @@ export default function Dropdown(props) {
style={{ fontSize: fontSize.desktop.input }} style={{ fontSize: fontSize.desktop.input }}
onChange={(e) => handleSearch(e.target.value)} onChange={(e) => handleSearch(e.target.value)}
/> />
<img src={navbarSearch} alt=window.t(window.t("جستجو")) /> <img src={navbarSearch} alt={window.t("جستجو")} />
</div> </div>
<ul> <ul>
{search {search

@ -224,7 +224,7 @@ class QR extends Component {
<div> <div>
<img <img
src={exit} src={exit}
alt=window.t("انصراف") alt={window.t("انصراف")}
onClick={() => onClick={() =>
// this.props.logout({}) // this.props.logout({})
this.setState({ menu: !this.state.menu }) this.setState({ menu: !this.state.menu })

@ -45,7 +45,7 @@ class QRModal extends Component {
<div className="d-flex" style={{ justifyContent: "center" }}> <div className="d-flex" style={{ justifyContent: "center" }}>
<Input <Input
name="pageNumber" name="pageNumber"
// label=window.t("نام") // label={window.t("نام")}
parent={this} parent={this}
defaultValue={pageNumber} defaultValue={pageNumber}
maxLength={3} maxLength={3}
@ -105,7 +105,7 @@ class QRModal extends Component {
</span> </span>
<Input <Input
name="pageNumber" name="pageNumber"
// label=window.t("نام") // label={window.t("نام")}
parent={this} parent={this}
defaultValue={pageNumber} defaultValue={pageNumber}
maxLength={3} maxLength={3}

Loading…
Cancel
Save