mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-16 00:44:10 +01:00
Compare commits
42 Commits
1.2.1
...
support/1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4a33b521a | ||
|
|
2bc01db8d9 | ||
|
|
d72503b411 | ||
|
|
71732f1722 | ||
|
|
489c4c05e0 | ||
|
|
f65e18400d | ||
|
|
9a53938473 | ||
|
|
e2bd0b82c7 | ||
|
|
48a067c286 | ||
|
|
bd933f3b14 | ||
|
|
cb9bc8f6d7 | ||
|
|
dd61cd1697 | ||
|
|
dd0c22708c | ||
|
|
b6f6e7a1ff | ||
|
|
db640fde59 | ||
|
|
aa9933a6b3 | ||
|
|
7a9d70d15b | ||
|
|
cd33335401 | ||
|
|
9755af9b7b | ||
|
|
5edf6ee43f | ||
|
|
00176a7f71 | ||
|
|
4f8e62b44a | ||
|
|
d1944c1af3 | ||
|
|
470397e2fd | ||
|
|
ea3fe45ce5 | ||
|
|
5b39fd372f | ||
|
|
6bca068bbe | ||
|
|
4c0150378c | ||
|
|
be4d017f4c | ||
|
|
ffd816038d | ||
|
|
9818214ec8 | ||
|
|
f115e0b120 | ||
|
|
10b81f0569 | ||
|
|
3d5c05f6d4 | ||
|
|
46c71fcefc | ||
|
|
198898ada4 | ||
|
|
42f355a592 | ||
|
|
ab1fc4b1b5 | ||
|
|
2273e2dbaa | ||
|
|
68412f53a4 | ||
|
|
7c7b657d71 | ||
|
|
42dc240aac |
@@ -597,12 +597,12 @@ class UserRightsProfile extends UserRightsAddOnAPI
|
||||
}
|
||||
|
||||
|
||||
protected $m_aAdmins; // id of users being linked to the well-known admin profile
|
||||
protected $m_aPortalUsers; // id of users being linked to the well-known admin profile
|
||||
protected $m_aAdmins = array(); // id -> bool, true if the user has the well-known admin profile
|
||||
protected $m_aPortalUsers = array(); // id -> bool, true if the user has the well-known portal user profile
|
||||
|
||||
protected $m_aProfiles; // id -> object
|
||||
protected $m_aUserProfiles; // userid,profileid -> object
|
||||
protected $m_aUserOrgs; // userid -> orgid
|
||||
protected $m_aUserProfiles = array(); // userid,profileid -> object
|
||||
protected $m_aUserOrgs = array(); // userid -> array of orgid
|
||||
|
||||
// Those arrays could be completed on demand (inheriting parent permissions)
|
||||
protected $m_aClassActionGrants = null; // profile, class, action -> actiongrantid (or false if NO, or null/missing if undefined)
|
||||
@@ -611,20 +611,64 @@ class UserRightsProfile extends UserRightsAddOnAPI
|
||||
// Built on demand, could be optimized if necessary (doing a query for each attribute that needs to be read)
|
||||
protected $m_aObjectActionGrants = array();
|
||||
|
||||
/**
|
||||
* Read and cache organizations allowed to the given user
|
||||
*
|
||||
* @param oUser
|
||||
* @param sClass -not used here but can be used in overloads
|
||||
*/
|
||||
protected function GetUserOrgs($oUser, $sClass)
|
||||
{
|
||||
return @$this->m_aUserOrgs[$oUser->GetKey()];
|
||||
$iUser = $oUser->GetKey();
|
||||
if (!array_key_exists($iUser, $this->m_aUserOrgs))
|
||||
{
|
||||
$oSearch = new DBObjectSearch('URP_UserOrg');
|
||||
$oSearch->AllowAllData();
|
||||
$oCondition = new BinaryExpression(new FieldExpression('userid'), '=', new VariableExpression('userid'));
|
||||
$oSearch->AddConditionExpression($oCondition);
|
||||
|
||||
$this->m_aUserOrgs[$iUser] = array();
|
||||
$oUserOrgSet = new DBObjectSet($oSearch, array(), array('userid' => $iUser));
|
||||
while ($oUserOrg = $oUserOrgSet->Fetch())
|
||||
{
|
||||
$this->m_aUserOrgs[$iUser][] = $oUserOrg->Get('allowed_org_id');
|
||||
}
|
||||
}
|
||||
return $this->m_aUserOrgs[$iUser];
|
||||
}
|
||||
|
||||
/**
|
||||
* Read and cache profiles of the given user
|
||||
*/
|
||||
protected function GetUserProfiles($iUser)
|
||||
{
|
||||
if (!array_key_exists($iUser, $this->m_aUserProfiles))
|
||||
{
|
||||
$oSearch = new DBObjectSearch('URP_UserProfile');
|
||||
$oSearch->AllowAllData();
|
||||
$oCondition = new BinaryExpression(new FieldExpression('userid'), '=', new VariableExpression('userid'));
|
||||
$oSearch->AddConditionExpression($oCondition);
|
||||
|
||||
$this->m_aUserProfiles[$iUser] = array();
|
||||
$oUserProfileSet = new DBObjectSet($oSearch, array(), array('userid' => $iUser));
|
||||
while ($oUserProfile = $oUserProfileSet->Fetch())
|
||||
{
|
||||
$this->m_aUserProfiles[$iUser][$oUserProfile->Get('profileid')] = $oUserProfile;
|
||||
}
|
||||
}
|
||||
return $this->m_aUserProfiles[$iUser];
|
||||
|
||||
}
|
||||
|
||||
public function ResetCache()
|
||||
{
|
||||
// Loaded by Load cache
|
||||
$this->m_aProfiles = null;
|
||||
$this->m_aUserProfiles = null;
|
||||
$this->m_aUserOrgs = null;
|
||||
$this->m_aUserProfiles = array();
|
||||
$this->m_aUserOrgs = array();
|
||||
|
||||
$this->m_aAdmins = null;
|
||||
$this->m_aPortalUsers = null;
|
||||
$this->m_aAdmins = array();
|
||||
$this->m_aPortalUsers = array();
|
||||
|
||||
// Loaded on demand (time consuming as compared to the others)
|
||||
$this->m_aClassActionGrants = null;
|
||||
@@ -666,30 +710,6 @@ class UserRightsProfile extends UserRightsAddOnAPI
|
||||
$this->m_aProfiles[$oProfile->GetKey()] = $oProfile;
|
||||
}
|
||||
|
||||
$oUserProfileSet = new DBObjectSet(DBObjectSearch::FromOQL_AllData("SELECT URP_UserProfile"));
|
||||
$this->m_aUserProfiles = array();
|
||||
$this->m_aAdmins = array();
|
||||
$this->m_aPortalUsers = array();
|
||||
while ($oUserProfile = $oUserProfileSet->Fetch())
|
||||
{
|
||||
$this->m_aUserProfiles[$oUserProfile->Get('userid')][$oUserProfile->Get('profileid')] = $oUserProfile;
|
||||
if ($oUserProfile->Get('profile') == ADMIN_PROFILE_NAME)
|
||||
{
|
||||
$this->m_aAdmins[] = $oUserProfile->Get('userid');
|
||||
}
|
||||
elseif ($oUserProfile->Get('profile') == PORTAL_PROFILE_NAME)
|
||||
{
|
||||
$this->m_aPortalUsers[] = $oUserProfile->Get('userid');
|
||||
}
|
||||
}
|
||||
|
||||
$oUserOrgSet = new DBObjectSet(DBObjectSearch::FromOQL_AllData("SELECT URP_UserOrg"));
|
||||
$this->m_aUserOrgs = array();
|
||||
while ($oUserOrg = $oUserOrgSet->Fetch())
|
||||
{
|
||||
$this->m_aUserOrgs[$oUserOrg->Get('userid')][] = $oUserOrg->Get('allowed_org_id');
|
||||
}
|
||||
|
||||
$this->m_aClassStimulusGrants = array();
|
||||
$oStimGrantSet = new DBObjectSet(DBObjectSearch::FromOQL_AllData("SELECT URP_StimulusGrant"));
|
||||
$this->m_aStimGrants = array();
|
||||
@@ -716,32 +736,45 @@ exit;
|
||||
|
||||
public function IsAdministrator($oUser)
|
||||
{
|
||||
$this->LoadCache();
|
||||
|
||||
if (in_array($oUser->GetKey(), $this->m_aAdmins))
|
||||
//$this->LoadCache();
|
||||
$iUser = $oUser->GetKey();
|
||||
if (!array_key_exists($iUser, $this->m_aAdmins))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
$bIsAdmin = false;
|
||||
foreach($this->GetUserProfiles($iUser) as $oUserProfile)
|
||||
{
|
||||
if ($oUserProfile->Get('profile') == ADMIN_PROFILE_NAME)
|
||||
{
|
||||
$bIsAdmin = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->m_aAdmins[$iUser] = $bIsAdmin;
|
||||
}
|
||||
return $this->m_aAdmins[$iUser];
|
||||
}
|
||||
|
||||
public function IsPortalUser($oUser)
|
||||
{
|
||||
$this->LoadCache();
|
||||
|
||||
if (in_array($oUser->GetKey(), $this->m_aPortalUsers))
|
||||
//$this->LoadCache();
|
||||
$iUser = $oUser->GetKey();
|
||||
if (!array_key_exists($iUser, $this->m_aPortalUsers))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
$bIsPortalUser = false;
|
||||
foreach($this->GetUserProfiles($iUser) as $oUserProfile)
|
||||
{
|
||||
if ($oUserProfile->Get('profile') == PORTAL_PROFILE_NAME)
|
||||
{
|
||||
$bIsPortalUser = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->m_aPortalUsers[$iUser] = $bIsPortalUser;
|
||||
}
|
||||
return $this->m_aPortalUsers[$iUser];
|
||||
}
|
||||
|
||||
|
||||
public function GetSelectFilter($oUser, $sClass)
|
||||
{
|
||||
$this->LoadCache();
|
||||
@@ -786,9 +819,9 @@ exit;
|
||||
// Position the user
|
||||
//
|
||||
$aUserOrgs = $this->GetUserOrgs($oUser, $sClass);
|
||||
if (is_null($aUserOrgs) || count($aUserOrgs) == 0)
|
||||
if (count($aUserOrgs) == 0)
|
||||
{
|
||||
// No position means 'Everywhere'
|
||||
// No org means 'any org'
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -883,33 +916,30 @@ exit;
|
||||
|
||||
$iPermission = UR_ALLOWED_NO;
|
||||
$aAttributes = array();
|
||||
if (isset($this->m_aUserProfiles[$iUser]))
|
||||
foreach($this->GetUserProfiles($iUser) as $iProfile => $oProfile)
|
||||
{
|
||||
foreach($this->m_aUserProfiles[$iUser] as $iProfile => $oProfile)
|
||||
$iGrant = $this->GetProfileActionGrant($iProfile, $sClass, $sAction);
|
||||
if (is_null($iGrant) || !$iGrant)
|
||||
{
|
||||
$iGrant = $this->GetProfileActionGrant($iProfile, $sClass, $sAction);
|
||||
if (is_null($iGrant) || !$iGrant)
|
||||
continue; // loop to the next profile
|
||||
}
|
||||
else
|
||||
{
|
||||
$iPermission = UR_ALLOWED_YES;
|
||||
|
||||
// update the list of attributes with those allowed for this profile
|
||||
//
|
||||
$oSearch = DBObjectSearch::FromOQL_AllData("SELECT URP_AttributeGrant WHERE actiongrantid = :actiongrantid");
|
||||
$oSet = new DBObjectSet($oSearch, array(), array('actiongrantid' => $iGrant));
|
||||
$aProfileAttributes = $oSet->GetColumnAsArray('attcode', false);
|
||||
if (count($aProfileAttributes) == 0)
|
||||
{
|
||||
continue; // loop to the next profile
|
||||
$aAllAttributes = array_keys(MetaModel::ListAttributeDefs($sClass));
|
||||
$aAttributes = array_merge($aAttributes, $aAllAttributes);
|
||||
}
|
||||
else
|
||||
{
|
||||
$iPermission = UR_ALLOWED_YES;
|
||||
|
||||
// update the list of attributes with those allowed for this profile
|
||||
//
|
||||
$oSearch = DBObjectSearch::FromOQL_AllData("SELECT URP_AttributeGrant WHERE actiongrantid = :actiongrantid");
|
||||
$oSet = new DBObjectSet($oSearch, array(), array('actiongrantid' => $iGrant));
|
||||
$aProfileAttributes = $oSet->GetColumnAsArray('attcode', false);
|
||||
if (count($aProfileAttributes) == 0)
|
||||
{
|
||||
$aAllAttributes = array_keys(MetaModel::ListAttributeDefs($sClass));
|
||||
$aAttributes = array_merge($aAttributes, $aAllAttributes);
|
||||
}
|
||||
else
|
||||
{
|
||||
$aAttributes = array_merge($aAttributes, $aProfileAttributes);
|
||||
}
|
||||
$aAttributes = array_merge($aAttributes, $aProfileAttributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -974,16 +1004,13 @@ exit;
|
||||
// Note: The object set is ignored because it was interesting to optimize for huge data sets
|
||||
// and acceptable to consider only the root class of the object set
|
||||
$iPermission = UR_ALLOWED_NO;
|
||||
if (isset($this->m_aUserProfiles[$iUser]))
|
||||
foreach($this->GetUserProfiles($iUser) as $iProfile => $oProfile)
|
||||
{
|
||||
foreach($this->m_aUserProfiles[$iUser] as $iProfile => $oProfile)
|
||||
$oGrantRecord = $this->GetClassStimulusGrant($iProfile, $sClass, $sStimulusCode);
|
||||
if (!is_null($oGrantRecord))
|
||||
{
|
||||
$oGrantRecord = $this->GetClassStimulusGrant($iProfile, $sClass, $sStimulusCode);
|
||||
if (!is_null($oGrantRecord))
|
||||
{
|
||||
// no need to fetch the record, we've requested the records having permission = 'yes'
|
||||
$iPermission = UR_ALLOWED_YES;
|
||||
}
|
||||
// no need to fetch the record, we've requested the records having permission = 'yes'
|
||||
$iPermission = UR_ALLOWED_YES;
|
||||
}
|
||||
}
|
||||
return $iPermission;
|
||||
|
||||
@@ -1365,7 +1365,7 @@ EOF
|
||||
{
|
||||
$iDate = AttributeDateTime::GetAsUnixSeconds($oObj->Get($sAttCode));
|
||||
$aRow[] = '<td>'.date('Y-m-d', $iDate).'</td>';
|
||||
$aRow[] = '<td>'.date('h:i:s', $iDate).'</td>';
|
||||
$aRow[] = '<td>'.date('H:i:s', $iDate).'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -348,7 +348,11 @@ class DisplayBlock
|
||||
$aGroupBy = array();
|
||||
$sLabels = array();
|
||||
$iTotalCount = $this->m_oSet->Count();
|
||||
while($oObj = $this->m_oSet->Fetch())
|
||||
$oTmpSet = clone $this->m_oSet;
|
||||
// Speed up the load, load only the needed field to group on
|
||||
$sAlias = $oTmpSet->GetFilter()->GetClassAlias();
|
||||
$oTmpSet->OptimizeColumnLoad(array($sAlias => array($sGroupByField)));
|
||||
while($oObj = $oTmpSet->Fetch())
|
||||
{
|
||||
if (isset($aExtraParams['group_by_expr']))
|
||||
{
|
||||
@@ -621,7 +625,7 @@ class DisplayBlock
|
||||
$this->m_oSet = new CMDBObjectSet($this->m_oFilter, array(), $aQueryParams);
|
||||
}
|
||||
$iCount = $this->m_oSet->Count();
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$this->m_oFilter->serialize();
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize());
|
||||
$sHtml .= '<p><a class="actions" href="'.$sHyperlink.'">';
|
||||
$sHtml .= MetaModel::GetClassIcon($sClass, true, 'float;left;margin-right:10px;');
|
||||
$sHtml .= MetaModel::GetName($sClass).': '.$iCount.'</a></p>';
|
||||
@@ -682,7 +686,7 @@ class DisplayBlock
|
||||
}
|
||||
else
|
||||
{
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$oFilter->serialize();
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($oFilter->serialize());
|
||||
$aCounts[$sStateValue] = "<a href=\"$sHyperlink\">{$aCounts[$sStateValue]}</a>";
|
||||
}
|
||||
}
|
||||
@@ -691,7 +695,7 @@ class DisplayBlock
|
||||
$sHtml .= '<tr><td>'.implode('</td><td>', $aCounts).'</td></tr></table></div>';
|
||||
// Title & summary
|
||||
$iCount = $this->m_oSet->Count();
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$this->m_oFilter->serialize();
|
||||
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize());
|
||||
$sHtml .= '<h1>'.Dict::S(str_replace('_', ':', $sTitle)).'</h1>';
|
||||
$sHtml .= '<a class="summary" href="'.$sHyperlink.'">'.Dict::Format(str_replace('_', ':', $sLabel), $iCount).'</a>';
|
||||
break;
|
||||
@@ -746,7 +750,7 @@ EOF
|
||||
$sHtml .= "<div id=\"my_chart_{$iChartCounter}\">If the chart does not display, <a href=\"http://get.adobe.com/flash/\" target=\"_blank\">install Flash</a></div>\n";
|
||||
$oPage->add_script("function ofc_resize(left, width, top, height) { /* do nothing special */ }");
|
||||
$oPage->add_ready_script("swfobject.embedSWF(\"../images/open-flash-chart.swf\", \"my_chart_{$iChartCounter}\", \"100%\", \"300\",\"9.0.0\", \"expressInstall.swf\",
|
||||
{\"data-file\":\"".urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle&id=$sId&filter=".$sFilter)."\"}, {wmode: 'transparent'} );\n");
|
||||
{\"data-file\":\"".urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle&id=$sId&filter=".urlencode($sFilter))."\"}, {wmode: 'transparent'} );\n");
|
||||
$iChartCounter++;
|
||||
if (isset($aExtraParams['group_by']))
|
||||
{
|
||||
@@ -1136,7 +1140,7 @@ class MenuBlock extends DisplayBlock
|
||||
// Static menus: Email this page & CSV Export
|
||||
$sUrl = ApplicationContext::MakeObjectUrl($sClass, $id);
|
||||
$aActions['UI:Menu:EMail'] = array ('label' => Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=".urlencode($oObj->GetRawName())."&body=".urlencode($sUrl));
|
||||
$aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=$sFilter&format=csv{$sContext}");
|
||||
$aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."&format=csv{$sContext}");
|
||||
}
|
||||
$this->AddMenuSeparator($aActions);
|
||||
foreach (MetaModel::EnumPlugins('iApplicationUIExtension') as $oExtensionInstance)
|
||||
@@ -1170,12 +1174,15 @@ class MenuBlock extends DisplayBlock
|
||||
{
|
||||
// many objects in the set, possible actions are: new / modify all / delete all
|
||||
if ($bIsModifyAllowed) { $aActions['UI:Menu:New'] = array ('label' => Dict::S('UI:Menu:New'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=new&class=$sClass{$sContext}{$sDefault}"); }
|
||||
if ($bIsBulkModifyAllowed) { $aActions['UI:Menu:ModifyAll'] = array ('label' => Dict::S('UI:Menu:ModifyAll'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_modify_all&class=$sClass&filter=$sFilter{$sContext}"); }
|
||||
if ($bIsBulkDeleteAllowed) { $aActions['UI:Menu:BulkDelete'] = array ('label' => Dict::S('UI:Menu:BulkDelete'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_deletion&filter=$sFilter{$sContext}"); }
|
||||
if ($bIsBulkModifyAllowed) { $aActions['UI:Menu:ModifyAll'] = array ('label' => Dict::S('UI:Menu:ModifyAll'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_modify_all&class=$sClass&filter=".urlencode($sFilter)."{$sContext}"); }
|
||||
if ($bIsBulkDeleteAllowed) { $aActions['UI:Menu:BulkDelete'] = array ('label' => Dict::S('UI:Menu:BulkDelete'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_deletion&filter=".urlencode($sFilter)."{$sContext}"); }
|
||||
|
||||
// Stimuli
|
||||
$aStates = MetaModel::EnumStates($sClass);
|
||||
if (count($aStates) > 0)
|
||||
// Do not perform time consuming computations if there are too may objects in the list
|
||||
$iLimit = MetaModel::GetConfig()->Get('complex_actions_limit');
|
||||
|
||||
if ((count($aStates) > 0) && (($iLimit == 0) || ($oSet->Count() < $iLimit)))
|
||||
{
|
||||
// Life cycle actions may be available... if all objects are in the same state
|
||||
$oSet->Rewind();
|
||||
@@ -1202,7 +1209,7 @@ class MenuBlock extends DisplayBlock
|
||||
{
|
||||
case UR_ALLOWED_YES:
|
||||
case UR_ALLOWED_DEPENDS:
|
||||
$aActions[$sStimulusCode] = array('label' => $aStimuli[$sStimulusCode]->GetLabel(), 'url' => "{$sRootUrl}pages/UI.php?operation=select_bulk_stimulus&stimulus=$sStimulusCode&state=$sState&class=$sClass&filter=$sFilter{$sContext}");
|
||||
$aActions[$sStimulusCode] = array('label' => $aStimuli[$sStimulusCode]->GetLabel(), 'url' => "{$sRootUrl}pages/UI.php?operation=select_bulk_stimulus&stimulus=$sStimulusCode&state=$sState&class=$sClass&filter=".urlencode($sFilter)."{$sContext}");
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1214,8 +1221,8 @@ class MenuBlock extends DisplayBlock
|
||||
}
|
||||
$this->AddMenuSeparator($aActions);
|
||||
$sUrl = utils::GetAbsoluteUrlAppRoot();
|
||||
$aActions['UI:Menu:EMail'] = array ('label' => Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=$sFilterDesc&body=".urlencode("{$sUrl}pages/$sUIPage?operation=search&filter=$sFilter{$sContext}"));
|
||||
$aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=$sFilter&format=csv{$sContext}");
|
||||
$aActions['UI:Menu:EMail'] = array ('label' => Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=$sFilterDesc&body=".urlencode("{$sUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."{$sContext}"));
|
||||
$aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."&format=csv{$sContext}");
|
||||
}
|
||||
$this->AddMenuSeparator($aActions);
|
||||
foreach (MetaModel::EnumPlugins('iApplicationUIExtension') as $oExtensionInstance)
|
||||
|
||||
@@ -212,8 +212,10 @@ EOF
|
||||
}
|
||||
EOF
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
// For Wizard helper to process the ajax replies
|
||||
$this->add('<div id="ajax_content"></div>');
|
||||
}
|
||||
|
||||
public function SetCurrentTab($sTabLabel = '')
|
||||
{
|
||||
@@ -273,13 +275,9 @@ EOF
|
||||
{
|
||||
// Home-made and very limited display of an object set
|
||||
|
||||
//
|
||||
//$oSet->Seek(0);// juste pour que le warning soit moins crado
|
||||
//$oSet->Fetch();// juste pour que le warning soit moins crado
|
||||
//
|
||||
|
||||
$this->add("<div id=\"listOf$sClass\">\n");
|
||||
cmdbAbstractObject::DisplaySet($this, $oSet, array('currentId' => "listOf$sClass", 'menu' => false, 'zlist' => false, 'extra_fields' => implode(',', $aZList)));
|
||||
$sUniqueId = $sClass.$this->GetUniqueId();
|
||||
$this->add("<div id=\"$sUniqueId\">\n"); // The id here MUST be the same as currentId, otherwise the pagination will be broken
|
||||
cmdbAbstractObject::DisplaySet($this, $oSet, array('currentId' => $sUniqueId, 'menu' => false, 'zlist' => false, 'extra_fields' => implode(',', $aZList)));
|
||||
$this->add("</div>\n");
|
||||
}
|
||||
else
|
||||
|
||||
@@ -120,7 +120,7 @@ class UIExtKeyWidget
|
||||
else
|
||||
{
|
||||
$sWizHelper = 'oWizardHelper'.$sFormPrefix;
|
||||
$sWizHelperJSON = $sWizHelper.'.ToJSON()';
|
||||
$sWizHelperJSON = $sWizHelper.'.UpdateWizardToJSON()';
|
||||
}
|
||||
if (is_null($oAllowedValues))
|
||||
{
|
||||
|
||||
@@ -305,7 +305,8 @@ class ActionEmail extends ActionNotification
|
||||
ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker);
|
||||
|
||||
if (!is_null($oLog))
|
||||
{
|
||||
// Note: we have to secure this because those values are calculated
|
||||
|
||||
@@ -1085,6 +1085,11 @@ class AttributeBoolean extends AttributeInteger
|
||||
if ($value) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function GetAsXML($sValue, $oHostObject = null)
|
||||
{
|
||||
return $sValue ? '1' : '0';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1829,7 +1834,7 @@ class AttributeCaseLog extends AttributeLongText
|
||||
*
|
||||
* @package iTopORM
|
||||
*/
|
||||
class AttributeHTML extends AttributeText
|
||||
class AttributeHTML extends AttributeLongText
|
||||
{
|
||||
public function GetEditClass() {return "HTML";}
|
||||
|
||||
@@ -2308,6 +2313,7 @@ class AttributeDateTime extends AttributeDBField
|
||||
|
||||
default:
|
||||
$oNewCondition = parent::GetSmartConditionExpression($sSearchText, $oField, $aParams);
|
||||
|
||||
}
|
||||
|
||||
return $oNewCondition;
|
||||
@@ -3290,16 +3296,26 @@ class AttributeOneWayPassword extends AttributeDefinition
|
||||
}
|
||||
|
||||
// Indexed array having two dimensions
|
||||
class AttributeTable extends AttributeText
|
||||
class AttributeTable extends AttributeDBField
|
||||
{
|
||||
public function GetEditClass() {return "Text";}
|
||||
protected function GetSQLCol() {return "TEXT";}
|
||||
public function GetEditClass() {return "Table";}
|
||||
protected function GetSQLCol() {return "LONGTEXT";}
|
||||
|
||||
public function GetMaxSize()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public function GetNullValue()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function IsNull($proposedValue)
|
||||
{
|
||||
return (count($proposedValue) == 0);
|
||||
}
|
||||
|
||||
// Facilitate things: allow the user to Set the value from a string
|
||||
public function MakeRealValue($proposedValue, $oHostObj)
|
||||
{
|
||||
@@ -3362,13 +3378,39 @@ class AttributeTable extends AttributeText
|
||||
$sRes .= "</TABLE>";
|
||||
return $sRes;
|
||||
}
|
||||
|
||||
public function GetAsCSV($sValue, $sSeparator = ',', $sTextQualifier = '"', $oHostObject = null)
|
||||
{
|
||||
// Not implemented
|
||||
return '';
|
||||
}
|
||||
|
||||
public function GetAsXML($value, $oHostObject = null)
|
||||
{
|
||||
if (count($value) == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
$sRes = "";
|
||||
foreach($value as $iRow => $aRawData)
|
||||
{
|
||||
$sRes .= "<row>";
|
||||
foreach ($aRawData as $iCol => $cell)
|
||||
{
|
||||
$sCell = Str::pure2xml((string)$cell);
|
||||
$sRes .= "<cell icol=\"$iCol\">$sCell</cell>";
|
||||
}
|
||||
$sRes .= "</row>";
|
||||
}
|
||||
return $sRes;
|
||||
}
|
||||
}
|
||||
|
||||
// The PHP value is a hash array, it is stored as a TEXT column
|
||||
class AttributePropertySet extends AttributeTable
|
||||
{
|
||||
public function GetEditClass() {return "Text";}
|
||||
protected function GetSQLCol() {return "TEXT";}
|
||||
public function GetEditClass() {return "PropertySet";}
|
||||
|
||||
// Facilitate things: allow the user to Set the value from a string
|
||||
public function MakeRealValue($proposedValue, $oHostObj)
|
||||
@@ -3395,6 +3437,10 @@ class AttributePropertySet extends AttributeTable
|
||||
$sRes .= "<TBODY>";
|
||||
foreach($value as $sProperty => $sValue)
|
||||
{
|
||||
if ($sProperty == 'auth_pwd')
|
||||
{
|
||||
$sValue = '*****';
|
||||
}
|
||||
$sRes .= "<TR>";
|
||||
$sCell = str_replace("\n", "<br>\n", Str::pure2html((string)$sValue));
|
||||
$sRes .= "<TD class=\"label\">$sProperty</TD><TD>$sCell</TD>";
|
||||
@@ -3404,6 +3450,53 @@ class AttributePropertySet extends AttributeTable
|
||||
$sRes .= "</TABLE>";
|
||||
return $sRes;
|
||||
}
|
||||
|
||||
public function GetAsCSV($value, $sSeparator = ',', $sTextQualifier = '"', $oHostObject = null)
|
||||
{
|
||||
if (count($value) == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
$aRes = array();
|
||||
foreach($value as $sProperty => $sValue)
|
||||
{
|
||||
if ($sProperty == 'auth_pwd')
|
||||
{
|
||||
$sValue = '*****';
|
||||
}
|
||||
$sFrom = array(',', '=');
|
||||
$sTo = array('\,', '\=');
|
||||
$aRes[] = $sProperty.'='.str_replace($sFrom, $sTo, (string)$sValue);
|
||||
}
|
||||
$sRaw = implode(',', $aRes);
|
||||
|
||||
$sFrom = array("\r\n", $sTextQualifier);
|
||||
$sTo = array("\n", $sTextQualifier.$sTextQualifier);
|
||||
$sEscaped = str_replace($sFrom, $sTo, $sRaw);
|
||||
return $sTextQualifier.$sEscaped.$sTextQualifier;
|
||||
}
|
||||
|
||||
public function GetAsXML($value, $oHostObject = null)
|
||||
{
|
||||
if (count($value) == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
$sRes = "";
|
||||
foreach($value as $sProperty => $sValue)
|
||||
{
|
||||
if ($sProperty == 'auth_pwd')
|
||||
{
|
||||
$sValue = '*****';
|
||||
}
|
||||
$sRes .= "<property id=\"$sProperty\">";
|
||||
$sRes .= Str::pure2xml((string)$sValue);
|
||||
$sRes .= "</property>";
|
||||
}
|
||||
return $sRes;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -401,7 +401,13 @@ class BulkChange
|
||||
if ($sAttCode == 'id') continue;
|
||||
|
||||
$oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode);
|
||||
if ($oAttDef->IsLinkSet() && $oAttDef->IsIndirect())
|
||||
$aReasons = array();
|
||||
$iFlags = $oTargetObj->GetAttributeFlags($sAttCode, $aReasons);
|
||||
if ( (($iFlags & OPT_ATT_READONLY) == OPT_ATT_READONLY) && ( $oTargetObj->Get($sAttCode) != $aRowData[$iCol]) )
|
||||
{
|
||||
$aErrors[$sAttCode] = "the attribute '$sAttCode' is read-only and cannot be modified (current value: ".$oTargetObj->Get($sAttCode).", proposed value: {$aRowData[$iCol]}).";
|
||||
}
|
||||
else if ($oAttDef->IsLinkSet() && $oAttDef->IsIndirect())
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -197,6 +197,14 @@ class Config
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => false,
|
||||
),
|
||||
'csv_import_history_display' => array(
|
||||
'type' => 'bool',
|
||||
'description' => 'Display the history tab in the import wizard',
|
||||
'default' => true,
|
||||
'value' => true,
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'access_mode' => array(
|
||||
'type' => 'integer',
|
||||
'description' => 'Combination of flags (ACCESS_USER_WRITE | ACCESS_ADMIN_WRITE, or ACCESS_FULL)',
|
||||
@@ -400,6 +408,15 @@ class Config
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'cas_update_profiles' => array(
|
||||
'type' => 'bool',
|
||||
'description' => 'Whether or not to update the profiles of an existing user from the CAS information',
|
||||
// examples... not used (nor 'description')
|
||||
'default' => 0,
|
||||
'value' => 0,
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'cas_profile_pattern' => array(
|
||||
'type' => 'string',
|
||||
'description' => 'A regular expression pattern to extract the name of the iTop profile from the name of an LDAP/CAS group',
|
||||
@@ -409,6 +426,15 @@ class Config
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'cas_default_profiles' => array(
|
||||
'type' => 'string',
|
||||
'description' => 'A semi-colon separated list of iTop Profiles to use when creating a new user if no profile is retrieved from CAS',
|
||||
// examples... not used (nor 'description')
|
||||
'default' => 'Portal user',
|
||||
'value' => 'Portal user',
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'cas_debug' => array(
|
||||
'type' => 'bool',
|
||||
'description' => 'Activate the CAS debug',
|
||||
@@ -445,6 +471,15 @@ class Config
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => true,
|
||||
),
|
||||
'complex_actions_limit' => array(
|
||||
'type' => 'integer',
|
||||
'description' => 'Display the "actions" menu items that require long computation only if the list of objects is contains less objects than this number (0 means no limit)',
|
||||
// examples... not used
|
||||
'default' => 50,
|
||||
'value' => 50,
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => false,
|
||||
),
|
||||
);
|
||||
|
||||
public function IsProperty($sPropCode)
|
||||
|
||||
@@ -302,30 +302,53 @@ abstract class DBObject
|
||||
$this->Reload();
|
||||
}
|
||||
|
||||
if ($oAttDef->IsExternalKey() && is_object($value))
|
||||
if ($oAttDef->IsExternalKey())
|
||||
{
|
||||
// Setting an external key with a whole object (instead of just an ID)
|
||||
// let's initialize also the external fields that depend on it
|
||||
// (useful when building objects in memory and not from a query)
|
||||
if ( (get_class($value) != $oAttDef->GetTargetClass()) && (!is_subclass_of($value, $oAttDef->GetTargetClass())))
|
||||
if (is_object($value))
|
||||
{
|
||||
throw new CoreUnexpectedValue("Trying to set the value of '$sAttCode', to an object of class '".get_class($value)."', whereas it's an ExtKey to '".$oAttDef->GetTargetClass()."'. Ignored");
|
||||
// Setting an external key with a whole object (instead of just an ID)
|
||||
// let's initialize also the external fields that depend on it
|
||||
// (useful when building objects in memory and not from a query)
|
||||
if ( (get_class($value) != $oAttDef->GetTargetClass()) && (!is_subclass_of($value, $oAttDef->GetTargetClass())))
|
||||
{
|
||||
throw new CoreUnexpectedValue("Trying to set the value of '$sAttCode', to an object of class '".get_class($value)."', whereas it's an ExtKey to '".$oAttDef->GetTargetClass()."'. Ignored");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->m_aCurrValues[$sAttCode] = $value->GetKey();
|
||||
foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sCode => $oDef)
|
||||
{
|
||||
if ($oDef->IsExternalField() && ($oDef->GetKeyAttCode() == $sAttCode))
|
||||
{
|
||||
$this->m_aCurrValues[$sCode] = $value->Get($oDef->GetExtAttCode());
|
||||
}
|
||||
}
|
||||
$this->m_aCurrValues[$sAttCode.'_friendlyname'] = $value->GetName();
|
||||
}
|
||||
}
|
||||
else
|
||||
else if ($this->m_aCurrValues[$sAttCode] != $value)
|
||||
{
|
||||
// The object has changed, reset caches
|
||||
$this->m_bCheckStatus = null;
|
||||
$this->m_aAsArgs = null;
|
||||
|
||||
$this->m_aCurrValues[$sAttCode] = $value->GetKey();
|
||||
// If the external key changed, invalidate all the external fields (and friendly name) related to this external key
|
||||
$this->m_aCurrValues[$sAttCode] = $value;
|
||||
foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sCode => $oDef)
|
||||
{
|
||||
if ($oDef->IsExternalField() && ($oDef->GetKeyAttCode() == $sAttCode))
|
||||
{
|
||||
$this->m_aCurrValues[$sCode] = $value->Get($oDef->GetExtAttCode());
|
||||
unset($this->m_aLoadedAtt[$sCode]);
|
||||
$this->m_aCurrValues[$sCode] = null;
|
||||
}
|
||||
}
|
||||
$this->m_aCurrValues[$sAttCode.'_friendlyname'] = null;
|
||||
unset($this->m_aLoadedAtt[$sAttCode.'_friendlyname']);
|
||||
}
|
||||
|
||||
// The object has changed, reset caches
|
||||
$this->m_bCheckStatus = null;
|
||||
$this->m_aAsArgs = null;
|
||||
|
||||
// Make sure we do not reload it anymore... before saving it
|
||||
$this->RegisterAsDirty();
|
||||
|
||||
return;
|
||||
}
|
||||
if(!$oAttDef->IsScalar() && !is_object($value))
|
||||
@@ -400,10 +423,60 @@ abstract class DBObject
|
||||
{
|
||||
throw new CoreException("Unknown attribute code '$sAttCode' for the class ".get_class($this));
|
||||
}
|
||||
if ($this->m_bIsInDB && !isset($this->m_aLoadedAtt[$sAttCode]) && !$this->m_bDirty)
|
||||
if ($this->m_bIsInDB && !isset($this->m_aLoadedAtt[$sAttCode]))
|
||||
{
|
||||
// #@# non-scalar attributes.... handle that differently
|
||||
$this->Reload();
|
||||
if (!$this->m_bDirty)
|
||||
{
|
||||
$this->Reload();
|
||||
}
|
||||
else
|
||||
{
|
||||
// If the missing attribute is an external fields (or a friendlyname), try to selectively reload it
|
||||
// from the value of its external key... and reload the related external fields & friendlyname as well
|
||||
$sTargetClass = '';
|
||||
$iCurrKey = 0;
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
|
||||
if ($oAttDef->IsExternalField())
|
||||
{
|
||||
$sKeyAttCode = $oAttDef->GetKeyAttCode();
|
||||
$iCurrKey = $this->m_aCurrValues[$oAttDef->GetKeyAttCode()];
|
||||
$sTargetClass= $oAttDef->GetTargetClass();
|
||||
}
|
||||
else if ($oAttDef instanceof AttributeFriendlyName)
|
||||
{
|
||||
$sKeyAttCode = $oAttDef->GetKeyAttCode();
|
||||
$oKeyAttDef = MetaModel::GetAttributeDef(get_class($this), $sKeyAttCode);
|
||||
$iCurrKey = $this->m_aCurrValues[$oAttDef->GetKeyAttCode()];
|
||||
$sTargetClass = $oKeyAttDef->GetTargetClass();
|
||||
}
|
||||
|
||||
if (($sTargetClass != '') && ($iCurrKey != 0))
|
||||
{
|
||||
$oTargetObj = MetaModel::GetObject($sTargetClass, $iCurrKey, false);
|
||||
if (is_object($oTargetObj))
|
||||
{
|
||||
foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sCode => $oDef)
|
||||
{
|
||||
if ($oDef->IsExternalField() && ($oDef->GetKeyAttCode() == $sKeyAttCode))
|
||||
{
|
||||
$this->m_aLoadedAtt[$sCode] = true;
|
||||
$this->m_aCurrValues[$sCode] = $oTargetObj->Get($oDef->GetExtAttCode());
|
||||
}
|
||||
}
|
||||
if ($oAttDef instanceof AttributeFriendlyName)
|
||||
{
|
||||
$this->m_aLoadedAtt[$sAttCode] = true;
|
||||
$this->m_aCurrValues[$sAttCode] = $oTargetObj->GetName();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->m_aLoadedAtt[$sKeyAttCode.'_friendlyname'] = true;
|
||||
$this->m_aCurrValues[$sKeyAttCode.'_friendlyname'] = $oTargetObj->GetName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$value = $this->m_aCurrValues[$sAttCode];
|
||||
if ($value instanceof DBObjectSet)
|
||||
@@ -981,30 +1054,35 @@ abstract class DBObject
|
||||
$aDelta = array();
|
||||
foreach ($aProposal as $sAtt => $proposedValue)
|
||||
{
|
||||
if (!array_key_exists($sAtt, $this->m_aOrigValues))
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAtt);
|
||||
// Ignore external fields and friendly names that change only as a consequence of modifying another field
|
||||
if ((!$oAttDef->IsExternalField() && !($oAttDef instanceof AttributeFriendlyName)))
|
||||
{
|
||||
// The value was not set
|
||||
$aDelta[$sAtt] = $proposedValue;
|
||||
}
|
||||
elseif(is_object($proposedValue))
|
||||
{
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef(get_class($this), $sAtt);
|
||||
// The value is an object, the comparison is not strict
|
||||
if (!$oLinkAttDef->Equals($proposedValue, $this->m_aOrigValues[$sAtt]))
|
||||
if (!array_key_exists($sAtt, $this->m_aOrigValues))
|
||||
{
|
||||
// The value was not set
|
||||
$aDelta[$sAtt] = $proposedValue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// The value is a scalar, the comparison must be 100% strict
|
||||
if($this->m_aOrigValues[$sAtt] !== $proposedValue)
|
||||
{
|
||||
//echo "$sAtt:<pre>\n";
|
||||
//var_dump($this->m_aOrigValues[$sAtt]);
|
||||
//var_dump($proposedValue);
|
||||
//echo "</pre>\n";
|
||||
$aDelta[$sAtt] = $proposedValue;
|
||||
elseif(is_object($proposedValue))
|
||||
{
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef(get_class($this), $sAtt);
|
||||
// The value is an object, the comparison is not strict
|
||||
if (!$oLinkAttDef->Equals($proposedValue, $this->m_aOrigValues[$sAtt]))
|
||||
{
|
||||
$aDelta[$sAtt] = $proposedValue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// The value is a scalar, the comparison must be 100% strict
|
||||
if($this->m_aOrigValues[$sAtt] !== $proposedValue)
|
||||
{
|
||||
//echo "$sAtt:<pre>\n";
|
||||
//var_dump($this->m_aOrigValues[$sAtt]);
|
||||
//var_dump($proposedValue);
|
||||
//echo "</pre>\n";
|
||||
$aDelta[$sAtt] = $proposedValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1656,7 +1734,7 @@ abstract class DBObject
|
||||
// #@# Note: This has been proven to be quite slow, this can slow down bulk load
|
||||
$sAsHtml = $this->GetAsHtml($sAttCode);
|
||||
$aScalarArgs[$sArgName.'->html('.$sAttCode.')'] = $sAsHtml;
|
||||
$aScalarArgs[$sArgName.'->label('.$sAttCode.')'] = strip_tags($sAsHtml);
|
||||
$aScalarArgs[$sArgName.'->label('.$sAttCode.')'] = $this->GetEditValue($sAttCode); // "Nice" display value, but without HTML tags and entities
|
||||
}
|
||||
// Do something for case logs... quick N' dirty...
|
||||
if ($aScalarArgs[$sArgName.'->'.$sAttCode] instanceof ormCaseLog)
|
||||
|
||||
@@ -174,7 +174,7 @@ class EventNotificationEmail extends EventNotification
|
||||
MetaModel::Init_AddAttribute(new AttributeText("bcc", array("allowed_values"=>null, "sql"=>"bcc", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeText("from", array("allowed_values"=>null, "sql"=>"from", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeText("subject", array("allowed_values"=>null, "sql"=>"subject", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeText("body", array("allowed_values"=>null, "sql"=>"body", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeHTML("body", array("allowed_values"=>null, "sql"=>"body", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
|
||||
// Display lists
|
||||
MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'message', 'trigger_id', 'action_id', 'object_id', 'to', 'cc', 'bcc', 'from', 'subject', 'body')); // Attributes to be displayed for the complete details
|
||||
|
||||
@@ -4328,7 +4328,15 @@ if (!array_key_exists($sAttCode, self::$m_aAttribDefs[$sClass]))
|
||||
|
||||
public static function MakeSingleRow($sClass, $iKey, $bMustBeFound = true, $bAllowAllData = false)
|
||||
{
|
||||
if (!array_key_exists($sClass, self::$aQueryCacheGetObject))
|
||||
// Build the query cache signature
|
||||
//
|
||||
$sQuerySign = $sClass;
|
||||
if($bAllowAllData)
|
||||
{
|
||||
$sQuerySign .= '_all_';
|
||||
}
|
||||
|
||||
if (!array_key_exists($sQuerySign, self::$aQueryCacheGetObject))
|
||||
{
|
||||
// NOTE: Quick and VERY dirty caching mechanism which relies on
|
||||
// the fact that the string '987654321' will never appear in the
|
||||
@@ -4343,13 +4351,13 @@ if (!array_key_exists($sAttCode, self::$m_aAttribDefs[$sClass]))
|
||||
}
|
||||
|
||||
$sSQL = self::MakeSelectQuery($oFilter);
|
||||
self::$aQueryCacheGetObject[$sClass] = $sSQL;
|
||||
self::$aQueryCacheGetObjectHits[$sClass] = 0;
|
||||
self::$aQueryCacheGetObject[$sQuerySign] = $sSQL;
|
||||
self::$aQueryCacheGetObjectHits[$sQuerySign] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$sSQL = self::$aQueryCacheGetObject[$sClass];
|
||||
self::$aQueryCacheGetObjectHits[$sClass] += 1;
|
||||
$sSQL = self::$aQueryCacheGetObject[$sQuerySign];
|
||||
self::$aQueryCacheGetObjectHits[$sQuerySign] += 1;
|
||||
// echo " -load $sClass/$iKey- ".self::$aQueryCacheGetObjectHits[$sClass]."<br/>\n";
|
||||
}
|
||||
$sSQL = str_replace(CMDBSource::Quote(987654321), CMDBSource::Quote($iKey), $sSQL);
|
||||
|
||||
@@ -168,7 +168,7 @@ class OQLLexerRaw
|
||||
'/\GABOVE STRICT/ ',
|
||||
'/\GNOT ABOVE/ ',
|
||||
'/\GNOT ABOVE STRICT/ ',
|
||||
'/\G[0-9]+|0x[0-9a-fA-F]+/ ',
|
||||
'/\G(0x[0-9a-fA-F]+|[0-9]+)/ ',
|
||||
'/\G\"([^\\\\\"]|\\\\\"|\\\\\\\\)*\"|'.chr(94).chr(39).'([^\\\\'.chr(39).']|\\\\'.chr(39).'|\\\\\\\\)*'.chr(39).'/ ',
|
||||
'/\G([_a-zA-Z][_a-zA-Z0-9]*|`[^`]+`)/ ',
|
||||
'/\G:([_a-zA-Z][_a-zA-Z0-9]*->[_a-zA-Z][_a-zA-Z0-9]*|[_a-zA-Z][_a-zA-Z0-9]*)/ ',
|
||||
|
||||
@@ -140,7 +140,23 @@ above = "ABOVE"
|
||||
above_strict = "ABOVE STRICT"
|
||||
not_above = "NOT ABOVE"
|
||||
not_above_strict = "NOT ABOVE STRICT"
|
||||
numval = /[0-9]+|0x[0-9a-fA-F]+/
|
||||
//
|
||||
// WARNING: there seems to be a bug in the Lexer about matching the longest pattern
|
||||
// when there are alternates in the regexp.
|
||||
//
|
||||
// For instance:
|
||||
// numval = /[0-9]+|0x[0-9a-fA-F]+/
|
||||
// Does not work: SELECT Toto WHERE name = 'Text0xCTest' => Fails because 0xC is recongnized as a numval (inside the string) instead of a strval !!
|
||||
//
|
||||
// Inserting a ^ after the alternate (see comment at the top of this file) does not work either
|
||||
// numval = /[0-9]+|'.chr(94).'0x[0-9a-fA-F]+/
|
||||
// SELECT Toto WHERE name = 'Text0xCTest' => works but
|
||||
// SELECT Toto WHERE id = 0xC => does not work, 'xC' is found as a name (apparently 0 is recognized as a numval and the remaining is a name !)
|
||||
//
|
||||
// numval = /([0-9]+|0x[0-9a-fA-F]+)/
|
||||
// Does not work either, the hexadecimal numbers are not matched properly
|
||||
// The following seems to work...
|
||||
numval = /(0x[0-9a-fA-F]+|[0-9]+)/
|
||||
strval = /"([^\\"]|\\"|\\\\)*"|'.chr(94).chr(39).'([^\\'.chr(39).']|\\'.chr(39).'|\\\\)*'.chr(39).'/
|
||||
name = /([_a-zA-Z][_a-zA-Z0-9]*|`[^`]+`)/
|
||||
varname = /:([_a-zA-Z][_a-zA-Z0-9]*->[_a-zA-Z][_a-zA-Z0-9]*|[_a-zA-Z][_a-zA-Z0-9]*)/
|
||||
|
||||
@@ -1041,6 +1041,7 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
*/
|
||||
public static function CheckCredentialsAndCreateUser($sName, $sPassword, $sLoginMode, $sAuthentication)
|
||||
{
|
||||
$bOk = true;
|
||||
if ($sLoginMode != 'cas') return false; // Must be authenticated via CAS
|
||||
|
||||
$sCASMemberships = MetaModel::GetConfig()->Get('cas_memberof');
|
||||
@@ -1066,24 +1067,49 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
phpCAS::log("Info: user if a member of the group: ".$sGroupName);
|
||||
$sGroupName = trim(iconv('UTF-8', 'ASCII//TRANSLIT', $sGroupName)); // Remove accents and spaces as well
|
||||
$aFilteredGroupNames[] = $sGroupName;
|
||||
if (in_array($sGroupName, $aCASMemberships))
|
||||
$bIsMember = false;
|
||||
foreach($aCASMemberships as $sCASPattern)
|
||||
{
|
||||
if (self::IsPattern($sCASPattern))
|
||||
{
|
||||
if (preg_match($sCASPattern, $sGroupName))
|
||||
{
|
||||
$bIsMember = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ($sPattern == $sGroupName)
|
||||
{
|
||||
$bIsMember = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($bIsMember)
|
||||
{
|
||||
$bCASUserSynchro = MetaModel::GetConfig()->Get('cas_user_synchro');
|
||||
if ($bCASUserSynchro)
|
||||
{
|
||||
// If needed create a new user for this email/profile
|
||||
phpCAS::log('Info: cas_user_synchro is ON');
|
||||
$bFound = self::CreateCASUser(phpCAS::getUser(), $aMemberOf);
|
||||
$bOk = self::CreateCASUser(phpCAS::getUser(), $aMemberOf);
|
||||
if($bOk)
|
||||
{
|
||||
$bFound = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
phpCAS::log("User ".phpCAS::getUser()." cannot be created in iTop. Logging off...");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
phpCAS::log('Info: cas_user_synchro is OFF');
|
||||
$bFound = true;
|
||||
}
|
||||
$bFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$bFound)
|
||||
if($bOk && !$bFound)
|
||||
{
|
||||
phpCAS::log("User ".phpCAS::getUser().", none of his/her groups (".implode('; ', $aFilteredGroupNames).") match any of the required groups: ".implode('; ', $aCASMemberships));
|
||||
}
|
||||
@@ -1125,7 +1151,8 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
*/
|
||||
public static function UpdateUser(User $oUser, $sLoginMode, $sAuthentication)
|
||||
{
|
||||
if (($sLoginMode == 'cas') && (phpCAS::hasAttribute('memberOf')))
|
||||
$bCASUpdateProfiles = MetaModel::GetConfig()->Get('cas_update_profiles');
|
||||
if (($sLoginMode == 'cas') && $bCASUpdateProfiles && (phpCAS::hasAttribute('memberOf')))
|
||||
{
|
||||
$aMemberOf = phpCAS::getAttribute('memberOf');
|
||||
if (!is_array($aMemberOf)) $aMemberOf = array($aMemberOf); // Just one entry, turn it into an array
|
||||
@@ -1163,7 +1190,7 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
{
|
||||
case 0:
|
||||
phpCAS::log("Error: found no contact with the email: '$sEmail'. Cannot create the user in iTop.");
|
||||
return;
|
||||
return false;
|
||||
|
||||
case 1:
|
||||
$oContact = $oSet->Fetch();
|
||||
@@ -1173,7 +1200,7 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
|
||||
default:
|
||||
phpCAS::log("Error: ".$oSet->Count()." contacts have the same email: '$sEmail'. Cannot create a user for this email.");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
$oUser = new UserExternal();
|
||||
@@ -1240,17 +1267,43 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
if (array_key_exists(strtolower($aMatches[1]), $aAllProfiles))
|
||||
{
|
||||
$aProfiles[] = $aAllProfiles[strtolower($aMatches[1])];
|
||||
phpCAS::log("Info: Adding the profile '{$aMatches[1]}' from CAS.");
|
||||
}
|
||||
else
|
||||
{
|
||||
phpCAS::log("Warning: {$aMatches[1]} is not a valid iTop profile (extracted from group name: '$sGroupName'). Ignored.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
phpCAS::log("Info: The CAS group '$sGroupName' does not seem to match an iTop pattern. Ignored.");
|
||||
}
|
||||
}
|
||||
if (count($aProfiles) == 0)
|
||||
{
|
||||
phpCAS::log("Error: no group name matches the pattern: '$sPattern'. The user '$sEmail' has no profiles in iTop, and therefore cannot be created.");
|
||||
return false;
|
||||
phpCAS::log("Info: The user '".$oUser->GetName()."' has no profiles retrieved from CAS. Default profile(s) will be used.");
|
||||
|
||||
// Second attempt: check if there is/are valid default profile(s)
|
||||
$sCASDefaultProfiles = MetaModel::GetConfig()->Get('cas_default_profiles');
|
||||
$aCASDefaultProfiles = explode(';', $sCASDefaultProfiles);
|
||||
foreach($aCASDefaultProfiles as $sDefaultProfileName)
|
||||
{
|
||||
if (array_key_exists(strtolower($sDefaultProfileName), $aAllProfiles))
|
||||
{
|
||||
$aProfiles[] = $aAllProfiles[strtolower($sDefaultProfileName)];
|
||||
phpCAS::log("Info: Adding the default profile '".$aAllProfiles[strtolower($sDefaultProfileName)]."' from CAS.");
|
||||
}
|
||||
else
|
||||
{
|
||||
phpCAS::log("Warning: the default profile {$sDefaultProfileName} is not a valid iTop profile. Ignored.");
|
||||
}
|
||||
}
|
||||
|
||||
if (count($aProfiles) == 0)
|
||||
{
|
||||
phpCAS::log("Error: The user '".$oUser->GetName()."' has no profiles in iTop, and therefore cannot be created.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Now synchronize the profiles
|
||||
@@ -1263,7 +1316,23 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
$oProfilesSet->AddObject($oLink);
|
||||
}
|
||||
$oUser->Set('profile_list', $oProfilesSet);
|
||||
phpCAS::log("Info: the user $sEmail (id=".$oUser->GetKey().") now has the following profiles: '".implode("', '", $aProfiles)."'.");
|
||||
phpCAS::log("Info: the user '".$oUser->GetName()."' (id=".$oUser->GetKey().") now has the following profiles: '".implode("', '", $aProfiles)."'.");
|
||||
if ($oUser->IsModified())
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$oMyChange->Set("userinfo", 'CAS/LDAP Synchro');
|
||||
$oMyChange->DBInsert();
|
||||
if ($oUser->IsNew())
|
||||
{
|
||||
$oUser->DBInsertTracked($oMyChange);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oUser->DBUpdateTracked($oMyChange);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -284,6 +284,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Class:SynchroReplica/Attribute:status_last_warning' => 'Letzte Warnung',
|
||||
'Class:SynchroReplica/Attribute:info_creation_date' => 'Erzeugungs-Datum',
|
||||
'Class:SynchroReplica/Attribute:info_last_modified' => 'Datum der letzten Modifikation',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name' => 'Datenbanktabelle',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name+' => 'Name der Tabelle, die Speicherung der Daten aus dieser Datenquelle. Ein Default-Name wird automatisch berechnet, wenn dieses Feld leer gelassen wird.',
|
||||
'Class:SynchroDataSource/Error:DataTableAlreadyExists' => 'Tabelle %1$s existiert bereits in der Datenbank. Bitte benutzen Sie einen anderen Namen für die Datenbanktabelle aus dieser Datenquelle.',
|
||||
'Class:appUserPreferences' => 'Benutzer-Voreinstellungen',
|
||||
'Class:appUserPreferences/Attribute:userid' => 'Benutzer',
|
||||
'Class:appUserPreferences/Attribute:preferences' => 'Voreinstellungen',
|
||||
|
||||
@@ -570,6 +570,8 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:SynchroDataSource/Attribute:delete_policy_update+' => 'Syntax: field_name:value; ...',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy_retention' => 'Retention Duration',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy_retention+' => 'How much time an obsolete object is kept before being deleted',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name' => 'Data table',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name+' => 'Name of the table to store the synchronization data. If left empty, a default name will be computed.',
|
||||
'SynchroDataSource:Description' => 'Description',
|
||||
'SynchroDataSource:Reconciliation' => 'Search & reconciliation',
|
||||
'SynchroDataSource:Deletion' => 'Deletion rules',
|
||||
@@ -618,6 +620,7 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:SynchroDataSource/Error:AtLeastOneReconciliationKeyMustBeSpecified' => 'At Least one reconciliation key must be specified, or the reconciliation policy must be to use the primary key.',
|
||||
'Class:SynchroDataSource/Error:DeleteRetentionDurationMustBeSpecified' => 'A delete retention period must be specified, since objects are to be deleted after being marked as obsolete',
|
||||
'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => 'Obsolete objects are to be updated, but no update is specified.',
|
||||
'Class:SynchroDataSource/Error:DataTableAlreadyExists' => 'The table %1$s already exists in the database. Please use another name for the synchro data table.',
|
||||
'Core:SynchroReplica:PublicData' => 'Public Data',
|
||||
'Core:SynchroReplica:PrivateDetails' => 'Private Details',
|
||||
'Core:SynchroReplica:BackToDataSource' => 'Go Back to the Synchro Data Source: %1$s',
|
||||
|
||||
@@ -280,6 +280,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Class:SynchroDataSource/Attribute:url_icon+' => 'Hyperlien vers une icône représentant l\'application source des données',
|
||||
'Class:SynchroDataSource/Attribute:url_application' => 'Application (hyperlien)',
|
||||
'Class:SynchroDataSource/Attribute:url_application+' => 'Un hyperlien vers l\'application source des données. Paramètres possibles: $this->nom_de_champ$ et $replica->primary_key$',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name' => 'Table de données',
|
||||
'Class:SynchroDataSource/Attribute:database_table_name+' => 'Nom de la table stockant les données de cette source. Un nom par défaut est calculé automatiquement si ce champ est laissé vide.',
|
||||
'Class:SynchroAttribute' => 'Champs de synchronisation',
|
||||
'Class:SynchroAttribute+' => '',
|
||||
'Class:SynchroAttribute/Attribute:sync_source_id' => 'Source de données',
|
||||
@@ -587,6 +589,7 @@ Opérateurs :<br/>
|
||||
'Class:SynchroDataSource/Error:AtLeastOneReconciliationKeyMustBeSpecified' => 'Si la politique de réconciliation n\'est pas la clé primaire, au moins une clé de recherche doit être spécifiée',
|
||||
'Class:SynchroDataSource/Error:DeleteRetentionDurationMustBeSpecified' => 'Pour que les objets soient effacés après avoir été obsoletés, il faut spécifier une durée de rétention',
|
||||
'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => 'Les objets obsolètes doivent être mis à jour, mais aucune information de mise à jour n\'est spécifiée',
|
||||
'Class:SynchroDataSource/Error:DataTableAlreadyExists' => 'La table %1$s existe déjà dans la base de données. Veuillez utiliser un autre nom pour la table des données de cette source.',
|
||||
'Core:SynchroReplica:PublicData' => 'Données synchronisées',
|
||||
'Core:SynchroReplica:PrivateDetails' => 'Informations internes',
|
||||
'Core:SynchroReplica:BackToDataSource' => 'Retourner aux détails de la source de données: %1$s',
|
||||
@@ -602,7 +605,7 @@ Opérateurs :<br/>
|
||||
'Core:SynchroAtt:update_policy+' => '',
|
||||
'Core:SynchroAtt:reconciliation_attcode' => 'Clé de recherche',
|
||||
'Core:SynchroAtt:reconciliation_attcode+' => '',
|
||||
'Core:SyncDataExchangeComment' => '(Synhcronisation)',
|
||||
'Core:SyncDataExchangeComment' => '(Synchronisation)',
|
||||
'Core:Synchro:ListOfDataSources' => 'Sources de données:',
|
||||
'Core:Synchro:LastSynchro' => 'Dernière synchronisation:',
|
||||
'Core:Synchro:ThisObjectIsSynchronized' => 'Cet objet est synchronisé avec une source de données',
|
||||
|
||||
@@ -47,7 +47,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Core:AttributeClass+' => 'クラス',
|
||||
|
||||
'Core:AttributeApplicationLanguage' => '使用言語',
|
||||
'Core:AttributeApplicationLanguage+' => '言語・国別 (EN US)',
|
||||
'Core:AttributeApplicationLanguage+' => '言語・国別 (JA JP)',
|
||||
|
||||
'Core:AttributeFinalClass' => 'クラス (自動)',
|
||||
'Core:AttributeFinalClass+' => 'オブジェクトの実クラス (コアで自動的に生成される)',
|
||||
@@ -85,14 +85,38 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Core:AttributeTemplateHTML' => 'テンプレートHTML',
|
||||
'Core:AttributeTemplateHTML+' => 'プレースホルダを含むHTML',
|
||||
|
||||
'Core:AttributeWikiText' => 'Wikiアーティクル',
|
||||
'Core:AttributeWikiText+' => 'Wikiフォーマット済みテキスト',
|
||||
|
||||
'Core:AttributeDateTime' => '日付/時刻',
|
||||
'Core:AttributeDateTime+' => '日付と時刻(年-月-日 hh:mm:ss)',
|
||||
'Core:AttributeDateTime?SmartSearch' => '
|
||||
<p>
|
||||
Date format:<br/>
|
||||
<b>yyyy-mm-dd hh:mm:ss</b><br/>
|
||||
例: 2011-07-19 18:40:00
|
||||
</p>
|
||||
<p>
|
||||
Operators:<br/>
|
||||
<b>></b><em>日付</em><br/>
|
||||
<b><</b><em>日付</em><br/>
|
||||
<b>[</b><em>日付</em>,<em>日付</em><b>]</b>
|
||||
</p>
|
||||
<p>
|
||||
もし、時刻がなければ、規定値 00:00:00となります。
|
||||
</p>',
|
||||
|
||||
'Core:AttributeDate' => '日付',
|
||||
'Core:AttributeDate+' => '日付 (年-月-日)',
|
||||
'Core:AttributeDate?SmartSearch' => '
|
||||
<p>
|
||||
日付フォーマット:<br/>
|
||||
<b>yyyy-mm-dd</b><br/>
|
||||
例: 2011-07-19
|
||||
</p>
|
||||
<p>
|
||||
演算子:<br/>
|
||||
<b>></b><em>日付</em><br/>
|
||||
<b><</b><em>日付</em><br/>
|
||||
<b>[</b><em>日付</em>,<em>日付</em><b>]</b>
|
||||
</p>',
|
||||
|
||||
'Core:AttributeDeadline' => '締切',
|
||||
'Core:AttributeDeadline+' => '日付, 現在時刻からの相対表示',
|
||||
@@ -107,7 +131,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Core:AttributeURL+' => '絶対URLもしくは相対URLのテキスト文字列',
|
||||
|
||||
'Core:AttributeBlob' => 'Blob',
|
||||
'Core:AttributeBlob+' => '任意のバイナリコンテンツ(ドキュメント)',
|
||||
'Core:AttributeBlob+' => '任意のバイナリコンテンツ(文書)',
|
||||
|
||||
'Core:AttributeOneWayPassword' => '一方向パスワード',
|
||||
'Core:AttributeOneWayPassword+' => '一方向暗号化(ハッシュ)パスワード',
|
||||
@@ -117,8 +141,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
|
||||
'Core:AttributePropertySet' => 'プロパティ',
|
||||
'Core:AttributePropertySet+' => '型づけされていないプロパティのリスト(名前とバリュー)',
|
||||
));
|
||||
|
||||
'Core:AttributeFriendlyName' => 'Friendly name',
|
||||
'Core:AttributeFriendlyName+' => 'Attribute created automatically ; the friendly name is computed after several attributes',
|
||||
|
||||
'Core:FriendlyName-Label' => 'Name',
|
||||
'Core:FriendlyName-Description' => 'Friendly name',
|
||||
|
||||
));
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Classes in 'core/cmdb'
|
||||
@@ -155,7 +185,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:CMDBChangeOp/Attribute:objclass+' => 'オブジェクトクラス',
|
||||
'Class:CMDBChangeOp/Attribute:objkey' => 'オブジェクトID',
|
||||
'Class:CMDBChangeOp/Attribute:objkey+' => 'オブジェクトID',
|
||||
'Class:CMDBChangeOp/Attribute:finalclass' => '型',
|
||||
'Class:CMDBChangeOp/Attribute:finalclass' => 'タイプ',
|
||||
'Class:CMDBChangeOp/Attribute:finalclass+' => '',
|
||||
));
|
||||
|
||||
@@ -164,8 +194,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:CMDBChangeOpCreate' => 'オブジェクト生成',
|
||||
'Class:CMDBChangeOpCreate+' => 'オブジェクト生成履歴',
|
||||
'Class:CMDBChangeOpCreate' => 'オブジェクト作成',
|
||||
'Class:CMDBChangeOpCreate+' => 'オブジェクト作成履歴',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -204,11 +234,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Change:ObjectCreated' => 'オブジェクトを生成しました',
|
||||
'Change:ObjectDeleted' => 'オブジェクトを削除しました',
|
||||
'Change:ObjectModified' => 'オブジェクトを更新しました',
|
||||
'Change:ObjectModified' => 'オブジェクトを修正しました',
|
||||
'Change:AttName_SetTo_NewValue_PreviousValue_OldValue' => '%1$sを%2$sに設定しました (変更前の値: %3$s)',
|
||||
'Change:AttName_SetTo' => '%1$s は %2$sにセットされました。', // '%1$s set to %2$s',
|
||||
'Change:Text_AppendedTo_AttName' => '%1$sを%2$sに追加しました',
|
||||
'Change:AttName_Changed_PreviousValue_OldValue' => '%1$sを更新しました。更新前の値: %2$s',
|
||||
'Change:AttName_Changed' => '%1$sを更新しました',
|
||||
'Change:AttName_Changed_PreviousValue_OldValue' => '%1$sを変更しました。更新前の値: %2$s',
|
||||
'Change:AttName_Changed' => '%1$sを変更しました',
|
||||
'Change:AttName_EntryAdded' => '%1$s は、修正されました。新しいエントリーが追加されました。',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -218,8 +250,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:CMDBChangeOpSetAttributeBlob' => 'データ変更',
|
||||
'Class:CMDBChangeOpSetAttributeBlob+' => 'データ変更履歴',
|
||||
'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => '変更前のデータ', //'Previous data',
|
||||
'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => 'この属性の以前の内容', //'previous contents of the attribute',
|
||||
'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => '以前のデータ',
|
||||
'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => 'この属性の以前の内容',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -227,10 +259,10 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:CMDBChangeOpSetAttributeText' => 'テキストの変更', //'text change',
|
||||
'Class:CMDBChangeOpSetAttributeText+' => 'テキストの変更履歴', //'text change tracking',
|
||||
'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => '以前の内容', //'Previous data',
|
||||
'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => 'この属性の以前の内容', //'previous contents of the attribute',
|
||||
'Class:CMDBChangeOpSetAttributeText' => 'テキストの変更',
|
||||
'Class:CMDBChangeOpSetAttributeText+' => 'テキストの変更履歴',
|
||||
'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => '以前の内容',
|
||||
'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => 'この属性の以前の内容',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -238,15 +270,15 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:Event' => 'ログイベント',// 'Log Event',
|
||||
'Class:Event+' => 'アプリケーション内部イベント', //'An application internal event',
|
||||
'Class:Event/Attribute:message' => 'メッセージ', //'message',
|
||||
'Class:Event/Attribute:message+' => 'イベント概略', //'short description of the event',
|
||||
'Class:Event/Attribute:date' => '日付', //'date',
|
||||
'Class:Event/Attribute:date+' => '変更が記録された日時', //'date and time at which the changes have been recorded',
|
||||
'Class:Event/Attribute:userinfo' => 'ユーザ情報', //'user info',
|
||||
'Class:Event/Attribute:userinfo+' => 'このイベントをトリガーにアクションを起こすユーザの識別', //'identification of the user that was doing the action that triggered this event',
|
||||
'Class:Event/Attribute:finalclass' => '型', //'type',
|
||||
'Class:Event' => 'ログイベント',
|
||||
'Class:Event+' => 'アプリケーション内部イベント',
|
||||
'Class:Event/Attribute:message' => 'メッセージ',
|
||||
'Class:Event/Attribute:message+' => 'イベントの短い説明',
|
||||
'Class:Event/Attribute:date' => '日付',
|
||||
'Class:Event/Attribute:date+' => '変更が記録された日時',
|
||||
'Class:Event/Attribute:userinfo' => 'ユーザ情報',
|
||||
'Class:Event/Attribute:userinfo+' => 'このイベントをトリガーしたアクションを行ったユーザ',
|
||||
'Class:Event/Attribute:finalclass' => 'タイプ',
|
||||
'Class:Event/Attribute:finalclass+' => '',
|
||||
));
|
||||
|
||||
@@ -255,13 +287,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:EventNotification' => '通知イベント', // 'Notification event',
|
||||
'Class:EventNotification+' => '創出された通知のトレース', //'Trace of a notification that has been sent',
|
||||
'Class:EventNotification/Attribute:trigger_id' => 'トリガー', //'Trigger',
|
||||
'Class:EventNotification/Attribute:trigger_id+' => 'ユーザアカウント', //'user account',
|
||||
'Class:EventNotification/Attribute:action_id' => 'ユーザ', //'user',
|
||||
'Class:EventNotification/Attribute:action_id+' => 'ユーザアカウント', //'user account',
|
||||
'Class:EventNotification/Attribute:object_id' => 'オブジェクトID', //'Object id',
|
||||
'Class:EventNotification' => '通知イベント',
|
||||
'Class:EventNotification+' => '送信された通知のトレース',
|
||||
'Class:EventNotification/Attribute:trigger_id' => 'トリガー',
|
||||
'Class:EventNotification/Attribute:trigger_id+' => 'ユーザアカウント',
|
||||
'Class:EventNotification/Attribute:action_id' => 'ユーザ',
|
||||
'Class:EventNotification/Attribute:action_id+' => 'ユーザアカウント',
|
||||
'Class:EventNotification/Attribute:object_id' => 'オブジェクトID',
|
||||
'Class:EventNotification/Attribute:object_id+' => 'オブジェクトID(トリガーでクラスが定義済み?)', //'object id (class defined by the trigger ?)',
|
||||
));
|
||||
|
||||
@@ -269,8 +301,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
// Class: EventNotificationEmail
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array('Class:EventNotificationEmail' => 'メール送出イベント', //'Email emission event',
|
||||
'Class:EventNotificationEmail+' => '送出されたメールのトレース',//Trace of an email that has been sent',
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:EventNotificationEmail' => 'メール送出イベント',
|
||||
'Class:EventNotificationEmail+' => '送出されたメールのトレース',
|
||||
'Class:EventNotificationEmail/Attribute:to' => 'TO',
|
||||
'Class:EventNotificationEmail/Attribute:to+' => 'TO',
|
||||
'Class:EventNotificationEmail/Attribute:cc' => 'CC',
|
||||
@@ -278,34 +311,34 @@ Dict::Add('JA JP', 'Japanese', '日本語', array('Class:EventNotificationEmail'
|
||||
'Class:EventNotificationEmail/Attribute:bcc' => 'BCC',
|
||||
'Class:EventNotificationEmail/Attribute:bcc+' => 'BCC',
|
||||
'Class:EventNotificationEmail/Attribute:from' => 'From',
|
||||
'Class:EventNotificationEmail/Attribute:from+' => 'メール送信者', //'Sender of the message',
|
||||
'Class:EventNotificationEmail/Attribute:from+' => 'メール送信者',
|
||||
'Class:EventNotificationEmail/Attribute:subject' => 'Subject',
|
||||
'Class:EventNotificationEmail/Attribute:subject+' => 'Subject',
|
||||
'Class:EventNotificationEmail/Attribute:subject+' => '件名',
|
||||
'Class:EventNotificationEmail/Attribute:body' => 'Body',
|
||||
'Class:EventNotificationEmail/Attribute:body+' => 'Body',
|
||||
'Class:EventNotificationEmail/Attribute:body+' => '本文',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: EventIssue
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:EventIssue' => 'イシューイベント', //'Issue event',
|
||||
'Class:EventIssue+' => 'イシュー(警告、エラーetc)のトレース', //'Trace of an issue (warning, error, etc.)',
|
||||
'Class:EventIssue/Attribute:issue' => 'イシュー', //'Issue',
|
||||
'Class:EventIssue/Attribute:issue+' => '何が起こったか', //'What happened',
|
||||
'Class:EventIssue/Attribute:impact' => 'インパクト', //'Impact',
|
||||
'Class:EventIssue/Attribute:impact+' => 'その結果', //'What are the consequences',
|
||||
'Class:EventIssue/Attribute:page' => 'ページ', //'Page',
|
||||
'Class:EventIssue/Attribute:page+' => 'HTTPエントリポイント', //'HTTP entry point',
|
||||
'Class:EventIssue/Attribute:arguments_post' => 'POSTされた引数', //'Posted arguments',
|
||||
'Class:EventIssue/Attribute:arguments_post+' => 'HTTP POST引数', //'HTTP POST arguments',
|
||||
'Class:EventIssue/Attribute:arguments_get' => 'URLパラメータ', //'URL arguments',
|
||||
'Class:EventIssue/Attribute:arguments_get+' => 'HTTP GETパラメータ', //'HTTP GET arguments',
|
||||
'Class:EventIssue/Attribute:callstack' => 'コールスタック', //'Callstack',
|
||||
'Class:EventIssue/Attribute:callstack+' => 'スタックをコールする', //'Call stack',
|
||||
'Class:EventIssue/Attribute:data' => 'データ', //'Data',
|
||||
'Class:EventIssue/Attribute:data+' => '詳細情報', //'More information',
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:EventIssue' => '課題',
|
||||
'Class:EventIssue+' => '課題(警告、エラー、etc)のトレース',
|
||||
'Class:EventIssue/Attribute:issue' => '課題',
|
||||
'Class:EventIssue/Attribute:issue+' => '課題',
|
||||
'Class:EventIssue/Attribute:impact' => 'インパクト',
|
||||
'Class:EventIssue/Attribute:impact+' => 'その結果',
|
||||
'Class:EventIssue/Attribute:page' => 'ページ',
|
||||
'Class:EventIssue/Attribute:page+' => 'HTTPエントリポイント',
|
||||
'Class:EventIssue/Attribute:arguments_post' => 'POSTされた引数',
|
||||
'Class:EventIssue/Attribute:arguments_post+' => 'HTTP POST引数',
|
||||
'Class:EventIssue/Attribute:arguments_get' => 'URLパラメータ',
|
||||
'Class:EventIssue/Attribute:arguments_get+' => 'HTTP GETパラメータ',
|
||||
'Class:EventIssue/Attribute:callstack' => 'コールスタック',
|
||||
'Class:EventIssue/Attribute:callstack+' => 'スタックをコールする',
|
||||
'Class:EventIssue/Attribute:data' => 'データ',
|
||||
'Class:EventIssue/Attribute:data+' => '追加情報',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -313,20 +346,35 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:EventWebService' => 'ウェブサービスイベント', //'Web service event',
|
||||
'Class:EventWebService+' => 'ウェブサービス呼出のYトレース', //'Trace of an web service call',
|
||||
'Class:EventWebService/Attribute:verb' => '動詞', //'Verb',
|
||||
'Class:EventWebService/Attribute:verb+' => '操作名', //'Name of the operation',
|
||||
'Class:EventWebService/Attribute:result' => '結果', //'Result',
|
||||
'Class:EventWebService/Attribute:result+' => '総体的な成功/失敗', //'Overall success/failure',
|
||||
'Class:EventWebService/Attribute:log_info' => 'インフォログ', //'Info log',
|
||||
'Class:EventWebService/Attribute:log_info+' => 'インフォログの結果', //'Result info log',
|
||||
'Class:EventWebService/Attribute:log_warning' => 'ウォーニングログ', //'Warning log',
|
||||
'Class:EventWebService/Attribute:log_warning+' => 'ウォーニングログ結果', //'Result warning log',
|
||||
'Class:EventWebService/Attribute:log_error' => 'エラーログ', //'Error log',
|
||||
'Class:EventWebService/Attribute:log_error+' => 'エラーログ結果', //'Result error log',
|
||||
'Class:EventWebService/Attribute:data' => 'データ', //'Data',
|
||||
'Class:EventWebService/Attribute:data+' => 'データ結果', //'Result data',
|
||||
'Class:EventWebService' => 'ウェブサービスイベント',
|
||||
'Class:EventWebService+' => 'ウェブサービス呼出のトレース',
|
||||
'Class:EventWebService/Attribute:verb' => '動作',
|
||||
'Class:EventWebService/Attribute:verb+' => '操作名',
|
||||
'Class:EventWebService/Attribute:result' => '結果',
|
||||
'Class:EventWebService/Attribute:result+' => '総体的な成功/失敗',
|
||||
'Class:EventWebService/Attribute:log_info' => 'インフォログ',
|
||||
'Class:EventWebService/Attribute:log_info+' => 'インフォログの結果',
|
||||
'Class:EventWebService/Attribute:log_warning' => 'ワーニンググ',
|
||||
'Class:EventWebService/Attribute:log_warning+' => 'ワーニングログ結果',
|
||||
'Class:EventWebService/Attribute:log_error' => 'エラーログ',
|
||||
'Class:EventWebService/Attribute:log_error+' => 'エラーログ結果',
|
||||
'Class:EventWebService/Attribute:data' => 'データ',
|
||||
'Class:EventWebService/Attribute:data+' => '結果データ',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: EventLoginUsage
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:EventLoginUsage' => 'ログイン方法',
|
||||
'Class:EventLoginUsage+' => 'アプリケーションへ接続します。',
|
||||
'Class:EventLoginUsage/Attribute:user_id' => 'ログイン',
|
||||
'Class:EventLoginUsage/Attribute:user_id+' => 'ログイン',
|
||||
'Class:EventLoginUsage/Attribute:contact_name' => 'ユーザ名',
|
||||
'Class:EventLoginUsage/Attribute:contact_name+' => 'ユーザ名',
|
||||
'Class:EventLoginUsage/Attribute:contact_email' => 'ユーザのEmail',
|
||||
'Class:EventLoginUsage/Attribute:contact_email+' => 'ユーザの電子メールアドレス',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -334,24 +382,24 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:Action' => 'カスタムアクション', //'Custom Action',
|
||||
'Class:Action+' => 'ユーザ定義アクション', //'User defined action',
|
||||
'Class:Action/Attribute:name' => '名前', //'Name',
|
||||
'Class:Action' => 'カスタムアクション',
|
||||
'Class:Action+' => 'ユーザ定義アクション',
|
||||
'Class:Action/Attribute:name' => '名前',
|
||||
'Class:Action/Attribute:name+' => '',
|
||||
'Class:Action/Attribute:description' => '概要', //'Description',
|
||||
'Class:Action/Attribute:description' => '説明',
|
||||
'Class:Action/Attribute:description+' => '',
|
||||
'Class:Action/Attribute:status' => 'ステータス', //'Status',
|
||||
'Class:Action/Attribute:status+' => '製品化済み、あるいは?', //'In production or ?',
|
||||
'Class:Action/Attribute:status/Value:test' => 'テスト済み', //'Being tested',
|
||||
'Class:Action/Attribute:status/Value:test+' => 'テスト済み', //'Being tested',
|
||||
'Class:Action/Attribute:status/Value:enabled' => '製品化済み', //'In production',
|
||||
'Class:Action/Attribute:status/Value:enabled+' => '製品化済み', //'In production',
|
||||
'Class:Action/Attribute:status/Value:disabled' => '非アクティブ', //'Inactive',
|
||||
'Class:Action/Attribute:status/Value:disabled+' => '非アクティブ', //'Inactive',
|
||||
'Class:Action/Attribute:trigger_list' => '関連トリガ', //'Related Triggers',
|
||||
'Class:Action/Attribute:trigger_list+' => 'このアクションにリンクされたトリガ', //'Triggers linked to this action',
|
||||
'Class:Action/Attribute:finalclass' => '型', //'Type',
|
||||
'Class:Action/Attribute:finalclass+' => '',
|
||||
'Class:Action/Attribute:status' => '状態',
|
||||
'Class:Action/Attribute:status+' => '稼働中、あるいは?',
|
||||
'Class:Action/Attribute:status/Value:test' => 'テスト中',
|
||||
'Class:Action/Attribute:status/Value:test+' => 'テスト中',
|
||||
'Class:Action/Attribute:status/Value:enabled' => '稼働中',
|
||||
'Class:Action/Attribute:status/Value:enabled+' => '稼働中',
|
||||
'Class:Action/Attribute:status/Value:disabled' => '非アクティブ',
|
||||
'Class:Action/Attribute:status/Value:disabled+' => '非アクティブ',
|
||||
'Class:Action/Attribute:trigger_list' => '関連トリガー',
|
||||
'Class:Action/Attribute:trigger_list+' => 'このアクションにリンクされたトリガー',
|
||||
'Class:Action/Attribute:finalclass' => 'タイプ',
|
||||
'Class:Action/Attribute:finalclass+' => 'タイプ',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -359,8 +407,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:ActionNotification' => 'ノーティフィケーション', //'Notification',
|
||||
'Class:ActionNotification+' => 'ノーティフィケーション(抽象)', //'Notification (abstract)',
|
||||
'Class:ActionNotification' => '通知',
|
||||
'Class:ActionNotification+' => '通知(要約)',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -368,31 +416,31 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:ActionEmail' => 'メール通知', //'Email notification',
|
||||
'Class:ActionEmail' => 'メール通知',
|
||||
'Class:ActionEmail+' => '',
|
||||
'Class:ActionEmail/Attribute:test_recipient' => 'テストレシピ', //'Test recipient',
|
||||
'Class:ActionEmail/Attribute:test_recipient+' => 'Detination in case status is set to "Test"',
|
||||
'Class:ActionEmail/Attribute:test_recipient' => 'テストレシピ',
|
||||
'Class:ActionEmail/Attribute:test_recipient+' => '状態がテストの場合の宛先',
|
||||
'Class:ActionEmail/Attribute:from' => 'From',
|
||||
'Class:ActionEmail/Attribute:from+' => 'Will be sent into the email header',
|
||||
'Class:ActionEmail/Attribute:reply_to' => 'Reply to',
|
||||
'Class:ActionEmail/Attribute:reply_to+' => 'Will be sent into the email header',
|
||||
'Class:ActionEmail/Attribute:to' => 'To',
|
||||
'Class:ActionEmail/Attribute:to+' => 'メールの宛先', //'Destination of the email',
|
||||
'Class:ActionEmail/Attribute:to+' => 'メールの宛先',
|
||||
'Class:ActionEmail/Attribute:cc' => 'Cc',
|
||||
'Class:ActionEmail/Attribute:cc+' => 'Carbon Copy',
|
||||
'Class:ActionEmail/Attribute:bcc' => 'bcc',
|
||||
'Class:ActionEmail/Attribute:bcc+' => 'Blind Carbon Copy',
|
||||
'Class:ActionEmail/Attribute:subject' => 'subject',
|
||||
'Class:ActionEmail/Attribute:subject+' => 'メールのタイトル', //'Title of the email',
|
||||
'Class:ActionEmail/Attribute:subject+' => 'メールの題名',
|
||||
'Class:ActionEmail/Attribute:body' => 'body',
|
||||
'Class:ActionEmail/Attribute:body+' => 'メールの本文', //'Contents of the email',
|
||||
'Class:ActionEmail/Attribute:importance' => 'importance',
|
||||
'Class:ActionEmail/Attribute:importance+' => '重要度フラグ', //'Importance flag',
|
||||
'Class:ActionEmail/Attribute:importance/Value:low' => 'low',
|
||||
'Class:ActionEmail/Attribute:body+' => 'メールの本文',
|
||||
'Class:ActionEmail/Attribute:importance' => '重要度',
|
||||
'Class:ActionEmail/Attribute:importance+' => '重要度フラグ',
|
||||
'Class:ActionEmail/Attribute:importance/Value:low' => '低',
|
||||
'Class:ActionEmail/Attribute:importance/Value:low+' => 'low',
|
||||
'Class:ActionEmail/Attribute:importance/Value:normal' => 'normal',
|
||||
'Class:ActionEmail/Attribute:importance/Value:normal' => '中',
|
||||
'Class:ActionEmail/Attribute:importance/Value:normal+' => 'normal',
|
||||
'Class:ActionEmail/Attribute:importance/Value:high' => 'high',
|
||||
'Class:ActionEmail/Attribute:importance/Value:high' => '高',
|
||||
'Class:ActionEmail/Attribute:importance/Value:high+' => 'high',
|
||||
));
|
||||
|
||||
@@ -401,14 +449,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:Trigger' => 'トリガー', //'Trigger',
|
||||
'Class:Trigger+' => 'カスタムイベントヘッダ', //'Custom event handler',
|
||||
'Class:Trigger/Attribute:description' => '概要', //'Description',
|
||||
'Class:Trigger/Attribute:description+' => '1行概要', //'one line description',
|
||||
'Class:Trigger/Attribute:action_list' => 'トリガされたアクション', //'Triggered actions',
|
||||
'Class:Trigger/Attribute:action_list+' => 'トリガが発火した場合に動作するアクション', //'Actions performed when the trigger is activated',
|
||||
'Class:Trigger/Attribute:finalclass' => '型', //'Type',
|
||||
'Class:Trigger/Attribute:finalclass+' => '',
|
||||
'Class:Trigger' => 'トリガー',
|
||||
'Class:Trigger+' => 'カスタムイベントハンドラー',
|
||||
'Class:Trigger/Attribute:description' => '説明',
|
||||
'Class:Trigger/Attribute:description+' => '1行の説明',
|
||||
'Class:Trigger/Attribute:action_list' => 'トリガーされたアクション',
|
||||
'Class:Trigger/Attribute:action_list+' => 'トリガーが発行された場合に動作するアクション',
|
||||
'Class:Trigger/Attribute:finalclass' => 'タイプ',
|
||||
'Class:Trigger/Attribute:finalclass+' => 'Type',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -416,21 +464,30 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnObject' => 'トリガ(クラス依存)', //'Trigger (class dependent)',
|
||||
'Class:TriggerOnObject+' => '指定オブジェクトのクラスへのトリガ', //'Trigger on a given class of objects',
|
||||
'Class:TriggerOnObject/Attribute:target_class' => 'ターゲットクラス', //'Target class',
|
||||
'Class:TriggerOnObject' => 'トリガー(クラス依存)',
|
||||
'Class:TriggerOnObject+' => 'オブジェクトの指定されたクラスのトリガー',
|
||||
'Class:TriggerOnObject/Attribute:target_class' => 'ターゲットクラス',
|
||||
'Class:TriggerOnObject/Attribute:target_class+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: TriggerOnPortalUpdate
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnPortalUpdate' => 'トリガー(ポータルから更新された時)',
|
||||
'Class:TriggerOnPortalUpdate+' => 'エンドユーザがポータルから更新した場合のトリガー',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: TriggerOnStateChange
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnStateChange' => '(状態変更の)トリガ', // Trigger (on state change)',
|
||||
'Class:TriggerOnStateChange+' => 'オブジェクト状態変更のトリガ', //'Trigger on object state change',
|
||||
'Class:TriggerOnStateChange/Attribute:state' => '状態', //'State',
|
||||
'Class:TriggerOnStateChange/Attribute:state+' => '',
|
||||
'Class:TriggerOnStateChange' => '(状態変化の)トリガー',
|
||||
'Class:TriggerOnStateChange+' => 'オブジェクトの状態変化のトリガー',
|
||||
'Class:TriggerOnStateChange/Attribute:state' => '状態',
|
||||
'Class:TriggerOnStateChange/Attribute:state+' => 'State',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -438,8 +495,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnStateEnter' => 'トリガ(ある状態に入る)', // 'Trigger (on entering a state)',
|
||||
'Class:TriggerOnStateEnter+' => 'オブジェクト状態変更のトリガ: 入場', //'Trigger on object state change - entering',
|
||||
'Class:TriggerOnStateEnter' => '入状態トリガー',
|
||||
'Class:TriggerOnStateEnter+' => 'オブジェクトの状態へ入る変化(エンター,on entering a state)時のトリガー',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -447,8 +504,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnStateLeave' => '(ある状態から退場する)トリガ', // 'Trigger (on leaving a state)',
|
||||
'Class:TriggerOnStateLeave+' => 'オブジェクト状態変更のトリガ: 退場', //Trigger on object state change - leaving',
|
||||
'Class:TriggerOnStateLeave' => '出状態トリガー',
|
||||
'Class:TriggerOnStateLeave+' => 'オブジェクトの状態から出る変化(リーブ,on leaving a state)時のトリガー',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -456,8 +513,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:TriggerOnObjectCreate' => '(オブジェクト生成の)トリガ', //Trigger (on object creation)',
|
||||
'Class:TriggerOnObjectCreate+' => '指定されたクラスの(子クラスの)オブジェクト生成のトリガ', //Trigger on object creation of [a child class of] the given class',
|
||||
'Class:TriggerOnObjectCreate' => 'オブジェクト作成トリガー',
|
||||
'Class:TriggerOnObjectCreate+' => '指定されたクラスの(子クラスの)オブジェクト作成時のトリガ',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -465,19 +522,237 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:lnkTriggerAction' => 'アクション/トリガ', //'Action/Trigger',
|
||||
'Class:lnkTriggerAction+' => 'トリガとアクション間のリンク', //'Link between a trigger and an action',
|
||||
'Class:lnkTriggerAction/Attribute:action_id' => 'アクション', //'Action',
|
||||
'Class:lnkTriggerAction/Attribute:action_id+' => '実行されるべきアクション', //'The action to be executed',
|
||||
'Class:lnkTriggerAction/Attribute:action_name' => 'アクション', //'Action',
|
||||
'Class:lnkTriggerAction' => 'トリガ/アクション',
|
||||
'Class:lnkTriggerAction+' => 'トリガとアクション間のリンク',
|
||||
'Class:lnkTriggerAction/Attribute:action_id' => 'アクション',
|
||||
'Class:lnkTriggerAction/Attribute:action_id+' => '実行されるアクション',
|
||||
'Class:lnkTriggerAction/Attribute:action_name' => 'アクション',
|
||||
'Class:lnkTriggerAction/Attribute:action_name+' => '',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_id' => 'トリガ', //'Trigger',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_id' => 'トリガ',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_id+' => '',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_name' => 'トリガ', //'Trigger',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_name' => 'トリガ',
|
||||
'Class:lnkTriggerAction/Attribute:trigger_name+' => '',
|
||||
'Class:lnkTriggerAction/Attribute:order' => '処理順序', //'Order',
|
||||
'Class:lnkTriggerAction/Attribute:order+' => 'アクション実行順序', //'Actions execution order',
|
||||
'Class:lnkTriggerAction/Attribute:order' => '順序',
|
||||
'Class:lnkTriggerAction/Attribute:order+' => 'アクション実行順序',
|
||||
));
|
||||
|
||||
//
|
||||
// Synchro Data Source
|
||||
//
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:SynchroDataSource/Attribute:name' => '名前',
|
||||
'Class:SynchroDataSource/Attribute:name+' => '名前',
|
||||
'Class:SynchroDataSource/Attribute:description' => '説明',
|
||||
'Class:SynchroDataSource/Attribute:status' => '状態', //TODO: enum values
|
||||
'Class:SynchroDataSource/Attribute:scope_class' => 'ターゲットクラス',
|
||||
'Class:SynchroDataSource/Attribute:user_id' => 'ユーザ',
|
||||
'Class:SynchroDataSource/Attribute:notify_contact_id' => '通知する連絡先',
|
||||
'Class:SynchroDataSource/Attribute:notify_contact_id+' => 'エラーが発生した場合に通知する連絡先。',
|
||||
'Class:SynchroDataSource/Attribute:url_icon' => 'アイコンのハイパーリンク',
|
||||
'Class:SynchroDataSource/Attribute:url_icon+' => 'iTopが同期されたアプリケーションを示すハイパーリンク(小さな)イメージ',
|
||||
'Class:SynchroDataSource/Attribute:url_application' => 'アプリケーションのハイパーリンク',
|
||||
'Class:SynchroDataSource/Attribute:url_application+' => 'iTopが同期化された外部アプリケーションのiTopオブジェクトへのハイパーリンク(該当する場合)。可能なプレースホルダ: $this->attribute$ and $replica->primary_key$',
|
||||
'Class:SynchroDataSource/Attribute:reconciliation_policy' => '調整ポリシー', //TODO enum values
|
||||
'Class:SynchroDataSource/Attribute:full_load_periodicity' => '全データロードの間隔',
|
||||
'Class:SynchroDataSource/Attribute:full_load_periodicity+' => '全データの完全な再ロードを最低ここに指定されている間隔で行う必要があります。',
|
||||
'Class:SynchroDataSource/Attribute:action_on_zero' => '検索結果0件時のアクション',
|
||||
'Class:SynchroDataSource/Attribute:action_on_zero+' => '検索結果としてオブジェクトが何も返さない場合に実行されるアクション',
|
||||
'Class:SynchroDataSource/Attribute:action_on_one' => '検索結果1件時のアクション',
|
||||
'Class:SynchroDataSource/Attribute:action_on_one+' => '検索結果として一つのみのオブジェクトが返されたときに実行されるアクション',
|
||||
'Class:SynchroDataSource/Attribute:action_on_multiple' => '検索結果複数時のアクション',
|
||||
'Class:SynchroDataSource/Attribute:action_on_multiple+' => '検索結果として二つ以上のオブジェクトが返されたときに実行されるアクション',
|
||||
'Class:SynchroDataSource/Attribute:user_delete_policy' => '許可されたユーザ',
|
||||
'Class:SynchroDataSource/Attribute:user_delete_policy+' => '同期されたオブジェクトの削除が許可されたユーザ',
|
||||
// 'Class:SynchroDataSource/Attribute:user_delete_policy' => '許可されたユーザ', // double
|
||||
'Class:SynchroDataSource/Attribute:delete_policy/Value:never' => '誰もいない',//'Nobody',
|
||||
'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+' => '構文: フィールド名:値; ...',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy_retention' => '保持時間',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy_retention+' => '廃止されたオブジェクトを削除するまでに保持しておく時間',
|
||||
'SynchroDataSource:Description' => '説明',
|
||||
'SynchroDataSource:Reconciliation' => '検索と調整',
|
||||
'SynchroDataSource:Deletion' => '削除ルール',
|
||||
'SynchroDataSource:Status' => '状態',
|
||||
'SynchroDataSource:Information' => 'インフォメーション',
|
||||
'SynchroDataSource:Definition' => '定義',
|
||||
'Core:SynchroAttributes' => '属性',
|
||||
'Core:SynchroStatus' => '状態',
|
||||
'Core:Synchro:ErrorsLabel' => 'エラー',
|
||||
'Core:Synchro:CreatedLabel' => '作成',
|
||||
'Core:Synchro:ModifiedLabel' => '修正',
|
||||
'Core:Synchro:UnchangedLabel' => '無変更',
|
||||
'Core:Synchro:ReconciledErrorsLabel' => 'エラー',
|
||||
'Core:Synchro:ReconciledLabel' => '調整',
|
||||
'Core:Synchro:ReconciledNewLabel' => '新',
|
||||
'Core:SynchroReconcile:Yes' => 'はい',
|
||||
'Core:SynchroReconcile:No' => 'いいえ',
|
||||
'Core:SynchroUpdate:Yes' => 'はい',
|
||||
'Core:SynchroUpdate:No' => 'いいえ',
|
||||
'Core:Synchro:LastestStatus' => '最新の状態',
|
||||
'Core:Synchro:History' => '同期履歴',
|
||||
'Core:Synchro:NeverRun' => 'この同期は実行されたことがありません。ログはありません。',
|
||||
'Core:Synchro:SynchroEndedOn_Date' => '最後の同期は %1$s に終了しました。',
|
||||
'Core:Synchro:SynchroRunningStartedOn_Date' => '同期は %1$s に始まり、現在実行中です。',
|
||||
'Menu:DataSources' => '同期データソース',
|
||||
'Menu:DataSources+' => '全ての同期データソース',
|
||||
'Core:Synchro:label_repl_ignored' => '無視 (%1$s)',
|
||||
'Core:Synchro:label_repl_disappeared' => '消えた (%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' => '廃止 (%1$s)',
|
||||
'Core:Synchro:label_obj_disappeared_errors' => 'エラー (%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' => '無変更 (%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:Synchro:History' => '同期履歴',
|
||||
'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' => '少なくとも一つの調整キーが必要です。または、調整ポリシーは主キーを使用しなければなりません。',
|
||||
'Class:SynchroDataSource/Error:DeleteRetentionDurationMustBeSpecified' => 'オブジェクトは廃止としてマークされた後に削除されますので、削除の保存期間を指定する必要があります。',
|
||||
'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => '廃止されたオブジェクトは更新されます、しかし、更新は指定されていません。',
|
||||
'Core:SynchroReplica:PublicData' => 'パブリックデータ',
|
||||
'Core:SynchroReplica:PrivateDetails' => 'プライベート詳細',
|
||||
'Core:SynchroReplica:BackToDataSource' => '同期データソースへ戻る: %1$s',
|
||||
'Core:SynchroReplica:ListOfReplicas' => 'レプリカのリスト',
|
||||
'Core:SynchroAttExtKey:ReconciliationById' => 'id (主キー)',
|
||||
'Core:SynchroAtt:attcode' => '属性',
|
||||
'Core:SynchroAtt:attcode+' => 'オブジェクトのフィールド',
|
||||
'Core:SynchroAtt:reconciliation' => '調整 ?',
|
||||
'Core:SynchroAtt:reconciliation+' => '検索に使用',
|
||||
'Core:SynchroAtt:update' => '更新 ?',
|
||||
'Core:SynchroAtt:update+' => 'オブジェクトの更新のため使用',
|
||||
'Core:SynchroAtt:update_policy' => '更新ポリシー',
|
||||
'Core:SynchroAtt:update_policy+' => '更新されたフィールドの振る舞い',
|
||||
'Core:SynchroAtt:reconciliation_attcode' => '調整キー',
|
||||
'Core:SynchroAtt:reconciliation_attcode+' => '外部キー調整用の属性コード',
|
||||
'Core:SyncDataExchangeComment' => '(データ同期)',
|
||||
'Core:Synchro:ListOfDataSources' => 'データソースのリスト:',
|
||||
'Core:Synchro:LastSynchro' => '最後の同期:',
|
||||
'Core:Synchro:ThisObjectIsSynchronized' => 'このオブジェクトは、外部データソースと同期されます。',
|
||||
'Core:Synchro:TheObjectWasCreatedBy_Source' => 'このオブジェクトは、外部データソース%1$sにより<b>作成</b>されました。',
|
||||
'Core:Synchro:TheObjectCanBeDeletedBy_Source' => 'オブジェクトは、外部データソース%1$sにより削除可能です。',
|
||||
'Core:Synchro:TheObjectCannotBeDeletedByUser_Source' => 'このオブジェクトは、外部データソースに保持されているので削除できません。',
|
||||
'TitleSynchroExecution' => '同期の実行',
|
||||
'Class:SynchroDataSource:DataTable' => 'データベーステーブル: %1$s',
|
||||
'Core:SyncDataSourceObsolete' => 'データソースは廃止とマークされています。操作はキャンセルされました。',
|
||||
'Core:SyncDataSourceAccessRestriction' => '管理者またはデータ·ソースに指定されたユーザーのみ、この操作を実行することができます。操作はキャンセルされました。',
|
||||
'Core:SyncTooManyMissingReplicas' => '暫くの間全てのレコードは変更されていません。(全てのオブジェクトが削除される可能性があります。)同期テーブルへ書き込むプロセスがまだ実行中であることを確認ください。操作は、キャンセルされました。',
|
||||
'Core:SyncSplitModeCLIOnly' => 'CLIモードでの実行時のみチャンクで同期を実行することが出来ます。',
|
||||
'Core:Synchro:ListReplicas_AllReplicas_Errors_Warnings' => '%1$s レプリカ、 %2$s エラー、 %3$s 警告。',
|
||||
'Core:SynchroReplica:TargetObject' => '同期されたオブジェクト: %1$s',
|
||||
'Class:AsyncSendEmail' => '電子メール (非同期)',
|
||||
'Class:AsyncSendEmail/Attribute:to' => 'To',
|
||||
'Class:AsyncSendEmail/Attribute:subject' => '件名',
|
||||
'Class:AsyncSendEmail/Attribute:body' => '本文',
|
||||
'Class:AsyncSendEmail/Attribute:header' => 'ヘッダー',
|
||||
'Class:CMDBChangeOpSetAttributeOneWayPassword' => '暗号化パスワード',
|
||||
'Class:CMDBChangeOpSetAttributeOneWayPassword/Attribute:prev_pwd' => '以前の値',
|
||||
'Class:CMDBChangeOpSetAttributeEncrypted' => '暗号化フィールド',
|
||||
'Class:CMDBChangeOpSetAttributeEncrypted/Attribute:prevstring' => '以前の値',
|
||||
'Class:CMDBChangeOpSetAttributeCaseLog' => 'ケースログ',
|
||||
'Class:CMDBChangeOpSetAttributeCaseLog/Attribute:lastentry' => '最後のエントリー',
|
||||
'Class:SynchroDataSource' => '同期データソース',
|
||||
'Class:SynchroDataSource/Attribute:status/Value:implementation' => '実装中',
|
||||
'Class:SynchroDataSource/Attribute:status/Value:obsolete' => '廃止済',
|
||||
'Class:SynchroDataSource/Attribute:status/Value:production' => '稼働中',
|
||||
'Class:SynchroDataSource/Attribute:scope_restriction' => '範囲の制限',
|
||||
'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_attributes' => '属性を使用',
|
||||
'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_primary_key' => '主キーフィールドを使用',
|
||||
'Class:SynchroDataSource/Attribute:action_on_zero/Value:create' => '作成',
|
||||
'Class:SynchroDataSource/Attribute:action_on_zero/Value:error' => 'エラー',
|
||||
'Class:SynchroDataSource/Attribute:action_on_one/Value:error' => 'エラー',
|
||||
'Class:SynchroDataSource/Attribute:action_on_one/Value:update' => '更新',
|
||||
'Class:SynchroDataSource/Attribute:action_on_multiple/Value:create' => '作成',
|
||||
'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/Value:delete' => '削除',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy/Value:ignore' => '無視',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy/Value:update' => '更新',
|
||||
'Class:SynchroDataSource/Attribute:delete_policy/Value:update_then_delete' => '更新そして削除',
|
||||
'Class:SynchroDataSource/Attribute:attribute_list' => '属性リスト',
|
||||
'Class:SynchroDataSource/Attribute:user_delete_policy/Value:administrators' => '管理者のみ',
|
||||
'Class:SynchroDataSource/Attribute:user_delete_policy/Value:everybody' => '誰でもがそのようなオブジェクトを削除出来ます。',
|
||||
'Class:SynchroDataSource/Attribute:user_delete_policy/Value:nobody' => 'nobody',
|
||||
'Class:SynchroAttribute' => '同期属性',
|
||||
'Class:SynchroAttribute/Attribute:sync_source_id' => '同期データソース',
|
||||
'Class:SynchroAttribute/Attribute:attcode' => '属性コード',
|
||||
'Class:SynchroAttribute/Attribute:update' => '更新',
|
||||
'Class:SynchroAttribute/Attribute:reconcile' => '調整',
|
||||
'Class:SynchroAttribute/Attribute:update_policy' => '更新ポリシー',
|
||||
'Class:SynchroAttribute/Attribute:update_policy/Value:master_locked' => 'ロック',
|
||||
'Class:SynchroAttribute/Attribute:update_policy/Value:master_unlocked' => 'アンロック',
|
||||
'Class:SynchroAttribute/Attribute:update_policy/Value:write_if_empty' => '空の場合は、初期化',
|
||||
'Class:SynchroAttribute/Attribute:finalclass' => 'クラス',
|
||||
'Class:SynchroAttExtKey' => '同期属性 (外部キー)',
|
||||
'Class:SynchroAttExtKey/Attribute:reconciliation_attcode' => '調整属性',
|
||||
'Class:SynchroAttLinkSet' => '同期属性 (リンクセット)',
|
||||
'Class:SynchroAttLinkSet/Attribute:row_separator' => '行の区切り',
|
||||
'Class:SynchroAttLinkSet/Attribute:attribute_separator' => '属性区切り',
|
||||
'Class:SynchroLog' => '同期ログ',
|
||||
'Class:SynchroLog/Attribute:sync_source_id' => '同期データソース',
|
||||
'Class:SynchroLog/Attribute:start_date' => '開始日',
|
||||
'Class:SynchroLog/Attribute:end_date' => '終了日',
|
||||
'Class:SynchroLog/Attribute:status' => '状態',
|
||||
'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' => 'のレプリカ ',
|
||||
'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' => '同期レプリカ',
|
||||
'Class:SynchroReplica/Attribute:sync_source_id' => '同期データソース',
|
||||
'Class:SynchroReplica/Attribute:dest_id' => '同期先オブジェクト (ID)',
|
||||
'Class:SynchroReplica/Attribute:dest_class' => '同期先タイプ',
|
||||
'Class:SynchroReplica/Attribute:status_last_seen' => 'ラストシーン',
|
||||
'Class:SynchroReplica/Attribute:status' => '状態',
|
||||
'Class:SynchroReplica/Attribute:status/Value:modified' => '修正済み',
|
||||
'Class:SynchroReplica/Attribute:status/Value:new' => '新規',
|
||||
'Class:SynchroReplica/Attribute:status/Value:obsolete' => '廃止',
|
||||
'Class:SynchroReplica/Attribute:status/Value:orphan' => '孤立',
|
||||
'Class:SynchroReplica/Attribute:status/Value:synchronized' => '同期済み',
|
||||
'Class:SynchroReplica/Attribute:status_dest_creator' => 'オブジェクト作成 ?',
|
||||
'Class:SynchroReplica/Attribute:status_last_error' => '最後のエラー',
|
||||
'Class:SynchroReplica/Attribute:status_last_warning' => '警告',
|
||||
'Class:SynchroReplica/Attribute:info_creation_date' => '作成日',
|
||||
'Class:SynchroReplica/Attribute:info_last_modified' => '最終修正日',
|
||||
'Class:appUserPreferences' => 'ユーザプリファレンス',
|
||||
'Class:appUserPreferences/Attribute:userid' => 'ユーザ',
|
||||
'Class:appUserPreferences/Attribute:preferences' => 'プリファレンス',
|
||||
'Core:ExecProcess:Code1' => '間違ったコマンドまたはエラーで終了したコマンド(例えば、間違ったスクリプト名)',
|
||||
'Core:ExecProcess:Code255' => 'PHP エラー (parsing, or runtime)',
|
||||
));
|
||||
|
||||
//
|
||||
// Attribute Duration
|
||||
//
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Core:Duration_Seconds' => '%1$ds',
|
||||
'Core:Duration_Minutes_Seconds' =>'%1$d分 %2$d秒',
|
||||
'Core:Duration_Hours_Minutes_Seconds' => '%1$d時 %2$d分 %3$d秒',
|
||||
'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$s日 %2$d時 %3$d分 %4$d秒',
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -136,6 +136,12 @@ function WizardHelper(sClass, sFormPrefix, sState)
|
||||
}
|
||||
}
|
||||
|
||||
this.UpdateWizardToJSON = function ()
|
||||
{
|
||||
this.UpdateWizard();
|
||||
return this.ToJSON()
|
||||
}
|
||||
|
||||
this.AjaxQueryServer = function ()
|
||||
{
|
||||
//console.log('data sent:', this.ToJSON());
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* @author Erwan Taloc <erwan.taloc@combodo.com>
|
||||
* @author Romain Quetiez <romain.quetiez@combodo.com>
|
||||
* @author Denis Flaven <denis.flaven@combodo.com>
|
||||
* @author Hirofumi Kosaka <kosaka@rworks.jp>
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
*/
|
||||
|
||||
@@ -39,8 +38,8 @@
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:UserExternal' => '外部ユーザー', # 'External user',
|
||||
'Class:UserExternal+' => '外部認証ユーザー', # 'User authentified outside of iTop',
|
||||
'Class:UserExternal' => '外部ユーザー',
|
||||
'Class:UserExternal+' => 'iTopの外で認証されたユーザー',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* @author Erwan Taloc <erwan.taloc@combodo.com>
|
||||
* @author Romain Quetiez <romain.quetiez@combodo.com>
|
||||
* @author Denis Flaven <denis.flaven@combodo.com>
|
||||
* @author Hirofumi Kosaka <kosaka@rworks.jp>
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
*/
|
||||
|
||||
@@ -40,7 +39,7 @@
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:UserLDAP' => 'LDAP ユーザー', # 'LDAP user',
|
||||
'Class:UserLDAP+' => 'LDAP認証ユーザー', # 'User authentified by LDAP',
|
||||
'Class:UserLDAP+' => 'LDAPにて認証されたユーザー', # 'User authentified by LDAP',
|
||||
'Class:UserLDAP/Attribute:password' => 'パスワード', # 'Password',
|
||||
'Class:UserLDAP/Attribute:password+' => '認証文字列', # 'user authentication string',
|
||||
));
|
||||
|
||||
@@ -120,7 +120,7 @@ class UserLDAP extends UserInternal
|
||||
$aEntry = ldap_get_entries($hDS, $hSearchResult);
|
||||
$sUserDN = $aEntry[0]['dn'];
|
||||
$bUserBind = @ldap_bind($hDS, $sUserDN, $sPassword);
|
||||
if ($bUserBind !== false)
|
||||
if (($bUserBind !== false) && !empty($sPassword))
|
||||
{
|
||||
ldap_unbind($hDS);
|
||||
return true; // Password Ok
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* @author Erwan Taloc <erwan.taloc@combodo.com>
|
||||
* @author Romain Quetiez <romain.quetiez@combodo.com>
|
||||
* @author Denis Flaven <denis.flaven@combodo.com>
|
||||
* @author Hirofumi Kosaka <kosaka@rworks.jp>
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
*/
|
||||
|
||||
@@ -39,10 +38,10 @@
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:UserLocal' => 'iTopユーザー', // 'iTop user',
|
||||
'Class:UserLocal+' => 'iTopローカル認証ユーザー', // 'User authentified by iTop',
|
||||
'Class:UserLocal/Attribute:password' => 'パスワード', // 'Password',
|
||||
'Class:UserLocal/Attribute:password+' => '認証文字列', // 'user authentication string',
|
||||
'Class:UserLocal' => 'iTopユーザー',
|
||||
'Class:UserLocal+' => 'iTopで認証されるユーザー',
|
||||
'Class:UserLocal/Attribute:password' => 'パスワード',
|
||||
'Class:UserLocal/Attribute:password+' => 'ユーザ認証文字列',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -468,7 +468,7 @@ EOF
|
||||
$oPage->p(Dict::S('Attachments:AddAttachment').'<input type="file" name="file" id="file" onChange="ajaxFileUpload();"><span style="display:none;" id="attachment_loading"> <img src="../images/indicator.gif"></span> '.$sMaxUpload);
|
||||
//$oPage->p('<input type="button" onClick="ajaxFileUpload();" value=" Upload !">');
|
||||
$oPage->p('<span style="display:none;" id="attachment_loading">Loading, please wait...</span>');
|
||||
$oPage->p('<input type="hidden" id="attachment_plugin"/>');
|
||||
$oPage->p('<input type="hidden" id="attachment_plugin" name="attachment_plugin"/>');
|
||||
$oPage->add('</fieldset>');
|
||||
if ($this->m_bDeleteEnabled)
|
||||
{
|
||||
@@ -499,6 +499,12 @@ EOF
|
||||
|
||||
protected static function UpdateAttachments($oObject, $oChange = null)
|
||||
{
|
||||
if (utils::ReadParam('attachment_plugin', 'not-in-form') == 'not-in-form')
|
||||
{
|
||||
// Workaround to an issue in iTop < 2.0
|
||||
// Leave silently if there is no trace of the attachment form
|
||||
return;
|
||||
}
|
||||
$iTransactionId = utils::ReadParam('transaction_id', null);
|
||||
if (!is_null($iTransactionId))
|
||||
{
|
||||
|
||||
@@ -20,28 +20,27 @@
|
||||
* @author Erwan Taloc <erwan.taloc@combodo.com>
|
||||
* @author Romain Quetiez <romain.quetiez@combodo.com>
|
||||
* @author Denis Flaven <denis.flaven@combodo.com>
|
||||
* @author Hirofumi Kosaka <kosaka@rworks.jp>
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
*/
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Menu:ChangeManagement' => '変更管理', # 'Change management',
|
||||
'Menu:Change:Overview' => '概要', # 'Overview',
|
||||
'Menu:Change:Overview+' => '', # '',
|
||||
'Menu:NewChange' => '新規変更', # 'New Change',
|
||||
'Menu:NewChange+' => '新規変更のチケット作成', # 'Create a new Change ticket',
|
||||
'Menu:SearchChanges' => '変更検索', # 'Search for Changes',
|
||||
'Menu:SearchChanges+' => '変更チケット検索', # 'Search for Change tickets',
|
||||
'Menu:Change:Shortcuts' => 'ショートカット', # 'Shortcuts',
|
||||
'Menu:Change:Shortcuts+' => '', # '',
|
||||
'Menu:WaitingAcceptance' => '受理待ちの変更', # 'Changes awaiting acceptance',
|
||||
'Menu:WaitingAcceptance+' => '', # '',
|
||||
'Menu:WaitingApproval' => '承認待ちの変更', # 'Changes awaiting approval',
|
||||
'Menu:WaitingApproval+' => '', # '',
|
||||
'Menu:Changes' => '担当のいない変更', # 'Opened changes',
|
||||
'Menu:Changes+' => '', # '',
|
||||
'Menu:MyChanges' => '担当している変更', # 'Changes assigned to me',
|
||||
'Menu:MyChanges+' => '担当している変更(エージェント)', # 'Changes assigned to me (as Agent)',
|
||||
'Menu:ChangeManagement' => '変更管理',
|
||||
'Menu:Change:Overview' => '概要',
|
||||
'Menu:Change:Overview+' => '',
|
||||
'Menu:NewChange' => '新規変更',
|
||||
'Menu:NewChange+' => '新規変更のチケット作成',
|
||||
'Menu:SearchChanges' => '変更検索',
|
||||
'Menu:SearchChanges+' => '変更チケット検索',
|
||||
'Menu:Change:Shortcuts' => 'ショートカット',
|
||||
'Menu:Change:Shortcuts+' => '',
|
||||
'Menu:WaitingAcceptance' => '受理待ちの変更',
|
||||
'Menu:WaitingAcceptance+' => '',
|
||||
'Menu:WaitingApproval' => '承認待ちの変更',
|
||||
'Menu:WaitingApproval+' => '',
|
||||
'Menu:Changes' => 'オープン状態の変更',
|
||||
'Menu:Changes+' => '',
|
||||
'Menu:MyChanges' => '担当している変更',
|
||||
'Menu:MyChanges+' => '担当している変更(エージェントとして)',
|
||||
));
|
||||
|
||||
// Dictionnay conventions
|
||||
@@ -60,110 +59,110 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Change' => '変更', # 'Change',
|
||||
'Class:Change+' => '', # '',
|
||||
'Class:Change/Attribute:start_date' => '開始計画日', # 'Planned startup',
|
||||
'Class:Change/Attribute:start_date+' => '', # '',
|
||||
'Class:Change/Attribute:status' => 'ステータス', # 'Status',
|
||||
'Class:Change/Attribute:status+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:new' => '新規', # 'New',
|
||||
'Class:Change/Attribute:status/Value:new+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:validated' => '受付済', # 'Validated',
|
||||
'Class:Change/Attribute:status/Value:validated+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:rejected' => '却下済', # 'Rejected',
|
||||
'Class:Change/Attribute:status/Value:rejected+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:assigned' => '割当済', # 'Assigned',
|
||||
'Class:Change/Attribute:status/Value:assigned+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled' => '計画・予定された', # 'Planned and scheduled',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:approved' => '承認済', # 'Approved',
|
||||
'Class:Change/Attribute:status/Value:approved+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:notapproved' => '未承認', # 'Not approved',
|
||||
'Class:Change/Attribute:status/Value:notapproved+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:implemented' => '実施済み', # 'Implemented',
|
||||
'Class:Change/Attribute:status/Value:implemented+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:monitored' => '経過観察', # 'Monitored',
|
||||
'Class:Change/Attribute:status/Value:monitored+' => '', # '',
|
||||
'Class:Change/Attribute:status/Value:closed' => '完了', # 'Closed',
|
||||
'Class:Change/Attribute:status/Value:closed+' => '', # '',
|
||||
'Class:Change/Attribute:reason' => '理由', # 'Reason',
|
||||
'Class:Change/Attribute:reason+' => '', # '',
|
||||
'Class:Change/Attribute:requestor_id' => '依頼者', # 'Requestor',
|
||||
'Class:Change/Attribute:requestor_id+' => '', # '',
|
||||
'Class:Change/Attribute:requestor_email' => '依頼者', # 'Requestor',
|
||||
'Class:Change/Attribute:requestor_email+' => '', # '',
|
||||
'Class:Change/Attribute:org_id' => '顧客', # 'Customer',
|
||||
'Class:Change/Attribute:org_id+' => '', # '',
|
||||
'Class:Change/Attribute:org_name' => '顧客', # 'Customer',
|
||||
'Class:Change/Attribute:org_name+' => '', # '',
|
||||
'Class:Change/Attribute:workgroup_id' => '作業グループ', # 'Workgroup',
|
||||
'Class:Change/Attribute:workgroup_id+' => '', # '',
|
||||
'Class:Change/Attribute:workgroup_name' => '作業グループ', # 'Workgroup',
|
||||
'Class:Change/Attribute:workgroup_name+' => '', # '',
|
||||
'Class:Change/Attribute:creation_date' => '作成', # 'Created',
|
||||
'Class:Change/Attribute:creation_date+' => '', # '',
|
||||
'Class:Change/Attribute:last_update' => '最終更新', # 'Last update',
|
||||
'Class:Change/Attribute:last_update+' => '', # '',
|
||||
'Class:Change/Attribute:end_date' => '作業終了', # 'End date',
|
||||
'Class:Change/Attribute:end_date+' => '', # '',
|
||||
'Class:Change/Attribute:close_date' => '完了', # 'Closed',
|
||||
'Class:Change/Attribute:close_date+' => '', # '',
|
||||
'Class:Change/Attribute:impact' => '影響', # 'Impact',
|
||||
'Class:Change/Attribute:impact+' => '', # '',
|
||||
'Class:Change/Attribute:agent_id' => 'エージェント', # 'Agent',
|
||||
'Class:Change/Attribute:agent_id+' => '', # '',
|
||||
'Class:Change/Attribute:agent_name' => 'エージェント', # 'Agent',
|
||||
'Class:Change/Attribute:agent_name+' => '', # '',
|
||||
'Class:Change/Attribute:agent_email' => 'エージェント', # 'Agent','Agent', # 'Agent',
|
||||
'Class:Change/Attribute:agent_email+' => '', # '',
|
||||
'Class:Change/Attribute:supervisor_group_id' => '監督者チーム', # 'Supervisor team',
|
||||
'Class:Change/Attribute:supervisor_group_id+' => '', # '',
|
||||
'Class:Change/Attribute:supervisor_group_name' => '監督者チーム', # 'Supervisor team',
|
||||
'Class:Change/Attribute:supervisor_group_name+' => '', # '',
|
||||
'Class:Change/Attribute:supervisor_id' => '監督者', # 'Supervisor',
|
||||
'Class:Change/Attribute:supervisor_id+' => '', # '',
|
||||
'Class:Change/Attribute:supervisor_email' => '監督者', # 'Supervisor',
|
||||
'Class:Change/Attribute:supervisor_email+' => '', # '',
|
||||
'Class:Change/Attribute:manager_group_id' => 'マネジャーチーム', # 'Manager team',
|
||||
'Class:Change/Attribute:manager_group_id+' => '', # '',
|
||||
'Class:Change/Attribute:manager_group_name' => 'マネジャーチーム', # 'Manager team',
|
||||
'Class:Change/Attribute:manager_group_name+' => '', # '',
|
||||
'Class:Change/Attribute:manager_id' => 'マネジャー', # 'Manager',
|
||||
'Class:Change/Attribute:manager_id+' => '', # '',
|
||||
'Class:Change/Attribute:manager_email' => 'マネジャー', # 'Manager',
|
||||
'Class:Change/Attribute:manager_email+' => '', # '',
|
||||
'Class:Change/Attribute:outage' => '停止', # 'Outage',
|
||||
'Class:Change/Attribute:outage+' => '', # '',
|
||||
'Class:Change/Attribute:outage/Value:yes' => 'はい', # 'Yes',
|
||||
'Class:Change/Attribute:outage/Value:yes+' => '', # '',
|
||||
'Class:Change/Attribute:outage/Value:no' => 'いいえ', # 'No',
|
||||
'Class:Change/Attribute:outage/Value:no+' => '', # '',
|
||||
'Class:Change/Attribute:change_request' => 'リクエスト', # 'Request',
|
||||
'Class:Change/Attribute:change_request+' => '', # '',
|
||||
'Class:Change/Attribute:fallback' => '代替計画', # 'Fallback plan',
|
||||
'Class:Change/Attribute:fallback+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_validate' => '受付', # 'Validate',
|
||||
'Class:Change/Stimulus:ev_validate+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_reject' => '却下', # 'Reject',
|
||||
'Class:Change/Stimulus:ev_reject+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_assign' => '担当割当', # 'Assign',
|
||||
'Class:Change/Stimulus:ev_assign+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_reopen' => '再開', # 'Reopen',
|
||||
'Class:Change/Stimulus:ev_reopen+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_plan' => '計画', # 'Plan',
|
||||
'Class:Change/Stimulus:ev_plan+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_approve' => '承認', # 'Approve',
|
||||
'Class:Change/Stimulus:ev_approve+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_replan' => '再計画', # 'Replan',
|
||||
'Class:Change/Stimulus:ev_replan+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_notapprove' => '却下', # 'Reject',
|
||||
'Class:Change/Stimulus:ev_notapprove+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_implement' => '実施', # 'Implement',
|
||||
'Class:Change/Stimulus:ev_implement+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_monitor' => '経過観察', # 'Monitor',
|
||||
'Class:Change/Stimulus:ev_monitor+' => '', # '',
|
||||
'Class:Change/Stimulus:ev_finish' => '作業終了', # 'Finish',
|
||||
'Class:Change/Stimulus:ev_finish+' => '', # '',
|
||||
'Class:Change' => '変更',
|
||||
'Class:Change+' => '',
|
||||
'Class:Change/Attribute:start_date' => '開始計画日',
|
||||
'Class:Change/Attribute:start_date+' => '',
|
||||
'Class:Change/Attribute:status' => '状態',
|
||||
'Class:Change/Attribute:status+' => '',
|
||||
'Class:Change/Attribute:status/Value:new' => '新規',
|
||||
'Class:Change/Attribute:status/Value:new+' => '',
|
||||
'Class:Change/Attribute:status/Value:validated' => '受け付け済み',
|
||||
'Class:Change/Attribute:status/Value:validated+' => '',
|
||||
'Class:Change/Attribute:status/Value:rejected' => '却下済み',
|
||||
'Class:Change/Attribute:status/Value:rejected+' => '',
|
||||
'Class:Change/Attribute:status/Value:assigned' => '割り当て済み',
|
||||
'Class:Change/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled' => '計画・予定された',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
|
||||
'Class:Change/Attribute:status/Value:approved' => '承認済み',
|
||||
'Class:Change/Attribute:status/Value:approved+' => '',
|
||||
'Class:Change/Attribute:status/Value:notapproved' => '未承認',
|
||||
'Class:Change/Attribute:status/Value:notapproved+' => '',
|
||||
'Class:Change/Attribute:status/Value:implemented' => '実施済み',
|
||||
'Class:Change/Attribute:status/Value:implemented+' => '',
|
||||
'Class:Change/Attribute:status/Value:monitored' => '経過観察',
|
||||
'Class:Change/Attribute:status/Value:monitored+' => '',
|
||||
'Class:Change/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:Change/Attribute:status/Value:closed+' => '',
|
||||
'Class:Change/Attribute:reason' => '理由',
|
||||
'Class:Change/Attribute:reason+' => '',
|
||||
'Class:Change/Attribute:requestor_id' => '依頼者',
|
||||
'Class:Change/Attribute:requestor_id+' => '',
|
||||
'Class:Change/Attribute:requestor_email' => '依頼者',
|
||||
'Class:Change/Attribute:requestor_email+' => '',
|
||||
'Class:Change/Attribute:org_id' => '顧客',
|
||||
'Class:Change/Attribute:org_id+' => '',
|
||||
'Class:Change/Attribute:org_name' => '顧客',
|
||||
'Class:Change/Attribute:org_name+' => '',
|
||||
'Class:Change/Attribute:workgroup_id' => '作業グループ',
|
||||
'Class:Change/Attribute:workgroup_id+' => '',
|
||||
'Class:Change/Attribute:workgroup_name' => '作業グループ',
|
||||
'Class:Change/Attribute:workgroup_name+' => '',
|
||||
'Class:Change/Attribute:creation_date' => '作成日',
|
||||
'Class:Change/Attribute:creation_date+' => '',
|
||||
'Class:Change/Attribute:last_update' => '最終更新',
|
||||
'Class:Change/Attribute:last_update+' => '',
|
||||
'Class:Change/Attribute:end_date' => '終了日',
|
||||
'Class:Change/Attribute:end_date+' => '',
|
||||
'Class:Change/Attribute:close_date' => 'クローズ',
|
||||
'Class:Change/Attribute:close_date+' => '',
|
||||
'Class:Change/Attribute:impact' => 'インパクト',
|
||||
'Class:Change/Attribute:impact+' => '',
|
||||
'Class:Change/Attribute:agent_id' => 'エージェント',
|
||||
'Class:Change/Attribute:agent_id+' => '',
|
||||
'Class:Change/Attribute:agent_name' => 'エージェント',
|
||||
'Class:Change/Attribute:agent_name+' => '',
|
||||
'Class:Change/Attribute:agent_email' => 'エージェント',
|
||||
'Class:Change/Attribute:agent_email+' => '',
|
||||
'Class:Change/Attribute:supervisor_group_id' => '監督者チーム',
|
||||
'Class:Change/Attribute:supervisor_group_id+' => '',
|
||||
'Class:Change/Attribute:supervisor_group_name' => '監督者チーム',
|
||||
'Class:Change/Attribute:supervisor_group_name+' => '',
|
||||
'Class:Change/Attribute:supervisor_id' => '監督者',
|
||||
'Class:Change/Attribute:supervisor_id+' => '',
|
||||
'Class:Change/Attribute:supervisor_email' => '監督者',
|
||||
'Class:Change/Attribute:supervisor_email+' => '',
|
||||
'Class:Change/Attribute:manager_group_id' => 'マネジャーチーム',
|
||||
'Class:Change/Attribute:manager_group_id+' => '',
|
||||
'Class:Change/Attribute:manager_group_name' => 'マネジャーチーム',
|
||||
'Class:Change/Attribute:manager_group_name+' => '',
|
||||
'Class:Change/Attribute:manager_id' => 'マネジャー',
|
||||
'Class:Change/Attribute:manager_id+' => '',
|
||||
'Class:Change/Attribute:manager_email' => 'マネジャー',
|
||||
'Class:Change/Attribute:manager_email+' => '',
|
||||
'Class:Change/Attribute:outage' => '停止',
|
||||
'Class:Change/Attribute:outage+' => '',
|
||||
'Class:Change/Attribute:outage/Value:yes' => 'はい',
|
||||
'Class:Change/Attribute:outage/Value:yes+' => '',
|
||||
'Class:Change/Attribute:outage/Value:no' => 'いいえ',
|
||||
'Class:Change/Attribute:outage/Value:no+' => '',
|
||||
'Class:Change/Attribute:change_request' => '要求',
|
||||
'Class:Change/Attribute:change_request+' => '',
|
||||
'Class:Change/Attribute:fallback' => '代替計画',
|
||||
'Class:Change/Attribute:fallback+' => '',
|
||||
'Class:Change/Stimulus:ev_validate' => '受け付け',
|
||||
'Class:Change/Stimulus:ev_validate+' => '',
|
||||
'Class:Change/Stimulus:ev_reject' => '却下',
|
||||
'Class:Change/Stimulus:ev_reject+' => '',
|
||||
'Class:Change/Stimulus:ev_assign' => '担当割り当て',
|
||||
'Class:Change/Stimulus:ev_assign+' => '',
|
||||
'Class:Change/Stimulus:ev_reopen' => '再開',
|
||||
'Class:Change/Stimulus:ev_reopen+' => '',
|
||||
'Class:Change/Stimulus:ev_plan' => '計画',
|
||||
'Class:Change/Stimulus:ev_plan+' => '',
|
||||
'Class:Change/Stimulus:ev_approve' => '承認',
|
||||
'Class:Change/Stimulus:ev_approve+' => '',
|
||||
'Class:Change/Stimulus:ev_replan' => '再計画',
|
||||
'Class:Change/Stimulus:ev_replan+' => '',
|
||||
'Class:Change/Stimulus:ev_notapprove' => '却下',
|
||||
'Class:Change/Stimulus:ev_notapprove+' => '',
|
||||
'Class:Change/Stimulus:ev_implement' => '実施',
|
||||
'Class:Change/Stimulus:ev_implement+' => '',
|
||||
'Class:Change/Stimulus:ev_monitor' => '経過観察',
|
||||
'Class:Change/Stimulus:ev_monitor+' => '',
|
||||
'Class:Change/Stimulus:ev_finish' => '終了',
|
||||
'Class:Change/Stimulus:ev_finish+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -171,38 +170,41 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:RoutineChange' => '定期変更', # 'Routine Change',
|
||||
'Class:RoutineChange+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:new' => '新規', # 'New',
|
||||
'Class:RoutineChange/Attribute:status/Value:new+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:assigned' => '割当済', # 'Assigned',
|
||||
'Class:RoutineChange/Attribute:status/Value:assigned+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:plannedscheduled' => '計画・予定された', # 'Planned and scheduled',
|
||||
'Class:RoutineChange/Attribute:status/Value:plannedscheduled+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:approved' => '承認済', # 'Approved',
|
||||
'Class:RoutineChange/Attribute:status/Value:approved+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:implemented' => '実施済', # 'Implemented',
|
||||
'Class:RoutineChange/Attribute:status/Value:implemented+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:monitored' => '経過観察中', # 'Monitored',
|
||||
'Class:RoutineChange/Attribute:status/Value:monitored+' => '', # '',
|
||||
'Class:RoutineChange/Attribute:status/Value:closed' => '完了', # 'Closed',
|
||||
'Class:RoutineChange/Attribute:status/Value:closed+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_validate' => '受付', # 'Validate',
|
||||
'Class:RoutineChange/Stimulus:ev_validate+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_assign' => '担当割当', # 'Assign',
|
||||
'Class:RoutineChange/Stimulus:ev_assign+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen' => '再開', # 'Reopen',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_plan' => '計画', # 'Plan',
|
||||
'Class:RoutineChange/Stimulus:ev_plan+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_replan' => '再計画', # 'Replan',
|
||||
'Class:RoutineChange/Stimulus:ev_replan+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_implement' => '実施', # 'Implement',
|
||||
'Class:RoutineChange/Stimulus:ev_implement+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor' => '経過観察', # 'Monitor',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor+' => '', # '',
|
||||
'Class:RoutineChange/Stimulus:ev_finish' => '作業終了', # 'Finish',
|
||||
'Class:RoutineChange/Stimulus:ev_finish+' => '', # '',
|
||||
'Class:RoutineChange' => 'ルーチン変更',
|
||||
'Class:RoutineChange+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:new' => '新規',
|
||||
'Class:RoutineChange/Attribute:status/Value:new+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:assigned' => '割当済み',
|
||||
'Class:RoutineChange/Attribute:status/Value:assigned+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:plannedscheduled' => '計画・予定された',
|
||||
'Class:RoutineChange/Attribute:status/Value:plannedscheduled+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:approved' => '承認済み',
|
||||
'Class:RoutineChange/Attribute:status/Value:approved+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:implemented' => '実施済み',
|
||||
'Class:RoutineChange/Attribute:status/Value:implemented+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:monitored' => '経過観察中',
|
||||
'Class:RoutineChange/Attribute:status/Value:monitored+' => '',
|
||||
'Class:RoutineChange/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:RoutineChange/Attribute:status/Value:closed+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_validate' => '受け付け',
|
||||
'Class:RoutineChange/Stimulus:ev_validate+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:RoutineChange/Stimulus:ev_assign+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen' => '再オープン',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_plan' => '計画',
|
||||
'Class:RoutineChange/Stimulus:ev_plan+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_replan' => '再計画',
|
||||
'Class:RoutineChange/Stimulus:ev_replan+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_implement' => '実施',
|
||||
'Class:RoutineChange/Stimulus:ev_implement+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor' => '経過観察',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_finish' => '終了',
|
||||
'Class:RoutineChange/Stimulus:ev_finish+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_reject' => '否認',
|
||||
'Class:RoutineChange/Stimulus:ev_approve' => '承認',
|
||||
'Class:RoutineChange/Stimulus:ev_notapprove' => '承認しない'
|
||||
));
|
||||
|
||||
//
|
||||
@@ -210,88 +212,88 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:ApprovedChange' => '承認済の変更', # 'Approved Changes',
|
||||
'Class:ApprovedChange+' => '', # '',
|
||||
'Class:ApprovedChange/Attribute:approval_date' => '承認日', # 'Approval Date',
|
||||
'Class:ApprovedChange/Attribute:approval_date+' => '', # '',
|
||||
'Class:ApprovedChange/Attribute:approval_comment' => '承認時のコメント', # 'Approval comment',
|
||||
'Class:ApprovedChange/Attribute:approval_comment+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate' => '受付', # 'Validate',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject' => '却下', # 'Reject',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign' => '担当割当', # 'Assign',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen' => '再開', # 'Reopen',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan' => '計画', # 'Plan',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve' => '承認', # 'Approve',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan' => '再計画', # 'Replan',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove' => '承認の不同意', # 'Reject approval',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement' => '実施', # 'Implement',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor' => '経過観察', # 'Monitor',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor+' => '', # '',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish' => '作業終了', # 'Finish',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish+' => '', # '',
|
||||
'Class:ApprovedChange' => '承認済の変更',
|
||||
'Class:ApprovedChange+' => '',
|
||||
'Class:ApprovedChange/Attribute:approval_date' => '承認日',
|
||||
'Class:ApprovedChange/Attribute:approval_date+' => '',
|
||||
'Class:ApprovedChange/Attribute:approval_comment' => '承認時のコメント',
|
||||
'Class:ApprovedChange/Attribute:approval_comment+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate' => '受け付け',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject' => '却下',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen' => '再オープン',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan' => '計画',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve' => '承認',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan' => '再計画',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove' => '承認を拒否',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement' => '実施',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor' => '経過観察',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish' => '終了',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish+' => '',
|
||||
));
|
||||
//
|
||||
// Class: NormalChange
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:NormalChange' => '通常変更', # 'Normal Change',
|
||||
'Class:NormalChange+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:new' => '新規', # 'New',
|
||||
'Class:NormalChange/Attribute:status/Value:new+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:validated' => '受付済', # 'Validated',
|
||||
'Class:NormalChange/Attribute:status/Value:validated+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:rejected' => '却下済', # 'Rejected',
|
||||
'Class:NormalChange/Attribute:status/Value:rejected+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:assigned' => '割当済', # 'Assigned',
|
||||
'Class:NormalChange/Attribute:status/Value:assigned+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:plannedscheduled' => '計画・予定された', # 'Planned and scheduled',
|
||||
'Class:NormalChange/Attribute:status/Value:plannedscheduled+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:approved' => '承認済', # 'Approved',
|
||||
'Class:NormalChange/Attribute:status/Value:approved+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:notapproved' => '未承認', # 'Not approved',
|
||||
'Class:NormalChange' => '通常変更',
|
||||
'Class:NormalChange+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:new' => '新規',
|
||||
'Class:NormalChange/Attribute:status/Value:new+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:validated' => '受け付け済み',
|
||||
'Class:NormalChange/Attribute:status/Value:validated+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:rejected' => '却下済み',
|
||||
'Class:NormalChange/Attribute:status/Value:rejected+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:assigned' => '割り当て済み',
|
||||
'Class:NormalChange/Attribute:status/Value:assigned+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:plannedscheduled' => '計画・予定された',
|
||||
'Class:NormalChange/Attribute:status/Value:plannedscheduled+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:approved' => '承認済み',
|
||||
'Class:NormalChange/Attribute:status/Value:approved+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:notapproved' => '未承認',
|
||||
'Class:NormalChange/Attribute:status/Value:notapproved+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:implemented' => '実施済', # 'Implemented',
|
||||
'Class:NormalChange/Attribute:status/Value:implemented+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:monitored' => '経過観察中', # 'Monitored',
|
||||
'Class:NormalChange/Attribute:status/Value:monitored+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:closed' => '完了', # 'Closed',
|
||||
'Class:NormalChange/Attribute:status/Value:closed+' => '', # '',
|
||||
'Class:NormalChange/Attribute:acceptance_date' => '受理日', # 'Acceptance date',
|
||||
'Class:NormalChange/Attribute:acceptance_date+' => '', # '',
|
||||
'Class:NormalChange/Attribute:acceptance_comment' => '受理コメント', # 'Acceptance comment',
|
||||
'Class:NormalChange/Attribute:acceptance_comment+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_validate' => '受付', # 'Validate',
|
||||
'Class:NormalChange/Stimulus:ev_validate+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_reject' => '却下', # 'Reject',
|
||||
'Class:NormalChange/Stimulus:ev_reject+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_assign' => '担当割当', # 'Assign',
|
||||
'Class:NormalChange/Stimulus:ev_assign+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_reopen' => '再開', # 'Reopen',
|
||||
'Class:NormalChange/Stimulus:ev_reopen+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_plan' => '計画', # 'Plan',
|
||||
'Class:NormalChange/Stimulus:ev_plan+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_approve' => '承認', # 'Approve',
|
||||
'Class:NormalChange/Stimulus:ev_approve+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_replan' => '再計画', # 'Replan',
|
||||
'Class:NormalChange/Stimulus:ev_replan+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove' => '承認の不同意', # 'Reject approval',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_implement' => '実施', # 'Implement',
|
||||
'Class:NormalChange/Stimulus:ev_implement+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_monitor' => '経過観察', # 'Monitor',
|
||||
'Class:NormalChange/Stimulus:ev_monitor+' => '', # '',
|
||||
'Class:NormalChange/Stimulus:ev_finish' => '作業終了', # 'Finish',
|
||||
'Class:NormalChange/Stimulus:ev_finish+' => '', # '',
|
||||
'Class:NormalChange/Attribute:status/Value:implemented' => '実施済み',
|
||||
'Class:NormalChange/Attribute:status/Value:implemented+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:monitored' => '経過観察中',
|
||||
'Class:NormalChange/Attribute:status/Value:monitored+' => '',
|
||||
'Class:NormalChange/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:NormalChange/Attribute:status/Value:closed+' => '',
|
||||
'Class:NormalChange/Attribute:acceptance_date' => '受理日',
|
||||
'Class:NormalChange/Attribute:acceptance_date+' => '',
|
||||
'Class:NormalChange/Attribute:acceptance_comment' => '受理コメント',
|
||||
'Class:NormalChange/Attribute:acceptance_comment+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_validate' => '受け付け',
|
||||
'Class:NormalChange/Stimulus:ev_validate+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_reject' => '却下',
|
||||
'Class:NormalChange/Stimulus:ev_reject+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:NormalChange/Stimulus:ev_assign+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_reopen' => '再オープン',
|
||||
'Class:NormalChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_plan' => '計画',
|
||||
'Class:NormalChange/Stimulus:ev_plan+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_approve' => '承認',
|
||||
'Class:NormalChange/Stimulus:ev_approve+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_replan' => '再計画',
|
||||
'Class:NormalChange/Stimulus:ev_replan+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove' => '承認を拒否',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_implement' => '実施',
|
||||
'Class:NormalChange/Stimulus:ev_implement+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_monitor' => '経過観察',
|
||||
'Class:NormalChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_finish' => '終了',
|
||||
'Class:NormalChange/Stimulus:ev_finish+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -299,50 +301,50 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:EmergencyChange' => '緊急変更', # 'Emergency Change',
|
||||
'Class:EmergencyChange+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:new' => '新規', # 'New',
|
||||
'Class:EmergencyChange/Attribute:status/Value:new+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:validated' => '受付済', # 'Validated',
|
||||
'Class:EmergencyChange/Attribute:status/Value:validated+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:rejected' => '却下', # 'Rejected',
|
||||
'Class:EmergencyChange/Attribute:status/Value:rejected+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:assigned' => '割当済', # 'Assigned',
|
||||
'Class:EmergencyChange/Attribute:status/Value:assigned+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:plannedscheduled' => '計画・予定された', # 'Planned and scheduled',
|
||||
'Class:EmergencyChange/Attribute:status/Value:plannedscheduled+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:approved' => '承認済み', # 'Approved',
|
||||
'Class:EmergencyChange/Attribute:status/Value:approved+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:notapproved' => '未承認', # 'Not approved',
|
||||
'Class:EmergencyChange/Attribute:status/Value:notapproved+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:implemented' => '実施済', # 'Implemented',
|
||||
'Class:EmergencyChange/Attribute:status/Value:implemented+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:monitored' => '経過観察中', # 'Monitored',
|
||||
'Class:EmergencyChange/Attribute:status/Value:monitored+' => '', # '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:closed' => '完了', # 'Closed',
|
||||
'Class:EmergencyChange/Attribute:status/Value:closed+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate' => '受付', # 'Validate',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject' => '却下', # 'Reject',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign' => '担当割当', # 'Assign',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen' => '再開', # 'Reopen',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan' => '計画', # 'Plan',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve' => '承認', # 'Approve',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan' => '再計画', # 'Replan',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove' => '承認の不同意', # 'Reject approval',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement' => '実施', # 'Implement',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor' => '経過観察', # 'Monitor',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor+' => '', # '',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish' => '作業終了', # 'Finish',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish+' => '', # '',
|
||||
'Class:EmergencyChange' => '緊急変更',
|
||||
'Class:EmergencyChange+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:new' => '新規',
|
||||
'Class:EmergencyChange/Attribute:status/Value:new+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:validated' => '受け付け済み',
|
||||
'Class:EmergencyChange/Attribute:status/Value:validated+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:rejected' => '却下済み',
|
||||
'Class:EmergencyChange/Attribute:status/Value:rejected+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:assigned' => '割り当て済み',
|
||||
'Class:EmergencyChange/Attribute:status/Value:assigned+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:plannedscheduled' => '計画・予定された',
|
||||
'Class:EmergencyChange/Attribute:status/Value:plannedscheduled+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:approved' => '承認済み',
|
||||
'Class:EmergencyChange/Attribute:status/Value:approved+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:notapproved' => '未承認',
|
||||
'Class:EmergencyChange/Attribute:status/Value:notapproved+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:implemented' => '実施済み',
|
||||
'Class:EmergencyChange/Attribute:status/Value:implemented+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:monitored' => '経過観察中',
|
||||
'Class:EmergencyChange/Attribute:status/Value:monitored+' => '',
|
||||
'Class:EmergencyChange/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:EmergencyChange/Attribute:status/Value:closed+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate' => '受け付け',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject' => '却下',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen' => '再オープン',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan' => '計画',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve' => '承認',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan' => '再計画',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove' => '承認を拒否',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement' => '実施',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor' => '経過観察',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish' => '終了',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish+' => '',
|
||||
));
|
||||
|
||||
?>
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -53,5 +53,4 @@ SetupWebPage::AddModule(
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -24,24 +24,27 @@
|
||||
*/
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Menu:IncidentManagement' => 'インシデント管理', # 'Incident Management'
|
||||
'Menu:IncidentManagement+' => 'インシデント管理', # 'Incident Management'
|
||||
'Menu:Incident:Overview' => '概要', # 'Overview'
|
||||
'Menu:Incident:Overview+' => '概要', # 'Overview'
|
||||
'Menu:NewIncident' => '新規インシデント', # 'New Incident'
|
||||
'Menu:NewIncident+' => 'インシデントチケット作成', # 'Create a new Incident ticket'
|
||||
'Menu:SearchIncidents' => 'インシデント検索', # 'Search for Incidents'
|
||||
'Menu:SearchIncidents+' => 'インシデントチケット検索', # 'Search for Incident tickets'
|
||||
'Menu:Incident:Shortcuts' => 'ショートカット', # 'Shortcuts'
|
||||
'Menu:Incident:Shortcuts+' => '', # ''
|
||||
'Menu:Incident:MyIncidents' => '担当しているインシデント', # 'Incidents assigned to me'
|
||||
'Menu:Incident:MyIncidents+' => '担当しているインシデント(エージェント)', # 'Incidents assigned to me (as Agent)'
|
||||
'Menu:Incident:EscalatedIncidents' => 'エスカレーションされたインシデント', # 'Escalated Incidents'
|
||||
'Menu:Incident:EscalatedIncidents+' => 'エスカレーションされたインシデント', # 'Escalated Incidents'
|
||||
'Menu:Incident:OpenIncidents' => '担当のいないインシデント', # 'All Open Incidents'
|
||||
'Menu:Incident:OpenIncidents+' => '担当のいないインシデント', # 'All Open Incidents'
|
||||
'Menu:IncidentManagement' => 'インシデント管理',
|
||||
'Menu:IncidentManagement+' => 'インシデント管理',
|
||||
'Menu:Incident:Overview' => '概要',
|
||||
'Menu:Incident:Overview+' => '概要',
|
||||
'Menu:NewIncident' => '新規インシデント',
|
||||
'Menu:NewIncident+' => 'インシデントチケット作成',
|
||||
'Menu:SearchIncidents' => 'インシデント検索',
|
||||
'Menu:SearchIncidents+' => 'インシデントチケット検索',
|
||||
'Menu:Incident:Shortcuts' => 'ショートカット',
|
||||
'Menu:Incident:Shortcuts+' => '', # ''
|
||||
'Menu:Incident:MyIncidents' => '担当しているインシデント',
|
||||
'Menu:Incident:MyIncidents+' => '担当しているインシデント(エージェント)',
|
||||
'Menu:Incident:EscalatedIncidents' => 'エスカレーションされたインシデント',
|
||||
'Menu:Incident:EscalatedIncidents+' => 'エスカレーションされたインシデント',
|
||||
'Menu:Incident:OpenIncidents' => '全オープンインシデント',
|
||||
'Menu:Incident:OpenIncidents+' => '全オープンインシデント',
|
||||
));
|
||||
|
||||
|
||||
|
||||
|
||||
// Dictionnay conventions
|
||||
// Class:<class_name>
|
||||
// Class:<class_name>+
|
||||
@@ -57,18 +60,22 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Incident' => 'インシデント', # 'Incident'
|
||||
'Class:Incident+' => '', # ''
|
||||
'Class:Incident/Stimulus:ev_assign' => '割当', # 'Assign'
|
||||
'Class:Incident/Stimulus:ev_assign+' => '', # ''
|
||||
'Class:Incident/Stimulus:ev_reassign' => '再割当', # 'Reassign'
|
||||
'Class:Incident/Stimulus:ev_reassign+' => '', # ''
|
||||
'Class:Incident/Stimulus:ev_timeout' => '中断(エスカレーション)', # 'ev_timeout'
|
||||
'Class:Incident/Stimulus:ev_timeout+' => '', # ''
|
||||
'Class:Incident/Stimulus:ev_resolve' => '解決済みとする', # 'Mark as resolved'
|
||||
'Class:Incident/Stimulus:ev_resolve+' => '', # ''
|
||||
'Class:Incident/Stimulus:ev_close' => '完了', # 'Close'
|
||||
'Class:Incident/Stimulus:ev_close+' => '', # ''
|
||||
'Class:Incident' => 'インシデント',
|
||||
'Class:Incident+' => '',
|
||||
'Class:Incident/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:Incident/Stimulus:ev_assign+' => '',
|
||||
'Class:Incident/Stimulus:ev_reassign' => '再割り当て',
|
||||
'Class:Incident/Stimulus:ev_reassign+' => '',
|
||||
'Class:Incident/Stimulus:ev_timeout' => 'EV_タイムアウト',
|
||||
'Class:Incident/Stimulus:ev_timeout+' => '',
|
||||
'Class:Incident/Stimulus:ev_resolve' => '解決',
|
||||
'Class:Incident/Stimulus:ev_resolve+' => '',
|
||||
'Class:Incident/Stimulus:ev_close' => 'クローズ',
|
||||
'Class:Incident/Stimulus:ev_close+' => '',
|
||||
'Class:lnkTicketToIncident' => 'インシデントへのチケット',
|
||||
'Class:lnkTicketToIncident/Attribute:ticket_id' => 'チケット',
|
||||
'Class:lnkTicketToIncident/Attribute:incident_id' => 'インシデント',
|
||||
'Class:lnkTicketToIncident/Attribute:reason' => '理由',
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
@@ -52,27 +52,27 @@
|
||||
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Menu:ProblemManagement' => 'プロブレム管理', // 'Problem Management', # 'Problem Management'
|
||||
'Menu:ProblemManagement+' => 'プロブレム管理', // 'Problem Management', # 'Problem Management'
|
||||
'Menu:Problem:Overview' => '概要', # 'Overview'
|
||||
'Menu:Problem:Overview+' => '概要', # 'Overview'
|
||||
'Menu:NewProblem' => '新規プロブレム', // 'New Problem', # 'New Problem'
|
||||
'Menu:NewProblem+' => '新規プロブレム', // 'New Problem', # 'New Problem'
|
||||
'Menu:SearchProblems' => 'プロブレムを検索', // 'Search for Problems', # 'Search for Problems'
|
||||
'Menu:SearchProblems+' => 'プロブレムを検索', // 'Search for Problems', # 'Search for Problems'
|
||||
'Menu:Problem:Shortcuts' => 'ショートカット', # 'Shortcuts'
|
||||
'Menu:Problem:MyProblems' => 'マイプロブレム', // 'My Problems', # 'My Problems'
|
||||
'Menu:Problem:MyProblems+' => 'マイプロブレム', // 'My Problems', # 'My Problems'
|
||||
'Menu:Problem:OpenProblems' => '担当のいない problems', # 'All Open problems'
|
||||
'Menu:Problem:OpenProblems+' => '担当のいない problems', # 'All Open problems'
|
||||
'UI-ProblemManagementOverview-ProblemByService' => 'サービス別プロブレム', // 'Problems by Service', # 'Problems by Service'
|
||||
'UI-ProblemManagementOverview-ProblemByService+' => 'サービス別プロブレム', // 'Problems by Service', # 'Problems by Service'
|
||||
'UI-ProblemManagementOverview-ProblemByPriority' => 'プライオリティ別プロブレム', // 'Problems by Priority', # 'Problems by Priority'
|
||||
'UI-ProblemManagementOverview-ProblemByPriority+' => 'プライオリティ別プロブレム', // 'Problems by Priority', # 'Problems by Priority'
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned' => '未アサインプロブレム', // 'Unassigned Problems', # 'Unassigned Problems'
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned+' => '未アサインプロブレム', // 'Unassigned Problems', # 'Unassigned Problems'
|
||||
'UI:ProblemMgmtMenuOverview:Title' => 'プロブレム管理用ダッシュボード', // 'Dashboard for Problem Management', # 'Dashboard for Problem Management'
|
||||
'UI:ProblemMgmtMenuOverview:Title+' => 'プロブレム管理用ダッシュボード', // 'Dashboard for Problem Management', # 'Dashboard for Problem Management'
|
||||
'Menu:ProblemManagement' => '問題管理',
|
||||
'Menu:ProblemManagement+' => '問題管理',
|
||||
'Menu:Problem:Overview' => '概要',
|
||||
'Menu:Problem:Overview+' => '概要',
|
||||
'Menu:NewProblem' => '新規登録',
|
||||
'Menu:NewProblem+' => '新規登録',
|
||||
'Menu:SearchProblems' => '検索',
|
||||
'Menu:SearchProblems+' => '検索',
|
||||
'Menu:Problem:Shortcuts' => 'ショートカット',
|
||||
'Menu:Problem:MyProblems' => '私の担当問題',
|
||||
'Menu:Problem:MyProblems+' => '私の担当問題',
|
||||
'Menu:Problem:OpenProblems' => 'オープンな問題',
|
||||
'Menu:Problem:OpenProblems+' => 'オープンな問題',
|
||||
'UI-ProblemManagementOverview-ProblemByService' => 'サービス別問題',
|
||||
'UI-ProblemManagementOverview-ProblemByService+' => 'サービス別問題',
|
||||
'UI-ProblemManagementOverview-ProblemByPriority' => '優先度別問題',
|
||||
'UI-ProblemManagementOverview-ProblemByPriority+' => '優先度別問題',
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned' => '未割当問題',
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned+' => '未割当問題',
|
||||
'UI:ProblemMgmtMenuOverview:Title' => '問題管理ダッシュボード',
|
||||
'UI:ProblemMgmtMenuOverview:Title+' => '問題管理ダッシュボード',
|
||||
|
||||
));
|
||||
//
|
||||
@@ -80,88 +80,88 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Problem' => 'プロブレム', // 'Problem', # 'Problem'
|
||||
'Class:Problem+' => '', # ''
|
||||
'Class:Problem/Attribute:status' => 'ステータス', // 'Status', # 'Status'
|
||||
'Class:Problem/Attribute:status+' => '', # ''
|
||||
'Class:Problem/Attribute:status/Value:new' => '新規', # 'New'
|
||||
'Class:Problem/Attribute:status/Value:new+' => '', # ''
|
||||
'Class:Problem/Attribute:status/Value:assigned' => '割当済', # 'Assigned'
|
||||
'Class:Problem/Attribute:status/Value:assigned+' => '', # ''
|
||||
'Class:Problem/Attribute:status/Value:resolved' => '解決済み', // 'Resolved', # 'Resolved'
|
||||
'Class:Problem/Attribute:status/Value:resolved+' => '', # ''
|
||||
'Class:Problem/Attribute:status/Value:closed' => '完了', # 'Closed'
|
||||
'Class:Problem/Attribute:status/Value:closed+' => '', # ''
|
||||
'Class:Problem/Attribute:org_id' => 'カスタマー', // 'Customer', # 'Customer'
|
||||
'Class:Problem/Attribute:org_id+' => '', # ''
|
||||
'Class:Problem/Attribute:org_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Problem/Attribute:org_name+' => '共通名', // 'Common name', # 'Common name'
|
||||
'Class:Problem/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:Problem/Attribute:service_id+' => '', # ''
|
||||
'Class:Problem/Attribute:service_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Problem/Attribute:service_name+' => '', # ''
|
||||
'Class:Problem/Attribute:servicesubcategory_id' => 'サービスカテゴリ', // 'Service Category', # 'Service Category'
|
||||
'Class:Problem/Attribute:servicesubcategory_id+' => '', # ''
|
||||
'Class:Problem/Attribute:servicesubcategory_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Problem/Attribute:servicesubcategory_name+' => '', # ''
|
||||
'Class:Problem/Attribute:product' => 'プロダクト', // 'Product', # 'Product'
|
||||
'Class:Problem/Attribute:product+' => '', # ''
|
||||
'Class:Problem/Attribute:impact' => '影響', // 'Impact', # 'Impact'
|
||||
'Class:Problem/Attribute:impact+' => '', # ''
|
||||
'Class:Problem/Attribute:impact/Value:1' => 'パーソン', // 'A Person', # 'A Person'
|
||||
'Class:Problem/Attribute:impact/Value:1+' => '', # ''
|
||||
'Class:Problem/Attribute:impact/Value:2' => 'サービス', // 'A Service', # 'A Service'
|
||||
'Class:Problem/Attribute:impact/Value:2+' => '', # ''
|
||||
'Class:Problem/Attribute:impact/Value:3' => '部署', // 'A Department', # 'A Department'
|
||||
'Class:Problem/Attribute:impact/Value:3+' => '', # ''
|
||||
'Class:Problem/Attribute:urgency' => '緊急', // 'Urgency', # 'Urgency'
|
||||
'Class:Problem/Attribute:urgency+' => '', # ''
|
||||
'Class:Problem/Attribute:urgency/Value:1' => '低', // 'Low', # 'Low'
|
||||
'Class:Problem/Attribute:urgency/Value:1+' => '低', // 'Low', # 'Low'
|
||||
'Class:Problem/Attribute:urgency/Value:2' => '中', // 'Medium', # 'Medium'
|
||||
'Class:Problem/Attribute:urgency/Value:2+' => '中', // 'Medium', # 'Medium'
|
||||
'Class:Problem/Attribute:urgency/Value:3' => '高', // 'High', # 'High'
|
||||
'Class:Problem/Attribute:urgency/Value:3+' => '高', // 'High', # 'High'
|
||||
'Class:Problem/Attribute:priority' => 'プライオリティ', // 'Priority', # 'Priority'
|
||||
'Class:Problem/Attribute:priority+' => '', # ''
|
||||
'Class:Problem/Attribute:priority/Value:1' => '低', // 'Low', # 'Low'
|
||||
'Class:Problem/Attribute:priority/Value:1+' => '', # ''
|
||||
'Class:Problem/Attribute:priority/Value:2' => '中', // 'Medium', # 'Medium'
|
||||
'Class:Problem/Attribute:priority/Value:2+' => '', # ''
|
||||
'Class:Problem/Attribute:priority/Value:3' => '高', // 'High', # 'High'
|
||||
'Class:Problem/Attribute:priority/Value:3+' => '', # ''
|
||||
'Class:Problem/Attribute:workgroup_id' => 'ワークグループ', // 'WorkGroup', # 'WorkGroup'
|
||||
'Class:Problem/Attribute:workgroup_id+' => '', # ''
|
||||
'Class:Problem/Attribute:workgroup_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Problem/Attribute:workgroup_name+' => '', # ''
|
||||
'Class:Problem/Attribute:agent_id' => 'エージェント', // 'Agent', # 'Agent'
|
||||
'Class:Problem/Attribute:agent_id+' => '', # ''
|
||||
'Class:Problem/Attribute:agent_name' => 'エージェント名', // 'Agent Name', # 'Agent Name'
|
||||
'Class:Problem/Attribute:agent_name+' => '', # ''
|
||||
'Class:Problem/Attribute:agent_email' => 'エージェントEメール', // 'Agent Email', # 'Agent Email'
|
||||
'Class:Problem/Attribute:agent_email+' => '', # ''
|
||||
'Class:Problem/Attribute:related_change_id' => '関連する変更', // 'Related Change', # 'Related Change'
|
||||
'Class:Problem/Attribute:related_change_id+' => '', # ''
|
||||
'Class:Problem/Attribute:related_change_ref' => '参照', // 'Ref', # 'Ref'
|
||||
'Class:Problem/Attribute:related_change_ref+' => '', # ''
|
||||
'Class:Problem/Attribute:close_date' => 'クローズ日付', // 'Close Date', # 'Close Date'
|
||||
'Class:Problem/Attribute:close_date+' => '', # ''
|
||||
'Class:Problem/Attribute:last_update' => '最終更新日', // 'Last Update', # 'Last Update'
|
||||
'Class:Problem/Attribute:last_update+' => '', # ''
|
||||
'Class:Problem/Attribute:assignment_date' => 'アサイン日付', // 'Assignment Date', # 'Assignment Date'
|
||||
'Class:Problem/Attribute:assignment_date+' => '', # ''
|
||||
'Class:Problem/Attribute:resolution_date' => '解決日付', // 'Resolution Date', # 'Resolution Date'
|
||||
'Class:Problem/Attribute:resolution_date+' => '', # ''
|
||||
'Class:Problem/Attribute:knownerrors_list' => '既知のエラー', // 'Known Errors', # 'Known Errors'
|
||||
'Class:Problem/Attribute:knownerrors_list+' => '', # ''
|
||||
'Class:Problem/Stimulus:ev_assign' => '割当', # 'Assign'
|
||||
'Class:Problem/Stimulus:ev_assign+' => '', # ''
|
||||
'Class:Problem/Stimulus:ev_reassign' => '再割当', // 'Reaassign', # 'Reaassign'
|
||||
'Class:Problem/Stimulus:ev_reassign+' => '', # ''
|
||||
'Class:Problem/Stimulus:ev_resolve' => '解決', // 'Resolve', # 'Resolve'
|
||||
'Class:Problem/Stimulus:ev_resolve+' => '', # ''
|
||||
'Class:Problem/Stimulus:ev_close' => '完了', # 'Close'
|
||||
'Class:Problem/Stimulus:ev_close+' => '', # ''
|
||||
'Class:Problem' => '問題',
|
||||
'Class:Problem+' => '',
|
||||
'Class:Problem/Attribute:status' => '状態',
|
||||
'Class:Problem/Attribute:status+' => '',
|
||||
'Class:Problem/Attribute:status/Value:new' => '新規',
|
||||
'Class:Problem/Attribute:status/Value:new+' => '',
|
||||
'Class:Problem/Attribute:status/Value:assigned' => '割当済み',
|
||||
'Class:Problem/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Problem/Attribute:status/Value:resolved' => '解決済み',
|
||||
'Class:Problem/Attribute:status/Value:resolved+' => '',
|
||||
'Class:Problem/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:Problem/Attribute:status/Value:closed+' => '',
|
||||
'Class:Problem/Attribute:org_id' => '顧客',
|
||||
'Class:Problem/Attribute:org_id+' => '',
|
||||
'Class:Problem/Attribute:org_name' => '名前',
|
||||
'Class:Problem/Attribute:org_name+' => '共通名',
|
||||
'Class:Problem/Attribute:service_id' => 'サービス',
|
||||
'Class:Problem/Attribute:service_id+' => '',
|
||||
'Class:Problem/Attribute:service_name' => '名前',
|
||||
'Class:Problem/Attribute:service_name+' => '',
|
||||
'Class:Problem/Attribute:servicesubcategory_id' => 'サービスカテゴリー',
|
||||
'Class:Problem/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:Problem/Attribute:servicesubcategory_name' => '名前',
|
||||
'Class:Problem/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:Problem/Attribute:product' => '製品',
|
||||
'Class:Problem/Attribute:product+' => '',
|
||||
'Class:Problem/Attribute:impact' => 'インパクト',
|
||||
'Class:Problem/Attribute:impact+' => '',
|
||||
'Class:Problem/Attribute:impact/Value:1' => '人',
|
||||
'Class:Problem/Attribute:impact/Value:1+' => '',
|
||||
'Class:Problem/Attribute:impact/Value:2' => 'サービス',
|
||||
'Class:Problem/Attribute:impact/Value:2+' => '',
|
||||
'Class:Problem/Attribute:impact/Value:3' => '部署',
|
||||
'Class:Problem/Attribute:impact/Value:3+' => '',
|
||||
'Class:Problem/Attribute:urgency' => '緊急度',
|
||||
'Class:Problem/Attribute:urgency+' => '',
|
||||
'Class:Problem/Attribute:urgency/Value:1' => '低',
|
||||
'Class:Problem/Attribute:urgency/Value:1+' => '低',
|
||||
'Class:Problem/Attribute:urgency/Value:2' => '中',
|
||||
'Class:Problem/Attribute:urgency/Value:2+' => '中',
|
||||
'Class:Problem/Attribute:urgency/Value:3' => '高',
|
||||
'Class:Problem/Attribute:urgency/Value:3+' => '高',
|
||||
'Class:Problem/Attribute:priority' => '優先度',
|
||||
'Class:Problem/Attribute:priority+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:1' => '低',
|
||||
'Class:Problem/Attribute:priority/Value:1+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:2' => '中',
|
||||
'Class:Problem/Attribute:priority/Value:2+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:3' => '高',
|
||||
'Class:Problem/Attribute:priority/Value:3+' => '',
|
||||
'Class:Problem/Attribute:workgroup_id' => 'ワークグループ',
|
||||
'Class:Problem/Attribute:workgroup_id+' => '',
|
||||
'Class:Problem/Attribute:workgroup_name' => '名前',
|
||||
'Class:Problem/Attribute:workgroup_name+' => '',
|
||||
'Class:Problem/Attribute:agent_id' => 'エージェント',
|
||||
'Class:Problem/Attribute:agent_id+' => '',
|
||||
'Class:Problem/Attribute:agent_name' => 'エージェント名',
|
||||
'Class:Problem/Attribute:agent_name+' => '',
|
||||
'Class:Problem/Attribute:agent_email' => 'エージェントEメール',
|
||||
'Class:Problem/Attribute:agent_email+' => '',
|
||||
'Class:Problem/Attribute:related_change_id' => '関連する変更',
|
||||
'Class:Problem/Attribute:related_change_id+' => '',
|
||||
'Class:Problem/Attribute:related_change_ref' => '参照',
|
||||
'Class:Problem/Attribute:related_change_ref+' => '',
|
||||
'Class:Problem/Attribute:close_date' => 'クローズ日',
|
||||
'Class:Problem/Attribute:close_date+' => '',
|
||||
'Class:Problem/Attribute:last_update' => '最終更新日',
|
||||
'Class:Problem/Attribute:last_update+' => '',
|
||||
'Class:Problem/Attribute:assignment_date' => '割り当て日',
|
||||
'Class:Problem/Attribute:assignment_date+' => '',
|
||||
'Class:Problem/Attribute:resolution_date' => '解決日',
|
||||
'Class:Problem/Attribute:resolution_date+' => '',
|
||||
'Class:Problem/Attribute:knownerrors_list' => '既知のエラー',
|
||||
'Class:Problem/Attribute:knownerrors_list+' => '',
|
||||
'Class:Problem/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:Problem/Stimulus:ev_assign+' => '',
|
||||
'Class:Problem/Stimulus:ev_reassign' => '再割り当て',
|
||||
'Class:Problem/Stimulus:ev_reassign+' => '',
|
||||
'Class:Problem/Stimulus:ev_resolve' => '解決',
|
||||
'Class:Problem/Stimulus:ev_resolve+' => '',
|
||||
'Class:Problem/Stimulus:ev_close' => 'クローズ',
|
||||
'Class:Problem/Stimulus:ev_close+' => '',
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
@@ -24,22 +24,22 @@
|
||||
*/
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Menu:RequestManagement' => 'ヘルプデスク', # 'Helpdesk'
|
||||
'Menu:RequestManagement+' => 'ヘルプデスク', # 'Helpdesk'
|
||||
'Menu:UserRequest:Overview' => '概要', # 'Overview'
|
||||
'Menu:UserRequest:Overview+' => '概要', # 'Overview'
|
||||
'Menu:NewUserRequest' => '新規リクエスト', # 'New User Request'
|
||||
'Menu:NewUserRequest+' => 'リクエストチケットを作成', # 'Create a new User Request ticket'
|
||||
'Menu:SearchUserRequests' => 'リクエストを検索', # 'Search for User Requests'
|
||||
'Menu:SearchUserRequests+' => 'リクエストチケットを検索', # 'Search for User Request tickets'
|
||||
'Menu:UserRequest:Shortcuts' => 'ショートカット', # 'Shortcuts'
|
||||
'Menu:UserRequest:Shortcuts+' => '', # ''
|
||||
'Menu:UserRequest:MyRequests' => '担当しているリクエスト', # 'Requests assigned to me'
|
||||
'Menu:UserRequest:MyRequests+' => '担当しているリクエスト(エージェント)', # 'Requests assigned to me (as Agent)'
|
||||
'Menu:UserRequest:EscalatedRequests' => 'エスカレーションされた Requests', # 'Escalated Requests'
|
||||
'Menu:UserRequest:EscalatedRequests+' => 'エスカレーションされた Requests', # 'Escalated Requests'
|
||||
'Menu:UserRequest:OpenRequests' => '担当のいないリクエスト', # 'All Open Requests'
|
||||
'Menu:UserRequest:OpenRequests+' => '担当のいないリクエスト', # 'All Open Requests'
|
||||
'Menu:RequestManagement' => 'ヘルプデスク',
|
||||
'Menu:RequestManagement+' => 'ヘルプデスク',
|
||||
'Menu:UserRequest:Overview' => '概要',
|
||||
'Menu:UserRequest:Overview+' => '概要',
|
||||
'Menu:NewUserRequest' => '新規要求',
|
||||
'Menu:NewUserRequest+' => '要求チケットを作成',
|
||||
'Menu:SearchUserRequests' => '要求を検索',
|
||||
'Menu:SearchUserRequests+' => '要求チケットを検索',
|
||||
'Menu:UserRequest:Shortcuts' => 'ショートカット',
|
||||
'Menu:UserRequest:Shortcuts+' => '',
|
||||
'Menu:UserRequest:MyRequests' => '担当の要求',
|
||||
'Menu:UserRequest:MyRequests+' => '担当の要求(エージェント)',
|
||||
'Menu:UserRequest:EscalatedRequests' => 'エスカレーションされた要求',
|
||||
'Menu:UserRequest:EscalatedRequests+' => 'エスカレーションされた要求',
|
||||
'Menu:UserRequest:OpenRequests' => 'オープン中の要求',
|
||||
'Menu:UserRequest:OpenRequests+' => 'オープン中の要求',
|
||||
));
|
||||
|
||||
// Dictionnay conventions
|
||||
@@ -57,30 +57,30 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:UserRequest' => 'ユーザーリクエスト', # 'User Request'
|
||||
'Class:UserRequest+' => '', # ''
|
||||
'Class:UserRequest/Attribute:request_type' => 'リクエストの種別', # 'Request Type'
|
||||
'Class:UserRequest/Attribute:request_type+' => '', # ''
|
||||
'Class:UserRequest/Attribute:request_type/Value:information' => '情報', # 'Information'
|
||||
'Class:UserRequest/Attribute:request_type/Value:information+' => '情報', # 'Information'
|
||||
'Class:UserRequest/Attribute:request_type/Value:issue' => '問題点', # 'Issue'
|
||||
'Class:UserRequest/Attribute:request_type/Value:issue+' => '問題点', # 'Issue'
|
||||
'Class:UserRequest/Attribute:request_type/Value:service request' => 'サービスの依頼', # 'Service Request'
|
||||
'Class:UserRequest/Attribute:request_type/Value:service request+' => 'サービスの依頼', # 'Service Request'
|
||||
'Class:UserRequest/Attribute:freeze_reason' => '保留の理由', # 'Pending reason'
|
||||
'Class:UserRequest/Attribute:freeze_reason+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_assign' => '割当', # 'Assign'
|
||||
'Class:UserRequest/Stimulus:ev_assign+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_reassign' => '再割当', # 'Reassign'
|
||||
'Class:UserRequest/Stimulus:ev_reassign+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_timeout' => '中断(エスカレーション)', # 'ev_timeout'
|
||||
'Class:UserRequest/Stimulus:ev_timeout+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_resolve' => '解決済みとする', # 'Mark as resolved'
|
||||
'Class:UserRequest/Stimulus:ev_resolve+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_close' => '完了', # 'Close'
|
||||
'Class:UserRequest/Stimulus:ev_close+' => '', # ''
|
||||
'Class:UserRequest/Stimulus:ev_freeze' => '保留とする', # 'Mark as pending'
|
||||
'Class:UserRequest/Stimulus:ev_freeze+' => '', # ''
|
||||
'Class:UserRequest' => 'ユーザー要求',
|
||||
'Class:UserRequest+' => '',
|
||||
'Class:UserRequest/Attribute:request_type' => '要求のタイプ',
|
||||
'Class:UserRequest/Attribute:request_type+' => '',
|
||||
'Class:UserRequest/Attribute:request_type/Value:information' => '情報',
|
||||
'Class:UserRequest/Attribute:request_type/Value:information+' => '情報',
|
||||
'Class:UserRequest/Attribute:request_type/Value:issue' => '課題',
|
||||
'Class:UserRequest/Attribute:request_type/Value:issue+' => '課題',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service request' => 'サービス要求',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service request+' => 'サービス要求',
|
||||
'Class:UserRequest/Attribute:freeze_reason' => '保留の理由',
|
||||
'Class:UserRequest/Attribute:freeze_reason+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:UserRequest/Stimulus:ev_assign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reassign' => '再割り当て',
|
||||
'Class:UserRequest/Stimulus:ev_reassign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_timeout' => 'ev_タイムアウト',
|
||||
'Class:UserRequest/Stimulus:ev_timeout+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_resolve' => '解決済み',
|
||||
'Class:UserRequest/Stimulus:ev_resolve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_close' => 'クローズ',
|
||||
'Class:UserRequest/Stimulus:ev_close+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_freeze' => '保留',
|
||||
'Class:UserRequest/Stimulus:ev_freeze+' => '',
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
@@ -35,27 +35,29 @@
|
||||
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Menu:ServiceManagement' => 'サービス管理', // 'Service Management', # 'Service Management'
|
||||
'Menu:ServiceManagement+' => 'サービス管理概要', // 'Service Management Overview', # 'Service Management Overview'
|
||||
'Menu:Service:Overview' => '概要', # 'Overview'
|
||||
'Menu:Service:Overview+' => '', # ''
|
||||
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'サービスレベル別コンタクト', // 'Contracts by service level', # 'Contracts by service level'
|
||||
'UI-ServiceManagementMenu-ContractsByStatus' => 'ステータス別コンタクト', // 'Contracts by status', # 'Contracts by status'
|
||||
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => '30日以内に終了するコンタクト', // 'Contracts ending in less then 30 days', # 'Contracts ending in less then 30 days'
|
||||
'Menu:ServiceType' => 'サービスタイプ', // 'Service Types', # 'Service Types'
|
||||
'Menu:ServiceType+' => 'サービスタイプ', // 'Service Types', # 'Service Types'
|
||||
'Menu:ProviderContract' => 'プロバイダコンタクト', // 'Provider Contracts', # 'Provider Contracts'
|
||||
'Menu:ProviderContract+' => 'プロバイダコンタクト', // 'Provider Contracts', # 'Provider Contracts'
|
||||
'Menu:CustomerContract' => 'カスタマーコンタクト', // 'Customer Contracts', # 'Customer Contracts'
|
||||
'Menu:CustomerContract+' => 'カスタマーコンタクト', // 'Customer Contracts', # 'Customer Contracts'
|
||||
'Menu:ServiceSubcategory' => 'サービスのサブカテゴリ', // 'Service Subcategories', # 'Service Subcategories'
|
||||
'Menu:ServiceSubcategory+' => 'サービスのサブカテゴリ', // 'Service Subcategories', # 'Service Subcategories'
|
||||
'Menu:Service' => 'サービス', // 'Services', # 'Services'
|
||||
'Menu:Service+' => 'サービス', // 'Services', # 'Services'
|
||||
'Menu:SLA' => 'SLA', // 'SLAs', # 'SLAs'
|
||||
'Menu:SLA+' => 'サービスレベルアグリーメント', // 'Service Level Agreements', # 'Service Level Agreements'
|
||||
'Menu:SLT' => 'SLT', // 'SLTs', # 'SLTs'
|
||||
'Menu:SLT+' => 'サービスレベルターゲット', // 'Service Level Targets', # 'Service Level Targets'
|
||||
'Menu:ServiceManagement' => 'サービス管理',
|
||||
'Menu:ServiceManagement+' => 'サービス管理概要',
|
||||
'Menu:Service:Overview' => '概要',
|
||||
'Menu:Service:Overview+' => '',
|
||||
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'サービスレベル別連絡先',
|
||||
'UI-ServiceManagementMenu-ContractsByStatus' => '状態別連絡先',
|
||||
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => '30日以内に終了する契約',
|
||||
|
||||
'Menu:ServiceType' => 'サービスタイプ',
|
||||
'Menu:ServiceType+' => 'サービスタイプ',
|
||||
'Menu:ProviderContract' => 'プロバイダ契約',
|
||||
'Menu:ProviderContract+' => 'プロバイダ契約',
|
||||
'Menu:CustomerContract' => '顧客契約',
|
||||
'Menu:CustomerContract+' => '顧客契約',
|
||||
'Menu:ServiceSubcategory' => 'サービスのサブカテゴリ',
|
||||
'Menu:ServiceSubcategory+' => 'サービスのサブカテゴリ',
|
||||
'Menu:Service' => 'サービス',
|
||||
'Menu:Service+' => 'サービス',
|
||||
'Menu:SLA' => 'SLA',
|
||||
'Menu:SLA+' => 'サービスレベルアグリーメント',
|
||||
'Menu:SLT' => 'SLT',
|
||||
'Menu:SLT+' => 'サービスレベルターゲット',
|
||||
|
||||
));
|
||||
|
||||
|
||||
@@ -74,36 +76,36 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Contract' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:Contract+' => '', # ''
|
||||
'Class:Contract/Attribute:name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Contract/Attribute:name+' => '', # ''
|
||||
'Class:Contract/Attribute:description' => '詳細記述', // 'Description', # 'Description'
|
||||
'Class:Contract/Attribute:description+' => '', # ''
|
||||
'Class:Contract/Attribute:start_date' => '開始日付', // 'Start date', # 'Start date'
|
||||
'Class:Contract/Attribute:start_date+' => '', # ''
|
||||
'Class:Contract/Attribute:end_date' => '終了日付', // 'End date', # 'End date'
|
||||
'Class:Contract/Attribute:end_date+' => '', # ''
|
||||
'Class:Contract/Attribute:cost' => 'コスト', // 'Cost', # 'Cost'
|
||||
'Class:Contract/Attribute:cost+' => '', # ''
|
||||
'Class:Contract/Attribute:cost_currency' => 'コスト通貨', // 'Cost Currency', # 'Cost Currency'
|
||||
'Class:Contract/Attribute:cost_currency+' => '', # ''
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars' => '米ドル', // 'Dollars', # 'Dollars'
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars+' => '', # ''
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros' => 'ユーロ', // 'Euros', # 'Euros'
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros+' => '', # ''
|
||||
'Class:Contract/Attribute:cost_unit' => 'コスト単位', // 'Cost unit', # 'Cost unit'
|
||||
'Class:Contract/Attribute:cost_unit+' => '', # ''
|
||||
'Class:Contract/Attribute:billing_frequency' => 'ビリング頻度', // 'Billing frequency', # 'Billing frequency'
|
||||
'Class:Contract/Attribute:billing_frequency+' => '', # ''
|
||||
'Class:Contract/Attribute:contact_list' => 'コンタクト', // 'Contacts', # 'Contacts'
|
||||
'Class:Contract/Attribute:contact_list+' => '本契約に関連するコンタクト', // 'Contacts related to the contract', # 'Contacts related to the contract'
|
||||
'Class:Contract/Attribute:document_list' => 'ドキュメント', // 'Documents', # 'Documents'
|
||||
'Class:Contract/Attribute:document_list+' => '本契約に付随するドキュメント', // 'Documents attached to the contract', # 'Documents attached to the contract'
|
||||
'Class:Contract/Attribute:ci_list' => 'CI', // 'CIs', # 'CIs'
|
||||
'Class:Contract/Attribute:ci_list+' => '本契約でサポートされるCI', // 'CI supported by the contract', # 'CI supported by the contract'
|
||||
'Class:Contract/Attribute:finalclass' => 'タイプ', // 'Type', # 'Type'
|
||||
'Class:Contract/Attribute:finalclass+' => '', # ''
|
||||
'Class:Contract' => '契約',
|
||||
'Class:Contract+' => '',
|
||||
'Class:Contract/Attribute:name' => '名前',
|
||||
'Class:Contract/Attribute:name+' => '',
|
||||
'Class:Contract/Attribute:description' => '説明',
|
||||
'Class:Contract/Attribute:description+' => '',
|
||||
'Class:Contract/Attribute:start_date' => '開始日',
|
||||
'Class:Contract/Attribute:start_date+' => '',
|
||||
'Class:Contract/Attribute:end_date' => '終了日',
|
||||
'Class:Contract/Attribute:end_date+' => '',
|
||||
'Class:Contract/Attribute:cost' => '費用',
|
||||
'Class:Contract/Attribute:cost+' => '',
|
||||
'Class:Contract/Attribute:cost_currency' => '費用通貨',
|
||||
'Class:Contract/Attribute:cost_currency+' => '',
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars' => '米ドル',
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars+' => '',
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros' => 'ユーロ',
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros+' => '',
|
||||
'Class:Contract/Attribute:cost_unit' => '費用単位',
|
||||
'Class:Contract/Attribute:cost_unit+' => '',
|
||||
'Class:Contract/Attribute:billing_frequency' => '課金頻度',
|
||||
'Class:Contract/Attribute:billing_frequency+' => '',
|
||||
'Class:Contract/Attribute:contact_list' => '連絡先',
|
||||
'Class:Contract/Attribute:contact_list+' => 'この契約に関連する連絡先',
|
||||
'Class:Contract/Attribute:document_list' => '文書',
|
||||
'Class:Contract/Attribute:document_list+' => 'この契約に付随する文書',
|
||||
'Class:Contract/Attribute:ci_list' => 'CI',
|
||||
'Class:Contract/Attribute:ci_list+' => 'この契約でサポートされるCI',
|
||||
'Class:Contract/Attribute:finalclass' => 'タイプ',
|
||||
'Class:Contract/Attribute:finalclass+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -111,16 +113,16 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:ProviderContract' => 'プロバイダ契約', // 'Provider Contract', # 'Provider Contract'
|
||||
'Class:ProviderContract+' => '', # ''
|
||||
'Class:ProviderContract/Attribute:provider_id' => 'プロバイダ', // 'Provider', # 'Provider'
|
||||
'Class:ProviderContract/Attribute:provider_id+' => '', # ''
|
||||
'Class:ProviderContract/Attribute:provider_name' => 'プロバイダ名', // 'Provider name', # 'Provider name'
|
||||
'Class:ProviderContract/Attribute:provider_name+' => '', # ''
|
||||
'Class:ProviderContract/Attribute:sla' => 'SLA', # 'SLA'
|
||||
'Class:ProviderContract/Attribute:sla+' => 'サービスレベルアグリーメント', // 'Service Level Agreement', # 'Service Level Agreement'
|
||||
'Class:ProviderContract/Attribute:coverage' => 'サービス時間', // 'Service hours', # 'Service hours'
|
||||
'Class:ProviderContract/Attribute:coverage+' => '', # ''
|
||||
'Class:ProviderContract' => 'プロバイダ契約',
|
||||
'Class:ProviderContract+' => '',
|
||||
'Class:ProviderContract/Attribute:provider_id' => 'プロバイダ',
|
||||
'Class:ProviderContract/Attribute:provider_id+' => '',
|
||||
'Class:ProviderContract/Attribute:provider_name' => 'プロバイダ名',
|
||||
'Class:ProviderContract/Attribute:provider_name+' => '',
|
||||
'Class:ProviderContract/Attribute:sla' => 'SLA',
|
||||
'Class:ProviderContract/Attribute:sla+' => 'サービスレベルアグリーメント',
|
||||
'Class:ProviderContract/Attribute:coverage' => 'サービス時間帯',
|
||||
'Class:ProviderContract/Attribute:coverage+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -128,47 +130,46 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:CustomerContract' => 'カスタマ契約', // 'Customer Contract', # 'Customer Contract'
|
||||
'Class:CustomerContract+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:org_id' => 'カスタマ', // 'Customer', # 'Customer'
|
||||
'Class:CustomerContract/Attribute:org_id+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:org_name' => 'カスタマ名', // 'Customer name', # 'Customer name'
|
||||
'Class:CustomerContract/Attribute:org_name+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:provider_id' => 'プロバイダ', // 'Provider', # 'Provider'
|
||||
'Class:CustomerContract/Attribute:provider_id+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:provider_name' => 'プロバイダ名', // 'Provider name', # 'Provider name'
|
||||
'Class:CustomerContract/Attribute:provider_name+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:support_team_id' => 'サポートチーム', // 'Support team', # 'Support team'
|
||||
'Class:CustomerContract/Attribute:support_team_id+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:support_team_name' => 'サポートチーム', // 'Support team', # 'Support team'
|
||||
'Class:CustomerContract/Attribute:support_team_name+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:provider_list' => 'プロバイダ', // 'Providers', # 'Providers'
|
||||
'Class:CustomerContract/Attribute:provider_list+' => '', # ''
|
||||
'Class:CustomerContract/Attribute:sla_list' => 'SLA', // 'SLAs', # 'SLAs'
|
||||
'Class:CustomerContract/Attribute:sla_list+' => '本契約に関連するSLAリスト', // 'List of SLA related to the contract', # 'List of SLA related to the contract'
|
||||
'Class:CustomerContract/Attribute:provider_list' => '前提となる契約', // 'Underpinning Contracts', # 'Underpinning Contracts'
|
||||
'Class:CustomerContract/Attribute:sla_list+' => '', # ''
|
||||
'Class:CustomerContract' => '顧客契約',
|
||||
'Class:CustomerContract+' => '',
|
||||
'Class:CustomerContract/Attribute:org_id' => '顧客',
|
||||
'Class:CustomerContract/Attribute:org_id+' => '',
|
||||
'Class:CustomerContract/Attribute:org_name' => '顧客名',
|
||||
'Class:CustomerContract/Attribute:org_name+' => '',
|
||||
'Class:CustomerContract/Attribute:provider_id' => 'プロバイダ',
|
||||
'Class:CustomerContract/Attribute:provider_id+' => '',
|
||||
'Class:CustomerContract/Attribute:provider_name' => 'プロバイダ名',
|
||||
'Class:CustomerContract/Attribute:provider_name+' => '',
|
||||
'Class:CustomerContract/Attribute:support_team_id' => 'サポートチーム',
|
||||
'Class:CustomerContract/Attribute:support_team_id+' => '',
|
||||
'Class:CustomerContract/Attribute:support_team_name' => 'サポートチーム',
|
||||
'Class:CustomerContract/Attribute:support_team_name+' => '',
|
||||
'Class:CustomerContract/Attribute:provider_list' => 'プロバイダ',
|
||||
'Class:CustomerContract/Attribute:provider_list+' => '',
|
||||
'Class:CustomerContract/Attribute:sla_list' => 'SLA',
|
||||
'Class:CustomerContract/Attribute:sla_list+' => 'この契約に関連するSLAリスト',
|
||||
'Class:CustomerContract/Attribute:provider_list' => '前提となる契約', // 'Underpinning Contracts',
|
||||
'Class:CustomerContract/Attribute:sla_list+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: lnkCustomerContractToProviderContract
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkCustomerContractToProviderContract' => 'カスタマー契約とプロバイダ契約のリンク', // 'lnkCustomerContractToProviderContract', # 'lnkCustomerContractToProviderContract'
|
||||
'Class:lnkCustomerContractToProviderContract+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_id' => 'カスタマ契約', // 'Customer Contract', # 'Customer Contract'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_id+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_name+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_id' => 'プロバイダ契約', // 'Provider Contract', # 'Provider Contract'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_id+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_name+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_sla' => 'プロバイダSLA', // 'Provider SLA', # 'Provider SLA'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_sla+' => 'サービスレベルアグリーメント', // 'Service Level Agreement', # 'Service Level Agreement'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_coverage' => 'サービス時間', // 'Service hours', # 'Service hours'
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_coverage+' => '', # ''
|
||||
'Class:lnkCustomerContractToProviderContract' => '顧客契約とプロバイダ契約のリンク',
|
||||
'Class:lnkCustomerContractToProviderContract+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_id' => 'カスタマ契約',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_id+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_name' => '名前',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customer_contract_name+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_id' => 'プロバイダ契約',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_id+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_name' => '名前',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_contract_name+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_sla' => 'プロバイダSLA',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_sla+' => 'サービスレベルアグリーメント',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_coverage' => 'サービス時間帯',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:provider_coverage+' => '',
|
||||
));
|
||||
|
||||
|
||||
@@ -177,18 +178,18 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkContractToSLA' => '契約/SLA', // 'Contract/SLA', # 'Contract/SLA'
|
||||
'Class:lnkContractToSLA+' => '', # ''
|
||||
'Class:lnkContractToSLA/Attribute:contract_id' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToSLA/Attribute:contract_id+' => '', # ''
|
||||
'Class:lnkContractToSLA/Attribute:contract_name' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToSLA/Attribute:contract_name+' => '', # ''
|
||||
'Class:lnkContractToSLA/Attribute:sla_id' => 'SLA', # 'SLA'
|
||||
'Class:lnkContractToSLA/Attribute:sla_id+' => '', # ''
|
||||
'Class:lnkContractToSLA/Attribute:sla_name' => 'SLA', # 'SLA'
|
||||
'Class:lnkContractToSLA/Attribute:sla_name+' => '', # ''
|
||||
'Class:lnkContractToSLA/Attribute:coverage' => 'サービス時間', // 'Service Hours', # 'Service Hours'
|
||||
'Class:lnkContractToSLA/Attribute:coverage+' => '', # ''
|
||||
'Class:lnkContractToSLA' => '契約/SLA',
|
||||
'Class:lnkContractToSLA+' => '',
|
||||
'Class:lnkContractToSLA/Attribute:contract_id' => '契約',
|
||||
'Class:lnkContractToSLA/Attribute:contract_id+' => '',
|
||||
'Class:lnkContractToSLA/Attribute:contract_name' => '契約',
|
||||
'Class:lnkContractToSLA/Attribute:contract_name+' => '',
|
||||
'Class:lnkContractToSLA/Attribute:sla_id' => 'SLA',
|
||||
'Class:lnkContractToSLA/Attribute:sla_id+' => '',
|
||||
'Class:lnkContractToSLA/Attribute:sla_name' => 'SLA',
|
||||
'Class:lnkContractToSLA/Attribute:sla_name+' => '',
|
||||
'Class:lnkContractToSLA/Attribute:coverage' => 'サービス時間帯',
|
||||
'Class:lnkContractToSLA/Attribute:coverage+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -196,20 +197,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkContractToDoc' => '契約/ドキュメント', // 'Contract/Doc', # 'Contract/Doc'
|
||||
'Class:lnkContractToDoc+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:contract_id' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToDoc/Attribute:contract_id+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:contract_name' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToDoc/Attribute:contract_name+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:document_id' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkContractToDoc/Attribute:document_id+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:document_name' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkContractToDoc/Attribute:document_name+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:document_type' => 'ドキュメントタイプ', // 'Document type', # 'Document type'
|
||||
'Class:lnkContractToDoc/Attribute:document_type+' => '', # ''
|
||||
'Class:lnkContractToDoc/Attribute:document_status' => 'ドキュメントステータス', // 'Document status', # 'Document status'
|
||||
'Class:lnkContractToDoc/Attribute:document_status+' => '', # ''
|
||||
'Class:lnkContractToDoc' => '契約/文書',
|
||||
'Class:lnkContractToDoc+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:contract_id' => '契約',
|
||||
'Class:lnkContractToDoc/Attribute:contract_id+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:contract_name' => '契約',
|
||||
'Class:lnkContractToDoc/Attribute:contract_name+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:document_id' => '文書',
|
||||
'Class:lnkContractToDoc/Attribute:document_id+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:document_name' => '文書',
|
||||
'Class:lnkContractToDoc/Attribute:document_name+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:document_type' => '文書のタイプ',
|
||||
'Class:lnkContractToDoc/Attribute:document_type+' => '',
|
||||
'Class:lnkContractToDoc/Attribute:document_status' => '文書の状態',
|
||||
'Class:lnkContractToDoc/Attribute:document_status+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -217,20 +218,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkContractToContact' => '契約/コンタクト', // 'Contract/Contact', # 'Contract/Contact'
|
||||
'Class:lnkContractToContact+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:contract_id' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToContact/Attribute:contract_id+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:contract_name' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToContact/Attribute:contract_name+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:contact_id' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkContractToContact/Attribute:contact_id+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:contact_name' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkContractToContact/Attribute:contact_name+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:contact_email' => 'コンタクトEメール', // 'Contact email', # 'Contact email'
|
||||
'Class:lnkContractToContact/Attribute:contact_email+' => '', # ''
|
||||
'Class:lnkContractToContact/Attribute:role' => '役割', // 'Role', # 'Role'
|
||||
'Class:lnkContractToContact/Attribute:role+' => '', # ''
|
||||
'Class:lnkContractToContact' => '契約/連絡先',
|
||||
'Class:lnkContractToContact+' => '',
|
||||
'Class:lnkContractToContact/Attribute:contract_id' => '契約',
|
||||
'Class:lnkContractToContact/Attribute:contract_id+' => '',
|
||||
'Class:lnkContractToContact/Attribute:contract_name' => '契約',
|
||||
'Class:lnkContractToContact/Attribute:contract_name+' => '',
|
||||
'Class:lnkContractToContact/Attribute:contact_id' => '連絡先',
|
||||
'Class:lnkContractToContact/Attribute:contact_id+' => '',
|
||||
'Class:lnkContractToContact/Attribute:contact_name' => '連絡先',
|
||||
'Class:lnkContractToContact/Attribute:contact_name+' => '',
|
||||
'Class:lnkContractToContact/Attribute:contact_email' => '連絡先Eメール',
|
||||
'Class:lnkContractToContact/Attribute:contact_email+' => '',
|
||||
'Class:lnkContractToContact/Attribute:role' => '役割',
|
||||
'Class:lnkContractToContact/Attribute:role+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -238,18 +239,18 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkContractToCI' => '契約/CI', // 'Contract/CI', # 'Contract/CI'
|
||||
'Class:lnkContractToCI+' => '', # ''
|
||||
'Class:lnkContractToCI/Attribute:contract_id' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToCI/Attribute:contract_id+' => '', # ''
|
||||
'Class:lnkContractToCI/Attribute:contract_name' => '契約', // 'Contract', # 'Contract'
|
||||
'Class:lnkContractToCI/Attribute:contract_name+' => '', # ''
|
||||
'Class:lnkContractToCI/Attribute:ci_id' => 'CI', # 'CI'
|
||||
'Class:lnkContractToCI/Attribute:ci_id+' => '', # ''
|
||||
'Class:lnkContractToCI/Attribute:ci_name' => 'CI', # 'CI'
|
||||
'Class:lnkContractToCI/Attribute:ci_name+' => '', # ''
|
||||
'Class:lnkContractToCI/Attribute:ci_status' => 'CIステータス', // 'CI status', # 'CI status'
|
||||
'Class:lnkContractToCI/Attribute:ci_status+' => '', # ''
|
||||
'Class:lnkContractToCI' => '契約/CI',
|
||||
'Class:lnkContractToCI+' => '',
|
||||
'Class:lnkContractToCI/Attribute:contract_id' => '契約',
|
||||
'Class:lnkContractToCI/Attribute:contract_id+' => '',
|
||||
'Class:lnkContractToCI/Attribute:contract_name' => '契約',
|
||||
'Class:lnkContractToCI/Attribute:contract_name+' => '',
|
||||
'Class:lnkContractToCI/Attribute:ci_id' => 'CI',
|
||||
'Class:lnkContractToCI/Attribute:ci_id+' => '',
|
||||
'Class:lnkContractToCI/Attribute:ci_name' => 'CI',
|
||||
'Class:lnkContractToCI/Attribute:ci_name+' => '',
|
||||
'Class:lnkContractToCI/Attribute:ci_status' => 'CIの状態',
|
||||
'Class:lnkContractToCI/Attribute:ci_status+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -257,40 +258,40 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Service' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:Service+' => '', # ''
|
||||
'Class:Service/Attribute:org_id' => 'プロバイダ', // 'Provider', # 'Provider'
|
||||
'Class:Service/Attribute:org_id+' => '', # ''
|
||||
'Class:Service/Attribute:provider_name' => 'プロバイダ', // 'Provider', # 'Provider'
|
||||
'Class:Service/Attribute:provider_name+' => '', # ''
|
||||
'Class:Service/Attribute:name' => '名前', // 'Name', # 'Name'
|
||||
'Class:Service/Attribute:name+' => '', # ''
|
||||
'Class:Service/Attribute:description' => '詳細記述', // 'Description', # 'Description'
|
||||
'Class:Service/Attribute:description+' => '', # ''
|
||||
'Class:Service/Attribute:type' => 'タイプ', // 'Type', # 'Type'
|
||||
'Class:Service/Attribute:type+' => '', # ''
|
||||
'Class:Service/Attribute:type/Value:IncidentManagement' => 'インシデント管理', # 'Incident Management'
|
||||
'Class:Service/Attribute:type/Value:IncidentManagement+' => 'インシデント管理', # 'Incident Management'
|
||||
'Class:Service/Attribute:type/Value:RequestManagement' => 'リクエスト管理', # 'Request Management'
|
||||
'Class:Service/Attribute:type/Value:RequestManagement+' => 'リクエスト管理', # 'Request Management'
|
||||
'Class:Service/Attribute:status' => 'Status', # 'Status'
|
||||
'Class:Service/Attribute:status+' => '', # ''
|
||||
'Class:Service/Attribute:status/Value:design' => '設計', // 'Design', # 'Design'
|
||||
'Class:Service/Attribute:status/Value:design+' => '', # ''
|
||||
'Class:Service/Attribute:status/Value:obsolete' => 'すでに利用されていない', // 'Obsolete', # 'Obsolete'
|
||||
'Class:Service/Attribute:status/Value:obsolete+' => '', # ''
|
||||
'Class:Service/Attribute:status/Value:production' => 'プロダクション', // 'Production', # 'Production'
|
||||
'Class:Service/Attribute:status/Value:production+' => '', # ''
|
||||
'Class:Service/Attribute:subcategory_list' => 'サービスサブカテゴリ', // 'Service subcategories', # 'Service subcategories'
|
||||
'Class:Service/Attribute:subcategory_list+' => '', # ''
|
||||
'Class:Service/Attribute:sla_list' => 'SLA', // 'SLAs', # 'SLAs'
|
||||
'Class:Service/Attribute:sla_list+' => '', # ''
|
||||
'Class:Service/Attribute:document_list' => 'ドキュメント', // 'Documents', # 'Documents'
|
||||
'Class:Service/Attribute:document_list+' => 'サービスに添付されているドキュメント', // 'Documents attached to the service', # 'Documents attached to the service'
|
||||
'Class:Service/Attribute:contact_list' => 'コンタクト', // 'Contacts', # 'Contacts'
|
||||
'Class:Service/Attribute:contact_list+' => '本サービスに対する役割を保持するコンタクト', // 'Contacts having a role for this service', # 'Contacts having a role for this service'
|
||||
'Class:Service/Tab:Related_Contracts' => '関連する契約', // 'Related Contracts', # 'Related Contracts'
|
||||
'Class:Service/Tab:Related_Contracts+' => '本サービス用に締結された契約', // 'Contracts signed for this service', # 'Contracts signed for this service'
|
||||
'Class:Service' => 'サービス',
|
||||
'Class:Service+' => '',
|
||||
'Class:Service/Attribute:org_id' => 'プロバイダ',
|
||||
'Class:Service/Attribute:org_id+' => '',
|
||||
'Class:Service/Attribute:provider_name' => 'プロバイダ',
|
||||
'Class:Service/Attribute:provider_name+' => '',
|
||||
'Class:Service/Attribute:name' => '名前',
|
||||
'Class:Service/Attribute:name+' => '',
|
||||
'Class:Service/Attribute:description' => '説明',
|
||||
'Class:Service/Attribute:description+' => '',
|
||||
'Class:Service/Attribute:type' => 'タイプ',
|
||||
'Class:Service/Attribute:type+' => '',
|
||||
'Class:Service/Attribute:type/Value:IncidentManagement' => 'インシデント管理',
|
||||
'Class:Service/Attribute:type/Value:IncidentManagement+' => 'インシデント管理',
|
||||
'Class:Service/Attribute:type/Value:RequestManagement' => '要求管理',
|
||||
'Class:Service/Attribute:type/Value:RequestManagement+' => '要求管理',
|
||||
'Class:Service/Attribute:status' => '状態',
|
||||
'Class:Service/Attribute:status+' => '',
|
||||
'Class:Service/Attribute:status/Value:design' => '設計',
|
||||
'Class:Service/Attribute:status/Value:design+' => '',
|
||||
'Class:Service/Attribute:status/Value:obsolete' => '廃止済',
|
||||
'Class:Service/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Service/Attribute:status/Value:production' => '稼働中',
|
||||
'Class:Service/Attribute:status/Value:production+' => '',
|
||||
'Class:Service/Attribute:subcategory_list' => 'サービスサブカテゴリ',
|
||||
'Class:Service/Attribute:subcategory_list+' => '',
|
||||
'Class:Service/Attribute:sla_list' => 'SLA',
|
||||
'Class:Service/Attribute:sla_list+' => '',
|
||||
'Class:Service/Attribute:document_list' => '文書',
|
||||
'Class:Service/Attribute:document_list+' => 'サービスに添付されている文書',
|
||||
'Class:Service/Attribute:contact_list' => '連絡先',
|
||||
'Class:Service/Attribute:contact_list+' => 'このサービスの役割を持つ連絡先',
|
||||
'Class:Service/Tab:Related_Contracts' => '関連する契約',
|
||||
'Class:Service/Tab:Related_Contracts+' => 'このサービスのために締結された契約',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -298,16 +299,16 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:ServiceSubcategory' => 'サービスサブカテゴリ', // 'Service Subcategory', # 'Service Subcategory'
|
||||
'Class:ServiceSubcategory+' => '', # ''
|
||||
'Class:ServiceSubcategory/Attribute:name' => '名前', // 'Name', # 'Name'
|
||||
'Class:ServiceSubcategory/Attribute:name+' => '', # ''
|
||||
'Class:ServiceSubcategory/Attribute:description' => '詳細記述', // 'Description', # 'Description'
|
||||
'Class:ServiceSubcategory/Attribute:description+' => '', # ''
|
||||
'Class:ServiceSubcategory/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:ServiceSubcategory/Attribute:service_id+' => '', # ''
|
||||
'Class:ServiceSubcategory/Attribute:service_name' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:ServiceSubcategory/Attribute:service_name+' => '', # ''
|
||||
'Class:ServiceSubcategory' => 'サービスサブカテゴリ',
|
||||
'Class:ServiceSubcategory+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:name' => '名前',
|
||||
'Class:ServiceSubcategory/Attribute:name+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:description' => '説明',
|
||||
'Class:ServiceSubcategory/Attribute:description+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:service_id' => 'サービス',
|
||||
'Class:ServiceSubcategory/Attribute:service_id+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:service_name' => 'サービス',
|
||||
'Class:ServiceSubcategory/Attribute:service_name+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -315,16 +316,16 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:SLA' => 'SLA', # 'SLA'
|
||||
'Class:SLA+' => '', # ''
|
||||
'Class:SLA/Attribute:name' => '名前', // 'Name', # 'Name'
|
||||
'Class:SLA/Attribute:name+' => '', # ''
|
||||
'Class:SLA/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:SLA/Attribute:service_id+' => '', # ''
|
||||
'Class:SLA/Attribute:service_name' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:SLA/Attribute:service_name+' => '', # ''
|
||||
'Class:SLA/Attribute:slt_list' => 'SLT', // 'SLTs', # 'SLTs'
|
||||
'Class:SLA/Attribute:slt_list+' => 'サービスレベル閾値リスト', // 'List Service Level Thresholds', # 'List Service Level Thresholds'
|
||||
'Class:SLA' => 'SLA',
|
||||
'Class:SLA+' => '',
|
||||
'Class:SLA/Attribute:name' => '名前',
|
||||
'Class:SLA/Attribute:name+' => '',
|
||||
'Class:SLA/Attribute:service_id' => 'サービス',
|
||||
'Class:SLA/Attribute:service_id+' => '',
|
||||
'Class:SLA/Attribute:service_name' => 'サービス',
|
||||
'Class:SLA/Attribute:service_name+' => '',
|
||||
'Class:SLA/Attribute:slt_list' => 'SLT',
|
||||
'Class:SLA/Attribute:slt_list+' => 'サービスレベル閾値リスト',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -332,36 +333,36 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:SLT' => 'SLT', # 'SLT'
|
||||
'Class:SLT+' => '', # ''
|
||||
'Class:SLT/Attribute:name' => '名前', // 'Name', # 'Name'
|
||||
'Class:SLT/Attribute:name+' => '', # ''
|
||||
'Class:SLT/Attribute:metric' => 'メトリック', // 'Metric', # 'Metric'
|
||||
'Class:SLT/Attribute:metric+' => '', # ''
|
||||
'Class:SLT/Attribute:metric/Value:TTO' => 'TTO', # 'TTO'
|
||||
'Class:SLT/Attribute:metric/Value:TTO+' => 'TTO', # 'TTO'
|
||||
'Class:SLT/Attribute:metric/Value:TTR' => 'TTR', # 'TTR'
|
||||
'Class:SLT/Attribute:metric/Value:TTR+' => 'TTR', # 'TTR'
|
||||
'Class:SLT/Attribute:ticket_priority' => 'チケットプライオリティ', // 'Ticket priority', # 'Ticket priority'
|
||||
'Class:SLT/Attribute:ticket_priority+' => '', # ''
|
||||
'Class:SLT/Attribute:ticket_priority/Value:1' => '1', # '1'
|
||||
'Class:SLT/Attribute:ticket_priority/Value:1+' => '1', # '1'
|
||||
'Class:SLT/Attribute:ticket_priority/Value:2' => '2', # '2'
|
||||
'Class:SLT/Attribute:ticket_priority/Value:2+' => '2', # '2'
|
||||
'Class:SLT/Attribute:ticket_priority/Value:3' => '3', # '3'
|
||||
'Class:SLT/Attribute:ticket_priority/Value:3+' => '3', # '3'
|
||||
'Class:SLT/Attribute:value' => '値', // 'Value', # 'Value'
|
||||
'Class:SLT/Attribute:value+' => '', # ''
|
||||
'Class:SLT/Attribute:value_unit' => '単位', // 'Unit', # 'Unit'
|
||||
'Class:SLT/Attribute:value_unit+' => '', # ''
|
||||
'Class:SLT/Attribute:value_unit/Value:days' => '日間', // 'days', # 'days'
|
||||
'Class:SLT/Attribute:value_unit/Value:days+' => '日間', // 'days', # 'days'
|
||||
'Class:SLT/Attribute:value_unit/Value:hours' => '時間', // 'hours', # 'hours'
|
||||
'Class:SLT/Attribute:value_unit/Value:hours+' => '時間', // 'hours', # 'hours'
|
||||
'Class:SLT/Attribute:value_unit/Value:minutes' => '分間', // 'minutes', # 'minutes'
|
||||
'Class:SLT/Attribute:value_unit/Value:minutes+' => '分間', // 'minutes', # 'minutes'
|
||||
'Class:SLT/Attribute:sla_list' => 'SLA', // 'SLAs', # 'SLAs'
|
||||
'Class:SLT/Attribute:sla_list+' => '本SLTを使うSLA', // 'SLAs using the SLT', # 'SLAs using the SLT'
|
||||
'Class:SLT' => 'SLT',
|
||||
'Class:SLT+' => 'SLT サービスレベルターゲット',
|
||||
'Class:SLT/Attribute:name' => '名前',
|
||||
'Class:SLT/Attribute:name+' => '',
|
||||
'Class:SLT/Attribute:metric' => 'メトリック',
|
||||
'Class:SLT/Attribute:metric+' => '',
|
||||
'Class:SLT/Attribute:metric/Value:TTO' => 'TTO',
|
||||
'Class:SLT/Attribute:metric/Value:TTO+' => 'TTO Time To Own, 対応開始までの時間', # 'TTO'
|
||||
'Class:SLT/Attribute:metric/Value:TTR' => 'TTR',
|
||||
'Class:SLT/Attribute:metric/Value:TTR+' => 'TTR Time To Resolve, 解決までの時間', # 'TTR'
|
||||
'Class:SLT/Attribute:ticket_priority' => 'チケット優先度',
|
||||
'Class:SLT/Attribute:ticket_priority+' => '',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:1' => '1',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:1+' => '1',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:2' => '2',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:2+' => '2',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:3' => '3',
|
||||
'Class:SLT/Attribute:ticket_priority/Value:3+' => '3',
|
||||
'Class:SLT/Attribute:value' => '値',
|
||||
'Class:SLT/Attribute:value+' => '',
|
||||
'Class:SLT/Attribute:value_unit' => '単位',
|
||||
'Class:SLT/Attribute:value_unit+' => '',
|
||||
'Class:SLT/Attribute:value_unit/Value:days' => '日',
|
||||
'Class:SLT/Attribute:value_unit/Value:days+' => '日',
|
||||
'Class:SLT/Attribute:value_unit/Value:hours' => '時',
|
||||
'Class:SLT/Attribute:value_unit/Value:hours+' => '時',
|
||||
'Class:SLT/Attribute:value_unit/Value:minutes' => '分',
|
||||
'Class:SLT/Attribute:value_unit/Value:minutes+' => '分',
|
||||
'Class:SLT/Attribute:sla_list' => 'SLA',
|
||||
'Class:SLT/Attribute:sla_list+' => 'このSLTを使うSLA',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -369,24 +370,24 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkSLTToSLA' => 'SLT/SLA', # 'SLT/SLA'
|
||||
'Class:lnkSLTToSLA+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:sla_id' => 'SLA', # 'SLA'
|
||||
'Class:lnkSLTToSLA/Attribute:sla_id+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:sla_name' => 'SLA', # 'SLA'
|
||||
'Class:lnkSLTToSLA/Attribute:sla_name+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_id' => 'SLT', # 'SLT'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_id+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_name' => 'SLT', # 'SLT'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_name+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_metric' => 'メトリック', // 'Metric', # 'Metric'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_metric+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_ticket_priority' => 'チケットプライオリティ', // 'Ticket priority', # 'Ticket priority'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_ticket_priority+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value' => '値', // 'Value', # 'Value'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value+' => '', # ''
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value_unit' => '単位', // 'Unit', # 'Unit'
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value_unit+' => '', # ''
|
||||
'Class:lnkSLTToSLA' => 'SLT/SLA',
|
||||
'Class:lnkSLTToSLA+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:sla_id' => 'SLA',
|
||||
'Class:lnkSLTToSLA/Attribute:sla_id+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:sla_name' => 'SLA',
|
||||
'Class:lnkSLTToSLA/Attribute:sla_name+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_id' => 'SLT',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_id+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_name' => 'SLT',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_name+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_metric' => 'メトリック',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_metric+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_ticket_priority' => 'チケット優先度',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_ticket_priority+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value' => '値',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value+' => '',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value_unit' => '単位',
|
||||
'Class:lnkSLTToSLA/Attribute:slt_value_unit+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -394,20 +395,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkServiceToDoc' => 'サービス/ドキュメント', // 'Service/Doc', # 'Service/Doc'
|
||||
'Class:lnkServiceToDoc+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToDoc/Attribute:service_id+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:service_name' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToDoc/Attribute:service_name+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:document_id' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkServiceToDoc/Attribute:document_id+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:document_name' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkServiceToDoc/Attribute:document_name+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:document_type' => 'ドキュメントタイプ', // 'Document type', # 'Document type'
|
||||
'Class:lnkServiceToDoc/Attribute:document_type+' => '', # ''
|
||||
'Class:lnkServiceToDoc/Attribute:document_status' => 'ドキュメントステータス', // 'Document status', # 'Document status'
|
||||
'Class:lnkServiceToDoc/Attribute:document_status+' => '', # ''
|
||||
'Class:lnkServiceToDoc' => 'サービス/文書',
|
||||
'Class:lnkServiceToDoc+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:service_id' => 'サービス',
|
||||
'Class:lnkServiceToDoc/Attribute:service_id+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:service_name' => 'サービス',
|
||||
'Class:lnkServiceToDoc/Attribute:service_name+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:document_id' => '文書',
|
||||
'Class:lnkServiceToDoc/Attribute:document_id+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:document_name' => '文書',
|
||||
'Class:lnkServiceToDoc/Attribute:document_name+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:document_type' => '文書のタイプ',
|
||||
'Class:lnkServiceToDoc/Attribute:document_type+' => '',
|
||||
'Class:lnkServiceToDoc/Attribute:document_status' => '文書の状態',
|
||||
'Class:lnkServiceToDoc/Attribute:document_status+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -415,20 +416,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkServiceToContact' => 'サービス/コンタクト', // 'Service/Contact', # 'Service/Contact'
|
||||
'Class:lnkServiceToContact+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToContact/Attribute:service_id+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:service_name' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToContact/Attribute:service_name+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:contact_id' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkServiceToContact/Attribute:contact_id+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:contact_name' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkServiceToContact/Attribute:contact_name+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:contact_email' => 'コンタクトEメール', // 'Contact email', # 'Contact email'
|
||||
'Class:lnkServiceToContact/Attribute:contact_email+' => '', # ''
|
||||
'Class:lnkServiceToContact/Attribute:role' => '役割', // 'Role', # 'Role'
|
||||
'Class:lnkServiceToContact/Attribute:role+' => '', # ''
|
||||
'Class:lnkServiceToContact' => 'サービス/連絡先',
|
||||
'Class:lnkServiceToContact+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:service_id' => 'サービス',
|
||||
'Class:lnkServiceToContact/Attribute:service_id+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:service_name' => 'サービス',
|
||||
'Class:lnkServiceToContact/Attribute:service_name+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:contact_id' => '連絡先',
|
||||
'Class:lnkServiceToContact/Attribute:contact_id+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:contact_name' => '連絡先',
|
||||
'Class:lnkServiceToContact/Attribute:contact_name+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:contact_email' => '連絡先Eメール',
|
||||
'Class:lnkServiceToContact/Attribute:contact_email+' => '',
|
||||
'Class:lnkServiceToContact/Attribute:role' => '役割',
|
||||
'Class:lnkServiceToContact/Attribute:role+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -436,18 +437,19 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkServiceToCI' => 'サービス/CI', // 'Service/CI', # 'Service/CI'
|
||||
'Class:lnkServiceToCI+' => '', # ''
|
||||
'Class:lnkServiceToCI/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToCI/Attribute:service_id+' => '', # ''
|
||||
'Class:lnkServiceToCI/Attribute:service_name' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:lnkServiceToCI/Attribute:service_name+' => '', # ''
|
||||
'Class:lnkServiceToCI/Attribute:ci_id' => 'CI', # 'CI'
|
||||
'Class:lnkServiceToCI/Attribute:ci_id+' => '', # ''
|
||||
'Class:lnkServiceToCI/Attribute:ci_name' => 'CI', # 'CI'
|
||||
'Class:lnkServiceToCI/Attribute:ci_name+' => '', # ''
|
||||
'Class:lnkServiceToCI/Attribute:ci_status' => 'CIステータス', // 'CI status', # 'CI status'
|
||||
'Class:lnkServiceToCI/Attribute:ci_status+' => '', # ''
|
||||
'Class:lnkServiceToCI' => 'サービス/CI',
|
||||
'Class:lnkServiceToCI+' => '',
|
||||
'Class:lnkServiceToCI/Attribute:service_id' => 'サービス',
|
||||
'Class:lnkServiceToCI/Attribute:service_id+' => '',
|
||||
'Class:lnkServiceToCI/Attribute:service_name' => 'サービス',
|
||||
'Class:lnkServiceToCI/Attribute:service_name+' => '',
|
||||
'Class:lnkServiceToCI/Attribute:ci_id' => 'CI',
|
||||
'Class:lnkServiceToCI/Attribute:ci_id+' => '',
|
||||
'Class:lnkServiceToCI/Attribute:ci_name' => 'CI',
|
||||
'Class:lnkServiceToCI/Attribute:ci_name+' => '',
|
||||
'Class:lnkServiceToCI/Attribute:ci_status' => 'CIの状態',
|
||||
'Class:lnkServiceToCI/Attribute:ci_status+' => '',
|
||||
));
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -43,46 +43,56 @@
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:Ticket' => 'チケット', // 'Ticket', # 'Ticket'
|
||||
'Class:Ticket+' => '', # ''
|
||||
'Class:Ticket/Attribute:ref' => '参照', // 'Ref', # 'Ref'
|
||||
'Class:Ticket/Attribute:ref+' => '', # ''
|
||||
'Class:Ticket/Attribute:title' => 'タイトル', // 'Title', # 'Title'
|
||||
'Class:Ticket/Attribute:title+' => '', # ''
|
||||
'Class:Ticket/Attribute:description' => '詳細記述', // 'Description', # 'Description'
|
||||
'Class:Ticket/Attribute:description+' => '', # ''
|
||||
'Class:Ticket/Attribute:ticket_log' => 'ログ', // 'Log', # 'Log'
|
||||
'Class:Ticket' => 'チケット',
|
||||
'Class:Ticket+' => '',
|
||||
'Class:Ticket/Attribute:ref' => '参照',
|
||||
'Class:Ticket/Attribute:ref+' => '',
|
||||
'Class:Ticket/Attribute:title' => '題名',
|
||||
'Class:Ticket/Attribute:title+' => '',
|
||||
'Class:Ticket/Attribute:description' => '説明',
|
||||
'Class:Ticket/Attribute:description+' => '',
|
||||
'Class:Ticket/Attribute:ticket_log' => 'ログ',
|
||||
'Class:Ticket/Attribute:ticket_log+' => '', # ''
|
||||
'Class:Ticket/Attribute:start_date' => '開始済み', // 'Started', # 'Started'
|
||||
'Class:Ticket/Attribute:start_date+' => '', # ''
|
||||
'Class:Ticket/Attribute:document_list' => 'ドキュメント', // 'Documents', # 'Documents'
|
||||
'Class:Ticket/Attribute:document_list+' => '本チケットに関連するドキュメント', // 'Documents related to the ticket', # 'Documents related to the ticket'
|
||||
'Class:Ticket/Attribute:ci_list' => 'CI', // 'CIs', # 'CIs'
|
||||
'Class:Ticket/Attribute:ci_list+' => '本インシデントに関連するCI', // 'CIs concerned by the incident', # 'CIs concerned by the incident'
|
||||
'Class:Ticket/Attribute:contact_list' => 'コンタクト', // 'Contacts', # 'Contacts'
|
||||
'Class:Ticket/Attribute:contact_list+' => '担当チーム、担当者', // 'Team and persons involved', # 'Team and persons involved'
|
||||
'Class:Ticket/Attribute:incident_list' => '関連インシデント', // 'Related Incidents', # 'Related Incidents'
|
||||
'Class:Ticket/Attribute:incident_list+' => '', # ''
|
||||
'Class:Ticket/Attribute:finalclass' => 'タイプ', // 'Type', # 'Type'
|
||||
'Class:Ticket/Attribute:finalclass+' => '', # ''
|
||||
'Class:Ticket/Attribute:start_date' => '開始日',
|
||||
'Class:Ticket/Attribute:start_date+' => '',
|
||||
'Class:Ticket/Attribute:document_list' => '文書',
|
||||
'Class:Ticket/Attribute:document_list+' => 'このチケットに関連する文書',
|
||||
'Class:Ticket/Attribute:ci_list' => 'CI',
|
||||
'Class:Ticket/Attribute:ci_list+' => 'このインシデントに関連するCI',
|
||||
'Class:Ticket/Attribute:contact_list' => '連絡先',
|
||||
'Class:Ticket/Attribute:contact_list+' => '担当チーム、担当者',
|
||||
'Class:Ticket/Attribute:incident_list' => '関連するインシデント',
|
||||
'Class:Ticket/Attribute:incident_list+' => '',
|
||||
'Class:Ticket/Attribute:finalclass' => 'タイプ',
|
||||
'Class:Ticket/Attribute:finalclass+' => '',
|
||||
));
|
||||
|
||||
// Fieldset translation
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
|
||||
'Ticket:baseinfo' => '基本情報',
|
||||
'Ticket:date' => '日付',
|
||||
'Ticket:contact' => '連絡先',
|
||||
'Ticket:moreinfo' => '追加情報',
|
||||
'Ticket:relation' => '関連',
|
||||
'Ticket:log' => 'コミュニケーション',
|
||||
|
||||
));
|
||||
//
|
||||
// Class: lnkTicketToDoc
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkTicketToDoc' => 'チケット/ドキュメント', // 'Ticket/Document', # 'Ticket/Document'
|
||||
'Class:lnkTicketToDoc+' => '', # ''
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_id' => 'チケット', // 'Ticket', # 'Ticket'
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_id+' => '', # ''
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_ref' => 'チケット', // 'Ticket #', # 'Ticket #'
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_ref+' => '', # ''
|
||||
'Class:lnkTicketToDoc/Attribute:document_id' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkTicketToDoc/Attribute:document_id+' => '', # ''
|
||||
'Class:lnkTicketToDoc/Attribute:document_name' => 'ドキュメント', // 'Document', # 'Document'
|
||||
'Class:lnkTicketToDoc/Attribute:document_name+' => '', # ''
|
||||
'Class:lnkTicketToDoc' => 'チケット/文書',
|
||||
'Class:lnkTicketToDoc+' => '',
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_id' => 'チケット',
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_id+' => '',
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_ref' => 'チケット',
|
||||
'Class:lnkTicketToDoc/Attribute:ticket_ref+' => '',
|
||||
'Class:lnkTicketToDoc/Attribute:document_id' => '文書',
|
||||
'Class:lnkTicketToDoc/Attribute:document_id+' => '',
|
||||
'Class:lnkTicketToDoc/Attribute:document_name' => '文書',
|
||||
'Class:lnkTicketToDoc/Attribute:document_name+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -90,20 +100,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkTicketToContact' => 'チケット/コンタクト', // 'Ticket/Contact', # 'Ticket/Contact'
|
||||
'Class:lnkTicketToContact+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:ticket_id' => 'チケット', // 'Ticket', # 'Ticket'
|
||||
'Class:lnkTicketToContact/Attribute:ticket_id+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:ticket_ref' => 'チケット', // 'Ticket #', # 'Ticket #'
|
||||
'Class:lnkTicketToContact/Attribute:ticket_ref+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:contact_id' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkTicketToContact/Attribute:contact_id+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:contact_name' => 'コンタクト', // 'Contact', # 'Contact'
|
||||
'Class:lnkTicketToContact/Attribute:contact_name+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:contact_email' => 'Eメール', // 'Email', # 'Email'
|
||||
'Class:lnkTicketToContact/Attribute:contact_email+' => '', # ''
|
||||
'Class:lnkTicketToContact/Attribute:role' => '役割', // 'Role', # 'Role'
|
||||
'Class:lnkTicketToContact/Attribute:role+' => '', # ''
|
||||
'Class:lnkTicketToContact' => 'チケット/連絡先',
|
||||
'Class:lnkTicketToContact+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:ticket_id' => 'チケット',
|
||||
'Class:lnkTicketToContact/Attribute:ticket_id+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:ticket_ref' => 'チケット',
|
||||
'Class:lnkTicketToContact/Attribute:ticket_ref+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:contact_id' => '連絡先',
|
||||
'Class:lnkTicketToContact/Attribute:contact_id+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:contact_name' => '連絡先',
|
||||
'Class:lnkTicketToContact/Attribute:contact_name+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:contact_email' => 'Eメール',
|
||||
'Class:lnkTicketToContact/Attribute:contact_email+' => '',
|
||||
'Class:lnkTicketToContact/Attribute:role' => '役割',
|
||||
'Class:lnkTicketToContact/Attribute:role+' => '',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -111,20 +121,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:lnkTicketToCI' => 'チケット/CI', // 'Ticket/CI', # 'Ticket/CI'
|
||||
'Class:lnkTicketToCI+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:ticket_id' => 'チケット', // 'Ticket', # 'Ticket'
|
||||
'Class:lnkTicketToCI/Attribute:ticket_id+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:ticket_ref' => 'チケット', // 'Ticket #', # 'Ticket #'
|
||||
'Class:lnkTicketToCI/Attribute:ticket_ref+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:ci_id' => 'CI', # 'CI'
|
||||
'Class:lnkTicketToCI/Attribute:ci_id+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:ci_name' => 'CI', # 'CI'
|
||||
'Class:lnkTicketToCI/Attribute:ci_name+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:ci_status' => 'CIステータス', // 'CI status', # 'CI status'
|
||||
'Class:lnkTicketToCI/Attribute:ci_status+' => '', # ''
|
||||
'Class:lnkTicketToCI/Attribute:impact' => '影響', // 'Impact', # 'Impact'
|
||||
'Class:lnkTicketToCI/Attribute:impact+' => '', # ''
|
||||
'Class:lnkTicketToCI' => 'チケット/CI',
|
||||
'Class:lnkTicketToCI+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:ticket_id' => 'チケット',
|
||||
'Class:lnkTicketToCI/Attribute:ticket_id+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:ticket_ref' => 'チケット',
|
||||
'Class:lnkTicketToCI/Attribute:ticket_ref+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:ci_id' => 'CI',
|
||||
'Class:lnkTicketToCI/Attribute:ci_id+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:ci_name' => 'CI',
|
||||
'Class:lnkTicketToCI/Attribute:ci_name+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:ci_status' => 'CIの状態',
|
||||
'Class:lnkTicketToCI/Attribute:ci_status+' => '',
|
||||
'Class:lnkTicketToCI/Attribute:impact' => 'インパクト',
|
||||
'Class:lnkTicketToCI/Attribute:impact+' => '',
|
||||
));
|
||||
|
||||
|
||||
@@ -133,132 +143,135 @@ Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array (
|
||||
'Class:ResponseTicket' => 'レスポンスチケット', // 'ResponseTicket', # 'ResponseTicket'
|
||||
'Class:ResponseTicket+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status' => 'ステータス', // 'Status', # 'Status'
|
||||
'Class:ResponseTicket/Attribute:status+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:new' => '新規', # 'New'
|
||||
'Class:ResponseTicket/Attribute:status/Value:new+' => '新規にオープン', // 'newly opened', # 'newly opened'
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_tto' => 'エスカレーション/TTO', // 'Escalation/TTO', # 'Escalation/TTO'
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_tto+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:assigned' => '割当済', # 'Assigned'
|
||||
'Class:ResponseTicket/Attribute:status/Value:assigned+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr' => 'エスカレーション/TTR', // 'Escalation/TTR', # 'Escalation/TTR'
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:frozen' => 'ペンディング', // 'Pending', # 'Pending'
|
||||
'Class:ResponseTicket/Attribute:status/Value:frozen+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:resolved' => '解決済み', // 'Resolved', # 'Resolved'
|
||||
'Class:ResponseTicket/Attribute:status/Value:resolved+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:status/Value:closed' => '完了', # 'Closed'
|
||||
'Class:ResponseTicket/Attribute:status/Value:closed+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:caller_id' => '呼び出し', // 'Caller', # 'Caller'
|
||||
'Class:ResponseTicket/Attribute:caller_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:caller_email' => 'Eメール', // 'Email', # 'Email'
|
||||
'Class:ResponseTicket/Attribute:caller_email+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:org_id' => 'カスタマ', // 'Customer', # 'Customer'
|
||||
'Class:ResponseTicket/Attribute:org_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:org_name' => 'カスタマ', // 'Customer', # 'Customer'
|
||||
'Class:ResponseTicket/Attribute:org_name+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:service_id' => 'サービス', // 'Service', # 'Service'
|
||||
'Class:ResponseTicket/Attribute:service_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:service_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:ResponseTicket/Attribute:service_name+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_id' => 'サービス要素', // 'Service element', # 'Service element'
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_name' => '名前', // 'Name', # 'Name'
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_name+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:product' => 'プロダクト', // 'Product', # 'Product'
|
||||
'Class:ResponseTicket/Attribute:product+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:impact' => '影響', // 'Impact', # 'Impact'
|
||||
'Class:ResponseTicket/Attribute:impact+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:impact/Value:1' => '部署', // 'A department', # 'A department'
|
||||
'Class:ResponseTicket/Attribute:impact/Value:1+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:impact/Value:2' => 'サービス', // 'A service', # 'A service'
|
||||
'Class:ResponseTicket/Attribute:impact/Value:2+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:impact/Value:3' => 'パーソン', // 'A person', # 'A person'
|
||||
'Class:ResponseTicket/Attribute:impact/Value:3+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:urgency' => '緊急', // 'Urgency', # 'Urgency'
|
||||
'Class:ResponseTicket/Attribute:urgency+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:1' => '高', // 'High', # 'High'
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:1+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:2' => '中', // 'Medium', # 'Medium'
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:2+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:3' => '低', // 'Low', # 'Low'
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:3+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:priority' => 'プライオリティ', // 'Priority', # 'Priority'
|
||||
'Class:ResponseTicket/Attribute:priority+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:priority/Value:1' => '高', // 'High', # 'High'
|
||||
'Class:ResponseTicket/Attribute:priority/Value:1+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:priority/Value:2' => '中', // 'Medium', # 'Medium'
|
||||
'Class:ResponseTicket/Attribute:priority/Value:2+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:priority/Value:3' => '低', // 'Low', # 'Low'
|
||||
'Class:ResponseTicket/Attribute:priority/Value:3+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:workgroup_id' => 'ワークグループ', // 'Workgroup', # 'Workgroup'
|
||||
'Class:ResponseTicket/Attribute:workgroup_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:workgroup_name' => 'ワークグループ', // 'Workgroup', # 'Workgroup'
|
||||
'Class:ResponseTicket/Attribute:workgroup_name+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:agent_id' => 'エージェント', // 'Agent', # 'Agent'
|
||||
'Class:ResponseTicket/Attribute:agent_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:agent_name' => 'エージェント', // 'Agent', # 'Agent'
|
||||
'Class:ResponseTicket/Attribute:agent_name+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:agent_email' => 'エージェントEメール', // 'Agent email', # 'Agent email'
|
||||
'Class:ResponseTicket/Attribute:agent_email+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:related_problem_id' => '関連プロブレム', // 'Related Problem', # 'Related Problem'
|
||||
'Class:ResponseTicket/Attribute:related_problem_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:related_problem_ref' => '参照', // 'Ref', # 'Ref'
|
||||
'Class:ResponseTicket/Attribute:related_problem_ref+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:related_change_id' => '関連する変更', // 'Related change', # 'Related change'
|
||||
'Class:ResponseTicket/Attribute:related_change_id+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:related_change_ref' => '関連する変更', // 'Related change', # 'Related change'
|
||||
'Class:ResponseTicket/Attribute:related_change_ref+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:close_date' => '完了', # 'Closed'
|
||||
'Class:ResponseTicket/Attribute:close_date+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:last_update' => '最終更新日', // 'Last update', # 'Last update'
|
||||
'Class:ResponseTicket/Attribute:last_update+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:assignment_date' => 'アサイン日付', // 'Assignment Date ', # 'Assignment Date '
|
||||
'Class:ResponseTicket/Attribute:assignment_date+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_date' => '解決日付', // 'Resolution Date', # 'Resolution Date'
|
||||
'Class:ResponseTicket/Attribute:resolution_date+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:tto_escalation_deadline' => 'TTOエスカレーション締切り', // 'TTO Escalation deadline', # 'TTO Escalation deadline'
|
||||
'Class:ResponseTicket/Attribute:tto_escalation_deadline+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:ttr_escalation_deadline' => 'TTRエスカレーション締切り', // 'TTR Escalation deadline', # 'TTR Escalation deadline'
|
||||
'Class:ResponseTicket/Attribute:ttr_escalation_deadline+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:closure_deadline' => 'クローズ締切り', // 'Closure deadline', # 'Closure deadline'
|
||||
'Class:ResponseTicket/Attribute:closure_deadline+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_code' => '解決コード', // 'Resolution code', # 'Resolution code'
|
||||
'Class:ResponseTicket/Attribute:resolution_code+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce' => '再現できず', // 'Could not be reproduced', # 'Could not be reproduced'
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate' => 'チケットを複製', // 'Duplicate ticket', # 'Duplicate ticket'
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed' => '改修済み', // 'Fixed', # 'Fixed'
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant' => '見当違い', // 'Irrelevant', # 'Irrelevant'
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:solution' => '解決策', // 'Solution', # 'Solution'
|
||||
'Class:ResponseTicket' => 'レスポンスチケット',
|
||||
'Class:ResponseTicket+' => '',
|
||||
'Class:ResponseTicket/Attribute:status' => '状態',
|
||||
'Class:ResponseTicket/Attribute:status+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:new' => '新規',
|
||||
'Class:ResponseTicket/Attribute:status/Value:new+' => '新規にオープン',
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_tto' => 'エスカレーション/TTO',
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_tto+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:assigned' => '割り当て済み',
|
||||
'Class:ResponseTicket/Attribute:status/Value:assigned+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr' => 'エスカレーション/TTR',
|
||||
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:frozen' => '保留', // 'Pending',
|
||||
'Class:ResponseTicket/Attribute:status/Value:frozen+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:resolved' => '解決済み',
|
||||
'Class:ResponseTicket/Attribute:status/Value:resolved+' => '',
|
||||
'Class:ResponseTicket/Attribute:status/Value:closed' => 'クローズ',
|
||||
'Class:ResponseTicket/Attribute:status/Value:closed+' => '',
|
||||
'Class:ResponseTicket/Attribute:caller_id' => '連絡者', // 'caller',
|
||||
'Class:ResponseTicket/Attribute:caller_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:caller_email' => 'Eメール',
|
||||
'Class:ResponseTicket/Attribute:caller_email+' => '',
|
||||
'Class:ResponseTicket/Attribute:org_id' => '顧客',
|
||||
'Class:ResponseTicket/Attribute:org_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:org_name' => '顧客',
|
||||
'Class:ResponseTicket/Attribute:org_name+' => '',
|
||||
'Class:ResponseTicket/Attribute:service_id' => 'サービス',
|
||||
'Class:ResponseTicket/Attribute:service_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:service_name' => '名前',
|
||||
'Class:ResponseTicket/Attribute:service_name+' => '',
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_id' => 'サービス要素', // 'Service element',
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_name' => '名前',
|
||||
'Class:ResponseTicket/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:ResponseTicket/Attribute:product' => '製品',
|
||||
'Class:ResponseTicket/Attribute:product+' => '',
|
||||
'Class:ResponseTicket/Attribute:impact' => 'インパクト',
|
||||
'Class:ResponseTicket/Attribute:impact+' => '',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:1' => '部署',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:1+' => '',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:2' => 'サービス',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:2+' => '',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:3' => '人',
|
||||
'Class:ResponseTicket/Attribute:impact/Value:3+' => '',
|
||||
'Class:ResponseTicket/Attribute:urgency' => '緊急度',
|
||||
'Class:ResponseTicket/Attribute:urgency+' => '',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:1' => '高',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:1+' => '',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:2' => '中',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:2+' => '',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:3' => '低',
|
||||
'Class:ResponseTicket/Attribute:urgency/Value:3+' => '',
|
||||
'Class:ResponseTicket/Attribute:priority' => '優先度',
|
||||
'Class:ResponseTicket/Attribute:priority+' => '',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:1' => '高',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:1+' => '',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:2' => '中',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:2+' => '',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:3' => '低',
|
||||
'Class:ResponseTicket/Attribute:priority/Value:3+' => '',
|
||||
'Class:ResponseTicket/Attribute:workgroup_id' => 'ワークグループ',
|
||||
'Class:ResponseTicket/Attribute:workgroup_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:workgroup_name' => 'ワークグループ',
|
||||
'Class:ResponseTicket/Attribute:workgroup_name+' => '',
|
||||
'Class:ResponseTicket/Attribute:agent_id' => 'エージェント',
|
||||
'Class:ResponseTicket/Attribute:agent_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:agent_name' => 'エージェント',
|
||||
'Class:ResponseTicket/Attribute:agent_name+' => '',
|
||||
'Class:ResponseTicket/Attribute:agent_email' => 'エージェントEメール',
|
||||
'Class:ResponseTicket/Attribute:agent_email+' => '',
|
||||
'Class:ResponseTicket/Attribute:related_problem_id' => '関連する問題',
|
||||
'Class:ResponseTicket/Attribute:related_problem_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:related_problem_ref' => '参照',
|
||||
'Class:ResponseTicket/Attribute:related_problem_ref+' => '',
|
||||
'Class:ResponseTicket/Attribute:related_change_id' => '関連する変更',
|
||||
'Class:ResponseTicket/Attribute:related_change_id+' => '',
|
||||
'Class:ResponseTicket/Attribute:related_change_ref' => '関連する変更', // 'Related change',
|
||||
'Class:ResponseTicket/Attribute:related_change_ref+' => '',
|
||||
'Class:ResponseTicket/Attribute:close_date' => 'クローズ',
|
||||
'Class:ResponseTicket/Attribute:close_date+' => '',
|
||||
'Class:ResponseTicket/Attribute:last_update' => '最終更新日',
|
||||
'Class:ResponseTicket/Attribute:last_update+' => '',
|
||||
'Class:ResponseTicket/Attribute:assignment_date' => '割り当て日',
|
||||
'Class:ResponseTicket/Attribute:assignment_date+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_date' => '解決日',
|
||||
'Class:ResponseTicket/Attribute:resolution_date+' => '',
|
||||
'Class:ResponseTicket/Attribute:tto_escalation_deadline' => 'TTOエスカレーション期限', // 'TTO Escalation deadline',
|
||||
'Class:ResponseTicket/Attribute:tto_escalation_deadline+' => '',
|
||||
'Class:ResponseTicket/Attribute:ttr_escalation_deadline' => 'TTRエスカレーション期限', // 'TTR Escalation deadline',
|
||||
'Class:ResponseTicket/Attribute:ttr_escalation_deadline+' => '',
|
||||
'Class:ResponseTicket/Attribute:closure_deadline' => 'クローズ期限', // 'Closure deadline',
|
||||
'Class:ResponseTicket/Attribute:closure_deadline+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_code' => '解決コード',
|
||||
'Class:ResponseTicket/Attribute:resolution_code+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce' => '再現出来ない',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate' => 'チケットを複製',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed' => '改修済み',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed+' => '',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant' => '見当違い', // 'Irrelevant',
|
||||
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant+' => '',
|
||||
'Class:ResponseTicket/Attribute:solution' => '解決策',
|
||||
'Class:ResponseTicket/Attribute:solution+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction' => 'ユーザ満足度', // 'User satisfaction', # 'User satisfaction'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1' => '大変満足である', // 'Very satisfied', # 'Very satisfied'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1+' => '大変満足である', // 'Very satisfied', # 'Very satisfied'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2' => '概ね満足である', // 'Fairly statisfied', # 'Fairly statisfied'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2+' => '概ね満足である', // 'Fairly statisfied', # 'Fairly statisfied'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3' => 'やや不満である', // 'Rather Dissatified', # 'Rather Dissatified'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3+' => 'やや不満である', // 'Rather Dissatified', # 'Rather Dissatified'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4' => '大変不満である', // 'Very Dissatisfied', # 'Very Dissatisfied'
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4+' => '大変不満である', // 'Very Dissatisfied', # 'Very Dissatisfied'
|
||||
'Class:ResponseTicket/Attribute:user_commment' => 'ユーザコメント', // 'User comment', # 'User comment'
|
||||
'Class:ResponseTicket/Attribute:user_commment+' => '', # ''
|
||||
'Class:ResponseTicket/Stimulus:ev_assign' => '割当', # 'Assign'
|
||||
'Class:ResponseTicket/Stimulus:ev_assign+' => '', # ''
|
||||
'Class:ResponseTicket/Stimulus:ev_reassign' => '再割当', # 'Reassign'
|
||||
'Class:ResponseTicket/Stimulus:ev_reassign+' => '', # ''
|
||||
'Class:ResponseTicket/Stimulus:ev_timeout' => 'エスカレーション', // 'Escalation', # 'Escalation'
|
||||
'Class:ResponseTicket/Stimulus:ev_timeout+' => '', # ''
|
||||
'Class:ResponseTicket/Stimulus:ev_resolve' => '解決済みとする', # 'Mark as resolved'
|
||||
'Class:ResponseTicket/Stimulus:ev_resolve+' => '', # ''
|
||||
'Class:ResponseTicket/Stimulus:ev_close' => '完了', # 'Close'
|
||||
'Class:ResponseTicket/Stimulus:ev_close+' => '', # ''
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction' => 'ユーザ満足度',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction+' => '',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1' => '大変満足', // 'Very satisfied',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1+' => '大変満足', // 'Very satisfied',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2' => '満足', // 'Fairly statisfied',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2+' => '満足', // 'Fairly statisfied',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3' => '不満', // 'Rather Dissatified',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3+' => '不満', // 'Rather Dissatified',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4' => '大変不満', // 'Very Dissatisfied',
|
||||
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4+' => '大変不満', // 'Very Dissatisfied',
|
||||
'Class:ResponseTicket/Attribute:user_commment' => 'ユーザコメント',
|
||||
'Class:ResponseTicket/Attribute:user_commment+' => '',
|
||||
'Class:ResponseTicket/Stimulus:ev_assign' => '割り当て',
|
||||
'Class:ResponseTicket/Stimulus:ev_assign+' => '',
|
||||
'Class:ResponseTicket/Stimulus:ev_reassign' => '再割り当て',
|
||||
'Class:ResponseTicket/Stimulus:ev_reassign+' => '',
|
||||
'Class:ResponseTicket/Stimulus:ev_timeout' => 'ev_タイムアウト', // 'Escalation', 'ev_timeout',
|
||||
'Class:ResponseTicket/Stimulus:ev_timeout+' => '',
|
||||
'Class:ResponseTicket/Stimulus:ev_resolve' => '解決済み',
|
||||
'Class:ResponseTicket/Stimulus:ev_resolve+' => '',
|
||||
'Class:ResponseTicket/Stimulus:ev_close' => 'クローズ',
|
||||
'Class:ResponseTicket/Stimulus:ev_close+' => '',
|
||||
));
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
18
pages/UI.php
18
pages/UI.php
@@ -674,7 +674,7 @@ try
|
||||
else
|
||||
{
|
||||
$oP->set_title(Dict::S('UI:SearchResultsPageTitle'));
|
||||
$oP->p("<h1>".Dict::Format('UI:FullTextSearchTitle_Text', $sFullText)."</h1>");
|
||||
$oP->p("<h1>".Dict::Format('UI:FullTextSearchTitle_Text', htmlentities($sFullText, ENT_QUOTES, 'UTF-8'))."</h1>");
|
||||
$iCount = 0;
|
||||
$iBlock = 0;
|
||||
// Search in full text mode in all the classes
|
||||
@@ -1737,13 +1737,13 @@ EOF
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
$aErrors[] = Dict::Format('UI:AttemptingToSetASlaveAttribute_Name', $oAttDef->GetLabel());
|
||||
}
|
||||
else
|
||||
{
|
||||
$oObj->Set($sAttCode, $paramValue);
|
||||
unset($aExpectedAttributes[$sAttCode]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$oObj->UpdateObjectFromPostedForm('', array_keys($aExpectedAttributes), $sTargetState);
|
||||
|
||||
if (count($aErrors) == 0)
|
||||
{
|
||||
if ($oObj->ApplyStimulus($sStimulus))
|
||||
@@ -1980,13 +1980,13 @@ EOF
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
$aErrors[] = Dict::Format('UI:AttemptingToChangeASlaveAttribute_Name', $oAttDef->GetLabel());
|
||||
unset($aExpectedAttributes[$sAttCode]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oObj->Set($sAttCode, $paramValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$oObj->UpdateObjectFromPostedForm('', array_keys($aExpectedAttributes), $sTargetState);
|
||||
|
||||
if (count($aErrors) == 0)
|
||||
{
|
||||
if ($oObj->ApplyStimulus($sStimulus))
|
||||
|
||||
@@ -235,18 +235,21 @@ try
|
||||
$sFilter = utils::ReadParam('sFilter', '', false, 'raw_data');
|
||||
$sJson = utils::ReadParam('json', '', false, 'raw_data');
|
||||
$sContains = utils::ReadParam('q', '', false, 'raw_data');
|
||||
if (!empty($sJson))
|
||||
if ($sContains !='')
|
||||
{
|
||||
$oWizardHelper = WizardHelper::FromJSON($sJson);
|
||||
$oObj = $oWizardHelper->GetTargetObject();
|
||||
if (!empty($sJson))
|
||||
{
|
||||
$oWizardHelper = WizardHelper::FromJSON($sJson);
|
||||
$oObj = $oWizardHelper->GetTargetObject();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Search form: no current object
|
||||
$oObj = null;
|
||||
}
|
||||
$oWidget = new UIExtKeyWidget($sTargetClass, $iInputId);
|
||||
$oWidget->AutoComplete($oPage, $sFilter, $oObj, $sContains);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Search form: no current object
|
||||
$oObj = null;
|
||||
}
|
||||
$oWidget = new UIExtKeyWidget($sTargetClass, $iInputId);
|
||||
$oWidget->AutoComplete($oPage, $sFilter, $oObj, $sContains);
|
||||
break;
|
||||
|
||||
// ui.extkeywidget
|
||||
|
||||
@@ -158,6 +158,30 @@ try
|
||||
|
||||
switch($operation)
|
||||
{
|
||||
case 'csv':
|
||||
// Big result sets cause long OQL that cannot be passed (serialized) as a GET parameter
|
||||
// Therefore we don't use the standard "search_oql" operation of UI.php to display the CSV
|
||||
$iCategory = utils::ReadParam('category', '');
|
||||
$iRuleIndex = utils::ReadParam('rule', 0);
|
||||
|
||||
$oAuditCategory = MetaModel::GetObject('AuditCategory', $iCategory);
|
||||
$oDefinitionFilter = DBObjectSearch::FromOQL($oAuditCategory->Get('definition_set'));
|
||||
FilterByContext($oDefinitionFilter, $oAppContext);
|
||||
$oDefinitionSet = new CMDBObjectSet($oDefinitionFilter);
|
||||
$oFilter = GetRuleResultFilter($iRuleIndex, $oDefinitionFilter, $oAppContext);
|
||||
$oErrorObjectSet = new CMDBObjectSet($oFilter);
|
||||
$oAuditRule = MetaModel::GetObject('AuditRule', $iRuleIndex);
|
||||
$oP->add('<div class="page_header"><h1>Audit Errors: <span class="hilite">'.$oAuditRule->Get('description').'</span></h1><img style="margin-top: -20px; margin-right: 10px; float: right;" src="../images/stop.png"/></div>');
|
||||
$oP->p('<a href="./audit.php?'.$oAppContext->GetForLink().'">[Back to audit results]</a>');
|
||||
$sBlockId = 'audit_errors';
|
||||
$oP->p("<div id=\"$sBlockId\" style=\"clear:both\">\n");
|
||||
$oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'csv');
|
||||
$oBlock->Display($oP, 1);
|
||||
$oP->p("</div>\n");
|
||||
// Adjust the size of the Textarea containing the CSV to fit almost all the remaining space
|
||||
$oP->add_ready_script(" $('#1>textarea').height(400);"); // adjust the size of the block
|
||||
break;
|
||||
|
||||
case 'errors':
|
||||
$iCategory = utils::ReadParam('category', '');
|
||||
$iRuleIndex = utils::ReadParam('rule', 0);
|
||||
@@ -175,7 +199,9 @@ try
|
||||
$oP->p("<div id=\"$sBlockId\" style=\"clear:both\">\n");
|
||||
$oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'list');
|
||||
$oBlock->Display($oP, 1);
|
||||
$oP->p("</div>\n");
|
||||
$oP->p("</div>\n");
|
||||
$sExportUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey();
|
||||
$oP->add_ready_script("$('a[href*=\"pages/UI.php?operation=search\"]').attr('href', '".$sExportUrl."')");
|
||||
break;
|
||||
|
||||
case 'audit':
|
||||
@@ -232,7 +258,7 @@ try
|
||||
{
|
||||
$aObjectsWithErrors[$aErrorRow['id']] = true;
|
||||
}
|
||||
$aRow['nb_errors'] = ($iErrorsCount == 0) ? '0' : "<a href=\"?operation=errors&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey()."&".$oAppContext->GetForLink()."\">$iErrorsCount</a>";
|
||||
$aRow['nb_errors'] = ($iErrorsCount == 0) ? '0' : "<a href=\"?operation=errors&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey()."&".$oAppContext->GetForLink()."\">$iErrorsCount</a> <a href=\"?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey()."&".$oAppContext->GetForLink()."\">(CSV)</a>";
|
||||
$aRow['percent_ok'] = sprintf('%.2f', 100.0 * (($iCount - $iErrorsCount) / $iCount));
|
||||
$aRow['class'] = GetReportColor($iCount, $iErrorsCount);
|
||||
}
|
||||
|
||||
@@ -1402,14 +1402,18 @@ $('#select_template_class').change( function() {
|
||||
EOF
|
||||
);
|
||||
|
||||
if (MetaModel::GetConfig()->Get('csv_import_history_display'))
|
||||
{
|
||||
$oPage->SetCurrentTabContainer('tabs1');
|
||||
$oPage->SetCurrentTab(Dict::S('UI:History:BulkImports'));
|
||||
BulkChange::DisplayImportHistory($oPage);
|
||||
}
|
||||
}
|
||||
|
||||
switch($iStep)
|
||||
{
|
||||
case 10:
|
||||
// Case generated by BulkChange::DisplayImportHistory
|
||||
$iChange = (int)utils::ReadParam('changeid', 0);
|
||||
BulkChange::DisplayImportHistoryDetails($oPage, $iChange);
|
||||
break;
|
||||
|
||||
@@ -160,7 +160,7 @@ try
|
||||
|
||||
$oP->add("<form method=\"get\">\n");
|
||||
$oP->add(Dict::S('UI:RunQuery:ExpressionToEvaluate')."<br/>\n");
|
||||
$oP->add("<textarea cols=\"120\" rows=\"8\" name=\"expression\">$sExpression</textarea>\n");
|
||||
$oP->add("<textarea cols=\"120\" rows=\"8\" name=\"expression\">".htmlentities($sExpression, ENT_QUOTES, 'UTF-8')."</textarea>\n");
|
||||
|
||||
if (count($aArgs) > 0)
|
||||
{
|
||||
@@ -186,7 +186,7 @@ try
|
||||
|
||||
$oP->p('');
|
||||
$oP->StartCollapsibleSection(Dict::S('UI:RunQuery:MoreInfo'), false);
|
||||
$oP->p(Dict::S('UI:RunQuery:DevelopedQuery').$oFilter->ToOQL());
|
||||
$oP->p(Dict::S('UI:RunQuery:DevelopedQuery').htmlentities($oFilter->ToOQL(), ENT_QUOTES, 'UTF-8'));
|
||||
$oP->p(Dict::S('UI:RunQuery:SerializedFilter').$oFilter->serialize());
|
||||
$oP->EndCollapsibleSection();
|
||||
}
|
||||
|
||||
@@ -385,6 +385,10 @@ function DisplayClassDetails($oPage, $sClass, $sContext)
|
||||
{
|
||||
$sValue = Dict::Format('UI:Schema:ExternalKey_To',MakeClassHLink($oAttDef->GetTargetClass(), $sContext));
|
||||
}
|
||||
elseif ($oAttDef->IsLinkSet())
|
||||
{
|
||||
$sValue = MakeClassHLink($oAttDef->GetLinkedClass(), $sContext);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sValue = $oAttDef->GetDescription();
|
||||
|
||||
@@ -245,8 +245,9 @@ function RequestCreationForm($oP, $oUserOrg)
|
||||
}
|
||||
$aArgs = array('this' => $oRequest);
|
||||
|
||||
$aFieldsMap[$sAttCode] = 'attr_'.$sAttCode;
|
||||
$sValue = $oRequest->GetFormElementForField($oP, get_class($oRequest), $sAttCode, $oAttDef, $value, '', 'attr_'.$sAttCode, '', $iFlags, $aArgs);
|
||||
$sInputId = 'attr_'.$sAttCode;
|
||||
$aFieldsMap[$sAttCode] = $sInputId;
|
||||
$sValue = "<span id=\"field_{$sInputId}\">".$oRequest->GetFormElementForField($oP, get_class($oRequest), $sAttCode, $oAttDef, $value, '', 'attr_'.$sAttCode, '', $iFlags, $aArgs).'</span>';
|
||||
$aDetails[] = array('label' => '<span>'.$oAttDef->GetLabel().'</span>', 'value' => $sValue);
|
||||
}
|
||||
if (!class_exists('AttachmentPlugIn'))
|
||||
@@ -289,7 +290,7 @@ function RequestCreationForm($oP, $oUserOrg)
|
||||
$oP->add("</div>\n");
|
||||
$iFieldsCount = count($aFieldsMap);
|
||||
$sJsonFieldsMap = json_encode($aFieldsMap);
|
||||
$oP->add_ready_script(
|
||||
$oP->add_script(
|
||||
<<<EOF
|
||||
// Create the object once at the beginning of the page... no state specified => new
|
||||
var oWizardHelper = new WizardHelper('UserRequest', '');
|
||||
|
||||
@@ -74,7 +74,7 @@ Deng Lixin for the Chinese translation
|
||||
Marialaura Colantoni for the Italian translation
|
||||
Schlobinux for the fix of the setup temporary file verification.
|
||||
Gabor Kiss for the Hungarian translation
|
||||
Tadashi Kaneda for the Japanese translation
|
||||
Tadashi Kaneda and Shoji Seki for the Japanese translation
|
||||
Antoine Coetsier for the CAS support and tests
|
||||
Vincenzo Todisco for his contribution to the enhancement of the webservices
|
||||
Tobias Glemser and Sabri Saleh for their consulting about iTop security
|
||||
|
||||
@@ -54,7 +54,8 @@ class SynchroDataSource extends cmdbAbstractObject
|
||||
MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", array("targetclass"=>"User", "jointype"=>null, "allowed_values"=>null, "sql"=>"user_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeExternalKey("notify_contact_id", array("targetclass"=>"Contact", "jointype"=>null, "allowed_values"=>null, "sql"=>"notify_contact_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeClass("scope_class", array("class_category"=>"bizmodel,addon/authentication", "more_values"=>"", "sql"=>"scope_class", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array())));
|
||||
|
||||
MetaModel::Init_AddAttribute(new AttributeString("database_table_name", array("allowed_values"=>null, "sql"=>"database_table_name", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array(), "validation_pattern" => "^[A-Za-z0-9_]*$")));
|
||||
|
||||
// Declared here for a future usage, but ignored so far
|
||||
MetaModel::Init_AddAttribute(new AttributeString("scope_restriction", array("allowed_values"=>null, "sql"=>"scope_restriction", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
|
||||
@@ -86,7 +87,7 @@ class SynchroDataSource extends cmdbAbstractObject
|
||||
// Display lists
|
||||
MetaModel::Init_SetZListItems('details', array(
|
||||
'col:0'=> array(
|
||||
'fieldset:SynchroDataSource:Description' => array('name','description','status','scope_class','user_id','notify_contact_id','url_icon','url_application')),
|
||||
'fieldset:SynchroDataSource:Description' => array('name','description','status','scope_class','user_id','notify_contact_id','url_icon','url_application', 'database_table_name')),
|
||||
'col:1'=> array(
|
||||
'fieldset:SynchroDataSource:Reconciliation' => array('reconciliation_policy','action_on_zero','action_on_one','action_on_multiple'),
|
||||
'fieldset:SynchroDataSource:Deletion' => array('user_delete_policy','full_load_periodicity','delete_policy','delete_policy_update','delete_policy_retention'))
|
||||
@@ -98,6 +99,15 @@ class SynchroDataSource extends cmdbAbstractObject
|
||||
// MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form
|
||||
}
|
||||
|
||||
public function DisplayBareProperties(WebPage $oPage, $bEditMode = false, $sPrefix = '', $aExtraParams = array())
|
||||
{
|
||||
if (!$this->IsNew())
|
||||
{
|
||||
$this->Set('database_table_name', $this->GetDataTable());
|
||||
}
|
||||
parent::DisplayBareProperties($oPage, $bEditMode, $sPrefix, $aExtraParams);
|
||||
}
|
||||
|
||||
public function DisplayBareRelations(WebPage $oPage, $bEditMode = false)
|
||||
{
|
||||
if (!$this->IsNew())
|
||||
@@ -476,7 +486,7 @@ EOF
|
||||
|
||||
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
|
||||
{
|
||||
if (($sAttCode == 'scope_class') && (!$this->IsNew()))
|
||||
if ( (($sAttCode == 'scope_class') || ($sAttCode == 'database_table_name')) && (!$this->IsNew()))
|
||||
{
|
||||
return OPT_ATT_READONLY;
|
||||
}
|
||||
@@ -574,6 +584,13 @@ EOF
|
||||
|
||||
if ($this->IsNew())
|
||||
{
|
||||
// Compute the database_table_name
|
||||
$sDataTable = $this->Get('database_table_name');
|
||||
if (!empty($sDataTable))
|
||||
{
|
||||
$this->Set('database_table_name', $this->ComputeDataTableName());
|
||||
}
|
||||
|
||||
// When inserting a new datasource object, also create the SynchroAttribute objects
|
||||
// for each field of the target class
|
||||
// Create all the SynchroAttribute records
|
||||
@@ -659,6 +676,17 @@ EOF
|
||||
{
|
||||
$this->m_aCheckIssues[] = Dict::Format('Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified');
|
||||
}
|
||||
|
||||
// When creating the data source with a specified database_table_name, this table must NOT exist
|
||||
if ($this->IsNew())
|
||||
{
|
||||
$sDataTable = $this->GetDataTable();
|
||||
if (!empty($sDataTable) && CMDBSource::IsTable($this->GetDataTable()))
|
||||
{
|
||||
// Hmm, the synchro_data_xxx table already exists !!
|
||||
$this->m_aCheckIssues[] = Dict::Format('Class:SynchroDataSource/Error:DataTableAlreadyExists', $this->GetDataTable());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function GetTargetClass()
|
||||
@@ -668,12 +696,34 @@ EOF
|
||||
|
||||
public function GetDataTable()
|
||||
{
|
||||
$sName = strtolower($this->GetTargetClass());
|
||||
$sName = str_replace('\'"&@|\\/ ', '_', $sName); // Remove forbidden characters from the table name
|
||||
$sName .= '_'.$this->GetKey(); // Add a suffix for unicity
|
||||
$sTable = MetaModel::GetConfig()->GetDBSubName()."synchro_data_$sName"; // Add the prefix if any
|
||||
$sTable = $this->Get('database_table_name');
|
||||
if (empty($sTable))
|
||||
{
|
||||
$sTable = $this->ComputeDataTableName();
|
||||
}
|
||||
return $sTable;
|
||||
}
|
||||
|
||||
protected function ComputeDataTableName()
|
||||
{
|
||||
$sDBTableName = $this->Get('database_table_name');
|
||||
if (empty($sDBTableName))
|
||||
{
|
||||
$sDBTableName = strtolower($this->GetTargetClass());
|
||||
$sDBTableName = preg_replace('/[^A-za-z0-9_]/', '_', $sDBTableName); // Remove forbidden characters from the table name
|
||||
$sDBTableName .= '_'.$this->GetKey(); // Add a suffix for unicity
|
||||
}
|
||||
else
|
||||
{
|
||||
$sDBTableName = preg_replace('/[^A-za-z0-9_]/', '_', $sDBTableName); // Remove forbidden characters from the table name
|
||||
}
|
||||
$sPrefix = MetaModel::GetConfig()->GetDBSubName()."synchro_data_";
|
||||
if (strpos($sDBTableName, $sPrefix) !== 0)
|
||||
{
|
||||
$sDBTableName = $sPrefix.$sDBTableName;
|
||||
}
|
||||
return $sDBTableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* When the new datasource has been created, let's create the synchro_data table
|
||||
@@ -1168,6 +1218,7 @@ class SynchroAttLinkSet extends SynchroAttribute
|
||||
MetaModel::Init_Params($aParams);
|
||||
MetaModel::Init_InheritAttributes();
|
||||
MetaModel::Init_AddAttribute(new AttributeString("row_separator", array("allowed_values"=>null, "sql"=>"row_separator", "default_value"=>'|', "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
|
||||
MetaModel::Init_AddAttribute(new AttributeString("attribute_separator", array("allowed_values"=>null, "sql"=>"attribute_separator", "default_value"=>';', "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeString("value_separator", array("allowed_values"=>null, "sql"=>"value_separator", "default_value"=>':', "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeString("attribute_qualifier", array("allowed_values"=>null, "sql"=>"attribute_qualifier", "default_value"=>'\'', "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
@@ -1460,11 +1511,15 @@ class SynchroReplica extends DBObject implements iDisplay
|
||||
|
||||
if (!MetaModel::DBIsReadOnly())
|
||||
{
|
||||
$oDataSource = MetaModel::GetObject('SynchroDataSource', $this->Get('sync_source_id'));
|
||||
$sTable = $oDataSource->GetDataTable();
|
||||
$oDataSource = MetaModel::GetObject('SynchroDataSource', $this->Get('sync_source_id'), false);
|
||||
if ($oDataSource)
|
||||
{
|
||||
$sTable = $oDataSource->GetDataTable();
|
||||
|
||||
$sSQL = "DELETE FROM `$sTable` WHERE id = '{$this->GetKey()}'";
|
||||
CMDBSource::Query($sSQL);
|
||||
$sSQL = "DELETE FROM `$sTable` WHERE id = '{$this->GetKey()}'";
|
||||
CMDBSource::Query($sSQL);
|
||||
}
|
||||
// else the whole datasource has probably been already deleted
|
||||
}
|
||||
|
||||
$this->AfterDelete();
|
||||
@@ -1686,8 +1741,21 @@ class SynchroReplica extends DBObject implements iDisplay
|
||||
$value = $this->GetValueFromExtData($sAttCode, $oSyncAtt, $oStatLog);
|
||||
if (!is_null($value))
|
||||
{
|
||||
$oDestObj->Set($sAttCode, $value);
|
||||
$aValueTrace[] = "$sAttCode: $value";
|
||||
if ($oSyncAtt->Get('update_policy') == 'write_if_empty')
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($oDestObj), $sAttCode);
|
||||
if ($oAttDef->IsNull($oDestObj->Get($sAttCode)))
|
||||
{
|
||||
// The value is still "empty" in the target object, we are allowed to write the new value
|
||||
$oDestObj->Set($sAttCode, $value);
|
||||
$aValueTrace[] = "$sAttCode: $value";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$oDestObj->Set($sAttCode, $value);
|
||||
$aValueTrace[] = "$sAttCode: $value";
|
||||
}
|
||||
}
|
||||
}
|
||||
// Really modified ?
|
||||
@@ -2669,4 +2737,4 @@ class SynchroExecution
|
||||
new OQLMenuNode('DataSources', 'SELECT SynchroDataSource', $oAdminMenu->GetIndex(), 12 /* fRank */, true, 'SynchroDataSource', UR_ACTION_MODIFY, UR_ALLOWED_YES);
|
||||
// new OQLMenuNode('Replicas', 'SELECT SynchroReplica', $oAdminMenu->GetIndex(), 12 /* fRank */, true, 'SynchroReplica', UR_ACTION_MODIFY, UR_ALLOWED_YES);
|
||||
// new WebPageMenuNode('Test:RunSynchro', '../synchro/synchro_exec.php', $oAdminMenu->GetIndex(), 13 /* fRank */, 'SynchroDataSource');
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -140,6 +140,8 @@ class TestOQLParser extends TestFunction
|
||||
$aQueries = array(
|
||||
'SELECT toto' => true,
|
||||
'SELECT toto WHERE toto.a = 1' => true,
|
||||
'SELECT toto WHERE toto.a = 0xC' => true,
|
||||
'SELECT toto WHERE toto.a = \'AXDVFS0xCZ32\'' => true,
|
||||
'SELECT toto WHERE toto.a = :myparameter' => true,
|
||||
'SELECT toto WHERE toto.a IN (:param1)' => true,
|
||||
'SELECT toto WHERE toto.a IN (:param1, :param2)' => true,
|
||||
|
||||
@@ -283,12 +283,26 @@ abstract class WebServicesBase
|
||||
$oLog->Set('userinfo', UserRights::GetUser());
|
||||
$oLog->Set('verb', $sVerb);
|
||||
$oLog->Set('result', $oRes->IsOk());
|
||||
$oLog->Set('log_info', $oRes->GetInfoAsText());
|
||||
$oLog->Set('log_warning', $oRes->GetWarningsAsText());
|
||||
$oLog->Set('log_error', $oRes->GetErrorsAsText());
|
||||
$oLog->Set('data', $oRes->GetReturnedDataAsText());
|
||||
$this->TrimAndSetValue($oLog, 'log_info', $oRes->GetInfoAsText());
|
||||
$this->TrimAndSetValue($oLog, 'log_warning', $oRes->GetWarningsAsText());
|
||||
$this->TrimAndSetValue($oLog, 'log_error', $oRes->GetErrorsAsText());
|
||||
$this->TrimAndSetValue($oLog, 'data', $oRes->GetReturnedDataAsText());
|
||||
$oLog->DBInsertNoReload();
|
||||
}
|
||||
|
||||
protected function TrimAndSetValue($oLog, $sAttCode, $sValue)
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($oLog), $sAttCode);
|
||||
if (is_object($oAttDef))
|
||||
{
|
||||
$iMaxSize = $oAttDef->GetMaxSize();
|
||||
if ($iMaxSize)
|
||||
{
|
||||
$sValue = substr($sValue, 0, $iMaxSize);
|
||||
}
|
||||
$oLog->Set($sAttCode, $sValue);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to set a scalar attribute
|
||||
|
||||
Reference in New Issue
Block a user