@acorex/platform-generator 20.3.0-next.0 → 20.3.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/bin/interactive-entity-creator.js +84 -90
- package/src/generators/app-module/files/src/app/modules/common/translation-root.module.ts.template +2 -2
- package/src/generators/app-module/files/src/assets/i18n/en-US/common.json +0 -404
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/common.json +0 -386
package/package.json
CHANGED
|
@@ -27,18 +27,18 @@ function validateName(name) {
|
|
|
27
27
|
if (!name || name.trim() === '') {
|
|
28
28
|
return 'Name cannot be empty.';
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
// Ensure name is not just a number
|
|
32
32
|
if (/^\d+$/.test(name)) {
|
|
33
33
|
return 'Name cannot be just a number. Please include at least one letter.';
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
// Less restrictive validation that allows non-Latin characters
|
|
37
37
|
// Just check for spaces, special characters, and make sure it starts with a letter or non-Latin character
|
|
38
38
|
if (/^[^a-zA-Z\p{L}]|\s|[^\w\p{L}]/u.test(name)) {
|
|
39
39
|
return 'Name must start with a letter and cannot contain spaces or special characters.';
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
return null; // No error
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -48,15 +48,13 @@ const isDryRun = process.argv.includes('--dryRun');
|
|
|
48
48
|
// Create an interface for readline
|
|
49
49
|
const rl = readline.createInterface({
|
|
50
50
|
input: process.stdin,
|
|
51
|
-
output: process.stdout
|
|
51
|
+
output: process.stdout,
|
|
52
52
|
});
|
|
53
53
|
|
|
54
54
|
// Define widget catalog - copied from widget-catalog.ts
|
|
55
55
|
const widgetCatalog = {
|
|
56
56
|
text: 'text-editor',
|
|
57
|
-
email: 'email-editor',
|
|
58
57
|
password: 'password-editor',
|
|
59
|
-
phone: 'phone-editor',
|
|
60
58
|
largeText: 'large-text-editor',
|
|
61
59
|
richText: 'rich-text-editor',
|
|
62
60
|
number: 'number-editor',
|
|
@@ -66,7 +64,6 @@ const widgetCatalog = {
|
|
|
66
64
|
toggle: 'toggle-editor',
|
|
67
65
|
dateTime: 'date-time-editor',
|
|
68
66
|
color: 'color-editor',
|
|
69
|
-
link: 'link-editor',
|
|
70
67
|
contact: 'contact-editor',
|
|
71
68
|
tagable: 'tagable-editor',
|
|
72
69
|
file: 'file',
|
|
@@ -78,15 +75,13 @@ const widgetCatalog = {
|
|
|
78
75
|
table: 'table-editor',
|
|
79
76
|
qrcode: 'qrcode',
|
|
80
77
|
singleFileBox: 'single-file-box-editor',
|
|
81
|
-
metaData: 'meta-data-editor'
|
|
78
|
+
metaData: 'meta-data-editor',
|
|
82
79
|
};
|
|
83
80
|
|
|
84
81
|
// Define widget to data type mapping
|
|
85
82
|
const widgetToDataType = {
|
|
86
83
|
'text-editor': 'string',
|
|
87
|
-
'email-editor': 'string',
|
|
88
84
|
'password-editor': 'string',
|
|
89
|
-
'phone-editor': 'string',
|
|
90
85
|
'large-text-editor': 'string',
|
|
91
86
|
'rich-text-editor': 'string',
|
|
92
87
|
'number-editor': 'number',
|
|
@@ -96,35 +91,32 @@ const widgetToDataType = {
|
|
|
96
91
|
'toggle-editor': 'boolean',
|
|
97
92
|
'date-time-editor': 'date',
|
|
98
93
|
'color-editor': 'string',
|
|
99
|
-
'link-editor': 'string',
|
|
100
94
|
'contact-editor': 'object',
|
|
101
95
|
'tagable-editor': 'string',
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
96
|
+
file: 'object',
|
|
97
|
+
gallery: 'object',
|
|
98
|
+
signature: 'string',
|
|
99
|
+
map: 'object',
|
|
106
100
|
'lookup-editor': 'object',
|
|
107
101
|
'selection-list-editor': 'array',
|
|
108
102
|
'table-editor': 'array',
|
|
109
|
-
|
|
103
|
+
qrcode: 'string',
|
|
110
104
|
'single-file-box-editor': 'object',
|
|
111
|
-
'meta-data-editor': 'object'
|
|
105
|
+
'meta-data-editor': 'object',
|
|
112
106
|
};
|
|
113
107
|
|
|
114
108
|
// Widget groups for better display
|
|
115
109
|
const widgetGroups = {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
110
|
+
Basic: ['text-editor', 'large-text-editor', 'rich-text-editor', 'number-editor', 'checkbox-editor', 'toggle-editor'],
|
|
111
|
+
Input: ['password-editor', 'date-time-editor', 'color-editor'],
|
|
112
|
+
Complex: ['select-editor', 'lookup-editor', 'selection-list-editor', 'table-editor'],
|
|
113
|
+
Media: ['file', 'gallery', 'signature', 'map', 'qrcode'],
|
|
120
114
|
};
|
|
121
115
|
|
|
122
116
|
// Define default colSpan based on widget type
|
|
123
117
|
const widgetToColSpan = {
|
|
124
118
|
'text-editor': 6,
|
|
125
|
-
'email-editor': 6,
|
|
126
119
|
'password-editor': 6,
|
|
127
|
-
'phone-editor': 6,
|
|
128
120
|
'large-text-editor': 12,
|
|
129
121
|
'rich-text-editor': 12,
|
|
130
122
|
'number-editor': 4,
|
|
@@ -134,19 +126,18 @@ const widgetToColSpan = {
|
|
|
134
126
|
'toggle-editor': 4,
|
|
135
127
|
'date-time-editor': 6,
|
|
136
128
|
'color-editor': 4,
|
|
137
|
-
'link-editor': 6,
|
|
138
129
|
'contact-editor': 8,
|
|
139
130
|
'tagable-editor': 8,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
131
|
+
file: 6,
|
|
132
|
+
gallery: 12,
|
|
133
|
+
signature: 8,
|
|
134
|
+
map: 12,
|
|
144
135
|
'lookup-editor': 6,
|
|
145
136
|
'selection-list-editor': 8,
|
|
146
137
|
'table-editor': 12,
|
|
147
|
-
|
|
138
|
+
qrcode: 6,
|
|
148
139
|
'single-file-box-editor': 6,
|
|
149
|
-
'meta-data-editor': 8
|
|
140
|
+
'meta-data-editor': 8,
|
|
150
141
|
};
|
|
151
142
|
|
|
152
143
|
// Create data object to store all user input
|
|
@@ -163,13 +154,13 @@ const data = {
|
|
|
163
154
|
enableSorts: [],
|
|
164
155
|
enableFilters: [],
|
|
165
156
|
enableInlineFilters: [],
|
|
166
|
-
inColumn: [] // اضافه کردن آرایه جدید برای ذخیره وضعیت نمایش در ستون
|
|
157
|
+
inColumn: [], // اضافه کردن آرایه جدید برای ذخیره وضعیت نمایش در ستون
|
|
167
158
|
};
|
|
168
159
|
|
|
169
160
|
// Run the prompts in sequence
|
|
170
161
|
async function runPrompts() {
|
|
171
162
|
console.log('\n=== AcoreX Platform Interactive Entity Generator ===\n');
|
|
172
|
-
|
|
163
|
+
|
|
173
164
|
// Get module name with validation
|
|
174
165
|
while (true) {
|
|
175
166
|
data.moduleName = await askQuestion('Module name: ');
|
|
@@ -180,7 +171,7 @@ async function runPrompts() {
|
|
|
180
171
|
break;
|
|
181
172
|
}
|
|
182
173
|
}
|
|
183
|
-
|
|
174
|
+
|
|
184
175
|
// Get entity name with validation
|
|
185
176
|
while (true) {
|
|
186
177
|
data.name = await askQuestion('Entity name: ');
|
|
@@ -191,7 +182,7 @@ async function runPrompts() {
|
|
|
191
182
|
break;
|
|
192
183
|
}
|
|
193
184
|
}
|
|
194
|
-
|
|
185
|
+
|
|
195
186
|
// Get properties
|
|
196
187
|
console.log('\nEnter properties (type "done" when finished):');
|
|
197
188
|
let propCount = 1;
|
|
@@ -201,50 +192,53 @@ async function runPrompts() {
|
|
|
201
192
|
break;
|
|
202
193
|
}
|
|
203
194
|
data.properties.push(prop);
|
|
204
|
-
|
|
195
|
+
|
|
205
196
|
// Get widget for this property
|
|
206
197
|
const widget = await selectWidget(`Select widget for "${prop}": `);
|
|
207
198
|
data.widgets.push(widget);
|
|
208
|
-
|
|
199
|
+
|
|
209
200
|
// Automatically determine data type based on widget
|
|
210
201
|
const dataType = widgetToDataType[widget] || 'string';
|
|
211
202
|
data.dataTypes.push(dataType);
|
|
212
|
-
|
|
203
|
+
|
|
213
204
|
// Ask if this property is required
|
|
214
205
|
const isRequired = await askQuestion(`Is "${prop}" required? (y/n): `, 'n');
|
|
215
206
|
if (isRequired.toLowerCase() === 'y') {
|
|
216
207
|
data.required.push(prop);
|
|
217
208
|
}
|
|
218
|
-
|
|
209
|
+
|
|
219
210
|
// Ask if this property should be displayed in columns
|
|
220
211
|
const showInColumn = await askQuestion(`Show "${prop}" in table columns? (y/n): `, 'y');
|
|
221
212
|
data.inColumn.push(showInColumn.toLowerCase() === 'y' ? 'true' : 'false');
|
|
222
|
-
|
|
213
|
+
|
|
223
214
|
// Get colSpan for this property (1-12)
|
|
224
215
|
const defaultColSpan = widgetToColSpan[widget] || 6;
|
|
225
216
|
const colSpan = await askQuestion(`Column span for "${prop}" (1-12): `, defaultColSpan.toString());
|
|
226
217
|
data.colSpans.push(parseInt(colSpan));
|
|
227
|
-
|
|
218
|
+
|
|
228
219
|
// Get order for this property
|
|
229
220
|
const defaultOrder = propCount; // Default order is sequential
|
|
230
|
-
const order = await askQuestion(
|
|
221
|
+
const order = await askQuestion(
|
|
222
|
+
`Display order for "${prop}" (default: ${defaultOrder}): `,
|
|
223
|
+
defaultOrder.toString(),
|
|
224
|
+
);
|
|
231
225
|
data.orders.push(parseInt(order));
|
|
232
|
-
|
|
226
|
+
|
|
233
227
|
// Ask about sort
|
|
234
228
|
const enableSort = await askQuestion(`Enable sorting for "${prop}"? (y/n): `, 'y');
|
|
235
229
|
data.enableSorts.push(enableSort.toLowerCase() === 'y' ? 'true' : 'false');
|
|
236
|
-
|
|
230
|
+
|
|
237
231
|
// Ask about filter
|
|
238
232
|
const enableFilter = await askQuestion(`Enable filtering for "${prop}"? (y/n): `, 'y');
|
|
239
233
|
data.enableFilters.push(enableFilter.toLowerCase() === 'y' ? 'true' : 'false');
|
|
240
|
-
|
|
234
|
+
|
|
241
235
|
// Ask about inline filter
|
|
242
236
|
const enableInlineFilter = await askQuestion(`Enable inline filtering for "${prop}"? (y/n): `, 'n');
|
|
243
237
|
data.enableInlineFilters.push(enableInlineFilter.toLowerCase() === 'y' ? 'true' : 'false');
|
|
244
|
-
|
|
238
|
+
|
|
245
239
|
propCount++;
|
|
246
240
|
}
|
|
247
|
-
|
|
241
|
+
|
|
248
242
|
// Get icon
|
|
249
243
|
console.log('\nSelect an icon:');
|
|
250
244
|
console.log('1. Default icon (fa-light fa-default)');
|
|
@@ -253,28 +247,28 @@ async function runPrompts() {
|
|
|
253
247
|
console.log('4. Shopping cart (fa-solid fa-shopping-cart)');
|
|
254
248
|
console.log('5. File (fa-solid fa-file)');
|
|
255
249
|
console.log('6. Custom icon');
|
|
256
|
-
|
|
250
|
+
|
|
257
251
|
const iconChoice = await askQuestion('Select option (1-6): ', '1');
|
|
258
252
|
const iconOptions = [
|
|
259
253
|
'fa-light fa-default',
|
|
260
254
|
'fa-solid fa-box',
|
|
261
255
|
'fa-solid fa-user',
|
|
262
256
|
'fa-solid fa-shopping-cart',
|
|
263
|
-
'fa-solid fa-file'
|
|
257
|
+
'fa-solid fa-file',
|
|
264
258
|
];
|
|
265
|
-
|
|
259
|
+
|
|
266
260
|
if (iconChoice >= 1 && iconChoice <= 5) {
|
|
267
261
|
data.icon = iconOptions[iconChoice - 1];
|
|
268
262
|
} else if (iconChoice == 6) {
|
|
269
263
|
data.icon = await askQuestion('Enter custom icon (format: fa-solid fa-xyz): ', 'fa-solid fa-star');
|
|
270
264
|
}
|
|
271
|
-
|
|
265
|
+
|
|
272
266
|
// Show summary
|
|
273
267
|
console.log('\n=== Summary ===');
|
|
274
268
|
console.log(`Module: ${data.moduleName}`);
|
|
275
269
|
console.log(`Entity: ${data.name}`);
|
|
276
270
|
console.log('Properties:');
|
|
277
|
-
|
|
271
|
+
|
|
278
272
|
// Sort properties by order for display
|
|
279
273
|
const propSummary = data.properties.map((prop, i) => ({
|
|
280
274
|
name: prop,
|
|
@@ -286,18 +280,20 @@ async function runPrompts() {
|
|
|
286
280
|
enableSort: data.enableSorts[i],
|
|
287
281
|
enableFilter: data.enableFilters[i],
|
|
288
282
|
enableInlineFilter: data.enableInlineFilters[i],
|
|
289
|
-
inColumn: data.inColumn[i]
|
|
283
|
+
inColumn: data.inColumn[i],
|
|
290
284
|
}));
|
|
291
|
-
|
|
285
|
+
|
|
292
286
|
// Sort by order
|
|
293
287
|
propSummary.sort((a, b) => a.order - b.order);
|
|
294
|
-
|
|
295
|
-
propSummary.forEach(prop => {
|
|
296
|
-
console.log(
|
|
288
|
+
|
|
289
|
+
propSummary.forEach((prop) => {
|
|
290
|
+
console.log(
|
|
291
|
+
` - ${prop.name} (Widget: ${prop.widget}, Type: ${prop.dataType}${prop.required ? ', Required' : ''}, ColSpan: ${prop.colSpan}, Order: ${prop.order}, Sort: ${prop.enableSort ? 'Enabled' : 'Disabled'}, Filter: ${prop.enableFilter ? 'Enabled' : 'Disabled'}, Inline Filter: ${prop.enableInlineFilter ? 'Enabled' : 'Disabled'}, In Column: ${prop.inColumn === 'true' ? 'Yes' : 'No'})`,
|
|
292
|
+
);
|
|
297
293
|
});
|
|
298
|
-
|
|
294
|
+
|
|
299
295
|
console.log(`Icon: ${data.icon}`);
|
|
300
|
-
|
|
296
|
+
|
|
301
297
|
const confirm = await askQuestion('\nGenerate entity with these settings? (y/n): ', 'y');
|
|
302
298
|
if (confirm.toLowerCase() === 'y') {
|
|
303
299
|
runNxGenerator();
|
|
@@ -309,9 +305,9 @@ async function runPrompts() {
|
|
|
309
305
|
|
|
310
306
|
// Helper function to ask questions and get answers
|
|
311
307
|
function askQuestion(question, defaultAnswer) {
|
|
312
|
-
return new Promise(resolve => {
|
|
308
|
+
return new Promise((resolve) => {
|
|
313
309
|
const prompt = defaultAnswer ? `${question} [${defaultAnswer}] ` : question;
|
|
314
|
-
|
|
310
|
+
|
|
315
311
|
rl.question(prompt, (answer) => {
|
|
316
312
|
// If answer is empty and there's a default, use the default
|
|
317
313
|
const result = answer.trim() === '' && defaultAnswer ? defaultAnswer : answer.trim();
|
|
@@ -324,7 +320,7 @@ function askQuestion(question, defaultAnswer) {
|
|
|
324
320
|
async function selectWidget(prompt) {
|
|
325
321
|
console.log(`\n${prompt}`);
|
|
326
322
|
console.log('Available widgets (you can type to filter):');
|
|
327
|
-
|
|
323
|
+
|
|
328
324
|
// Display widgets by groups
|
|
329
325
|
for (const [groupName, groupWidgets] of Object.entries(widgetGroups)) {
|
|
330
326
|
console.log(`\n${groupName} widgets:`);
|
|
@@ -333,17 +329,17 @@ async function selectWidget(prompt) {
|
|
|
333
329
|
console.log(` ${(index + 1).toString().padStart(2)}: ${widget} (${widgetKey})`);
|
|
334
330
|
});
|
|
335
331
|
}
|
|
336
|
-
|
|
332
|
+
|
|
337
333
|
// Handling widget selection with filtering
|
|
338
334
|
let selectedWidget = '';
|
|
339
335
|
while (!selectedWidget) {
|
|
340
336
|
const input = await askQuestion('\nEnter widget name or number (or part of name to filter): ');
|
|
341
|
-
|
|
337
|
+
|
|
342
338
|
// Check if input is a number
|
|
343
339
|
if (!isNaN(input) && input > 0 && input <= Object.values(widgetCatalog).length) {
|
|
344
340
|
const allWidgets = Object.values(widgetCatalog);
|
|
345
341
|
selectedWidget = allWidgets[parseInt(input) - 1];
|
|
346
|
-
}
|
|
342
|
+
}
|
|
347
343
|
// Check if input exactly matches a widget name
|
|
348
344
|
else if (Object.values(widgetCatalog).includes(input)) {
|
|
349
345
|
selectedWidget = input;
|
|
@@ -354,55 +350,53 @@ async function selectWidget(prompt) {
|
|
|
354
350
|
}
|
|
355
351
|
// Filter widgets by input
|
|
356
352
|
else {
|
|
357
|
-
const filteredWidgets = Object.entries(widgetCatalog)
|
|
358
|
-
|
|
359
|
-
key.toLowerCase().includes(input.toLowerCase()) ||
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
353
|
+
const filteredWidgets = Object.entries(widgetCatalog).filter(
|
|
354
|
+
([key, value]) =>
|
|
355
|
+
key.toLowerCase().includes(input.toLowerCase()) || value.toLowerCase().includes(input.toLowerCase()),
|
|
356
|
+
);
|
|
357
|
+
|
|
363
358
|
if (filteredWidgets.length === 1) {
|
|
364
359
|
selectedWidget = filteredWidgets[0][1]; // Pick the only match
|
|
365
|
-
}
|
|
366
|
-
else if (filteredWidgets.length > 1) {
|
|
360
|
+
} else if (filteredWidgets.length > 1) {
|
|
367
361
|
console.log('\nFiltered widgets:');
|
|
368
362
|
filteredWidgets.forEach(([key, value], index) => {
|
|
369
363
|
console.log(` ${(index + 1).toString().padStart(2)}: ${value} (${key})`);
|
|
370
364
|
});
|
|
371
|
-
|
|
365
|
+
|
|
372
366
|
const selection = await askQuestion('Select number or continue typing to filter more: ');
|
|
373
367
|
if (!isNaN(selection) && selection > 0 && selection <= filteredWidgets.length) {
|
|
374
368
|
selectedWidget = filteredWidgets[parseInt(selection) - 1][1];
|
|
375
369
|
}
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
370
|
+
} else {
|
|
378
371
|
console.log('No matches found. Try again.');
|
|
379
372
|
}
|
|
380
373
|
}
|
|
381
374
|
}
|
|
382
|
-
|
|
375
|
+
|
|
383
376
|
return selectedWidget;
|
|
384
377
|
}
|
|
385
378
|
|
|
386
379
|
// Run the NX generator with collected data
|
|
387
380
|
function runNxGenerator() {
|
|
388
381
|
// Handle special cases and ensure proper formatting
|
|
389
|
-
|
|
382
|
+
|
|
390
383
|
// For empty required array, use "_none_"
|
|
391
|
-
const requiredValue = data.required.length === 0 ?
|
|
392
|
-
|
|
384
|
+
const requiredValue = data.required.length === 0 ? '_none_' : data.required.join(',');
|
|
385
|
+
|
|
393
386
|
// Ensure single values for colSpans and orders have trailing commas
|
|
394
387
|
let colSpansStr = data.colSpans.join(',');
|
|
395
388
|
if (data.colSpans.length === 1) {
|
|
396
389
|
colSpansStr = colSpansStr + ',';
|
|
397
390
|
}
|
|
398
|
-
|
|
391
|
+
|
|
399
392
|
let ordersStr = data.orders.join(',');
|
|
400
393
|
if (data.orders.length === 1) {
|
|
401
394
|
ordersStr = ordersStr + ',';
|
|
402
395
|
}
|
|
403
|
-
|
|
396
|
+
|
|
404
397
|
// Prepare arguments properly
|
|
405
|
-
const command =
|
|
398
|
+
const command =
|
|
399
|
+
`cd "${projectRoot}" && npx nx g @acorex-platform/generator:create-module-entity` +
|
|
406
400
|
` --moduleName=${data.moduleName}` +
|
|
407
401
|
` --name=${data.name}` +
|
|
408
402
|
` --properties=${data.properties.join(',')}` +
|
|
@@ -416,22 +410,22 @@ function runNxGenerator() {
|
|
|
416
410
|
` --enableInlineFilters=${data.enableInlineFilters.join(',')}` +
|
|
417
411
|
` --inColumn=${data.inColumn.join(',')}` +
|
|
418
412
|
(isDryRun ? ' --dryRun' : '');
|
|
419
|
-
|
|
413
|
+
|
|
420
414
|
console.log(`\nRunning: ${command}`);
|
|
421
|
-
|
|
415
|
+
|
|
422
416
|
try {
|
|
423
417
|
// Execute the command as a shell command to ensure proper environment
|
|
424
418
|
const { execSync } = require('child_process');
|
|
425
|
-
const options = {
|
|
419
|
+
const options = {
|
|
426
420
|
stdio: 'inherit',
|
|
427
|
-
shell: true
|
|
421
|
+
shell: true,
|
|
428
422
|
};
|
|
429
|
-
|
|
423
|
+
|
|
430
424
|
execSync(command, options);
|
|
431
425
|
console.log(`\nGenerator completed successfully`);
|
|
432
426
|
} catch (error) {
|
|
433
427
|
console.error(`\nGenerator failed with error: ${error.message}`);
|
|
434
|
-
|
|
428
|
+
|
|
435
429
|
// Show more detailed error information
|
|
436
430
|
if (error.stderr) {
|
|
437
431
|
console.error(`Error details: ${error.stderr.toString()}`);
|
|
@@ -442,7 +436,7 @@ function runNxGenerator() {
|
|
|
442
436
|
}
|
|
443
437
|
|
|
444
438
|
// Start the prompts
|
|
445
|
-
runPrompts().catch(err => {
|
|
439
|
+
runPrompts().catch((err) => {
|
|
446
440
|
console.error('An error occurred:', err);
|
|
447
441
|
rl.close();
|
|
448
|
-
});
|
|
442
|
+
});
|
package/src/generators/app-module/files/src/app/modules/common/translation-root.module.ts.template
CHANGED
|
@@ -41,11 +41,11 @@ export class MyTranslationLoader implements AXTranslationLoader {
|
|
|
41
41
|
useValue: translationConfig({
|
|
42
42
|
preload: {
|
|
43
43
|
langs: ['en-US'],
|
|
44
|
-
scopes: ['
|
|
44
|
+
scopes: ['acorex', 'general'],
|
|
45
45
|
},
|
|
46
46
|
defaults: {
|
|
47
47
|
lang: 'en-US',
|
|
48
|
-
scope: '
|
|
48
|
+
scope: 'general',
|
|
49
49
|
},
|
|
50
50
|
}),
|
|
51
51
|
},
|
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"search": "Search",
|
|
3
|
-
"type": "Type",
|
|
4
|
-
"yes": "yes",
|
|
5
|
-
"no": "No",
|
|
6
|
-
"allItems": "All Items",
|
|
7
|
-
"confirm": "Confirm",
|
|
8
|
-
"welcome": "Welcome",
|
|
9
|
-
"okay": "Okay",
|
|
10
|
-
"accept": "Accept",
|
|
11
|
-
"decline": "Decline",
|
|
12
|
-
"cancel": "Cancel",
|
|
13
|
-
"close": "Close",
|
|
14
|
-
"clear": "Clear",
|
|
15
|
-
"select": "Select...",
|
|
16
|
-
"canceled": "Canceled",
|
|
17
|
-
"failed": "Failed",
|
|
18
|
-
"remove": "Remove",
|
|
19
|
-
"pinned": "Pinned",
|
|
20
|
-
"recent": "Recent",
|
|
21
|
-
"edit": "Edit",
|
|
22
|
-
"delete": "Delete",
|
|
23
|
-
"refresh": "Refresh",
|
|
24
|
-
"deleteItems": "Delete Items",
|
|
25
|
-
"detail": "Details",
|
|
26
|
-
"actions": "Actions",
|
|
27
|
-
"archive": "Archive",
|
|
28
|
-
"create": "Create",
|
|
29
|
-
"choose": "Choose",
|
|
30
|
-
"configs": "Configs",
|
|
31
|
-
"no-result-found": "No results found",
|
|
32
|
-
"no-result-for": "No results for  <b>\"{{ exp }}\"</b>",
|
|
33
|
-
"searching": "searching ...",
|
|
34
|
-
"save": "Save",
|
|
35
|
-
"save-as": "Save As...",
|
|
36
|
-
"save-changes": "Save Changes",
|
|
37
|
-
"title": "Title",
|
|
38
|
-
"subtitle": "Subtitle",
|
|
39
|
-
"description": "Description",
|
|
40
|
-
"code": "Code",
|
|
41
|
-
"permissions": "Permissions",
|
|
42
|
-
"status": "Status",
|
|
43
|
-
"address": "Address",
|
|
44
|
-
"name": "Name",
|
|
45
|
-
"uniquename": "Unique Name",
|
|
46
|
-
"size": "Size",
|
|
47
|
-
"add-item": "Add Item",
|
|
48
|
-
"color": "Color",
|
|
49
|
-
"display": "Display",
|
|
50
|
-
"min-value": "Min Value",
|
|
51
|
-
"value": "Value",
|
|
52
|
-
"max-value": "Max Value",
|
|
53
|
-
"refresh-rate": "Refresh Rate",
|
|
54
|
-
"condition": "Condition",
|
|
55
|
-
"loading": "loading",
|
|
56
|
-
"firstname": "Firstname",
|
|
57
|
-
"lastname": "Lastname",
|
|
58
|
-
"email": "Email",
|
|
59
|
-
"employeeCode": "Employee Code",
|
|
60
|
-
"position": "Position",
|
|
61
|
-
"employmentType": "Employment Type",
|
|
62
|
-
"hireDate": "Hire Date",
|
|
63
|
-
"required": "Required",
|
|
64
|
-
"submit": "Submit",
|
|
65
|
-
"viewAll": "View All",
|
|
66
|
-
"viewLess": "View Less",
|
|
67
|
-
"processing": "Processing...",
|
|
68
|
-
"redirecting": "Redirecting...",
|
|
69
|
-
"apply": "Apply",
|
|
70
|
-
"reset": "Reset",
|
|
71
|
-
"home": "Home",
|
|
72
|
-
"export": "Export",
|
|
73
|
-
"print": "Print",
|
|
74
|
-
"import": "Import",
|
|
75
|
-
"settings": "Settings",
|
|
76
|
-
"create-new": "Create New",
|
|
77
|
-
"continue": "Continue",
|
|
78
|
-
"discard": "Discard",
|
|
79
|
-
"overview": "Overview",
|
|
80
|
-
"history": "History",
|
|
81
|
-
"comments": "Comments",
|
|
82
|
-
"itemsSelected": "Items Selected",
|
|
83
|
-
"unselect": "Unselect",
|
|
84
|
-
"information": "Information",
|
|
85
|
-
"unknown": "Unknown",
|
|
86
|
-
"category": "Category",
|
|
87
|
-
"categories": "Categories",
|
|
88
|
-
"province": "Province",
|
|
89
|
-
"provinces": "Provinces",
|
|
90
|
-
"country": "Country",
|
|
91
|
-
"countries": "Countries",
|
|
92
|
-
"city": "City",
|
|
93
|
-
"cities": "Cities",
|
|
94
|
-
"allItem": "All Item",
|
|
95
|
-
"geo": "Geo",
|
|
96
|
-
"currencies": "Currencies",
|
|
97
|
-
"currency": "Currency",
|
|
98
|
-
"dialogs": {
|
|
99
|
-
"delete": {
|
|
100
|
-
"title": "Delete Confirmation",
|
|
101
|
-
"message": "Are you sure you want to delete the selected item(s)? This action is permanent and cannot be undone."
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
"authentication": {
|
|
105
|
-
"with-google": "Sign in with Google",
|
|
106
|
-
"with-apple": "Sign in with Apple"
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
"dateTime": {
|
|
110
|
-
"weekdays": {
|
|
111
|
-
"short": {
|
|
112
|
-
"0": "Sun",
|
|
113
|
-
"1": "Mon",
|
|
114
|
-
"2": "Tue",
|
|
115
|
-
"3": "Wed",
|
|
116
|
-
"4": "Thu",
|
|
117
|
-
"5": "Fri",
|
|
118
|
-
"6": "Sat"
|
|
119
|
-
},
|
|
120
|
-
"long": {
|
|
121
|
-
"0": "Sunday",
|
|
122
|
-
"1": "Monday",
|
|
123
|
-
"2": "Tuesday",
|
|
124
|
-
"3": "Wednesday",
|
|
125
|
-
"4": "Thursday",
|
|
126
|
-
"5": "Friday",
|
|
127
|
-
"6": "Saturday"
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
"months": {
|
|
131
|
-
"georgian": {
|
|
132
|
-
"short": {
|
|
133
|
-
"0": "Jan",
|
|
134
|
-
"1": "Feb",
|
|
135
|
-
"2": "Mar",
|
|
136
|
-
"3": "Apr",
|
|
137
|
-
"4": "May",
|
|
138
|
-
"5": "Jun",
|
|
139
|
-
"6": "Jul",
|
|
140
|
-
"7": "Aug",
|
|
141
|
-
"8": "Sep",
|
|
142
|
-
"9": "Oct",
|
|
143
|
-
"10": "Nov",
|
|
144
|
-
"11": "Dec"
|
|
145
|
-
},
|
|
146
|
-
"long": {
|
|
147
|
-
"0": "January",
|
|
148
|
-
"1": "February",
|
|
149
|
-
"2": "March",
|
|
150
|
-
"3": "April",
|
|
151
|
-
"4": "May",
|
|
152
|
-
"5": "June",
|
|
153
|
-
"6": "July",
|
|
154
|
-
"7": "August",
|
|
155
|
-
"8": "September",
|
|
156
|
-
"9": "October",
|
|
157
|
-
"10": "November",
|
|
158
|
-
"11": "December"
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
"jalali": {
|
|
162
|
-
"short": {
|
|
163
|
-
"0": "Far",
|
|
164
|
-
"1": "Ordi",
|
|
165
|
-
"2": "Khor",
|
|
166
|
-
"3": "Tir",
|
|
167
|
-
"4": "Mordad",
|
|
168
|
-
"5": "Shah",
|
|
169
|
-
"6": "Mehr",
|
|
170
|
-
"7": "Aban",
|
|
171
|
-
"8": "Azar",
|
|
172
|
-
"9": "Dey",
|
|
173
|
-
"10": "Bah",
|
|
174
|
-
"11": "Esf"
|
|
175
|
-
},
|
|
176
|
-
"long": {
|
|
177
|
-
"0": "Farvardin",
|
|
178
|
-
"1": "Ordibehesht",
|
|
179
|
-
"2": "Khordad",
|
|
180
|
-
"3": "Tir",
|
|
181
|
-
"4": "Mordad",
|
|
182
|
-
"5": "Shahrivar",
|
|
183
|
-
"6": "Mehr",
|
|
184
|
-
"7": "Aban",
|
|
185
|
-
"8": "Azar",
|
|
186
|
-
"9": "Dey",
|
|
187
|
-
"10": "Bahman",
|
|
188
|
-
"11": "Esfand"
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
"dayTime": {
|
|
193
|
-
"am": "am",
|
|
194
|
-
"pm": "pm",
|
|
195
|
-
"m": "m",
|
|
196
|
-
"a": "a",
|
|
197
|
-
"p": "p"
|
|
198
|
-
},
|
|
199
|
-
"set": "Set",
|
|
200
|
-
"today": "Today",
|
|
201
|
-
"now": "Now",
|
|
202
|
-
"hour": "Hour",
|
|
203
|
-
"minute": "Minute",
|
|
204
|
-
"second": "Second",
|
|
205
|
-
"date": "Date",
|
|
206
|
-
"time": "Time",
|
|
207
|
-
"duration": {
|
|
208
|
-
"format_second": "{0} second(s)",
|
|
209
|
-
"format_minute": "{0} minute(s)"
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
"validation": {
|
|
213
|
-
"messages": {
|
|
214
|
-
"title": "Please fix the following error(s):",
|
|
215
|
-
"required": "This field is required",
|
|
216
|
-
"email": "Please enter a valid email address!",
|
|
217
|
-
"phone": "Please enter a valid phone number!",
|
|
218
|
-
"url": "Please enter a valid url!",
|
|
219
|
-
"invalid-rull-name": "Invalid rule name:  <b>\"{{ name }}\"</b>"
|
|
220
|
-
}
|
|
221
|
-
},
|
|
222
|
-
"selectbox": {
|
|
223
|
-
"popover": {
|
|
224
|
-
"title": "Choose an items..."
|
|
225
|
-
}
|
|
226
|
-
},
|
|
227
|
-
"datepicker": {
|
|
228
|
-
"popover": {
|
|
229
|
-
"title": "Choose a date..."
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
"datapager": {
|
|
233
|
-
"info": {
|
|
234
|
-
"text": "[page] of [totalPages] pages ([totalItems] items)"
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
"uploader": {
|
|
238
|
-
"zone": {
|
|
239
|
-
"text": "Drop files to upload them",
|
|
240
|
-
"drag": "Drag & Drop or ",
|
|
241
|
-
"choose": "Choose File",
|
|
242
|
-
"to-upload": " to Upload"
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
"action-sheet": {
|
|
246
|
-
"title": "Action Sheet..."
|
|
247
|
-
},
|
|
248
|
-
"entity": {
|
|
249
|
-
"home": "Home",
|
|
250
|
-
"public-view": "Public Views",
|
|
251
|
-
"action": "Action",
|
|
252
|
-
"actions": "Actions",
|
|
253
|
-
"columns": "Columns",
|
|
254
|
-
"sort": "Sort",
|
|
255
|
-
"sorts": "Sorts",
|
|
256
|
-
"no-sort": "No Sorts Selected",
|
|
257
|
-
"ask-sort": "Please select field(s) that you want to sort",
|
|
258
|
-
"add-field": "Add Field",
|
|
259
|
-
"modify": "Modify"
|
|
260
|
-
},
|
|
261
|
-
"widget": {
|
|
262
|
-
"phone": {
|
|
263
|
-
"mobile": "Mobile",
|
|
264
|
-
"home": "Home",
|
|
265
|
-
"work": "Work",
|
|
266
|
-
"other": "Other"
|
|
267
|
-
},
|
|
268
|
-
"lookup": {
|
|
269
|
-
"search": "Search on "
|
|
270
|
-
},
|
|
271
|
-
"tasklist": {
|
|
272
|
-
"title": "Tasks",
|
|
273
|
-
"pending": "pending",
|
|
274
|
-
"completed": "completed",
|
|
275
|
-
"noTasks": "No tasks available",
|
|
276
|
-
"user": "User"
|
|
277
|
-
},
|
|
278
|
-
"notification": {
|
|
279
|
-
"new": "New",
|
|
280
|
-
"all": "All",
|
|
281
|
-
"noNotifications": "No notifications available",
|
|
282
|
-
"user": "User"
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
"profile": {
|
|
286
|
-
"edit": "Edit Profile",
|
|
287
|
-
"logout": "Logout",
|
|
288
|
-
"sessions": {
|
|
289
|
-
"title": "Active Sessions",
|
|
290
|
-
"expiration": {
|
|
291
|
-
"time": "Session termination"
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
},
|
|
295
|
-
"comment": {
|
|
296
|
-
"view": "View",
|
|
297
|
-
"reply": "Reply",
|
|
298
|
-
"replies": "Replies"
|
|
299
|
-
},
|
|
300
|
-
"designer": {
|
|
301
|
-
"modules": "Modules",
|
|
302
|
-
"features": "Features",
|
|
303
|
-
"entities": "Entities",
|
|
304
|
-
"permissions": "Permissions",
|
|
305
|
-
"createModule": "Create New Module",
|
|
306
|
-
"emptyModulesText": "No record found"
|
|
307
|
-
},
|
|
308
|
-
"filter": {
|
|
309
|
-
"title": "Filters",
|
|
310
|
-
"apply": "Apply",
|
|
311
|
-
"reset": "Reset",
|
|
312
|
-
"addField": "Add Field",
|
|
313
|
-
"discard": "Discard",
|
|
314
|
-
"emptyTitle": "No Filters Selected",
|
|
315
|
-
"emptyDescription": "Please select field(s) that you want to filter",
|
|
316
|
-
"fields": "Fields"
|
|
317
|
-
},
|
|
318
|
-
"sort": {
|
|
319
|
-
"title": "Sorts"
|
|
320
|
-
},
|
|
321
|
-
"column": {
|
|
322
|
-
"title": "Columns"
|
|
323
|
-
},
|
|
324
|
-
"search": {
|
|
325
|
-
"placeholder": "Search..."
|
|
326
|
-
},
|
|
327
|
-
"workflow": {
|
|
328
|
-
"entity-created-title": "Entity Created",
|
|
329
|
-
"entity-created-body": "New Record has been successfully created.",
|
|
330
|
-
"entity-modified-title": "Entity Modified",
|
|
331
|
-
"entity-modified-body": "Record has been successfully updated",
|
|
332
|
-
"warning": "Warning",
|
|
333
|
-
"confirm-delete": "Are you sure want to delete selected item(s)?",
|
|
334
|
-
"no-need": "No Deletion Needed",
|
|
335
|
-
"no-item": "No items were available to delete.",
|
|
336
|
-
"deleting": "Deleting Record...",
|
|
337
|
-
"fail-delete-title": "Deletion Failed",
|
|
338
|
-
"fail-delete-body": "No items were deleted. [item] item(s) failed to delete.",
|
|
339
|
-
"success-delete-title": "Deletion Successful",
|
|
340
|
-
"success-delete-body": "[item] item(s) has been deleted.",
|
|
341
|
-
"success-partial-delete-title": "Partial Deletion Completed",
|
|
342
|
-
"success-partial-delete-body": "[success] item(s) deleted successfully. However, [fail] item(s) could not be deleted."
|
|
343
|
-
},
|
|
344
|
-
|
|
345
|
-
"time": {
|
|
346
|
-
"second": "second",
|
|
347
|
-
"Seconds": "Seconds",
|
|
348
|
-
"minute": "minute",
|
|
349
|
-
"Minutes": "Minutes",
|
|
350
|
-
"month": "month",
|
|
351
|
-
"Months": "Months",
|
|
352
|
-
"hour": "hour",
|
|
353
|
-
"Hours": "Hours",
|
|
354
|
-
"day": "day",
|
|
355
|
-
"Days": "Days",
|
|
356
|
-
"year": "year",
|
|
357
|
-
"Years": "Years"
|
|
358
|
-
},
|
|
359
|
-
"custom": "Custom",
|
|
360
|
-
"every": "Every",
|
|
361
|
-
"between": "between",
|
|
362
|
-
"and": "and",
|
|
363
|
-
"select-second": "select second(s)",
|
|
364
|
-
"select-minute": "select minute(s)",
|
|
365
|
-
"select-month": "select month(s)",
|
|
366
|
-
"select-hour": "select hour(s)",
|
|
367
|
-
"select-day": "select day(s)",
|
|
368
|
-
"select-year": "select year(s)",
|
|
369
|
-
"second-starting": "second(s) starting at second",
|
|
370
|
-
"minute-starting": "minute(s) starting at minute",
|
|
371
|
-
"month-starting": "month(s) starting at month",
|
|
372
|
-
"hour-starting": "hour(s) starting at hour",
|
|
373
|
-
"year-starting": "year(s) starting at year",
|
|
374
|
-
"specific-second": "Specific second(s) (choose one or many)",
|
|
375
|
-
"specific-minute": "Specific minute(s) (choose one or many)",
|
|
376
|
-
"specific-month": "Specific month(s) (choose one or many)",
|
|
377
|
-
"specific-hour": "Specific hour(s) (choose one or many)",
|
|
378
|
-
"specific-year": "Specific year(s) (choose one or many)",
|
|
379
|
-
"base-on-week": "Base on week",
|
|
380
|
-
"on-the-last": "On the last",
|
|
381
|
-
"of-the-month": "of the month",
|
|
382
|
-
"on-the": "On the",
|
|
383
|
-
"st": "st",
|
|
384
|
-
"of-month": "of month",
|
|
385
|
-
"base-on-month": "Base on Month",
|
|
386
|
-
"on-the-last-day-of-the-month": "On the Last day of the month",
|
|
387
|
-
"day-before-the-end-of-the-month": "day(s) before the end of the month",
|
|
388
|
-
"st-of-the-month": "st of the month",
|
|
389
|
-
"specific-day-of-month": "Specific day(s) of month (choose one or many)",
|
|
390
|
-
"specific-day-of-week": "Specific day(s) of week (choose one or many)",
|
|
391
|
-
"day-starting-on": "day(s) starting on",
|
|
392
|
-
"more-notification": "And {{ number }} more...",
|
|
393
|
-
"more-toast": "And {{ number }} more...",
|
|
394
|
-
"at-least-8-characters": "At least 8 characters",
|
|
395
|
-
"english-upper-case-letter": "English upper case letter",
|
|
396
|
-
"english-lower-case-letter": "English lower case letter",
|
|
397
|
-
"special-character": "Special character(%,#...)",
|
|
398
|
-
"digits": "Digits (0-9)",
|
|
399
|
-
"fragile": "Fragile",
|
|
400
|
-
"weak": "Weak",
|
|
401
|
-
"good": "Good",
|
|
402
|
-
"strong": "Strong",
|
|
403
|
-
"unbreakable": "Unbreakable"
|
|
404
|
-
}
|
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"search": "جستجو",
|
|
3
|
-
"yes": "بله",
|
|
4
|
-
"type": "نوع",
|
|
5
|
-
"no": "خیر",
|
|
6
|
-
"allItems": "همه موارد",
|
|
7
|
-
"confirm": "تایید",
|
|
8
|
-
"welcome": "خوش آمدید",
|
|
9
|
-
"okay": "باشه",
|
|
10
|
-
"accept": "پذیرفتن",
|
|
11
|
-
"decline": "رد کردن",
|
|
12
|
-
"cancel": "لغو",
|
|
13
|
-
"canceled": "لغو شد",
|
|
14
|
-
"failed": "ناموفق",
|
|
15
|
-
"remove": "حذف",
|
|
16
|
-
"pinned": "ثبت شده",
|
|
17
|
-
"recent": "اخیر",
|
|
18
|
-
"close": "بستن",
|
|
19
|
-
"clear": "پاک کردن",
|
|
20
|
-
"select": "انتخاب ...",
|
|
21
|
-
"edit": "ویرایش",
|
|
22
|
-
"delete": "حذف",
|
|
23
|
-
"deleteItems": "حذف موارد",
|
|
24
|
-
"detail": "جزئیات",
|
|
25
|
-
"actions": "عملیات",
|
|
26
|
-
"archive": "بایگانی",
|
|
27
|
-
"create": "ایجاد",
|
|
28
|
-
"choose": "انتخاب",
|
|
29
|
-
"configs": "پیکربندیها",
|
|
30
|
-
"fields": "فیلدها",
|
|
31
|
-
"no-result-found": "نتیجهای یافت نشد",
|
|
32
|
-
"no-result-for": "نتیجهای برای  <b>\"{{ exp }}\"</b> یافت نشد",
|
|
33
|
-
"searching": "در حال جستجو ...",
|
|
34
|
-
"save": "ذخیره",
|
|
35
|
-
"save-as": "ذخیره به عنوان...",
|
|
36
|
-
"save-changes": "ذخیره تغییرات",
|
|
37
|
-
"title": "عنوان",
|
|
38
|
-
"subtitle": "عنوان فرعی",
|
|
39
|
-
"description": "توضیحات",
|
|
40
|
-
"code": "کد",
|
|
41
|
-
"permissions": "دسترسیها",
|
|
42
|
-
"status": "وضعیت",
|
|
43
|
-
"address": "آدرس",
|
|
44
|
-
"name": "نام",
|
|
45
|
-
"uniquename": "نام منحصر به فرد",
|
|
46
|
-
"size": "اندازه",
|
|
47
|
-
"add-item": "افزودن",
|
|
48
|
-
"color": "رنگ",
|
|
49
|
-
"display": "نمایش",
|
|
50
|
-
"min-value": "حداقل مقدار",
|
|
51
|
-
"value": "مقدار",
|
|
52
|
-
"max-value": "حداکثر مقدار",
|
|
53
|
-
"refresh-rate": "نرخ تازهسازی",
|
|
54
|
-
"condition": "شرط",
|
|
55
|
-
"loading": "در حال بارگذاری",
|
|
56
|
-
"firstname": "نام",
|
|
57
|
-
"lastname": "نام خانوادگی",
|
|
58
|
-
"email": "ایمیل",
|
|
59
|
-
"employeeCode": "کد کارمندی",
|
|
60
|
-
"position": "موقعیت",
|
|
61
|
-
"employmentType": "نوع استخدام",
|
|
62
|
-
"hireDate": "تاریخ استخدام",
|
|
63
|
-
"required": "الزامی",
|
|
64
|
-
"submit": "ارسال",
|
|
65
|
-
"viewAll": "مشاهده همه",
|
|
66
|
-
"viewLess": "مشاهده کمتر",
|
|
67
|
-
"processing": "در حال پردازش...",
|
|
68
|
-
"redirecting": "در حال انتقال...",
|
|
69
|
-
"apply": "اعمال",
|
|
70
|
-
"reset": "بازنشانی",
|
|
71
|
-
"home": "خانه",
|
|
72
|
-
"export": "خروجی گرفتن",
|
|
73
|
-
"print": "چاپ گرفتن",
|
|
74
|
-
"import": "ورودی گرفتن",
|
|
75
|
-
"settings": "تنظیمات",
|
|
76
|
-
"create-new": "ایجاد",
|
|
77
|
-
"continue": "ادامه",
|
|
78
|
-
"discard": "لغو",
|
|
79
|
-
"overview": "بررسی کلی",
|
|
80
|
-
"allItem": "همه موارد",
|
|
81
|
-
"history": "تاریخچه",
|
|
82
|
-
"comments": "نظرات",
|
|
83
|
-
"itemsSelected": "مورد انتخاب شده ",
|
|
84
|
-
"unselect": "لغو انتخاب",
|
|
85
|
-
"category": "دسته بندی",
|
|
86
|
-
"categories": "دسته بندی ها",
|
|
87
|
-
"province": "استان",
|
|
88
|
-
"provinces": "استان ها",
|
|
89
|
-
"country": "کشور",
|
|
90
|
-
"countries": "کشورها",
|
|
91
|
-
"city": "شهر",
|
|
92
|
-
"cities": "شهرها",
|
|
93
|
-
"geo": "جغرافیا",
|
|
94
|
-
"currency": "ارز",
|
|
95
|
-
"currencies": "ارز ها",
|
|
96
|
-
"unknown": "نامشخص",
|
|
97
|
-
"dialogs": {
|
|
98
|
-
"delete": {
|
|
99
|
-
"title": "تایید حذف",
|
|
100
|
-
"message": "آیا مطمئن هستید که میخواهید آیتم(های) انتخاب شده را حذف کنید؟ این عملیات غیرقابل بازگشت میباشد."
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"authentication": {
|
|
104
|
-
"with-google": "ورود با گوگل",
|
|
105
|
-
"with-apple": "ورود با اپل"
|
|
106
|
-
},
|
|
107
|
-
"dateTime": {
|
|
108
|
-
"weekdays": {
|
|
109
|
-
"short": {
|
|
110
|
-
"0": "ی",
|
|
111
|
-
"1": "د",
|
|
112
|
-
"2": "س",
|
|
113
|
-
"3": "چ",
|
|
114
|
-
"4": "پ",
|
|
115
|
-
"5": "ج",
|
|
116
|
-
"6": "ش"
|
|
117
|
-
},
|
|
118
|
-
"long": {
|
|
119
|
-
"0": "یکشنبه",
|
|
120
|
-
"1": "دوشنبه",
|
|
121
|
-
"2": "سهشنبه",
|
|
122
|
-
"3": "چهارشنبه",
|
|
123
|
-
"4": "پنجشنبه",
|
|
124
|
-
"5": "جمعه",
|
|
125
|
-
"6": "شنبه"
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
"months": {
|
|
129
|
-
"georgian": {
|
|
130
|
-
"short": {
|
|
131
|
-
"0": "ژان",
|
|
132
|
-
"1": "فور",
|
|
133
|
-
"2": "مار",
|
|
134
|
-
"3": "آپر",
|
|
135
|
-
"4": "مه",
|
|
136
|
-
"5": "ژوئن",
|
|
137
|
-
"6": "ژوئیه",
|
|
138
|
-
"7": "آگو",
|
|
139
|
-
"8": "سپت",
|
|
140
|
-
"9": "اکت",
|
|
141
|
-
"10": "نوام",
|
|
142
|
-
"11": "دسام"
|
|
143
|
-
},
|
|
144
|
-
"long": {
|
|
145
|
-
"0": "ژانویه",
|
|
146
|
-
"1": "فوریه",
|
|
147
|
-
"2": "مارس",
|
|
148
|
-
"3": "آوریل",
|
|
149
|
-
"4": "مه",
|
|
150
|
-
"5": "ژوئن",
|
|
151
|
-
"6": "ژوئیه",
|
|
152
|
-
"7": "آگوست",
|
|
153
|
-
"8": "سپتامبر",
|
|
154
|
-
"9": "اکتبر",
|
|
155
|
-
"10": "نوامبر",
|
|
156
|
-
"11": "دسامبر"
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
"jalali": {
|
|
160
|
-
"short": {
|
|
161
|
-
"0": "فرورد",
|
|
162
|
-
"1": "اردی",
|
|
163
|
-
"2": "خرد",
|
|
164
|
-
"3": "تیر",
|
|
165
|
-
"4": "مرد",
|
|
166
|
-
"5": "شهر",
|
|
167
|
-
"6": "مهر",
|
|
168
|
-
"7": "آبان",
|
|
169
|
-
"8": "آذر",
|
|
170
|
-
"9": "دی",
|
|
171
|
-
"10": "بهم",
|
|
172
|
-
"11": "اسف"
|
|
173
|
-
},
|
|
174
|
-
"long": {
|
|
175
|
-
"0": "فروردین",
|
|
176
|
-
"1": "اردیبهشت",
|
|
177
|
-
"2": "خرداد",
|
|
178
|
-
"3": "تیر",
|
|
179
|
-
"4": "مرداد",
|
|
180
|
-
"5": "شهریور",
|
|
181
|
-
"6": "مهر",
|
|
182
|
-
"7": "آبان",
|
|
183
|
-
"8": "آذر",
|
|
184
|
-
"9": "دی",
|
|
185
|
-
"10": "بهمن",
|
|
186
|
-
"11": "اسفند"
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
"dayTime": {
|
|
191
|
-
"am": "صبح",
|
|
192
|
-
"pm": "بعد از ظهر",
|
|
193
|
-
"m": "م",
|
|
194
|
-
"a": "ق.ظ",
|
|
195
|
-
"p": "ب.ظ"
|
|
196
|
-
},
|
|
197
|
-
"set": "تنظیم",
|
|
198
|
-
"today": "امروز",
|
|
199
|
-
"now": "الان",
|
|
200
|
-
"hour": "ساعت",
|
|
201
|
-
"minute": "دقیقه",
|
|
202
|
-
"second": "ثانیه",
|
|
203
|
-
"date": "تاریخ",
|
|
204
|
-
"time": "زمان",
|
|
205
|
-
"duration": {
|
|
206
|
-
"format_second": "{0} ثانیه(ها)",
|
|
207
|
-
"format_minute": "{0} دقیقه(ها)"
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
"validation": {
|
|
211
|
-
"messages": {
|
|
212
|
-
"title": "لطفا خطا(های) زیر را اصلاح کنید:",
|
|
213
|
-
"required": "این فیلد الزامی است",
|
|
214
|
-
"email": "لطفا یک آدرس ایمیل معتبر وارد کنید!",
|
|
215
|
-
"phone": "لطفا یک شماره تلفن معتبر وارد کنید!",
|
|
216
|
-
"url": "لطفا یک آدرس وب معتبر وارد کنید!",
|
|
217
|
-
"invalid-rull-name": "نام قانون نامعتبر:  <b>\"{{ name }}\"</b>"
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
"selectbox": {
|
|
221
|
-
"popover": {
|
|
222
|
-
"title": "انتخاب آیتم..."
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
"datepicker": {
|
|
226
|
-
"popover": {
|
|
227
|
-
"title": "انتخاب تاریخ..."
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
"datapager": {
|
|
231
|
-
"info": {
|
|
232
|
-
"text": "[page] از [totalPages] صفحه ([totalItems] آیتم)"
|
|
233
|
-
}
|
|
234
|
-
},
|
|
235
|
-
"uploader": {
|
|
236
|
-
"zone": {
|
|
237
|
-
"text": "فایلها را بیاندازید تا بارگذاری شوند",
|
|
238
|
-
"drag": "بکشید یا رها کنید یا ",
|
|
239
|
-
"choose": "فایل را انتخاب کنید",
|
|
240
|
-
"to-upload": " برای آپلود"
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
"action-sheet": {
|
|
244
|
-
"title": "برگه عمل..."
|
|
245
|
-
},
|
|
246
|
-
"entity": {
|
|
247
|
-
"home": "خانه",
|
|
248
|
-
"public-view": "نمایشهای عمومی",
|
|
249
|
-
"action": "عمل",
|
|
250
|
-
"actions": "عملیاتها",
|
|
251
|
-
"columns": "ستونها",
|
|
252
|
-
"sort": "مرتبسازی",
|
|
253
|
-
"no-sort": "مرتبسازی انتخاب نشده",
|
|
254
|
-
"ask-sort": "لطفا فیلد(های) مرتبسازی را انتخاب کنید",
|
|
255
|
-
"add-field": "افزودن فیلد",
|
|
256
|
-
"modify": "ویرایش"
|
|
257
|
-
},
|
|
258
|
-
"widget": {
|
|
259
|
-
"phone": {
|
|
260
|
-
"mobile": "موبایل",
|
|
261
|
-
"home": "خانه",
|
|
262
|
-
"work": "کار",
|
|
263
|
-
"other": "دیگر"
|
|
264
|
-
},
|
|
265
|
-
"lookup": {
|
|
266
|
-
"search": "جستجو در "
|
|
267
|
-
},
|
|
268
|
-
"tasklist": {
|
|
269
|
-
"title": "وظایف",
|
|
270
|
-
"pending": "در انتظار",
|
|
271
|
-
"completed": "تکمیل شده",
|
|
272
|
-
"noTasks": "هیچ وظیفهای موجود نیست",
|
|
273
|
-
"user": "کاربر"
|
|
274
|
-
},
|
|
275
|
-
"notification": {
|
|
276
|
-
"new": "جدید",
|
|
277
|
-
"all": "همه",
|
|
278
|
-
"noNotifications": "هیچ اعلانی موجود نیست",
|
|
279
|
-
"user": "کاربر"
|
|
280
|
-
}
|
|
281
|
-
},
|
|
282
|
-
"profile": {
|
|
283
|
-
"edit": "ویرایش پروفایل",
|
|
284
|
-
"logout": "خروج"
|
|
285
|
-
},
|
|
286
|
-
"comment": {
|
|
287
|
-
"view": "مشاهده",
|
|
288
|
-
"reply": "پاسخ",
|
|
289
|
-
"replies": "پاسخها"
|
|
290
|
-
},
|
|
291
|
-
"designer": {
|
|
292
|
-
"modules": "ماژولها",
|
|
293
|
-
"features": "ویژگیها",
|
|
294
|
-
"entities": "واحدها",
|
|
295
|
-
"permissions": "مجوزها",
|
|
296
|
-
"createModule": "ایجاد ماژول جدید",
|
|
297
|
-
"emptyModulesText": "هیچ رکوردی یافت نشد"
|
|
298
|
-
},
|
|
299
|
-
"filter": {
|
|
300
|
-
"title": "فیلترها",
|
|
301
|
-
"apply": "اعمال",
|
|
302
|
-
"reset": "بازنشانی",
|
|
303
|
-
"addField": "افزودن فیلد",
|
|
304
|
-
"discard": "لغو",
|
|
305
|
-
"emptyTitle": "هیچ فیلتری انتخاب نشده است",
|
|
306
|
-
"emptyDescription": "لطفاً فیلد(هایی) را که میخواهید فیلتر کنید انتخاب کنید",
|
|
307
|
-
"fields": "فیلدها"
|
|
308
|
-
},
|
|
309
|
-
"workflow": {
|
|
310
|
-
"entity-created-title": "موجودیت ایجاد شد",
|
|
311
|
-
"entity-created-body": "رکورد جدید با موفقیت ایجاد شد.",
|
|
312
|
-
"entity-modified-title": "موجودیت اصلاح شد",
|
|
313
|
-
"entity-modified-body": "رکورد با موفقیت بهروزرسانی شد.",
|
|
314
|
-
"warning": "هشدار",
|
|
315
|
-
"confirm-delete": "آیا مطمئن هستید که میخواهید مورد(های) انتخابشده را حذف کنید؟",
|
|
316
|
-
"no-need": "نیازی به حذف نیست",
|
|
317
|
-
"no-item": "هیچ موردی برای حذف در دسترس نیست.",
|
|
318
|
-
"deleting": "در حال حذف رکورد...",
|
|
319
|
-
"fail-delete-title": "حذف ناموفق بود",
|
|
320
|
-
"fail-delete-body": "هیچ موردی حذف نشد. [item] مورد(ها) حذف نشدند.",
|
|
321
|
-
"success-delete-title": "حذف با موفقیت انجام شد",
|
|
322
|
-
"success-delete-body": "[item] مورد(ها) حذف شد.",
|
|
323
|
-
"success-partial-delete-title": "حذف جزئی انجام شد",
|
|
324
|
-
"success-partial-delete-body": "[success] مورد(ها) با موفقیت حذف شدند. با این حال، [fail] مورد(ها) حذف نشدند."
|
|
325
|
-
},
|
|
326
|
-
"time": {
|
|
327
|
-
"second": "ثانیه",
|
|
328
|
-
"Seconds": "ثانیه ها",
|
|
329
|
-
"minute": "دقیقه",
|
|
330
|
-
"Minutes": "دقیقه ها",
|
|
331
|
-
"month": "ماه",
|
|
332
|
-
"Months": "ماه ها",
|
|
333
|
-
"hour": "ساعت",
|
|
334
|
-
"Hours": "ساعت ها",
|
|
335
|
-
"day": "روز",
|
|
336
|
-
"Days": "روز ها",
|
|
337
|
-
"year": "سال",
|
|
338
|
-
"Years": "سال ها"
|
|
339
|
-
},
|
|
340
|
-
|
|
341
|
-
"custom": "سفارشی",
|
|
342
|
-
"every": "هر",
|
|
343
|
-
"between": "بین",
|
|
344
|
-
"and": "و",
|
|
345
|
-
"select-second": "انتخاب ثانیه( ها)",
|
|
346
|
-
"select-minute": "انتخاب دقیقه( ها)",
|
|
347
|
-
"select-month": "انتخاب ماه( ها)",
|
|
348
|
-
"select-hour": "انتخاب ساعت( ها)",
|
|
349
|
-
"select-day": "انتخاب روز( ها)",
|
|
350
|
-
"select-year": "انتخاب سال( ها)",
|
|
351
|
-
"second-starting": "ثانیه(هایی) که شروع میشوند از ثانیه",
|
|
352
|
-
"minute-starting": "دقیقه(هایی) که شروع میشوند از دقیقه",
|
|
353
|
-
"month-starting": "ماه(هایی) که شروع میشوند از ماه",
|
|
354
|
-
"hour-starting": "ساعت(هایی) که شروع میشوند از ساعت",
|
|
355
|
-
"year-starting": "سال(هایی) که شروع میشوند از سال",
|
|
356
|
-
"specific-second": "ثانیه(های) به خصوص (انتخاب یکی یا بیشتر)",
|
|
357
|
-
"specific-minute": "دقیقه(های) به خصوص (انتخاب یکی یا بیشتر)",
|
|
358
|
-
"specific-month": "ماه(های) به خصوص (انتخاب یکی یا بیشتر)",
|
|
359
|
-
"specific-hour": "ساعت(های) به خصوص (انتخاب یکی یا بیشتر)",
|
|
360
|
-
"specific-year": "سال(های) به خصوص (انتخاب یکی یا بیشتر)",
|
|
361
|
-
"base-on-week": "بر اساس هفته",
|
|
362
|
-
"on-the-last": "در آخرین",
|
|
363
|
-
"of-the-month": "ماه",
|
|
364
|
-
"on-the": "در",
|
|
365
|
-
"st": "امین",
|
|
366
|
-
"of-month": "ماه",
|
|
367
|
-
"base-on-month": "بر اساس ماه",
|
|
368
|
-
"on-the-last-day-of-the-month": "در آخرین روز ماه",
|
|
369
|
-
"day-before-the-end-of-the-month": "روز(های) قبل از اتمام ماه",
|
|
370
|
-
"st-of-the-month": "ام ماه",
|
|
371
|
-
"specific-day-of-month": "روز(های) به خصوص از ماه(انتخاب یک مورد یا بیشنر)",
|
|
372
|
-
"specific-day-of-week": "روز(های) به خصوص از هفته(انتخاب یک مورد یا بیشنر)",
|
|
373
|
-
"day-starting-on": "روزی(های) که شروع میشود در",
|
|
374
|
-
"more-notification": "و {{ number }} اعلان دیگر...",
|
|
375
|
-
"more-toast": "و {{ number }} اعلان دیگر...",
|
|
376
|
-
"at-least-8-characters": "حداقل هشت کاراکتر",
|
|
377
|
-
"english-upper-case-letter": "استفاده از حروف بزرگ",
|
|
378
|
-
"english-lower-case-letter": "استفاده از حروف کوچک",
|
|
379
|
-
"special-character": "استفاده از کاراکتر های ویژه (%,$, ...)",
|
|
380
|
-
"digits": "استفاده از اعداد",
|
|
381
|
-
"fragile": "شکننده",
|
|
382
|
-
"weak": "ضعیف",
|
|
383
|
-
"good": "خوب",
|
|
384
|
-
"strong": "قوی",
|
|
385
|
-
"unbreakable": "مستحکم"
|
|
386
|
-
}
|