Compare commits

...

5 Commits

Author SHA1 Message Date
Lenaick
9bfe0430f5 N°9118 - No Safeguard when hub installation fail (#988)
* N°9118 - No Safeguard when hub installation fail

* Apply suggestion from @greptile-apps[bot]

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-08-04 09:01:34 +02:00
Anne-Cath
3fe91ed0b4 N°8397 - Suppress export V1 from iTop packages 2026-08-03 16:39:19 +02:00
Stephen Abello
ccb9633226 Align portal ui_version default value with XML ui_version 2026-08-03 10:14:00 +02:00
Thomas Casteleyn
82b50dc6cd N°9880 - Add dutch translations to itop-flow-map module (#985) 2026-08-03 09:22:14 +02:00
Vladimir Kunin
d3451f8c30 N°9879 - Update russian translations (#983) 2026-08-03 09:17:43 +02:00
69 changed files with 1636 additions and 1383 deletions

View File

@@ -1535,190 +1535,6 @@ HTML
return $sHtml;
}
/**
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aParams
*
* @throws \Exception
* only used in old and deprecated export.php
*
* @internal Only to be used by `/webservices/export.php` : this is a legacy method that produces wrong HTML (no TR on table body rows)
*/
public static function DisplaySetAsHTMLSpreadsheet(WebPage $oPage, CMDBObjectSet $oSet, $aParams = [])
{
$oPage->add(self::GetSetAsHTMLSpreadsheet($oSet, $aParams));
}
/**
* Spreadsheet output: designed for end users doing some reporting
* Then the ids are excluded and replaced by the corresponding friendlyname
*
* @param \DBObjectSet $oSet
* @param array $aParams
*
* @return string
* @throws \CoreException
* @throws \CoreUnexpectedValue
* @throws \MissingQueryArgument
* @throws \MySQLException
* @throws \MySQLHasGoneAwayException
* @throws \Exception
*
* @internal Only to be used by `/webservices/export.php` : this is a legacy method that produces wrong HTML (no TR on table body rows)
*/
public static function GetSetAsHTMLSpreadsheet(DBObjectSet $oSet, $aParams = [])
{
$aFields = null;
if (isset($aParams['fields']) && (strlen($aParams['fields']) > 0)) {
$aFields = explode(',', $aParams['fields']);
}
$bFieldsAdvanced = false;
if (isset($aParams['fields_advanced'])) {
$bFieldsAdvanced = (bool)$aParams['fields_advanced'];
}
$bLocalize = true;
if (isset($aParams['localize_values'])) {
$bLocalize = (bool)$aParams['localize_values'];
}
$aList = [];
$aClasses = $oSet->GetFilter()->GetSelectedClasses();
$aAuthorizedClasses = [];
foreach ($aClasses as $sAlias => $sClassName) {
if (UserRights::IsActionAllowed($sClassName, UR_ACTION_READ, $oSet) != UR_ALLOWED_NO) {
$aAuthorizedClasses[$sAlias] = $sClassName;
}
}
$aHeader = [];
foreach ($aAuthorizedClasses as $sAlias => $sClassName) {
$aList[$sAlias] = [];
foreach (MetaModel::ListAttributeDefs($sClassName) as $sAttCode => $oAttDef) {
if (is_null($aFields) || (count($aFields) == 0)) {
// Standard list of attributes (no link sets)
if ($oAttDef->IsScalar() && ($oAttDef->IsWritable() || $oAttDef->IsExternalField())) {
$sAttCodeEx = $oAttDef->IsExternalField() ? $oAttDef->GetKeyAttCode().'->'.$oAttDef->GetExtAttCode() : $sAttCode;
$aList[$sAlias][$sAttCodeEx] = $oAttDef;
if ($bFieldsAdvanced && $oAttDef->IsExternalKey(EXTKEY_RELATIVE)) {
$sRemoteClass = $oAttDef->GetTargetClass();
foreach (MetaModel::GetReconcKeys($sRemoteClass) as $sRemoteAttCode) {
$aList[$sAlias][$sAttCode.'->'.$sRemoteAttCode] = MetaModel::GetAttributeDef(
$sRemoteClass,
$sRemoteAttCode
);
}
}
}
} else {
// User defined list of attributes
if (in_array($sAttCode, $aFields) || in_array($sAlias.'.'.$sAttCode, $aFields)) {
$aList[$sAlias][$sAttCode] = $oAttDef;
}
}
}
// Replace external key by the corresponding friendly name (if not already in the list)
foreach ($aList[$sAlias] as $sAttCode => $oAttDef) {
if ($oAttDef->IsExternalKey()) {
unset($aList[$sAlias][$sAttCode]);
$sFriendlyNameAttCode = $sAttCode.'_friendlyname';
if (!array_key_exists(
$sFriendlyNameAttCode,
$aList[$sAlias]
) && MetaModel::IsValidAttCode($sClassName, $sFriendlyNameAttCode)) {
$oFriendlyNameAtt = MetaModel::GetAttributeDef($sClassName, $sFriendlyNameAttCode);
$aList[$sAlias][$sFriendlyNameAttCode] = $oFriendlyNameAtt;
}
}
}
foreach ($aList[$sAlias] as $sAttCodeEx => $oAttDef) {
$sColLabel = $bLocalize ? MetaModel::GetLabel($sClassName, $sAttCodeEx) : $sAttCodeEx;
$oFinalAttDef = $oAttDef->GetFinalAttDef();
if (get_class($oFinalAttDef) == 'AttributeDateTime') {
$aHeader[] = $sColLabel.' ('.Dict::S('UI:SplitDateTime-Date').')';
$aHeader[] = $sColLabel.' ('.Dict::S('UI:SplitDateTime-Time').')';
} else {
$aHeader[] = $sColLabel;
}
}
}
$sHtml = "<table border=\"1\">\n";
$sHtml .= "<tr>\n";
$sHtml .= "<td>".implode("</td><td>", $aHeader)."</td>\n";
$sHtml .= "</tr>\n";
$oSet->Seek(0);
while ($aObjects = $oSet->FetchAssoc()) {
$aRow = [];
foreach ($aAuthorizedClasses as $sAlias => $sClassName) {
$oObj = $aObjects[$sAlias];
foreach ($aList[$sAlias] as $sAttCodeEx => $oAttDef) {
if (is_null($oObj)) {
$aRow[] = '<td></td>';
} else {
$oFinalAttDef = $oAttDef->GetFinalAttDef();
if (get_class($oFinalAttDef) == 'AttributeDateTime') {
$sDate = $oObj->Get($sAttCodeEx);
if ($sDate === null) {
$aRow[] = '<td></td>';
$aRow[] = '<td></td>';
} else {
$iDate = AttributeDateTime::GetAsUnixSeconds($sDate);
$aRow[] = '<td>'.date(
'Y-m-d',
$iDate
).'</td>'; // Format kept as-is for 100% backward compatibility of the exports
$aRow[] = '<td>'.date(
'H:i:s',
$iDate
).'</td>'; // Format kept as-is for 100% backward compatibility of the exports
}
} else {
if ($oAttDef instanceof AttributeCaseLog) {
$rawValue = $oObj->Get($sAttCodeEx);
$outputValue = str_replace(
"\n",
"<br/>",
utils::EscapeHtml($rawValue->__toString())
);
// Trick for Excel: treat the content as text even if it begins with an equal sign
$aRow[] = '<td x:str>'.$outputValue.'</td>';
} else {
$rawValue = $oObj->Get($sAttCodeEx);
// Due to custom formatting rules, empty friendlynames may be rendered as non-empty strings
// let's fix this and make sure we render an empty string if the key == 0
if ($oAttDef instanceof AttributeExternalField && $oAttDef->IsFriendlyName()) {
$sKeyAttCode = $oAttDef->GetKeyAttCode();
if ($oObj->Get($sKeyAttCode) == 0) {
$rawValue = '';
}
}
if ($bLocalize) {
$outputValue = utils::EscapeHtml($oFinalAttDef->GetEditValue($rawValue));
} else {
$outputValue = utils::EscapeHtml($rawValue);
}
$aRow[] = '<td>'.$outputValue.'</td>';
}
}
}
}
}
$sHtml .= implode("\n", $aRow);
$sHtml .= "</tr>\n";
}
$sHtml .= "</table>\n";
return $sHtml;
}
/**
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet

View File

@@ -1707,7 +1707,7 @@ JS
$oBlock->bAdvancedMode = utils::ReadParam('advanced', false);
$oBlock->sCsvFile = strtolower($this->m_oFilter->GetClass()).'.csv';
$oBlock->sDownloadLink = utils::GetAbsoluteUrlAppRoot().'webservices/export.php?expression='.urlencode($this->m_oFilter->ToOQL(true)).'&format=csv&filename='.urlencode($oBlock->sCsvFile);
$oBlock->sDownloadLink = utils::GetAbsoluteUrlAppRoot().'webservices/export-v2.php?expression='.urlencode($this->m_oFilter->ToOQL(true)).'&format=csv&filename='.urlencode($oBlock->sCsvFile);
$oBlock->sLinkToToggle = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search'.$oAppContext->GetForLink(true).'&filter='.rawurlencode($this->m_oFilter->serialize()).'&format=csv';
// Pass the parameters via POST, since expression may be very long
$aParamsToPost = [
@@ -1724,7 +1724,7 @@ JS
$oBlock->sLinkToToggle = $oBlock->sLinkToToggle.'&advanced=1';
$oBlock->sChecked = '';
}
$oBlock->sAjaxLink = utils::GetAbsoluteUrlAppRoot().'webservices/export.php';
$oBlock->sAjaxLink = utils::GetAbsoluteUrlAppRoot().'webservices/export-v2.php';
$oBlock->sCharsetNotice = false;
$oBlock->sJsonParams = json_encode($aParamsToPost);

View File

@@ -14,7 +14,7 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserLDAP' => 'Пользователь LDAP',
'Class:UserLDAP+' => 'Пользователь, аутентифицируемый через LDAP',
'UserLDAP:server' => 'LDAP specifics~~',
'UserLDAP:server' => 'Особенности LDAP',
]);
//
@@ -22,6 +22,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~',
'Class:UserLDAP/Attribute:ldap_server+' => '~~',
'Class:UserLDAP/Attribute:ldap_server' => 'Сервер LDAP',
'Class:UserLDAP/Attribute:ldap_server+' => '',
]);

View File

@@ -24,11 +24,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserLocal/Attribute:expiration/Value:never_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:force_expire' => 'Истёкший',
'Class:UserLocal/Attribute:expiration/Value:force_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:otp_expire' => 'One-time Password~~',
'Class:UserLocal/Attribute:expiration/Value:otp_expire+' => 'Password cannot be changed by the user.~~',
'Class:UserLocal/Attribute:expiration/Value:otp_expire' => 'Одноразовый пароль',
'Class:UserLocal/Attribute:expiration/Value:otp_expire+' => 'Пароль не может быть изменён пользователем.',
'Class:UserLocal/Attribute:password_renewed_date' => 'Дата изменения пароля',
'Class:UserLocal/Attribute:password_renewed_date+' => 'Когда пароль был изменен в последний раз',
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Пароль должен содержать не менее 12 символов и включать прописные, строчные, числовые и специальные символы.',
'UserLocal:password:expiration' => 'Поля требуют наличия доп. расширения',
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~',
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Установка срока действия пароля "Одноразовый пароль" для своей собственной учётной записи не разрешена',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:darkmoon' => 'Dark moon~~',
'theme:darkmoon' => 'Тёмная луна',
]);

View File

@@ -23,5 +23,5 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~',
'theme:fullmoon-high-contrast' => 'Fullmoon (высокая контрастность)',
]);

View File

@@ -23,5 +23,5 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~',
'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (протанопия и дейтеранопия)',
]);

View File

@@ -23,5 +23,5 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~',
'theme:fullmoon-tritanopia' => 'Fullmoon (тританопия)',
]);

View File

@@ -0,0 +1,75 @@
<?php
/**
* @copyright Copyright (C) 2010-2025 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
/**
* Localized data
*/
/**
* @author Vladimir Kunin <v.b.kunin@gmail.com>
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:DataFeatureRemovalMenu' => 'Управление расширениями',
'combodo-data-feature-removal/Operation:Main/Title' => 'Управление расширениями',
'DataFeatureRemoval:Main:Title' => 'Управление расширениями',
'DataFeatureRemoval:Main:SubTitle' => 'Включение и отключение расширений, установленных в вашем iTop',
'DataFeatureRemoval:Failure:Title' => 'Ошибки пробного удаления расширений',
'DataFeatureRemoval:Helper:Title' => 'Проверьте, есть ли данные или зависимости, мешающие добавить/удалить расширение.',
'DataFeatureRemoval:Features:Title' => 'Расширения',
'DataFeatureRemoval:Result:Title' => 'Запрошено изменение',
'DataFeatureRemoval:NoResult:Title' => 'Изменений не запрошено',
'DataFeatureRemoval:Execution:Title' => 'Выполнения удаления',
'DataFeatureRemoval:Analysis:Title' => 'Результат анализа',
'DataFeatureRemoval:Analysis:Subtitle' => 'Просмотрите все элементы, требующие внимания',
'DataFeatureRemoval:Analysis:SubTitle' => 'Элементов для очистки перед продолжением: %1$s',
'DataFeatureRemoval:DeletionPlan:Title' => 'План удаления данных',
'DataFeatureRemoval:DeletionPlan:SubTitle' => 'Строк для очистки перед продолжением: %1$s',
'DataFeatureRemoval:DoDeletion:Title' => 'Выполнить удаление',
'DataFeatureRemoval:DoDeletion:SubTitle' => 'Удалить все записи из базы данных',
'DataFeatureRemoval:DeletionPlan:Error:Issues' => 'Некоторые объекты нужно удалить вручную перед очисткой',
'DataFeatureRemoval:Table:Analysis:ClassName' => 'Элемент для удаления',
'DataFeatureRemoval:Table:Analysis:FeatureName' => 'Название расширения',
'DataFeatureRemoval:Table:Analysis:Module' => 'Название модуля',
'DataFeatureRemoval:Table:Analysis:Occurrence' => 'Количество',
'DataFeatureRemoval:CleanupComplete:Title' => 'Всё чисто.',
'DataFeatureRemoval:CompilComplete' => 'Компиляция выполнена успешно. Очистка не требуется. Можно переходить к установке.',
'DataFeatureRemoval:Compile:InProgress' => 'Идёт компиляция...',
'DataFeatureRemoval:Compile:Success' => 'Компиляция выполнена успешно',
'DataFeatureRemoval:Compile:Error' => 'Ошибка компиляции',
'DataFeatureRemoval:RunAudit:InProgress' => 'Идёт анализ...',
'DataFeatureRemoval:RunAudit:Success' => 'Анализ завершён',
'DataFeatureRemoval:RunAudit:Error' => 'Ошибка при анализе',
'UI:Button:Analyze' => 'Анализировать',
'UI:Button:ModifyChoices' => 'Изменить выбор',
'UI:Button:AnalyzeAndSetup' => 'Анализировать и перейти к установке',
'UI:Button:PlanDeletion' => 'Продолжить удаление',
'UI:Button:DoDeletion' => 'Продолжить удаление',
'UI:Button:BackToMain' => 'Изменить выбор',
'UI:Button:Setup' => 'Запустить установку',
'UI:Action:ForceUninstall' => 'Принудительно удалить',
'UI:Action:MoreInfo' => 'Подробнее',
'DataFeatureRemoval:Table:Empty' => 'Нет данных для удаления',
'DataFeatureRemoval:Column:Class' => 'Класс',
'DataFeatureRemoval:Column:DeleteCount' => 'Записей к удалению',
'DataFeatureRemoval:Column:UpdateCount' => 'Записей к обновлению',
'DataFeatureRemoval:Column:IssueCount' => 'Найдено проблем, мешающих автоматической очистке',
'DataFeatureRemoval:Column:DeletedCount' => 'Удалено записей',
'DataFeatureRemoval:Column:UpdatedCount' => 'Обновлено записей',
]);

View File

@@ -16,8 +16,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'DBTools:Class' => 'Класс',
'DBTools:Title' => 'Инструменты обслуживания базы данных',
'DBTools:ErrorsFound' => 'Найденные ошибки',
'DBTools:Indication' => 'Important: after fixing errors in the database you\'ll have to run the analysis again as new inconsistencies will be generated~~',
'DBTools:Disclaimer' => 'DISCLAIMER: BACKUP YOUR DATABASE BEFORE RUNNING THE FIXES~~',
'DBTools:Indication' => 'Важно: после исправления ошибок в базе данных нужно будет запустить анализ заново, так как появятся новые несоответствия',
'DBTools:Disclaimer' => 'ВНИМАНИЕ: СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ ПЕРЕД ЗАПУСКОМ ИСПРАВЛЕНИЙ',
'DBTools:Error' => 'Ошибка',
'DBTools:Count' => 'Количество',
'DBTools:SQLquery' => 'SQL-запрос',
@@ -28,23 +28,23 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'DBTools:ShowIds' => 'Подробный вид',
'DBTools:ShowReport' => 'Отчёт',
'DBTools:IntegrityCheck' => 'Проверка целостности',
'DBTools:FetchCheck' => 'Fetch Check (long)~~',
'DBTools:SelectAnalysisType' => 'Select analysis type~~',
'DBTools:FetchCheck' => 'Проверка выборки (долго)',
'DBTools:SelectAnalysisType' => 'Выберите тип анализа',
'DBTools:Analyze' => 'Анализировать',
'DBTools:Details' => 'Показать подробности',
'DBTools:ShowAll' => 'Показать все ошибки',
'DBTools:Inconsistencies' => 'Несоответствия базы данных',
'DBTools:DetailedErrorTitle' => '%2$s error(s) in class %1$s: %3$s~~',
'DBTools:DetailedErrorLimit' => 'List limited to %1$s errors~~',
'DBTools:DetailedErrorTitle' => 'Ошибок (%2$s) в классе %1$s: %3$s',
'DBTools:DetailedErrorLimit' => 'Список ограничен %1$s ошибками',
'DBAnalyzer-Integrity-OrphanRecord' => 'Сиротская запись в `%1$s`, она должна иметь свой аналог в таблице `%2$s`',
'DBAnalyzer-Integrity-InvalidExtKey' => 'Недопустимый внешний ключ %1$s (столбец: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-MissingExtKey' => 'Отсутствует внешний ключ %1$s (столбец: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-InvalidValue' => 'Недопустимое значение для %1$s (столбец: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Некоторые учетные записи пользователей не имеют профилей',
'DBAnalyzer-Integrity-HKInvalid' => 'Broken hierarchical key `%1$s`~~',
'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~',
'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-HKInvalid' => 'Повреждён иерархический ключ `%1$s`',
'DBAnalyzer-Fetch-Count-Error' => 'Ошибка количества выборки в `%1$s`: получено записей %2$d / посчитано %3$d',
'DBAnalyzer-Integrity-FinalClass' => 'Поле `%2$s`.`%1$s` должно иметь то же значение, что и `%3$s`.`%1$s`',
'DBAnalyzer-Integrity-RootFinalClass' => 'Поле `%2$s`.`%1$s` должно содержать допустимый класс',
]);
// Database Info

View File

@@ -26,12 +26,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Attachments:NoAttachment' => 'Нет вложений.',
'Attachments:PreviewNotAvailable' => 'Предварительный просмотр не доступен для этого типа вложений.',
'Attachments:Error:FileTooLarge' => 'Файл слишком велик для загрузки. %1$s',
'Attachments:Error:UploadedFileEmpty' => 'The received file is empty and cannot be attached.
Either you have pushed an empty file,
or ask your '.ITOP_APPLICATION_SHORT.' administrator if the '.ITOP_APPLICATION_SHORT.' server disk is full.~~',
'Attachments:Render:Icons' => 'Display as icons~~',
'Attachments:Render:Table' => 'Display as list~~',
'UI:Attachments:DropYourFileHint' => 'Drop files anywhere in this area~~',
'Attachments:Error:UploadedFileEmpty' => 'Полученный файл пуст и не может быть прикреплён.
Либо вы загрузили пустой файл,
либо обратитесь к администратору '.ITOP_APPLICATION_SHORT.' — возможно, диск сервера '.ITOP_APPLICATION_SHORT.' переполнен.',
'Attachments:Render:Icons' => 'Отображать как иконки',
'Attachments:Render:Table' => 'Отображать как список',
'UI:Attachments:DropYourFileHint' => 'Перетащите файлы в любое место этой области',
]);
//
@@ -62,7 +62,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Attachments:File:Uploader' => 'Пользователь',
'Attachments:File:Size' => 'Размер',
'Attachments:File:MimeType' => 'Тип',
'Attachments:File:DownloadsCount' => 'Downloads~~',
'Attachments:File:DownloadsCount' => 'Скачиваний',
]);
//
// Class: Attachment
@@ -82,15 +82,15 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:TriggerOnAttachmentDownload' => 'Trigger (on object\'s attachment download)~~',
'Class:TriggerOnAttachmentDownload+' => 'Trigger on object\'s attachment download of [a child class of] the given class~~',
'Class:TriggerOnAttachmentCreate' => 'Trigger (on object\'s attachment creation)~~',
'Class:TriggerOnAttachmentCreate+' => 'Trigger on object\'s attachment creation~~',
'Class:TriggerOnAttachmentCreate/Attribute:file_in_email' => 'Add file in email~~',
'Class:TriggerOnAttachmentCreate/Attribute:file_in_email+' => 'If checked, the file will be automatically attached to the email when an email action is triggered~~',
'Class:TriggerOnAttachmentDelete' => 'Trigger (on object\'s attachment deletion)~~',
'Class:TriggerOnAttachmentDelete+' => 'Trigger on object\'s attachment deletion~~',
'Class:TriggerOnAttachmentDelete/Attribute:file_in_email' => 'Add deleted file in email~~',
'Class:TriggerOnAttachmentDelete/Attribute:file_in_email+' => 'If checked, the deleted file will be automatically attached to the email when an email action is triggered~~',
'Class:TriggerOnObject:TriggerClassAttachment/ReadOnlyMessage' => 'Trigger on object is not allowed on class Attachment. Please use specific trigger~~',
'Class:TriggerOnAttachmentDownload' => 'Триггер (на скачивание вложения объекта)',
'Class:TriggerOnAttachmentDownload+' => 'Триггер на скачивание вложения объекта заданного класса (или его дочернего класса)',
'Class:TriggerOnAttachmentCreate' => 'Триггер (на создание вложения объекта)',
'Class:TriggerOnAttachmentCreate+' => 'Триггер на создание вложения объекта',
'Class:TriggerOnAttachmentCreate/Attribute:file_in_email' => 'Добавлять файл в email',
'Class:TriggerOnAttachmentCreate/Attribute:file_in_email+' => 'Если отмечено, файл будет автоматически прикреплён к письму при срабатывании действия email',
'Class:TriggerOnAttachmentDelete' => 'Триггер (на удаление вложения объекта)',
'Class:TriggerOnAttachmentDelete+' => 'Триггер на удаление вложения объекта',
'Class:TriggerOnAttachmentDelete/Attribute:file_in_email' => 'Добавлять удалённый файл в email',
'Class:TriggerOnAttachmentDelete/Attribute:file_in_email+' => 'Если отмечено, удалённый файл будет автоматически прикреплён к письму при срабатывании действия email',
'Class:TriggerOnObject:TriggerClassAttachment/ReadOnlyMessage' => 'Триггер на объект не допускается для класса Attachment. Используйте специальный триггер',
]);

View File

@@ -20,7 +20,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'bkp-mysqldump-ok' => 'Утилита mysqldump найдена: %1$s',
'bkp-mysqldump-notfound' => 'Утилиту mysqldump найти не удалось: %1$s - пожалуйста, убедитесь в том, что она установлена, и путь до директории с бинарными файлами добавлен в PATH, либо измените параметр mysql_bindir в файле конфигурации.',
'bkp-mysqldump-issue' => 'Утилита mysqldump на может быть запущена (retcode=%1$d) Пожалуйста, убедитесь в том, что она установлена, и путь до директории с бинарными файлами добавлен в PATH, либо измените параметр mysql_bindir в файле конфигурации.',
'bkp-missing-dir' => 'The target directory <code>%1$s</code> could not be found~~',
'bkp-missing-dir' => 'Целевой каталог <code>%1$s</code> не найден',
'bkp-free-disk-space' => '<b>%1$s свободно</b> в <code>%2$s</code>',
'bkp-dir-not-writeable' => '%1$s недоступен для записи',
'bkp-wrong-format-spec' => 'Неправильный формат шаблона названия файлов резервных копий (%1$s). Будет использован шаблон по умолчанию: %2$s',
@@ -38,7 +38,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'bkp-status-backups-manual' => 'Резервное копирование вручную',
'bkp-status-backups-none' => 'Резервных копий ещё нет',
'bkp-next-backup' => 'Следующее резервное копирование будет выполняться в <b>%1$s</b> (%2$s) в %3$s',
'bkp-next-backup-unknown' => 'The next backup is <b>not scheduled</b> yet.~~',
'bkp-next-backup-unknown' => 'Следующее резервное копирование пока <b>не запланировано</b>.',
'bkp-button-backup-now' => 'Запустить сейчас!',
'bkp-button-restore-now' => 'Восстановить!',
'bkp-confirm-backup' => 'Пожалуйста, подтвердите, что вы хотите выполнить резервное копирование прямо сейчас.',

View File

@@ -14,7 +14,7 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkFunctionalCIToProviderContract' => 'Связь Функциональная КЕ/Договор с поставщиком',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Договор с поставщиком',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Договор с поставщиком',
@@ -32,7 +32,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkFunctionalCIToService' => 'Связь Функциональная КЕ/Услуга',
'Class:lnkFunctionalCIToService+' => '',
'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToService/Attribute:service_id' => 'Услуга',
'Class:lnkFunctionalCIToService/Attribute:service_id+' => '',
'Class:lnkFunctionalCIToService/Attribute:service_name' => 'Услуга',

View File

@@ -14,7 +14,7 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkFunctionalCIToTicket' => 'Связь Функциональная КЕ/Тикет',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Тикет',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Тикет',

View File

@@ -20,9 +20,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Relation:depends on/Description' => 'Элементы, от которых зависит',
'Relation:depends on/DownStream' => 'Зависит от...',
'Relation:depends on/UpStream' => 'Влияет на...',
'Relation:impacts/LoadData' => 'Load data~~',
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
'Relation:impacts/FilteredData' => 'Filtered data~~',
'Relation:impacts/LoadData' => 'Загрузить данные',
'Relation:impacts/NoFilteredData' => 'выберите объекты и загрузите данные',
'Relation:impacts/FilteredData' => 'Отфильтрованные данные',
]);
// Dictionnay conventions
@@ -69,7 +69,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToFunctionalCI' => 'Связь Контакт/Функциональная КЕ',
'Class:lnkContactToFunctionalCI+' => '',
'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~',
'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkContactToFunctionalCI/Attribute:functionalci_id' => 'Функциональная КЕ',
'Class:lnkContactToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkContactToFunctionalCI/Attribute:functionalci_name' => 'Функциональная КЕ',
@@ -116,7 +116,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:FunctionalCI/Attribute:finalclass' => 'Тип',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Активные тикеты',
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~',
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Активные тикеты, затрагивающие эту функциональную КЕ',
]);
//
@@ -126,7 +126,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PhysicalDevice' => 'Физические устройства',
'Class:PhysicalDevice+' => '',
'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~',
'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s',
'Class:PhysicalDevice/Attribute:serialnumber' => 'Серийный номер',
'Class:PhysicalDevice/Attribute:serialnumber+' => '',
'Class:PhysicalDevice/Attribute:location_id' => 'Расположение',
@@ -166,7 +166,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Rack' => 'Стойка',
'Class:Rack+' => '',
'Class:Rack/ComplementaryName' => '%1$s - %2$s~~',
'Class:Rack/ComplementaryName' => '%1$s - %2$s',
'Class:Rack/Attribute:nb_u' => 'Высота (U)',
'Class:Rack/Attribute:nb_u+' => 'Количество юнитов',
'Class:Rack/Attribute:device_list' => 'Устройства',
@@ -233,7 +233,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ConnectableCI' => 'Подключаемые КЕ',
'Class:ConnectableCI+' => 'Подключаемые КЕ',
'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~',
'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Сетевые устройства',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Связанные сетевые устройства',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Сетевые интерфейсы',
@@ -247,7 +247,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DatacenterDevice' => 'Устройства дата-центра',
'Class:DatacenterDevice+' => 'Устройства дата-центра',
'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~',
'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s',
'Class:DatacenterDevice/Attribute:rack_id' => 'Стойка',
'Class:DatacenterDevice/Attribute:rack_id+' => '',
'Class:DatacenterDevice/Attribute:rack_name' => 'Стойка',
@@ -285,7 +285,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:NetworkDevice' => 'Сетевое устройство',
'Class:NetworkDevice+' => 'Сетевое устройство',
'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~',
'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s',
'Class:NetworkDevice/Attribute:networkdevicetype_id' => 'Тип устройства',
'Class:NetworkDevice/Attribute:networkdevicetype_id+' => '',
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Тип устройства',
@@ -307,7 +307,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Server' => 'Сервер',
'Class:Server+' => 'Сервер',
'Class:Server/ComplementaryName' => '%1$s - %2$s~~',
'Class:Server/ComplementaryName' => '%1$s - %2$s',
'Class:Server/Attribute:osfamily_id' => 'Семейство ОС',
'Class:Server/Attribute:osfamily_id+' => 'Семейство операционной системы',
'Class:Server/Attribute:osfamily_name' => 'Семейство ОС',
@@ -335,7 +335,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:StorageSystem' => 'Система хранения',
'Class:StorageSystem+' => 'Система хранения',
'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~',
'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s',
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Логические тома',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Логические тома',
]);
@@ -347,7 +347,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SANSwitch' => 'SAN коммутатор',
'Class:SANSwitch+' => 'SAN коммутатор',
'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~',
'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Устройства',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Подключенные устройства',
]);
@@ -359,7 +359,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:TapeLibrary' => 'Ленточная библиотека',
'Class:TapeLibrary+' => 'Ленточная библиотека',
'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~',
'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s',
'Class:TapeLibrary/Attribute:tapes_list' => 'Ленты',
'Class:TapeLibrary/Attribute:tapes_list+' => 'Ленты',
]);
@@ -371,7 +371,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:NAS' => 'Сетевое хранилище',
'Class:NAS+' => 'Сетевое хранилище',
'Class:NAS/ComplementaryName' => '%1$s - %2$s~~',
'Class:NAS/ComplementaryName' => '%1$s - %2$s',
'Class:NAS/Attribute:nasfilesystem_list' => 'Файловые системы',
'Class:NAS/Attribute:nasfilesystem_list+' => 'Файловые системы',
]);
@@ -383,7 +383,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PC' => 'Персональный компьютер',
'Class:PC+' => 'Персональный компьютер',
'Class:PC/ComplementaryName' => '%1$s - %2$s~~',
'Class:PC/ComplementaryName' => '%1$s - %2$s',
'Class:PC/Attribute:osfamily_id' => 'Семейство ОС',
'Class:PC/Attribute:osfamily_id+' => 'Семейство операционной системы',
'Class:PC/Attribute:osfamily_name' => 'Семейство ОС',
@@ -411,7 +411,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Printer' => 'Принтер',
'Class:Printer+' => 'Принтер',
'Class:Printer/ComplementaryName' => '%1$s - %2$s~~',
'Class:Printer/ComplementaryName' => '%1$s - %2$s',
]);
//
@@ -421,7 +421,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PowerConnection' => 'Электропитание',
'Class:PowerConnection+' => 'Подключения электропитания',
'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~',
'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s',
]);
//
@@ -431,7 +431,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PowerSource' => 'Источник электропитания',
'Class:PowerSource+' => 'Источник электропитания',
'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~',
'Class:PowerSource/ComplementaryName' => '%1$s - %2$s',
'Class:PowerSource/Attribute:pdus_list' => 'Распределители',
'Class:PowerSource/Attribute:pdus_list+' => 'Распределители электропитания (PDU)',
]);
@@ -443,7 +443,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PDU' => 'Распределитель ЭП',
'Class:PDU+' => 'Распределитель электропитания',
'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~',
'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s',
'Class:PDU/Attribute:rack_id' => 'Стойка',
'Class:PDU/Attribute:rack_id+' => '',
'Class:PDU/Attribute:rack_name' => 'Стойка',
@@ -461,7 +461,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Peripheral' => 'Периферийное устройство',
'Class:Peripheral+' => 'Периферийное устройство',
'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~',
'Class:Peripheral/ComplementaryName' => '%1$s - %2$s',
]);
//
@@ -471,7 +471,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Enclosure' => 'Крейт',
'Class:Enclosure+' => 'Крейт, шасси и т.п.',
'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~',
'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s',
'Class:Enclosure/Attribute:rack_id' => 'Стойка',
'Class:Enclosure/Attribute:rack_id+' => '',
'Class:Enclosure/Attribute:rack_name' => 'Стойка',
@@ -493,8 +493,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'Конфигурационные единицы в составе прикладного решения',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Бизнес-процессы',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'Бизнес-процессы, зависящие от прикладного решения',
'Class:ApplicationSolution/Attribute:logo' => 'Logo~~',
'Class:ApplicationSolution/Attribute:logo+' => 'Used as object icon when displayed within impact analysis graphs~~',
'Class:ApplicationSolution/Attribute:logo' => 'Логотип',
'Class:ApplicationSolution/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:ApplicationSolution/Attribute:status' => 'Статус',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'Активный',
@@ -516,8 +516,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:BusinessProcess+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Прикладные решения',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'Прикладные решения, влияющие на бизнес-процесс',
'Class:BusinessProcess/Attribute:logo' => 'Logo~~',
'Class:BusinessProcess/Attribute:logo+' => 'Used as object icon when displayed within impact analysis graphs~~',
'Class:BusinessProcess/Attribute:logo' => 'Логотип',
'Class:BusinessProcess/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:BusinessProcess/Attribute:status' => 'Статус',
'Class:BusinessProcess/Attribute:status+' => '',
'Class:BusinessProcess/Attribute:status/Value:active' => 'Активный',
@@ -613,9 +613,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:MiddlewareInstance' => 'Экземпляр промежуточного ПО',
'Class:MiddlewareInstance+' => 'Экземпляр промежуточного ПО',
'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~',
'Class:MiddlewareInstance/Attribute:logo' => 'Logo~~',
'Class:MiddlewareInstance/Attribute:logo+' => 'Used as object icon when displayed within impact analysis graphs~~',
'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s',
'Class:MiddlewareInstance/Attribute:logo' => 'Логотип',
'Class:MiddlewareInstance/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:MiddlewareInstance/Attribute:middleware_id' => 'Промежуточное ПО',
'Class:MiddlewareInstance/Attribute:middleware_id+' => '',
'Class:MiddlewareInstance/Attribute:middleware_name' => 'Промежуточное ПО',
@@ -629,7 +629,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DatabaseSchema' => 'Схема базы данных',
'Class:DatabaseSchema+' => 'Схема базы данных',
'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~',
'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s',
'Class:DatabaseSchema/Attribute:dbserver_id' => 'Сервер БД',
'Class:DatabaseSchema/Attribute:dbserver_id+' => '',
'Class:DatabaseSchema/Attribute:dbserver_name' => 'Сервер БД',
@@ -643,13 +643,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:WebApplication' => 'Веб-приложение',
'Class:WebApplication+' => 'Веб-приложение',
'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~',
'Class:WebApplication/ComplementaryName' => '%1$s - %2$s',
'Class:WebApplication/Attribute:webserver_id' => 'Веб-сервер',
'Class:WebApplication/Attribute:webserver_id+' => '',
'Class:WebApplication/Attribute:webserver_name' => 'Веб-сервер',
'Class:WebApplication/Attribute:webserver_name+' => '',
'Class:WebApplication/Attribute:logo' => 'Logo~~',
'Class:WebApplication/Attribute:logo+' => 'Used as object icon when displayed within impact analysis graphs~~',
'Class:WebApplication/Attribute:logo' => 'Логотип',
'Class:WebApplication/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:WebApplication/Attribute:url' => 'URL',
'Class:WebApplication/Attribute:url+' => '',
]);
@@ -725,7 +725,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:VirtualMachine' => 'Виртуальная машина',
'Class:VirtualMachine+' => 'Виртуальная машина',
'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~',
'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s',
'Class:VirtualMachine/Attribute:virtualhost_id' => 'Виртуальный хост',
'Class:VirtualMachine/Attribute:virtualhost_id+' => '',
'Class:VirtualMachine/Attribute:virtualhost_name' => 'Виртуальный хост',
@@ -786,7 +786,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkServerToVolume' => 'Связь Сервер/Том',
'Class:lnkServerToVolume+' => 'Связь Сервер/Том',
'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~',
'Class:lnkServerToVolume/Name' => '%1$s / %2$s',
'Class:lnkServerToVolume/Attribute:volume_id' => 'Том',
'Class:lnkServerToVolume/Attribute:volume_id+' => '',
'Class:lnkServerToVolume/Attribute:volume_name' => 'Том',
@@ -806,7 +806,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkVirtualDeviceToVolume' => 'Связь Виртуальное устройство/Том',
'Class:lnkVirtualDeviceToVolume+' => 'Связь Виртуальное устройство/Том',
'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~',
'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s',
'Class:lnkVirtualDeviceToVolume/Attribute:volume_id' => 'Том',
'Class:lnkVirtualDeviceToVolume/Attribute:volume_id+' => '',
'Class:lnkVirtualDeviceToVolume/Attribute:volume_name' => 'Том',
@@ -826,7 +826,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkSanToDatacenterDevice' => 'Связь SAN коммутатор/Устройство дата-центра',
'Class:lnkSanToDatacenterDevice+' => 'Связь SAN коммутатор/Устройство дата-центра',
'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~',
'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s',
'Class:lnkSanToDatacenterDevice/Attribute:san_id' => 'SAN коммутатор',
'Class:lnkSanToDatacenterDevice/Attribute:san_id+' => '',
'Class:lnkSanToDatacenterDevice/Attribute:san_name' => 'SAN коммутатор',
@@ -847,7 +847,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Tape' => 'Лента',
'Class:Tape+' => 'A Tape (or cartridge) within '.ITOP_APPLICATION_SHORT.' is a removable piece of storage part of a Tape Library~~',
'Class:Tape+' => 'Лента (или картридж) в '.ITOP_APPLICATION_SHORT.' — съёмный носитель, являющийся частью ленточной библиотеки',
'Class:Tape/Attribute:name' => 'Название',
'Class:Tape/Attribute:name+' => '',
'Class:Tape/Attribute:description' => 'Описание',
@@ -888,7 +888,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Software' => 'Программное обеспечение',
'Class:Software+' => 'Программное обеспечение',
'Class:Software/ComplementaryName' => '%1$s - %2$s~~',
'Class:Software/ComplementaryName' => '%1$s - %2$s',
'Class:Software/Attribute:name' => 'Название',
'Class:Software/Attribute:name+' => '',
'Class:Software/Attribute:vendor' => 'Вендор',
@@ -897,8 +897,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => 'Документы',
'Class:Software/Attribute:documents_list+' => 'Все документы, связанные с этим ПО',
'Class:Software/Attribute:logo' => 'Logo~~',
'Class:Software/Attribute:logo+' => 'Used as icon for all Software Instance objects using this Software, when displayed within impact analysis graphs~~',
'Class:Software/Attribute:logo' => 'Логотип',
'Class:Software/Attribute:logo+' => 'Используется как иконка для всех экземпляров ПО, использующих это ПО, на графах анализа влияния',
'Class:Software/Attribute:type' => 'Тип',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'Сервер БД',
@@ -947,7 +947,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OSPatch/Attribute:functionalcis_list+' => 'Все системы, где установлен этот патч',
'Class:OSPatch/Attribute:osversion_id' => 'Версия ОС',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osfamily_id' => 'OS Family~~',
'Class:OSPatch/Attribute:osfamily_id' => 'Семейство ОС',
'Class:OSPatch/Attribute:osfamily_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'Версия ОС',
'Class:OSPatch/Attribute:osversion_name+' => '',
@@ -1010,11 +1010,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OSLicence' => 'Лицензия ОС',
'Class:OSLicence+' => 'Лицензия ОС',
'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~',
'Class:OSLicence/ComplementaryName' => '%1$s - %2$s',
'Class:OSLicence/Attribute:osversion_id' => 'Версия ОС',
'Class:OSLicence/Attribute:osversion_id+' => '',
'Class:OSLicence/Attribute:osfamily_id' => 'OS Family~~',
'Class:OSLicence/Attribute:osfamily_id+' => '~~',
'Class:OSLicence/Attribute:osfamily_id' => 'Семейство ОС',
'Class:OSLicence/Attribute:osfamily_id+' => '',
'Class:OSLicence/Attribute:osversion_name' => 'Версия ОС',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => 'Виртуальные машины',
@@ -1030,7 +1030,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SoftwareLicence' => 'Лицензия ПО',
'Class:SoftwareLicence+' => 'Лицензия ПО',
'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~',
'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s',
'Class:SoftwareLicence/Attribute:software_id' => 'ПО',
'Class:SoftwareLicence/Attribute:software_id+' => '',
'Class:SoftwareLicence/Attribute:software_name' => 'ПО',
@@ -1046,7 +1046,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToLicence' => 'Связь Документ/Лицензия',
'Class:lnkDocumentToLicence+' => '',
'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s',
'Class:lnkDocumentToLicence/Attribute:licence_id' => 'Лицензия',
'Class:lnkDocumentToLicence/Attribute:licence_id+' => '',
'Class:lnkDocumentToLicence/Attribute:licence_name' => 'Лицензия',
@@ -1068,8 +1068,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OSVersion/Attribute:osfamily_id+' => '',
'Class:OSVersion/Attribute:osfamily_name' => 'Семейство ОС',
'Class:OSVersion/Attribute:osfamily_name+' => '',
'Class:OSVersion/UniquenessRule:name_osfamily+' => 'Name must be unique in the OS family~~',
'Class:OSVersion/UniquenessRule:name_osfamily' => 'this OS version already exists within the OS family~~',
'Class:OSVersion/UniquenessRule:name_osfamily+' => 'Название должно быть уникальным в рамках семейства ОС',
'Class:OSVersion/UniquenessRule:name_osfamily' => 'такая версия ОС уже существует в этом семействе ОС',
]);
//
@@ -1079,8 +1079,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OSFamily' => 'Семейство ОС',
'Class:OSFamily+' => '',
'Class:OSFamily/UniquenessRule:name+' => 'Name must be unique~~',
'Class:OSFamily/UniquenessRule:name' => 'this OS family already exists~~',
'Class:OSFamily/UniquenessRule:name+' => 'Название должно быть уникальным',
'Class:OSFamily/UniquenessRule:name' => 'такое семейство ОС уже существует',
]);
//
@@ -1090,8 +1090,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Brand' => 'Бренд',
'Class:Brand+' => '',
'Class:Brand/Attribute:logo' => 'Logo~~',
'Class:Brand/Attribute:logo+' => '~~',
'Class:Brand/Attribute:logo' => 'Логотип',
'Class:Brand/Attribute:logo+' => '',
'Class:Brand/Attribute:physicaldevices_list' => 'Устройства',
'Class:Brand/Attribute:physicaldevices_list+' => 'Все устройства этого бренда',
'Class:Brand/UniquenessRule:name+' => 'Название должно быть уникальным',
@@ -1105,13 +1105,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Model' => 'Модель',
'Class:Model+' => '',
'Class:Model/ComplementaryName' => '%1$s - %2$s~~',
'Class:Model/ComplementaryName' => '%1$s - %2$s',
'Class:Model/Attribute:brand_id' => 'Бренд',
'Class:Model/Attribute:brand_id+' => '',
'Class:Model/Attribute:brand_name' => 'Бренд',
'Class:Model/Attribute:brand_name+' => '',
'Class:Model/Attribute:picture' => 'Picture~~',
'Class:Model/Attribute:picture+' => '~~',
'Class:Model/Attribute:picture' => 'Изображение',
'Class:Model/Attribute:picture+' => '',
'Class:Model/Attribute:type' => 'Тип устройства',
'Class:Model/Attribute:type+' => '',
'Class:Model/Attribute:type/Value:PowerSource' => 'Источник электропитания',
@@ -1163,8 +1163,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:NetworkDeviceType' => 'Тип сетевого устройства',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:logo' => 'Logo~~',
'Class:NetworkDeviceType/Attribute:logo+' => 'Used as icon for all Network Device of this type, when displayed in console (details, summary card and impact analysis graphs)~~',
'Class:NetworkDeviceType/Attribute:logo' => 'Логотип',
'Class:NetworkDeviceType/Attribute:logo+' => 'Используется как иконка для всех сетевых устройств этого типа в консоли (детали, карточка сводки и графы анализа влияния)',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Устройства',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Все сетевые устройства этого типа',
]);
@@ -1180,8 +1180,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:IOSVersion/Attribute:brand_id+' => '',
'Class:IOSVersion/Attribute:brand_name' => 'Бренд',
'Class:IOSVersion/Attribute:brand_name+' => '',
'Class:IOSVersion/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~',
'Class:IOSVersion/UniquenessRule:name_brand' => 'this IOS version already exists for this brand~~',
'Class:IOSVersion/UniquenessRule:name_brand+' => 'Название должно быть уникальным в рамках бренда',
'Class:IOSVersion/UniquenessRule:name_brand' => 'такая версия IOS уже существует для этого бренда',
]);
//
@@ -1191,7 +1191,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToPatch' => 'Связь Документ/Патч',
'Class:lnkDocumentToPatch+' => '',
'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s',
'Class:lnkDocumentToPatch/Attribute:patch_id' => 'Патч',
'Class:lnkDocumentToPatch/Attribute:patch_id+' => '',
'Class:lnkDocumentToPatch/Attribute:patch_name' => 'Патч',
@@ -1209,7 +1209,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Связь Экземпляр ПО/Патч ПО',
'Class:lnkSoftwareInstanceToSoftwarePatch+' => '',
'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~',
'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s',
'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwarepatch_id' => 'Патч ПО',
'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwarepatch_id+' => '',
'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwarepatch_name' => 'Патч ПО',
@@ -1227,7 +1227,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkFunctionalCIToOSPatch' => 'Связь Функциональная КЕ/Патч ОС',
'Class:lnkFunctionalCIToOSPatch+' => '',
'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id' => 'Патч ОС',
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id+' => '',
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_name' => 'Патч ОС',
@@ -1245,7 +1245,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToSoftware' => 'Связь Документ/ПО',
'Class:lnkDocumentToSoftware+' => '',
'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s',
'Class:lnkDocumentToSoftware/Attribute:software_id' => 'ПО',
'Class:lnkDocumentToSoftware/Attribute:software_id+' => '',
'Class:lnkDocumentToSoftware/Attribute:software_name' => 'ПО',
@@ -1263,8 +1263,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Subnet' => 'Подсеть',
'Class:Subnet+' => '',
'Class:Subnet/Name' => '%1$s/%2$s~~',
'Class:Subnet/ComplementaryName' => '%1$s - %2$s~~',
'Class:Subnet/Name' => '%1$s/%2$s',
'Class:Subnet/ComplementaryName' => '%1$s - %2$s',
'Class:Subnet/Attribute:description' => 'Описание',
'Class:Subnet/Attribute:description+' => '',
'Class:Subnet/Attribute:subnet_name' => 'Имя подсети',
@@ -1309,7 +1309,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkSubnetToVLAN' => 'Связь Подсеть/VLAN',
'Class:lnkSubnetToVLAN+' => '',
'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~',
'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s',
'Class:lnkSubnetToVLAN/Attribute:subnet_id' => 'Подсеть',
'Class:lnkSubnetToVLAN/Attribute:subnet_id+' => '',
'Class:lnkSubnetToVLAN/Attribute:subnet_ip' => 'IP-адрес подсети',
@@ -1363,7 +1363,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PhysicalInterface' => 'Физический интерфейс',
'Class:PhysicalInterface+' => '',
'Class:PhysicalInterface/Name' => '%2$s %1$s~~',
'Class:PhysicalInterface/Name' => '%2$s %1$s',
'Class:PhysicalInterface/Attribute:connectableci_id' => 'Устройства',
'Class:PhysicalInterface/Attribute:connectableci_id+' => '',
'Class:PhysicalInterface/Attribute:connectableci_name' => 'Устройства',
@@ -1379,7 +1379,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkPhysicalInterfaceToVLAN' => 'Связь Физический интерфейс/VLAN',
'Class:lnkPhysicalInterfaceToVLAN+' => '',
'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~',
'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s',
'Class:lnkPhysicalInterfaceToVLAN/Attribute:physicalinterface_id' => 'Физический интерфейс',
'Class:lnkPhysicalInterfaceToVLAN/Attribute:physicalinterface_id+' => '',
'Class:lnkPhysicalInterfaceToVLAN/Attribute:physicalinterface_name' => 'Физический интерфейс',
@@ -1433,7 +1433,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkConnectableCIToNetworkDevice' => 'Связь Подключаемая КЕ/Сетевое устройство',
'Class:lnkConnectableCIToNetworkDevice+' => '',
'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~',
'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s',
'Class:lnkConnectableCIToNetworkDevice/Attribute:networkdevice_id' => 'Сетевое устройство',
'Class:lnkConnectableCIToNetworkDevice/Attribute:networkdevice_id+' => '',
'Class:lnkConnectableCIToNetworkDevice/Attribute:networkdevice_name' => 'Сетевое устройство',
@@ -1461,7 +1461,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkApplicationSolutionToFunctionalCI' => 'Связь Прикладное решение/Функциональная КЕ',
'Class:lnkApplicationSolutionToFunctionalCI+' => '',
'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~',
'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkApplicationSolutionToFunctionalCI/Attribute:applicationsolution_id' => 'Прикладное решение',
'Class:lnkApplicationSolutionToFunctionalCI/Attribute:applicationsolution_id+' => '',
'Class:lnkApplicationSolutionToFunctionalCI/Attribute:applicationsolution_name' => 'Прикладное решение',
@@ -1479,7 +1479,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkApplicationSolutionToBusinessProcess' => 'Связь Прикладное решение/Бизнес-процесс',
'Class:lnkApplicationSolutionToBusinessProcess+' => '',
'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~',
'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s',
'Class:lnkApplicationSolutionToBusinessProcess/Attribute:businessprocess_id' => 'Бизнес-процесс',
'Class:lnkApplicationSolutionToBusinessProcess/Attribute:businessprocess_id+' => '',
'Class:lnkApplicationSolutionToBusinessProcess/Attribute:businessprocess_name' => 'Бизнес-процесс',
@@ -1497,7 +1497,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Group' => 'Группа',
'Class:Group+' => '',
'Class:Group/ComplementaryName' => '%1$s - %2$s~~',
'Class:Group/ComplementaryName' => '%1$s - %2$s',
'Class:Group/Attribute:name' => 'Название',
'Class:Group/Attribute:name+' => '',
'Class:Group/Attribute:status' => 'Статус',
@@ -1533,7 +1533,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkGroupToCI' => 'Связь Группа/КЕ',
'Class:lnkGroupToCI+' => '',
'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~',
'Class:lnkGroupToCI/Name' => '%1$s / %2$s',
'Class:lnkGroupToCI/Attribute:group_id' => 'Группа',
'Class:lnkGroupToCI/Attribute:group_id+' => '',
'Class:lnkGroupToCI/Attribute:group_name' => 'Группа',
@@ -1549,20 +1549,20 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
// Add translation for Fieldsets
Dict::Add('RU RU', 'Russian', 'Русский', [
'ConfigMgmt:baseinfo' => 'General~~',
'ConfigMgmt:moreinfo' => 'CI specifics~~',
'Storage:moreinfo' => 'Storage specifics~~',
'ConfigMgmt:otherinfo' => 'Description~~',
'ConfigMgmt:dates' => 'Dates~~',
'Software:moreinfo' => 'Software specifics~~',
'Phone:moreinfo' => 'Phone specifics~~',
'ConfigMgmt:baseinfo' => 'Общее',
'ConfigMgmt:moreinfo' => 'Особенности КЕ',
'Storage:moreinfo' => 'Особенности системы хранения',
'ConfigMgmt:otherinfo' => 'Описание',
'ConfigMgmt:dates' => 'Даты',
'Software:moreinfo' => 'Особенности ПО',
'Phone:moreinfo' => 'Особенности телефона',
'Server:baseinfo' => 'Основное',
'Server:Date' => 'Даты',
'Server:moreinfo' => 'Спецификация',
'Server:otherinfo' => 'Дополнительно',
'Server:power' => 'Электропитание',
'Class:Subnet/Tab:IPUsage' => 'Использование IP-адресов',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Какие IP в этой подсети используются, а какие нет',
'Class:Subnet/Tab:IPUsage-explain' => 'Интерфейсы с IP-адресом в диапазоне: <em>%1$s</em> - <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Свободные IP-адреса',
'Class:Subnet/Tab:FreeIPs-count' => 'Свободных IP-адресов: %1$s',
@@ -1577,7 +1577,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToFunctionalCI' => 'Связь Документ/Функциональная КЕ',
'Class:lnkDocumentToFunctionalCI+' => '',
'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_id' => 'Функциональная КЕ',
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_name' => 'Функциональная КЕ',
@@ -1644,8 +1644,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:PhysicalInterface/Attribute:org_id' => 'Organization~~',
'Class:PhysicalInterface/Attribute:org_id+' => '~~',
'Class:PhysicalInterface/Attribute:location_id' => 'Location~~',
'Class:PhysicalInterface/Attribute:location_id+' => '~~',
'Class:PhysicalInterface/Attribute:org_id' => 'Организация',
'Class:PhysicalInterface/Attribute:org_id+' => '',
'Class:PhysicalInterface/Attribute:location_id' => 'Местоположение',
'Class:PhysicalInterface/Attribute:location_id+' => '',
]);

View File

@@ -12,7 +12,7 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:ConfigFileEditor' => 'Plain text editor~~',
'Menu:ConfigFileEditor' => 'Текстовый редактор',
'itop-config/Operation:Edit/Title' => 'Редактор файла конфигурации',
'config-edit-intro' => 'Будьте очень осторожны при редактировании файла конфигурации. В частности, отредактированы могут быть только глобальная конфигурация и настройки модулей.',
'Menu:ConfigEditor' => 'Основные настройки',
@@ -26,8 +26,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'config-parse-error' => 'Строка %2$d: %1$s.<br/>Файл не был обновлен.',
'config-current-line' => 'Редактируемая строка: %1$s',
'config-saved-warning-db-password' => 'Изменения успешно сохранены, но резервная копия не будет работать из-за неподдерживаемых символов в пароле базы данных.',
'config-error-transaction' => 'Error: invalid Transaction ID. The configuration was <b>NOT</b> modified.~~',
'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~',
'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in <b>demonstration mode</b>: the configuration file cannot be edited.~~',
'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See <code>\'config_editor\' => \'disabled\'</code> in the configuration file.~~',
'config-error-transaction' => 'Ошибка: недопустимый ID транзакции. Конфигурация <b>НЕ</b> была изменена.',
'config-error-file-changed' => 'Ошибка: файл конфигурации изменился с момента открытия, сохранение невозможно. Обновите страницу и примените изменения заново.',
'config-not-allowed-in-demo' => 'Извините, '.ITOP_APPLICATION_SHORT.' работает в <b>демонстрационном режиме</b>: файл конфигурации нельзя редактировать.',
'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.': интерактивное редактирование конфигурации отключено. См. <code>\'config_editor\' => \'disabled\'</code> в файле конфигурации.',
]);

View File

@@ -0,0 +1,177 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
/**
* @author Vladimir Kunin <v.b.kunin@gmail.com>
*
*/
//
// Fieldsets for Container classes
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Container:baseinfo' => 'Общее',
'Container:moreinfo' => 'Особенности контейнеризации',
'Container:otherinfo' => 'Даты и описание',
]);
//
// Class Container Image
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerImage/Name' => '%1$s %2$s',
'Class:ContainerImage/ComplementaryName' => '%1$s - %2$s',
'Class:ContainerImage' => 'Образ контейнера',
'Class:ContainerImage+' => 'Образ ПО, готового к запуску в контейнере',
'Class:ContainerImage/Attribute:name' => 'Название',
'Class:ContainerImage/Attribute:name+' => '',
'Class:ContainerImage/Attribute:version' => 'Версия',
'Class:ContainerImage/Attribute:version+' => '',
'Class:ContainerImage/Attribute:description' => 'Описание',
'Class:ContainerImage/Attribute:description+' => '',
'Class:ContainerImage/Attribute:publisher' => 'Издатель',
'Class:ContainerImage/Attribute:publisher+' => 'Издатель образа, например php, nginx и т. д.',
'Class:ContainerImage/Attribute:image' => 'Образ',
'Class:ContainerImage/Attribute:image+' => 'Подробная информация для получения образа на соответствующей платформе хостинга',
'Class:ContainerImage/Attribute:type_id' => 'Тип',
'Class:ContainerImage/Attribute:type_id+' => 'Тип образа',
'Class:ContainerImage/Attribute:software_id' => 'ПО',
'Class:ContainerImage/Attribute:software_id+' => '',
'Class:ContainerImage/Attribute:containerapplications_list' => 'Контейнерные приложения',
'Class:ContainerImage/Attribute:containerapplications_list+' => 'Приложения, для которых используется этот образ',
]);
//
// Class Container Application
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerApplication/Name' => '%1$s',
'Class:ContainerApplication/ComplementaryName' => '%1$s',
'Class:ContainerApplication' => 'Контейнерное приложение',
'Class:ContainerApplication+' => 'Приложение, развёрнутое на платформе контейнеризации',
'Class:ContainerApplication/Attribute:descriptor' => 'Файл развёртывания',
'Class:ContainerApplication/Attribute:descriptor+' => 'Файл, описывающий развёртывание приложения на платформе контейнеризации (например, Docker Compose, Helm Chart и т. д.)',
'Class:ContainerApplication/Attribute:containervirtualhost_id' => 'Хост контейнеров',
'Class:ContainerApplication/Attribute:containervirtualhost_id+' => 'Платформа контейнеризации, на которой выполняется приложение',
'Class:ContainerApplication/Attribute:logo' => 'Логотип',
'Class:ContainerApplication/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:ContainerApplication/Attribute:containertype_id' => 'Тип контейнеризации',
'Class:ContainerApplication/Attribute:containertype_id+' => 'Технология, используемая для контейнеризации',
'Class:ContainerApplication/Attribute:containerimages_list' => 'Образы контейнеров',
'Class:ContainerApplication/Attribute:containerimages_list+' => 'Образы ПО, используемые для сборки контейнерного приложения',
]);
//
// Class: lnkContainerApplicationToImage
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContainerApplicationToImage' => 'Связь Контейнерное приложение / Образ',
'Class:lnkContainerApplicationToImage+' => '',
'Class:lnkContainerApplicationToImage/Name' => '%1$s / %2$s',
'Class:lnkContainerApplicationToImage/Name+' => '',
'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id' => 'Контейнерное приложение',
'Class:lnkContainerApplicationToImage/Attribute:containerapplication_id+' => 'Приложение, использующее этот образ',
'Class:lnkContainerApplicationToImage/Attribute:containerimage_id' => 'Образ контейнера',
'Class:lnkContainerApplicationToImage/Attribute:containerimage_id+' => 'Образ ПО, используемый для сборки контейнерного приложения',
]);
//
// Class Container Virtual Host
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerVirtualHost/Name' => '%1$s',
'Class:ContainerVirtualHost/ComplementaryName' => '',
'Class:ContainerVirtualHost' => 'Платформа контейнеризации',
'Class:ContainerVirtualHost+' => 'Платформа, на которой приложения выполняются в виде контейнеров',
'Class:ContainerVirtualHost/Attribute:containertype_id' => 'Тип контейнеризации',
'Class:ContainerVirtualHost/Attribute:containertype_id+' => 'Технология, обеспечивающая контейнеризацию',
'Class:ContainerVirtualHost/Attribute:status' => 'Статус',
'Class:ContainerVirtualHost/Attribute:status+' => 'Статус платформы контейнеризации',
'Class:ContainerVirtualHost/Attribute:containerapplications_list' => 'Приложения',
'Class:ContainerVirtualHost/Attribute:containerapplications_list+' => 'Приложения, выполняющиеся в этом контейнерном окружении',
]);
//
// Class Container Host
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerHost/Name' => '%1$s',
'Class:ContainerHost/ComplementaryName' => '%1$s-%2$s',
'Class:ContainerHost' => 'Хост контейнеров',
'Class:ContainerHost+' => 'Хост, выделенный под контейнеры. Базовый элемент платформы контейнеризации',
'Class:ContainerHost/Attribute:containercluster_id' => 'Кластер контейнеров',
'Class:ContainerHost/Attribute:containercluster_id+' => '',
'Class:ContainerHost/Attribute:role' => 'Роль',
'Class:ContainerHost/Attribute:role+' => 'Роль хоста в кластере: master или worker. Standalone, если хост не входит в кластер.',
'Class:ContainerHost/Attribute:system_id' => 'Система',
'Class:ContainerHost/Attribute:system_id+' => 'Системой может быть сервер, виртуальная машина, облако и т. д.',
'Class:ContainerHost/Attribute:role/Value:master' => 'Мастер',
'Class:ContainerHost/Attribute:role/Value:worker' => 'Воркер',
'Class:ContainerHost/Attribute:role/Value:standalone' => 'Автономный',
]);
//
// Class Container Cluster
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerCluster/Name' => '%1$s',
'Class:ContainerCluster/ComplementaryName' => '',
'Class:ContainerCluster' => 'Кластер контейнеров',
'Class:ContainerCluster+' => 'Платформа контейнеризации, состоящая из кластера хостов контейнеров',
'Class:ContainerCluster/Attribute:redundancy' => 'Конфигурация резервирования',
'Class:ContainerCluster/Attribute:redundancy/disabled' => 'Кластер в работе, если все его хосты в работе',
'Class:ContainerCluster/Attribute:redundancy/count' => 'Кластер в работе, если по крайней мере %1$s хост(-ов) в работе',
'Class:ContainerCluster/Attribute:redundancy/percent' => 'Кластер в работе, если по крайней мере %1$s %% хостов в работе',
'Class:ContainerCluster/Attribute:containerhosts_list' => 'Хосты контейнеров',
'Class:ContainerCluster/Attribute:containerhosts_list+' => 'Хосты, входящие в этот кластер',
]);
//
// Class Container Type
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerType/Name' => '%1$s',
'Class:ContainerType/ComplementaryName' => '',
'Class:ContainerType' => 'Тип контейнеризации',
'Class:ContainerType+' => 'Технология, обеспечивающая контейнеризацию',
]);
//
// Class Container Type
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ContainerImageType/Name' => '%1$s',
'Class:ContainerImageType/ComplementaryName' => '',
'Class:ContainerImageType' => 'Тип образа контейнера',
'Class:ContainerImageType+' => 'Типология образов контейнеров',
]);
//
// Class Cloud, Server and Virtual Machine
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Cloud/Attribute:containerhosts_list' => 'Хосты контейнеров',
'Class:Cloud/Attribute:containerhosts_list+' => 'Список хостов контейнеров, работающих в этом облаке',
'Class:Server/Attribute:containerhosts_list' => 'Хосты контейнеров',
'Class:Server/Attribute:containerhosts_list+' => 'Список хостов контейнеров, работающих на этом сервере',
'Class:VirtualMachine/Attribute:containerhosts_list' => 'Хосты контейнеров',
'Class:VirtualMachine/Attribute:containerhosts_list+' => 'Список хостов контейнеров, работающих на этой виртуальной машине',
'Class:Software/Attribute:containerimages_list' => 'Образы контейнеров',
'Class:Software/Attribute:containerimages_list+' => 'Список образов контейнеров, использующих это ПО',
]);

View File

@@ -42,7 +42,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'iTopUpdate:UI:WarningReadOnlyDuringUpdate' => 'Во время обновления приложение будет доступно только для чтения.',
'iTopUpdate:UI:Status' => 'Статус',
'iTopUpdate:UI:Action' => 'Обновление',
'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup~~',
'iTopUpdate:UI:Setup' => 'Установка '.ITOP_APPLICATION_SHORT.'',
'iTopUpdate:UI:History' => 'История версий',
'iTopUpdate:UI:Progress' => 'Ход обновления',
'iTopUpdate:UI:Backup:Label' => 'Создать резервную копию базы данных',
@@ -59,12 +59,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Ошибка проверки файловой системы',
'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Приложение может быть обновлено',
'iTopUpdate:UI:CanCoreUpdate:No' => 'Приложение не может быть обновлено: %1$s',
'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Warning: application update can fail: %1$s~~',
'iTopUpdate:UI:CannotUpdateUseSetup' => '<b>Some modified files were detected</b>, a partial update cannot be executed.</br>Follow the <a target="_blank" href="%2$s"> procedure</a> in order to manually upgrade your iTop. You must use the <a href="%1$s">setup</a> to update the application.~~',
'iTopUpdate:UI:CheckInProgress' => 'Please wait during integrity check~~',
'iTopUpdate:UI:SetupLaunch' => 'Launch '.ITOP_APPLICATION_SHORT.' Setup~~',
'iTopUpdate:UI:SetupLaunchConfirm' => 'This will launch '.ITOP_APPLICATION_SHORT.' setup, are you sure?~~',
'iTopUpdate:UI:FastSetupLaunch' => 'Fast Setup~~',
'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Внимание: обновление приложения может завершиться неудачей: %1$s',
'iTopUpdate:UI:CannotUpdateUseSetup' => '<b>Обнаружены изменённые файлы</b>, частичное обновление невозможно.</br>Следуйте <a target="_blank" href="%2$s">инструкции</a>, чтобы обновить iTop вручную. Для обновления приложения нужно использовать <a href="%1$s">установщик</a>.',
'iTopUpdate:UI:CheckInProgress' => 'Пожалуйста, подождите, идёт проверка целостности',
'iTopUpdate:UI:SetupLaunch' => 'Запустить установщик '.ITOP_APPLICATION_SHORT.'',
'iTopUpdate:UI:SetupLaunchConfirm' => 'Это запустит установщик '.ITOP_APPLICATION_SHORT.', вы уверены?',
'iTopUpdate:UI:FastSetupLaunch' => 'Быстрая установка',
'iTopUpdate:UI:SetupMessage:Ready' => 'Всё готово к началу',
'iTopUpdate:UI:SetupMessage:EnterMaintenance' => 'Переход в режим технического обслуживания',
'iTopUpdate:UI:SetupMessage:Backup' => 'Резервное копирование базы данных',

View File

@@ -45,7 +45,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
]);
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:ProblemManagement' => 'Управление проблемами',
'Menu:ProblemManagement+' => 'An ITIL process that identifies root causes of incidents, documents Known Errors and FAQs, in order to reduce helpdesk workload~~',
'Menu:ProblemManagement+' => 'Процесс ITIL, который выявляет первопричины инцидентов, документирует известные ошибки и FAQ, чтобы снизить нагрузку на службу поддержки',
'Menu:Problem:Shortcuts' => 'Ярлыки',
'Menu:FAQCategory' => 'Категории FAQ',
'Menu:FAQCategory+' => 'Категории FAQ',

View File

@@ -14,6 +14,6 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'FilesInformation:Error:MissingFile' => 'Файл %1$s отсутствует',
'FilesInformation:Error:CorruptedFile' => 'Файл %1$s повреждён',
'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~',
'FilesInformation:Error:ListCorruptedFile' => 'Повреждённые файлы: %1$s ',
'FilesInformation:Error:CantWriteToFile' => 'Невозможно выполнить запись в файл %1$s',
]);

View File

@@ -0,0 +1,77 @@
<?php
/**
* Module combodo-flow-map
*
* @copyright Copyright (C) 2026 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Relation:dataflows/Description' => 'Gegevensstromen tussen CIs',
'Relation:dataflows/DownStream' => 'Uitgaande stromen...',
'Relation:dataflows/DownStream+' => 'Uitgaande gegevensstromen van',
'Relation:dataflows/UpStream' => 'Inkomende stromen...',
'Relation:dataflows/UpStream+' => 'Inkomende gegevensstromen van',
'Class:FunctionalCI/Attribute:dataflows' => 'Gegevensstromen',
'Class:FunctionalCI/Attribute:dataflows+' => 'Gegevensstromen waarbij dit object de bron of de bestemming is.',
'FunctionalCI:DataFlow:Title' => 'Gegevensstromen',
'FunctionalCI:DataFlow:Inbound' => 'Inkomende stromen',
'FunctionalCI:DataFlow:Outbound' => 'Uitgaande stromen',
'DataFlow:moreinfo' => 'Gegevensstroom informatie',
'Class:DataFlow' => 'Gegevensstroom',
'Class:DataFlow+' => 'Bijvoorbeeld voor de gegevensstroom in een applicatie.',
'Class:DataFlow/ComplementaryName' => '%1$s - %2$s',
'Class:DataFlow/Attribute:name' => 'Naam',
'Class:DataFlow/Attribute:name+' => 'Identificeer de gegevensstroom',
'Class:DataFlow/Attribute:source_id' => 'Bron',
'Class:DataFlow/Attribute:source_id+' => 'Bron CI van de gegevensstroom',
'Class:DataFlow/Attribute:source_impact' => 'Impact van de bron?',
'Class:DataFlow/Attribute:source_impact+' => 'Heeft de bron invloed op de gegevensstroom?',
'Class:DataFlow/Attribute:source_impact/Value:yes' => 'Ja',
'Class:DataFlow/Attribute:source_impact/Value:yes+' => 'Als de bron uitvalt, wordt de gegevensstroom beïnvloed.',
'Class:DataFlow/Attribute:source_impact/Value:no' => 'Nee',
'Class:DataFlow/Attribute:source_impact/Value:no+' => 'Als de bron uitvalt, wordt de gegevensstroom niet beïnvloed.',
'Class:DataFlow/Attribute:destination_id' => 'Bestemming',
'Class:DataFlow/Attribute:destination_id+' => 'Bestemmings CI van de gegevensstroom',
'Class:DataFlow/Attribute:destination_impact' => 'Bestemming geïmpacteerd?',
'Class:DataFlow/Attribute:destination_impact+' => 'Wordt de bestemming beïnvloed door de gegevensstroom?',
'Class:DataFlow/Attribute:destination_impact/Value:yes' => 'Ja',
'Class:DataFlow/Attribute:destination_impact/Value:yes+' => 'Als de gegevensstroom stopt, heeft dat gevolgen voor de bestemming.',
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'Nee',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Als de gegevensstroom stopt, heeft dit geen gevolgen voor de bestemming.',
'Class:DataFlow/Attribute:dataflowtype_id' => 'Type',
'Class:DataFlow/Attribute:dataflowtype_id+' => 'Soort gegevensstroom',
'Class:DataFlow/Attribute:status' => 'Status',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'Actief',
'Class:DataFlow/Attribute:status/Value:inactive' => 'Inactief',
'Class:DataFlow/Attribute:execution_frequency' => 'Uitvoeringsfrequentie',
'Class:DataFlow/Attribute:execution_frequency+' => 'Hoe vaak de gegevensstroom wordt uitgevoerd.',
'Class:DataFlow/Attribute:execution_frequency/Value:realtime' => 'Realtime',
'Class:DataFlow/Attribute:execution_frequency/Value:realtime+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:ondemand' => 'Op aanvraag',
'Class:DataFlow/Attribute:execution_frequency/Value:ondemand+' => 'Spontaan, niet gepland',
'Class:DataFlow/Attribute:execution_frequency/Value:hourly' => 'Ieder uur',
'Class:DataFlow/Attribute:execution_frequency/Value:hourly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:daily' => 'Dagelijks',
'Class:DataFlow/Attribute:execution_frequency/Value:daily+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:weekly' => 'Wekelijks',
'Class:DataFlow/Attribute:execution_frequency/Value:weekly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:monthly' => 'Maandelijks',
'Class:DataFlow/Attribute:execution_frequency/Value:monthly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly' => 'Jaarlijks',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '',
'Class:DataFlow/Attribute:documents_list+' => 'Bv: Technische specificaties, runbooks, enz.',
'Class:DataFlow/Attribute:contacts_list+' => 'Bv: Proceseigenaar, technische ondersteuning, enz.',
'Class:DataFlow/Error:CheckSource' => 'De bron van een gegevensstroom mag niet zelf een gegevensstroom zijn. Kies een andere bron-CI dan %1$s',
'Class:DataFlow/Error:CheckDestination' => 'De bestemming van een dataflow mag niet zelf een gegevensstroom zijn. Kies een andere bestemmings-CI dan %1$s',
'Class:DataFlowType' => 'Soort gegevensstroom',
'Class:DataFlowType+' => '',
]);

View File

@@ -0,0 +1,95 @@
<?php
/**
* Module combodo-flow-map
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
/**
* @author Vladimir Kunin <v.b.kunin@gmail.com>
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Relation:dataflows/Description' => 'Потоки данных между КЕ',
'Relation:dataflows/DownStream' => 'Исходящие потоки...',
'Relation:dataflows/DownStream+' => 'Карта исходящих потоков от',
'Relation:dataflows/UpStream' => 'Входящие потоки...',
'Relation:dataflows/UpStream+' => 'Карта входящих потоков к',
'Class:FunctionalCI/Attribute:dataflows' => 'Потоки данных',
'Class:FunctionalCI/Attribute:dataflows+' => 'Потоки данных, для которых этот объект является источником или назначением',
'FunctionalCI:DataFlow:Title' => 'Потоки данных',
'FunctionalCI:DataFlow:Inbound' => 'Входящие потоки',
'FunctionalCI:DataFlow:Outbound' => 'Исходящие потоки',
'DataFlow:moreinfo' => 'Особенности потока',
'Class:DataFlow' => 'Поток',
'Class:DataFlow+' => 'Например, для потока приложения',
'Class:DataFlow/ComplementaryName' => '%1$s - %2$s',
'Class:DataFlow/Attribute:name' => 'Название',
'Class:DataFlow/Attribute:name+' => 'Идентифицирует передаваемый поток данных',
'Class:DataFlow/Attribute:source_id' => 'Источник',
'Class:DataFlow/Attribute:source_id+' => 'КЕ-источник потока',
'Class:DataFlow/Attribute:source_impact' => 'Источник влияет?',
'Class:DataFlow/Attribute:source_impact+' => 'Влияет ли источник на поток?',
'Class:DataFlow/Attribute:source_impact/Value:yes' => 'да',
'Class:DataFlow/Attribute:source_impact/Value:yes+' => 'Если источник выходит из строя, поток нарушается',
'Class:DataFlow/Attribute:source_impact/Value:no' => 'нет',
'Class:DataFlow/Attribute:source_impact/Value:no+' => 'Если источник выходит из строя, поток не нарушается',
'Class:DataFlow/Attribute:destination_id' => 'Назначение',
'Class:DataFlow/Attribute:destination_id+' => 'КЕ-назначение потока',
'Class:DataFlow/Attribute:destination_impact' => 'Назначение подвержено влиянию',
'Class:DataFlow/Attribute:destination_impact+' => 'Подвержено ли назначение влиянию потока?',
'Class:DataFlow/Attribute:destination_impact/Value:yes' => 'да',
'Class:DataFlow/Attribute:destination_impact/Value:yes+' => 'Если поток останавливается, назначение подвержено влиянию',
'Class:DataFlow/Attribute:destination_impact/Value:no' => 'нет',
'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Если поток останавливается, назначение не подвержено влиянию',
'Class:DataFlow/Attribute:dataflowtype_id' => 'Тип потока',
'Class:DataFlow/Attribute:dataflowtype_id+' => 'Типология потока.',
'Class:DataFlow/Attribute:status' => 'Статус',
'Class:DataFlow/Attribute:status+' => '',
'Class:DataFlow/Attribute:status/Value:active' => 'активен',
'Class:DataFlow/Attribute:status/Value:inactive' => 'неактивен',
'Class:DataFlow/Attribute:execution_frequency' => 'Периодичность выполнения',
'Class:DataFlow/Attribute:execution_frequency+' => 'Как часто выполняется поток данных',
'Class:DataFlow/Attribute:execution_frequency/Value:realtime' => 'в реальном времени',
'Class:DataFlow/Attribute:execution_frequency/Value:realtime+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:ondemand' => 'по запросу',
'Class:DataFlow/Attribute:execution_frequency/Value:ondemand+' => 'по требованию, без расписания',
'Class:DataFlow/Attribute:execution_frequency/Value:hourly' => 'ежечасно',
'Class:DataFlow/Attribute:execution_frequency/Value:hourly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:daily' => 'ежедневно',
'Class:DataFlow/Attribute:execution_frequency/Value:daily+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:weekly' => 'еженедельно',
'Class:DataFlow/Attribute:execution_frequency/Value:weekly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:monthly' => 'ежемесячно',
'Class:DataFlow/Attribute:execution_frequency/Value:monthly+' => '',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly' => 'ежегодно',
'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '',
'Class:DataFlow/Attribute:documents_list+' => 'Например: технические спецификации, регламенты и т. д.',
'Class:DataFlow/Attribute:contacts_list+' => 'Например: владелец потока, техническая поддержка и т. д.',
'Class:DataFlow/Error:CheckSource' => 'Источником потока данных не может быть другой поток данных. Выберите другую КЕ-источник, отличную от %1$s',
'Class:DataFlow/Error:CheckDestination' => 'Назначением потока данных не может быть другой поток данных. Выберите другую КЕ-назначение, отличную от %1$s',
'Class:DataFlowType' => 'Тип потока данных',
'Class:DataFlowType+' => 'Типология потоков данных',
/*
'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname',
'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name',
'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class',
'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class',
'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete',
'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname',
'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name',
'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class',
'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class',
'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete',
'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes',
*/
]);

View File

@@ -15,55 +15,55 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:iTopHub' => 'iTop Hub',
'Menu:iTopHub:Register' => 'Подключение к iTop Hub',
'Menu:iTopHub:Register+' => 'Перейдите в iTop Hub, чтобы обновить ваш экземпляр '.ITOP_APPLICATION_SHORT,
'Menu:iTopHub:Register:Description' => '<p>Get access to your community platform iTop Hub!<br>Find all the content and information you need, manage your instances through personalized tools & install more extensions.<br><br>By connecting to the Hub from this page, you will push information about this '.ITOP_APPLICATION_SHORT.' instance into the Hub.</p>~~',
'Menu:iTopHub:Register:Description' => '<p>Получите доступ к вашей платформе сообщества iTop Hub!<br>Найдите весь необходимый контент и информацию, управляйте своими инстансами через персонализированные инструменты и устанавливайте дополнительные расширения.<br><br>Подключившись к Hub с этой страницы, вы отправите информацию об этом инстансе '.ITOP_APPLICATION_SHORT.' в Hub.</p>',
'Menu:iTopHub:MyExtensions' => 'Установленные расширения',
'Menu:iTopHub:MyExtensions+' => 'Расширения, развернутые на данном экземпляре '.ITOP_APPLICATION_SHORT,
'Menu:iTopHub:BrowseExtensions' => 'Получить расширения из iTop Hub',
'Menu:iTopHub:BrowseExtensions+' => 'Найдите дополнительные расширения на iTop Hub',
'Menu:iTopHub:BrowseExtensions:Description' => '<p>Look into iTop Hubs store, your one stop place to find wonderful iTop extensions !<br>Find the ones that will help you customize and adapt '.ITOP_APPLICATION_SHORT.' to your processes.<br><br>By connecting to the Hub from this page, you will push information about this '.ITOP_APPLICATION_SHORT.' instance into the Hub.</p>',
'iTopHub:GoBtn' => 'Go To iTop Hub~~',
'iTopHub:CloseBtn' => 'Close~~',
'iTopHub:GoBtn:Tooltip' => 'Jump to www.itophub.io~~',
'iTopHub:OpenInNewWindow' => 'Open iTop Hub in a new window~~',
'iTopHub:AutoSubmit' => 'Don\'t ask me again. Next time, go to iTop Hub automatically.~~',
'UI:About:RemoteExtensionSource' => 'iTop Hub~~',
'iTopHub:Explanation' => 'By clicking this button you will be redirected to iTop Hub.~~',
'iTopHub:BackupFreeDiskSpaceIn' => '%1$s free disk space in %2$s.~~',
'iTopHub:FailedToCheckFreeDiskSpace' => 'Failed to check free disk space.~~',
'iTopHub:BackupOk' => 'Backup Ok.~~',
'iTopHub:BackupFailed' => 'Backup failed!~~',
'iTopHub:Landing:Status' => 'Deployment status~~',
'iTopHub:Landing:Install' => 'Deploying extensions...~~',
'iTopHub:CompiledOK' => 'Compilation successful.~~',
'iTopHub:ConfigurationSafelyReverted' => 'Error detected during deployment!<br>'.ITOP_APPLICATION_SHORT.' configuration has NOT been modified.~~',
'iTopHub:FailAuthent' => 'Authentication failed for this action.~~',
'iTopHub:InstalledExtensions' => 'Extensions deployed on this instance~~',
'iTopHub:ExtensionCategory:Manual' => 'Extensions deployed manually~~',
'iTopHub:ExtensionCategory:Manual+' => 'The following extensions have been deployed by copying them manually in the %1$s directory of '.ITOP_APPLICATION_SHORT.':~~',
'iTopHub:ExtensionCategory:Remote' => 'Extensions deployed from iTop Hub~~',
'iTopHub:ExtensionCategory:Remote+' => 'The following extensions have been deployed from iTop Hub:~~',
'iTopHub:NoExtensionInThisCategory' => 'There is no extension in this category~~',
'iTopHub:NoExtensionInThisCategory+' => 'Browse iTop Hub to find the extensions that will help you customize and adapt '.ITOP_APPLICATION_SHORT.' to your processes !~~',
'iTopHub:ExtensionNotInstalled' => 'Not installed~~',
'iTopHub:GetMoreExtensions' => 'Get extensions from iTop Hub...~~',
'iTopHub:LandingWelcome' => 'Congratulations! The following extensions were downloaded from iTop Hub and deployed into your '.ITOP_APPLICATION_SHORT.'.~~',
'iTopHub:GoBackToITopBtn' => 'Go Back to '.ITOP_APPLICATION_SHORT.'~~',
'iTopHub:Uncompressing' => 'Uncompressing extensions...~~',
'iTopHub:InstallationWelcome' => 'Installation of the extensions downloaded from iTop Hub~~',
'iTopHub:DBBackupLabel' => 'Instance backup~~',
'iTopHub:DBBackupSentence' => 'Do a backup of the database and '.ITOP_APPLICATION_SHORT.' configuration before updating~~',
'iTopHub:DeployBtn' => 'Deploy !~~',
'iTopHub:DatabaseBackupProgress' => 'Instance backup...~~',
'iTopHub:InstallationEffect:Install' => 'Version: %1$s will be installed.~~',
'iTopHub:InstallationEffect:NoChange' => 'Version: %1$s already installed. Nothing will change.~~',
'iTopHub:InstallationEffect:Upgrade' => 'Will be <b>upgraded</b> from version %1$s to version %2$s.~~',
'iTopHub:InstallationEffect:Downgrade' => 'Will be <b>DOWNGRADED</b> from version %1$s to version %2$s.~~',
'iTopHub:InstallationProgress:DatabaseBackup' => ITOP_APPLICATION_SHORT.' Instance backup...~~',
'iTopHub:InstallationProgress:ExtensionsInstallation' => 'Installation of the extensions~~',
'iTopHub:InstallationEffect:MissingDependencies' => 'This extension cannot be installed because of unmet dependencies.~~',
'iTopHub:InstallationEffect:MissingDependencies_Details' => 'The extension requires the module(s): %1$s~~',
'iTopHub:InstallationProgress:InstallationSuccessful' => 'Installation successful!~~',
'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~',
'iTopHub:InstallationStatus:Installed' => 'Installed~~',
'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s <b>NOT</b> installed.~~',
'iTopHub:GoBtn' => 'Перейти в iTop Hub',
'iTopHub:CloseBtn' => 'Закрыть',
'iTopHub:GoBtn:Tooltip' => 'Перейти на www.itophub.io',
'iTopHub:OpenInNewWindow' => 'Открыть iTop Hub в новом окне',
'iTopHub:AutoSubmit' => 'Больше не спрашивать. В следующий раз переходить в iTop Hub автоматически.',
'UI:About:RemoteExtensionSource' => 'iTop Hub',
'iTopHub:Explanation' => 'При нажатии на эту кнопку вы будете перенаправлены в iTop Hub.',
'iTopHub:BackupFreeDiskSpaceIn' => 'Свободно места на диске: %1$s в %2$s.',
'iTopHub:FailedToCheckFreeDiskSpace' => 'Не удалось проверить свободное место на диске.',
'iTopHub:BackupOk' => 'Резервная копия создана успешно.',
'iTopHub:BackupFailed' => 'Ошибка создания резервной копии!',
'iTopHub:Landing:Status' => 'Статус развёртывания',
'iTopHub:Landing:Install' => 'Развёртывание расширений…',
'iTopHub:CompiledOK' => 'Компиляция выполнена успешно.',
'iTopHub:ConfigurationSafelyReverted' => 'При развёртывании обнаружена ошибка!<br>Конфигурация '.ITOP_APPLICATION_SHORT.' НЕ была изменена.',
'iTopHub:FailAuthent' => 'Не удалось выполнить аутентификацию для этого действия.',
'iTopHub:InstalledExtensions' => 'Расширения, развёрнутые в этом инстансе',
'iTopHub:ExtensionCategory:Manual' => 'Расширения, развёрнутые вручную',
'iTopHub:ExtensionCategory:Manual+' => 'Следующие расширения были развёрнуты вручную копированием в каталог %1$s '.ITOP_APPLICATION_SHORT.':',
'iTopHub:ExtensionCategory:Remote' => 'Расширения, развёрнутые из iTop Hub',
'iTopHub:ExtensionCategory:Remote+' => 'Следующие расширения были развёрнуты из iTop Hub:',
'iTopHub:NoExtensionInThisCategory' => 'В этой категории нет расширений',
'iTopHub:NoExtensionInThisCategory+' => 'Просмотрите iTop Hub, чтобы найти расширения, которые помогут настроить и адаптировать '.ITOP_APPLICATION_SHORT.' под ваши процессы!',
'iTopHub:ExtensionNotInstalled' => 'Не установлено',
'iTopHub:GetMoreExtensions' => 'Получить расширения из iTop Hub',
'iTopHub:LandingWelcome' => 'Поздравляем! Следующие расширения были загружены из iTop Hub и развёрнуты в вашем '.ITOP_APPLICATION_SHORT.'.',
'iTopHub:GoBackToITopBtn' => 'Вернуться в '.ITOP_APPLICATION_SHORT.'',
'iTopHub:Uncompressing' => 'Распаковка расширений…',
'iTopHub:InstallationWelcome' => 'Установка расширений, загруженных из iTop Hub',
'iTopHub:DBBackupLabel' => 'Резервная копия инстанса',
'iTopHub:DBBackupSentence' => 'Сделайте резервную копию базы данных и конфигурации '.ITOP_APPLICATION_SHORT.' перед обновлением',
'iTopHub:DeployBtn' => 'Развернуть!',
'iTopHub:DatabaseBackupProgress' => 'Резервное копирование инстанса…',
'iTopHub:InstallationEffect:Install' => 'Версия %1$s будет установлена.',
'iTopHub:InstallationEffect:NoChange' => 'Версия %1$s уже установлена. Ничего не изменится.',
'iTopHub:InstallationEffect:Upgrade' => 'Будет <b>обновлено</b> с версии %1$s до версии %2$s.',
'iTopHub:InstallationEffect:Downgrade' => 'Версия будет <b>ПОНИЖЕНА</b> с %1$s до %2$s.',
'iTopHub:InstallationProgress:DatabaseBackup' => 'Резервное копирование инстанса '.ITOP_APPLICATION_SHORT.'',
'iTopHub:InstallationProgress:ExtensionsInstallation' => 'Установка расширений',
'iTopHub:InstallationEffect:MissingDependencies' => 'Это расширение нельзя установить из-за невыполненных зависимостей.',
'iTopHub:InstallationEffect:MissingDependencies_Details' => 'Расширению требуются модули: %1$s',
'iTopHub:InstallationProgress:InstallationSuccessful' => 'Установка выполнена успешно!',
'iTopHub:InstallationStatus:Installed_Version' => '%1$s версия: %2$s.',
'iTopHub:InstallationStatus:Installed' => 'Установлено',
'iTopHub:InstallationStatus:Version_NotInstalled' => 'Версия %1$s <b>НЕ</b> установлена.',
]);

View File

@@ -20,7 +20,7 @@ function DisplayStatus(WebPage $oPage)
if (is_dir($sPath)) {
$aExtraDirs[] = $sPath; // Also read the extra downloaded-modules directory
}
$oExtensionsMap = iTopExtensionsMap::GetExtensionsMap(ITOP_DEFAULT_ENV);
$oExtensionsMap = iTopExtensionsMap::GetExtensionsMap(ITOP_DEFAULT_ENV, $aExtraDirs);
$oExtensionsMap->LoadChoicesFromDatabase(MetaModel::GetConfig());
foreach ($oExtensionsMap->GetAllExtensions() as $oExtension) {
@@ -154,7 +154,7 @@ function DoInstall(WebPage $oPage)
if (is_dir($sPath)) {
$aExtraDirs[] = $sPath; // Also read the extra downloaded-modules directory
}
$oExtensionsMap = iTopExtensionsMap::GetExtensionsMap(ITOP_DEFAULT_ENV);
$oExtensionsMap = iTopExtensionsMap::GetExtensionsMap(ITOP_DEFAULT_ENV, $aExtraDirs);
$oExtensionsMap->LoadChoicesFromDatabase(MetaModel::GetConfig());
foreach ($oExtensionsMap->GetAllExtensions() as $oExtension) {

View File

@@ -25,6 +25,7 @@ require_once(APPROOT.'core/mutex.class.inc.php');
require_once(APPROOT.'core/dict.class.inc.php');
require_once(APPROOT.'setup/xmldataloader.class.inc.php');
require_once(__DIR__.'/../setup/hubruntimeenvironment.class.inc.php');
require_once(__DIR__.'/../Model/DBBackupWithErrorReporting.php');
class HubController
{
@@ -125,15 +126,21 @@ class HubController
// First step: prepare the datamodel, if it fails, roll-back
$aSelectedExtensionDirs = utils::ReadParam('extension_dirs', [], false, utils::ENUM_SANITIZATION_FILTER_MODULE_CODE);
$oRuntimeEnv = new HubRunTimeEnvironment('production', false); // use a temp environment: production-build
$oRuntimeEnv = new HubRunTimeEnvironment(ITOP_DEFAULT_ENV, false); // use a temp environment: production-build
$oRuntimeEnv->MoveSelectedExtensions(APPROOT.'/data/downloaded-extensions/', $aSelectedExtensionDirs);
$oConfig = new Config(APPCONF.'production/'.ITOP_CONFIG_FILE);
$oExtensionMap = iTopExtensionsMap::GetExtensionsMap($oRuntimeEnv->GetBuildEnv());
$aPreviousRemoteExtensions = $oExtensionMap->GetExtensionsFromDir(APPROOT.'data/'.$oRuntimeEnv->GetFinalEnv().'-modules/') ?: [];
$aCurrentRemoteExtensions = $oExtensionMap->GetExtensionsFromDir(APPROOT.'data/'.$oRuntimeEnv->GetBuildEnv().'-modules/') ?: [];
$aAddedExtensions = array_diff($aCurrentRemoteExtensions, $aPreviousRemoteExtensions);
$sBuildConfigFile = APPCONF.ITOP_DEFAULT_ENV.'/'.ITOP_CONFIG_FILE;
$oConfig = new Config($sBuildConfigFile);
if ($oConfig->Get('demo_mode')) {
throw new Exception('Sorry the installation of extensions is not allowed in demo mode');
}
$oRuntimeEnv->CompileFrom('production'); // WARNING symlinks does not seem to be compatible with manual Commit
$oRuntimeEnv->CompileFrom(ITOP_DEFAULT_ENV, aAddedExtensions: array_keys($aAddedExtensions)); // WARNING symlinks does not seem to be compatible with manual Commit
$oRuntimeEnv->UpdateIncludes($oConfig);
$oRuntimeEnv->InitDataModel($oConfig, true /* model only */);

View File

@@ -24,8 +24,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:Incident:Shortcuts+' => 'Ярлыки',
'Menu:Incident:MyIncidents' => 'Назначенные мне',
'Menu:Incident:MyIncidents+' => 'Инциденты, назначенные мне (в качестве агента)',
'Menu:Incident:MySupportIncidents' => 'Reported by me~~',
'Menu:Incident:MySupportIncidents+' => 'Non closed incidents where I am the caller~~',
'Menu:Incident:MySupportIncidents' => 'Заявленные мной',
'Menu:Incident:MySupportIncidents+' => 'Незакрытые инциденты, в которых я являюсь инициатором',
'Menu:Incident:EscalatedIncidents' => 'Эскалированные',
'Menu:Incident:EscalatedIncidents+' => 'Эскалированные инциденты',
'Menu:Incident:OpenIncidents' => 'Открытые',
@@ -102,10 +102,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Incident/Attribute:urgency/Value:4+' => 'Низкая',
'Class:Incident/Attribute:origin' => 'Источник',
'Class:Incident/Attribute:origin+' => '',
'Class:Incident/Attribute:origin/Value:in_person' => 'In-person~~',
'Class:Incident/Attribute:origin/Value:in_person+' => 'Incident created following a face-to-face discussion~~',
'Class:Incident/Attribute:origin/Value:chat' => 'Chat~~',
'Class:Incident/Attribute:origin/Value:chat+' => 'Incident created following a ~~',
'Class:Incident/Attribute:origin/Value:in_person' => 'Лично',
'Class:Incident/Attribute:origin/Value:in_person+' => 'Инцидент создан по итогам личной беседы',
'Class:Incident/Attribute:origin/Value:chat' => 'Чат',
'Class:Incident/Attribute:origin/Value:chat+' => 'Инцидент создан по итогам ',
'Class:Incident/Attribute:origin/Value:mail' => 'Почта',
'Class:Incident/Attribute:origin/Value:mail+' => 'Почта',
'Class:Incident/Attribute:origin/Value:monitoring' => 'Мониторинг',
@@ -142,10 +142,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Incident/Attribute:tto+' => '',
'Class:Incident/Attribute:ttr' => 'TTR',
'Class:Incident/Attribute:ttr+' => '',
'Class:Incident/Attribute:tto_time_spent' => 'TTO time spent~~',
'Class:Incident/Attribute:tto_time_spent+' => '~~',
'Class:Incident/Attribute:ttr_time_spent' => 'TTR time spent~~',
'Class:Incident/Attribute:ttr_time_spent+' => '~~',
'Class:Incident/Attribute:tto_time_spent' => 'Затрачено времени (TTO)',
'Class:Incident/Attribute:tto_time_spent+' => '',
'Class:Incident/Attribute:ttr_time_spent' => 'Затрачено времени (TTR)',
'Class:Incident/Attribute:ttr_time_spent+' => '',
'Class:Incident/Attribute:tto_escalation_deadline' => 'Срок TTO',
'Class:Incident/Attribute:tto_escalation_deadline+' => 'Крайний срок назаначения агента (принятия в работу) по текущему SLA',
'Class:Incident/Attribute:sla_tto_passed' => 'SLA TTO пропущено',

View File

@@ -15,27 +15,27 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:KnownError' => 'Известная ошибка',
'Class:KnownError+' => 'Проблема, имеющая задокументированные корневую причину и обходное решение',
'Class:KnownError/Attribute:name' => 'Название',
'Class:KnownError/Attribute:name+' => 'This is expected to be a unique identifier within the Known Errors of this organization~~',
'Class:KnownError/Attribute:name+' => 'Ожидается уникальный идентификатор в рамках известных ошибок этой организации',
'Class:KnownError/Attribute:org_id' => 'Организация',
'Class:KnownError/Attribute:org_id+' => 'Link the known error to the service provider in charge of handling them, or maybe to a customer organization if the error is specific to them~~',
'Class:KnownError/Attribute:org_id+' => 'Свяжите известную ошибку с поставщиком услуг, отвечающим за её обработку, либо с организацией-заказчиком, если ошибка специфична для неё',
'Class:KnownError/Attribute:cust_name' => 'Организация',
'Class:KnownError/Attribute:cust_name+' => '',
'Class:KnownError/Attribute:problem_id' => 'Проблема',
'Class:KnownError/Attribute:problem_id+' => 'The problem which couldn\'t be solved immediately and has led to the creation of this known error~~',
'Class:KnownError/Attribute:problem_id+' => 'Проблема, которую не удалось решить сразу и которая привела к созданию этой известной ошибки',
'Class:KnownError/Attribute:problem_ref' => 'Проблема',
'Class:KnownError/Attribute:problem_ref+' => '',
'Class:KnownError/Attribute:symptom' => 'Проявление',
'Class:KnownError/Attribute:symptom+' => 'What are the observable effects of this error?~~',
'Class:KnownError/Attribute:symptom+' => 'Какие наблюдаемые последствия у этой ошибки?',
'Class:KnownError/Attribute:root_cause' => 'Корневая причина',
'Class:KnownError/Attribute:root_cause+' => 'What is the underlying cause of this error?~~',
'Class:KnownError/Attribute:root_cause+' => 'Какова первопричина этой ошибки?',
'Class:KnownError/Attribute:workaround' => 'Обходное решение',
'Class:KnownError/Attribute:workaround+' => 'How to bypass the effects of this error until a proper solution is found?~~',
'Class:KnownError/Attribute:workaround+' => 'Как обойти последствия этой ошибки до нахождения полноценного решения?',
'Class:KnownError/Attribute:solution' => 'Решение',
'Class:KnownError/Attribute:solution+' => 'What is the permanent solution for this error?~~',
'Class:KnownError/Attribute:solution+' => 'В чём заключается окончательное решение этой ошибки?',
'Class:KnownError/Attribute:error_code' => 'Код ошибки',
'Class:KnownError/Attribute:error_code+' => 'If a specific error code is associated to this known error, specify it here~~',
'Class:KnownError/Attribute:error_code+' => 'Если с этой известной ошибкой связан конкретный код ошибки, укажите его здесь',
'Class:KnownError/Attribute:domain' => 'Домен',
'Class:KnownError/Attribute:domain+' => 'Choose the technical domain related to this known error?~~',
'Class:KnownError/Attribute:domain+' => 'Выберите технический домен, связанный с этой известной ошибкой',
'Class:KnownError/Attribute:domain/Value:Application' => 'Приложение',
'Class:KnownError/Attribute:domain/Value:Application+' => '',
'Class:KnownError/Attribute:domain/Value:Desktop' => 'Рабочее окружение',
@@ -45,11 +45,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:KnownError/Attribute:domain/Value:Server' => 'Сервер',
'Class:KnownError/Attribute:domain/Value:Server+' => '',
'Class:KnownError/Attribute:vendor' => 'Производитель',
'Class:KnownError/Attribute:vendor+' => 'A free text field to identify the vendor of the CI(s) concerned by this known error~~',
'Class:KnownError/Attribute:vendor+' => 'Произвольное текстовое поле для указания производителя КЕ, к которым относится эта известная ошибка',
'Class:KnownError/Attribute:model' => 'Модель',
'Class:KnownError/Attribute:model+' => 'The model of the CI(s) concerned by this known error~~',
'Class:KnownError/Attribute:model+' => 'Модель КЕ, к которым относится эта известная ошибка',
'Class:KnownError/Attribute:version' => 'Версия',
'Class:KnownError/Attribute:version+' => 'The version of the CI(s) concerned by this known error~~',
'Class:KnownError/Attribute:version+' => 'Версия КЕ, к которым относится эта известная ошибка',
'Class:KnownError/Attribute:ci_list' => 'КЕ',
'Class:KnownError/Attribute:ci_list+' => 'Связанный конфигурационные единицы',
'Class:KnownError/Attribute:document_list' => 'Документы',
@@ -63,7 +63,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkErrorToFunctionalCI' => 'Связь Известная ошибка/Функциональная КЕ',
'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error',
'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~',
'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id' => 'КЕ',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name' => 'КЕ',
@@ -83,7 +83,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToError' => 'Связь Документ/Известная ошибка',
'Class:lnkDocumentToError+' => 'A link between a document and a known error',
'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToError/Name' => '%1$s / %2$s',
'Class:lnkDocumentToError/Attribute:document_id' => 'Документ',
'Class:lnkDocumentToError/Attribute:document_id+' => '',
'Class:lnkDocumentToError/Attribute:document_name' => 'Документ',
@@ -98,7 +98,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:ProblemManagement' => 'Управление проблемами',
'Menu:ProblemManagement+' => 'An ITIL process that identifies root causes of incidents, documents Known Errors and FAQs, in order to reduce helpdesk workload~~',
'Menu:ProblemManagement+' => 'Процесс ITIL, который выявляет первопричины инцидентов, документирует известные ошибки и FAQ, чтобы снизить нагрузку на службу поддержки',
'Menu:Problem:Shortcuts' => 'Ярлыки',
'Menu:NewError' => 'Новая известная ошибка',
'Menu:NewError+' => 'Создать новую известную ошибку',

View File

@@ -11,23 +11,23 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Mail Access~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access token...~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'Menu:CreateMailbox' => 'Создать почтовый ящик…',
'Menu:OAuthClient' => 'Доступ к почте через OAuth',
'Menu:OAuthClient+' => '',
'Menu:GenerateTokens' => 'Сгенерировать токен доступа…',
'Menu:RegenerateTokens' => 'Перегенерировать токен доступа…',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Создание почтового ящика',
'itop-oauth-client:UsedForSMTP' => 'Этот клиент OAuth используется для SMTP',
'itop-oauth-client:TestSMTP' => 'Тест отправки email',
'itop-oauth-client:MissingOAuthClient' => 'Отсутствует клиент OAuth для пользователя %1$s',
'itop-oauth-client:Message:MissingToken' => 'Сгенерируйте токен доступа перед использованием этого клиента OAuth',
'itop-oauth-client:Message:RegenerateToken' => 'Перегенерируйте токен доступа, чтобы учесть изменения',
'itop-oauth-client:Message:TokenCreated' => 'Токен доступа создан',
'itop-oauth-client:Message:TokenRecreated' => 'Токен доступа перегенерирован',
'itop-oauth-client:Message:TokenError' => 'Токен доступа не сгенерирован из-за ошибки сервера',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'Комбинация Логин (%1$s) и Использовать для SMTP (%2$s) уже используется другим клиентом OAuth',
'OAuthClient:baseinfo' => 'Основная информация',
'OAuthClient:scope' => 'Область доступа',
]);
//
@@ -35,36 +35,36 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClient' => 'OAuth Mail Access~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => 'In general, this is your email address~~',
'Class:OAuthClient/Attribute:status' => 'Status~~',
'Class:OAuthClient/Attribute:status+' => 'After creation, use the action “Generate access token” to be able to use this OAuth client~~',
'Class:OAuthClient/Attribute:status/Value:active' => 'Access token generated~~',
'Class:OAuthClient/Attribute:status/Value:inactive' => 'No Access token~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => 'A long string of characters provided by your OAuth2 provider~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => 'Another long string of characters provided by your OAuth2 provider~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => 'This url must be copied in the OAuth2 configuration of the provider
Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
'Class:OAuthClient' => 'Доступ к почте через OAuth',
'Class:OAuthClient/Attribute:provider' => 'Провайдер',
'Class:OAuthClient/Attribute:provider+' => '',
'Class:OAuthClient/Attribute:name' => 'Логин',
'Class:OAuthClient/Attribute:name+' => 'Обычно это ваш email-адрес',
'Class:OAuthClient/Attribute:status' => 'Статус',
'Class:OAuthClient/Attribute:status+' => 'После создания используйте действие «Сгенерировать токен доступа», чтобы иметь возможность использовать этого клиента OAuth',
'Class:OAuthClient/Attribute:status/Value:active' => 'Токен доступа сгенерирован',
'Class:OAuthClient/Attribute:status/Value:inactive' => 'Нет токена доступа',
'Class:OAuthClient/Attribute:description' => 'Описание',
'Class:OAuthClient/Attribute:description+' => '',
'Class:OAuthClient/Attribute:client_id' => 'Client id',
'Class:OAuthClient/Attribute:client_id+' => 'Длинная строка символов, предоставленная вашим провайдером OAuth2',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret',
'Class:OAuthClient/Attribute:client_secret+' => 'Ещё одна длинная строка символов, предоставленная вашим провайдером OAuth2',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token',
'Class:OAuthClient/Attribute:refresh_token+' => '',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Истечение refresh token',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '',
'Class:OAuthClient/Attribute:scope' => 'Область доступа',
'Class:OAuthClient/Attribute:scope+' => '',
'Class:OAuthClient/Attribute:token' => 'Токен доступа',
'Class:OAuthClient/Attribute:token+' => '',
'Class:OAuthClient/Attribute:token_expiration' => 'Истечение токена доступа',
'Class:OAuthClient/Attribute:token_expiration+' => '',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url',
'Class:OAuthClient/Attribute:redirect_url+' => 'Этот url нужно скопировать в конфигурацию OAuth2 у провайдера.
Очистите поле, чтобы пересчитать значение по умолчанию',
'Class:OAuthClient/Attribute:mailbox_list' => 'Список почтовых ящиков',
'Class:OAuthClient/Attribute:mailbox_list+' => '',
]);
//
@@ -72,28 +72,28 @@ Erase the field to recalculate default value~~',
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP' => 'SMTP~~',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP+' => '~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP+' => '~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:used_scope' => 'Used scope~~',
'Class:OAuthClientAzure/Attribute:used_scope+' => '~~',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple' => 'Simple~~',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple+' => '~~',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced' => 'Advanced~~',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced+' => '~~',
'Class:OAuthClientAzure/Attribute:used_for_smtp' => 'Used for SMTP~~',
'Class:OAuthClientAzure/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:yes' => 'Yes~~',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~',
'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~',
'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~',
'Class:OAuthClientAzure' => 'Доступ к почте через OAuth (Microsoft Azure)',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
'Class:OAuthClientAzure/Attribute:scope' => 'Область доступа',
'Class:OAuthClientAzure/Attribute:scope+' => 'Обычно подходит выбор по умолчанию',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP' => 'SMTP',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP+' => '',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Расширенная область доступа',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'Как только здесь что-то указано, это имеет приоритет над выбором «Область доступа», который в этом случае игнорируется',
'Class:OAuthClientAzure/Attribute:used_scope' => 'Используемая область доступа',
'Class:OAuthClientAzure/Attribute:used_scope+' => '',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple' => 'Простая',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple+' => '',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced' => 'Расширенная',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced+' => '',
'Class:OAuthClientAzure/Attribute:used_for_smtp' => 'Используется для SMTP',
'Class:OAuthClientAzure/Attribute:used_for_smtp+' => 'Хотя бы у одного клиента OAuth этот флаг должен быть «Да», если вы хотите, чтобы iTop использовал его для отправки почты',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:yes' => 'Да',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'Нет',
'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant',
'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID настроенного приложения. Для multi-tenant приложения используйте "common".',
]);
//
@@ -101,24 +101,24 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP' => 'SMTP~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP+' => '~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP+' => '~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:used_scope' => 'Used scope~~',
'Class:OAuthClientGoogle/Attribute:used_scope+' => '~~',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple' => 'Simple~~',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple+' => '~~',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced' => 'Advanced~~',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced+' => '~~',
'Class:OAuthClientGoogle/Attribute:used_for_smtp' => 'Used for SMTP~~',
'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~',
'Class:OAuthClientGoogle' => 'Доступ к почте через OAuth (Google)',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)',
'Class:OAuthClientGoogle/Attribute:scope' => 'Область доступа',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Обычно подходит выбор по умолчанию',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP' => 'SMTP',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP+' => '',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Расширенная область доступа',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'Как только здесь что-то указано, это имеет приоритет над выбором «Область доступа», который в этом случае игнорируется',
'Class:OAuthClientGoogle/Attribute:used_scope' => 'Используемая область доступа',
'Class:OAuthClientGoogle/Attribute:used_scope+' => '',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple' => 'Простая',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple+' => '',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced' => 'Расширенная',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced+' => '',
'Class:OAuthClientGoogle/Attribute:used_for_smtp' => 'Используется для SMTP',
'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'Хотя бы у одного клиента OAuth этот флаг должен быть «Да», если вы хотите, чтобы iTop использовал его для отправки почты',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Да',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Нет',
]);

View File

@@ -59,11 +59,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
// Object form
Dict::Add('RU RU', 'Russian', 'Русский', [
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Закрыть эту запись',
'Portal:Form:Close:Warning' => 'Вы действительно хотите закрыть эту форму? Введённые данные могут быть утеряны.',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:CheckToWriteFailed' => 'Error during validation of field \'%1$s\': %2$s~~',
'Portal:Error:ObjectCannotBeCreated' => 'Ошибка: объект не может быть создан. Проверьте связанные объекты и вложения перед повторной отправкой формы.',
'Portal:Error:ObjectCannotBeUpdated' => 'Ошибка: объект не может быть обновлён. Проверьте связанные объекты и вложения перед повторной отправкой формы.',
'Portal:Error:CheckToWriteFailed' => 'Ошибка при проверке поля \'%1$s\': %2$s',
]);
// UserProfile brick

View File

@@ -73,7 +73,7 @@ class Basic extends AbstractConfiguration
$aPortalConf = [
'properties' => [
'id' => $_ENV['PORTAL_ID'],
'ui_version' => 'v3',
'ui_version' => '2025',
'ui_settings' => [
'navigation_menu' => 'vertical',
],

View File

@@ -22,9 +22,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'В работе',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Решенные',
'Brick:Portal:ClosedRequests:Title' => 'Закрытые запросы',
'Brick:Portal:ListAllRequests:Title' => 'All requests~~',
'Brick:Portal:ListAllRequests:Title+' => '<p>View all requests regardless of their status.</p>~~',
'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~',
'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~',
'Brick:Portal:SearchInAllRequests:Title+' => '<p>Regardless of their status.</p>~~',
'Brick:Portal:ListAllRequests:Title' => 'Все запросы',
'Brick:Portal:ListAllRequests:Title+' => '<p>Просмотр всех запросов независимо от статуса.</p>',
'Brick:Portal:ListAllRequests:Tab' => 'Текущие и закрытые',
'Brick:Portal:SearchInAllRequests:Title' => 'Поиск по всем запросам',
'Brick:Portal:SearchInAllRequests:Title+' => '<p>Независимо от статуса.</p>',
]);

View File

@@ -13,18 +13,18 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:ProblemManagement' => 'Управление проблемами',
'Menu:ProblemManagement+' => 'An ITIL process that identifies root causes of incidents, documents Known Errors and FAQs, in order to reduce helpdesk workload~~',
'Menu:ProblemManagement+' => 'Процесс ITIL, который выявляет первопричины инцидентов, документирует известные ошибки и FAQ, чтобы снизить нагрузку на службу поддержки',
'Menu:Problem:Overview' => 'Обзор',
'Menu:Problem:Overview+' => 'Управление проблемами - Обзор',
'Menu:NewProblem' => 'Новая проблема',
'Menu:NewProblem+' => 'Create a new problem ticket~~',
'Menu:NewProblem+' => 'Создать новый тикет проблемы',
'Menu:SearchProblems' => 'Поиск проблем',
'Menu:SearchProblems+' => 'Поиск проблем',
'Menu:Problem:Shortcuts' => 'Ярлыки',
'Menu:Problem:MyProblems' => 'Назначенные мне',
'Menu:Problem:MyProblems+' => 'Problems assigned to me which are neither resolved nor closed~~',
'Menu:Problem:MyProblems+' => 'Проблемы, назначенные на меня, которые не решены и не закрыты',
'Menu:Problem:OpenProblems' => 'Открытые',
'Menu:Problem:OpenProblems+' => 'All problem tickets which are not closed~~',
'Menu:Problem:OpenProblems+' => 'Все незакрытые тикеты проблем',
'UI-ProblemManagementOverview-ProblemByService' => 'Проблемы по услугам',
'UI-ProblemManagementOverview-ProblemByService+' => 'Проблемы по услугам',
'UI-ProblemManagementOverview-ProblemByPriority' => 'Проблемы по приоритету',

View File

@@ -42,7 +42,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI-RequestManagementOverview-OpenRequestByType' => 'Открытые запросы по типу',
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Открытые запросы по заказчику',
'Class:UserRequest:KnownErrorList' => 'Известные ошибки',
'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~',
'Class:UserRequest:KnownErrorList+' => 'Известные ошибки, связанные с функциональными КЕ текущего тикета',
]);
// Dictionnay conventions
@@ -118,10 +118,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserRequest/Attribute:urgency/Value:4+' => 'Низкая',
'Class:UserRequest/Attribute:origin' => 'Источник',
'Class:UserRequest/Attribute:origin+' => '',
'Class:UserRequest/Attribute:origin/Value:in_person' => 'In-person~~',
'Class:UserRequest/Attribute:origin/Value:in_person+' => 'Request created following a face-to-face discussion~~',
'Class:UserRequest/Attribute:origin/Value:chat' => 'Chat~~',
'Class:UserRequest/Attribute:origin/Value:chat+' => 'Request created following a chat discussion~~',
'Class:UserRequest/Attribute:origin/Value:in_person' => 'Лично',
'Class:UserRequest/Attribute:origin/Value:in_person+' => 'Запрос создан по итогам личной беседы',
'Class:UserRequest/Attribute:origin/Value:chat' => 'Чат',
'Class:UserRequest/Attribute:origin/Value:chat+' => 'Запрос создан по итогам беседы в чате',
'Class:UserRequest/Attribute:origin/Value:mail' => 'Почта',
'Class:UserRequest/Attribute:origin/Value:mail+' => 'Почта',
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'Мониторинг',
@@ -162,10 +162,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserRequest/Attribute:tto+' => '',
'Class:UserRequest/Attribute:ttr' => 'TTR',
'Class:UserRequest/Attribute:ttr+' => '',
'Class:UserRequest/Attribute:tto_time_spent' => 'TTO time spent~~',
'Class:UserRequest/Attribute:tto_time_spent+' => '~~',
'Class:UserRequest/Attribute:ttr_time_spent' => 'TTR time spent~~',
'Class:UserRequest/Attribute:ttr_time_spent+' => '~~',
'Class:UserRequest/Attribute:tto_time_spent' => 'Затрачено времени (TTO)',
'Class:UserRequest/Attribute:tto_time_spent+' => '',
'Class:UserRequest/Attribute:ttr_time_spent' => 'Затрачено времени (TTR)',
'Class:UserRequest/Attribute:ttr_time_spent+' => '',
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Срок TTO',
'Class:UserRequest/Attribute:tto_escalation_deadline+' => 'Крайний срок назаначения агента (принятия в работу) по текущему SLA',
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO пропущено',

View File

@@ -42,7 +42,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI-RequestManagementOverview-OpenRequestByType' => 'Открытые запросы по типу',
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Открытые запросы по заказчику',
'Class:UserRequest:KnownErrorList' => 'Известные ошибки',
'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~',
'Class:UserRequest:KnownErrorList+' => 'Известные ошибки, связанные с функциональными КЕ текущего тикета',
'Menu:UserRequest:MyWorkOrders' => 'Назначенные мне наряды на работу',
'Menu:UserRequest:MyWorkOrders+' => 'Назначенные мне наряды на работу',
'Class:Problem:KnownProblemList' => 'Известные проблемы',
@@ -124,10 +124,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserRequest/Attribute:urgency/Value:4+' => 'Низкая',
'Class:UserRequest/Attribute:origin' => 'Источник',
'Class:UserRequest/Attribute:origin+' => '',
'Class:UserRequest/Attribute:origin/Value:in_person' => 'In-person~~',
'Class:UserRequest/Attribute:origin/Value:in_person+' => 'Request created following a face-to-face discussion~~',
'Class:UserRequest/Attribute:origin/Value:chat' => 'Chat~~',
'Class:UserRequest/Attribute:origin/Value:chat+' => 'Request created following a chat discussion~~',
'Class:UserRequest/Attribute:origin/Value:in_person' => 'Лично',
'Class:UserRequest/Attribute:origin/Value:in_person+' => 'Запрос создан по итогам личной беседы',
'Class:UserRequest/Attribute:origin/Value:chat' => 'Чат',
'Class:UserRequest/Attribute:origin/Value:chat+' => 'Запрос создан по итогам беседы в чате',
'Class:UserRequest/Attribute:origin/Value:mail' => 'Почта',
'Class:UserRequest/Attribute:origin/Value:mail+' => 'Почта',
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'Мониторинг',
@@ -168,10 +168,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserRequest/Attribute:tto+' => '',
'Class:UserRequest/Attribute:ttr' => 'TTR',
'Class:UserRequest/Attribute:ttr+' => '',
'Class:UserRequest/Attribute:tto_time_spent' => 'TTO time spent~~',
'Class:UserRequest/Attribute:tto_time_spent+' => '~~',
'Class:UserRequest/Attribute:ttr_time_spent' => 'TTR time spent~~',
'Class:UserRequest/Attribute:ttr_time_spent+' => '~~',
'Class:UserRequest/Attribute:tto_time_spent' => 'Затрачено времени (TTO)',
'Class:UserRequest/Attribute:tto_time_spent+' => '',
'Class:UserRequest/Attribute:ttr_time_spent' => 'Затрачено времени (TTR)',
'Class:UserRequest/Attribute:ttr_time_spent+' => '',
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Срок TTO',
'Class:UserRequest/Attribute:tto_escalation_deadline+' => 'Крайний срок назаначения агента (принятия в работу) по текущему SLA',
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO пропущено',

View File

@@ -35,20 +35,20 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:DeliveryModel+' => 'Модели предоставления услуг (Delivery Models)',
'Menu:ServiceFamily' => 'Пакеты услуг',
'Menu:ServiceFamily+' => 'Пакеты услуг',
'Menu:ServiceCatalog' => 'Service catalog~~',
'Menu:ServiceCatalog+' => 'Define the service elements of your offering~~',
'UI-ServiceCatalogMenu-Title' => 'Service catalog~~',
'UI-ServiceCatalogMenu-NotInPortal' => 'Not displayed in User Portal~~',
'UI-ServiceCatalogMenu-OnlyProductionInPortal' => 'Only Service and Subcategory on production are visible in User Portal~~',
'UI-ServiceCatalogMenu-UnusedService' => 'Services not used by any Customers~~',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal~~',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Count SLTs on each SLA~~',
'UI-ServiceCatalogMenu-ContractByService' => 'Count Contracts using a Service~~',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Count Contracts using an SLA~~',
'Menu:ServiceCatalog' => 'Каталог услуг',
'Menu:ServiceCatalog+' => 'Определите элементы услуг вашего предложения',
'UI-ServiceCatalogMenu-Title' => 'Каталог услуг',
'UI-ServiceCatalogMenu-NotInPortal' => 'Не отображается в портале пользователя',
'UI-ServiceCatalogMenu-OnlyProductionInPortal' => 'В портале пользователя видны только услуги и подкатегории в статусе "Эксплуатация"',
'UI-ServiceCatalogMenu-UnusedService' => 'Услуги, не используемые ни одним заказчиком',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Услуги без семейства услуг не отображаются в портале пользователя',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Количество SLT в каждом SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Количество контрактов, использующих услугу',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Количество контрактов, использующих SLA',
'Contract:baseinfo' => 'General information~~',
'Contract:moreinfo' => 'Contractual information~~',
'Contract:cost' => 'Cost information~~',
'Contract:baseinfo' => 'Общая информация',
'Contract:moreinfo' => 'Информация о контракте',
'Contract:cost' => 'Информация о стоимости',
]);
//
@@ -163,7 +163,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToContract' => 'Связь Контакт/Договор',
'Class:lnkContactToContract+' => '',
'Class:lnkContactToContract/Name' => '%1$s / %2$s~~',
'Class:lnkContactToContract/Name' => '%1$s / %2$s',
'Class:lnkContactToContract/Attribute:contract_id' => 'Договор',
'Class:lnkContactToContract/Attribute:contract_id+' => '',
'Class:lnkContactToContract/Attribute:contract_name' => 'Договор',
@@ -181,7 +181,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContractToDocument' => 'Связь Договор/Документ',
'Class:lnkContractToDocument+' => '',
'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~',
'Class:lnkContractToDocument/Name' => '%1$s / %2$s',
'Class:lnkContractToDocument/Attribute:contract_id' => 'Договор',
'Class:lnkContractToDocument/Attribute:contract_id+' => '',
'Class:lnkContractToDocument/Attribute:contract_name' => 'Договор',
@@ -199,7 +199,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkFunctionalCIToProviderContract' => 'Связь Функциональная КЕ/Договор с поставщиком',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Договор с поставщиком',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Договор с поставщиком',
@@ -232,7 +232,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service' => 'Услуга',
'Class:Service+' => '',
'Class:Service/ComplementaryName' => '%1$s - %2$s~~',
'Class:Service/ComplementaryName' => '%1$s - %2$s',
'Class:Service/Attribute:name' => 'Название',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Поставщик',
@@ -242,7 +242,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service/Attribute:description' => 'Описание',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:servicefamily_id' => 'Пакет услуг',
'Class:Service/Attribute:servicefamily_id+' => 'Required for this service to be visible on User Portal~~',
'Class:Service/Attribute:servicefamily_id+' => 'Требуется, чтобы услуга была видна в портале пользователя',
'Class:Service/Attribute:servicefamily_name' => 'Пакет услуг',
'Class:Service/Attribute:servicefamily_name+' => '',
'Class:Service/Attribute:documents_list' => 'Документы',
@@ -250,7 +250,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service/Attribute:contacts_list' => 'Контакты',
'Class:Service/Attribute:contacts_list+' => 'Связанные контакты',
'Class:Service/Attribute:status' => 'Статус',
'Class:Service/Attribute:status+' => 'By default only Service in production are visible by Portal users~~',
'Class:Service/Attribute:status+' => 'По умолчанию пользователям портала видны только услуги в статусе "Эксплуатация"',
'Class:Service/Attribute:status/Value:implementation' => 'Внедрение',
'Class:Service/Attribute:status/Value:implementation+' => 'Внедрение',
'Class:Service/Attribute:status/Value:obsolete' => 'Устаревший',
@@ -272,7 +272,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToService' => 'Связь Документ/Услуга',
'Class:lnkDocumentToService+' => '',
'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToService/Name' => '%1$s / %2$s',
'Class:lnkDocumentToService/Attribute:service_id' => 'Услуга',
'Class:lnkDocumentToService/Attribute:service_id+' => '',
'Class:lnkDocumentToService/Attribute:service_name' => 'Услуга',
@@ -290,7 +290,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToService' => 'Связь Контакт/Услуга',
'Class:lnkContactToService+' => '',
'Class:lnkContactToService/Name' => '%1$s / %2$s~~',
'Class:lnkContactToService/Name' => '%1$s / %2$s',
'Class:lnkContactToService/Attribute:service_id' => 'Услуга',
'Class:lnkContactToService/Attribute:service_id+' => '',
'Class:lnkContactToService/Attribute:service_name' => 'Услуга',
@@ -308,7 +308,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ServiceSubcategory' => 'Подкатегория услуги',
'Class:ServiceSubcategory+' => '',
'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~',
'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s',
'Class:ServiceSubcategory/Attribute:name' => 'Название',
'Class:ServiceSubcategory/Attribute:name+' => '',
'Class:ServiceSubcategory/Attribute:description' => 'Описание',
@@ -326,7 +326,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Эксплуатация',
'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'Эксплуатация',
'Class:ServiceSubcategory/Attribute:request_type' => 'Тип запроса',
'Class:ServiceSubcategory/Attribute:request_type+' => 'Define the type of Ticket (Incident or Service Request) that will be created when a Portal user selects this service subcategory.~~',
'Class:ServiceSubcategory/Attribute:request_type+' => 'Определяет тип тикета (Инцидент или Запрос на обслуживание), который будет создан, когда пользователь портала выберет эту подкатегорию услуги.',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident' => 'Инцидент',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'Инцидент',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'Запрос на обслуживание',
@@ -354,7 +354,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SLA/Attribute:slts_list+' => 'Целевой показатель уровня услуги (Service Level Target)',
'Class:SLA/Attribute:customercontracts_list' => 'Договоры с заказчиками',
'Class:SLA/Attribute:customercontracts_list+' => 'Договоры с заказчиками, в которых используется SLA',
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~',
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Не удалось сохранить связь с контрактом заказчика %1$s и услугой %2$s: SLA уже существует',
]);
//
@@ -405,7 +405,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkSLAToSLT' => 'Связь SLA/SLT',
'Class:lnkSLAToSLT+' => '',
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~',
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s',
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
'Class:lnkSLAToSLT/Attribute:sla_id+' => '',
'Class:lnkSLAToSLT/Attribute:sla_name' => 'SLA',
@@ -433,7 +433,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToService' => 'Связь Договор с заказчиком/Услуга',
'Class:lnkCustomerContractToService+' => '',
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~',
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s',
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Договор с заказчиком',
'Class:lnkCustomerContractToService/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_name' => 'Договор с заказчиком',
@@ -446,8 +446,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToService/Attribute:sla_id+' => '',
'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA',
'Class:lnkCustomerContractToService/Attribute:sla_name+' => '',
'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider~~',
'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~',
'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Поставщик',
'Class:lnkCustomerContractToService/Attribute:provider_id+' => '',
]);
//
@@ -457,7 +457,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToProviderContract' => 'Связь Договор с заказчиком/Договор с поставщиком',
'Class:lnkCustomerContractToProviderContract+' => '',
'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~',
'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id' => 'Договор с заказчиком',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_name' => 'Договор с заказчиком',
@@ -475,7 +475,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToFunctionalCI' => 'Связь Договор с заказчиком/Функциональная КЕ',
'Class:lnkCustomerContractToFunctionalCI+' => '',
'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~',
'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id' => 'Договор с заказчиком',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_name' => 'Договор с заказчиком',
@@ -514,7 +514,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDeliveryModelToContact' => 'Связь Модель предоставления услуг/Контакт',
'Class:lnkDeliveryModelToContact+' => '',
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~',
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Модель предоставления услуг',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name' => 'Модель предоставления услуг',
@@ -534,10 +534,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~',
'Class:lnkContactToContract/Attribute:customer_id+' => '~~',
'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~',
'Class:lnkContactToContract/Attribute:provider_id+' => '~~',
'Class:lnkContactToContract/Attribute:customer_id' => 'Заказчик',
'Class:lnkContactToContract/Attribute:customer_id+' => '',
'Class:lnkContactToContract/Attribute:provider_id' => 'Поставщик',
'Class:lnkContactToContract/Attribute:provider_id+' => '',
]);
//
@@ -545,8 +545,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~',
'Class:lnkContractToDocument/Attribute:customer_id+' => '~~',
'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~',
'Class:lnkContractToDocument/Attribute:provider_id+' => '~~',
'Class:lnkContractToDocument/Attribute:customer_id' => 'Заказчик',
'Class:lnkContractToDocument/Attribute:customer_id+' => '',
'Class:lnkContractToDocument/Attribute:provider_id' => 'Поставщик',
'Class:lnkContractToDocument/Attribute:provider_id+' => '',
]);

View File

@@ -35,22 +35,22 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:DeliveryModel+' => 'Модели предоставления услуг (Delivery Models)',
'Menu:ServiceFamily' => 'Пакеты услуг',
'Menu:ServiceFamily+' => 'Пакеты услуг',
'Menu:ServiceCatalog' => 'Service catalog~~',
'Menu:ServiceCatalog+' => 'Define the service elements of your offering~~',
'UI-ServiceCatalogMenu-Title' => 'Service catalog~~',
'UI-ServiceCatalogMenu-NotInPortal' => 'Not displayed in User Portal~~',
'UI-ServiceCatalogMenu-OnlyProductionInPortal' => 'Only Service and Subcategory on production are visible in User Portal~~',
'UI-ServiceCatalogMenu-UnusedService' => 'Services not used by any Customers~~',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal~~',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Count SLTs on each SLA~~',
'UI-ServiceCatalogMenu-ContractByService' => 'Count Contracts using a Service~~',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Count Contracts using an SLA~~',
'Menu:ServiceCatalog' => 'Каталог услуг',
'Menu:ServiceCatalog+' => 'Определите элементы услуг вашего предложения',
'UI-ServiceCatalogMenu-Title' => 'Каталог услуг',
'UI-ServiceCatalogMenu-NotInPortal' => 'Не отображается в портале пользователя',
'UI-ServiceCatalogMenu-OnlyProductionInPortal' => 'В портале пользователя видны только услуги и подкатегории в статусе "Эксплуатация"',
'UI-ServiceCatalogMenu-UnusedService' => 'Услуги, не используемые ни одним заказчиком',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Услуги без семейства услуг не отображаются в портале пользователя',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Количество SLT в каждом SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Количество контрактов, использующих услугу',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Количество контрактов, использующих SLA',
'Menu:Procedure' => 'Каталог процедур',
'Menu:Procedure+' => 'Каталог процедур',
'Contract:baseinfo' => 'General information~~',
'Contract:moreinfo' => 'Contractual information~~',
'Contract:cost' => 'Cost information~~',
'Contract:baseinfo' => 'Общая информация',
'Contract:moreinfo' => 'Информация о контракте',
'Contract:cost' => 'Информация о стоимости',
]);
//
@@ -59,8 +59,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Organization/Attribute:deliverymodel_id' => 'Модель предоставления услуг',
'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling.
The delivery model specifies the teams to which tickets can be assigned.~~',
'Class:Organization/Attribute:deliverymodel_id+' => 'Требуется для обработки тикетов.
Модель предоставления услуг определяет команды, на которые можно назначать тикеты.',
'Class:Organization/Attribute:deliverymodel_name' => 'Модель предоставления услуг',
]);
@@ -155,8 +155,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ProviderContract/Attribute:contracttype_id+' => '',
'Class:ProviderContract/Attribute:contracttype_name' => 'Тип договора',
'Class:ProviderContract/Attribute:contracttype_name+' => '',
'Class:ProviderContract/Attribute:services_list' => 'Services~~',
'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~',
'Class:ProviderContract/Attribute:services_list' => 'Услуги',
'Class:ProviderContract/Attribute:services_list+' => 'Все услуги, приобретённые по этому контракту',
]);
//
@@ -166,7 +166,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToContract' => 'Связь Контакт/Договор',
'Class:lnkContactToContract+' => '',
'Class:lnkContactToContract/Name' => '%1$s / %2$s~~',
'Class:lnkContactToContract/Name' => '%1$s / %2$s',
'Class:lnkContactToContract/Attribute:contract_id' => 'Договор',
'Class:lnkContactToContract/Attribute:contract_id+' => '',
'Class:lnkContactToContract/Attribute:contract_name' => 'Договор',
@@ -184,7 +184,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContractToDocument' => 'Связь Договор/Документ',
'Class:lnkContractToDocument+' => '',
'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~',
'Class:lnkContractToDocument/Name' => '%1$s / %2$s',
'Class:lnkContractToDocument/Attribute:contract_id' => 'Договор',
'Class:lnkContractToDocument/Attribute:contract_id+' => '',
'Class:lnkContractToDocument/Attribute:contract_name' => 'Договор',
@@ -217,7 +217,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service' => 'Услуга',
'Class:Service+' => '',
'Class:Service/ComplementaryName' => '%1$s - %2$s~~',
'Class:Service/ComplementaryName' => '%1$s - %2$s',
'Class:Service/Attribute:name' => 'Название',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Поставщик',
@@ -225,7 +225,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service/Attribute:organization_name' => 'Поставщик',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:servicefamily_id' => 'Пакет услуг',
'Class:Service/Attribute:servicefamily_id+' => 'Required for this service to be visible on User Portal~~',
'Class:Service/Attribute:servicefamily_id+' => 'Требуется, чтобы услуга была видна в портале пользователя',
'Class:Service/Attribute:servicefamily_name' => 'Пакет услуг',
'Class:Service/Attribute:servicefamily_name+' => '',
'Class:Service/Attribute:description' => 'Описание',
@@ -235,7 +235,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Service/Attribute:contacts_list' => 'Контакты',
'Class:Service/Attribute:contacts_list+' => 'Связанные контакты',
'Class:Service/Attribute:status' => 'Статус',
'Class:Service/Attribute:status+' => 'By default only Service in production are visible by Portal users~~',
'Class:Service/Attribute:status+' => 'По умолчанию пользователям портала видны только услуги в статусе "Эксплуатация"',
'Class:Service/Attribute:status/Value:implementation' => 'Внедрение',
'Class:Service/Attribute:status/Value:implementation+' => 'Внедрение',
'Class:Service/Attribute:status/Value:obsolete' => 'Устаревший',
@@ -261,7 +261,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDocumentToService' => 'Связь Документ/Услуга',
'Class:lnkDocumentToService+' => '',
'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~',
'Class:lnkDocumentToService/Name' => '%1$s / %2$s',
'Class:lnkDocumentToService/Attribute:service_id' => 'Услуга',
'Class:lnkDocumentToService/Attribute:service_id+' => '',
'Class:lnkDocumentToService/Attribute:service_name' => 'Услуга',
@@ -279,7 +279,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToService' => 'Связь Контакт/Услуга',
'Class:lnkContactToService+' => '',
'Class:lnkContactToService/Name' => '%1$s / %2$s~~',
'Class:lnkContactToService/Name' => '%1$s / %2$s',
'Class:lnkContactToService/Attribute:service_id' => 'Услуга',
'Class:lnkContactToService/Attribute:service_id+' => '',
'Class:lnkContactToService/Attribute:service_name' => 'Услуга',
@@ -297,7 +297,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ServiceSubcategory' => 'Подкатегория услуги',
'Class:ServiceSubcategory+' => '',
'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~',
'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s',
'Class:ServiceSubcategory/Attribute:name' => 'Название',
'Class:ServiceSubcategory/Attribute:name+' => '',
'Class:ServiceSubcategory/Attribute:description' => 'Описание',
@@ -307,7 +307,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ServiceSubcategory/Attribute:service_name' => 'Услуга',
'Class:ServiceSubcategory/Attribute:service_name+' => '',
'Class:ServiceSubcategory/Attribute:request_type' => 'Тип запроса',
'Class:ServiceSubcategory/Attribute:request_type+' => 'Define the type of Ticket (Incident or Service Request) that will be created when a Portal user selects this service subcategory.~~',
'Class:ServiceSubcategory/Attribute:request_type+' => 'Определяет тип тикета (Инцидент или Запрос на обслуживание), который будет создан, когда пользователь портала выберет эту подкатегорию услуги.',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident' => 'Инцидент',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'Инцидент',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'Запрос на обслуживание',
@@ -341,7 +341,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SLA/Attribute:slts_list+' => 'Целевые показатели уровня услуги (Service Level Target)',
'Class:SLA/Attribute:customercontracts_list' => 'Договоры с заказчиками',
'Class:SLA/Attribute:customercontracts_list+' => 'Договоры с заказчиками, в которых используется SLA',
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~',
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Не удалось сохранить связь с контрактом заказчика %1$s и услугой %2$s: SLA уже существует',
]);
//
@@ -383,8 +383,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SLT/Attribute:unit/Value:hours+' => 'Часы',
'Class:SLT/Attribute:unit/Value:minutes' => 'Минуты',
'Class:SLT/Attribute:unit/Value:minutes+' => 'Минуты',
'Class:SLT/Attribute:slas_list' => 'SLAs~~',
'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~',
'Class:SLT/Attribute:slas_list' => 'SLA',
'Class:SLT/Attribute:slas_list+' => 'Все соглашения об уровне обслуживания, использующие этот SLT',
]);
//
@@ -394,7 +394,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkSLAToSLT' => 'Связь SLA/SLT',
'Class:lnkSLAToSLT+' => '',
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~',
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s',
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
'Class:lnkSLAToSLT/Attribute:sla_id+' => '',
'Class:lnkSLAToSLT/Attribute:sla_name' => 'SLA',
@@ -422,7 +422,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToService' => 'Связь Договор с заказчиком/Услуга',
'Class:lnkCustomerContractToService+' => '',
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~',
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s',
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Договор с заказчиком',
'Class:lnkCustomerContractToService/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_name' => 'Договор с заказчиком',
@@ -444,7 +444,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkProviderContractToService' => 'Связь Договор с поставщиком/Услуга',
'Class:lnkProviderContractToService+' => '',
'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~',
'Class:lnkProviderContractToService/Name' => '%1$s / %2$s',
'Class:lnkProviderContractToService/Attribute:service_id' => 'Услуга',
'Class:lnkProviderContractToService/Attribute:service_id+' => '',
'Class:lnkProviderContractToService/Attribute:service_name' => 'Услуга',
@@ -463,9 +463,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DeliveryModel' => 'Модель предоставления услуг',
'Class:DeliveryModel+' => '',
'Class:DeliveryModel/Attribute:name' => 'Название',
'Class:DeliveryModel/Attribute:name+' => 'Don\'t forget to add teams to this delivery model~~',
'Class:DeliveryModel/Attribute:name+' => 'Не забудьте добавить команды в эту модель предоставления услуг',
'Class:DeliveryModel/Attribute:org_id' => 'Организация',
'Class:DeliveryModel/Attribute:org_id+' => 'Usually the organization that provides the services~~',
'Class:DeliveryModel/Attribute:org_id+' => 'Обычно это организация, предоставляющая услуги',
'Class:DeliveryModel/Attribute:organization_name' => 'Организация',
'Class:DeliveryModel/Attribute:organization_name+' => '',
'Class:DeliveryModel/Attribute:description' => 'Описание',
@@ -483,7 +483,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkDeliveryModelToContact' => 'Связь Модель предоставления услуг/Контакт',
'Class:lnkDeliveryModelToContact+' => '',
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~',
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Модель предоставления услуг',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name' => 'Модель предоставления услуг',
@@ -503,10 +503,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~',
'Class:lnkContactToContract/Attribute:customer_id+' => '~~',
'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~',
'Class:lnkContactToContract/Attribute:provider_id+' => '~~',
'Class:lnkContactToContract/Attribute:customer_id' => 'Заказчик',
'Class:lnkContactToContract/Attribute:customer_id+' => '',
'Class:lnkContactToContract/Attribute:provider_id' => 'Поставщик',
'Class:lnkContactToContract/Attribute:provider_id+' => '',
]);
//
@@ -514,10 +514,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~',
'Class:lnkContractToDocument/Attribute:customer_id+' => '~~',
'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~',
'Class:lnkContractToDocument/Attribute:provider_id+' => '~~',
'Class:lnkContractToDocument/Attribute:customer_id' => 'Заказчик',
'Class:lnkContractToDocument/Attribute:customer_id+' => '',
'Class:lnkContractToDocument/Attribute:provider_id' => 'Поставщик',
'Class:lnkContractToDocument/Attribute:provider_id+' => '',
]);
//
@@ -525,8 +525,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~',
'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~',
'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Поставщик',
'Class:lnkCustomerContractToService/Attribute:provider_id+' => '',
]);
//
@@ -534,6 +534,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~',
'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~',
'Class:lnkProviderContractToService/Attribute:provider_id' => 'Поставщик',
'Class:lnkProviderContractToService/Attribute:provider_id+' => '',
]);

View File

@@ -20,12 +20,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:NASFileSystem/Attribute:org_id' => 'Org id~~',
'Class:NASFileSystem/Attribute:org_id+' => '~~',
'Class:NASFileSystem/Attribute:location_id' => 'Location id~~',
'Class:NASFileSystem/Attribute:location_id+' => '~~',
'Class:NASFileSystem/Attribute:location_name' => 'Location name~~',
'Class:NASFileSystem/Attribute:location_name+' => '~~',
'Class:NASFileSystem/Attribute:org_id' => 'Организация',
'Class:NASFileSystem/Attribute:org_id+' => '',
'Class:NASFileSystem/Attribute:location_id' => 'Местоположение',
'Class:NASFileSystem/Attribute:location_id+' => '',
'Class:NASFileSystem/Attribute:location_name' => 'Название местоположения',
'Class:NASFileSystem/Attribute:location_name+' => '',
]);
//
@@ -33,10 +33,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~',
'Class:FiberChannelInterface/Attribute:org_id+' => '~~',
'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~',
'Class:FiberChannelInterface/Attribute:location_id+' => '~~',
'Class:FiberChannelInterface/Attribute:org_id' => 'Организация',
'Class:FiberChannelInterface/Attribute:org_id+' => '',
'Class:FiberChannelInterface/Attribute:location_id' => 'Местоположение',
'Class:FiberChannelInterface/Attribute:location_id+' => '',
]);
//
@@ -44,10 +44,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:LogicalVolume/Attribute:org_id' => 'Org id~~',
'Class:LogicalVolume/Attribute:org_id+' => '~~',
'Class:LogicalVolume/Attribute:location_id' => 'Location id~~',
'Class:LogicalVolume/Attribute:location_id+' => '~~',
'Class:LogicalVolume/Attribute:location_name' => 'Location name~~',
'Class:LogicalVolume/Attribute:location_name+' => '~~',
'Class:LogicalVolume/Attribute:org_id' => 'Организация',
'Class:LogicalVolume/Attribute:org_id+' => '',
'Class:LogicalVolume/Attribute:location_id' => 'Местоположение',
'Class:LogicalVolume/Attribute:location_id+' => '',
'Class:LogicalVolume/Attribute:location_name' => 'Название местоположения',
'Class:LogicalVolume/Attribute:location_name+' => '',
]);

View File

@@ -81,7 +81,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Contact' => 'Контакт',
'Class:Contact+' => 'Контакт',
'Class:Contact/ComplementaryName' => '%1$s - %2$s~~',
'Class:Contact/ComplementaryName' => '%1$s - %2$s',
'Class:Contact/Attribute:name' => 'Название',
'Class:Contact/Attribute:name+' => '',
'Class:Contact/Attribute:status' => 'Статус',
@@ -119,7 +119,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Person' => 'Персона',
'Class:Person+' => 'Персона',
'Class:Person/ComplementaryName' => '%1$s - %2$s~~',
'Class:Person/ComplementaryName' => '%1$s - %2$s',
'Class:Person/Attribute:name' => 'Фамилия',
'Class:Person/Attribute:name+' => '',
'Class:Person/Attribute:first_name' => 'Имя',
@@ -140,8 +140,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Person/Attribute:team_list+' => 'Команды с участием персоны',
'Class:Person/Attribute:tickets_list' => 'Тикеты',
'Class:Person/Attribute:tickets_list+' => 'Связанные тикеты',
'Class:Person/Attribute:user_list' => 'Users~~',
'Class:Person/Attribute:user_list+' => 'All the Users associated to this person~~',
'Class:Person/Attribute:user_list' => 'Пользователи',
'Class:Person/Attribute:user_list+' => 'Все пользователи, связанные с этим контактом',
'Class:Person/Attribute:manager_id_friendlyname' => 'Руководитель',
'Class:Person/Attribute:manager_id_friendlyname+' => '',
'Class:Person/Attribute:picture' => 'Фотография',
@@ -150,7 +150,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Person/UniquenessRule:employee_number' => 'В организации \'$this->org_name$\' уже есть персона с таким номером сотрудника',
'Class:Person/UniquenessRule:name+' => 'Имя сотрудника должно быть уникальным внутри организации',
'Class:Person/UniquenessRule:name' => 'В организации \'$this->org_name$\' уже есть персона с таким именем',
'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~',
'Class:Person/Error:ChangingOrgDenied' => 'Невозможно перенести этот контакт в организацию \'%1$s\', так как это нарушит его доступ к порталу пользователя: связанный с ним пользователь не имеет прав на эту организацию',
]);
//
@@ -160,16 +160,16 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Team' => 'Команда',
'Class:Team+' => 'Команда',
'Class:Team/ComplementaryName' => '%1$s - %2$s~~',
'Class:Team/ComplementaryName' => '%1$s - %2$s',
'Class:Team/Attribute:persons_list' => 'Участники',
'Class:Team/Attribute:persons_list+' => 'Участники команды',
'Class:Team/Attribute:overview' => 'Overview~~',
'Team:Overview' => 'Tickets and CIs managed by the team~~',
'Team:Overview:ActiveTickets' => 'Active tickets~~',
'Team:Overview:FunctionalCIs-ByType' => 'Functional CIs~~',
'Team:Overview:UserRequest-ByStatus' => 'User requests by status~~',
'Team:Overview:UserRequest-ClosedByMonth' => 'User requests closed in last 12 months~~',
'Team:Overview:UserRequest-ClosedByAgent' => 'User requests closed by agent in last 12 months~~',
'Class:Team/Attribute:overview' => 'Обзор',
'Team:Overview' => 'Тикеты и КЕ, за которые отвечает команда',
'Team:Overview:ActiveTickets' => 'Активные тикеты',
'Team:Overview:FunctionalCIs-ByType' => 'Функциональные КЕ',
'Team:Overview:UserRequest-ByStatus' => 'Запросы пользователей по статусу',
'Team:Overview:UserRequest-ClosedByMonth' => 'Запросы пользователей, закрытые за последние 12 месяцев',
'Team:Overview:UserRequest-ClosedByAgent' => 'Запросы пользователей, закрытые по агентам за последние 12 месяцев',
'Class:Team/Attribute:tickets_list' => 'Тикеты',
'Class:Team/Attribute:tickets_list+' => 'Все тикеты, назначенные на команду',
]);
@@ -181,7 +181,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Document' => 'Документ',
'Class:Document+' => 'Документ',
'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~',
'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s',
'Class:Document/Attribute:name' => 'Название',
'Class:Document/Attribute:name+' => '',
'Class:Document/Attribute:org_id' => 'Организация',
@@ -281,8 +281,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkPersonToTeam' => 'Связь Персона/Команда',
'Class:lnkPersonToTeam+' => '',
'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~',
'Class:lnkPersonToTeam/Name+' => '~~',
'Class:lnkPersonToTeam/Name' => '%1$s / %2$s',
'Class:lnkPersonToTeam/Name+' => '',
'Class:lnkPersonToTeam/Attribute:team_id' => 'Команда',
'Class:lnkPersonToTeam/Attribute:team_id+' => '',
'Class:lnkPersonToTeam/Attribute:team_name' => 'Команда',
@@ -346,13 +346,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Person:info' => 'Основная информация',
'User:info' => 'Основная информация',
'User:profiles' => 'Profiles (minimum one)~~',
'User:profiles' => 'Профили (минимум один)',
'Person:personal_info' => 'Личная информация',
'Person:notifiy' => 'Уведомления',
]);
// Themes
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:fullmoon' => 'Full moon~~',
'theme:test-red' => 'Test instance (Red)~~',
'theme:fullmoon' => 'Полнолуние',
'theme:test-red' => 'Тестовый инстанс (красный)',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'theme:light-grey' => 'Light Grey (deprecated)~~',
'theme:light-grey' => 'Светло-серая (устарела)',
]);

View File

@@ -72,15 +72,15 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkContactToTicket' => 'Связь Контакт/Тикет',
'Class:lnkContactToTicket+' => '',
'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~',
'Class:lnkContactToTicket/Name' => '%1$s / %2$s',
'Class:lnkContactToTicket/Attribute:ticket_id' => 'Тикет',
'Class:lnkContactToTicket/Attribute:ticket_id+' => '',
'Class:lnkContactToTicket/Attribute:ticket_ref' => 'Связь',
'Class:lnkContactToTicket/Attribute:ticket_ref+' => '',
'Class:lnkContactToTicket/Attribute:contact_id' => 'Контакт',
'Class:lnkContactToTicket/Attribute:contact_id+' => '',
'Class:lnkContactToTicket/Attribute:contact_name' => 'Contact name~~',
'Class:lnkContactToTicket/Attribute:contact_name+' => '~~',
'Class:lnkContactToTicket/Attribute:contact_name' => 'Имя контакта',
'Class:lnkContactToTicket/Attribute:contact_name+' => '',
'Class:lnkContactToTicket/Attribute:contact_email' => 'Email контакта',
'Class:lnkContactToTicket/Attribute:contact_email+' => '',
'Class:lnkContactToTicket/Attribute:role' => 'Роль (текст)',
@@ -145,82 +145,82 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'WorkOrder:Details' => 'Детали',
'WorkOrder:Moreinfo' => 'Дополнительная информация',
'Tickets:ResolvedFrom' => 'Автоматическое решение из %1$s',
'Class:cmdbAbstractObject/Method:Set' => 'Set~~',
'Class:cmdbAbstractObject/Method:Set+' => 'Set a field with a static value~~',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:Set/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:Set/Param:2' => 'Value~~',
'Class:cmdbAbstractObject/Method:Set/Param:2+' => 'The value to set~~',
'Class:cmdbAbstractObject/Method:SetCurrentDate' => 'SetCurrentDate~~',
'Class:cmdbAbstractObject/Method:SetCurrentDate+' => 'Set a field with the current date and time~~',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull' => 'SetCurrentDateIfNull~~',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull+' => 'Set an empty field with the current date and time~~',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetCurrentUser' => 'SetCurrentUser~~',
'Class:cmdbAbstractObject/Method:SetCurrentUser+' => 'Set a field with the currently logged in user~~',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'The field to set, in the current object. If the field is a string then the friendly name will be used, otherwise the identifier will be used. That friendly name is the name of the person if any is attached to the user, otherwise it is the login.~~',
'Class:cmdbAbstractObject/Method:SetCurrentPerson' => 'SetCurrentPerson~~',
'Class:cmdbAbstractObject/Method:SetCurrentPerson+' => 'Set a field with the currently logged in person (the "person" attached to the logged in "user").~~',
'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1+' => 'The field to set, in the current object. If the field is a string then the friendly name will be used, otherwise the identifier will be used.~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime' => 'SetElapsedTime~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime+' => 'Set a field with the time (seconds) elapsed since a date given by another field~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2' => 'Reference Field~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'The field from which to get the reference date~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3' => 'Working Hours~~',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3+' => 'Leave empty to rely on the standard working hours scheme, or set to "DefaultWorkingTimeComputer" to force a 24x7 scheme~~',
'Class:cmdbAbstractObject/Method:SetIfNull' => 'SetIfNull~~',
'Class:cmdbAbstractObject/Method:SetIfNull+' => 'Set a field only if it is empty, with a static value~~',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:2' => 'Value~~',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:2+' => 'The value to set~~',
'Class:cmdbAbstractObject/Method:AddValue' => 'AddValue~~',
'Class:cmdbAbstractObject/Method:AddValue+' => 'Add a fixed value to a field~~',
'Class:cmdbAbstractObject/Method:AddValue/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:AddValue/Param:1+' => 'The field to modify, in the current object~~',
'Class:cmdbAbstractObject/Method:AddValue/Param:2' => 'Value~~',
'Class:cmdbAbstractObject/Method:AddValue/Param:2+' => 'Decimal value which will be added, can be negative~~',
'Class:cmdbAbstractObject/Method:SetComputedDate' => 'SetComputedDate~~',
'Class:cmdbAbstractObject/Method:SetComputedDate+' => 'Set a field with a date computed from another field with extra logic~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:2' => 'Modifier~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:2+' => 'Textual information to modify the source date, eg. "+3 days"~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:3' => 'Source field~~',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:3+' => 'The field used as source to apply the Modifier logic~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull' => 'SetComputedDateIfNull~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull+' => 'Set non empty field with a date computed from another field with extra logic~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:2' => 'Modifier~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:2+' => 'Textual information to modify the source date, eg. "+3 days"~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:3' => 'Source field~~',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:3+' => 'The field used as source to apply the Modifier logic~~',
'Class:cmdbAbstractObject/Method:Reset' => 'Reset~~',
'Class:cmdbAbstractObject/Method:Reset+' => 'Reset a field to its default value~~',
'Class:cmdbAbstractObject/Method:Reset/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:Reset/Param:1+' => 'The field to reset, in the current object~~',
'Class:cmdbAbstractObject/Method:Copy' => 'Copy~~',
'Class:cmdbAbstractObject/Method:Copy+' => 'Copy the value of a field to another field~~',
'Class:cmdbAbstractObject/Method:Copy/Param:1' => 'Target Field~~',
'Class:cmdbAbstractObject/Method:Copy/Param:1+' => 'The field to set, in the current object~~',
'Class:cmdbAbstractObject/Method:Copy/Param:2' => 'Source Field~~',
'Class:cmdbAbstractObject/Method:Copy/Param:2+' => 'The field to get the value from, in the current object~~',
'Class:cmdbAbstractObject/Method:ApplyStimulus' => 'ApplyStimulus~~',
'Class:cmdbAbstractObject/Method:ApplyStimulus+' => 'Apply the specified stimulus to the current object~~',
'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1' => 'Stimulus code~~',
'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1+' => 'A valid stimulus code for the current class~~',
'Class:ResponseTicketTTO/Interface:iMetricComputer' => 'Time To Own~~',
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'Class:cmdbAbstractObject/Method:Set' => 'Set',
'Class:cmdbAbstractObject/Method:Set+' => 'Устанавливает поле в статичное значение',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:Set/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:Set/Param:2' => 'Значение',
'Class:cmdbAbstractObject/Method:Set/Param:2+' => 'Значение, которое нужно установить',
'Class:cmdbAbstractObject/Method:SetCurrentDate' => 'SetCurrentDate',
'Class:cmdbAbstractObject/Method:SetCurrentDate+' => 'Устанавливает поле в текущую дату и время',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull' => 'SetCurrentDateIfNull',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull+' => 'Устанавливает пустое поле в текущую дату и время',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetCurrentDateIfNull/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetCurrentUser' => 'SetCurrentUser',
'Class:cmdbAbstractObject/Method:SetCurrentUser+' => 'Устанавливает поле в текущего вошедшего пользователя',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'Поле, которое нужно установить, в текущем объекте. Если поле строковое, используется полное название, иначе — идентификатор. Полное название — это имя связанного с пользователем контакта, если он есть, иначе — логин.',
'Class:cmdbAbstractObject/Method:SetCurrentPerson' => 'SetCurrentPerson',
'Class:cmdbAbstractObject/Method:SetCurrentPerson+' => 'Устанавливает поле в текущего вошедшего сотрудника (контакт "Person", связанный с вошедшим "User").',
'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1+' => 'Поле, которое нужно установить, в текущем объекте. Если поле строковое, используется полное название, иначе — идентификатор.',
'Class:cmdbAbstractObject/Method:SetElapsedTime' => 'SetElapsedTime',
'Class:cmdbAbstractObject/Method:SetElapsedTime+' => 'Устанавливает поле во время (в секундах), прошедшее с даты, указанной в другом поле',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2' => 'Опорное поле',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'Поле, из которого берётся опорная дата',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3' => 'Рабочие часы',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3+' => 'Оставьте пустым, чтобы использовать стандартную схему рабочих часов, либо укажите "DefaultWorkingTimeComputer" для режима 24x7',
'Class:cmdbAbstractObject/Method:SetIfNull' => 'SetIfNull',
'Class:cmdbAbstractObject/Method:SetIfNull+' => 'Устанавливает поле в статичное значение, только если оно пусто',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:2' => 'Значение',
'Class:cmdbAbstractObject/Method:SetIfNull/Param:2+' => 'Значение, которое нужно установить',
'Class:cmdbAbstractObject/Method:AddValue' => 'AddValue',
'Class:cmdbAbstractObject/Method:AddValue+' => 'Прибавляет фиксированное значение к полю',
'Class:cmdbAbstractObject/Method:AddValue/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:AddValue/Param:1+' => 'Поле, которое нужно изменить, в текущем объекте',
'Class:cmdbAbstractObject/Method:AddValue/Param:2' => 'Значение',
'Class:cmdbAbstractObject/Method:AddValue/Param:2+' => 'Десятичное значение, которое будет прибавлено; может быть отрицательным',
'Class:cmdbAbstractObject/Method:SetComputedDate' => 'SetComputedDate',
'Class:cmdbAbstractObject/Method:SetComputedDate+' => 'Устанавливает поле в дату, вычисленную из другого поля с дополнительной логикой',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:2' => 'Модификатор',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:2+' => 'Текстовое указание для изменения исходной даты, например "+3 days"',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:3' => 'Исходное поле',
'Class:cmdbAbstractObject/Method:SetComputedDate/Param:3+' => 'Поле, используемое как источник для применения логики модификатора',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull' => 'SetComputedDateIfNull',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull+' => 'Устанавливает непустое поле в дату, вычисленную из другого поля с дополнительной логикой',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:2' => 'Модификатор',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:2+' => 'Текстовое указание для изменения исходной даты, например "+3 days"',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:3' => 'Исходное поле',
'Class:cmdbAbstractObject/Method:SetComputedDateIfNull/Param:3+' => 'Поле, используемое как источник для применения логики модификатора',
'Class:cmdbAbstractObject/Method:Reset' => 'Reset',
'Class:cmdbAbstractObject/Method:Reset+' => 'Сбрасывает поле в значение по умолчанию',
'Class:cmdbAbstractObject/Method:Reset/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:Reset/Param:1+' => 'Поле, которое нужно сбросить, в текущем объекте',
'Class:cmdbAbstractObject/Method:Copy' => 'Copy',
'Class:cmdbAbstractObject/Method:Copy+' => 'Копирует значение поля в другое поле',
'Class:cmdbAbstractObject/Method:Copy/Param:1' => 'Целевое поле',
'Class:cmdbAbstractObject/Method:Copy/Param:1+' => 'Поле, которое нужно установить, в текущем объекте',
'Class:cmdbAbstractObject/Method:Copy/Param:2' => 'Исходное поле',
'Class:cmdbAbstractObject/Method:Copy/Param:2+' => 'Поле, из которого берётся значение, в текущем объекте',
'Class:cmdbAbstractObject/Method:ApplyStimulus' => 'ApplyStimulus',
'Class:cmdbAbstractObject/Method:ApplyStimulus+' => 'Применяет указанный стимул к текущему объекту',
'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1' => 'Код стимула',
'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1+' => 'Допустимый код стимула для текущего класса',
'Class:ResponseTicketTTO/Interface:iMetricComputer' => 'Время до принятия (TTO)',
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Показатель, основанный на SLT типа TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Время до решения (TTR)',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Показатель, основанный на SLT типа TTR',
]);
//
@@ -228,6 +228,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Ticket/Attribute:team_email' => 'Team email~~',
'Class:Ticket/Attribute:team_email+' => '~~',
'Class:Ticket/Attribute:team_email' => 'Email команды',
'Class:Ticket/Attribute:team_email+' => '',
]);

View File

@@ -16,9 +16,9 @@
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Virtualization:baseinfo' => 'General~~',
'Virtualization:moreinfo' => 'Virtualization specifics~~',
'Virtualization:otherinfo' => 'Dates and description~~',
'Virtualization:baseinfo' => 'Общее',
'Virtualization:moreinfo' => 'Особенности виртуализации',
'Virtualization:otherinfo' => 'Даты и описание',
]);
//
@@ -28,13 +28,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Cloud/Name' => '%1$s',
'Class:Cloud/ComplementaryName' => '%1$s-%2$s',
'Class:Cloud' => 'Cloud~~',
'Class:Cloud+' => 'A Virtual Host operated by a Cloud provider. It can host Virtual Machines and Container Hosts.~~',
'Class:Cloud/Attribute:logo' => 'Logo~~',
'Class:Cloud/Attribute:logo+' => 'Used as object icon when this Cloud is displayed within impact analysis graphs~~',
'Class:Cloud/Attribute:provider_id+' => 'Who provides the cloud~~',
'Class:Cloud/Attribute:location_id' => 'Location~~',
'Class:Cloud/Attribute:location_id+' => 'Where is located the cloud~~',
'Class:Cloud' => 'Облако',
'Class:Cloud+' => 'Виртуальный хост, управляемый облачным провайдером. Может размещать виртуальные машины и хосты контейнеров.',
'Class:Cloud/Attribute:logo' => 'Логотип',
'Class:Cloud/Attribute:logo+' => 'Используется как иконка объекта на графах анализа влияния',
'Class:Cloud/Attribute:provider_id+' => 'Кто предоставляет облако',
'Class:Cloud/Attribute:location_id' => 'Местоположение',
'Class:Cloud/Attribute:location_id+' => 'Где расположено облако',
]);
//
@@ -42,6 +42,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:LogicalInterface/Attribute:org_id' => 'Organization~~',
'Class:LogicalInterface/Attribute:org_id+' => '~~',
'Class:LogicalInterface/Attribute:org_id' => 'Организация',
'Class:LogicalInterface/Attribute:org_id+' => '',
]);

View File

@@ -11,6 +11,6 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Core:ormValue:ormDocument:DownloadsCount' => '%1s~~',
'Core:ormValue:ormDocument:DownloadsCount+' => 'Downloaded %1$s time(s)~~',
'Core:ormValue:ormDocument:DownloadsCount' => '%1s',
'Core:ormValue:ormDocument:DownloadsCount+' => 'Скачано раз: %1$s',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:cmdbAbstractObject/UniquenessRule:no_duplicate' => '%1$s: %2$s is already linked to %3$s: %4$s, duplicates are not allowed on this relation.~~',
'Class:cmdbAbstractObject/UniquenessRule:no_duplicate' => '%1$s: %2$s уже связан с %3$s: %4$s, дубликаты в этой связи не допускаются.',
]);

View File

@@ -17,11 +17,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Core:UnknownObjectLabel' => 'Объект не найден (class: %1$s, id: %2$d)',
'Core:UnknownObjectTip' => 'Объект не удается найти. Возможно, он был удален некоторое время назад, и журнал с тех пор был очищен.',
'Core:UniquenessDefaultError' => 'Ошибка правила уникальности \'%1$s\'',
'Core:CheckConsistencyError' => 'Consistency rules not followed: %1$s~~',
'Core:CheckValueError' => 'Unexpected value for attribute \'%1$s\' (%2$s) : %3$s~~',
'Core:CheckConsistencyError' => 'Правила целостности не соблюдены: %1$s',
'Core:CheckValueError' => 'Недопустимое значение атрибута \'%1$s\' (%2$s): %3$s',
'Core:AttributeLinkedSet' => 'Массив объектов (1-n)',
'Core:AttributeLinkedSet+' => 'Список объектов заданного класса, указывающих на текущий объект',
'Core:AttributeLinkedSetDuplicatesFound' => 'Duplicates in the \'%1$s\' field : %2$s~~',
'Core:AttributeLinkedSetDuplicatesFound' => 'Дубликаты в поле \'%1$s\': %2$s',
'Core:AttributeDashboard' => 'Дашборд',
'Core:AttributeDashboard+' => '',
'Core:AttributePhoneNumber' => 'Номер телефона',
@@ -31,10 +31,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Core:AttributeTagSet' => 'Список тегов',
'Core:AttributeTagSet+' => '',
'Core:AttributeSet:placeholder' => 'нажмите, чтобы добавить',
'Core:Placeholder:CannotBeResolved' => '(%1$s : cannot be resolved)~~',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)~~',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s from %3$s)~~',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromSeveralChildClasses' => '%1$s (%2$s from child classes)~~',
'Core:Placeholder:CannotBeResolved' => '(%1$s: не удалось вычислить)',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s из %3$s)',
'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromSeveralChildClasses' => '%1$s (%2$s из дочерних классов)',
'Core:AttributeCaseLog' => 'Журнал',
'Core:AttributeCaseLog+' => '',
'Core:AttributeMetaEnum' => 'Вычисляемый enum',
@@ -177,14 +177,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:CMDBChange/Attribute:date+' => 'Дата и время изменения',
'Class:CMDBChange/Attribute:userinfo' => 'Пользователь',
'Class:CMDBChange/Attribute:userinfo+' => 'Кто произвёл изменение',
'Class:CMDBChange/Attribute:origin/Value:interactive' => 'User interaction in the GUI~~',
'Class:CMDBChange/Attribute:origin/Value:csv-import.php' => 'CSV import script~~',
'Class:CMDBChange/Attribute:origin/Value:csv-interactive' => 'CSV import in the GUI~~',
'Class:CMDBChange/Attribute:origin/Value:email-processing' => 'Email processing~~',
'Class:CMDBChange/Attribute:origin/Value:synchro-data-source' => 'Synchro. data source~~',
'Class:CMDBChange/Attribute:origin/Value:webservice-rest' => 'REST/JSON webservices~~',
'Class:CMDBChange/Attribute:origin/Value:webservice-soap' => 'SOAP webservices~~',
'Class:CMDBChange/Attribute:origin/Value:custom-extension' => 'By an extension~~',
'Class:CMDBChange/Attribute:origin/Value:interactive' => 'Действие пользователя в интерфейсе',
'Class:CMDBChange/Attribute:origin/Value:csv-import.php' => 'Скрипт импорта CSV',
'Class:CMDBChange/Attribute:origin/Value:csv-interactive' => 'Импорт CSV через интерфейс',
'Class:CMDBChange/Attribute:origin/Value:email-processing' => 'Обработка почты',
'Class:CMDBChange/Attribute:origin/Value:synchro-data-source' => 'Источник синхронизации',
'Class:CMDBChange/Attribute:origin/Value:webservice-rest' => 'Веб-сервис REST/JSON',
'Class:CMDBChange/Attribute:origin/Value:webservice-soap' => 'Веб-сервис SOAP',
'Class:CMDBChange/Attribute:origin/Value:custom-extension' => 'Расширением',
]);
//
@@ -375,8 +375,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:EventWebService' => 'События Web-сервиса',
'Class:EventWebService+' => 'Trace of a web service call~~',
'Class:EventWebService/Attribute:verb' => 'Verb~~',
'Class:EventWebService+' => 'Журнал вызова веб-сервиса',
'Class:EventWebService/Attribute:verb' => 'Операция',
'Class:EventWebService/Attribute:verb+' => 'Название операции',
'Class:EventWebService/Attribute:result' => 'Результат',
'Class:EventWebService/Attribute:result+' => 'Все удачн./неудачн.',
@@ -427,34 +427,34 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:EventNotificationNewsroom' => 'News sent~~',
'Class:EventNotificationNewsroom+' => '~~',
'Class:EventNotificationNewsroom/Attribute:title' => 'Title~~',
'Class:EventNotificationNewsroom/Attribute:title+' => '~~',
'Class:EventNotificationNewsroom/Attribute:icon' => 'Icon~~',
'Class:EventNotificationNewsroom/Attribute:icon+' => '~~',
'Class:EventNotificationNewsroom/Attribute:priority' => 'Priority~~',
'Class:EventNotificationNewsroom/Attribute:priority+' => '~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:1' => 'Critical~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:1+' => 'Critical~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:2' => 'Urgent~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:2+' => 'Urgent~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:3' => 'Important~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:3+' => 'Important~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:4' => 'Standard~~',
'Class:EventNotificationNewsroom/Attribute:priority/Value:4+' => 'Standard~~',
'Class:EventNotificationNewsroom/Attribute:url' => 'URL~~',
'Class:EventNotificationNewsroom/Attribute:url+' => '~~',
'Class:EventNotificationNewsroom/Attribute:read' => 'Read~~',
'Class:EventNotificationNewsroom/Attribute:read+' => '~~',
'Class:EventNotificationNewsroom/Attribute:read/Value:no' => 'No~~',
'Class:EventNotificationNewsroom/Attribute:read/Value:no+' => 'No~~',
'Class:EventNotificationNewsroom/Attribute:read/Value:yes' => 'Yes~~',
'Class:EventNotificationNewsroom/Attribute:read/Value:yes+' => 'Yes~~',
'Class:EventNotificationNewsroom/Attribute:read_date' => 'Read date~~',
'Class:EventNotificationNewsroom/Attribute:read_date+' => '~~',
'Class:EventNotificationNewsroom/Attribute:contact_id' => 'Contact~~',
'Class:EventNotificationNewsroom/Attribute:contact_id+' => '~~',
'Class:EventNotificationNewsroom' => 'Новость отправлена',
'Class:EventNotificationNewsroom+' => '',
'Class:EventNotificationNewsroom/Attribute:title' => 'Заголовок',
'Class:EventNotificationNewsroom/Attribute:title+' => '',
'Class:EventNotificationNewsroom/Attribute:icon' => 'Иконка',
'Class:EventNotificationNewsroom/Attribute:icon+' => '',
'Class:EventNotificationNewsroom/Attribute:priority' => 'Приоритет',
'Class:EventNotificationNewsroom/Attribute:priority+' => '',
'Class:EventNotificationNewsroom/Attribute:priority/Value:1' => 'Критический',
'Class:EventNotificationNewsroom/Attribute:priority/Value:1+' => 'Критический',
'Class:EventNotificationNewsroom/Attribute:priority/Value:2' => 'Срочный',
'Class:EventNotificationNewsroom/Attribute:priority/Value:2+' => 'Срочный',
'Class:EventNotificationNewsroom/Attribute:priority/Value:3' => 'Важный',
'Class:EventNotificationNewsroom/Attribute:priority/Value:3+' => 'Важный',
'Class:EventNotificationNewsroom/Attribute:priority/Value:4' => 'Стандартный',
'Class:EventNotificationNewsroom/Attribute:priority/Value:4+' => 'Стандартный',
'Class:EventNotificationNewsroom/Attribute:url' => 'URL',
'Class:EventNotificationNewsroom/Attribute:url+' => '',
'Class:EventNotificationNewsroom/Attribute:read' => 'Прочитано',
'Class:EventNotificationNewsroom/Attribute:read+' => '',
'Class:EventNotificationNewsroom/Attribute:read/Value:no' => 'Нет',
'Class:EventNotificationNewsroom/Attribute:read/Value:no+' => 'Нет',
'Class:EventNotificationNewsroom/Attribute:read/Value:yes' => 'Да',
'Class:EventNotificationNewsroom/Attribute:read/Value:yes+' => 'Да',
'Class:EventNotificationNewsroom/Attribute:read_date' => 'Дата прочтения',
'Class:EventNotificationNewsroom/Attribute:read_date+' => '',
'Class:EventNotificationNewsroom/Attribute:contact_id' => 'Контакт',
'Class:EventNotificationNewsroom/Attribute:contact_id+' => '',
]);
//
@@ -464,7 +464,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Action' => 'Действие',
'Class:Action+' => 'Действие, определённое пользователем',
'Class:Action/ComplementaryName' => '%1$s: %2$s~~',
'Class:Action/ComplementaryName' => '%1$s: %2$s',
'Class:Action/Attribute:name' => 'Название',
'Class:Action/Attribute:name+' => '',
'Class:Action/Attribute:description' => 'Описание',
@@ -479,18 +479,18 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Action/Attribute:status/Value:disabled+' => '',
'Class:Action/Attribute:trigger_list' => 'Связанные триггеры',
'Class:Action/Attribute:trigger_list+' => 'Триггеры, которые запускают данное действие',
'Class:Action/Attribute:asynchronous' => 'Asynchronous~~',
'Class:Action/Attribute:asynchronous+' => 'Whether this action should be executed in the background or not~~',
'Class:Action/Attribute:asynchronous/Value:use_global_setting' => 'Use global setting~~',
'Class:Action/Attribute:asynchronous/Value:yes' => 'Yes~~',
'Class:Action/Attribute:asynchronous/Value:no' => 'No~~',
'Class:Action/Attribute:asynchronous' => 'Асинхронно',
'Class:Action/Attribute:asynchronous+' => 'Выполнять ли это действие в фоновом режиме',
'Class:Action/Attribute:asynchronous/Value:use_global_setting' => 'Использовать глобальную настройку',
'Class:Action/Attribute:asynchronous/Value:yes' => 'Да',
'Class:Action/Attribute:asynchronous/Value:no' => 'Нет',
'Class:Action/Attribute:finalclass' => 'Тип',
'Class:Action/Attribute:finalclass+' => '',
'Action:WarningNoTriggerLinked' => 'Warning, no trigger is linked to the action. It will not be active until it has at least 1.~~',
'Action:last_executions_tab' => 'Last executions~~',
'Action:last_executions_tab_panel_title' => 'Executions of this action (%1$s)~~',
'Action:last_executions_tab_limit_days' => 'past %1$s days~~',
'Action:last_executions_tab_limit_none' => 'no limit~~',
'Action:WarningNoTriggerLinked' => 'Внимание: с этим действием не связан ни один триггер. Оно не будет активным, пока не появится хотя бы один.',
'Action:last_executions_tab' => 'Последние выполнения',
'Action:last_executions_tab_panel_title' => 'Выполнения этого действия (%1$s)',
'Action:last_executions_tab_limit_days' => 'за последние %1$s дн.',
'Action:last_executions_tab_limit_none' => 'без ограничения',
]);
//
@@ -509,24 +509,24 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ActionEmail' => 'Уведомление по email',
'Class:ActionEmail+' => '',
'Class:ActionEmail/Attribute:status+' => 'This status drives who will be notified:
- Being tested: just the Test recipient,
- In production: all (To, cc and Bcc)
- Inactive: no-one~~',
'Class:ActionEmail/Attribute:status/Value:test+' => 'Only the Test recipient is notified~~',
'Class:ActionEmail/Attribute:status/Value:enabled+' => 'All To, Cc and Bcc emails are notified~~',
'Class:ActionEmail/Attribute:status/Value:disabled+' => 'The email notification will not be sent~~',
'Class:ActionEmail/Attribute:status+' => 'Этот статус определяет, кто получит уведомление:
- Тестируется: только тестовый получатель,
- В эксплуатации: все (Кому, Копия и Скрытая копия)
- Не активно: никто',
'Class:ActionEmail/Attribute:status/Value:test+' => 'Уведомление получит только тестовый получатель',
'Class:ActionEmail/Attribute:status/Value:enabled+' => 'Уведомление получат все адреса из полей «Кому», «Копия» и «Скрытая копия»',
'Class:ActionEmail/Attribute:status/Value:disabled+' => 'Уведомление по email не будет отправлено',
'Class:ActionEmail/Attribute:test_recipient' => 'Тестовый получатель',
'Class:ActionEmail/Attribute:test_recipient+' => 'Получатель, если уведомление в статусе "Тест"',
'Class:ActionEmail/Attribute:from' => 'От',
'Class:ActionEmail/Attribute:from+' => 'Будет отправлено в заголовке email',
'Class:ActionEmail/Attribute:from_label' => 'From (label)~~',
'Class:ActionEmail/Attribute:from_label+' => 'Either a static label or a placeholder like $this->agent_id->friendlyname$~~',
'Class:ActionEmail/Attribute:from_label' => 'От (подпись)',
'Class:ActionEmail/Attribute:from_label+' => 'Статичный текст либо плейсхолдер вида $this->agent_id->friendlyname$',
'Class:ActionEmail/Attribute:reply_to' => 'Ответить на',
'Class:ActionEmail/Attribute:reply_to+' => 'Будет отправлено в заголовке email',
'Class:ActionEmail/Attribute:reply_to_label' => 'Reply to (label)~~',
'Class:ActionEmail/Attribute:reply_to_label+' => 'Either a static label or a placeholder like $this->team_id->friendlyname$.
If omitted the From (label) is used.~~',
'Class:ActionEmail/Attribute:reply_to_label' => 'Ответить на (подпись)',
'Class:ActionEmail/Attribute:reply_to_label+' => 'Статичный текст либо плейсхолдер вида $this->team_id->friendlyname$.
Если не указано, используется значение поля «От (подпись)».',
'Class:ActionEmail/Attribute:to' => 'Кому',
'Class:ActionEmail/Attribute:to+' => 'Получатель email',
'Class:ActionEmail/Attribute:cc' => 'Копия',
@@ -545,22 +545,22 @@ If omitted the From (label) is used.~~',
'Class:ActionEmail/Attribute:importance/Value:normal+' => '',
'Class:ActionEmail/Attribute:importance/Value:high' => 'Высокая',
'Class:ActionEmail/Attribute:importance/Value:high+' => '',
'Class:ActionEmail/Attribute:language' => 'Language~~',
'Class:ActionEmail/Attribute:language+' => 'Language to use for placeholders ($xxx$) inside the message (state, importance, priority, etc)~~',
'Class:ActionEmail/Attribute:html_template' => 'HTML template~~',
'Class:ActionEmail/Attribute:html_template+' => 'Optional HTML template wrapping around the content of the \'Body\' attribute below, useful for tailored email layouts (in the template, content of the \'Body\' attribute will replace the $content$ placeholder)~~',
'Class:ActionEmail/Attribute:ignore_notify' => 'Ignore the Notify flag~~',
'Class:ActionEmail/Attribute:ignore_notify+' => 'If set to \'Yes\' the \'Notify\' flag on Contacts has no effect.~~',
'Class:ActionEmail/Attribute:ignore_notify/Value:no' => 'No~~',
'Class:ActionEmail/Attribute:ignore_notify/Value:yes' => 'Yes~~',
'ActionEmail:main' => 'Message~~',
'ActionEmail:trigger' => 'Triggers~~',
'ActionEmail:recipients' => 'Contacts~~',
'ActionEmail:preview_tab' => 'Preview~~',
'ActionEmail:preview_tab+' => 'Preview of the eMail template~~',
'ActionEmail:preview_warning' => 'The actual eMail may look different in the eMail client than this preview in your browser.~~',
'ActionEmail:preview_more_info' => 'For more information about the CSS features supported by the different eMail clients, refer to %1$s~~',
'ActionEmail:content_placeholder_missing' => 'The placeholder "%1$s" was not found in the HTML template. The content of the field "%2$s" will not be included in the generated emails.~~',
'Class:ActionEmail/Attribute:language' => 'Язык',
'Class:ActionEmail/Attribute:language+' => 'Язык, используемый для плейсхолдеров ($xxx$) в тексте сообщения (статус, важность, приоритет и т. д.)',
'Class:ActionEmail/Attribute:html_template' => 'Шаблон HTML',
'Class:ActionEmail/Attribute:html_template+' => 'Необязательный HTML-шаблон, оборачивающий содержимое атрибута \'Тело\' ниже; удобен для оформления писем по собственному макету (в шаблоне содержимое атрибута \'Тело\' заменит плейсхолдер $content$)',
'Class:ActionEmail/Attribute:ignore_notify' => 'Игнорировать флаг «Уведомлять»',
'Class:ActionEmail/Attribute:ignore_notify+' => 'Если установлено значение \'Да\', флаг \'Уведомлять\' у контактов не учитывается.',
'Class:ActionEmail/Attribute:ignore_notify/Value:no' => 'Нет',
'Class:ActionEmail/Attribute:ignore_notify/Value:yes' => 'Да',
'ActionEmail:main' => 'Сообщение',
'ActionEmail:trigger' => 'Триггеры',
'ActionEmail:recipients' => 'Контакты',
'ActionEmail:preview_tab' => 'Предпросмотр',
'ActionEmail:preview_tab+' => 'Предпросмотр шаблона письма',
'ActionEmail:preview_warning' => 'Реальное письмо может выглядеть иначе в почтовом клиенте, чем в этом предпросмотре в браузере.',
'ActionEmail:preview_more_info' => 'Подробнее о поддержке CSS различными почтовыми клиентами см. %1$s',
'ActionEmail:content_placeholder_missing' => 'Плейсхолдер "%1$s" не найден в HTML-шаблоне. Содержимое поля "%2$s" не будет включено в сформированные письма.',
]);
//
@@ -568,40 +568,40 @@ If omitted the From (label) is used.~~',
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'ActionNewsroom:trigger' => 'Trigger~~',
'ActionNewsroom:content' => 'Message~~',
'ActionNewsroom:settings' => 'Settings~~',
'Class:ActionNewsroom' => 'Notification by Newsroom~~',
'Class:ActionNewsroom+' => '~~',
'Class:ActionNewsroom/Attribute:title' => 'Title~~',
'Class:ActionNewsroom/Attribute:title+' => 'Title of the news. Can contain placeholders like $this->attribute_code$~~',
'Class:ActionNewsroom/Attribute:message' => 'Message~~',
'Class:ActionNewsroom/Attribute:message+' => 'Contents of the news, in Markdown format not HTML. Can contain placeholders like:
- $this->attribute_code$ any attribute of the object triggering the notification,
- $this->attribute_external_key->attribute$ recursive syntax for any remote attribute,
- $current_contact->attribute$ attribute of the Person who triggered the notification~~',
'Class:ActionNewsroom/Attribute:icon' => 'Icon~~',
'Class:ActionNewsroom/Attribute:icon+' => 'Icon to appear next to the news in the newsroom.
- If filled, the custom icon will be used
- Else the icon of the triggering object if there is one (e.g. picture of a Person),
- Else the icon of the triggering object class,
- Otherwise, the application compact logo will be used~~',
'Class:ActionNewsroom/Attribute:priority' => 'Priority~~',
'Class:ActionNewsroom/Attribute:priority+' => 'News will be ordered by decreasing priority, when displayed in the Newsroom popup~~',
'Class:ActionNewsroom/Attribute:priority/Value:1' => 'Critical~~',
'Class:ActionNewsroom/Attribute:priority/Value:1+' => 'Critical~~',
'Class:ActionNewsroom/Attribute:priority/Value:2' => 'Urgent~~',
'Class:ActionNewsroom/Attribute:priority/Value:2+' => 'Urgent~~',
'Class:ActionNewsroom/Attribute:priority/Value:3' => 'Important~~',
'Class:ActionNewsroom/Attribute:priority/Value:3+' => 'Important~~',
'Class:ActionNewsroom/Attribute:priority/Value:4' => 'Standard~~',
'Class:ActionNewsroom/Attribute:priority/Value:4+' => 'Standard~~',
'Class:ActionNewsroom/Attribute:test_recipient_id' => 'Test recipient~~',
'Class:ActionNewsroom/Attribute:test_recipient_id+' => 'Person used instead of Recipients when notification is being tested~~',
'Class:ActionNewsroom/Attribute:recipients' => 'Recipients~~',
'Class:ActionNewsroom/Attribute:recipients+' => 'An OQL query returning Contact objects~~',
'Class:ActionNewsroom/Attribute:url' => 'URL~~',
'Class:ActionNewsroom/Attribute:url+' => 'By default, it points to the object triggering the notification. But you can also specify a custom URL.~~',
'ActionNewsroom:trigger' => 'Триггер',
'ActionNewsroom:content' => 'Сообщение',
'ActionNewsroom:settings' => 'Настройки',
'Class:ActionNewsroom' => 'Уведомление через ленту новостей',
'Class:ActionNewsroom+' => '',
'Class:ActionNewsroom/Attribute:title' => 'Заголовок',
'Class:ActionNewsroom/Attribute:title+' => 'Заголовок новости. Может содержать плейсхолдеры вида $this->attribute_code$',
'Class:ActionNewsroom/Attribute:message' => 'Сообщение',
'Class:ActionNewsroom/Attribute:message+' => 'Текст новости в формате Markdown, а не HTML. Может содержать плейсхолдеры вида:
- $this->attribute_code$ — любой атрибут объекта, вызвавшего уведомление,
- $this->attribute_external_key->attribute$ — рекурсивный синтаксис для атрибута связанного объекта,
- $current_contact->attribute$ — атрибут пользователя, вызвавшего уведомление',
'Class:ActionNewsroom/Attribute:icon' => 'Иконка',
'Class:ActionNewsroom/Attribute:icon+' => 'Иконка, отображаемая рядом с новостью в ленте.
- Если задана, используется указанная иконка
- Иначе — иконка объекта, вызвавшего уведомление, если она есть (например, фото контакта),
- Иначе — иконка класса объекта, вызвавшего уведомление,
- В противном случае используется компактный логотип приложения',
'Class:ActionNewsroom/Attribute:priority' => 'Приоритет',
'Class:ActionNewsroom/Attribute:priority+' => 'В окне ленты новостей записи сортируются по убыванию приоритета',
'Class:ActionNewsroom/Attribute:priority/Value:1' => 'Критический',
'Class:ActionNewsroom/Attribute:priority/Value:1+' => 'Критический',
'Class:ActionNewsroom/Attribute:priority/Value:2' => 'Срочный',
'Class:ActionNewsroom/Attribute:priority/Value:2+' => 'Срочный',
'Class:ActionNewsroom/Attribute:priority/Value:3' => 'Важный',
'Class:ActionNewsroom/Attribute:priority/Value:3+' => 'Важный',
'Class:ActionNewsroom/Attribute:priority/Value:4' => 'Стандартный',
'Class:ActionNewsroom/Attribute:priority/Value:4+' => 'Стандартный',
'Class:ActionNewsroom/Attribute:test_recipient_id' => 'Тестовый получатель',
'Class:ActionNewsroom/Attribute:test_recipient_id+' => 'Контакт, используемый вместо получателей при тестировании уведомления',
'Class:ActionNewsroom/Attribute:recipients' => 'Получатели',
'Class:ActionNewsroom/Attribute:recipients+' => 'OQL-запрос, возвращающий объекты класса Контакт',
'Class:ActionNewsroom/Attribute:url' => 'URL',
'Class:ActionNewsroom/Attribute:url+' => 'По умолчанию указывает на объект, вызвавший уведомление. Но можно задать и произвольный URL.',
]);
//
@@ -611,7 +611,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Trigger' => 'Триггер',
'Class:Trigger+' => 'Пользовательский обработчик событий',
'Class:Trigger/ComplementaryName' => '%1$s, %2$s~~',
'Class:Trigger/ComplementaryName' => '%1$s, %2$s',
'Class:Trigger/Attribute:description' => 'Описание',
'Class:Trigger/Attribute:description+' => 'Описание триггера',
'Class:Trigger/Attribute:action_list' => 'Действия триггера',
@@ -620,13 +620,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Trigger/Attribute:finalclass+' => '',
'Class:Trigger/Attribute:context' => 'Контекст',
'Class:Trigger/Attribute:context+' => 'Контекст, в котором будет срабатывать триггер',
'Class:Trigger/Attribute:complement' => 'Additional information~~',
'Class:Trigger/Attribute:complement+' => 'Computed automatically in english for triggers derived from TriggerOnObject~~',
'Class:Trigger/Attribute:subscription_policy' => 'Subscription policy~~',
'Class:Trigger/Attribute:subscription_policy+' => 'Allows users to unsubscribe from the trigger~~',
'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Allow complete unsubscription~~',
'Class:Trigger/Attribute:subscription_policy/Value:force_at_least_one_channel' => 'Force at least one channel (News or Email)~~',
'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Deny unsubscription~~',
'Class:Trigger/Attribute:complement' => 'Дополнительная информация',
'Class:Trigger/Attribute:complement+' => 'Вычисляется автоматически на английском языке для триггеров, унаследованных от TriggerOnObject',
'Class:Trigger/Attribute:subscription_policy' => 'Политика подписки',
'Class:Trigger/Attribute:subscription_policy+' => 'Позволяет пользователям отписываться от этого триггера',
'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Разрешить полную отписку',
'Class:Trigger/Attribute:subscription_policy/Value:force_at_least_one_channel' => 'Требовать хотя бы один канал (новости или email)',
'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Запретить отписку',
]);
//
@@ -707,7 +707,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:TriggerOnObjectUpdate' => 'Триггер на обновление объекта',
'Class:TriggerOnObjectUpdate+' => 'Триггер на обновление объекта данного или дочернего класса',
'Class:TriggerOnObjectUpdate/Attribute:filter+' => 'This filter is computed after the object update in database. It restricts the objects which can trigger the actions~~',
'Class:TriggerOnObjectUpdate/Attribute:filter+' => 'Этот фильтр вычисляется после обновления объекта в базе данных. Он ограничивает набор объектов, которые могут запускать действия',
'Class:TriggerOnObjectUpdate/Attribute:target_attcodes' => 'Отслеживаемые поля',
'Class:TriggerOnObjectUpdate/Attribute:target_attcodes+' => 'Поля объекта, при обновлении которых сработает триггер',
]);
@@ -717,10 +717,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:TriggerOnObjectMention' => 'Trigger (on object mention)~~',
'Class:TriggerOnObjectMention+' => 'Trigger on mention (@xxx) of an object of [a child class of] the given class in a log attribute~~',
'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => 'Mentioned filter~~',
'Class:TriggerOnObjectMention/Attribute:mentioned_filter+' => 'Limit the list of mentioned objects which will activate the trigger. If empty, any mentioned object (of any class) will activate it.~~',
'Class:TriggerOnObjectMention' => 'Триггер (на упоминание объекта)',
'Class:TriggerOnObjectMention+' => 'Триггер на упоминание (@xxx) объекта заданного класса (или его дочернего класса) в поле журнала',
'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => 'Фильтр упоминаемых объектов',
'Class:TriggerOnObjectMention/Attribute:mentioned_filter+' => 'Ограничивает список упоминаемых объектов, которые будут активировать триггер. Если пусто, триггер сработает на упоминание любого объекта (любого класса).',
]);
//
@@ -728,10 +728,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:TriggerOnAttributeBlobDownload' => 'Trigger (on object\'s document download)~~',
'Class:TriggerOnAttributeBlobDownload+' => 'Trigger on object\'s document field download of [a child class of] the given class~~',
'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => 'Target fields~~',
'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes+' => '~~',
'Class:TriggerOnAttributeBlobDownload' => 'Триггер (на скачивание документа объекта)',
'Class:TriggerOnAttributeBlobDownload+' => 'Триггер на скачивание файла из поля-документа объекта заданного класса (или его дочернего класса)',
'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => 'Целевые поля',
'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes+' => '',
]);
//
@@ -776,7 +776,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroDataSource/Attribute:description' => 'Описание',
'Class:SynchroDataSource/Attribute:status' => 'Статус',
'Class:SynchroDataSource/Attribute:scope_class' => 'Целевой класс',
'Class:SynchroDataSource/Attribute:scope_class+' => 'A Synchro Data Source can only populate a single '.ITOP_APPLICATION_SHORT.' class~~',
'Class:SynchroDataSource/Attribute:scope_class+' => 'Источник синхронизации данных может заполнять только один класс '.ITOP_APPLICATION_SHORT.'',
'Class:SynchroDataSource/Attribute:user_id' => 'Пользователь',
'Class:SynchroDataSource/Attribute:notify_contact_id' => 'Контакт для уведомления',
'Class:SynchroDataSource/Attribute:notify_contact_id+' => 'Контакт для уведомления в случае ошибки',
@@ -785,8 +785,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroDataSource/Attribute:url_application' => 'Приложение (ссылка)',
'Class:SynchroDataSource/Attribute:url_application+' => 'Гиперссылка на объект в приложение-источнике данных. Возможные шаблоны: $this->attribute$ и $replica->primary_key$',
'Class:SynchroDataSource/Attribute:reconciliation_policy' => 'Политика сопоставления',
'Class:SynchroDataSource/Attribute:reconciliation_policy+' => '"Use the attributes": '.ITOP_APPLICATION_SHORT.' object matches replica values for each Synchro attributes flagged for Reconciliation.
"Use primary_key": the column primary_key of the replica is expected to contain the identifier of the '.ITOP_APPLICATION_SHORT.' object~~',
'Class:SynchroDataSource/Attribute:reconciliation_policy+' => '"Использовать атрибуты": объект '.ITOP_APPLICATION_SHORT.' сопоставляется со значениями реплики по атрибутам синхронизации, отмеченным для сопоставления.
"Использовать primary_key": колонка primary_key реплики должна содержать идентификатор объекта '.ITOP_APPLICATION_SHORT.'',
'Class:SynchroDataSource/Attribute:full_load_periodicity' => 'Интервал устаревания',
'Class:SynchroDataSource/Attribute:full_load_periodicity+' => 'Объект будет считаться устаревшим, если данные о нем в таблице синхронизации не обновлялись в течение этого интервала.',
'Class:SynchroDataSource/Attribute:action_on_zero' => 'Действие при нуле',
@@ -797,9 +797,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroDataSource/Attribute:action_on_multiple+' => 'Действие, если найдено несколько объектов',
'Class:SynchroDataSource/Attribute:user_delete_policy' => 'Авторизованные пользователи',
'Class:SynchroDataSource/Attribute:user_delete_policy+' => 'Кому разрешено удаление синхронизируемых объектов',
'Class:SynchroDataSource/Attribute:delete_policy/Value:never' => 'Nobody~~',
'Class:SynchroDataSource/Attribute:delete_policy/Value:depends' => 'Administrators only~~',
'Class:SynchroDataSource/Attribute:delete_policy/Value:always' => 'All allowed users~~',
'Class:SynchroDataSource/Attribute:delete_policy/Value:never' => 'Никто',
'Class:SynchroDataSource/Attribute:delete_policy/Value:depends' => 'Только администраторы',
'Class:SynchroDataSource/Attribute:delete_policy/Value:always' => 'Все разрешённые пользователи',
'Class:SynchroDataSource/Attribute:delete_policy_update' => 'Обновляемые атрибуты',
'Class:SynchroDataSource/Attribute:delete_policy_update+' => 'Формат: field_name:value; ... Пример: status:inactive',
'Class:SynchroDataSource/Attribute:delete_policy_retention' => 'Срок хранения',
@@ -820,11 +820,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroDataSource/Attribute:action_on_multiple/Value:error' => 'Ошибка',
'Class:SynchroDataSource/Attribute:action_on_multiple/Value:take_first' => 'Использовать первый (случайно)',
'Class:SynchroDataSource/Attribute:delete_policy' => 'Устаревшие объекты',
'Class:SynchroDataSource/Attribute:delete_policy+' => 'What to do when a replica becomes obsolete:
"Ignore": do nothing, the associated object remains as is in iTop.
"Delete": Delete the associated object in iTop (and the replica in the data table).
"Update": Update the associated object as specified by the Update rules (see below).
"Update then Delete": apply the "Update rules". When Retention Duration expires, execute a "Delete" ~~',
'Class:SynchroDataSource/Attribute:delete_policy+' => 'Что делать, когда реплика становится устаревшей:
"Игнорировать": ничего не делать, связанный объект остаётся как есть в iTop.
"Удалить": удалить связанный объект в iTop (и реплику в таблице данных).
"Обновить": обновить связанный объект согласно правилам обновления (см. ниже).
"Обновить, затем удалить": применить "правила обновления". По истечении срока хранения выполнить "удаление" ',
'Class:SynchroDataSource/Attribute:delete_policy/Value:delete' => 'Удалить',
'Class:SynchroDataSource/Attribute:delete_policy/Value:ignore' => 'Игнорировать',
'Class:SynchroDataSource/Attribute:delete_policy/Value:update' => 'Обновить',
@@ -859,31 +859,31 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Core:Synchro:SynchroRunningStartedOn_Date' => 'Синхронизация запущена в %1$s, сейчас в процессе...',
'Core:Synchro:label_repl_ignored' => 'Игнор. (%1$s)',
'Core:Synchro:label_repl_disappeared' => 'Невид. (%1$s)',
'Core:Synchro:label_repl_existing' => 'Existing (%1$s)~~',
'Core:Synchro:label_repl_existing' => 'Существующие (%1$s)',
'Core:Synchro:label_repl_new' => 'Новый (%1$s)',
'Core:Synchro:label_obj_deleted' => 'Удаленный (%1$s)',
'Core:Synchro:label_obj_obsoleted' => 'Obsoleted (%1$s)~~',
'Core:Synchro:label_obj_obsoleted' => 'Устаревшие (%1$s)',
'Core:Synchro:label_obj_disappeared_errors' => 'Ошибки (%1$s)',
'Core:Synchro:label_obj_disappeared_no_action' => 'No Action (%1$s)~~',
'Core:Synchro:label_obj_unchanged' => 'Unchanged (%1$s)~~',
'Core:Synchro:label_obj_disappeared_no_action' => 'Без действия (%1$s)',
'Core:Synchro:label_obj_unchanged' => 'Без изменений (%1$s)',
'Core:Synchro:label_obj_updated' => 'Обновлен (%1$s)',
'Core:Synchro:label_obj_updated_errors' => 'Ошибки (%1$s)',
'Core:Synchro:label_obj_new_unchanged' => 'Unchanged (%1$s)~~',
'Core:Synchro:label_obj_new_unchanged' => 'Без изменений (%1$s)',
'Core:Synchro:label_obj_new_updated' => 'Обновлен (%1$s)',
'Core:Synchro:label_obj_created' => 'Создан (%1$s)',
'Core:Synchro:label_obj_new_errors' => 'Ошибки (%1$s)',
'Core:SynchroLogTitle' => '%1$s - %2$s~~',
'Core:Synchro:Nb_Replica' => 'Replica processed: %1$s~~',
'Core:Synchro:Nb_Class:Objects' => '%1$s: %2$s~~',
'Core:SynchroLogTitle' => '%1$s - %2$s',
'Core:Synchro:Nb_Replica' => 'Обработано реплик: %1$s',
'Core:Synchro:Nb_Class:Objects' => '%1$s: %2$s',
'Class:SynchroDataSource/Error:AtLeastOneReconciliationKeyMustBeSpecified' => 'Как минимум один атрибут должен быть выбран для поиска и сопоставления объектов, либо используйте политику сопоставления по primary_key.',
'Class:SynchroDataSource/Error:DeleteRetentionDurationMustBeSpecified' => 'Срок хранения должен быть указан, поскольку объекты должны быть удалены после того, помечены как устаревшие.',
'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => 'Устаревшие объекты должны быть обновлены, но способ обновления не указан.',
'Class:SynchroDataSource/Error:DataTableAlreadyExists' => 'Таблица %1$s уже существует в базе данных. Пожалуйста, используйте другое имя для таблицы данных из этого источника.',
'Core:SynchroReplica:PublicData' => 'Public Data~~',
'Core:SynchroReplica:PrivateDetails' => 'Private Details~~',
'Core:SynchroReplica:BackToDataSource' => 'Go Back to the Synchro Data Source: %1$s~~',
'Core:SynchroReplica:ListOfReplicas' => 'Replicas of the data source: %1$s~~',
'Core:SynchroAttExtKey:ReconciliationById' => 'id (Primary Key)~~',
'Core:SynchroReplica:PublicData' => 'Публичные данные',
'Core:SynchroReplica:PrivateDetails' => 'Приватные данные',
'Core:SynchroReplica:BackToDataSource' => 'Вернуться к источнику синхронизации: %1$s',
'Core:SynchroReplica:ListOfReplicas' => 'Реплики источника данных: %1$s',
'Core:SynchroAttExtKey:ReconciliationById' => 'id (первичный ключ)',
'Core:SynchroAtt:attcode' => 'Атрибут',
'Core:SynchroAtt:attcode+' => 'Поле объекта',
'Core:SynchroAtt:reconciliation' => 'Сопоставление ?',
@@ -897,26 +897,26 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Core:SyncDataExchangeComment' => '(Синхронизация)',
'Core:Synchro:ListOfDataSources' => 'Список данных:',
'Core:Synchro:LastSynchro' => 'Последняя синхронизация:',
'Core:Synchro:ThisObjectIsSynchronized' => 'This object is synchronized with an external data source~~',
'Core:Synchro:TheObjectWasCreatedBy_Source' => 'The object was <b>created</b> by the external data source %1$s~~',
'Core:Synchro:TheObjectCanBeDeletedBy_Source' => 'The object <b>can be deleted</b> by the external data source %1$s~~',
'Core:Synchro:TheObjectCannotBeDeletedByUser_Source' => 'You <b>cannot delete the object</b> because it is owned by the external data source %1$s~~',
'Core:Synchro:ThisObjectIsSynchronized' => 'Этот объект синхронизирован с внешним источником данных',
'Core:Synchro:TheObjectWasCreatedBy_Source' => 'Объект был <b>создан</b> внешним источником данных %1$s',
'Core:Synchro:TheObjectCanBeDeletedBy_Source' => 'Объект <b>может быть удалён</b> внешним источником данных %1$s',
'Core:Synchro:TheObjectCannotBeDeletedByUser_Source' => 'Вы <b>не можете удалить объект</b>, так как он принадлежит внешнему источнику данных %1$s',
'TitleSynchroExecution' => 'Запуск синхронизаций.',
'Class:SynchroDataSource:DataTable' => 'Таблица: %1$s',
'Core:SyncDataSourceObsolete' => 'The data source is marked as obsolete. Operation cancelled.~~',
'Core:SyncDataSourceObsolete' => 'Источник данных помечен как устаревший. Операция отменена.',
'Core:SyncDataSourceAccessRestriction' => 'Могут запускать только администраторы и определенные пользователи. Операция отменена.',
'Core:SyncTooManyMissingReplicas' => 'All records have been untouched for some time (all of the objects could be deleted). Please check that the process that writes into the synchronization table is still running. Operation cancelled.~~',
'Core:SyncSplitModeCLIOnly' => 'The synchronization can be executed in chunks only if run in mode CLI~~',
'Core:SyncTooManyMissingReplicas' => 'Все записи давно не обновлялись (все объекты могли бы быть удалены). Проверьте, что процесс, записывающий данные в таблицу синхронизации, всё ещё выполняется. Операция отменена.',
'Core:SyncSplitModeCLIOnly' => 'Синхронизацию можно выполнять частями только в режиме CLI',
'Core:Synchro:ListReplicas_AllReplicas_Errors_Warnings' => '%1$s replicas, Ошибок %2$s, Предупреждений %3$s.',
'Core:SynchroReplica:TargetObject' => 'Синхронизировано объектов: %1$s',
'Class:AsyncSendEmail' => 'Email (asynchronous)~~',
'Class:AsyncSendEmail' => 'Email (асинхронно)',
'Class:AsyncSendEmail/Attribute:to' => 'Кому',
'Class:AsyncSendEmail/Attribute:subject' => 'Получатель',
'Class:AsyncSendEmail/Attribute:body' => 'Тело',
'Class:AsyncSendEmail/Attribute:header' => 'Заголовок',
'Class:CMDBChangeOpSetAttributeOneWayPassword' => 'Шифрованный пароль',
'Class:CMDBChangeOpSetAttributeOneWayPassword/Attribute:prev_pwd' => 'Предыдущее значение',
'Class:CMDBChangeOpSetAttributeEncrypted' => 'Encrypted Field~~',
'Class:CMDBChangeOpSetAttributeEncrypted' => 'Зашифрованное поле',
'Class:CMDBChangeOpSetAttributeEncrypted/Attribute:prevstring' => 'Предыдущее значение',
'Class:CMDBChangeOpSetAttributeCaseLog' => 'Лог',
'Class:CMDBChangeOpSetAttributeCaseLog/Attribute:lastentry' => 'Посл.значение',
@@ -930,12 +930,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroAttribute/Attribute:update_policy/Value:master_unlocked' => 'Разблокирован',
'Class:SynchroAttribute/Attribute:update_policy/Value:write_if_empty' => 'Инициализация если пусто',
'Class:SynchroAttribute/Attribute:finalclass' => 'Класс',
'Class:SynchroAttExtKey' => 'Synchro Attribute (ExtKey)~~',
'Class:SynchroAttExtKey' => 'Атрибут синхронизации (внешний ключ)',
'Class:SynchroAttExtKey/Attribute:reconciliation_attcode' => 'Атрибут согласования',
'Class:SynchroAttLinkSet' => 'Synchro Attribute (Linkset)~~',
'Class:SynchroAttLinkSet' => 'Атрибут синхронизации (набор связей)',
'Class:SynchroAttLinkSet/Attribute:row_separator' => 'Разделитель строк',
'Class:SynchroAttLinkSet/Attribute:attribute_separator' => 'Разделитель атрибутов',
'Class:SynchroLog' => 'Synchro Log~~',
'Class:SynchroLog' => 'Журнал синхронизации',
'Class:SynchroLog/Attribute:sync_source_id' => 'Синх.исходные данные',
'Class:SynchroLog/Attribute:start_date' => 'Стартовать в',
'Class:SynchroLog/Attribute:end_date' => 'Закончить в',
@@ -943,23 +943,23 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroLog/Attribute:status/Value:completed' => 'Завершен',
'Class:SynchroLog/Attribute:status/Value:error' => 'Ошибка',
'Class:SynchroLog/Attribute:status/Value:running' => 'Запущен',
'Class:SynchroLog/Attribute:stats_nb_replica_seen' => 'Nb replica seen~~',
'Class:SynchroLog/Attribute:stats_nb_replica_total' => 'Nb replica total~~',
'Class:SynchroLog/Attribute:stats_nb_obj_deleted' => 'Nb objects deleted~~',
'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors' => 'Nb of errors while deleting~~',
'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted' => 'Nb objects obsoleted~~',
'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors' => 'Nb of errors while obsoleting~~',
'Class:SynchroLog/Attribute:stats_nb_obj_created' => 'Nb objects created~~',
'Class:SynchroLog/Attribute:stats_nb_obj_created_errors' => 'Nb or errors while creating~~',
'Class:SynchroLog/Attribute:stats_nb_obj_updated' => 'Nb objects updated~~',
'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors' => 'Nb errors while updating~~',
'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors' => 'Nb of errors during reconciliation~~',
'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action' => 'Nb replica disappeared~~',
'Class:SynchroLog/Attribute:stats_nb_obj_new_updated' => 'Nb objects updated~~',
'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged' => 'Nb objects unchanged~~',
'Class:SynchroLog/Attribute:stats_nb_replica_seen' => 'Просмотрено реплик',
'Class:SynchroLog/Attribute:stats_nb_replica_total' => 'Всего реплик',
'Class:SynchroLog/Attribute:stats_nb_obj_deleted' => 'Удалено объектов',
'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors' => 'Ошибок при удалении',
'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted' => 'Помечено устаревшими',
'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors' => 'Ошибок при пометке устаревшими',
'Class:SynchroLog/Attribute:stats_nb_obj_created' => 'Создано объектов',
'Class:SynchroLog/Attribute:stats_nb_obj_created_errors' => 'Ошибок при создании',
'Class:SynchroLog/Attribute:stats_nb_obj_updated' => 'Обновлено объектов',
'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors' => 'Ошибок при обновлении',
'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors' => 'Ошибок при сопоставлении',
'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action' => 'Исчезло реплик',
'Class:SynchroLog/Attribute:stats_nb_obj_new_updated' => 'Обновлено объектов',
'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged' => 'Без изменений объектов',
'Class:SynchroLog/Attribute:last_error' => 'Посл.ошибка',
'Class:SynchroLog/Attribute:traces' => 'Слежения',
'Class:SynchroReplica' => 'Synchro Replica~~',
'Class:SynchroReplica' => 'Реплика синхронизации',
'Class:SynchroReplica/Attribute:sync_source_id' => 'Синх.исходные данные',
'Class:SynchroReplica/Attribute:dest_id' => 'Назначение объекта',
'Class:SynchroReplica/Attribute:dest_class' => 'Назначение типа',
@@ -975,39 +975,39 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:SynchroReplica/Attribute:status_last_warning' => 'Предупреждения',
'Class:SynchroReplica/Attribute:info_creation_date' => 'Дата создания',
'Class:SynchroReplica/Attribute:info_last_modified' => 'Дата последнего изменения',
'Class:SynchroReplica/Action:delete+' => 'delete replica~~',
'Class:SynchroReplica/Action:unlink' => 'Unlink~~',
'Class:SynchroReplica/Action:unlink+' => 'Unlink replica with destination object~~',
'Class:SynchroReplica/Action:unlinksynchro' => 'Unlink & Synchro~~',
'Class:SynchroReplica/Action:unlinksynchro+' => 'Unlink replica with destination object and execute synchronization with this replica~~',
'Class:SynchroReplica/Action:synchro' => 'Synchro~~',
'Class:SynchroReplica/Action:synchro+' => 'Execute synchronization with this replica~~',
'Class:SynchroReplica/Action:allowdelete' => 'Allow delete of object linked to this synchro replica~~',
'Class:SynchroReplica/Action:allowdelete+' => 'Object linked to a deleted replica is deleted~~',
'Class:SynchroReplica/Action:denydelete' => 'Deny delete of object linked to this synchro replica~~',
'Class:SynchroReplica/Action:denydelete+' => 'Object linked to a deleted replica is not deleted~~',
'Class:SynchroReplica/Action:delete+' => 'удалить реплику',
'Class:SynchroReplica/Action:unlink' => 'Отвязать',
'Class:SynchroReplica/Action:unlink+' => 'Отвязать реплику от целевого объекта',
'Class:SynchroReplica/Action:unlinksynchro' => 'Отвязать и синхронизировать',
'Class:SynchroReplica/Action:unlinksynchro+' => 'Отвязать реплику от целевого объекта и выполнить синхронизацию по этой реплике',
'Class:SynchroReplica/Action:synchro' => 'Синхронизировать',
'Class:SynchroReplica/Action:synchro+' => 'Выполнить синхронизацию по этой реплике',
'Class:SynchroReplica/Action:allowdelete' => 'Разрешить удаление объекта, связанного с этой репликой',
'Class:SynchroReplica/Action:allowdelete+' => 'Объект, связанный с удалённой репликой, будет удалён',
'Class:SynchroReplica/Action:denydelete' => 'Запретить удаление объекта, связанного с этой репликой',
'Class:SynchroReplica/Action:denydelete+' => 'Объект, связанный с удалённой репликой, не будет удалён',
'Class:SynchroReplica/Action:unlink_all' => 'Unlink Synchro Replica objects~~',
'Class:SynchroReplica/Action:unlink_all+' => 'Unlink replica with destination object~~',
'Class:SynchroReplica/Action:unlinksynchro_all' => 'Unlink & Synchronize Synchro Replica objects~~',
'Class:SynchroReplica/Action:unlinksynchro_all+' => 'Unlink replica with destination object and execute synchronization with this replica~~',
'Class:SynchroReplica/Action:synchro_all' => 'Synchronize Synchro Replica objects~~',
'Class:SynchroReplica/Action:synchro_all+' => 'Execute synchronization with this replica~~',
'Class:SynchroReplica/Action:allowdelete_all' => 'Allow delete of objects linked to Synchro Replica~~',
'Class:SynchroReplica/Action:allowdelete_all+' => 'Object linked to a deleted replica is deleted~~',
'Class:SynchroReplica/Action:denydelete_all' => 'Deny delete of objects linked to Synchro Replica~~',
'Class:SynchroReplica/Action:denydelete_all+' => 'Object linked to a deleted replica is not deleted~~',
'Class:SynchroReplica/Action:unlink_all' => 'Отвязать объекты реплик синхронизации',
'Class:SynchroReplica/Action:unlink_all+' => 'Отвязать реплику от целевого объекта',
'Class:SynchroReplica/Action:unlinksynchro_all' => 'Отвязать и синхронизировать объекты реплик синхронизации',
'Class:SynchroReplica/Action:unlinksynchro_all+' => 'Отвязать реплику от целевого объекта и выполнить синхронизацию по этой реплике',
'Class:SynchroReplica/Action:synchro_all' => 'Синхронизировать объекты реплик синхронизации',
'Class:SynchroReplica/Action:synchro_all+' => 'Выполнить синхронизацию по этой реплике',
'Class:SynchroReplica/Action:allowdelete_all' => 'Разрешить удаление объектов, связанных с репликами синхронизации',
'Class:SynchroReplica/Action:allowdelete_all+' => 'Объект, связанный с удалённой репликой, будет удалён',
'Class:SynchroReplica/Action:denydelete_all' => 'Запретить удаление объектов, связанных с репликами синхронизации',
'Class:SynchroReplica/Action:denydelete_all+' => 'Объект, связанный с удалённой репликой, не будет удалён',
'UI:UnlinkAllTabTitle' => 'Unlink Synchro Replica objects~~',
'UI:UnlinkAllPageTitle' => 'Unlink Synchro Replica objects~~',
'UI:UnlinkSynchroAllTabTitle' => 'Unlink & Synchronize Synchro Replica objects~~',
'UI:UnlinkSynchroAllPageTitle' => ' Unlink & Synchronize Synchro Replica objects~~',
'UI:SynchroAllTabTitle' => 'Synchronize Synchro Replica objects~~',
'UI:SynchroAllPageTitle' => 'Synchronize Synchro Replica objects~~',
'UI:AllowDeleteAllTabTitle' => 'Allow delete of objects linked to Synchro Replica~~',
'UI:AllowDeleteAllPageTitle' => 'Allow delete of objects linked to Synchro Replica~~',
'UI:DenyDeleteAllTabTitle' => 'Deny delete of objects linked to Synchro Replica~~',
'UI:DenyDeleteAllPageTitle' => 'Deny delete of objects linked to Synchro Replica~~',
'UI:UnlinkAllTabTitle' => 'Отвязать объекты реплик синхронизации',
'UI:UnlinkAllPageTitle' => 'Отвязать объекты реплик синхронизации',
'UI:UnlinkSynchroAllTabTitle' => 'Отвязать и синхронизировать объекты реплик синхронизации',
'UI:UnlinkSynchroAllPageTitle' => ' Отвязать и синхронизировать объекты реплик синхронизации',
'UI:SynchroAllTabTitle' => 'Синхронизировать объекты реплик синхронизации',
'UI:SynchroAllPageTitle' => 'Синхронизировать объекты реплик синхронизации',
'UI:AllowDeleteAllTabTitle' => 'Разрешить удаление объектов, связанных с репликами синхронизации',
'UI:AllowDeleteAllPageTitle' => 'Разрешить удаление объектов, связанных с репликами синхронизации',
'UI:DenyDeleteAllTabTitle' => 'Запретить удаление объектов, связанных с репликами синхронизации',
'UI:DenyDeleteAllPageTitle' => 'Запретить удаление объектов, связанных с репликами синхронизации',
'Class:appUserPreferences' => 'Предпочтения пользователя',
'Class:appUserPreferences/Attribute:userid' => 'Пользователь',
@@ -1125,17 +1125,17 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
// Class: DBProperty
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:DBProperty' => 'DB property~~',
'Class:DBProperty' => 'Свойство БД',
'Class:DBProperty+' => '',
'Class:DBProperty/Attribute:name' => 'Name~~',
'Class:DBProperty/Attribute:name' => 'Название',
'Class:DBProperty/Attribute:name+' => '',
'Class:DBProperty/Attribute:description' => 'Description~~',
'Class:DBProperty/Attribute:description' => 'Описание',
'Class:DBProperty/Attribute:description+' => '',
'Class:DBProperty/Attribute:value' => 'Value~~',
'Class:DBProperty/Attribute:value' => 'Значение',
'Class:DBProperty/Attribute:value+' => '',
'Class:DBProperty/Attribute:change_date' => 'Change date~~',
'Class:DBProperty/Attribute:change_date' => 'Дата изменения',
'Class:DBProperty/Attribute:change_date+' => '',
'Class:DBProperty/Attribute:change_comment' => 'Change comment~~',
'Class:DBProperty/Attribute:change_comment' => 'Комментарий к изменению',
'Class:DBProperty/Attribute:change_comment+' => '',
]);
@@ -1143,29 +1143,29 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
// Class: BackgroundTask
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:BackgroundTask' => 'Background task~~',
'Class:BackgroundTask' => 'Фоновая задача',
'Class:BackgroundTask+' => '',
'Class:BackgroundTask/Attribute:class_name' => 'Class name~~',
'Class:BackgroundTask/Attribute:class_name' => 'Класс',
'Class:BackgroundTask/Attribute:class_name+' => '',
'Class:BackgroundTask/Attribute:first_run_date' => 'First run date~~',
'Class:BackgroundTask/Attribute:first_run_date' => 'Дата первого запуска',
'Class:BackgroundTask/Attribute:first_run_date+' => '',
'Class:BackgroundTask/Attribute:latest_run_date' => 'Latest run date~~',
'Class:BackgroundTask/Attribute:latest_run_date' => 'Дата последнего запуска',
'Class:BackgroundTask/Attribute:latest_run_date+' => '',
'Class:BackgroundTask/Attribute:next_run_date' => 'Next run date~~',
'Class:BackgroundTask/Attribute:next_run_date' => 'Дата следующего запуска',
'Class:BackgroundTask/Attribute:next_run_date+' => '',
'Class:BackgroundTask/Attribute:total_exec_count' => 'Total exec. count~~',
'Class:BackgroundTask/Attribute:total_exec_count' => 'Всего выполнений',
'Class:BackgroundTask/Attribute:total_exec_count+' => '',
'Class:BackgroundTask/Attribute:latest_run_duration' => 'Latest run duration~~',
'Class:BackgroundTask/Attribute:latest_run_duration' => 'Длительность последнего выполнения',
'Class:BackgroundTask/Attribute:latest_run_duration+' => '',
'Class:BackgroundTask/Attribute:min_run_duration' => 'Min. run duration~~',
'Class:BackgroundTask/Attribute:min_run_duration' => 'Мин. длительность выполнения',
'Class:BackgroundTask/Attribute:min_run_duration+' => '',
'Class:BackgroundTask/Attribute:max_run_duration' => 'Max. run duration~~',
'Class:BackgroundTask/Attribute:max_run_duration' => 'Макс. длительность выполнения',
'Class:BackgroundTask/Attribute:max_run_duration+' => '',
'Class:BackgroundTask/Attribute:average_run_duration' => 'Average run duration~~',
'Class:BackgroundTask/Attribute:average_run_duration' => 'Средняя длительность выполнения',
'Class:BackgroundTask/Attribute:average_run_duration+' => '',
'Class:BackgroundTask/Attribute:running' => 'Running~~',
'Class:BackgroundTask/Attribute:running' => 'Выполняется',
'Class:BackgroundTask/Attribute:running+' => '',
'Class:BackgroundTask/Attribute:status' => 'Status~~',
'Class:BackgroundTask/Attribute:status' => 'Статус',
'Class:BackgroundTask/Attribute:status+' => '',
]);
@@ -1173,30 +1173,30 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
// Class: AsyncTask
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:AsyncTask' => 'Async. task~~',
'Class:AsyncTask' => 'Асинхронная задача',
'Class:AsyncTask+' => '',
'Class:AsyncTask/Attribute:created' => 'Created~~',
'Class:AsyncTask/Attribute:created' => 'Создано',
'Class:AsyncTask/Attribute:created+' => '',
'Class:AsyncTask/Attribute:started' => 'Started~~',
'Class:AsyncTask/Attribute:started' => 'Запущено',
'Class:AsyncTask/Attribute:started+' => '',
'Class:AsyncTask/Attribute:planned' => 'Planned~~',
'Class:AsyncTask/Attribute:planned' => 'Запланировано',
'Class:AsyncTask/Attribute:planned+' => '',
'Class:AsyncTask/Attribute:event_id' => 'Event~~',
'Class:AsyncTask/Attribute:event_id' => 'Событие',
'Class:AsyncTask/Attribute:event_id+' => '',
'Class:AsyncTask/Attribute:finalclass' => 'Final class~~',
'Class:AsyncTask/Attribute:finalclass' => 'Итоговый класс',
'Class:AsyncTask/Attribute:finalclass+' => '',
'Class:AsyncTask/Attribute:status' => 'Status~~',
'Class:AsyncTask/Attribute:status' => 'Статус',
'Class:AsyncTask/Attribute:status+' => '',
'Class:AsyncTask/Attribute:remaining_retries' => 'Remaining retries~~',
'Class:AsyncTask/Attribute:remaining_retries' => 'Осталось попыток',
'Class:AsyncTask/Attribute:remaining_retries+' => '',
'Class:AsyncTask/Attribute:last_error_code' => 'Last error code~~',
'Class:AsyncTask/Attribute:last_error_code' => 'Код последней ошибки',
'Class:AsyncTask/Attribute:last_error_code+' => '',
'Class:AsyncTask/Attribute:last_error' => 'Last error~~',
'Class:AsyncTask/Attribute:last_error' => 'Последняя ошибка',
'Class:AsyncTask/Attribute:last_error+' => '',
'Class:AsyncTask/Attribute:last_attempt' => 'Last attempt~~',
'Class:AsyncTask/Attribute:last_attempt' => 'Последняя попытка',
'Class:AsyncTask/Attribute:last_attempt+' => '',
'Class:AsyncTask:InvalidConfig_Class_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]". Expecting an array with the following keys: %2$s~~',
'Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]": unexpected key "%2$s". Expecting only the following keys: %3$s~~',
'Class:AsyncTask:InvalidConfig_Class_Keys' => 'Неверный формат конфигурации "async_task_retries[%1$s]". Ожидается массив со следующими ключами: %2$s',
'Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys' => 'Неверный формат конфигурации "async_task_retries[%1$s]": неожиданный ключ "%2$s". Допустимы только следующие ключи: %3$s',
]);
//
@@ -1233,8 +1233,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:ResourceSystemMenu' => 'Меню Система',
'Class:ResourceSystemMenu+' => '',
'Class:EventNotification/Attribute:object_class' => 'Object class~~',
'Class:EventNotification/Attribute:object_class+' => 'Object class (Same as trigger)~~',
'Core:EventNotificationNewsroom:ErrorNotificationNotSent' => 'Notification not sent~~',
'Core:EventNotificationNewsroom:ErrorOnDBInsert' => 'An error occurred while saving the notification~~',
'Class:EventNotification/Attribute:object_class' => 'Класс объекта',
'Class:EventNotification/Attribute:object_class+' => 'Класс объекта (совпадает с классом триггера)',
'Core:EventNotificationNewsroom:ErrorNotificationNotSent' => 'Уведомление не отправлено',
'Core:EventNotificationNewsroom:ErrorOnDBInsert' => 'Произошла ошибка при сохранении уведомления',
]);

View File

@@ -22,12 +22,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:AuditCategory/Attribute:definition_set+' => 'OQL выражение, определяющее набор объектов для проверки',
'Class:AuditCategory/Attribute:rules_list' => 'Правила аудита',
'Class:AuditCategory/Attribute:rules_list+' => 'Правила аудита для этой категории',
'Class:AuditCategory/Attribute:ok_error_tolerance' => 'Warning threshold~~',
'Class:AuditCategory/Attribute:ok_error_tolerance+' => 'Percentage of invalid objects below which the result is a warning (orange)~~',
'Class:AuditCategory/Attribute:warning_error_tolerance' => 'Error threshold~~',
'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~',
'Class:AuditCategory/Attribute:domains_list' => 'Domains~~',
'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~',
'Class:AuditCategory/Attribute:ok_error_tolerance' => 'Порог предупреждения',
'Class:AuditCategory/Attribute:ok_error_tolerance+' => 'Процент невалидных объектов, ниже которого результат считается предупреждением (оранжевый)',
'Class:AuditCategory/Attribute:warning_error_tolerance' => 'Порог ошибки',
'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Процент невалидных объектов, ниже которого результат считается ошибкой (красный)',
'Class:AuditCategory/Attribute:domains_list' => 'Домены',
'Class:AuditCategory/Attribute:domains_list+' => 'Домены, включающие эту категорию',
]);
//
@@ -41,8 +41,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:AuditRule/Attribute:name+' => 'Краткое название этого правила',
'Class:AuditRule/Attribute:description' => 'Описание правила аудита',
'Class:AuditRule/Attribute:description+' => 'Полное описание этого правила аудита',
'Class:AuditRule/Attribute:process' => 'Correction process~~',
'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~',
'Class:AuditRule/Attribute:process' => 'Процесс исправления',
'Class:AuditRule/Attribute:process+' => 'Как это исправить? Кто должен это делать? …',
'Class:AuditRule/Attribute:query' => 'Запрос для выполнения',
'Class:AuditRule/Attribute:query+' => 'OQL выражение, выполняющее проверку набора объектов категории аудита',
'Class:AuditRule/Attribute:valid_flag' => 'Валидные объекты?',
@@ -55,8 +55,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:AuditRule/Attribute:category_id+' => 'Категория для этого правила',
'Class:AuditRule/Attribute:category_name' => 'Категория',
'Class:AuditRule/Attribute:category_name+' => 'Категория для этого правила',
'Class:AuditRule/Attribute:contact_id' => 'Owner~~',
'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~',
'Class:AuditRule/Attribute:contact_id' => 'Ответственный',
'Class:AuditRule/Attribute:contact_id+' => 'Команда или человек, ответственные за исправление ошибок, найденных этим правилом',
]);
//
@@ -64,17 +64,17 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:AuditDomain' => 'Audit Domain~~',
'Class:AuditDomain+' => 'Audit domains allow to group the audit categories.
Domain usually correspond to who is responsible for checking and fixing errors~~',
'Class:AuditDomain/Attribute:name' => 'Name~~',
'Class:AuditDomain/Attribute:name+' => 'Its a segmentation of the Audit by who is in charge of fixing it or just interested~~',
'Class:AuditDomain/Attribute:description' => 'Description~~',
'Class:AuditDomain/Attribute:description+' => '~~',
'Class:AuditDomain/Attribute:icon' => 'Icon~~',
'Class:AuditDomain/Attribute:icon+' => '~~',
'Class:AuditDomain/Attribute:categories_list' => 'Categories~~',
'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~',
'Class:AuditDomain' => 'Домен аудита',
'Class:AuditDomain+' => 'Домены аудита позволяют группировать категории аудита.
Домен обычно соответствует тому, кто отвечает за проверку и исправление ошибок',
'Class:AuditDomain/Attribute:name' => 'Название',
'Class:AuditDomain/Attribute:name+' => 'Это разбиение аудита по тому, кто отвечает за исправление или просто заинтересован',
'Class:AuditDomain/Attribute:description' => 'Описание',
'Class:AuditDomain/Attribute:description+' => '',
'Class:AuditDomain/Attribute:icon' => 'Иконка',
'Class:AuditDomain/Attribute:icon+' => '',
'Class:AuditDomain/Attribute:categories_list' => 'Категории',
'Class:AuditDomain/Attribute:categories_list+' => 'Связанные категории аудита. При запуске аудита по домену проверяются только эти связанные категории.',
]);
//
@@ -82,16 +82,16 @@ Domain usually correspond to who is responsible for checking and fixing errors~~
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~',
'Class:lnkAuditCategoryToAuditDomain+' => '~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id+' => 'Audit Category~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_name' => 'Category name~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_name+' => 'Audit category name~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id' => 'Domain~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~',
'Class:lnkAuditCategoryToAuditDomain' => 'Связь Категория аудита / Домен аудита',
'Class:lnkAuditCategoryToAuditDomain+' => '',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Категория',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id+' => 'Категория аудита',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_name' => 'Название категории',
'Class:lnkAuditCategoryToAuditDomain/Attribute:category_name+' => 'Название категории аудита',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id' => 'Домен',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Домен аудита',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Название домена',
'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Название домена аудита',
]);
//
@@ -105,32 +105,32 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Query/Attribute:name+' => 'Идентифицирует запрос',
'Class:Query/Attribute:description' => 'Описание',
'Class:Query/Attribute:description+' => 'Длинное описание запроса (назначение, использование и т.д.)',
'Class:Query/Attribute:is_template' => 'Template for OQL fields~~',
'Class:Query/Attribute:is_template+' => 'Usable as source for recipient OQL in Notifications~~',
'Class:Query/Attribute:is_template/Value:yes' => 'Yes~~',
'Class:Query/Attribute:is_template/Value:no' => 'No~~',
'Class:Query/Attribute:export_count' => 'Export counter~~',
'Class:Query/Attribute:export_count+' => 'Counter reflecting the number of time this query has been executed~~',
'Class:Query/Attribute:export_last_date' => 'Last export~~',
'Class:Query/Attribute:export_last_date+' => 'Date and time of the last export execution~~',
'Class:Query/Attribute:export_last_user_id' => 'User~~',
'Class:Query/Attribute:export_last_user_id+' => 'The user who executed the last export~~',
'Class:Query/Attribute:export_last_user_contact' => 'Contact~~',
'Class:Query/Attribute:export_last_user_contact+' => 'The contact who executed the last export~~',
'Class:Query/Attribute:usages' => 'Usages~~',
'Class:Query/Attribute:usages+' => 'Specify the possible usages for this query.
- The "Reference for AI" tag assumes the description is very explicit and compliant with OQL. It may be used as an example for building OQL queries by AI.
- The "Notification" tag implies the class of returned objects has one and only one field of type email.
- The "Dashlet" tag assumes the OQL returns a single class of objects.~~',
'Class:Query/Attribute:usages/Value:export' => 'Export~~',
'Class:Query/Attribute:usages/Value:reference' => 'Reference for AI~~',
'Class:Query/Attribute:usages/Value:notif' => 'Notification~~',
'Class:Query/Attribute:usages/Value:draft' => 'Draft~~',
'Class:Query/Attribute:usages/Value:dashlet' => 'Dashlet~~',
'Class:Query/Attribute:owner_id' => 'Owner~~',
'Class:Query/Attribute:owner_id+' => 'Team or person responsible for this query~~',
'Query:baseinfo' => 'General information~~',
'Query:exportInfo' => 'Export information~~',
'Class:Query/Attribute:is_template' => 'Шаблон для полей OQL',
'Class:Query/Attribute:is_template+' => 'Может использоваться как источник OQL получателей в уведомлениях',
'Class:Query/Attribute:is_template/Value:yes' => 'Да',
'Class:Query/Attribute:is_template/Value:no' => 'Нет',
'Class:Query/Attribute:export_count' => 'Счётчик экспортов',
'Class:Query/Attribute:export_count+' => 'Счётчик, отражающий количество выполнений этого запроса',
'Class:Query/Attribute:export_last_date' => 'Последний экспорт',
'Class:Query/Attribute:export_last_date+' => 'Дата и время последнего выполнения экспорта',
'Class:Query/Attribute:export_last_user_id' => 'Пользователь',
'Class:Query/Attribute:export_last_user_id+' => 'Пользователь, выполнивший последний экспорт',
'Class:Query/Attribute:export_last_user_contact' => 'Контакт',
'Class:Query/Attribute:export_last_user_contact+' => 'Контакт, выполнивший последний экспорт',
'Class:Query/Attribute:usages' => 'Использование',
'Class:Query/Attribute:usages+' => 'Укажите возможные варианты использования этого запроса.
- Тег "Пример для ИИ" предполагает, что описание очень явное и соответствует синтаксису OQL. Может использоваться ИИ как пример для построения OQL-запросов.
- Тег "Уведомление" подразумевает, что класс возвращаемых объектов содержит одно и только одно поле типа email.
- Тег "Дашлет" предполагает, что OQL возвращает объекты только одного класса.',
'Class:Query/Attribute:usages/Value:export' => 'Экспорт',
'Class:Query/Attribute:usages/Value:reference' => 'Пример для ИИ',
'Class:Query/Attribute:usages/Value:notif' => 'Уведомление',
'Class:Query/Attribute:usages/Value:draft' => 'Черновик',
'Class:Query/Attribute:usages/Value:dashlet' => 'Дашлет',
'Class:Query/Attribute:owner_id' => 'Ответственный',
'Class:Query/Attribute:owner_id+' => 'Команда или человек, ответственные за этот запрос',
'Query:baseinfo' => 'Общая информация',
'Query:exportInfo' => 'Информация об экспорте',
'Class:QueryOQL/Attribute:fields' => 'Экспорт. поля',
'Class:QueryOQL/Attribute:fields+' => 'Список атрибутов для экспорта, разделённых запятыми (или alias.attribute)',
'Class:QueryOQL' => 'OQL запрос',
@@ -181,19 +181,19 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:User/Attribute:status/Value:disabled' => 'Отключен',
'Class:User/Error:LoginMustBeUnique' => 'Логин должен быть уникальным - "%1s" уже используется.',
'Class:User/Error:AtLeastOneProfileIsNeeded' => 'Как минимум один профиль должен быть назначен данному пользователю.',
'Class:User/Error:PrivilegedUserMustHaveAccessToBackOffice' => 'Profile "%1$s" cannot be given to privileged Users (Administrators, SuperUsers and REST Services Users)~~',
'Class:User/Error:ProfileNotAllowed' => 'Profile "%1$s" cannot be added it will deny the access to backoffice~~',
'Class:User/Error:StatusChangeIsNotAllowed' => 'Changing status is not allowed for your own User~~',
'Class:User/Error:AllowedOrgsMustContainUserOrg' => 'Allowed organizations must contain User organization~~',
'Class:User/Error:AdminProfileCannotBeRemovedBySelf' => 'You cannot remove your own Administrator profile. Ask another Administrator to do it for you~~',
'Class:User/Error:CurrentProfilesHaveInsufficientRights' => 'You cannot remove your own rights to edit Users~~',
'Class:User/Error:PortalPowerUserHasInsufficientRights' => 'The Portal power user profile does not give sufficient access rights (another profile must be added)~~',
'Class:User/Error:PrivilegedUserMustHaveAccessToBackOffice' => 'Профиль "%1$s" нельзя назначить привилегированным пользователям (Администраторам, Суперпользователям и пользователям REST-сервисов)',
'Class:User/Error:ProfileNotAllowed' => 'Профиль "%1$s" нельзя добавить: это лишит доступа к консоли администрирования',
'Class:User/Error:StatusChangeIsNotAllowed' => 'Изменение статуса своей учётной записи не разрешено',
'Class:User/Error:AllowedOrgsMustContainUserOrg' => 'Разрешённые организации должны включать организацию пользователя',
'Class:User/Error:AdminProfileCannotBeRemovedBySelf' => 'Нельзя снять с себя профиль Администратора. Попросите другого администратора сделать это за вас',
'Class:User/Error:CurrentProfilesHaveInsufficientRights' => 'Нельзя лишить себя прав на редактирование пользователей',
'Class:User/Error:PortalPowerUserHasInsufficientRights' => 'Профиль "Активный пользователь портала" не даёт достаточных прав доступа (необходимо добавить ещё один профиль)',
'Class:User/Error:AtLeastOneOrganizationIsNeeded' => 'Этому пользователю должна быть назначена хотя бы одна организация.',
'Class:User/Error:OrganizationNotAllowed' => 'Организация не разрешена.',
'Class:User/Error:UserOrganizationNotAllowed' => 'Учетная запись пользователя не принадлежит вашим разрешенным организациям.',
'Class:User/Error:PersonIsMandatory' => 'Необходимо выбрать персону.',
'Class:User/Warning:NoOrganizationMeansFullAccess' => 'No "Allowed Organizations" defined for this user, this means they have access to all organizations~~',
'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~',
'Class:User/Warning:NoOrganizationMeansFullAccess' => 'Для этого пользователя не заданы "Разрешённые организации" — это означает доступ ко всем организациям',
'Class:User/Warning:NoContactHasImpact' => 'Внимание: для этого пользователя не указан контакт (сотрудник) — это ограничивает доступ к порталам, уведомлениям в ленте новостей и другим функциям в консоли',
'Class:UserInternal' => 'Внутренний пользователь',
'Class:UserInternal+' => 'Учетная запись создана внутри '.ITOP_APPLICATION_SHORT,
]);
@@ -372,7 +372,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:UserDashboard' => 'Дашборд пользователя',
'Class:UserDashboard+' => '~~',
'Class:UserDashboard+' => '',
'Class:UserDashboard/Attribute:user_id' => 'Пользователь',
'Class:UserDashboard/Attribute:user_id+' => '',
'Class:UserDashboard/Attribute:menu_code' => 'Код меню',
@@ -425,12 +425,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Button:GlobalSearch' => 'Поиск',
'UI:Button:Search' => 'Поиск',
'UI:Button:Clear' => 'Очистить',
'UI:Button:Confirm' => ' Confirm ~~',
'UI:Button:Confirm' => ' Подтвердить ',
'UI:Button:SearchInHierarchy' => 'Поиск в иерархии',
'UI:Button:Query' => ' Запрос ',
'UI:Button:Ok' => 'Ok',
'UI:Button:Save' => 'Сохранить',
'UI:Button:SaveAnd' => 'Save and %1$s~~',
'UI:Button:SaveAnd' => 'Сохранить и %1$s',
'UI:Button:Cancel' => 'Отмена',
'UI:Button:Close' => 'Закрыть',
'UI:Button:Apply' => 'Применить',
@@ -496,7 +496,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Error:ObjectsAlreadyDeleted' => 'Ошибка: объект уже удалён!',
'UI:Error:BulkDeleteNotAllowedOn_Class' => 'Вам не разрешено выполнять массовое удаления объектов класса %1$s',
'UI:Error:DeleteNotAllowedOn_Class' => 'Вы не можете удалять объекты класса %1$s',
'UI:Error:ReadNotAllowedOn_Class' => 'You are not allowed to view objects of class %1$s~~',
'UI:Error:ReadNotAllowedOn_Class' => 'Вам не разрешено просматривать объекты класса %1$s',
'UI:Error:BulkModifyNotAllowedOn_Class' => 'Вам не разрешено выполнять массовое обновление объектов класса %1$s',
'UI:Error:ObjectAlreadyCloned' => 'Ошибка: объект уже клонирован!',
'UI:Error:ObjectAlreadyCreated' => 'Ошибка: объект уже создан!',
@@ -505,8 +505,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Error:InvalidDashboard' => 'Ошибка: недопустимый дашборд',
'UI:Error:MaintenanceMode' => 'Приложение в режиме технического обслуживания',
'UI:Error:MaintenanceTitle' => 'Техническое обслуживание',
'UI:Error:InvalidToken' => 'Error: the requested operation has already been performed (CSRF token not found)~~',
'UI:Error:SMTP:UnknownVendor' => 'OAuth SMTP provider %1$s does not exist (email_transport_smtp.oauth.provider)~~',
'UI:Error:InvalidToken' => 'Ошибка: запрошенная операция уже была выполнена (CSRF-токен не найден)',
'UI:Error:SMTP:UnknownVendor' => 'Провайдер OAuth SMTP %1$s не существует (email_transport_smtp.oauth.provider)',
'UI:GroupBy:Count' => 'Количество',
'UI:GroupBy:Count+' => 'Количество элементов',
'UI:CountOfObjects' => '%1$d объектов соответствует критериям.',
@@ -517,7 +517,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:NotificationsTab' => 'Оповещения',
'UI:History:BulkImports' => 'История',
'UI:History:BulkImports+' => 'List of CSV imports (latest import first)',
'UI:History:BulkImportDetails' => 'Changes resulting from the CSV import performed on %1$s (by %2$s)~~',
'UI:History:BulkImportDetails' => 'Изменения в результате импорта CSV, выполненного %1$s (пользователем %2$s)',
'UI:History:Date' => 'Дата',
'UI:History:Date+' => 'Дата изменения',
'UI:History:User' => 'Пользователь',
@@ -535,19 +535,19 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Menu:OtherActions' => 'Другие действия',
'UI:Menu:Transitions' => 'Переходы',
'UI:Menu:OtherTransitions' => 'Другие переходы',
'UI:Menu:View' => 'View this object~~',
'UI:Menu:View' => 'Просмотреть этот объект',
'UI:Menu:New' => 'Создать...',
'UI:Menu:Add' => 'Добавить...',
'UI:Menu:Manage' => 'Управление...',
'UI:Menu:EMail' => 'Отправить ссылку по email',
'UI:Menu:CSVExport' => 'Экспорт в CSV...',
'UI:Menu:OpenOQL' => 'View the OQL query~~',
'UI:Menu:OpenOQL' => 'Показать OQL-запрос',
'UI:Menu:Modify' => 'Редактировать...',
'UI:Menu:Delete' => 'Удалить...',
'UI:Menu:BulkDelete' => 'Удалить...',
'UI:Menu:BulkDelete_Class' => 'Delete %1$s objects...~~',
'UI:Menu:BulkDelete_Link' => 'Delete %1$s...~~',
'UI:Menu:BulkDelete_Remote' => 'Delete %1$s...~~',
'UI:Menu:BulkDelete_Class' => 'Удалить объекты %1$s…',
'UI:Menu:BulkDelete_Link' => 'Удалить %1$s…',
'UI:Menu:BulkDelete_Remote' => 'Удалить %1$s…',
'UI:UndefinedObject' => 'неопределённый',
'UI:Document:OpenInNewWindow:Download' => 'Открыть в новом окне: %1$s, Загрузка: %2$s',
'UI:SplitDateTime-Date' => 'дата',
@@ -571,7 +571,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:SelectOne' => '-- выбрать --',
'UI:AccessRO-All' => 'Только чтение',
'UI:AccessRO-Users' => 'Только чтение для конечных пользователей',
'UI:ApplicationEnvironment' => 'Application environment: %1$s~~',
'UI:ApplicationEnvironment' => 'Окружение приложения: %1$s',
'UI:CSVImport:MappingSelectOne' => '-- выберите значение --',
'UI:CSVImport:MappingNotApplicable' => '-- игнорировать это поле --',
'UI:CSVImport:NoData' => 'Пустой набор данных..., пожалуйста введите что-нибудь!',
@@ -583,14 +583,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:CSVImport:idField' => 'id (Первичный ключ)',
'UI:Title:BulkImport' => ITOP_APPLICATION_SHORT.' - Пакетный импорт',
'UI:Title:BulkImport+' => 'Мастер импорта CSV',
'UI:Title:BulkSynchro_nbItem_ofClass_class' => 'Synchronization of %1$d objects of class %2$s~~',
'UI:Title:BulkSynchro_nbItem_ofClass_class' => 'Синхронизация %1$d объектов класса %2$s',
'UI:CSVImport:ClassesSelectOne' => '-- выберите значение --',
'UI:CSVImport:ErrorExtendedAttCode' => 'Внутренняя ошибка: "%1$s" некорректный код потому, что "%2$s" НЕ является внешним ключом класса "%3$s"',
'UI:CSVImport:ObjectsWillStayUnchanged' => '%1$d объект(ов) останутся неизменными.',
'UI:CSVImport:ObjectsWillBeModified' => '%1$d объект(ов) будут изменены.',
'UI:CSVImport:ObjectsWillBeAdded' => '%1$d объект(ов) будут добавлены.',
'UI:CSVImport:ObjectsWillHaveErrors' => '%1$d объект(ов) будут содержать ошибки.',
'UI:CSVImport:ObjectsRemainedUnchanged' => '%1$d objects(s) remained unchanged.~~',
'UI:CSVImport:ObjectsRemainedUnchanged' => '%1$d объект(ов) остались без изменений.',
'UI:CSVImport:ObjectsReчmainedUnchanged' => '%1$d объект(ов) не изменились.',
'UI:CSVImport:ObjectsWereModified' => '%1$d объект(ов) изменены.',
'UI:CSVImport:ObjectsWereAdded' => '%1$d объект(ов) добавлены.',
@@ -611,7 +611,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:CSVImport:TreatFirstLineAsHeader' => 'Использовать первую строку как заголовок (названия столбцов)',
'UI:CSVImport:Skip_N_LinesAtTheBeginning' => 'Пропустить %1$s строк(у) от начала файла',
'UI:CSVImport:CSVDataPreview' => 'Предпросмотр данных CSV',
'UI:CSVImport:Column' => 'Column %1$s~~',
'UI:CSVImport:Column' => 'Столбец %1$s',
'UI:CSVImport:SelectFile' => 'Выбор файла для импорта:',
'UI:CSVImport:Tab:LoadFromFile' => 'Загрузить из файла',
'UI:CSVImport:Tab:CopyPaste' => 'Копировать и вставить данные',
@@ -632,25 +632,25 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:CSVImport:AlertMultipleMapping' => 'Пожалуйста, убедитесь, что целевое поле сопоставляется только один раз.',
'UI:CSVImport:AlertNoSearchCriteria' => 'Пожалуйста, выберите хотя бы один критерий поиска.',
'UI:CSVImport:Encoding' => 'Кодировка символов',
'UI:CSVImport:ViewAllPossibleValues' => 'View all possible values~~',
'UI:CSVImport:ViewAllAmbiguousValues' => 'View all ambiguous values~~',
'UI:CSVImport:ViewAllPossibleValues' => 'Показать все возможные значения',
'UI:CSVImport:ViewAllAmbiguousValues' => 'Показать все неоднозначные значения',
'UI:UniversalSearchTitle' => ITOP_APPLICATION_SHORT.' - Универсальный поиск',
'UI:UniversalSearch:Error' => 'Ошибка: %1$s',
'UI:UniversalSearch:LabelSelectTheClass' => 'Выбор класса для поиска: ',
'UI:CSVReport-Value-Modified' => 'Изменен',
'UI:CSVReport-Value-SetIssue' => 'Invalid value for attribute~~',
'UI:CSVReport-Value-ChangeIssue' => '\'%1$s\' is an invalid value~~',
'UI:CSVReport-Value-NoMatch' => 'No match for value \'%1$s\'~~',
'UI:CSVReport-Value-NoMatch-PossibleValues' => 'Some possible \'%1$s\' value(s): %2$s~~',
'UI:CSVReport-Value-NoMatch-NoObject' => 'There are no \'%1$s\' objects~~',
'UI:CSVReport-Value-NoMatch-NoObject-ForCurrentUser' => 'There are no \'%1$s\' objects found with your current profile~~',
'UI:CSVReport-Value-NoMatch-SomeObjectNotVisibleForCurrentUser' => 'There are some \'%1$s\' objects not visible with your current profile~~',
'UI:CSVReport-Value-SetIssue' => 'Недопустимое значение атрибута',
'UI:CSVReport-Value-ChangeIssue' => '\'%1$s\' — недопустимое значение',
'UI:CSVReport-Value-NoMatch' => 'Нет соответствия для значения \'%1$s\'',
'UI:CSVReport-Value-NoMatch-PossibleValues' => 'Возможные значения \'%1$s\': %2$s',
'UI:CSVReport-Value-NoMatch-NoObject' => 'Не найдено объектов \'%1$s\'',
'UI:CSVReport-Value-NoMatch-NoObject-ForCurrentUser' => 'При текущем профиле не найдено объектов \'%1$s\'',
'UI:CSVReport-Value-NoMatch-SomeObjectNotVisibleForCurrentUser' => 'Некоторые объекты \'%1$s\' недоступны при текущем профиле',
'UI:CSVReport-Value-Missing' => 'Отсутствует обязательное значение',
'UI:CSVReport-Value-Ambiguous' => 'Неоднозначное сопоставление: найдено %1$s объектов',
'UI:CSVReport-Row-Unchanged' => 'без изменений',
'UI:CSVReport-Row-Created' => 'созданный',
'UI:CSVReport-Row-Updated' => 'updated %1$d cols~~',
'UI:CSVReport-Row-Disappeared' => 'disappeared, changed %1$d cols~~',
'UI:CSVReport-Row-Updated' => 'обновлено столбцов: %1$d',
'UI:CSVReport-Row-Disappeared' => 'исчез, изменено столбцов: %1$d',
'UI:CSVReport-Row-Issue' => 'Ошибка: %1$s',
'UI:CSVReport-Value-Issue-Null' => 'Поле не должно быть пустым',
'UI:CSVReport-Value-Issue-NotFound' => 'Не найден',
@@ -658,13 +658,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:CSVReport-Value-Issue-Readonly' => 'Аттрибут \'%1$s\' доступен только для чтения и не может быть изменен (ткущее значение: %2$s, предложенное значение: %3$s)',
'UI:CSVReport-Value-Issue-Format' => 'Не удалось обработать запрос: %1$s',
'UI:CSVReport-Value-Issue-NoMatch' => 'Неизвестное значение атрибута \'%1$s\': ничего не найдено, проверьте правильность ввода',
'UI:CSVReport-Value-Issue-AllowedValues' => 'Allowed \'%1$s\' value(s): %2$s~~',
'UI:CSVReport-Value-Issue-AllowedValues' => 'Допустимые значения \'%1$s\': %2$s',
'UI:CSVReport-Value-Issue-Unknown' => 'Неизвестное значение атрибута \'%1$s\': %2$s',
'UI:CSVReport-Row-Issue-Inconsistent' => 'Несоответствие атрибутов: %1$s',
'UI:CSVReport-Row-Issue-Attribute' => 'Неизвестное значение(я) атрибута',
'UI:CSVReport-Row-Issue-MissingExtKey' => 'Не может быть создан так как отсутствует внешний ключ(и): %1$s',
'UI:CSVReport-Row-Issue-DateFormat' => 'Формат даты неверен',
'UI:CSVReport-Row-Issue-ExpectedDateFormat' => 'Expected format: %1$s~~',
'UI:CSVReport-Row-Issue-ExpectedDateFormat' => 'Ожидаемый формат: %1$s',
'UI:CSVReport-Row-Issue-Reconciliation' => 'Невозможно согласовать',
'UI:CSVReport-Row-Issue-Ambiguous' => 'Неоднозначное сопоставление',
'UI:CSVReport-Row-Issue-Internal' => 'Внутренняя ошибка: %1$s, %2$s',
@@ -687,42 +687,42 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:CSVExport:LostChars' => 'Проблема кодировки',
'UI:CSVExport:LostChars+' => 'The downloaded file will be encoded into %1$s. '.ITOP_APPLICATION_SHORT.' has detected some characters that are not compatible with this format. Those characters will either be replaced by a substitute (e.g. accentuated chars losing the accent), or they will be discarded. You can copy/paste the data from your web browser. Alternatively, you can contact your administrator to change the encoding (See parameter \'csv_file_default_charset\').',
'UI:Audit:Title' => ITOP_APPLICATION_SHORT.' - Аудит CMDB',
'UI:Audit:Interactive:All:Title' => 'Audit results~~',
'UI:Audit:Interactive:All:SubTitle' => 'Full audit: includes all rules, all categories, all domains~~',
'UI:Audit:Interactive:All:BreadCrumb' => 'Full audit~~',
'UI:Audit:Interactive:All:BreadCrumb+' => 'Audit results for all rules~~',
'UI:Audit:Interactive:Categories:Title' => 'Audit results for categories: %1$s~~',
'UI:Audit:Interactive:Categories:SubTitle' => 'Audit results for all the rules belonging to one of those %1$s categories~~',
'UI:Audit:Interactive:Categories:BreadCrumb' => 'Categories~~',
'UI:Audit:Interactive:Categories:BreadCrumb+' => 'Audit categories: %1$s~~',
'UI:Audit:Interactive:Domain:Title' => 'Audit results for Domain: %1$s~~',
'UI:Audit:Interactive:Domain:SubTitle' => 'Audit results for all the rules belonging to a category related to the domain: %1$s~~',
'UI:Audit:Interactive:Domain:BreadCrumb' => '%1$s~~',
'UI:Audit:Interactive:Domain:BreadCrumb+' => 'Audit for Domain: %1$s~~',
'UI:Audit:Interactive:Selection:Title' => 'Selection of an audit~~',
'UI:Audit:Interactive:All:Title' => 'Результаты аудита',
'UI:Audit:Interactive:All:SubTitle' => 'Полный аудит: включает все правила, все категории, все домены',
'UI:Audit:Interactive:All:BreadCrumb' => 'Полный аудит',
'UI:Audit:Interactive:All:BreadCrumb+' => 'Результаты аудита по всем правилам',
'UI:Audit:Interactive:Categories:Title' => 'Результаты аудита по категориям: %1$s',
'UI:Audit:Interactive:Categories:SubTitle' => 'Результаты аудита по всем правилам, относящимся к одной из этих категорий: %1$s',
'UI:Audit:Interactive:Categories:BreadCrumb' => 'Категории',
'UI:Audit:Interactive:Categories:BreadCrumb+' => 'Категории аудита: %1$s',
'UI:Audit:Interactive:Domain:Title' => 'Результаты аудита по домену: %1$s',
'UI:Audit:Interactive:Domain:SubTitle' => 'Результаты аудита по всем правилам категорий, относящихся к домену: %1$s',
'UI:Audit:Interactive:Domain:BreadCrumb' => '%1$s',
'UI:Audit:Interactive:Domain:BreadCrumb+' => 'Аудит по домену: %1$s',
'UI:Audit:Interactive:Selection:Title' => 'Выбор аудита',
'UI:Audit:InteractiveAudit' => 'Интерактивный аудит',
'UI:Audit:Interactive:Selection:SubTitle' => 'Select a domain to get the results limited to this domain or select "All categories" to get a full audit (can take time or even fail if too much data to audit)~~',
'UI:Audit:Interactive:Selection:BreadCrumb' => 'Selection~~',
'UI:Audit:Interactive:Selection:BreadCrumb+' => 'Selection of an Audit to run~~',
'UI:Audit:Interactive:Selection:BadgeAll' => 'All categories~~',
'UI:Audit:Interactive:Button:Back' => 'Back to the audit~~',
'UI:Audit:Interactive:Button:Configuration' => 'Audit configuration~~',
'UI:Audit:ViewRules' => 'Check the rules~~',
'UI:Audit:Interactive:Selection:SubTitle' => 'Выберите домен, чтобы ограничить результаты этим доменом, либо выберите "Все категории" для полного аудита (может занять много времени или завершиться ошибкой при большом объёме данных)',
'UI:Audit:Interactive:Selection:BreadCrumb' => 'Выбор',
'UI:Audit:Interactive:Selection:BreadCrumb+' => 'Выбор аудита для запуска',
'UI:Audit:Interactive:Selection:BadgeAll' => 'Все категории',
'UI:Audit:Interactive:Button:Back' => 'Назад к аудиту',
'UI:Audit:Interactive:Button:Configuration' => 'Настройка аудита',
'UI:Audit:ViewRules' => 'Проверить правила',
'UI:Audit:HeaderAuditRule' => 'Правило аудита',
'UI:Audit:HeaderNbObjects' => '# Объекты',
'UI:Audit:HeaderNbErrors' => '# Ошибки',
'UI:Audit:PercentageOk' => '% Ok',
'UI:Audit:OqlError' => 'OQL Error~~',
'UI:Audit:Error:ValueNA' => 'n/a~~',
'UI:Audit:ErrorIn_Rule' => 'Error in Rule~~',
'UI:Audit:OqlError' => 'Ошибка OQL',
'UI:Audit:Error:ValueNA' => 'н/д',
'UI:Audit:ErrorIn_Rule' => 'Ошибка в правиле',
'UI:Audit:ErrorIn_Rule_Reason' => 'OQL ошибка в правиле %1$s: %2$s.',
'UI:Audit:ErrorIn_Category' => 'Error in Category~~',
'UI:Audit:ErrorIn_Category' => 'Ошибка в категории',
'UI:Audit:ErrorIn_Category_Reason' => 'OQL ошибка в категории %1$s: %2$s.',
'UI:Audit:AuditErrors' => 'Audit Errors~~',
'UI:Audit:Dashboard:ObjectsAudited' => 'Objects audited~~',
'UI:Audit:Dashboard:ObjectsInError' => 'Objects in errors~~',
'UI:Audit:Dashboard:ObjectsValidated' => 'Objects validated~~',
'UI:Audit:AuditCategory:Subtitle' => '%1$s errors ouf of %2$s - %3$s%% of the object are valid~~',
'UI:Audit:AuditErrors' => 'Ошибки аудита',
'UI:Audit:Dashboard:ObjectsAudited' => 'Проверено объектов',
'UI:Audit:Dashboard:ObjectsInError' => 'Объектов с ошибками',
'UI:Audit:Dashboard:ObjectsValidated' => 'Валидных объектов',
'UI:Audit:AuditCategory:Subtitle' => 'Ошибок: %1$s из %2$s — валидно %3$s%% объектов',
'UI:RunQuery:Title' => ITOP_APPLICATION_SHORT.' - Оценка запросов OQL',
'UI:RunQuery:QueryExamples' => 'Примеры запросов',
'UI:RunQuery:QueryResults' => 'Результаты запроса',
@@ -743,8 +743,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Query:UrlForExcel' => 'URL-адрес для использования в веб-запросах MS-Excel',
'UI:Query:UrlV1' => 'Список полей был оставлен неопределенным. Страница <em>export-V2.php</em> не может быть вызван без этой информации. Поэтому URL-адрес, предложенный здесь ниже, указывает на устаревшую страницу: <em>export.php</ем>. Эта устаревшая версия экспорта имеет следующее ограничение: список экспортируемых полей может варьироваться в зависимости от формата вывода и модели данных '.ITOP_APPLICATION_SHORT.'. Если вы хотите гарантировать, что список экспортируемых столбцов будет оставаться стабильным в долгосрочной перспективе, то вы должны указать значение атрибута "Экспорт. поля" и использовать страницу <em>export-V2.php</ем>.',
'UI:Schema:Title' => ITOP_APPLICATION_SHORT.' схема объектов',
'UI:Schema:TitleForClass' => '%1$s schema~~',
'UI:Schema:NoClassSelected' => 'No class selected, please choose one~~',
'UI:Schema:TitleForClass' => 'Схема %1$s',
'UI:Schema:NoClassSelected' => 'Класс не выбран, пожалуйста, выберите',
'UI:Schema:CategoryMenuItem' => 'Категория <b>%1$s</b>',
'UI:Schema:Relationships' => 'Отношения',
'UI:Schema:AbstractClass' => 'Абстрактный класс: используется для наследования свойств, объекты этого класса не создаются.',
@@ -802,25 +802,25 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Schema:LifeCycleAttributeMustChange' => 'Необходимо изменить',
'UI:Schema:LifeCycleAttributeMustPrompt' => 'Пользователю будет предложено изменить значение',
'UI:Schema:LifeCycleEmptyList' => 'пустой список',
'UI:Schema:ClassFilter' => 'Class:~~',
'UI:Schema:DisplayLabel' => 'Display:~~',
'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~',
'UI:Schema:DisplaySelector/Label' => 'Label~~',
'UI:Schema:DisplaySelector/Code' => 'Code~~',
'UI:Schema:Attribute/Filter' => 'Filter~~',
'UI:Schema:DefaultNullValue' => 'Default null : "%1$s"~~',
'UI:Schema:Events' => 'Events~~',
'UI:Schema:Events:Defined' => 'Defined events~~',
'UI:Schema:Events:NoEvent' => 'No event defined~~',
'UI:Schema:Events:Listeners' => 'Event listeners~~',
'UI:Schema:Events:NoListener' => 'No event listener~~',
'UI:Schema:Events:Event' => 'Event~~',
'UI:Schema:Events:Description' => 'Description~~',
'UI:Schema:Events:Listener' => 'Listener~~',
'UI:Schema:Events:Rank' => 'Rank~~',
'UI:Schema:Events:Module' => 'Module~~',
'UI:Schema:ClassFilter' => 'Класс:',
'UI:Schema:DisplayLabel' => 'Отображение:',
'UI:Schema:DisplaySelector/LabelAndCode' => 'Название и код',
'UI:Schema:DisplaySelector/Label' => 'Название',
'UI:Schema:DisplaySelector/Code' => 'Код',
'UI:Schema:Attribute/Filter' => 'Фильтр',
'UI:Schema:DefaultNullValue' => 'Значение по умолчанию (null): "%1$s"',
'UI:Schema:Events' => 'События',
'UI:Schema:Events:Defined' => 'Определённые события',
'UI:Schema:Events:NoEvent' => 'События не определены',
'UI:Schema:Events:Listeners' => 'Обработчики событий',
'UI:Schema:Events:NoListener' => 'Нет обработчиков событий',
'UI:Schema:Events:Event' => 'Событие',
'UI:Schema:Events:Description' => 'Описание',
'UI:Schema:Events:Listener' => 'Обработчик',
'UI:Schema:Events:Rank' => 'Ранг',
'UI:Schema:Events:Module' => 'Модуль',
'UI:LinksWidget:Autocomplete+' => 'Введите первые 3 символа...',
'UI:Edit:SearchQuery' => 'Select a predefined query~~',
'UI:Edit:SearchQuery' => 'Выбрать предопределённый запрос',
'UI:Edit:TestQuery' => 'Проверить запрос',
'UI:Combo:SelectValue' => '--- выбор значения ---',
'UI:Label:SelectedObjects' => 'Выбранные объекты: ',
@@ -854,9 +854,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Delete:_Name_Class_Deleted' => '%1$s - %2$s удалено.',
'UI:Delete:ConfirmDeletionOf_Name' => 'Удаление %1$s',
'UI:Delete:ConfirmDeletionOf_Count_ObjectsOf_Class' => 'Удаление %1$d объектов класса %2$s',
'UI:Delete:CannotDeleteBecause' => 'Could not be deleted: %1$s~~',
'UI:Delete:ShouldBeDeletedAtomaticallyButNotPossible' => 'Should be automatically deleted, but this is not feasible: %1$s~~',
'UI:Delete:MustBeDeletedManuallyButNotPossible' => 'Must be deleted manually, but this is not feasible: %1$s~~',
'UI:Delete:CannotDeleteBecause' => 'Не удалось удалить: %1$s',
'UI:Delete:ShouldBeDeletedAtomaticallyButNotPossible' => 'Должен быть удалён автоматически, но это невозможно: %1$s',
'UI:Delete:MustBeDeletedManuallyButNotPossible' => 'Должен быть удалён вручную, но это невозможно: %1$s',
'UI:Delete:WillBeDeletedAutomatically' => 'Будет удалено автоматически',
'UI:Delete:MustBeDeletedManually' => 'Необходимо удалить вручную',
'UI:Delete:CannotUpdateBecause_Issue' => 'Должно быть автоматически обновлено, но: %1$s',
@@ -1009,9 +1009,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:NotificationsMenu:OnStateEnter' => 'При входе объекта в заданное состояние',
'UI:NotificationsMenu:OnStateLeave' => 'При выходе объекта из заданного состояния',
'UI:NotificationsMenu:Actions' => 'Действия',
'UI:NotificationsMenu:Actions:ActionEmail' => 'Email actions~~',
'UI:NotificationsMenu:Actions:ActionWebhook' => 'Webhook actions (outgoing integrations)~~',
'UI:NotificationsMenu:Actions:Action' => 'Other actions~~',
'UI:NotificationsMenu:Actions:ActionEmail' => 'Действия Email',
'UI:NotificationsMenu:Actions:ActionWebhook' => 'Действия Webhook (исходящие интеграции)',
'UI:NotificationsMenu:Actions:Action' => 'Другие действия',
'UI:NotificationsMenu:AvailableActions' => 'Доступные действия',
'Menu:TagAdminMenu' => 'Теги',
'Menu:TagAdminMenu+' => 'Теги',
@@ -1043,15 +1043,15 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Relation:ExportAsPDF' => 'Экспорт в PDF...',
'UI:RelationOption:GroupingThreshold' => 'Порог группировки',
'UI:Relation:AdditionalContextInfo' => 'Дополнительная контекстная информация',
'UI:Relation:NoneSelected' => 'None~~',
'UI:Relation:NoneSelected' => 'Не выбрано',
'UI:Relation:Zoom' => 'Масштаб',
'UI:Relation:ExportAsAttachment' => 'Экспорт во Вложения...',
'UI:Relation:DrillDown' => 'Подробнее...',
'UI:Relation:PDFExportOptions' => 'Параметры экспорта в PDF',
'UI:Relation:AttachmentExportOptions_Name' => 'Параметры вложения к %1$s',
'UI:RelationOption:Untitled' => 'Untitled~~',
'UI:Relation:Key' => 'Key~~',
'UI:Relation:Comments' => 'Comments~~',
'UI:RelationOption:Untitled' => 'Без названия',
'UI:Relation:Key' => 'Ключ',
'UI:Relation:Comments' => 'Комментарии',
'UI:RelationOption:Title' => 'Заголовок',
'UI:RelationOption:IncludeList' => 'Включить перечень объектов',
'UI:RelationOption:Comments' => 'Комментарии',
@@ -1098,17 +1098,17 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Portal:AddAttachment' => 'Добавить вложения',
'Portal:RemoveAttachment' => ' Удалить вложения',
'Portal:Attachment_No_To_Ticket_Name' => 'Вложение #%1$d to %2$s (%3$s)',
'Portal:SelectRequestTemplate' => 'Select a template for %1$s~~',
'Portal:SelectRequestTemplate' => 'Выберите шаблон для %1$s',
'Enum:Undefined' => 'Не определён',
'UI:DurationForm_Days_Hours_Minutes_Seconds' => '%1$s д %2$s ч %3$s мин %4$s с',
'UI:ModifyAllPageTitle' => 'Пакетное редактирование',
'UI:Modify_ObjectsOf_Class' => 'Modifying objects of class %1$s~~',
'UI:Modify_ObjectsOf_Class' => 'Изменение объектов класса %1$s',
'UI:Modify_N_ObjectsOf_Class' => 'Редактирование %1$d объектов класса %2$s',
'UI:Modify_M_ObjectsOf_Class_OutOf_N' => 'Редактирование %1$d объектов класса %2$s из %3$d',
'UI:Menu:ModifyAll' => 'Редактировать...',
'UI:Menu:ModifyAll_Class' => 'Modify %1$s objects...~~',
'UI:Menu:ModifyAll_Link' => 'Modify %1$s...~~',
'UI:Menu:ModifyAll_Remote' => 'Modify %1$s...~~',
'UI:Menu:ModifyAll_Class' => 'Изменить объекты %1$s…',
'UI:Menu:ModifyAll_Link' => 'Изменить %1$s…',
'UI:Menu:ModifyAll_Remote' => 'Изменить %1$s…',
'UI:Button:ModifyAll' => 'Редактировать все',
'UI:Button:PreviewModifications' => 'Предпросмотр изменений >>',
'UI:ModifiedObject' => 'Объект изменен',
@@ -1123,16 +1123,16 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:BulkModify_Count_DistinctValues' => '%1$d различных значения:',
'UI:BulkModify:Value_Exists_N_Times' => '%1$s, %2$d раз(а)',
'UI:BulkModify:N_MoreValues' => '%1$d дополнительных значения...',
'UI:AttemptingToSetAReadOnlyAttribute_Name' => 'Attempting to set the read-only field: %1$s~~',
'UI:AttemptingToSetAReadOnlyAttribute_Name' => 'Попытка установить значение поля только для чтения: %1$s',
'UI:FailedToApplyStimuli' => 'Операция не может быть выполнена.',
'UI:StimulusModify_N_ObjectsOf_Class' => '%1$s: Modifying %2$d objects of class %3$s~~',
'UI:StimulusModify_N_ObjectsOf_Class' => '%1$s: изменение %2$d объектов класса %3$s',
'UI:CaseLogTypeYourTextHere' => 'Введите свой текст:',
'UI:CaseLog:Header_Date_UserName' => '%1$s - %2$s:~~',
'UI:CaseLog:InitialValue' => 'Initial value:~~',
'UI:AttemptingToSetASlaveAttribute_Name' => 'The field %1$s (%2$s) is not writable because it is mastered by the data synchronization. Value not set.~~',
'UI:ActionNotAllowed' => 'You are not allowed to perform this action on these objects.~~',
'UI:BulkAction:NoObjectSelected' => 'Please select at least one object to perform this operation~~',
'UI:AttemptingToChangeASlaveAttribute_Name' => 'The field %1$s is not writable because it is mastered by the data synchronization. Value remains unchanged.~~',
'UI:CaseLog:Header_Date_UserName' => '%1$s %2$s:',
'UI:CaseLog:InitialValue' => 'Исходное значение:',
'UI:AttemptingToSetASlaveAttribute_Name' => 'Поле %1$s (%2$s) недоступно для записи, так как управляется синхронизацией данных. Значение не установлено.',
'UI:ActionNotAllowed' => 'Вам не разрешено выполнять это действие над этими объектами.',
'UI:BulkAction:NoObjectSelected' => 'Выберите хотя бы один объект для выполнения этой операции',
'UI:AttemptingToChangeASlaveAttribute_Name' => 'Поле %1$s недоступно для записи, так как управляется синхронизацией данных. Значение осталось без изменений.',
'UI:Pagination:HeaderSelection' => 'Всего: %1$s элементов (%2$s элементов выделено).',
'UI:Pagination:HeaderNoSelection' => 'Всего: %1$s элементов',
'UI:Pagination:PageSize' => '%1$s объектов на страницу',
@@ -1140,10 +1140,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Pagination:All' => 'Все',
'UI:HierarchyOf_Class' => 'Иерархия по: %1$s',
'UI:Preferences' => 'Предпочтения',
'UI:ArchiveModeOn' => 'Activate archive mode~~',
'UI:ArchiveModeOff' => 'Deactivate archive mode~~',
'UI:ArchiveMode:Banner' => 'Archive mode~~',
'UI:ArchiveMode:Banner+' => 'Archived objects are visible, and no modification is allowed~~',
'UI:ArchiveModeOn' => 'Включить режим архива',
'UI:ArchiveModeOff' => 'Выключить режим архива',
'UI:ArchiveMode:Banner' => 'Режим архива',
'UI:ArchiveMode:Banner+' => 'Архивные объекты видны, изменения запрещены',
'UI:FavoriteOrganizations' => 'Избранные организации',
'UI:FavoriteOrganizations+' => 'Отметьте в списке ниже организации, которые вы хотите видеть в раскрывающемся списке бокового меню для быстрого доступа. Обратите внимание, что это не параметр безопасности, объекты из любой организации по-прежнему видны и могут быть доступны, выбрав "Все организации" в раскрывающемся списке.',
'UI:FavoriteLanguage' => 'Язык',
@@ -1155,8 +1155,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:NavigateAwayConfirmationMessage' => 'Все изменения будут отменены.',
'UI:CancelConfirmationMessage' => 'Настройки НЕ будут сохранены. Продолжить?',
'UI:AutoApplyConfirmationMessage' => 'Некоторые изменения не вступили в силу. Применить их немедленно?',
'UI:Create_Class_InState' => 'Create the %1$s in state: ~~',
'UI:OrderByHint_Values' => 'Sort order: %1$s~~',
'UI:Create_Class_InState' => 'Создать %1$s в статусе: ',
'UI:OrderByHint_Values' => 'Порядок сортировки: %1$s',
'UI:Menu:AddToDashboard' => 'Добавить на дашборд...',
'UI:Button:Refresh' => 'Обновить',
'UI:Button:GoPrint' => 'Печать...',
@@ -1178,13 +1178,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:UseSavetheSettings' => 'Сохранить настройки',
'UI:OnlyForThisList' => 'Только для текущего списка',
'UI:ForAllLists' => 'Для всех списков',
'UI:ExtKey_AsLink' => '%1$s (Link)~~',
'UI:ExtKey_AsFriendlyName' => '%1$s (Friendly Name)~~',
'UI:ExtField_AsRemoteField' => '%1$s (%2$s)~~',
'UI:ExtKey_AsLink' => '%1$s (ссылка)',
'UI:ExtKey_AsFriendlyName' => '%1$s (полное название)',
'UI:ExtField_AsRemoteField' => '%1$s (%2$s)',
'UI:Button:MoveUp' => 'Вверх',
'UI:Button:MoveDown' => 'Вниз',
'UI:OQL:UnknownClassAndFix' => 'Unknown class "%1$s". You may try "%2$s" instead.~~',
'UI:OQL:UnknownClassNoFix' => 'Unknown class "%1$s"~~',
'UI:OQL:UnknownClassAndFix' => 'Неизвестный класс "%1$s". Возможно, вы имели в виду "%2$s".',
'UI:OQL:UnknownClassNoFix' => 'Неизвестный класс "%1$s"',
'UI:Dashboard:EditCustom' => 'Редактировать пользовательскую версию...',
'UI:Dashboard:CreateCustom' => 'Создать пользовательскую версию...',
'UI:Dashboard:DeleteCustom' => 'Удалить пользовательскую версию...',
@@ -1195,7 +1195,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:ImportDashboardTitle' => 'Импорт из файла',
'UI:ImportDashboardText' => 'Выберите файл дашборда для импорта:',
'UI:Dashboard:Actions' => 'Действия дашборда',
'UI:Dashboard:NotUpToDateUntilContainerSaved' => 'This dashboard displays information that does not include the on-going changes.~~',
'UI:Dashboard:NotUpToDateUntilContainerSaved' => 'Этот дашборд отображает информацию без учёта ещё не сохранённых изменений.',
'UI:Dashboard:Revert' => 'Вернуть стандартную версию...',
'UI:DashletCreation:Title' => 'Создать новый дашлет',
'UI:DashletCreation:Dashboard' => 'Добавить на дашборд',
@@ -1206,24 +1206,24 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:DashboardEdit:AutoReload' => 'Обновлять автоматически',
'UI:DashboardEdit:AutoReloadSec' => 'Интервал обновления (секунды)',
'UI:DashboardEdit:AutoReloadSec+' => 'Минимальный интервал %1$d секунд',
'UI:DashboardEdit:Revert' => 'Revert~~',
'UI:DashboardEdit:Apply' => 'Apply~~',
'UI:DashboardEdit:Revert' => 'Отменить',
'UI:DashboardEdit:Apply' => 'Применить',
'UI:DashboardEdit:Layout' => 'Макет',
'UI:DashboardEdit:Properties' => 'Свойства дашборда',
'UI:DashboardEdit:Dashlets' => 'Доступные дашлеты',
'UI:DashboardEdit:DashletProperties' => 'Свойства дашлета',
'UI:Form:Property' => 'Свойство',
'UI:Form:Value' => 'Значение',
'UI:DashletUnknown:Label' => 'Unknown~~',
'UI:DashletUnknown:Description' => 'Unknown dashlet (might have been uninstalled)~~',
'UI:DashletUnknown:RenderText:View' => 'Unable to render this dashlet.~~',
'UI:DashletUnknown:RenderText:Edit' => 'Unable to render this dashlet (class "%1$s"). Check with your administrator if it is still available.~~',
'UI:DashletUnknown:RenderNoDataText:Edit' => 'No preview available for this dashlet (class "%1$s").~~',
'UI:DashletUnknown:Prop-XMLConfiguration' => 'Configuration (shown as raw XML)~~',
'UI:DashletProxy:Label' => 'Proxy~~',
'UI:DashletProxy:Description' => 'Proxy dashlet~~',
'UI:DashletProxy:RenderNoDataText:Edit' => 'No preview available for this third-party dashlet (class "%1$s").~~',
'UI:DashletProxy:Prop-XMLConfiguration' => 'Configuration (shown as raw XML)~~',
'UI:DashletUnknown:Label' => 'Неизвестно',
'UI:DashletUnknown:Description' => 'Неизвестный дашлет (возможно, был удалён)',
'UI:DashletUnknown:RenderText:View' => 'Не удалось отобразить этот дашлет.',
'UI:DashletUnknown:RenderText:Edit' => 'Не удалось отобразить этот дашлет (класс "%1$s"). Уточните у администратора, доступен ли он.',
'UI:DashletUnknown:RenderNoDataText:Edit' => 'Предпросмотр для этого дашлета недоступен (класс "%1$s").',
'UI:DashletUnknown:Prop-XMLConfiguration' => 'Конфигурация (в виде необработанного XML)',
'UI:DashletProxy:Label' => 'Прокси',
'UI:DashletProxy:Description' => 'Прокси-дашлет',
'UI:DashletProxy:RenderNoDataText:Edit' => 'Предпросмотр для этого стороннего дашлета недоступен (класс "%1$s").',
'UI:DashletProxy:Prop-XMLConfiguration' => 'Конфигурация (в виде необработанного XML)',
'UI:DashletPlainText:Label' => 'Текст',
'UI:DashletPlainText:Description' => 'Текст (без форматирования)',
'UI:DashletPlainText:Prop-Text' => 'Текст',
@@ -1237,14 +1237,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:DashletGroupBy:Prop-Query' => 'Запрос',
'UI:DashletGroupBy:Prop-Style' => 'Стиль',
'UI:DashletGroupBy:Prop-GroupBy' => 'Группировка',
'UI:DashletGroupBy:Prop-GroupBy:Hour' => 'Hour of %1$s (0-23)~~',
'UI:DashletGroupBy:Prop-GroupBy:Month' => 'Month of %1$s (1 - 12)~~',
'UI:DashletGroupBy:Prop-GroupBy:DayOfWeek' => 'Day of week for %1$s~~',
'UI:DashletGroupBy:Prop-GroupBy:DayOfMonth' => 'Day of month for %1$s~~',
'UI:DashletGroupBy:Prop-GroupBy:Select-Hour' => '%1$s (hour)~~',
'UI:DashletGroupBy:Prop-GroupBy:Select-Month' => '%1$s (month)~~',
'UI:DashletGroupBy:Prop-GroupBy:Select-DayOfWeek' => '%1$s (day of week)~~',
'UI:DashletGroupBy:Prop-GroupBy:Select-DayOfMonth' => '%1$s (day of month)~~',
'UI:DashletGroupBy:Prop-GroupBy:Hour' => 'Час %1$s (0-23)',
'UI:DashletGroupBy:Prop-GroupBy:Month' => 'Месяц %1$s (1-12)',
'UI:DashletGroupBy:Prop-GroupBy:DayOfWeek' => 'День недели для %1$s',
'UI:DashletGroupBy:Prop-GroupBy:DayOfMonth' => 'День месяца для %1$s',
'UI:DashletGroupBy:Prop-GroupBy:Select-Hour' => '%1$s (час)',
'UI:DashletGroupBy:Prop-GroupBy:Select-Month' => '%1$s (месяц)',
'UI:DashletGroupBy:Prop-GroupBy:Select-DayOfWeek' => '%1$s (день недели)',
'UI:DashletGroupBy:Prop-GroupBy:Select-DayOfMonth' => '%1$s (день месяца)',
'UI:DashletGroupBy:MissingGroupBy' => 'Пожалуйста, выберите поле по которому объекты будут сгруппированы',
'UI:DashletGroupByPie:Label' => 'Круговая диаграмма',
'UI:DashletGroupByPie:Description' => 'Круговая диаграмма',
@@ -1270,7 +1270,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:GroupBy:max' => 'Максимум',
'UI:GroupBy:max+' => 'Maximum of %1$s',
'UI:DashletHeaderStatic:Label' => 'Заголовок',
'UI:DashletHeaderStatic:Description' => 'Displays a horizontal separator~~',
'UI:DashletHeaderStatic:Description' => 'Отображает горизонтальный разделитель',
'UI:DashletHeaderStatic:Prop-Title' => 'Заголовок',
'UI:DashletHeaderStatic:Prop-Title:Default' => 'Контакты',
'UI:DashletHeaderStatic:Prop-Icon' => 'Иконка',
@@ -1328,16 +1328,16 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Month-12-Short' => 'Дек.',
'Calendar-FirstDayOfWeek' => '1',
'UI:Menu:ShortcutList' => 'Добавить в избранное...',
'UI:Menu:FilterList' => 'Display list with search criteria~~',
'UI:Menu:FilterList' => 'Показать список с критериями поиска',
'UI:ShortcutRenameDlg:Title' => 'Переименовать ссылку',
'UI:ShortcutListDlg:Title' => 'Добавить в избранное ссылку на список',
'UI:ShortcutDelete:Confirm' => 'Подтвердите удаление ссылки (ссылок).',
'UI:ObjectShortcutInsert' => 'Insert Object Shortcut~~',
'UI:ObjectShortcutInsert' => 'Вставить ярлык объекта',
'Class:Shortcut' => 'Ссылка',
'Class:Shortcut+' => '',
'Class:Shortcut/Attribute:name' => 'Название',
'Class:Shortcut/Attribute:name+' => 'Используется в меню и заголовке страницы',
'Class:ShortcutOQL' => 'Search result shortcut~~',
'Class:ShortcutOQL' => 'Ярлык результата поиска',
'Class:ShortcutOQL+' => '',
'Class:ShortcutOQL/Attribute:oql' => 'Запрос',
'Class:ShortcutOQL/Attribute:oql+' => 'OQL defining the list of objects to search for',
@@ -1388,7 +1388,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:About:InstallationOptions' => 'Параметр установки',
'UI:About:ManualExtensionSource' => 'Расширение',
'UI:About:Extension_Version' => 'Версия: %1$s',
'UI:About:RemoteExtensionSource' => 'Data~~',
'UI:About:RemoteExtensionSource' => 'Данные',
'UI:DisconnectedDlgMessage' => 'Вы вышли из системы. Выполните повторный вход для продолжения работы.',
'UI:DisconnectedDlgTitle' => 'Внимание!',
'UI:LoginAgain' => 'Войти снова',
@@ -1407,7 +1407,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'portal:backoffice' => ITOP_APPLICATION_SHORT.' Back-Office интерфейс',
'UI:CurrentObjectIsLockedBy_User' => 'Объект заблокирован, поскольку в настоящее время редактируется пользователем %1$s.',
'UI:CurrentObjectIsLockedBy_User_Explanation' => 'Объект в настоящее время редактируется пользователем %1$s. Ваши изменения не будут сохранены, поскольку они могут быть перезаписаны.',
'UI:CurrentObjectIsSoftLockedBy_User' => 'The object is currently being modified by %1$s. You\'ll be able to submit your modifications once they have finished.~~',
'UI:CurrentObjectIsSoftLockedBy_User' => 'Этот объект сейчас редактируется пользователем %1$s. Вы сможете отправить свои изменения после того, как он закончит.',
'UI:CurrentObjectLockExpired' => 'Срок блокировки для предотвращения одновременного изменения объекта истек.',
'UI:CurrentObjectLockExpired_Explanation' => 'Срок блокировки для предотвращения одновременного изменения объекта истек. Вы больше не можете сохранить свои изменения, поскольку другим пользователям теперь разрешено изменять данный объект.',
'UI:ConcurrentLockKilled' => 'Блокировка для предотвращения изменений текущего объекта снята.',
@@ -1513,7 +1513,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Включаются все нижестоящие объекты.',
'UI:Search:Criteria:Raw:Filtered' => 'Отфильтровано',
'UI:Search:Criteria:Raw:FilteredOn' => 'Отфильтровано по %1$s',
'UI:StateChanged' => 'State changed~~',
'UI:StateChanged' => 'Статус изменён',
]);
//
@@ -1522,7 +1522,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
Dict::Add('RU RU', 'Russian', 'Русский', [
'Expression:Operator:AND' => ' AND ',
'Expression:Operator:OR' => ' OR ',
'Expression:Operator:=' => ': ~~',
'Expression:Operator:=' => ': ',
'Expression:Unit:Short:DAY' => 'd',
'Expression:Unit:Short:WEEK' => 'w',
'Expression:Unit:Short:MONTH' => 'm',
@@ -1531,7 +1531,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Expression:Unit:Long:HOUR' => 'hour(s)',
'Expression:Unit:Long:MINUTE' => 'minute(s)',
'Expression:Verb:NOW' => 'now',
'Expression:Verb:ISNULL' => ': undefined~~',
'Expression:Verb:ISNULL' => ': не определено',
]);
//
@@ -1545,13 +1545,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Newsroom:Preferences' => 'Центр новостей',
'UI:Newsroom:ConfigurationLink' => 'Конфигурация',
'UI:Newsroom:ResetCache' => 'Сбросить кеш',
'UI:Newsroom:ResetCache:Success:Message' => 'Your newsroom cache has been successfully reset~~',
'UI:Newsroom:ResetCache:Success:Message' => 'Кэш ленты новостей успешно сброшен',
'UI:Newsroom:DisplayMessagesFor_Provider' => 'Показать сообщения от %1$s',
'UI:Newsroom:DisplayAtMost_X_Messages' => 'Отобразите не более %1$s сообщений в меню %2$s.',
'UI:Newsroom:Priority:1:Tooltip' => 'Critical~~',
'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~',
'UI:Newsroom:Priority:3:Tooltip' => 'Important~~',
'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~',
'UI:Newsroom:Priority:1:Tooltip' => 'Критический',
'UI:Newsroom:Priority:2:Tooltip' => 'Срочный',
'UI:Newsroom:Priority:3:Tooltip' => 'Важный',
'UI:Newsroom:Priority:4:Tooltip' => 'Стандартный',
]);
Dict::Add('RU RU', 'Russian', 'Русский', [
@@ -1559,7 +1559,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:DataSources+' => 'Синхронизация данных',
'Menu:AuditCategories' => 'Категории аудита',
'Menu:AuditCategories+' => 'Категории аудита',
'Menu:AuditCategories:Title' => 'Audit configuration~~',
'Menu:AuditCategories:Title' => 'Настройка аудита',
'Menu:RunQueriesMenu' => 'Выполнение запросов',
'Menu:RunQueriesMenu+' => 'Выполнение любых запросов',
'Menu:QueryMenu' => 'Книга запросов',
@@ -1577,9 +1577,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:UserManagement' => 'Управление пользователями',
'Menu:Queries' => 'Запросы OQL',
'Menu:ConfigurationTools' => 'Конфигурация',
'Menu:ConfigEditor' => 'General configuration~~',
'Menu:ConfigEditor+' => 'Configuration File editor~~',
'Menu:Integrations' => 'Integrations~~',
'Menu:Integrations+' => '~~',
'Menu:ConfigEditor' => 'Общая конфигурация',
'Menu:ConfigEditor+' => 'Редактор файла конфигурации',
'Menu:Integrations' => 'Интеграции',
'Menu:Integrations+' => '',
]);

View File

@@ -11,11 +11,11 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Bulk:modify:IncompatibleAttribute' => 'This attribute can\'t be edited in bulk context~~',
'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~',
'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. <a href="%1$s" target="_blank">Learn more in our documentation.</a>~~',
'UI:Bulk:Export:MaliciousInjection:Sanitization:Alert:Message' => 'Some values have been sanitized to prevent potential security issues in Microsoft Excel. <a href="%1$s" target="_blank">Learn more in our documentation.</a>~~',
'UI:Bulk:Export:MaliciousInjection:Input:Label' => 'Sanitize potentially dangerous values~~',
'UI:Bulk:Export:MaliciousInjection:Input:Tooltip' => 'When enabled, potentially dangerous values will be sanitized during export. This will prevent Microsoft Excel from interpreting them as formulas. Note that this may alter the original data by prefixing it with a single quote (\') to ensure it is treated as text.~~',
'Core:BulkExport:Security' => 'Security~~',
'UI:Bulk:modify:IncompatibleAttribute' => 'Этот атрибут нельзя редактировать при массовом изменении',
'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Предупреждение безопасности Excel',
'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Открытие файла с недоверенными данными в Microsoft Excel может привести к внедрению вредоносных формул. Убедитесь, что настройки Excel безопасно обрабатывают такие файлы. <a href="%1$s" target="_blank">Подробнее в нашей документации.</a>',
'UI:Bulk:Export:MaliciousInjection:Sanitization:Alert:Message' => 'Некоторые значения были очищены для предотвращения потенциальных проблем безопасности в Microsoft Excel. <a href="%1$s" target="_blank">Подробнее в нашей документации.</a>',
'UI:Bulk:Export:MaliciousInjection:Input:Label' => 'Очищать потенциально опасные значения',
'UI:Bulk:Export:MaliciousInjection:Input:Tooltip' => 'При включении потенциально опасные значения будут очищены при экспорте. Это не позволит Microsoft Excel интерпретировать их как формулы. Обратите внимание, что при этом исходные данные могут быть изменены добавлением одинарной кавычки (\') в начале, чтобы значение обрабатывалось как текст.',
'Core:BulkExport:Security' => 'Безопасность',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:DisplayBlock:List:AddEntry:Tooltip' => 'Add an entry in the list~~',
'UI:DisplayBlock:List:AddEntry:Tooltip' => 'Добавить запись в список',
]);

View File

@@ -11,35 +11,35 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Links:Object:New:Modal:Title' => 'Create an object~~',
'UI:Links:Create:Button' => 'Create~~',
'UI:Links:Create:Button+' => 'Create a %4$s~~',
'UI:Links:Create:Modal:Title' => 'Create a %4$s in %2$s~~',
'UI:Links:Add:Button' => 'Add~~',
'UI:Links:Add:Button+' => 'Add a %4$s~~',
'UI:Links:Add:Modal:Title' => 'Add a %4$s to %2$s~~',
'UI:Links:ModifyLink:Button' => 'Modify~~',
'UI:Links:ModifyLink:Button+' => 'Modify this link~~',
'UI:Links:ModifyLink:Modal:Title' => 'Modify the link between %2$s and %5$s~~',
'UI:Links:ModifyObject:Button' => 'Modify~~',
'UI:Links:ModifyObject:Button+' => 'Modify this object~~',
'UI:Links:ModifyObject:Modal:Title' => '%5$s~~',
'UI:Links:Remove:Button' => 'Remove~~',
'UI:Links:Remove:Button+' => 'Remove this %4$s~~',
'UI:Links:Remove:Modal:Title' => 'Remove a %4$s from its %1$s~~',
'UI:Links:Remove:Modal:Message' => 'Do you really want to remove %5$s from %2$s?~~',
'UI:Links:Delete:Button' => 'Delete~~',
'UI:Links:Delete:Button+' => 'Delete this %4$s~~',
'UI:Links:Delete:Modal:Title' => 'Delete a %4$s~~',
'UI:Links:Delete:Modal:Message' => 'Do you really want to delete %5$s?~~',
'UI:Links:Bulk:LinkWillBeCreatedForAllObjects' => 'Add to all objects~~',
'UI:Links:Bulk:LinkWillBeDeletedFromAllObjects' => 'Remove from all objects~~',
'UI:Links:Bulk:LinkWillBeCreatedFor1Object' => 'Add to one object~~',
'UI:Links:Bulk:LinkWillBeDeletedFrom1Object' => 'Remove from one object~~',
'UI:Links:Bulk:LinkWillBeCreatedForXObjects' => 'Add {count} objects~~',
'UI:Links:Bulk:LinkWillBeDeletedFromXObjects' => 'Remove {count} objects~~',
'UI:Links:Bulk:LinkExistForAllObjects' => 'All objets are already linked~~',
'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~',
'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~',
'UI:Links:NewItem' => 'New item~~',
'UI:Links:Object:New:Modal:Title' => 'Создание объекта',
'UI:Links:Create:Button' => 'Создать',
'UI:Links:Create:Button+' => 'Создать объект %4$s',
'UI:Links:Create:Modal:Title' => 'Создание объекта %4$s в %2$s',
'UI:Links:Add:Button' => 'Добавить',
'UI:Links:Add:Button+' => 'Добавить объект %4$s',
'UI:Links:Add:Modal:Title' => 'Добавление объекта %4$s к %2$s',
'UI:Links:ModifyLink:Button' => 'Изменить',
'UI:Links:ModifyLink:Button+' => 'Изменить эту связь',
'UI:Links:ModifyLink:Modal:Title' => 'Изменение связи между %2$s и %5$s',
'UI:Links:ModifyObject:Button' => 'Изменить',
'UI:Links:ModifyObject:Button+' => 'Изменить этот объект',
'UI:Links:ModifyObject:Modal:Title' => '%5$s',
'UI:Links:Remove:Button' => 'Отвязать',
'UI:Links:Remove:Button+' => 'Отвязать этот объект %4$s',
'UI:Links:Remove:Modal:Title' => 'Отвязать объект %4$s от %1$s',
'UI:Links:Remove:Modal:Message' => 'Вы действительно хотите отвязать %5$s от %2$s?',
'UI:Links:Delete:Button' => 'Удалить',
'UI:Links:Delete:Button+' => 'Удалить этот объект %4$s',
'UI:Links:Delete:Modal:Title' => 'Удаление объекта %4$s',
'UI:Links:Delete:Modal:Message' => 'Вы действительно хотите удалить %5$s?',
'UI:Links:Bulk:LinkWillBeCreatedForAllObjects' => 'Добавить ко всем объектам',
'UI:Links:Bulk:LinkWillBeDeletedFromAllObjects' => 'Отвязать от всех объектов',
'UI:Links:Bulk:LinkWillBeCreatedFor1Object' => 'Добавить к одному объекту',
'UI:Links:Bulk:LinkWillBeDeletedFrom1Object' => 'Отвязать от одного объекта',
'UI:Links:Bulk:LinkWillBeCreatedForXObjects' => 'Добавить объектов: {count}',
'UI:Links:Bulk:LinkWillBeDeletedFromXObjects' => 'Отвязать объектов: {count}',
'UI:Links:Bulk:LinkExistForAllObjects' => 'Все объекты уже связаны',
'UI:Links:Bulk:LinkExistForOneObject' => 'Один объект уже связан',
'UI:Links:Bulk:LinkExistForXObjects' => 'Связано объектов: {count}',
'UI:Links:NewItem' => 'Новый элемент',
]);

View File

@@ -20,44 +20,44 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Newsroom:iTopNotification:Label' => ITOP_APPLICATION_SHORT,
'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~',
'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Read:Label' => 'Read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Unread:Label' => 'Unread~~',
'UI:Newsroom:iTopNotification:SelectMode:Label' => 'Select mode~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAllAsRead:Label' => 'Mark all as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAllAsUnread:Label' => 'Mark all as unread~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Label' => 'Delete all~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Success:Message' => 'All %1$s news have been deleted~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Title' => 'Delete all news~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Message' => 'Are you sure you want to delete all news?~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Empty:Title' => 'No news, you are up to date!~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Ваши новости '.ITOP_APPLICATION_SHORT.'',
'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Управляйте своими новостями: отмечайте их как прочитанные или непрочитанные, удаляйте и т. д.',
'UI:Newsroom:iTopNotification:ViewAllPage:Read:Label' => 'Прочитано',
'UI:Newsroom:iTopNotification:ViewAllPage:Unread:Label' => 'Не прочитано',
'UI:Newsroom:iTopNotification:SelectMode:Label' => 'Режим выбора',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAllAsRead:Label' => 'Отметить все как прочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAllAsUnread:Label' => 'Отметить все как непрочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Label' => 'Удалить все',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Success:Message' => 'Все новости (%1$s) удалены',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Title' => 'Удаление всех новостей',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Message' => 'Вы уверены, что хотите удалить все новости?',
'UI:Newsroom:iTopNotification:ViewAllPage:Empty:Title' => 'Новостей нет, вы в курсе всех событий!',
// Actions
// - Unitary buttons
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Label' => 'Delete this news~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:ViewObject:Label' => 'Go to the news url~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:Label' => 'Mark as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:Label' => 'Mark as unread~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Label' => 'Удалить эту новость',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:ViewObject:Label' => 'Перейти по ссылке новости',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:Label' => 'Отметить как прочитанное',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:Label' => 'Отметить как непрочитанное',
// - Bulk buttons
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkSelectedAsRead:Label' => 'Mark selected as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkSelectedAsUnread:Label' => 'Mark selected as unread~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Label' => 'Delete selected~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Confirmation:Title' => 'Delete selected news~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Confirmation:Message' => 'Are you sure you want to delete selected news?~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkSelectedAsRead:Label' => 'Отметить выбранные как прочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkSelectedAsUnread:Label' => 'Отметить выбранные как непрочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Label' => 'Удалить выбранные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Confirmation:Title' => 'Удаление выбранных новостей',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteSelected:Confirmation:Message' => 'Вы уверены, что хотите удалить выбранные новости?',
// Feedback messages
'UI:Newsroom:iTopNotification:ViewAllPage:Action:InvalidAction:Message' => 'Invalid action: "%1$s"~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:InvalidAction:Message' => 'Недопустимое действие: "%1$s"',
// - Mark as read
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:NoEvent:Message' => 'No news to mark as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:Success:Message' => 'The news has been marked as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsReadMultiple:Success:Message' => '%1$s news have been marked as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:NoEvent:Message' => 'Нет новостей для отметки как прочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsRead:Success:Message' => 'Новость отмечена как прочитанная',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsReadMultiple:Success:Message' => 'Отмечено как прочитанные новостей: %1$s',
// - Mark as unread
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:NoEvent:Message' => 'No news to mark as read~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:Success:Message' => 'The news has been marked as unread~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnreadMultiple:Success:Message' => '%1$s news have been marked as unread~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:NoEvent:Message' => 'Нет новостей для отметки как непрочитанные',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnread:Success:Message' => 'Новость отмечена как непрочитанная',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:MarkAsUnreadMultiple:Success:Message' => 'Отмечено как непрочитанные новостей: %1$s',
// Delete
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'Нет новостей для удаления',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'Новость удалена',
'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => 'Удалено новостей: %1$s',
]);

View File

@@ -11,8 +11,8 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Object:Modal:Title' => 'Create an object~~',
'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~',
'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~',
'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~',
'UI:Object:Modal:Title' => 'Создание объекта',
'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Эта форма содержит обязательный атрибут-файл, который нельзя задать в модальном режиме. Создание этого объекта будет неполным — завершите его на полноэкранной форме.',
'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Эта форма содержит обязательный атрибут-файл, который нельзя задать в модальном режиме. Этот объект не полностью заполнен — завершите его на полноэкранной форме.',
'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Эта форма содержит обязательный атрибут-файл, который нельзя изменить в модальном режиме.',
]);

View File

@@ -6,36 +6,36 @@
*/
// UI elements
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:WelcomePopup:Button:RemindLater' => 'Remind me later~~',
'UI:WelcomePopup:Button:AcknowledgeAndNext' => 'Next~~',
'UI:WelcomePopup:Button:AcknowledgeAndClose' => 'Close~~',
'UI:WelcomePopup:Button:RemindLater' => 'Напомнить позже',
'UI:WelcomePopup:Button:AcknowledgeAndNext' => 'Далее',
'UI:WelcomePopup:Button:AcknowledgeAndClose' => 'Закрыть',
]);
// Message
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:WelcomePopup:Message:330_01_Welcome:Title' => 'Welcome to '.ITOP_APPLICATION_SHORT.' 3.3~~',
'UI:WelcomePopup:Message:330_01_Welcome:Description' => '<div>Were pleased to introduce this latest release, bringing you a range of updates and improvements !</div>
'UI:WelcomePopup:Message:330_01_Welcome:Title' => 'Добро пожаловать в '.ITOP_APPLICATION_SHORT.' 3.3',
'UI:WelcomePopup:Message:330_01_Welcome:Description' => '<div>Мы рады представить этот новый релиз с рядом обновлений и улучшений!</div>
<br>
<div>Alongside new features like Multi-Factor Authentication, this version includes essential security updates, the first AI bricks, and various enhancements designed to deliver a smoother and more reliable experience.</div>
<div>Помимо новых возможностей, таких как многофакторная аутентификация, эта версия включает важные обновления безопасности, первые компоненты на основе ИИ и различные улучшения для более плавной и надёжной работы.</div>
<br>
<div>We hope you enjoy using this version as much as we enjoyed building it.</div>
<div>Dont forget to adjust your iTop preferences to tailor the experience to your needs.</div>~~',
'UI:WelcomePopup:Message:330_02_AIFoundations:Title' => 'Laying the foundations for AI~~',
'UI:WelcomePopup:Message:330_02_AIFoundations:Description' => '<div>This release introduces the first building blocks for our upcoming AI-powered features.</div>
<div>Мы надеемся, что вам понравится эта версия так же, как нам понравилось её создавать.</div>
<div>Не забудьте настроить свои предпочтения iTop под свои задачи.</div>',
'UI:WelcomePopup:Message:330_02_AIFoundations:Title' => 'Закладываем основу для ИИ',
'UI:WelcomePopup:Message:330_02_AIFoundations:Description' => '<div>Этот релиз вводит первые строительные блоки для будущих функций на основе ИИ.</div>
<br>
<div>Weve implemented the core APIs that will support future enhancements, paving the way for new intelligent capabilities and richer experiences in the next updates.</div>
<div>Мы реализовали базовые API, которые будут поддерживать дальнейшие улучшения, открывая путь к новым интеллектуальным возможностям и более насыщенному опыту в следующих обновлениях.</div>
<br>
<div>Stay tuned—this is just the beginning of whats ahead.</div>~~',
'UI:WelcomePopup:Message:330_03_CMDB:Title' => 'Enhanced CMDB~~',
'UI:WelcomePopup:Message:330_03_CMDB:Description' => '<div>This version brings several improvements to our datamodel to better support evolving needs.</div>
<div>Следите за новостями — это только начало.</div>',
'UI:WelcomePopup:Message:330_03_CMDB:Title' => 'Улучшенная CMDB',
'UI:WelcomePopup:Message:330_03_CMDB:Description' => '<div>Эта версия вносит ряд улучшений в модель данных для лучшей поддержки меняющихся потребностей.</div>
<br>
<div>Weve introduced containerization management, improved flow management, enriched class descriptions, and lifecycle management (End of Life / End of Support). The service management menu has also been redesigned for greater clarity and usability, along with the addition of images and logos on selected configuration items.</div>
<div>Мы добавили управление контейнеризацией, улучшили управление потоками, обогатили описания классов и добавили управление жизненным циклом (окончание поддержки / окончание жизненного цикла). Меню управления услугами также было переработано для большей ясности и удобства, вместе с добавлением изображений и логотипов для отдельных конфигурационных единиц.</div>
<br>
<div>These updates aim to provide a more structured and intuitive experience.</div>~~',
'UI:WelcomePopup:Message:330_04_MFA:Title' => 'Strengthening security with MFA~~',
'UI:WelcomePopup:Message:330_04_MFA:Description' => '<div>Multi-Factor Authentication (MFA) is now fully integrated into iTop.</div>
<div>Эти обновления призваны сделать работу более структурированной и интуитивной.</div>',
'UI:WelcomePopup:Message:330_04_MFA:Title' => 'Усиление безопасности с помощью MFA',
'UI:WelcomePopup:Message:330_04_MFA:Description' => '<div>Многофакторная аутентификация (MFA) теперь полностью интегрирована в iTop.</div>
<br>
<div>MFA, now built directly into the core experience, strengthens overall security while ensuring a more seamless and consistent user experience.</div>
<div>MFA, встроенная прямо в основную функциональность, усиливает общую безопасность и обеспечивает более плавный и последовательный пользовательский опыт.</div>
<br>
<div>We encourage you to review your settings and enable MFA to benefit from enhanced account protection.</div>~~',
<div>Рекомендуем проверить свои настройки и включить MFA для повышения защиты учётной записи.</div>',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Component:Breadcrumbs:PreviousItemsListToggler:Label' => 'Previous pages~~',
'UI:Component:Breadcrumbs:PreviousItemsListToggler:Label' => 'Предыдущие страницы',
]);

View File

@@ -17,12 +17,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Datatables:Language:Info' => '_TOTAL_ элементов',
'UI:Datatables:Language:InfoEmpty' => 'Нет информации',
'UI:Datatables:Language:EmptyTable' => 'Нет данных для отображения',
'UI:Datatables:Language:Error' => 'An error occurred while running the query~~',
'UI:Datatables:Language:Error' => 'Произошла ошибка при выполнении запроса',
'UI:Datatables:Language:DisplayLength:All' => 'Все',
'UI:Datatables:Language:Sort:Ascending' => 'Включить для сортировки по возрастанию',
'UI:Datatables:Language:Sort:Descending' => 'Включить для сортировки по убыванию',
'UI:Datatables:Column:RowActions:Label' => '~~',
'UI:Datatables:Column:RowActions:Description' => '~~',
'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~',
'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~',
'UI:Datatables:Column:RowActions:Label' => '',
'UI:Datatables:Column:RowActions:Description' => '',
'UI:Datatables:RowActions:ConfirmationDialog' => 'Подтверждение действия',
'UI:Datatables:RowActions:ConfirmationMessage' => 'Подтверждаете действие?',
]);

View File

@@ -11,7 +11,7 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Component:Input:ChangeNotAllowed' => 'This change is not allowed~~',
'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~',
'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~',
'UI:Component:Input:ChangeNotAllowed' => 'Это изменение не разрешено',
'UI:Component:Input:Password:DoesNotMatch' => 'Пароли не совпадают',
'UI:Component:Input:Set:MinimumItems' => 'Требуется минимум элементов: %1$s',
]);

View File

@@ -11,10 +11,10 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Modal:Confirmation:DefaultTitle' => 'Confirmation~~',
'UI:Modal:Informative:Title' => 'Informative Modal~~',
'UI:Modal:InformativeError:Title' => 'Error~~',
'UI:Modal:InformativeWarning:Title' => 'Warning~~',
'UI:Modal:InformativeInformation:Title' => 'Information~~',
'UI:Modal:InformativeSuccess:Title' => 'Success~~',
'UI:Modal:Confirmation:DefaultTitle' => 'Подтверждение',
'UI:Modal:Informative:Title' => 'Информационное окно',
'UI:Modal:InformativeError:Title' => 'Ошибка',
'UI:Modal:InformativeWarning:Title' => 'Предупреждение',
'UI:Modal:InformativeInformation:Title' => 'Информация',
'UI:Modal:InformativeSuccess:Title' => 'Успешно',
]);

View File

@@ -20,7 +20,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Layout:ActivityPanel:Tab:Log:DraftIndicator:Tooltip' => 'Черновик',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Logs:Title' => 'Журналы',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Logs:Tooltip' => 'Показать / скрыть изменения журналов',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Logs:Menu:Hint' => 'Choose which logs to display on this tab~~',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Logs:Menu:Hint' => 'Выберите, какие журналы отображать на этой вкладке',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Transitions:Title' => 'Статус',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Transitions:Tooltip' => 'Показать / скрыть изменение статуса',
'UI:Layout:ActivityPanel:Tab:Toolbar:Filter:Edits:Title' => 'Изменения',

View File

@@ -11,23 +11,23 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Layout:ExtensionsDetails:BadgeInstalled' => 'installed~~',
'UI:Layout:ExtensionsDetails:BadgeInstalled+' => 'This extension is part of the current installation.~~',
'UI:Layout:ExtensionsDetails:BadgeToBeInstalled' => 'to be installed~~',
'UI:Layout:ExtensionsDetails:BadgeToBeInstalled+' => 'This extension will be installed during the setup.~~',
'UI:Layout:ExtensionsDetails:BadgeCannotBeInstalled' => 'cannot be installed~~',
'UI:Layout:ExtensionsDetails:BadgeCannotBeInstalled+' => 'This extension cannot be installed because one or more dependencies cannot be fulfilled.~~',
'UI:Layout:ExtensionsDetails:BadgeNotInstalled' => 'not installed~~',
'UI:Layout:ExtensionsDetails:BadgeNotInstalled+' => 'This extension is not part of the current installation.~~',
'UI:Layout:ExtensionsDetails:BadgeToBeUninstalled' => 'to be uninstalled~~',
'UI:Layout:ExtensionsDetails:BadgeToBeUninstalled+' => 'This extension will be uninstalled during the setup.~~',
'UI:Layout:ExtensionsDetails:BadgeNotUninstallable' => 'cannot be uninstalled~~',
'UI:Layout:ExtensionsDetails:BadgeNotUninstallable+' => 'Once this extension has been installed, it should not be uninstalled.~~',
'UI:Layout:ExtensionsDetails:BadgeMissingFromDisk' => 'missing from disk~~',
'UI:Layout:ExtensionsDetails:BadgeMissingFromDisk+' => 'The local extension folder has been removed from the disk. This will force the uninstallation of this extension.~~',
'UI:Layout:ExtensionsDetails:MenuAboutTitle' => 'About %1$s~~',
'UI:Layout:ExtensionsDetails:MenuAbout' => 'More informations~~',
'UI:Layout:ExtensionsDetails:MenuForce' => 'Force uninstall~~',
'UI:Layout:ExtensionsDetails:MoreActions' => 'Show more actions~~',
'UI:Layout:ExtensionsDetails:TogglerTooltip' => 'Toggle %1$s~~',
'UI:Layout:ExtensionsDetails:BadgeInstalled' => 'установлено',
'UI:Layout:ExtensionsDetails:BadgeInstalled+' => 'Это расширение является частью текущей установки.',
'UI:Layout:ExtensionsDetails:BadgeToBeInstalled' => 'будет установлено',
'UI:Layout:ExtensionsDetails:BadgeToBeInstalled+' => 'Это расширение будет установлено в ходе установки.',
'UI:Layout:ExtensionsDetails:BadgeCannotBeInstalled' => 'не может быть установлено',
'UI:Layout:ExtensionsDetails:BadgeCannotBeInstalled+' => 'Это расширение нельзя установить, так как не выполнены одна или несколько зависимостей.',
'UI:Layout:ExtensionsDetails:BadgeNotInstalled' => 'не установлено',
'UI:Layout:ExtensionsDetails:BadgeNotInstalled+' => 'Это расширение не входит в текущую установку.',
'UI:Layout:ExtensionsDetails:BadgeToBeUninstalled' => 'будет удалено',
'UI:Layout:ExtensionsDetails:BadgeToBeUninstalled+' => 'Это расширение будет удалено в ходе установки.',
'UI:Layout:ExtensionsDetails:BadgeNotUninstallable' => 'нельзя удалить',
'UI:Layout:ExtensionsDetails:BadgeNotUninstallable+' => 'После установки это расширение не должно удаляться.',
'UI:Layout:ExtensionsDetails:BadgeMissingFromDisk' => 'отсутствует на диске',
'UI:Layout:ExtensionsDetails:BadgeMissingFromDisk+' => 'Локальная папка расширения удалена с диска. Это приведёт к принудительному удалению расширения.',
'UI:Layout:ExtensionsDetails:MenuAboutTitle' => 'О расширении %1$s',
'UI:Layout:ExtensionsDetails:MenuAbout' => 'Подробнее',
'UI:Layout:ExtensionsDetails:MenuForce' => 'Принудительно удалить',
'UI:Layout:ExtensionsDetails:MoreActions' => 'Показать больше действий',
'UI:Layout:ExtensionsDetails:TogglerTooltip' => 'Переключить %1$s',
]);

View File

@@ -12,7 +12,7 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Layout:NavigationMenu:CompanyLogo:AltText' => 'Логотип компании',
'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~',
'UI:Layout:NavigationMenu:Silo:Label' => 'Выберите организацию для фильтрации',
'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Развернуть / Свернуть',
'UI:Layout:NavigationMenu:Toggler:TooltipWithSiloLabel' => 'Развернуть / Свернуть (фильтр по %1$s)',
'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Фильтр...',
@@ -21,7 +21,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Нет совпадений',
'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Добрый день, %1$s!',
'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => 'Фотография',
'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~',
'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Открыть меню пользователя',
'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Фильтр пунктов меню',
]);

View File

@@ -15,6 +15,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Layout:ObjectDetails:KeyboardShortcut:DeleteObject' => 'Удалить просматриваемый объект',
'UI:Layout:ObjectDetails:KeyboardShortcut:NewObject' => 'Создать новый объект (того же класса, что и просматриваемый объект)',
'UI:Layout:ObjectDetails:KeyboardShortcut:SaveObject' => 'Сохранить просматриваемый объект',
'UI:Layout:ObjectDetails:New:Modal:Title' => 'Creation of an object~~',
'UI:Layout:ObjectDetails:DatamodelSchemaLink:Tooltip' => 'Class data model schema~~',
'UI:Layout:ObjectDetails:New:Modal:Title' => 'Создание объекта',
'UI:Layout:ObjectDetails:DatamodelSchemaLink:Tooltip' => 'Схема модели данных класса',
]);

View File

@@ -11,5 +11,5 @@
*
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UIBlock:Error:CannotGetBlocks' => 'Could not retrieve blocks from content area "%1$s" as it does seem to exist for page content "%2$s"~~',
'UIBlock:Error:CannotGetBlocks' => 'Не удалось получить блоки из области контента "%1$s", так как её, похоже, не существует для содержимого страницы "%2$s"',
]);

View File

@@ -7,7 +7,7 @@
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Login:Title' => 'Вход в '.ITOP_APPLICATION_SHORT,
'UI:Login:Logo:AltText' => ITOP_APPLICATION_SHORT.' logo~~',
'UI:Login:Logo:AltText' => ITOP_APPLICATION_SHORT.' — логотип',
'UI:Login:Welcome' => 'Добро пожаловать в '.ITOP_APPLICATION_SHORT.'!',
'UI:Login:IncorrectLoginPassword' => 'Неправильный логин/пароль. Пожалуйста, попробуйте еще раз.',
'UI:Login:IdentifyYourself' => 'Пожалуйста, представьтесь',
@@ -27,7 +27,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:ResetPwd-Error-NoEmailAtt' => 'аккаунт не ассоциирован с персоной, имеющей атрибут электронной почты. Пожалуйста, обратитесь к администратору.',
'UI:ResetPwd-Error-NoEmail' => 'отсутствует адрес электронной почты. Пожалуйста, обратитесь к администратору.',
'UI:ResetPwd-Error-Send' => 'технические проблемы с отправкой электронной почты. Пожалуйста, обратитесь к администратору.',
'UI:ResetPwd-EmailSent' => 'Please check your email box and follow the instructions. If you receive no email, please check the login you typed.~~',
'UI:ResetPwd-EmailSent' => 'Проверьте свою почту и следуйте инструкциям. Если письмо не пришло, проверьте правильность введённого логина.',
'UI:ResetPwd-EmailSubject' => 'Восстановление пароля',
'UI:ResetPwd-EmailBody' => '<body><p>Вы запросили восстановление пароля '.ITOP_APPLICATION_SHORT.'.</p><p>Пожалуйста, воспользуйтесь <a href="%1$s">этой ссылкой</a> для задания нового пароля.</p></body>',
'UI:ResetPwd-Title' => 'Восстановление пароля',
@@ -47,7 +47,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:LogOff:ClickHereToLoginAgain' => 'Нажмите здесь, чтобы снова войти...',
'UI:ChangePwdMenu' => 'Изменить пароль...',
'UI:Login:PasswordChanged' => 'Пароль успешно изменён!',
'UI:Login:PasswordNotChanged' => 'Error: Password is the same!~~',
'UI:Login:PasswordNotChanged' => 'Ошибка: пароль не изменился!',
'UI:Login:RetypePwdDoesNotMatch' => 'Пароли не совпадают',
'UI:Button:Login' => 'Войти',
'UI:Login:Error:AccessRestricted' => 'Доступ к '.ITOP_APPLICATION_SHORT.' ограничен. Пожалуйста, свяжитесь с администратором '.ITOP_APPLICATION_SHORT.'.',

View File

@@ -19,15 +19,15 @@
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:NotificationsCenter:Page:Title' => 'Notifications center~~',
'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~',
'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~',
'UI:NotificationsCenter:Panel:Toolbar:ViewAllNews:Title' => 'View all my news~~',
'UI:NotificationsCenter:Panel:Table:Channels' => 'Channels~~',
'UI:NotificationsCenter:Unsubscribe:Success' => 'You have been successfully unsubscribed from the selected notifications.~~',
'UI:NotificationsCenter:Unsubscribe:Error' => 'An error occurred while unsubscribing from the selected notifications.~~',
'UI:NotificationsCenter:Subscribe:Success' => 'You have been successfully subscribed to the selected notifications.~~',
'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~',
'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~',
'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~',
'UI:NotificationsCenter:Page:Title' => 'Центр уведомлений',
'UI:NotificationsCenter:Panel:Title' => 'Центр уведомлений',
'UI:NotificationsCenter:Panel:SubTitle' => 'Управляйте получаемыми уведомлениями: отписывайтесь от них или ограничивайте одним каналом',
'UI:NotificationsCenter:Panel:Toolbar:ViewAllNews:Title' => 'Показать все мои новости',
'UI:NotificationsCenter:Panel:Table:Channels' => 'Каналы',
'UI:NotificationsCenter:Unsubscribe:Success' => 'Вы успешно отписались от выбранных уведомлений.',
'UI:NotificationsCenter:Unsubscribe:Error' => 'Произошла ошибка при отписке от выбранных уведомлений.',
'UI:NotificationsCenter:Subscribe:Success' => 'Вы успешно подписались на выбранные уведомления.',
'UI:NotificationsCenter:Subscribe:Error' => 'Произошла ошибка при подписке на выбранные уведомления.',
'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s из %2$s',
'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s',
]);

View File

@@ -20,5 +20,5 @@
// Navigation menu
Dict::Add('RU RU', 'Russian', 'Русский', [
'core/Operation:Landing/Title' => 'OAuth token creation~~',
'core/Operation:Landing/Title' => 'Создание токена OAuth',
]);

View File

@@ -16,8 +16,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Preferences:General:Title' => 'Основные',
'UI:Preferences:General:Theme' => 'Тема',
'UI:Preferences:General:Theme:DefaultThemeLabel' => '%1$s (по умолчанию)',
'UI:Favorites:General:ShowSummaryCards' => 'Show summary cards~~',
'UI:Favorites:General:ShowSummaryCards+' => 'When hovering an hyperlink targeting an object, display a short summary of the object, if available for that class~~',
'UI:Favorites:General:ShowSummaryCards' => 'Показывать карточки сводки',
'UI:Favorites:General:ShowSummaryCards+' => 'При наведении на гиперссылку на объект показывать краткую сводку по объекту, если она доступна для этого класса',
'UI:Preferences:Lists:Title' => 'Списки',
'UI:Preferences:RichText:Title' => 'Текстовый редактор',
'UI:Preferences:RichText:ToolbarState' => 'Панель инструментов по умолчанию',
@@ -29,8 +29,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Preferences:PersonalizeKeyboardShortcuts:Title' => 'Сочетания клавиш',
'UI:Preferences:PersonalizeKeyboardShortcuts:Input:Hint' => 'Введите сочетание клавиш',
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Tooltip' => 'Записать сочетание клавиш',
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Reset' => 'Reset~~',
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Reset:Tooltip' => 'Back to default keyboard shortcut~~',
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Reset' => 'Сбросить',
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Reset:Tooltip' => 'Вернуть сочетание клавиш по умолчанию',
'UI:Preferences:Tabs:Title' => 'Вкладки',
'UI:Preferences:Tabs:Layout:Label' => 'Расположение',
'UI:Preferences:Tabs:Layout:Horizontal' => 'Горизонтальное',
@@ -38,13 +38,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'UI:Preferences:Tabs:Scrollable:Label' => 'Навигация',
'UI:Preferences:Tabs:Scrollable:Classic' => 'Классическая',
'UI:Preferences:Tabs:Scrollable:Scrollable' => 'Прокручиваемая',
'UI:Preferences:General:Toasts' => 'Toast notifications position~~',
'UI:Preferences:General:Toasts:Bottom' => 'Bottom~~',
'UI:Preferences:General:Toasts:Top' => 'Top~~',
'UI:Preferences:General:Toasts' => 'Расположение всплывающих уведомлений',
'UI:Preferences:General:Toasts:Bottom' => 'Внизу',
'UI:Preferences:General:Toasts:Top' => 'Вверху',
'UI:Preferences:ChooseAPlaceholder' => 'Аватар пользователя',
'UI:Preferences:ChooseAPlaceholder+' => 'Выберите аватар, который будет отображаться, если у связанного с вашей учетной записью контакта нет фотографии',
'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~',
'UI:Preferences:Notifications' => 'Notifications~~',
'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive <a href="%1$s">on this page</a>.~~',
'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Изображение-заполнитель успешно обновлено',
'UI:Preferences:Notifications' => 'Уведомления',
'UI:Preferences:Notifications+' => 'Настройте уведомления, которые хотите получать, <a href="%1$s">на этой странице</a>.',
]);

View File

@@ -199,7 +199,7 @@ try {
$sExportUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey();
$oDownloadButton = ButtonUIBlockFactory::MakeForAlternativePrimaryAction('fas fa-chevron-left', Dict::S('UI:Audit:InteractiveAudit:Back'), "./audit.php?".$oAppContext->GetForLink());
$oP->add_ready_script("$('a[href*=\"webservices/export.php?expression=\"]').attr('href', '".$sExportUrl."&filename=audit.csv".$sAdvanced."');");
$oP->add_ready_script("$('a[href*=\"webservices/export-v2.php?expression=\"]').attr('href', '".$sExportUrl."&filename=audit.csv".$sAdvanced."');");
$oP->add_ready_script("$('#1 :checkbox').removeAttr('onclick').on('click', function() { var sAdvanced = ''; if (this.checked) sAdvanced = '&advanced=1'; window.location.href='$sExportUrl'+sAdvanced; } );");
}
break;

View File

@@ -40,14 +40,14 @@ class iTopExtensionsMap
/**
* @throws \Exception
*/
public static function GetExtensionsMap(string $sFromEnvironment = ITOP_DEFAULT_ENV, ?string $sAppRootForTests = null): iTopExtensionsMap
public static function GetExtensionsMap(string $sFromEnvironment = ITOP_DEFAULT_ENV, array $aExtraDirs = [], ?string $sAppRootForTests = null): iTopExtensionsMap
{
if (!is_null($sAppRootForTests)) {
return new iTopExtensionsMap($sFromEnvironment, $sAppRootForTests);
return new iTopExtensionsMap($sFromEnvironment, $aExtraDirs, $sAppRootForTests);
}
if (!isset(self::$aInstancesByEnvironment[$sFromEnvironment])) {
self::$aInstancesByEnvironment[$sFromEnvironment] = new iTopExtensionsMap($sFromEnvironment);
self::$aInstancesByEnvironment[$sFromEnvironment] = new iTopExtensionsMap($sFromEnvironment, $aExtraDirs);
}
return self::$aInstancesByEnvironment[$sFromEnvironment];
@@ -57,11 +57,12 @@ class iTopExtensionsMap
* The list of all discovered extensions
*
* @param string $sFromEnvironment The environment to scan
* @param array $aExtraDirs extensions dir to scan
* @param string|null $sAppRootForTests
*
* @throws \Exception
*/
private function __construct(string $sFromEnvironment = ITOP_DEFAULT_ENV, ?string $sAppRootForTests = null)
private function __construct(string $sFromEnvironment = ITOP_DEFAULT_ENV, array $aExtraDirs = [], ?string $sAppRootForTests = null)
{
$this->aExtensions = [];
$this->aExtensionsByCode = [];
@@ -69,6 +70,11 @@ class iTopExtensionsMap
$sAppRoot = $sAppRootForTests ?? APPROOT;
$this->ScanDisk($sFromEnvironment, $sAppRoot);
foreach ($aExtraDirs as $sDir) {
$this->ReadDir($sDir, iTopExtension::SOURCE_REMOTE, bIsRootDir: true);
}
$this->CheckDependencies($sAppRoot);
}

View File

@@ -1273,16 +1273,17 @@ class RunTimeEnvironment
*
* @param string $sSourceEnv The name of the source environment to 'imitate'
* @param null $bUseSymLinks Whether to create symbolic links instead of copies
* @param array $aAddedExtensions List of additional extensions to add to the build environment
*
* @return string[]
* @throws \ConfigException
* @throws \CoreException
*/
public function CompileFrom($sSourceEnv, $bUseSymLinks = null)
public function CompileFrom($sSourceEnv, $bUseSymLinks = null, $aAddedExtensions = [])
{
$oConfig = new Config(utils::GetConfigFilePath($sSourceEnv));
$this->InitExtensionMap($oConfig);
$aSelectedExtensions = $this->GetExtensionMap()->GetSelectedExtensions($oConfig, [], []);
$aSelectedExtensions = $this->GetExtensionMap()->GetSelectedExtensions($oConfig, $aAddedExtensions, []);
$aSelectedModules = $this->GetModulesToLoadFromChoices($oConfig, $aSelectedExtensions);
return $this->DoCompile($aSelectedExtensions, [], $aSelectedModules, $bUseSymLinks ?? false);
}

View File

@@ -49,7 +49,7 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment
*/
protected $aAdditionExtensionFoldersByCode = null;
public function CompileFrom($sSourceEnv, $bUseSymLinks = null)
public function CompileFrom($sSourceEnv, $bUseSymLinks = null, $aAddedExtensions = [])
{
$sDestModulesDir = APPROOT.'data/'.$this->sBuildEnv.'-modules/';
if (is_dir($sDestModulesDir)) {

View File

@@ -145,7 +145,6 @@ function DisplayExpressionForm(WebPage $oP, $sAction, $sExpression = '', $sExcep
$oPanel->AddSubBlock(ButtonUIBlockFactory::MakeForPrimaryAction(Dict::S('UI:Button:Next'), "", "", true, "next-btn"));
$oP->p('<a target="_blank" href="'.utils::GetAbsoluteUrlAppRoot().'webservices/export-v2.php">'.Dict::S('Core:BulkExportCanRunNonInteractive').'</a>');
$oP->p('<a target="_blank" href="'.utils::GetAbsoluteUrlAppRoot().'webservices/export.php">'.Dict::S('Core:BulkExportLegacyExport').'</a>');
$sJSEmptyOQL = json_encode(Dict::S('Core:BulkExportMessageEmptyOQL'));
$sJSEmptyQueryId = json_encode(Dict::S('Core:BulkExportMessageEmptyPhrasebookEntry'));