mirror of
https://github.com/Combodo/iTop.git
synced 2026-03-04 16:44:11 +01:00
Compare commits
170 Commits
2.6.0-prod
...
itop-carbo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0414748cb | ||
|
|
b6418d95e7 | ||
|
|
2d6251e5df | ||
|
|
91f410a85c | ||
|
|
0a48696cd8 | ||
|
|
2f71570390 | ||
|
|
78b6c03af7 | ||
|
|
22342cdc05 | ||
|
|
dcf4963e0c | ||
|
|
9ec36a76f6 | ||
|
|
09b470e6c7 | ||
|
|
40151c7a43 | ||
|
|
34c030b501 | ||
|
|
c59d3cc624 | ||
|
|
b5c4801beb | ||
|
|
3eff8f62b1 | ||
|
|
16c8466841 | ||
|
|
b83e5e2b72 | ||
|
|
764b0f8e31 | ||
|
|
cac0da4e3d | ||
|
|
7e064365eb | ||
|
|
7c7382f372 | ||
|
|
4918b9c83a | ||
|
|
ed95f4e05f | ||
|
|
9f0e8dc49b | ||
|
|
693fdfdc5b | ||
|
|
b8d5c01382 | ||
|
|
01108ca83d | ||
|
|
3d5b7197f6 | ||
|
|
d3db77c675 | ||
|
|
54c027823b | ||
|
|
f63aceeabe | ||
|
|
533e65fcd1 | ||
|
|
3fb0c768e6 | ||
|
|
243aab1030 | ||
|
|
22dba9ae07 | ||
|
|
02857a86fd | ||
|
|
d663d01798 | ||
|
|
3602163b38 | ||
|
|
3322074ce7 | ||
|
|
83bb3b6d72 | ||
|
|
229f800266 | ||
|
|
75737b4ffe | ||
|
|
a5340917a7 | ||
|
|
914d19e7e4 | ||
|
|
eb49dbbdc8 | ||
|
|
912bab5a43 | ||
|
|
94092f445f | ||
|
|
856c037bb0 | ||
|
|
388896b963 | ||
|
|
1d8addf675 | ||
|
|
c8c3d32b18 | ||
|
|
75a0979eee | ||
|
|
d6a0a279a5 | ||
|
|
44f5d71e1b | ||
|
|
9c71d32964 | ||
|
|
d199d84b27 | ||
|
|
24aca83de4 | ||
|
|
3de7aa1ada | ||
|
|
5a0edb5c39 | ||
|
|
d4fec14123 | ||
|
|
38951fab1a | ||
|
|
e2c8237beb | ||
|
|
1224570fa5 | ||
|
|
afb99c0f4b | ||
|
|
733c908e34 | ||
|
|
377b4b038c | ||
|
|
3f7fd6f9f9 | ||
|
|
1cb36621a1 | ||
|
|
ddd9188eb7 | ||
|
|
02254eac67 | ||
|
|
ebe026b2e9 | ||
|
|
efc7c5b0f4 | ||
|
|
f68a77450d | ||
|
|
c5943c6c28 | ||
|
|
bc3b50ad23 | ||
|
|
1f7923beae | ||
|
|
2f15bbdaf3 | ||
|
|
a2d34d1779 | ||
|
|
cdba1e0d36 | ||
|
|
48f15d7781 | ||
|
|
d0a766d424 | ||
|
|
a89bca4626 | ||
|
|
23ec21e494 | ||
|
|
63a36fd0f6 | ||
|
|
02617e8976 | ||
|
|
7cf7e55454 | ||
|
|
5067c867b8 | ||
|
|
6b5cc7ca4b | ||
|
|
7bb49893ee | ||
|
|
bf62b63173 | ||
|
|
b8fb1fa78a | ||
|
|
818b4d08da | ||
|
|
f438fbd06f | ||
|
|
297a45d477 | ||
|
|
17fe9dfd5f | ||
|
|
9d0cbca497 | ||
|
|
a613b4b101 | ||
|
|
c989e2eda5 | ||
|
|
c6fd381b01 | ||
|
|
a784661025 | ||
|
|
1f9a638bc1 | ||
|
|
545504c0de | ||
|
|
32f1e97bcd | ||
|
|
43b0747b83 | ||
|
|
9637e75f97 | ||
|
|
84767692b0 | ||
|
|
d484614c0f | ||
|
|
b403bace6c | ||
|
|
0b751a9dd6 | ||
|
|
8f434cad08 | ||
|
|
f83292fccc | ||
|
|
90e128f951 | ||
|
|
8efc372a68 | ||
|
|
257fb4d036 | ||
|
|
97261820f6 | ||
|
|
2f83a2168c | ||
|
|
c0275eec21 | ||
|
|
2bd7a7b5f8 | ||
|
|
0aab80917a | ||
|
|
31a2b634cc | ||
|
|
dc7bafa41c | ||
|
|
505aad1e89 | ||
|
|
4508b9d7d5 | ||
|
|
888aa5f958 | ||
|
|
4051524b5c | ||
|
|
c8c4b072b1 | ||
|
|
08543287e8 | ||
|
|
21e5eee31f | ||
|
|
ed3fd851f1 | ||
|
|
dfe81f6272 | ||
|
|
00c59b7f2c | ||
|
|
dbcde14f5e | ||
|
|
a6f4adfed8 | ||
|
|
effaba42d0 | ||
|
|
340cacc691 | ||
|
|
0bce9c78ea | ||
|
|
48c920f848 | ||
|
|
a85bedd31c | ||
|
|
23269eab77 | ||
|
|
05bcfbe4c3 | ||
|
|
27ad2e2169 | ||
|
|
5d09841cd5 | ||
|
|
11ec46c18b | ||
|
|
da76fc70bb | ||
|
|
2b563d4fc8 | ||
|
|
2773a8bf2f | ||
|
|
ad36011fc8 | ||
|
|
b82b095f58 | ||
|
|
2f5c810276 | ||
|
|
d90e094d4d | ||
|
|
4eb416d407 | ||
|
|
636a3940cd | ||
|
|
352f8cee10 | ||
|
|
523e19528e | ||
|
|
9f3332b2f2 | ||
|
|
2b71621628 | ||
|
|
5349fc6f4b | ||
|
|
1665b12b86 | ||
|
|
1bbed99636 | ||
|
|
778db225a8 | ||
|
|
ca48e8ff92 | ||
|
|
75d5630164 | ||
|
|
bb6bd61c37 | ||
|
|
b51b5582a0 | ||
|
|
bc5643707e | ||
|
|
27b1b1f8a8 | ||
|
|
a45e543eac | ||
|
|
50235bbb04 | ||
|
|
d31a4047f6 |
37
.gitignore
vendored
37
.gitignore
vendored
@@ -1,36 +1,37 @@
|
||||
|
||||
# no slash at the end to handle also symlinks
|
||||
/toolkit
|
||||
/conf/*
|
||||
/env-*/*
|
||||
/conf
|
||||
/env-*
|
||||
|
||||
# composer reserver directory, from sources, populate/update using "composer install"
|
||||
vendor/*
|
||||
test/vendor/*
|
||||
|
||||
# all datas but listing prevention
|
||||
data/*
|
||||
!data/.htaccess
|
||||
!data/index.php
|
||||
!data/web.config
|
||||
/data/**
|
||||
!/data/.htaccess
|
||||
!/data/index.php
|
||||
!/data/web.config
|
||||
|
||||
# iTop extensions
|
||||
extensions/*
|
||||
!extensions/readme.txt
|
||||
/extensions/**
|
||||
!/extensions/readme.txt
|
||||
|
||||
# all logs but listing prevention
|
||||
log/*
|
||||
!log/.htaccess
|
||||
!log/index.php
|
||||
!log/web.config
|
||||
/log/**
|
||||
!/log/.htaccess
|
||||
!/log/index.php
|
||||
!/log/web.config
|
||||
|
||||
|
||||
# Jetbrains
|
||||
.idea/**
|
||||
!.idea/encodings.xml
|
||||
!.idea/codeStyles
|
||||
!.idea/codeStyles/*
|
||||
!.idea/inspectionProfiles
|
||||
!.idea/inspectionProfiles/*
|
||||
/.idea/**
|
||||
!/.idea/encodings.xml
|
||||
!/.idea/codeStyles
|
||||
!/.idea/codeStyles/*
|
||||
!/.idea/inspectionProfiles
|
||||
!/.idea/inspectionProfiles/*
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@ You are welcome to create pull requests on any of those subjects:
|
||||
|
||||
* 🐛 `:bug:` bug fix
|
||||
* 🔒 `:lock:` security
|
||||
* 🌐 `:globe_with_meridians:` translation
|
||||
* 🌐 `:globe_with_meridians:` translation / i18n / l10n
|
||||
|
||||
If you want to implement a **new feature**, please [create a corresponding ticket](https://sourceforge.net/p/itop/tickets/new/) for review.
|
||||
If you ever want to begin implementation, do so in a fork, and add a link to the corresponding commits in the ticket.
|
||||
If you ever want to begin implementation, do so in a fork, and add a link to the corresponding commits in the ticket.
|
||||
|
||||
### License
|
||||
iTop is distributed under the AGPL-3.0 license (see the [license.txt] file),
|
||||
iTop is distributed under the AGPL-3.0 license (see the [license.txt] file),
|
||||
your code must comply with this license.
|
||||
|
||||
If you want to use another license, you may [create an extension][wiki new ext].
|
||||
@@ -33,28 +33,29 @@ TL;DR:
|
||||
> **create a fork from iTop main repository,
|
||||
> create a branch based on either release branch if present, or develop otherwise**
|
||||
|
||||
We are using the [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) branch model. That means we have in our repo those
|
||||
We are using the [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) branch model. That means we have in our repo those
|
||||
main branches:
|
||||
|
||||
- develop: ongoing development version
|
||||
- release/*: if present, that means we are working on a beta version
|
||||
- release/\*: if present, that means we are working on a beta version
|
||||
- master: previous stable version
|
||||
|
||||
For example, if no beta version is currently ongoing we could have:
|
||||
|
||||
- develop containing 2.8 version
|
||||
- master containing 2.7 version
|
||||
- develop containing future 2.8.0 version
|
||||
- master containing 2.7.x maintenance version
|
||||
|
||||
In this example, when 2.8 beta is shipped that will become:
|
||||
In this example, when 2.8.0-beta is shipped that will become:
|
||||
|
||||
- develop: 2.9 version
|
||||
- release/2.8: 2.8 beta
|
||||
- master: 2.7 version
|
||||
- develop: future 2.9.0 version
|
||||
- release/2.8: 2.8.0-beta
|
||||
- master: 2.7.x maintenance version
|
||||
|
||||
And when 2.8 final will be out:
|
||||
And when 2.8.0 final will be out:
|
||||
|
||||
- develop: 2.9 version
|
||||
- master: 2.8 version
|
||||
- develop: future 2.9.0 version
|
||||
- master: 2.8.x maintenance version
|
||||
- support/2.7 : 2.7.x maintenance version
|
||||
|
||||
|
||||
## Coding
|
||||
@@ -63,6 +64,10 @@ And when 2.8 final will be out:
|
||||
|
||||
Please follow [our guidelines](https://www.itophub.io/wiki/page?id=latest%3Acustomization%3Acoding_standards).
|
||||
|
||||
### 🌐 Translations
|
||||
|
||||
A [dedicated page](https://www.itophub.io/wiki/page?id=latest%3Acustomization%3Atranslation) is available in the official wiki.
|
||||
|
||||
### Tests
|
||||
|
||||
Please create tests that covers as much as possible the code you're submitting.
|
||||
@@ -75,7 +80,7 @@ Our tests are located in the `test/` directory, containing a PHPUnit config file
|
||||
* Use the present tense ("Add feature" not "Added feature")
|
||||
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
||||
* Limit the first line to 72 characters or less
|
||||
* Please start the commit message with an applicable emoji (following the [Gitmoji guide](https://gitmoji.carloscuesta.me/).). For example :
|
||||
* Please start the commit message with an applicable emoji code (following the [Gitmoji guide](https://gitmoji.carloscuesta.me/)). For example :
|
||||
* 🌐 `:globe_with_meridians:` for translations
|
||||
* 🎨 `:art:` when improving the format/structure of the code
|
||||
* ⚡️ `:zap:` when improving performance
|
||||
|
||||
11
README.md
11
README.md
@@ -35,14 +35,14 @@ iTop also offers mass import tools and web services to integrate with your IT
|
||||
- [Changes since the previous version][58]
|
||||
- [New features][59]
|
||||
- [Migration notes][60]
|
||||
- [Download iTop 2.6.0-beta][61]
|
||||
- [Download iTop 2.6.0][61]
|
||||
|
||||
|
||||
### Version 2.5
|
||||
- [Changes since the previous version][54]
|
||||
- [New features][55]
|
||||
- [Migration notes][56]
|
||||
- [Download iTop 2.5.0][57]
|
||||
- [Download iTop 2.5.1][57]
|
||||
|
||||
|
||||
### Version 2.4
|
||||
@@ -88,7 +88,6 @@ We would like to give a special thank you to the people from the community who c
|
||||
#### Aliases
|
||||
- chifu1234
|
||||
- cprobst
|
||||
- jbostoen
|
||||
- Karkoff1212
|
||||
- larhip
|
||||
- Laura
|
||||
@@ -128,14 +127,14 @@ We would like to give a special thank you to the people from the community who c
|
||||
[50]: https://www.itophub.io/wiki/page?id=2_4_0:release:change_log
|
||||
[51]: https://www.itophub.io/wiki/page?id=2_4_0:release:2_4_whats_new
|
||||
[52]: https://www.itophub.io/wiki/page?id=2_4_0:install:230_to_240_migration_notes
|
||||
[53]: https://sourceforge.net/projects/itop/files/itop/2.4.1/iTop-2.4.1-3714.zip/download
|
||||
[53]: https://sourceforge.net/projects/itop/files/itop/2.4.1
|
||||
|
||||
[54]: https://www.itophub.io/wiki/page?id=2_5_0:release:change_log
|
||||
[55]: https://www.itophub.io/wiki/page?id=2_5_0:release:2_5_whats_new
|
||||
[56]: https://www.itophub.io/wiki/page?id=2_5_0:install:240_to_250_migration_notes
|
||||
[57]: https://sourceforge.net/projects/itop/files/itop/2.5.0/iTop-2.5.0-3935.zip/download
|
||||
[57]: https://sourceforge.net/projects/itop/files/itop/2.5.1
|
||||
|
||||
[58]: https://www.itophub.io/wiki/page?id=2_6_0:release:change_log
|
||||
[59]: https://www.itophub.io/wiki/page?id=2_6_0:release:2_6_whats_new
|
||||
[60]: https://www.itophub.io/wiki/page?id=2_6_0:install:250_to_260_migration_notes
|
||||
[61]: https://sourceforge.net/projects/itop/files/itop/2.6.0-beta/iTop-2.6-beta-4146.zip/download
|
||||
[61]: https://sourceforge.net/projects/itop/files/itop/2.6.0
|
||||
|
||||
@@ -825,6 +825,10 @@ class RestResult
|
||||
* Result: the requested operation cannot be performed because it can cause data (integrity) loss
|
||||
*/
|
||||
const UNSAFE = 12;
|
||||
/**
|
||||
* Result: the request page number is not valid. It must be an integer greater than 0
|
||||
*/
|
||||
const INVALID_PAGE = 13;
|
||||
/**
|
||||
* Result: the operation could not be performed, see the message for troubleshooting
|
||||
*/
|
||||
@@ -1091,10 +1095,13 @@ class RestUtils
|
||||
*
|
||||
* @param string $sClass Name of the class
|
||||
* @param mixed $key Either search criteria (substructure), or an object or an OQL string.
|
||||
* @param int $iLimit The limit of results to return
|
||||
* @param int $iOffset The offset of results to return
|
||||
*
|
||||
* @return DBObjectSet The search result set
|
||||
* @throws Exception If the input structure is not valid
|
||||
*/
|
||||
public static function GetObjectSetFromKey($sClass, $key)
|
||||
public static function GetObjectSetFromKey($sClass, $key, $iLimit = 0, $iOffset = 0)
|
||||
{
|
||||
if (is_object($key))
|
||||
{
|
||||
@@ -1128,7 +1135,7 @@ class RestUtils
|
||||
{
|
||||
throw new Exception("Wrong format for key");
|
||||
}
|
||||
$oObjectSet = new DBObjectSet($oSearch);
|
||||
$oObjectSet = new DBObjectSet($oSearch, array(), array(), null, $iLimit, $iOffset);
|
||||
return $oObjectSet;
|
||||
}
|
||||
|
||||
|
||||
@@ -3288,7 +3288,7 @@ EOF
|
||||
$aDurationData = $value;
|
||||
if (!is_array($aDurationData))
|
||||
{
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
|
||||
$iValue = (((24 * $aDurationData['d']) + $aDurationData['h']) * 60 + $aDurationData['m']) * 60 + $aDurationData['s'];
|
||||
@@ -3524,21 +3524,13 @@ EOF
|
||||
{
|
||||
if (preg_match("/^attr_$sSubFormPrefix(.*)$/", $sKey, $aMatches))
|
||||
{
|
||||
$sLinkClass = $oAttDef->GetLinkedClass();
|
||||
if ($oAttDef->IsIndirect())
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef($sObjClass, $aMatches[1]);
|
||||
// Recursing over n:n link datetime attributes
|
||||
// Note: We might need to do it with other attribute types, like Document or redundancy setting.
|
||||
if ($oLinkAttDef instanceof AttributeDateTime)
|
||||
{
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef($sLinkClass, $aMatches[1]);
|
||||
// Recursing over n:n link datetime attributes
|
||||
// Note: We might need to do it with other attribute types, like Document or redundancy setting.
|
||||
if ($oLinkAttDef instanceof AttributeDateTime)
|
||||
{
|
||||
$aObjData[$aMatches[1]] = $this->PrepareValueFromPostedForm($sSubFormPrefix,
|
||||
$aMatches[1], $sLinkClass, $aData);
|
||||
}
|
||||
else
|
||||
{
|
||||
$aObjData[$aMatches[1]] = $value;
|
||||
}
|
||||
$aObjData[$aMatches[1]] = $this->PrepareValueFromPostedForm($sSubFormPrefix,
|
||||
$aMatches[1], $sObjClass, $aData);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3555,26 +3547,19 @@ EOF
|
||||
foreach($aRawToBeModified as $iObjKey => $aData)
|
||||
{
|
||||
$sSubFormPrefix = $aData['formPrefix'];
|
||||
$sObjClass = isset($aData['class']) ? $aData['class'] : $oAttDef->GetLinkedClass();
|
||||
$aObjData = array();
|
||||
foreach($aData as $sKey => $value)
|
||||
{
|
||||
if (preg_match("/^attr_$sSubFormPrefix(.*)$/", $sKey, $aMatches))
|
||||
{
|
||||
$sLinkClass = $oAttDef->GetLinkedClass();
|
||||
if ($oAttDef->IsIndirect())
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef($sObjClass, $aMatches[1]);
|
||||
// Recursing over n:n link datetime attributes
|
||||
// Note: We might need to do it with other attribute types, like Document or redundancy setting.
|
||||
if ($oLinkAttDef instanceof AttributeDateTime)
|
||||
{
|
||||
$oLinkAttDef = MetaModel::GetAttributeDef($sLinkClass, $aMatches[1]);
|
||||
// Recursing over n:n link datetime attributes
|
||||
// Note: We might need to do it with other attribute types, like Document or redundancy setting.
|
||||
if ($oLinkAttDef instanceof AttributeDateTime)
|
||||
{
|
||||
$aObjData[$aMatches[1]] = $this->PrepareValueFromPostedForm($sSubFormPrefix,
|
||||
$aMatches[1], $sLinkClass, $aData);
|
||||
}
|
||||
else
|
||||
{
|
||||
$aObjData[$aMatches[1]] = $value;
|
||||
}
|
||||
$aObjData[$aMatches[1]] = $this->PrepareValueFromPostedForm($sSubFormPrefix,
|
||||
$aMatches[1], $sObjClass, $aData);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3690,6 +3675,9 @@ EOF
|
||||
return $aErrors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function DBInsertNoReload()
|
||||
{
|
||||
$res = parent::DBInsertNoReload();
|
||||
@@ -3707,6 +3695,7 @@ EOF
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
* Attaches InlineImages to the current object
|
||||
*/
|
||||
protected function OnObjectKeyReady()
|
||||
@@ -3831,6 +3820,12 @@ EOF
|
||||
$this->bAllowWrite = $bAllow;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
*/
|
||||
public function DoCheckToWrite()
|
||||
{
|
||||
parent::DoCheckToWrite();
|
||||
@@ -4211,6 +4206,7 @@ EOF
|
||||
$oDummyObj->Set($sAttCode, $currValue);
|
||||
/** @var ormTagSet $oTagSet */
|
||||
$oTagSet = $oDummyObj->Get($sAttCode);
|
||||
$oTagSet->SetDisplayPartial(true);
|
||||
foreach($aKeys as $iIndex => $sValues)
|
||||
{
|
||||
if ($iIndex == 0)
|
||||
|
||||
@@ -444,44 +444,41 @@ EOF
|
||||
$sClass = $oQuery->GetClass();
|
||||
foreach($this->oModelReflection->ListAttributes($sClass) as $sAttCode => $sAttType)
|
||||
{
|
||||
if ($sAttType == 'AttributeLinkedSet')
|
||||
// For external fields, find the real type of the target
|
||||
$sTargetClass = $sClass;
|
||||
while (is_a($sAttType, 'AttributeExternalField', true))
|
||||
{
|
||||
$sExtKeyAttCode = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sAttCode, 'extkey_attcode');
|
||||
$sTargetAttCode = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sAttCode, 'target_attcode');
|
||||
$sTargetClass = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sExtKeyAttCode, 'targetclass');
|
||||
$aTargetAttCodes = $this->oModelReflection->ListAttributes($sTargetClass);
|
||||
$sAttType = $aTargetAttCodes[$sTargetAttCode];
|
||||
}
|
||||
if (is_a($sAttType, 'AttributeLinkedSet', true))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (is_subclass_of($sAttType, 'AttributeLinkedSet'))
|
||||
if (is_a($sAttType, 'AttributeFriendlyName', true))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ($sAttType == 'AttributeFriendlyName')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (is_subclass_of($sAttType, 'AttributeFriendlyName'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ($sAttType == 'AttributeExternalField')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (is_subclass_of($sAttType, 'AttributeExternalField'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ($sAttType == 'AttributeOneWayPassword')
|
||||
if (is_a($sAttType, 'AttributeOneWayPassword', true))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$sLabel = $this->oModelReflection->GetLabel($sClass, $sAttCode);
|
||||
$aGroupBy[$sAttCode] = $sLabel;
|
||||
|
||||
if (is_subclass_of($sAttType, 'AttributeDateTime') || $sAttType == 'AttributeDateTime')
|
||||
if (!in_array($sLabel, $aGroupBy))
|
||||
{
|
||||
$aGroupBy[$sAttCode.':hour'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Hour', $sLabel);
|
||||
$aGroupBy[$sAttCode.':month'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Month', $sLabel);
|
||||
$aGroupBy[$sAttCode.':day_of_week'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-DayOfWeek', $sLabel);
|
||||
$aGroupBy[$sAttCode.':day_of_month'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-DayOfMonth', $sLabel);
|
||||
$aGroupBy[$sAttCode] = $sLabel;
|
||||
|
||||
if (is_a($sAttType, 'AttributeDateTime', true))
|
||||
{
|
||||
$aGroupBy[$sAttCode.':hour'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Hour', $sLabel);
|
||||
$aGroupBy[$sAttCode.':month'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Month', $sLabel);
|
||||
$aGroupBy[$sAttCode.':day_of_week'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-DayOfWeek', $sLabel);
|
||||
$aGroupBy[$sAttCode.':day_of_month'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-DayOfMonth', $sLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
asort($aGroupBy);
|
||||
@@ -619,7 +616,7 @@ class DashletUnknown extends Dashlet
|
||||
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
|
||||
$oPage->add('<div class="dashlet-ukn-image"><img src="'.$sIconUrl.'" /></div>');
|
||||
$oPage->add('<div class="dashlet-ukn-image"><img src="'.utils::HtmlEntities($sIconUrl).'" /></div>');
|
||||
$oPage->add('<div class="dashlet-ukn-text">'.$sExplainText.'</div>');
|
||||
|
||||
$oPage->add('</div>');
|
||||
@@ -639,7 +636,7 @@ class DashletUnknown extends Dashlet
|
||||
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
|
||||
$oPage->add('<div class="dashlet-ukn-image"><img src="'.$sIconUrl.'" /></div>');
|
||||
$oPage->add('<div class="dashlet-ukn-image"><img src="'.utils::HtmlEntities($sIconUrl).'" /></div>');
|
||||
$oPage->add('<div class="dashlet-ukn-text">'.$sExplainText.'</div>');
|
||||
|
||||
$oPage->add('</div>');
|
||||
@@ -780,7 +777,7 @@ class DashletProxy extends DashletUnknown
|
||||
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
|
||||
$oPage->add('<div class="dashlet-pxy-image"><img src="'.$sIconUrl.'" /></div>');
|
||||
$oPage->add('<div class="dashlet-pxy-image"><img src="'.utils::HtmlEntities($sIconUrl).'" /></div>');
|
||||
$oPage->add('<div class="dashlet-pxy-text">'.$sExplainText.'</div>');
|
||||
|
||||
$oPage->add('</div>');
|
||||
@@ -1272,6 +1269,10 @@ abstract class DashletGroupBy extends Dashlet
|
||||
$sBlockId = 'block_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM)
|
||||
$oBlock = new DisplayBlock($oFilter, $sType);
|
||||
$oBlock->Display($oPage, $sBlockId, array_merge($aExtraParams, $aParams));
|
||||
if($bEditMode)
|
||||
{
|
||||
$oPage->add('<div class="dashlet-blocker"></div>');
|
||||
}
|
||||
$oPage->add('</div>');
|
||||
}
|
||||
}
|
||||
@@ -1913,7 +1914,7 @@ class DashletHeaderStatic extends Dashlet
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
$oPage->add('<div class="main_header">');
|
||||
|
||||
$oPage->add('<img src="'.$sIconPath.'">');
|
||||
$oPage->add('<img src="'.utils::HtmlEntities($sIconPath).'">');
|
||||
$oPage->add('<h1>'.$this->oModelReflection->DictString($sTitle).'</h1>');
|
||||
|
||||
$oPage->add('</div>');
|
||||
@@ -2069,7 +2070,7 @@ class DashletHeaderDynamic extends Dashlet
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
$oPage->add('<div class="main_header">');
|
||||
|
||||
$oPage->add('<img src="'.$sIconPath.'">');
|
||||
$oPage->add('<img src="'.utils::HtmlEntities($sIconPath).'">');
|
||||
|
||||
if (isset($aExtraParams['query_params']))
|
||||
{
|
||||
@@ -2113,7 +2114,7 @@ class DashletHeaderDynamic extends Dashlet
|
||||
$oPage->add('<div class="dashlet-content">');
|
||||
$oPage->add('<div class="main_header">');
|
||||
|
||||
$oPage->add('<img src="'.$sIconPath.'">');
|
||||
$oPage->add('<img src="'.utils::HtmlEntities($sIconPath).'">');
|
||||
|
||||
$sBlockId = 'block_fake_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM)
|
||||
|
||||
@@ -2332,7 +2333,7 @@ class DashletBadge extends Dashlet
|
||||
|
||||
$oPage->add('<div id="block_fake_'.$this->sId.'" class="display_block">');
|
||||
$oPage->add('<p>');
|
||||
$oPage->add(' <a class="actions"><img src="'.$sIconUrl.'" style="vertical-align:middle;float;left;margin-right:10px;border:0;">'.$sClassLabel.': 947</a>');
|
||||
$oPage->add(' <a class="actions"><img src="'.utils::HtmlEntities($sIconUrl).'" style="vertical-align:middle;float;left;margin-right:10px;border:0;">'.$sClassLabel.': 947</a>');
|
||||
$oPage->add('</p>');
|
||||
$oPage->add('<p>');
|
||||
$oPage->add(' <a>'.Dict::Format('UI:ClickToCreateNew', $sClassLabel).'</a>');
|
||||
|
||||
@@ -431,7 +431,7 @@ EOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
$aRow['form::select'] = "<input type=\"checkBox\" $sDisabled class=\"selectList{$this->iListId}\" name=\"selectObject[]\" value=\"".$aObjects[$sAlias]->GetKey()."\"></input>";
|
||||
$aRow['form::select'] = "<input type=\"checkbox\" $sDisabled class=\"selectList{$this->iListId}\" name=\"selectObject[]\" value=\"".$aObjects[$sAlias]->GetKey()."\"></input>";
|
||||
}
|
||||
}
|
||||
foreach($aColumns[$sAlias] as $sAttCode => $aData)
|
||||
@@ -565,7 +565,7 @@ EOF;
|
||||
<<<EOF
|
||||
var oTable = $('#{$this->iListId} table.listResults');
|
||||
oTable.tableHover();
|
||||
oTable.tablesorter( { $sHeaders widgets: ['myZebra', 'truncatedList']} ).tablesorterPager({container: $('#pager{$this->iListId}'), totalRows:$iCount, size: $iPageSize, filter: '$sOQL', extra_params: '$sExtraParams', select_mode: '$sSelectModeJS', displayKey: $sDisplayKey, columns: $sJSColumns, class_aliases: $sJSClassAliases $sCssCount});
|
||||
oTable.tablesorter( { $sHeaders widgets: ['myZebra', 'truncatedList']} ).tablesorterPager({container: $('#pager{$this->iListId}'), totalRows:$iCount, size: $iPageSize, filter: '$sOQL', extra_params: '$sExtraParams', select_mode: '$sSelectModeJS', displayKey: $sDisplayKey, table_id: '{$this->iListId}', columns: $sJSColumns, class_aliases: $sJSClassAliases $sCssCount});
|
||||
EOF
|
||||
);
|
||||
if ($sFakeSortList != '')
|
||||
|
||||
@@ -395,6 +395,7 @@ EOF
|
||||
{
|
||||
foreach($aFields as $oField)
|
||||
{
|
||||
/** @var \DesignerFormField $oField */
|
||||
$oField->ReadParam($aValues);
|
||||
}
|
||||
}
|
||||
@@ -679,18 +680,34 @@ class DesignerTabularForm extends DesignerForm
|
||||
|
||||
class DesignerFormField
|
||||
{
|
||||
/** @var string $sLabel */
|
||||
protected $sLabel;
|
||||
/** @var string $sCode */
|
||||
protected $sCode;
|
||||
/** @var mixed $defaultValue */
|
||||
protected $defaultValue;
|
||||
/** @var \DesignerForm $oForm */
|
||||
protected $oForm;
|
||||
/** @var bool $bMandatory */
|
||||
protected $bMandatory;
|
||||
/** @var bool $bReadOnly */
|
||||
protected $bReadOnly;
|
||||
/** @var bool $bAutoApply */
|
||||
protected $bAutoApply;
|
||||
/** @var array $aCSSClasses */
|
||||
protected $aCSSClasses;
|
||||
/** @var bool $bDisplayed */
|
||||
protected $bDisplayed;
|
||||
/** @var array $aWidgetExtraParams */
|
||||
protected $aWidgetExtraParams;
|
||||
|
||||
|
||||
/**
|
||||
* DesignerFormField constructor.
|
||||
*
|
||||
* @param string $sCode
|
||||
* @param string $sLabel
|
||||
* @param mixed $defaultValue
|
||||
*/
|
||||
public function __construct($sCode, $sLabel, $defaultValue)
|
||||
{
|
||||
$this->sLabel = $sLabel;
|
||||
@@ -703,7 +720,10 @@ class DesignerFormField
|
||||
$this->bDisplayed = true;
|
||||
$this->aWidgetExtraParams = array();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetCode()
|
||||
{
|
||||
return $this->sCode;
|
||||
@@ -712,69 +732,108 @@ class DesignerFormField
|
||||
/**
|
||||
* @param \DesignerForm $oForm
|
||||
*/
|
||||
public function SetForm(\DesignerForm $oForm)
|
||||
public function SetForm(DesignerForm $oForm)
|
||||
{
|
||||
$this->oForm = $oForm;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bool $bMandatory
|
||||
*/
|
||||
public function SetMandatory($bMandatory = true)
|
||||
{
|
||||
$this->bMandatory = $bMandatory;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $bReadOnly
|
||||
*/
|
||||
public function SetReadOnly($bReadOnly = true)
|
||||
{
|
||||
$this->bReadOnly = $bReadOnly;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function IsReadOnly()
|
||||
{
|
||||
return ($this->oForm->IsReadOnly() || $this->bReadOnly);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $bAutoApply
|
||||
*/
|
||||
public function SetAutoApply($bAutoApply)
|
||||
{
|
||||
$this->bAutoApply = $bAutoApply;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function IsAutoApply()
|
||||
{
|
||||
return $this->bAutoApply;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $bDisplayed
|
||||
*/
|
||||
public function SetDisplayed($bDisplayed)
|
||||
{
|
||||
$this->bDisplayed = $bDisplayed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function IsDisplayed()
|
||||
{
|
||||
return $this->bDisplayed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetFieldId()
|
||||
{
|
||||
return $this->oForm->GetFieldId($this->sCode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetWidgetClass()
|
||||
{
|
||||
return 'property_field';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function GetWidgetExtraParams()
|
||||
{
|
||||
return $this->aWidgetExtraParams;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \WebPage $oP
|
||||
* @param string $sFormId
|
||||
* @param string $sRenderMode
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
|
||||
{
|
||||
$sId = $this->oForm->GetFieldId($this->sCode);
|
||||
$sName = $this->oForm->GetFieldName($this->sCode);
|
||||
return array('label' => $this->sLabel, 'value' => "<input type=\"text\" id=\"$sId\" name=\"$sName\" value=\"".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."\">");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $aValues
|
||||
*/
|
||||
public function ReadParam(&$aValues)
|
||||
{
|
||||
if ($this->IsReadOnly())
|
||||
@@ -801,12 +860,18 @@ class DesignerFormField
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function IsVisible()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $sCSSClass
|
||||
*/
|
||||
public function AddCSSClass($sCSSClass)
|
||||
{
|
||||
$this->aCSSClasses[] = $sCSSClass;
|
||||
@@ -814,6 +879,8 @@ class DesignerFormField
|
||||
|
||||
/**
|
||||
* A way to set/change the default value after constructing the field
|
||||
*
|
||||
* @param array $aAllDefaultValue
|
||||
*/
|
||||
public function SetDefaultValueFrom($aAllDefaultValue)
|
||||
{
|
||||
@@ -822,7 +889,12 @@ class DesignerFormField
|
||||
$this->defaultValue = $aAllDefaultValue[$this->GetCode()];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $sFieldCode
|
||||
*
|
||||
* @return \DesignerFormField|false
|
||||
*/
|
||||
public function FindField($sFieldCode)
|
||||
{
|
||||
if ($this->sCode == $sFieldCode)
|
||||
@@ -832,11 +904,17 @@ class DesignerFormField
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetHandlerEquals()
|
||||
{
|
||||
return 'null';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetHandlerGetValue()
|
||||
{
|
||||
return 'null';
|
||||
@@ -845,25 +923,43 @@ class DesignerFormField
|
||||
|
||||
class DesignerLabelField extends DesignerFormField
|
||||
{
|
||||
/** @var int $iCount A counter to automatically make the field code */
|
||||
protected static $iCount = 0;
|
||||
/** @var string $sDescription */
|
||||
protected $sDescription;
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function __construct($sLabel, $sDescription)
|
||||
{
|
||||
parent::__construct('', $sLabel, '');
|
||||
// Increase counter
|
||||
static::$iCount++;
|
||||
|
||||
parent::__construct('label_number_' . static::$iCount, $sLabel, '');
|
||||
$this->sDescription = $sDescription;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
|
||||
{
|
||||
$sId = $this->oForm->GetFieldId($this->sCode);
|
||||
$sName = $this->oForm->GetFieldName($this->sCode);
|
||||
return array('label' => $this->sLabel, 'value' => $this->sDescription);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function ReadParam(&$aValues)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function IsVisible()
|
||||
{
|
||||
return true;
|
||||
@@ -1334,7 +1430,8 @@ class DesignerIconSelectionField extends DesignerFormField
|
||||
$sPostUploadTo = ($this->sUploadUrl == null) ? 'null' : "'{$this->sUploadUrl}'";
|
||||
if (!$this->IsReadOnly())
|
||||
{
|
||||
$sValue = "<input type=\"hidden\" id=\"$sId\" name=\"$sName\" value=\"{$this->defaultValue}\"/>";
|
||||
$sDefaultValue = ($this->defaultValue !== '') ? : $this->aAllowedValues[$idx]['value'];
|
||||
$sValue = "<input type=\"hidden\" id=\"$sId\" name=\"$sName\" value=\"{$sDefaultValue}\"/>";
|
||||
$oP->add_ready_script(
|
||||
<<<EOF
|
||||
$('#$sId').icon_select({current_idx: $idx, items: $sJSItems, post_upload_to: $sPostUploadTo});
|
||||
|
||||
@@ -846,8 +846,8 @@ EOF
|
||||
{
|
||||
$sAuthUser = $_SESSION['auth_user'];
|
||||
UserRights::Login($sAuthUser); // Set the user's language
|
||||
$sOldPwd = utils::ReadPostedParam('old_pwd', '', false, 'raw_data');
|
||||
$sNewPwd = utils::ReadPostedParam('new_pwd', '', false, 'raw_data');
|
||||
$sOldPwd = utils::ReadPostedParam('old_pwd', '', 'raw_data');
|
||||
$sNewPwd = utils::ReadPostedParam('new_pwd', '', 'raw_data');
|
||||
if (UserRights::CanChangePassword() && ((!UserRights::CheckCredentials($sAuthUser, $sOldPwd)) || (!UserRights::ChangePassword($sOldPwd, $sNewPwd))))
|
||||
{
|
||||
$oPage = self::NewLoginWebPage();
|
||||
|
||||
@@ -62,11 +62,11 @@ class utils
|
||||
{
|
||||
if (!file_exists($sParamFile))
|
||||
{
|
||||
throw new Exception("Could not find the parameter file: '$sParamFile'");
|
||||
throw new Exception("Could not find the parameter file: '".utils::HtmlEntities($sParamFile)."'");
|
||||
}
|
||||
if (!is_readable($sParamFile))
|
||||
{
|
||||
throw new Exception("Could not load parameter file: '$sParamFile'");
|
||||
throw new Exception("Could not load parameter file: '".utils::HtmlEntities($sParamFile)."'");
|
||||
}
|
||||
$sParams = file_get_contents($sParamFile);
|
||||
|
||||
@@ -273,79 +273,93 @@ class utils
|
||||
}
|
||||
return $retValue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string|string[] $value
|
||||
* @param string $sSanitizationFilter one of : integer, class, string, context_param, parameter, field_name,
|
||||
* transaction_id, parameter, raw_data
|
||||
*
|
||||
* @return string|string[]|bool boolean for :
|
||||
* * the 'class' filter (true if valid, false otherwise)
|
||||
* * if the filter fails (@see \filter_var())
|
||||
*
|
||||
* @since 2.5.2 2.6.0 new 'transaction_id' filter
|
||||
*/
|
||||
protected static function Sanitize_Internal($value, $sSanitizationFilter)
|
||||
{
|
||||
switch($sSanitizationFilter)
|
||||
switch ($sSanitizationFilter)
|
||||
{
|
||||
case 'integer':
|
||||
$retValue = filter_var($value, FILTER_SANITIZE_NUMBER_INT);
|
||||
break;
|
||||
|
||||
$retValue = filter_var($value, FILTER_SANITIZE_NUMBER_INT);
|
||||
break;
|
||||
|
||||
case 'class':
|
||||
$retValue = $value;
|
||||
if (!MetaModel::IsValidClass($value))
|
||||
{
|
||||
$retValue = false;
|
||||
}
|
||||
break;
|
||||
$retValue = $value;
|
||||
if (!MetaModel::IsValidClass($value))
|
||||
{
|
||||
$retValue = false;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'string':
|
||||
$retValue = filter_var($value, FILTER_SANITIZE_SPECIAL_CHARS);
|
||||
break;
|
||||
|
||||
$retValue = filter_var($value, FILTER_SANITIZE_SPECIAL_CHARS);
|
||||
break;
|
||||
|
||||
case 'context_param':
|
||||
case 'parameter':
|
||||
case 'field_name':
|
||||
if (is_array($value))
|
||||
{
|
||||
$retValue = array();
|
||||
foreach($value as $key => $val)
|
||||
if (is_array($value))
|
||||
{
|
||||
$retValue[$key] = self::Sanitize_Internal($val, $sSanitizationFilter); // recursively check arrays
|
||||
if ($retValue[$key] === false)
|
||||
$retValue = array();
|
||||
foreach ($value as $key => $val)
|
||||
{
|
||||
$retValue = false;
|
||||
break;
|
||||
$retValue[$key] = self::Sanitize_Internal($val, $sSanitizationFilter); // recursively check arrays
|
||||
if ($retValue[$key] === false)
|
||||
{
|
||||
$retValue = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch($sSanitizationFilter)
|
||||
else
|
||||
{
|
||||
case 'transaction_id':
|
||||
// same as parameter type but keep the dot character
|
||||
// see N°1835 : when using file transaction_id on Windows you get *.tmp tokens
|
||||
// it must be included at the regexp beginning otherwise you'll get an invalid character error
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[\. A-Za-z0-9_=-]*$/')));
|
||||
break;
|
||||
switch ($sSanitizationFilter)
|
||||
{
|
||||
case 'transaction_id':
|
||||
// same as parameter type but keep the dot character
|
||||
// see N°1835 : when using file transaction_id on Windows you get *.tmp tokens
|
||||
// it must be included at the regexp beginning otherwise you'll get an invalid character error
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[\. A-Za-z0-9_=-]*$/')));
|
||||
break;
|
||||
|
||||
case 'parameter':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[ A-Za-z0-9_=-]*$/'))); // the '=', '%3D, '%2B', '%2F'
|
||||
// characters are used in serialized filters (starting 2.5, only the url encoded versions are presents, but the "=" is kept for BC)
|
||||
break;
|
||||
case 'parameter':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[ A-Za-z0-9_=-]*$/'))); // the '=', '%3D, '%2B', '%2F'
|
||||
// characters are used in serialized filters (starting 2.5, only the url encoded versions are presents, but the "=" is kept for BC)
|
||||
break;
|
||||
|
||||
case 'field_name':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/^[A-Za-z0-9_]+(->[A-Za-z0-9_]+)*$/'))); // att_code or att_code->name or AttCode->Name or AttCode->Key2->Name
|
||||
break;
|
||||
|
||||
case 'context_param':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/^[ A-Za-z0-9_=%:+-]*$/')));
|
||||
break;
|
||||
|
||||
case 'field_name':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[A-Za-z0-9_]+(->[A-Za-z0-9_]+)*$/'))); // att_code or att_code->name or AttCode->Name or AttCode->Key2->Name
|
||||
break;
|
||||
|
||||
case 'context_param':
|
||||
$retValue = filter_var($value, FILTER_VALIDATE_REGEXP,
|
||||
array("options" => array("regexp" => '/^[ A-Za-z0-9_=%:+-]*$/')));
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
case 'raw_data':
|
||||
$retValue = $value;
|
||||
$retValue = $value;
|
||||
// Do nothing
|
||||
}
|
||||
return $retValue;
|
||||
|
||||
return $retValue;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -588,17 +602,19 @@ class utils
|
||||
/**
|
||||
* Format a value into a more friendly format (KB, MB, GB, TB) instead a juste a Bytes amount.
|
||||
*
|
||||
* @param type $value
|
||||
* @param int $value
|
||||
* @return string
|
||||
*/
|
||||
public static function BytesToFriendlyFormat($value)
|
||||
{
|
||||
$sReturn = '';
|
||||
$iPrecision = 0;
|
||||
// Kilobytes
|
||||
if ($value >= 1024)
|
||||
{
|
||||
$sReturn = 'K';
|
||||
$value = $value / 1024;
|
||||
$iPrecision = 1;
|
||||
}
|
||||
// Megabytes
|
||||
if ($value >= 1024)
|
||||
@@ -619,7 +635,7 @@ class utils
|
||||
$value = $value / 1024;
|
||||
}
|
||||
|
||||
$value = round($value, 1);
|
||||
$value = round($value, $iPrecision);
|
||||
|
||||
return $value . '' . $sReturn . 'B';
|
||||
}
|
||||
@@ -1171,7 +1187,7 @@ class utils
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get target configuration file name (including full path)
|
||||
* @return string target configuration file name (including full path)
|
||||
*/
|
||||
public static function GetConfigFilePath($sEnvironment = null)
|
||||
{
|
||||
@@ -1181,6 +1197,17 @@ class utils
|
||||
}
|
||||
return APPCONF.$sEnvironment.'/'.ITOP_CONFIG_FILE;
|
||||
}
|
||||
/**
|
||||
* @return string target configuration file name (including relative path)
|
||||
*/
|
||||
public static function GetConfigFilePathRelative($sEnvironment = null)
|
||||
{
|
||||
if (is_null($sEnvironment))
|
||||
{
|
||||
$sEnvironment = self::GetCurrentEnvironment();
|
||||
}
|
||||
return "conf/".$sEnvironment.'/'.ITOP_CONFIG_FILE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string the absolute URL to the modules root path
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
{
|
||||
"require": {
|
||||
"php": ">=5.6.0",
|
||||
"ext-mysql": "*",
|
||||
"ext-ldap": "*",
|
||||
"ext-mcrypt": "*",
|
||||
"ext-cli": "*",
|
||||
"ext-soap": "*",
|
||||
"ext-json": "*",
|
||||
"ext-zip": "*",
|
||||
@@ -13,6 +9,14 @@
|
||||
"ext-iconv": "*",
|
||||
"ext-gd": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-libsodium": "Required to use the AttributeEncryptedString.",
|
||||
"ext-openssl": "Can be used as a polyfill if libsodium is not installed",
|
||||
"ext-mcrypt": "Can be used as a polyfill if either libsodium and openssl are not installed (libsodium and openssl are more secure)",
|
||||
"ext-ldap": "Required to use LDAP as an identity provider",
|
||||
"ext-posix": "Not required by the core, but some extensions uses it.",
|
||||
"ext-imap": "Required by the extension \"Mail to ticket automation\""
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.6.0"
|
||||
|
||||
@@ -150,7 +150,7 @@ abstract class AsyncTask extends DBObject
|
||||
public function GetRetryDelay($iErrorCode = null)
|
||||
{
|
||||
$iRetryDelay = 600;
|
||||
$aRetries = MetaModel::GetConfig()->Get('async_task_retries', array());
|
||||
$aRetries = MetaModel::GetConfig()->Get('async_task_retries');
|
||||
if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries))
|
||||
{
|
||||
$aConfig = $aRetries[get_class($this)];
|
||||
@@ -162,12 +162,13 @@ abstract class AsyncTask extends DBObject
|
||||
public function GetMaxRetries($iErrorCode = null)
|
||||
{
|
||||
$iMaxRetries = 0;
|
||||
$aRetries = MetaModel::GetConfig()->Get('async_task_retries', array());
|
||||
$aRetries = MetaModel::GetConfig()->Get('async_task_retries');
|
||||
if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries))
|
||||
{
|
||||
$aConfig = $aRetries[get_class($this)];
|
||||
$iMaxRetries = $aConfig['max_retries'];
|
||||
}
|
||||
return $iMaxRetries;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -380,6 +381,6 @@ class AsyncSendEmail extends AsyncTask
|
||||
case EMAIL_SEND_ERROR:
|
||||
return "Failed: ".implode(', ', $aIssues);
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1374,6 +1374,11 @@ class AttributeLinkedSet extends AttributeDefinition
|
||||
*/
|
||||
public function GetDefaultValue(DBObject $oHostObject = null)
|
||||
{
|
||||
if ($oHostObject === null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$sLinkClass = $this->GetLinkedClass();
|
||||
$sExtKeyToMe = $this->GetExtKeyToMe();
|
||||
|
||||
@@ -3264,10 +3269,13 @@ class AttributeClassState extends AttributeString
|
||||
$sClass = $oHostObj->Get($sTargetClass);
|
||||
|
||||
$aAllowedStates = array();
|
||||
$aValues = MetaModel::EnumStates($sClass);
|
||||
foreach(array_keys($aValues) as $sState)
|
||||
foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass)
|
||||
{
|
||||
$aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sClass, $sState).')';
|
||||
$aValues = MetaModel::EnumStates($sChildClass);
|
||||
foreach (array_keys($aValues) as $sState)
|
||||
{
|
||||
$aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sChildClass, $sState).')';
|
||||
}
|
||||
}
|
||||
return $aAllowedStates;
|
||||
}
|
||||
@@ -3286,9 +3294,15 @@ class AttributeClassState extends AttributeString
|
||||
{
|
||||
$sTargetClass = $this->Get('class_field');
|
||||
$sClass = $oHostObject->Get($sTargetClass);
|
||||
|
||||
$sHTML = '<span class="attribute-set-item" data-code="'.$sValue.'" data-label="'.$sValue.' ('.MetaModel::GetStateLabel($sClass, $sValue).')'.'" data-description="">'.$sValue.'</span>';
|
||||
return $sHTML;
|
||||
foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass)
|
||||
{
|
||||
$aValues = MetaModel::EnumStates($sChildClass);
|
||||
if (in_array($sValue, $aValues))
|
||||
{
|
||||
$sHTML = '<span class="attribute-set-item" data-code="'.$sValue.'" data-label="'.$sValue.' ('.MetaModel::GetStateLabel($sChildClass, $sValue).')'.'" data-description="">'.$sValue.'</span>';
|
||||
return $sHTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $sValue;
|
||||
@@ -6242,6 +6256,15 @@ class AttributeExternalKey extends AttributeDBFieldVoid
|
||||
return $oFormField;
|
||||
}
|
||||
|
||||
public function GetAsHTML($sValue, $oHostObject = null, $bLocalize = true)
|
||||
{
|
||||
if (!is_null($oHostObject))
|
||||
{
|
||||
return $oHostObject->GetAsHTML($this->GetCode(), $oHostObject);
|
||||
}
|
||||
|
||||
return DBObject::MakeHyperLink($this->GetTargetClass(), $sValue);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -9655,14 +9678,27 @@ class AttributeTagSet extends AttributeSet
|
||||
{
|
||||
$aJson['partial_values'] = array();
|
||||
$aJson['orig_value'] = array();
|
||||
$aJson['added'] = array();
|
||||
$aJson['removed'] = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$aJson['partial_values'] = $oValue->GetModified();
|
||||
$aJson['orig_value'] = array_merge($oValue->GetValues(), $oValue->GetModified());
|
||||
$aJson['added'] = $oValue->GetAdded();
|
||||
$aJson['removed'] = $oValue->GetRemoved();
|
||||
|
||||
if ($oValue->DisplayPartial())
|
||||
{
|
||||
// For bulk updates
|
||||
$aJson['partial_values'] = $oValue->GetModified();
|
||||
}
|
||||
else
|
||||
{
|
||||
// For simple updates
|
||||
$aJson['partial_values'] = array();
|
||||
}
|
||||
}
|
||||
$aJson['added'] = array();
|
||||
$aJson['removed'] = array();
|
||||
|
||||
|
||||
$iMaxTags = $this->GetMaxItems();
|
||||
$aJson['max_items_allowed'] = $iMaxTags;
|
||||
|
||||
@@ -332,6 +332,18 @@ class BulkChange
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DBObject $oTargetObj
|
||||
* @param array $aRowData
|
||||
* @param array $aErrors
|
||||
*
|
||||
* @return array
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \MissingQueryArgument
|
||||
* @throws \MySQLException
|
||||
* @throws \MySQLHasGoneAwayException
|
||||
*/
|
||||
protected function PrepareObject(&$oTargetObj, $aRowData, &$aErrors)
|
||||
{
|
||||
$aResults = array();
|
||||
@@ -477,7 +489,9 @@ class BulkChange
|
||||
if (!$oAttDef->IsWritable() && in_array($sAttCode, $this->m_aReconcilKeys)){ continue; }
|
||||
|
||||
$aReasons = array();
|
||||
$iFlags = $oTargetObj->GetAttributeFlags($sAttCode, $aReasons);
|
||||
$iFlags = ($oTargetObj->IsNew())
|
||||
? $oTargetObj->GetInitialStateAttributeFlags($sAttCode, $aReasons)
|
||||
: $oTargetObj->GetAttributeFlags($sAttCode, $aReasons);
|
||||
if ( (($iFlags & OPT_ATT_READONLY) == OPT_ATT_READONLY) && ( $oTargetObj->Get($sAttCode) != $aRowData[$iCol]) )
|
||||
{
|
||||
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-Readonly', $sAttCode, $oTargetObj->Get($sAttCode), $aRowData[$iCol]);
|
||||
|
||||
@@ -188,6 +188,16 @@ abstract class CMDBObject extends DBObject
|
||||
self::$m_oCurrChange->DBInsert();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreCannotSaveObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \CoreWarning
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
*/
|
||||
protected function RecordObjCreation()
|
||||
{
|
||||
// Delete any existing change tracking about the current object (IDs can be reused due to InnoDb bug; see TRAC #886)
|
||||
@@ -206,6 +216,7 @@ abstract class CMDBObject extends DBObject
|
||||
MetaModel::PurgeData($oFilter);
|
||||
|
||||
parent::RecordObjCreation();
|
||||
|
||||
$oMyChangeOp = MetaModel::NewObject("CMDBChangeOpCreate");
|
||||
$oMyChangeOp->Set("objclass", get_class($this));
|
||||
$oMyChangeOp->Set("objkey", $this->GetKey());
|
||||
@@ -232,9 +243,17 @@ abstract class CMDBObject extends DBObject
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sAttCode
|
||||
* @param string $sAttCode
|
||||
* @param $original Original value
|
||||
* @param $value Current value
|
||||
*
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreCannotSaveObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \CoreWarning
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
*/
|
||||
protected function RecordAttChange($sAttCode, $original, $value)
|
||||
{
|
||||
@@ -438,6 +457,14 @@ abstract class CMDBObject extends DBObject
|
||||
/**
|
||||
* @param array $aValues
|
||||
* @param array $aOrigValues
|
||||
*
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreCannotSaveObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \CoreWarning
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
*/
|
||||
protected function RecordAttChanges(array $aValues, array $aOrigValues)
|
||||
{
|
||||
|
||||
@@ -72,6 +72,9 @@ define('DEFAULT_ENCRYPTION_LIB', 'Mcrypt'); // We'll define the best encryption
|
||||
* configuration data (this class cannot not be localized, because it is responsible for loading the dictionaries)
|
||||
*
|
||||
* @package iTopORM
|
||||
*
|
||||
* @see \MetaModel::GetConfig() to get the config, if the metamodel was already loaded
|
||||
* @see utils::GetConfig() to load config from the current env, if metamodel is not loaded
|
||||
*/
|
||||
class Config
|
||||
{
|
||||
|
||||
@@ -151,7 +151,8 @@ class CoreCannotSaveObjectException extends CoreException
|
||||
|
||||
if (count($this->aIssues) == 1)
|
||||
{
|
||||
$sContent .= " <span>{$this->aIssues[0]}</span>";
|
||||
$sIssue = reset($this->aIssues);
|
||||
$sContent .= " <span>{$sIssue}</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -70,11 +70,14 @@ abstract class DBObject implements iDisplay
|
||||
{
|
||||
private static $m_aMemoryObjectsByClass = array();
|
||||
|
||||
private static $m_aBulkInsertItems = array(); // class => array of ('table' => array of (array of <sql_value>))
|
||||
private static $m_aBulkInsertCols = array(); // class => array of ('table' => array of <sql_column>)
|
||||
/** @var array class => array of ('table' => array of (array of <sql_value>)) */
|
||||
private static $m_aBulkInsertItems = array();
|
||||
/** @var array class => array of ('table' => array of <sql_column>) */
|
||||
private static $m_aBulkInsertCols = array();
|
||||
private static $m_bBulkInsert = false;
|
||||
|
||||
protected $m_bIsInDB = false; // true IIF the object is mapped to a DB record
|
||||
/** @var bool true IIF the object is mapped to a DB record */
|
||||
protected $m_bIsInDB = false;
|
||||
protected $m_iKey = null;
|
||||
private $m_aCurrValues = array();
|
||||
protected $m_aOrigValues = array();
|
||||
@@ -148,6 +151,31 @@ abstract class DBObject implements iDisplay
|
||||
$this->m_aLoadedAtt[$sAttCode] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->UpdateMetaAttributes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update meta-attributes depending on the given attribute list
|
||||
*
|
||||
* @param array|null $aAttCodes List of att codes
|
||||
*
|
||||
* @throws \CoreException
|
||||
*/
|
||||
protected function UpdateMetaAttributes($aAttCodes = null)
|
||||
{
|
||||
if (is_null($aAttCodes))
|
||||
{
|
||||
$aAttCodes = MetaModel::GetAttributesList(get_class($this));
|
||||
}
|
||||
foreach ($aAttCodes as $sAttCode)
|
||||
{
|
||||
foreach (MetaModel::ListMetaAttributes(get_class($this), $sAttCode) as $sMetaAttCode => $oMetaAttDef)
|
||||
{
|
||||
/** @var \AttributeMetaEnum $oMetaAttDef */
|
||||
$this->_Set($sMetaAttCode, $oMetaAttDef->MapValue($this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Read-only <=> Written once (archive)
|
||||
@@ -207,7 +235,9 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* @param bool $bAllowAllData DEPRECATED: the reload must never fail!
|
||||
*
|
||||
* @throws CoreException
|
||||
* @internal
|
||||
*/
|
||||
public function Reload($bAllowAllData = false)
|
||||
{
|
||||
@@ -432,11 +462,7 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
$this->_Set($sAttCode, $realvalue);
|
||||
|
||||
foreach (MetaModel::ListMetaAttributes(get_class($this), $sAttCode) as $sMetaAttCode => $oMetaAttDef)
|
||||
{
|
||||
/** @var \AttributeMetaEnum $oMetaAttDef */
|
||||
$this->_Set($sMetaAttCode, $oMetaAttDef->MapValue($this));
|
||||
}
|
||||
$this->UpdateMetaAttributes(array($sAttCode));
|
||||
|
||||
// The object has changed, reset caches
|
||||
$this->m_bCheckStatus = null;
|
||||
@@ -727,12 +753,24 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Overridable callback, called by \DBObject::DoComputeValues
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
public function ComputeValues()
|
||||
{
|
||||
}
|
||||
|
||||
// Compute scalar attributes that depend on any other type of attribute
|
||||
/**
|
||||
* Compute scalar attributes that depend on any other type of attribute
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
final public function DoComputeValues()
|
||||
{
|
||||
// TODO - use a flag rather than checking the call stack -> this will certainly accelerate things
|
||||
@@ -1054,7 +1092,9 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Gets the name of an object in a safe manner for displaying inside a web page
|
||||
*
|
||||
* @return string
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function GetName()
|
||||
{
|
||||
@@ -1066,13 +1106,20 @@ abstract class DBObject implements iDisplay
|
||||
* since the " < > characters are not escaped and the name may contain some XSS script
|
||||
* instructions.
|
||||
* Use this function only for internal computations or for an output to a non-HTML destination
|
||||
*
|
||||
* @return string
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function GetRawName()
|
||||
{
|
||||
return $this->Get('friendlyname');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed|string '' if no state attribute, object representing its value otherwise
|
||||
* @throws \CoreException
|
||||
* @internal
|
||||
*/
|
||||
public function GetState()
|
||||
{
|
||||
$sStateAttCode = MetaModel::GetStateAttributeCode(get_class($this));
|
||||
@@ -1137,15 +1184,18 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $sAttCode $sAttCode The code of the attribute
|
||||
* @param array $aReasons To store the reasons why the attribute is read-only (info about the synchro replicas)
|
||||
* @param string $sTargetState The target state in which to evalutate the flags, if empty the current state will be
|
||||
* used
|
||||
*
|
||||
* @return integer the binary combination of flags (OPT_ATT_HIDDEN, OPT_ATT_READONLY, OPT_ATT_MANDATORY...) for the
|
||||
* given attribute in the given state of the object
|
||||
* @return integer the binary combination of flags for the given attribute in the given state of the object<br>
|
||||
* Values can be one of the OPT_ATT_HIDDEN, OPT_ATT_READONLY, OPT_ATT_MANDATORY, ... (see define in metamodel.class.php)
|
||||
* @throws \CoreException
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @see GetInitialStateAttributeFlags for creation
|
||||
*/
|
||||
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
|
||||
{
|
||||
@@ -1174,6 +1224,10 @@ abstract class DBObject implements iDisplay
|
||||
if ($this->InSyncScope())
|
||||
{
|
||||
$iSynchroFlags = $this->GetSynchroReplicaFlags($sAttCode, $aReasons);
|
||||
if ($iSynchroFlags & OPT_ATT_SLAVE)
|
||||
{
|
||||
$iSynchroFlags |= OPT_ATT_READONLY;
|
||||
}
|
||||
}
|
||||
return $iFlags | $iSynchroFlags; // Combine both sets of flags
|
||||
}
|
||||
@@ -1253,11 +1307,18 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the set of flags (OPT_ATT_HIDDEN, OPT_ATT_READONLY, OPT_ATT_MANDATORY...)
|
||||
* for the given attribute for the current state of the object considered as an INITIAL state
|
||||
* @param string $sAttCode The code of the attribute
|
||||
* @return integer Flags: the binary combination of the flags applicable to this attribute
|
||||
*/
|
||||
* @param array $aReasons
|
||||
*
|
||||
* @return integer The binary combination of the flags for the given attribute for the current state of the object
|
||||
* considered as an INITIAL state.<br>
|
||||
* Values can be one of the OPT_ATT_HIDDEN, OPT_ATT_READONLY, OPT_ATT_MANDATORY, ... (see define in metamodel.class.php)
|
||||
* @throws \CoreException
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @see GetAttributeFlags when modifying the object
|
||||
*/
|
||||
public function GetInitialStateAttributeFlags($sAttCode, &$aReasons = array())
|
||||
{
|
||||
$iFlags = 0;
|
||||
@@ -1269,17 +1330,18 @@ abstract class DBObject implements iDisplay
|
||||
return $iFlags; // No need to care about the synchro flags since we'll be creating a new object anyway
|
||||
}
|
||||
|
||||
// check if the given (or current) value is suitable for the attribute
|
||||
// return true if successfull
|
||||
// return the error desciption otherwise
|
||||
/**
|
||||
* Check if the given (or current) value is suitable for the attribute
|
||||
*
|
||||
* @param $sAttCode
|
||||
* @param null $value
|
||||
* @param boolean|string $value true if successfull, the error desciption otherwise
|
||||
*
|
||||
* @return bool|string
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
public function CheckValue($sAttCode, $value = null)
|
||||
{
|
||||
@@ -1410,8 +1472,13 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// check attributes together
|
||||
|
||||
/**
|
||||
* check attributes together
|
||||
*
|
||||
* @return bool
|
||||
* @api
|
||||
*/
|
||||
public function CheckConsistency()
|
||||
{
|
||||
return true;
|
||||
@@ -1514,12 +1581,13 @@ abstract class DBObject implements iDisplay
|
||||
*/
|
||||
protected function GetSearchForUniquenessRule($sUniquenessRuleId, $aUniquenessRuleProperties)
|
||||
{
|
||||
$sCurrentClass = get_class($this);
|
||||
$sOqlUniquenessQuery = "SELECT $sCurrentClass";
|
||||
$sRuleRootClass = $aUniquenessRuleProperties['root_class'];
|
||||
$sOqlUniquenessQuery = "SELECT $sRuleRootClass";
|
||||
if (!(empty($sUniquenessFilter = $aUniquenessRuleProperties['filter'])))
|
||||
{
|
||||
$sOqlUniquenessQuery .= ' WHERE '.$sUniquenessFilter;
|
||||
}
|
||||
/** @var \DBObjectSearch $oUniquenessQuery */
|
||||
$oUniquenessQuery = DBObjectSearch::FromOQL($sOqlUniquenessQuery);
|
||||
|
||||
if (!$this->IsNew())
|
||||
@@ -1533,16 +1601,25 @@ abstract class DBObject implements iDisplay
|
||||
$oUniquenessQuery->AddCondition($sAttributeCode, $attributeValue, '=');
|
||||
}
|
||||
|
||||
$aChildClassesWithRuleDisabled = MetaModel::GetChildClassesWithDisabledUniquenessRule($sRuleRootClass, $sUniquenessRuleId);
|
||||
if (!empty($aChildClassesWithRuleDisabled))
|
||||
{
|
||||
$oUniquenessQuery->AddConditionForInOperatorUsingParam('finalclass', $aChildClassesWithRuleDisabled, false);
|
||||
}
|
||||
|
||||
return $oUniquenessQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* check integrity rules (before inserting or updating the object)
|
||||
* a displayable error is returned
|
||||
* Check integrity rules (before inserting or updating the object)
|
||||
*
|
||||
* Errors should be inserted in {@link $m_aCheckIssues} and {@link $m_aCheckWarnings} arrays
|
||||
*
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
public function DoCheckToWrite()
|
||||
{
|
||||
@@ -1607,6 +1684,8 @@ abstract class DBObject implements iDisplay
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
*
|
||||
* @internal do not overwrite ! Use {@link DoCheckToWrite} instead
|
||||
*/
|
||||
final public function CheckToWrite()
|
||||
{
|
||||
@@ -1636,6 +1715,10 @@ abstract class DBObject implements iDisplay
|
||||
// check if it is allowed to delete the existing object from the database
|
||||
// a displayable error is returned
|
||||
/**
|
||||
* check if it is allowed to delete the existing object from the database
|
||||
*
|
||||
* a displayable error is added in {@link $m_aDeleteIssues}
|
||||
*
|
||||
* @param \DeletionPlan $oDeletionPlan
|
||||
*
|
||||
* @throws \CoreException
|
||||
@@ -1757,10 +1840,14 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
return $aDelta;
|
||||
}
|
||||
}
|
||||
|
||||
// List the attributes that have been changed
|
||||
// Returns an array of attname => currentvalue
|
||||
/**
|
||||
* List the attributes that have been changed
|
||||
*
|
||||
* @return array attname => currentvalue
|
||||
* @internal
|
||||
*/
|
||||
public function ListChanges()
|
||||
{
|
||||
if ($this->m_bIsInDB)
|
||||
@@ -1820,13 +1907,21 @@ abstract class DBObject implements iDisplay
|
||||
return true;
|
||||
}
|
||||
|
||||
// used only by insert
|
||||
/**
|
||||
* Used only by insert, Meant to be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function OnObjectKeyReady()
|
||||
{
|
||||
// Meant to be overloaded
|
||||
}
|
||||
|
||||
// used both by insert/update
|
||||
/**
|
||||
* used both by insert/update
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @internal
|
||||
*/
|
||||
private function DBWriteLinks()
|
||||
{
|
||||
foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sAttCode => $oAttDef)
|
||||
@@ -1835,12 +1930,18 @@ abstract class DBObject implements iDisplay
|
||||
if (!array_key_exists($sAttCode, $this->m_aTouchedAtt)) continue;
|
||||
if (array_key_exists($sAttCode, $this->m_aModifiedAtt) && ($this->m_aModifiedAtt[$sAttCode] == false)) continue;
|
||||
|
||||
/** @var \ormLinkSet $oLinkSet */
|
||||
$oLinkSet = $this->m_aCurrValues[$sAttCode];
|
||||
$oLinkSet->DBWrite($this);
|
||||
}
|
||||
}
|
||||
|
||||
// used both by insert/update
|
||||
/**
|
||||
* Used both by insert/update
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @internal
|
||||
*/
|
||||
private function WriteExternalAttributes()
|
||||
{
|
||||
foreach (MetaModel::ListAttributeDefs(get_class($this)) as $sAttCode => $oAttDef)
|
||||
@@ -1881,8 +1982,18 @@ abstract class DBObject implements iDisplay
|
||||
self::$m_aBulkInsertItems = array();
|
||||
self::$m_aBulkInsertCols = array();
|
||||
self::$m_bBulkInsert = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Persists new object in the DB
|
||||
*
|
||||
* @param $sTableClass
|
||||
*
|
||||
* @return bool|int false if nothing to persist (no change), new key value otherwise
|
||||
* @throws \CoreException
|
||||
* @throws \MySQLException
|
||||
* @internal
|
||||
*/
|
||||
private function DBInsertSingleTable($sTableClass)
|
||||
{
|
||||
$sTable = MetaModel::DBGetTable($sTableClass);
|
||||
@@ -1965,7 +2076,7 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert of record for the new object into the database
|
||||
* Persists object to new records in the DB
|
||||
*
|
||||
* @return int key of the newly created object
|
||||
* @throws \ArchivedObjectException
|
||||
@@ -1975,6 +2086,8 @@ abstract class DBObject implements iDisplay
|
||||
* @throws \CoreWarning
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
public function DBInsertNoReload()
|
||||
{
|
||||
@@ -2023,6 +2136,7 @@ abstract class DBObject implements iDisplay
|
||||
if (in_array($sState, $oAttDef->GetStates()))
|
||||
{
|
||||
// Start the stop watch and compute the deadlines
|
||||
/** @var \ormStopWatch $oSW */
|
||||
$oSW = $this->Get($sAttCode);
|
||||
$oSW->Start($this, $oAttDef);
|
||||
$oSW->ComputeDeadlines($this, $oAttDef);
|
||||
@@ -2178,6 +2292,17 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int|null inserted object key
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreCannotSaveObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \CoreWarning
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
* @internal
|
||||
*/
|
||||
public function DBInsert()
|
||||
{
|
||||
$this->DBInsertNoReload();
|
||||
@@ -2993,32 +3118,56 @@ abstract class DBObject implements iDisplay
|
||||
self::$aPortalToURLMaker[$sPortalId] = $sUrlMakerClass;
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function OnInsert()
|
||||
{
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function AfterInsert()
|
||||
{
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function OnUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function AfterUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function OnDelete()
|
||||
{
|
||||
}
|
||||
|
||||
// To be optionaly overloaded
|
||||
/**
|
||||
* Can be overloaded
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
protected function AfterDelete()
|
||||
{
|
||||
}
|
||||
@@ -3100,8 +3249,10 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
|
||||
/**
|
||||
* This object has been created/deleted, record that as a change in link sets pointing to this (if any)
|
||||
*/
|
||||
* This object has been created/deleted, record that as a change in link sets pointing to this (if any)
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
private function RecordLinkSetListChange($bAdd = true)
|
||||
{
|
||||
foreach(MetaModel::GetTrackForwardExternalKeys(get_class($this)) as $sExtKeyAttCode => $oLinkSet)
|
||||
@@ -3126,6 +3277,9 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
protected function RecordObjCreation()
|
||||
{
|
||||
$this->RecordLinkSetListChange(true);
|
||||
@@ -3499,6 +3653,15 @@ abstract class DBObject implements iDisplay
|
||||
return $iFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool true if this object is used in a data synchro
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \MySQLException
|
||||
* @throws \OQLException
|
||||
* @internal
|
||||
* @see \SynchroDataSource
|
||||
*/
|
||||
public function InSyncScope()
|
||||
{
|
||||
//
|
||||
@@ -3712,7 +3875,7 @@ abstract class DBObject implements iDisplay
|
||||
foreach(MetaModel::ListAttributeDefs($sLinkClass) as $sAttCode => $oAttDef)
|
||||
{
|
||||
// As of now, ignore other attribute (do not attempt to recurse!)
|
||||
if ($oAttDef->IsScalar())
|
||||
if ($oAttDef->IsScalar() && $oAttDef->IsWritable())
|
||||
{
|
||||
$oLinkClone->Set($sAttCode, $oSourceLink->Get($sAttCode));
|
||||
}
|
||||
@@ -3775,7 +3938,7 @@ abstract class DBObject implements iDisplay
|
||||
$oObjectToRead = $aSourceObjects['source'];
|
||||
foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sAttCode => $oAttDef)
|
||||
{
|
||||
if ($oAttDef->IsScalar())
|
||||
if ($oAttDef->IsScalar() && $oAttDef->IsWritable())
|
||||
{
|
||||
$this->CopyAttribute($oObjectToRead, $sAttCode, $sAttCode);
|
||||
}
|
||||
|
||||
@@ -1270,6 +1270,7 @@ class DisplayableGraph extends SimpleGraph
|
||||
|
||||
$oPdf->SetAutoPageBreak(true, $fBreakMargin);
|
||||
$oPdf->SetAlpha(1);
|
||||
$oPdf->SetTextColor(0, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -234,19 +234,28 @@ class EMail
|
||||
$oDOMDoc = new DOMDocument();
|
||||
$oDOMDoc->preserveWhitespace = true;
|
||||
@$oDOMDoc->loadHTML('<?xml encoding="UTF-8"?>'.$this->m_aData['body']['body']); // For loading HTML chunks where the character set is not specified
|
||||
|
||||
|
||||
$oXPath = new DOMXPath($oDOMDoc);
|
||||
$sXPath = "//img[@data-img-id]";
|
||||
$sXPath = '//img[@'.InlineImage::DOM_ATTR_ID.']';
|
||||
$oImagesList = $oXPath->query($sXPath);
|
||||
|
||||
|
||||
if ($oImagesList->length != 0)
|
||||
{
|
||||
foreach($oImagesList as $oImg)
|
||||
{
|
||||
$iAttId = $oImg->getAttribute('data-img-id');
|
||||
$iAttId = $oImg->getAttribute(InlineImage::DOM_ATTR_ID);
|
||||
$oAttachment = MetaModel::GetObject('InlineImage', $iAttId, false, true /* Allow All Data */);
|
||||
if ($oAttachment)
|
||||
{
|
||||
$sImageSecret = $oImg->getAttribute('data-img-secret');
|
||||
$sAttachmentSecret = $oAttachment->Get('secret');
|
||||
if ($sImageSecret !== $sAttachmentSecret)
|
||||
{
|
||||
// @see N°1921
|
||||
// If copying from another iTop we could get an IMG pointing to an InlineImage with wrong secret
|
||||
continue;
|
||||
}
|
||||
|
||||
$oDoc = $oAttachment->Get('contents');
|
||||
$oSwiftImage = new Swift_Image($oDoc->GetData(), $oDoc->GetFileName(), $oDoc->GetMimeType());
|
||||
$sCid = $this->m_oMessage->embed($oSwiftImage);
|
||||
|
||||
@@ -78,6 +78,7 @@ EOF;
|
||||
}
|
||||
EOF;
|
||||
|
||||
SetupUtils::builddir(dirname($sFilePath));
|
||||
file_put_contents($sFilePath, $content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,7 +348,7 @@ class HTMLDOMSanitizer extends HTMLSanitizer
|
||||
$this->CleanNode($oNode);
|
||||
if (($oNode instanceof DOMElement) && (strtolower($oNode->tagName) == 'img'))
|
||||
{
|
||||
$this->ProcessImage($oNode);
|
||||
InlineImage::ProcessImageTag($oNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -359,24 +359,7 @@ class HTMLDOMSanitizer extends HTMLSanitizer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an extra attribute data-img-id for images which are based on an actual InlineImage
|
||||
* so that we can later reconstruct the full "src" URL when needed
|
||||
* @param DOMNode $oElement
|
||||
*/
|
||||
protected function ProcessImage(DOMNode $oElement)
|
||||
{
|
||||
$sSrc = $oElement->getAttribute('src');
|
||||
$sDownloadUrl = str_replace(array('.', '?'), array('\.', '\?'), INLINEIMAGE_DOWNLOAD_URL); // Escape . and ?
|
||||
$sUrlPattern = '|'.$sDownloadUrl.'([0-9]+)&s=([0-9a-f]+)|';
|
||||
if (preg_match($sUrlPattern, $sSrc, $aMatches))
|
||||
{
|
||||
$oElement->setAttribute('data-img-id', $aMatches[1]);
|
||||
$oElement->setAttribute('data-img-secret', $aMatches[2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function CleanStyle($sStyle)
|
||||
{
|
||||
$aAllowedStyles = array();
|
||||
|
||||
@@ -27,6 +27,11 @@ define('INLINEIMAGE_DOWNLOAD_URL', 'pages/ajax.document.php?operation=download_i
|
||||
|
||||
class InlineImage extends DBObject
|
||||
{
|
||||
/** @var string attribute to be added to IMG tags to contain ID */
|
||||
const DOM_ATTR_ID = 'data-img-id';
|
||||
/** @var string attribute to be added to IMG tags to contain secret */
|
||||
const DOM_ATTR_SECRET = 'data-img-secret';
|
||||
|
||||
public static function Init()
|
||||
{
|
||||
$aParams = array
|
||||
@@ -178,18 +183,19 @@ class InlineImage extends DBObject
|
||||
$oInlineImage->DBUpdate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IssueLog::Error('InlineImage: Error during FinalizeInlineImages(), no transaction ID for object '.get_class($oObject).'#'.$oObject->GetKey().'.');
|
||||
|
||||
IssueLog::Error('|- Call stack:');
|
||||
$oException = new Exception();
|
||||
$sStackTrace = $oException->getTraceAsString();
|
||||
IssueLog::Error($sStackTrace);
|
||||
|
||||
IssueLog::Error('|- POST vars:');
|
||||
IssueLog::Error(print_r($_POST, true));
|
||||
}
|
||||
// For tracing issues with Inline Images... but beware not all updates are interactive, so this trace happens when creating objects non-interactively (REST, Synchro...)
|
||||
// else
|
||||
// {
|
||||
// IssueLog::Error('InlineImage: Error during FinalizeInlineImages(), no transaction ID for object '.get_class($oObject).'#'.$oObject->GetKey().'.');
|
||||
//
|
||||
// IssueLog::Error('|- Call stack:');
|
||||
// $oException = new Exception();
|
||||
// $sStackTrace = $oException->getTraceAsString();
|
||||
// IssueLog::Error($sStackTrace);
|
||||
//
|
||||
// IssueLog::Error('|- POST vars:');
|
||||
// IssueLog::Error(print_r($_POST, true));
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +226,8 @@ class InlineImage extends DBObject
|
||||
$aNeedles = array();
|
||||
$aReplacements = array();
|
||||
// Find img tags with an attribute data-img-id
|
||||
if (preg_match_all('/<img ([^>]*)data-img-id="([0-9]+)"([^>]*)>/i', $sHtml, $aMatches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
|
||||
if (preg_match_all('/<img ([^>]*)'.self::DOM_ATTR_ID.'="([0-9]+)"([^>]*)>/i',
|
||||
$sHtml, $aMatches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
|
||||
{
|
||||
$sUrl = utils::GetAbsoluteUrlAppRoot().INLINEIMAGE_DOWNLOAD_URL;
|
||||
foreach($aMatches as $aImgInfo)
|
||||
@@ -242,6 +249,42 @@ class InlineImage extends DBObject
|
||||
return $sHtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an extra attribute data-img-id for images which are based on an actual InlineImage
|
||||
* so that we can later reconstruct the full "src" URL when needed
|
||||
*
|
||||
* @param \DOMElement $oElement
|
||||
*/
|
||||
public static function ProcessImageTag(DOMElement $oElement)
|
||||
{
|
||||
$sSrc = $oElement->getAttribute('src');
|
||||
$sDownloadUrl = str_replace(array('.', '?'), array('\.', '\?'), INLINEIMAGE_DOWNLOAD_URL); // Escape . and ?
|
||||
$sUrlPattern = '|'.$sDownloadUrl.'([0-9]+)&s=([0-9a-f]+)|';
|
||||
$bIsInlineImage = preg_match($sUrlPattern, $sSrc, $aMatches);
|
||||
if (!$bIsInlineImage)
|
||||
{
|
||||
return;
|
||||
}
|
||||
$iInlineImageId = $aMatches[1];
|
||||
$sInlineIMageSecret = $aMatches[2];
|
||||
|
||||
$sAppRoot = utils::GetAbsoluteUrlAppRoot();
|
||||
$sAppRootPattern = '/^'.preg_quote($sAppRoot, '/').'/';
|
||||
$bIsSameItop = preg_match($sAppRootPattern, $sSrc);
|
||||
if (!$bIsSameItop)
|
||||
{
|
||||
// @see N°1921
|
||||
// image from another iTop should be treated as external images
|
||||
$oElement->removeAttribute(self::DOM_ATTR_ID);
|
||||
$oElement->removeAttribute(self::DOM_ATTR_SECRET);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$oElement->setAttribute(self::DOM_ATTR_ID, $iInlineImageId);
|
||||
$oElement->setAttribute(self::DOM_ATTR_SECRET, $sInlineIMageSecret);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the javascript fragment - to be added to "on document ready" - to adjust (on the fly) the width on Inline Images
|
||||
*/
|
||||
|
||||
@@ -528,13 +528,15 @@ abstract class MetaModel
|
||||
|
||||
/**
|
||||
* @param string $sClass
|
||||
* @param bool $bClassDefinitionOnly if true then will only return properties defined in the specified class on not the properties
|
||||
* from its parent classes
|
||||
*
|
||||
* @return array
|
||||
* @return array rule id as key, rule properties as value
|
||||
* @throws \CoreException
|
||||
*
|
||||
* @since 2.6 N°659 uniqueness constraint
|
||||
* @see #SetUniquenessRuleRootClass that fixes a specific 'root_class' property to know which class is root per rule
|
||||
*/
|
||||
final public static function GetUniquenessRules($sClass)
|
||||
final public static function GetUniquenessRules($sClass, $bClassDefinitionOnly = false)
|
||||
{
|
||||
if (!isset(self::$m_aClassParams[$sClass]))
|
||||
{
|
||||
@@ -548,6 +550,11 @@ abstract class MetaModel
|
||||
$aCurrentUniquenessRules = self::$m_aClassParams[$sClass]['uniqueness_rules'];
|
||||
}
|
||||
|
||||
if ($bClassDefinitionOnly)
|
||||
{
|
||||
return $aCurrentUniquenessRules;
|
||||
}
|
||||
|
||||
$sParentClass = self::GetParentClass($sClass);
|
||||
if ($sParentClass)
|
||||
{
|
||||
@@ -581,6 +588,22 @@ abstract class MetaModel
|
||||
return $aCurrentUniquenessRules;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sRootClass
|
||||
* @param string $sRuleId
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @since 2.6.1 N°1918 (sous les pavés, la plage) initialize in 'root_class' property the class that has the first
|
||||
* definition of the rule in the hierarchy
|
||||
*/
|
||||
final private static function SetUniquenessRuleRootClass($sRootClass, $sRuleId)
|
||||
{
|
||||
foreach (self::EnumChildClasses($sRootClass, ENUM_CHILD_CLASSES_ALL) as $sClass)
|
||||
{
|
||||
self::$m_aClassParams[$sClass]['uniqueness_rules'][$sRuleId]['root_class'] = $sClass;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sRuleId
|
||||
* @param string $sLeafClassName
|
||||
@@ -608,6 +631,49 @@ abstract class MetaModel
|
||||
return $sFirstClassWithRuleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sRootClass
|
||||
* @param string $sRuleId
|
||||
*
|
||||
* @return string[] child classes with the rule disabled, and that are concrete classes
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @since 2.6.1 N°1968 (soyez réalistes, demandez l'impossible)
|
||||
*/
|
||||
final public static function GetChildClassesWithDisabledUniquenessRule($sRootClass, $sRuleId)
|
||||
{
|
||||
$aClassesWithDisabledRule = array();
|
||||
foreach (self::EnumChildClasses($sRootClass, ENUM_CHILD_CLASSES_EXCLUDETOP) as $sChildClass)
|
||||
{
|
||||
if (array_key_exists($sChildClass, $aClassesWithDisabledRule))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!array_key_exists('uniqueness_rules', self::$m_aClassParams[$sChildClass]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!array_key_exists($sRuleId, self::$m_aClassParams[$sChildClass]['uniqueness_rules']))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (self::$m_aClassParams[$sChildClass]['uniqueness_rules'][$sRuleId]['disabled'] === true)
|
||||
{
|
||||
$aDisabledClassChildren = self::EnumChildClasses($sChildClass, ENUM_CHILD_CLASSES_ALL);
|
||||
foreach ($aDisabledClassChildren as $sDisabledClassChild)
|
||||
{
|
||||
if (!self::IsAbstract($sDisabledClassChild))
|
||||
{
|
||||
$aClassesWithDisabledRule[] = $sDisabledClassChild;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $aClassesWithDisabledRule;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $aRuleProperties
|
||||
*
|
||||
@@ -2779,21 +2845,26 @@ abstract class MetaModel
|
||||
}
|
||||
}
|
||||
|
||||
$aCurrentClassUniquenessRules = MetaModel::GetUniquenessRules($sPHPClass);
|
||||
$aCurrentClassUniquenessRules = MetaModel::GetUniquenessRules($sPHPClass, true);
|
||||
if (!empty($aCurrentClassUniquenessRules))
|
||||
{
|
||||
$aClassFields = self::GetAttributesList($sPHPClass);
|
||||
foreach ($aCurrentClassUniquenessRules as $sUniquenessRuleId => $aUniquenessRuleProperties)
|
||||
{
|
||||
$bHasSameRuleInParent = self::HasSameUniquenessRuleInParent($sPHPClass, $sUniquenessRuleId);
|
||||
$bIsRuleOverride = self::HasSameUniquenessRuleInParent($sPHPClass, $sUniquenessRuleId);
|
||||
try
|
||||
{
|
||||
self::CheckUniquenessRuleValidity($aUniquenessRuleProperties, $bHasSameRuleInParent, $aClassFields);
|
||||
self::CheckUniquenessRuleValidity($aUniquenessRuleProperties, $bIsRuleOverride, $aClassFields);
|
||||
}
|
||||
catch (CoreUnexpectedValue $e)
|
||||
{
|
||||
throw new Exception("Invalid uniqueness rule declaration : class={$sPHPClass}, rule=$sUniquenessRuleId, reason={$e->getMessage()}");
|
||||
}
|
||||
|
||||
if (!$bIsRuleOverride)
|
||||
{
|
||||
self::SetUniquenessRuleRootClass($sPHPClass, $sUniquenessRuleId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3092,71 +3163,77 @@ abstract class MetaModel
|
||||
/**
|
||||
* @param array $aUniquenessRuleProperties
|
||||
* @param bool $bRuleOverride if false then control an original declaration validity,
|
||||
* otherwise an override validity (can have only the disabled key)
|
||||
* otherwise an override validity (can only have the 'disabled' key)
|
||||
* @param string[] $aExistingClassFields if non empty, will check that all fields declared in the rules exists in the class
|
||||
*
|
||||
* @throws \CoreUnexpectedValue if the rule is invalid
|
||||
*
|
||||
* @since 2.6 N°659 uniqueness constraint
|
||||
* @since 2.6.1 N°1968 (joli mois de mai...) disallow overrides of 'attributes' properties
|
||||
*/
|
||||
public static function CheckUniquenessRuleValidity($aUniquenessRuleProperties, $bRuleOverride = true, $aExistingClassFields = array())
|
||||
{
|
||||
$MANDATORY_ATTRIBUTES = array('attributes');
|
||||
$UNIQUENESS_MANDATORY_KEYS_NB = count($MANDATORY_ATTRIBUTES);
|
||||
$bHasDisabledKey = false;
|
||||
|
||||
$bHasMissingMandatoryKey = true;
|
||||
$iMissingMandatoryKeysNb = $UNIQUENESS_MANDATORY_KEYS_NB;
|
||||
$bHasAllMandatoryKeysMissing = false;
|
||||
/** @var boolean $bHasNonDisabledKeys true if rule contains at least one key that is not 'disabled' */
|
||||
$bHasNonDisabledKeys = false;
|
||||
$bDisabledKeyValue = null;
|
||||
|
||||
foreach ($aUniquenessRuleProperties as $sUniquenessRuleKey => $aUniquenessRuleProperty)
|
||||
{
|
||||
if (($sUniquenessRuleKey === 'disabled') && (!is_null($aUniquenessRuleProperty)))
|
||||
if ($sUniquenessRuleKey === 'disabled')
|
||||
{
|
||||
$bDisabledKeyValue = $aUniquenessRuleProperty;
|
||||
if (!is_null($aUniquenessRuleProperty))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (is_null($aUniquenessRuleProperty))
|
||||
{
|
||||
$bHasDisabledKey = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
$bHasNonDisabledKeys = true;
|
||||
|
||||
if (in_array($sUniquenessRuleKey, $MANDATORY_ATTRIBUTES, true)) {
|
||||
$bHasMissingMandatoryKey = false;
|
||||
$iMissingMandatoryKeysNb--;
|
||||
}
|
||||
|
||||
if (($sUniquenessRuleKey === 'attributes') && (!empty($aExistingClassFields)))
|
||||
if ($sUniquenessRuleKey === 'attributes')
|
||||
{
|
||||
foreach ($aUniquenessRuleProperties[$sUniquenessRuleKey] as $sRuleAttribute)
|
||||
if (!empty($aExistingClassFields))
|
||||
{
|
||||
if (!in_array($sRuleAttribute, $aExistingClassFields, true))
|
||||
foreach ($aUniquenessRuleProperties[$sUniquenessRuleKey] as $sRuleAttribute)
|
||||
{
|
||||
throw new CoreUnexpectedValue("Uniqueness rule : non existing field '$sRuleAttribute'");
|
||||
if (!in_array($sRuleAttribute, $aExistingClassFields, true))
|
||||
{
|
||||
throw new CoreUnexpectedValue("Uniqueness rule : non existing field '$sRuleAttribute'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($iMissingMandatoryKeysNb == $UNIQUENESS_MANDATORY_KEYS_NB)
|
||||
if ($iMissingMandatoryKeysNb === 0)
|
||||
{
|
||||
$bHasAllMandatoryKeysMissing = true;
|
||||
$bHasMissingMandatoryKey = false;
|
||||
}
|
||||
|
||||
if ($bHasDisabledKey)
|
||||
if ($bRuleOverride && $bHasNonDisabledKeys)
|
||||
{
|
||||
if ($bRuleOverride && $bHasAllMandatoryKeysMissing && !$bHasNonDisabledKeys)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ($bHasMissingMandatoryKey)
|
||||
{
|
||||
throw new CoreUnexpectedValue('Uniqueness rule : missing mandatory properties');
|
||||
}
|
||||
|
||||
return;
|
||||
throw new CoreUnexpectedValue('Uniqueness rule : only the \'disabled\' key can be overridden');
|
||||
}
|
||||
|
||||
if ($bHasMissingMandatoryKey)
|
||||
if ($bRuleOverride && is_null($bDisabledKeyValue))
|
||||
{
|
||||
throw new CoreUnexpectedValue('Uniqueness rule : missing mandatory properties');
|
||||
throw new CoreUnexpectedValue('Uniqueness rule : when overriding a rule, value must be set for the \'disabled\' key');
|
||||
}
|
||||
if (!$bRuleOverride && $bHasMissingMandatoryKey)
|
||||
{
|
||||
throw new CoreUnexpectedValue('Uniqueness rule : missing mandatory property');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3810,7 +3887,7 @@ abstract class MetaModel
|
||||
|
||||
/**
|
||||
* @param string $sClass
|
||||
* @param int $iOption
|
||||
* @param int $iOption one of ENUM_CHILD_CLASSES_EXCLUDETOP, ENUM_CHILD_CLASSES_ALL
|
||||
*
|
||||
* @return array
|
||||
* @throws \CoreException
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
*/
|
||||
final class ormTagSet extends ormSet
|
||||
{
|
||||
private $m_bDisplayPartial = false;
|
||||
|
||||
|
||||
/**
|
||||
* ormTagSet constructor.
|
||||
*
|
||||
@@ -299,6 +302,82 @@ final class ormTagSet extends ormSet
|
||||
return $aModifiedTagCodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[] list of codes for added entries
|
||||
*/
|
||||
public function GetAdded()
|
||||
{
|
||||
$aAddedTagCodes = array_keys($this->aAdded);
|
||||
sort($aAddedTagCodes);
|
||||
|
||||
return $aAddedTagCodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[] list of codes for removed entries
|
||||
*/
|
||||
public function GetRemoved()
|
||||
{
|
||||
$aRemovedTagCodes = array_keys($this->aRemoved);
|
||||
sort($aRemovedTagCodes);
|
||||
|
||||
return $aRemovedTagCodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply a delta to the current ItemSet
|
||||
* $aDelta['added] = array of added items
|
||||
* $aDelta['removed'] = array of removed items
|
||||
*
|
||||
* @param $aDelta
|
||||
*
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function ApplyDelta($aDelta)
|
||||
{
|
||||
if (isset($aDelta['removed']))
|
||||
{
|
||||
foreach($aDelta['removed'] as $oItem)
|
||||
{
|
||||
$this->Remove($oItem);
|
||||
}
|
||||
}
|
||||
if (isset($aDelta['added']))
|
||||
{
|
||||
foreach($aDelta['added'] as $oItem)
|
||||
{
|
||||
$this->Add($oItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates the added and removed arrays for bulk edit
|
||||
*
|
||||
* @param string[] $aItems
|
||||
*
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function GenerateDiffFromArray($aItems)
|
||||
{
|
||||
foreach($this->GetValues() as $oCurrentItem)
|
||||
{
|
||||
if (!in_array($oCurrentItem, $aItems))
|
||||
{
|
||||
$this->Remove($oCurrentItem);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($aItems as $oNewItem)
|
||||
{
|
||||
$this->Add($oNewItem);
|
||||
}
|
||||
|
||||
// Keep only the aModified list
|
||||
$this->aRemoved = array();
|
||||
$this->aAdded = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a tag code is valid or not for this TagSet
|
||||
*
|
||||
@@ -479,4 +558,21 @@ final class ormTagSet extends ormSet
|
||||
return TagSetFieldData::GetTagDataClassName($this->sClass, $this->sAttCode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function DisplayPartial()
|
||||
{
|
||||
return $this->m_bDisplayPartial;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $m_bDisplayPartial
|
||||
*/
|
||||
public function SetDisplayPartial($m_bDisplayPartial)
|
||||
{
|
||||
$this->m_bDisplayPartial = $m_bDisplayPartial;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -257,13 +257,14 @@ class CoreServices implements iRestServiceProvider
|
||||
*/
|
||||
public function ListOperations($sVersion)
|
||||
{
|
||||
// 1.4 - iTop 2.5.2, 2.6.1, 2.7.0, Verb 'core/get': added pagination parameters limit and page
|
||||
// 1.3 - iTop 2.2.0, Verb 'get_related': added the options 'redundancy' and 'direction' to take into account the redundancy in the impact analysis
|
||||
// 1.2 - was documented in the wiki but never released ! Same as 1.3
|
||||
// 1.1 - In the reply, objects have a 'key' entry so that it is no more necessary to split class::key programmaticaly
|
||||
// 1.0 - Initial implementation in iTop 2.0.1
|
||||
//
|
||||
$aOps = array();
|
||||
if (in_array($sVersion, array('1.0', '1.1', '1.2', '1.3')))
|
||||
if (in_array($sVersion, array('1.0', '1.1', '1.2', '1.3', '1.4')))
|
||||
{
|
||||
$aOps[] = array(
|
||||
'verb' => 'core/create',
|
||||
@@ -299,9 +300,16 @@ class CoreServices implements iRestServiceProvider
|
||||
|
||||
/**
|
||||
* Enumerate services delivered by this class
|
||||
*
|
||||
* @param string $sVersion The version (e.g. 1.0) supported by the services
|
||||
* @param string $sVerb
|
||||
* @param $aParams
|
||||
*
|
||||
* @return RestResult The standardized result structure (at least a message)
|
||||
* @throws Exception in case of internal failure.
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \SimpleGraphException
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function ExecOperation($sVersion, $sVerb, $aParams)
|
||||
{
|
||||
@@ -436,8 +444,10 @@ class CoreServices implements iRestServiceProvider
|
||||
$key = RestUtils::GetMandatoryParam($aParams, 'key');
|
||||
$aShowFields = RestUtils::GetFieldList($sClass, $aParams, 'output_fields');
|
||||
$bExtendedOutput = (RestUtils::GetOptionalParam($aParams, 'output_fields', '*') == '*+');
|
||||
$iLimit = (int)RestUtils::GetOptionalParam($aParams, 'limit', 0);
|
||||
$iPage = (int)RestUtils::GetOptionalParam($aParams, 'page', 1);
|
||||
|
||||
$oObjectSet = RestUtils::GetObjectSetFromKey($sClass, $key);
|
||||
$oObjectSet = RestUtils::GetObjectSetFromKey($sClass, $key, $iLimit, self::getOffsetFromLimitAndPage($iLimit, $iPage));
|
||||
$sTargetClass = $oObjectSet->GetFilter()->GetClass();
|
||||
|
||||
if (UserRights::IsActionAllowed($sTargetClass, UR_ACTION_READ) != UR_ALLOWED_YES)
|
||||
@@ -450,6 +460,11 @@ class CoreServices implements iRestServiceProvider
|
||||
$oResult->code = RestResult::UNAUTHORIZED;
|
||||
$oResult->message = "The current user does not have enough permissions for exporting data of class $sTargetClass";
|
||||
}
|
||||
elseif ($iPage < 1)
|
||||
{
|
||||
$oResult->code = RestResult::INVALID_PAGE;
|
||||
$oResult->message = "The request page number is not valid. It must be an integer greater than 0";
|
||||
}
|
||||
else
|
||||
{
|
||||
while ($oObject = $oObjectSet->Fetch())
|
||||
@@ -774,4 +789,15 @@ class CoreServices implements iRestServiceProvider
|
||||
$oResult->message = $sRes;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $iLimit
|
||||
* @param int $iPage
|
||||
*
|
||||
* @return int Offset for a given page number
|
||||
*/
|
||||
protected static function getOffsetFromLimitAndPage($iLimit, $iPage)
|
||||
{
|
||||
return $iLimit * max(0, $iPage - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Beware the version number MUST be enclosed with quotes otherwise v2.3.0 becomes v2 0.3 .0
|
||||
$version: "v2.6.0";
|
||||
$version: "v2.6.1";
|
||||
|
||||
// Base colors
|
||||
$gray-base: #000 !default;
|
||||
|
||||
@@ -343,10 +343,10 @@ a.small_action {
|
||||
padding-left: 5px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
background: #ea7d1e url(../images/actions_left.png?v=v2.6.0) no-repeat left;
|
||||
background: #ea7d1e url(../images/actions_left.png?v=v2.6.1) no-repeat left;
|
||||
}
|
||||
.actions_details span {
|
||||
background: url(../images/actions_right.png?v=v2.6.0) no-repeat right;
|
||||
background: url(../images/actions_right.png?v=v2.6.1) no-repeat right;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
padding-top: 2px;
|
||||
@@ -520,7 +520,7 @@ div.actions_menu > ul {
|
||||
nowidth: 70px;
|
||||
padding-left: 5px;
|
||||
/* Nasty work-around for IE... en attendant mieux */
|
||||
background: #ea7d1e url(../images/actions_left.png?v=v2.6.0) no-repeat top left;
|
||||
background: #ea7d1e url(../images/actions_left.png?v=v2.6.1) no-repeat top left;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
}
|
||||
@@ -532,7 +532,7 @@ div.actions_menu > ul > li {
|
||||
height: 17px;
|
||||
padding-right: 16px;
|
||||
padding-left: 4px;
|
||||
background: url(../images/actions_right.png?v=v2.6.0) no-repeat top right transparent;
|
||||
background: url(../images/actions_right.png?v=v2.6.1) no-repeat top right transparent;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
vertical-align: middle;
|
||||
@@ -678,7 +678,7 @@ td a.dp-choose-date, a.dp-choose-date, td a.dp-choose-date:hover, a.dp-choose-da
|
||||
display: block;
|
||||
text-indent: -2000px;
|
||||
overflow: hidden;
|
||||
background: url(../images/calendar.png?v=v2.6.0) no-repeat;
|
||||
background: url(../images/calendar.png?v=v2.6.1) no-repeat;
|
||||
}
|
||||
td a.dp-choose-date.dp-disabled, a.dp-choose-date.dp-disabled {
|
||||
background-position: 0 -20px;
|
||||
@@ -1332,19 +1332,19 @@ input.dp-applied {
|
||||
}
|
||||
/* Beware: IE6 does not support multiple selector with multiple classes, only the last class is used */
|
||||
table.listResults tr.odd td.truncated, table.listResults tr td.truncated, .wizContainer table.listResults tr.odd td.truncated, .wizContainer table.listResults tr td.truncated {
|
||||
background: url(../images/truncated.png?v=v2.6.0) bottom repeat-x;
|
||||
background: url(../images/truncated.png?v=v2.6.1) bottom repeat-x;
|
||||
}
|
||||
/* Beware: IE6 does not support multiple selector with multiple classes, only the last class is used */
|
||||
table.listResults tr.even td.truncated, .wizContainer table.listResults tr.even td.truncated {
|
||||
background: #f9f9f1 url(../images/truncated.png?v=v2.6.0) bottom repeat-x;
|
||||
background: #f9f9f1 url(../images/truncated.png?v=v2.6.1) bottom repeat-x;
|
||||
}
|
||||
/* Beware: IE6 does not support multiple selector with multiple classes, only the last class is used */
|
||||
table.listResults tr.even td.hover.truncated, .wizContainer table.listResults tr.even td.hover.truncated {
|
||||
background: #fdf5d0 url(../images/truncated.png?v=v2.6.0) bottom repeat-x;
|
||||
background: #fdf5d0 url(../images/truncated.png?v=v2.6.1) bottom repeat-x;
|
||||
}
|
||||
/* Beware: IE6 does not support multiple selector with multiple classes, only the last class is used */
|
||||
table.listResults tr.odd td.hover.truncated, table.listResults tr td.hover.truncated, .wizContainer table.listResults tr.odd td.hover.truncated, .wizContainer table.listResults tr td.hover.truncated {
|
||||
background: #fdf5d0 url(../images/truncated.png?v=v2.6.0) bottom repeat-x;
|
||||
background: #fdf5d0 url(../images/truncated.png?v=v2.6.1) bottom repeat-x;
|
||||
}
|
||||
table.listResults.truncated {
|
||||
border-bottom: 0;
|
||||
@@ -1452,7 +1452,7 @@ div#logo {
|
||||
div#logo div {
|
||||
height: 88px;
|
||||
width: 244px;
|
||||
background: url(../images/itop-logo-2.png?v=v2.6.0) left no-repeat;
|
||||
background: url(../images/itop-logo-2.png?v=v2.6.1) left no-repeat;
|
||||
}
|
||||
#left-pane .ui-layout-north {
|
||||
overflow: hidden;
|
||||
@@ -1544,7 +1544,7 @@ div#logo div {
|
||||
}
|
||||
#global-search-image {
|
||||
vertical-align: middle;
|
||||
background: url(../images/search.png?v=v2.6.0) center center no-repeat;
|
||||
background: url(../images/search.png?v=v2.6.1) center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 28px;
|
||||
height: 30px;
|
||||
@@ -1573,7 +1573,7 @@ span.ui-icon {
|
||||
margin: 0 2px;
|
||||
}
|
||||
.ui-layout-button-pin-down {
|
||||
background: url(../images/splitter-bkg.png?v=v2.6.0) transparent;
|
||||
background: url(../images/splitter-bkg.png?v=v2.6.1) transparent;
|
||||
width: 16px;
|
||||
background-position: -144px -144px;
|
||||
}
|
||||
@@ -2089,7 +2089,7 @@ img.prev, img.first, img.next, img.last {
|
||||
}
|
||||
div.actions_button {
|
||||
float: right;
|
||||
background: #ea7d1e url("../images/actions_left.png?v=v2.6.0") no-repeat scroll left top;
|
||||
background: #ea7d1e url("../images/actions_left.png?v=v2.6.1") no-repeat scroll left top;
|
||||
padding-left: 5px;
|
||||
margin-top: 0;
|
||||
margin-right: 10px;
|
||||
@@ -2097,7 +2097,7 @@ div.actions_button {
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.actions_button a, .actions_button a:hover, .actions_button a:visited {
|
||||
background: #ea7d1e url(../images/actions_bkg.png?v=v2.6.0) no-repeat scroll right top;
|
||||
background: #ea7d1e url(../images/actions_bkg.png?v=v2.6.1) no-repeat scroll right top;
|
||||
color: #fff;
|
||||
padding-right: 8px;
|
||||
cursor: pointer;
|
||||
@@ -2121,10 +2121,10 @@ select#org_id {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.dragHover {
|
||||
background: url(./ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.6.0);
|
||||
background: url(./ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.6.1);
|
||||
}
|
||||
.edit_mode .dashlet {
|
||||
background: url(./ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.6.0);
|
||||
background: url(./ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.6.1);
|
||||
padding: 5px;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
@@ -2134,6 +2134,17 @@ select#org_id {
|
||||
padding: 5px;
|
||||
margin: 0;
|
||||
}
|
||||
/* Prevent cursor clicking on the calendar (eg. While editing dashlet) */
|
||||
.dashlet-blocker {
|
||||
position: absolute;
|
||||
z-index: 9;
|
||||
/* To be above calendar links & all, but below .close-box (9) */
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
td.layout_cell {
|
||||
height: 50px;
|
||||
/* min-height does not work */
|
||||
@@ -2158,7 +2169,7 @@ table.prop_table {
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
background: transparent url(../images/delete.png?v=v2.6.0) no-repeat center;
|
||||
background: transparent url(../images/delete.png?v=v2.6.1) no-repeat center;
|
||||
}
|
||||
td.prop_value {
|
||||
text-align: left;
|
||||
@@ -2379,17 +2390,23 @@ a.summary, a.summary:hover {
|
||||
}
|
||||
.message_info {
|
||||
border: 1px solid #993;
|
||||
background: url(../images/info-mini.png?v=v2.6.0) 1em 1em no-repeat #ffc;
|
||||
background: url(../images/info-mini.png?v=v2.6.1) 1em 1em no-repeat #ffc;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.message_ok {
|
||||
border: 1px solid #393;
|
||||
background: url(../images/ok.png?v=v2.6.0) 1em 1em no-repeat #cfc;
|
||||
background: url(../images/ok.png?v=v2.6.1) 1em 1em no-repeat #cfc;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.message_warning {
|
||||
border: 1px solid #ec9800;
|
||||
background: url(../images/error.png?v=v2.6.1) 1em 1em no-repeat #ffd78d;
|
||||
color: #000;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.message_error {
|
||||
border: 1px solid #933;
|
||||
background: url(../images/error.png?v=v2.6.0) 1em 1em no-repeat #fcc;
|
||||
background: url(../images/error.png?v=v2.6.1) 1em 1em no-repeat #fcc;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.fg-menu a img {
|
||||
@@ -2520,18 +2537,18 @@ div.explain-printable {
|
||||
}
|
||||
#hiddeable_chapters .ui-tabs .ui-tabs-nav li.hideable-chapter span {
|
||||
padding-left: 20px;
|
||||
background: url(../images/eye-open-555.png?v=v2.6.0) 2px center no-repeat;
|
||||
background: url(../images/eye-open-555.png?v=v2.6.1) 2px center no-repeat;
|
||||
}
|
||||
#hiddeable_chapters .ui-tabs .ui-tabs-nav li.hideable-chapter.strikethrough span {
|
||||
text-decoration: line-through;
|
||||
background: url(../images/eye-closed-555.png?v=v2.6.0) 2px center no-repeat;
|
||||
background: url(../images/eye-closed-555.png?v=v2.6.1) 2px center no-repeat;
|
||||
}
|
||||
.printable-version legend {
|
||||
padding-left: 26px;
|
||||
background: #1c94c4 url(../images/eye-open-fff.png?v=v2.6.0) 8px center no-repeat;
|
||||
background: #1c94c4 url(../images/eye-open-fff.png?v=v2.6.1) 8px center no-repeat;
|
||||
}
|
||||
.printable-version .strikethrough legend {
|
||||
background: #1c94c4 url(../images/eye-closed-fff.png?v=v2.6.0) 8px center no-repeat;
|
||||
background: #1c94c4 url(../images/eye-closed-fff.png?v=v2.6.1) 8px center no-repeat;
|
||||
}
|
||||
.printable-version fieldset.strikethrough span {
|
||||
display: none;
|
||||
@@ -2682,7 +2699,7 @@ span.search-button, span.refresh-button {
|
||||
#itop-breadcrumb .breadcrumb-item a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
background-image: url(../images/breadcrumb-separator.png?v=v2.6.0);
|
||||
background-image: url(../images/breadcrumb-separator.png?v=v2.6.1);
|
||||
background-repeat: no-repeat;
|
||||
width: 8px;
|
||||
height: 16px;
|
||||
@@ -2916,6 +2933,17 @@ table.listResults .originColor {
|
||||
.menu-icon-select > .ui-menu-item {
|
||||
padding: 0.3em 3%;
|
||||
}
|
||||
.menu-icon-select > .ui-menu-item > * {
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.menu-icon-select > .ui-menu-item > * > img {
|
||||
max-width: 80px;
|
||||
max-height: 45px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.attribute.attribute-set .attribute-set-item::after {
|
||||
content: ",";
|
||||
margin-right: 0.5em;
|
||||
|
||||
@@ -2478,6 +2478,16 @@ select#org_id {
|
||||
padding: 5px;
|
||||
margin:0;
|
||||
}
|
||||
/* Prevent cursor clicking on the calendar (eg. While editing dashlet) */
|
||||
.dashlet-blocker {
|
||||
position: absolute;
|
||||
z-index: 9; /* To be above calendar links & all, but below .close-box (9) */
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
td.layout_cell {
|
||||
height: 50px; /* min-height does not work */
|
||||
vertical-align: top;
|
||||
@@ -2752,6 +2762,12 @@ a.summary, a.summary:hover {
|
||||
background: url(../images/ok.png?v=#{$version}) 1em 1em no-repeat #cfc;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.message_warning {
|
||||
border: 1px solid #ec9800;
|
||||
background: url(../images/error.png?v=#{$version}) 1em 1em no-repeat #ffd78d;
|
||||
color: #000;
|
||||
padding-left: 3em;
|
||||
}
|
||||
.message_error {
|
||||
border: 1px solid #933;
|
||||
background: url(../images/error.png?v=#{$version}) 1em 1em no-repeat #fcc;
|
||||
@@ -3343,6 +3359,19 @@ table.listResults .originColor{
|
||||
}
|
||||
.menu-icon-select > .ui-menu-item{
|
||||
padding: .3em 3%;
|
||||
|
||||
> *{
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
> img{
|
||||
max-width: 80px;
|
||||
max-height: 45px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'authent-external/2.6.0',
|
||||
'authent-external/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
//
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
// Dictionnay conventions
|
||||
// Class:<class_name>
|
||||
// Class:<class_name>+
|
||||
@@ -30,11 +29,9 @@
|
||||
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>+
|
||||
|
||||
//
|
||||
// Class: UserExternal
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:UserExternal' => '外部用户',
|
||||
'Class:UserExternal+' => '用户在iTop 外部验证身份',
|
||||
|
||||
@@ -9,7 +9,7 @@ if (function_exists('ldap_connect'))
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'authent-ldap/2.6.0',
|
||||
'authent-ldap/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
//
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
// Dictionnay conventions
|
||||
// Class:<class_name>
|
||||
// Class:<class_name>+
|
||||
@@ -30,11 +29,9 @@
|
||||
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>+
|
||||
|
||||
//
|
||||
// Class: UserLDAP
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:UserLDAP' => 'LDAP 用户',
|
||||
'Class:UserLDAP+' => '用户身份由LDAP 认证',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'authent-local/2.6.0',
|
||||
'authent-local/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
//
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
// Dictionnay conventions
|
||||
// Class:<class_name>
|
||||
// Class:<class_name>+
|
||||
@@ -30,11 +29,9 @@
|
||||
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>
|
||||
// Class:<class_name>/Stimulus:<stimulus_code>+
|
||||
|
||||
//
|
||||
// Class: UserLocal
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:UserLocal' => 'iTop 用户',
|
||||
'Class:UserLocal+' => '用户由 iTop 验证身份',
|
||||
|
||||
@@ -37,4 +37,26 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'Attachment:Max_Ko' => '(Maximální velikost souboru: %1$s KiB)',
|
||||
'Attachments:NoAttachment' => 'Žádná příloha. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Pro tento typ přílohy není náhled k dispozici.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,26 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Attachment:Max_Ko' => '(Maksimal størrelse: %1$s KB)',
|
||||
'Attachments:NoAttachment' => 'Intet vedhæftet. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -36,4 +36,26 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Attachment:Max_Ko' => '(Maximale Dateigröße: %1$s KB)',
|
||||
'Attachments:NoAttachment' => 'Kein Attachment. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Vorschau für diesen Attachment-Typ nicht verfügbar.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -35,4 +35,26 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Attachment:Max_Ko' => '(Maximum file size: %1$s Ko)',
|
||||
'Attachments:NoAttachment' => 'No attachment. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:Attachment' => 'Attachment',
|
||||
'Class:Attachment+' => '',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire',
|
||||
'Class:Attachment/Attribute:expire+' => '',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id',
|
||||
'Class:Attachment/Attribute:temp_id+' => '',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class',
|
||||
'Class:Attachment/Attribute:item_class+' => '',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item',
|
||||
'Class:Attachment/Attribute:item_id+' => '',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents',
|
||||
'Class:Attachment/Attribute:contents+' => '',
|
||||
));
|
||||
|
||||
@@ -36,4 +36,26 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
'Attachment:Max_Ko' => '(Tamaño Máximo de Archivo: %1$s Kb)',
|
||||
'Attachments:NoAttachment' => 'No hay Anexo. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Vista preliminar no disponible para este tipo de Anexo.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -35,4 +35,26 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Attachment:Max_Ko' => '(Taille de fichier max.: %1$s Kb)',
|
||||
'Attachments:NoAttachment' => 'Aucune pièce jointe.',
|
||||
'Attachments:PreviewNotAvailable' => 'Pas d\'aperçu pour ce type de pièce jointe.',
|
||||
'Attachments:Error:FileTooLarge' => 'Le fichier est trop gros pour être chargé. %1$s',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Class:Attachment' => 'Attachement',
|
||||
'Class:Attachment+' => '',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire',
|
||||
'Class:Attachment/Attribute:expire+' => '',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Id Temporaire',
|
||||
'Class:Attachment/Attribute:temp_id+' => '',
|
||||
'Class:Attachment/Attribute:item_class' => 'Classe d\'Item',
|
||||
'Class:Attachment/Attribute:item_class+' => '',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item',
|
||||
'Class:Attachment/Attribute:item_id+' => '',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Organisation de l\'Item',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '',
|
||||
'Class:Attachment/Attribute:contents' => 'Contenu',
|
||||
'Class:Attachment/Attribute:contents+' => '',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,26 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Attachment:Max_Ko' => '(Maximum file size: %1$s Ko)~~',
|
||||
'Attachments:NoAttachment' => 'No attachment. ~~',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,26 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Attachment:Max_Ko' => '(Maximum file size: %1$s Ko)~~',
|
||||
'Attachments:NoAttachment' => 'No attachment. ~~',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -33,4 +33,26 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Attachment:Max_Ko' => '(最大ファイルサイズ: %1$s KB)',
|
||||
'Attachments:NoAttachment' => '添付はありません。',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -54,16 +54,42 @@ class AttachmentPlugIn implements iApplicationUIExtension, iApplicationObjectExt
|
||||
}
|
||||
}
|
||||
|
||||
protected function GetMaxUpload()
|
||||
/**
|
||||
* Returns the value of "upload_max_filesize" in bytes if upload allowed, false otherwise.
|
||||
*
|
||||
* @since 2.6.1
|
||||
*
|
||||
* @return number|boolean
|
||||
*/
|
||||
public static function GetMaxUploadSize()
|
||||
{
|
||||
$iMaxUpload = ini_get('upload_max_filesize');
|
||||
$sMaxUpload = ini_get('upload_max_filesize');
|
||||
if (!$sMaxUpload)
|
||||
{
|
||||
$result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = utils::ConvertToBytes($sMaxUpload);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the max. file upload size allowed as a dictionary entry
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function GetMaxUpload()
|
||||
{
|
||||
$iMaxUpload = static::GetMaxUploadSize();
|
||||
if (!$iMaxUpload)
|
||||
{
|
||||
$sRet = Dict::S('Attachments:UploadNotAllowedOnThisSystem');
|
||||
}
|
||||
else
|
||||
{
|
||||
$iMaxUpload = utils::ConvertToBytes($iMaxUpload);
|
||||
if ($iMaxUpload > 1024*1024*1024)
|
||||
{
|
||||
$sRet = Dict::Format('Attachment:Max_Go', sprintf('%0.2f', $iMaxUpload/(1024*1024*1024)));
|
||||
@@ -327,13 +353,16 @@ EOF
|
||||
}
|
||||
}
|
||||
|
||||
$oPage->add('</span>');
|
||||
$oPage->add('<div style="clear:both"></div>');
|
||||
$sMaxUpload = $this->GetMaxUpload();
|
||||
$oPage->p(Dict::S('Attachments:AddAttachment').'<input type="file" name="file" id="file"><span style="display:none;" id="attachment_loading"> <img src="../images/indicator.gif"></span> '.$sMaxUpload);
|
||||
$oPage->add('</span>');
|
||||
$oPage->add('<div style="clear:both"></div>');
|
||||
$iMaxUploadInBytes = $this->GetMaxUploadSize();
|
||||
$sMaxUploadLabel = $this->GetMaxUpload();
|
||||
$sFileTooBigLabel = Dict::Format('Attachments:Error:FileTooLarge', $sMaxUploadLabel);
|
||||
$sFileTooBigLabelForJS = addslashes($sFileTooBigLabel);
|
||||
$oPage->p(Dict::S('Attachments:AddAttachment').'<input type="file" name="file" id="file"><span style="display:none;" id="attachment_loading"> <img src="../images/indicator.gif"></span> '.$sMaxUploadLabel);
|
||||
|
||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.iframe-transport.js');
|
||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.fileupload.js');
|
||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.fileupload.js');
|
||||
|
||||
$sDownloadLink = utils::GetAbsoluteUrlAppRoot().ATTACHMENT_DOWNLOAD_URL;
|
||||
$oPage->add_ready_script(
|
||||
@@ -362,6 +391,21 @@ EOF
|
||||
}
|
||||
}
|
||||
},
|
||||
send: function(e, data){
|
||||
// Don't send attachment if size is greater than PHP post_max_size, otherwise it will break the request and all its parameters (\$_REQUEST, \$_POST, ...)
|
||||
// Note: We loop on the files as the data structures is an array but in this case, we only upload 1 file at a time.
|
||||
var iTotalSizeInBytes = 0;
|
||||
for(var i = 0; i < data.files.length; i++)
|
||||
{
|
||||
iTotalSizeInBytes += data.files[i].size;
|
||||
}
|
||||
|
||||
if(iTotalSizeInBytes > $iMaxUploadInBytes)
|
||||
{
|
||||
alert('$sFileTooBigLabelForJS');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
start: function() {
|
||||
$('#attachment_loading').show();
|
||||
},
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-attachments/2.6.0',
|
||||
'itop-attachments/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -39,4 +39,26 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'Attachment:Max_Ko' => '(Maximale bestandsgrootte: %1$s kB)',
|
||||
'Attachments:NoAttachment' => 'Geen bijlage. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Een voorbeeld is niet beschikbaar voor dit type bijlage.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -35,4 +35,26 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Attachment:Max_Ko' => '(Tamanho máximo arquivo: %1$s Kb)',
|
||||
'Attachments:NoAttachment' => 'Nenhum anexo. ',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
@@ -22,4 +22,26 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Attachment:Max_Ko' => '(Максимальный размер файла: %1$s кБ)',
|
||||
'Attachments:NoAttachment' => 'Нет вложений.',
|
||||
'Attachments:PreviewNotAvailable' => 'Предварительный просмотр не доступен для этого типа вложений.',
|
||||
'Attachments:Error:FileTooLarge' => 'Файл слишком велик для загрузки. %1$s',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Class:Attachment' => 'Вложение',
|
||||
'Class:Attachment+' => '',
|
||||
'Class:Attachment/Attribute:expire' => 'Истекает',
|
||||
'Class:Attachment/Attribute:expire+' => '',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Временный Id',
|
||||
'Class:Attachment/Attribute:temp_id+' => '',
|
||||
'Class:Attachment/Attribute:item_class' => 'Класс объекта',
|
||||
'Class:Attachment/Attribute:item_class+' => '',
|
||||
'Class:Attachment/Attribute:item_id' => 'Id объекта',
|
||||
'Class:Attachment/Attribute:item_id+' => '',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Id организации объекта',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '',
|
||||
'Class:Attachment/Attribute:contents' => 'Содержимое',
|
||||
'Class:Attachment/Attribute:contents+' => '',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,26 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Attachment:Max_Ko' => '(Maximum file size: %1$s Ko)~~',
|
||||
'Attachments:NoAttachment' => 'No attachment. ~~',
|
||||
'Attachments:PreviewNotAvailable' => 'Preview not available for this type of attachment.~~',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Attachments:TabTitle_Count' => '附件 (%1$d)',
|
||||
'Attachments:EmptyTabTitle' => '附件',
|
||||
@@ -35,4 +34,26 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Attachment:Max_Ko' => '(最大文件尺寸: %1$s KB)',
|
||||
'Attachments:NoAttachment' => '没有附件. ',
|
||||
'Attachments:PreviewNotAvailable' => '该附件类型不支持预览.',
|
||||
'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~',
|
||||
));
|
||||
|
||||
//
|
||||
// Class: Attachment
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Attachment' => 'Attachment~~',
|
||||
'Class:Attachment+' => '~~',
|
||||
'Class:Attachment/Attribute:expire' => 'Expire~~',
|
||||
'Class:Attachment/Attribute:expire+' => '~~',
|
||||
'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
|
||||
'Class:Attachment/Attribute:temp_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_class' => 'Item class~~',
|
||||
'Class:Attachment/Attribute:item_class+' => '~~',
|
||||
'Class:Attachment/Attribute:item_id' => 'Item~~',
|
||||
'Class:Attachment/Attribute:item_id+' => '~~',
|
||||
'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
|
||||
'Class:Attachment/Attribute:item_org_id+' => '~~',
|
||||
'Class:Attachment/Attribute:contents' => 'Contents~~',
|
||||
'Class:Attachment/Attribute:contents+' => '~~',
|
||||
));
|
||||
|
||||
@@ -184,7 +184,15 @@ EOF
|
||||
$sFile = utils::ReadParam('file', '', false, 'raw_data');
|
||||
$oBackup = new DBBackupScheduled();
|
||||
$sBackupDir = APPROOT.'data/backups/';
|
||||
$oBackup->DownloadBackup($sBackupDir.$sFile);
|
||||
$sPathNoDotDotPattern = "/^((?![\/\\\\]\.\.[\/\\\\]).)*$/";
|
||||
if(preg_match($sPathNoDotDotPattern, $sBackupDir.$sFile) == 1)
|
||||
{
|
||||
$oBackup->DownloadBackup($sBackupDir.$sFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidParameterException('Invalid file path');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
<rank>15</rank>
|
||||
<parent>AdminTools</parent>
|
||||
<url>status.php</url>
|
||||
<enable_class>ResourceAdminMenu</enable_class>
|
||||
<enable_action>UR_ACTION_MODIFY</enable_action>
|
||||
<enable_admin_only>1</enable_admin_only>
|
||||
</menu>
|
||||
</menus>
|
||||
</itop_design>
|
||||
|
||||
@@ -32,7 +32,7 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'bkp-mysqldump-ok' => 'mysqldump is present: %1$s',
|
||||
'bkp-mysqldump-notfound' => 'mysqldump could not be found: %1$s - Please make sure it is installed and in the path, or edit the configuration file to tune mysql_bindir.',
|
||||
'bkp-mysqldump-issue' => 'mysqldump could not be executed (retcode=%1$d): Please make sure it is installed and in the path, or edit the configuration file to tune mysql_bindir',
|
||||
'bkp-missing-dir' => 'The target directory %1$s count not be found',
|
||||
'bkp-missing-dir' => 'The target directory %1$s could not be found',
|
||||
'bkp-free-disk-space' => '<b>%1$s free</b> in %2$s',
|
||||
'bkp-dir-not-writeable' => '%1$s is not writeable',
|
||||
'bkp-wrong-format-spec' => 'The current specification to format the file names is wrong (%1$s). A default specification will apply: %2$s',
|
||||
|
||||
@@ -47,31 +47,14 @@ class DBBackupScheduled extends DBBackup
|
||||
{
|
||||
protected function LogInfo($sMsg)
|
||||
{
|
||||
static $bDebug = null;
|
||||
if ($bDebug == null)
|
||||
{
|
||||
$bDebug = MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'debug', false);
|
||||
}
|
||||
|
||||
if ($bDebug)
|
||||
{
|
||||
echo $sMsg."\n";
|
||||
}
|
||||
echo $sMsg."\n";
|
||||
IssueLog::Info($sMsg);
|
||||
}
|
||||
|
||||
protected function LogError($sMsg)
|
||||
{
|
||||
static $bDebug = null;
|
||||
if ($bDebug == null)
|
||||
{
|
||||
$bDebug = MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'debug', false);
|
||||
}
|
||||
|
||||
IssueLog::Error($sMsg);
|
||||
if ($bDebug)
|
||||
{
|
||||
echo 'Error: '.$sMsg."\n";
|
||||
}
|
||||
echo 'Error: '.$sMsg."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-backup/2.6.0',
|
||||
'itop-backup/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
@@ -52,7 +52,7 @@ SetupWebPage::AddModule(
|
||||
//'file_name_format' => '__DB__-%Y-%m-%d_%H_%M',
|
||||
'retention_count' => 5,
|
||||
'enabled' => true,
|
||||
'debug' => false,
|
||||
'itop_root' => '',
|
||||
'itop_backup_incident' => '',
|
||||
),
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
@@ -27,7 +27,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'bkp-week-days' => 'Резервное копирование будет выполняться <b>каждый %1$s в %2$s</b>',
|
||||
'bkp-retention' => 'Не более <b>%1$d файлов резервных копий будут храниться</b> в целевом каталоге.',
|
||||
'bkp-next-to-delete' => 'Будет удалена при следующем запуске резервного копирования (см. параметр \\"retention_count\\")',
|
||||
'bkp-table-file' => 'Файл',
|
||||
'bkp-table-file' => 'Файл',
|
||||
'bkp-table-file+' => 'Только файлы с расширением .zip считаются файлами резервных копий.',
|
||||
'bkp-table-size' => 'Размер',
|
||||
'bkp-table-size+' => '',
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
|
||||
'bkp-backup-running' => '备份正在进行,请稍后...',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-bridge-virtualization-storage/2.6.0',
|
||||
'itop-bridge-virtualization-storage/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -4561,7 +4561,7 @@
|
||||
<icon>itop-change-mgmt-itil/images/change-ongoing.png</icon>
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt-itil/images/change-done.png</icon>
|
||||
</item>
|
||||
@@ -4579,7 +4579,7 @@
|
||||
<icon>itop-change-mgmt-itil/images/change-ongoing.png</icon>
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt-itil/images/change-done.png</icon>
|
||||
</item>
|
||||
@@ -4597,7 +4597,7 @@
|
||||
<icon>itop-change-mgmt-itil/images/change-ongoing.png</icon>
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt-itil/images/change-done.png</icon>
|
||||
</item>
|
||||
@@ -4619,7 +4619,7 @@
|
||||
<icon>itop-change-mgmt-itil/images/change-ongoing.png</icon>
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt-itil/images/change-done.png</icon>
|
||||
</item>
|
||||
@@ -4633,7 +4633,7 @@
|
||||
<icon>itop-change-mgmt-itil/images/change-ongoing.png</icon>
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<oql><![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt-itil/images/change-done.png</icon>
|
||||
</item>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-change-mgmt-itil/2.6.0',
|
||||
'itop-change-mgmt-itil/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Menu:ChangeManagement' => '变更管理',
|
||||
'Menu:Change:Overview' => '概况',
|
||||
|
||||
@@ -836,7 +836,7 @@
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id)AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt/images/change-done.png</icon>
|
||||
<default>no</default>
|
||||
@@ -858,7 +858,7 @@
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id)AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt/images/change-done.png</icon>
|
||||
<default>no</default>
|
||||
@@ -880,7 +880,7 @@
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id) AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status NOT IN ('closed')) AND (L.impact_code != 'not_impacted') AND (C.id != :this->id)AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt/images/change-done.png</icon>
|
||||
<default>no</default>
|
||||
@@ -906,7 +906,7 @@
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted')AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt/images/change-done.png</icon>
|
||||
<default>no</default>
|
||||
@@ -924,7 +924,7 @@
|
||||
</item>
|
||||
<item id="recent_changes" _delta="define">
|
||||
<oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted') AND (DATE_ADD(C.end_date, INTERVAL 3 DAY) < NOW())]]></oql>
|
||||
<![CDATA[SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = 'yes') AND (C.status IN ('closed')) AND (L.impact_code != 'not_impacted')AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))]]></oql>
|
||||
<dict>Tickets:Related:RecentChanges</dict>
|
||||
<icon>itop-change-mgmt/images/change-done.png</icon>
|
||||
<default>no</default>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-change-mgmt/2.6.0',
|
||||
'itop-change-mgmt/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
@@ -30,8 +30,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'UI-ChangeManagementOverview-Last-7-days' => 'Количество изменений за 7 дней',
|
||||
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Изменения по домену за 7 дней',
|
||||
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Изменения по статусу за 7 дней',
|
||||
'Tickets:Related:OpenChanges' => 'Open changes~~',
|
||||
'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~',
|
||||
'Tickets:Related:OpenChanges' => 'Открытые изменения',
|
||||
'Tickets:Related:RecentChanges' => 'Недавние изменения (72ч)',
|
||||
));
|
||||
|
||||
// Dictionnay conventions
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Menu:ChangeManagement' => '变更管理',
|
||||
'Menu:Change:Overview' => '概况',
|
||||
|
||||
@@ -1803,88 +1803,88 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
//
|
||||
|
||||
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'Menu:DataAdministration' => 'Správa dat',
|
||||
'Menu:DataAdministration+' => 'Správa dat',
|
||||
'Menu:Catalogs' => 'Katalogy',
|
||||
'Menu:Catalogs+' => 'Datové typy',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => 'Hromadné vytvoření nebo aktualizace',
|
||||
'Menu:Organization' => 'Organizace',
|
||||
'Menu:Organization+' => 'Všechny organizace',
|
||||
'Menu:Application' => 'Aplikace',
|
||||
'Menu:Application+' => 'Všechny aplikace',
|
||||
'Menu:DBServer' => 'Databázové servery',
|
||||
'Menu:DBServer+' => 'Databázové servery',
|
||||
'Menu:ConfigManagement' => 'Správa konfigurací',
|
||||
'Menu:ConfigManagement+' => 'Správa konfigurací',
|
||||
'Menu:ConfigManagementOverview' => 'Přehled',
|
||||
'Menu:ConfigManagementOverview+' => 'Přehled',
|
||||
'Menu:Contact' => 'Kontakty',
|
||||
'Menu:Contact+' => 'Kontakty',
|
||||
'Menu:Contact:Count' => '%1$d kontaktů',
|
||||
'Menu:Person' => 'Osoby',
|
||||
'Menu:Person+' => 'Všechny osoby',
|
||||
'Menu:Team' => 'Týmy',
|
||||
'Menu:Team+' => 'Všechny týmy',
|
||||
'Menu:Document' => 'Dokumenty',
|
||||
'Menu:Document+' => 'Všechny dokumenty',
|
||||
'Menu:Location' => 'Umístění',
|
||||
'Menu:DataAdministration' => 'Správa dat',
|
||||
'Menu:DataAdministration+' => 'Správa dat',
|
||||
'Menu:Catalogs' => 'Katalogy',
|
||||
'Menu:Catalogs+' => 'Datové typy',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => 'Hromadné vytvoření nebo aktualizace',
|
||||
'Menu:Organization' => 'Organizace',
|
||||
'Menu:Organization+' => 'Všechny organizace',
|
||||
'Menu:Application' => 'Aplikace',
|
||||
'Menu:Application+' => 'Všechny aplikace',
|
||||
'Menu:DBServer' => 'Databázové servery',
|
||||
'Menu:DBServer+' => 'Databázové servery',
|
||||
'Menu:ConfigManagement' => 'Správa konfigurací',
|
||||
'Menu:ConfigManagement+' => 'Správa konfigurací',
|
||||
'Menu:ConfigManagementOverview' => 'Přehled',
|
||||
'Menu:ConfigManagementOverview+' => 'Přehled',
|
||||
'Menu:Contact' => 'Kontakty',
|
||||
'Menu:Contact+' => 'Kontakty',
|
||||
'Menu:Contact:Count' => '%1$d kontaktů',
|
||||
'Menu:Person' => 'Osoby',
|
||||
'Menu:Person+' => 'Všechny osoby',
|
||||
'Menu:Team' => 'Týmy',
|
||||
'Menu:Team+' => 'Všechny týmy',
|
||||
'Menu:Document' => 'Dokumenty',
|
||||
'Menu:Document+' => 'Všechny dokumenty',
|
||||
'Menu:Location' => 'Umístění',
|
||||
|
||||
'Menu:Location+' => 'Všechna umístění',
|
||||
'Menu:ConfigManagementCI' => 'Konfigurační položky',
|
||||
'Menu:ConfigManagementCI+' => 'Konfigurační položky',
|
||||
'Menu:BusinessProcess' => 'Obchodní procesy',
|
||||
'Menu:BusinessProcess+' => 'Všechny obchodní procesy',
|
||||
'Menu:ApplicationSolution' => 'Aplikační řešení',
|
||||
'Menu:ApplicationSolution+' => 'Všechna aplikační řešení',
|
||||
'Menu:ConfigManagementSoftware' => 'Správa aplikací',
|
||||
'Menu:Licence' => 'Licence',
|
||||
'Menu:Licence+' => 'Všechny licence',
|
||||
'Menu:Patch' => 'Záplaty (patche)',
|
||||
'Menu:Patch+' => 'Všechny záplaty (patche)',
|
||||
'Menu:ApplicationInstance' => 'Instalovaný software',
|
||||
'Menu:ApplicationInstance+' => 'Aplikace a databázové servery',
|
||||
'Menu:ConfigManagementHardware' => 'Správa infrastruktury',
|
||||
'Menu:Subnet' => 'Podsítě (subnety)',
|
||||
'Menu:Subnet+' => 'Všechny podsítě (subnety)',
|
||||
'Menu:NetworkDevice' => 'Síťová zařízení',
|
||||
'Menu:NetworkDevice+' => 'Všechna síťová zařízení',
|
||||
'Menu:Server' => 'Servery',
|
||||
'Menu:Server+' => 'Všechny servery',
|
||||
'Menu:Printer' => 'Tiskárny',
|
||||
'Menu:Printer+' => 'Všechny tiskárny',
|
||||
'Menu:MobilePhone' => 'Mobilní telefony',
|
||||
'Menu:MobilePhone+' => 'Všechny mobilní telefony',
|
||||
'Menu:PC' => 'Osobní počítače',
|
||||
'Menu:PC+' => 'Všechny osobní počítače',
|
||||
'Menu:NewContact' => 'Nový kontakt',
|
||||
'Menu:NewContact+' => 'Nový kontakt',
|
||||
'Menu:SearchContacts' => 'Hledat kontakty',
|
||||
'Menu:SearchContacts+' => 'Hledat kontakty',
|
||||
'Menu:NewCI' => 'Nová konfigurační položka',
|
||||
'Menu:NewCI+' => 'Nová konfigurační položka',
|
||||
'Menu:SearchCIs' => 'Hledat konfigurační položky',
|
||||
'Menu:SearchCIs+' => 'Hledat konfigurační položky',
|
||||
'Menu:ConfigManagement:Devices' => 'Zařízení',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualizace',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Koncová zařízení',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software a aplikace',
|
||||
'Menu:ConfigManagement:Misc' => 'Ostatní',
|
||||
'Menu:Group' => 'Skupiny konfiguračních položek',
|
||||
'Menu:Group+' => 'Skupiny konfiguračních položek',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Odkazy',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Všechny kontakty: %1$d',
|
||||
'Menu:Typology' => 'Typologie',
|
||||
'Menu:Typology+' => 'Konfigurace typologie',
|
||||
'Menu:OSVersion' => 'Verze OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Katalog softwaru',
|
||||
'Menu:Software+' => 'Katalog softwaru',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Souhrn',
|
||||
'Menu:ConfigManagement:Typology' => 'Konfigurace typologie',
|
||||
'Menu:Location+' => 'Všechna umístění',
|
||||
'Menu:ConfigManagementCI' => 'Konfigurační položky',
|
||||
'Menu:ConfigManagementCI+' => 'Konfigurační položky',
|
||||
'Menu:BusinessProcess' => 'Obchodní procesy',
|
||||
'Menu:BusinessProcess+' => 'Všechny obchodní procesy',
|
||||
'Menu:ApplicationSolution' => 'Aplikační řešení',
|
||||
'Menu:ApplicationSolution+' => 'Všechna aplikační řešení',
|
||||
'Menu:ConfigManagementSoftware' => 'Správa aplikací',
|
||||
'Menu:Licence' => 'Licence',
|
||||
'Menu:Licence+' => 'Všechny licence',
|
||||
'Menu:Patch' => 'Záplaty (patche)',
|
||||
'Menu:Patch+' => 'Všechny záplaty (patche)',
|
||||
'Menu:ApplicationInstance' => 'Instalovaný software',
|
||||
'Menu:ApplicationInstance+' => 'Aplikace a databázové servery',
|
||||
'Menu:ConfigManagementHardware' => 'Správa infrastruktury',
|
||||
'Menu:Subnet' => 'Podsítě (subnety)',
|
||||
'Menu:Subnet+' => 'Všechny podsítě (subnety)',
|
||||
'Menu:NetworkDevice' => 'Síťová zařízení',
|
||||
'Menu:NetworkDevice+' => 'Všechna síťová zařízení',
|
||||
'Menu:Server' => 'Servery',
|
||||
'Menu:Server+' => 'Všechny servery',
|
||||
'Menu:Printer' => 'Tiskárny',
|
||||
'Menu:Printer+' => 'Všechny tiskárny',
|
||||
'Menu:MobilePhone' => 'Mobilní telefony',
|
||||
'Menu:MobilePhone+' => 'Všechny mobilní telefony',
|
||||
'Menu:PC' => 'Osobní počítače',
|
||||
'Menu:PC+' => 'Všechny osobní počítače',
|
||||
'Menu:NewContact' => 'Nový kontakt',
|
||||
'Menu:NewContact+' => 'Nový kontakt',
|
||||
'Menu:SearchContacts' => 'Hledat kontakty',
|
||||
'Menu:SearchContacts+' => 'Hledat kontakty',
|
||||
'Menu:NewCI' => 'Nová konfigurační položka',
|
||||
'Menu:NewCI+' => 'Nová konfigurační položka',
|
||||
'Menu:SearchCIs' => 'Hledat konfigurační položky',
|
||||
'Menu:SearchCIs+' => 'Hledat konfigurační položky',
|
||||
'Menu:ConfigManagement:Devices' => 'Zařízení',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualizace',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Koncová zařízení',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software a aplikace',
|
||||
'Menu:ConfigManagement:Misc' => 'Ostatní',
|
||||
'Menu:Group' => 'Skupiny konfiguračních položek',
|
||||
'Menu:Group+' => 'Skupiny konfiguračních položek',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Odkazy',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Všechny kontakty: %1$d',
|
||||
'Menu:Typology' => 'Typologie',
|
||||
'Menu:Typology+' => 'Konfigurace typologie',
|
||||
'Menu:OSVersion' => 'Verze OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Katalog softwaru',
|
||||
'Menu:Software+' => 'Katalog softwaru',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Souhrn',
|
||||
'Menu:ConfigManagement:Typology' => 'Konfigurace typologie',
|
||||
|
||||
));
|
||||
|
||||
@@ -1892,18 +1892,18 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'Server:baseinfo' => 'Obecné informace',
|
||||
'Server:Date' => 'Data',
|
||||
'Server:moreinfo' => 'Více informací',
|
||||
'Server:otherinfo' => 'Další informace',
|
||||
'Server:power' => 'Napájení',
|
||||
'Person:info' => 'Obecné informace',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Upozornění',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Využití IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhraní, která mají IP adresu v rozsahu: <em>%1$s</em>-<em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Volné IP adresy',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Počet volných adres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Tady je výčet volných IP adres (10)',
|
||||
'Class:Document:PreviewTab' => 'Náhled',
|
||||
'Server:baseinfo' => 'Obecné informace',
|
||||
'Server:Date' => 'Data',
|
||||
'Server:moreinfo' => 'Více informací',
|
||||
'Server:otherinfo' => 'Další informace',
|
||||
'Server:power' => 'Napájení',
|
||||
'Person:info' => 'Obecné informace',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Upozornění',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Využití IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhraní, která mají IP adresu v rozsahu: <em>%1$s</em>-<em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Volné IP adresy',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Počet volných adres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Tady je výčet volných IP adres (10)',
|
||||
'Class:Document:PreviewTab' => 'Náhled',
|
||||
));
|
||||
|
||||
@@ -1796,88 +1796,88 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
//
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Menu:DataAdministration' => 'Data administration',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Katalog',
|
||||
'Menu:Catalogs+' => 'Datatyper',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import~~',
|
||||
'Menu:CSVImport+' => 'Bulk creation or update~~',
|
||||
'Menu:Organization' => 'Organisation',
|
||||
'Menu:Organization+' => 'Alle Organisationer',
|
||||
'Menu:Application' => 'Anvendelse',
|
||||
'Menu:Application+' => 'Alle Anvendelser',
|
||||
'Menu:DBServer' => 'Database server',
|
||||
'Menu:DBServer+' => 'Database server',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Oversigt',
|
||||
'Menu:ConfigManagementOverview+' => 'Oversigt',
|
||||
'Menu:Contact' => 'Kontakt',
|
||||
'Menu:Contact+' => 'Kontakt',
|
||||
'Menu:Contact:Count' => '%1$d kontakter',
|
||||
'Menu:Person' => 'Person',
|
||||
'Menu:Person+' => 'Alle Personer',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle Teams',
|
||||
'Menu:Document' => 'Dokument',
|
||||
'Menu:Document+' => 'Alle Dokumenter',
|
||||
'Menu:Location' => 'Placering',
|
||||
'Menu:DataAdministration' => 'Data administration',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Katalog',
|
||||
'Menu:Catalogs+' => 'Datatyper',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import~~',
|
||||
'Menu:CSVImport+' => 'Bulk creation or update~~',
|
||||
'Menu:Organization' => 'Organisation',
|
||||
'Menu:Organization+' => 'Alle Organisationer',
|
||||
'Menu:Application' => 'Anvendelse',
|
||||
'Menu:Application+' => 'Alle Anvendelser',
|
||||
'Menu:DBServer' => 'Database server',
|
||||
'Menu:DBServer+' => 'Database server',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Oversigt',
|
||||
'Menu:ConfigManagementOverview+' => 'Oversigt',
|
||||
'Menu:Contact' => 'Kontakt',
|
||||
'Menu:Contact+' => 'Kontakt',
|
||||
'Menu:Contact:Count' => '%1$d kontakter',
|
||||
'Menu:Person' => 'Person',
|
||||
'Menu:Person+' => 'Alle Personer',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle Teams',
|
||||
'Menu:Document' => 'Dokument',
|
||||
'Menu:Document+' => 'Alle Dokumenter',
|
||||
'Menu:Location' => 'Placering',
|
||||
|
||||
'Menu:Location+' => 'Alle Placeringer',
|
||||
'Menu:ConfigManagementCI' => 'Configuration Items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration Items',
|
||||
'Menu:BusinessProcess' => 'Forretnings proces',
|
||||
'Menu:BusinessProcess+' => 'Alle forretnings processer',
|
||||
'Menu:ApplicationSolution' => 'Applikations løsning',
|
||||
'Menu:ApplicationSolution+' => 'Alle Applikations løsninger',
|
||||
'Menu:ConfigManagementSoftware' => 'Anvendelses Management',
|
||||
'Menu:Licence' => 'Licenser',
|
||||
'Menu:Licence+' => 'Alle Licenser',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle Patches',
|
||||
'Menu:ApplicationInstance' => 'Installeret Software',
|
||||
'Menu:ApplicationInstance+' => 'Applikations- og database server',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktur Management',
|
||||
'Menu:Subnet' => 'Subnet',
|
||||
'Menu:Subnet+' => 'Alle Subnet',
|
||||
'Menu:NetworkDevice' => 'Netværksenhed',
|
||||
'Menu:NetworkDevice+' => 'Alle Netværksenheder',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Alle Servere',
|
||||
'Menu:Printer' => 'Printer',
|
||||
'Menu:Printer+' => 'Alle Printere',
|
||||
'Menu:MobilePhone' => 'Mobiltelefon',
|
||||
'Menu:MobilePhone+' => 'Alle Mobiltelefoner',
|
||||
'Menu:PC' => 'PC',
|
||||
'Menu:PC+' => 'Alle PCer',
|
||||
'Menu:NewContact' => 'Ny Kontakt',
|
||||
'Menu:NewContact+' => 'Ny Kontakt',
|
||||
'Menu:SearchContacts' => 'Søg efter kontakter',
|
||||
'Menu:SearchContacts+' => 'Søg efter kontakter',
|
||||
'Menu:NewCI' => 'Ny CI',
|
||||
'Menu:NewCI+' => 'Ny CI',
|
||||
'Menu:SearchCIs' => 'Søg efter CIs',
|
||||
'Menu:SearchCIs+' => 'Søg efter Content Items',
|
||||
'Menu:ConfigManagement:Devices' => 'Enheder',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Alle Enheder',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisering',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Slutbruger enheder',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software og anvendelse',
|
||||
'Menu:ConfigManagement:Misc' => 'Diverse',
|
||||
'Menu:Group' => 'Gruppe af CIs',
|
||||
'Menu:Group+' => 'Gruppe af CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Genveje',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle Kontakter: %1$d',
|
||||
'Menu:Typology' => 'Typologi-Konfiguration',
|
||||
'Menu:Typology+' => '',
|
||||
'Menu:OSVersion' => 'OS versioner',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software Katalog',
|
||||
'Menu:Software+' => '',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Sammenfatning',
|
||||
'Menu:ConfigManagement:Typology' => 'Typologi Konfiguration',
|
||||
'Menu:Location+' => 'Alle Placeringer',
|
||||
'Menu:ConfigManagementCI' => 'Configuration Items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration Items',
|
||||
'Menu:BusinessProcess' => 'Forretnings proces',
|
||||
'Menu:BusinessProcess+' => 'Alle forretnings processer',
|
||||
'Menu:ApplicationSolution' => 'Applikations løsning',
|
||||
'Menu:ApplicationSolution+' => 'Alle Applikations løsninger',
|
||||
'Menu:ConfigManagementSoftware' => 'Anvendelses Management',
|
||||
'Menu:Licence' => 'Licenser',
|
||||
'Menu:Licence+' => 'Alle Licenser',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle Patches',
|
||||
'Menu:ApplicationInstance' => 'Installeret Software',
|
||||
'Menu:ApplicationInstance+' => 'Applikations- og database server',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktur Management',
|
||||
'Menu:Subnet' => 'Subnet',
|
||||
'Menu:Subnet+' => 'Alle Subnet',
|
||||
'Menu:NetworkDevice' => 'Netværksenhed',
|
||||
'Menu:NetworkDevice+' => 'Alle Netværksenheder',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Alle Servere',
|
||||
'Menu:Printer' => 'Printer',
|
||||
'Menu:Printer+' => 'Alle Printere',
|
||||
'Menu:MobilePhone' => 'Mobiltelefon',
|
||||
'Menu:MobilePhone+' => 'Alle Mobiltelefoner',
|
||||
'Menu:PC' => 'PC',
|
||||
'Menu:PC+' => 'Alle PCer',
|
||||
'Menu:NewContact' => 'Ny Kontakt',
|
||||
'Menu:NewContact+' => 'Ny Kontakt',
|
||||
'Menu:SearchContacts' => 'Søg efter kontakter',
|
||||
'Menu:SearchContacts+' => 'Søg efter kontakter',
|
||||
'Menu:NewCI' => 'Ny CI',
|
||||
'Menu:NewCI+' => 'Ny CI',
|
||||
'Menu:SearchCIs' => 'Søg efter CIs',
|
||||
'Menu:SearchCIs+' => 'Søg efter Content Items',
|
||||
'Menu:ConfigManagement:Devices' => 'Enheder',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Alle Enheder',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisering',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Slutbruger enheder',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software og anvendelse',
|
||||
'Menu:ConfigManagement:Misc' => 'Diverse',
|
||||
'Menu:Group' => 'Gruppe af CIs',
|
||||
'Menu:Group+' => 'Gruppe af CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Genveje',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle Kontakter: %1$d',
|
||||
'Menu:Typology' => 'Typologi-Konfiguration',
|
||||
'Menu:Typology+' => '',
|
||||
'Menu:OSVersion' => 'OS versioner',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software Katalog',
|
||||
'Menu:Software+' => '',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Sammenfatning',
|
||||
'Menu:ConfigManagement:Typology' => 'Typologi Konfiguration',
|
||||
|
||||
));
|
||||
|
||||
@@ -1885,18 +1885,18 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Server:baseinfo' => 'Almindelig Informationen',
|
||||
'Server:Date' => 'Dato',
|
||||
'Server:moreinfo' => 'Yderligere Information',
|
||||
'Server:otherinfo' => 'Øvrig Information',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'Almindelig Information',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Underretning',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Brug',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces der har en IP i området: <em>%1$s</em> til <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Ledige IP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Ledige IP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Her er et udtræk af 10 ledige IP adresser',
|
||||
'Class:Document:PreviewTab' => 'Preview~~',
|
||||
'Server:baseinfo' => 'Almindelig Informationen',
|
||||
'Server:Date' => 'Dato',
|
||||
'Server:moreinfo' => 'Yderligere Information',
|
||||
'Server:otherinfo' => 'Øvrig Information',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'Almindelig Information',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Underretning',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Brug',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces der har en IP i området: <em>%1$s</em> til <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Ledige IP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Ledige IP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Her er et udtræk af 10 ledige IP adresser',
|
||||
'Class:Document:PreviewTab' => 'Preview~~',
|
||||
));
|
||||
|
||||
@@ -1798,88 +1798,88 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
//
|
||||
|
||||
Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Menu:DataAdministration' => 'Data Management',
|
||||
'Menu:DataAdministration+' => 'Data Management',
|
||||
'Menu:Catalogs' => 'Kataloge',
|
||||
'Menu:Catalogs+' => 'Datentypen',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV-Import',
|
||||
'Menu:CSVImport+' => 'Massenerstellung oder -aktualisierung',
|
||||
'Menu:Organization' => 'Organisationen',
|
||||
'Menu:Organization+' => 'Alle Organisationen',
|
||||
'Menu:Application' => 'Anwendungen',
|
||||
'Menu:Application+' => 'Alle Anwendungen',
|
||||
'Menu:DBServer' => 'Datenbank-Server',
|
||||
'Menu:DBServer+' => 'Datenbank-Server',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Übersicht',
|
||||
'Menu:ConfigManagementOverview+' => 'Übersicht',
|
||||
'Menu:Contact' => 'Kontakte',
|
||||
'Menu:Contact+' => 'Kontakte',
|
||||
'Menu:Contact:Count' => '%1$d kontakten',
|
||||
'Menu:Person' => 'Personen',
|
||||
'Menu:Person+' => 'Alle Personen',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle Teams',
|
||||
'Menu:Document' => 'Dokumente',
|
||||
'Menu:Document+' => 'Alle Dokumente',
|
||||
'Menu:Location' => 'Standorte',
|
||||
'Menu:DataAdministration' => 'Data Management',
|
||||
'Menu:DataAdministration+' => 'Data Management',
|
||||
'Menu:Catalogs' => 'Kataloge',
|
||||
'Menu:Catalogs+' => 'Datentypen',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV-Import',
|
||||
'Menu:CSVImport+' => 'Massenerstellung oder -aktualisierung',
|
||||
'Menu:Organization' => 'Organisationen',
|
||||
'Menu:Organization+' => 'Alle Organisationen',
|
||||
'Menu:Application' => 'Anwendungen',
|
||||
'Menu:Application+' => 'Alle Anwendungen',
|
||||
'Menu:DBServer' => 'Datenbank-Server',
|
||||
'Menu:DBServer+' => 'Datenbank-Server',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Übersicht',
|
||||
'Menu:ConfigManagementOverview+' => 'Übersicht',
|
||||
'Menu:Contact' => 'Kontakte',
|
||||
'Menu:Contact+' => 'Kontakte',
|
||||
'Menu:Contact:Count' => '%1$d Kontakte',
|
||||
'Menu:Person' => 'Personen',
|
||||
'Menu:Person+' => 'Alle Personen',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle Teams',
|
||||
'Menu:Document' => 'Dokumente',
|
||||
'Menu:Document+' => 'Alle Dokumente',
|
||||
'Menu:Location' => 'Standorte',
|
||||
|
||||
'Menu:Location+' => 'Alle Standorte',
|
||||
'Menu:ConfigManagementCI' => 'Configuration Items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration Items',
|
||||
'Menu:BusinessProcess' => 'Business-Prozesse',
|
||||
'Menu:BusinessProcess+' => 'Alle Business-Prozesse',
|
||||
'Menu:ApplicationSolution' => 'Anwendungslösungen',
|
||||
'Menu:ApplicationSolution+' => 'Alle Anwendungslösungen',
|
||||
'Menu:ConfigManagementSoftware' => 'Anwendungs-Management',
|
||||
'Menu:Licence' => 'Lizenzen',
|
||||
'Menu:Licence+' => 'Alle Lizenzen',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle Patches',
|
||||
'Menu:ApplicationInstance' => 'Installierte Software',
|
||||
'Menu:ApplicationInstance+' => 'Anwendungen und Datenbank-Server',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktur-Management',
|
||||
'Menu:Subnet' => 'Subnetze',
|
||||
'Menu:Subnet+' => 'Alle Subnetze',
|
||||
'Menu:NetworkDevice' => 'Netzwerkgeräte',
|
||||
'Menu:NetworkDevice+' => 'Alle Netzwerkgeräte',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Alle Server',
|
||||
'Menu:Printer' => 'Drucker',
|
||||
'Menu:Printer+' => 'Alle Drucker',
|
||||
'Menu:MobilePhone' => 'Mobiltelefone',
|
||||
'Menu:MobilePhone+' => 'Alle Mobiltelefone',
|
||||
'Menu:PC' => 'Rechner (PC)',
|
||||
'Menu:PC+' => 'Alle Rechner (PC)',
|
||||
'Menu:NewContact' => 'Neuer Kontakt',
|
||||
'Menu:NewContact+' => 'Neuer Kontakt',
|
||||
'Menu:SearchContacts' => 'Nach Kontakten suchen',
|
||||
'Menu:SearchContacts+' => 'Nach Kontakten suchen',
|
||||
'Menu:NewCI' => 'Neues CI',
|
||||
'Menu:NewCI+' => 'Neues CI',
|
||||
'Menu:SearchCIs' => 'Nach CIs suchen',
|
||||
'Menu:SearchCIs+' => 'Nach CIs suchen',
|
||||
'Menu:ConfigManagement:Devices' => 'Geräte',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktur',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisierung',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Endbenutzer-Geräte',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software und Anwendungen',
|
||||
'Menu:ConfigManagement:Misc' => 'Diverses',
|
||||
'Menu:Group' => 'Gruppen von CIs',
|
||||
'Menu:Group+' => 'Gruppen von CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Shortcuts',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle Kontakte: %1$d',
|
||||
'Menu:Typology' => 'Typologie-Konfiguration',
|
||||
'Menu:Typology+' => '',
|
||||
'Menu:OSVersion' => 'OS-Versionen',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Software-Katalog',
|
||||
'Menu:Software+' => '',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Zusammenfassung',
|
||||
'Menu:ConfigManagement:Typology' => 'Typologie-Konfiguration',
|
||||
'Menu:Location+' => 'Alle Standorte',
|
||||
'Menu:ConfigManagementCI' => 'Configuration Items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration Items',
|
||||
'Menu:BusinessProcess' => 'Business-Prozesse',
|
||||
'Menu:BusinessProcess+' => 'Alle Business-Prozesse',
|
||||
'Menu:ApplicationSolution' => 'Anwendungslösungen',
|
||||
'Menu:ApplicationSolution+' => 'Alle Anwendungslösungen',
|
||||
'Menu:ConfigManagementSoftware' => 'Anwendungs-Management',
|
||||
'Menu:Licence' => 'Lizenzen',
|
||||
'Menu:Licence+' => 'Alle Lizenzen',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle Patches',
|
||||
'Menu:ApplicationInstance' => 'Installierte Software',
|
||||
'Menu:ApplicationInstance+' => 'Anwendungen und Datenbank-Server',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktur-Management',
|
||||
'Menu:Subnet' => 'Subnetze',
|
||||
'Menu:Subnet+' => 'Alle Subnetze',
|
||||
'Menu:NetworkDevice' => 'Netzwerkgeräte',
|
||||
'Menu:NetworkDevice+' => 'Alle Netzwerkgeräte',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Alle Server',
|
||||
'Menu:Printer' => 'Drucker',
|
||||
'Menu:Printer+' => 'Alle Drucker',
|
||||
'Menu:MobilePhone' => 'Mobiltelefone',
|
||||
'Menu:MobilePhone+' => 'Alle Mobiltelefone',
|
||||
'Menu:PC' => 'Rechner (PC)',
|
||||
'Menu:PC+' => 'Alle Rechner (PC)',
|
||||
'Menu:NewContact' => 'Neuer Kontakt',
|
||||
'Menu:NewContact+' => 'Neuer Kontakt',
|
||||
'Menu:SearchContacts' => 'Nach Kontakten suchen',
|
||||
'Menu:SearchContacts+' => 'Nach Kontakten suchen',
|
||||
'Menu:NewCI' => 'Neues CI',
|
||||
'Menu:NewCI+' => 'Neues CI',
|
||||
'Menu:SearchCIs' => 'Nach CIs suchen',
|
||||
'Menu:SearchCIs+' => 'Nach CIs suchen',
|
||||
'Menu:ConfigManagement:Devices' => 'Geräte',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktur',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisierung',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Endbenutzer-Geräte',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software und Anwendungen',
|
||||
'Menu:ConfigManagement:Misc' => 'Diverses',
|
||||
'Menu:Group' => 'Gruppen von CIs',
|
||||
'Menu:Group+' => 'Gruppen von CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Shortcuts',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle Kontakte: %1$d',
|
||||
'Menu:Typology' => 'Typologie-Konfiguration',
|
||||
'Menu:Typology+' => '',
|
||||
'Menu:OSVersion' => 'OS-Versionen',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Software-Katalog',
|
||||
'Menu:Software+' => '',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Zusammenfassung',
|
||||
'Menu:ConfigManagement:Typology' => 'Typologie-Konfiguration',
|
||||
|
||||
));
|
||||
|
||||
@@ -1887,18 +1887,18 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Server:baseinfo' => 'Allgemeine Informationen',
|
||||
'Server:Date' => 'Datum',
|
||||
'Server:moreinfo' => 'Weitere Informationen',
|
||||
'Server:otherinfo' => 'Sonstige Informationen',
|
||||
'Server:power' => 'Stromversorgung',
|
||||
'Person:info' => 'Allgemeine Informationen',
|
||||
'Person:personal_info' => 'Persönliche Informationen',
|
||||
'Person:notifiy' => 'Benachrichtigungen',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP-Nutzung',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces mit einer IP in der Range: <em>%1$s</em> bis <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Freie IPs',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Freie IPs: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Hier ist eine Aufstellung von 10 freien IP Adressen',
|
||||
'Class:Document:PreviewTab' => 'Vorschau',
|
||||
'Server:baseinfo' => 'Allgemeine Informationen',
|
||||
'Server:Date' => 'Datum',
|
||||
'Server:moreinfo' => 'Weitere Informationen',
|
||||
'Server:otherinfo' => 'Sonstige Informationen',
|
||||
'Server:power' => 'Stromversorgung',
|
||||
'Person:info' => 'Allgemeine Informationen',
|
||||
'Person:personal_info' => 'Persönliche Informationen',
|
||||
'Person:notifiy' => 'Benachrichtigungen',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP-Nutzung',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces mit einer IP in der Range: <em>%1$s</em> bis <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Freie IPs',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Freie IPs: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Hier ist eine Aufstellung von 10 freien IP Adressen',
|
||||
'Class:Document:PreviewTab' => 'Vorschau',
|
||||
));
|
||||
|
||||
@@ -538,9 +538,9 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:Server/Attribute:osversion_id+' => '',
|
||||
'Class:Server/Attribute:osversion_name' => 'OS version name',
|
||||
'Class:Server/Attribute:osversion_name+' => '',
|
||||
'Class:Server/Attribute:oslicence_id' => 'OS licence',
|
||||
'Class:Server/Attribute:oslicence_id' => 'OS license',
|
||||
'Class:Server/Attribute:oslicence_id+' => '',
|
||||
'Class:Server/Attribute:oslicence_name' => 'OS licence name',
|
||||
'Class:Server/Attribute:oslicence_name' => 'OS license name',
|
||||
'Class:Server/Attribute:oslicence_name+' => '',
|
||||
'Class:Server/Attribute:cpu' => 'CPU',
|
||||
'Class:Server/Attribute:cpu+' => '',
|
||||
@@ -748,9 +748,9 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:SoftwareInstance/Attribute:software_id+' => '',
|
||||
'Class:SoftwareInstance/Attribute:software_name' => 'Software name',
|
||||
'Class:SoftwareInstance/Attribute:software_name+' => '',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_id' => 'Software licence',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_id' => 'Software license',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_id+' => '',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_name' => 'Software licence name',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_name' => 'Software license name',
|
||||
'Class:SoftwareInstance/Attribute:softwarelicence_name+' => '',
|
||||
'Class:SoftwareInstance/Attribute:path' => 'Path',
|
||||
'Class:SoftwareInstance/Attribute:path+' => '',
|
||||
@@ -938,9 +938,9 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:VirtualMachine/Attribute:osversion_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:osversion_name' => 'OS version name',
|
||||
'Class:VirtualMachine/Attribute:osversion_name+' => '',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id' => 'OS licence',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id' => 'OS license',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:oslicence_name' => 'OS licence name',
|
||||
'Class:VirtualMachine/Attribute:oslicence_name' => 'OS license name',
|
||||
'Class:VirtualMachine/Attribute:oslicence_name+' => '',
|
||||
'Class:VirtualMachine/Attribute:cpu' => 'CPU',
|
||||
'Class:VirtualMachine/Attribute:cpu+' => '',
|
||||
@@ -1109,8 +1109,8 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software',
|
||||
'Class:Software/Attribute:softwarepatch_list' => 'Software Patches',
|
||||
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Software Licences',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'All the licences for this software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Software Licenses',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1170,7 +1170,7 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:Licence/Attribute:name' => 'Name',
|
||||
'Class:Licence/Attribute:name+' => '',
|
||||
'Class:Licence/Attribute:documents_list' => 'Documents',
|
||||
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this licence',
|
||||
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this license',
|
||||
'Class:Licence/Attribute:org_id' => 'Organization',
|
||||
'Class:Licence/Attribute:org_id+' => '',
|
||||
'Class:Licence/Attribute:organization_name' => 'Organization name',
|
||||
@@ -1191,7 +1191,7 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:Licence/Attribute:perpetual/Value:no+' => 'no',
|
||||
'Class:Licence/Attribute:perpetual/Value:yes' => 'yes',
|
||||
'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes',
|
||||
'Class:Licence/Attribute:finalclass' => 'Licence sub-class',
|
||||
'Class:Licence/Attribute:finalclass' => 'License sub-class',
|
||||
'Class:Licence/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -1200,16 +1200,16 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:OSLicence' => 'OS Licence',
|
||||
'Class:OSLicence' => 'OS License',
|
||||
'Class:OSLicence+' => '',
|
||||
'Class:OSLicence/Attribute:osversion_id' => 'OS version',
|
||||
'Class:OSLicence/Attribute:osversion_id+' => '',
|
||||
'Class:OSLicence/Attribute:osversion_name' => 'OS version name',
|
||||
'Class:OSLicence/Attribute:osversion_name+' => '',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list' => 'Virtual machines',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this licence is used',
|
||||
'Class:OSLicence/Attribute:servers_list' => 'servers',
|
||||
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this licence is used',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used',
|
||||
'Class:OSLicence/Attribute:servers_list' => 'Servers',
|
||||
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1217,14 +1217,14 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:SoftwareLicence' => 'Software Licence',
|
||||
'Class:SoftwareLicence' => 'Software License',
|
||||
'Class:SoftwareLicence+' => '',
|
||||
'Class:SoftwareLicence/Attribute:software_id' => 'Software',
|
||||
'Class:SoftwareLicence/Attribute:software_id+' => '',
|
||||
'Class:SoftwareLicence/Attribute:software_name' => 'Software name',
|
||||
'Class:SoftwareLicence/Attribute:software_name+' => '',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software instances',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this licence is used',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1232,11 +1232,11 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Class:lnkDocumentToLicence' => 'Link Document / Licence',
|
||||
'Class:lnkDocumentToLicence' => 'Link Document / License',
|
||||
'Class:lnkDocumentToLicence+' => '',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_id' => 'Licence',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_id' => 'License',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_id+' => '',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_name' => 'Licence name',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_name' => 'License name',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_name+' => '',
|
||||
'Class:lnkDocumentToLicence/Attribute:document_id' => 'Document',
|
||||
'Class:lnkDocumentToLicence/Attribute:document_id+' => '',
|
||||
@@ -1802,88 +1802,88 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Menu:DataAdministration' => 'Data administration',
|
||||
'Menu:DataAdministration+' => 'Data administration',
|
||||
'Menu:Catalogs' => 'Catalogs',
|
||||
'Menu:Catalogs+' => 'Data types',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => 'Bulk creation or update',
|
||||
'Menu:Organization' => 'Organizations',
|
||||
'Menu:Organization+' => 'All organizations',
|
||||
'Menu:Application' => 'Applications',
|
||||
'Menu:Application+' => 'All applications',
|
||||
'Menu:DBServer' => 'Database servers',
|
||||
'Menu:DBServer+' => 'Database servers',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Overview',
|
||||
'Menu:ConfigManagementOverview+' => 'Overview',
|
||||
'Menu:Contact' => 'Contacts',
|
||||
'Menu:Contact+' => 'Contacts',
|
||||
'Menu:Contact:Count' => '%1$d contacts',
|
||||
'Menu:Person' => 'Persons',
|
||||
'Menu:Person+' => 'All persons',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'All teams',
|
||||
'Menu:Document' => 'Documents',
|
||||
'Menu:Document+' => 'All documents',
|
||||
'Menu:Location' => 'Locations',
|
||||
'Menu:DataAdministration' => 'Data administration',
|
||||
'Menu:DataAdministration+' => 'Data administration',
|
||||
'Menu:Catalogs' => 'Catalogs',
|
||||
'Menu:Catalogs+' => 'Data types',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => 'Bulk creation or update',
|
||||
'Menu:Organization' => 'Organizations',
|
||||
'Menu:Organization+' => 'All organizations',
|
||||
'Menu:Application' => 'Applications',
|
||||
'Menu:Application+' => 'All applications',
|
||||
'Menu:DBServer' => 'Database servers',
|
||||
'Menu:DBServer+' => 'Database servers',
|
||||
'Menu:ConfigManagement' => 'Configuration Management',
|
||||
'Menu:ConfigManagement+' => 'Configuration Management',
|
||||
'Menu:ConfigManagementOverview' => 'Overview',
|
||||
'Menu:ConfigManagementOverview+' => 'Overview',
|
||||
'Menu:Contact' => 'Contacts',
|
||||
'Menu:Contact+' => 'Contacts',
|
||||
'Menu:Contact:Count' => '%1$d contacts',
|
||||
'Menu:Person' => 'Persons',
|
||||
'Menu:Person+' => 'All persons',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'All teams',
|
||||
'Menu:Document' => 'Documents',
|
||||
'Menu:Document+' => 'All documents',
|
||||
'Menu:Location' => 'Locations',
|
||||
|
||||
'Menu:Location+' => 'All locations',
|
||||
'Menu:ConfigManagementCI' => 'Configuration items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration items',
|
||||
'Menu:BusinessProcess' => 'Business processes',
|
||||
'Menu:BusinessProcess+' => 'All business processes',
|
||||
'Menu:ApplicationSolution' => 'Application solutions',
|
||||
'Menu:ApplicationSolution+' => 'All application solutions',
|
||||
'Menu:ConfigManagementSoftware' => 'Application management',
|
||||
'Menu:Licence' => 'Licences',
|
||||
'Menu:Licence+' => 'All licences',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'All patches',
|
||||
'Menu:ApplicationInstance' => 'Installed software',
|
||||
'Menu:ApplicationInstance+' => 'Applications and database servers',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastructure management',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'All subnets',
|
||||
'Menu:NetworkDevice' => 'Network devices',
|
||||
'Menu:NetworkDevice+' => 'All network devices',
|
||||
'Menu:Server' => 'Servers',
|
||||
'Menu:Server+' => 'All servers',
|
||||
'Menu:Printer' => 'Printers',
|
||||
'Menu:Printer+' => 'All printers',
|
||||
'Menu:MobilePhone' => 'Mobile phones',
|
||||
'Menu:MobilePhone+' => 'All mobile phones',
|
||||
'Menu:PC' => 'Personal computers',
|
||||
'Menu:PC+' => 'All Personal computers',
|
||||
'Menu:NewContact' => 'New contact',
|
||||
'Menu:NewContact+' => 'New contact',
|
||||
'Menu:SearchContacts' => 'Search for contacts',
|
||||
'Menu:SearchContacts+' => 'Search for contacts',
|
||||
'Menu:NewCI' => 'New CI',
|
||||
'Menu:NewCI+' => 'New CI',
|
||||
'Menu:SearchCIs' => 'Search for CIs',
|
||||
'Menu:SearchCIs+' => 'Search for CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Devices',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructure',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software and applications',
|
||||
'Menu:ConfigManagement:Misc' => 'Miscellaneous',
|
||||
'Menu:Group' => 'Groups of CIs',
|
||||
'Menu:Group+' => 'Groups of CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Shortcuts',
|
||||
'Menu:ConfigManagement:AllContacts' => 'All contacts: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration',
|
||||
'Menu:Typology+' => 'Typology configuration',
|
||||
'Menu:OSVersion' => 'OS versions',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Software catalog',
|
||||
'Menu:Software+' => 'Software catalog',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration',
|
||||
'Menu:Location+' => 'All locations',
|
||||
'Menu:ConfigManagementCI' => 'Configuration items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuration items',
|
||||
'Menu:BusinessProcess' => 'Business processes',
|
||||
'Menu:BusinessProcess+' => 'All business processes',
|
||||
'Menu:ApplicationSolution' => 'Application solutions',
|
||||
'Menu:ApplicationSolution+' => 'All application solutions',
|
||||
'Menu:ConfigManagementSoftware' => 'Application management',
|
||||
'Menu:Licence' => 'Licenses',
|
||||
'Menu:Licence+' => 'All licenses',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'All patches',
|
||||
'Menu:ApplicationInstance' => 'Installed software',
|
||||
'Menu:ApplicationInstance+' => 'Applications and database servers',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastructure management',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'All subnets',
|
||||
'Menu:NetworkDevice' => 'Network devices',
|
||||
'Menu:NetworkDevice+' => 'All network devices',
|
||||
'Menu:Server' => 'Servers',
|
||||
'Menu:Server+' => 'All servers',
|
||||
'Menu:Printer' => 'Printers',
|
||||
'Menu:Printer+' => 'All printers',
|
||||
'Menu:MobilePhone' => 'Mobile phones',
|
||||
'Menu:MobilePhone+' => 'All mobile phones',
|
||||
'Menu:PC' => 'Personal computers',
|
||||
'Menu:PC+' => 'All Personal computers',
|
||||
'Menu:NewContact' => 'New contact',
|
||||
'Menu:NewContact+' => 'New contact',
|
||||
'Menu:SearchContacts' => 'Search for contacts',
|
||||
'Menu:SearchContacts+' => 'Search for contacts',
|
||||
'Menu:NewCI' => 'New CI',
|
||||
'Menu:NewCI+' => 'New CI',
|
||||
'Menu:SearchCIs' => 'Search for CIs',
|
||||
'Menu:SearchCIs+' => 'Search for CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Devices',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructure',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software and applications',
|
||||
'Menu:ConfigManagement:Misc' => 'Miscellaneous',
|
||||
'Menu:Group' => 'Groups of CIs',
|
||||
'Menu:Group+' => 'Groups of CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Shortcuts',
|
||||
'Menu:ConfigManagement:AllContacts' => 'All contacts: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration',
|
||||
'Menu:Typology+' => 'Typology configuration',
|
||||
'Menu:OSVersion' => 'OS versions',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Software catalog',
|
||||
'Menu:Software+' => 'Software catalog',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration',
|
||||
|
||||
));
|
||||
|
||||
@@ -1891,18 +1891,18 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Server:baseinfo' => 'General information',
|
||||
'Server:Date' => 'Dates',
|
||||
'Server:moreinfo' => 'More information',
|
||||
'Server:otherinfo' => 'Other information',
|
||||
'Server:power' => 'Power supply',
|
||||
'Person:info' => 'General information',
|
||||
'Person:personal_info' => 'Personal information',
|
||||
'Person:notifiy' => 'Notification',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Usage',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces having an IP in the range: <em>%1$s</em> to <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Free IPs',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Free IPs: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Here is an extract of 10 free IP addresses',
|
||||
'Class:Document:PreviewTab' => 'Preview',
|
||||
'Server:baseinfo' => 'General information',
|
||||
'Server:Date' => 'Dates',
|
||||
'Server:moreinfo' => 'More information',
|
||||
'Server:otherinfo' => 'Other information',
|
||||
'Server:power' => 'Power supply',
|
||||
'Person:info' => 'General information',
|
||||
'Person:personal_info' => 'Personal information',
|
||||
'Person:notifiy' => 'Notification',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Usage',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces having an IP in the range: <em>%1$s</em> to <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Free IPs',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Free IPs: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Here is an extract of 10 free IP addresses',
|
||||
'Class:Document:PreviewTab' => 'Preview',
|
||||
));
|
||||
|
||||
@@ -1802,88 +1802,88 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
//
|
||||
|
||||
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
'Menu:DataAdministration' => 'Administración de Datos',
|
||||
'Menu:DataAdministration+' => 'Administración de Datos',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos de Datos',
|
||||
'Menu:Audit' => 'Auditoría',
|
||||
'Menu:Audit+' => 'Auditoría',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Creación o Actualización Másiva',
|
||||
'Menu:Organization' => 'Organizaciones',
|
||||
'Menu:Organization+' => 'Organizaciones',
|
||||
'Menu:Application' => 'Aplicaciones',
|
||||
'Menu:Application+' => 'Aplicaciones/Programas',
|
||||
'Menu:DBServer' => 'Servidores de Base de Datos',
|
||||
'Menu:DBServer+' => 'Servidores de Base de Datos',
|
||||
'Menu:ConfigManagement' => 'Administración de la Configuración',
|
||||
'Menu:ConfigManagement+' => 'Administración de la Configuración',
|
||||
'Menu:ConfigManagementOverview' => 'Resumen de Infraestructura',
|
||||
'Menu:ConfigManagementOverview+' => 'Resumen de Infraestructura',
|
||||
'Menu:Contact' => 'Contactos',
|
||||
'Menu:Contact+' => 'Contactos',
|
||||
'Menu:Contact:Count' => '%1$d Contactos',
|
||||
'Menu:Person' => 'Personas',
|
||||
'Menu:Person+' => 'Personas',
|
||||
'Menu:Team' => 'Grupos',
|
||||
'Menu:Team+' => 'Grupos de Trabajo',
|
||||
'Menu:Document' => 'Documentos',
|
||||
'Menu:Document+' => 'Documentos',
|
||||
'Menu:Location' => 'Localidades',
|
||||
'Menu:DataAdministration' => 'Administración de Datos',
|
||||
'Menu:DataAdministration+' => 'Administración de Datos',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos de Datos',
|
||||
'Menu:Audit' => 'Auditoría',
|
||||
'Menu:Audit+' => 'Auditoría',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Creación o Actualización Másiva',
|
||||
'Menu:Organization' => 'Organizaciones',
|
||||
'Menu:Organization+' => 'Organizaciones',
|
||||
'Menu:Application' => 'Aplicaciones',
|
||||
'Menu:Application+' => 'Aplicaciones/Programas',
|
||||
'Menu:DBServer' => 'Servidores de Base de Datos',
|
||||
'Menu:DBServer+' => 'Servidores de Base de Datos',
|
||||
'Menu:ConfigManagement' => 'Administración de la Configuración',
|
||||
'Menu:ConfigManagement+' => 'Administración de la Configuración',
|
||||
'Menu:ConfigManagementOverview' => 'Resumen de Infraestructura',
|
||||
'Menu:ConfigManagementOverview+' => 'Resumen de Infraestructura',
|
||||
'Menu:Contact' => 'Contactos',
|
||||
'Menu:Contact+' => 'Contactos',
|
||||
'Menu:Contact:Count' => '%1$d Contactos',
|
||||
'Menu:Person' => 'Personas',
|
||||
'Menu:Person+' => 'Personas',
|
||||
'Menu:Team' => 'Grupos',
|
||||
'Menu:Team+' => 'Grupos de Trabajo',
|
||||
'Menu:Document' => 'Documentos',
|
||||
'Menu:Document+' => 'Documentos',
|
||||
'Menu:Location' => 'Localidades',
|
||||
|
||||
'Menu:Location+' => 'Localidades',
|
||||
'Menu:ConfigManagementCI' => 'Elementos de Configuración',
|
||||
'Menu:ConfigManagementCI+' => 'Elementos de Confirguración',
|
||||
'Menu:BusinessProcess' => 'Proceso de Negocio',
|
||||
'Menu:BusinessProcess+' => 'Proceso de Negocios',
|
||||
'Menu:ApplicationSolution' => 'Solución Aplicativa',
|
||||
'Menu:ApplicationSolution+' => 'Solución Aplicativa',
|
||||
'Menu:ConfigManagementSoftware' => 'Administración de Aplicaciones',
|
||||
'Menu:Licence' => 'Licencias',
|
||||
'Menu:Licence+' => 'Licencias',
|
||||
'Menu:Patch' => 'Parches',
|
||||
'Menu:Patch+' => 'Parches',
|
||||
'Menu:ApplicationInstance' => 'Software Instalado',
|
||||
'Menu:ApplicationInstance+' => 'Aplicaciones y Servidores de Base de Datos',
|
||||
'Menu:ConfigManagementHardware' => 'Administración de Infraestructura',
|
||||
'Menu:Subnet' => 'SubRedes',
|
||||
'Menu:Subnet+' => 'SubRedes',
|
||||
'Menu:NetworkDevice' => 'Dispositivos de Red',
|
||||
'Menu:NetworkDevice+' => 'Dispositivos de Red',
|
||||
'Menu:Server' => 'Servidores',
|
||||
'Menu:Server+' => 'Servidores',
|
||||
'Menu:Printer' => 'Impresoras',
|
||||
'Menu:Printer+' => 'Impresoras',
|
||||
'Menu:MobilePhone' => 'Teléfonos Móviles',
|
||||
'Menu:MobilePhone+' => 'Teléfonos Móviles',
|
||||
'Menu:PC' => 'PCs y Laptops',
|
||||
'Menu:PC+' => 'PCs y Laptops',
|
||||
'Menu:NewContact' => 'Nuevo Contacto',
|
||||
'Menu:NewContact+' => 'Nuevo Contacto',
|
||||
'Menu:SearchContacts' => 'Búsqueda de Contactos',
|
||||
'Menu:SearchContacts+' => 'Búsqueda de Contactos',
|
||||
'Menu:NewCI' => 'Nuevo EC',
|
||||
'Menu:NewCI+' => 'Nuevo EC',
|
||||
'Menu:SearchCIs' => 'Búsqueda de ECs',
|
||||
'Menu:SearchCIs+' => 'Búsqueda de ECs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositivos',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infraestructura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualización',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Dispositivos de Usuario Final',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software y Aplicaciones',
|
||||
'Menu:ConfigManagement:Misc' => 'Misceláneo',
|
||||
'Menu:Group' => 'Grupos de ECs',
|
||||
'Menu:Group+' => 'Grupos de ECs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Acceso Rápido',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Contactos: %1$d',
|
||||
'Menu:Typology' => 'Configuración de Tipos',
|
||||
'Menu:Typology+' => 'Configuración de Tipos',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Catálogo de Software',
|
||||
'Menu:Software+' => 'Catálogo de Software',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Resumen',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuración de Tipos',
|
||||
'Menu:Location+' => 'Localidades',
|
||||
'Menu:ConfigManagementCI' => 'Elementos de Configuración',
|
||||
'Menu:ConfigManagementCI+' => 'Elementos de Confirguración',
|
||||
'Menu:BusinessProcess' => 'Proceso de Negocio',
|
||||
'Menu:BusinessProcess+' => 'Proceso de Negocios',
|
||||
'Menu:ApplicationSolution' => 'Solución Aplicativa',
|
||||
'Menu:ApplicationSolution+' => 'Solución Aplicativa',
|
||||
'Menu:ConfigManagementSoftware' => 'Administración de Aplicaciones',
|
||||
'Menu:Licence' => 'Licencias',
|
||||
'Menu:Licence+' => 'Licencias',
|
||||
'Menu:Patch' => 'Parches',
|
||||
'Menu:Patch+' => 'Parches',
|
||||
'Menu:ApplicationInstance' => 'Software Instalado',
|
||||
'Menu:ApplicationInstance+' => 'Aplicaciones y Servidores de Base de Datos',
|
||||
'Menu:ConfigManagementHardware' => 'Administración de Infraestructura',
|
||||
'Menu:Subnet' => 'SubRedes',
|
||||
'Menu:Subnet+' => 'SubRedes',
|
||||
'Menu:NetworkDevice' => 'Dispositivos de Red',
|
||||
'Menu:NetworkDevice+' => 'Dispositivos de Red',
|
||||
'Menu:Server' => 'Servidores',
|
||||
'Menu:Server+' => 'Servidores',
|
||||
'Menu:Printer' => 'Impresoras',
|
||||
'Menu:Printer+' => 'Impresoras',
|
||||
'Menu:MobilePhone' => 'Teléfonos Móviles',
|
||||
'Menu:MobilePhone+' => 'Teléfonos Móviles',
|
||||
'Menu:PC' => 'PCs y Laptops',
|
||||
'Menu:PC+' => 'PCs y Laptops',
|
||||
'Menu:NewContact' => 'Nuevo Contacto',
|
||||
'Menu:NewContact+' => 'Nuevo Contacto',
|
||||
'Menu:SearchContacts' => 'Búsqueda de Contactos',
|
||||
'Menu:SearchContacts+' => 'Búsqueda de Contactos',
|
||||
'Menu:NewCI' => 'Nuevo EC',
|
||||
'Menu:NewCI+' => 'Nuevo EC',
|
||||
'Menu:SearchCIs' => 'Búsqueda de ECs',
|
||||
'Menu:SearchCIs+' => 'Búsqueda de ECs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositivos',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infraestructura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualización',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Dispositivos de Usuario Final',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software y Aplicaciones',
|
||||
'Menu:ConfigManagement:Misc' => 'Misceláneo',
|
||||
'Menu:Group' => 'Grupos de ECs',
|
||||
'Menu:Group+' => 'Grupos de ECs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Acceso Rápido',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Contactos: %1$d',
|
||||
'Menu:Typology' => 'Configuración de Tipos',
|
||||
'Menu:Typology+' => 'Configuración de Tipos',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Catálogo de Software',
|
||||
'Menu:Software+' => 'Catálogo de Software',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Resumen',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuración de Tipos',
|
||||
|
||||
));
|
||||
|
||||
@@ -1891,18 +1891,18 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
'Server:baseinfo' => 'Información General',
|
||||
'Server:Date' => 'Fecha',
|
||||
'Server:moreinfo' => 'Más Información',
|
||||
'Server:otherinfo' => 'Otra Información',
|
||||
'Server:power' => 'Fuente de Poder',
|
||||
'Person:info' => 'Información General',
|
||||
'Person:personal_info' => 'Información Personal',
|
||||
'Person:notifiy' => 'Notificación',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Uso de IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfases con IP en el rango: <em>%1$s</em> a <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IPs Libres',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IPs Libres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Aquí está un extracto de 10 direcciones IP Libres',
|
||||
'Class:Document:PreviewTab' => 'Vista Previa',
|
||||
'Server:baseinfo' => 'Información General',
|
||||
'Server:Date' => 'Fecha',
|
||||
'Server:moreinfo' => 'Más Información',
|
||||
'Server:otherinfo' => 'Otra Información',
|
||||
'Server:power' => 'Fuente de Poder',
|
||||
'Person:info' => 'Información General',
|
||||
'Person:personal_info' => 'Información Personal',
|
||||
'Person:notifiy' => 'Notificación',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Uso de IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfases con IP en el rango: <em>%1$s</em> a <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IPs Libres',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IPs Libres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Aquí está un extracto de 10 direcciones IP Libres',
|
||||
'Class:Document:PreviewTab' => 'Vista Previa',
|
||||
));
|
||||
|
||||
@@ -1799,88 +1799,88 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
//
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Menu:DataAdministration' => 'Administration des données',
|
||||
'Menu:DataAdministration+' => 'Administration des données',
|
||||
'Menu:Catalogs' => 'Catalogues',
|
||||
'Menu:Catalogs+' => 'Types de données',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Import CSV',
|
||||
'Menu:CSVImport+' => 'Import ou mise à jour en masse',
|
||||
'Menu:Organization' => 'Organisations',
|
||||
'Menu:Organization+' => 'Toutes les organisations',
|
||||
'Menu:Application' => 'Logiciels',
|
||||
'Menu:Application+' => 'Tous les logiciels',
|
||||
'Menu:DBServer' => 'Serveur de base de données',
|
||||
'Menu:DBServer+' => '',
|
||||
'Menu:ConfigManagement' => 'Gestion des configurations',
|
||||
'Menu:ConfigManagement+' => 'Gestion des configurations',
|
||||
'Menu:ConfigManagementOverview' => 'Tableaux de bord',
|
||||
'Menu:ConfigManagementOverview+' => 'Tableaux de bord',
|
||||
'Menu:Contact' => 'Contacts',
|
||||
'Menu:Contact+' => 'Contacts',
|
||||
'Menu:Contact:Count' => '%1$d contacts',
|
||||
'Menu:Person' => 'Personnes',
|
||||
'Menu:Person+' => 'Toutes les personnes',
|
||||
'Menu:Team' => 'Equipes',
|
||||
'Menu:Team+' => 'Toutes les équipes',
|
||||
'Menu:Document' => 'Documents',
|
||||
'Menu:Document+' => 'Tous les documents',
|
||||
'Menu:Location' => 'Lieux',
|
||||
'Menu:DataAdministration' => 'Administration des données',
|
||||
'Menu:DataAdministration+' => 'Administration des données',
|
||||
'Menu:Catalogs' => 'Catalogues',
|
||||
'Menu:Catalogs+' => 'Types de données',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Import CSV',
|
||||
'Menu:CSVImport+' => 'Import ou mise à jour en masse',
|
||||
'Menu:Organization' => 'Organisations',
|
||||
'Menu:Organization+' => 'Toutes les organisations',
|
||||
'Menu:Application' => 'Logiciels',
|
||||
'Menu:Application+' => 'Tous les logiciels',
|
||||
'Menu:DBServer' => 'Serveur de base de données',
|
||||
'Menu:DBServer+' => '',
|
||||
'Menu:ConfigManagement' => 'Gestion des configurations',
|
||||
'Menu:ConfigManagement+' => 'Gestion des configurations',
|
||||
'Menu:ConfigManagementOverview' => 'Tableaux de bord',
|
||||
'Menu:ConfigManagementOverview+' => 'Tableaux de bord',
|
||||
'Menu:Contact' => 'Contacts',
|
||||
'Menu:Contact+' => 'Contacts',
|
||||
'Menu:Contact:Count' => '%1$d contacts',
|
||||
'Menu:Person' => 'Personnes',
|
||||
'Menu:Person+' => 'Toutes les personnes',
|
||||
'Menu:Team' => 'Equipes',
|
||||
'Menu:Team+' => 'Toutes les équipes',
|
||||
'Menu:Document' => 'Documents',
|
||||
'Menu:Document+' => 'Tous les documents',
|
||||
'Menu:Location' => 'Lieux',
|
||||
|
||||
'Menu:Location+' => 'Tous les lieux',
|
||||
'Menu:ConfigManagementCI' => 'CIs',
|
||||
'Menu:ConfigManagementCI+' => 'CIs',
|
||||
'Menu:BusinessProcess' => 'Processus métier',
|
||||
'Menu:BusinessProcess+' => 'Tous les processus métiers',
|
||||
'Menu:ApplicationSolution' => 'Solutions applicatives',
|
||||
'Menu:ApplicationSolution+' => 'Toutes les solutions applicatives',
|
||||
'Menu:ConfigManagementSoftware' => 'Gestion des logiciels',
|
||||
'Menu:Licence' => 'Licences',
|
||||
'Menu:Licence+' => 'Toutes les licences',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Tous les patches',
|
||||
'Menu:ApplicationInstance' => 'Instances logiciels',
|
||||
'Menu:ApplicationInstance+' => 'Logiciels installés',
|
||||
'Menu:ConfigManagementHardware' => 'Gestion des infrastructures',
|
||||
'Menu:Subnet' => 'Sous réseaux',
|
||||
'Menu:Subnet+' => '',
|
||||
'Menu:NetworkDevice' => 'Equipements réseaux',
|
||||
'Menu:NetworkDevice+' => 'Tous les équipements réseaux',
|
||||
'Menu:Server' => 'Serveurs',
|
||||
'Menu:Server+' => '',
|
||||
'Menu:Printer' => 'Imprimantes',
|
||||
'Menu:Printer+' => 'Toutes les imprimantes',
|
||||
'Menu:MobilePhone' => 'Téléphones portables',
|
||||
'Menu:MobilePhone+' => 'Tous les téléphones portables',
|
||||
'Menu:PC' => 'PCs',
|
||||
'Menu:PC+' => 'Tous les PCs',
|
||||
'Menu:NewContact' => 'Nouveau contact',
|
||||
'Menu:NewContact+' => 'Nouveau contact',
|
||||
'Menu:SearchContacts' => 'Rechercher des contacts',
|
||||
'Menu:SearchContacts+' => 'Rechercher des contacts',
|
||||
'Menu:NewCI' => 'Nouveau CI',
|
||||
'Menu:NewCI+' => 'Nouveau CI',
|
||||
'Menu:SearchCIs' => 'Rechercher des CIs',
|
||||
'Menu:SearchCIs+' => 'Rechercher des CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Equipements',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructures',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisation',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Périphériques utilisateurs',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Logiciels et applications',
|
||||
'Menu:ConfigManagement:Misc' => 'Divers',
|
||||
'Menu:Group' => 'Groupe de CIs',
|
||||
'Menu:Group+' => 'Groupe de CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Raccourcis',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tous les contacts: %1$d',
|
||||
'Menu:Typology' => 'Typologie configuration',
|
||||
'Menu:Typology+' => 'Typologie configuration',
|
||||
'Menu:OSVersion' => 'Versions d\'OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Catalogue des logiciels de références',
|
||||
'Menu:Software+' => 'Catalogue des logiciels de références',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Résumé',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuration des typologies',
|
||||
'Menu:Location+' => 'Tous les lieux',
|
||||
'Menu:ConfigManagementCI' => 'CIs',
|
||||
'Menu:ConfigManagementCI+' => 'CIs',
|
||||
'Menu:BusinessProcess' => 'Processus métier',
|
||||
'Menu:BusinessProcess+' => 'Tous les processus métiers',
|
||||
'Menu:ApplicationSolution' => 'Solutions applicatives',
|
||||
'Menu:ApplicationSolution+' => 'Toutes les solutions applicatives',
|
||||
'Menu:ConfigManagementSoftware' => 'Gestion des logiciels',
|
||||
'Menu:Licence' => 'Licences',
|
||||
'Menu:Licence+' => 'Toutes les licences',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Tous les patches',
|
||||
'Menu:ApplicationInstance' => 'Instances logiciels',
|
||||
'Menu:ApplicationInstance+' => 'Logiciels installés',
|
||||
'Menu:ConfigManagementHardware' => 'Gestion des infrastructures',
|
||||
'Menu:Subnet' => 'Sous réseaux',
|
||||
'Menu:Subnet+' => '',
|
||||
'Menu:NetworkDevice' => 'Equipements réseaux',
|
||||
'Menu:NetworkDevice+' => 'Tous les équipements réseaux',
|
||||
'Menu:Server' => 'Serveurs',
|
||||
'Menu:Server+' => '',
|
||||
'Menu:Printer' => 'Imprimantes',
|
||||
'Menu:Printer+' => 'Toutes les imprimantes',
|
||||
'Menu:MobilePhone' => 'Téléphones portables',
|
||||
'Menu:MobilePhone+' => 'Tous les téléphones portables',
|
||||
'Menu:PC' => 'PCs',
|
||||
'Menu:PC+' => 'Tous les PCs',
|
||||
'Menu:NewContact' => 'Nouveau contact',
|
||||
'Menu:NewContact+' => 'Nouveau contact',
|
||||
'Menu:SearchContacts' => 'Rechercher des contacts',
|
||||
'Menu:SearchContacts+' => 'Rechercher des contacts',
|
||||
'Menu:NewCI' => 'Nouveau CI',
|
||||
'Menu:NewCI+' => 'Nouveau CI',
|
||||
'Menu:SearchCIs' => 'Rechercher des CIs',
|
||||
'Menu:SearchCIs+' => 'Rechercher des CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Equipements',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructures',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisation',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Périphériques utilisateurs',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Logiciels et applications',
|
||||
'Menu:ConfigManagement:Misc' => 'Divers',
|
||||
'Menu:Group' => 'Groupe de CIs',
|
||||
'Menu:Group+' => 'Groupe de CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Raccourcis',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tous les contacts: %1$d',
|
||||
'Menu:Typology' => 'Typologie configuration',
|
||||
'Menu:Typology+' => 'Typologie configuration',
|
||||
'Menu:OSVersion' => 'Versions d\'OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Catalogue des logiciels de références',
|
||||
'Menu:Software+' => 'Catalogue des logiciels de références',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Résumé',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuration des typologies',
|
||||
|
||||
));
|
||||
|
||||
@@ -1888,18 +1888,18 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Server:baseinfo' => 'Informations générales',
|
||||
'Server:Date' => 'Dates',
|
||||
'Server:moreinfo' => 'Informations complémentaires',
|
||||
'Server:otherinfo' => 'Autres informations',
|
||||
'Server:power' => 'Alimentation électrique',
|
||||
'Person:info' => 'Informations générales',
|
||||
'Person:personal_info' => 'Informations personnelles',
|
||||
'Person:notifiy' => 'Notification',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP utilisées',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces ayant une IP dans la plage: <em>%1$s</em> à <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IP disponibles',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IP disponibles: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Voici un échantillon de dix addresses IP disponibles',
|
||||
'Class:Document:PreviewTab' => 'Aperçu',
|
||||
'Server:baseinfo' => 'Informations générales',
|
||||
'Server:Date' => 'Dates',
|
||||
'Server:moreinfo' => 'Informations complémentaires',
|
||||
'Server:otherinfo' => 'Autres informations',
|
||||
'Server:power' => 'Alimentation électrique',
|
||||
'Person:info' => 'Informations générales',
|
||||
'Person:personal_info' => 'Informations personnelles',
|
||||
'Person:notifiy' => 'Notification',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP utilisées',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces ayant une IP dans la plage: <em>%1$s</em> à <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IP disponibles',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IP disponibles: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Voici un échantillon de dix addresses IP disponibles',
|
||||
'Class:Document:PreviewTab' => 'Aperçu',
|
||||
));
|
||||
|
||||
@@ -1795,88 +1795,88 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
//
|
||||
|
||||
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Menu:DataAdministration' => 'Adat adminisztráció',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Katalógusok',
|
||||
'Menu:Catalogs+' => '',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => '',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Szervezet',
|
||||
'Menu:Organization+' => '',
|
||||
'Menu:Application' => 'Alkalmazások',
|
||||
'Menu:Application+' => '',
|
||||
'Menu:DBServer' => 'Adatbázis szerverek',
|
||||
'Menu:DBServer+' => '',
|
||||
'Menu:ConfigManagement' => 'Konfiguráció menedzsment',
|
||||
'Menu:ConfigManagement+' => '',
|
||||
'Menu:ConfigManagementOverview' => 'Áttekintő',
|
||||
'Menu:ConfigManagementOverview+' => '',
|
||||
'Menu:Contact' => 'Kapcsolattartók',
|
||||
'Menu:Contact+' => '',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => 'Személyek',
|
||||
'Menu:Person+' => '',
|
||||
'Menu:Team' => 'Csoportok',
|
||||
'Menu:Team+' => '',
|
||||
'Menu:Document' => 'Dokumentumok',
|
||||
'Menu:Document+' => '',
|
||||
'Menu:Location' => 'Helyszínek',
|
||||
'Menu:DataAdministration' => 'Adat adminisztráció',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Katalógusok',
|
||||
'Menu:Catalogs+' => '',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => '',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Szervezet',
|
||||
'Menu:Organization+' => '',
|
||||
'Menu:Application' => 'Alkalmazások',
|
||||
'Menu:Application+' => '',
|
||||
'Menu:DBServer' => 'Adatbázis szerverek',
|
||||
'Menu:DBServer+' => '',
|
||||
'Menu:ConfigManagement' => 'Konfiguráció menedzsment',
|
||||
'Menu:ConfigManagement+' => '',
|
||||
'Menu:ConfigManagementOverview' => 'Áttekintő',
|
||||
'Menu:ConfigManagementOverview+' => '',
|
||||
'Menu:Contact' => 'Kapcsolattartók',
|
||||
'Menu:Contact+' => '',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => 'Személyek',
|
||||
'Menu:Person+' => '',
|
||||
'Menu:Team' => 'Csoportok',
|
||||
'Menu:Team+' => '',
|
||||
'Menu:Document' => 'Dokumentumok',
|
||||
'Menu:Document+' => '',
|
||||
'Menu:Location' => 'Helyszínek',
|
||||
|
||||
'Menu:Location+' => '',
|
||||
'Menu:ConfigManagementCI' => 'Konfigurációs elemek (CI)',
|
||||
'Menu:ConfigManagementCI+' => '',
|
||||
'Menu:BusinessProcess' => 'Üzleti folyamatok',
|
||||
'Menu:BusinessProcess+' => '',
|
||||
'Menu:ApplicationSolution' => 'Egyedi alkalmazások',
|
||||
'Menu:ApplicationSolution+' => '',
|
||||
'Menu:ConfigManagementSoftware' => 'Alkalmazás menedzsment',
|
||||
'Menu:Licence' => 'Liszenszek',
|
||||
'Menu:Licence+' => '',
|
||||
'Menu:Patch' => 'Frissítések',
|
||||
'Menu:Patch+' => '',
|
||||
'Menu:ApplicationInstance' => 'Telepített szoftverek',
|
||||
'Menu:ApplicationInstance+' => '',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktúra menedzsment',
|
||||
'Menu:Subnet' => 'Alhálozatok',
|
||||
'Menu:Subnet+' => '',
|
||||
'Menu:NetworkDevice' => 'Hálózati eszközök',
|
||||
'Menu:NetworkDevice+' => '',
|
||||
'Menu:Server' => 'Szerverek',
|
||||
'Menu:Server+' => '',
|
||||
'Menu:Printer' => 'Nyomtatók',
|
||||
'Menu:Printer+' => '',
|
||||
'Menu:MobilePhone' => 'Mobil telefonok',
|
||||
'Menu:MobilePhone+' => '',
|
||||
'Menu:PC' => 'Személyi számítógépek',
|
||||
'Menu:PC+' => '',
|
||||
'Menu:NewContact' => 'Új kapcsolattartó',
|
||||
'Menu:NewContact+' => '',
|
||||
'Menu:SearchContacts' => 'Kapcsolattartó keresés',
|
||||
'Menu:SearchContacts+' => '',
|
||||
'Menu:NewCI' => 'Új CI',
|
||||
'Menu:NewCI+' => '',
|
||||
'Menu:SearchCIs' => 'CI keresés',
|
||||
'Menu:SearchCIs+' => '',
|
||||
'Menu:ConfigManagement:Devices' => 'Eszközök',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktúra',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Szoftverek és egyedi alkalmazások',
|
||||
'Menu:ConfigManagement:Misc' => 'Egyéb',
|
||||
'Menu:Group' => 'CI csoportok',
|
||||
'Menu:Group+' => '',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Gyorsmenük',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Összes kapcsolattartó: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
'Menu:Location+' => '',
|
||||
'Menu:ConfigManagementCI' => 'Konfigurációs elemek (CI)',
|
||||
'Menu:ConfigManagementCI+' => '',
|
||||
'Menu:BusinessProcess' => 'Üzleti folyamatok',
|
||||
'Menu:BusinessProcess+' => '',
|
||||
'Menu:ApplicationSolution' => 'Egyedi alkalmazások',
|
||||
'Menu:ApplicationSolution+' => '',
|
||||
'Menu:ConfigManagementSoftware' => 'Alkalmazás menedzsment',
|
||||
'Menu:Licence' => 'Liszenszek',
|
||||
'Menu:Licence+' => '',
|
||||
'Menu:Patch' => 'Frissítések',
|
||||
'Menu:Patch+' => '',
|
||||
'Menu:ApplicationInstance' => 'Telepített szoftverek',
|
||||
'Menu:ApplicationInstance+' => '',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastruktúra menedzsment',
|
||||
'Menu:Subnet' => 'Alhálozatok',
|
||||
'Menu:Subnet+' => '',
|
||||
'Menu:NetworkDevice' => 'Hálózati eszközök',
|
||||
'Menu:NetworkDevice+' => '',
|
||||
'Menu:Server' => 'Szerverek',
|
||||
'Menu:Server+' => '',
|
||||
'Menu:Printer' => 'Nyomtatók',
|
||||
'Menu:Printer+' => '',
|
||||
'Menu:MobilePhone' => 'Mobil telefonok',
|
||||
'Menu:MobilePhone+' => '',
|
||||
'Menu:PC' => 'Személyi számítógépek',
|
||||
'Menu:PC+' => '',
|
||||
'Menu:NewContact' => 'Új kapcsolattartó',
|
||||
'Menu:NewContact+' => '',
|
||||
'Menu:SearchContacts' => 'Kapcsolattartó keresés',
|
||||
'Menu:SearchContacts+' => '',
|
||||
'Menu:NewCI' => 'Új CI',
|
||||
'Menu:NewCI+' => '',
|
||||
'Menu:SearchCIs' => 'CI keresés',
|
||||
'Menu:SearchCIs+' => '',
|
||||
'Menu:ConfigManagement:Devices' => 'Eszközök',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastruktúra',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Szoftverek és egyedi alkalmazások',
|
||||
'Menu:ConfigManagement:Misc' => 'Egyéb',
|
||||
'Menu:Group' => 'CI csoportok',
|
||||
'Menu:Group+' => '',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Gyorsmenük',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Összes kapcsolattartó: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
|
||||
));
|
||||
|
||||
@@ -1884,18 +1884,18 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP felhasználás',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfészek a következő tartományba esnek: <em>%1$s</em> - <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Szabad IP-k',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Szabad IP-k: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '10 szabad IP cím kivonata',
|
||||
'Class:Document:PreviewTab' => 'Előnézet',
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP felhasználás',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfészek a következő tartományba esnek: <em>%1$s</em> - <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Szabad IP-k',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Szabad IP-k: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '10 szabad IP cím kivonata',
|
||||
'Class:Document:PreviewTab' => 'Előnézet',
|
||||
));
|
||||
|
||||
@@ -1795,88 +1795,88 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
//
|
||||
|
||||
Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Menu:DataAdministration' => 'Dati di amministrazione',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Cataloghi',
|
||||
'Menu:Catalogs+' => 'Tipi di dato',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Importazione CSV',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Organizzazioni',
|
||||
'Menu:Organization+' => 'Tutte le organizzazioni',
|
||||
'Menu:Application' => 'Applicazioni',
|
||||
'Menu:Application+' => 'Tutte le applicazioni',
|
||||
'Menu:DBServer' => 'Database Servers',
|
||||
'Menu:DBServer+' => 'Database Servers',
|
||||
'Menu:ConfigManagement' => 'Gestione delle Configurazioni',
|
||||
'Menu:ConfigManagement+' => 'Gestione delle Configurazioni',
|
||||
'Menu:ConfigManagementOverview' => 'Panoramica',
|
||||
'Menu:ConfigManagementOverview+' => 'Panoramica',
|
||||
'Menu:Contact' => 'Contatti',
|
||||
'Menu:Contact+' => 'Contatti',
|
||||
'Menu:Contact:Count' => '%1$d contatti',
|
||||
'Menu:Person' => 'Persone',
|
||||
'Menu:Person+' => 'Tutte le persone',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Tutti i Teams',
|
||||
'Menu:Document' => 'Documenti',
|
||||
'Menu:Document+' => 'Tutti i Documenti',
|
||||
'Menu:Location' => 'Posizioni',
|
||||
'Menu:DataAdministration' => 'Dati di amministrazione',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Cataloghi',
|
||||
'Menu:Catalogs+' => 'Tipi di dato',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Importazione CSV',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Organizzazioni',
|
||||
'Menu:Organization+' => 'Tutte le organizzazioni',
|
||||
'Menu:Application' => 'Applicazioni',
|
||||
'Menu:Application+' => 'Tutte le applicazioni',
|
||||
'Menu:DBServer' => 'Database Servers',
|
||||
'Menu:DBServer+' => 'Database Servers',
|
||||
'Menu:ConfigManagement' => 'Gestione delle Configurazioni',
|
||||
'Menu:ConfigManagement+' => 'Gestione delle Configurazioni',
|
||||
'Menu:ConfigManagementOverview' => 'Panoramica',
|
||||
'Menu:ConfigManagementOverview+' => 'Panoramica',
|
||||
'Menu:Contact' => 'Contatti',
|
||||
'Menu:Contact+' => 'Contatti',
|
||||
'Menu:Contact:Count' => '%1$d contatti',
|
||||
'Menu:Person' => 'Persone',
|
||||
'Menu:Person+' => 'Tutte le persone',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Tutti i Teams',
|
||||
'Menu:Document' => 'Documenti',
|
||||
'Menu:Document+' => 'Tutti i Documenti',
|
||||
'Menu:Location' => 'Posizioni',
|
||||
|
||||
'Menu:Location+' => 'Tutte le pozisioni',
|
||||
'Menu:ConfigManagementCI' => 'Elementi di Configurazione (CI)',
|
||||
'Menu:ConfigManagementCI+' => 'Elementi di Configurazione (CI)',
|
||||
'Menu:BusinessProcess' => 'Processi di business',
|
||||
'Menu:BusinessProcess+' => 'Tutti i processi di business',
|
||||
'Menu:ApplicationSolution' => 'Soluzioni applicative',
|
||||
'Menu:ApplicationSolution+' => 'Tutte le soluzioni applicative',
|
||||
'Menu:ConfigManagementSoftware' => 'Gestione delle Applicazioni',
|
||||
'Menu:Licence' => 'Licenze',
|
||||
'Menu:Licence+' => 'Tutte le licenze',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Tutte le patches',
|
||||
'Menu:ApplicationInstance' => 'Software Installati',
|
||||
'Menu:ApplicationInstance+' => 'Applicazioni e Database servers',
|
||||
'Menu:ConfigManagementHardware' => 'Gestione Infrastrutture',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'Tutte le Subnets',
|
||||
'Menu:NetworkDevice' => 'Dispositivi di rete',
|
||||
'Menu:NetworkDevice+' => 'Tutti i dispositivi di rete',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Tutti i Server',
|
||||
'Menu:Printer' => 'Stampanti',
|
||||
'Menu:Printer+' => 'Tutte le stampanti',
|
||||
'Menu:MobilePhone' => 'Cellulari',
|
||||
'Menu:MobilePhone+' => 'Tutti i cellulari',
|
||||
'Menu:PC' => 'Personal Computers',
|
||||
'Menu:PC+' => 'Tutti i Personal Computers',
|
||||
'Menu:NewContact' => 'Nuovo Contatto',
|
||||
'Menu:NewContact+' => 'Nuovo Contatto',
|
||||
'Menu:SearchContacts' => 'Ricerca contatti',
|
||||
'Menu:SearchContacts+' => 'Ricerca contatti',
|
||||
'Menu:NewCI' => 'Nuovo CI',
|
||||
'Menu:NewCI+' => 'Nuovo CI',
|
||||
'Menu:SearchCIs' => 'Ricerca CIs',
|
||||
'Menu:SearchCIs+' => 'Ricerca CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositvi',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastrutture',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software e Applicazioni',
|
||||
'Menu:ConfigManagement:Misc' => 'Varie',
|
||||
'Menu:Group' => 'Gruppi di CIs',
|
||||
'Menu:Group+' => 'Gruppi di CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Scorciatoie',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tutti i contatti: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
'Menu:Location+' => 'Tutte le pozisioni',
|
||||
'Menu:ConfigManagementCI' => 'Elementi di Configurazione (CI)',
|
||||
'Menu:ConfigManagementCI+' => 'Elementi di Configurazione (CI)',
|
||||
'Menu:BusinessProcess' => 'Processi di business',
|
||||
'Menu:BusinessProcess+' => 'Tutti i processi di business',
|
||||
'Menu:ApplicationSolution' => 'Soluzioni applicative',
|
||||
'Menu:ApplicationSolution+' => 'Tutte le soluzioni applicative',
|
||||
'Menu:ConfigManagementSoftware' => 'Gestione delle Applicazioni',
|
||||
'Menu:Licence' => 'Licenze',
|
||||
'Menu:Licence+' => 'Tutte le licenze',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Tutte le patches',
|
||||
'Menu:ApplicationInstance' => 'Software Installati',
|
||||
'Menu:ApplicationInstance+' => 'Applicazioni e Database servers',
|
||||
'Menu:ConfigManagementHardware' => 'Gestione Infrastrutture',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'Tutte le Subnets',
|
||||
'Menu:NetworkDevice' => 'Dispositivi di rete',
|
||||
'Menu:NetworkDevice+' => 'Tutti i dispositivi di rete',
|
||||
'Menu:Server' => 'Server',
|
||||
'Menu:Server+' => 'Tutti i Server',
|
||||
'Menu:Printer' => 'Stampanti',
|
||||
'Menu:Printer+' => 'Tutte le stampanti',
|
||||
'Menu:MobilePhone' => 'Cellulari',
|
||||
'Menu:MobilePhone+' => 'Tutti i cellulari',
|
||||
'Menu:PC' => 'Personal Computers',
|
||||
'Menu:PC+' => 'Tutti i Personal Computers',
|
||||
'Menu:NewContact' => 'Nuovo Contatto',
|
||||
'Menu:NewContact+' => 'Nuovo Contatto',
|
||||
'Menu:SearchContacts' => 'Ricerca contatti',
|
||||
'Menu:SearchContacts+' => 'Ricerca contatti',
|
||||
'Menu:NewCI' => 'Nuovo CI',
|
||||
'Menu:NewCI+' => 'Nuovo CI',
|
||||
'Menu:SearchCIs' => 'Ricerca CIs',
|
||||
'Menu:SearchCIs+' => 'Ricerca CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositvi',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastrutture',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software e Applicazioni',
|
||||
'Menu:ConfigManagement:Misc' => 'Varie',
|
||||
'Menu:Group' => 'Gruppi di CIs',
|
||||
'Menu:Group+' => 'Gruppi di CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Scorciatoie',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tutti i contatti: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
|
||||
));
|
||||
|
||||
@@ -1884,18 +1884,18 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Utilizzo IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Iterfacce che hanno un IP nell\'intervallo: <em>%1$s</em> e <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IP liberi',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IP liberi: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Qui c\'è un estratto di 10 indirizzi IP liberi',
|
||||
'Class:Document:PreviewTab' => 'Anteprima',
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Utilizzo IP',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Iterfacce che hanno un IP nell\'intervallo: <em>%1$s</em> e <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IP liberi',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IP liberi: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Qui c\'è un estratto di 10 indirizzi IP liberi',
|
||||
'Class:Document:PreviewTab' => 'Anteprima',
|
||||
));
|
||||
|
||||
@@ -1795,88 +1795,88 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
//
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Menu:DataAdministration' => 'データ管理',
|
||||
'Menu:DataAdministration+' => 'データ管理',
|
||||
'Menu:Catalogs' => 'カタログ',
|
||||
'Menu:Catalogs+' => 'データタイプ',
|
||||
'Menu:Audit' => '監査',
|
||||
'Menu:Audit+' => '監査',
|
||||
'Menu:CSVImport' => 'CSV インポート',
|
||||
'Menu:CSVImport+' => '一括作成/一括更新',
|
||||
'Menu:Organization' => '組織',
|
||||
'Menu:Organization+' => '全組織',
|
||||
'Menu:Application' => 'アプリケーション',
|
||||
'Menu:Application+' => '全アプリケーション',
|
||||
'Menu:DBServer' => 'DBサーバ',
|
||||
'Menu:DBServer+' => 'DBサーバ',
|
||||
'Menu:ConfigManagement' => '構成管理',
|
||||
'Menu:ConfigManagement+' => '構成管理',
|
||||
'Menu:ConfigManagementOverview' => '概要',
|
||||
'Menu:ConfigManagementOverview+' => '概要',
|
||||
'Menu:Contact' => '連絡先',
|
||||
'Menu:Contact+' => '連絡先',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => '人物',
|
||||
'Menu:Person+' => '全人物',
|
||||
'Menu:Team' => 'チーム',
|
||||
'Menu:Team+' => '全チーム',
|
||||
'Menu:Document' => '文書',
|
||||
'Menu:Document+' => '全文書',
|
||||
'Menu:Location' => '場所',
|
||||
'Menu:DataAdministration' => 'データ管理',
|
||||
'Menu:DataAdministration+' => 'データ管理',
|
||||
'Menu:Catalogs' => 'カタログ',
|
||||
'Menu:Catalogs+' => 'データタイプ',
|
||||
'Menu:Audit' => '監査',
|
||||
'Menu:Audit+' => '監査',
|
||||
'Menu:CSVImport' => 'CSV インポート',
|
||||
'Menu:CSVImport+' => '一括作成/一括更新',
|
||||
'Menu:Organization' => '組織',
|
||||
'Menu:Organization+' => '全組織',
|
||||
'Menu:Application' => 'アプリケーション',
|
||||
'Menu:Application+' => '全アプリケーション',
|
||||
'Menu:DBServer' => 'DBサーバ',
|
||||
'Menu:DBServer+' => 'DBサーバ',
|
||||
'Menu:ConfigManagement' => '構成管理',
|
||||
'Menu:ConfigManagement+' => '構成管理',
|
||||
'Menu:ConfigManagementOverview' => '概要',
|
||||
'Menu:ConfigManagementOverview+' => '概要',
|
||||
'Menu:Contact' => '連絡先',
|
||||
'Menu:Contact+' => '連絡先',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => '人物',
|
||||
'Menu:Person+' => '全人物',
|
||||
'Menu:Team' => 'チーム',
|
||||
'Menu:Team+' => '全チーム',
|
||||
'Menu:Document' => '文書',
|
||||
'Menu:Document+' => '全文書',
|
||||
'Menu:Location' => '場所',
|
||||
|
||||
'Menu:Location+' => '全ての場所',
|
||||
'Menu:ConfigManagementCI' => '構成管理項目',
|
||||
'Menu:ConfigManagementCI+' => '構成管理項目',
|
||||
'Menu:BusinessProcess' => 'ビジネスプロセス',
|
||||
'Menu:BusinessProcess+' => '全ビジネスプロセス',
|
||||
'Menu:ApplicationSolution' => 'アプリケーションソリューション',
|
||||
'Menu:ApplicationSolution+' => '全アプリケーションソリューション',
|
||||
'Menu:ConfigManagementSoftware' => 'ソフトウエア管理',
|
||||
'Menu:Licence' => 'ライセンス',
|
||||
'Menu:Licence+' => '全ライセンス',
|
||||
'Menu:Patch' => 'パッチ',
|
||||
'Menu:Patch+' => '全パッチ',
|
||||
'Menu:ApplicationInstance' => 'インストールされたソフトウエア',
|
||||
'Menu:ApplicationInstance+' => 'アプリケーションとデータベースサーバ',
|
||||
'Menu:ConfigManagementHardware' => 'インフラ管理',
|
||||
'Menu:Subnet' => 'サブネット',
|
||||
'Menu:Subnet+' => '全サブネット',
|
||||
'Menu:NetworkDevice' => 'ネットワークデバイス',
|
||||
'Menu:NetworkDevice+' => '全ネットワークデバイス',
|
||||
'Menu:Server' => 'サーバ',
|
||||
'Menu:Server+' => '全サーバ',
|
||||
'Menu:Printer' => 'プリンタ',
|
||||
'Menu:Printer+' => '全プリンタ',
|
||||
'Menu:MobilePhone' => '携帯電話',
|
||||
'Menu:MobilePhone+' => '全携帯電話',
|
||||
'Menu:PC' => 'パーソナルコンピュタ',
|
||||
'Menu:PC+' => '全パーソナルコンピュータ',
|
||||
'Menu:NewContact' => '新規連絡先',
|
||||
'Menu:NewContact+' => '新規連絡先',
|
||||
'Menu:SearchContacts' => '連絡先検索',
|
||||
'Menu:SearchContacts+' => '連絡先検索',
|
||||
'Menu:NewCI' => '新規CI',
|
||||
'Menu:NewCI+' => '新規CI',
|
||||
'Menu:SearchCIs' => 'CI検索',
|
||||
'Menu:SearchCIs+' => 'CI検索',
|
||||
'Menu:ConfigManagement:Devices' => 'デバイス',
|
||||
'Menu:ConfigManagement:AllDevices' => 'インフラ',
|
||||
'Menu:ConfigManagement:virtualization' => '仮想化',
|
||||
'Menu:ConfigManagement:EndUsers' => 'エンドユーザデバイス',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'ソフトウエアとアプリケーション',
|
||||
'Menu:ConfigManagement:Misc' => 'その他',
|
||||
'Menu:Group' => 'CIグループ',
|
||||
'Menu:Group+' => 'CIグループ',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'ショートカット',
|
||||
'Menu:ConfigManagement:AllContacts' => '全連絡先: %1$d',
|
||||
'Menu:Typology' => 'トポロジー構成',
|
||||
'Menu:Typology+' => 'トポロジー構成',
|
||||
'Menu:OSVersion' => 'OS バージョン',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'ソフトウエアカタログ',
|
||||
'Menu:Software+' => 'ソフトウエアカタログ',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'サマリー',
|
||||
'Menu:ConfigManagement:Typology' => '分類構成',
|
||||
'Menu:Location+' => '全ての場所',
|
||||
'Menu:ConfigManagementCI' => '構成管理項目',
|
||||
'Menu:ConfigManagementCI+' => '構成管理項目',
|
||||
'Menu:BusinessProcess' => 'ビジネスプロセス',
|
||||
'Menu:BusinessProcess+' => '全ビジネスプロセス',
|
||||
'Menu:ApplicationSolution' => 'アプリケーションソリューション',
|
||||
'Menu:ApplicationSolution+' => '全アプリケーションソリューション',
|
||||
'Menu:ConfigManagementSoftware' => 'ソフトウエア管理',
|
||||
'Menu:Licence' => 'ライセンス',
|
||||
'Menu:Licence+' => '全ライセンス',
|
||||
'Menu:Patch' => 'パッチ',
|
||||
'Menu:Patch+' => '全パッチ',
|
||||
'Menu:ApplicationInstance' => 'インストールされたソフトウエア',
|
||||
'Menu:ApplicationInstance+' => 'アプリケーションとデータベースサーバ',
|
||||
'Menu:ConfigManagementHardware' => 'インフラ管理',
|
||||
'Menu:Subnet' => 'サブネット',
|
||||
'Menu:Subnet+' => '全サブネット',
|
||||
'Menu:NetworkDevice' => 'ネットワークデバイス',
|
||||
'Menu:NetworkDevice+' => '全ネットワークデバイス',
|
||||
'Menu:Server' => 'サーバ',
|
||||
'Menu:Server+' => '全サーバ',
|
||||
'Menu:Printer' => 'プリンタ',
|
||||
'Menu:Printer+' => '全プリンタ',
|
||||
'Menu:MobilePhone' => '携帯電話',
|
||||
'Menu:MobilePhone+' => '全携帯電話',
|
||||
'Menu:PC' => 'パーソナルコンピュタ',
|
||||
'Menu:PC+' => '全パーソナルコンピュータ',
|
||||
'Menu:NewContact' => '新規連絡先',
|
||||
'Menu:NewContact+' => '新規連絡先',
|
||||
'Menu:SearchContacts' => '連絡先検索',
|
||||
'Menu:SearchContacts+' => '連絡先検索',
|
||||
'Menu:NewCI' => '新規CI',
|
||||
'Menu:NewCI+' => '新規CI',
|
||||
'Menu:SearchCIs' => 'CI検索',
|
||||
'Menu:SearchCIs+' => 'CI検索',
|
||||
'Menu:ConfigManagement:Devices' => 'デバイス',
|
||||
'Menu:ConfigManagement:AllDevices' => 'インフラ',
|
||||
'Menu:ConfigManagement:virtualization' => '仮想化',
|
||||
'Menu:ConfigManagement:EndUsers' => 'エンドユーザデバイス',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'ソフトウエアとアプリケーション',
|
||||
'Menu:ConfigManagement:Misc' => 'その他',
|
||||
'Menu:Group' => 'CIグループ',
|
||||
'Menu:Group+' => 'CIグループ',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'ショートカット',
|
||||
'Menu:ConfigManagement:AllContacts' => '全連絡先: %1$d',
|
||||
'Menu:Typology' => 'トポロジー構成',
|
||||
'Menu:Typology+' => 'トポロジー構成',
|
||||
'Menu:OSVersion' => 'OS バージョン',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'ソフトウエアカタログ',
|
||||
'Menu:Software+' => 'ソフトウエアカタログ',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'サマリー',
|
||||
'Menu:ConfigManagement:Typology' => '分類構成',
|
||||
|
||||
));
|
||||
|
||||
@@ -1884,18 +1884,18 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Server:baseinfo' => '基本情報',
|
||||
'Server:Date' => '日付',
|
||||
'Server:moreinfo' => '追加情報',
|
||||
'Server:otherinfo' => '他の情報',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => '情報',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => '通知',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP 利用',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'インターフェースは、レンジ: <em>%1$s</em> から <em>%2$s</em>の中のIPを持っています。',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'フリーなIP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'フリーIP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '10個のフリーなIPアドレス',
|
||||
'Class:Document:PreviewTab' => 'プレビュー',
|
||||
'Server:baseinfo' => '基本情報',
|
||||
'Server:Date' => '日付',
|
||||
'Server:moreinfo' => '追加情報',
|
||||
'Server:otherinfo' => '他の情報',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => '情報',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => '通知',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP 利用',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'インターフェースは、レンジ: <em>%1$s</em> から <em>%2$s</em>の中のIPを持っています。',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'フリーなIP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'フリーIP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '10個のフリーなIPアドレス',
|
||||
'Class:Document:PreviewTab' => 'プレビュー',
|
||||
));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-config-mgmt/2.6.0',
|
||||
'itop-config-mgmt/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -1807,88 +1807,88 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
//
|
||||
|
||||
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'Menu:DataAdministration' => 'Databeheer',
|
||||
'Menu:DataAdministration+' => 'Databeheer',
|
||||
'Menu:Catalogs' => 'Catalogus',
|
||||
'Menu:Catalogs+' => 'Soorten data',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV-import',
|
||||
'Menu:CSVImport+' => 'Grootschalige aanmaak of update',
|
||||
'Menu:Organization' => 'Organisaties',
|
||||
'Menu:Organization+' => 'Alle organisaties',
|
||||
'Menu:Application' => 'Applicaties',
|
||||
'Menu:Application+' => 'Alle Applicaties',
|
||||
'Menu:DBServer' => 'Databaseservers',
|
||||
'Menu:DBServer+' => 'Databaseservers',
|
||||
'Menu:ConfigManagement' => 'Configuratiebeheer',
|
||||
'Menu:ConfigManagement+' => 'Configuratiebeheer',
|
||||
'Menu:ConfigManagementOverview' => 'Overzicht',
|
||||
'Menu:ConfigManagementOverview+' => 'Overzicht',
|
||||
'Menu:Contact' => 'Contacten',
|
||||
'Menu:Contact+' => 'Contacten',
|
||||
'Menu:Contact:Count' => '%1$d contacten',
|
||||
'Menu:Person' => 'Personen',
|
||||
'Menu:Person+' => 'Alle personen',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle teams',
|
||||
'Menu:Document' => 'Documenten',
|
||||
'Menu:Document+' => 'Alle documenten',
|
||||
'Menu:Location' => 'Locaties',
|
||||
'Menu:DataAdministration' => 'Databeheer',
|
||||
'Menu:DataAdministration+' => 'Databeheer',
|
||||
'Menu:Catalogs' => 'Catalogus',
|
||||
'Menu:Catalogs+' => 'Soorten data',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV-import',
|
||||
'Menu:CSVImport+' => 'Grootschalige aanmaak of update',
|
||||
'Menu:Organization' => 'Organisaties',
|
||||
'Menu:Organization+' => 'Alle organisaties',
|
||||
'Menu:Application' => 'Applicaties',
|
||||
'Menu:Application+' => 'Alle Applicaties',
|
||||
'Menu:DBServer' => 'Databaseservers',
|
||||
'Menu:DBServer+' => 'Databaseservers',
|
||||
'Menu:ConfigManagement' => 'Configuratiebeheer',
|
||||
'Menu:ConfigManagement+' => 'Configuratiebeheer',
|
||||
'Menu:ConfigManagementOverview' => 'Overzicht',
|
||||
'Menu:ConfigManagementOverview+' => 'Overzicht',
|
||||
'Menu:Contact' => 'Contacten',
|
||||
'Menu:Contact+' => 'Contacten',
|
||||
'Menu:Contact:Count' => '%1$d contacten',
|
||||
'Menu:Person' => 'Personen',
|
||||
'Menu:Person+' => 'Alle personen',
|
||||
'Menu:Team' => 'Teams',
|
||||
'Menu:Team+' => 'Alle teams',
|
||||
'Menu:Document' => 'Documenten',
|
||||
'Menu:Document+' => 'Alle documenten',
|
||||
'Menu:Location' => 'Locaties',
|
||||
|
||||
'Menu:Location+' => 'Alle locaties',
|
||||
'Menu:ConfigManagementCI' => 'Configuratie-items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuratie-items',
|
||||
'Menu:BusinessProcess' => 'Bedrijfsprocessen',
|
||||
'Menu:BusinessProcess+' => 'Alle bedrijfsprocessen',
|
||||
'Menu:ApplicationSolution' => 'Applicatie-oplossing',
|
||||
'Menu:ApplicationSolution+' => 'Alle applicatie-oplossingen',
|
||||
'Menu:ConfigManagementSoftware' => 'Applicatiebeheer',
|
||||
'Menu:Licence' => 'Licenties',
|
||||
'Menu:Licence+' => 'Alle licenties',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle patches',
|
||||
'Menu:ApplicationInstance' => 'Geïnstalleerde software',
|
||||
'Menu:ApplicationInstance+' => 'Applicaties en databaseservers',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastructuurbeheer',
|
||||
'Menu:Subnet' => 'Subnetten',
|
||||
'Menu:Subnet+' => 'Alle subnetten',
|
||||
'Menu:NetworkDevice' => 'Netwerkapparaten',
|
||||
'Menu:NetworkDevice+' => 'Alle netwerkapparaten',
|
||||
'Menu:Server' => 'Servers',
|
||||
'Menu:Server+' => 'Alle servers',
|
||||
'Menu:Printer' => 'Printers',
|
||||
'Menu:Printer+' => 'Alle printers',
|
||||
'Menu:MobilePhone' => 'Mobiele telefoons',
|
||||
'Menu:MobilePhone+' => 'Alle mobiele telefoons',
|
||||
'Menu:PC' => 'PC\'s',
|
||||
'Menu:PC+' => 'Alle PC\'s',
|
||||
'Menu:NewContact' => 'Nieuw contact',
|
||||
'Menu:NewContact+' => 'Maak een nieuw contact aan',
|
||||
'Menu:SearchContacts' => 'Zoek naar contacten',
|
||||
'Menu:SearchContacts+' => 'Zoek naar contacten',
|
||||
'Menu:NewCI' => 'Nieuw configuratie-item',
|
||||
'Menu:NewCI+' => 'Maak een nieuw configuratie-item aan',
|
||||
'Menu:SearchCIs' => 'Zoek naar CI\'s',
|
||||
'Menu:SearchCIs+' => 'Zoek naar configuratie-items',
|
||||
'Menu:ConfigManagement:Devices' => 'Apparaten',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructuur',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisatie',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Apparaten van eindgebruikers',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software en applicaties',
|
||||
'Menu:ConfigManagement:Misc' => 'Diversen',
|
||||
'Menu:Group' => 'Groepen van CIs',
|
||||
'Menu:Group+' => 'Groepen van CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Snelkoppelingen',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle contacten: %1$d',
|
||||
'Menu:Typology' => 'Configuratie typologie',
|
||||
'Menu:Typology+' => 'Configuratie van de typologie',
|
||||
'Menu:OSVersion' => 'Versies besturingssysteem',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Softwarecatalogus',
|
||||
'Menu:Software+' => 'Softwarecatalogus',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Samenvatting',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuratie typologie',
|
||||
'Menu:Location+' => 'Alle locaties',
|
||||
'Menu:ConfigManagementCI' => 'Configuratie-items',
|
||||
'Menu:ConfigManagementCI+' => 'Configuratie-items',
|
||||
'Menu:BusinessProcess' => 'Bedrijfsprocessen',
|
||||
'Menu:BusinessProcess+' => 'Alle bedrijfsprocessen',
|
||||
'Menu:ApplicationSolution' => 'Applicatie-oplossing',
|
||||
'Menu:ApplicationSolution+' => 'Alle applicatie-oplossingen',
|
||||
'Menu:ConfigManagementSoftware' => 'Applicatiebeheer',
|
||||
'Menu:Licence' => 'Licenties',
|
||||
'Menu:Licence+' => 'Alle licenties',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Alle patches',
|
||||
'Menu:ApplicationInstance' => 'Geïnstalleerde software',
|
||||
'Menu:ApplicationInstance+' => 'Applicaties en databaseservers',
|
||||
'Menu:ConfigManagementHardware' => 'Infrastructuurbeheer',
|
||||
'Menu:Subnet' => 'Subnetten',
|
||||
'Menu:Subnet+' => 'Alle subnetten',
|
||||
'Menu:NetworkDevice' => 'Netwerkapparaten',
|
||||
'Menu:NetworkDevice+' => 'Alle netwerkapparaten',
|
||||
'Menu:Server' => 'Servers',
|
||||
'Menu:Server+' => 'Alle servers',
|
||||
'Menu:Printer' => 'Printers',
|
||||
'Menu:Printer+' => 'Alle printers',
|
||||
'Menu:MobilePhone' => 'Mobiele telefoons',
|
||||
'Menu:MobilePhone+' => 'Alle mobiele telefoons',
|
||||
'Menu:PC' => 'PC\'s',
|
||||
'Menu:PC+' => 'Alle PC\'s',
|
||||
'Menu:NewContact' => 'Nieuw contact',
|
||||
'Menu:NewContact+' => 'Maak een nieuw contact aan',
|
||||
'Menu:SearchContacts' => 'Zoek naar contacten',
|
||||
'Menu:SearchContacts+' => 'Zoek naar contacten',
|
||||
'Menu:NewCI' => 'Nieuw configuratie-item',
|
||||
'Menu:NewCI+' => 'Maak een nieuw configuratie-item aan',
|
||||
'Menu:SearchCIs' => 'Zoek naar CI\'s',
|
||||
'Menu:SearchCIs+' => 'Zoek naar configuratie-items',
|
||||
'Menu:ConfigManagement:Devices' => 'Apparaten',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infrastructuur',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualisatie',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Apparaten van eindgebruikers',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software en applicaties',
|
||||
'Menu:ConfigManagement:Misc' => 'Diversen',
|
||||
'Menu:Group' => 'Groepen van CIs',
|
||||
'Menu:Group+' => 'Groepen van CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Snelkoppelingen',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Alle contacten: %1$d',
|
||||
'Menu:Typology' => 'Configuratie typologie',
|
||||
'Menu:Typology+' => 'Configuratie van de typologie',
|
||||
'Menu:OSVersion' => 'Versies besturingssysteem',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Softwarecatalogus',
|
||||
'Menu:Software+' => 'Softwarecatalogus',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Samenvatting',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuratie typologie',
|
||||
|
||||
));
|
||||
|
||||
@@ -1896,18 +1896,18 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'Server:baseinfo' => 'Globale informatie',
|
||||
'Server:Date' => 'Datum',
|
||||
'Server:moreinfo' => 'Meer informatie',
|
||||
'Server:otherinfo' => 'Andere informatie',
|
||||
'Server:power' => 'Stroomtoevoer',
|
||||
'Person:info' => 'Globale informatie',
|
||||
'Person:personal_info' => 'Persoonlijke informatie',
|
||||
'Person:notifiy' => 'Notificatie', // gecheckt: in datamodel.itop-config-mgmt.xml staat inderdaad ook een typfout, 'notifiy' is in die zin correct
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP-gebruik',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces met een IP-adres in de reeks: <em>%1$s</em> tot en met <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Beschikbare IP-adressen',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Beschikbare IP-adressen: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Dit zijn 10 beschikbare IP-adressen',
|
||||
'Class:Document:PreviewTab' => 'Voorbeeld',
|
||||
'Server:baseinfo' => 'Globale informatie',
|
||||
'Server:Date' => 'Datum',
|
||||
'Server:moreinfo' => 'Meer informatie',
|
||||
'Server:otherinfo' => 'Andere informatie',
|
||||
'Server:power' => 'Stroomtoevoer',
|
||||
'Person:info' => 'Globale informatie',
|
||||
'Person:personal_info' => 'Persoonlijke informatie',
|
||||
'Person:notifiy' => 'Notificatie',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP-gebruik',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces met een IP-adres in de reeks: <em>%1$s</em> tot en met <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Beschikbare IP-adressen',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Beschikbare IP-adressen: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Dit zijn 10 beschikbare IP-adressen',
|
||||
'Class:Document:PreviewTab' => 'Voorbeeld',
|
||||
));
|
||||
|
||||
@@ -1801,88 +1801,88 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:DataAdministration' => 'Administração Dados',
|
||||
'Menu:DataAdministration+' => 'Administração Dados',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos dados',
|
||||
'Menu:Audit' => 'Auditoria',
|
||||
'Menu:Audit+' => 'Auditoria',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Criação ou atualização em massa',
|
||||
'Menu:Organization' => 'Organizações',
|
||||
'Menu:Organization+' => 'Todas organizações',
|
||||
'Menu:Application' => 'Applicações',
|
||||
'Menu:Application+' => 'Todas aplicações',
|
||||
'Menu:DBServer' => 'Serviços Banco de Dados',
|
||||
'Menu:DBServer+' => 'Serviços Banco de Dados',
|
||||
'Menu:ConfigManagement' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagement+' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagementOverview' => 'Visão geral',
|
||||
'Menu:ConfigManagementOverview+' => 'Visão geral',
|
||||
'Menu:Contact' => 'Contatos',
|
||||
'Menu:Contact+' => 'Contatos',
|
||||
'Menu:Contact:Count' => '%1$d contatos',
|
||||
'Menu:Person' => 'Pessoas',
|
||||
'Menu:Person+' => 'Todas pessoas',
|
||||
'Menu:Team' => 'Equipes',
|
||||
'Menu:Team+' => 'Todas equipes',
|
||||
'Menu:Document' => 'Documentos',
|
||||
'Menu:Document+' => 'Todos documentos',
|
||||
'Menu:Location' => 'Localidades',
|
||||
'Menu:DataAdministration' => 'Administração Dados',
|
||||
'Menu:DataAdministration+' => 'Administração Dados',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos dados',
|
||||
'Menu:Audit' => 'Auditoria',
|
||||
'Menu:Audit+' => 'Auditoria',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Criação ou atualização em massa',
|
||||
'Menu:Organization' => 'Organizações',
|
||||
'Menu:Organization+' => 'Todas organizações',
|
||||
'Menu:Application' => 'Applicações',
|
||||
'Menu:Application+' => 'Todas aplicações',
|
||||
'Menu:DBServer' => 'Serviços Banco de Dados',
|
||||
'Menu:DBServer+' => 'Serviços Banco de Dados',
|
||||
'Menu:ConfigManagement' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagement+' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagementOverview' => 'Visão geral',
|
||||
'Menu:ConfigManagementOverview+' => 'Visão geral',
|
||||
'Menu:Contact' => 'Contatos',
|
||||
'Menu:Contact+' => 'Contatos',
|
||||
'Menu:Contact:Count' => '%1$d contatos',
|
||||
'Menu:Person' => 'Pessoas',
|
||||
'Menu:Person+' => 'Todas pessoas',
|
||||
'Menu:Team' => 'Equipes',
|
||||
'Menu:Team+' => 'Todas equipes',
|
||||
'Menu:Document' => 'Documentos',
|
||||
'Menu:Document+' => 'Todos documentos',
|
||||
'Menu:Location' => 'Localidades',
|
||||
|
||||
'Menu:Location+' => 'Todas localidades',
|
||||
'Menu:ConfigManagementCI' => 'Itens de configuração',
|
||||
'Menu:ConfigManagementCI+' => 'Itens de configuração',
|
||||
'Menu:BusinessProcess' => 'Processos de negócios',
|
||||
'Menu:BusinessProcess+' => 'Todos processos de negócios',
|
||||
'Menu:ApplicationSolution' => 'Solução aplicação',
|
||||
'Menu:ApplicationSolution+' => 'Todas soluções aplicações',
|
||||
'Menu:ConfigManagementSoftware' => 'Gerenciamento aplicações',
|
||||
'Menu:Licence' => 'Licenças',
|
||||
'Menu:Licence+' => 'Todoas licenças',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Todos patches',
|
||||
'Menu:ApplicationInstance' => 'Software instalados',
|
||||
'Menu:ApplicationInstance+' => 'Serviços aplicações e Banco de dados',
|
||||
'Menu:ConfigManagementHardware' => 'Gerenciamento Infra-estrutura',
|
||||
'Menu:Subnet' => 'Sub-redes',
|
||||
'Menu:Subnet+' => 'Todas sub-redes',
|
||||
'Menu:NetworkDevice' => 'Dispositivos rede',
|
||||
'Menu:NetworkDevice+' => 'Todos dispositivos rede',
|
||||
'Menu:Server' => 'Servidores',
|
||||
'Menu:Server+' => 'Todos servidores',
|
||||
'Menu:Printer' => 'Impressoras',
|
||||
'Menu:Printer+' => 'Todas impressoras',
|
||||
'Menu:MobilePhone' => 'Telefone celulares',
|
||||
'Menu:MobilePhone+' => 'Todos telefone celulares',
|
||||
'Menu:PC' => 'Estação de trabalho',
|
||||
'Menu:PC+' => 'Todas estação de trabalho',
|
||||
'Menu:NewContact' => 'Novo contato',
|
||||
'Menu:NewContact+' => 'Novo contato',
|
||||
'Menu:SearchContacts' => 'Pesquisar por contatos',
|
||||
'Menu:SearchContacts+' => 'Pesquisar por contatos',
|
||||
'Menu:NewCI' => 'Novo CI',
|
||||
'Menu:NewCI+' => 'Novo CI',
|
||||
'Menu:SearchCIs' => 'Pesquisar por CIs',
|
||||
'Menu:SearchCIs+' => 'Pesquisar por CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositivos',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infra-estrutura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualização',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Dispositivos usuário final',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software e aplicações',
|
||||
'Menu:ConfigManagement:Misc' => 'Diversos',
|
||||
'Menu:Group' => 'Grupos de CIs',
|
||||
'Menu:Group+' => 'Grupos de CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Atalhos',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Todos contatos: %1$d',
|
||||
'Menu:Typology' => 'Configuração tipologia',
|
||||
'Menu:Typology+' => 'Configuração tipologia',
|
||||
'Menu:OSVersion' => 'Versão OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Catálogo software',
|
||||
'Menu:Software+' => 'Catálogo software',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Índice',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuração tipologia',
|
||||
'Menu:Location+' => 'Todas localidades',
|
||||
'Menu:ConfigManagementCI' => 'Itens de configuração',
|
||||
'Menu:ConfigManagementCI+' => 'Itens de configuração',
|
||||
'Menu:BusinessProcess' => 'Processos de negócios',
|
||||
'Menu:BusinessProcess+' => 'Todos processos de negócios',
|
||||
'Menu:ApplicationSolution' => 'Solução aplicação',
|
||||
'Menu:ApplicationSolution+' => 'Todas soluções aplicações',
|
||||
'Menu:ConfigManagementSoftware' => 'Gerenciamento aplicações',
|
||||
'Menu:Licence' => 'Licenças',
|
||||
'Menu:Licence+' => 'Todoas licenças',
|
||||
'Menu:Patch' => 'Patches',
|
||||
'Menu:Patch+' => 'Todos patches',
|
||||
'Menu:ApplicationInstance' => 'Software instalados',
|
||||
'Menu:ApplicationInstance+' => 'Serviços aplicações e Banco de dados',
|
||||
'Menu:ConfigManagementHardware' => 'Gerenciamento Infra-estrutura',
|
||||
'Menu:Subnet' => 'Sub-redes',
|
||||
'Menu:Subnet+' => 'Todas sub-redes',
|
||||
'Menu:NetworkDevice' => 'Dispositivos rede',
|
||||
'Menu:NetworkDevice+' => 'Todos dispositivos rede',
|
||||
'Menu:Server' => 'Servidores',
|
||||
'Menu:Server+' => 'Todos servidores',
|
||||
'Menu:Printer' => 'Impressoras',
|
||||
'Menu:Printer+' => 'Todas impressoras',
|
||||
'Menu:MobilePhone' => 'Telefone celulares',
|
||||
'Menu:MobilePhone+' => 'Todos telefone celulares',
|
||||
'Menu:PC' => 'Estação de trabalho',
|
||||
'Menu:PC+' => 'Todas estação de trabalho',
|
||||
'Menu:NewContact' => 'Novo contato',
|
||||
'Menu:NewContact+' => 'Novo contato',
|
||||
'Menu:SearchContacts' => 'Pesquisar por contatos',
|
||||
'Menu:SearchContacts+' => 'Pesquisar por contatos',
|
||||
'Menu:NewCI' => 'Novo CI',
|
||||
'Menu:NewCI+' => 'Novo CI',
|
||||
'Menu:SearchCIs' => 'Pesquisar por CIs',
|
||||
'Menu:SearchCIs+' => 'Pesquisar por CIs',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositivos',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infra-estrutura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualização',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Dispositivos usuário final',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Software e aplicações',
|
||||
'Menu:ConfigManagement:Misc' => 'Diversos',
|
||||
'Menu:Group' => 'Grupos de CIs',
|
||||
'Menu:Group+' => 'Grupos de CIs',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Atalhos',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Todos contatos: %1$d',
|
||||
'Menu:Typology' => 'Configuração tipologia',
|
||||
'Menu:Typology+' => 'Configuração tipologia',
|
||||
'Menu:OSVersion' => 'Versão OS',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Catálogo software',
|
||||
'Menu:Software+' => 'Catálogo software',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Índice',
|
||||
'Menu:ConfigManagement:Typology' => 'Configuração tipologia',
|
||||
|
||||
));
|
||||
|
||||
@@ -1890,18 +1890,18 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Server:baseinfo' => 'Informações gerais',
|
||||
'Server:Date' => 'Data',
|
||||
'Server:moreinfo' => 'Mais informações',
|
||||
'Server:otherinfo' => 'Outras informações',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'Informações gerais',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notificação',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP usado',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Placas de rede contendo IP na faixa: <em>%1$s</em> para <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IPs livres',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IPs livres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Aqui uma faixa de 10 endereços IPs livres',
|
||||
'Class:Document:PreviewTab' => 'Visualização',
|
||||
'Server:baseinfo' => 'Informações gerais',
|
||||
'Server:Date' => 'Data',
|
||||
'Server:moreinfo' => 'Mais informações',
|
||||
'Server:otherinfo' => 'Outras informações',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'Informações gerais',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notificação',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP usado',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Placas de rede contendo IP na faixa: <em>%1$s</em> para <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IPs livres',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IPs livres: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Aqui uma faixa de 10 endereços IPs livres',
|
||||
'Class:Document:PreviewTab' => 'Visualização',
|
||||
));
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
@@ -1788,88 +1788,88 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
//
|
||||
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Menu:DataAdministration' => 'Администрирование данных',
|
||||
'Menu:DataAdministration+' => 'Администрирование данных',
|
||||
'Menu:Catalogs' => 'Каталоги',
|
||||
'Menu:Catalogs+' => 'Каталоги',
|
||||
'Menu:Audit' => 'Аудит',
|
||||
'Menu:Audit+' => 'Аудит',
|
||||
'Menu:CSVImport' => 'Импорт CSV',
|
||||
'Menu:CSVImport+' => 'Массовое создание или обновление объектов',
|
||||
'Menu:Organization' => 'Организации',
|
||||
'Menu:Organization+' => 'Все организации',
|
||||
'Menu:Application' => 'Приложения',
|
||||
'Menu:Application+' => 'Все приложения',
|
||||
'Menu:DBServer' => 'Серверы баз данных',
|
||||
'Menu:DBServer+' => 'Серверы баз данных',
|
||||
'Menu:ConfigManagement' => 'Управление конфигурациями',
|
||||
'Menu:ConfigManagement+' => 'Управление конфигурациями',
|
||||
'Menu:ConfigManagementOverview' => 'Обзор',
|
||||
'Menu:ConfigManagementOverview+' => 'Обзор',
|
||||
'Menu:Contact' => 'Контакты',
|
||||
'Menu:Contact+' => 'Контакты',
|
||||
'Menu:Contact:Count' => '%1$d Контактов',
|
||||
'Menu:Person' => 'Персоны',
|
||||
'Menu:Person+' => 'Все персоны',
|
||||
'Menu:Team' => 'Команды',
|
||||
'Menu:Team+' => 'Все команды',
|
||||
'Menu:Document' => 'Документы',
|
||||
'Menu:Document+' => 'Все документы',
|
||||
'Menu:Location' => 'Расположения',
|
||||
'Menu:DataAdministration' => 'Администрирование данных',
|
||||
'Menu:DataAdministration+' => 'Администрирование данных',
|
||||
'Menu:Catalogs' => 'Каталоги',
|
||||
'Menu:Catalogs+' => 'Каталоги',
|
||||
'Menu:Audit' => 'Аудит',
|
||||
'Menu:Audit+' => 'Аудит',
|
||||
'Menu:CSVImport' => 'Импорт CSV',
|
||||
'Menu:CSVImport+' => 'Массовое создание или обновление объектов',
|
||||
'Menu:Organization' => 'Организации',
|
||||
'Menu:Organization+' => 'Все организации',
|
||||
'Menu:Application' => 'Приложения',
|
||||
'Menu:Application+' => 'Все приложения',
|
||||
'Menu:DBServer' => 'Серверы баз данных',
|
||||
'Menu:DBServer+' => 'Серверы баз данных',
|
||||
'Menu:ConfigManagement' => 'Управление конфигурациями',
|
||||
'Menu:ConfigManagement+' => 'Управление конфигурациями',
|
||||
'Menu:ConfigManagementOverview' => 'Обзор',
|
||||
'Menu:ConfigManagementOverview+' => 'Обзор',
|
||||
'Menu:Contact' => 'Контакты',
|
||||
'Menu:Contact+' => 'Контакты',
|
||||
'Menu:Contact:Count' => '%1$d Контактов',
|
||||
'Menu:Person' => 'Персоны',
|
||||
'Menu:Person+' => 'Все персоны',
|
||||
'Menu:Team' => 'Команды',
|
||||
'Menu:Team+' => 'Все команды',
|
||||
'Menu:Document' => 'Документы',
|
||||
'Menu:Document+' => 'Все документы',
|
||||
'Menu:Location' => 'Расположения',
|
||||
|
||||
'Menu:Location+' => 'Все расположения',
|
||||
'Menu:ConfigManagementCI' => 'Конфигурационные единицы',
|
||||
'Menu:ConfigManagementCI+' => 'Конфигурационные единицы',
|
||||
'Menu:BusinessProcess' => 'Бизнес-процессы',
|
||||
'Menu:BusinessProcess+' => 'Все бизнес-процессы',
|
||||
'Menu:ApplicationSolution' => 'Прикладные решения',
|
||||
'Menu:ApplicationSolution+' => 'Все прикладные решения',
|
||||
'Menu:ConfigManagementSoftware' => 'Управление программным обеспечением',
|
||||
'Menu:Licence' => 'Лицензии',
|
||||
'Menu:Licence+' => 'Все лицензии',
|
||||
'Menu:Patch' => 'Патчи',
|
||||
'Menu:Patch+' => 'Все патчи',
|
||||
'Menu:ApplicationInstance' => 'Установленное ПО',
|
||||
'Menu:ApplicationInstance+' => 'Приложения и сервера БД',
|
||||
'Menu:ConfigManagementHardware' => 'Управление инфраструктурой',
|
||||
'Menu:Subnet' => 'Подсети',
|
||||
'Menu:Subnet+' => 'Все подсети',
|
||||
'Menu:NetworkDevice' => 'Сетевые устройства',
|
||||
'Menu:NetworkDevice+' => 'Все сетевые устройства',
|
||||
'Menu:Server' => 'Серверы',
|
||||
'Menu:Server+' => 'Все серверы',
|
||||
'Menu:Printer' => 'Принтеры',
|
||||
'Menu:Printer+' => 'Все принтеры',
|
||||
'Menu:MobilePhone' => 'Мобильные телефоны',
|
||||
'Menu:MobilePhone+' => 'Все мобильные телефоны',
|
||||
'Menu:PC' => 'Персональные компьютеры',
|
||||
'Menu:PC+' => 'Все ПК',
|
||||
'Menu:NewContact' => 'Новый контакт',
|
||||
'Menu:NewContact+' => 'Новый контакт',
|
||||
'Menu:SearchContacts' => 'Поиск контактов',
|
||||
'Menu:SearchContacts+' => 'Поиск контактов',
|
||||
'Menu:NewCI' => 'Новая КЕ',
|
||||
'Menu:NewCI+' => 'Новая КЕ',
|
||||
'Menu:SearchCIs' => 'Поиск КЕ',
|
||||
'Menu:SearchCIs+' => 'Поиск КЕ',
|
||||
'Menu:ConfigManagement:Devices' => 'Устройства',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Все устройства',
|
||||
'Menu:ConfigManagement:virtualization' => 'Виртуализация',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Пользовательские устройства',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Программное обеспечение и приложения',
|
||||
'Menu:ConfigManagement:Misc' => 'Разное',
|
||||
'Menu:Group' => 'Группы КЕ',
|
||||
'Menu:Group+' => 'Группы КЕ',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Ярлыки',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Все контакты: %1$d',
|
||||
'Menu:Typology' => 'Типология',
|
||||
'Menu:Typology+' => 'Типология',
|
||||
'Menu:OSVersion' => 'Версия ОС',
|
||||
'Menu:OSVersion+' => 'Версия ОС',
|
||||
'Menu:Software' => 'Каталог ПО',
|
||||
'Menu:Software+' => 'Каталог ПО',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Все конфигурационные единицы',
|
||||
'Menu:ConfigManagement:Typology' => 'Настройка типологии',
|
||||
'Menu:Location+' => 'Все расположения',
|
||||
'Menu:ConfigManagementCI' => 'Конфигурационные единицы',
|
||||
'Menu:ConfigManagementCI+' => 'Конфигурационные единицы',
|
||||
'Menu:BusinessProcess' => 'Бизнес-процессы',
|
||||
'Menu:BusinessProcess+' => 'Все бизнес-процессы',
|
||||
'Menu:ApplicationSolution' => 'Прикладные решения',
|
||||
'Menu:ApplicationSolution+' => 'Все прикладные решения',
|
||||
'Menu:ConfigManagementSoftware' => 'Управление программным обеспечением',
|
||||
'Menu:Licence' => 'Лицензии',
|
||||
'Menu:Licence+' => 'Все лицензии',
|
||||
'Menu:Patch' => 'Патчи',
|
||||
'Menu:Patch+' => 'Все патчи',
|
||||
'Menu:ApplicationInstance' => 'Установленное ПО',
|
||||
'Menu:ApplicationInstance+' => 'Приложения и сервера БД',
|
||||
'Menu:ConfigManagementHardware' => 'Управление инфраструктурой',
|
||||
'Menu:Subnet' => 'Подсети',
|
||||
'Menu:Subnet+' => 'Все подсети',
|
||||
'Menu:NetworkDevice' => 'Сетевые устройства',
|
||||
'Menu:NetworkDevice+' => 'Все сетевые устройства',
|
||||
'Menu:Server' => 'Серверы',
|
||||
'Menu:Server+' => 'Все серверы',
|
||||
'Menu:Printer' => 'Принтеры',
|
||||
'Menu:Printer+' => 'Все принтеры',
|
||||
'Menu:MobilePhone' => 'Мобильные телефоны',
|
||||
'Menu:MobilePhone+' => 'Все мобильные телефоны',
|
||||
'Menu:PC' => 'Персональные компьютеры',
|
||||
'Menu:PC+' => 'Все ПК',
|
||||
'Menu:NewContact' => 'Новый контакт',
|
||||
'Menu:NewContact+' => 'Новый контакт',
|
||||
'Menu:SearchContacts' => 'Поиск контактов',
|
||||
'Menu:SearchContacts+' => 'Поиск контактов',
|
||||
'Menu:NewCI' => 'Новая КЕ',
|
||||
'Menu:NewCI+' => 'Новая КЕ',
|
||||
'Menu:SearchCIs' => 'Поиск КЕ',
|
||||
'Menu:SearchCIs+' => 'Поиск КЕ',
|
||||
'Menu:ConfigManagement:Devices' => 'Устройства',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Все устройства',
|
||||
'Menu:ConfigManagement:virtualization' => 'Виртуализация',
|
||||
'Menu:ConfigManagement:EndUsers' => 'Пользовательские устройства',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Программное обеспечение и приложения',
|
||||
'Menu:ConfigManagement:Misc' => 'Разное',
|
||||
'Menu:Group' => 'Группы КЕ',
|
||||
'Menu:Group+' => 'Группы КЕ',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Ярлыки',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Все контакты: %1$d',
|
||||
'Menu:Typology' => 'Типология',
|
||||
'Menu:Typology+' => 'Типология',
|
||||
'Menu:OSVersion' => 'Версия ОС',
|
||||
'Menu:OSVersion+' => 'Версия ОС',
|
||||
'Menu:Software' => 'Каталог ПО',
|
||||
'Menu:Software+' => 'Каталог ПО',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Все конфигурационные единицы',
|
||||
'Menu:ConfigManagement:Typology' => 'Настройка типологии',
|
||||
|
||||
));
|
||||
|
||||
@@ -1877,18 +1877,18 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Server:baseinfo' => 'Основное',
|
||||
'Server:Date' => 'Даты',
|
||||
'Server:moreinfo' => 'Спецификация',
|
||||
'Server:otherinfo' => 'Дополнительно',
|
||||
'Server:power' => 'Электропитание',
|
||||
'Person:info' => 'Основное',
|
||||
'Person:personal_info' => 'Персональная информация',
|
||||
'Person:notifiy' => 'Уведомления',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Использование IP-адресов',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Интерфейсы с IP-адресом в диапазоне: <em>%1$s</em> - <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Свободные IP-адреса',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Свободных IP-адресов: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Вот выборка из 10 свободных IP-адресов',
|
||||
'Class:Document:PreviewTab' => 'Просмотр',
|
||||
'Server:baseinfo' => 'Основное',
|
||||
'Server:Date' => 'Даты',
|
||||
'Server:moreinfo' => 'Спецификация',
|
||||
'Server:otherinfo' => 'Дополнительно',
|
||||
'Server:power' => 'Электропитание',
|
||||
'Person:info' => 'Основное',
|
||||
'Person:personal_info' => 'Персональная информация',
|
||||
'Person:notifiy' => 'Уведомления',
|
||||
'Class:Subnet/Tab:IPUsage' => 'Использование IP-адресов',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => 'Интерфейсы с IP-адресом в диапазоне: <em>%1$s</em> - <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Свободные IP-адреса',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Свободных IP-адресов: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Вот выборка из 10 свободных IP-адресов',
|
||||
'Class:Document:PreviewTab' => 'Просмотр',
|
||||
));
|
||||
|
||||
@@ -1802,88 +1802,88 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
//
|
||||
|
||||
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Menu:DataAdministration' => 'Veri Yönetimi',
|
||||
'Menu:DataAdministration+' => 'Veri Yönetimi',
|
||||
'Menu:Catalogs' => 'Kataloglar',
|
||||
'Menu:Catalogs+' => 'Veri tipleri',
|
||||
'Menu:Audit' => 'Denetleme',
|
||||
'Menu:Audit+' => 'Denetleme',
|
||||
'Menu:CSVImport' => 'CSV dışardan al',
|
||||
'Menu:CSVImport+' => 'Çoklu yaratım veya güncelleme',
|
||||
'Menu:Organization' => 'Kurumlar',
|
||||
'Menu:Organization+' => 'Tüm Kurumlar',
|
||||
'Menu:Application' => 'Uygulamalar',
|
||||
'Menu:Application+' => 'Tüm Uygulamalar',
|
||||
'Menu:DBServer' => 'Veritabanı sunucuları',
|
||||
'Menu:DBServer+' => 'Veritabanı sunucuları',
|
||||
'Menu:ConfigManagement' => 'Konfigürasyon Yönetimi',
|
||||
'Menu:ConfigManagement+' => 'Konfigürasyon Yönetimi',
|
||||
'Menu:ConfigManagementOverview' => 'Özet',
|
||||
'Menu:ConfigManagementOverview+' => 'Özet',
|
||||
'Menu:Contact' => 'İrtibatlar',
|
||||
'Menu:Contact+' => 'İrtibatlar',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => 'Kişiler',
|
||||
'Menu:Person+' => 'Tüm Kişiler',
|
||||
'Menu:Team' => 'Ekipler',
|
||||
'Menu:Team+' => 'Tüm ekipler',
|
||||
'Menu:Document' => 'Dokümanlar',
|
||||
'Menu:Document+' => 'Tüm dokümanlar',
|
||||
'Menu:Location' => 'Yerleşkeler',
|
||||
'Menu:DataAdministration' => 'Veri Yönetimi',
|
||||
'Menu:DataAdministration+' => 'Veri Yönetimi',
|
||||
'Menu:Catalogs' => 'Kataloglar',
|
||||
'Menu:Catalogs+' => 'Veri tipleri',
|
||||
'Menu:Audit' => 'Denetleme',
|
||||
'Menu:Audit+' => 'Denetleme',
|
||||
'Menu:CSVImport' => 'CSV dışardan al',
|
||||
'Menu:CSVImport+' => 'Çoklu yaratım veya güncelleme',
|
||||
'Menu:Organization' => 'Kurumlar',
|
||||
'Menu:Organization+' => 'Tüm Kurumlar',
|
||||
'Menu:Application' => 'Uygulamalar',
|
||||
'Menu:Application+' => 'Tüm Uygulamalar',
|
||||
'Menu:DBServer' => 'Veritabanı sunucuları',
|
||||
'Menu:DBServer+' => 'Veritabanı sunucuları',
|
||||
'Menu:ConfigManagement' => 'Konfigürasyon Yönetimi',
|
||||
'Menu:ConfigManagement+' => 'Konfigürasyon Yönetimi',
|
||||
'Menu:ConfigManagementOverview' => 'Özet',
|
||||
'Menu:ConfigManagementOverview+' => 'Özet',
|
||||
'Menu:Contact' => 'İrtibatlar',
|
||||
'Menu:Contact+' => 'İrtibatlar',
|
||||
'Menu:Contact:Count' => '%1$d',
|
||||
'Menu:Person' => 'Kişiler',
|
||||
'Menu:Person+' => 'Tüm Kişiler',
|
||||
'Menu:Team' => 'Ekipler',
|
||||
'Menu:Team+' => 'Tüm ekipler',
|
||||
'Menu:Document' => 'Dokümanlar',
|
||||
'Menu:Document+' => 'Tüm dokümanlar',
|
||||
'Menu:Location' => 'Yerleşkeler',
|
||||
|
||||
'Menu:Location+' => 'Tüm Yerleşkeler',
|
||||
'Menu:ConfigManagementCI' => 'Konfigürasyon Kalemleri',
|
||||
'Menu:ConfigManagementCI+' => 'Konfigürasyon Kalemleri',
|
||||
'Menu:BusinessProcess' => 'İş süreçleri',
|
||||
'Menu:BusinessProcess+' => 'Tüm İş süreçleri',
|
||||
'Menu:ApplicationSolution' => 'Uygulama çözümleri',
|
||||
'Menu:ApplicationSolution+' => 'Tüm Uygulama çözümleri',
|
||||
'Menu:ConfigManagementSoftware' => 'Uygulama Yönetimi',
|
||||
'Menu:Licence' => 'Lisanslar',
|
||||
'Menu:Licence+' => 'Tüm Lisanslar',
|
||||
'Menu:Patch' => 'Yamalar',
|
||||
'Menu:Patch+' => 'Tüm Yamalar',
|
||||
'Menu:ApplicationInstance' => 'Yüklenen yazılımlar',
|
||||
'Menu:ApplicationInstance+' => 'Uygulama ve Veritabanı sunucuları',
|
||||
'Menu:ConfigManagementHardware' => 'Altyapı Yönetimi',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'All Subnets',
|
||||
'Menu:NetworkDevice' => 'Network cihazları',
|
||||
'Menu:NetworkDevice+' => 'Tüm Network cihazları',
|
||||
'Menu:Server' => 'Sunucular',
|
||||
'Menu:Server+' => 'Tüm Sunucular',
|
||||
'Menu:Printer' => 'Yazıcılar',
|
||||
'Menu:Printer+' => 'Tüm Yazıcılar',
|
||||
'Menu:MobilePhone' => 'Cep Telefonları',
|
||||
'Menu:MobilePhone+' => 'Tüm Cep Telefonları',
|
||||
'Menu:PC' => 'Kişisel Bilgisayarlar',
|
||||
'Menu:PC+' => 'Tüm Kişisel Bilgisayarlar',
|
||||
'Menu:NewContact' => 'Yeni İrtibat',
|
||||
'Menu:NewContact+' => 'Yeni İrtibat',
|
||||
'Menu:SearchContacts' => 'İrtibat ara',
|
||||
'Menu:SearchContacts+' => 'İrtibat ara',
|
||||
'Menu:NewCI' => 'Yeni KK',
|
||||
'Menu:NewCI+' => 'Yeni KK',
|
||||
'Menu:SearchCIs' => 'KK ara',
|
||||
'Menu:SearchCIs+' => 'KK ara',
|
||||
'Menu:ConfigManagement:Devices' => 'Cihazlar',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Altyapı',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Yazılım ve uygulamalar',
|
||||
'Menu:ConfigManagement:Misc' => 'Diğer',
|
||||
'Menu:Group' => 'KK Grupları',
|
||||
'Menu:Group+' => 'KK Grupları',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Kısalyollar',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tüm irtibatlar: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
'Menu:Location+' => 'Tüm Yerleşkeler',
|
||||
'Menu:ConfigManagementCI' => 'Konfigürasyon Kalemleri',
|
||||
'Menu:ConfigManagementCI+' => 'Konfigürasyon Kalemleri',
|
||||
'Menu:BusinessProcess' => 'İş süreçleri',
|
||||
'Menu:BusinessProcess+' => 'Tüm İş süreçleri',
|
||||
'Menu:ApplicationSolution' => 'Uygulama çözümleri',
|
||||
'Menu:ApplicationSolution+' => 'Tüm Uygulama çözümleri',
|
||||
'Menu:ConfigManagementSoftware' => 'Uygulama Yönetimi',
|
||||
'Menu:Licence' => 'Lisanslar',
|
||||
'Menu:Licence+' => 'Tüm Lisanslar',
|
||||
'Menu:Patch' => 'Yamalar',
|
||||
'Menu:Patch+' => 'Tüm Yamalar',
|
||||
'Menu:ApplicationInstance' => 'Yüklenen yazılımlar',
|
||||
'Menu:ApplicationInstance+' => 'Uygulama ve Veritabanı sunucuları',
|
||||
'Menu:ConfigManagementHardware' => 'Altyapı Yönetimi',
|
||||
'Menu:Subnet' => 'Subnets',
|
||||
'Menu:Subnet+' => 'All Subnets',
|
||||
'Menu:NetworkDevice' => 'Network cihazları',
|
||||
'Menu:NetworkDevice+' => 'Tüm Network cihazları',
|
||||
'Menu:Server' => 'Sunucular',
|
||||
'Menu:Server+' => 'Tüm Sunucular',
|
||||
'Menu:Printer' => 'Yazıcılar',
|
||||
'Menu:Printer+' => 'Tüm Yazıcılar',
|
||||
'Menu:MobilePhone' => 'Cep Telefonları',
|
||||
'Menu:MobilePhone+' => 'Tüm Cep Telefonları',
|
||||
'Menu:PC' => 'Kişisel Bilgisayarlar',
|
||||
'Menu:PC+' => 'Tüm Kişisel Bilgisayarlar',
|
||||
'Menu:NewContact' => 'Yeni İrtibat',
|
||||
'Menu:NewContact+' => 'Yeni İrtibat',
|
||||
'Menu:SearchContacts' => 'İrtibat ara',
|
||||
'Menu:SearchContacts+' => 'İrtibat ara',
|
||||
'Menu:NewCI' => 'Yeni KK',
|
||||
'Menu:NewCI+' => 'Yeni KK',
|
||||
'Menu:SearchCIs' => 'KK ara',
|
||||
'Menu:SearchCIs+' => 'KK ara',
|
||||
'Menu:ConfigManagement:Devices' => 'Cihazlar',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Altyapı',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualization~~',
|
||||
'Menu:ConfigManagement:EndUsers' => 'End user devices~~',
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Yazılım ve uygulamalar',
|
||||
'Menu:ConfigManagement:Misc' => 'Diğer',
|
||||
'Menu:Group' => 'KK Grupları',
|
||||
'Menu:Group+' => 'KK Grupları',
|
||||
'Menu:ConfigManagement:Shortcuts' => 'Kısalyollar',
|
||||
'Menu:ConfigManagement:AllContacts' => 'Tüm irtibatlar: %1$d',
|
||||
'Menu:Typology' => 'Typology configuration~~',
|
||||
'Menu:Typology+' => 'Typology configuration~~',
|
||||
'Menu:OSVersion' => 'OS versions~~',
|
||||
'Menu:OSVersion+' => '~~',
|
||||
'Menu:Software' => 'Software catalog~~',
|
||||
'Menu:Software+' => 'Software catalog~~',
|
||||
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
|
||||
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
|
||||
|
||||
));
|
||||
|
||||
@@ -1891,18 +1891,18 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Kullanımı',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => '<em>%1$s</em> - <em>%2$s</em> aralığındaki IPye sahip arayüzler',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Boş IPler',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Boş IPler: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Boş IP adresleri',
|
||||
'Class:Document:PreviewTab' => 'Ön görünüm',
|
||||
'Server:baseinfo' => 'General information~~',
|
||||
'Server:Date' => 'Dates~~',
|
||||
'Server:moreinfo' => 'More information~~',
|
||||
'Server:otherinfo' => 'Other information~~',
|
||||
'Server:power' => 'Power supply~~',
|
||||
'Person:info' => 'General information~~',
|
||||
'Person:personal_info' => 'Personal information~~',
|
||||
'Person:notifiy' => 'Notification~~',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP Kullanımı',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => '<em>%1$s</em> - <em>%2$s</em> aralığındaki IPye sahip arayüzler',
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Boş IPler',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Boş IPler: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Boş IP adresleri',
|
||||
'Class:Document:PreviewTab' => 'Ön görünüm',
|
||||
));
|
||||
|
||||
@@ -20,12 +20,10 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Relations
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Relation:impacts/Description' => '被影响的元素',
|
||||
'Relation:impacts/DownStream' => '影响...',
|
||||
@@ -104,10 +102,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Organization/Attribute:deliverymodel_name+' => '',
|
||||
'Class:Organization/Attribute:parent_id_friendlyname' => '上级组织',
|
||||
'Class:Organization/Attribute:parent_id_friendlyname+' => '上级组织',
|
||||
'Class:Organization/Attribute:overview' => 'Overview~~',
|
||||
'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~',
|
||||
'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~',
|
||||
'Organization:Overview:Users' => 'iTop Users within this organization~~',
|
||||
'Class:Organization/Attribute:overview' => '概览',
|
||||
'Organization:Overview:FunctionalCIs' => '该组织的所有配置项',
|
||||
'Organization:Overview:FunctionalCIs:subtitle' => '按类型',
|
||||
'Organization:Overview:Users' => '该组织里所有的iTop 用户',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -175,8 +173,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Contact/Attribute:function' => '职责',
|
||||
'Class:Contact/Attribute:function+' => '',
|
||||
'Class:Contact/Attribute:cis_list' => '配置项',
|
||||
'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact',
|
||||
'Class:Contact/Attribute:finalclass' => 'Contact sub-class',
|
||||
'Class:Contact/Attribute:cis_list+' => '该联系人关联的所有配置项',
|
||||
'Class:Contact/Attribute:finalclass' => '联系人子类别',
|
||||
'Class:Contact/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -207,7 +205,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Person/Attribute:team_list+' => '这个人归属的所有团队',
|
||||
'Class:Person/Attribute:tickets_list' => '工单',
|
||||
'Class:Person/Attribute:tickets_list+' => '这个人发起的所有工单',
|
||||
'Class:Person/Attribute:manager_id_friendlyname' => 'Manager friendly name',
|
||||
'Class:Person/Attribute:manager_id_friendlyname' => '经理姓名',
|
||||
'Class:Person/Attribute:manager_id_friendlyname+' => '',
|
||||
'Class:Person/Attribute:picture' => '头像',
|
||||
'Class:Person/Attribute:picture+' => '',
|
||||
@@ -245,7 +243,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Document/Attribute:org_name+' => '',
|
||||
'Class:Document/Attribute:documenttype_id' => '文档类型',
|
||||
'Class:Document/Attribute:documenttype_id+' => '',
|
||||
'Class:Document/Attribute:documenttype_name' => 'Document type name',
|
||||
'Class:Document/Attribute:documenttype_name' => '文档类型名称',
|
||||
'Class:Document/Attribute:documenttype_name+' => '',
|
||||
'Class:Document/Attribute:version' => '版本',
|
||||
'Class:Document/Attribute:version+' => '',
|
||||
@@ -259,13 +257,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Document/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Document/Attribute:status/Value:published' => '已发布',
|
||||
'Class:Document/Attribute:status/Value:published+' => '',
|
||||
'Class:Document/Attribute:cis_list' => 'CIs~~',
|
||||
'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document~~',
|
||||
'Class:Document/Attribute:contracts_list' => 'Contracts~~',
|
||||
'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document~~',
|
||||
'Class:Document/Attribute:services_list' => 'Services~~',
|
||||
'Class:Document/Attribute:services_list+' => 'All the services linked to this document~~',
|
||||
'Class:Document/Attribute:finalclass' => 'Document sub-class',
|
||||
'Class:Document/Attribute:cis_list' => '配置项',
|
||||
'Class:Document/Attribute:cis_list+' => '该文档关联的所有配置项',
|
||||
'Class:Document/Attribute:contracts_list' => '合同',
|
||||
'Class:Document/Attribute:contracts_list+' => '该文档关联的所有合同',
|
||||
'Class:Document/Attribute:services_list' => '服务',
|
||||
'Class:Document/Attribute:services_list+' => '该文档关联的所有服务',
|
||||
'Class:Document/Attribute:finalclass' => '文档子类别',
|
||||
'Class:Document/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -530,17 +528,17 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Server' => '服务器',
|
||||
'Class:Server+' => '',
|
||||
'Class:Server/Attribute:osfamily_id' => 'OS家族',
|
||||
'Class:Server/Attribute:osfamily_id' => '操作系统家族',
|
||||
'Class:Server/Attribute:osfamily_id+' => '',
|
||||
'Class:Server/Attribute:osfamily_name' => 'OS家族名称',
|
||||
'Class:Server/Attribute:osfamily_name' => '操作系统家族名称',
|
||||
'Class:Server/Attribute:osfamily_name+' => '',
|
||||
'Class:Server/Attribute:osversion_id' => 'OS版本',
|
||||
'Class:Server/Attribute:osversion_id' => '操作系统版本',
|
||||
'Class:Server/Attribute:osversion_id+' => '',
|
||||
'Class:Server/Attribute:osversion_name' => 'OS版本名称',
|
||||
'Class:Server/Attribute:osversion_name' => '操作系统版本名称',
|
||||
'Class:Server/Attribute:osversion_name+' => '',
|
||||
'Class:Server/Attribute:oslicence_id' => 'OS许可证',
|
||||
'Class:Server/Attribute:oslicence_id' => '操作系统许可证',
|
||||
'Class:Server/Attribute:oslicence_id+' => '',
|
||||
'Class:Server/Attribute:oslicence_name' => 'OS许可证名称',
|
||||
'Class:Server/Attribute:oslicence_name' => '操作系统许可证名称',
|
||||
'Class:Server/Attribute:oslicence_name+' => '',
|
||||
'Class:Server/Attribute:cpu' => 'CPU',
|
||||
'Class:Server/Attribute:cpu+' => '',
|
||||
@@ -601,13 +599,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:PC' => 'PC',
|
||||
'Class:PC+' => '',
|
||||
'Class:PC/Attribute:osfamily_id' => 'OS家族',
|
||||
'Class:PC/Attribute:osfamily_id' => '操作系统家族',
|
||||
'Class:PC/Attribute:osfamily_id+' => '',
|
||||
'Class:PC/Attribute:osfamily_name' => 'OS 家族名称',
|
||||
'Class:PC/Attribute:osfamily_name' => '操作系统家族名称',
|
||||
'Class:PC/Attribute:osfamily_name+' => '',
|
||||
'Class:PC/Attribute:osversion_id' => 'OS版本',
|
||||
'Class:PC/Attribute:osversion_id' => '操作系统版本',
|
||||
'Class:PC/Attribute:osversion_id+' => '',
|
||||
'Class:PC/Attribute:osversion_name' => 'OS 版本名称',
|
||||
'Class:PC/Attribute:osversion_name' => '操作系统版本名称',
|
||||
'Class:PC/Attribute:osversion_name+' => '',
|
||||
'Class:PC/Attribute:cpu' => 'CPU',
|
||||
'Class:PC/Attribute:cpu+' => '',
|
||||
@@ -701,9 +699,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:ApplicationSolution' => '应用方案',
|
||||
'Class:ApplicationSolution+' => '',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list' => '配置项',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '该应用方案包含的所有配置项',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list' => '业务流程',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'All the business processes depending on this application solution',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '所有依赖该应用方案的业务流程',
|
||||
'Class:ApplicationSolution/Attribute:status' => '状态',
|
||||
'Class:ApplicationSolution/Attribute:status+' => '',
|
||||
'Class:ApplicationSolution/Attribute:status/Value:active' => '启用',
|
||||
@@ -724,7 +722,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:BusinessProcess' => '业务流程',
|
||||
'Class:BusinessProcess+' => '',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list' => '应用方案',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'All the application solutions that impact this business process',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => '所有影响该业务流程的应用方案',
|
||||
'Class:BusinessProcess/Attribute:status' => '状态',
|
||||
'Class:BusinessProcess/Attribute:status+' => '',
|
||||
'Class:BusinessProcess/Attribute:status/Value:active' => '启用',
|
||||
@@ -912,11 +910,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Farm' => '集群',
|
||||
'Class:Farm+' => '',
|
||||
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisor',
|
||||
'Class:Farm/Attribute:hypervisor_list+' => '集群由哪些 Hypervisor 组成',
|
||||
'Class:Farm/Attribute:hypervisor_list+' => '集群由哪些Hypervisor 组成',
|
||||
'Class:Farm/Attribute:redundancy' => '高可用性',
|
||||
'Class:Farm/Attribute:redundancy/disabled' => '所有 Hypervisor 正常,集群才正常',
|
||||
'Class:Farm/Attribute:redundancy/count' => '至少 %1$s 个 Hypervisor 是正常的,集群才是正常的',
|
||||
'Class:Farm/Attribute:redundancy/percent' => '至少 %1$s %% 的 Hypervisor 是正常的,集群才正常',
|
||||
'Class:Farm/Attribute:redundancy/disabled' => '所有Hypervisor 正常,集群才正常',
|
||||
'Class:Farm/Attribute:redundancy/count' => '至少 %1$s 个Hypervisor 是正常的,集群才是正常的',
|
||||
'Class:Farm/Attribute:redundancy/percent' => '至少 %1$s %% 的Hypervisor 是正常的,集群才正常',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -930,15 +928,15 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:VirtualMachine/Attribute:virtualhost_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:virtualhost_name' => '名称',
|
||||
'Class:VirtualMachine/Attribute:virtualhost_name+' => '',
|
||||
'Class:VirtualMachine/Attribute:osfamily_id' => 'OS家族',
|
||||
'Class:VirtualMachine/Attribute:osfamily_id' => '操作系统家族',
|
||||
'Class:VirtualMachine/Attribute:osfamily_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:osfamily_name' => '名称',
|
||||
'Class:VirtualMachine/Attribute:osfamily_name+' => '',
|
||||
'Class:VirtualMachine/Attribute:osversion_id' => 'OS版本',
|
||||
'Class:VirtualMachine/Attribute:osversion_id' => '操作系统版本',
|
||||
'Class:VirtualMachine/Attribute:osversion_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:osversion_name' => '名称',
|
||||
'Class:VirtualMachine/Attribute:osversion_name+' => '',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id' => 'OS许可证',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id' => '操作系统许可证',
|
||||
'Class:VirtualMachine/Attribute:oslicence_id+' => '',
|
||||
'Class:VirtualMachine/Attribute:oslicence_name' => '名称',
|
||||
'Class:VirtualMachine/Attribute:oslicence_name+' => '',
|
||||
@@ -1098,7 +1096,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Software/Attribute:type/Value:DBServer' => '数据库服务器',
|
||||
'Class:Software/Attribute:type/Value:DBServer+' => 'DB Server',
|
||||
'Class:Software/Attribute:type/Value:Middleware' => '中间件',
|
||||
'Class:Software/Attribute:type/Value:Middleware+' => 'Middleware',
|
||||
'Class:Software/Attribute:type/Value:Middleware+' => '中间件',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware' => '其它软件',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware+' => '其它软件',
|
||||
'Class:Software/Attribute:type/Value:PCSoftware' => 'PC 软件',
|
||||
@@ -1126,7 +1124,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Patch/Attribute:documents_list+' => '该补丁关联的所有文档',
|
||||
'Class:Patch/Attribute:description' => '描述',
|
||||
'Class:Patch/Attribute:description+' => '',
|
||||
'Class:Patch/Attribute:finalclass' => 'Patch sub-class',
|
||||
'Class:Patch/Attribute:finalclass' => '补丁子类别',
|
||||
'Class:Patch/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -1135,11 +1133,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:OSPatch' => 'OS 补丁',
|
||||
'Class:OSPatch' => '操作系统补丁',
|
||||
'Class:OSPatch+' => '',
|
||||
'Class:OSPatch/Attribute:functionalcis_list' => '设备',
|
||||
'Class:OSPatch/Attribute:functionalcis_list+' => '已安装该补丁的所有系统',
|
||||
'Class:OSPatch/Attribute:osversion_id' => 'OS 版本',
|
||||
'Class:OSPatch/Attribute:osversion_id' => '操作系统版本',
|
||||
'Class:OSPatch/Attribute:osversion_id+' => '',
|
||||
'Class:OSPatch/Attribute:osversion_name' => '名称',
|
||||
'Class:OSPatch/Attribute:osversion_name+' => '',
|
||||
@@ -1188,10 +1186,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Licence/Attribute:perpetual' => '永久有效',
|
||||
'Class:Licence/Attribute:perpetual+' => '',
|
||||
'Class:Licence/Attribute:perpetual/Value:no' => '否',
|
||||
'Class:Licence/Attribute:perpetual/Value:no+' => 'no',
|
||||
'Class:Licence/Attribute:perpetual/Value:no+' => '否',
|
||||
'Class:Licence/Attribute:perpetual/Value:yes' => '是',
|
||||
'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes',
|
||||
'Class:Licence/Attribute:finalclass' => 'Licence sub-class',
|
||||
'Class:Licence/Attribute:perpetual/Value:yes+' => '是',
|
||||
'Class:Licence/Attribute:finalclass' => '许可证子类别',
|
||||
'Class:Licence/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -1200,9 +1198,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:OSLicence' => 'OS 许可证',
|
||||
'Class:OSLicence' => '操作系统许可证',
|
||||
'Class:OSLicence+' => '',
|
||||
'Class:OSLicence/Attribute:osversion_id' => 'OS 版本',
|
||||
'Class:OSLicence/Attribute:osversion_id' => '操作系统版本',
|
||||
'Class:OSLicence/Attribute:osversion_id+' => '',
|
||||
'Class:OSLicence/Attribute:osversion_name' => '名称',
|
||||
'Class:OSLicence/Attribute:osversion_name+' => '',
|
||||
@@ -1217,7 +1215,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:SoftwareLicence' => 'Software Licence',
|
||||
'Class:SoftwareLicence' => '软件许可证',
|
||||
'Class:SoftwareLicence+' => '',
|
||||
'Class:SoftwareLicence/Attribute:software_id' => '软件',
|
||||
'Class:SoftwareLicence/Attribute:software_id+' => '',
|
||||
@@ -1253,7 +1251,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Typology+' => '',
|
||||
'Class:Typology/Attribute:name' => '名称',
|
||||
'Class:Typology/Attribute:name+' => '',
|
||||
'Class:Typology/Attribute:finalclass' => 'Typology sub-class',
|
||||
'Class:Typology/Attribute:finalclass' => '拓扑子类别',
|
||||
'Class:Typology/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -1262,9 +1260,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:OSVersion' => 'OS 版本',
|
||||
'Class:OSVersion' => '操作系统版本',
|
||||
'Class:OSVersion+' => '',
|
||||
'Class:OSVersion/Attribute:osfamily_id' => 'OS家族',
|
||||
'Class:OSVersion/Attribute:osfamily_id' => '操作系统家族',
|
||||
'Class:OSVersion/Attribute:osfamily_id+' => '',
|
||||
'Class:OSVersion/Attribute:osfamily_name' => '名称',
|
||||
'Class:OSVersion/Attribute:osfamily_name+' => '',
|
||||
@@ -1275,7 +1273,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:OSFamily' => 'OS家族',
|
||||
'Class:OSFamily' => '操作系统家族',
|
||||
'Class:OSFamily+' => '',
|
||||
));
|
||||
|
||||
@@ -1293,7 +1291,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:ContactType' => '合同类型',
|
||||
'Class:ContactType' => '联系人类型',
|
||||
'Class:ContactType+' => '',
|
||||
));
|
||||
|
||||
@@ -1306,8 +1304,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Brand+' => '',
|
||||
'Class:Brand/Attribute:physicaldevices_list' => '物理设备',
|
||||
'Class:Brand/Attribute:physicaldevices_list+' => '该品牌的所有物理设备',
|
||||
'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~',
|
||||
'Class:Brand/UniquenessRule:name' => 'This brand already exists~~',
|
||||
'Class:Brand/UniquenessRule:name+' => '名称必须唯一',
|
||||
'Class:Brand/UniquenessRule:name' => '该品牌已存在',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1361,8 +1359,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Model/Attribute:type/Value:Phone+' => '电话',
|
||||
'Class:Model/Attribute:physicaldevices_list' => '物理设备',
|
||||
'Class:Model/Attribute:physicaldevices_list+' => '该型号的所有物理设备',
|
||||
'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~',
|
||||
'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~',
|
||||
'Class:Model/UniquenessRule:name_brand+' => '名称必须唯一',
|
||||
'Class:Model/UniquenessRule:name_brand' => '该型号已存在',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1428,11 +1426,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:lnkFunctionalCIToOSPatch' => '链接 功能项 / OS 补丁',
|
||||
'Class:lnkFunctionalCIToOSPatch' => '链接 功能项 / 操作系统补丁',
|
||||
'Class:lnkFunctionalCIToOSPatch+' => '',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id' => 'OS 补丁',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id' => '操作系统补丁',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id+' => '',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_name' => 'OS 补丁名称',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_name' => '操作系统补丁名称',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_name+' => '',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id' => '功能项',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '',
|
||||
@@ -1505,10 +1503,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:Subnet/Attribute:org_id' => '所属组织',
|
||||
'Class:Subnet/Attribute:org_id+' => '',
|
||||
'Class:Subnet/Attribute:org_name' => '名称',
|
||||
'Class:Subnet/Attribute:org_name+' => 'Common name',
|
||||
'Class:Subnet/Attribute:org_name+' => '名称',
|
||||
'Class:Subnet/Attribute:ip' => 'IP',
|
||||
'Class:Subnet/Attribute:ip+' => '',
|
||||
'Class:Subnet/Attribute:ip_mask' => 'IP 掩码',
|
||||
'Class:Subnet/Attribute:ip_mask' => '掩码',
|
||||
'Class:Subnet/Attribute:ip_mask+' => '',
|
||||
'Class:Subnet/Attribute:vlans_list' => 'VLAN',
|
||||
'Class:Subnet/Attribute:vlans_list+' => '',
|
||||
@@ -1563,7 +1561,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:NetworkInterface+' => '',
|
||||
'Class:NetworkInterface/Attribute:name' => '名称',
|
||||
'Class:NetworkInterface/Attribute:name+' => '',
|
||||
'Class:NetworkInterface/Attribute:finalclass' => 'NetworkInterface sub-class',
|
||||
'Class:NetworkInterface/Attribute:finalclass' => '网卡子类别',
|
||||
'Class:NetworkInterface/Attribute:finalclass+' => 'Name of the final class',
|
||||
));
|
||||
|
||||
@@ -1576,8 +1574,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:IPInterface+' => '',
|
||||
'Class:IPInterface/Attribute:ipaddress' => 'IP 地址',
|
||||
'Class:IPInterface/Attribute:ipaddress+' => '',
|
||||
|
||||
|
||||
|
||||
|
||||
'Class:IPInterface/Attribute:macaddress' => 'MAC 地址',
|
||||
'Class:IPInterface/Attribute:macaddress+' => '',
|
||||
'Class:IPInterface/Attribute:comment' => '注释',
|
||||
@@ -1681,9 +1679,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type' => '连接类型',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type+' => '',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink' => '下联',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => '下联',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => '上联',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => '上联',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1802,88 +1800,88 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Menu:DataAdministration' => '数据管理',
|
||||
'Menu:DataAdministration+' => '数据管理',
|
||||
'Menu:Catalogs' => '类别',
|
||||
'Menu:Catalogs+' => '数据类型',
|
||||
'Menu:Audit' => '审计',
|
||||
'Menu:Audit+' => '审计',
|
||||
'Menu:CSVImport' => 'CSV 导入',
|
||||
'Menu:CSVImport+' => '批量创建或更新',
|
||||
'Menu:Organization' => '组织',
|
||||
'Menu:Organization+' => '所有组织',
|
||||
'Menu:Application' => '应用',
|
||||
'Menu:Application+' => '所有应用',
|
||||
'Menu:DBServer' => '数据库服务器',
|
||||
'Menu:DBServer+' => '数据库服务器',
|
||||
'Menu:ConfigManagement' => '配置管理',
|
||||
'Menu:ConfigManagement+' => '配置管理',
|
||||
'Menu:ConfigManagementOverview' => '概览',
|
||||
'Menu:ConfigManagementOverview+' => '概览',
|
||||
'Menu:Contact' => '联系人',
|
||||
'Menu:Contact+' => '联系人',
|
||||
'Menu:Contact:Count' => '%1$d 个联系人',
|
||||
'Menu:Person' => '个体',
|
||||
'Menu:Person+' => '所有个体',
|
||||
'Menu:Team' => '团队',
|
||||
'Menu:Team+' => '所有团队',
|
||||
'Menu:Document' => '文档',
|
||||
'Menu:Document+' => '所有文档',
|
||||
'Menu:Location' => '地理位置',
|
||||
'Menu:DataAdministration' => '数据管理',
|
||||
'Menu:DataAdministration+' => '数据管理',
|
||||
'Menu:Catalogs' => '类别',
|
||||
'Menu:Catalogs+' => '数据类型',
|
||||
'Menu:Audit' => '审计',
|
||||
'Menu:Audit+' => '审计',
|
||||
'Menu:CSVImport' => 'CSV 导入',
|
||||
'Menu:CSVImport+' => '批量创建或更新',
|
||||
'Menu:Organization' => '组织',
|
||||
'Menu:Organization+' => '所有组织',
|
||||
'Menu:Application' => '应用',
|
||||
'Menu:Application+' => '所有应用',
|
||||
'Menu:DBServer' => '数据库服务器',
|
||||
'Menu:DBServer+' => '数据库服务器',
|
||||
'Menu:ConfigManagement' => '配置管理',
|
||||
'Menu:ConfigManagement+' => '配置管理',
|
||||
'Menu:ConfigManagementOverview' => '概览',
|
||||
'Menu:ConfigManagementOverview+' => '概览',
|
||||
'Menu:Contact' => '联系人',
|
||||
'Menu:Contact+' => '联系人',
|
||||
'Menu:Contact:Count' => '%1$d 个联系人',
|
||||
'Menu:Person' => '个体',
|
||||
'Menu:Person+' => '所有个体',
|
||||
'Menu:Team' => '团队',
|
||||
'Menu:Team+' => '所有团队',
|
||||
'Menu:Document' => '文档',
|
||||
'Menu:Document+' => '所有文档',
|
||||
'Menu:Location' => '地理位置',
|
||||
|
||||
'Menu:Location+' => '所有位置',
|
||||
'Menu:ConfigManagementCI' => '配置项',
|
||||
'Menu:ConfigManagementCI+' => '配置项',
|
||||
'Menu:BusinessProcess' => '业务流程',
|
||||
'Menu:BusinessProcess+' => '所有业务流程',
|
||||
'Menu:ApplicationSolution' => '应用方案',
|
||||
'Menu:ApplicationSolution+' => '所有应用方案',
|
||||
'Menu:ConfigManagementSoftware' => '应用管理',
|
||||
'Menu:Licence' => '许可证',
|
||||
'Menu:Licence+' => '所有许可证',
|
||||
'Menu:Patch' => '补丁',
|
||||
'Menu:Patch+' => '所有补丁',
|
||||
'Menu:ApplicationInstance' => '已安装的软件',
|
||||
'Menu:ApplicationInstance+' => '应用和数据库服务器',
|
||||
'Menu:ConfigManagementHardware' => '基础设施管理',
|
||||
'Menu:Subnet' => '子网',
|
||||
'Menu:Subnet+' => '所有子网',
|
||||
'Menu:NetworkDevice' => '网络设备',
|
||||
'Menu:NetworkDevice+' => '所有网络设备',
|
||||
'Menu:Server' => '服务器',
|
||||
'Menu:Server+' => '所有服务器',
|
||||
'Menu:Printer' => '打印机',
|
||||
'Menu:Printer+' => '所有打印机',
|
||||
'Menu:MobilePhone' => '移动电话',
|
||||
'Menu:MobilePhone+' => '所有移动电话',
|
||||
'Menu:PC' => '个人电脑',
|
||||
'Menu:PC+' => '所有个人电脑',
|
||||
'Menu:NewContact' => '新建联系人',
|
||||
'Menu:NewContact+' => '新建联系人',
|
||||
'Menu:SearchContacts' => '搜索联系人',
|
||||
'Menu:SearchContacts+' => '搜索联系人',
|
||||
'Menu:NewCI' => '新建配置项',
|
||||
'Menu:NewCI+' => 'New CI',
|
||||
'Menu:SearchCIs' => '搜索配置项',
|
||||
'Menu:SearchCIs+' => '搜索配置项',
|
||||
'Menu:ConfigManagement:Devices' => '设备',
|
||||
'Menu:ConfigManagement:AllDevices' => '基础设施',
|
||||
'Menu:ConfigManagement:virtualization' => '虚拟化',
|
||||
'Menu:ConfigManagement:EndUsers' => '终端设备',
|
||||
'Menu:ConfigManagement:SWAndApps' => '软件和应用',
|
||||
'Menu:ConfigManagement:Misc' => '杂项',
|
||||
'Menu:Group' => '配置组',
|
||||
'Menu:Group+' => '配置组',
|
||||
'Menu:ConfigManagement:Shortcuts' => '快捷方式',
|
||||
'Menu:ConfigManagement:AllContacts' => '所有联系人: %1$d',
|
||||
'Menu:Typology' => '配置管理',
|
||||
'Menu:Typology+' => '配置管理',
|
||||
'Menu:OSVersion' => 'OS 版本',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => '软件清单',
|
||||
'Menu:Software+' => '软件清单',
|
||||
'UI_WelcomeMenu_AllConfigItems' => '摘要',
|
||||
'Menu:ConfigManagement:Typology' => '配置管理',
|
||||
'Menu:Location+' => '所有位置',
|
||||
'Menu:ConfigManagementCI' => '配置项',
|
||||
'Menu:ConfigManagementCI+' => '配置项',
|
||||
'Menu:BusinessProcess' => '业务流程',
|
||||
'Menu:BusinessProcess+' => '所有业务流程',
|
||||
'Menu:ApplicationSolution' => '应用方案',
|
||||
'Menu:ApplicationSolution+' => '所有应用方案',
|
||||
'Menu:ConfigManagementSoftware' => '应用管理',
|
||||
'Menu:Licence' => '许可证',
|
||||
'Menu:Licence+' => '所有许可证',
|
||||
'Menu:Patch' => '补丁',
|
||||
'Menu:Patch+' => '所有补丁',
|
||||
'Menu:ApplicationInstance' => '已安装的软件',
|
||||
'Menu:ApplicationInstance+' => '应用和数据库服务器',
|
||||
'Menu:ConfigManagementHardware' => '基础设施管理',
|
||||
'Menu:Subnet' => '子网',
|
||||
'Menu:Subnet+' => '所有子网',
|
||||
'Menu:NetworkDevice' => '网络设备',
|
||||
'Menu:NetworkDevice+' => '所有网络设备',
|
||||
'Menu:Server' => '服务器',
|
||||
'Menu:Server+' => '所有服务器',
|
||||
'Menu:Printer' => '打印机',
|
||||
'Menu:Printer+' => '所有打印机',
|
||||
'Menu:MobilePhone' => '移动电话',
|
||||
'Menu:MobilePhone+' => '所有移动电话',
|
||||
'Menu:PC' => '个人电脑',
|
||||
'Menu:PC+' => '所有个人电脑',
|
||||
'Menu:NewContact' => '新建联系人',
|
||||
'Menu:NewContact+' => '新建联系人',
|
||||
'Menu:SearchContacts' => '搜索联系人',
|
||||
'Menu:SearchContacts+' => '搜索联系人',
|
||||
'Menu:NewCI' => '新建配置项',
|
||||
'Menu:NewCI+' => '新建配置项',
|
||||
'Menu:SearchCIs' => '搜索配置项',
|
||||
'Menu:SearchCIs+' => '搜索配置项',
|
||||
'Menu:ConfigManagement:Devices' => '设备',
|
||||
'Menu:ConfigManagement:AllDevices' => '基础设施',
|
||||
'Menu:ConfigManagement:virtualization' => '虚拟化',
|
||||
'Menu:ConfigManagement:EndUsers' => '终端设备',
|
||||
'Menu:ConfigManagement:SWAndApps' => '软件和应用',
|
||||
'Menu:ConfigManagement:Misc' => '杂项',
|
||||
'Menu:Group' => '配置组',
|
||||
'Menu:Group+' => '配置组',
|
||||
'Menu:ConfigManagement:Shortcuts' => '快捷方式',
|
||||
'Menu:ConfigManagement:AllContacts' => '所有联系人: %1$d',
|
||||
'Menu:Typology' => '配置管理',
|
||||
'Menu:Typology+' => '配置管理',
|
||||
'Menu:OSVersion' => 'OS 版本',
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => '软件清单',
|
||||
'Menu:Software+' => '软件清单',
|
||||
'UI_WelcomeMenu_AllConfigItems' => '摘要',
|
||||
'Menu:ConfigManagement:Typology' => '配置管理',
|
||||
|
||||
));
|
||||
|
||||
@@ -1891,18 +1889,18 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
// Add translation for Fieldsets
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Server:baseinfo' => '基本信息',
|
||||
'Server:Date' => '日期',
|
||||
'Server:moreinfo' => '更多信息',
|
||||
'Server:otherinfo' => '其它信息',
|
||||
'Server:power' => '电力供应',
|
||||
'Person:info' => '基本信息',
|
||||
'Person:personal_info' => '个人信息',
|
||||
'Person:notifiy' => '通知',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP 使用率',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => '网卡IP范围: <em>%1$s</em> 到 <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => '空闲 IP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => '空闲 IP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '以下是抽取的10个空闲IP',
|
||||
'Class:Document:PreviewTab' => '预览',
|
||||
'Server:baseinfo' => '基本信息',
|
||||
'Server:Date' => '日期',
|
||||
'Server:moreinfo' => '更多信息',
|
||||
'Server:otherinfo' => '其它信息',
|
||||
'Server:power' => '电力供应',
|
||||
'Person:info' => '基本信息',
|
||||
'Person:personal_info' => '个人信息',
|
||||
'Person:notifiy' => '通知',
|
||||
'Class:Subnet/Tab:IPUsage' => 'IP 使用率',
|
||||
'Class:Subnet/Tab:IPUsage-explain' => '网卡IP范围: <em>%1$s</em> 到 <em>%2$s</em>',
|
||||
'Class:Subnet/Tab:FreeIPs' => '空闲 IP',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => '空闲 IP: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '以下是抽取的10个空闲IP',
|
||||
'Class:Document:PreviewTab' => '预览',
|
||||
));
|
||||
|
||||
@@ -74,6 +74,21 @@ function TestConfig($sContents, $oP)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sSafeContent
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function DBPasswordInNewConfigIsOk($sSafeContent)
|
||||
{
|
||||
$bIsWindows = (array_key_exists('WINDIR', $_SERVER) || array_key_exists('windir', $_SERVER));
|
||||
|
||||
if ($bIsWindows && (preg_match("@'db_pwd' => '[^%!\"]+',@U", $sSafeContent) === 0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// Main program
|
||||
@@ -94,6 +109,7 @@ $oP->add_linked_script(utils::GetCurrentModuleUrl().'/js/ext-searchbox.js');
|
||||
try
|
||||
{
|
||||
$sOperation = utils::ReadParam('operation', '');
|
||||
$iEditorTopMargin = 0;
|
||||
|
||||
$oP->add("<h1>".Dict::S('config-edit-title')."</h1>");
|
||||
|
||||
@@ -109,15 +125,15 @@ try
|
||||
{
|
||||
$sConfigFile = APPROOT.'conf/'.utils::GetCurrentEnvironment().'/config-itop.php';
|
||||
|
||||
$iEditorTopMargin = 9;
|
||||
$iEditorTopMargin += 9;
|
||||
$sConfig = str_replace("\r\n", "\n", file_get_contents($sConfigFile));
|
||||
$sOrginalConfig = $sConfig;
|
||||
$sOriginalConfig = $sConfig;
|
||||
|
||||
if (!empty($sOperation))
|
||||
{
|
||||
$iEditorTopMargin = 14;
|
||||
$iEditorTopMargin += 5;
|
||||
$sConfig = utils::ReadParam('new_config', '', false, 'raw_data');
|
||||
$sOrginalConfig = utils::ReadParam('prev_config', '', false, 'raw_data');
|
||||
$sOriginalConfig = utils::ReadParam('prev_config', '', false, 'raw_data');
|
||||
}
|
||||
|
||||
if ($sOperation == 'revert')
|
||||
@@ -133,7 +149,7 @@ try
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($sConfig == $sOrginalConfig)
|
||||
if ($sConfig == $sOriginalConfig)
|
||||
{
|
||||
$oP->add('<div id="save_result" class="header_message">'.Dict::S('config-no-change').'</div>');
|
||||
}
|
||||
@@ -162,8 +178,15 @@ try
|
||||
@unlink($sTmpFile);
|
||||
@chmod($sConfigFile, 0444); // Read-only
|
||||
|
||||
$oP->p('<div id="save_result" class="header_message message_ok">'.Dict::S('config-saved').'</div>');
|
||||
$sOrginalConfig = str_replace("\r\n", "\n", file_get_contents($sConfigFile));
|
||||
if (DBPasswordInNewConfigIsOk($sConfig))
|
||||
{
|
||||
$oP->p('<div id="save_result" class="header_message message_ok">'.Dict::S('config-saved').'</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
$oP->p('<div id="save_result" class="header_message message_info">'.Dict::S('config-saved-warning-db-password').'</div>');
|
||||
}
|
||||
$sOriginalConfig = str_replace("\r\n", "\n", file_get_contents($sConfigFile));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
@@ -175,7 +198,7 @@ try
|
||||
|
||||
|
||||
$sConfigEscaped = htmlentities($sConfig, ENT_QUOTES, 'UTF-8');
|
||||
$sOriginalConfigEscaped = htmlentities($sOrginalConfig, ENT_QUOTES, 'UTF-8');
|
||||
$sOriginalConfigEscaped = htmlentities($sOriginalConfig, ENT_QUOTES, 'UTF-8');
|
||||
$oP->p(Dict::S('config-edit-intro'));
|
||||
$oP->add("<form method=\"POST\">");
|
||||
$oP->add("<input id=\"operation\" type=\"hidden\" name=\"operation\" value=\"save\">");
|
||||
|
||||
@@ -21,4 +21,5 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Řádek %2$d: %1$s.<br/>Soubor nebyl uložen.',
|
||||
'config-current-line' => 'Řádek: %1$s',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.~~',
|
||||
'config-current-line' => 'Editing line: %1$s~~',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
<rank>50</rank>
|
||||
<parent>AdminTools</parent>
|
||||
<url>config.php</url>
|
||||
<enable_class>ResourceAdminMenu</enable_class>
|
||||
<enable_action>UR_ACTION_MODIFY</enable_action>
|
||||
<enable_admin_only>1</enable_admin_only>
|
||||
</menu>
|
||||
</menus>
|
||||
</itop_design>
|
||||
|
||||
@@ -36,4 +36,5 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'config-reverted' => 'Die Konfiguration wurde zurückgesetzt',
|
||||
'config-parse-error' => 'Zeile %2$d: %1$s.<br/>Die Datei wurde nicht aktualisiert.',
|
||||
'config-current-line' => 'Editiere Zeile: %1$s',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -35,4 +35,5 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
'config-reverted' => 'The configuration has been reverted.',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.',
|
||||
'config-current-line' => 'Editing line: %1$s',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
|
||||
'config-reverted' => 'La configuración ha sido revertida.',
|
||||
'config-parse-error' => 'Línea %2$d: %1$s.<br/>El archivo NO ha sido actualizado.',
|
||||
'config-current-line' => 'Editando línea: %1$s',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -19,4 +19,5 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'config-reverted' => 'Vos modifications ont été écrasées par la version enregistrée.',
|
||||
'config-parse-error' => 'Ligne %2$d: %1$s.<br/>Le fichier n\'a PAS été modifié.',
|
||||
'config-current-line' => 'Ligne en édition : %1$s',
|
||||
'config-saved-warning-db-password' => 'Configuration enregistrée. Les sauvegardes ne fonctionneront pas à cause du format du pot de passe de la base.',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.~~',
|
||||
'config-current-line' => 'Editing line: %1$s~~',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.~~',
|
||||
'config-current-line' => 'Editing line: %1$s~~',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.~~',
|
||||
'config-current-line' => 'Editing line: %1$s~~',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-config/2.6.0',
|
||||
'itop-config/2.6.1',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
|
||||
@@ -35,4 +35,5 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'config-reverted' => 'De wijzigingen zijn ongedaan gemaakt.',
|
||||
'config-parse-error' => 'Regel %2$d: %1$s.<br/>Het bestand werd <b>NIET</b> opgeslagen.',
|
||||
'config-current-line' => 'Huidige regel: %1$s',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -34,4 +34,5 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-parse-error' => 'Line %2$d: %1$s.<br/>The file has NOT been updated.~~',
|
||||
'config-current-line' => 'Editing line: %1$s~~',
|
||||
'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~',
|
||||
));
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Vladimir Kunin <v.b.kunin@gmail.com>
|
||||
* @link http://community.itop-itsm.ru iTop Russian Community
|
||||
* @link https://github.com/itop-itsm-ru/itop-rus
|
||||
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
*/
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
@@ -16,10 +16,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'config-apply' => 'Применить',
|
||||
'config-apply-title' => 'Применить (Ctrl+S)',
|
||||
'config-cancel' => 'Сбросить',
|
||||
'config-saved' => 'Successfully recorded.~~',
|
||||
'config-saved' => 'Изменения успешно сохранены.',
|
||||
'config-confirm-cancel' => 'Ваши изменения будут утеряны.',
|
||||
'config-no-change' => 'Изменений нет: файл не был изменён.',
|
||||
'config-reverted' => 'The configuration has been reverted.~~',
|
||||
'config-reverted' => 'Изменения были сброшены.',
|
||||
'config-parse-error' => 'Строка %2$d: %1$s.<br/>Файл не был обновлен.',
|
||||
'config-current-line' => 'Редактируемая строка: %1$s',
|
||||
'config-saved-warning-db-password' => 'Изменения успешно сохранены, но резервная копия не будет работать из-за неподдерживаемых символов в пароле базы данных.',
|
||||
));
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user