somewhere
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
const axios = require('axios')
|
||||
|
||||
const accountInfo = {
|
||||
Username: 'asanservice.sms@gmail.com',
|
||||
Password: '7ea2243a',
|
||||
Number: '5000467341',
|
||||
url: 'http://www.afe.ir/WebService/V4/BoxService.asmx'
|
||||
}
|
||||
|
||||
/// /////// http post soap method
|
||||
module.exports.SMS = (mobileNumbersArray, message) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
function renderMobileNumbers(array) {
|
||||
return array.map(item => `<string>${item}</string>`).join('')
|
||||
}
|
||||
|
||||
const xml = `<?xml version="1.0" encoding="utf-8"?>
|
||||
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<SendMessage xmlns="http://www.afe.ir/">
|
||||
<Username>${accountInfo.Username}</Username>
|
||||
<Password>${accountInfo.Password}</Password>
|
||||
<Number>${accountInfo.Number}</Number>
|
||||
<Mobile>
|
||||
${renderMobileNumbers(mobileNumbersArray)}
|
||||
</Mobile>
|
||||
<Message>${message}</Message>
|
||||
<Type>1</Type>
|
||||
</SendMessage>
|
||||
</soap:Body>
|
||||
</soap:Envelope>`
|
||||
|
||||
axios
|
||||
.post(accountInfo.url, xml, {
|
||||
headers: {
|
||||
'Content-Type': 'text/xml; charset=utf-8',
|
||||
SOAPAction: 'http://www.afe.ir/SendMessage'
|
||||
}
|
||||
})
|
||||
.then(res => {
|
||||
resolve(res)
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(
|
||||
'this is sms module error ------------------ status code: ',
|
||||
err.response.status,
|
||||
'error message: ',
|
||||
err.response.data
|
||||
)
|
||||
resolve(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
module.exports.phrases = {
|
||||
signature: ' asan-service.com ',
|
||||
thanks: ' از همراهی شما سپاس گزاریم. '
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
const fs = require('fs')
|
||||
const readXlsxFile = require('read-excel-file/node')
|
||||
|
||||
const guaranteeSerialsPath = './static/uploads/serials'
|
||||
const productSerialsPath = './static/uploads/serials_products'
|
||||
|
||||
const serialChecker = async (serial, type = 'guaranteeSerial') => {
|
||||
let exelsPath
|
||||
if (type === 'guaranteeSerial') exelsPath = guaranteeSerialsPath
|
||||
if (type === 'orginality') exelsPath = productSerialsPath
|
||||
|
||||
const lowerSerial = serial.toLowerCase()
|
||||
// a promise to lowercase items and filter null or DateObjects
|
||||
const toLowerCaseArray = array => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const newArray = []
|
||||
array.forEach((item, index) => {
|
||||
if (item !== null && typeof item === 'string') newArray.push(item.toLowerCase())
|
||||
if (item !== null && typeof item === 'number') newArray.push(item.toString())
|
||||
if (index === array.length - 1) return resolve(newArray)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// create an array of all exel files data
|
||||
const exelFilesData = []
|
||||
try {
|
||||
// get a list of all exel files
|
||||
const serialFiles = await fs.readdirSync(exelsPath)
|
||||
|
||||
// push each exel file data to exelFilesData array
|
||||
let n0 = 0
|
||||
for await (const file of serialFiles) {
|
||||
// reading all exel files one by one
|
||||
const exelFile = await readXlsxFile(`${exelsPath}/${file}`)
|
||||
exelFilesData.push(exelFile)
|
||||
|
||||
// flat exelFilesData and filter and lowerCase it's items
|
||||
if (n0 === serialFiles.length - 1) {
|
||||
const flattedArray = exelFilesData.flat(10000)
|
||||
const lowerCaseFlattedArray = await toLowerCaseArray(flattedArray)
|
||||
|
||||
// loop throw lowerCased items to find exact match item
|
||||
let n1 = 0
|
||||
for await (const item of lowerCaseFlattedArray) {
|
||||
if (item === lowerSerial) return true
|
||||
if (n1 === lowerCaseFlattedArray.length - 1) return false
|
||||
n1++
|
||||
}
|
||||
}
|
||||
n0++
|
||||
}
|
||||
} catch (e) {
|
||||
throw new Error(e)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.serialChecker = serialChecker
|
||||
@@ -0,0 +1,9 @@
|
||||
const token = '8f552d860d0cdbbf4afaa0749acb7f3e32efcdc85fc4b49bb3d356ff30f0504a'
|
||||
module.exports.checkThirdPartyAccess = (req, res, next) => {
|
||||
try {
|
||||
if (req.headers?.authorization?.trim() !== token) throw new Error('unauthorized')
|
||||
else next()
|
||||
} catch {
|
||||
return res.status(422).json({ message: 'unauthorized' })
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
/// ///////////////////////////////////////////////////////////////////////////////////////// expresjs methods
|
||||
module.exports.res404 = (res, err) => {
|
||||
return res.status(404).json({ message: err })
|
||||
}
|
||||
|
||||
module.exports.res406 = (res, err) => {
|
||||
return res.status(406).json({ message: err })
|
||||
}
|
||||
|
||||
module.exports.res500 = (res, err) => {
|
||||
return res.status(500).json({ message: err })
|
||||
}
|
||||
|
||||
module.exports.checkValidations = validationResult => {
|
||||
return (req, res, next) => {
|
||||
const errors = validationResult(req)
|
||||
if (!errors.isEmpty()) return res.status(422).json({ validation: errors.mapped() })
|
||||
else next()
|
||||
}
|
||||
}
|
||||
|
||||
/// ///////////////////////////////////////////////////////////////////////////////////////// sting methods
|
||||
module.exports.removeWhiteSpaces = str => {
|
||||
return str.replace(/ /g, '')
|
||||
}
|
||||
|
||||
module.exports.isPersian = str => {
|
||||
return str.match(/^[\u0600-\u06FF\s]+$/)
|
||||
}
|
||||
|
||||
module.exports.isPersianWithDigits = str => {
|
||||
return str.match(/^[\u0600-\u06FF\s\d]+$/)
|
||||
}
|
||||
|
||||
module.exports.isLatin = str => {
|
||||
return str.match(/^[A-Za-z\s]+$/g)
|
||||
}
|
||||
|
||||
module.exports.isLatinWithDigits = str => {
|
||||
return str.match(/^[a-zA-Z\s0-9()*_\-!#$%^&*,."'\][]*$/g)
|
||||
}
|
||||
|
||||
module.exports.hasWhiteSpaces = str => {
|
||||
return str.includes(' ')
|
||||
}
|
||||
|
||||
/// ///////////////////////////////////////////////////////////////////////////////////////// number methods
|
||||
module.exports.generateRandomDigits = digitsLength => {
|
||||
function generateRandomDigits(DIGITS_LENGTH) {
|
||||
const add = 1
|
||||
let max = 12 - add // 12 is the min safe number Math.random() can generate without it starting to pad the end with zeros.
|
||||
if (DIGITS_LENGTH > max) {
|
||||
return generateRandomDigits(max) + generateRandomDigits(DIGITS_LENGTH - max)
|
||||
}
|
||||
max = Math.pow(10, DIGITS_LENGTH + add)
|
||||
const min = max / 10 // Math.pow(10, n) basically
|
||||
const number = Math.floor(Math.random() * (max - min + 1)) + min
|
||||
|
||||
return ('' + number).substring(add)
|
||||
}
|
||||
return generateRandomDigits(digitsLength)
|
||||
}
|
||||
|
||||
module.exports.generateRandomDigitsInRangeOf = max => {
|
||||
return Math.floor(Math.random() * max) + 1
|
||||
}
|
||||
|
||||
/// ///////////////////////////////////////////////////////////////////////////////////////// iran region methods
|
||||
module.exports.checkNationalCode = code => {
|
||||
/* eslint-disable eqeqeq */
|
||||
const L = code.length
|
||||
if (L < 8 || parseInt(code, 10) == 0) return false
|
||||
code = ('0000' + code).substr(L + 4 - 10)
|
||||
if (parseInt(code.substr(3, 6), 10) == 0) return false
|
||||
const c = parseInt(code.substr(9, 1), 10)
|
||||
let s = 0
|
||||
for (let i = 0; i < 9; i++) {
|
||||
s += parseInt(code.substr(i, 1), 10) * (10 - i)
|
||||
}
|
||||
s = s % 11
|
||||
return (s < 2 && c == s) || (s >= 2 && c == 11 - s)
|
||||
/* eslint-enable eqeqeq */
|
||||
}
|
||||
|
||||
module.exports.checkMobileNumber = number => {
|
||||
const regex = /^(\+98|0)?9\d{9}$/
|
||||
const result = regex.test(number)
|
||||
return result
|
||||
}
|
||||
|
||||
module.exports.normalizeMobileNumber = number => {
|
||||
return number.split('').reverse().join('').slice(0, 10).concat('0').split('').reverse().join('')
|
||||
}
|
||||
|
||||
module.exports.nameOptimizer = name => {
|
||||
function regex(str) {
|
||||
return new RegExp(str)
|
||||
}
|
||||
|
||||
return name
|
||||
.replace(regex('آقای'), '')
|
||||
.replace(regex('آقا'), '')
|
||||
.replace(regex('جنابه'), '')
|
||||
.replace(regex('جناب'), '')
|
||||
.replace(regex('سرکار خانوم'), '')
|
||||
.replace(regex('سرکار خانم'), '')
|
||||
.replace(regex('سرکارخانوم'), '')
|
||||
.replace(regex('سرکارخانومه'), '')
|
||||
.replace(regex('سرکارخانمه'), '')
|
||||
.replace(regex('سرکارخانم'), '')
|
||||
.replace(regex('سرکار'), '')
|
||||
.replace(regex('خانوم'), '')
|
||||
.replace(regex('خانم'), '')
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
const User = require('../models/User')
|
||||
const Lottery = require('../models/Lottery')
|
||||
const SurveyCheck = require('../models/SurveyCheck')
|
||||
const Survey = require('../models/Survey')
|
||||
const Announcement = require('../models/Announcement')
|
||||
const { saveUserToArpa, updateUserOnArpa } = require('../ArpaWebservice')
|
||||
const { generateRandomDigitsInRangeOf } = require('./controllersHelperFunctions')
|
||||
const { SMS } = require('./SMS_Module')
|
||||
const { phrases } = require('./SMS_Phrases')
|
||||
|
||||
/// /////// times
|
||||
const minute = 1000 * 60
|
||||
const hour = minute * 60
|
||||
const day = hour * 24
|
||||
|
||||
/// /////// jobs
|
||||
const jobs = {
|
||||
checkUserActivation() {
|
||||
console.log('✅ --job: check users for activation is running')
|
||||
|
||||
return setInterval(async () => {
|
||||
try {
|
||||
const users = await User.find({ confirmed: false })
|
||||
for await (const user of users) {
|
||||
// item time and timeout
|
||||
const itemTime = Date.parse(user.created_at)
|
||||
const timeout = itemTime + day
|
||||
|
||||
// check if passed 24 hours and remove registration
|
||||
if (Date.now() >= timeout) {
|
||||
await user.remove()
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
}, hour)
|
||||
},
|
||||
checkIfAnnouncementsExpired() {
|
||||
console.log('✅ --job: check announcements for expire date is running')
|
||||
|
||||
return setInterval(async () => {
|
||||
try {
|
||||
const announcements = await Announcement.find({ expired: false })
|
||||
for await (const notif of announcements) {
|
||||
if (Date.now() > notif.expireDate) {
|
||||
notif.expired = true
|
||||
await notif.save()
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
}, hour)
|
||||
},
|
||||
drawLottery() {
|
||||
console.log('✅ --job: check for lottery draw is running')
|
||||
|
||||
return setInterval(async () => {
|
||||
try {
|
||||
const lottery = await Lottery.findOne({ expired: false })
|
||||
if (!lottery || lottery.expireDate > Date.now()) return
|
||||
|
||||
/// ///////// assets (arrays)
|
||||
const winnersCount = lottery.winnersCount
|
||||
|
||||
const participants = lottery.participants
|
||||
const participantsMobileNumbers = []
|
||||
|
||||
const winnersArray = []
|
||||
const winnersMobileNumbers = []
|
||||
|
||||
/// ///////// assets (functions)
|
||||
function getWinner(array) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const winner = array[generateRandomDigitsInRangeOf(array.length - 1)]
|
||||
if (await winnersMobileNumbers.includes(winner.mobile)) resolve(await getWinner(array))
|
||||
else {
|
||||
winnersMobileNumbers.push(winner.mobile)
|
||||
winnersArray.push(winner)
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// normalize repeated mobile numbers to decide which method to use
|
||||
for await (const item of participants) {
|
||||
if (!participantsMobileNumbers.includes(item.mobile)) participantsMobileNumbers.push(item.mobile)
|
||||
}
|
||||
|
||||
// draw function
|
||||
if (participantsMobileNumbers.length > 1000) {
|
||||
// console.log('------------------------- larg number block ran')
|
||||
|
||||
// chunk all participants to n part (Number(winnersCount) part)
|
||||
const partLength = Math.floor(participants.length / winnersCount)
|
||||
const chunckedArrayToParts = []
|
||||
|
||||
for (let i = 0; i < winnersCount; i++) {
|
||||
const chunck = await participants.slice(i * partLength, i * partLength + partLength)
|
||||
await chunckedArrayToParts.push(chunck)
|
||||
}
|
||||
|
||||
for await (const item of chunckedArrayToParts) {
|
||||
await getWinner(item)
|
||||
}
|
||||
} else if (participantsMobileNumbers.length > winnersCount) {
|
||||
// console.log('------------------------- grater than winnersCount block ran')
|
||||
|
||||
const winnersCountArray = []
|
||||
for (let i = 0; i < winnersCount; i++) {
|
||||
winnersCountArray.push(i)
|
||||
}
|
||||
|
||||
for await (const item of winnersCountArray) {
|
||||
await getWinner(participants)
|
||||
}
|
||||
} else {
|
||||
// console.log('------------------------- less or equal to winnersCount block ran')
|
||||
for await (const item of participants) {
|
||||
if (!winnersMobileNumbers.includes(item.mobile)) {
|
||||
winnersMobileNumbers.push(item.mobile)
|
||||
winnersArray.push(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// save result to db
|
||||
lottery.winnersList = winnersArray
|
||||
lottery.markModified('winnersList')
|
||||
lottery.expired = true
|
||||
lottery.save()
|
||||
|
||||
// send sms for winners
|
||||
for await (const item of winnersArray) {
|
||||
const msg = [
|
||||
'تبریک!!!',
|
||||
'\n',
|
||||
item.fullName,
|
||||
' عزیز شما در قرعه کشی آسان سرویس با کد پیگیری ',
|
||||
item.enrollCode,
|
||||
' برنده شدید. به زودی از شرکت آسان سرویس با شما تماس گرفته خواهد شد. در صورتی که تا 3 روز کاری با شما تماس گرفته نشد میتوانید از طریق شماره 02167341 داخلی 200 و کد پیگیری خود جهت دریافت جایزه اقدام نماید.',
|
||||
'\n',
|
||||
phrases.thanks,
|
||||
'\n',
|
||||
phrases.signature
|
||||
]
|
||||
|
||||
SMS([item.mobile], msg.join(''))
|
||||
}
|
||||
|
||||
/// /////////////////////////////////////////////////////// fake data for tests
|
||||
|
||||
// for (let i = 0; i < 4; i++) {
|
||||
// participants.push({
|
||||
// fullName: 'Amir Mohamadi 2',
|
||||
// mobile: '34dfssdkfisjdf34534',
|
||||
// serial: `S-ffasdfdf`,
|
||||
// enrollCode: `CODE-${i}`
|
||||
// })
|
||||
// console.log('--',i)
|
||||
// }
|
||||
|
||||
// lottery.participants = []
|
||||
|
||||
// lottery.markModified('participants')
|
||||
// return lottery.save()
|
||||
} catch (e) {
|
||||
console.log('an error happend in drawLottery job --- error: ', e)
|
||||
}
|
||||
}, hour)
|
||||
},
|
||||
checkUserSurveys() {
|
||||
console.log('✅ --job: check users for surveys is running')
|
||||
|
||||
return setInterval(async () => {
|
||||
try {
|
||||
const surveyCheck = await SurveyCheck.find({ smsSent: false }).populate('user')
|
||||
for await (const item of surveyCheck) {
|
||||
// timeout
|
||||
const timeout = item.timeAdded + day * 7
|
||||
|
||||
// check if passed one week
|
||||
if (Date.now() >= timeout) {
|
||||
const survey = await Survey.findOne({ code: item.code })
|
||||
if (!survey?._id) {
|
||||
const msg = [
|
||||
'مشتری گرامی',
|
||||
item.user.first_name + ' ' + item.user.last_name,
|
||||
'\n',
|
||||
'لطفا با شرکت در نظرسنجی خدمات پس از فروش آسان سرویس، میزان رضایت خود از خدمات گارانتی را به ما اعلام کنید و ما را در ارائه خدمات بهتر یاری نمایید. به پاس همراهی شما عزیزان، بین شرکت کنندگان در نظرسنجی ابتدای هرماه به قید قرعه جوایزی اهدا خواهد شد.',
|
||||
'\n',
|
||||
'لینک شرکت در نظر سنجی:',
|
||||
'\n',
|
||||
`https://asan-service.com/account/survey?code=${item.code}`
|
||||
]
|
||||
SMS([item.user.mobile_number], msg.join(' '))
|
||||
item.smsSent = true
|
||||
await item.save()
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
}, day)
|
||||
}
|
||||
}
|
||||
|
||||
/// /////// for develop usages
|
||||
const permissions = require('./permissions')
|
||||
const devTools = {
|
||||
async checkUsersArpaAccounts() {
|
||||
try {
|
||||
const users = await User.find({ scope: ['user'], confirmed: true })
|
||||
let index = 0
|
||||
for await (const user of users) {
|
||||
if (user.scope.includes('user')) {
|
||||
// if (!user.panatech_businessID && !user.panatech_businessCode) {
|
||||
// const panatechID = await saveUserToArpa(user, 'panatech')
|
||||
// user.panatech_businessID = panatechID.businessID
|
||||
// user.panatech_businessCode = panatechID.businessCode
|
||||
// await user.save()
|
||||
// console.log('🚀 ~ file: cronJobs.js ~ panatechID.businessCode', index)
|
||||
// }
|
||||
|
||||
index++
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('we got error --- ', e)
|
||||
}
|
||||
},
|
||||
async addNewPermissionsToPrivateAdmin() {
|
||||
console.log('addNewPermissionsToPrivateAdmin started')
|
||||
|
||||
try {
|
||||
const users = await User.find({ private: true })
|
||||
|
||||
for await (const user of users) {
|
||||
// console.log('🚀 ~ file: cronJobs.js ~ line 187 ~ forawait ~ user', user)
|
||||
user.permissions = []
|
||||
for await (const permission of permissions) {
|
||||
user.permissions.push(permission.value)
|
||||
// console.log('🚀 ~ file: cronJobs.js ~ line 190 ~ forawait ~ permission', permission.value)
|
||||
}
|
||||
await user.save()
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
async findDuplicatedUsers() {
|
||||
try {
|
||||
const usersArray = new Set()
|
||||
const duplicatedUsersArray = new Set()
|
||||
|
||||
const users = await User.find({ scope: ['user'] })
|
||||
|
||||
for await (const user of users) {
|
||||
if (!usersArray.has(user.mobile_number)) usersArray.add(user.mobile_number)
|
||||
else duplicatedUsersArray.add(user.mobile_number)
|
||||
}
|
||||
console.log(
|
||||
'🚀 ~ file: cronJobs.js ~ line 220 ~ findDuplicatedUsers ~ duplicatedUsersArray',
|
||||
duplicatedUsersArray
|
||||
)
|
||||
console.log(
|
||||
'🚀 ~ file: cronJobs.js ~ line 220 ~ findDuplicatedUsers ~ duplicatedUsersArray',
|
||||
duplicatedUsersArray.size
|
||||
)
|
||||
} catch (e) {
|
||||
console.log('🚀 ~ file: cronJobs.js ~ line 223 ~ findDuplicatedUsers - catch ~ e', e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = () => {
|
||||
jobs.checkUserActivation()
|
||||
jobs.drawLottery()
|
||||
jobs.checkIfAnnouncementsExpired()
|
||||
jobs.checkUserSurveys()
|
||||
|
||||
// remember to run it once !!!
|
||||
// devTools.checkUsersArpaAccounts()
|
||||
// devTools.addNewPermissionsToPrivateAdmin()
|
||||
// devTools.findDuplicatedUsers()
|
||||
}
|
||||
@@ -0,0 +1,386 @@
|
||||
// province cities
|
||||
const eastazarbaijan1 = [
|
||||
'آذرشهر',
|
||||
'اسکو',
|
||||
'اهر',
|
||||
'بستانآباد',
|
||||
'بناب',
|
||||
'تبریز',
|
||||
'جلفا',
|
||||
'چاراویماق',
|
||||
'سراب',
|
||||
'شبستر',
|
||||
'مراغه'
|
||||
]
|
||||
const westazarbaijan2 = [
|
||||
'ارومیه',
|
||||
'اشنویه',
|
||||
'بوکان',
|
||||
'پیرانشهر',
|
||||
'تکاب',
|
||||
'چالدران',
|
||||
'خوی',
|
||||
'سردشت',
|
||||
'سلماس',
|
||||
'شاهیندژ',
|
||||
'ماکو',
|
||||
'مهاباد',
|
||||
'میاندوآب',
|
||||
'نقده'
|
||||
]
|
||||
const ardabil3 = ['اردبیل', 'بیلهسوار', 'پارسآباد', 'خلخال', 'کوثر', 'گِرمی', 'مِشگینشهر', 'نَمین', 'نیر']
|
||||
const esfahan4 = [
|
||||
'آران و بیدگل',
|
||||
'اردستان',
|
||||
'اصفهان',
|
||||
'برخوار و میمه',
|
||||
'تیران و کرون',
|
||||
'چادگان',
|
||||
'خمینیشهر',
|
||||
'خوانسار',
|
||||
'سمیرم',
|
||||
'شهرضا',
|
||||
'سمیرم سفلی',
|
||||
'فریدن',
|
||||
'فریدونشهر',
|
||||
'فلاورجان',
|
||||
'کاشان',
|
||||
'گلپایگان',
|
||||
'لنجان',
|
||||
'مبارکه',
|
||||
'نائین',
|
||||
'نجفآباد',
|
||||
'نطنز'
|
||||
]
|
||||
const ilam5 = ['آبدانان', 'ایلام', 'ایوان', 'درهشهر', 'دهلران', 'شیروان و چرداول', 'مهران']
|
||||
const booshehr6 = ['بوشهر', 'تنگستان', 'جم', 'دشتستان', 'دشتی', 'دیر', 'دیلم', 'کنگان', 'گناوه']
|
||||
const tehran7 = [
|
||||
'اسلامشهر',
|
||||
'پاکدشت',
|
||||
'تهران',
|
||||
'دماوند',
|
||||
'رباطکریم',
|
||||
'ری',
|
||||
'ساوجبلاغ',
|
||||
'شمیرانات',
|
||||
'شهریار',
|
||||
'فیروزکوه',
|
||||
'ورامین'
|
||||
]
|
||||
const chaharmahalobakhtiari8 = ['اردل', 'بروجن', 'شهرکرد', 'فارسان', 'کوهرنگ', 'لردگان']
|
||||
const khorasanjonoobi9 = ['بیرجند', 'درمیان', 'سرایان', 'سربیشه', 'فردوس', 'قائنات', 'نهبندان']
|
||||
const khorasanrazavi10 = [
|
||||
'بردسکن',
|
||||
'تایباد',
|
||||
'تربت جام',
|
||||
'تربت حیدریه',
|
||||
'چناران',
|
||||
'خلیلآباد',
|
||||
'خواف',
|
||||
'درگز',
|
||||
'رشتخوار',
|
||||
'سبزوار',
|
||||
'سرخس',
|
||||
'فریمان',
|
||||
'قوچان',
|
||||
'کاشمر',
|
||||
'کلات',
|
||||
'گناباد',
|
||||
'مشهد',
|
||||
'مه ولات',
|
||||
'نیشابور'
|
||||
]
|
||||
const khorasanshomali11 = ['اسفراین', 'بجنورد', 'جاجرم', 'شیروان', 'فاروج', 'مانه و سملقان']
|
||||
const khoozestan12 = [
|
||||
'آبادان',
|
||||
'امیدیه',
|
||||
'اندیمشک',
|
||||
'اهواز',
|
||||
'ایذه',
|
||||
'باغملک',
|
||||
'بندر ماهشهر',
|
||||
'بهبهان',
|
||||
'خرمشهر',
|
||||
'دزفول',
|
||||
'دشت آزادگان',
|
||||
'رامشیر',
|
||||
'رامهرمز',
|
||||
'شادگان',
|
||||
'شوش',
|
||||
'شوشتر'
|
||||
]
|
||||
const zanjan13 = ['ابهر', 'ایجرود', 'خدابنده', 'خرمدره', 'زنجان', 'طارم', 'ماهنشان']
|
||||
const semnan14 = ['دامغان', 'سمنان', 'شاهرود', 'گرمسار', 'مهدیشهر']
|
||||
const sistanobaloochestan15 = [
|
||||
'ایرانشهر',
|
||||
'چابهار',
|
||||
'خاش',
|
||||
'دلگان',
|
||||
'زابل',
|
||||
'زاهدان',
|
||||
'زهک',
|
||||
'سراوان',
|
||||
'سرباز',
|
||||
'کنارک',
|
||||
'نیکشهر'
|
||||
]
|
||||
const fars16 = [
|
||||
'آباده',
|
||||
'ارسنجان',
|
||||
'استهبان',
|
||||
'اقلید',
|
||||
'بوانات',
|
||||
'پاسارگاد',
|
||||
'جهرم',
|
||||
'خرمبید',
|
||||
'خنج',
|
||||
'داراب',
|
||||
'زریندشت',
|
||||
'سپیدان',
|
||||
'شیراز',
|
||||
'فراشبند',
|
||||
'فسا',
|
||||
'فیروزآباد',
|
||||
'قیر و کارزین',
|
||||
'کازرون',
|
||||
'لارستان',
|
||||
'لامِرد',
|
||||
'مرودشت',
|
||||
'ممسنی',
|
||||
'مهر',
|
||||
'نیریز'
|
||||
]
|
||||
const qazvin17 = ['آبیک', 'البرز', 'بوئینزهرا', 'تاکستان', 'قزوین']
|
||||
const qom18 = ['قم']
|
||||
const kordestan19 = ['بانه', 'بیجار', 'دیواندره', 'سروآباد', 'سقز', 'سنندج', 'قروه', 'کامیاران', 'مریوان']
|
||||
const kerman20 = [
|
||||
'بافت',
|
||||
'بردسیر',
|
||||
'بم',
|
||||
'جیرفت',
|
||||
'راور',
|
||||
'رفسنجان',
|
||||
'رودبار جنوب',
|
||||
'زرند',
|
||||
'سیرجان',
|
||||
'شهر بابک',
|
||||
'عنبرآباد',
|
||||
'قلعه گنج',
|
||||
'کرمان',
|
||||
'کوهبنان',
|
||||
'کهنوج',
|
||||
'منوجان'
|
||||
]
|
||||
const kermanshah21 = [
|
||||
'اسلامآباد غرب',
|
||||
'پاوه',
|
||||
'ثلاث باباجانی',
|
||||
'جوانرود',
|
||||
'دالاهو',
|
||||
'روانسر',
|
||||
'سرپل ذهاب',
|
||||
'سنقر',
|
||||
'صحنه',
|
||||
'قصر شیرین',
|
||||
'کرمانشاه',
|
||||
'کنگاور',
|
||||
'گیلان غرب',
|
||||
'هرسین'
|
||||
]
|
||||
const kohkilooyevaboyrahmad22 = ['بویراحمد', 'بهمئی', 'دنا', 'کهگیلویه', 'گچساران']
|
||||
const golestan23 = [
|
||||
'آزادشهر',
|
||||
'آققلا',
|
||||
'بندر گز',
|
||||
'ترکمن',
|
||||
'رامیان',
|
||||
'علیآباد',
|
||||
'کردکوی',
|
||||
'کلاله',
|
||||
'گرگان',
|
||||
'گنبد کاووس',
|
||||
'مراوهتپه',
|
||||
'مینودشت'
|
||||
]
|
||||
const gilan24 = [
|
||||
'آستارا',
|
||||
'آستانه اشرفیه',
|
||||
'اَملَش',
|
||||
'بندر انزلی',
|
||||
'رشت',
|
||||
'رضوانشهر',
|
||||
'رودبار',
|
||||
'رودسر',
|
||||
'سیاهکل',
|
||||
'شَفت',
|
||||
'صومعهسرا',
|
||||
'طوالش',
|
||||
'فومَن',
|
||||
'لاهیجان',
|
||||
'لنگرود',
|
||||
'ماسال'
|
||||
]
|
||||
const lorestan25 = ['ازنا', 'الیگودرز', 'بروجرد', 'پلدختر', 'خرمآباد', 'دورود', 'دلفان', 'سلسله ,کوهدشت']
|
||||
const mazandaran26 = [
|
||||
'آمل',
|
||||
'بابل',
|
||||
'بابلسر',
|
||||
'بهشهر',
|
||||
'تنکابن',
|
||||
'جویبار',
|
||||
'چالوس',
|
||||
'رامسر',
|
||||
'ساری',
|
||||
'سوادکوه',
|
||||
'قائمشهر',
|
||||
'گلوگاه',
|
||||
'محمودآباد',
|
||||
'نکا',
|
||||
'نور',
|
||||
'نوشهر'
|
||||
]
|
||||
const markazi27 = ['آشتیان', 'اراک', 'تفرش', 'خمین', 'دلیجان', 'زرندیه', 'ساوه', 'شازند', 'کمیجان', 'محلات']
|
||||
const hormozgan28 = [
|
||||
'ابوموسی',
|
||||
'بستک',
|
||||
'بندر عباس',
|
||||
'بندر لنگه',
|
||||
'جاسک',
|
||||
'حاجیآباد',
|
||||
'شهرستان خمیر',
|
||||
'رودان',
|
||||
'قشم',
|
||||
'گاوبندی',
|
||||
'میناب'
|
||||
]
|
||||
const hamedan29 = ['اسدآباد', 'بهار', 'تویسرکان', 'رزن', 'کبودرآهنگ', 'ملایر', 'نهاوند', 'همدان']
|
||||
const yazd30 = ['ابرکوه', 'اردکان', 'بافق', 'تفت', 'خاتم', 'صدوق', 'طبس', 'مهریز', 'مِیبُد', 'یزد']
|
||||
const alborz31 = ['کرج', 'نظرآباد', 'فردیس', 'اشتهارد', 'هشتگرد', 'طالقان']
|
||||
|
||||
// provinces list
|
||||
module.exports.iranCities = [
|
||||
{
|
||||
name: 'آذربایجان شرقی',
|
||||
cities: eastazarbaijan1
|
||||
},
|
||||
{
|
||||
name: 'آذربایجان غربی',
|
||||
cities: westazarbaijan2
|
||||
},
|
||||
{
|
||||
name: 'اردبیل',
|
||||
cities: ardabil3
|
||||
},
|
||||
{
|
||||
name: 'اصفهان',
|
||||
cities: esfahan4
|
||||
},
|
||||
{
|
||||
name: 'ایلام',
|
||||
cities: ilam5
|
||||
},
|
||||
{
|
||||
name: 'بوشهر',
|
||||
cities: booshehr6
|
||||
},
|
||||
{
|
||||
name: 'تهران',
|
||||
cities: tehran7
|
||||
},
|
||||
{
|
||||
name: 'چهارمحال بختیاری',
|
||||
cities: chaharmahalobakhtiari8
|
||||
},
|
||||
{
|
||||
name: 'خراسان جنوبی',
|
||||
cities: khorasanjonoobi9
|
||||
},
|
||||
{
|
||||
name: 'خراسان رضوی',
|
||||
cities: khorasanrazavi10
|
||||
},
|
||||
{
|
||||
name: 'خراسان شمالی',
|
||||
cities: khorasanshomali11
|
||||
},
|
||||
{
|
||||
name: 'خوزستان',
|
||||
cities: khoozestan12
|
||||
},
|
||||
{
|
||||
name: 'زنجان',
|
||||
cities: zanjan13
|
||||
},
|
||||
{
|
||||
name: 'سمنان',
|
||||
cities: semnan14
|
||||
},
|
||||
{
|
||||
name: 'سیستان بلوچستان',
|
||||
cities: sistanobaloochestan15
|
||||
},
|
||||
{
|
||||
name: 'فارس',
|
||||
cities: fars16
|
||||
},
|
||||
{
|
||||
name: 'قزوین',
|
||||
cities: qazvin17
|
||||
},
|
||||
{
|
||||
name: 'قم',
|
||||
cities: qom18
|
||||
},
|
||||
{
|
||||
name: 'کردستان',
|
||||
cities: kordestan19
|
||||
},
|
||||
{
|
||||
name: 'کرمان',
|
||||
cities: kerman20
|
||||
},
|
||||
{
|
||||
name: 'کرمانشاه',
|
||||
cities: kermanshah21
|
||||
},
|
||||
{
|
||||
name: 'کهکیلویه و بویراحمد',
|
||||
cities: kohkilooyevaboyrahmad22
|
||||
},
|
||||
{
|
||||
name: 'گلستان',
|
||||
cities: golestan23
|
||||
},
|
||||
{
|
||||
name: 'گیلان',
|
||||
cities: gilan24
|
||||
},
|
||||
{
|
||||
name: 'لرستان',
|
||||
cities: lorestan25
|
||||
},
|
||||
{
|
||||
name: 'مازندران',
|
||||
cities: mazandaran26
|
||||
},
|
||||
{
|
||||
name: 'مرکزی',
|
||||
cities: markazi27
|
||||
},
|
||||
{
|
||||
name: 'هرمزگان',
|
||||
cities: hormozgan28
|
||||
},
|
||||
{
|
||||
name: 'همدان',
|
||||
cities: hamedan29
|
||||
},
|
||||
{
|
||||
name: 'یزد',
|
||||
cities: yazd30
|
||||
},
|
||||
{
|
||||
name: 'البرز',
|
||||
cities: alborz31
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,106 @@
|
||||
module.exports = [
|
||||
{
|
||||
name: 'مدیریت کاربران',
|
||||
value: 'admins'
|
||||
},
|
||||
{
|
||||
name: 'مشاهده پیام های تماس با ما',
|
||||
value: 'contact-us'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت دسته بندی دانلودها',
|
||||
value: 'download-categories'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت دانلودها',
|
||||
value: 'downloads'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت سوالات متداول',
|
||||
value: 'faq'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت آموزش ها',
|
||||
value: 'learning'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت تیکت ها',
|
||||
value: 'tickets'
|
||||
},
|
||||
{
|
||||
name: 'اپلود فایل اکسل (شماره سریال گارانتی)',
|
||||
value: 'serials-exel'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت شرایط گارانتی',
|
||||
value: 'warranty-terms'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت مشتریان',
|
||||
value: 'customers'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت راهنمای ثبت گارانتی',
|
||||
value: 'help'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت اعلانات و اطلاعیه ها',
|
||||
value: 'announcements'
|
||||
},
|
||||
{
|
||||
name: 'ارسال پیامک',
|
||||
value: 'sms'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت ظاهر دکمه قرعه کشی',
|
||||
value: 'lotteryPopUp'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت قرعه کشی',
|
||||
value: 'lottery'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت درخواست های نمایندگی',
|
||||
value: 'representations'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت نمایندگان',
|
||||
value: 'agents'
|
||||
},
|
||||
{
|
||||
name: 'ویرایش اطلاعات نمایندگان',
|
||||
value: 'agentUpdate'
|
||||
},
|
||||
{
|
||||
name: 'مشاهده صندوق ورودی نمایندگان',
|
||||
value: 'agentsInbox'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت قطعات',
|
||||
value: 'pieces'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت درخواست قطعه',
|
||||
value: 'piece-requests'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت درخواست کالای بافر',
|
||||
value: 'buffer-requests'
|
||||
},
|
||||
{
|
||||
name: 'مدیریت درخواست قطعه داغی',
|
||||
value: 'op-requests'
|
||||
},
|
||||
{
|
||||
name: 'مشاهده فرم عملکرد گارانتی نمایندگان',
|
||||
value: 'guarantee-reports'
|
||||
},
|
||||
{
|
||||
name: 'گزارشات',
|
||||
value: 'agentReports'
|
||||
},
|
||||
{
|
||||
name: 'نظر سنجی',
|
||||
value: 'surveys'
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,744 @@
|
||||
module.exports._sr = {
|
||||
fa: {
|
||||
required: {
|
||||
token: 'توکن را وارد کنید',
|
||||
field: 'این فیلد نباید خالی باشد',
|
||||
// developer validations
|
||||
remember_me: 'پارامتر remember_me الزامی است',
|
||||
// registration validations
|
||||
name: 'نام را وارد کنید',
|
||||
first_name: 'نام را وارد کنید',
|
||||
last_name: 'نام خانوادگی را وارد کنید',
|
||||
email: 'ایمیل را وارد کنید',
|
||||
national_code: 'کد ملی الزامی است',
|
||||
email_personal: 'ایمیل شخصی الزامی است',
|
||||
email_company: 'ایمیل کمپانی برای اشخاص حقوقی الزامی است',
|
||||
company_name: 'درصورتی که شخص حقوقی هستید، نام کمپانی را وارد کنید',
|
||||
username: 'نام کاربری را وارد کنید',
|
||||
phone_number: 'شماره تماس را وارد کنید',
|
||||
password: 'پسورد را وارد کنید',
|
||||
birthdate: 'تاریخ تولد را وارد کنید',
|
||||
// addressing validations
|
||||
country: 'کشور را وارد کنید',
|
||||
province: 'استان را وارد کنید',
|
||||
city: 'شهر را وارد کنید',
|
||||
address: 'آدرس را وارد کنید',
|
||||
postal_code: 'کد پستی را وارد کنید',
|
||||
plaque: 'پلاک را وارد کنید',
|
||||
receiver_first_name: 'نام گیرنده را وارد کنید',
|
||||
receiver_last_name: 'نام خانوادگی گیرنده را وارد کنید',
|
||||
receiver_mobile: 'شماره موبایل گیرنده را وارد کنید',
|
||||
// global (post - gallery - ...)
|
||||
title: 'عنوان را وارد کنید',
|
||||
caption: 'متن را وارد کنید',
|
||||
description: 'توضیحات را وارد کنید',
|
||||
category: 'دسته بندی را انتخاب کنید',
|
||||
image: 'عکس اجباری است',
|
||||
cover: 'کاور اجباری است',
|
||||
file: 'فایل اجباری است',
|
||||
message: 'پیام را بنویسید',
|
||||
quantity: 'تعداد را وارد کنید',
|
||||
date: 'تاریخ را وارد کنید',
|
||||
reason: 'دلیل را انتخاب کنید',
|
||||
question: 'سوال را بنویسید',
|
||||
answer: 'جواب را بنویسید',
|
||||
price: 'قیمت را وارد کنید',
|
||||
type: 'نوع را انتخاب کنید',
|
||||
discount_code: 'کد تخفیف را وارد کنید',
|
||||
discount_amount: 'مقدار تخفیف را وارد کنید',
|
||||
discount_expire_date: 'تاریخ انقضای کد تخفیف را مشخص کنید',
|
||||
user_id: 'کاربر را انتخاب کنید',
|
||||
video: 'ویدیو اجباری است'
|
||||
},
|
||||
format: {
|
||||
phone_number: 'فرمت شماره تماس صحیح نیست',
|
||||
email: 'فرمت ایمیل قابل قبول نیست',
|
||||
number: 'مقدار باید از جنس عدد باشد',
|
||||
boolean: 'مقدار باید از جنس Boolean باشد',
|
||||
image: 'فرمت عکس قابل قبول نیست',
|
||||
video: 'فرمت ویدیو قابل قبول نیست',
|
||||
national_code: 'کد ملی صحیح نیست'
|
||||
},
|
||||
min_char: {
|
||||
min2: 'حداقل 2 کاراکتر',
|
||||
min4: 'حداقل 4 کاراکتر',
|
||||
min8: 'حداقل 8 کاراکتر',
|
||||
min10: 'حداقل 10 کاراکتر',
|
||||
min20: 'حداقل 20 کاراکتر',
|
||||
min30: 'حداقل 30 کاراکتر',
|
||||
min40: 'حداقل 40 کاراکتر',
|
||||
min50: 'حداقل 50 کاراکتر',
|
||||
min60: 'حداقل 60 کاراکتر',
|
||||
min100: 'حداقل 100 کاراکتر',
|
||||
min120: 'حداقل 120 کاراکتر',
|
||||
min150: 'حداقل 150 کاراکتر',
|
||||
min200: 'حداقل 200 کاراکتر',
|
||||
data_size: 'حجم قابل قبول حداقل: ',
|
||||
image_width_size: 'عرض حداقل: ',
|
||||
image_height_size: 'ارتفاع حداقل: '
|
||||
},
|
||||
max_char: {
|
||||
max4: 'حداکثر 4 کاراکتر',
|
||||
max8: 'حداکثر 8 کاراکتر',
|
||||
max10: 'حداکثر 10 کاراکتر',
|
||||
max15: 'حداکثر 15 کاراکتر',
|
||||
max20: 'حداکثر 20 کاراکتر',
|
||||
max30: 'حداکثر 30 کاراکتر',
|
||||
max40: 'حداکثر 40 کاراکتر',
|
||||
max50: 'حداکثر 50 کاراکتر',
|
||||
max60: 'حداکثر 60 کاراکتر',
|
||||
max100: 'حداکثر 100 کاراکتر',
|
||||
max120: 'حداکثر 120 کاراکتر',
|
||||
max150: 'حداکثر 150 کاراکتر',
|
||||
max200: 'حداکثر 200 کاراکتر',
|
||||
data_size: 'حجم قابل قبول حداکثر: ',
|
||||
image_width_size: 'عرض حداکثر: ',
|
||||
image_height_size: 'ارتفاع حداکثر: '
|
||||
},
|
||||
not_found: {
|
||||
user_id: 'کاربری با این مشخصات وجود ندارد',
|
||||
admin_id: 'ادمینی با این مشخصات وجود ندارد',
|
||||
order_id: 'سفارشی با این مشخصات وجود ندارد',
|
||||
item_id: 'موردی با این مشخصات وجود ندارد',
|
||||
password: 'رمز عبور یا آیدی درست نیست'
|
||||
},
|
||||
duplicated: {
|
||||
username: 'این نام کاربری از قبل وجود دارد',
|
||||
email: 'این ایمیل از قبل وجود دارد',
|
||||
name: 'نام تکراری است',
|
||||
title: 'عنوان تکراری است',
|
||||
phone_number: 'این شماره تماس از قبل وجود دارد'
|
||||
},
|
||||
response: {
|
||||
logged_in: 'شما وارد سیستم شدید',
|
||||
not_logged_in: 'شما وارد سیستم نشدید',
|
||||
logged_out: 'شما از سیستم خارج شدید',
|
||||
unauthenticated: 'غیرمجاز',
|
||||
recovery_link: 'لینک بازیابی فرستاده شد',
|
||||
success_save: 'با موفقیت ثبت شد',
|
||||
success_remove: 'با موفقیت حذف شد',
|
||||
cart_empty: 'سبد خرید خالی است',
|
||||
already_has_address: 'آدرس قبلا اضافه شده',
|
||||
activation_code: 'کد فعالسازی برای شما ارسال شد',
|
||||
activation_email: 'ایمیل فعال سازی برای شما ارسال شد',
|
||||
expired_reset_link: 'این لینک بازیابی منقضی شده است',
|
||||
email_not_confirmed: 'ابتدا ایمیل خود را تایید کنید،لینک فعال سازی قبلا برای شما فرستاده شده است.',
|
||||
expired_activation_link: 'این لینک فعال سازی منقضی شده است',
|
||||
success_activation: 'اکانت شما با موفقیت فعال شد',
|
||||
passwords_not_match: 'پسورد ها یکی نیست',
|
||||
problem: 'مشکلی پیش آمده، لطفا دوباره تلاش کنید.',
|
||||
latinChar: 'لطفا با حروف لاتین بنویسید',
|
||||
persianChar: 'لطفا با حروف فارسی بنویسید',
|
||||
whiteSpace: 'بین حروف و کلمات نباید فاصله باشد'
|
||||
},
|
||||
file_types: {
|
||||
jpg: 'فقط فرمت jpg قابل قبول است',
|
||||
png: 'فقط فرمت png قابل قبول است',
|
||||
gif: 'فقط فرمت gif قابل قبول است',
|
||||
pdf: 'فقط فرمت pdf قابل قبول است',
|
||||
txt: 'فقط فرمت txt قابل قبول است',
|
||||
log: 'فقط فرمت log قابل قبول است',
|
||||
mp3: 'فقط فرمت mp3 قابل قبول است',
|
||||
ogg: 'فقط فرمت ogg قابل قبول است',
|
||||
wmv: 'فقط فرمت wmv قابل قبول است',
|
||||
mp4: 'فقط فرمت mp4 قابل قبول است',
|
||||
mov: 'فقط فرمت mov قابل قبول است',
|
||||
mkv: 'فقط فرمت mkv قابل قبول است',
|
||||
flv: 'فقط فرمت flv قابل قبول است'
|
||||
}
|
||||
},
|
||||
en: {
|
||||
required: {
|
||||
token: 'Token is required',
|
||||
field: 'This field is required',
|
||||
// developer validations
|
||||
remember_me: 'Remember_me parameter required',
|
||||
// registration validations
|
||||
name: 'Enter name',
|
||||
first_name: 'Enter first name',
|
||||
last_name: 'Enter last name',
|
||||
national_code: 'National code is required',
|
||||
email: 'Enter email',
|
||||
email_personal: 'Personal email is required',
|
||||
email_company: 'Company email is required for legal entities',
|
||||
company_name: 'Enter company name if you are a legal entity',
|
||||
username: 'Enter username',
|
||||
phone_number: 'Enter phone number',
|
||||
password: 'Enter password',
|
||||
birthdate: 'Enter birthdate',
|
||||
// addressing validations
|
||||
country: 'Enter country',
|
||||
province: 'Enter province',
|
||||
city: 'Enter city',
|
||||
address: 'Enter address',
|
||||
postal_code: 'Enter postal code',
|
||||
plaque: 'Enter plaque',
|
||||
receiver_first_name: 'Enter recipient name',
|
||||
receiver_last_name: 'Enter recipient surname',
|
||||
receiver_mobile: "Enter recipient's mobile number",
|
||||
// global (post - gallery - ...)
|
||||
title: 'Enter title',
|
||||
caption: 'Enter caption',
|
||||
description: 'Enter description',
|
||||
category: 'Select category',
|
||||
image: 'Image is required',
|
||||
cover: 'Cover is required',
|
||||
file: 'File is required',
|
||||
message: 'Write message',
|
||||
quantity: 'Enter quantity',
|
||||
date: 'Enter date',
|
||||
reason: 'Select reason',
|
||||
question: 'Write the question',
|
||||
answer: 'Write the answer',
|
||||
price: 'Enter Price',
|
||||
type: 'Select type',
|
||||
discount_code: 'Enter discount code',
|
||||
discount_amount: 'Enter discount amount',
|
||||
discount_expire_date: 'Specify discount code expiration date',
|
||||
user_id: 'Select user',
|
||||
video: 'Video is required'
|
||||
},
|
||||
format: {
|
||||
phone_number: 'Phone number format in incorrect',
|
||||
email: 'Email format is not correct',
|
||||
number: 'Value must be number',
|
||||
boolean: 'Value must be Boolean',
|
||||
image: 'Photo format is not acceptable',
|
||||
video: 'Video format is not acceptable',
|
||||
national_code: 'National code format is not correct'
|
||||
},
|
||||
min_char: {
|
||||
min2: 'At least 2 characters',
|
||||
min4: 'At least 4 characters',
|
||||
min8: 'At least 8 characters',
|
||||
min10: 'At least 10 characters',
|
||||
min20: 'At least 20 characters',
|
||||
min30: 'At least 30 characters',
|
||||
min40: 'At least 40 characters',
|
||||
min50: 'At least 50 characters',
|
||||
min60: 'At least 60 characters',
|
||||
min100: 'At least 100 characters',
|
||||
min120: 'At least 120 characters',
|
||||
min150: 'At least 150 characters',
|
||||
min200: 'At least 200 characters',
|
||||
data_size: 'Acceptable minimum size: ',
|
||||
image_width_size: 'Minimum width: ',
|
||||
image_height_size: 'Minimum height: '
|
||||
},
|
||||
max_char: {
|
||||
max4: 'Maximum 4 characters',
|
||||
max8: 'Maximum 8 characters',
|
||||
max10: 'Maximum 10 characters',
|
||||
max15: 'Maximum 15 characters',
|
||||
max20: 'Maximum 20 characters',
|
||||
max30: 'Maximum 30 characters',
|
||||
max40: 'Maximum 40 characters',
|
||||
max50: 'Maximum 50 characters',
|
||||
max60: 'Maximum 60 characters',
|
||||
max100: 'Maximum 100 characters',
|
||||
max120: 'Maximum 120 characters',
|
||||
max150: 'Maximum 150 characters',
|
||||
max200: 'Maximum 200 characters',
|
||||
data_size: 'Maximum acceptable size: ',
|
||||
image_width_size: 'Maximum width: ',
|
||||
image_height_size: 'Maximum height: '
|
||||
},
|
||||
not_found: {
|
||||
user_id: 'There is no user with this profile',
|
||||
admin_id: 'There is no admin with this profile',
|
||||
order_id: 'There is no order with this profile',
|
||||
item_id: 'There is no item with this specification',
|
||||
password: 'Password or ID is incorrect'
|
||||
},
|
||||
duplicated: {
|
||||
username: 'This username already exists',
|
||||
email: 'This email already exists',
|
||||
name: 'Name already exists',
|
||||
title: 'Title already exists',
|
||||
phone_number: 'Phone number already exists'
|
||||
},
|
||||
response: {
|
||||
logged_in: 'You are logged in',
|
||||
not_logged_in: 'You are not logged in',
|
||||
logged_out: 'You are logged out',
|
||||
unauthenticated: 'unauthenticated',
|
||||
recovery_link: 'Recovery link sent',
|
||||
success_save: 'Successfully saved',
|
||||
success_remove: 'Successfully removed',
|
||||
cart_empty: 'Cart is empty',
|
||||
already_has_address: 'Already has address',
|
||||
activation_code: 'Activation code sent to you',
|
||||
activation_email: 'Activation email sent to you',
|
||||
expired_reset_link: 'The current reset pass link has been expired',
|
||||
email_not_confirmed: 'Confirm your email first, the activation link has already been sent to you.',
|
||||
expired_activation_link: 'This activation link has expired',
|
||||
success_activation: 'Your account has been successfully activated',
|
||||
passwords_not_match: 'Passwords are not the same',
|
||||
problem: 'There is a problem, please try again.',
|
||||
latinChar: 'Please write in Latin letters',
|
||||
persianChar: 'Please write in Persian letters',
|
||||
whiteSpace: 'There should be no space between letters and words'
|
||||
},
|
||||
file_types: {
|
||||
jpg: 'Only jpg format is acceptable',
|
||||
png: 'Only png format is acceptable',
|
||||
gif: 'Only gif format is acceptable',
|
||||
pdf: 'Only pdf format is acceptable',
|
||||
txt: 'Only txt format is acceptable',
|
||||
log: 'Only log format is acceptable',
|
||||
mp3: 'Only mp3 format is acceptable',
|
||||
ogg: 'Only ogg format is acceptable',
|
||||
wmv: 'Only wmv format is acceptable',
|
||||
mp4: 'Only mp4 format is acceptable',
|
||||
mov: 'Only mov format is acceptable',
|
||||
mkv: 'Only mkv format is acceptable',
|
||||
flv: 'Only flv format is acceptable'
|
||||
}
|
||||
},
|
||||
de: {
|
||||
required: {
|
||||
token: 'Token is required',
|
||||
field: 'This field is required',
|
||||
// developer validations
|
||||
remember_me: 'Remember_me-Parameter erforderlich',
|
||||
// registration validations
|
||||
name: 'Name eingeben',
|
||||
first_name: 'Name eingeben',
|
||||
last_name: 'Nachnamen eingeben',
|
||||
national_code: 'Nationaler Code ist erforderlich',
|
||||
email: 'Email eingeben',
|
||||
email_personal: 'Persönliche E-Mail ist erforderlich',
|
||||
email_company: 'Für juristische Personen ist eine Unternehmens-E-Mail erforderlich',
|
||||
company_name: 'Geben Sie den Firmennamen ein, wenn Sie eine juristische Person sind',
|
||||
username: 'Geben Sie den Benutzernamen ein',
|
||||
phone_number: 'Telefonnummer eingeben',
|
||||
password: 'Passwort eingeben',
|
||||
birthdate: 'Enter birthdate',
|
||||
// addressing validations
|
||||
country: 'Land eingeben',
|
||||
province: 'Stadt betreten',
|
||||
city: 'Stadt betreten',
|
||||
address: 'Adresse eingeben',
|
||||
postal_code: 'Postleitzahl eingeben',
|
||||
plaque: 'Plakette eingeben',
|
||||
receiver_first_name: 'Empfängername eingeben',
|
||||
receiver_last_name: 'Nachname des Empfängers eingeben',
|
||||
receiver_mobile: 'Handynummer des Empfängers eingebenr',
|
||||
// global (post - gallery - ...)
|
||||
title: 'Titel eingeben',
|
||||
caption: 'Beschriftung eingeben',
|
||||
description: 'Beschreibung eingeben',
|
||||
category: 'Kategorie wählen',
|
||||
image: 'Bild ist erforderlich',
|
||||
cover: 'Bild ist erforderlich Abdeckung ist erforderlich',
|
||||
file: 'Datei ist erforderlich',
|
||||
message: 'Nachricht schreiben',
|
||||
quantity: 'Menge eingeben',
|
||||
date: 'Enter date',
|
||||
reason: 'Grund auswählen',
|
||||
question: 'Schreibe die Frage',
|
||||
answer: 'Schreibe die Antwort',
|
||||
price: 'Enter Price',
|
||||
type: 'Select type',
|
||||
discount_code: 'Enter discount code',
|
||||
discount_amount: 'Enter discount amount',
|
||||
discount_expire_date: 'Specify discount code expiration date',
|
||||
user_id: 'Select user',
|
||||
video: 'Video is required'
|
||||
},
|
||||
format: {
|
||||
phone_number: 'Telefonnummernformat falsch',
|
||||
email: 'E-Mail-Format nicht korrekt',
|
||||
number: 'Wert muss Nummer sein',
|
||||
boolean: 'Wert muss Boolescher Wert sein',
|
||||
image: 'Photo format is not acceptable',
|
||||
video: 'Video format is not acceptable',
|
||||
national_code: 'Nationales Codeformat ist nicht korrekt'
|
||||
},
|
||||
min_char: {
|
||||
min2: 'Mindestens 2 Zeichen',
|
||||
min4: 'Mindestens 4 Zeichen',
|
||||
min8: 'Mindestens 8 Zeichen',
|
||||
min10: 'Mindestens 10 Zeichen',
|
||||
min20: 'Mindestens 20 Zeichen',
|
||||
min30: 'Mindestens 30 Zeichen',
|
||||
min40: 'Mindestens 40 Zeichen',
|
||||
min50: 'Mindestens 50 Zeichen',
|
||||
min60: 'Mindestens 60 Zeichen',
|
||||
min100: 'Mindestens 100 Zeichen',
|
||||
min120: 'Mindestens 120 Zeichen',
|
||||
min150: 'Mindestens 150 Zeichen',
|
||||
min200: 'Mindestens 200 Zeichen',
|
||||
data_size: 'Akzeptable Mindestgröße: ',
|
||||
image_width_size: 'Mindestbreite: ',
|
||||
image_height_size: 'Mindesthöhe: '
|
||||
},
|
||||
max_char: {
|
||||
max4: 'Maximal 4 Zeichen',
|
||||
max8: 'Maximal 8 Zeichen',
|
||||
max10: 'Maximal 10 Zeichen',
|
||||
max15: 'Maximal 15 Zeichen',
|
||||
max20: 'Maximal 20 Zeichen',
|
||||
max30: 'Maximal 30 Zeichen',
|
||||
max40: 'Maximal 40 Zeichen',
|
||||
max50: 'Maximal 50 Zeichen',
|
||||
max60: 'Maximal 60 Zeichen',
|
||||
max100: 'Maximal 100 Zeichen',
|
||||
max120: 'Maximal 120 Zeichen',
|
||||
max150: 'Maximal 150 Zeichen',
|
||||
max200: 'Maximal 200 Zeichen',
|
||||
data_size: 'Maximal zulässige Größe: ',
|
||||
image_width_size: 'Maximale Breite: ',
|
||||
image_height_size: 'Maximale Höhe: '
|
||||
},
|
||||
not_found: {
|
||||
user_id: 'Es gibt keinen Benutzer mit diesem Profil',
|
||||
admin_id: 'Es gibt keinen Administrator mit diesem Profil',
|
||||
order_id: 'Es gibt keine Bestellung mit diesem Profil',
|
||||
item_id: 'Es gibt keinen Artikel mit dieser Spezifikation',
|
||||
password: 'Passwort oder ID ist falsch'
|
||||
},
|
||||
duplicated: {
|
||||
username: 'Dieser Benutzername existiert bereits',
|
||||
email: 'Diese E-Mail existiert bereits',
|
||||
name: 'Name ist doppelt',
|
||||
title: 'Titel ist doppelt',
|
||||
phone_number: 'Phone number already exists'
|
||||
},
|
||||
response: {
|
||||
logged_in: 'Sie sind angemeldet',
|
||||
not_logged_in: 'Sie sind nicht angemeldet',
|
||||
logged_out: 'Sie sind abgemeldet',
|
||||
unauthenticated: 'nicht authentifiziert',
|
||||
recovery_link: 'Wiederherstellungslink gesendet',
|
||||
success_save: 'Erfolgreich gespeichert',
|
||||
success_remove: 'Erfolgreich entfernt',
|
||||
cart_empty: 'Warenkorb ist leer',
|
||||
ready_has_address: 'Hat bereits Adresse',
|
||||
activation_code: 'Activation code sent to you',
|
||||
activation_email: 'Activation email sent to you',
|
||||
expired_reset_link: 'Der aktuelle Reset-Pass-Link ist abgelaufen',
|
||||
email_not_confirmed: 'Bestätigen Sie zuerst Ihre E-Mail, der Aktivierungslink wurde bereits an Sie gesendet.',
|
||||
expired_activation_link: 'Dieser Aktivierungslink ist abgelaufen',
|
||||
success_activation: 'Ihr Konto wurde erfolgreich aktiviert',
|
||||
passwords_not_match: 'Passwörter sind nicht dasselbe',
|
||||
problem: 'Es gibt ein Problem, bitte versuchen Sie es erneut.',
|
||||
latinChar: 'Please write in Latin letters',
|
||||
persianChar: 'Please write in Persian letters',
|
||||
whiteSpace: 'There should be no space between letters and words'
|
||||
},
|
||||
file_types: {
|
||||
jpg: 'Nur das jpg-Format ist akzeptabel',
|
||||
png: 'Nur das png-Format ist akzeptabel',
|
||||
gif: 'Nur das gif-Format ist akzeptabel',
|
||||
pdf: 'Nur das PDF-Format ist akzeptabel',
|
||||
txt: 'Nur das txt-Format ist akzeptabel',
|
||||
log: 'Nur das log-Format ist akzeptabel',
|
||||
mp3: 'Nur das mp3-Format ist akzeptabel',
|
||||
ogg: 'Nur das ogg-Format ist akzeptabel',
|
||||
wmv: 'Nur das wmv-Format ist akzeptabel',
|
||||
mp4: 'Nur das mp4-Format ist akzeptabel',
|
||||
mov: 'Nur das mov-Format ist akzeptabel',
|
||||
mkv: 'Nur das mkv-Format ist akzeptabel',
|
||||
flv: 'Nur das flv-Format ist akzeptabel'
|
||||
}
|
||||
},
|
||||
tr: {
|
||||
required: {
|
||||
token: 'Token is required',
|
||||
field: 'This field is required',
|
||||
// geliştirici doğrulamaları
|
||||
Remember_me: 'Remember_me parametresi gerekli',
|
||||
// kayıt doğrulamaları
|
||||
name: 'Adı girin',
|
||||
first_name: 'Adı girin',
|
||||
last_name: 'Soyadı girin',
|
||||
national_code: 'Nationaler Kodu erforderlich',
|
||||
email: 'E-posta girin',
|
||||
email_personal: 'Kişisel e-posta gereklidir',
|
||||
email_company: 'Tüzel kişiler için şirket e-postası gereklidir',
|
||||
company_name: 'Tüzel kişiyseniz şirket adını girin',
|
||||
username: 'Kullanıcı adını girin',
|
||||
phone_number: 'Telefon numarasını girin',
|
||||
password: 'Şifre girin',
|
||||
birthdate: 'Enter birthdate',
|
||||
// doğrulamaları adresleme
|
||||
country: 'Ülke girin',
|
||||
province: 'İl girin',
|
||||
city: 'Şehir girin',
|
||||
address: 'Adres girin',
|
||||
postal_code: 'Posta kodunu girin',
|
||||
plaque: 'Plak girin',
|
||||
receiver_first_name: 'Alıcı adını girin',
|
||||
receiver_last_name: 'Alıcının soyadını girin',
|
||||
receiver_mobile: 'Alıcının cep telefonu numarasını girin',
|
||||
// global (post - galeri - ...)
|
||||
title: 'Başlığı girin',
|
||||
caption: 'Başlık girin',
|
||||
description: 'Açıklama girin',
|
||||
category: 'Kategori seçin',
|
||||
image: 'Resim gerekli',
|
||||
cover: 'Kapak gereklidir',
|
||||
file: 'Dosya gerekli',
|
||||
message: 'Mesaj yaz',
|
||||
quantity: 'Miktar girin',
|
||||
date: 'Enter date',
|
||||
reason: 'Nedeni seçin',
|
||||
question: 'Soruyu yazın',
|
||||
answer: 'Cevabı yaz',
|
||||
price: 'Enter Price',
|
||||
type: 'Select type',
|
||||
discount_code: 'Enter discount code',
|
||||
discount_amount: 'Enter discount amount',
|
||||
discount_expire_date: 'Specify discount code expiration date',
|
||||
user_id: 'Select user',
|
||||
video: 'Video is required'
|
||||
},
|
||||
format: {
|
||||
phone_number: 'Telefon numarası biçimi yanlış',
|
||||
email: 'E-posta formatı doğru değil',
|
||||
number: 'Değer sayı olmalıdır',
|
||||
boolean: 'Değer Boole olmalıdır',
|
||||
image: 'Photo format is not acceptable',
|
||||
video: 'Video format is not acceptable',
|
||||
national_code: 'Ulusal kod formatı doğru değil'
|
||||
},
|
||||
min_char: {
|
||||
min2: 'En az 2 karakter',
|
||||
min4: 'En az 4 karakter',
|
||||
min8: 'En az 8 karakter',
|
||||
min10: 'En az 10 karakter',
|
||||
min20: 'En az 20 karakter',
|
||||
min30: 'En az 30 karakter',
|
||||
min40: 'En az 40 karakter',
|
||||
min50: 'En az 50 karakter',
|
||||
min60: 'En az 60 karakter',
|
||||
min100: 'En az 100 karakter',
|
||||
min120: 'En az 120 karakter',
|
||||
min150: 'En az 150 karakter',
|
||||
min200: 'En az 200 karakter',
|
||||
data_size: 'Kabul edilebilir minimum boyut: ',
|
||||
image_width_size: 'Minimum genişlik: ',
|
||||
image_height_size: 'Minimum yükseklik: '
|
||||
},
|
||||
max_char: {
|
||||
max4: 'Maksimum 4 karakter',
|
||||
max8: 'Maksimum 8 karakter',
|
||||
max10: 'Maksimum 10 karakter',
|
||||
max15: 'Maksimum 15 karakter',
|
||||
max20: 'Maksimum 20 karakter',
|
||||
max30: 'Maksimum 30 karakter',
|
||||
max40: 'Maksimum 40 karakter',
|
||||
max50: 'Maksimum 50 karakter',
|
||||
max60: 'Maksimum 60 karakter',
|
||||
max100: 'Maksimum 100 karakter',
|
||||
max120: 'Maksimum 120 karakter',
|
||||
max150: 'Maksimum 150 karakter',
|
||||
max200: 'Maksimum 200 karakter',
|
||||
data_size: 'Kabul edilebilir maksimum boyut: ',
|
||||
image_width_size: 'Maksimum genişlik: ',
|
||||
image_height_size: 'Maksimum yükseklik: '
|
||||
},
|
||||
not_found: {
|
||||
user_id: 'Bu profile sahip kullanıcı yok',
|
||||
admin_id: 'Bu profile sahip yönetici yok',
|
||||
order_id: 'Bu profilde sipariş yok',
|
||||
item_id: 'Bu spesifikasyona sahip hiçbir öğe yok',
|
||||
password: 'Şifre veya kimlik yanlış'
|
||||
},
|
||||
duplicated: {
|
||||
username: 'Bu kullanıcı adı zaten mevcut',
|
||||
email: 'Bu email zaten var',
|
||||
name: 'Ad çift',
|
||||
title: 'Başlık yineleniyor',
|
||||
phone_number: 'Phone number already exists'
|
||||
},
|
||||
response: {
|
||||
logged_in: 'Giriş yaptınız',
|
||||
not_logged_in: 'Giriş yapmadınız',
|
||||
logged_out: 'Çıkış yaptınız',
|
||||
unauthenticated: 'unauthenticated',
|
||||
recovery_link: 'Kurtarma bağlantısı gönderildi',
|
||||
success_save: 'Başarıyla kaydedildi',
|
||||
success_remove: 'Başarıyla kaldırıldı',
|
||||
cart_empty: 'Sepet boş',
|
||||
already_has_address: 'Zaten adresi var',
|
||||
activation_code: 'Activation code sent to you',
|
||||
activation_email: 'Activation email sent to you',
|
||||
expired_reset_link: 'Mevcut sıfırlama geçiş bağlantısının süresi doldu',
|
||||
email_not_confirmed: 'Önce e-postanızı onaylayın, aktivasyon bağlantısı size zaten gönderildi.',
|
||||
expired_activation_link: 'Bu aktivasyon bağlantısının süresi doldu',
|
||||
success_activation: 'Hesabınız başarıyla etkinleştirildi',
|
||||
passwords_not_match: 'Şifreler aynı değil',
|
||||
problem: 'Bir sorun var, lütfen tekrar deneyin.',
|
||||
latinChar: 'Please write in Latin letters',
|
||||
persianChar: 'Please write in Persian letters',
|
||||
whiteSpace: 'There should be no space between letters and words'
|
||||
},
|
||||
file_types: {
|
||||
jpg: 'Yalnızca jpg formatı kabul edilebilir',
|
||||
png: 'Sadece png formatı kabul edilebilir',
|
||||
gif: 'Yalnızca gif formatı kabul edilebilir',
|
||||
pdf: 'Yalnızca pdf formatı kabul edilebilir',
|
||||
txt: 'Yalnızca txt formatı kabul edilebilir',
|
||||
log: 'Yalnızca log formatı kabul edilebilir',
|
||||
mp3: 'Yalnızca mp3 formatı kabul edilebilir',
|
||||
ogg: 'Yalnızca ogg formatı kabul edilebilir',
|
||||
wmv: 'Yalnızca wmv formatı kabul edilebilir',
|
||||
mp4: 'Yalnızca mp4 formatı kabul edilebilir',
|
||||
mov: 'Yalnızca mov formatı kabul edilebilir',
|
||||
mkv: 'Yalnızca mkv formatı kabul edilebilir',
|
||||
flv: 'Yalnızca flv biçimi kabul edilebilir'
|
||||
}
|
||||
},
|
||||
it: {
|
||||
required: {
|
||||
token: 'Token is required',
|
||||
field: 'This field is required',
|
||||
// convalide dello sviluppatore
|
||||
Remember_me: 'Remember_me parameter required',
|
||||
// convalide della registrazione
|
||||
name: 'Inserisci nome',
|
||||
first_name: 'Inserisci nome',
|
||||
last_name: 'Inserisci il cognome',
|
||||
national_code: 'Il codice Nationaler è comune',
|
||||
email: 'Enter email',
|
||||
email_personal: "L'email personale è obbligatoria",
|
||||
email_company: "L'email aziendale è obbligatoria per le persone giuridiche",
|
||||
company_name: "Inserisci il nome dell'azienda se sei una persona giuridica",
|
||||
username: 'Inserisci nome utente',
|
||||
phone_number: 'Inserisci numero di telefono',
|
||||
password: 'Inserisci password',
|
||||
birthdate: 'Enter birthdate',
|
||||
// indirizzamento delle convalide
|
||||
country: 'Inserisci paese',
|
||||
province: 'Inserisci provincia',
|
||||
city: 'Inserisci città',
|
||||
address: 'Inserisci indirizzo',
|
||||
postal_code: 'Inserisci codice postale',
|
||||
plaque: 'Inserisci targa',
|
||||
receiver_first_name: 'Inserisci il nome del destinatario',
|
||||
receiver_last_name: 'Inserisci il cognome del destinatario',
|
||||
receiver_mobile: 'Inserisci il numero di cellulare del destinatario',
|
||||
// globale (post - gallery - ...)
|
||||
title: 'Inserisci titolo',
|
||||
caption: 'Inserisci didascalia',
|
||||
description: 'Inserisci descrizione',
|
||||
category: 'Seleziona categoria',
|
||||
image: "L'immagine è obbligatoria",
|
||||
cover: 'Cover is required',
|
||||
file: 'Il file è obbligatorio',
|
||||
message: 'Scrivi messaggio',
|
||||
quantity: 'Inserisci quantità',
|
||||
date: 'Enter date',
|
||||
reason: 'Seleziona motivo',
|
||||
question: 'Scrivi la domanda',
|
||||
answer: 'Scrivi la risposta',
|
||||
price: 'Enter Price',
|
||||
type: 'Select type',
|
||||
discount_code: 'Enter discount code',
|
||||
discount_amount: 'Enter discount amount',
|
||||
discount_expire_date: 'Specify discount code expiration date',
|
||||
user_id: 'Select user',
|
||||
video: 'Video is required'
|
||||
},
|
||||
format: {
|
||||
phone_number: 'Formato del numero di telefono non corretto',
|
||||
email: 'Formato email non corretto',
|
||||
number: 'Il valore deve essere un numero',
|
||||
boolean: 'Il valore deve essere booleano',
|
||||
image: 'Photo format is not acceptable',
|
||||
video: 'Video format is not acceptable',
|
||||
national_code: 'Il formato del codice nazionale non è corretto'
|
||||
},
|
||||
min_char: {
|
||||
min2: 'Almeno 2 caratteri',
|
||||
min4: 'Almeno 4 caratteri',
|
||||
min8: 'Almeno 8 caratteri',
|
||||
min10: 'Almeno 10 caratteri',
|
||||
min20: 'Almeno 20 caratteri',
|
||||
min30: 'Almeno 30 caratteri',
|
||||
min40: 'Almeno 40 caratteri',
|
||||
min50: 'Almeno 50 caratteri',
|
||||
min60: 'Almeno 60 caratteri',
|
||||
min100: 'Almeno 100 caratteri',
|
||||
min120: 'Almeno 120 caratteri',
|
||||
min150: 'Almeno 150 caratteri',
|
||||
min200: 'Almeno 200 caratteri',
|
||||
data_size: 'Dimensione minima accettabile: ',
|
||||
image_width_size: 'Larghezza minima: ',
|
||||
image_height_size: 'Altezza minima: '
|
||||
},
|
||||
max_char: {
|
||||
max4: 'Massimo 4 caratteri',
|
||||
max8: 'Massimo 8 caratteri',
|
||||
max10: 'Massimo 10 caratteri',
|
||||
max15: 'Massimo 15 caratteri',
|
||||
max20: 'Massimo 20 caratteri',
|
||||
max30: 'Massimo 30 caratteri',
|
||||
max40: 'Massimo 40 caratteri',
|
||||
max50: 'Massimo 50 caratteri',
|
||||
max60: 'Massimo 60 caratteri',
|
||||
max100: 'Massimo 100 caratteri',
|
||||
max120: 'Massimo 120 caratteri',
|
||||
max150: 'Massimo 150 caratteri',
|
||||
max200: 'Massimo 200 caratteri',
|
||||
data_size: 'Dimensione massima accettabile: ',
|
||||
image_width_size: 'Larghezza massima: ',
|
||||
image_height_size: 'Altezza massima: '
|
||||
},
|
||||
not_found: {
|
||||
user_id: 'Nessun utente con questo profilo',
|
||||
admin_id: 'Nessun amministratore con questo profilo',
|
||||
order_id: 'Nessun ordine con questo profilo',
|
||||
item_id: 'Nessun articolo con questa specifica',
|
||||
password: "La password o l'ID non sono corretti"
|
||||
},
|
||||
duplicated: {
|
||||
username: 'Questo nome utente esiste già',
|
||||
email: 'Questa email esiste già',
|
||||
name: 'Il nome è duplicato',
|
||||
title: 'Il titolo è duplicato',
|
||||
phone_number: 'Phone number already exists'
|
||||
},
|
||||
response: {
|
||||
logged_in: "Hai effettuato l'accesso",
|
||||
not_logged_in: 'Non sei loggato',
|
||||
logged_out: 'Sei disconnesso',
|
||||
unauthenticated: 'unauthenticated',
|
||||
recovery_link: 'Link di ripristino inviato',
|
||||
success_save: 'Salvataggio riuscito',
|
||||
success_remove: 'Rimosso con successo',
|
||||
cart_empty: 'Il carrello è vuoto',
|
||||
already_has_address: 'Ha già indirizzo',
|
||||
activation_code: 'Activation code sent to you',
|
||||
activation_email: 'Activation email sent to you',
|
||||
expired_reset_link: "L'attuale link del passaggio di reimpostazione è scaduto",
|
||||
email_not_confirmed: 'Conferma prima la tua email, il link di attivazione ti è già stato inviato.',
|
||||
expired_activation_link: 'Questo link di attivazione è scaduto',
|
||||
success_activation: 'Il tuo account è stato attivato con successo',
|
||||
passwords_not_match: 'Le password non sono le stesse',
|
||||
problem: 'Si è verificato un problema, riprova.',
|
||||
latinChar: 'Please write in Latin letters',
|
||||
persianChar: 'Please write in Persian letters',
|
||||
whiteSpace: 'There should be no space between letters and words'
|
||||
},
|
||||
file_types: {
|
||||
jpg: 'È accettabile solo il formato jpg',
|
||||
png: 'È accettabile solo il formato png',
|
||||
gif: 'È accettabile solo il formato GIF',
|
||||
pdf: 'È accettabile solo il formato pdf',
|
||||
txt: 'È accettabile solo il formato txt',
|
||||
log: 'È accettabile solo il formato log',
|
||||
mp3: 'È accettabile solo il formato mp3',
|
||||
ogg: 'È accettabile solo il formato ogg',
|
||||
wmv: 'È accettabile solo il formato wmv',
|
||||
mp4: 'È accettabile solo il formato mp4',
|
||||
mov: 'È accettabile solo il formato mov',
|
||||
mkv: 'È accettabile solo il formato mkv',
|
||||
flv: 'È accettabile solo il formato flv'
|
||||
}
|
||||
},
|
||||
supportedImageFormats: ['jpg', 'jpeg', 'png', 'svg', 'svg+xml', 'webp'],
|
||||
supportedVideoFormats: ['mp4', 'wmv']
|
||||
}
|
||||
Reference in New Issue
Block a user