diff --git a/dictionary.js b/dictionary.js new file mode 100644 index 0000000..a73d591 --- /dev/null +++ b/dictionary.js @@ -0,0 +1,338 @@ +const items = [ + "کیفیت آموزش را بالا میبریم", + "شایستگی در ایجاد فهم علمی در موضوع هدف و در موضوعات وابسته به آن", + "شایستگی در ایجاد زمینه ی معرفتی- ارزشی موثر برای محتواهای آموزشی", + "جذابیت کلید بهبود یادگیری", + "بکارگیری عوامل متنوع سازگار با ارزشها برای علاقمندی دانش آموز و معلم به استفاده از محتوای دانوین", + "سازگار با نظام آ.پ : بطوریکه بتواند در مدارس فعلی مورد استفاده قرار گرفته و با نظام رسمی فعلی در تضاد نباشد", + "در راستای نیل به سند تحول : تلاش برای نزدیکی گام به گام به آرمانها و اهداف سند تحول", + "مزیت رقابتی دانوین", + "بکارگیری بروز ترین تکنولوژی های تولید و مدیریت محتوای آموزشی-تربیتی (مانند واقعیت افزوده)", + "دارای رویکرد آموزش سرگرم کننده ", + "بستر تعاملی و اشتراک گذاری فیلم و محتوای آموزشی", + "رویکرد معرفتی-ارزشی", + "ویدئو های منحصر بفرد", + "متن گفتگو محور ، روایی ، قابل فهم ،جذاب و سرگرم کننده", + "فعال سازی کتاب الکترونیک", + "کد فعال سازی در اختیار شما قرار گرفته است را در قسمت زیر وارد وارد تا کتاب الکترونیک آن فعالسازی شود", + "ثبت کد فعال سازی", + "برای خدمات هوشمند کتاب کد فعال سازی را اینجا وارد نمایید", + "برای استفاده از این بخش باید یک کتاب را فعالسازی کرده باشید", + "فعالسازی کتاب", + "پیش دبستان", + "اول", + "دوم", + "سوم", + "چهارم", + "پنجم", + "ششم", + "هفتم", + "هشتم", + "نهم", + "دهم", + "یازدهم", + "دوازدهم", + "صفحه اصلی", + "واقعیت افزوده", + "در حال بارگیری اطلاعات از سرور", + "حساب کاربری", + "لطفا مشخصات خود را به صورت کامل نمایید.", + "نام", + "نام خانوادگی", + "نام کاربری", + "دختر", + "پسر", + "کد ملی/اتباع", + "معلم", + "دانش آموز", + "عنوان", + "پایه تحصیلی", + "رشته تحصیلی", + "استان", + "شهرستان", + "نام مدرسه", + "محل تدریس", + "کد پستی", + "آدرس محل سکونت", + "ریاضی", + "تجربی", + "انسانی", + "فنی حرفه‌ای", + "کاردانش", + "معارف", + "‌ذخیره", + "روز", + "ماه", + "سال", + "تاریخ تولد", + "گواهی تدریس خود را آپلود کنید.", + "گواهی تدریس ثبت شده و درحال بررسی می باشد", + "کاربر", + "پرچم", + "شرایط استفاده و حریم خصوصی", + "به دانوین خوش اومدی برای عضویت و ادامه شماره موبایلت رو وارد کن و روی گزینه ثبت بزن", + "ادامه", + "ارسال مجدد کد فعال سازی", + "بازگشت به مرحله قبل و اصلاح شماره", + "یک کد تائیدیه به شماره", + "ارسال شد", + "آن را در قسمت زیر وارد کنید.", + "ثبت", + "زمان باقیمانده تا انقضای کد:", + "وبلاگ", + "مطالعه کامل", + "سبد خرید", + "روشهای ارسال", + "جمع کل", + "تومان", + "با توجه به شرایط یکی از دو گزینه زیر را انتخاب کنید", + "پرداخت", + "عملیات خرید شما با موفقیت انجام شد.", + "عملیات با موفقیت انجام نشد!", + "هیچ محصولی در سبد خرید شما وجود ندارد", + "فروشگاه", + "پرداخت شما با خطا مواجه شد ، لطفا مجدد تلاش نمایید", + "سبد پیش خرید", + "با توجه به شرایط یکی از دو گزینه زیر را انتخاب کنید", + "شرایط استفاده از دانوین و حریم خصوصی را مطالعه کرده ام", + "شرایط مرجوع کردن کالا در دانوین", + "کد تخفیف", + "اگر کد تخفیفی دارید آن را در کادر زیر وارد نمائید", + "ثبت کد", + "کد تخفیف برای شما ثبت شده است", + "مالیات بر ارزش افزوده", + "محصولات", + "قیمت", + "تعداد", + "مبلغ کل", + "محصول", + "نسخه", + "الکترونیکی", + "چاپی", + "پایه", + "کد فعالسازی محتوای الکترونیک", + "حذف", + "قیمت هر واحد", + "همراه با:", + "قیمت هر عدد", + "برای شروع روی یک چت کلیک کن", + "جستجو", + "علی", + "ارسال", + "کنسل", + "یک پیام بنویسید...", + "ثبت شد", + "ثبت", + "پسند", + "تبادل نظر", + "پاسخ", + "باز ارسال", + "ویرایش", + "حذف", + "ویرایش در", + "خلاقیت", + "پروفایل", + "حساب کاربری", + "خروج", + "استاد علوم طبیعی پایه دوازدهم", + "کارشناس ارشد علوم و فنون از دانشگاه تهران", + "محسن محمدی", + "2 دقیقه پیش آنلاین بوده", + "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنام", + "عکس کاربر", + "مشخصات تحصیلی", + "نام کاربری", + "روشن", + "خاموش", + "رسانه,فیلم,عکس", + "مسدود سازی مخاطب", + "رسانه", + "ویدیو", + "صوت", + "لینک", + "فایل", + "هیچ محصولی در سبد خرید شما وجود ندارد", + "پرداخت شما با خطا مواجه شد ، لطفا مجدد تلاش نمایید", + "جزئیات صورتحساب", + "مشخصات تحویل گیرنده", + "نام ‌و ‌نام خانوادگی", + "شماره تماس", + "توضیحات", + "روشهای ارسال", + "جمع کل", + "صورتحساب", + "با توجه به شرایط یکی از دو گزینه زیر را انتخاب کنید", + "اگر کد تخفیفی دارید آن را در کادر زیر وارد نمائید", + "ثبت کد", + "کد تخفیف", + "مبلغ سبد خرید", + "هزینه ارسال", + "میزان تخفیف", + "مالیات بر ارزش افزوده", + "عدد", + "آدرس", + "تماس", + "خانه", + "برای استفاده از بخش واقعیت افزوده می بایست افزونه آن را نصب نمایید", + "دریافت افزونه", + "دریافت افزونه واقعیت افزوده", + "سلام چطوری میتونم کمکتون کنم؟", + "دنبال چه چیزی برات باشیم؟", + "جستجو", + "لذت یادگیری را با", + "تجربه کنید", + "دریافت اپلیکیشن اختصاصی دانوین", + "به راحتی از همین جا دانلود کنید...", + "ما در دانوین با هدف ایجاد زیرساخت تعاملی و آموزشی با تولید محتوایی جذاب بصورت کتاب قصد داریم تغییراتی بنیادین در نظام آموزش و پرورش کشور ایجاد کنیم.", + "آدرس: تهران، میدان فردوسی، خیابان موسوی، پلاک ۳۰", + "خانه", + "لینک های کاربردی", + "تمامی حقوق این وبسایت متعلق به دانوین می باشد. 1400", + "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه", + "خانه", + "دسترسی سریع", + "سوالات متداول", + "درباره ما", + "تماس با ما", + "موارد بیشتر", + "فلش", + "ناموجود", + "جستجو در عناوین کتاب ...", + "نام یک کتاب را جستجو کنید", + "علمی تخیلی", + "سیاسی", + "تاریخی", + "ورزشی", + "مطالعه کامل در", + "دقیقه", + "تاریخ انتشار", + "ادامه مطلب", + "عکس", + "عکس محصول", + "دانوینی", + "شو", + "مشخصات خودت رو وارد کنید و امتیاز هدیه بگیرید", + "شماره تماس", + "لوگو", + "دانلود", + "ویرایش مشخصات", + "پیگری سفارشات", + "کتاب های من", + "خروج", + "ورود یا ثبت‌نام", + "پشتیبانی", + "بازگشت", + "منو", + "ورود یا ثبت‌نام", + "کتاب‌های من", + "واقعیت افزوده", + "بارکد خوان", + "به زودی این بخش فعال می شود", + "دانوینی‌ها", + "ویرایش مشخصات", + "بروز رسانی", + "خروج", + "امتیاز", + "اضافه کردن کاربر", + "ادامه مطلب", + "فعال سازی شده", + "تاریخ فعال‌سازی:", + "کد فعال‌سازی:", + "اسکن بارکد", + "برای استفاده از این بخش باید یک کتاب فعال خریداری کرده باشید", + "لطفا مشخصات خود را به صورت کامل نمایید.", + "کد ملی", + "شهر/روستا", + "افزودن کاربر جدید", + "سفارشات من", + "شناسه سفارش", + "پرداخت نشده", + "در حال پردازش", + "ارسال شد", + "لغو شد", + "شناسه پرداخت", + "مبلغ", + "تخفیف", + "سفارشی برای نماش وجود ندارد", + "جهت ادامه فرآیند خرید وارد حساب خود شوید", + "افزودن به سبد خرید", + "توضیحات محصول خالیست", + "نظرات خریداران", + "ارسال نظر", + "از اینکه با نظرات خود ما را در ارتقای کیفیت محصولاتمان یاری کنید ، سپاسگزاریم", + "نسخه الکترونیک", + "نسخه چاپی", + "برای این کتاب نمونه‌ای درج نشده است.", + "مطالعه نمونه کتاب", + "معرفی کتاب", + "این کتاب شامل چه مواردی است؟", + "نظرات خریداران", + "مشاهده نمونه کتاب", + "شرایط استفاده از دانوین و حریم خصوصی را مطالعه کرده ام", + "شرایط مرجوع کردن کالا در دانوین", + "کاربر میهمان", + "پاسخ مدیریت سایت", + "کامنت خود را وارد کرده و دکمه ثبت را بزنید.", + "متن پیام", + "انصراف", + "ابتدا یک محصول به سبد خریدتان اضافه کنید.", + "دسته بندی موضوعی", + "پایه تحصیلی", + "فیلترهای اعمال شده", + "محصولی با این مشخصات یافت نشد", + "عکس مجصول", + "پایه", + "نام کتاب", + "مرتب سازی", + "مرتب سازی بر اساس", + "شما در حال مطالعه", + "هستید", + "صفحه", + "محتوایی برای این صفحه در دسترس نیست.!", + "نمایش تمامی محتواها", + "محتویات کتاب", + "فایل", + "برای دانلود این فایل روی اینجا کلیک کن", + "مشاهده فهرست موضوعی کتاب", + "سخنی با خوانندگان", + "مقدمه", + "آتشفشانها و اقیانوسها", + "نحوه جدایی صفحات کره", + "نکته", + "لطفا دوربین خود را روی کدی که در اختیار شما قرار گرفته قرار دهید تا اسکن دوربین انجام شود", + "دوربین عقب", + "دوربین جلو", + "آخرین مشاهدات", + "اسکن کد QR موفقیت آمیز بود.", + "لطفا شماره صفحه را وارد نمایید", + "تایید", + "زیست دهم", + "علوم چهارم", + "نمونه ای برای این محصول درج نشده است", + "قبل", + "بعد", + "واحد محتوایی", + "واحد فنی", + "واحد فروش", + "واحد مورد نظر", + "برای ارتباط با دنیای شگفت انگیز دانوین از فرم زیر استفاده کنید و پس از انتخاب دپارتمان مد نظر پیام خود را ارسال کنید.", + "نام ‌و ‌نام خانوادگی", + "شماره تماس", + "موضوع", + "متن", + "تصویر بارگزاری شد", + "در صورت نیاز تصویر مرتبط را انتخاب کنید.", + "فایل ثبت شد", + "کتاب شما با موفقیت فعال گردید.", + "جدیدترین", + "محبوب ترین", + "گران ترین", + "ثبت درخواست با موفقیت انجام شد", + "کتاب‌های دانوین", + "روش ارسال با موفقیت تغییر یافت!", + "کد به شماره شما ارسال گردید.", + "به دانوین خوش آمدید.", + "درخواست شما با موفقیت انجام شد.", +]; + +module.exports = items; \ No newline at end of file diff --git a/dictionary.js.zip b/dictionary.js.zip new file mode 100644 index 0000000..d5e669c Binary files /dev/null and b/dictionary.js.zip differ diff --git a/package.json b/package.json index 3c7e101..a8748e3 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "jest-resolve": "26.6.0", "jest-watch-typeahead": "0.6.1", "mapir-react-component": "^1.8.1", - "material-ui-audio-player": "https://github.com/RezaAshrafi77/material-ui-audio-player.git", "material-ui-player": "^0.2.2", "mini-css-extract-plugin": "0.11.3", "modern-react-qr-reader": "^1.0.12", @@ -106,7 +105,8 @@ "webpack": "4.44.2", "webpack-dev-server": "3.11.1", "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "5.1.4" + "workbox-webpack-plugin": "5.1.4", + "material-ui-audio-player": "https://github.com/RezaAshrafi77/material-ui-audio-player.git" }, "scripts": { "start": "node scripts/start.js ", @@ -199,4 +199,4 @@ ] ] } -} \ No newline at end of file +} diff --git a/src/App.css b/src/App.css index e6a8bf0..e8e104a 100644 --- a/src/App.css +++ b/src/App.css @@ -1,8 +1,16 @@ * { box-sizing: border-box !important; - direction: rtl; font-family: numeralLight; } + +.ltr { + direction: ltr; +} + +.rtl { + direction: rtl; +} + #root { height: 100vh; max-width: 100vw !important; diff --git a/src/AppRouter.js b/src/AppRouter.js index 6bfb2c0..1bed7c7 100644 --- a/src/AppRouter.js +++ b/src/AppRouter.js @@ -91,203 +91,221 @@ class AppRouter extends Component { ); return ( - - - {home} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* +
+ + + {home} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {/* */} - - - - - {mobile ? ( - status ? ( + + + + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : ( + )} + + + {mobile ? ( + status ? ( + + ) : ( + + ) ) : ( + + )} + + + + + + + + + + + + {proxy.status() ? ( - ) - ) : ( - - )} - - - - {/* {mobile ? ( + ) : ( + + )} + + + + {/* {mobile ? ( status ? ( ) : ( ) ) : ( )} */} - - - - - - - - - - - - {proxy.status() ? ( - - ) : ( - - )} - - - {mobile ? ( - status ? ( - - ) : ( + + + + + + + + + + + + {proxy.status() ? ( - ) - ) : status ? ( - - ) : ( - - )} - - - {mobile ? ( - status ? ( + ) : ( + + )} + + + {mobile ? status ? : null : null} + + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : status ? ( ) : ( - ) - ) : status ? ( - - ) : ( - - )} - - - {mobile ? ( - status ? ( + )} + + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : status ? ( ) : ( - ) - ) : status ? ( - - ) : ( - - )} - - - {mobile ? ( - status ? ( + )} + + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : status ? ( + ) : ( + + )} + + + {status ? ( + ) : ( - ) - ) : status ? ( - - ) : ( - - )} - - - {status ? ( - - ) : ( - - )} - - - {status ? ( - - ) : ( - - )} - - {/* + )} + + + {status ? ( + + ) : ( + + )} + + {/* {mobile ? ( status ? ( @@ -308,64 +326,65 @@ class AppRouter extends Component { /> )} */} - - {mobile ? ( - status ? ( + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : status ? ( ) : ( - ) - ) : status ? ( - - ) : ( - - )} - + )} + - - {mobile ? ( - status ? ( + + {mobile ? ( + status ? ( + + ) : ( + + ) + ) : status ? ( ) : ( - ) - ) : status ? ( - - ) : ( + )} + + - )} - - - - - - + + + +
); } } @@ -374,6 +393,7 @@ export default connect( (state) => ({ profile: state.user.status, userProductList: state.userProduct.list, + config: state.publicApi.config, // status: state.user.status, }), { getProfile: user.getProfile, getUserProductList: userProduct.list } diff --git a/src/QRScan/LastQr/index.js b/src/QRScan/LastQr/index.js index 3615974..06002dd 100644 --- a/src/QRScan/LastQr/index.js +++ b/src/QRScan/LastQr/index.js @@ -4,18 +4,18 @@ import { Link } from "react-router-dom"; import "./index.scss"; const grades = [ - "اول", - "دوم", - "سوم", - "چهارم", - "پنجم", - "ششم", - "هفتم", - "هشتم", - "نهم", - "دهم", - "یازدهم", - "دوازدهم", + window.t("اول"), + window.t("دوم"), + window.t("سوم"), + window.t("چهارم"), + window.t("پنجم"), + window.t("ششم"), + window.t("هفتم"), + window.t("هشتم"), + window.t("نهم"), + window.t("دهم"), + window.t("یازدهم"), + window.t("دوازدهم"), ]; export default function LastQR(props) { diff --git a/src/Redux/proxy.js b/src/Redux/proxy.js index a5f2843..aff76d1 100644 --- a/src/Redux/proxy.js +++ b/src/Redux/proxy.js @@ -9,7 +9,8 @@ const Axios = axios.create({ withCredentials: true, validateStatus: null, baseURL: baseUrl, - //headers: access ? { Authorization: `Bearer ${access}` } : {}, + + headers: { lang: window.lang }, }); class Proxy { get = async (url, params, opt = {}, data) => diff --git a/src/Redux/reducers/activation.js b/src/Redux/reducers/activation.js index 8164548..31ee33c 100644 --- a/src/Redux/reducers/activation.js +++ b/src/Redux/reducers/activation.js @@ -14,10 +14,10 @@ export default function activation(state = initialState, action) { case "activation/update": return { ...state, loading: false, error: null }; case "activation/updateStatus": - toast.success("کتاب شما با موفقیت فعال گردید."); + toast.success(window.t("کتاب شما با موفقیت فعال گردید.")); return { ...state, loading: false, error: null, updateStatus: true }; case "activation/add": - toast.success("کتاب شما با موفقیت فعال گردید."); + toast.success(window.t("کتاب شما با موفقیت فعال گردید.")); return { ...state, loading: false, error: null }; case "activation/delete": return { ...state, loading: false, error: null }; diff --git a/src/Redux/reducers/book.js b/src/Redux/reducers/book.js index 55ca41c..a901796 100644 --- a/src/Redux/reducers/book.js +++ b/src/Redux/reducers/book.js @@ -9,23 +9,23 @@ const initialState = { filterResult: [], subjects: [], levels: [], - sortFilters: ["مرتب سازی", "محبوب ترین", "جدیدترین"], + sortFilters: [window.t("مرتب سازی"), window.t("محبوب ترین"), window.t("جدیدترین")], }; const grades = [ - "پیش دبستان", - "اول", - "دوم", - "سوم", - "چهارم", - "پنجم", - "ششم", - "هفتم", - "هشتم", - "نهم", - "دهم", - "یازدهم", - "دوازدهم", + window.t("پیش دبستان"), + window.t("اول"), + window.t("دوم"), + window.t("سوم"), + window.t("چهارم"), + window.t("پنجم"), + window.t("ششم"), + window.t("هفتم"), + window.t("هشتم"), + window.t("نهم"), + window.t("دهم"), + window.t("یازدهم"), + window.t("دوازدهم"), ]; export default function book(state = initialState, action) { let { type, data } = action; @@ -35,14 +35,14 @@ export default function book(state = initialState, action) { (item, index) => item.name ); if (window.innerWidth < 1000) { - itemsSubject.unshift("نام کتاب"); + itemsSubject.unshift(window.t("نام کتاب")); } let itemsLevel = (Array.isArray(data) ? data : []) .map((item) => item.gradeId * 1) .sort((a, b) => a - b) .map((e) => grades[e]); if (window.innerWidth < 1000) { - itemsLevel.unshift("پایه تحصیلی"); + itemsLevel.unshift(window.t(window.t("پایه تحصیلی"))); } return { ...state, @@ -103,7 +103,7 @@ export default function book(state = initialState, action) { ? bySubjectFilter.filter((item1) => item1.name.indexOf(search) !== -1) : bySubjectFilter; - if (sort === "گران ترین") { + if (sort === window.t("گران ترین")) { finalSort = bySearchFilter.sort((item1, item2) => { return item1.product[0].price - item2.product[0].price; }); diff --git a/src/Redux/reducers/comment.js b/src/Redux/reducers/comment.js index 0926b89..3bb47d3 100644 --- a/src/Redux/reducers/comment.js +++ b/src/Redux/reducers/comment.js @@ -14,7 +14,7 @@ export default function comment(state = initialState, action) { case "comment/update": return { ...state, loading: false, error: null }; case "comment/add": - toast.success("ثبت درخواست با موفقیت انجام شد"); + toast.success(window.t("ثبت درخواست با موفقیت انجام شد")); return { ...state, loading: false, error: null }; case "comment/delete": return { ...state, loading: false, error: null }; diff --git a/src/Redux/reducers/public.js b/src/Redux/reducers/public.js index e8ab89c..da9bda6 100644 --- a/src/Redux/reducers/public.js +++ b/src/Redux/reducers/public.js @@ -13,32 +13,37 @@ const initialState = { blog: null, province: [], city: [], + config: { + direction: "ltr", + }, }; const grades = [ - "پیش دبستان", - "اول", - "دوم", - "سوم", - "چهارم", - "پنجم", - "ششم", - "هفتم", - "هشتم", - "نهم", - "دهم", - "یازدهم", - "دوازدهم", + window.t("پیش دبستان"), + window.t("اول"), + window.t("دوم"), + window.t("سوم"), + window.t("چهارم"), + window.t("پنجم"), + window.t("ششم"), + window.t("هفتم"), + window.t("هشتم"), + window.t("نهم"), + window.t("دهم"), + window.t("یازدهم"), + window.t("دوازدهم"), ]; export default function publicApi(state = initialState, action) { let { type, data } = action; switch (type) { + case "public/direction": + return { ...state, config: { [data.name]: data.value } }; case "public/homePage": let itemsLevel; // if (window.innerWidth > 1000) { const jadidTarin = data?.filter( - (item) => item.title === "کتاب‌های دانوین" + (item) => item.title === window.t("کتاب‌های دانوین") ); itemsLevel = jadidTarin && jadidTarin[0] && jadidTarin[0].data @@ -47,7 +52,7 @@ export default function publicApi(state = initialState, action) { .sort((a, b) => a - b) .map((e) => grades[e]) : []; - itemsLevel.unshift("پایه تحصیلی"); + itemsLevel.unshift(window.t(window.t("پایه تحصیلی"))); // } return { @@ -64,7 +69,7 @@ export default function publicApi(state = initialState, action) { case "public/filter": const realList = state.newProducts.length === 0 - ? state.homeData.filter((item) => item.title === "کتاب‌های دانوین")[0] + ? state.homeData.filter((item) => item.title === window.t("کتاب‌های دانوین"))[0] .data : state.newProducts; if (state.newProducts.length === 0) { @@ -83,7 +88,7 @@ export default function publicApi(state = initialState, action) { loading: false, error: null, homeData: state.homeData.map((item) => - item.title === "کتاب‌های دانوین" + item.title === window.t("کتاب‌های دانوین") ? { ...item, data: state.newProducts } : { ...item } ), @@ -119,7 +124,7 @@ export default function publicApi(state = initialState, action) { const bySearchFilter = search ? byLevelFilter.filter((item1) => item1.name.indexOf(search) !== -1) : byLevelFilter; - // if (sort === "گران ترین") { + // if (sort === window.t("گران ترین")) { // finalSort = bySearchFilter.sort((item1, item2) => { // return item1.product[0].price - item2.product[0].price; // }); @@ -132,7 +137,7 @@ export default function publicApi(state = initialState, action) { loading: false, error: null, homeData: state.homeData.map((item) => - item.title === "کتاب‌های دانوین" + item.title === window.t("کتاب‌های دانوین") ? { ...item, data: bySearchFilter } : { ...item } ), diff --git a/src/Redux/reducers/transport.js b/src/Redux/reducers/transport.js index 5d80f66..7cf48c6 100644 --- a/src/Redux/reducers/transport.js +++ b/src/Redux/reducers/transport.js @@ -17,7 +17,7 @@ export default function transport(state = initialState, action) { case "transport/add": return { ...state, loading: false, error: null }; case "transport/setTransport": - toast.success("روش ارسال با موفقیت تغییر یافت!"); + toast.success(window.t("روش ارسال با موفقیت تغییر یافت!")); return { ...state, loading: false, error: null }; case "transport/delete": return { ...state, loading: false, error: null }; diff --git a/src/Redux/reducers/user.js b/src/Redux/reducers/user.js index f4d0d53..bbdd7e2 100644 --- a/src/Redux/reducers/user.js +++ b/src/Redux/reducers/user.js @@ -17,11 +17,11 @@ export default function user(state = initialState, action) { case "user/register": case "user/switchRole": case "public/sendOTP": - toast.success("کد به شماره شما ارسال گردید."); + toast.success(window.t("کد به شماره شما ارسال گردید.")); return { ...state, loading: false, status: data.profile, error: null }; case "user/otp/login": // window.location = "https://dnvn.ir/?" + Math.random(); - toast.success("به دانوین خوش آمدید."); + toast.success(window.t("به دانوین خوش آمدید.")); return { ...state, diff --git a/src/Redux/reducers/userFactor.js b/src/Redux/reducers/userFactor.js index 19d67e5..0c73b37 100644 --- a/src/Redux/reducers/userFactor.js +++ b/src/Redux/reducers/userFactor.js @@ -17,10 +17,10 @@ export default function userFactor(state = initialState, action) { case "userFactor/info": return { ...state, loading: false, info: data, error: null }; case "userFactor/update": - toast.success("درخواست شما با موفقیت انجام شد."); + toast.success(window.t("درخواست شما با موفقیت انجام شد.")); return { ...state, loading: false, error: null }; case "userFactor/add": - toast.success("درخواست شما با موفقیت انجام شد."); + toast.success(window.t("درخواست شما با موفقیت انجام شد.")); return { ...state, loading: false, error: null, sum: data.payPrice }; case "userFactor/deleteUserOffCode": return { ...state, loading: false, error: null }; diff --git a/src/Redux/reducers/userProduct.js b/src/Redux/reducers/userProduct.js index 0a6b577..5ca8fbb 100644 --- a/src/Redux/reducers/userProduct.js +++ b/src/Redux/reducers/userProduct.js @@ -37,7 +37,7 @@ export default function userProduct(state = initialState, action) { return { ...state, loading: false, error: null }; case "userProduct/add": if (window.location.pathname.indexOf("products") !== -1) { - toast.success("درخواست شما با موفقیت انجام شد."); + toast.success(window.t("درخواست شما با موفقیت انجام شد.")); } return { ...state, loading: false, error: null, sum: data.payPrice }; case "userProduct/delete": diff --git a/src/views/AR/Item/index.js b/src/views/AR/Item/index.js index d3040cf..ce7f14e 100644 --- a/src/views/AR/Item/index.js +++ b/src/views/AR/Item/index.js @@ -1,19 +1,19 @@ import React, { Component } from "react"; const grades = [ - "پیش دبستان", - "اول", - "دوم", - "سوم", - "چهارم", - "پنجم", - "ششم", - "هفتم", - "هشتم", - "نهم", - "دهم", - "یازدهم", - "دوازدهم", + window.t("پیش دبستان"), + window.t("اول"), + window.t("دوم"), + window.t("سوم"), + window.t("چهارم"), + window.t("پنجم"), + window.t("ششم"), + window.t("هفتم"), + window.t("هشتم"), + window.t("نهم"), + window.t("دهم"), + window.t("یازدهم"), + window.t("دوازدهم"), ]; export default class Item extends Component { render() { diff --git a/src/views/About/index.js b/src/views/About/index.js index a89aa48..659e22c 100644 --- a/src/views/About/index.js +++ b/src/views/About/index.js @@ -28,38 +28,38 @@ const fontSize = { export default class About extends Component { state = { first: { - title: "درباره ما", + title: window.t("درباره ما"), text: "ما در دانوین با هدف ایجاد زیرساخت تعاملی و آموزشی با تولید محتوایی جذاب بصورت کتاب با کمک پلتفرم دانوین، قصد تغییراتی بنیادین در نظام آموزش و پرورش کشور داریم. دانوین پلتفرمی شامل کتاب، محتوای الکترونیکی، رویه های آموزشی، پشتیبانی علمی و نرم افزار ارائه خدمات با رویکرد مخاطب محور است.", }, fury: { - title: " ماموریت ما در دانوین چیست ؟", + title: "ماموریت ما در دانوین چیست ؟", text: "ارتقای سطح کیفیت و جذابیت آموزش در مدارس بصورت سازگار با نظام رسمی و کنونی آ.پ در راستای نیل به اهداف سند تحول", }, keywords: { - title: "کیفیت آموزش را بالا میبریم", + title: window.t("کیفیت آموزش را بالا میبریم"), list: [ - "شایستگی در ایجاد فهم علمی در موضوع هدف و در موضوعات وابسته به آن", - "شایستگی در ایجاد زمینه ی معرفتی- ارزشی موثر برای محتواهای آموزشی", + window.t("شایستگی در ایجاد فهم علمی در موضوع هدف و در موضوعات وابسته به آن"), + window.t("شایستگی در ایجاد زمینه ی معرفتی- ارزشی موثر برای محتواهای آموزشی"), ], }, keywords2: { - title: "جذابیت کلید بهبود یادگیری", + title: window.t("جذابیت کلید بهبود یادگیری"), list: [ - "بکارگیری عوامل متنوع سازگار با ارزشها برای علاقمندی دانش آموز و معلم به استفاده از محتوای دانوین", - "سازگار با نظام آ.پ : بطوریکه بتواند در مدارس فعلی مورد استفاده قرار گرفته و با نظام رسمی فعلی در تضاد نباشد", - "در راستای نیل به سند تحول : تلاش برای نزدیکی گام به گام به آرمانها و اهداف سند تحول", + window.t("بکارگیری عوامل متنوع سازگار با ارزشها برای علاقمندی دانش آموز و معلم به استفاده از محتوای دانوین"), + window.t("سازگار با نظام آ.پ : بطوریکه بتواند در مدارس فعلی مورد استفاده قرار گرفته و با نظام رسمی فعلی در تضاد نباشد"), + window.t("در راستای نیل به سند تحول : تلاش برای نزدیکی گام به گام به آرمانها و اهداف سند تحول"), ], }, advantages: { title: " مزیت رقابتی دانوین", list: [ - "بکارگیری بروز ترین تکنولوژی های تولید و مدیریت محتوای آموزشی-تربیتی (مانند واقعیت افزوده)", - "دارای رویکرد آموزش سرگرم کننده ", - "بستر تعاملی و اشتراک گذاری فیلم و محتوای آموزشی", - "رویکرد معرفتی-ارزشی", - "ویدئو های منحصر بفرد", - "متن گفتگو محور ، روایی ، قابل فهم ،جذاب و سرگرم کننده", + window.t("بکارگیری بروز ترین تکنولوژی های تولید و مدیریت محتوای آموزشی-تربیتی (مانند واقعیت افزوده)"), + window.t("دارای رویکرد آموزش سرگرم کننده "), + window.t("بستر تعاملی و اشتراک گذاری فیلم و محتوای آموزشی"), + window.t("رویکرد معرفتی-ارزشی"), + window.t("ویدئو های منحصر بفرد"), + window.t("متن گفتگو محور ، روایی ، قابل فهم ،جذاب و سرگرم کننده"), ], }, }; @@ -138,19 +138,15 @@ export default class About extends Component {
- عکس + {/* {this.props.absoluteImages.map((item, i) => ( - عکس + ))} */}
- {"عکس"} +

@@ -201,7 +197,7 @@ export default class About extends Component {

{this.props.absoluteImages.map((item, i) => ( - عکس + ))}
@@ -219,7 +215,7 @@ export default class About extends Component {
- {"عکس"} +
diff --git a/src/views/Activation/index.js b/src/views/Activation/index.js index 9be59d4..2de3eef 100644 --- a/src/views/Activation/index.js +++ b/src/views/Activation/index.js @@ -44,7 +44,7 @@ class Activation extends Component {
- فعال سازی کتاب +

فعال سازی کتاب الکترونیک

@@ -100,7 +100,7 @@ class Activation extends Component {
- فعال سازی کتاب +

فعال سازی کتاب الکترونیک

diff --git a/src/views/Auth/Login/Cellphone/index.js b/src/views/Auth/Login/Cellphone/index.js index e3ed02f..d0cf3e4 100644 --- a/src/views/Auth/Login/Cellphone/index.js +++ b/src/views/Auth/Login/Cellphone/index.js @@ -48,7 +48,7 @@ export default class Cellphone extends Component { } > 09 - پرچم + window.t("پرچم") عکس
@@ -119,7 +119,7 @@ export default class Cellphone extends Component { } > 09 - پرچم + window.t("پرچم") {/* عکس */}
diff --git a/src/views/Auth/Profile/Birthdate/index.js b/src/views/Auth/Profile/Birthdate/index.js index 5d1720f..5c0731c 100644 --- a/src/views/Auth/Profile/Birthdate/index.js +++ b/src/views/Auth/Profile/Birthdate/index.js @@ -31,7 +31,7 @@ export default function Birthdate(props) { {parent.state[name].name || - "گواهی تدریس ثبت شده و درحال بررسی می باشد"} + window.t("گواهی تدریس ثبت شده و درحال بررسی می باشد")} )} @@ -100,7 +100,7 @@ export default function Document(props) { }} > {parent.state[name].name || - "گواهی تدریس ثبت شده و درحال بررسی می باشد"} + window.t("گواهی تدریس ثبت شده و درحال بررسی می باشد")} )} diff --git a/src/views/Auth/Profile/Upload/index.js b/src/views/Auth/Profile/Upload/index.js index 56ef465..caed141 100644 --- a/src/views/Auth/Profile/Upload/index.js +++ b/src/views/Auth/Profile/Upload/index.js @@ -53,7 +53,7 @@ export default function Upload(props) { ? URL.createObjectURL(parent.state.file) : window.baseURL + "file/" + parent.state.file } - alt={"کاربر"} + alt={window.t("کاربر")} /> )} ; const grades = [ - "پیش دبستان", - "اول", - "دوم", - "سوم", - "چهارم", - "پنجم", - "ششم", - "هفتم", - "هشتم", - "نهم", - "دهم", - "یازدهم", - "دوازدهم", + window.t("پیش دبستان"), + window.t("اول"), + window.t("دوم"), + window.t("سوم"), + window.t("چهارم"), + window.t("پنجم"), + window.t("ششم"), + window.t("هفتم"), + window.t("هشتم"), + window.t("نهم"), + window.t("دهم"), + window.t("یازدهم"), + window.t("دوازدهم"), ]; const { profile } = this.props; return ( @@ -199,7 +199,7 @@ class Profile extends Component {
@@ -273,7 +273,7 @@ class Profile extends Component { parent={this} options={grades} name="gradeIds" - label={"پایه تحصیلی"} + label={window.t(window.t("پایه تحصیلی"))} selectedOptions={this.state.gradeIds} />
@@ -284,27 +284,27 @@ class Profile extends Component { parent={this} options={grades} name="gradeIds" - label={"پایه تحصیلی"} + label={window.t(window.t("پایه تحصیلی"))} selectedOptions={this.state.gradeIds} />
) : null} - {this.state.status === "دانش آموز" && + {this.state.status === window.t("دانش آموز") && this.state.gradeIds > 9 ? (
@@ -351,7 +351,7 @@ class Profile extends Component { @@ -364,7 +364,7 @@ class Profile extends Component {