From d610e9521fdd0f77afef55f5469125b481827528 Mon Sep 17 00:00:00 2001 From: Yusuf-YENICERI Date: Fri, 16 Feb 2024 13:59:17 +0300 Subject: [PATCH] =?UTF-8?q?B=C4=B0SM=C4=B0LLAH=C4=B0RRAHMAN=C4=B0RRAH?= =?UTF-8?q?=C4=B0M?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit read feature add, tests arent done yet --- src/backend/APIs/firebase_api/index.js | 34 +- src/backend/database.js | 8 + src/backend/datas/dataFormat.js | 415 +++++++++-------- src/components/cuz/Cuzler/QuestionElements.js | 194 ++++---- src/components/cuz/Cuzler/index.js | 245 ++++++---- .../cuz/IsReadDialog/isReadDialog.tsx | 73 +++ src/components/cuz/IsReadDialog/styles.ts | 47 ++ src/features/isReadDialogAlert/index.js | 22 + .../isReadDialogAlertSlice.ts | 61 +++ src/redux/store.js | 36 -- src/redux/store.ts | 35 ++ src/strings/Arabic.js | 405 +++++++++-------- src/strings/Turkish.js | 414 ++++++++--------- src/strings/english.js | 417 +++++++++--------- 14 files changed, 1381 insertions(+), 1025 deletions(-) create mode 100644 src/components/cuz/IsReadDialog/isReadDialog.tsx create mode 100644 src/components/cuz/IsReadDialog/styles.ts create mode 100644 src/features/isReadDialogAlert/index.js create mode 100644 src/features/isReadDialogAlert/isReadDialogAlertSlice.ts delete mode 100644 src/redux/store.js create mode 100644 src/redux/store.ts diff --git a/src/backend/APIs/firebase_api/index.js b/src/backend/APIs/firebase_api/index.js index 9e6b07d..e2a6b06 100644 --- a/src/backend/APIs/firebase_api/index.js +++ b/src/backend/APIs/firebase_api/index.js @@ -52,7 +52,7 @@ class FirebaseAPI{ hatimSiraBelirle = (no) => { let hatimSira = 1; - switch(true){ + switch (true) { case no < 11: break; case no < 21: @@ -62,8 +62,11 @@ class FirebaseAPI{ hatimSira = 3; break; } - - return hatimSira; + + return { + sira: hatimSira, + subSira: no - ((hatimSira - 1) * 10 + 1), + }; } extractKey = () => { @@ -367,7 +370,6 @@ class FirebaseAPI{ cuzAl = async (isim, no, subKey, alindi = true, makeNewHatim = false, writeTotalReadParts = false) => { let hatimKey = this.extractKey().replace('/',''); - let sira = this.hatimSiraBelirle(no); let ownerId = LocDb.ref(`Hatim/hatimKeys/${hatimKey}/${subKey}/ownerId`).get() @@ -664,6 +666,30 @@ class FirebaseAPI{ } + partRead = async ({subKey, partNo}) => { + try { + const {sira, subSira} = this.hatimSiraBelirle (partNo); + + await this.db.ref(`hatim/${this.extractKey()}/${subKey}/${sira}/cevaplar/${subSira}/isRead`).set(true); + + return {data: "Alhamdulillah", error: undefined} + } catch (error) { + return {data: undefined, error: error}; + } + } + + partNotRead = async ({subKey, partNo}) => { + try { + const {sira, subSira} = this.hatimSiraBelirle (partNo); + + await this.db.ref(`hatim/${this.extractKey()}/${subKey}/${sira}/cevaplar/${subSira}/isRead`).set(false); + + return {data: "Alhamdulillah", error: undefined} + } catch (error) { + return {data: undefined, error: error}; + } + } + } diff --git a/src/backend/database.js b/src/backend/database.js index a598ab2..8c9835f 100644 --- a/src/backend/database.js +++ b/src/backend/database.js @@ -196,6 +196,14 @@ export class Database { getTitleAndDescription = async ({subKey}) => { return await this.api.getTitleAndDescription ({subKey}); }; + + partRead = async ({subKey, partNo}) => { + return await this.api.partRead ({subKey, partNo}); + }; + + partNotRead = async ({subKey, partNo}) => { + return await this.api.partNotRead ({subKey, partNo}); + }; } export default Database; diff --git a/src/backend/datas/dataFormat.js b/src/backend/datas/dataFormat.js index b574a44..942493f 100644 --- a/src/backend/datas/dataFormat.js +++ b/src/backend/datas/dataFormat.js @@ -1,214 +1,207 @@ // BİSMİLLAHİRRAHMANİRRAHİM - - export const dataFormat = { - 1:{ - soru:'İstediğiniz cüze tıklayın ..', - cevaplar:[ - { - cevap:'1', - isim:'', - alindi: false, - - }, - { - cevap:'2', - isim:'', - alindi: false, - - }, - { - cevap:'3', - isim:'', - alindi: false, - - }, - { - cevap:'4', - isim:'', - alindi: false, - - }, - { - cevap:'5', - isim:'', - alindi: false, - - }, - { - cevap:'6', - isim:'', - alindi: false, - - }, - { - cevap:'7', - isim:'', - alindi: false, - - }, - { - cevap:'8', - isim:'', - alindi: false, - - }, - { - cevap:'9', - isim:'', - alindi: false, - - }, - { - cevap:'10', - isim:'', - alindi: false, - - }, - - - - ] - }, - - 2:{ - soru:'', - cevaplar:[ - { - cevap:'11', - isim:'', - alindi: false, - - }, - { - cevap:'12', - isim:'', - alindi: false, - - }, - { - cevap:'13', - isim:'', - alindi: false, - - }, - { - cevap:'14', - isim:'', - alindi: false, - - }, - { - cevap:'15', - kisi:'', - isim:'', - alindi: false, - - } - ,{ - cevap:'16', - isim:'', - alindi: false, - - }, - { - cevap:'17', - isim:'', - alindi: false, - - }, - { - cevap:'18', - isim:'', - alindi: false, - - }, - { - cevap:'19', - isim:'', - alindi: false, - - }, - { - cevap:'20', - isim:'', - alindi: false, - - }, - ] - }, - - - 3:{ - soru:'', - cevaplar:[ - { - cevap:'21', - isim:'', - alindi: false, - - }, - { - cevap:'22', - isim:'', - alindi: false, - - }, - { - cevap:'23', - isim:'', - alindi: false, - - }, - { - cevap:'24', - isim:'', - alindi: false, - - }, - { - cevap:'25', - isim:'', - alindi: false, - - }, - { - cevap:'26', - isim:'', - alindi: false, - - }, - { - cevap:'27', - isim:'', - alindi: false, - - }, - { - cevap:'28', - isim:'', - alindi: false, - - }, - { - cevap:'29', - isim:'', - alindi: false, - - }, - { - cevap:'30', - isim:'', - alindi: false, - - }, - ] - }, - bitti: false, - baslik: 'ayarlanmadı', - description: "", - bitisTarihi: "", - isRamazan: false, - -} \ No newline at end of file + 1: { + soru: 'İstediğiniz cüze tıklayın ..', + cevaplar: [ + { + cevap: '1', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '2', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '3', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '4', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '5', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '6', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '7', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '8', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '9', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '10', + isim: '', + alindi: false, + isRead: false, + }, + ], + }, + + 2: { + soru: '', + cevaplar: [ + { + cevap: '11', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '12', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '13', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '14', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '15', + kisi: '', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '16', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '17', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '18', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '19', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '20', + isim: '', + alindi: false, + isRead: false, + }, + ], + }, + + 3: { + soru: '', + cevaplar: [ + { + cevap: '21', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '22', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '23', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '24', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '25', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '26', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '27', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '28', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '29', + isim: '', + alindi: false, + isRead: false, + }, + { + cevap: '30', + isim: '', + alindi: false, + isRead: false, + }, + ], + }, + bitti: false, + baslik: 'ayarlanmadı', + description: '', + bitisTarihi: '', + isRamazan: false, +}; diff --git a/src/components/cuz/Cuzler/QuestionElements.js b/src/components/cuz/Cuzler/QuestionElements.js index b4dbb15..e9bd802 100644 --- a/src/components/cuz/Cuzler/QuestionElements.js +++ b/src/components/cuz/Cuzler/QuestionElements.js @@ -2,13 +2,10 @@ // ALLAHU EKBER // ELHAMDÜLİLLAH - - import styled from 'styled-components'; -import { Link as LinkR } from 'react-router-dom'; -import { Link as LinkS } from 'react-scroll'; -import { Add, ChevronDown, ChevronUp } from "@styled-icons/ionicons-outline"; - +import {Link as LinkR} from 'react-router-dom'; +import {Link as LinkS} from 'react-scroll'; +import {Add, ChevronDown, ChevronUp} from '@styled-icons/ionicons-outline'; export const QuestionContainer = styled.div` background-color: #91ffbb; @@ -21,25 +18,25 @@ export const QuestionContainer = styled.div` `; const displayDestroyer = (attribute, milliseconds) => { - let promise = new Promise((resolve, reject) => { - setTimeout(()=>{ - resolve(attribute); - }, milliseconds); - }); - return promise; -} + let promise = new Promise ((resolve, reject) => { + setTimeout (() => { + resolve (attribute); + }, milliseconds); + }); + return promise; +}; export const HatimContainer = styled.div` transform-origin: top; margin-top: 0px; - transform: ${({visibility}) => !visibility ? "scaleY(0)" : "scaleY(1)"}; + transform: ${({visibility}) => (!visibility ? 'scaleY(0)' : 'scaleY(1)')}; height: ${({visibility}) => { - if(!visibility){ - return "0"; - }else{ - return "100%"; - } - }}; + if (!visibility) { + return '0'; + } else { + return '100%'; + } + }}; transition: height 0ms 1s ease, transform 1s 0ms ease; overflow: hidden; `; @@ -49,28 +46,28 @@ export const QuestionInnerContainer = styled.div` @media screen and (max-width: 480px){ } -` +`; export const QuestionItem = styled.div` padding: 30px; - font-size: ${({fontSize})=>fontSize}; + font-size: ${({fontSize}) => fontSize}; text-align: center; position: relative; color: #000000; @media screen and (max-width: 480px){ - font-size:${({fontSize})=>fontSize}; + font-size:${({fontSize}) => fontSize}; padding-bottom: 0px; } -` +`; export const CuzlerFinishDate = styled.div` margin-top: 20px; margin-right: 50px; margin-left: 50px; - font-size: ${({fontSize})=>fontSize}; + font-size: ${({fontSize}) => fontSize}; text-align: center; position: relative; color: #000000; @@ -78,30 +75,30 @@ export const CuzlerFinishDate = styled.div` @media screen and (max-width: 480px){ - font-size:${({fontSize})=>fontSize}; + font-size:${({fontSize}) => fontSize}; padding-bottom: 0px; margin-bottom: 30px; } -` +`; -export const BackContainer=styled.div` +export const BackContainer = styled.div` padding-left: 50px; padding-top: 5px; -` +`; -export const BackButtonIcon=styled.img` +export const BackButtonIcon = styled.img` cursor: pointer; - height: ${({hide})=>(hide ? '30px' : '0')}; -` + height: ${({hide}) => (hide ? '30px' : '0')}; +`; export const RespondContainer = styled.div` - visibility: ${({visibility}) => (visibility ? "visible" : "hidden")}; + visibility: ${({visibility}) => (visibility ? 'visible' : 'hidden')}; background-color: #91ffbb; @media screen and (max-width: 480px){ } -` +`; export const RespondOuterContainer = styled.div` padding: 10px; @@ -114,7 +111,7 @@ export const RespondOuterContainer = styled.div` @media screen and (max-width: 480px){ } -` +`; export const RespondInnerContainer = styled.div` padding: 50px; @@ -148,22 +145,28 @@ export const RespondInnerContainer = styled.div` grid-template-columns: auto auto auto auto auto auto ; grid-auto-flow: row; } -` +`; + +export const ResponseItemContainer = styled.div` + display: flex; + flex-direction: column; +`; + export const ResponseItem = styled.div` padding: 20px; margin: 10px; height: 90px; border-radius: 10px; - background-color: ${({bgColor}) => (bgColor ? "#04d654" : "#FFBF17")} ; + background-color: ${({bgColor}) => (bgColor ? '#04d654' : '#FFBF17')} ; /* #04d654; */ display: flex; flex-direction: column; text-align:center; justify-content: center; width: 105px; - box-shadow: -1px 24px 29px -8px rgba(0,0,0,1); --webkit-box-shadow: -1px 24px 29px -8px rgba(0,0,0,1); --moz-box-shadow: -1px 24px 29px -8px rgba(0,0,0,1); + box-shadow: -1px 20px 29px -8px rgba(0,0,0,1); +-webkit-box-shadow: -1px 20px 29px -8px rgba(0,0,0,1); +-moz-box-shadow: -1px 20px 29px -8px rgba(0,0,0,1); transition: 0.5s all ease-in; cursor: pointer; @@ -178,27 +181,54 @@ transition: 0.5s all ease-in; transform: scale(1.1); transition: 0.5s all ease-in; } -` +`; export const ResponseLogo = styled.img` height: ${({exist}) => (exist ? '50px' : '0px')}; src: ${({isSrc}) => isSrc}; -` +`; export const ResponseText = styled.div` overflow-wrap: break-word; font-size: 1rem; padding: 3px; -color:${({color})=>(color ? "#fff" : "#000")}; -` +color:${({color}) => (color ? '#fff' : '#000')}; +`; + +export const IsReadItem = styled.div` + background-color: ${({bgColor}) => (bgColor ? '#04d654' : '#FFBF17')} ; + text-align: center; + padding: 3px; + margin: 10px; + margin-top: 0px; + border-radius: 5px; + width: 105px; + box-shadow: -1px 15px 29px -8px rgba(0,0,0,1); + -webkit-box-shadow: -1px 15px 29px -8px rgba(0,0,0,1); + -moz-box-shadow: -1px 15px 29px -8px rgba(0,0,0,1); + transition: 0.5s all ease-in; + + @media screen and (max-width: 480px){ + margin-top: 10px; + } + + &:hover{ + transform: scale(1.1); + transition: 0.5s all ease-in; + } +`; + +export const IsReadText = styled.div` + font-size: 0.9em; +`; export const Linker = styled.a` color: black; -` +`; export const LoadingContainer = styled.div` - visibility: ${({visibility})=>(visibility ? "visible" : "hidden")}; + visibility: ${({visibility}) => (visibility ? 'visible' : 'hidden')}; color: #00569c; position: fixed; flex:1; @@ -223,7 +253,7 @@ export const LoadingItem = styled.p` `; export const DialogBox = styled.div` -visibility: ${({visibility}) => (visibility ? "visible" : "hidden")}; +visibility: ${({visibility}) => (visibility ? 'visible' : 'hidden')}; height: 300px; width: 300px; position: fixed; @@ -246,7 +276,7 @@ justify-content: space-evenly; @media screen and (max-width: 480px){ margin-left: 8%; } -` +`; export const DialogContainer = styled.div` display:flex; @@ -257,25 +287,25 @@ align-items:center; export const DialogText = styled.div` color:#000; text-align:center; -font-size: ${({fontSize}) => (fontSize)}; -` +font-size: ${({fontSize}) => fontSize}; +`; export const DialogLink = styled.div` color:#000; text-align:center; background-color: #91ffbb; -font-size: ${({fontSize}) => (fontSize)}; +font-size: ${({fontSize}) => fontSize}; border-radius: 3px; -` +`; export const DialogIcon = styled.img` -width: ${({iconSize}) => (iconSize)}; -align-self: ${({alignEnd}) => (alignEnd ? "flex-end" : "")}; -` +width: ${({iconSize}) => iconSize}; +align-self: ${({alignEnd}) => (alignEnd ? 'flex-end' : '')}; +`; export const DialogInputBox = styled.input` -` +`; export const CopyContainer = styled.div` display:flex; @@ -302,16 +332,16 @@ z-index: 10; } -` +`; export const CopyItem = styled.p` font-size: 0.7rem; -` +`; export const CopyIcon = styled.img` -width: ${({iconSize}) => (iconSize)}; -align-self: ${({alignEnd}) => (alignEnd ? "flex-end" : "")}; -` +width: ${({iconSize}) => iconSize}; +align-self: ${({alignEnd}) => (alignEnd ? 'flex-end' : '')}; +`; export const ShareContainer = styled.div` flex-direction: column; @@ -339,19 +369,16 @@ padding: 8px; } -` +`; export const ShareItem = styled.p` font-size: 0.7rem; -` +`; export const ShareIcon = styled.img` -width: ${({iconSize}) => (iconSize)}; -align-self: ${({alignEnd}) => (alignEnd ? "flex-end" : "")}; -` - - - +width: ${({iconSize}) => iconSize}; +align-self: ${({alignEnd}) => (alignEnd ? 'flex-end' : '')}; +`; export const Nav = styled.nav` /* background-color: rgba(0,0,0, 0.7); */ @@ -374,7 +401,7 @@ export const Nav = styled.nav` /* @media screen and (max-width: 768px){ margin-top: 0; } */ -` +`; export const NavbarContainer = styled.div` display:flex; @@ -384,8 +411,8 @@ export const NavbarContainer = styled.div` width: 100%; padding: 0 24px; max-width: 1100px; -` -export const NavLogo = styled(LinkS)` +`; +export const NavLogo = styled (LinkS)` color: #fff; justify-self: flex-start; cursor: pointer; @@ -400,7 +427,7 @@ export const NavLogo = styled(LinkS)` font-size:1.1rem; } -` +`; export const MobileIcon = styled.div` display: none; @@ -416,7 +443,7 @@ export const MobileIcon = styled.div` cursor:pointer; } -` +`; export const NavMenu = styled.ul` display: flex; @@ -428,13 +455,13 @@ export const NavMenu = styled.ul` @media screen and (max-width: 768px){ display: none; } -` +`; export const NavItem = styled.li` height: 80px; -` +`; -export const NavLinks = styled(LinkS)` +export const NavLinks = styled (LinkS)` color: #fff; display: flex; align-items: center; @@ -446,7 +473,7 @@ export const NavLinks = styled(LinkS)` &.active{ border-bottom: 3px solid #01bf71; } -` +`; export const NavBtn = styled.nav` display:flex; align-items: center; @@ -455,7 +482,7 @@ export const NavBtn = styled.nav` @media screen and (max-width: 768px){ display: none; } -` +`; export const NavBtnLink = styled.div` border-radius: 50px; @@ -476,7 +503,7 @@ export const NavBtnLink = styled.div` background: #fff; color: #010606; } -` +`; export const NavIcon = styled.a` color: #01bf71; @@ -491,7 +518,7 @@ export const NavIcon = styled.a` &:hover{ transform: scale(1.02); } -` +`; export const YeniHatimWrapper = styled.div` display: flex; @@ -531,7 +558,7 @@ export const YeniHatimText = styled.span` `; -export const YeniHatimIcon = styled(Add)` +export const YeniHatimIcon = styled (Add)` width: 30px; color: #00ba47; @@ -571,10 +598,9 @@ export const ShowHatimIcon = styled.div` `; - export const CuzlerDescription = styled.div` font-size: 1.2rem; text-align: center; margin-right: 40px; margin-left: 40px; -`; \ No newline at end of file +`; diff --git a/src/components/cuz/Cuzler/index.js b/src/components/cuz/Cuzler/index.js index d830b15..1ad1416 100644 --- a/src/components/cuz/Cuzler/index.js +++ b/src/components/cuz/Cuzler/index.js @@ -13,7 +13,8 @@ LoadingContainer, LoadingItem, CopyContainer, CopyItem, CopyIcon, ShareContainer, ShareItem, ShareIcon, YeniHatimWrapper, YeniHatimContainer, YeniHatimButton, YeniHatimIcon, YeniHatimText, -HideHatimIcon, ShowHatimIcon, HatimContainer, HatimIconContainer, HatimIconText, CuzlerDescription, CuzlerFinishDate +HideHatimIcon, ShowHatimIcon, HatimContainer, HatimIconContainer, HatimIconText, CuzlerDescription, CuzlerFinishDate, +IsReadItem, IsReadText, ResponseItemContainer } from './QuestionElements'; import AskDialog from "../AskDialog"; import LanguageData from '../../../strings'; @@ -47,6 +48,8 @@ import AlertDialogCommon from '../../common/AlertDialogCommon' import Logger from '../../../backend/APIs/firebase_api/logger'; import { alertDialogActions } from '../../../features/alertDialog'; import { loadingOverlayActions } from 'features/loadingOverlay'; +import { isReadDialogAlertActions } from 'features/isReadDialogAlert'; +import IsReadDialog from '../IsReadDialog/isReadDialog' @@ -397,6 +400,9 @@ const Question = ({ toggle }) => { alertVisible={alertVisible} toggleAlertVisibility={toggleAlertVisibility}> + {/** Cüz okundu mu diye sor*/} + + {waitText} @@ -605,17 +611,63 @@ const Question = ({ toggle }) => { { - Language[1].cevaplar.map(({cevap, alindi, isim}) => ( + Language[1].cevaplar.map(({cevap, alindi, isim, isRead}) => ( + + { + + if (alindi) { + setActiveHatimSubKey(Language.subKey); + setActiveHatimSubKeyFull(isKhatmFull(Language)); + if(!Array.isArray(LocDb.ref("Hatim/adminToken").get())) + LocDb.ref("Hatim/adminToken").set([]) + let filtered = LocDb.ref("Hatim/adminToken").get().filter(x=>Object.keys(x)[0].toString() == extractKey().replace("/","").toString()); + if(filtered.length == 0){ + if(localStorage.getItem("cuz") == null) initializeLocalStorage("cuz"); + let localStorageCuzObj = JSON.parse(localStorage.getItem("cuz")); + if(localStorageCuzObj[Language.subKey] == null) + localStorageCuzObj[Language.subKey] = []; + if(!localStorageCuzObj[Language.subKey].includes(cevap)){ + return; + } - { - if (alindi) { + setTakePart(LanguageData["/cuz"].Button.TakeCancel) + setPartIptal(true); + //unnecessary, please fix it + setHatimNo(cevap); + setUsername(isim); + setHideDialogBox(true); + return; + }else{ + dispatch(cuzModalActions.changeSubKey(Language.subKey)) + dispatch(cuzModalActions.changeName(isim)) + dispatch(cuzModalActions.changeCuzNo(cevap)) + dispatch(cuzModalActions.toggleVisibility()) + dispatch(cuzModalActions.changePartsFull(isKhatmFull(Language))) + return; + } + + + } + + setTakePart(LanguageData["/cuz"].Button.Take); + setHatimNo(cevap); setActiveHatimSubKey(Language.subKey); - setActiveHatimSubKeyFull(isKhatmFull(Language)); - if(!Array.isArray(LocDb.ref("Hatim/adminToken").get())) - LocDb.ref("Hatim/adminToken").set([]) - let filtered = LocDb.ref("Hatim/adminToken").get().filter(x=>Object.keys(x)[0].toString() == extractKey().replace("/","").toString()); - if(filtered.length == 0){ + setHideDialogBox(true); + setUsername(''); + }}> + + + {cevap} + + + {isim} + + + + {alindi && { + setActiveHatimSubKey(Language.subKey); + dispatch(isReadDialogAlertActions.changeIsRead(isRead)) if(localStorage.getItem("cuz") == null) initializeLocalStorage("cuz"); let localStorageCuzObj = JSON.parse(localStorage.getItem("cuz")); if(localStorageCuzObj[Language.subKey] == null) @@ -623,46 +675,20 @@ const Question = ({ toggle }) => { if(!localStorageCuzObj[Language.subKey].includes(cevap)){ return; } - - - setTakePart(LanguageData["/cuz"].Button.TakeCancel) - setPartIptal(true); - //unnecessary, please fix it - setHatimNo(cevap); - setUsername(isim); - setHideDialogBox(true); - return; - }else{ - dispatch(cuzModalActions.changeSubKey(Language.subKey)) - dispatch(cuzModalActions.changeName(isim)) - dispatch(cuzModalActions.changeCuzNo(cevap)) - dispatch(cuzModalActions.toggleVisibility()) - dispatch(cuzModalActions.changePartsFull(isKhatmFull(Language))) - return; - } - - - } - - setTakePart(LanguageData["/cuz"].Button.Take); - setHatimNo(cevap); - setActiveHatimSubKey(Language.subKey); - setHideDialogBox(true); - setUsername(''); - }}> - - - {cevap} - - - {isim} - - + + dispatch(isReadDialogAlertActions.changePartNo(cevap)) + dispatch(isReadDialogAlertActions.changeSubKey(Language.subKey)) + + dispatch(isReadDialogAlertActions.toggleVisibility()) + }}> + {isRead ? LanguageData.IsReadDialog.Read : LanguageData.IsReadDialog.NotRead} + } + )) } { - Language[2].cevaplar.map(({cevap, alindi, isim}) => ( - + Language[2].cevaplar.map(({cevap, alindi, isim, isRead}) => ( + { if (alindi) { setActiveHatimSubKey(Language.subKey); @@ -714,22 +740,90 @@ const Question = ({ toggle }) => { {isim} + + + {alindi && { + setActiveHatimSubKey(Language.subKey); + dispatch(isReadDialogAlertActions.changeIsRead(isRead)) + if(localStorage.getItem("cuz") == null) initializeLocalStorage("cuz"); + let localStorageCuzObj = JSON.parse(localStorage.getItem("cuz")); + if(localStorageCuzObj[Language.subKey] == null) + localStorageCuzObj[Language.subKey] = []; + if(!localStorageCuzObj[Language.subKey].includes(cevap)){ + return; + } + + dispatch(isReadDialogAlertActions.changePartNo(cevap)) + dispatch(isReadDialogAlertActions.changeSubKey(Language.subKey)) + + dispatch(isReadDialogAlertActions.toggleVisibility()) + }}> + {isRead ? LanguageData.IsReadDialog.Read : LanguageData.IsReadDialog.NotRead} + } + )) } { - Language[3].cevaplar.map(({cevap, alindi, isim}) => ( + Language[3].cevaplar.map(({cevap, alindi, isim, isRead}) => ( + + + { + + if (alindi) { + setActiveHatimSubKey(Language.subKey); + setActiveHatimSubKeyFull(isKhatmFull(Language)); + if(!Array.isArray(LocDb.ref("Hatim/adminToken").get())) + LocDb.ref("Hatim/adminToken").set([]) + let filtered = LocDb.ref("Hatim/adminToken").get().filter(x=>Object.keys(x)[0].toString() == extractKey().replace("/","").toString()); + if(filtered.length == 0){ + + if(localStorage.getItem("cuz") == null) initializeLocalStorage("cuz"); + let localStorageCuzObj = JSON.parse(localStorage.getItem("cuz")); + if(localStorageCuzObj[Language.subKey] == null) + localStorageCuzObj[Language.subKey] = []; + if(!localStorageCuzObj[Language.subKey].includes(cevap)){ + return; + } - { + setTakePart(LanguageData["/cuz"].Button.TakeCancel) + setPartIptal(true); + //unnecessary, please fix it + setHatimNo(cevap); + setUsername(isim); + setHideDialogBox(true); + return; + }else{ + dispatch(cuzModalActions.changeSubKey(Language.subKey)) + dispatch(cuzModalActions.changeName(isim)) + dispatch(cuzModalActions.changeCuzNo(cevap)) + dispatch(cuzModalActions.toggleVisibility()) + dispatch(cuzModalActions.changePartsFull(isKhatmFull(Language))) + return; + } - if (alindi) { - setActiveHatimSubKey(Language.subKey); - setActiveHatimSubKeyFull(isKhatmFull(Language)); - if(!Array.isArray(LocDb.ref("Hatim/adminToken").get())) - LocDb.ref("Hatim/adminToken").set([]) - let filtered = LocDb.ref("Hatim/adminToken").get().filter(x=>Object.keys(x)[0].toString() == extractKey().replace("/","").toString()); - if(filtered.length == 0){ + } + + setTakePart(LanguageData["/cuz"].Button.Take); + setHatimNo(cevap); + setActiveHatimSubKey(Language.subKey); + setHideDialogBox(true); + setUsername(''); + }}> + + + {cevap} + + + {isim} + + + + + {alindi && { + setActiveHatimSubKey(Language.subKey); + dispatch(isReadDialogAlertActions.changeIsRead(isRead)) if(localStorage.getItem("cuz") == null) initializeLocalStorage("cuz"); let localStorageCuzObj = JSON.parse(localStorage.getItem("cuz")); if(localStorageCuzObj[Language.subKey] == null) @@ -737,41 +831,16 @@ const Question = ({ toggle }) => { if(!localStorageCuzObj[Language.subKey].includes(cevap)){ return; } + + dispatch(isReadDialogAlertActions.changePartNo(cevap)) + dispatch(isReadDialogAlertActions.changeSubKey(Language.subKey)) + dispatch(isReadDialogAlertActions.toggleVisibility()) + }}> + {isRead ? LanguageData.IsReadDialog.Read : LanguageData.IsReadDialog.NotRead} + } - setTakePart(LanguageData["/cuz"].Button.TakeCancel) - setPartIptal(true); - //unnecessary, please fix it - setHatimNo(cevap); - setUsername(isim); - setHideDialogBox(true); - return; - }else{ - dispatch(cuzModalActions.changeSubKey(Language.subKey)) - dispatch(cuzModalActions.changeName(isim)) - dispatch(cuzModalActions.changeCuzNo(cevap)) - dispatch(cuzModalActions.toggleVisibility()) - dispatch(cuzModalActions.changePartsFull(isKhatmFull(Language))) - return; - } - - - } - - setTakePart(LanguageData["/cuz"].Button.Take); - setHatimNo(cevap); - setActiveHatimSubKey(Language.subKey); - setHideDialogBox(true); - setUsername(''); - }}> - - - {cevap} - - - {isim} - - + )) } diff --git a/src/components/cuz/IsReadDialog/isReadDialog.tsx b/src/components/cuz/IsReadDialog/isReadDialog.tsx new file mode 100644 index 0000000..36a5745 --- /dev/null +++ b/src/components/cuz/IsReadDialog/isReadDialog.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import {Button, createStyles} from '@mantine/core'; +import { + YesNoButtonContainer, + YesNoButtonLayout, + YesNoContainer, + YesNoLayout, + YesNoText, + Container +} from './styles'; +import Language from '../../../strings'; +import { isReadDialogAlertActions, isReadDialogAlertFunctions, useIsReadDialogAlert } from 'features/isReadDialogAlert'; +import { useDispatch } from 'react-redux'; +import { cuzlerFunctionTriggerActions } from 'features/cuzlerFunctionTrigger'; +import { AppDispatch } from 'redux/store'; + +const useStyles = createStyles (theme => ({ + button: { + color: 'black', + }, +})); + +const isReadDialog = ({hatimlerVisibilities, toggleHatimlerVisibilities}:{hatimlerVisibilities: any, toggleHatimlerVisibilities: any}) => { + const {classes} = useStyles (); + const {visible, subKey, partNo, isRead} = useIsReadDialogAlert (); + const dispatch = useDispatch(); + + return ( + + + + + {'Cüzü okudunuz mu?'} + + + + + + + + + + + + + + ); +}; + +export default isReadDialog; diff --git a/src/components/cuz/IsReadDialog/styles.ts b/src/components/cuz/IsReadDialog/styles.ts new file mode 100644 index 0000000..fd78b01 --- /dev/null +++ b/src/components/cuz/IsReadDialog/styles.ts @@ -0,0 +1,47 @@ +import styled from 'styled-components'; + + + + + +export const Container =styled.div<{visible: boolean}>` + position: fixed; + z-index: ${({visible}) => (visible ? 10 : -1)}; + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +`; + +export const YesNoContainer = styled.div` + border: 1px solid #00ba47; + border-radius: 6px; + background-color: #00ba47; + width: 90%; + margin-bottom: 100px; +`; + +export const YesNoLayout = styled.div` + display: flex; + flex-direction: column; + align-items: center; + margin: 10px; +`; + +export const YesNoText = styled.p` + font-size: 1rem; + padding: 20px; + text-align: center; + +`; + +export const YesNoButtonContainer = styled.div` + padding: 20px; + width: 100%; +`; + +export const YesNoButtonLayout = styled.div` +display: flex; +justify-content: space-evenly; +`; diff --git a/src/features/isReadDialogAlert/index.js b/src/features/isReadDialogAlert/index.js new file mode 100644 index 0000000..a784fc2 --- /dev/null +++ b/src/features/isReadDialogAlert/index.js @@ -0,0 +1,22 @@ +import {useDispatch, useSelector} from 'react-redux'; +import isReadDialogAlertReducer, { + actions, + partRead, + partNotRead, +} from './isReadDialogAlertSlice'; + +const useIsReadDialogAlert = () => { + return useSelector (state => state.isReadDialogAlert); +}; +const isReadDialogAlertActions = actions; +const isReadDialogAlertFunctions = { + partRead, + partNotRead, +}; + +export { + isReadDialogAlertReducer, + useIsReadDialogAlert, + isReadDialogAlertActions, + isReadDialogAlertFunctions, +}; diff --git a/src/features/isReadDialogAlert/isReadDialogAlertSlice.ts b/src/features/isReadDialogAlert/isReadDialogAlertSlice.ts new file mode 100644 index 0000000..803a09a --- /dev/null +++ b/src/features/isReadDialogAlert/isReadDialogAlertSlice.ts @@ -0,0 +1,61 @@ +import {createAsyncThunk, createSlice} from '@reduxjs/toolkit'; +import {db} from '../../backend'; + +const initialState = { + visible: false, + subKey: '', + partNo: 0, + isRead: false, +}; + +const partRead = createAsyncThunk ( + 'isReadDialogAlert/partRead', + async ({subKey, partNo}:{subKey: string, partNo: number}) => { + const result = await db.partRead ({subKey, partNo}); + if (result.data == undefined) { + throw new Error (result.error); + } + } +); + +const partNotRead = createAsyncThunk ( + 'isReadDialogAlert/partRead', + async ({subKey, partNo}:{subKey: string, partNo: number}) => { + const result = await db.partNotRead ({subKey, partNo}); + if (result.data == undefined) { + throw new Error (result.error); + } + } +); + +const isReadDialogAlertSlice = createSlice ({ + name: 'isReadDialogAlert', + initialState, + reducers: { + toggleVisibility: state => { + state.visible = !state.visible; + }, + changeSubKey: (state, {payload}) => { + state.subKey = payload; + }, + changePartNo: (state, {payload}) => { + state.partNo = payload; + }, + changeIsRead: (state, {payload}) => { + state.isRead = payload; + }, + }, + extraReducers: builder => { + builder.addCase(partRead.fulfilled, (state: {visible: boolean}) => { + state.visible = false; + }) + builder.addCase(partRead.rejected, (state: {visible: boolean}) => { + state.visible = true; + }) + }, +}); + +const actions = isReadDialogAlertSlice.actions; + +export {actions, partRead, partNotRead}; +export default isReadDialogAlertSlice.reducer; diff --git a/src/redux/store.js b/src/redux/store.js deleted file mode 100644 index 6d2f747..0000000 --- a/src/redux/store.js +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -import { configureStore } from "@reduxjs/toolkit"; -import { cuzlerFunctionTriggerReducer } from "../features/cuzlerFunctionTrigger"; -import { cuzModalReducer } from "../features/cuzModal"; -import { editModalCuzlerReducer } from "../features/editCuzlerModal"; -import { notificationReducer } from "../features/notification"; -import {loggerReducer} from "../features/logger" -import { yesNoDialogAlertReducer } from "../features/yesNoDialogAlert"; -import { alertDialogReducer } from "../features/alertDialog"; -import { cizelgelerimReducer } from "features/cizelgelerim"; -import { hatimlerVisibilitiesReducer } from "features/hatimlerVisibilities"; -import { yillikTableReducer } from "features/yillikTable"; -import { loadingOverlayReducer } from "features/loadingOverlay"; - - - -export const store = configureStore({ - reducer: { - notification: notificationReducer, - cuzlerFunctionTrigger: cuzlerFunctionTriggerReducer, - editModalCuzler: editModalCuzlerReducer, - yesNoDialogAlert: yesNoDialogAlertReducer, - cuzModal: cuzModalReducer, - logger: loggerReducer, - alertDialog: alertDialogReducer, - cizelgelerim: cizelgelerimReducer, - hatimlerVisibilities: hatimlerVisibilitiesReducer, - yillikTable: yillikTableReducer, - loadingOverlay: loadingOverlayReducer - } -}) \ No newline at end of file diff --git a/src/redux/store.ts b/src/redux/store.ts new file mode 100644 index 0000000..4c65b7c --- /dev/null +++ b/src/redux/store.ts @@ -0,0 +1,35 @@ +import {configureStore} from '@reduxjs/toolkit'; +import {cuzlerFunctionTriggerReducer} from '../features/cuzlerFunctionTrigger'; +import {cuzModalReducer} from '../features/cuzModal'; +import {editModalCuzlerReducer} from '../features/editCuzlerModal'; +import {notificationReducer} from '../features/notification'; +import {loggerReducer} from '../features/logger'; +import {yesNoDialogAlertReducer} from '../features/yesNoDialogAlert'; +import {alertDialogReducer} from '../features/alertDialog'; +import {cizelgelerimReducer} from 'features/cizelgelerim'; +import {hatimlerVisibilitiesReducer} from 'features/hatimlerVisibilities'; +import {yillikTableReducer} from 'features/yillikTable'; +import {loadingOverlayReducer} from 'features/loadingOverlay'; +import {isReadDialogAlertReducer} from 'features/isReadDialogAlert'; + +export const store = configureStore ({ + reducer: { + notification: notificationReducer, + cuzlerFunctionTrigger: cuzlerFunctionTriggerReducer, + editModalCuzler: editModalCuzlerReducer, + yesNoDialogAlert: yesNoDialogAlertReducer, + cuzModal: cuzModalReducer, + logger: loggerReducer, + alertDialog: alertDialogReducer, + cizelgelerim: cizelgelerimReducer, + hatimlerVisibilities: hatimlerVisibilitiesReducer, + yillikTable: yillikTableReducer, + loadingOverlay: loadingOverlayReducer, + isReadDialogAlert: isReadDialogAlertReducer, + }, +}); + +// Infer the `RootState` and `AppDispatch` types from the store itself +export type RootState = ReturnType +// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} +export type AppDispatch = typeof store.dispatch \ No newline at end of file diff --git a/src/strings/Arabic.js b/src/strings/Arabic.js index da0e522..70db5e6 100644 --- a/src/strings/Arabic.js +++ b/src/strings/Arabic.js @@ -1,218 +1,237 @@ - - let Arabic = { - - rtl: true, - - Navbar: { - Logo: "ختم توزيع", - Links: ["إنشاء ختم", "بشأن", "تغيير اللغة", "مخططاتي"], - LinkHelpers: ["/", "hakkimda", "/cizelgelerim"], - Buttons: ["أرسل تقييما"], - Languages: [{label: "عربي", value: 'ar'}, {label: "الانجليزية", value: 'en'}, {label: "اللغة التركية", value: 'tr'}], - Pwa: 'تنزيله', - Menu: 'خيارات' - - }, - - Pwa: { - Alert: 'الرجاء استخدام متصفح Chrome لتنزيل هذا ، Safari لا يدعم هذه الميزة حتى الآن!', - Popup: [ - 'لتحميل هذا التطبيق الرجاء الضغط', - 'ثم اختر .الزر المتاح في متصفحك', - 'إضافة إلى الشاشة الرئيسية', - '.زر من القائمة مفتوحة', - '. سيتم تثبيت التطبيق إن شاء الله' + rtl: true, + + Navbar: { + Logo: 'ختم توزيع', + Links: ['إنشاء ختم', 'بشأن', 'تغيير اللغة', 'مخططاتي'], + LinkHelpers: ['/', 'hakkimda', '/cizelgelerim'], + Buttons: ['أرسل تقييما'], + Languages: [ + {label: 'عربي', value: 'ar'}, + {label: 'الانجليزية', value: 'en'}, + {label: 'اللغة التركية', value: 'tr'}, + ], + Pwa: 'تنزيله', + Menu: 'خيارات', + }, + + Pwa: { + Alert: 'الرجاء استخدام متصفح Chrome لتنزيل هذا ، Safari لا يدعم هذه الميزة حتى الآن!', + Popup: [ + 'لتحميل هذا التطبيق الرجاء الضغط', + 'ثم اختر .الزر المتاح في متصفحك', + 'إضافة إلى الشاشة الرئيسية', + '.زر من القائمة مفتوحة', + '. سيتم تثبيت التطبيق إن شاء الله', + ], + SorryMessage: [ + `عزيزي مستخدم خدمة توزيع الختم`, + + `أولاً، نود أن نشكر جميع أعضائنا الذين استخدموا الموقع. تم توزيع الحاتم بكميات كبيرة لشهداء فلسطين. جزاكم الله خيرًا.`, + + `للأسف، أدى التوجه المفاجئ للموقع بكثرة الاستخدام اليوم إلى دخول مرحلة إعادة هيكلة. لذا، نأسف لإعلامكم بأننا اضطررنا إلى إيقاف الموقع مؤقتًا حتى يتمكن من التعامل مع الضغط الحالي`, + + `لندعو من أجل فلسطين ونبقى نصلي. نحن لا نزال نؤمن بأننا سنرى أيامًا أفضل معًا، إن شاء الله`, + + `ختم توزيع`, + ], + }, + + Footer: { + aciz_kul: 'Yusuf Yeniçeri التي أدلى بها', + ziyaret: ['تمت زيارة هذا الموقع ', ' مرات.'], + version: ' الإصدار الحالي هو', + GoToMainPage: 'انتقل إلى الصفحة الرئيسية', + Feedback: 'أرسل رسالة', + }, + + AlertDialog: { + Text: '(user-agent انظر) من خلال الإبلاغ عن الخطأ ، والمتصفح الذي تستخدمه ، وإصدار المتصفح ، ومعلومات النظام ، وما إلى ذلك. سيرسل المعلومات إلى النظام. هل تقبل؟', + Yes: 'نعم', + No: 'لا', + }, + + IsReadDialog: { + Read: 'قُرِئَ', + NotRead: 'يُقْرَأُ', + }, + + AutomaticKhatm: 'توقفوا عن صنع الختم', + + '/': { + Question: 'إنشاء ختم جديد بالنقر فوق الزر!', + MyInfos: 'خاتس صنعتها و مخططاتي', + Button: { + NewTag: 'الجديد', + BetaTag: 'بيتا', + MyInfos: { + Charts: 'مخططاتي', + }, + Main: 'إنشاء ختم جديد', + YearBased: 'جديد سنوي خاتم', + Ramazan: 'جعل تناوب رمضان الخطمي', + Aylar3: 'إجعل 3 شهور خاتم', + EvradEzkar: 'توزيع فيرد الذكر', + Header: { + Text: 'إنشاء ختم', + InputSpan: [ + 'عنوان', + 'الوصف', + 'تاريخ إنهاء خاتم', + 'عدد الختم', + 'اصنع خاتمًا جديدًا تلقائيًا عند انتهاء خاتم', + 'تاريخ البدء', + 'عدد الأيام لإنهاء خطم معًا', + 'العدد الإجمالي لختم سينتهي', + 'استدارة الختم', ], - SorryMessage: [`عزيزي مستخدم خدمة توزيع الختم`, - -`أولاً، نود أن نشكر جميع أعضائنا الذين استخدموا الموقع. تم توزيع الحاتم بكميات كبيرة لشهداء فلسطين. جزاكم الله خيرًا.`, + Input: ['الرجاء إدخال عنوان'], + Button: 'استمر', + }, + Final: { + Before: { + Header: 'ارجوك انتظر!', + Link: 'رابطك لنشر الختم:', + LinkReady: 'الرابط يستعد', + Copy: 'انسخ الرابط', + Button: 'ارجوك انتظر!', + }, -`للأسف، أدى التوجه المفاجئ للموقع بكثرة الاستخدام اليوم إلى دخول مرحلة إعادة هيكلة. لذا، نأسف لإعلامكم بأننا اضطررنا إلى إيقاف الموقع مؤقتًا حتى يتمكن من التعامل مع الضغط الحالي`, + After: { + Header: 'تم إنشاء جديد ختم!', + Link: 'رابطك لنشر الختم:', + Copy: 'تم نسخ الرابط', + Button: 'استمر', + }, + }, + }, + ExistingKhatms: 'ختم شيدت', + BottomNavigation: { + NewKhatm: 'خاتم جديد', + KhatmInfos: 'معلوماتي خاتم', + }, + }, -`لندعو من أجل فلسطين ونبقى نصلي. نحن لا نزال نؤمن بأننا سنرى أيامًا أفضل معًا، إن شاء الله`, + '/cuz': { + KhatmFinishDate: ['.', 'صلاة هذا الختم ستقام في'], + NewSubKhatm: '.أضف ختم إلى هذه الصفحة', -`ختم توزيع`] + Before: { + Question: 'انقر فوق الجزء المطلوب ..', + Wait: 'ارجوك انتظر!', + Error: 'حدث خطأ ، تحديث الصفحة!', + Deleted: 'هذا الختم تم حذفه من قبل صاحبه!', + }, + After: { + Copy: { + Before: 'انسخ الرابط', + After: 'تم نسخ الرابط!', + }, + Share: 'شارك ختم', }, - Footer: { - aciz_kul: "Yusuf Yeniçeri التي أدلى بها", - ziyaret: ["تمت زيارة هذا الموقع "," مرات."], - version: " الإصدار الحالي هو", - GoToMainPage: "انتقل إلى الصفحة الرئيسية", - Feedback: "أرسل رسالة", + Button: { + Question: 'أدخل اسمك للحصول على الجزء:', + Take: 'احصل على الجزء', + }, + ShareBox: { + Title: 'حدد تطبيقًا لمشاركته:', + Sms: 'شارك مع الرسائل القصيرة', + Whatsapp: 'Whatsapp شارك مع', }, AlertDialog: { - Text: "(user-agent انظر) من خلال الإبلاغ عن الخطأ ، والمتصفح الذي تستخدمه ، وإصدار المتصفح ، ومعلومات النظام ، وما إلى ذلك. سيرسل المعلومات إلى النظام. هل تقبل؟", - Yes: 'نعم', - No: 'لا' + Title: 'تم أخذ جزء بالفعل! يرجى أخذ جزء آخر', + Button: 'موافق.', + Feedback: 'الإبلاغ عن خطأ', }, - AutomaticKhatm: 'توقفوا عن صنع الختم', - - "/" : { - Question: "إنشاء ختم جديد بالنقر فوق الزر!", - MyInfos: "خاتس صنعتها و مخططاتي", - Button: { - NewTag: "الجديد", - BetaTag: "بيتا", - MyInfos: { - Charts: "مخططاتي" - }, - Main: "إنشاء ختم جديد", - YearBased: "جديد سنوي خاتم", - Ramazan: "جعل تناوب رمضان الخطمي", - Aylar3: "إجعل 3 شهور خاتم", - EvradEzkar:"توزيع فيرد الذكر", - Header: { - Text: "إنشاء ختم", - InputSpan: ["عنوان", "الوصف" ,"تاريخ إنهاء خاتم", "عدد الختم", "اصنع خاتمًا جديدًا تلقائيًا عند انتهاء خاتم", "تاريخ البدء", "عدد الأيام لإنهاء خطم معًا", "العدد الإجمالي لختم سينتهي", "استدارة الختم"], - Input: ["الرجاء إدخال عنوان"], - Button: "استمر" - }, - Final: { - Before: { - Header: "ارجوك انتظر!", - Link: "رابطك لنشر الختم:", - LinkReady: "الرابط يستعد", - Copy: "انسخ الرابط", - Button: "ارجوك انتظر!" - }, - - After: { - Header: "تم إنشاء جديد ختم!", - Link: "رابطك لنشر الختم:", - Copy: "تم نسخ الرابط", - Button: "استمر" - } - } - }, - ExistingKhatms:'ختم شيدت', - BottomNavigation: { - NewKhatm: "خاتم جديد", - KhatmInfos: "معلوماتي خاتم" - } - + CuzlerHatimCard: { + deleteHatim: 'حذف خاتم', + changeHatim: 'يتغير', + takenParts: 'الأجزاء المأخوذة', + leftParts: 'الأجزاء المتبقية', + yourParts: 'الأجزاء التي أخذتها', + dua: [ + 'ستتم الصلاة اليوم', + '', + 'تم الصلاة', + 'ستتم الصلاة اليوم', + , + '', + 'ستتم الصلاة اليوم', + '', + ], + Modal: { + Title: 'تغيير معلومات خاتم', + Header: 'عنوان خاتم', + Description: 'وصف خاتم', + Date: 'تاريخ صلاة حاتم', + Button: 'حسنا', + }, + + Notification: { + Title: 'المعلومات قيد التحديث', + Description: 'يرجى الانتظار حتى يتم تحديث المعلومات', + }, + + PartModal: { + Title: 'تغيير معلومات الجزء', + Title2: 'أدخل اسمك أدناه لأخذ الجزء', + Name: 'اسم من تولى الجزء', + ChangeNameButton: 'تغيير الإسم', + CancelPart: 'إلغاء الجزء', + }, }, - "/cuz":{ - KhatmFinishDate: [".","صلاة هذا الختم ستقام في"], - NewSubKhatm: ".أضف ختم إلى هذه الصفحة", - - Before: { - Question: "انقر فوق الجزء المطلوب ..", - Wait: "ارجوك انتظر!", - Error: "حدث خطأ ، تحديث الصفحة!", - Deleted: "هذا الختم تم حذفه من قبل صاحبه!", - }, - - After: { - Copy: { - Before: "انسخ الرابط", - After: "تم نسخ الرابط!" - }, - Share:'شارك ختم', - - - }, - - Button:{ - Question: "أدخل اسمك للحصول على الجزء:", - Take: "احصل على الجزء" - }, - ShareBox:{ - Title: 'حدد تطبيقًا لمشاركته:', - Sms: 'شارك مع الرسائل القصيرة', - Whatsapp: 'Whatsapp شارك مع', - }, - - AlertDialog:{ - Title: "تم أخذ جزء بالفعل! يرجى أخذ جزء آخر", - Button: "موافق.", - Feedback: "الإبلاغ عن خطأ" - }, - - CuzlerHatimCard: { - deleteHatim: "حذف خاتم", - changeHatim: "يتغير", - takenParts: "الأجزاء المأخوذة", - leftParts: "الأجزاء المتبقية", - yourParts: "الأجزاء التي أخذتها", - dua: ["ستتم الصلاة اليوم", "", "تم الصلاة", "ستتم الصلاة اليوم", ,"","ستتم الصلاة اليوم", ""], - Modal:{ - Title:'تغيير معلومات خاتم', - Header:'عنوان خاتم', - Description:'وصف خاتم', - Date:'تاريخ صلاة حاتم', - Button:'حسنا' - }, - - Notification:{ - Title: 'المعلومات قيد التحديث', - Description: 'يرجى الانتظار حتى يتم تحديث المعلومات' - }, - - PartModal:{ - Title: 'تغيير معلومات الجزء', - Title2: 'أدخل اسمك أدناه لأخذ الجزء', - Name: 'اسم من تولى الجزء', - ChangeNameButton: 'تغيير الإسم', - CancelPart: 'إلغاء الجزء', - } - }, - - AddKhatmAlert:{ - Question: 'هل أنت متأكد أنك تريد إضافة خاتم جديد؟', - YesButton:'نعم', - NoButton:'لا' - }, - - DeleteKhatmAlert:{ - Question: 'هل أنت متأكد أنك تريد حذف هذا خاتم؟', - YesButton: 'نعم', - NoButton: 'لا' - }, - - CuzItem: { - ChartButton: 'إظهار الرسوم مخططاتي' - }, + AddKhatmAlert: { + Question: 'هل أنت متأكد أنك تريد إضافة خاتم جديد؟', + YesButton: 'نعم', + NoButton: 'لا', }, - "/ramazan":{ - KhatmFinishDate: [".","صلاة هذا الختم ستقام في"], - NewSubKhatm: ".أضف ختم إلى هذه الصفحة", + DeleteKhatmAlert: { + Question: 'هل أنت متأكد أنك تريد حذف هذا خاتم؟', + YesButton: 'نعم', + NoButton: 'لا', + }, - Before: { - Question: "انقر فوق الجزء المطلوب ..", - Wait: "ارجوك انتظر!", - Error: "حدث خطأ ، تحديث الصفحة!" - }, + CuzItem: { + ChartButton: 'إظهار الرسوم مخططاتي', + }, + }, - After: { - Copy: { - Before: "انسخ الرابط", - After: "تم نسخ الرابط!" - }, - Share:'شارك ختم', + '/ramazan': { + KhatmFinishDate: ['.', 'صلاة هذا الختم ستقام في'], + NewSubKhatm: '.أضف ختم إلى هذه الصفحة', + Before: { + Question: 'انقر فوق الجزء المطلوب ..', + Wait: 'ارجوك انتظر!', + Error: 'حدث خطأ ، تحديث الصفحة!', + }, - }, + After: { + Copy: { + Before: 'انسخ الرابط', + After: 'تم نسخ الرابط!', + }, + Share: 'شارك ختم', + }, - Button:{ - Question: "أدخل اسمك للحصول على الجزء:", - Take: "احصل على الجزء" - }, - ShareBox:{ - Title: 'حدد تطبيقًا لمشاركته:', - Sms: 'شارك مع الرسائل القصيرة', - Whatsapp: 'Whatsapp شارك مع', - } + Button: { + Question: 'أدخل اسمك للحصول على الجزء:', + Take: 'احصل على الجزء', + }, + ShareBox: { + Title: 'حدد تطبيقًا لمشاركته:', + Sms: 'شارك مع الرسائل القصيرة', + Whatsapp: 'Whatsapp شارك مع', }, + }, - "/ucaylarhergun1cuz":{ - } -} + '/ucaylarhergun1cuz': {}, +}; -export default Arabic; \ No newline at end of file +export default Arabic; diff --git a/src/strings/Turkish.js b/src/strings/Turkish.js index 315a721..6099327 100644 --- a/src/strings/Turkish.js +++ b/src/strings/Turkish.js @@ -1,228 +1,238 @@ - - - - let Turkish = { - Navbar: { - Logo: "Hatim Dağıt", - Links: ["Hatim Oluştur", "Hakkında", "Dil Değiştir", "Çizelgelerim"], - LinkHelpers: ["/", "hakkimda", "/cizelgelerim"], - Buttons: ["Geribildirim Yap"], - Languages: [{label: "Arapça", value: 'ar'}, {label: "İngilizce", value: 'en'}, {label: "Türkçe", value: 'tr'}], - Pwa: "Telefona İndir", - Menu: 'Menü' + Navbar: { + Logo: 'Hatim Dağıt', + Links: ['Hatim Oluştur', 'Hakkında', 'Dil Değiştir', 'Çizelgelerim'], + LinkHelpers: ['/', 'hakkimda', '/cizelgelerim'], + Buttons: ['Geribildirim Yap'], + Languages: [ + {label: 'Arapça', value: 'ar'}, + {label: 'İngilizce', value: 'en'}, + {label: 'Türkçe', value: 'tr'}, + ], + Pwa: 'Telefona İndir', + Menu: 'Menü', + }, + + Pwa: { + Alert: 'Lütfen Chrome tarayıcısını kullanarak telefonunuza indirin. Safari bu özelliği desteklemiyor!', + Popup: [ + 'Bu uygulamayı telefonunuza indirmek için önce tarayıcınızda bulunan', + 'ikonuna tıklayın. Daha sonra açılan menüden', + 'Ana Ekrana Ekle', + 'seçeneğini seçin.', + 'Uygulama telefonunuza inecektir inşaAllah.', + ], + SorryMessage: [ + `Değerli Hatim Dağıt kullanıcısı`, + + `Öncelikle, siteyi kullanan tüm üyelerimize teşekkür etmek istiyoruz. Filistin şehitleri için büyük miktarlarda Hatim dağıtıldı. Allah razı olsun.`, + + `Sitemiz, bugün beklenilenden fazla karşılaştığı yoğunluk sebebiyle yeniden yapılanmaya girmiştir. Bu nedenle, mevcut yoğunluk azalana kadar siteyi geçiçi olarak kullanıma kapatmak zorunda kaldığımızı üzülerek bildirmek istiyoruz. Oluşturulmuş Hatimlerdeki bilgilere ulaşılabilmesi için saat 22:00-23:00 arasında site açılacak inşaAllah.`, + + `Filistin için dua etmeye devam edelim. Birlikte daha güzel günler göreceğimize olan inancımızı yitirmiyoruz inşaAllah.`, + + `Hatim Dağıt`, + ], + }, + + Footer: { + aciz_kul: 'Yusuf Yeniçeri tarafından yapılmıştır.', + ziyaret: ['Bu site ', ' defa ziyaret edildi'], + version: 'Mevcut versiyon ', + GoToMainPage: 'Anasayfaya Git', + Feedback: 'Geribildirim Yap', + }, + + AlertDialog: { + Text: 'Hatayı bildirerek kullandığınız tarayıcı, tarayıcı versiyonu, sistem bilgisi vb. bilgileri (bkz. user-agent) sisteme gönderecektir. Kabul ediyor musunuz?', + Yes: 'Evet', + No: 'Hayır', + }, + + IsReadDialog: { + Read: 'Okundu', + NotRead: 'Okunuyor', + }, + + AutomaticKhatm: 'Otomatik Hatim Oluşturmayı Durdur', + + '/': { + Question: 'Butona Tıklayarak Yeni Bir Hatim Oluştur!', + MyInfos: 'Oluşturduğum Hatimler ve Çizelgelerim', + Button: { + NewTag: 'Yeni', + BetaTag: 'Beta', + MyInfos: { + Charts: 'Çizelgelerim', + }, + Main: 'Hızlıca Hatim Oluştur', + YearBased: 'Yıllık Hatim Oluştur', + Ramazan: 'Ramazan Dönerli Hatim Oluştur', + Aylar3: '3 Aylar Hatmi Oluştur', + EvradEzkar: 'Vird-Zikir Dağıt', + Header: { + Text: 'Yeni Hatim Oluştur', + Text3MonthProgram: 'Program Seç', + InputSpan: [ + 'Başlık', + 'Açıklama', + 'Hatim Duası Tarihi', + 'Hatim Sayısı', + 'Hatim bittiğinde otomatik olarak yeni hatim oluştur', + 'Başlama Tarihi', + 'Kaç Günde Bir Birlikte Hatim Bitecek', + 'Toplam Birlikte Bitecek Hatim Sayısı', + 'Dönerli Hatim', + ], + Input: [ + 'Lütfen Hatim başlığı yazın ..', + 'Lütfen Hatim için açıklama yazın ..', + ], + Button: 'Devam Et', + }, + Final: { + Before: { + Header: 'Yeni Hatim Oluşturuluyor', + Link: 'Hatmi Dağıtmak için Linkiniz:', + LinkReady: 'Link hazırlanıyor', + Copy: 'Linki Kopyala', + Button: 'Lütfen bekleyiniz ..', + }, + After: { + Header: 'Yeni Hatim Oluşturuldu!', + Link: 'Hatmi Dağıtmak için Linkiniz:', + Copy: 'Link Kopyalandı', + Button: 'Devam Et', + }, + }, }, + ExistingKhatms: 'Oluşturulmuş Hatimler', + BottomNavigation: { + NewKhatm: 'Hatim Oluştur', + KhatmInfos: 'Hatim Bilgilerim', + }, + }, - Pwa: { - Alert: 'Lütfen Chrome tarayıcısını kullanarak telefonunuza indirin. Safari bu özelliği desteklemiyor!', - Popup: [ - 'Bu uygulamayı telefonunuza indirmek için önce tarayıcınızda bulunan', - 'ikonuna tıklayın. Daha sonra açılan menüden', - 'Ana Ekrana Ekle', - 'seçeneğini seçin.', - 'Uygulama telefonunuza inecektir inşaAllah.' - ], - SorryMessage: [`Değerli Hatim Dağıt kullanıcısı`, - - `Öncelikle, siteyi kullanan tüm üyelerimize teşekkür etmek istiyoruz. Filistin şehitleri için büyük miktarlarda Hatim dağıtıldı. Allah razı olsun.`, - -`Sitemiz, bugün beklenilenden fazla karşılaştığı yoğunluk sebebiyle yeniden yapılanmaya girmiştir. Bu nedenle, mevcut yoğunluk azalana kadar siteyi geçiçi olarak kullanıma kapatmak zorunda kaldığımızı üzülerek bildirmek istiyoruz. Oluşturulmuş Hatimlerdeki bilgilere ulaşılabilmesi için saat 22:00-23:00 arasında site açılacak inşaAllah.`, + '/cuz': { + KhatmFinishDate: ['Hatim Duasının Yapılacağı Tarih: ', ''], + NewSubKhatm: 'Bu sayfaya Yeni Hatim ekle', -`Filistin için dua etmeye devam edelim. Birlikte daha güzel günler göreceğimize olan inancımızı yitirmiyoruz inşaAllah.`, + Before: { + Question: 'İstediğiniz cüze tıklayın ..', + Wait: 'Lütfen Bekleyiniz ..', + Error: 'Bir Hata Oluştu, Sayfayı Güncelleyin!', + Deleted: 'Bu Hatim oluşturan kişi tarafından silinmiş!', + }, -`Hatim Dağıt` - ] + After: { + Copy: { + Before: 'Linki Kopyala', + After: 'Link Kopyalandı', + }, + Share: 'Hatmi Paylaş', }, - Footer: { - aciz_kul: "Yusuf Yeniçeri tarafından yapılmıştır.", - ziyaret: ["Bu site ", " defa ziyaret edildi"], - version: "Mevcut versiyon ", - GoToMainPage: "Anasayfaya Git", - Feedback: "Geribildirim Yap", + Button: { + Question: 'Cüzü almak için isminizi girin:', + Take: 'Cüzü Al', + TakeCancel: 'İptal Et', }, + ShareBox: { + Title: 'Paylaşmak için uygulama seçin:', + Sms: 'Sms ile Paylaş', + Whatsapp: 'Whatsapp ile Paylaş', + }, AlertDialog: { - Text: "Hatayı bildirerek kullandığınız tarayıcı, tarayıcı versiyonu, sistem bilgisi vb. bilgileri (bkz. user-agent) sisteme gönderecektir. Kabul ediyor musunuz?", - Yes: 'Evet', - No: 'Hayır' + Title: 'Cüz çoktan alınmış. Lütfen başka bir cüzü almayı deneyin!', + Button: 'Tamam', + Feedback: 'Hata Bildir', }, - AutomaticKhatm: 'Otomatik Hatim Oluşturmayı Durdur', - - - "/" : { - Question: "Butona Tıklayarak Yeni Bir Hatim Oluştur!", - MyInfos: "Oluşturduğum Hatimler ve Çizelgelerim", - Button: { - NewTag: "Yeni", - BetaTag: "Beta", - MyInfos: { - Charts: "Çizelgelerim" - }, - Main: "Hızlıca Hatim Oluştur", - YearBased:"Yıllık Hatim Oluştur", - Ramazan: "Ramazan Dönerli Hatim Oluştur", - Aylar3: "3 Aylar Hatmi Oluştur", - EvradEzkar:"Vird-Zikir Dağıt", - Header: { - Text: "Yeni Hatim Oluştur", - Text3MonthProgram: "Program Seç", - InputSpan: ["Başlık", "Açıklama", "Hatim Duası Tarihi", - "Hatim Sayısı", "Hatim bittiğinde otomatik olarak yeni hatim oluştur", - "Başlama Tarihi", "Kaç Günde Bir Birlikte Hatim Bitecek", - "Toplam Birlikte Bitecek Hatim Sayısı", "Dönerli Hatim"], - Input: ["Lütfen Hatim başlığı yazın ..", "Lütfen Hatim için açıklama yazın .."], - Button: "Devam Et" - }, - Final: { - Before: { - Header: "Yeni Hatim Oluşturuluyor", - Link: "Hatmi Dağıtmak için Linkiniz:", - LinkReady: "Link hazırlanıyor", - Copy: "Linki Kopyala", - Button: "Lütfen bekleyiniz .." - }, - - After: { - Header: "Yeni Hatim Oluşturuldu!", - Link: "Hatmi Dağıtmak için Linkiniz:", - Copy: "Link Kopyalandı", - Button: "Devam Et" - } - } - }, - ExistingKhatms:'Oluşturulmuş Hatimler', - BottomNavigation: { - NewKhatm: "Hatim Oluştur", - KhatmInfos: "Hatim Bilgilerim" - } + CuzlerHatimCard: { + deleteHatim: 'Hatmi Sil', + changeHatim: 'Değiştir', + takenParts: 'Alınan cüzler', + leftParts: ' cüz kaldı', + yourParts: 'Aldığınız cüzler', + dua: [ + 'Duaya', + 'gün kaldı', + 'Duası yapıldı', + 'Duası bugün yapılacak', + 'Duaya', + 'gün kaldı', + ], + Modal: { + Title: 'Hatim bilgilerinde değişiklik yap', + Header: 'Hatim başlığı', + Description: 'Hatim açıklaması', + Date: 'Hatim duası tarihi', + Button: 'Tamam', + }, + + Notification: { + Title: 'Bilgiler güncelleniyor', + Description: 'Bilgileri güncellenene kadar lütfen bekleyin.', + }, + + PartModal: { + Title: 'Cüz bilgilerinde değişiklik yap', + Title2: 'Cüz almak için aşağıya isminizi girin', + Name: 'Cüzü alan kişinin ismi', + ChangeNameButton: 'İsmini Değiştir', + CancelPart: 'Cüzü İptal Et', + }, }, - "/cuz":{ - - KhatmFinishDate: ["Hatim Duasının Yapılacağı Tarih: ",""], - NewSubKhatm: "Bu sayfaya Yeni Hatim ekle", - - Before: { - Question: "İstediğiniz cüze tıklayın ..", - Wait: "Lütfen Bekleyiniz ..", - Error: "Bir Hata Oluştu, Sayfayı Güncelleyin!", - Deleted: "Bu Hatim oluşturan kişi tarafından silinmiş!" - }, - - After: { - Copy: { - Before: "Linki Kopyala", - After: "Link Kopyalandı" - }, - Share:'Hatmi Paylaş', - - }, - - Button:{ - Question: "Cüzü almak için isminizi girin:", - Take: "Cüzü Al", - TakeCancel: "İptal Et" - }, - - ShareBox:{ - Title: 'Paylaşmak için uygulama seçin:', - Sms: 'Sms ile Paylaş', - Whatsapp: 'Whatsapp ile Paylaş', - }, - - - AlertDialog:{ - Title: "Cüz çoktan alınmış. Lütfen başka bir cüzü almayı deneyin!", - Button: "Tamam", - Feedback: "Hata Bildir" - }, - - - CuzlerHatimCard: { - deleteHatim: "Hatmi Sil", - changeHatim: "Değiştir", - takenParts: "Alınan cüzler", - leftParts: " cüz kaldı", - yourParts: "Aldığınız cüzler", - dua: ["Duaya", "gün kaldı", "Duası yapıldı", "Duası bugün yapılacak", "Duaya", "gün kaldı"], - Modal:{ - Title:'Hatim bilgilerinde değişiklik yap', - Header:'Hatim başlığı', - Description:'Hatim açıklaması', - Date:'Hatim duası tarihi', - Button:'Tamam' - }, - - Notification:{ - Title: 'Bilgiler güncelleniyor', - Description: 'Bilgileri güncellenene kadar lütfen bekleyin.' - }, - - PartModal:{ - Title: 'Cüz bilgilerinde değişiklik yap', - Title2: 'Cüz almak için aşağıya isminizi girin', - Name: 'Cüzü alan kişinin ismi', - ChangeNameButton: 'İsmini Değiştir', - CancelPart: 'Cüzü İptal Et', - } - }, - - - AddKhatmAlert:{ - Question: 'Yeni Hatim oluşturmak istediğinize emin misiniz?', - YesButton:'Evet', - NoButton:'Hayır' - }, - - DeleteKhatmAlert:{ - Question: 'Bu Hatmi silmek istediğinize emin misiniz?', - YesButton: 'Evet', - NoButton: 'Hayır' - }, - - CuzItem: { - ChartButton: 'Çizelgeyi Görüntüle' - }, - + AddKhatmAlert: { + Question: 'Yeni Hatim oluşturmak istediğinize emin misiniz?', + YesButton: 'Evet', + NoButton: 'Hayır', }, - "/ramazan":{ - Before: { - Question: "Başlamak istediğiniz cüzü seçin ..", - Wait: "Lütfen Bekleyiniz ..", - Error: "Bir Hata Oluştu, Sayfayı Güncelleyin!" - }, + DeleteKhatmAlert: { + Question: 'Bu Hatmi silmek istediğinize emin misiniz?', + YesButton: 'Evet', + NoButton: 'Hayır', + }, - After: { - Copy: { - Before: "Linki Kopyala", - After: "Link Kopyalandı" - }, - Share:'Hatmi Paylaş', + CuzItem: { + ChartButton: 'Çizelgeyi Görüntüle', + }, + }, - }, + '/ramazan': { + Before: { + Question: 'Başlamak istediğiniz cüzü seçin ..', + Wait: 'Lütfen Bekleyiniz ..', + Error: 'Bir Hata Oluştu, Sayfayı Güncelleyin!', + }, - Button:{ - Question: "Cüzü almak için isminizi girin:", - Take: "Cüzü Al", - TakeCancel: "İptal Et" - }, + After: { + Copy: { + Before: 'Linki Kopyala', + After: 'Link Kopyalandı', + }, + Share: 'Hatmi Paylaş', + }, - ShareBox:{ - Title: 'Paylaşmak için uygulama seçin:', - Sms: 'Sms ile Paylaş', - Whatsapp: 'Whatsapp ile Paylaş', - } + Button: { + Question: 'Cüzü almak için isminizi girin:', + Take: 'Cüzü Al', + TakeCancel: 'İptal Et', }, - "/ucaylarhergun1cuz":{ - } + ShareBox: { + Title: 'Paylaşmak için uygulama seçin:', + Sms: 'Sms ile Paylaş', + Whatsapp: 'Whatsapp ile Paylaş', + }, + }, - -} + '/ucaylarhergun1cuz': {}, +}; -export default Turkish; \ No newline at end of file +export default Turkish; diff --git a/src/strings/english.js b/src/strings/english.js index a8439eb..ffdf365 100644 --- a/src/strings/english.js +++ b/src/strings/english.js @@ -1,234 +1,237 @@ - - - - - - - - - let english = { - Navbar: { - Logo: "Distribute Khatm", - Links: ["Make New Khatm", "About", "Change Language", "My Charts"], - LinkHelpers: ["/", "hakkimda", "/cizelgelerim"], - Buttons: ["Send Feedback"], - Languages: [{label: "Arabic", value: 'ar'}, {label: "English", value: 'en'}, {label: "Turkish", value: 'tr'}], - Pwa: "Download to Phone", - Menu: 'Menu' - - }, - - Pwa: { - Alert: 'Please use Chrome browser to download this, Safari doesn\'t support that feature yet!', - Popup: [ - 'To download this application please click', - 'the button available in your browser. Then choose the', - 'Add to Home Screen', - 'button from the menu open.', - 'the application is going to be installed insha\'Allah.' + Navbar: { + Logo: 'Distribute Khatm', + Links: ['Make New Khatm', 'About', 'Change Language', 'My Charts'], + LinkHelpers: ['/', 'hakkimda', '/cizelgelerim'], + Buttons: ['Send Feedback'], + Languages: [ + {label: 'Arabic', value: 'ar'}, + {label: 'English', value: 'en'}, + {label: 'Turkish', value: 'tr'}, + ], + Pwa: 'Download to Phone', + Menu: 'Menu', + }, + + Pwa: { + Alert: "Please use Chrome browser to download this, Safari doesn't support that feature yet!", + Popup: [ + 'To download this application please click', + 'the button available in your browser. Then choose the', + 'Add to Home Screen', + 'button from the menu open.', + "the application is going to be installed insha'Allah.", + ], + SorryMessage: [ + `Dear Khatm Distribute users`, + + `First and foremost, we would like to express our gratitude to all the members who have been using the site. A substantial number of Khatms have been distributed for the Palestinian martyrs. May Allah be pleased. The website will be opened between 22:00-23:00(with Turkey time) in order to access the information in the made Khatms, inshaAllah.`, + + `Our site has undergone a restructuring process today due to unexpectedly high traffic. Therefore, we regret to inform you that we have had to temporarily close the site until the current congestion subsides.`, + + `Let's continue to pray for Palestine. We belive that we will see better days together, inshaAllah.`, + + `Khatm Distribute`, + ], + }, + + Footer: { + aciz_kul: 'Made by Yusuf YENİÇERİ', + ziyaret: ['This site has been visited ', ' times'], + version: 'Current version is ', + GoToMainPage: 'Go to Home', + Feedback: 'Give Feedback', + }, + + AlertDialog: { + Text: 'You will send browser, browser information, system information etc. (user-agent in short) by accepting this. Do you want to continue?', + Yes: 'Yes', + No: 'No', + }, + + IsReadDialog: { + Read: 'Read', + NotRead: 'Being Read', + }, + + AutomaticKhatm: 'Stop Making Automatic Khatms', + + '/': { + Question: 'Click on Button to Make New Khatm', + MyInfos: 'Khatms I Made and My Charts', + Button: { + NewTag: 'New', + BetaTag: 'Beta', + MyInfos: { + Charts: 'My Charts', + }, + Main: 'New Khatm', + YearBased: 'Make Yearly Khatm', + Ramazan: 'Make New Ramazan Khatm (Cycled)', + Aylar3: 'Make 3 Months Khatm', + EvradEzkar: 'Distribute Vird-Dhikr', + Header: { + Text: 'Make New Khatm', + InputSpan: [ + 'Title', + 'Description', + 'Khatm Finish Date', + 'Number of Khatm', + 'Automatically make new Khatm when Khatm is finished', + 'Starting Date', + 'Number of Days To Finish A Khatm Together', + 'Total Khatm Number Will Be Finished', + 'Rotated Khatm', ], - SorryMessage: [`Dear Khatm Distribute users`, + Input: ['Please enter a Khatm title'], + Button: 'Continue', + }, + Final: { + Before: { + Header: 'New Khatm Is Being Made!', + Link: 'New Khatm Distribution Link:', + LinkReady: 'Link is being made', + Copy: 'Copy the Link', + Button: 'Please wait', + }, -`First and foremost, we would like to express our gratitude to all the members who have been using the site. A substantial number of Khatms have been distributed for the Palestinian martyrs. May Allah be pleased. The website will be opened between 22:00-23:00(with Turkey time) in order to access the information in the made Khatms, inshaAllah.`, + After: { + Header: 'New Khatm Is Ready!', + Link: 'New Khatm Distribution Link:', + Copy: 'Link Copied', + Button: 'Continue', + }, + }, + }, + ExistingKhatms: 'Khatms Made', + BottomNavigation: { + NewKhatm: 'New Khatm', + KhatmInfos: 'My Khatm Informations', + }, + }, -`Our site has undergone a restructuring process today due to unexpectedly high traffic. Therefore, we regret to inform you that we have had to temporarily close the site until the current congestion subsides.`, + '/cuz': { + KhatmFinishDate: ['The Prayer of this Khatm is going to be made at', '.'], + NewSubKhatm: 'Add New Khatm to this page', -`Let's continue to pray for Palestine. We belive that we will see better days together, inshaAllah.`, + Before: { + Question: 'Click the Part You Want ..', + Wait: 'Please wait ..', + Error: 'An error occured, please refresh the page!', + Deleted: 'This Khatm has been deleted by its owner!', + }, -`Khatm Distribute` -] + After: { + Copy: { + Before: 'Copy the Link', + After: 'Link Copied', + }, + Share: 'Share Khatm', }, - Footer: { - aciz_kul: "Made by Yusuf YENİÇERİ", - ziyaret: ["This site has been visited ", " times"], - version: "Current version is ", - GoToMainPage: "Go to Home", - Feedback: "Give Feedback", + Button: { + Question: 'part, enter your name to take it', + Take: 'Take the Part', + TakeCancel: 'Release the Part', + }, + ShareBox: { + Title: 'Select an app to share:', + Sms: 'Share with Sms', + Whatsapp: 'Share with Whatsapp', }, AlertDialog: { - Text: "You will send browser, browser information, system information etc. (user-agent in short) by accepting this. Do you want to continue?", - Yes: 'Yes', - No: 'No' + Title: 'Part is already taken! Please take another Part.', + Button: 'Ok', + Feedback: 'Send Feedback', }, - AutomaticKhatm: 'Stop Making Automatic Khatms', - - "/" : { - Question: "Click on Button to Make New Khatm", - MyInfos: "Khatms I Made and My Charts", - Button: { - NewTag: "New", - BetaTag: "Beta", - MyInfos: { - Charts: "My Charts" - }, - Main: "New Khatm", - YearBased: "Make Yearly Khatm", - Ramazan: "Make New Ramazan Khatm (Cycled)", - Aylar3: "Make 3 Months Khatm", - EvradEzkar:"Distribute Vird-Dhikr", - Header: { - Text: "Make New Khatm", - InputSpan: ["Title", "Description", "Khatm Finish Date", "Number of Khatm", "Automatically make new Khatm when Khatm is finished", "Starting Date", "Number of Days To Finish A Khatm Together", - "Total Khatm Number Will Be Finished", "Rotated Khatm"], - Input: ["Please enter a Khatm title"], - Button: "Continue" - }, - Final: { - Before: { - Header: "New Khatm Is Being Made!", - Link: "New Khatm Distribution Link:", - LinkReady: "Link is being made", - Copy: "Copy the Link", - Button: "Please wait" - }, - - After: { - Header: "New Khatm Is Ready!", - Link: "New Khatm Distribution Link:", - Copy: "Link Copied", - Button: "Continue" - } - } - }, - ExistingKhatms:'Khatms Made', - BottomNavigation: { - NewKhatm: "New Khatm", - KhatmInfos: "My Khatm Informations" - } - + CuzlerHatimCard: { + deleteHatim: 'Delete Khatm', + changeHatim: 'Change', + takenParts: 'Taken parts', + leftParts: ' parts left', + yourParts: 'The Parts You Took', + dua: [ + '', + 'days left until prayer', + 'Prayer was done', + 'Prayer will be made today', + '', + 'days left until prayer', + ], + Modal: { + Title: 'Change Khatm Info', + Header: 'Khatm Title', + Description: 'Khatm Description', + Date: 'Khatm Prayer Date', + Button: 'Ok', + }, + + Notification: { + Title: 'Information is being updated', + Description: 'Please wait until information is being updated.', + }, + + PartModal: { + Title: 'Change Part Info', + Title2: 'Enter your name below to take the Part', + Name: 'Name of Who Taken the Part', + ChangeNameButton: 'Change Name', + CancelPart: 'Cancel Part', + }, }, - "/cuz":{ - - KhatmFinishDate: ["The Prayer of this Khatm is going to be made at","."], - NewSubKhatm: "Add New Khatm to this page", - - Before: { - Question: "Click the Part You Want ..", - Wait: "Please wait ..", - Error: "An error occured, please refresh the page!", - Deleted: "This Khatm has been deleted by its owner!" - }, - - After: { - Copy: { - Before: "Copy the Link", - After: "Link Copied" - }, - Share:'Share Khatm', - - }, - - Button:{ - Question: "part, enter your name to take it", - Take: "Take the Part", - TakeCancel: "Release the Part" - }, - - ShareBox:{ - Title: 'Select an app to share:', - Sms: 'Share with Sms', - Whatsapp: 'Share with Whatsapp', - }, - - AlertDialog:{ - Title: "Part is already taken! Please take another Part.", - Button: "Ok", - Feedback: "Send Feedback" - }, - - - CuzlerHatimCard: { - deleteHatim: "Delete Khatm", - changeHatim: "Change", - takenParts: "Taken parts", - leftParts: " parts left", - yourParts: "The Parts You Took", - dua: ["", "days left until prayer", "Prayer was done", "Prayer will be made today", "", "days left until prayer"], - Modal:{ - Title:'Change Khatm Info', - Header:'Khatm Title', - Description:'Khatm Description', - Date:'Khatm Prayer Date', - Button:'Ok' - }, - - Notification:{ - Title: 'Information is being updated', - Description: 'Please wait until information is being updated.' - }, - - PartModal:{ - Title: 'Change Part Info', - Title2: 'Enter your name below to take the Part', - Name: 'Name of Who Taken the Part', - ChangeNameButton: 'Change Name', - CancelPart: 'Cancel Part', - } - }, - - - AddKhatmAlert:{ - Question: 'Are you sure you want to add a new Khatm?', - YesButton:'Yes', - NoButton:'No' - }, - - DeleteKhatmAlert:{ - Question: 'Are you sure you want to delete this Khatm?', - YesButton: 'Yes', - NoButton: 'No' - }, - - CuzItem: { - ChartButton: 'View Chart' - }, - + AddKhatmAlert: { + Question: 'Are you sure you want to add a new Khatm?', + YesButton: 'Yes', + NoButton: 'No', }, - "/ramazan":{ - - KhatmFinishDate: ["The Prayer of this Khatm is going to be made at","."], - NewSubKhatm: "Add New Khatm to this page", - - Before: { - Question: "Click the Part You Want ..", - Wait: "Please wait ..", - Error: "An error occured, please refresh the page!" - }, + DeleteKhatmAlert: { + Question: 'Are you sure you want to delete this Khatm?', + YesButton: 'Yes', + NoButton: 'No', + }, - After: { - Copy: { - Before: "Copy the Link", - After: "Link Copied" - }, - Share:'Share Khatm', + CuzItem: { + ChartButton: 'View Chart', + }, + }, - }, + '/ramazan': { + KhatmFinishDate: ['The Prayer of this Khatm is going to be made at', '.'], + NewSubKhatm: 'Add New Khatm to this page', - Button:{ - Question: "part, enter your name to take it", - Take: "Take the Part", - TakeCancel: "Release the Part" - }, + Before: { + Question: 'Click the Part You Want ..', + Wait: 'Please wait ..', + Error: 'An error occured, please refresh the page!', + }, - ShareBox:{ - Title: 'Select an app to share:', - Sms: 'Share with Sms', - Whatsapp: 'Share with Whatsapp', - } + After: { + Copy: { + Before: 'Copy the Link', + After: 'Link Copied', + }, + Share: 'Share Khatm', }, - "/ucaylarhergun1cuz":{ - } + Button: { + Question: 'part, enter your name to take it', + Take: 'Take the Part', + TakeCancel: 'Release the Part', + }, + ShareBox: { + Title: 'Select an app to share:', + Sms: 'Share with Sms', + Whatsapp: 'Share with Whatsapp', + }, + }, - -} + '/ucaylarhergun1cuz': {}, +}; -export default english; \ No newline at end of file +export default english;