Compare commits

..

33 Commits

Author SHA1 Message Date
yuri bc525f3047 fetchOnModelAfterRelate 2016-03-02 13:21:19 +02:00
yuri 6809181adf mass email: dont store test email 2016-03-02 13:02:44 +02:00
yuri 2c71a28421 fix use 2016-03-02 11:49:47 +02:00
yuri 82162e4fe6 fix select manager 2016-03-01 17:25:11 +02:00
yuri 03454bc309 fix portal log 2016-03-01 16:40:23 +02:00
yuri d975501f29 fix warnings 2016-03-01 16:32:37 +02:00
yuri 761356adda fix mention 2016-03-01 12:23:37 +02:00
yuri 824835a28c email template: array fields 2016-03-01 12:01:27 +02:00
yuri 252ce15973 fix email template 2016-03-01 11:55:37 +02:00
yuri 7f25dba917 v 2016-03-01 10:57:31 +02:00
yuri b5d4b8aa5a fix warning 2016-03-01 10:20:07 +02:00
yuri 39a136295a repository default options 2016-02-29 17:45:39 +02:00
yuri 6d674c007e php 7 compatibility 2016-02-29 17:01:18 +02:00
yuri 31f380a03a russian lang 2016-02-29 12:03:38 +02:00
yuri 7e23960196 v 2016-02-26 17:11:36 +02:00
yuri d3b9f2479b fix export 2016-02-26 17:11:32 +02:00
yuri c211842b52 fix metadata 2016-02-26 15:17:33 +02:00
yuri 3e11c0cfc1 fix loader 2016-02-26 12:23:53 +02:00
yuri 6747440b00 document folder customizable 2016-02-26 12:09:30 +02:00
yuri dc1c4b1e78 fix lang 2016-02-26 10:48:01 +02:00
yuri 26f2fba3ac cleanyp 2016-02-25 16:17:55 +02:00
yuri eb481c689b fix warnings 2016-02-25 16:16:40 +02:00
yuri 88c3984d35 date: ever filter 2016-02-25 13:07:50 +02:00
yuri 4eae088973 fix flotr2: remove underscore 2016-02-25 12:19:11 +02:00
yuri 60ae0fb365 fix 2016-02-25 10:28:21 +02:00
yuri ab36f41fc3 duration notStorable 2016-02-24 17:51:13 +02:00
yuri 98de243e37 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-02-24 15:31:45 +02:00
yuri 0c6ccabbeb fix checkEntityForDuplicate 2016-02-24 15:31:26 +02:00
yuri a66e6111cb fix detail view buttons fixed possition 2016-02-24 12:11:00 +02:00
yuri caf5c8806a chart outlineColor 2016-02-24 11:43:48 +02:00
yuri 0154dfd6a1 view naming fix 2016-02-24 11:36:43 +02:00
Taras Machyshyn df2b7d9659 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-02-23 15:58:24 +02:00
Taras Machyshyn cc395232ff Fixed ukrainian translation 2016-02-23 15:58:10 +02:00
128 changed files with 9247 additions and 1699 deletions
+7 -1
View File
@@ -189,6 +189,9 @@ class Table
$valuePermissionLists->$permission = [];
}
$aclTableList = [];
$fieldTableList = [];
if (!$this->user->isAdmin()) {
$roleList = $this->getRoleList();
@@ -484,6 +487,9 @@ class Table
foreach (array_merge($mandatoryFieldData, $mandatoryScopeFieldData) as $field => $f) {
if (!in_array($field, $fieldList)) continue;
if (!isset($fieldTable->$scope)) {
$fieldTable->$scope = (object) [];
}
$fieldTable->$scope->$field = (object) [];
foreach ($this->fieldActionList as $action) {
$level = 'no';
@@ -508,7 +514,7 @@ class Table
foreach ($this->getScopeList() as $scope) {
if ($this->getMetadata()->get('scopes.' . $scope . '.disabled')) {
$aclTable->$scope = false;
$table->$scope = false;
unset($fieldTable->$scope);
}
}
+1 -1
View File
@@ -116,7 +116,7 @@ class Table extends \Espo\Core\Acl\Table
foreach ($this->getScopeList() as $scope) {
$d = $this->getMetadata()->get('scopes.' . $scope);
if ($d['disabled'] || $d['portalDisabled']) {
$aclTable->$scope = false;
$table->$scope = false;
unset($fieldTable->$scope);
}
}
+3 -6
View File
@@ -94,9 +94,6 @@ class Entity extends \Espo\ORM\Entity
{
$columnsField = $field . 'Columns';
if (!$this->has($columnsField)) {
$this->loadLinkMultipleField($field, true);
}
if (!$this->has($columnsField)) {
return;
}
@@ -125,7 +122,7 @@ class Entity extends \Espo\ORM\Entity
if (!$this->has($idsField)) {
if (!$this->isNew()) {
$this->loadLinkMultipleField($field, true);
$this->loadLinkMultipleField($field);
} else {
$this->set($idsField, []);
}
@@ -148,7 +145,7 @@ class Entity extends \Espo\ORM\Entity
if (!$this->has($idsField)) {
if (!$this->isNew()) {
$this->loadLinkMultipleField($field, true);
$this->loadLinkMultipleField($field);
}
}
$valueList = $this->get($idsField);
@@ -166,7 +163,7 @@ class Entity extends \Espo\ORM\Entity
if (!$this->has($idsField)) {
if (!$this->isNew()) {
$this->loadLinkMultipleField($field, true);
$this->loadLinkMultipleField($field);
}
}
+2 -2
View File
@@ -45,6 +45,8 @@ class Application extends \Espo\Core\Application
throw new Error("Portal id was not passed to ApplicationPortal.");
}
$GLOBALS['log'] = $this->getContainer()->get('log');
$portal = $this->getContainer()->get('entityManager')->getEntity('Portal', $portalId);
if (!$portal) {
@@ -58,8 +60,6 @@ class Application extends \Espo\Core\Application
$this->getContainer()->setPortal($portal);
$GLOBALS['log'] = $this->getContainer()->get('log');
$this->initAutoloads();
}
@@ -277,7 +277,7 @@ class Base
$foreignEntity = $defs['entity'];
if (empty($foreignEntity)) {
continue;
return;
}
$pathName = lcfirst($query->sanitize($foreignEntity . 'Path'));
@@ -906,6 +906,7 @@ class Base
$part[$item['field'] . '='] = null;
break;
case 'isNotNull':
case 'ever':
$part[$item['field'] . '!='] = null;
break;
case 'isTrue':
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
use Doctrine\DBAL\Types\BooleanType;
class Bool extends BooleanType
class BoolType extends BooleanType
{
const BOOL = 'bool';
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
use Doctrine\DBAL\Types\IntegerType;
class Int extends IntegerType
class IntType extends IntegerType
{
const INTtype = 'int';
@@ -29,7 +29,7 @@
namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
class JsonArray extends \Doctrine\DBAL\Types\JsonArrayType
class JsonArrayType extends \Doctrine\DBAL\Types\JsonArrayType
{
const JSON_ARRAY = 'jsonArray';
@@ -29,7 +29,7 @@
namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
class JsonObject extends \Doctrine\DBAL\Types\ObjectType
class JsonObjectType extends \Doctrine\DBAL\Types\ObjectType
{
const JSON_OBJECT = 'jsonObject';
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
use Doctrine\DBAL\Types\StringType;
class Password extends StringType
class PasswordType extends StringType
{
const PASSWORD = 'password';
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
use Doctrine\DBAL\Types\StringType;
class Varchar extends StringType
class VarcharType extends StringType
{
const VARCHAR = 'varchar';
@@ -161,11 +161,11 @@ class Schema
$typeList = $this->getFileManager()->getFileList($path, false, '\.php$');
if ($typeList !== false) {
foreach($typeList as $name) {
$typeName = preg_replace('/\.php$/i', '', $name);
foreach ($typeList as $name) {
$typeName = preg_replace('/Type\.php$/i', '', $name);
$dbalTypeName = strtolower($typeName);
$filePath = Util::concatPath($path, $typeName);
$filePath = Util::concatPath($path, $typeName . 'Type');
$class = Util::getClassName($filePath);
if( ! Type::hasType($dbalTypeName) ) {
+1 -1
View File
@@ -308,7 +308,7 @@ class Metadata
*
* @return bool
*/
public function delete($key1, $key2, $unsets)
public function delete($key1, $key2, $unsets = null)
{
if (!is_array($unsets)) {
$unsets = (array) $unsets;
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
class Account extends \Espo\Core\ORM\Repositories\RDB
{
public function afterSave(Entity $entity, array $options)
public function afterSave(Entity $entity, array $options = array())
{
parent::afterSave($entity, $options);
@@ -33,14 +33,14 @@ use Espo\ORM\Entity;
class CaseObj extends \Espo\Core\ORM\Repositories\RDB
{
public function afterSave(Entity $entity, array $options)
public function afterSave(Entity $entity, array $options = array())
{
$result = parent::afterSave($entity, $options);
$this->handleAfterSaveContacts($entity, $options);
return $result;
}
protected function handleAfterSaveContacts(Entity $entity, array $options)
protected function handleAfterSaveContacts(Entity $entity, array $options = array())
{
$contactIdChanged = $entity->has('contactId') && $entity->get('contactId') != $entity->getFetched('contactId');
@@ -47,7 +47,7 @@ class Contact extends \Espo\Core\ORM\Repositories\RDB
";
}
public function afterSave(Entity $entity, array $options)
public function afterSave(Entity $entity, array $options = array())
{
$result = parent::afterSave($entity, $options);
$this->handleAfterSaveAccounts($entity, $options);
@@ -59,7 +59,7 @@ class Contact extends \Espo\Core\ORM\Repositories\RDB
return $result;
}
protected function handleAfterSaveAccounts(Entity $entity, array $options)
protected function handleAfterSaveAccounts(Entity $entity, array $options = array())
{
$accountIdChanged = $entity->has('accountId') && $entity->get('accountId') != $entity->getFetched('accountId');
$titleChanged = $entity->has('title') && $entity->get('title') != $entity->getFetched('title');
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
class Lead extends \Espo\Core\ORM\Repositories\RDB
{
public function afterSave(Entity $entity, array $options)
public function afterSave(Entity $entity, array $options = array())
{
parent::afterSave($entity, $options);
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
class Meeting extends \Espo\Core\ORM\Repositories\RDB
{
protected function beforeSave(Entity $entity, array $options)
protected function beforeSave(Entity $entity, array $options = array())
{
parent::beforeSave($entity, $options);
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
class Opportunity extends \Espo\Core\ORM\Repositories\RDB
{
public function beforeSave(Entity $entity, array $options)
public function beforeSave(Entity $entity, array $options = array())
{
parent::beforeSave($entity, $options);
@@ -1,5 +1,5 @@
{
"links": {
"articles": "Knlowledge Base Articles"
"articles": "Knowledge Base Articles"
}
}
@@ -1,42 +1,80 @@
{
"fields": {
"name": "Name",
"emailAddress": "Email",
"website": "Интернет сайт",
"phoneNumber": "Phone",
"billingAddress": "Платежный адрес",
"shippingAddress": "Почтовый адрес",
"description": "Описание",
"sicCode": "SicCode",
"industry": "Промышленность",
"type": "Type",
"contactRole": "Роль"
"fields": {
"name": "Имя",
"emailAddress": "Адрес эл. почты",
"website": "Сайт",
"phoneNumber": "Телефон",
"billingAddress": "Платежный адрес",
"shippingAddress": "Почтовый адрес",
"description": "Описание",
"sicCode": "SIC код",
"industry": "Вид деятельности",
"type": "Тип",
"contactRole": "Должность",
"campaign": "Кампания",
"targetLists": "Списки целей",
"targetList": "Список целей"
},
"links": {
"contacts": "Контакты",
"opportunities": "Сделки",
"cases": "Обращения",
"documents": "Документы",
"meetingsPrimary": "Встречи (развернуто)",
"callsPrimary": "Звонки (развернуто)",
"tasksPrimary": "Задачи (развернуто)",
"emailsPrimary": "Письма (развернуто)",
"targetLists": "Списки целей",
"campaignLogRecords": "Журнал кампании",
"campaign": "Кампания",
"portalUsers": "Пользователи портала"
},
"options": {
"type": {
"Customer": "Заказчик",
"Investor": "Вкладчик",
"Partner": "Партнер",
"Reseller": "Посредник"
},
"links": {
"contacts": "Контакты",
"opportunities": "Сделки",
"cases": "Обращения",
"documents": "Documents"
},
"options": {
"type": {
"Customer": "Заказчик",
"Investor": "Вкладчик",
"Partner": "Партнер",
"Reseller": "Посредник"
},
"industry": {
"Apparel": "Одежда",
"Banking": "Банковское дело",
"Computer Software": "Программное обеспечение",
"Education": "Образование",
"Electronics": "Электроника",
"Finance": "Финансы",
"Insurance": "Страхование"
}
},
"labels": {
"Create Account": "Создать контрагента",
"Copy Billing": "Copy Billing"
"industry": {
"Agriculture": "Agriculture",
"Advertising": "Advertising",
"Apparel & Accessories": "Apparel & Accessories",
"Automotive": "Automotive",
"Banking": "Banking",
"Biotechnology": "Biotechnology",
"Building Materials & Equipment": "Building Materials & Equipment",
"Chemical": "Chemical",
"Computer": "Computer",
"Education": "Education",
"Electronics": "Electronics",
"Energy": "Energy",
"Entertainment & Leisure": "Entertainment & Leisure",
"Finance": "Finance",
"Food & Beverage": "Food & Beverage",
"Grocery": "Grocery",
"Healthcare": "Healthcare",
"Insurance": "Insurance",
"Legal": "Legal",
"Manufacturing": "Manufacturing",
"Publishing": "Publishing",
"Real Estate": "Real Estate",
"Service": "Service",
"Sports": "Sports",
"Software": "Software",
"Technology": "Technology",
"Telecommunications": "Telecommunications",
"Television": "Television",
"Transportation": "Transportation",
"Venture Capital": "Venture Capital"
}
}
},
"labels": {
"Create Account": "Создать контрагента",
"Copy Billing": "Копировать адрес"
},
"presetFilters": {
"customers": "Заказчики",
"partners": "Партнеры"
}
}
@@ -1,5 +1,6 @@
{
"layouts": {
"detailConvert": "Преобразовать потенциального клиента"
}
}
"layouts": {
"detailConvert": "Преобразовать кандидата",
"listForAccount": "Список (для контрагента)"
}
}
@@ -1,13 +1,13 @@
{
"modes": {
"month": "месяц",
"week": "неделя",
"day": "день",
"agendaWeek": "неделя",
"agendaDay": "день"
},
"labels": {
"Today": "Сегодня",
"Create": "Создать"
}
}
"modes": {
"month": "Месяц",
"week": "Неделя",
"agendaWeek": "Неделя",
"day": "День",
"agendaDay": "День"
},
"labels": {
"Today": "Сегодня",
"Create": "Создать"
}
}
@@ -1,45 +1,49 @@
{
"fields": {
"name": "Имя",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Дата окончания",
"direction": "Категория",
"duration": "Длительность",
"description": "Описание",
"users": "Пользователи",
"contacts": "Контакты",
"leads": "Потенциальные клиенты",
"reminders": "Напоминания"
"fields": {
"name": "Название",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Дата окончания",
"direction": "Категория",
"duration": "Длительность",
"description": "Описание",
"users": "Пользователи",
"contacts": "Контакты",
"leads": "Кандидаты",
"reminders": "Напоминания",
"account": "Контрагент"
},
"options": {
"status": {
"Planned": "Запланирован",
"Held": "Состоялся",
"Not Held": "Не состоялся"
},
"links": {
"direction": {
"Outbound": "Исходящий",
"Inbound": "Входящий"
},
"options": {
"status": {
"Planned": "Запланированный",
"Held": "Выполнен",
"Not Held": "Не состоялся"
},
"direction": {
"Outbound": "Исходящий",
"Inbound": "Входящий"
},
"acceptanceStatus": {
"None": "Нет",
"Accepted": "Принятый",
"Declined": "Отклоненный"
}
},
"labels": {
"Create Call": "Новый звонок",
"Set Held": "Был выполнен",
"Set Not Held": "Set Not Held",
"Send Invitations": "Отправить приглашения"
},
"presetFilters": {
"planned": "Запланированные",
"held": "Завершенные",
"todays": "На сегодня"
"acceptanceStatus": {
"None": "Нет",
"Accepted": "Согласен",
"Declined": "Не согласен",
"Tentative": "Есть сомнения"
}
}
},
"massActions": {
"setHeld": "Состоялось",
"setNotHeld": "Не состоялось"
},
"labels": {
"Create Call": "Создать звонок",
"Set Held": "Состоялось",
"Set Not Held": "Не состоялось",
"Send Invitations": "Отправить приглашения"
},
"presetFilters": {
"planned": "Запланированные",
"held": "Завершенные",
"todays": "На сегодня"
}
}
@@ -0,0 +1,71 @@
{
"fields": {
"name": "Название",
"description": "Описание",
"status": "Статус",
"type": "Тип",
"startDate": "Дата начала",
"endDate": "Дата окончания",
"targetLists": "Списки целей",
"excludingTargetLists": "Исключая списки целей",
"sentCount": "Отправлено",
"openedCount": "Открыто",
"clickedCount": "Проследовало по ссылке",
"optedOutCount": "Отписалось",
"bouncedCount": "Возвратов писем",
"hardBouncedCount": "Жестких возвратов",
"softBouncedCount": "Мягких возвратов",
"leadCreatedCount": "Кандидатов создано",
"revenue": "Доход",
"revenueConverted": "Доход (сконвертированный)",
"budget": "Бюджет",
"budgetConverted": "Бюджет (сконвертированный)"
},
"links": {
"targetLists": "Списки целей",
"excludingTargetLists": "Исключая списки целей",
"accounts": "Контрагенты",
"contacts": "Контакты",
"leads": "Кандидаты",
"opportunities": "Сделки",
"campaignLogRecords": "Журнал",
"massEmails": "Массовые рассылки эл. писем",
"trackingUrls": "Целевые URL-адреса"
},
"options": {
"type": {
"Email": "Эл. письмо",
"Web": "Интернет",
"Television": "Телевидение",
"Radio": "Радио",
"Newsletter": "Информационный бюллетень",
"Mail": "Письмо"
},
"status": {
"Planning": "Запланирована",
"Active": "Активна",
"Inactive": "Не активна",
"Complete": "Завершена"
}
},
"labels": {
"Create Campaign": "Создать кампанию",
"Target Lists": "Списки целей",
"Statistics": "Статистика",
"hard": "жесткий",
"soft": "мягкий",
"Unsubscribe": "Отписаться",
"Mass Emails": "Массовые рассылки эл. писем",
"Email Templates": "Шаблоны эл. писем"
},
"presetFilters": {
"active": "Активна"
},
"messages": {
"unsubscribed": "Вы были удалены из нашего списка рассылки."
},
"tooltips": {
"targetLists": "Цели которые должны получить сообщения.",
"excludingTargetLists": "Цели которые не должны получить сообщения."
}
}
@@ -0,0 +1,40 @@
{
"fields": {
"action": "Действие",
"actionDate": "Дата",
"data": "Данные",
"campaign": "Кампания",
"parent": "Цель",
"object": "Объект",
"application": "Приложение",
"queueItem": "Queue Item",
"stringData": "Строка данных",
"stringAdditionalData": "Строка дополнительных данных"
},
"links": {
"queueItem": "Queue Item",
"parent": "Источник",
"object": "Объект"
},
"options": {
"action": {
"Sent": "Отправлено",
"Opened": "Открыто",
"Opted Out": "Отписалось",
"Bounced": "Возвратов писем",
"Clicked": "Проследовало по ссылке",
"Lead Created": "Кандидатов создано"
}
},
"labels": {
"All": "Все"
},
"presetFilters": {
"sent": "Отправлено",
"opened": "Открыто",
"optedOut": "Отписалось",
"bounced": "Возвратов писем",
"clicked": "Проследовало по ссылке",
"leadCreated": "Кандидатов создано"
}
}
@@ -0,0 +1,13 @@
{
"fields": {
"url": "Целевой URL-адрес",
"urlToUse": "Код для подстановки вместо целевого URL-адреса",
"campaign": "Кампания"
},
"links": {
"campaign": "Кампания"
},
"labels": {
"Create CampaignTrackingUrl": "Создать целевой URL-адрес"
}
}
@@ -1,42 +1,57 @@
{
"fields": {
"name": "Name",
"number": "Номер",
"status": "статус",
"account": "Контрагент",
"contact": "Контакт",
"priority": "Приоритет",
"type": "Type",
"description": "Описание"
"fields": {
"name": "Название",
"number": "Номер",
"status": "Статус",
"account": "Контрагент",
"contact": "Контакт",
"contacts": "Контакты",
"priority": "Приоритет",
"type": "Тип",
"description": "Описание",
"inboundEmail": "Входящая эл. почта"
},
"links": {
"inboundEmail": "Входящая эл. почта",
"account": "Контрагент",
"contact": "Контакт (основной)",
"Contacts": "Контакты",
"meetings": "Встречи",
"calls": "Звонки",
"tasks": "Задачи",
"emails": "Эл. письма",
"articles": "Статьи базы знаний"
},
"options": {
"status": {
"New": "Новое",
"Assigned": "Назначено",
"Pending": "В ожидании",
"Closed": "Закрыто",
"Rejected": "Отклонено",
"Duplicate": "Дубликат"
},
"links": {
"priority": {
"Low": "Низкий",
"Normal": "Обычный",
"High": "Высокий",
"Urgent": "Срочно"
},
"options": {
"status": {
"New": "Новый",
"Assigned": "На рассмотрении",
"Pending": "Текущее",
"Closed": "Закрыто",
"Rejected": "Отказано",
"Duplicate": "Копия"
},
"priority" : {
"Low": "Низкий",
"Normal": "Нормальный",
"High": "Высокий",
"Urgent": "Срочно"
},
"type": {
"Question": "Вопрос",
"Incident": "Происшествие",
"Problem": "Проблема"
}
},
"labels": {
"Create Case": "Создать обращение"
},
"presetFilters": {
"open": "Открытые",
"closed": "Закрытые"
"type": {
"Question": "Вопрос",
"Incident": "Происшествие",
"Problem": "Проблема"
}
}
},
"labels": {
"Create Case": "Создать обращение",
"Close": "Закрыть",
"Reject": "Отклонить",
"Closed": "Закрыто",
"Rejected": "Отклонено"
},
"presetFilters": {
"open": "Открытые",
"closed": "Закрытые"
}
}
@@ -1,31 +1,46 @@
{
"fields": {
"name": "Name",
"emailAddress": "Email",
"title": "Название",
"account": "Контрагент",
"accounts": "Контрагенты",
"phoneNumber": "Phone",
"accountType": "Тип контрагента",
"doNotCall": "Не звонить",
"address": "Address",
"opportunityRole": "Роль сделки",
"accountRole": "Роль",
"description": "Описание"
},
"links": {
"opportunities": "Сделки",
"cases": "Обращения"
},
"labels": {
"Create Contact": "Создать контакт"
},
"options": {
"opportunityRole": {
"": "--Нет--",
"Decision Maker": "Принимающий решение",
"Evaluator": "Оценщик",
"Influencer": "Консультант"
}
"fields": {
"name": "Имя",
"emailAddress": "Адрес эл. почты",
"title": "Должность",
"accountRole": "Должность",
"account": "Контрагент",
"accounts": "Контрагенты",
"phoneNumber": "Телефон",
"accountType": "Тип контрагента",
"doNotCall": "Не звонить",
"address": "Адрес",
"opportunityRole": "Роль в сделке",
"description": "Описание",
"campaign": "Кампания",
"targetLists": "Списки целей",
"targetList": "Список целей",
"portalUser": "Пользователь портала"
},
"links": {
"opportunities": "Cделки",
"cases": "Обращения",
"targetLists": "Списки целей",
"campaignLogRecords": "Журнал кампании",
"campaign": "Кампания",
"account": "Контрагент (основной)",
"accounts": "Контрагенты",
"casesPrimary": "Обращения (основной)",
"portalUser": "Пользователь портала"
},
"labels": {
"Create Contact": "Создать контакт"
},
"options": {
"opportunityRole": {
"": "Нет",
"Decision Maker": "Принимающий решение",
"Evaluator": "Оценщик",
"Influencer": "Консультант"
}
}
},
"presetFilters": {
"portalUsers": "Пользователи порталов",
"notPortalUsers": "Не пользователи порталов"
}
}
@@ -1,32 +1,42 @@
{
"labels": {
"Create Document": "Create Document",
"Details": "Описание"
"labels": {
"Create Document": "Создать документ",
"Details": "Описание"
},
"fields": {
"name": "Название",
"status": "Статус",
"file": "Файл",
"type": "Тип",
"source": "Источник",
"publishDate": "Опубликован",
"expirationDate": "Актуален до",
"description": "Описание",
"accounts": "Контрагенты",
"folder": "Папка"
},
"links": {
"accounts": "Контрагенты",
"opportunities": "Сделки",
"folder": "Папка"
},
"options": {
"status": {
"Active": "Действующий",
"Draft": "Черновик",
"Expired": "Просрочен",
"Canceled": "Отменен"
},
"fields": {
"name": "Name",
"status": "статус",
"file": "File",
"type": "Type",
"source": "Source",
"publishDate": "Publish Date",
"expirationDate": "Expiration Date",
"description": "Описание"
},
"links": {
"accounts": "Контрагенты",
"opportunities": "Сделки"
},
"options": {
"status": {
"Active": "Активный",
"Draft": "Черновик",
"Expired": "Expired",
"Canceled": "Отменена"
}
},
"presetFilters": {
"active": "Активный",
"draft": "Черновик"
"type": {
"": "Нет",
"Contract": "Contract",
"NDA": "NDA",
"EULA": "EULA",
"License Agreement": "License Agreement"
}
}
},
"presetFilters": {
"active": "Действующий",
"draft": "Черновик"
}
}
@@ -0,0 +1,9 @@
{
"labels": {
"Create DocumentFolder": "Создать папку",
"Manage Categories": "Управление папками"
},
"links": {
"documents": "Документы"
}
}
@@ -0,0 +1,8 @@
{
"labels": {
"Create Lead": "Создать кандидата",
"Create Contact": "Создать контакт",
"Create Task": "Создать задачу",
"Create Case": "Создать обращение"
}
}
@@ -0,0 +1,28 @@
{
"fields": {
"name": "Название",
"status": "Статус",
"target": "Цель",
"sentAt": "Дата отправки",
"attemptCount": "Попыток",
"emailAddress": "Адрес эл. почты",
"massEmail": "Массовая рассылка эл. писем",
"isTest": "Тест"
},
"links": {
"target": "Цель",
"massEmail": "Массовая рассылка эл. писем"
},
"options": {
"status": {
"Pending": "В ожидании",
"Sent": "Отправлено",
"Failed": "Сбой"
}
},
"presetFilters": {
"pending": "В ожидании",
"sent": "Отправлено",
"failed": "Сбой"
}
}
@@ -1,90 +1,115 @@
{
"scopeNames": {
"Account": "Контрагент",
"Contact": "Контакт",
"Lead": "Потенциальный клиент",
"Target": "Цель",
"Opportunity": "Cделка",
"Meeting": "Встреча",
"Calendar": "Календарь",
"Call": "Вызов",
"Task": "Задача",
"Case": "Обращение",
"InboundEmail": "Входящая почта",
"Document": "Document"
},
"scopeNamesPlural": {
"Account": "Контрагенты",
"Contact": "Контакты",
"Lead": "Потенциальные клиенты",
"Target": "Цели",
"Opportunity": "Сделки",
"Meeting": "Встречи",
"Calendar": "Календарь",
"Call": "Звонки",
"Task": "Задачи",
"Case": "Обращения",
"InboundEmail": "Inbound Emails",
"Document": "Documents"
},
"dashlets": {
"Leads": "Мои потенциальные клиенты",
"Opportunities": "Мои сделки",
"Tasks": "Мои задачи",
"Cases": "Мои обращения",
"Calendar": "Календарь",
"Calls": "Мои звонки",
"Meetings": "Мои встречи",
"OpportunitiesByStage": "Сделки по стадии",
"OpportunitiesByLeadSource": "Сделки по источнику потенциального клиента",
"SalesByMonth": "Продажи по месяцам",
"SalesPipeline": "Источники продаж"
},
"labels": {
"Create InboundEmail": "Создать входящую почту",
"Activities": "Мероприятия",
"History": "История",
"Attendees": "Участники",
"Schedule Meeting": "Запланировать встречу",
"Schedule Call": "Запланировать звонок",
"Compose Email": "Создать e-mail",
"Log Meeting": "Записать встречу",
"Log Call": "Записать звонок",
"Archive Email": "Отправить письмо в архив",
"Create Task": "Создать задачу",
"Tasks": "Задачи"
},
"fields": {
"billingAddressCity": "Город",
"billingAddressCountry": "Страна",
"billingAddressPostalCode": "Почтовый индекс",
"billingAddressState": "Регион",
"billingAddressStreet": "Улица",
"addressCity": "Город",
"addressStreet": "Улица",
"addressCountry": "Страна",
"addressState": "Регион",
"addressPostalCode": "Почтовый индекс",
"shippingAddressCity": "Город доставки",
"shippingAddressStreet": "Улица доставки",
"shippingAddressCountry": "Страна доставки",
"shippingAddressState": "Регион доставки",
"shippingAddressPostalCode": "Почтовый код доставки"
},
"links": {
"contacts": "Контакты",
"opportunities": "Сделки",
"leads": "Потенциальные клиенты",
"meetings": "Встречи",
"calls": "Звонки",
"tasks": "Задачи",
"emails": "Письма",
"accounts": "Контрагенты",
"cases": "Обращения",
"documents": "Documents",
"account": "Контрагент",
"opportunity": "Cделка",
"contact": "Контакт",
"parent": "Источник"
"links": {
"parent": "Источник",
"contacts": "Контакты",
"opportunities": "Сделки",
"leads": "Кандидаты",
"meetings": "Встречи",
"calls": "Звонки",
"tasks": "Задачи",
"emails": "Эл. письма",
"accounts": "Контрагенты",
"cases": "Обращения",
"documents": "Документы",
"account": "Контрагент",
"opportunity": "Cделка",
"contact": "Контакт"
},
"scopeNames": {
"Account": "Контрагент",
"Contact": "Контакт",
"Lead": "Кандидат",
"Target": "Цель",
"Opportunity": "Cделка",
"Meeting": "Встреча",
"Calendar": "Календарь",
"Call": "Звонок",
"Task": "Задача",
"Case": "Обращение",
"Document": "Документ",
"DocumentFolder": "Папка с документами",
"Campaign": "Кампания",
"TargetList": "Список целей",
"MassEmail": "Массовая рассылка эл. писем",
"EmailQueueItem": "Email Queue Item",
"CampaignTrackingUrl": "Целевой URL-адрес",
"Activities": "Действия",
"KnowledgeBaseArticle": "Статья базы знаний",
"KnowledgeBaseCategory": "Категория базы знаний"
},
"scopeNamesPlural": {
"Account": "Контрагенты",
"Contact": "Контакты",
"Lead": "Кандидаты",
"Target": "Цели",
"Opportunity": "Сделки",
"Meeting": "Встречи",
"Calendar": "Календари",
"Call": "Звонки",
"Task": "Задачи",
"Case": "Обращения",
"Document": "Документы",
"DocumentFolder": "Папки с документами",
"Campaign": "Кампании",
"TargetList": "Списки целей",
"MassEmail": "Массовые рассылки эл. писем",
"EmailQueueItem": "Email Queue Items",
"CampaignTrackingUrl": "Целевые URL-адреса",
"Activities": "Действия",
"KnowledgeBaseArticle": "Статьи базы знаний",
"KnowledgeBaseCategory": "Категории базы знаний"
},
"dashlets": {
"Leads": "Мои кандидаты",
"Opportunities": "Мои сделки",
"Tasks": "Мои задачи",
"Cases": "Мои обращения",
"Calendar": "Календарь",
"Calls": "Мои звонки",
"Meetings": "Мои встречи",
"OpportunitiesByStage": "Сделки по стадиям",
"OpportunitiesByLeadSource": "Сделки по источнику кандидатов",
"SalesByMonth": "Продажи по месяцам",
"SalesPipeline": "Источники продаж",
"Activities": "Мои действия"
},
"labels": {
"Create InboundEmail": "Create Inbound Email",
"Activities": "Действия",
"History": "История",
"Attendees": "Участники",
"Schedule Meeting": "Запланировать встречу",
"Schedule Call": "Запланировать звонок",
"Compose Email": "Написать эл. письмо",
"Log Meeting": "Записать встречу",
"Log Call": "Записать звонок",
"Archive Email": "Отправить эл. письмо в архив",
"Create Task": "Создать задачу",
"Tasks": "Задачи"
},
"fields": {
"billingAddressCity": "Город",
"addressCity": "Город",
"billingAddressCountry": "Страна",
"addressCountry": "Страна",
"billingAddressPostalCode": "Индекс",
"addressPostalCode": "Индекс",
"billingAddressState": "Регион",
"addressState": "Регион",
"billingAddressStreet": "Улица",
"addressStreet": "Улица",
"billingAddressMap": "Карта",
"addressMap": "Карта",
"shippingAddressCity": "Город доставки",
"shippingAddressStreet": "Улица доставки",
"shippingAddressCountry": "Страна доставки",
"shippingAddressState": "Регион доставки",
"shippingAddressPostalCode": "Индекс доставки"
},
"options": {
"reminderTypes": {
"Popup": "Всплывающее окно",
"Email": "Эл. письмо"
}
}
}
}
@@ -0,0 +1,42 @@
{
"labels": {
"Create KnowledgeBaseArticle": "Создать статью",
"Any": "Любой"
},
"fields": {
"name": "Название",
"status": "Статус",
"type": "Тип",
"attachments": "Вложения",
"publishDate": "Опубликована",
"expirationDate": "Актуальна до",
"description": "Описание",
"body": "Тело",
"categories": "Категории",
"language": "Язык",
"portals": "Порталы"
},
"links": {
"cases": "Обращения",
"opportunities": "Сделки",
"categories": "Категории",
"portals": "Порталы"
},
"options": {
"status": {
"In Review": "На рассмотрении",
"Draft": "Черновик",
"Archived": "В архиве",
"Published": "Опубликована"
},
"type": {
"Article": "Статья"
}
},
"tooltips": {
"portals": "Если не пусто, то эта статья будет доступна только в указанных порталах. Если пусто, то будет доступна во всех порталах."
},
"presetFilters": {
"published": "Опубликована"
}
}
@@ -0,0 +1,9 @@
{
"labels": {
"Create KnowledgeBaseCategory": "Создать категорию",
"Manage Categories": "Управление категориями"
},
"links": {
"articles": "Статьи"
}
}
@@ -1,51 +1,62 @@
{
"labels": {
"Converted To": "Преобразован в",
"Create Lead": "Создать потенциального клиента",
"Convert": "Преобразовать"
"labels": {
"Converted To": "Преобразован в",
"Create Lead": "Создать кандидата",
"Convert": "Преобразовать"
},
"fields": {
"name": "Имя",
"emailAddress": "Адрес эл. почты",
"title": "Должность",
"website": "Сайт",
"phoneNumber": "Телефон",
"accountName": "Контрагент",
"doNotCall": "Не звонить",
"address": "Адрес",
"status": "Статус",
"source": "Источник",
"opportunityAmount": "Сумма сделки",
"opportunityAmountConverted": "Сумма сделки (сконвертированная)",
"description": "Описание",
"createdAccount": "Контрагент",
"createdContact": "Контакт",
"createdOpportunity": "Cделка",
"campaign": "Кампания",
"targetLists": "Списки целей",
"targetList": "Список целей"
},
"links": {
"targetLists": "Списки целей",
"campaignLogRecords": "Журнал кампании",
"campaign": "Кампания",
"createdAccount": "Контрагент",
"createdContact": "Контакт",
"createdOpportunity": "Cделка"
},
"options": {
"status": {
"New": "Новый",
"Assigned": "Назначен",
"In Process": "В процессе",
"Converted": "Преобразован",
"Recycled": "Удален",
"Dead": "Мертв"
},
"fields": {
"name": "Name",
"emailAddress": "Email",
"title": "Название",
"website": "Интернет сайт",
"phoneNumber": "Phone",
"accountName": "Имя контрагента",
"doNotCall": "Не звонить",
"address": "Address",
"status": "статус",
"source": "Source",
"opportunityAmount": "Сумма сделки",
"opportunityAmountConverted": "Сумма сделки (конвертирован)",
"description": "Описание",
"createdAccount": "Контрагент",
"createdContact": "Контакт",
"createdOpportunity": "Cделка"
},
"links": {
},
"options": {
"status": {
"New": "Новый",
"Assigned": "На рассмотрении",
"In Process": "В процессе",
"Converted": "Преобразовано",
"Recycled": "Восстановленный",
"Dead": "Мертв"
},
"source": {
"Call": "Вызов",
"Email": "Email",
"Existing Customer": "Existing Customer",
"Partner": "Партнер",
"Public Relations": "Public Relations",
"Web Site": "Web Site",
"Campaign": "Campaign",
"Other": "Дополнительно"
}
},
"presetFilters": {
"actual": "Актуальные",
"active": "Активные"
"source": {
"": "Нет",
"Call": "Звонок",
"Email": "Эл. письмо",
"Existing Customer": "Существующий клиент",
"Partner": "Партнер",
"Public Relations": "Связи с общественностью",
"Web Site": "Сайт",
"Campaign": "Кампания",
"Other": "Другое"
}
}
},
"presetFilters": {
"active": "Активный",
"actual": "Актуальный",
"converted": "Преобразованный"
}
}
@@ -0,0 +1,49 @@
{
"fields": {
"name": "Название",
"status": "Статус",
"storeSentEmails": "Сохранять отправленные эл. письма",
"startAt": "Дата начала",
"fromAddress": "Адрес отправителя",
"fromName": "Имя отправителя",
"replyToAddress": "Обратный адрес",
"replyToName": "Имя для обратного адреса",
"campaign": "Кампания",
"emailTemplate": "Шаблон эл. письма",
"inboundEmail": "Учетная запись эл. почты",
"targetLists": "Списки целей",
"excludingTargetLists": "Исключая списки целей",
"optOutEntirely": "Отписать навсегда"
},
"links": {
"targetLists": "Списки целей",
"excludingTargetLists": "Исключая списки целей",
"queueItems": "Queue Items",
"campaign": "Кампания",
"emailTemplate": "Шаблон эл. письма",
"inboundEmail": "Учетная запись эл. почты"
},
"options": {
"status": {
"Draft": "Черновик",
"Pending": "В ожидании",
"In Process": "В процессе",
"Complete": "Завершена",
"Canceled": "Отменена",
"Failed": "Сбой"
}
},
"labels": {
"Create MassEmail": "Создать массовую рассылку эл. писем",
"Send Test": "Отправить тестовое эл. письмо"
},
"messages": {
"selectAtLeastOneTarget": "Выберите хотя бы одну цель",
"testSent": "Должно отправиться тестовое эл. письмо"
},
"tooltips": {
"optOutEntirely": "Адреса эл. почты получателей, которые отписались будут помечены как отписавшиеся и больше не будут получать массовые рассылки эл. писем.",
"targetLists": "Цели которые должны получить сообщения.",
"excludingTargetLists": "Цели которые не должны получить сообщения."
}
}
@@ -1,40 +1,46 @@
{
"fields": {
"name": "Имя",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Дата окончания",
"duration": "Длительность",
"description": "Описание",
"users": "Пользователи",
"contacts": "Контакты",
"leads": "Потенциальные клиенты",
"reminders": "Напоминания"
"fields": {
"name": "Название",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Дата окончания",
"duration": "Длительность",
"description": "Описание",
"users": "Пользователи",
"contacts": "Контакты",
"leads": "Кандидаты",
"reminders": "Напоминания",
"account": "Контрагент"
},
"options": {
"status": {
"Planned": "Запланирована",
"Held": "Состоялась",
"Not Held": "Не состоялась"
},
"links": {
},
"options": {
"status": {
"Planned": "Запланированный",
"Held": "Выполнен",
"Not Held": "Не состоялся"
},
"acceptanceStatus": {
"None": "Нет",
"Accepted": "Accepted",
"Declined": "Declined"
}
},
"labels": {
"Create Meeting": "Создать встречу",
"Set Held": "Был выполнен",
"Set Not Held": "Set Not Held",
"Send Invitations": "Отправить приглашения"
},
"presetFilters": {
"planned": "Запланированные",
"held": "Завершенные",
"todays": "На сегодня"
"acceptanceStatus": {
"None": "Нет",
"Accepted": "Согласен",
"Declined": "Не согласен",
"Tentative": "Есть сомнения"
}
}
},
"massActions": {
"setHeld": "Состоялось",
"setNotHeld": "Не состоялось"
},
"labels": {
"Create Meeting": "Создать встречу",
"Set Held": "Состоялось",
"Set Not Held": "Не состоялось",
"Send Invitations": "Отправить приглашения",
"on time": "во время",
"before": "до начала"
},
"presetFilters": {
"planned": "Запланированные",
"held": "Завершенные",
"todays": "На сегодня"
}
}
@@ -1,41 +1,44 @@
{
"fields": {
"name": "Name",
"account": "Контрагент",
"stage": "Стадия",
"amount": "Сумма",
"probability": "Вероятность успеха, %",
"leadSource": "Источник потенциального клиента",
"doNotCall": "Не звонить",
"closeDate": "Дата закрытия",
"contacts": "Контакты",
"description": "Описание",
"amountConverted": "Сумма (сконвертирована)",
"amountWeightedConverted": "Amount Weighted"
},
"links": {
"contacts": "Контакты",
"documents": "Documents"
},
"options": {
"stage": {
"Prospecting": "Привлечение клиента",
"Qualification": "Оценка возможности",
"Needs Analysis": "Требует анализа",
"Value Proposition": "Выбор предложения/оферты",
"Id. Decision Makers": "Определение ответственного лица",
"Perception Analysis": "Проведение анализа",
"Proposal/Price Quote": "Отправлено предложение/оферта",
"Negotiation/Review": "Согласование/рассмотрение",
"Closed Won": "Закрыто - Успех",
"Closed Lost": "Закрыто - Провал"
}
},
"labels": {
"Create Opportunity": "Создать сделку"
},
"presetFilters": {
"open": "Открыть",
"won": "Успешные"
"fields": {
"name": "Название",
"account": "Контрагент",
"stage": "Стадия",
"amount": "Сумма",
"probability": "Вероятность успеха, %",
"leadSource": "Источник кандидата",
"doNotCall": "Не звонить",
"closeDate": "Дата закрытия",
"contacts": "Контакты",
"description": "Описание",
"amountConverted": "Сумма (сконвертированная)",
"amountWeightedConverted": "Сумма (средневзвешенная)",
"campaign": "Кампания"
},
"links": {
"contacts": "Контакты",
"documents": "Документы",
"campaign": "Кампания"
},
"options": {
"stage": {
"Prospecting": "Привлечение клиента",
"Qualification": "Оценка возможности",
"Needs Analysis": "Требует анализа",
"Value Proposition": "Выбор предложения/оферты",
"Id. Decision Makers": "Определение ответственного лица",
"Perception Analysis": "Проведение анализа",
"Proposal/Price Quote": "Отправлено предложение/оферта",
"Negotiation/Review": "Согласование/рассмотрение",
"Closed Won": "Закрыто - Успех",
"Closed Lost": "Закрыто - Провал"
}
}
},
"labels": {
"Create Opportunity": "Создать сделку"
},
"presetFilters": {
"open": "Открыть",
"won": "Успешные",
"lost": "Провальные"
}
}
@@ -0,0 +1,5 @@
{
"links": {
"articles": "Статьи базы знаний"
}
}
@@ -0,0 +1,8 @@
{
"options": {
"job": {
"ProcessMassEmail": "Отправка массовых рассылок эл. писем",
"ControlKnowledgeBaseArticleStatus": "Контроль статуса статей базы знаний"
}
}
}
@@ -1,19 +1,17 @@
{
"fields": {
"name": "Name",
"emailAddress": "Email",
"title": "Название",
"website": "Интернет сайт",
"accountName": "Имя контрагента",
"phoneNumber": "Phone",
"doNotCall": "Не звонить",
"address": "Address",
"description": "Описание"
},
"links": {
},
"labels": {
"Create Target": "Создать цель",
"Convert to Lead": "Преобразовать в потенциального клиента"
}
}
"fields": {
"name": "Имя",
"emailAddress": "Адрес эл. почты",
"title": "Должность",
"website": "Сайт",
"accountName": "Контрагент",
"phoneNumber": "Телефон",
"doNotCall": "Не звонить",
"address": "Адрес",
"description": "Описание"
},
"labels": {
"Create Target": "Создать цель",
"Convert to Lead": "Преобразовать в кандидата"
}
}
@@ -0,0 +1,32 @@
{
"fields": {
"name": "Название",
"description": "Описание",
"entryCount": "Количество",
"campaigns": "Кампании",
"endDate": "Дата окончания",
"targetLists": "Списки целей"
},
"links": {
"accounts": "Контрагенты",
"contacts": "Контакты",
"leads": "Кандидаты",
"campaigns": "Кампании",
"massEmails": "Массовые рассылки эл. писем"
},
"options": {
"type": {
"Email": "Эл. письмо",
"Web": "Интернет",
"Television": "Телевидение",
"Radio": "Радио",
"Newsletter": "Информационный бюллетень"
}
},
"labels": {
"Create TargetList": "Создать список целей",
"Opted Out": "Отписавшиеся",
"Cancel Opt-Out": "Отменить отписку",
"Opt-Out": "Отписать"
}
}
@@ -1,38 +1,45 @@
{
"fields": {
"name": "Имя",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Date Due",
"priority": "Приоритет",
"description": "Описание",
"isOverdue": "Просрочена"
"fields": {
"name": "Название",
"parent": "Источник",
"status": "Статус",
"dateStart": "Дата начала",
"dateEnd": "Дата окончания",
"dateStartDate": "Дата начала (весь день)",
"dateEndDate": "Дата окончания (весь день)",
"priority": "Приоритет",
"description": "Описание",
"isOverdue": "Просрочена",
"account": "Контрагент",
"dateCompleted": "Дата завершения",
"attachments": "Вложения"
},
"links": {
"attachments": "Вложения"
},
"options": {
"status": {
"Not Started": "Не началась",
"Started": "Началась",
"Completed": "Завершена",
"Canceled": "Отменена",
"Deferred": "Отложена"
},
"links": {
},
"options": {
"status": {
"Not Started": "Не началась",
"Started": "Началась",
"Completed": "Завершена",
"Canceled": "Отменена"
},
"priority" : {
"Low": "Низкий",
"Normal": "Нормальный",
"High": "Высокий",
"Urgent": "Срочно"
}
},
"labels": {
"Create Task": "Создать задачу",
"Complete": "Завершить"
},
"presetFilters": {
"actual": "Актуальные",
"completed": "Завершенные",
"todays": "На сегодня",
"overdue": "Просроченные"
"priority": {
"Low": "Низкий",
"Normal": "Обычный",
"High": "Высокий",
"Urgent": "Срочно"
}
}
},
"labels": {
"Create Task": "Создать задачу",
"Complete": "Завершить"
},
"presetFilters": {
"actual": "Актуальные",
"completed": "Завершенные",
"todays": "На сегодня",
"overdue": "Просроченные"
}
}
@@ -0,0 +1,5 @@
{
"links": {
"targetLists": "Списки целей"
}
}
@@ -35,10 +35,10 @@
"Mail": "Пошта"
},
"status": {
"Planning": "Планування",
"Planning": "Запланований",
"Active": "Активний",
"Inactive": "Неактивний",
"Complete": "Повне"
"Complete": "Завершений"
}
},
"labels": {
@@ -36,7 +36,7 @@
"Create Case": "Створити кейс"
},
"presetFilters": {
"open": "Відкрити",
"open": "Відкрито",
"closed": "Закрито"
}
}
@@ -34,7 +34,7 @@
},
"labels": {
"Create Task": "Створити завдання",
"Complete": "Повне"
"Complete": "Завершити"
},
"presetFilters": {
"actual": "Актуально",
@@ -31,7 +31,8 @@
"start": "dateStart",
"end": "dateEnd",
"options": [300, 600, 900, 1800, 2700, 3600, 7200],
"default": 300
"default": 300,
"notStorable": true
},
"reminders": {
"type": "jsonArray",
@@ -31,7 +31,8 @@
"start": "dateStart",
"end": "dateEnd",
"options": [900, 1800, 3600, 7200, 10800, 86400],
"default": 3600
"default": 3600,
"notStorable": true
},
"reminders": {
"type": "jsonArray",
@@ -5,7 +5,7 @@
"acl": "recordAllTeamNo",
"aclPortal": "recordAllNo",
"module": "Crm",
"customizable": false,
"customizable": true,
"importable": false,
"type": "CategoryTree",
"stream": false,
@@ -5,7 +5,7 @@
"acl": "recordAllTeamNo",
"aclPortal": "recordAllNo",
"module": "Crm",
"customizable": false,
"customizable": true,
"importable": false,
"type": "CategoryTree",
"stream": false,
@@ -56,7 +56,7 @@ class Account extends \Espo\Services\Record
'targetLists'
];
protected function getDuplicateWhereClause(Entity $entity)
protected function getDuplicateWhereClause(Entity $entity, $data = array())
{
return array(
'name' => $entity->get('name')
@@ -33,7 +33,7 @@ use \Espo\ORM\Entity;
class Campaign extends \Espo\Services\Record
{
public function loadAdditionalFields($entity)
public function loadAdditionalFields(Entity $entity)
{
parent::loadAdditionalFields($entity);
@@ -44,7 +44,7 @@ class CaseObj extends \Espo\Services\Record
'inboundEmailId'
];
public function afterCreate($entity, array $data)
public function afterCreate($entity, array $data = array())
{
parent::afterCreate($entity, $data);
if (!empty($data['emailId'])) {
@@ -42,7 +42,7 @@ class Contact extends \Espo\Services\Record
'portalUserId'
];
protected function getDuplicateWhereClause(Entity $entity)
protected function getDuplicateWhereClause(Entity $entity, $data = array())
{
$data = array(
'OR' => array(
@@ -61,7 +61,7 @@ class Contact extends \Espo\Services\Record
return $data;
}
public function afterCreate($entity, array $data)
public function afterCreate($entity, array $data = array())
{
parent::afterCreate($entity, $data);
if (!empty($data['emailId'])) {
@@ -44,7 +44,7 @@ class Lead extends \Espo\Services\Record
'targetLists'
];
protected function getDuplicateWhereClause(Entity $entity)
protected function getDuplicateWhereClause(Entity $entity, $data = array())
{
$data = array(
'OR' => array(
@@ -63,7 +63,7 @@ class Lead extends \Espo\Services\Record
return $data;
}
public function afterCreate($entity, array $data)
public function afterCreate($entity, array $data, $data = array())
{
parent::afterCreate($entity, $data);
if (!empty($data['emailId'])) {
@@ -445,7 +445,7 @@ class MassEmail extends \Espo\Services\Record
$this->getMailSender()->useGlobal()->send($email, $params, $message, $attachmentList);
$emailObject = $emailTemplate;
if ($massEmail->get('storeSentEmails')) {
if ($massEmail->get('storeSentEmails') && !$isTest) {
$this->getEntityManager()->saveEntity($email);
$emailObject = $email;
}
+1 -1
View File
@@ -45,7 +45,7 @@ class Portal extends \Espo\Core\ORM\Repositories\RDB
return $this->getInjection('config');
}
protected function afterSave(Entity $entity, array $options)
protected function afterSave(Entity $entity, array $options = array())
{
parent::afterSave($entity, $options);
+2 -2
View File
@@ -29,13 +29,13 @@
namespace Espo\Repositories;
use Espo\ORM\Entity;
use \Espo\ORM\Entity;
use \Espo\Core\Exceptions\Error;
class User extends \Espo\Core\ORM\Repositories\RDB
{
protected function beforeSave(Entity $entity, array $options)
protected function beforeSave(Entity $entity, array $options = array())
{
parent::beforeSave($entity, $options);
@@ -19,7 +19,7 @@
"Rebuild": "Rebuild",
"Teams": "Teams",
"Roles": "Roles",
"Potal": "Portal",
"Portal": "Portal",
"Portals": "Portals",
"Portal Roles": "Portal Roles",
"Outbound Emails": "Outbound Emails",
@@ -448,7 +448,8 @@
"lastYear": "Last Year",
"lastSevenDays": "Last 7 Days",
"lastXDays": "Last X Days",
"nextXDays": "Next X Days"
"nextXDays": "Next X Days",
"ever": "Ever"
},
"searchRanges": {
"is": "Is",
@@ -42,7 +42,14 @@
"Time Format": "Time Format",
"Currency": "Currency",
"Preview": "Preview",
"Next": "Next"
"Next": "Next",
"Step 1": "Step 1",
"Step 2": "Step 2",
"Double Quote": "Double Quote",
"Single Quote": "Single Quote",
"Imported": "Imported",
"Duplicates": "Duplicates",
"Updated": "Updated"
},
"messages": {
"utf8": "Should be UTF-8 encoded",
+184 -144
View File
@@ -1,146 +1,186 @@
{
"labels": {
"Enabled": "Включено",
"Disabled": "Отключено",
"System": "System",
"Users": "Пользователи",
"Email": "Email",
"Data": "Data",
"Customization": "Customization",
"Available Fields": "Available Fields",
"Layout": "Макет",
"Add Panel": "Добавить панель",
"Add Field": "Добавить поле",
"Settings": "Настройки",
"Scheduled Jobs": "Scheduled Jobs",
"Upgrade": "Upgrade",
"Clear Cache": "Очистить кэш",
"Rebuild": "Rebuild",
"Teams": "Группы",
"Roles": "Роли",
"Outbound Emails": "Outbound Emails",
"Inbound Emails": "Inbound Emails",
"Email Templates": "Email Templates",
"Import": "Импорт",
"Layout Manager": "Менеджер макетов",
"Field Manager": "Менеджер полей",
"User Interface": "Интерфейс пользователя",
"Auth Tokens": "Auth Tokens",
"Authentication": "Authentication",
"Currency": "Валюта",
"Integrations": "Интеграции",
"Extensions": "Расширения",
"Upload": "Загрузить",
"Installing...": "Установка...",
"Upgrading...": "Обновление...",
"Upgraded successfully": "Обновления успешно установлены",
"Installed successfully": "Успешно установлено",
"Ready for upgrade": "Готов к обновлению",
"Run Upgrade": "Установить обновления",
"Install": "Установить",
"Ready for installation": "Готов к установке",
"Uninstalling...": "Удаление...",
"Uninstalled": "Удалено",
"Panel Name": "Имя панели"
},
"layouts": {
"list": "Список",
"detail": "Detail",
"listSmall": "List (Small)",
"detailSmall": "Detail (Small)",
"filters": "Search Filters",
"massUpdate": "Mass Update",
"relationships": "Relationships"
},
"fieldTypes": {
"address": "Address",
"array": "Array",
"foreign": "Foreign",
"duration": "Duration",
"password": "Пароль",
"parsonName": "Person Name",
"autoincrement": "Auto-increment",
"bool": "Bool",
"currency": "Валюта",
"date": "Date",
"datetime": "DateTime",
"email": "Email",
"enum": "Enum",
"enumInt": "Enum Integer",
"enumFloat": "Enum Float",
"float": "Float",
"int": "Int",
"link": "Link",
"linkMultiple": "Link Multiple",
"linkParent": "Link Parent",
"multienim": "Multienum",
"phone": "Phone",
"text": "Text",
"url": "Url",
"varchar": "Varchar",
"file": "File",
"image": "Image",
"multiEnum": "Multi-Enum"
},
"fields": {
"type": "Тип",
"name": "Имя",
"label": "Отображаемое имя",
"required": "Обязательное поле",
"default": "По умолчанию",
"maxLength": "Максимальная длина",
"options": "Опции",
"after": "After (field)",
"before": "Before (field)",
"link": "Link",
"field": "Поле",
"min": "Минимальное значение",
"max": "Максимальное значение",
"translation": "Перевод",
"previewSize": "Размер просмотра"
},
"messages": {
"upgradeVersion": "EspoCRM будет обновлен до версии <strong>{version}</strong>. Это может занять некоторое время.",
"upgradeDone": "EspoCRM был обновлен до версии <strong>{version}</strong>. Обновите окно браузера.",
"upgradeBackup": "Мы рекомендуем перед обновлением сделать резервную копию ваших EspoCRM файлов и данных.",
"thousandSeparatorEqualsDecimalMark": "Thousand separator can not be same as decimal mark",
"userHasNoEmailAddress": "User has not email address.",
"selectEntityType": "Выберите тип сущности в меню слева.",
"selectUpgradePackage": "Выберите пакет обновления",
"downloadUpgradePackage": "Скачать необходимые обновления <a href=\"{url}\"> </a>.",
"selectLayout": "Select needed layout in the left menu and edit it.",
"selectExtensionPackage": "Выберите пакет расширения",
"extensionInstalled": "Расширение {name} {version} установлено.",
"installExtension": "Расширение {name} {version} готово к установке.",
"uninstallConfirmation": "Вы действительно хотите удалить расширение?"
},
"descriptions": {
"settings": "Системные настройки.",
"scheduledJob": "Задачи, которые выполняются с помощью cron.",
"upgrade": "Обновить EspoCRM.",
"clearCache": "Очистить весь кэш сервера.",
"rebuild": "Восстановить сервер, и очистить кэш.",
"users": "Управление пользователями.",
"teams": "Управление группами.",
"roles": "Управление ролями.",
"outboundEmails": "Настройки SMTP для исходящих писем.",
"inboundEmails": "Group IMAP email accouts. Email import and Email-to-Case.",
"emailTemplates": "Шаблоны для исходящих писем.",
"import": "Import data from CSV file.",
"layoutManager": "Customize layouts (list, detail, edit, search, mass update).",
"fieldManager": "Create new fields or customize existing ones.",
"userInterface": "Configure UI.",
"authTokens": "Active auth sessions. IP address and last access date.",
"authentication": "Настройки аутентификации.",
"currency": "Currency settings and rates.",
"extensions": "Установить или удалить расширения."
},
"options": {
"previewSize": {
"x-small": "X-Small",
"small": "Small",
"medium": "Medium",
"large": "Large"
}
"labels": {
"Enabled": "Включено",
"Disabled": "Отключено",
"System": "Система",
"Users": "Пользователи",
"Email": "Эл. почта",
"Data": "Данные",
"Customization": "Кастомизация",
"Available Fields": "Доступные поля",
"Layout": "Макет",
"Entity Manager": "Управление объектами",
"Add Panel": "Добавить панель",
"Add Field": "Добавить поле",
"Settings": "Настройки",
"Scheduled Jobs": "Планировщик заданий",
"Upgrade": "Обновить ПО",
"Clear Cache": "Очистить кэш",
"Rebuild": "Перестроить ПО",
"Teams": "Группы",
"Roles": "Роли",
"Portal": "Портал",
"Portals": "Порталы",
"Portal Roles": "Роли порталов",
"Outbound Emails": "Исходящая эл. почта",
"Group Email Accounts": "Учетные записи эл. почты групп",
"Personal Email Accounts": "Учетные записи эл. почты пользователей",
"Inbound Emails": "Входящая эл. почта",
"Email Templates": "Шаблоны эл. писем",
"Import": "Импортирование",
"Layout Manager": "Управление макетами",
"User Interface": "Интерфейс пользователя",
"Auth Tokens": "Токены сессий аутентификации",
"Authentication": "Аутентификация",
"Currency": "Валюта",
"Integrations": "Интеграции",
"Extensions": "Расширения",
"Upload": "Загрузить",
"Installing...": "Установка...",
"Upgrading...": "Обновление...",
"Upgraded successfully": "Успешно обновлено",
"Installed successfully": "Успешно установлено",
"Ready for upgrade": "Готово к обновлению",
"Run Upgrade": "Установить обновление",
"Install": "Установить",
"Ready for installation": "Готово к установке",
"Uninstalling...": "Удаление...",
"Uninstalled": "Удалено",
"Create Entity": "Создать объект",
"Edit Entity": "Редактировать объект",
"Create Link": "Создать ссылку",
"Edit Link": "Редактировать ссылку",
"Notifications": "Оповещения",
"Jobs": "Задания",
"Reset to Default": "Восстановить умолчания",
"Email Filters": "Фильтры эл. почты"
},
"layouts": {
"list": "Список",
"detail": "Детализация",
"listSmall": "Список (сжатый)",
"detailSmall": "Детализация (сжатая)",
"filters": "Фильтры поиска",
"massUpdate": "Массовое обновление",
"relationships": "Отношения"
},
"fieldTypes": {
"address": "Address",
"array": "Array",
"foreign": "Foreign",
"duration": "Duration",
"password": "Password",
"parsonName": "Person Name",
"autoincrement": "Auto-increment",
"bool": "Boolean",
"currency": "Currency",
"date": "Date",
"datetime": "DateTime",
"datetimeOptional": "Date/DateTime",
"email": "Email",
"enum": "Enum",
"enumInt": "Enum Integer",
"enumFloat": "Enum Float",
"float": "Float",
"int": "Int",
"link": "Link",
"linkMultiple": "Link Multiple",
"linkParent": "Link Parent",
"multienim": "Multienum",
"phone": "Phone",
"text": "Text",
"url": "Url",
"varchar": "Varchar",
"file": "File",
"image": "Image",
"multiEnum": "Multi-Enum",
"attachmentMultiple": "Attachment Multiple",
"rangeInt": "Range Integer",
"rangeFloat": "Range Float",
"rangeCurrency": "Range Currency",
"wysiwyg": "Wysiwyg",
"map": "Map"
},
"fields": {
"type": "Тип",
"name": "Название",
"label": "Отображаемое имя",
"required": "Обязательное поле",
"default": "По умолчанию",
"maxLength": "Максимальная длина",
"options": "Варианты",
"after": "После (поля)",
"before": "Перед (полем)",
"link": "Ссылка",
"field": "Поле",
"min": "Минимальное значение",
"max": "Максимальное значение",
"translation": "Перевод",
"previewSize": "Размер предпросмотра",
"noEmptyString": "No Empty String",
"defaultType": "Тип по умолчанию",
"seeMoreDisabled": "Disable Text Cut",
"entityList": "Список объектов",
"isSorted": "Сортировать (по алфавиту)",
"audited": "Аудит (отслеживать изменения значений)",
"trim": "Удалять лишние пробелы (Trim)",
"height": "Высота (в пикс.)",
"minHeight": "Минимальная высота (в пикс.)",
"provider": "Поставщик",
"typeList": "Список типов",
"rows": "Количество строк в текстовом поле",
"lengthOfCut": "Length of cut",
"sourceList": "Source List"
},
"messages": {
"upgradeVersion": "EspoCRM будет обновлен до версии <strong>{version}</strong>. Это может занять некоторое время.",
"upgradeDone": "EspoCRM был обновлен до версии <strong>{version}</strong>. Обновите окно браузера.",
"upgradeBackup": "Мы рекомендуем перед обновлением сделать резервную копию ваших EspoCRM файлов и данных.",
"thousandSeparatorEqualsDecimalMark": "Разделитель групп разрядов не может быть таким же как и десятичный разделитель",
"userHasNoEmailAddress": "У пользователя нет адреса эл. почты.",
"selectEntityType": "Выберите тип объекта в левом меню.",
"selectUpgradePackage": "Выберите пакет обновления",
"downloadUpgradePackage": "Загрузить пакеты обновлений можно <a href=\"{url}\">здесь</a>.",
"selectLayout": "Выберите интересующий макет в левом меню и отредактируйте его.",
"selectExtensionPackage": "Выберите пакет расширения",
"extensionInstalled": "Расширение {name} {version} было установлено.",
"installExtension": "Расширение {name} {version} готово к установке.",
"uninstallConfirmation": "Вы действительно хотите удалить это расширение?"
},
"descriptions": {
"settings": "Системные настройки.",
"scheduledJob": "Выполняемые с помощью cron задания.",
"upgrade": "Обновить EspoCRM.",
"clearCache": "Очистить кэш сервера.",
"rebuild": "Перестроить серверную часть ПО и очистить кэш сервера.",
"users": "Управление пользователями.",
"teams": "Управление группами.",
"roles": "Управление ролями.",
"portals": "Управление порталами",
"portalRoles": "Управление ролями для порталов",
"outboundEmails": "Настройки SMTP для исходящих сообщений эл. почты.",
"groupEmailAccounts": "Учетные записи эл. почты групп (IMAP). Импортирование сообщений эл. почты и автоматическая конвертация входящих эл. писем в обращения (Email-to-Case).",
"personalEmailAccounts": "Учетные записи эл. почты пользователей.",
"emailTemplates": "Шаблоны исходящих эл. писем.",
"import": "Импортирование данных из CSV файла.",
"layoutManager": "Редактирование макетов (списки, детализации, редактирование, поиск, массовое обновление).",
"entityManager": "Создание новых объектов, редактирование существующих. Управление полями и отношениями.",
"userInterface": "Настройки пользовательского интерфейса.",
"authTokens": "Активные сессии аутентификации. IP-адрес и дата последнего подключения.",
"authentication": "Настройки аутентификации.",
"currency": "Настройки и курсы валют.",
"extensions": "Установить или удалить расширения.",
"integrations": "Интеграция со сторонними сервисами.",
"notifications": "Настройка оповещений (в приложении и по эл. почте).",
"inboundEmails": "Настройки для входящих сообщений эл. почты.",
"emailFilters": "Соответствующие указанному фильтру эл. письма не будут импортированы."
},
"options": {
"previewSize": {
"x-small": "Очень маленький",
"small": "Маленький",
"medium": "Средний",
"large": "Большой"
}
}
}
}
@@ -0,0 +1,5 @@
{
"insertFromSourceLabels": {
"Document": "Вставить документ"
}
}
@@ -1,9 +1,8 @@
{
"fields": {
"user": "Пользователь",
"ipAddress": "IP -адрес",
"lastAccess": "Дата последнего подключения",
"createdAt": "Дата входа"
}
}
"fields": {
"user": "Пользователь",
"ipAddress": "IP-адрес",
"lastAccess": "Дата последнего подключения",
"createdAt": "Дата входа"
}
}
@@ -1,10 +1,19 @@
{
"fields": {
"title": "Название",
"dateFrom": "Дата от",
"dateTo": "Дата к",
"autorefreshInterval": "Интервал авто-обновления",
"displayRecords": "Отобразить записи",
"isDoubleHeight": "Высота 2x"
"fields": {
"title": "Название",
"dateFrom": "Дата от",
"dateTo": "Дата по",
"autorefreshInterval": "Интервал автообновления",
"displayRecords": "Отображать записей",
"isDoubleHeight": "Высота 2x",
"mode": "Режим",
"enabledScopeList": "Что отображать"
},
"options": {
"mode": {
"agendaWeek": "Неделя (расписание)",
"basicWeek": "Неделя",
"month": "Месяц"
}
}
}
}
@@ -1,51 +1,91 @@
{
"fields": {
"name": "Тема",
"parent": "Источник",
"status": "статус",
"dateSent": "Дата отправки",
"from": "От",
"to": "К",
"cc": "CC",
"bcc": "BCC",
"isHtml": "Html",
"body": "Тело",
"subject": "Тема",
"attachments": "Вложения",
"selectTemplate": "Выбрать шаблон",
"fromEmailAddress": "С адреса",
"toEmailAddresses": "На андрес",
"emailAddress": "E-mail адрес",
"deliveryDate": "Дата доставки"
},
"links": {
},
"options": {
"Draft": "Черновик",
"Sending": "Отправляется",
"Sent": "Отправлено",
"Archived": "В архиве"
},
"labels": {
"Create Email": "Отправить письмо в архив",
"Archive Email": "Отправить письмо в архив",
"Compose": "Новое сообщение",
"Reply": "Ответить",
"Reply to All": "Ответить всем",
"Forward": "Переслать",
"Original message": "Оригинал сообщение",
"Forwarded message": "Forwarded message",
"Email Accounts": "Email Accounts",
"Send Test Email": "Отправить тестовое сообщение",
"Send": "Отправить",
"Email Address": "E-mail адрес"
},
"messages": {
"noSmtpSetup": "No SMTP setup. {link}.",
"testEmailSent": "Test email has been sent"
},
"presetFilters": {
"sent": "Отправлено",
"archived": "В архиве"
"fields": {
"name": "Тема",
"parent": "Источник",
"status": "Статус",
"dateSent": "Дата отправки",
"from": "От",
"to": "Кому",
"cc": "Копия (Cc)",
"bcc": "Слепая копия (Bcc)",
"replyTo": "Ответить",
"replyToString": "Reply To (String)",
"isHtml": "HTML",
"body": "Тело",
"subject": "Тема",
"attachments": "Вложения",
"selectTemplate": "Выбрать шаблон",
"fromEmailAddress": "Адрес отправителя",
"toEmailAddresses": "Адрес получателя",
"emailAddress": "Адрес эл. почты",
"deliveryDate": "Дата доставки",
"account": "Контрагент",
"users": "Пользователи",
"replied": "Replied",
"replies": "Replies",
"isRead": "Is Read",
"isNotRead": "Is Not Read",
"isImportant": "Is Important",
"isUsers": "Is User's",
"inTrash": "In Trash"
},
"links": {
"replied": "Replied",
"replies": "Replies"
},
"options": {
"status": {
"Draft": "Черновик",
"Sending": "Отправляется",
"Sent": "Отправлено",
"Archived": "В архиве",
"Received": "Получено",
"Failed": "Сбой"
}
}
},
"labels": {
"Create Email": "Отправить эл. письмо в архив",
"Archive Email": "Отправить эл. письмо в архив",
"Compose": "Новое сообщение",
"Reply": "Ответить",
"Reply to All": "Ответить всем",
"Forward": "Переслать",
"Original message": "Оригинальное сообщение",
"Forwarded message": "Пересылаемое сообщение",
"Email Accounts": "Учетные записи эл. почты пользователей",
"Inbound Emails": "Учетные записи эл. почты групп",
"Email Templates": "Шаблоны эл. писем",
"Send Test Email": "Отправить тестовое эл. письмо",
"Send": "Отправить",
"Email Address": "Адрес эл. почты",
"Mark Read": "Пометить как прочитанное",
"Sending...": "Отправляется...",
"Save Draft": "Сохранить черновик",
"Mark all as read": "Пометить все как прочитанные",
"Show Plain Text": "Show Plain Text",
"Mark as Important": "Пометить как важное",
"Unmark Importance": "Снять пометку важности",
"Move to Trash": "Переместить в корзину",
"Retrieve from Trash": "Восстановить из корзины"
},
"messages": {
"noSmtpSetup": "Не настроен SMTP. {link}.",
"testEmailSent": "Тестовое эл. письмо было отправлено",
"emailSent": "Эл. письмо было отправлено",
"savedAsDraft": "Сохранено как черновик"
},
"presetFilters": {
"sent": "Отправленные",
"archived": "В архиве",
"inbox": "Входящие",
"drafts": "Черновики",
"trash": "Корзина"
},
"massActions": {
"markAsRead": "Пометить как прочитанное",
"markAsNotRead": "Пометить как не прочитанное",
"markAsImportant": "Пометить как важное",
"markAsNotImportant": "Снять пометку важности",
"moveToTrash": "Переместить в корзину"
}
}
@@ -1,29 +1,40 @@
{
"fields": {
"name": "Name",
"status": "статус",
"host": "Host",
"username": "Username",
"password": "Пароль",
"port": "Порт",
"monitoredFolders": "Отслеживаемые разделы",
"ssl": "SSL",
"fetchSince": "Fetch Since"
},
"links": {
},
"options": {
"status": {
"Active": "Активный",
"Inactive": "Неактивный"
}
},
"labels": {
"Create EmailAccount": "Create Email Account",
"IMAP": "IMAP",
"Main": "Main"
},
"messages": {
"couldNotConnectToImap": "Не получается подключиться к серверу IMAP"
"fields": {
"name": "Название",
"status": "Статус",
"host": "Сервер",
"username": "Имя пользователя",
"password": "Пароль",
"port": "Порт",
"monitoredFolders": "Отслеживаемые папки",
"ssl": "SSL",
"fetchSince": "Получить эл. письма начиная с",
"emailAddress": "Адрес эл. почты",
"sentFolder": "Папка 'Отправленные'",
"storeSentEmails": "Сохранять отправленные эл. письма",
"keepFetchedEmailsUnread": "Оставлять полученные эл. письма непрочитанными"
},
"links": {
"filters": "Фильтры"
},
"options": {
"status": {
"Active": "Активная",
"Inactive": "Неактивная"
}
}
},
"labels": {
"Create EmailAccount": "Создать учетную запись эл. почты",
"IMAP": "IMAP",
"Main": "Основное",
"Test Connection": "Проверка соединения"
},
"messages": {
"couldNotConnectToImap": "Не удалось соединиться с IMAP сервером",
"connectionIsOk": "Соединение с IMAP сервером прошло удачно"
},
"tooltips": {
"monitoredFolders": "Можете добавить папку 'Отправленные' для синхронизации эл. писем отправленных из внешнего клиента эл. почты.",
"storeSentEmails": "Отправленные эл. письма будут храниться на IMAP сервере. Адрес эл. почты должен соответствовать адресу с которого производится отправка."
}
}
@@ -1,7 +1,7 @@
{
"labels": {
"Primary": "Главные",
"Opted Out": "Отписка",
"Invalid": "Неверный адрес"
}
}
"labels": {
"Primary": "Основной",
"Opted Out": "Отписан",
"Invalid": "Неверный адрес"
}
}
@@ -0,0 +1,19 @@
{
"fields": {
"from": "От",
"to": "Кому",
"subject": "Тема",
"bodyContains": "Тело письма содержит"
},
"labels": {
"Create EmailFilter": "Создать фильтр эл. почты"
},
"tooltips": {
"name": "Просто название фильтра.",
"subject": "Используйте символ *:\n\nтекст* - начинается с текста,\n*текст* - содержит текст,\n*текст - заканчивается текстом.",
"bodyContains": "Тело эл. письма содержит любое из указанных слов или фраз.",
"from": "Письма отправленные с указанного адреса. Оставьте пустым, если не требуется. Можете использовать специальный символ *.",
"to": "Письма отправленные на указанный адрес. Оставьте пустым, если не требуется. Можете использовать специальный символ *.",
"parent": "Оставьте это поле пустым, чтобы применить этот фильтр на глобальном уровне (для всех входящих сообщений эл. почты)."
}
}
@@ -1,16 +1,25 @@
{
"fields": {
"name": "Name",
"status": "статус",
"isHtml": "Html",
"body": "Тело",
"subject": "Тема",
"attachments": "Вложения",
"insertField": ""
},
"links": {
},
"labels": {
"Create EmailTemplate": "Создать шаблон письма"
}
}
"fields": {
"name": "Название",
"status": "Статус",
"isHtml": "HTML",
"body": "Тело",
"subject": "Тема",
"attachments": "Вложения",
"insertField": "Вставить поле",
"oneOff": "Одноразовый"
},
"labels": {
"Create EmailTemplate": "Создать шаблон эл. письма",
"Info": "Информация"
},
"messages": {
"infoText": "Доступные переменные:\n\n{optOutUrl} &#8211; URL ссылки отписки;\n\n{optOutLink} &#8211; ссылка отписки."
},
"tooltips": {
"oneOff": "Отметьте если собираетесь использовать этот шаблон только один раз. К примеру для массовой рассылки эл. писем."
},
"presetFilters": {
"actual": "Актуальный"
}
}
@@ -0,0 +1,49 @@
{
"labels": {
"Fields": "Поля",
"Relationships": "Отношения"
},
"fields": {
"name": "Название",
"type": "Тип",
"labelSingular": "Метка (единственное число)",
"labelPlural": "Метка (множественное число)",
"stream": "Лента",
"label": "Метка",
"linkType": "Link Type",
"entityForeign": "Foreign Entity",
"linkForeign": "Foreign Link",
"link": "Link",
"labelForeign": "Foreign Label",
"sortBy": "Сортировка (поле)",
"sortDirection": "Сортировка (направление)",
"relationName": "Middle Table Name",
"linkMultipleField": "Link Multiple Field",
"linkMultipleFieldForeign": "Foreign Link Multiple Field",
"disabled": "Disabled"
},
"options": {
"type": {
"": "Нет",
"Base": "Base",
"Person": "Person",
"CategoryTree": "Category Tree"
},
"linkType": {
"manyToMany": "Many-to-Many",
"oneToMany": "One-to-Many",
"manyToOne": "Many-to-One",
"parentToChildren": "Parent-to-Children",
"childrenToParent": "Children-to-Parent"
},
"sortDirection": {
"asc": "По возрастанию",
"desc": "По убыванию"
}
},
"messages": {
"entityCreated": "Объект был создан",
"linkAlreadyExists": "Конфликт названий связей (link).",
"linkConflict": "Связь (link) с таким названием уже существует."
}
}
@@ -1,15 +1,15 @@
{
"fields": {
"name": "Name",
"version": "Версия",
"description": "Описание",
"isInstalled": "Установлен"
},
"labels": {
"Uninstall": "Удалить",
"Install": "Установить"
},
"messages": {
"uninstalled": "Расширение {name} удалено"
}
}
"fields": {
"name": "Название",
"version": "Версия",
"description": "Описание",
"isInstalled": "Установлено"
},
"labels": {
"Uninstall": "Удалить",
"Install": "Установить"
},
"messages": {
"uninstalled": "Расширение {name} было удалено"
}
}
@@ -1,8 +1,6 @@
{
"labels": {
"Connect": "Connect",
"Connected": "Connected"
},
"help": {
}
}
"labels": {
"Connect": "Подключить",
"Connected": "Подключено"
}
}
File diff suppressed because it is too large Load Diff
@@ -1,15 +1,63 @@
{
"labels": {
"Revert": "Revert",
"Return to Import": "Return to Import",
"Run Import": "Импортировать",
"Back": "Back",
"Field Mapping": "Field Mapping",
"Default Values": "Default Values",
"Add Field": "Add Field",
"Created": "Создано",
"Updated": "Updated",
"Result": "Result",
"Show records": "Show records"
}
}
"labels": {
"Revert Import": "Обратить импортирование",
"Return to Import": "Вернуться к импортированию",
"Run Import": "Импортировать",
"Back": "Назад",
"Field Mapping": "Сопоставление полей",
"Default Values": "Значения по умолчанию",
"Add Field": "Добавить поле",
"Created": "Создано",
"Updated": "Обновлено",
"Result": "Результат",
"Show records": "Показать записи",
"Remove Duplicates": "Убрать дубликаты",
"importedCount": "Импортировано: (count)",
"duplicateCount": "Дубликатов: (count)",
"updatedCount": "Обновлено: (count)",
"Create Only": "Только создать",
"Create and Update": "Создать и обновить",
"Update Only": "Только обновить",
"Update by": "Обновить по",
"Set as Not Duplicate": "Пометить как не дубликат",
"File (CSV)": "Файл (CSV)",
"First Row Value": "Значение из первой строки",
"Skip": "Пропустить",
"Header Row Value": "Значение из строки заголовка",
"Field": "Поле",
"What to Import?": "Что импортировать?",
"Entity Type": "Тип объекта",
"What to do?": "Что делать?",
"Properties": "Свойства",
"Header Row": "Есть строка заголовков",
"Person Name Format": "Формат личных имен",
"John Smith": "Имя Фамилия",
"Smith John": "Фамилия Имя",
"Smith, John": "Фамилия, Имя",
"Field Delimiter": "Разделитель полей",
"Date Format": "Формат даты",
"Decimal Mark": "Десятичный разделитель",
"Text Qualifier": "Спецификатор текста",
"Time Format": "Формат времени",
"Currency": "Валюта",
"Preview": "Предпросмотр",
"Next": "Далее",
"Step 1": "Шаг 1",
"Step 2": "Шаг 2",
"Double Quote": "Двойные кавычки",
"Single Quote": "Одиночные кавычки",
"Imported": "Импортировано",
"Duplicates": "Дубликатов"
},
"messages": {
"utf8": "Должен быть в кодировке UTF-8",
"duplicatesRemoved": "Дубликаты убраны"
},
"fields": {
"file": "Файл",
"entityType": "Тип объекта",
"imported": "Импортированные записи",
"duplicates": "Дубликаты",
"updated": "Обновленные записи"
}
}
@@ -0,0 +1,60 @@
{
"fields": {
"name": "Название",
"emailAddress": "Адрес эл. почты",
"team": "Группа",
"status": "Статус",
"assignToUser": "Назначить пользователю",
"host": "Сервер",
"username": "Имя пользователя",
"password": "Пароль",
"port": "Порт",
"monitoredFolders": "Отслеживаемые папки",
"trashFolder": "Корзина",
"ssl": "SSL",
"createCase": "Создавать обращения",
"reply": "Автоответчик",
"caseDistribution": "Распределение обращений",
"replyEmailTemplate": "Ответить по шаблону",
"replyFromAddress": "Адрес отправителя",
"replyToAddress": "Обратный адрес",
"replyFromName": "Имя отправителя",
"targetUserPosition": "Должность (положение в группе) пользователя",
"fetchSince": "Получить эл. письма начиная с",
"addAllTeamUsers": "Для всех пользователей группы"
},
"tooltips": {
"reply": "Уведомлять отправителей, что их эл. письма были получены.\n\n Чтобы предотвратить зацикливание только одно эл. письмо будет отправлено конкретному получателю в течение некоторого периода времени.",
"createCase": "Автоматически создавать обращения из входящих эл. писем",
"replyToAddress": "Укажите адрес этого ящика эл. почты, чтобы ответы приходили на него.",
"caseDistribution": "Как будут назначаться обращения: непосредственно пользователю или распределяться среди группы.",
"assignToUser": "Эл. письма и обращения будут назначаться этому пользователю.",
"team": "Эл. письма и обращения будут относиться к этой группе.",
"targetUserPosition": "Определите должность (положение в группе) пользователей среди которых будут распределяться обращения.",
"addAllTeamUsers": "Эл. письма бдут появляться в папке 'Входящие' всех пользователей указанной группы."
},
"links": {
"filters": "Фильтры"
},
"options": {
"status": {
"Active": "Активная",
"Inactive": "Неактивная"
},
"caseDistribution": {
"": "Нет",
"Direct-Assignment": "Прямое назначение",
"Round-Robin": "По круговому циклу",
"Least-Busy": "Наименее занятому"
}
},
"labels": {
"Create InboundEmail": "Создать учетную запись эл. почты",
"IMAP": "IMAP",
"Actions": "Действия",
"Main": "Основное"
},
"messages": {
"couldNotConnectToImap": "Не удалось соединиться с IMAP сервером"
}
}
@@ -1,14 +1,15 @@
{
"fields": {
"enabled": "Enabled",
"clientId": "Client ID",
"clientSecret": "Client Secret",
"redirectUri": "Redirect URI"
},
"messages": {
"selectIntegration": "Select an integration in menu."
},
"help": {
"Google": "<p><b>Obtain OAuth 2.0 credentials from the Google Developers Console.</b></p><p>Visit <a href=\"https://console.developers.google.com/project\">Google Developers Console</a> to obtain OAuth 2.0 credentials such as a Client ID and Client Secret that are known to both Google and EspoCRM application.</p>"
}
}
"fields": {
"enabled": "Включено",
"clientId": "Идентификатор клиента (Client ID)",
"clientSecret": "Секретный ключ (Client Secret)",
"redirectUri": "URI перенаправления (Redirect URI)"
},
"messages": {
"selectIntegration": "Выберите интерацию из меню.",
"noIntegrations": "Нет доступных интергаций."
},
"help": {
"Google": "<p><b>Получите учетные данные OAuth 2.0 из консоли разработчика Google.</b></p><p>Посетите <a href=\"https://console.developers.google.com/project\">консоль разработчика Google</a> для получения учетных данных OAuth 2.0 таких как Client ID и Client Secret.</p></p>"
}
}
@@ -0,0 +1,20 @@
{
"fields": {
"status": "Статус",
"executeTime": "Выполнено в",
"attempts": "Осталось попыток",
"failedAttempts": "Неудачных попыток",
"serviceName": "Сервис",
"method": "Метод",
"scheduledJob": "Задание планировщика",
"data": "Данные"
},
"options": {
"status": {
"Pending": "В ожидании",
"Success": "Успех",
"Running": "Выполняется",
"Failed": "Сбой"
}
}
}
@@ -0,0 +1,14 @@
{
"fields": {
"width": "Ширина (%)",
"link": "Ссылка",
"notSortable": "Не сортируемый",
"align": "Выровнять"
},
"options": {
"align": {
"left": "по левому краю",
"right": "по правому краю"
}
}
}
@@ -1,6 +1,27 @@
{
"fields": {
"post": "Разместить",
"attachments": "Вложения"
"fields": {
"post": "Разместить",
"attachments": "Вложения",
"targetType": "Цель",
"teams": "Группы",
"users": "Пользователи",
"portals": "Порталы"
},
"filters": {
"all": "Все",
"posts": "Сообщения",
"updates": "Обновления"
},
"options": {
"targetType": {
"self": "Себе",
"users": "Определенному пользователю или пользователям",
"teams": "Определенной группе или группам",
"all": "Всем пользователям",
"portals": "Всем пользователям портала"
}
}
},
"messages": {
"writeMessage": "Напишите Ваше сообщение здесь"
}
}
@@ -0,0 +1,35 @@
{
"fields": {
"name": "Название",
"logo": "Логотип",
"companyLogo": "Логотип",
"url": "URL",
"portalRoles": "Роли",
"isActive": "Активный",
"isDefault": "Портал по умолчанию",
"tabList": "Список вкладок",
"quickCreateList": "Список для быстрого создания",
"theme": "Тема",
"language": "Язык",
"dashboardLayout": "Планировка панели виджетов",
"dateFormat": "Формат даты",
"timeFormat": "Формат времени",
"timeZone": "Часовой пояс",
"weekStart": "Первый день недели",
"defaultCurrency": "Валюта по умолчанию"
},
"links": {
"users": "Пользователи",
"portalRoles": "Роли",
"notes": "Заметки"
},
"tooltips": {
"portalRoles": "Указанные роли портала будут применены ко всем пользователям портала."
},
"labels": {
"Create Portal": "Создать портал",
"User Interface": "Интерфейс пльзователя",
"General": "Основное",
"Settings": "Настройки"
}
}
@@ -0,0 +1,11 @@
{
"links": {
"users": "Пользователи"
},
"labels": {
"Access": "Доступ",
"Create PortalRole": "Создать роль портала",
"Scope Level": "Scope Level",
"Field Level": "Field Level"
}
}
@@ -1,37 +1,47 @@
{
"fields": {
"dateFormat": "Формат даты",
"timeFormat": "Формат времени",
"timeZone": "Часовой пояс",
"weekStart": "Первый день недели",
"thousandSeparator": "Разделитель разрядов(тысячные)",
"decimalMark": "Десятичный знак",
"defaultCurrency": "Валюта по умолчанию",
"currencyList": "Список валют",
"language": "Язык",
"smtpServer": "Сервер",
"smtpPort": "Порт",
"smtpAuth": "Авторизация",
"smtpSecurity": "Безопасность",
"smtpUsername": "Username",
"emailAddress": "Email",
"smtpPassword": "Пароль",
"smtpEmailAddress": "E-mail адрес",
"exportDelimiter": "Разделитель (Перемещение)",
"receiveAssignmentEmailNotifications": "Получать уведомления при назначении"
},
"links": {
},
"options": {
"weekStart": {
"0": "Воскресенье",
"1": "Понедельник"
}
},
"labels": {
"Notifications": "Оповещения"
"fields": {
"dateFormat": "Формат даты",
"timeFormat": "Формат времени",
"timeZone": "Часовой пояс",
"weekStart": "Первый день недели",
"thousandSeparator": "Разделитель групп разрядов",
"decimalMark": "Десятичный разделитель",
"defaultCurrency": "Валюта по умолчанию",
"currencyList": "Список валют",
"language": "Язык",
"smtpServer": "Сервер",
"smtpPort": "Порт",
"smtpAuth": "Аутентификация",
"smtpSecurity": "Безопасность",
"smtpUsername": "Имя пользователя",
"emailAddress": "Адрес эл. почты",
"smtpPassword": "Пароль",
"smtpEmailAddress": "Адрес эл. почты",
"exportDelimiter": "Разделитель полей при экспортировании",
"receiveAssignmentEmailNotifications": "Получать оповещения по эл. почте при назначении",
"autoFollowEntityTypeList": "Автоподписка",
"signature": "Подпись к эл. письмам",
"dashboardTabList": "Список вкладок",
"tabList": "Список вкладок",
"defaultReminders": "Напоминания по умолчанию.",
"theme": "Тема",
"useCustomTabList": "Настраиваемый список вкладок",
"emailReplyToAllByDefault": "Email Reply to All by Default"
},
"options": {
"weekStart": {
"0": "Воскресенье",
"1": "Понедельник"
}
}
},
"labels": {
"Notifications": "Оповещения",
"User Interface": "Интерфейс пльзователя",
"SMTP": "SMTP",
"Misc": "Разное",
"Locale": "Локаль"
},
"tooltips": {
"autoFollowEntityTypeList": "Пользователь будет автоматически подисан на все новые записи о выбранных типах объектов, будет видеть эту информацию в ленте и получать оповещения."
}
}
+48 -32
View File
@@ -1,35 +1,51 @@
{
"fields": {
"name": "Имя",
"roles": "Роли"
"fields": {
"name": "Название",
"roles": "Роли",
"assignmentPermission": "Assignment Permission",
"userPermission": "User Permission",
"portalPermission": "Portal Permission"
},
"links": {
"users": "Пользователи",
"teams": "Группы"
},
"tooltips": {
"assignmentPermission": "Позволяет ограничить возможность назначать задания и отправлять сообщения другим пользователям.\n\nвсе - без ограничений\n\nгруппа - могут назначать задания и отправлять сообщения только членам своей группы\n\nнет - могут назначать задания и отправлять сообщения только себе",
"userPermission": "Позволяет ограничить возможности пользователей просматривать деятельность, календарь и ленту других пользователей.\n\nвсе - могут просматривать\n\nгруппа - могут просматривать деятельность только членов своей группы\n\nнет - не могут просматривать",
"portalPermission": "Определяет доступ к информации портала, способность преобразовывать контакты в пользователей портала и отправлять сообщения пользователям портала."
},
"labels": {
"Access": "Доступ",
"Create Role": "Создать роль",
"Scope Level": "Scope Level",
"Field Level": "Field Level"
},
"options": {
"accessList": {
"not-set": "не установлено",
"enabled": "включено",
"disabled": "отключено"
},
"links": {
"users": "Пользователи",
"teams": "Группы"
},
"labels": {
"Access": "Доступ",
"Create Role": "Создать роль"
},
"options": {
"accessList": {
"not-set": "не установлен",
"enabled": "включен",
"disabled": "отключен"
},
"levelList": {
"all": "все",
"team": "группа",
"own": "принадлежит",
"no": "нет"
}
},
"actions": {
"read": "Чтение",
"edit": "Редактировать",
"delete": "Удалить"
},
"messages": {
"changesAfterClearCache": "Все изменения применятся только после очистки кэша."
"levelList": {
"all": "все",
"team": "группа",
"account": "контрагент",
"contact": "контакт",
"own": "владелец",
"no": "нет",
"yes": "да",
"not-set": "не установлено"
}
}
},
"actions": {
"read": "Чтение",
"edit": "Редактирование",
"delete": "Удаление",
"stream": "Лента",
"create": "Создать"
},
"messages": {
"changesAfterClearCache": "Все изменения применятся только после очистки кэша."
}
}
@@ -1,30 +1,36 @@
{
"fields": {
"name": "Name",
"status": "статус",
"job": "Работа",
"scheduling": "Планирование (crontab notation)"
"fields": {
"name": "Название",
"status": "Статус",
"job": "Задание",
"scheduling": "Планирование"
},
"links": {
"log": "Лог"
},
"labels": {
"Create ScheduledJob": "Создать задание"
},
"options": {
"job": {
"Cleanup": "Очистка",
"CheckInboundEmails": "Проверка входящей эл. почты групп",
"CheckEmailAccounts": "Проверка входящей эл. почты пользователей",
"SendEmailReminders": "Отправка напоминаний по эл. почте",
"AuthTokenControl": "Контроль за токенами аутентификации"
},
"links": {
"log": "Лог"
"cronSetup": {
"linux": "Заметка: Добавьте эту строку в crontab для запуска планировщика заданий Espo:",
"mac": "Заметка: Добавьте эту строку в crontab для запуска планировщика заданий Espo:",
"windows": "Заметка: Создайте пакетный файл со следующими командами для запуска планировщика заданий Espo используя планировщик заданий Windows:",
"default": "Заметка: Добавьте эту команду в Cron (Планировщик заданий):"
},
"labels": {
"Create ScheduledJob": "Создать периодическую работу"
},
"options": {
"job": {
"CheckInboundEmails": "Проверить входящую почту",
"Cleanup": "Очистить"
},
"cronSetup": {
"linux": "Заметка: Добавьте эту строку в crontab - файл для запуска Планировщика Работ Espo:",
"mac": "Заметка: Добавьте эту строку в crontab - файл для запуска Планировщика Работ Espo:",
"windows": "Заметка: Создайте пакетный файл со следующими командами для запуска Планировщика Работ Espo, используя Планировщик задач Windows:",
"default": "Заметка: Добавьте эту команду в Cron-Работа (Планировщик задач):"
},
"status": {
"Active": "Активный",
"Inactive": "Неактивный"
}
"status": {
"Active": "Активно",
"Inactive": "Неактивно"
}
}
},
"tooltips": {
"scheduling": "Определяет периодичность выполнения задания.\n\n*/5 * * * * - каждые 5 минут\n\n0 */2 * * * - каждые 2 часа\n\n30 1 * * * - каждый день один раз в 01:30\n\n0 0 1 * * - каждый первый день месяца"
}
}
@@ -1,6 +1,6 @@
{
"fields": {
"status": "статус",
"executionTime": "Время запуска"
}
}
"fields": {
"status": "Статус",
"executionTime": "Время запуска"
}
}
@@ -1,77 +1,95 @@
{
"fields": {
"useCache": "Использовать кэш",
"dateFormat": "Формат даты",
"timeFormat": "Формат времени",
"timeZone": "Часовой пояс",
"weekStart": "Первый день недели",
"thousandSeparator": "Разделитель разрядов(тысячные)",
"decimalMark": "Десятичный знак",
"defaultCurrency": "Валюта по умолчанию",
"baseCurrency": "Базовая валюта",
"currencyRates": "Курсы обмена",
"currencyList": "Список валют",
"language": "Язык",
"companyLogo": "Логотип компании",
"smtpServer": "Сервер",
"smtpPort": "Порт",
"smtpAuth": "Авторизация",
"smtpSecurity": "Безопасность",
"smtpUsername": "Username",
"emailAddress": "Email",
"smtpPassword": "Пароль",
"outboundEmailFromName": "От имени",
"outboundEmailFromAddress": "С адреса",
"outboundEmailIsShared": "Может использоваться всеми пользователями",
"recordsPerPage": "Показывать по страницам",
"recordsPerPageSmall": "Показывать по страницам (Мелкий)",
"tabList": "Вкладки",
"quickCreateList": "Быстрое создание списка",
"exportDelimiter": "Разделитель (Перемещение)",
"authenticationMethod": "Метод аутентификации",
"ldapHost": "Host",
"ldapPort": "Порт",
"ldapAuth": "Авторизация",
"ldapUsername": "Username",
"ldapPassword": "Пароль",
"ldapBindRequiresDn": "Привязка по домену",
"ldapBaseDn": "Базовый домен",
"ldapAccountCanonicalForm": "Стандартная форма учетной записи",
"ldapAccountDomainName": "Доменное имя учетной записи",
"ldapTryUsernameSplit": "Попробовать имя пользователя Split",
"ldapCreateEspoUser": "Создать пользователя в EspoCRM",
"ldapSecurity": "Безопасность",
"ldapUserLoginFilter": "Фильтер пользовательской авторизации",
"ldapAccountDomainNameShort": "Краткая учетная запись домена",
"ldapOptReferrals": "Opt Referrals",
"exportDisabled": "Отмена экпортирования (доступно только администратору)",
"assignmentEmailNotifications": "Оповещать по email при назначении",
"assignmentEmailNotificationsEntityList": "Список вещей для оповещения",
"b2cMode": "B2C Mode"
},
"options": {
"weekStart": {
"0": "Воскресенье",
"1": "Понедельник"
}
},
"tooltips": {
"recordsPerPageSmall": "Число записей в панелях связей."
},
"labels": {
"System": "System",
"Locale": "Локальные настройки",
"SMTP": "SMTP",
"Configuration": "Конфигурация",
"Notifications": "Оповещения",
"Currency Settings": "Настройки валюты",
"Currency Rtes": "Курсы обмена валюты"
"fields": {
"useCache": "Использовать кэш",
"dateFormat": "Формат даты",
"timeFormat": "Формат времени",
"timeZone": "Часовой пояс",
"weekStart": "Первый день недели",
"thousandSeparator": "Разделитель групп разрядов",
"decimalMark": "Десятичный разделитель",
"defaultCurrency": "Валюта по умолчанию",
"baseCurrency": "Базовая валюта",
"currencyRates": "Курсы обмена",
"currencyList": "Список валют",
"language": "Язык",
"companyLogo": "Логотип компании",
"smtpServer": "Сервер",
"smtpPort": "Port",
"ldapPort": "Port",
"smtpAuth": "Auth",
"ldapAuth": "Auth",
"smtpSecurity": "Security",
"ldapSecurity": "Security",
"smtpUsername": "Username",
"ldapUsername": "Username",
"emailAddress": "Адрес эл. почты",
"smtpPassword": "Password",
"ldapPassword": "Password",
"outboundEmailFromName": "Имя отправителя",
"outboundEmailFromAddress": "Адрес отправителя",
"outboundEmailIsShared": "Может использоваться всеми пользователями",
"recordsPerPage": "Записей на страницу",
"recordsPerPageSmall": "Записей на страницу (сжатый вид)",
"tabList": "Список вкладок",
"quickCreateList": "Список для быстрого создания",
"exportDelimiter": "Разделитель полей при экспортировании",
"globalSearchEntityList": "Список объектов глобального поиска",
"authenticationMethod": "Метод аутентификации",
"ldapHost": "Host",
"ldapBindRequiresDn": "Bind Requires Dn",
"ldapBaseDn": "Base Dn",
"ldapAccountCanonicalForm": "Account Canonical Form",
"ldapAccountDomainName": "Account Domain Name",
"ldapTryUsernameSplit": "Try Username Split",
"ldapCreateEspoUser": "Create User in EspoCRM",
"ldapUserLoginFilter": "User Login Filter",
"ldapAccountDomainNameShort": "Account Domain Name Short",
"ldapOptReferrals": "Opt Referrals",
"exportDisabled": "Отключение возможности экпортирования (будет доступно только администратору)",
"assignmentNotificationsEntityList": "Объекты для оповещения при назначении",
"assignmentEmailNotifications": "Оповещать по эл. почте при назначении",
"assignmentEmailNotificationsEntityList": "Объекты для оповещения по эл. почте при назначении",
"b2cMode": "Режим B2C",
"avatarsDisabled": "Отключить использование аватар",
"followCreatedEntities": "Подписываться на создаваемые объекты",
"displayListViewRecordCount": "Показывать общее количество (при отображении в виде списка)",
"theme": "Тема",
"userThemesDisabled": "Отключить использование пользовательских тем",
"emailMessageMaxSize": "Максимальный размер эл. письма (в Мб)",
"massEmailMaxPerHourCount": "Максимальное число отсылаемых в час эл. писем",
"personalEmailMaxPortionSize": "Max email portion size for a personal account fetching",
"inboundEmailMaxPortionSize": "Max email portion size for a group account fetching",
"maxEmailAccountCount": "Максимальное число персональных учетных записей эл. почты для пользователя",
"authTokenLifetime": "Время жизни токена аутентификации (в часах)",
"authTokenMaxIdleTime": "Максимальный срок простоя токена аутентификации (в часах)",
"dashboardLayout": "Планировка панели виджетов (по умолчанию)",
"siteUrl": "URL сайта"
},
"options": {
"weekStart": {
"0": "Воскресенье",
"1": "Понедельник"
}
}
},
"tooltips": {
"recordsPerPage": "Число изначально отображаемых записей в виде списка",
"recordsPerPageSmall": "Число записей в связанных панелях.",
"outboundEmailIsShared": "Разрешить пользователям отправлять эл. письма через этот SMTP.",
"followCreatedEntities": "Пользователи будут автоматически подписаны на создаваемые ими записи.",
"emailMessageMaxSize": "Все входящие эл. письма, размер которых превышает заданный, будут пропущены.",
"authTokenLifetime": "Определяет сколько времени могут существовать токены.\n0 - без ограничений.",
"authTokenMaxIdleTime": "Определяет как долго с момента последнего подключения могут существовать токены.\n0 - без ограничений.",
"userThemesDisabled": "Если отмечено, то пользователи не смогут выбрать другую тему."
},
"labels": {
"System": "Система",
"Locale": "Локаль",
"SMTP": "SMTP",
"Configuration": "Конфигурация",
"In-app Notifications": "Оповещения в приложении",
"Email Notifications": "Оповещения по эл. почте",
"Currency Settings": "Настройки валют",
"Currency Rates": "Курсы обмена валют",
"Mass Email": "Массовая рассылка эл. писем"
}
}
+18 -16
View File
@@ -1,17 +1,19 @@
{
"fields": {
"name": "Имя",
"roles": "Роли",
"positionList": "Список должностей"
},
"links": {
"users": "Пользователи"
},
"tooltips": {
"roles": "Все пользователи этой команды получат настройки доступа из выбранных ролей.",
"positionList": "Имеющиеся должности в этой группе. Например, продавец, менеджер."
},
"labels": {
"Create Team": "Создать группу"
}
}
"fields": {
"name": "Название",
"roles": "Роли",
"positionList": "Список должностей"
},
"links": {
"users": "Пользователи",
"notes": "Заметки",
"roles": "Роли"
},
"tooltips": {
"roles": "Роли доступа. Пользователи этой группы получают права доступа исходя из выбранных ролей.",
"positionList": "Имеющиеся в этой группе должности. Например продавец, менеджер."
},
"labels": {
"Create Team": "Создать группу"
}
}
@@ -0,0 +1,21 @@
{
"fields": {
"name": "Название",
"body": "Тело",
"entityType": "Тип объекта",
"header": "Шапка",
"footer": "Подвал",
"leftMargin": "Левый отступ",
"topMargin": "Верхний отступ",
"rightMargin": "Правый отступ",
"bottomMargin": "Нижний отступ",
"printFooter": "Отображать подвал",
"footerPosition": "Положение подвала"
},
"labels": {
"Create Template": "Создать шаблон"
},
"tooltips": {
"footer": "Используйте {pageNumber} для отображения номера страницы."
}
}
+83 -36
View File
@@ -1,37 +1,84 @@
{
"fields": {
"name": "Имя",
"userName": "Имя пользователя",
"title": "Должность",
"isAdmin": "Права администратора",
"defaultTeam": "Группа по умолчанию",
"emailAddress": "Email",
"phoneNumber": "Номер телефона",
"roles": "Роли",
"password": ароль",
"passwordConfirm": "Подтвердите пароль",
"newPassword": "Новый пароль",
"teamRole": "Должность"
},
"links": {
"teams": "Группы",
"roles": "Роли"
},
"labels": {
"Create User": "Создать пользователя",
"Generate": "Сгенерировать",
"Access": "Доступ",
"Preferences": "Настройки",
"Change Password": "Изменить пароль"
},
"tooltips": {
"defaultTeam": "Все записи, созданные этим пользователем, по умолчанию будут относиться к этой команде.",
"userName": "Letters a-z, numbers 0-9 and underscores are allowed."
},
"messages": {
"passwordWillBeSent": "Пароль будет выслан на почтовый адрес пользователя",
"accountInfoEmailSubject": "Информация об учетной записи",
"accountInfoEmailBody": "Информация о Вашей учетной записи:\n\nUsername: {userName}\nPassword: {password}\n\n{siteUrl}",
"passwordChanged": "Пароль изменен"
}
}
"fields": {
"name": "Имя",
"userName": "Имя пользователя",
"title": "Должность",
"isAdmin": "Права администратора",
"defaultTeam": "Группа по умолчанию",
"emailAddress": "Эл. почта",
"phoneNumber": "Телефон",
"roles": "Роли",
"portals": орталы",
"portalRoles": "Роли порталов",
"teamRole": "Должность (положение в группе)",
"password": "Пароль",
"currentPassword": "Текущий пароль",
"passwordConfirm": "Подтвердить пароль",
"newPassword": "Новый пароль",
"newPasswordConfirm": "Подтвердить новый пароль",
"avatar": "Аватар",
"isActive": "Признак активности",
"isPortalUser": "Пользователь портала",
"contact": "Контакты",
"accounts": "Контрагенты",
"account": "Контрагент",
"sendAccessInfo": "Отправить пользователю эл. письмо с реквизитами доступа",
"portal": "Портал"
},
"links": {
"teams": "Группы",
"roles": "Роли",
"notes": "Заметки",
"portals": "Порталы",
"portalRoles": "Роли порталов",
"contact": "Контакт",
"accounts": "Контрагенты"
},
"labels": {
"Create User": "Создать пользователя",
"Generate": "Сгенерировать",
"Access": "Доступ",
"Preferences": "Настройки",
"Change Password": "Изменить пароль",
"Teams and Access Control": "Группы и уровень доступа",
"Forgot Password?": "Забыли пароль?",
"Password Change Request": "Запрос смены пароля",
"Email Address": "Адрес эл. почты",
"External Accounts": "Внешние учетные записи",
"Email Accounts": "Учетные записи эл. почты",
"Portal": "Портал",
"Create Portal User": "Создать пользователя портала"
},
"tooltips": {
"defaultTeam": "Все записи, созданные этим пользователем, по умолчанию будут относиться к этой группе.",
"userName": "Допускаются латинские буквы a-z, цифры 0-9, точки, дефисы, символы @ и подчеркивания.",
"isAdmin": "Пользователь с правами администратора может получить доступ ко всему.",
"isActive": "Если флажок не установлен, то пользователь не сможет войти в систему.",
"teams": "Группы к которым принадлежит данный пользователь. Уровень доступа наследуется от ролей группы.",
"roles": "Дополнительные роли доступа. Используйте это если пользователь не принадлежит ни к одной группе или вам необходимо расширить уровень доступа только для этого пользователя.",
"portalRoles": "Дополнительные роли портала. Используйте это если необходимо расширить уровень доступа только для этого пользователя.",
"portals": "Порталы к которым имеет доступ этот пользователь."
},
"messages": {
"passwordWillBeSent": "Пароль будет выслан на адрес эл. почты пользователя.",
"accountInfoEmailSubject": "Информация об учетной записи EspoCRM",
"accountInfoEmailBody": "Информация о Вашей учетной записи:\n\nИмя пользователя: {userName}\nПароль: {password}\n\n{siteUrl}",
"passwordChangeLinkEmailSubject": "Запрос смены пароля",
"passwordChangeLinkEmailBody": "Вы можете изменить пароль использовав эту уникальную ссылку {link}. Срок действия ссылки скоро истечет.",
"passwordChanged": "Пароль был изменен",
"userCantBeEmpty": "Имя пользователя не может быть пустым",
"wrongUsernamePasword": "Неверное имя пользователя/пароль",
"emailAddressCantBeEmpty": "Адрес эл. почты не может быть пустым",
"userNameEmailAddressNotFound": "Имя пользователя/Адрес эл. почты не найдены",
"forbidden": "Запрещено, повторите попытку позже",
"uniqueLinkHasBeenSent": "Уникальная ссылка была отправлена на указанный адрес эл. почты.",
"passwordChangedByRequest": "Пароль был изменен."
},
"boolFilters": {
"onlyMyTeam": "Только моя группа"
},
"presetFilters": {
"active": "Активные",
"activePortal": "Portal Active"
}
}
@@ -1,6 +1,6 @@
{
"Flotr": {
"path": "client/lib/flotr2.min.js",
"path": "client/lib/flotr2.js",
"exportsTo": "window",
"exportsAs": "Flotr"
},
+1 -1
View File
@@ -173,7 +173,7 @@ class Email extends Record
return $entity;
}
protected function afterUpdate(Entity $entity)
protected function afterUpdate(Entity $entity, array $data = array())
{
if ($entity && $entity->get('status') == 'Sending') {
$this->send($entity);
@@ -176,6 +176,15 @@ class EmailTemplate extends Record
if ($fieldType === 'enum') {
$value = $this->getLanguage()->translateOption($value, $field, $entity->getEntityType());
} else if ($fieldType === 'array' || $fieldType === 'multiEnum') {
$valueList = [];
if (is_array($value)) {
foreach ($value as $v) {
$valueList[] = $this->getLanguage()->translateOption($v, $field, $entity->getEntityType());
}
}
$value = implode(', ', $valueList);
$value = $this->getLanguage()->translateOption($value, $field, $entity->getEntityType());
} else {
if ($entity->fields[$field]['type'] == 'date') {
$value = $this->getDateTime()->convertSystemDate($value);
+2 -2
View File
@@ -38,13 +38,13 @@ class PortalRole extends Record
$this->dependencies[] = 'fileManager';
}
public function afterCreate(Entity $entity, array $data)
public function afterCreate(Entity $entity, array $data = array())
{
parent::afterCreate($entity, $data);
$this->clearRolesCache();
}
public function afterUpdate(Entity $entity, array $data)
public function afterUpdate(Entity $entity, array $data = array())
{
parent::afterUpdate($entity, $data);
$this->clearRolesCache();
+2 -2
View File
@@ -1023,12 +1023,12 @@ class Record extends \Espo\Core\Services\Base
return $this->getStreamService()->unfollowEntity($entity, $userId);
}
protected function getDuplicateWhereClause(Entity $entity, $data)
protected function getDuplicateWhereClause(Entity $entity, $data = array())
{
return false;
}
public function checkEntityForDuplicate(Entity $entity, $data)
public function checkEntityForDuplicate(Entity $entity, $data = array())
{
$where = $this->getDuplicateWhereClause($entity, $data);
+2 -2
View File
@@ -38,13 +38,13 @@ class Role extends Record
$this->dependencies[] = 'fileManager';
}
public function afterCreate(Entity $entity, array $data)
public function afterCreate(Entity $entity, array $data = array())
{
parent::afterCreate($entity, $data);
$this->clearRolesCache();
}
public function afterUpdate(Entity $entity, array $data)
public function afterUpdate(Entity $entity, array $data = array())
{
parent::afterUpdate($entity, $data);
$this->clearRolesCache();
+1 -1
View File
@@ -419,7 +419,7 @@ class User extends Record
return parent::deleteEntity($id);
}
public function afterUpdate(Entity $entity, array $data)
public function afterUpdate(Entity $entity, array $data = array())
{
parent::afterUpdate($entity, $data);
if (array_key_exists('rolesIds', $data) || array_key_exists('teamsIds', $data)) {

Some files were not shown because too many files have changed in this diff Show More