diff --git a/.env.example b/.env.example index 6a529f70..4d15358c 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,18 @@ +#UI ENV +REACT_APP_TITLE= +REACT_APP_DESCRIPTION_CONTENT= +#MANIFEST +REACT_APP_MANIFEST_FILE= +#API CONFIG REACT_APP_API_BASE_URL= REACT_APP_CLIENT_ID= REACT_APP_LOGIN_CLIENT_ID= -REACT_APP_CLIENT_SECRET= \ No newline at end of file +REACT_APP_CLIENT_SECRET= +#LANGUAGES +REACT_APP_MULTI_LANGS_SUPPORT= +REACT_APP_PRELOAD_LANG= +REACT_APP_LANGS_SUPPORT= +#DEFAULT THEME +REACT_APP_DEFAULT_THEME= +#SYSTEM_EMAIL +REACT_APP_SYSTEM_EMAIL_ADDRESS= \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9dda0e40..8001b6a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM node:lts-fermium AS build COPY . /web-app WORKDIR /web-app ENV NODE_ENV production +RUN yarn cache clean RUN yarn install --immutable ARG GENERATE_SOURCEMAP='false' ENV GENERATE_SOURCEMAP $GENERATE_SOURCEMAP @@ -13,4 +14,4 @@ COPY --from=build /web-app/build /var/www/opex/html WORKDIR /var/www/opex/html COPY env-map.js . CMD cat env-map.js | envsubst > env.js && nginx -g "daemon off;" -EXPOSE 80 +EXPOSE 80 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index bb530d00..fadf22f6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,9 +4,17 @@ services: image: ghcr.io/opexdev/web-app environment: - ENV=$WEB_APP_ENV + - APP_TITLE=$WEB_APP_TITLE + - DESCRIPTION=$WEB_APP_DESCRIPTION - API_BASE_URL=$API_BASE_URL - CLIENT_ID=$CLIENT_ID + - LOGIN_CLIENT_ID=$CLIENT_LOGIN_ID - CLIENT_SECRET=$CLIENT_SECRET + - MULTI_LANGS_SUPPORT=$MULTI_LANGS_SUPPORT + - PRELOAD_LANG=$PRELOAD_LANG + - LANGS_SUPPORT=$LANGS_SUPPORT + - DEFAULT_THEME=$DEFAULT_THEME + - REGISTER_EMAIL_ADDRESS=$REGISTER_EMAIL_ADDRESS networks: - default deploy: diff --git a/env-map.js b/env-map.js index 3b469afa..461a485c 100644 --- a/env-map.js +++ b/env-map.js @@ -1,6 +1,14 @@ window.env = { REACT_APP_ENV: "$ENV", + REACT_APP_TITLE: "$APP_TITLE", + REACT_APP_DESCRIPTION_CONTENT: "$DESCRIPTION", REACT_APP_API_BASE_URL: "$API_BASE_URL", + REACT_APP_LOGIN_CLIENT_ID: "$CLIENT_ID", REACT_APP_CLIENT_ID: "$CLIENT_ID", - REACT_APP_CLIENT_SECRET: "$CLIENT_SECRET" + REACT_APP_CLIENT_SECRET: "$CLIENT_SECRET", + REACT_APP_MULTI_LANGS_SUPPORT : "$MULTI_LANGS_SUPPORT", + REACT_APP_PRELOAD_LANG : "$PRELOAD_LANG", + REACT_APP_LANGS_SUPPORT : "$LANGS_SUPPORT", + REACT_APP_DEFAULT_THEME : "$DEFAULT_THEME", + REACT_APP_SYSTEM_EMAIL_ADDRESS : "$REGISTER_EMAIL_ADDRESS", } \ No newline at end of file diff --git a/package.json b/package.json index f24302bf..11cad540 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opex", - "version": "v1.0.2-beta.3", + "version": "v1.0.2-beta.4", "homepage": "", "private": true, "dependencies": { diff --git a/public/favicon.ico b/public/assets/favicon.ico similarity index 100% rename from public/favicon.ico rename to public/assets/favicon.ico diff --git a/public/locales/en/translation.json b/public/assets/locales/en/translation.json similarity index 96% rename from public/locales/en/translation.json rename to public/assets/locales/en/translation.json index 9076006c..ae45da0f 100644 --- a/public/locales/en/translation.json +++ b/public/assets/locales/en/translation.json @@ -1,573 +1,575 @@ -{ - "title": "OPEX", - "signIn":"Sign In", - "signUp": "Sign Up", - "signOut":"Sign Out", - "date": "Date", - "time": "Time", - "volume": "Volume", - "totalVolume": "Total Volume", - "price": "Price", - "pricePerUnit": "Price Per Unit", - "totalPrice": "Total Price", - "averagePrice": "Average Price", - "min": "Min", - "max": "Max", - "buy": "Buy", - "sell": "Sell", - "all": "All", - "orderType": "Order Type", - "status" : "Status", - "pleaseLogin" : "Please Log In!", - "comingSoon" : "Coming Soon!", - "deposit": "Deposit", - "withdrawal": "Withdrawal", - "transfer": "Transfer", - "destination": "Destination", - "details": "Details", - "commission": "Commission", - "nextStep": "Next Step", - "prevStep": "Prev Step", - "submit": "Submit", - "username": "Username", - "password": "Password", - "confirmPassword": "Confirm Password", - "otp": "OTP", - "firstName": "First Name", - "lastName": "Last Name", - "email": "Email", - "captchaAnswer": "Captcha", - "desktopSupport": "Mobile view not available!", - "error": "Something Wrong Happened!", - "loading": "Loading...", - "noData": "No content to show!", - "noTx": "There is no transaction!", - "close": "Close", - "unit": "Unit", - "offline": "Check your connection!", - "country": { - "iran" : "I. R. IRAN", - "germany" : "Germany", - "uk": "United Kingdom", - "turkey" : "Turkey" - }, - "currency": { - "IRT" : "IRT", - "Euro" : "Euro", - "USD" : "USD", - "BTC" : "BTC", - "ETH" : "ETH", - "USDT": "USDT", - "TBTC": "TBTC", - "TETH": "TETH", - "TUSDT": "TUSDT", - "BNB": "BNB", - "BUSD": "BUSD", - "DOGE": "DOGE", - "LTC": "LTC", - "TBNB": "TBUSD", - "TBUSD": "TBUSD", - "BCH": "BCH" - }, - "marketInterval": { - "24h": "24 hours", - "7d": "7 days", - "1M": "30 days" - }, - "routes": { - "/panel/settings/profile": "User Profile", - "/panel/settings/security": "Security", - "/panel/settings/personalization": "Customize", - "/panel/settings/authentication": "Identity Verification" - }, - "orderStatus": { - "NEW": "New Order", - "REJECTED": "Rejected", - "FILLED": "Filled", - "CANCELED": "Canceled", - "PENDING_CANCEL": "Pending Cancel", - "EXPIRED": "Expired", - "PARTIALLY_FILLED": "Partially Filled" - }, - "paymentStatus": { - "Open": "Open", - "Canceled": "Canceled", - "Expired": "Expired", - "Done": "Done", - "Failed": "Failed", - "Undefined": "Undefined" - }, - "messagesTitle": { - "successful": "successful", - "login": "Successful login", - "cancel": "cancel order", - "done": "done", - "inCompleted": "inCompleted" - }, - "orderTypes": { - "LIMIT": "Limit", - "MARKET": "Market", - "STOP_LOSS": "Stop Loss", - "STOP_LOSS_LIMIT": "Stop Loss Limit", - "TAKE_PROFIT": "Take Profit", - "TAKE_PROFIT_LIMIT": "Take Profit Limit", - "LIMIT_MAKER": "Limit Maker" - }, - "header": { - "lastPrice" : "Last Price", - "availableBalance" : "Available Balance", - "free": "Available", - "locked": "Locked", - "inWithdrawalProcess": "Pending Withdrawal", - "logOutSuccess": "Successfully logged out.", - "logOutError": "An error occurred. please try again!" - }, - "overview": { - "title": "Overview", - "change": "Change", - "volume": "Volume", - "lastDay": "24 Hours", - "lastWeek": "1 Week", - "lastMonth": "30 Days" - }, - "market": { - "title": "Market" - }, - "wallet": { - "title": "Wallet" - }, - "technical": { - "title": "Technical" - }, - "messages": { - "title": "Messages" - }, - "settings": { - "title": "Settings" - }, - "Languages": { - "Persian": "فارسی", - "English": "English", - "Arabic": "عربي" - }, - "Theme": { - "Light": "Light", - "Dark": "Dark" - }, - "Calendar": { - "IRCalender": "Iranian Calender", - "GCCalender": "Gregorian Calender" - }, - "TimeZone": { - "THR": "Asia / Tehran / UTC+3:30", - "UTC" : "UTC" - }, - "orders": { - "title": "Order", - "minOrder": "Minimum allowed order is {{min}} {{currency}}", - "maxOrder": "Maximum allowed order is {{max}} {{currency}}", - "divisibility": "Divisibility !", - "notEnoughBalance": "Insufficient Balance ", - "availableAmount": "Available Amount", - "bestOffer": "Best Offer", - "stopLimit": "Stop Limit", - "stopPrice": "Stop Price", - "amount": "Amount", - "pricePerUnit": "Unit Price", - "marketBuyPrice": "Market Buy", - "marketSellPrice": "Market Sell", - "totalPrice": "Total Price", - "tradeFee": "Exchange Fee", - "getAmount": "Received Amount", - "hasNoOffer": "No Offer Exist", - "error": "Error!", - "success": "The {{type}} order of {{reqAmount}} {{base}} is registered at the price of {{pricePerUnit}} {{quote}}." - }, - "LastTrades": { - "title": "Recent Trades" - }, - "charts": { - "title": "Charts", - "noChartData": "No information found!", - "globalChart": "Global", - "opexChart": "Opex" - }, - "orderBook": { - "title": "Order Book" - }, - "myOrders": { - "title": "My Orders", - "donePercentage": "% done", - "stoppedPrice": "Stopped Price", - "orderId": "Order ID", - "tradeId": "Trade ID", - "tradedAmount": "Traded", - "avgTradedAmount": "Avg Traded Amount", - "tradedPrice": "Traded Price", - "aliveOrder": "Live", - "stoppedOrder": "Stopped", - "orderHistory": "History", - "stopOrderTime": "Stop Order Time", - "startOrderTime": "Start Order Time", - "cancelOrder": "Cancel Order", - "orders": "Orders", - "cancelSuccess": "Order successfully canceled!", - "cancelError": "Order not canceled" - }, - "WalletSubMenu": { - "title": "Wallet", - "totalValue": "Total Value", - "approximate": "Approximate", - "equivalent": "Equivalent", - "showZeroBalance": "Do not show zero balance.", - "estimateAlert": "The equivalent amount is calculated based on the highest buy offer" - }, - "DepositWithdraw": { - "title": "Deposit / Withdraw", - "success": "The Address is copied.", - "copy": "Copied!", - "IRTAllowable": "The minimum amount must be {{min}} IRT and the maximum {{max}} IRT.", - "emptyInput": "Enter the required value.", - "IRTText": "The invoice with the amount of {{amount}} IRT is created on {{date}}, {{time}. you will be directed to the payment portal through the green button below. To create a new invoice, pay or cancel the previous invoice.", - "IRTFormText": "To deposit, first, create an invoice, the allowed amount of the deposit is at least {{min}} IRT and at most {{max}} IRT.", - "pay": "Pay", - "cancel": "Cancel", - "seconds": "Seconds", - "submitPaymentReq": "Submit Payment Request", - "noInventory": "Your balance is not enough.", - "allowableWithdraw": "Minimum allowable withdrawal amount has not been observed.", - "fillAddress": "You must enter an address.", - "important": "Important", - "DepositTETHContentBefore": "Ropsten network ETH test Only accepted! For free download", - "DepositTETHContentAfter": "go to send a test ETH to this address. You must change your wallet Etherium network to Ropsten. This network is on the Metamask wallet network list by default. Any transaction with an amount equal to or greater than 0.001 ETH to the above address will be added to your account.", - "minDeposit": "The minimum acceptable amount {{min}} {{currency}}", - "minDepositText": "Any transaction with a value greater than {{min}} {{currency}} will be added to your account at the following address.", - "DepositTBTCContentBefore": "Only BTC test accepted! For free download", - "DepositTBTCContentAfter": "go to any transaction with an amount equal to or greater than 0.001 BTC to the above address will be added to your account.", - "DepositTUSDTContentBefore": "Only USDT Ropsten Network Test is accepted! To learn how to get free,", - "DepositTUSDTContentAfter": "Go. To send a USDT test to this address, you must change your wallet atrium network to Ropsten. This network is on the Metamask wallet network list by default. Any transaction with an amount equal to or greater than From 10 USDT to the above address will be added to your account.", - "depositTime": "* Your balance will increase {{time}} minutes after depositing to the above address.", - "securityConsiderations": "Due to security considerations, the transfer to the account may be delayed slightly. You can see the withdrawal status on the same page in the Deposit / Withdrawal Transactions section.", - "network": "Network", - "selectNetwork": "Select Network" - }, - "CallbackPage": { - "ok": "The deposit was successful.", - "failed": "Deposit failed.", - "noData": "No content to show!", - "errorMessage": "Error Message" - }, - "IPGErrorCode": { - "13003": "You are not allowed to pay.", - "13004":"You have an unpaid request.", - "13005": "Request locked.", - "13007": "Unknown Error" - }, - "DepositWithdrawTx": { - "title": "Deposit / Withdraw Transactions", - "depositWithdrawal": "Deposit / Withdrawal", - "withdrawalSend": "Withdrawal / Send", - "transactionType": "Transaction Type", - "transactionId": "Transaction ID", - "blockchainTransactionId": "Blockchain Transaction ID", - "price": "Price", - "destination": "Origin / Destination", - "inventory": "Inventory after transaction", - "freeWallet": "Free Asset", - "minWithdraw": "Minimum withdrawal amount", - "minDeposit": "Minimum Deposit Amount", - "maxWithdraw": "Your daily withdrawal limit", - "maxMonthWithdraw": "Your monthly withdrawal limit", - "withdrawWarn": "Please note! Incorrect entry of address can result in loss of capital.", - "withdrawReqSubmit": "withdraw withdrawal request", - "destAddress": "Receive Address", - "reqAmount": "Your Receipt", - "network": "Network", - "success": "{{amount}} {{asset}} withdrawal request is successfully registered", - "IRTsuccess": "Deposit request {{amount}} Tomans is successfully registered", - "cancel": "cancel", - "cancelPayment": "Payment operation canceled!" - }, - "transactionType": { - "deposit": "Deposit", - "withdrawal": "Withdrawal", - "Received": "Received", - "send": "Send" - }, - "OrdersTrades": { - "title": "Orders and Transactions", - "aliveOrder": "Current Orders", - "stop": "Stop", - "cancelClose": "Canceled and closed", - "trades": "Trades", - "side": "Side", - "order": "Order", - "done": "Done", - "donePercentage": "% done", - "stoppedPrice": "Stop price", - "ordersHistory": "Order History", - "type": "type", - "market": "Market", - "limit": "Limited", - "paid": "Paid" - }, - "MessagesSubMenu": { - "title": "Notifications", - "myMessages": "My Messages", - "news": "News" - }, - "SettingsSubMenu": { - "title": "Settings", - "userProfile": "User Profile", - "security": "Security", - "personalization": "Personalization", - "authentication": "Authentication" - }, - "UserAccountStatus": { - "title": "Account Status", - "userAccountLevel1": "User Level 1", - "minInput": "{{name}} must be at least {{min}} characters.", - "dailyWithdrawal": "Daily currency withdrawal: equivalent to {{amount}} Tomans from 20,000,000 Tomans", - "dailyDeposit": "Daily foreign currency deposit: equivalent to {{amount}} Tomans from 20,000,000 Tomans", - "dailyWithdrawalCryptoCurrency": "Daily cryptocurrency withdrawal: equivalent to {{amount}} of 20,000,000 Tomans", - "dailyDepositCryptoCurrency": "Daily cryptocurrency deposit: equivalent to {{amount}} of 20,000,000 Tomans", - "monthlyWithdrawal": "Monthly currency withdrawal: equivalent to {{amount}} Tomans from 20,000,000 Tomans", - "monthlyDeposit": "Monthly deposit: equivalent to {{amount}} of 20,000,000 Tomans", - "monthlyWithdrawalCryptoCurrency": "Monthly cryptocurrency withdrawal: equivalent to {{amount}} of 20,000,000 Tomans", - "monthlyDepositCryptoCurrency": "Monthly deposit deposit: equivalent to {{amount}} Tomans from 20,000,000 Tomans", - "tradesCommission": "Trading fee: {{amount}} taker, {{num}}" - }, - "PersonalProfile": { - "title": "Personal Profile", - "cantEdit": "Your authentication is complete. Your cannot edit your profile.", - "userLevel / fee": "User Level / Fees", - "firstNameEn": "Firstname (English)", - "lastNameEn": "Lastname (English)", - "firstNameMain": "Firstname (Main Language)", - "lastNameMain": "Lastname (Main Language)", - "nationality": "Nationality", - "residence": "Residence", - "birthdayG": "Date of birth", - "birthdayJ": "Date of birth (Hijri)", - "nationalID": "National ID", - "passportNumber": "Passport Number", - "phoneNumber": "Phone Number", - "telephone": "Telephone", - "email": "Email", - "postalCode": "Postal Code", - "address": "Address", - "selectNationality": "Select your nationality", - "selectResidence": "Select your country of residence" - }, - "LoginReports": { - "title": "Login Reports" - }, - "ActiveSessions": { - "title": "Active Sessions", - "ip": "IP", - "LOGGED_IN": "Logged in", - "LOGGING_OUT": "Logging out", - "LOGGED_OUT": "Logged out", - "details": "Details", - "closeSession": "Close Session", - "success": "{{location}} session closed successfully.", - "failed": "Server error, please try again.", - "logOutAllSuccess": "Other sessions closed successfully.", - "logOutAllError": "Server error, please try again.", - "noData": "Item not found!", - "thisSession": "Current Session", - "otherSession": "Other Sessions", - "closeOtherSessions": "Close all other sessions." - }, - "ChangePassword": { - "title": "Change Password", - "newPassword": "New Password", - "confirmation": "New Password Confirmation", - "currentPassword": "Current Password", - "success": "Password changed successfully.", - "error": "Password change failed.", - "minInput": "{{name}} must be at least {{min}} characters.", - "emptyInput": "You must enter the {{name}} field.", - "confirmationError": "New password and confirm password don't match.", - "currentPasswordError": "Current password has been entered incorrectly." - }, - "SetTwoStepVerification": { - "title": "Set Two Step Verification", - "!title": "Disable 2-Step Login", - "code": "Code", - "active": "Activate", - "isActive": "Two-step login is enabled.", - "deActive": "Deactivate", - "success": "Two-step login enabled successfully.", - "error": "Two-step login has been disabled.", - "initialCodeMin": "The code must be 6 digits long.", - "initialCodeError": "Entered code is incorrect.", - "serverError": "Server error, please try again.", - "description": "If two-step login is enabled, a two-step password will be requested for each login to the user panel.", - "QRdescription": "Scan the QR code using the Google Authenticator software (or similar), enter the 6-digit number and register." - }, - "HelpStep": { - "title": "Step 1 of 4: User's Guide", - "content": "In order to use all services of this exchange and activate withdrawing option, your identity must be verified. The authentication process is simple and online. In the next steps, you will be asked to enter your personal information in the relevant form. Enter and send the pictures, ID card and the agreement letter." - }, - "PersonalProfileStep": { - "title": "Step 2 of 4: Enter Your Personal Information.", - "serverError": "Error retrieving information, please try again.", - "minInput": "{{name}} must be at least {{min}} characters.", - "wrongDateG": "Wrong date format!", - "wrongDateJ": "Wrong date format!", - "wrongNationalId": "You personal ID number is incorrect!", - "wrongPassportNumber": "Passport number is incorrect!", - "emptyInput": "{{name}} field is required.", - "yy/mm//dd": "Day/Month/Year" - }, - "SendPhotosStep": { - "title": "Step 3 of 4: Send Pictures", - "content": "To complete the authentication, please follow the steps below:", - "acceptForm": "1) Write the agreement letter to use the services on an A4 paper, sign and take a photo of it.", - "selfie": "2) Take a selfie of yourself holding the agreement letter in front of your chest.", - "idCard": "3) Take a selfie of yourself holding a birth certificate or ID card in front of your chest.", - "acceptFormLink": "(Agreement Letter Sample)", - "selfieLink": "(Sample)", - "idCardLink": "(Sample)", - "acceptFormDropzone": "Agreement Letter:", - "selfieDropzone": "Selfie with Agreement Letter:", - "idCardDropzone": "Selfie with a birth certificate or ID card", - "sendingData": "Sending Data...", - "imageAcceptedFormat": "- Please upload photos in JPEG and PNG format only!", - "imageAcceptedSize": "- The maximum acceptable size for uploading the photos is 1 MB!", - "acceptFormEmpty": "Upload a photo of the agreement letter!", - "selfieEmpty": "Upload a selfie with the print of your agreement letter in your hands!", - "idCardEmpty": "Upload a selfie with your ID card!", - "serverError": "Error sending pictures, try again!" - }, - "SendToAdminStep": { - "title": "Step 4 of 4: Send to Admin", - "content": "Profile registered successfully. Your authentication status is as follows:", - "pending": "Pending", - "accepted": "Authentication has been completed successfully.", - "rejected": "Authentication failed, please try again!", - "blocked": "Authentication failed!", - "noData": "No Data!", - "errorMessage": "Error Message" - }, - "Authentication": { - "HelpStep": "User's Guide", - "PersonalProfileStep": "Personal Profile", - "SendPhotosStep": "Send Photos", - "SendToAdminStep": "Send to Admin" - }, - "PersonalizationForm": { - "title": "Personalization", - "placeholder": "Select", - "defaultLang": "Default Language", - "defaultTheme": "Default Theme", - "defaultCalendarSystem": "Default Calendar System", - "defaultTimeZone": "Time Zone", - "defaultReferenceCurrency": "Reference Currency", - "defaultReferenceCryptoCurrency": "Reference Cryptocurrency", - "save": "Save" - }, - "login": { - "title": "Login/Register", - "wrongPassword": "Username or password is incorrect!", - "wrongOTP": "Entered OTP is incorrect!", - "wrongPasswordConfirmation": "Password and confirm password don't match.", - "forgetPassword": "Forget Password", - "accountNotActive": "Your account has not been activated yet.", - "enter": "Enter", - "resetPassword": "Reset Password", - "inputError": "Password / Username characters input not valid.", - "loginError": "Server connection error!", - "registerFinished": "Registration completed successfully!", - "forgetPasswordFinished": "Password recovery request sent successfully!", - "registerFinishedGoToMail": "Please go to {{email}} inbox to complete the registration.", - "registerFinishedSpamMail": "Email sent from for.demo.purpose.only@opex.dev may be in your spam folder!", - "register": "Register", - "wrongEmail": "The entered email is invalid!", - "emptyEmail": "Enter your email.", - "emptyInput": "Username and Password field is required.", - "emptyCredentialError": "Entering username and password is required.", - "minInput": "{{name}} must be at least {{min}} characters.", - "finishedWithError": "Error creating new user!", - "back": "Back", - "description": "OPen source EXchange", - "OTPRequired": "A two-factor password (OTP) is required!", - "otpLength": "The two-factor code must be 6 characters.", - "refreshCaptcha": "Show captcha again!", - "captchaServerError": "Server error to get Captcha!", - "InvalidCaptcha": "Captcha entered incorrectly!", - "minCaptcha": "Captcha must be 5 characters!", - "emptyCaptcha": "Captcha required!", - "forgetPassServerError": "Error recovering password, try again!", - "forgetPassEmailForgetError": "Email format is incorrect!" - }, - "userPage": { - "title": "", - "success": "Email verified successfully.", - "failed": "Verification failed, please try again!", - "serverError": "Server error, please try again." - }, - "Landing": { - "title": "Cryptocurrency Exchange Platform" - }, - "MarketTitle": { - "content": "Designed specifically to meet your needs.", - "advancedTrading": "Advanced Trading", - "easyTrading": "Easy Trading" - }, - "GeneralInfo": { - "activeUsers": "Active Users", - "totalOrders": "Total Orders", - "totalTrades": "Total Trades" - }, - "MarketInfo": { - "viewAllMarket": "View All Market", - "name": "Name", - "cryptocurrency": "Cryptocurrency", - "lastPrice": "Last Price", - "lowPrice": "Low Price", - "highPrice": "High Price", - "priceChange": "Price Change", - "chart": "Chart", - "volume": "Volume", - "details": "Details", - "trade": "Trade", - "marketCap": "Market Cap" - }, - "MarketView": { - "title": "Market Stats ( 24H )", - "mostIncreased": "Most Increased", - "mostDecreased": "Most Decreased", - "mostTrades": "Most Trades", - "mostVolume": "Most Volume", - "nullResponse": "No transactions in the last {{interval}}" - }, - "footer": { - "darkMode": "Dark Mode", - "aboutUs" : "About Us", - "contactUS" : "Contact Us", - "blog" : "Blog", - "guide": "Guide", - "rules": "Rules", - "api": "API", - "addCoin": "Add Coin", - "demo": "Market Demo", - "errorReport": "Error Report", - "copyright": "© 2021 OPEX. All rights reserved." - }, - "ImageInput": { - "title": "", - "dropText": "Upload by drag and drop / browsing.", - "iconErrorText": "The uploaded photo is not valid, please try again!", - "fileTooLarge": "The uploaded file size is larger than the maximum allowed!", - "fileInvalidType": "Uploaded file format is not acceptable!", - "tooManyFiles": "Uploading more than one photo is not allowed!", - "errorMsgDefault": "Uploaded photo is not valid!" - }, - "errorPage" : { - "needKYC" : "Access denied for KYC status", - "reload" : "Try Again", - "errorText" : "Server connection error" - } +{ + "title": "OPEX", + "signIn":"Sign In", + "signUp": "Sign Up", + "signOut":"Sign Out", + "date": "Date", + "time": "Time", + "volume": "Volume", + "totalVolume": "Total Volume", + "price": "Price", + "pricePerUnit": "Price Per Unit", + "totalPrice": "Total Price", + "averagePrice": "Average Price", + "min": "Min", + "max": "Max", + "buy": "Buy", + "sell": "Sell", + "all": "All", + "orderType": "Order Type", + "status" : "Status", + "pleaseLogin" : "Please Log In!", + "comingSoon" : "Coming Soon!", + "deposit": "Deposit", + "withdrawal": "Withdrawal", + "transfer": "Transfer", + "destination": "Destination", + "details": "Details", + "commission": "Commission", + "nextStep": "Next Step", + "prevStep": "Prev Step", + "submit": "Submit", + "username": "Username", + "password": "Password", + "confirmPassword": "Confirm Password", + "otp": "OTP", + "firstName": "First Name", + "lastName": "Last Name", + "email": "Email", + "captchaAnswer": "Captcha", + "desktopSupport": "Mobile view not available!", + "error": "Something Wrong Happened!", + "loading": "Loading...", + "noData": "No content to show!", + "noTx": "There is no transaction!", + "close": "Close", + "unit": "Unit", + "offline": "Check your connection!", + "country": { + "iran" : "I. R. IRAN", + "germany" : "Germany", + "uk": "United Kingdom", + "turkey" : "Turkey" + }, + "currency": { + "IRT" : "IRT", + "Euro" : "Euro", + "USD" : "USD", + "BTC" : "BTC", + "ETH" : "ETH", + "USDT": "USDT", + "TBTC": "TBTC", + "TETH": "TETH", + "TUSDT": "TUSDT", + "BNB": "BNB", + "BUSD": "BUSD", + "DOGE": "DOGE", + "LTC": "LTC", + "TBNB": "TBUSD", + "TBUSD": "TBUSD", + "BCH": "BCH" + }, + "marketInterval": { + "24h": "24 hours", + "7d": "7 days", + "1M": "30 days" + }, + "routes": { + "/panel/settings/profile": "User Profile", + "/panel/settings/security": "Security", + "/panel/settings/personalization": "Customize", + "/panel/settings/authentication": "Identity Verification" + }, + "orderStatus": { + "NEW": "New Order", + "REJECTED": "Rejected", + "FILLED": "Filled", + "CANCELED": "Canceled", + "PENDING_CANCEL": "Pending Cancel", + "EXPIRED": "Expired", + "PARTIALLY_FILLED": "Partially Filled" + }, + "paymentStatus": { + "Open": "Open", + "Canceled": "Canceled", + "Expired": "Expired", + "Done": "Done", + "Failed": "Failed", + "Undefined": "Undefined" + }, + "messagesTitle": { + "successful": "successful", + "login": "Successful login", + "cancel": "cancel order", + "done": "done", + "inCompleted": "inCompleted" + }, + "orderTypes": { + "LIMIT": "Limit", + "MARKET": "Market", + "STOP_LOSS": "Stop Loss", + "STOP_LOSS_LIMIT": "Stop Loss Limit", + "TAKE_PROFIT": "Take Profit", + "TAKE_PROFIT_LIMIT": "Take Profit Limit", + "LIMIT_MAKER": "Limit Maker" + }, + "header": { + "lastPrice" : "Last Price", + "availableBalance" : "Available Balance", + "free": "Available", + "locked": "Locked", + "inWithdrawalProcess": "Pending Withdrawal", + "logOutSuccess": "Successfully logged out.", + "logOutError": "An error occurred. please try again!" + }, + "overview": { + "title": "Overview", + "change": "Change", + "volume": "Volume", + "lastDay": "24 Hours", + "lastWeek": "1 Week", + "lastMonth": "30 Days" + }, + "market": { + "title": "Market" + }, + "wallet": { + "title": "Wallet" + }, + "technical": { + "title": "Technical" + }, + "messages": { + "title": "Messages" + }, + "settings": { + "title": "Settings" + }, + "Languages": { + "Persian": "فارسی", + "English": "English", + "Arabic": "عربي" + }, + "Theme": { + "Light": "Light", + "Dark": "Dark" + }, + "Calendar": { + "IRCalender": "Iranian Calender", + "GCCalender": "Gregorian Calender" + }, + "TimeZone": { + "THR": "Asia / Tehran / UTC+3:30", + "UTC" : "UTC" + }, + "orders": { + "title": "Order", + "minOrder": "Minimum allowed order is {{min}} {{currency}}", + "maxOrder": "Maximum allowed order is {{max}} {{currency}}", + "divisibility": "Divisibility !", + "notEnoughBalance": "Insufficient Balance ", + "availableAmount": "Available Amount", + "bestOffer": "Best Offer", + "stopLimit": "Stop Limit", + "stopPrice": "Stop Price", + "amount": "Amount", + "pricePerUnit": "Unit Price", + "marketBuyPrice": "Market Buy", + "marketSellPrice": "Market Sell", + "totalPrice": "Total Price", + "tradeFee": "Exchange Fee", + "getAmount": "Received Amount", + "hasNoOffer": "No Offer Exist", + "error": "Error!", + "success": "The {{type}} order of {{reqAmount}} {{base}} is registered at the price of {{pricePerUnit}} {{quote}}." + }, + "LastTrades": { + "title": "Recent Trades" + }, + "charts": { + "title": "Charts", + "noChartData": "No information found!", + "globalChart": "Global", + "opexChart": "Opex" + }, + "orderBook": { + "title": "Order Book" + }, + "myOrders": { + "title": "My Orders", + "donePercentage": "% done", + "stoppedPrice": "Stopped Price", + "orderId": "Order ID", + "tradeId": "Trade ID", + "tradedAmount": "Traded", + "avgTradedAmount": "Avg Traded Amount", + "tradedPrice": "Traded Price", + "aliveOrder": "Live", + "stoppedOrder": "Stopped", + "orderHistory": "History", + "stopOrderTime": "Stop Order Time", + "startOrderTime": "Start Order Time", + "cancelOrder": "Cancel Order", + "orders": "Orders", + "cancelSuccess": "Order successfully canceled!", + "cancelError": "Order not canceled" + }, + "WalletSubMenu": { + "title": "Wallet", + "totalValue": "Total Value", + "approximate": "Approximate", + "equivalent": "Equivalent", + "showZeroBalance": "Do not show zero balance.", + "estimateAlert": "The equivalent amount is calculated based on the highest buy offer" + }, + "DepositWithdraw": { + "title": "Deposit / Withdraw", + "success": "The Address is copied.", + "copy": "Copied!", + "IRTAllowable": "The minimum amount must be {{min}} IRT and the maximum {{max}} IRT.", + "emptyInput": "Enter the required value.", + "IRTText": "The invoice with the amount of {{amount}} IRT is created on {{date}}, {{time}. you will be directed to the payment portal through the green button below. To create a new invoice, pay or cancel the previous invoice.", + "IRTFormText": "To deposit, first, create an invoice, the allowed amount of the deposit is at least {{min}} IRT and at most {{max}} IRT.", + "pay": "Pay", + "cancel": "Cancel", + "seconds": "Seconds", + "submitPaymentReq": "Submit Payment Request", + "noInventory": "Your balance is not enough.", + "allowableWithdraw": "Minimum allowable withdrawal amount has not been observed.", + "fillAddress": "You must enter an address.", + "important": "Important", + "DepositTETHContentBefore": "Ropsten network ETH test Only accepted! For free download", + "DepositTETHContentAfter": "go to send a test ETH to this address. You must change your wallet Etherium network to Ropsten. This network is on the Metamask wallet network list by default. Any transaction with an amount equal to or greater than 0.001 ETH to the above address will be added to your account.", + "minDeposit": "The minimum acceptable amount {{min}} {{currency}}", + "minDepositText": "Any transaction with a value greater than {{min}} {{currency}} will be added to your account at the following address.", + "DepositTBTCContentBefore": "Only BTC test accepted! For free download", + "DepositTBTCContentAfter": "go to any transaction with an amount equal to or greater than 0.001 BTC to the above address will be added to your account.", + "DepositTUSDTContentBefore": "Only USDT Ropsten Network Test is accepted! To learn how to get free,", + "DepositTUSDTContentAfter": "Go. To send a USDT test to this address, you must change your wallet atrium network to Ropsten. This network is on the Metamask wallet network list by default. Any transaction with an amount equal to or greater than From 10 USDT to the above address will be added to your account.", + "depositTime": "* Your balance will increase {{time}} minutes after depositing to the above address.", + "securityConsiderations": "Due to security considerations, the transfer to the account may be delayed slightly. You can see the withdrawal status on the same page in the Deposit / Withdrawal Transactions section.", + "network": "Network", + "selectNetwork": "Select Network" + }, + "CallbackPage": { + "ok": "The deposit was successful.", + "failed": "Deposit failed.", + "noData": "No content to show!", + "errorMessage": "Error Message" + }, + "IPGErrorCode": { + "13003": "You are not allowed to pay.", + "13004":"You have an unpaid request.", + "13005": "Request locked.", + "13007": "Unknown Error" + }, + "DepositWithdrawTx": { + "title": "Deposit / Withdraw Transactions", + "depositWithdrawal": "Deposit / Withdrawal", + "withdrawalSend": "Withdrawal / Send", + "transactionType": "Transaction Type", + "transactionId": "Transaction ID", + "blockchainTransactionId": "Blockchain Transaction ID", + "price": "Price", + "destination": "Origin / Destination", + "inventory": "Inventory after transaction", + "freeWallet": "Free Asset", + "minWithdraw": "Minimum withdrawal amount", + "minDeposit": "Minimum Deposit Amount", + "maxWithdraw": "Your daily withdrawal limit", + "maxMonthWithdraw": "Your monthly withdrawal limit", + "withdrawWarn": "Please note! Incorrect entry of address can result in loss of capital.", + "withdrawReqSubmit": "withdraw withdrawal request", + "destAddress": "Receive Address", + "reqAmount": "Your Receipt", + "network": "Network", + "success": "{{amount}} {{asset}} withdrawal request is successfully registered", + "IRTsuccess": "Deposit request {{amount}} Tomans is successfully registered", + "cancel": "cancel", + "cancelPayment": "Payment operation canceled!" + }, + "transactionType": { + "deposit": "Deposit", + "withdrawal": "Withdrawal", + "Received": "Received", + "send": "Send" + }, + "OrdersTrades": { + "title": "Orders and Transactions", + "aliveOrder": "Current Orders", + "stop": "Stop", + "cancelClose": "Canceled and closed", + "trades": "Trades", + "side": "Side", + "order": "Order", + "done": "Done", + "donePercentage": "% done", + "stoppedPrice": "Stop price", + "ordersHistory": "Order History", + "type": "type", + "market": "Market", + "limit": "Limited", + "paid": "Paid" + }, + "MessagesSubMenu": { + "title": "Notifications", + "myMessages": "My Messages", + "news": "News" + }, + "SettingsSubMenu": { + "title": "Settings", + "userProfile": "User Profile", + "security": "Security", + "personalization": "Personalization", + "authentication": "Authentication" + }, + "UserAccountStatus": { + "title": "Account Status", + "userAccountLevel1": "User Level 1", + "minInput": "{{name}} must be at least {{min}} characters.", + "dailyWithdrawal": "Daily currency withdrawal: equivalent to {{amount}} Tomans from 20,000,000 Tomans", + "dailyDeposit": "Daily foreign currency deposit: equivalent to {{amount}} Tomans from 20,000,000 Tomans", + "dailyWithdrawalCryptoCurrency": "Daily cryptocurrency withdrawal: equivalent to {{amount}} of 20,000,000 Tomans", + "dailyDepositCryptoCurrency": "Daily cryptocurrency deposit: equivalent to {{amount}} of 20,000,000 Tomans", + "monthlyWithdrawal": "Monthly currency withdrawal: equivalent to {{amount}} Tomans from 20,000,000 Tomans", + "monthlyDeposit": "Monthly deposit: equivalent to {{amount}} of 20,000,000 Tomans", + "monthlyWithdrawalCryptoCurrency": "Monthly cryptocurrency withdrawal: equivalent to {{amount}} of 20,000,000 Tomans", + "monthlyDepositCryptoCurrency": "Monthly deposit deposit: equivalent to {{amount}} Tomans from 20,000,000 Tomans", + "tradesCommission": "Trading fee: {{amount}} taker, {{num}}" + }, + "PersonalProfile": { + "title": "Personal Profile", + "cantEdit": "Your authentication is complete. Your cannot edit your profile.", + "userLevel / fee": "User Level / Fees", + "firstNameEn": "Firstname (English)", + "lastNameEn": "Lastname (English)", + "firstNameMain": "Firstname (Main Language)", + "lastNameMain": "Lastname (Main Language)", + "nationality": "Nationality", + "residence": "Residence", + "birthdayG": "Date of birth", + "birthdayJ": "Date of birth (Hijri)", + "nationalID": "National ID", + "passportNumber": "Passport Number", + "phoneNumber": "Phone Number", + "telephone": "Telephone", + "email": "Email", + "postalCode": "Postal Code", + "address": "Address", + "selectNationality": "Select your nationality", + "selectResidence": "Select your country of residence" + }, + "LoginReports": { + "title": "Login Reports" + }, + "ActiveSessions": { + "title": "Active Sessions", + "ip": "IP", + "LOGGED_IN": "Logged in", + "LOGGING_OUT": "Logging out", + "LOGGED_OUT": "Logged out", + "details": "Details", + "closeSession": "Close Session", + "success": "{{location}} session closed successfully.", + "failed": "Server error, please try again.", + "logOutAllSuccess": "Other sessions closed successfully.", + "logOutAllError": "Server error, please try again.", + "noData": "Item not found!", + "thisSession": "Current Session", + "otherSession": "Other Sessions", + "closeOtherSessions": "Close all other sessions." + }, + "ChangePassword": { + "title": "Change Password", + "newPassword": "New Password", + "confirmation": "New Password Confirmation", + "currentPassword": "Current Password", + "success": "Password changed successfully.", + "error": "Password change failed.", + "minInput": "{{name}} must be at least {{min}} characters.", + "emptyInput": "You must enter the {{name}} field.", + "confirmationError": "New password and confirm password don't match.", + "currentPasswordError": "Current password has been entered incorrectly." + }, + "SetTwoStepVerification": { + "title": "Set Two Step Verification", + "!title": "Disable 2-Step Login", + "code": "Code", + "active": "Activate", + "isActive": "Two-step login is enabled.", + "deActive": "Deactivate", + "success": "Two-step login enabled successfully.", + "error": "Two-step login has been disabled.", + "initialCodeMin": "The code must be 6 digits long.", + "initialCodeError": "Entered code is incorrect.", + "serverError": "Server error, please try again.", + "description": "If two-step login is enabled, a two-step password will be requested for each login to the user panel.", + "QRdescription": "Scan the QR code using the Google Authenticator software (or similar), enter the 6-digit number and register." + }, + "HelpStep": { + "title": "Step 1 of 4: User's Guide", + "content": "In order to use all services of this exchange and activate withdrawing option, your identity must be verified. The authentication process is simple and online. In the next steps, you will be asked to enter your personal information in the relevant form. Enter and send the pictures, ID card and the agreement letter." + }, + "PersonalProfileStep": { + "title": "Step 2 of 4: Enter Your Personal Information.", + "serverError": "Error retrieving information, please try again.", + "minInput": "{{name}} must be at least {{min}} characters.", + "wrongDateG": "Wrong date format!", + "wrongDateJ": "Wrong date format!", + "wrongNationalId": "You personal ID number is incorrect!", + "wrongPassportNumber": "Passport number is incorrect!", + "emptyInput": "{{name}} field is required.", + "yy/mm//dd": "Day/Month/Year" + }, + "SendPhotosStep": { + "title": "Step 3 of 4: Send Pictures", + "content": "To complete the authentication, please follow the steps below:", + "acceptForm": "1) Write the agreement letter to use the services on an A4 paper, sign and take a photo of it.", + "selfie": "2) Take a selfie of yourself holding the agreement letter in front of your chest.", + "idCard": "3) Take a selfie of yourself holding a birth certificate or ID card in front of your chest.", + "acceptFormLink": "(Agreement Letter Sample)", + "selfieLink": "(Sample)", + "idCardLink": "(Sample)", + "acceptFormDropzone": "Agreement Letter:", + "selfieDropzone": "Selfie with Agreement Letter:", + "idCardDropzone": "Selfie with a birth certificate or ID card", + "sendingData": "Sending Data...", + "imageAcceptedFormat": "- Please upload photos in JPEG and PNG format only!", + "imageAcceptedSize": "- The maximum acceptable size for uploading the photos is 1 MB!", + "acceptFormEmpty": "Upload a photo of the agreement letter!", + "selfieEmpty": "Upload a selfie with the print of your agreement letter in your hands!", + "idCardEmpty": "Upload a selfie with your ID card!", + "serverError": "Error sending pictures, try again!" + }, + "SendToAdminStep": { + "title": "Step 4 of 4: Send to Admin", + "content": "Profile registered successfully. Your authentication status is as follows:", + "pending": "Pending", + "accepted": "Authentication has been completed successfully.", + "rejected": "Authentication failed, please try again!", + "blocked": "Authentication failed!", + "noData": "No Data!", + "errorMessage": "Error Message" + }, + "Authentication": { + "HelpStep": "User's Guide", + "PersonalProfileStep": "Personal Profile", + "SendPhotosStep": "Send Photos", + "SendToAdminStep": "Send to Admin" + }, + "PersonalizationForm": { + "title": "Personalization", + "placeholder": "Select", + "defaultLang": "Default Language", + "defaultTheme": "Default Theme", + "defaultCalendarSystem": "Default Calendar System", + "defaultTimeZone": "Time Zone", + "defaultReferenceCurrency": "Reference Currency", + "defaultReferenceCryptoCurrency": "Reference Cryptocurrency", + "save": "Save" + }, + "login": { + "title": "Login/Register", + "wrongPassword": "Username or password is incorrect!", + "wrongOTP": "Entered OTP is incorrect!", + "wrongPasswordConfirmation": "Password and confirm password don't match.", + "forgetPassword": "Forget Password", + "accountNotActive": "Your account has not been activated yet.", + "enter": "Enter", + "resetPassword": "Reset Password", + "inputError": "Password / Username characters input not valid.", + "loginError": "Server connection error!", + "registerFinished": "Registration completed successfully!", + "forgetPasswordFinished": "Password recovery request sent successfully!", + "registerFinishedGoToMail": "Please go to {{email}} inbox to complete the registration.", + "registerFinishedSpamMail": "Email sent from {{email}} may be in your spam folder!", + "register": "Register", + "wrongEmail": "The entered email is invalid!", + "emptyEmail": "Enter your email.", + "emptyInput": "Username and Password field is required.", + "emptyCredentialError": "Entering username and password is required.", + "minInput": "{{name}} must be at least {{min}} characters.", + "finishedWithError": "Error creating new user!", + "back": "Back", + "description": "OPen source EXchange", + "OTPRequired": "A two-factor password (OTP) is required!", + "otpLength": "The two-factor code must be 6 characters.", + "refreshCaptcha": "Show captcha again!", + "captchaServerError": "Server error to get Captcha!", + "InvalidCaptcha": "Captcha entered incorrectly!", + "minCaptcha": "Captcha must be 5 characters!", + "emptyCaptcha": "Captcha required!", + "forgetPassServerError": "Error recovering password, try again!", + "UserAlreadyExists": "User with this email is already registered", + "forgetPassEmailForgetError": "Email format is incorrect!", + "forDemoLogin": "Click here for a testing login!" + }, + "userPage": { + "title": "", + "success": "Email verified successfully.", + "failed": "Verification failed, please try again!", + "serverError": "Server error, please try again." + }, + "Landing": { + "title": "Cryptocurrency Exchange Platform" + }, + "MarketTitle": { + "content": "Designed specifically to meet your needs.", + "advancedTrading": "Advanced Trading", + "easyTrading": "Easy Trading" + }, + "GeneralInfo": { + "activeUsers": "Active Users", + "totalOrders": "Total Orders", + "totalTrades": "Total Trades" + }, + "MarketInfo": { + "viewAllMarket": "View All Market", + "name": "Name", + "cryptocurrency": "Cryptocurrency", + "lastPrice": "Last Price", + "lowPrice": "Low Price", + "highPrice": "High Price", + "priceChange": "Price Change", + "chart": "Chart", + "volume": "Volume", + "details": "Details", + "trade": "Trade", + "marketCap": "Market Cap" + }, + "MarketView": { + "title": "Market Stats ( 24H )", + "mostIncreased": "Most Increased", + "mostDecreased": "Most Decreased", + "mostTrades": "Most Trades", + "mostVolume": "Most Volume", + "nullResponse": "No transactions in the last {{interval}}" + }, + "footer": { + "darkMode": "Dark Mode", + "aboutUs" : "About Us", + "contactUS" : "Contact Us", + "blog" : "Blog", + "guide": "Guide", + "rules": "Rules", + "api": "API", + "addCoin": "Add Coin", + "demo": "Market Demo", + "errorReport": "Error Report", + "copyright": "© 2021 OPEX. All rights reserved." + }, + "ImageInput": { + "title": "", + "dropText": "Upload by drag and drop / browsing.", + "iconErrorText": "The uploaded photo is not valid, please try again!", + "fileTooLarge": "The uploaded file size is larger than the maximum allowed!", + "fileInvalidType": "Uploaded file format is not acceptable!", + "tooManyFiles": "Uploading more than one photo is not allowed!", + "errorMsgDefault": "Uploaded photo is not valid!" + }, + "errorPage" : { + "needKYC" : "Access denied for KYC status", + "reload" : "Try Again", + "errorText" : "Server connection error" + } } \ No newline at end of file diff --git a/public/locales/fa/translation.json b/public/assets/locales/fa/translation.json similarity index 97% rename from public/locales/fa/translation.json rename to public/assets/locales/fa/translation.json index e45711b3..f9dfdb5a 100644 --- a/public/locales/fa/translation.json +++ b/public/assets/locales/fa/translation.json @@ -1,573 +1,575 @@ -{ - "title": "اوپکس", - "signIn": "ورود", - "signUp": "ثبت نام", - "signOut": "خروج", - "date": "تاریخ", - "time": "زمان", - "volume": "مقدار", - "totalVolume": "مقدار کل", - "price": "قیمت", - "pricePerUnit": "قیمت واحد", - "totalPrice": "قیمت کل", - "averagePrice": "قیمت میانگین", - "min": "حداقل", - "max": "حداکثر", - "buy": "خرید", - "sell": "فروش", - "all": "همه", - "orderType": "نوع سفارش", - "status": "وضعیت", - "pleaseLogin": "لطفاً وارد شوید!", - "comingSoon": "به زودی!", - "deposit": "واریز", - "withdrawal": "برداشت", - "transfer": "انتقال", - "destination": "مقصد", - "details": "جزئیات", - "commission": "کارمزد", - "nextStep": "گام بعدی", - "prevStep": "گام قبلی", - "submit": "ثبت", - "username": "نام کاربری", - "password": "رمز ورود", - "confirmPassword": "تکرار رمز ورود", - "otp": "رمز دو مرحله‌ای", - "firstName": "نام", - "lastName": "نام خانوادگی", - "email": "ایمیل", - "captchaAnswer": "Captcha", - "desktopSupport": "اوپکس فعلاً برای نمایش در موبایل بهینه نشده است. لطفاً لینک را در کامپیوتر باز کنید!", - "error": "خطا در دریافت اطلاعات!", - "loading": "در حال دریافت اطلاعات...", - "noData": "موردی برای نمایش وجود ندارد!", - "noTx": "تراکنشی وجود ندارد.", - "close": "بستن", - "unit": "واحد", - "offline": "اتصال اینترنت را بررسی کنید!", - "country": { - "iran" : "جمهوری اسلامی ایران", - "germany" : "آلمان", - "uk": "انگلستان", - "turkey" : "ترکیه" - }, - "currency": { - "IRT": "تومان", - "Euro": "یورو", - "USD": "دلار", - "BTC": "بیتکوین", - "ETH": "اتر", - "TBTC": "بیتکوین (ت)", - "TETH": "اتر (ت)", - "TUSDT": "تتر (ت)", - "USDT": "تتر", - "BNB": "بایننس", - "BUSD": "دلار بایننس", - "DOGE": "دوج کوین", - "LTC": "لایت کوین", - "TBNB": "بایننس (ت)", - "TBUSD": "دلار بایننس(ت)", - "BCH": "بیتکوین کش" - }, - "marketInterval": { - "24h": "24 ساعت", - "7d": "7 روز", - "1M": "30 روز" - }, - "routes": { - "/panel/settings/profile": "مشخصات کاربری", - "/panel/settings/security": "امنیت", - "/panel/settings/personalization": "سفارشی‌سازی", - "/panel/settings/authentication": "احراز هویت کاربری" - }, - "orderStatus": { - "NEW": "جاری شده", - "REJECTED": "رد شده", - "FILLED": "انجام شده", - "CANCELED": "لغو شده", - "PENDING_CANCEL": "لغو معلق", - "EXPIRED": "منقضی شده", - "PARTIALLY_FILLED": "کامل نشده" - }, - "paymentStatus": { - "Open": "جاری شده", - "Canceled": "لغو شده", - "Expired": "منقضی شده", - "Done": "انجام شده", - "Failed": "رد شده", - "Undefined": "تعریف نشده" - }, - "messagesTitle": { - "successful": "تائید معامله", - "login": "ورود موفق", - "cancel": "لغو سفارش", - "done": "سفارش موفق", - "inCompleted": "سفارش نیمه تمام" - }, - "orderTypes": { - "LIMIT": "محدود", - "MARKET": "بازار", - "STOP_LOSS": "*متوقف محدود", - "STOP_LOSS_LIMIT": "*متوقف محدود", - "TAKE_PROFIT": "*متوقف محدود", - "TAKE_PROFIT_LIMIT": "*متوقف محدود", - "LIMIT_MAKER": "*متوقف محدود" - }, - "header": { - "lastPrice": "آخرین قیمت", - "availableBalance": "موجودی قابل معامله", - "free": "دارایی آزاد", - "locked": "درگیر معامله", - "inWithdrawalProcess": "منتظر تسویه", - "logOutSuccess": "خروج با موفقیت انجام شد.", - "logOutError": "خطایی رخ داده است. لطفاً دوباره تلاش کنید!" - }, - "overview": { - "title": "نمای کلی", - "change": "تغییر", - "volume": "حجم معاملات", - "lastDay": "24 ساعته", - "lastWeek": "7 روزه", - "lastMonth": "30 روزه" - }, - "market": { - "title": "بازار" - }, - "wallet": { - "title": "دارایی ها" - }, - "technical": { - "title": "تکنیکال" - }, - "messages": { - "title": "پیام ها" - }, - "settings": { - "title": "تنظیمات" - }, - "Languages": { - "Persian": "فارسی", - "English": "English", - "Arabic": "عربي" - }, - "Theme": { - "Light": "روشن", - "Dark": "تاریک" - }, - "Calendar": { - "IRCalender": "هجری خورشیدی", - "GCCalender": "میلادی" - }, - "TimeZone": { - "THR": "آسیا / تهران / UTC+3:30", - "UTC" : 0 - }, - "orders": { - "title": "سفارش", - "minOrder": "حداقل مقدار سفارش {{min}} {{currency}} می‌باشد.", - "maxOrder": "حداکثر مقدار سفارش {{max}} {{currency}} می‌باشد.", - "divisibility": "مقدار وارد شده باید بر {{mod}} بخش‌پذیر باشد‍!", - "notEnoughBalance": "موجودی کافی نیست!", - "availableAmount": "موجودی قابل معامله", - "bestOffer": "بهترین پیشنهاد", - "stopLimit": "سفارش متوقف", - "stopPrice": "قیمت توقف", - "amount": "مقدار", - "pricePerUnit": "قیمت واحد", - "marketBuyPrice": "خرید به قیمت بازار", - "marketSellPrice": "فروش به قیمت بازار", - "totalPrice": "قیمت کل", - "tradeFee": "کارمزد", - "getAmount": "دریافتی شما", - "hasNoOffer": "پیشنهادی وجود ندارد!", - "error": "خطایی در ثبت سفارش رخ داده‌است.", - "success": "ثبت سفارش {{type}} {{reqAmount}} {{base}} با قیمت {{pricePerUnit}} {{quote}} با موفقیت انجام شد." - }, - "LastTrades": { - "title": "معامله های اخیر" - }, - "charts": { - "title": "نمودار قیمت", - "noChartData": "اطلاعاتی برای این جفت‌ارز موجود نیست", - "globalChart": "جهانی", - "opexChart": "داخلی" - }, - "orderBook": { - "title": "دفتر پیشنهادها" - }, - "myOrders": { - "title": "سفارش‌ها و معامله‌های من", - "donePercentage": "درصد انجام", - "stoppedPrice": "قیمت توقف", - "orderId": "شناسه سفارش", - "tradeId": "شناسه معامله", - "tradedAmount": "مقدار معامله شده", - "avgTradedAmount": "میانگین قیمت معامله", - "tradedPrice": "مبلغ معامله شده", - "aliveOrder": "سفارش‌های جاری", - "stoppedOrder": "متوقف", - "orderHistory": "تاریخچه سفارش‌ها", - "stopOrderTime": "زمان آخرین معامله", - "startOrderTime": "زمان ثبت سفارش", - "cancelOrder": "لغو سفارش", - "orders": "معامله‌ها", - "cancelSuccess": "سفارش با موفقیت لغو شد!", - "cancelError": "خطا در لغو سفارش" - }, - "WalletSubMenu": { - "title": "دارایی‌ها", - "totalValue": "ارزش کل", - "approximate": "تقریبی", - "equivalent": "معادل", - "showZeroBalance": "عدم نمایش موجودی صفر", - "estimateAlert": "مبلغ دارایی معادل براساس بالاترین پیشنهاد خرید محاسبه شده" - }, - "DepositWithdraw": { - "title": "واریز/برداشت", - "success": "آدرس کپی شد", - "copy": "کپی شد", - "IRTAllowable": "مقدار حداقل باید {{min}} تومان و حداکثر {{max}} تومان باشد.", - "emptyInput": "وارد کردن مقدار الزامی است.", - "IRTText": "صورتحساب با مبلغ {{amount}} تومان در تاریخ {{date}} ، ساعت {{time}} ایجاد شده است. از طریق دکمه سبز رنگ زیر به درگاه پرداخت هدایت می شوید. برای ایجاد صورتحساب جدید، صورتحساب قبلی را پرداخت و یا لغو کنید.", - "IRTFormText": "برای واریز وجه ابتدا صورتحساب را ایجاد کنید، مبلغ مجاز واریز حداقل {{min}} تومان و حداکثر {{max}} تومان است.", - "pay": "پرداخت", - "cancel": "لغو", - "seconds": "ثانیه", - "submitPaymentReq": "ثبت درخواست واریز", - "noInventory": "موجودی کافی نیست !", - "allowableWithdraw": "حداقل مقدار مجاز برداشت رعایت نشده است.", - "fillAddress": "وارد کردن آدرس الزامیست.", - "important": "مهم", - "DepositTETHContentBefore": "فقط ETH تستی شبکه Ropsten مورد قبول قرار می گیرد! برای دریافت رایگان به ", - "DepositTETHContentAfter": " بروید. برای ارسال ETH تستی به این آدرس، باید شبکه اتریومی کیف پول خود را به Ropsten تغییر دهید. این شبکه به طور پیش فرض در فهرست شبکه های کیف پول Metamask وجود دارد. هر تراکنشی با مقدار مساوی یا بیشتر از ۰.۰۰۱ ETH به آدرس بالا، به حساب شما افزوده می شود.", - "minDeposit": "حداقل میزان قابل قبول {{min}} {{currency}}", - "minDepositText": "هر تراکنشی با مقدار بیشتر از {{min}} {{currency}} به آدرس زیر ، به حساب شما افزوده می شود.", - "DepositTBTCContentBefore": "فقط BTC تستی مورد قبول قرار می گیرد! برای دریافت رایگان به ", - "DepositTBTCContentAfter": " بروید. هر تراکنشی با مقدار مساوی یا بیشتر از ۰.۰۰۱ BTC به آدرس بالا، به حساب شما افزوده می شود.", - "DepositTUSDTContentBefore": "فقط USDT تستی شبکه Ropsten مورد قبول قرار می گیرد! برای آشنایی با روش دریافت رایگان به ", - "DepositTUSDTContentAfter": " بروید. برای ارسال USDT تستی به این آدرس، باید شبکه اتریومی کیف پول خود را به Ropsten تغییر دهید. این شبکه به طور پیش فرض در فهرست شبکه های کیف پول Metamask وجود دارد. هر تراکنشی با مقدار مساوی یا بیشتر از ۱۰ USDT به آدرس بالا، به حساب شما افزوده می شود.", - "depositTime": "* موجودی شما {{time}} دقیقه بعد از واریز به آدرس بالا، افزایش پیدا می کند.", - "securityConsiderations": "باتوجه به ملاحظات امنیتی ممکن است انتقال به حساب با کمی تاخیر صورت بگیرد. می توانید وضعیت برداشت را در همین صفحه از بخش ترکنش های واریز/برداشت ببینید.", - "network": "شبکه", - "selectNetwork": " شبکه را انتخاب کنید" - }, - "CallbackPage": { - "ok": "واریز وجه با موفقیت انجام شد.", - "failed": "واریز وجه با خطا مواجه شد.", - "noData": "موردی برای نمایش وجود ندارد.", - "errorMessage": "متن خطا" - }, - "IPGErrorCode": { - "13003": "اجازه پرداخت ندارید.", - "13004": "یک درخواست پرداخت نشده دارید.", - "13005": "درخواست قفل شده.", - "13007": "خطای ناشناخته" - }, - "DepositWithdrawTx": { - "title": "تراکنش‌های واریز / برداشت", - "depositWithdrawal": "واریز / دریافت", - "withdrawalSend": "برداشت / ارسال", - "transactionType": "نوع تراکنش", - "transactionId": "شناسه تراکنش", - "blockchainTransactionId": "شناسه بلاکچینی تراکنش", - "price": "مبلغ", - "destination": "مبدا/مقصد", - "inventory": "موجودی بعد از تراکنش", - "freeWallet": "موجودی قابل برداشت", - "minWithdraw": "حداقل مقدار برداشت", - "minDeposit": "حداقل مقدار واریز", - "maxWithdraw": "سقف برداشت روزانه شما", - "maxMonthWithdraw": "سقف برداشت ماهانه شما", - "withdrawWarn": "لطفا دقت کنید! ورود اشتباه آدرس می تواند به از دست رفتن سرمایه منجر شود.", - "withdrawReqSubmit": "ثبت درخواست برداشت", - "destAddress": "آدرس دریافت", - "reqAmount": "دریافتی شما", - "network": " شبکه", - "success": "درخواست برداشت {{amount}} {{asset}} با موفقیت ثبت شد", - "IRTsuccess": "درخواست واریز {{amount}} تومان با موفقیت ثبت شد", - "cancel": "لغو", - "cancelPayment": "عملیات واریز لغو شد!" - }, - "transactionType": { - "deposit": "واریز", - "withdrawal": "برداشت", - "Received": "دریافت", - "send": "ارسال" - }, - "OrdersTrades": { - "title": "سفارش‌ها و معامله‌ها", - "aliveOrder": "سفارش های جاری", - "stop": "متوقف", - "cancelClose": "لغو و بسته شده", - "trades": "معامله‌ها", - "side": "سمت", - "order": "سفارش", - "done": "اجراشده", - "donePercentage": "% انجام", - "stoppedPrice": "قیمت توقف", - "ordersHistory": "تاریخچه سفارش‌ها", - "type": "نوع", - "market": "بازار", - "limit": "محدود", - "paid": "پرداخت شده" - }, - "MessagesSubMenu": { - "title": "اطلاع رسانی", - "myMessages": "پیام های من", - "news": "اطلاعیه ها" - }, - "SettingsSubMenu": { - "title": "تنظیمات", - "userProfile": "مشخصات کاربری", - "security": "امنیت", - "personalization": "شخصی سازی", - "authentication": "احراز هویت کاربری" - }, - "UserAccountStatus": { - "title": "وضعیت حساب کاربری", - "userAccountLevel1": "سطح کاربری 1", - "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", - "dailyWithdrawal": "برداشت روزانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "dailyDeposit": "واریز روزانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "dailyWithdrawalCryptoCurrency": "برداشت روزانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "dailyDepositCryptoCurrency": "واریز روزانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "monthlyWithdrawal": "برداشت ماهانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "monthlyDeposit": "واریز ماهانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "monthlyWithdrawalCryptoCurrency": "برداشت ماهانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "monthlyDepositCryptoCurrency": "واریز ماهانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", - "tradesCommission": "کارمزد معاملات: {{amount}} تیکر، {{num}}" - }, - "PersonalProfile": { - "title": "مشخصات فردی", - "cantEdit": "احراز هویت شما انجام شده است، مشخصات فردی قابل ویرایش نیست.", - "userLevel/fee": "سطح کاربری/کارمزدها", - "firstName": "نام", - "lastName": "نام خانوادگی", - "firstNameMain": "نام (زبان اصلی)", - "lastNameMain": "نام خانوادگی (زبان اصلی)", - "nationality": "ملیت", - "residence": "محل اقامت", - "birthdayG": "تاریخ تولد (میلادی)", - "birthdayJ": "تاریخ تولد (شمسی)", - "nationalId": "شناسه ملی", - "passportNumber": "شماره پاسپورت", - "mobile": "تلفن همراه", - "telephone": "تلفن ثابت", - "email": "پست الکترونیک", - "postalCode": "کد پستی", - "address": "آدرس", - "selectNationality": "ملیت خود را انتخاب کنید", - "selectResidence": "کشور محل اقامت خود را انتخاب کنید" - }, - "LoginReports": { - "title": "گزارش ورودها" - }, - "ActiveSessions": { - "title": "نشست‌های فعال", - "ip": "IP", - "LOGGED_IN": "ورود", - "LOGGING_OUT": "خروج", - "LOGGED_OUT": "خروج", - "details": "جزئیات", - "closeSession": "بستن نشست", - "success": "نشست {{location}} با موفقیت بسته شد.", - "failed": "خطا در بستن نشست {{location}}، دوباره تلاش کنید.", - "logOutAllSuccess": "سایر نشست‌ها با موفقیت بسته شد.", - "logOutAllError": "خطا در سرور، دوباره تلاش کنید.", - "noData": "موردی یافت نشد!", - "thisSession": "نشست فعلی", - "otherSession": "سایر نشست‌ها", - "closeOtherSessions": "بستن سایر نشست‌ها" - }, - "ChangePassword": { - "title": "تغییر رمز ورود", - "newPassword": "رمز ورود جدید", - "confirmation": "تکرار رمز ورود جدید", - "currentPassword": "رمز ورود فعلی", - "success": "تغییر رمز با موفقیت انجام شد.", - "error": "تغییر رمز انجام نشد.", - "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", - "emptyInput": "وارد کردن فیلد {{name}} الزامی است.", - "confirmationError": "رمز ورود جدید و تکرار آن باهم مطابقت ندارند.", - "currentPasswordError": "رمز ورود فعلی اشتباه وارد شده است." - }, - "SetTwoStepVerification": { - "title": "فعال سازی ورود دو مرحله‌ای", - "!title": "غیرفعال سازی ورود دو مرحله‌ای", - "code": "کد", - "active": "فعال‌سازی", - "isActive": "ورود دو مرحله‌ای فعال است.", - "deActive": "غیر فعال‌سازی", - "success": "ورود دو مرحله‌ای با موفقیت فعال شد.", - "error": "ورود دو مرحله‌ای غیرفعال شد.", - "initialCodeMin": "کد باید 6 رقم باشد.", - "initialCodeError": "کد وارد شده صحیح نیست.", - "serverError": "خطا در سرور، لطفاً دوباره تلاش کنید.", - "description": "در صورت فعال‌سازی ورود دو مرحله‌ای، برای هر بار ورود به پنل کاربری، رمز دو مرحله‌ای درخواست می‌شود.", - "QRdescription": "پس از اسکن کد QR رو به رو با نرم افزار Google Authenticator (یا نرم افزار مشابه) عدد 6 رقمی درج شده را وارد و ثبت کنید ." - }, - "HelpStep": { - "title": "گام 1 از 4: راهنمای کاربر", - "content": "به منظور استفاده از خدمات این صرافی و فعال شدن امکان برداشت دارایی ها، باید احراز هویت شوید. فرایند احراز هویت ساده و آنلاین است. در مراحل بعد از شما درخواست خواهد شد تا اطلاعات فردی خود را در فرم مربوطه وارد کرده و عکس شخصی، تصویر کارت ملی و توافقنامه استفاده از خدمات را ارسال فرمایید." - }, - "PersonalProfileStep": { - "title": "گام 2 از 4: ورود اطلاعات فردی", - "serverError": "خطا در دریافت اطلاعات، دوباره تلاش کنید.", - "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", - "wrongDateG": "فرمت تاریخ صحیح نیست!", - "wrongDateJ": "فرمت تاریخ صحیح نیست!", - "wrongNationalId": "کد ملی صحیح نیست!", - "wrongPassportNumber": "شماره پاس‍پورت صحیح نیست!", - "emptyInput": "وارد کردن {{name}} الزامی است.", - "yy/mm//dd": "روز/ماه/سال" - }, - "SendPhotosStep": { - "title": "گام 3 از 4: ارسال تصاویر", - "content": "برای تکمیل احراز هویت لطفاً مراحل زیر را انجام دهید:", - "acceptForm": "1) متن توافقنامه برای استفاده از خدمات را بر روی یک کاغذ A4 نوشته، امضا کنید و از آن عکس بگیرید.", - "selfie": "2) یک سلفی از خودتان در حالتی که برگه اعلام رضایت را در مقابل خود نگه داشته‌اید بگیرید.", - "idCard": "3) یک سلفی از خودتان در حالتی که شناسنامه یا کارت ملی را در مقابل خود نگه داشته‌اید بگیرید.", - "acceptFormLink": "(دانلود نمونه متن اعلام رضایت)", - "selfieLink": "(مطابق تصویر نمونه)", - "idCardLink": "(مطابق تصویر نمونه)", - "acceptFormDropzone": "متن اعلام رضایت", - "selfieDropzone": "سلفی همراه با متن اعلام رضایت", - "idCardDropzone": "سلفی همراه با کارت ملی یا شناسنامه", - "sendingData": "در حال ارسال اطلاعات...", - "imageAcceptedFormat": "- لطفاً عکس‌ها را فقط با فرمت JPEG و PNG آپلود کنید!", - "imageAcceptedSize": "- حداکثر حجم قابل قبول برای آپلود عکس ها، 1 مگابایت است!", - "acceptFormEmpty": "عکس متن توافقنامه را آپلود کنید!", - "selfieEmpty": "عکس سلفی همراه با متن توافقنامه را آپلود کنید!", - "idCardEmpty": "عکس سلفی همراه کارت ملی یا شناسنامه را آپلود کنید!", - "serverError": "خطا در ارسال تصاویر، دوباره تلاش کنید!" - }, - "SendToAdminStep": { - "title": "گام 4 از 4: ارسال به کارشناس", - "content": "اطلاعات با موفقیت ثبت شد. وضعیت احراز هویت شما به صورت زیر می باشد:", - "pending": "در حال بررسی...", - "accepted": "احراز هویت شما با موفقیت انجام شده است.", - "rejected": "احراز هویت انجام نشد، دوباره تلاش کنید.", - "blocked": "احراز هویت انجام نشد!", - "noData": "ثبت نشده!", - "errorMessage": "متن خطا" - }, - "Authentication": { - "HelpStep": "راهنمای کاربر", - "PersonalProfileStep": "اطلاعات فردی", - "SendPhotosStep": "ارسال تصاویر", - "SendToAdminStep": "ارجاع به کارشناس" - }, - "PersonalizationForm": { - "title": "شخصی‌سازی", - "placeholder": "انتخاب", - "defaultLang": "زبان پیش‌فرض", - "defaultTheme": "تم پیش‌فرض", - "defaultCalendarSystem": "سیستم روزشماری", - "defaultTimeZone": "منطقه زمانی", - "defaultReferenceCurrency": "ارز مرجع", - "defaultReferenceCryptoCurrency": "رمز ارز مرجع", - "save": "ذخیره" - }, - "login": { - "title": "ورود/ثبت نام", - "wrongPassword": "ایمیل یا رمز عبور صحیح نمی باشد!", - "wrongOTP": "رمز دو مرحله ای صحیح نمی باشد!", - "wrongPasswordConfirmation": "رمز ورود و تکرار آن باهم مطابقت ندارند.!", - "forgetPassword": "فراموشی رمز عبور", - "accountNotActive": "اکانت شما هنوز فعال نشده است", - "enter": "ورود", - "resetPassword": "بازیابی رمز", - "inputError": "فرمت ایمیل یا تعداد کاراکتر رمز ورود درست نیست.", - "loginError": "خطا در ارتباط با سرور", - "registerFinished": "ثبت نام با موفقیت انجام شد.", - "forgetPasswordFinished": "درخواست بازیابی رمز عبور با موفقیت ارسال شد.", - "registerFinishedGoToMail": "برای تکمیل ثبت نام به {{email}} مراجعه فرمایید.", - "registerFinishedSpamMail": "ایمیل دریافتی از آدرس for.demo.purpose.only@opex.dev ممکن است در بخش spam باشد.", - "register": "ثبت نام", - "wrongEmail": "ایمیل وارد شده معتبر نیست.", - "emptyEmail": "ایمیل را وارد کنید.", - "emptyInput": "وارد کردن فیلد {{name}} الزامی است.", - "emptyCredentialError": "وارد کردن ایمیل و رمز ورود الزامی است.", - "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", - "finishedWithError": "خطا در ایجاد کاربر جدید.", - "back": "بازگشت", - "description": "OPen source EXchange", - "OTPRequired": "وارد کردن رمز در مرحله‌ای (OTP) الزامی است.", - "otpLength": "رمز دوعاملی 6 کاراکتر است.", - "refreshCaptcha": "نمایش دوباره captcha", - "captchaServerError": "خطا در سرور برای گرفتن Captcha", - "InvalidCaptcha": "Captcha اشتباه وارد شده است!", - "minCaptcha": "Captcha باید ۵ کاراکتر باشد!", - "emptyCaptcha": "وارد کردن Captcha الزامی است", - "forgetPassServerError": "خطا در بازیابی رمز، دوباره تلاش کنید", - "forgetPassEmailForgetError": "فرمت ایمیل صحیح نیست." - }, - "userPage": { - "title": "", - "success": "ایمیل با موفقیت تائید شد.", - "failed": "ایمیل تائید نشد، دوباره تلاش کنید!", - "serverError": "خطا در سرور، لطفاً دوباره تلاش کنید." - }, - "Landing": { - "title": "پلتفرم تبادل ارزهای دیجیتال" - }, - "MarketTitle": { - "content": "به طور خاص برای رفع نیازهای شما طراحی شده است.", - "advancedTrading": "معامله حرفه‌ای", - "easyTrading": "معامله آسان" - }, - "GeneralInfo": { - "activeUsers": "کاربر فعال", - "totalOrders": "سفارش ثبت شده", - "totalTrades": "معامله انجام شده" - }, - "MarketInfo": { - "viewAllMarket": "نمایش تمام بازار", - "name": "نام", - "cryptocurrency": "رمزارز", - "lastPrice": "آخرین قیمت", - "lowPrice": "کمترین قیمت", - "highPrice": "بیشترین قیمت", - "priceChange": "تعییر قیمت", - "chart": "نمودار", - "volume": "حجم معاملات", - "details": "جزئیات", - "trade": "معامله", - "marketCap": "ارزش بازار" - }, - "MarketView": { - "title": "روند 24 ساعته", - "mostIncreased": "بیشترین افزایش", - "mostDecreased": "بیشترین کاهش", - "mostTrades": "بیشترین تعداد معامله", - "mostVolume": "بیشترین حجم معامله", - "nullResponse": "در {{interval}} گذشته معامله‌ای انجام نشده" - }, - "footer": { - "darkMode": "تم تاریک", - "aboutUs": "درباره ما", - "contactUS": "تماس با ما", - "blog": "بلاگ", - "guide": "راهنمای استفاده", - "rules": "قوانین سایت", - "api": "وب سرویس‌ها", - "addCoin": "درخواست افزودن سکه یا توکن", - "demo": "بازار نمایشی (ویژه تمرین رایگان)", - "errorReport": "گزارش خطا و مشکل", - "copyright": "1400 - کلیه حقوق برای شرکت تجربه کاربری متن باز (در شرف تاُسیس) محفوظ است." - }, - "ImageInput": { - "title": "", - "dropText": "را با کشیدن روی کادر یا کلیک کردن و انتخاب فایل آپلود کنید!", - "iconErrorText": "عکس آپلود شده معتبر نیست، لطفاً دوباره تلاش کنید!", - "fileTooLarge": "حجم فایل آپلود شده بیشتر از حد مجاز است!", - "fileInvalidType": "فرمت فایل آپلود شده قابل قبول نیست!", - "tooManyFiles": "آپلود بیشتر از یک عکس مجاز نیست!", - "errorMsgDefault": "عکس آپلود شده معتبر نیست!" - }, - "errorPage" : { - "needKYC" : "دسترسی این بخش فقط برای کاربران احراز هویت شده مجاز است!", - "reload" : "تلاش مجدد", - "errorText" : "خطا در ارتباط با سرور" - } +{ + "title": "اوپکس", + "signIn": "ورود", + "signUp": "ثبت نام", + "signOut": "خروج", + "date": "تاریخ", + "time": "زمان", + "volume": "مقدار", + "totalVolume": "مقدار کل", + "price": "قیمت", + "pricePerUnit": "قیمت واحد", + "totalPrice": "قیمت کل", + "averagePrice": "قیمت میانگین", + "min": "حداقل", + "max": "حداکثر", + "buy": "خرید", + "sell": "فروش", + "all": "همه", + "orderType": "نوع سفارش", + "status": "وضعیت", + "pleaseLogin": "لطفاً وارد شوید!", + "comingSoon": "به زودی!", + "deposit": "واریز", + "withdrawal": "برداشت", + "transfer": "انتقال", + "destination": "مقصد", + "details": "جزئیات", + "commission": "کارمزد", + "nextStep": "گام بعدی", + "prevStep": "گام قبلی", + "submit": "ثبت", + "username": "نام کاربری", + "password": "رمز ورود", + "confirmPassword": "تکرار رمز ورود", + "otp": "رمز دو مرحله‌ای", + "firstName": "نام", + "lastName": "نام خانوادگی", + "email": "ایمیل", + "captchaAnswer": "Captcha", + "desktopSupport": "اوپکس فعلاً برای نمایش در موبایل بهینه نشده است. لطفاً لینک را در کامپیوتر باز کنید!", + "error": "خطا در دریافت اطلاعات!", + "loading": "در حال دریافت اطلاعات...", + "noData": "موردی برای نمایش وجود ندارد!", + "noTx": "تراکنشی وجود ندارد.", + "close": "بستن", + "unit": "واحد", + "offline": "اتصال اینترنت را بررسی کنید!", + "country": { + "iran" : "جمهوری اسلامی ایران", + "germany" : "آلمان", + "uk": "انگلستان", + "turkey" : "ترکیه" + }, + "currency": { + "IRT": "تومان", + "Euro": "یورو", + "USD": "دلار", + "BTC": "بیتکوین", + "ETH": "اتر", + "TBTC": "بیتکوین (ت)", + "TETH": "اتر (ت)", + "TUSDT": "تتر (ت)", + "USDT": "تتر", + "BNB": "بایننس", + "BUSD": "دلار بایننس", + "DOGE": "دوج کوین", + "LTC": "لایت کوین", + "TBNB": "بایننس (ت)", + "TBUSD": "دلار بایننس(ت)", + "BCH": "بیتکوین کش" + }, + "marketInterval": { + "24h": "24 ساعت", + "7d": "7 روز", + "1M": "30 روز" + }, + "routes": { + "/panel/settings/profile": "مشخصات کاربری", + "/panel/settings/security": "امنیت", + "/panel/settings/personalization": "سفارشی‌سازی", + "/panel/settings/authentication": "احراز هویت کاربری" + }, + "orderStatus": { + "NEW": "جاری شده", + "REJECTED": "رد شده", + "FILLED": "انجام شده", + "CANCELED": "لغو شده", + "PENDING_CANCEL": "لغو معلق", + "EXPIRED": "منقضی شده", + "PARTIALLY_FILLED": "کامل نشده" + }, + "paymentStatus": { + "Open": "جاری شده", + "Canceled": "لغو شده", + "Expired": "منقضی شده", + "Done": "انجام شده", + "Failed": "رد شده", + "Undefined": "تعریف نشده" + }, + "messagesTitle": { + "successful": "تائید معامله", + "login": "ورود موفق", + "cancel": "لغو سفارش", + "done": "سفارش موفق", + "inCompleted": "سفارش نیمه تمام" + }, + "orderTypes": { + "LIMIT": "محدود", + "MARKET": "بازار", + "STOP_LOSS": "*متوقف محدود", + "STOP_LOSS_LIMIT": "*متوقف محدود", + "TAKE_PROFIT": "*متوقف محدود", + "TAKE_PROFIT_LIMIT": "*متوقف محدود", + "LIMIT_MAKER": "*متوقف محدود" + }, + "header": { + "lastPrice": "آخرین قیمت", + "availableBalance": "موجودی قابل معامله", + "free": "دارایی آزاد", + "locked": "درگیر معامله", + "inWithdrawalProcess": "منتظر تسویه", + "logOutSuccess": "خروج با موفقیت انجام شد.", + "logOutError": "خطایی رخ داده است. لطفاً دوباره تلاش کنید!" + }, + "overview": { + "title": "نمای کلی", + "change": "تغییر", + "volume": "حجم معاملات", + "lastDay": "24 ساعته", + "lastWeek": "7 روزه", + "lastMonth": "30 روزه" + }, + "market": { + "title": "بازار" + }, + "wallet": { + "title": "دارایی ها" + }, + "technical": { + "title": "تکنیکال" + }, + "messages": { + "title": "پیام ها" + }, + "settings": { + "title": "تنظیمات" + }, + "Languages": { + "Persian": "فارسی", + "English": "English", + "Arabic": "عربي" + }, + "Theme": { + "Light": "روشن", + "Dark": "تاریک" + }, + "Calendar": { + "IRCalender": "هجری خورشیدی", + "GCCalender": "میلادی" + }, + "TimeZone": { + "THR": "آسیا / تهران / UTC+3:30", + "UTC" : 0 + }, + "orders": { + "title": "سفارش", + "minOrder": "حداقل مقدار سفارش {{min}} {{currency}} می‌باشد.", + "maxOrder": "حداکثر مقدار سفارش {{max}} {{currency}} می‌باشد.", + "divisibility": "مقدار وارد شده باید بر {{mod}} بخش‌پذیر باشد‍!", + "notEnoughBalance": "موجودی کافی نیست!", + "availableAmount": "موجودی قابل معامله", + "bestOffer": "بهترین پیشنهاد", + "stopLimit": "سفارش متوقف", + "stopPrice": "قیمت توقف", + "amount": "مقدار", + "pricePerUnit": "قیمت واحد", + "marketBuyPrice": "خرید به قیمت بازار", + "marketSellPrice": "فروش به قیمت بازار", + "totalPrice": "قیمت کل", + "tradeFee": "کارمزد", + "getAmount": "دریافتی شما", + "hasNoOffer": "پیشنهادی وجود ندارد!", + "error": "خطایی در ثبت سفارش رخ داده‌است.", + "success": "ثبت سفارش {{type}} {{reqAmount}} {{base}} با قیمت {{pricePerUnit}} {{quote}} با موفقیت انجام شد." + }, + "LastTrades": { + "title": "معامله های اخیر" + }, + "charts": { + "title": "نمودار قیمت", + "noChartData": "اطلاعاتی برای این جفت‌ارز موجود نیست", + "globalChart": "جهانی", + "opexChart": "داخلی" + }, + "orderBook": { + "title": "دفتر پیشنهادها" + }, + "myOrders": { + "title": "سفارش‌ها و معامله‌های من", + "donePercentage": "درصد انجام", + "stoppedPrice": "قیمت توقف", + "orderId": "شناسه سفارش", + "tradeId": "شناسه معامله", + "tradedAmount": "مقدار معامله شده", + "avgTradedAmount": "میانگین قیمت معامله", + "tradedPrice": "مبلغ معامله شده", + "aliveOrder": "سفارش‌های جاری", + "stoppedOrder": "متوقف", + "orderHistory": "تاریخچه سفارش‌ها", + "stopOrderTime": "زمان آخرین معامله", + "startOrderTime": "زمان ثبت سفارش", + "cancelOrder": "لغو سفارش", + "orders": "معامله‌ها", + "cancelSuccess": "سفارش با موفقیت لغو شد!", + "cancelError": "خطا در لغو سفارش" + }, + "WalletSubMenu": { + "title": "دارایی‌ها", + "totalValue": "ارزش کل", + "approximate": "تقریبی", + "equivalent": "معادل", + "showZeroBalance": "عدم نمایش موجودی صفر", + "estimateAlert": "مبلغ دارایی معادل براساس بالاترین پیشنهاد خرید محاسبه شده" + }, + "DepositWithdraw": { + "title": "واریز/برداشت", + "success": "آدرس کپی شد", + "copy": "کپی شد", + "IRTAllowable": "مقدار حداقل باید {{min}} تومان و حداکثر {{max}} تومان باشد.", + "emptyInput": "وارد کردن مقدار الزامی است.", + "IRTText": "صورتحساب با مبلغ {{amount}} تومان در تاریخ {{date}} ، ساعت {{time}} ایجاد شده است. از طریق دکمه سبز رنگ زیر به درگاه پرداخت هدایت می شوید. برای ایجاد صورتحساب جدید، صورتحساب قبلی را پرداخت و یا لغو کنید.", + "IRTFormText": "برای واریز وجه ابتدا صورتحساب را ایجاد کنید، مبلغ مجاز واریز حداقل {{min}} تومان و حداکثر {{max}} تومان است.", + "pay": "پرداخت", + "cancel": "لغو", + "seconds": "ثانیه", + "submitPaymentReq": "ثبت درخواست واریز", + "noInventory": "موجودی کافی نیست !", + "allowableWithdraw": "حداقل مقدار مجاز برداشت رعایت نشده است.", + "fillAddress": "وارد کردن آدرس الزامیست.", + "important": "مهم", + "DepositTETHContentBefore": "فقط ETH تستی شبکه Ropsten مورد قبول قرار می گیرد! برای دریافت رایگان به ", + "DepositTETHContentAfter": " بروید. برای ارسال ETH تستی به این آدرس، باید شبکه اتریومی کیف پول خود را به Ropsten تغییر دهید. این شبکه به طور پیش فرض در فهرست شبکه های کیف پول Metamask وجود دارد. هر تراکنشی با مقدار مساوی یا بیشتر از ۰.۰۰۱ ETH به آدرس بالا، به حساب شما افزوده می شود.", + "minDeposit": "حداقل میزان قابل قبول {{min}} {{currency}}", + "minDepositText": "هر تراکنشی با مقدار بیشتر از {{min}} {{currency}} به آدرس زیر ، به حساب شما افزوده می شود.", + "DepositTBTCContentBefore": "فقط BTC تستی مورد قبول قرار می گیرد! برای دریافت رایگان به ", + "DepositTBTCContentAfter": " بروید. هر تراکنشی با مقدار مساوی یا بیشتر از ۰.۰۰۱ BTC به آدرس بالا، به حساب شما افزوده می شود.", + "DepositTUSDTContentBefore": "فقط USDT تستی شبکه Ropsten مورد قبول قرار می گیرد! برای آشنایی با روش دریافت رایگان به ", + "DepositTUSDTContentAfter": " بروید. برای ارسال USDT تستی به این آدرس، باید شبکه اتریومی کیف پول خود را به Ropsten تغییر دهید. این شبکه به طور پیش فرض در فهرست شبکه های کیف پول Metamask وجود دارد. هر تراکنشی با مقدار مساوی یا بیشتر از ۱۰ USDT به آدرس بالا، به حساب شما افزوده می شود.", + "depositTime": "* موجودی شما {{time}} دقیقه بعد از واریز به آدرس بالا، افزایش پیدا می کند.", + "securityConsiderations": "باتوجه به ملاحظات امنیتی ممکن است انتقال به حساب با کمی تاخیر صورت بگیرد. می توانید وضعیت برداشت را در همین صفحه از بخش ترکنش های واریز/برداشت ببینید.", + "network": "شبکه", + "selectNetwork": " شبکه را انتخاب کنید" + }, + "CallbackPage": { + "ok": "واریز وجه با موفقیت انجام شد.", + "failed": "واریز وجه با خطا مواجه شد.", + "noData": "موردی برای نمایش وجود ندارد.", + "errorMessage": "متن خطا" + }, + "IPGErrorCode": { + "13003": "اجازه پرداخت ندارید.", + "13004": "یک درخواست پرداخت نشده دارید.", + "13005": "درخواست قفل شده.", + "13007": "خطای ناشناخته" + }, + "DepositWithdrawTx": { + "title": "تراکنش‌های واریز / برداشت", + "depositWithdrawal": "واریز / دریافت", + "withdrawalSend": "برداشت / ارسال", + "transactionType": "نوع تراکنش", + "transactionId": "شناسه تراکنش", + "blockchainTransactionId": "شناسه بلاکچینی تراکنش", + "price": "مبلغ", + "destination": "مبدا/مقصد", + "inventory": "موجودی بعد از تراکنش", + "freeWallet": "موجودی قابل برداشت", + "minWithdraw": "حداقل مقدار برداشت", + "minDeposit": "حداقل مقدار واریز", + "maxWithdraw": "سقف برداشت روزانه شما", + "maxMonthWithdraw": "سقف برداشت ماهانه شما", + "withdrawWarn": "لطفا دقت کنید! ورود اشتباه آدرس می تواند به از دست رفتن سرمایه منجر شود.", + "withdrawReqSubmit": "ثبت درخواست برداشت", + "destAddress": "آدرس دریافت", + "reqAmount": "دریافتی شما", + "network": " شبکه", + "success": "درخواست برداشت {{amount}} {{asset}} با موفقیت ثبت شد", + "IRTsuccess": "درخواست واریز {{amount}} تومان با موفقیت ثبت شد", + "cancel": "لغو", + "cancelPayment": "عملیات واریز لغو شد!" + }, + "transactionType": { + "deposit": "واریز", + "withdrawal": "برداشت", + "Received": "دریافت", + "send": "ارسال" + }, + "OrdersTrades": { + "title": "سفارش‌ها و معامله‌ها", + "aliveOrder": "سفارش های جاری", + "stop": "متوقف", + "cancelClose": "لغو و بسته شده", + "trades": "معامله‌ها", + "side": "سمت", + "order": "سفارش", + "done": "اجراشده", + "donePercentage": "% انجام", + "stoppedPrice": "قیمت توقف", + "ordersHistory": "تاریخچه سفارش‌ها", + "type": "نوع", + "market": "بازار", + "limit": "محدود", + "paid": "پرداخت شده" + }, + "MessagesSubMenu": { + "title": "اطلاع رسانی", + "myMessages": "پیام های من", + "news": "اطلاعیه ها" + }, + "SettingsSubMenu": { + "title": "تنظیمات", + "userProfile": "مشخصات کاربری", + "security": "امنیت", + "personalization": "شخصی سازی", + "authentication": "احراز هویت کاربری" + }, + "UserAccountStatus": { + "title": "وضعیت حساب کاربری", + "userAccountLevel1": "سطح کاربری 1", + "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", + "dailyWithdrawal": "برداشت روزانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "dailyDeposit": "واریز روزانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "dailyWithdrawalCryptoCurrency": "برداشت روزانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "dailyDepositCryptoCurrency": "واریز روزانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "monthlyWithdrawal": "برداشت ماهانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "monthlyDeposit": "واریز ماهانه ارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "monthlyWithdrawalCryptoCurrency": "برداشت ماهانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "monthlyDepositCryptoCurrency": "واریز ماهانه رمزارزی: معادل {{amount}} تومان از 20،000،000 تومان", + "tradesCommission": "کارمزد معاملات: {{amount}} تیکر، {{num}}" + }, + "PersonalProfile": { + "title": "مشخصات فردی", + "cantEdit": "احراز هویت شما انجام شده است، مشخصات فردی قابل ویرایش نیست.", + "userLevel/fee": "سطح کاربری/کارمزدها", + "firstName": "نام", + "lastName": "نام خانوادگی", + "firstNameMain": "نام (زبان اصلی)", + "lastNameMain": "نام خانوادگی (زبان اصلی)", + "nationality": "ملیت", + "residence": "محل اقامت", + "birthdayG": "تاریخ تولد (میلادی)", + "birthdayJ": "تاریخ تولد (شمسی)", + "nationalId": "شناسه ملی", + "passportNumber": "شماره پاسپورت", + "mobile": "تلفن همراه", + "telephone": "تلفن ثابت", + "email": "پست الکترونیک", + "postalCode": "کد پستی", + "address": "آدرس", + "selectNationality": "ملیت خود را انتخاب کنید", + "selectResidence": "کشور محل اقامت خود را انتخاب کنید" + }, + "LoginReports": { + "title": "گزارش ورودها" + }, + "ActiveSessions": { + "title": "نشست‌های فعال", + "ip": "IP", + "LOGGED_IN": "ورود", + "LOGGING_OUT": "خروج", + "LOGGED_OUT": "خروج", + "details": "جزئیات", + "closeSession": "بستن نشست", + "success": "نشست {{location}} با موفقیت بسته شد.", + "failed": "خطا در بستن نشست {{location}}، دوباره تلاش کنید.", + "logOutAllSuccess": "سایر نشست‌ها با موفقیت بسته شد.", + "logOutAllError": "خطا در سرور، دوباره تلاش کنید.", + "noData": "موردی یافت نشد!", + "thisSession": "نشست فعلی", + "otherSession": "سایر نشست‌ها", + "closeOtherSessions": "بستن سایر نشست‌ها" + }, + "ChangePassword": { + "title": "تغییر رمز ورود", + "newPassword": "رمز ورود جدید", + "confirmation": "تکرار رمز ورود جدید", + "currentPassword": "رمز ورود فعلی", + "success": "تغییر رمز با موفقیت انجام شد.", + "error": "تغییر رمز انجام نشد.", + "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", + "emptyInput": "وارد کردن فیلد {{name}} الزامی است.", + "confirmationError": "رمز ورود جدید و تکرار آن باهم مطابقت ندارند.", + "currentPasswordError": "رمز ورود فعلی اشتباه وارد شده است." + }, + "SetTwoStepVerification": { + "title": "فعال سازی ورود دو مرحله‌ای", + "!title": "غیرفعال سازی ورود دو مرحله‌ای", + "code": "کد", + "active": "فعال‌سازی", + "isActive": "ورود دو مرحله‌ای فعال است.", + "deActive": "غیر فعال‌سازی", + "success": "ورود دو مرحله‌ای با موفقیت فعال شد.", + "error": "ورود دو مرحله‌ای غیرفعال شد.", + "initialCodeMin": "کد باید 6 رقم باشد.", + "initialCodeError": "کد وارد شده صحیح نیست.", + "serverError": "خطا در سرور، لطفاً دوباره تلاش کنید.", + "description": "در صورت فعال‌سازی ورود دو مرحله‌ای، برای هر بار ورود به پنل کاربری، رمز دو مرحله‌ای درخواست می‌شود.", + "QRdescription": "پس از اسکن کد QR رو به رو با نرم افزار Google Authenticator (یا نرم افزار مشابه) عدد 6 رقمی درج شده را وارد و ثبت کنید ." + }, + "HelpStep": { + "title": "گام 1 از 4: راهنمای کاربر", + "content": "به منظور استفاده از خدمات این صرافی و فعال شدن امکان برداشت دارایی ها، باید احراز هویت شوید. فرایند احراز هویت ساده و آنلاین است. در مراحل بعد از شما درخواست خواهد شد تا اطلاعات فردی خود را در فرم مربوطه وارد کرده و عکس شخصی، تصویر کارت ملی و توافقنامه استفاده از خدمات را ارسال فرمایید." + }, + "PersonalProfileStep": { + "title": "گام 2 از 4: ورود اطلاعات فردی", + "serverError": "خطا در دریافت اطلاعات، دوباره تلاش کنید.", + "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", + "wrongDateG": "فرمت تاریخ صحیح نیست!", + "wrongDateJ": "فرمت تاریخ صحیح نیست!", + "wrongNationalId": "کد ملی صحیح نیست!", + "wrongPassportNumber": "شماره پاس‍پورت صحیح نیست!", + "emptyInput": "وارد کردن {{name}} الزامی است.", + "yy/mm//dd": "روز/ماه/سال" + }, + "SendPhotosStep": { + "title": "گام 3 از 4: ارسال تصاویر", + "content": "برای تکمیل احراز هویت لطفاً مراحل زیر را انجام دهید:", + "acceptForm": "1) متن توافقنامه برای استفاده از خدمات را بر روی یک کاغذ A4 نوشته، امضا کنید و از آن عکس بگیرید.", + "selfie": "2) یک سلفی از خودتان در حالتی که برگه اعلام رضایت را در مقابل خود نگه داشته‌اید بگیرید.", + "idCard": "3) یک سلفی از خودتان در حالتی که شناسنامه یا کارت ملی را در مقابل خود نگه داشته‌اید بگیرید.", + "acceptFormLink": "(دانلود نمونه متن اعلام رضایت)", + "selfieLink": "(مطابق تصویر نمونه)", + "idCardLink": "(مطابق تصویر نمونه)", + "acceptFormDropzone": "متن اعلام رضایت", + "selfieDropzone": "سلفی همراه با متن اعلام رضایت", + "idCardDropzone": "سلفی همراه با کارت ملی یا شناسنامه", + "sendingData": "در حال ارسال اطلاعات...", + "imageAcceptedFormat": "- لطفاً عکس‌ها را فقط با فرمت JPEG و PNG آپلود کنید!", + "imageAcceptedSize": "- حداکثر حجم قابل قبول برای آپلود عکس ها، 1 مگابایت است!", + "acceptFormEmpty": "عکس متن توافقنامه را آپلود کنید!", + "selfieEmpty": "عکس سلفی همراه با متن توافقنامه را آپلود کنید!", + "idCardEmpty": "عکس سلفی همراه کارت ملی یا شناسنامه را آپلود کنید!", + "serverError": "خطا در ارسال تصاویر، دوباره تلاش کنید!" + }, + "SendToAdminStep": { + "title": "گام 4 از 4: ارسال به کارشناس", + "content": "اطلاعات با موفقیت ثبت شد. وضعیت احراز هویت شما به صورت زیر می باشد:", + "pending": "در حال بررسی...", + "accepted": "احراز هویت شما با موفقیت انجام شده است.", + "rejected": "احراز هویت انجام نشد، دوباره تلاش کنید.", + "blocked": "احراز هویت انجام نشد!", + "noData": "ثبت نشده!", + "errorMessage": "متن خطا" + }, + "Authentication": { + "HelpStep": "راهنمای کاربر", + "PersonalProfileStep": "اطلاعات فردی", + "SendPhotosStep": "ارسال تصاویر", + "SendToAdminStep": "ارجاع به کارشناس" + }, + "PersonalizationForm": { + "title": "شخصی‌سازی", + "placeholder": "انتخاب", + "defaultLang": "زبان پیش‌فرض", + "defaultTheme": "تم پیش‌فرض", + "defaultCalendarSystem": "سیستم روزشماری", + "defaultTimeZone": "منطقه زمانی", + "defaultReferenceCurrency": "ارز مرجع", + "defaultReferenceCryptoCurrency": "رمز ارز مرجع", + "save": "ذخیره" + }, + "login": { + "title": "ورود/ثبت نام", + "wrongPassword": "ایمیل یا رمز عبور صحیح نمی باشد!", + "wrongOTP": "رمز دو مرحله ای صحیح نمی باشد!", + "wrongPasswordConfirmation": "رمز ورود و تکرار آن باهم مطابقت ندارند.!", + "forgetPassword": "فراموشی رمز عبور", + "accountNotActive": "اکانت شما هنوز فعال نشده است", + "enter": "ورود", + "resetPassword": "بازیابی رمز", + "inputError": "فرمت ایمیل یا تعداد کاراکتر رمز ورود درست نیست.", + "loginError": "خطا در ارتباط با سرور", + "registerFinished": "ثبت نام با موفقیت انجام شد.", + "forgetPasswordFinished": "درخواست بازیابی رمز عبور با موفقیت ارسال شد.", + "registerFinishedGoToMail": "برای تکمیل ثبت نام به {{email}} مراجعه فرمایید.", + "registerFinishedSpamMail": "ایمیل دریافتی از آدرس {{email}} ممکن است در بخش spam باشد.", + "register": "ثبت نام", + "wrongEmail": "ایمیل وارد شده معتبر نیست.", + "emptyEmail": "ایمیل را وارد کنید.", + "emptyInput": "وارد کردن فیلد {{name}} الزامی است.", + "emptyCredentialError": "وارد کردن ایمیل و رمز ورود الزامی است.", + "minInput": "{{name}} حداقل باید {{min}} کاراکتر باشد.", + "finishedWithError": "خطا در ایجاد کاربر جدید.", + "back": "بازگشت", + "description": "OPen source EXchange", + "OTPRequired": "وارد کردن رمز در مرحله‌ای (OTP) الزامی است.", + "otpLength": "رمز دوعاملی 6 کاراکتر است.", + "refreshCaptcha": "نمایش دوباره captcha", + "captchaServerError": "خطا در سرور برای گرفتن Captcha", + "InvalidCaptcha": "Captcha اشتباه وارد شده است!", + "minCaptcha": "Captcha باید ۵ کاراکتر باشد!", + "emptyCaptcha": "وارد کردن Captcha الزامی است", + "forgetPassServerError": "خطا در بازیابی رمز، دوباره تلاش کنید", + "UserAlreadyExists": "ایمل واردشده تکراری است", + "forgetPassEmailForgetError": "فرمت ایمیل صحیح نیست.", + "forDemoLogin": "برای ورود آزمایشی، اینجا کلیک کنید!" + }, + "userPage": { + "title": "", + "success": "ایمیل با موفقیت تائید شد.", + "failed": "ایمیل تائید نشد، دوباره تلاش کنید!", + "serverError": "خطا در سرور، لطفاً دوباره تلاش کنید." + }, + "Landing": { + "title": "پلتفرم تبادل ارزهای دیجیتال" + }, + "MarketTitle": { + "content": "به طور خاص برای رفع نیازهای شما طراحی شده است.", + "advancedTrading": "معامله حرفه‌ای", + "easyTrading": "معامله آسان" + }, + "GeneralInfo": { + "activeUsers": "کاربر فعال", + "totalOrders": "سفارش ثبت شده", + "totalTrades": "معامله انجام شده" + }, + "MarketInfo": { + "viewAllMarket": "نمایش تمام بازار", + "name": "نام", + "cryptocurrency": "رمزارز", + "lastPrice": "آخرین قیمت", + "lowPrice": "کمترین قیمت", + "highPrice": "بیشترین قیمت", + "priceChange": "تعییر قیمت", + "chart": "نمودار", + "volume": "حجم معاملات", + "details": "جزئیات", + "trade": "معامله", + "marketCap": "ارزش بازار" + }, + "MarketView": { + "title": "روند 24 ساعته", + "mostIncreased": "بیشترین افزایش", + "mostDecreased": "بیشترین کاهش", + "mostTrades": "بیشترین تعداد معامله", + "mostVolume": "بیشترین حجم معامله", + "nullResponse": "در {{interval}} گذشته معامله‌ای انجام نشده" + }, + "footer": { + "darkMode": "تم تاریک", + "aboutUs": "درباره ما", + "contactUS": "تماس با ما", + "blog": "بلاگ", + "guide": "راهنمای استفاده", + "rules": "قوانین سایت", + "api": "وب سرویس‌ها", + "addCoin": "درخواست افزودن سکه یا توکن", + "demo": "بازار نمایشی (ویژه تمرین رایگان)", + "errorReport": "گزارش خطا و مشکل", + "copyright": "1400 - کلیه حقوق برای شرکت تجربه کاربری متن باز (در شرف تاُسیس) محفوظ است." + }, + "ImageInput": { + "title": "", + "dropText": "را با کشیدن روی کادر یا کلیک کردن و انتخاب فایل آپلود کنید!", + "iconErrorText": "عکس آپلود شده معتبر نیست، لطفاً دوباره تلاش کنید!", + "fileTooLarge": "حجم فایل آپلود شده بیشتر از حد مجاز است!", + "fileInvalidType": "فرمت فایل آپلود شده قابل قبول نیست!", + "tooManyFiles": "آپلود بیشتر از یک عکس مجاز نیست!", + "errorMsgDefault": "عکس آپلود شده معتبر نیست!" + }, + "errorPage" : { + "needKYC" : "دسترسی این بخش فقط برای کاربران احراز هویت شده مجاز است!", + "reload" : "تلاش مجدد", + "errorText" : "خطا در ارتباط با سرور" + } } \ No newline at end of file diff --git a/public/logo/android-chrome-192x192.png b/public/assets/logo/android-chrome-192x192.png similarity index 100% rename from public/logo/android-chrome-192x192.png rename to public/assets/logo/android-chrome-192x192.png diff --git a/public/logo/android-chrome-512x512.png b/public/assets/logo/android-chrome-512x512.png similarity index 100% rename from public/logo/android-chrome-512x512.png rename to public/assets/logo/android-chrome-512x512.png diff --git a/public/logo/android-icon-144x144.png b/public/assets/logo/android-icon-144x144.png similarity index 100% rename from public/logo/android-icon-144x144.png rename to public/assets/logo/android-icon-144x144.png diff --git a/public/logo/android-icon-192x192.png b/public/assets/logo/android-icon-192x192.png similarity index 100% rename from public/logo/android-icon-192x192.png rename to public/assets/logo/android-icon-192x192.png diff --git a/public/logo/android-icon-36x36.png b/public/assets/logo/android-icon-36x36.png similarity index 100% rename from public/logo/android-icon-36x36.png rename to public/assets/logo/android-icon-36x36.png diff --git a/public/logo/android-icon-48x48.png b/public/assets/logo/android-icon-48x48.png similarity index 100% rename from public/logo/android-icon-48x48.png rename to public/assets/logo/android-icon-48x48.png diff --git a/public/logo/android-icon-72x72.png b/public/assets/logo/android-icon-72x72.png similarity index 100% rename from public/logo/android-icon-72x72.png rename to public/assets/logo/android-icon-72x72.png diff --git a/public/logo/android-icon-96x96.png b/public/assets/logo/android-icon-96x96.png similarity index 100% rename from public/logo/android-icon-96x96.png rename to public/assets/logo/android-icon-96x96.png diff --git a/public/logo/apple-icon-114x114.png b/public/assets/logo/apple-icon-114x114.png similarity index 100% rename from public/logo/apple-icon-114x114.png rename to public/assets/logo/apple-icon-114x114.png diff --git a/public/logo/apple-icon-120x120.png b/public/assets/logo/apple-icon-120x120.png similarity index 100% rename from public/logo/apple-icon-120x120.png rename to public/assets/logo/apple-icon-120x120.png diff --git a/public/logo/apple-icon-144x144.png b/public/assets/logo/apple-icon-144x144.png similarity index 100% rename from public/logo/apple-icon-144x144.png rename to public/assets/logo/apple-icon-144x144.png diff --git a/public/logo/apple-icon-152x152.png b/public/assets/logo/apple-icon-152x152.png similarity index 100% rename from public/logo/apple-icon-152x152.png rename to public/assets/logo/apple-icon-152x152.png diff --git a/public/logo/apple-icon-180x180.png b/public/assets/logo/apple-icon-180x180.png similarity index 100% rename from public/logo/apple-icon-180x180.png rename to public/assets/logo/apple-icon-180x180.png diff --git a/public/logo/apple-icon-57x57.png b/public/assets/logo/apple-icon-57x57.png similarity index 100% rename from public/logo/apple-icon-57x57.png rename to public/assets/logo/apple-icon-57x57.png diff --git a/public/logo/apple-icon-60x60.png b/public/assets/logo/apple-icon-60x60.png similarity index 100% rename from public/logo/apple-icon-60x60.png rename to public/assets/logo/apple-icon-60x60.png diff --git a/public/logo/apple-icon-72x72.png b/public/assets/logo/apple-icon-72x72.png similarity index 100% rename from public/logo/apple-icon-72x72.png rename to public/assets/logo/apple-icon-72x72.png diff --git a/public/logo/apple-icon-76x76.png b/public/assets/logo/apple-icon-76x76.png similarity index 100% rename from public/logo/apple-icon-76x76.png rename to public/assets/logo/apple-icon-76x76.png diff --git a/public/logo/apple-icon-precomposed.png b/public/assets/logo/apple-icon-precomposed.png similarity index 100% rename from public/logo/apple-icon-precomposed.png rename to public/assets/logo/apple-icon-precomposed.png diff --git a/public/logo/apple-icon.png b/public/assets/logo/apple-icon.png similarity index 100% rename from public/logo/apple-icon.png rename to public/assets/logo/apple-icon.png diff --git a/public/logo/apple-touch-icon.png b/public/assets/logo/apple-touch-icon.png similarity index 100% rename from public/logo/apple-touch-icon.png rename to public/assets/logo/apple-touch-icon.png diff --git a/public/logo/browserconfig.xml b/public/assets/logo/browserconfig.xml similarity index 100% rename from public/logo/browserconfig.xml rename to public/assets/logo/browserconfig.xml diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon-16x16.png b/public/assets/logo/favicon-16x16.png similarity index 100% rename from public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon-16x16.png rename to public/assets/logo/favicon-16x16.png diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon-32x32.png b/public/assets/logo/favicon-32x32.png similarity index 100% rename from public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon-32x32.png rename to public/assets/logo/favicon-32x32.png diff --git a/public/logo/favicon-96x96.png b/public/assets/logo/favicon-96x96.png similarity index 100% rename from public/logo/favicon-96x96.png rename to public/assets/logo/favicon-96x96.png diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon.ico b/public/assets/logo/favicon.ico similarity index 100% rename from public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon.ico rename to public/assets/logo/favicon.ico diff --git a/src/assets/images/src/opexLogoOnePlus.svg b/public/assets/logo/logo-mini.svg similarity index 100% rename from src/assets/images/src/opexLogoOnePlus.svg rename to public/assets/logo/logo-mini.svg diff --git a/src/assets/images/src/opexLogoPlus.svg b/public/assets/logo/logo.svg similarity index 100% rename from src/assets/images/src/opexLogoPlus.svg rename to public/assets/logo/logo.svg diff --git a/public/logo/ms-icon-144x144.png b/public/assets/logo/ms-icon-144x144.png similarity index 100% rename from public/logo/ms-icon-144x144.png rename to public/assets/logo/ms-icon-144x144.png diff --git a/public/logo/ms-icon-150x150.png b/public/assets/logo/ms-icon-150x150.png similarity index 100% rename from public/logo/ms-icon-150x150.png rename to public/assets/logo/ms-icon-150x150.png diff --git a/public/logo/ms-icon-310x310.png b/public/assets/logo/ms-icon-310x310.png similarity index 100% rename from public/logo/ms-icon-310x310.png rename to public/assets/logo/ms-icon-310x310.png diff --git a/public/logo/ms-icon-70x70.png b/public/assets/logo/ms-icon-70x70.png similarity index 100% rename from public/logo/ms-icon-70x70.png rename to public/assets/logo/ms-icon-70x70.png diff --git a/public/manifest.json b/public/assets/manifest.json similarity index 67% rename from public/manifest.json rename to public/assets/manifest.json index a256a950..9e1c5437 100644 --- a/public/manifest.json +++ b/public/assets/manifest.json @@ -3,43 +3,43 @@ "name": "Open Source Exchange", "icons": [ { - "src": "logo/android-icon-36x36.png", + "src": "/assets/logo/android-icon-36x36.png", "sizes": "36x36", "type": "image\/png", "density": "0.75" }, { - "src": "logo/android-icon-48x48.png", + "src": "/assets/logo/android-icon-48x48.png", "sizes": "48x48", "type": "image\/png", "density": "1.0" }, { - "src": "logo/android-icon-72x72.png", + "src": "/assets/logo/android-icon-72x72.png", "sizes": "72x72", "type": "image\/png", "density": "1.5" }, { - "src": "logo/android-icon-96x96.png", + "src": "/assets/logo/android-icon-96x96.png", "sizes": "96x96", "type": "image\/png", "density": "2.0" }, { - "src": "logo/android-icon-144x144.png", + "src": "/assets/logo/android-icon-144x144.png", "sizes": "144x144", "type": "image\/png", "density": "3.0" }, { - "src": "logo/android-icon-192x192.png", + "src": "/assets/logo/android-icon-192x192.png", "sizes": "192x192", "type": "image\/png", "density": "4.0" } ], - "start_url": ".", + "start_url": "/", "display": "standalone", "theme_color": "#000000", "background_color": "#ffffff" diff --git a/public/index.html b/public/index.html index e5d9c664..0359aa23 100644 --- a/public/index.html +++ b/public/index.html @@ -2,38 +2,38 @@ - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - Opex + %REACT_APP_TITLE% diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-192x192.png b/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-192x192.png deleted file mode 100644 index 1f2fa461..00000000 Binary files a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-192x192.png and /dev/null differ diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-512x512.png b/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-512x512.png deleted file mode 100644 index ba5ac437..00000000 Binary files a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/android-chrome-512x512.png and /dev/null differ diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/apple-touch-icon.png b/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/apple-touch-icon.png deleted file mode 100644 index a096507e..00000000 Binary files a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/apple-touch-icon.png and /dev/null differ diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon_io.zip b/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon_io.zip deleted file mode 100644 index 257ed899..00000000 Binary files a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/favicon_io.zip and /dev/null differ diff --git a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/site.webmanifest b/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/site.webmanifest deleted file mode 100644 index 45dc8a20..00000000 --- a/public/logo/fa8d5557a91bdf1145ca86b07b4bdafd.ico/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/logo/favicon-16x16.png b/public/logo/favicon-16x16.png deleted file mode 100644 index 548d13e8..00000000 Binary files a/public/logo/favicon-16x16.png and /dev/null differ diff --git a/public/logo/favicon-32x32.png b/public/logo/favicon-32x32.png deleted file mode 100644 index 1c2d87f2..00000000 Binary files a/public/logo/favicon-32x32.png and /dev/null differ diff --git a/public/logo/favicon.ico b/public/logo/favicon.ico deleted file mode 100644 index 9074e79e..00000000 Binary files a/public/logo/favicon.ico and /dev/null differ diff --git a/src/assets/images.js b/src/assets/images.js index e39f6693..c99bdc7e 100644 --- a/src/assets/images.js +++ b/src/assets/images.js @@ -1,6 +1,3 @@ -import opexLogo_light from "./images/src/opexLogo_light.svg"; -import opexLogoOnePlus from "./images/src/opexLogoOnePlus.svg"; -import opexLogoPlus from "./images/src/opexLogoPlus.svg"; import signOut from "./images/src/signOut.svg"; import signIn from "./images/src/signIn.svg"; import opexQrCode from "./images/src/opex-qr-code.svg"; @@ -42,9 +39,6 @@ import approveAnimation from "./images/src/approveAnimation.gif"; import rejectAnimation from "./images/src/rejectAnimation.gif"; export const images = { - opexLogo_light: opexLogo_light, - opexLogoOnePlus: opexLogoOnePlus, - opexLogoPlus: opexLogoPlus, signOut: signOut, signIn: signIn, opexQrCode: opexQrCode, diff --git a/src/assets/images/src/opexLogo_light.svg b/src/assets/images/src/opexLogo_light.svg deleted file mode 100644 index 7293adee..00000000 --- a/src/assets/images/src/opexLogo_light.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/components/Error/Error.js b/src/components/Error/Error.js index 3339c629..7de46d91 100644 --- a/src/components/Error/Error.js +++ b/src/components/Error/Error.js @@ -10,7 +10,7 @@ const Error = ({errorMsg, retryFunc}) => { { retryFunc ?