Compare commits

...

28 Commits

Author SHA1 Message Date
XGUI
1eaeeb502b N° 5874 - Quick create: improvement for newcomer
Hide Popular section when empty
2024-11-28 16:55:44 +01:00
xavier.guiboud-ribaud@combodo.com
e7a3e7de90 N°5874 - Quick create: improvement for newcomer
Fix tests
2024-11-27 08:18:49 +01:00
xavier.guiboud-ribaud@combodo.com
d16757f8f0 N°5874 - Quick create: improvement for newcomer
Rework tests for readability
2024-11-27 08:01:30 +01:00
xavier.guiboud-ribaud@combodo.com
b9ad9dcded 5874
Add comments to tests for clarity
Add setUp and tearDown methods on tests
Add classes on history and popular sections
2024-11-25 12:10:10 +01:00
xavier.guiboud-ribaud@combodo.com
44fa08278d 5874
Add comments to tests for clarity
2024-11-22 16:34:09 +01:00
xavier.guiboud-ribaud@combodo.com
585072a478 5874
Change description of parameters and functions
Add comments in twig for clarity
Add default popular category to UserRequest and FunctionalCI classes
Add comments to tests for clarity
2024-11-22 14:02:39 +01:00
XavierGR
dc2064450b N°5874 - Quick create: improvement for newcomer 2024-11-21 15:11:55 +01:00
jf-cbd
0d8a20c35e Merge remote-tracking branch 'origin/support/3.2' into develop 2024-11-19 08:50:29 +01:00
Lars Kaltefleiter
596e26a96f 🌐 N°7932 Translations - British English (#677)
* Translation into EN GB
2024-11-18 14:38:53 +01:00
Thomas Casteleyn
1f3780f338 Correctly identify as iTop in cURL requests (#652)
* Correctly identify as iTop in cURL requests (with configuration option)
2024-11-14 15:18:47 +01:00
Eric Espie
85f6195a51 Merge remote-tracking branch 'origin/support/3.2' into develop 2024-11-14 14:34:05 +01:00
Thomas Casteleyn
7e1b1779a9 ️ Add faster way to rename column on the same table (#676)
* Add faster way to rename column on the same table
2024-11-14 14:24:45 +01:00
Eric Espie
ef42a49009 Allow extensions to add extra datamodel for tests 2024-11-14 09:27:57 +01:00
Romain Quetiez
51e5f1e7de N°7962 Suppress warnings emitted by the parser/lexer generators and the runtime OQL lexer, with PHP 8.1+ 2024-11-13 15:28:29 +01:00
Timothee
9cffd17e19 N°7704 Fix missing namespace for constant EVENT_DOWNLOAD_DOCUMENT 2024-11-13 14:39:23 +01:00
Benjamin Dalsass
d95e7168aa Merge branch 'support/3.2' into develop 2024-11-13 13:32:53 +01:00
Benjamin Dalsass
e9f16935b6 N°6613 - Fix user picture pushing invalid data 2024-11-13 13:20:27 +01:00
Timothee
e7488b2c89 N°7721 default configuration parameter 2024-11-12 14:48:58 +01:00
Stephen Abello
8ac4086e71 N°7793 Fix primary color being set to blue due to a mistake 2024-11-12 13:52:03 +01:00
Benjamin Dalsass
6b5273fa1c N°1000 - Portal: filter BrowseBrick result varies if in list or tree (#673)
* N°1000 - Portal: filter BrowseBrick result varies if in list or tree

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- replace html separators by css class

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- replace html separators by css class

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- add alteration comment to Tree List Filter jQuery plugin 1.0
- remove display none to tree-item-filter-data
2024-11-12 11:02:43 +01:00
jf-cbd
a7c22c06af Merge remote-tracking branch 'origin/support/3.2' into develop 2024-11-12 09:37:41 +01:00
jf-cbd
9b1e854bf7 Update translations 2024-11-12 09:27:35 +01:00
denis.flaven@combodo.com
a72d1ca1b3 🔨 Replace gitmojis by their UTF-8 equivalent in output. 2024-11-08 16:08:06 +01:00
Lars Kaltefleiter
926700856d Fix some typos in en translations (#678) 2024-11-08 10:56:10 +01:00
Stephen Abello
be5e4458ba N°7793 Add breaking changes introduced by adding common SCSS variables between backoffice and end-user portal (#675)
* N°7793 Add breaking changes induce by adding common SCSS variables between backoffice and end-user portal

* N°7793 Handle breaking changes in darkmoon theme
2024-11-08 10:04:56 +01:00
Stephen Abello
317cd585b2 Merge branch 'support/3.2' into develop 2024-11-08 09:45:05 +01:00
Stephen Abello
ab93d59a77 Merge branch 'support/3.1' into support/3.2
# Conflicts:
#	sources/Core/Email/EmailLaminas.php
2024-11-08 09:41:48 +01:00
Karel Vlk
c70d62a51e 🐛 N°7916 SF#2274 EmailLaminas.php: Keep charset with part header in multipart email (#672)
* 🐛 N°2274 EmailLaminas.php: Keep charset with part header in multipart email

* Add a unit test

---------

Co-authored-by: Stephen Abello <stephen.abello@combodo.com>
2024-11-08 09:38:57 +01:00
207 changed files with 11467 additions and 566 deletions

View File

@@ -25,12 +25,34 @@
if (count($argv) === 1) {
echo '⚠ You must pass the base tag/sha1 as parameter';
echo "⚠ You must pass the base tag/sha1 as parameter\n";
exit(1);
}
$sBaseReference = $argv[1];
/**
* Replace the Github emojis codes by their UTF-8 character equivalent
*/
function ReplaceGitmojis(string $sLine)
{
static $aGitmojis = null;
if ($aGitmojis === null) {
$aRawGitmojis = json_decode(trim(file_get_contents(__DIR__.'/gitmojis.json')), true);
if ($aRawGitmojis === false) {
echo "\nFailed to parse ".__DIR__."/gitmojis.json, emoji codes will not be replaced by their unicode equivalent.\n";
} else {
foreach($aRawGitmojis["gitmojis"] as $aGitmoji) {
$aGitmojis[$aGitmoji['code']] = $aGitmoji['emoji'];
}
}
}
if (is_array($aGitmojis)) {
return str_replace(array_keys($aGitmojis), array_values($aGitmojis), $sLine);
}
}
//--- Get log
$sGitLogCommand = 'git log --decorate --pretty="%h;%s" --date-order --no-merges '.$sBaseReference.'..HEAD';
$sGitLogRaw = shell_exec($sGitLogCommand);
@@ -73,5 +95,5 @@ echo "\n";
echo "# Logs line without bug referenced\n";
echo "sha1;subject\n";
foreach ($aLogLineNoBug as $sLogLine) {
echo "$sLogLine\n";
}
echo ReplaceGitmojis($sLogLine)."\n";
}

589
.make/release/gitmojis.json Normal file
View File

@@ -0,0 +1,589 @@
{
"$schema": "https://gitmoji.dev/api/gitmojis/schema",
"gitmojis": [
{
"emoji": "🎨",
"entity": "&#x1f3a8;",
"code": ":art:",
"description": "Improve structure / format of the code.",
"name": "art",
"semver": null
},
{
"emoji": "⚡️",
"entity": "&#x26a1;",
"code": ":zap:",
"description": "Improve performance.",
"name": "zap",
"semver": "patch"
},
{
"emoji": "🔥",
"entity": "&#x1f525;",
"code": ":fire:",
"description": "Remove code or files.",
"name": "fire",
"semver": null
},
{
"emoji": "🐛",
"entity": "&#x1f41b;",
"code": ":bug:",
"description": "Fix a bug.",
"name": "bug",
"semver": "patch"
},
{
"emoji": "🚑️",
"entity": "&#128657;",
"code": ":ambulance:",
"description": "Critical hotfix.",
"name": "ambulance",
"semver": "patch"
},
{
"emoji": "✨",
"entity": "&#x2728;",
"code": ":sparkles:",
"description": "Introduce new features.",
"name": "sparkles",
"semver": "minor"
},
{
"emoji": "📝",
"entity": "&#x1f4dd;",
"code": ":memo:",
"description": "Add or update documentation.",
"name": "memo",
"semver": null
},
{
"emoji": "🚀",
"entity": "&#x1f680;",
"code": ":rocket:",
"description": "Deploy stuff.",
"name": "rocket",
"semver": null
},
{
"emoji": "💄",
"entity": "&#ff99cc;",
"code": ":lipstick:",
"description": "Add or update the UI and style files.",
"name": "lipstick",
"semver": "patch"
},
{
"emoji": "🎉",
"entity": "&#127881;",
"code": ":tada:",
"description": "Begin a project.",
"name": "tada",
"semver": null
},
{
"emoji": "✅",
"entity": "&#x2705;",
"code": ":white_check_mark:",
"description": "Add, update, or pass tests.",
"name": "white-check-mark",
"semver": null
},
{
"emoji": "🔒️",
"entity": "&#x1f512;",
"code": ":lock:",
"description": "Fix security or privacy issues.",
"name": "lock",
"semver": "patch"
},
{
"emoji": "🔐",
"entity": "&#x1f510;",
"code": ":closed_lock_with_key:",
"description": "Add or update secrets.",
"name": "closed-lock-with-key",
"semver": null
},
{
"emoji": "🔖",
"entity": "&#x1f516;",
"code": ":bookmark:",
"description": "Release / Version tags.",
"name": "bookmark",
"semver": null
},
{
"emoji": "🚨",
"entity": "&#x1f6a8;",
"code": ":rotating_light:",
"description": "Fix compiler / linter warnings.",
"name": "rotating-light",
"semver": null
},
{
"emoji": "🚧",
"entity": "&#x1f6a7;",
"code": ":construction:",
"description": "Work in progress.",
"name": "construction",
"semver": null
},
{
"emoji": "💚",
"entity": "&#x1f49a;",
"code": ":green_heart:",
"description": "Fix CI Build.",
"name": "green-heart",
"semver": null
},
{
"emoji": "⬇️",
"entity": "⬇️",
"code": ":arrow_down:",
"description": "Downgrade dependencies.",
"name": "arrow-down",
"semver": "patch"
},
{
"emoji": "⬆️",
"entity": "⬆️",
"code": ":arrow_up:",
"description": "Upgrade dependencies.",
"name": "arrow-up",
"semver": "patch"
},
{
"emoji": "📌",
"entity": "&#x1F4CC;",
"code": ":pushpin:",
"description": "Pin dependencies to specific versions.",
"name": "pushpin",
"semver": "patch"
},
{
"emoji": "👷",
"entity": "&#x1f477;",
"code": ":construction_worker:",
"description": "Add or update CI build system.",
"name": "construction-worker",
"semver": null
},
{
"emoji": "📈",
"entity": "&#x1F4C8;",
"code": ":chart_with_upwards_trend:",
"description": "Add or update analytics or track code.",
"name": "chart-with-upwards-trend",
"semver": "patch"
},
{
"emoji": "♻️",
"entity": "&#x267b;",
"code": ":recycle:",
"description": "Refactor code.",
"name": "recycle",
"semver": null
},
{
"emoji": "",
"entity": "&#10133;",
"code": ":heavy_plus_sign:",
"description": "Add a dependency.",
"name": "heavy-plus-sign",
"semver": "patch"
},
{
"emoji": "",
"entity": "&#10134;",
"code": ":heavy_minus_sign:",
"description": "Remove a dependency.",
"name": "heavy-minus-sign",
"semver": "patch"
},
{
"emoji": "🔧",
"entity": "&#x1f527;",
"code": ":wrench:",
"description": "Add or update configuration files.",
"name": "wrench",
"semver": "patch"
},
{
"emoji": "🔨",
"entity": "&#128296;",
"code": ":hammer:",
"description": "Add or update development scripts.",
"name": "hammer",
"semver": null
},
{
"emoji": "🌐",
"entity": "&#127760;",
"code": ":globe_with_meridians:",
"description": "Internationalization and localization.",
"name": "globe-with-meridians",
"semver": "patch"
},
{
"emoji": "✏️",
"entity": "&#59161;",
"code": ":pencil2:",
"description": "Fix typos.",
"name": "pencil2",
"semver": "patch"
},
{
"emoji": "💩",
"entity": "&#58613;",
"code": ":poop:",
"description": "Write bad code that needs to be improved.",
"name": "poop",
"semver": null
},
{
"emoji": "⏪️",
"entity": "&#9194;",
"code": ":rewind:",
"description": "Revert changes.",
"name": "rewind",
"semver": "patch"
},
{
"emoji": "🔀",
"entity": "&#128256;",
"code": ":twisted_rightwards_arrows:",
"description": "Merge branches.",
"name": "twisted-rightwards-arrows",
"semver": null
},
{
"emoji": "📦️",
"entity": "&#1F4E6;",
"code": ":package:",
"description": "Add or update compiled files or packages.",
"name": "package",
"semver": "patch"
},
{
"emoji": "👽️",
"entity": "&#1F47D;",
"code": ":alien:",
"description": "Update code due to external API changes.",
"name": "alien",
"semver": "patch"
},
{
"emoji": "🚚",
"entity": "&#1F69A;",
"code": ":truck:",
"description": "Move or rename resources (e.g.: files, paths, routes).",
"name": "truck",
"semver": null
},
{
"emoji": "📄",
"entity": "&#1F4C4;",
"code": ":page_facing_up:",
"description": "Add or update license.",
"name": "page-facing-up",
"semver": null
},
{
"emoji": "💥",
"entity": "&#x1f4a5;",
"code": ":boom:",
"description": "Introduce breaking changes.",
"name": "boom",
"semver": "major"
},
{
"emoji": "🍱",
"entity": "&#1F371",
"code": ":bento:",
"description": "Add or update assets.",
"name": "bento",
"semver": "patch"
},
{
"emoji": "♿️",
"entity": "&#9855;",
"code": ":wheelchair:",
"description": "Improve accessibility.",
"name": "wheelchair",
"semver": "patch"
},
{
"emoji": "💡",
"entity": "&#128161;",
"code": ":bulb:",
"description": "Add or update comments in source code.",
"name": "bulb",
"semver": null
},
{
"emoji": "🍻",
"entity": "&#x1f37b;",
"code": ":beers:",
"description": "Write code drunkenly.",
"name": "beers",
"semver": null
},
{
"emoji": "💬",
"entity": "&#128172;",
"code": ":speech_balloon:",
"description": "Add or update text and literals.",
"name": "speech-balloon",
"semver": "patch"
},
{
"emoji": "🗃️",
"entity": "&#128451;",
"code": ":card_file_box:",
"description": "Perform database related changes.",
"name": "card-file-box",
"semver": "patch"
},
{
"emoji": "🔊",
"entity": "&#128266;",
"code": ":loud_sound:",
"description": "Add or update logs.",
"name": "loud-sound",
"semver": null
},
{
"emoji": "🔇",
"entity": "&#128263;",
"code": ":mute:",
"description": "Remove logs.",
"name": "mute",
"semver": null
},
{
"emoji": "👥",
"entity": "&#128101;",
"code": ":busts_in_silhouette:",
"description": "Add or update contributor(s).",
"name": "busts-in-silhouette",
"semver": null
},
{
"emoji": "🚸",
"entity": "&#128696;",
"code": ":children_crossing:",
"description": "Improve user experience / usability.",
"name": "children-crossing",
"semver": "patch"
},
{
"emoji": "🏗️",
"entity": "&#1f3d7;",
"code": ":building_construction:",
"description": "Make architectural changes.",
"name": "building-construction",
"semver": null
},
{
"emoji": "📱",
"entity": "&#128241;",
"code": ":iphone:",
"description": "Work on responsive design.",
"name": "iphone",
"semver": "patch"
},
{
"emoji": "🤡",
"entity": "&#129313;",
"code": ":clown_face:",
"description": "Mock things.",
"name": "clown-face",
"semver": null
},
{
"emoji": "🥚",
"entity": "&#129370;",
"code": ":egg:",
"description": "Add or update an easter egg.",
"name": "egg",
"semver": "patch"
},
{
"emoji": "🙈",
"entity": "&#8bdfe7;",
"code": ":see_no_evil:",
"description": "Add or update a .gitignore file.",
"name": "see-no-evil",
"semver": null
},
{
"emoji": "📸",
"entity": "&#128248;",
"code": ":camera_flash:",
"description": "Add or update snapshots.",
"name": "camera-flash",
"semver": null
},
{
"emoji": "⚗️",
"entity": "&#x2697;",
"code": ":alembic:",
"description": "Perform experiments.",
"name": "alembic",
"semver": "patch"
},
{
"emoji": "🔍️",
"entity": "&#128269;",
"code": ":mag:",
"description": "Improve SEO.",
"name": "mag",
"semver": "patch"
},
{
"emoji": "🏷️",
"entity": "&#127991;",
"code": ":label:",
"description": "Add or update types.",
"name": "label",
"semver": "patch"
},
{
"emoji": "🌱",
"entity": "&#127793;",
"code": ":seedling:",
"description": "Add or update seed files.",
"name": "seedling",
"semver": null
},
{
"emoji": "🚩",
"entity": "&#x1F6A9;",
"code": ":triangular_flag_on_post:",
"description": "Add, update, or remove feature flags.",
"name": "triangular-flag-on-post",
"semver": "patch"
},
{
"emoji": "🥅",
"entity": "&#x1F945;",
"code": ":goal_net:",
"description": "Catch errors.",
"name": "goal-net",
"semver": "patch"
},
{
"emoji": "💫",
"entity": "&#x1f4ab;",
"code": ":dizzy:",
"description": "Add or update animations and transitions.",
"name": "dizzy",
"semver": "patch"
},
{
"emoji": "🗑️",
"entity": "&#x1F5D1;",
"code": ":wastebasket:",
"description": "Deprecate code that needs to be cleaned up.",
"name": "wastebasket",
"semver": "patch"
},
{
"emoji": "🛂",
"entity": "&#x1F6C2;",
"code": ":passport_control:",
"description": "Work on code related to authorization, roles and permissions.",
"name": "passport-control",
"semver": "patch"
},
{
"emoji": "🩹",
"entity": "&#x1FA79;",
"code": ":adhesive_bandage:",
"description": "Simple fix for a non-critical issue.",
"name": "adhesive-bandage",
"semver": "patch"
},
{
"emoji": "🧐",
"entity": "&#x1F9D0;",
"code": ":monocle_face:",
"description": "Data exploration/inspection.",
"name": "monocle-face",
"semver": null
},
{
"emoji": "⚰️",
"entity": "&#x26B0;",
"code": ":coffin:",
"description": "Remove dead code.",
"name": "coffin",
"semver": null
},
{
"emoji": "🧪",
"entity": "&#x1F9EA;",
"code": ":test_tube:",
"description": "Add a failing test.",
"name": "test-tube",
"semver": null
},
{
"emoji": "👔",
"entity": "&#128084;",
"code": ":necktie:",
"description": "Add or update business logic.",
"name": "necktie",
"semver": "patch"
},
{
"emoji": "🩺",
"entity": "&#x1FA7A;",
"code": ":stethoscope:",
"description": "Add or update healthcheck.",
"name": "stethoscope",
"semver": null
},
{
"emoji": "🧱",
"entity": "&#x1f9f1;",
"code": ":bricks:",
"description": "Infrastructure related changes.",
"name": "bricks",
"semver": null
},
{
"emoji": "🧑‍💻",
"entity": "&#129489;&#8205;&#128187;",
"code": ":technologist:",
"description": "Improve developer experience.",
"name": "technologist",
"semver": null
},
{
"emoji": "💸",
"entity": "&#x1F4B8;",
"code": ":money_with_wings:",
"description": "Add sponsorships or money related infrastructure.",
"name": "money-with-wings",
"semver": null
},
{
"emoji": "🧵",
"entity": "&#x1F9F5;",
"code": ":thread:",
"description": "Add or update code related to multithreading or concurrency.",
"name": "thread",
"semver": null
},
{
"emoji": "🦺",
"entity": "&#x1F9BA;",
"code": ":safety_vest:",
"description": "Add or update code related to validation.",
"name": "safety-vest",
"semver": null
}
]
}

View File

@@ -1944,7 +1944,7 @@ SQL;
CURLOPT_HEADER => false, // don't return the headers in the output
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_USERAGENT => static::GetConfig()->Get('http.request.user_agent'), // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response

View File

@@ -71,7 +71,7 @@ define('DEFAULT_MAX_DISPLAY_LIMIT', 30);
define('DEFAULT_STANDARD_RELOAD_INTERVAL', 5 * 60);
define('DEFAULT_FAST_RELOAD_INTERVAL', 1 * 60);
define('DEFAULT_SECURE_CONNECTION_REQUIRED', false);
define('DEFAULT_ALLOWED_LOGIN_TYPES', 'form|external|basic');
define('DEFAULT_ALLOWED_LOGIN_TYPES', 'form|external|basic|token');
define('DEFAULT_EXT_AUTH_VARIABLE', '$_SERVER[\'REMOTE_USER\']');
define('DEFAULT_ENCRYPTION_KEY', '@iT0pEncr1pti0n!'); // We'll use a random generated key later (if possible)
define('DEFAULT_ENCRYPTION_LIB', 'Mcrypt'); // We'll define the best encryption available later
@@ -1436,6 +1436,14 @@ class Config
'quick_create.max_history_results' => [
'type' => 'integer',
'description' => 'Max. number of elements in the history',
'default' => 5,
'value' => 5,
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'quick_create.max_popular_results' => [
'type' => 'integer',
'description' => 'Max. number of elements in the popular classes section',
'default' => 10,
'value' => 10,
'source_of_value' => '',
@@ -1795,6 +1803,13 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'http.request.user_agent' => [
'type' => 'string',
'description' => 'HTTP request user agent, use this to set a custom agent on external requests.',
'default' => ITOP_APPLICATION.'/'.ITOP_VERSION,
'source_of_value' => '',
'show_in_conf_sample' => false,
]
];
public function IsProperty($sPropCode)

View File

@@ -182,14 +182,14 @@ class PHP_LexerGenerator_Lexer
$this->token = self::COMMENTEND;
return true;
}
if (preg_match('/\G%([a-z]+)/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G%([a-z]+)/', $this->data, $token, 0, $this->N)) {
$this->value = $token[1];
$this->N += strlen($token[1]) + 1;
$this->state = 'DeclarePI';
$this->token = self::PI;
return true;
}
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, 0, $this->N)) {
$this->value = $token[0];
$this->token = self::PATTERN;
$this->N += strlen($token[0]);
@@ -216,7 +216,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '{') {
return $this->lexCode();
}
if (!preg_match("/\G[^\n]+/", $this->data, $token, null, $this->N)) {
if (!preg_match("/\G[^\n]+/", $this->data, $token, 0, $this->N)) {
$this->error('Unexpected end of file');
return false;
}
@@ -242,7 +242,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '{') {
return $this->lexCode();
}
if (!preg_match("/\G[^\n]+/", $this->data, $token, null, $this->N)) {
if (!preg_match("/\G[^\n]+/", $this->data, $token, 0, $this->N)) {
$this->error('Unexpected end of file');
return false;
}
@@ -406,7 +406,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '\'') {
return $this->lexQuote('\'');
}
if (preg_match('/\G%([a-zA-Z_]+)/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G%([a-zA-Z_]+)/', $this->data, $token, 0, $this->N)) {
$this->value = $token[1];
$this->N += strlen($token[1]) + 1;
$this->state = 'DeclarePIRule';
@@ -419,7 +419,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '"') {
return $this->lexQuote();
}
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, 0, $this->N)) {
$this->value = $token[0];
$this->N += strlen($token[0]);
$this->token = self::SUBPATTERN;

View File

@@ -33,17 +33,19 @@ class PHP_LexerGenerator_ParseryyToken implements ArrayAccess
return $this->_string;
}
function offsetExists($offset)
function offsetExists($offset): bool
{
return isset($this->metadata[$offset]);
}
// Return type mixed is not supported by PHP 7.4, we can remove the following PHP attribute and add the return type once iTop min PHP version is PHP 8.0+
#[\ReturnTypeWillChange]
function offsetGet($offset)
{
return $this->metadata[$offset];
}
function offsetSet($offset, $value)
function offsetSet($offset, $value): void
{
if ($offset === null) {
if (isset($value[0])) {
@@ -66,7 +68,7 @@ class PHP_LexerGenerator_ParseryyToken implements ArrayAccess
}
}
function offsetUnset($offset)
function offsetUnset($offset): void
{
unset($this->metadata[$offset]);
}
@@ -278,7 +280,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
$match = false;
foreach ($yy_yymore_patterns[' . $this->token . '] as $index => $rule) {
if (preg_match(\'/\' . $rule . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter . ')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter . ')) {
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {
@@ -350,7 +352,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
$pattern . '\';' . "\n");
fwrite($this->out, '
do {
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, null, ' .
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, 0, ' .
$this->counter .
')) {
$yysubmatches = $yymatches;
@@ -408,7 +410,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
}
$yysubmatches = array();
if (preg_match(\'/\' . $yy_yymore_patterns[' . $this->token . '][1] . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter .')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter .')) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -187,7 +187,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
$match = false;
foreach ($yy_yymore_patterns[' . $this->token . '] as $index => $rule) {
if (preg_match(\'/\' . $rule . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter . ')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter . ')) {
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {
@@ -259,7 +259,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
$pattern . '\';' . "\n");
fwrite($this->out, '
do {
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, null, ' .
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, 0, ' .
$this->counter .
')) {
$yysubmatches = $yymatches;
@@ -317,7 +317,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
}
$yysubmatches = array();
if (preg_match(\'/\' . $yy_yymore_patterns[' . $this->token . '][1] . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter .')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter .')) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -110,7 +110,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G([^[\\\\^$.|()?*+{}]+)|\G(\\\\[][{}*.^$|?()+])|\G(\\[)|\G(\\|)|\G(\\\\[frnt]|\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7][0-7][0-7]|\\\\x\\{[0-9a-fA-F]+\\})|\G(\\\\[0-9][0-9])|\G(\\\\[abBGcedDsSwW0C]|\\\\c\\\\)|\G(\\^)|\G(\\\\A)|\G(\\))|\G(\\$)|\G(\\*\\?|\\+\\?|[*?+]|\\{[0-9]+\\}|\\{[0-9]+,\\}|\\{[0-9]+,[0-9]+\\})|\G(\\\\[zZ])|\G(\\(\\?)|\G(\\()|\G(\\.)|\G(\\\\[1-9])|\G(\\\\p\\{\\^?..?\\}|\\\\P\\{..?\\}|\\\\X)|\G(\\\\p\\{C[cfnos]?|L[lmotu]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?\\})|\G(\\\\p\\{\\^C[cfnos]?|L[lmotu]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?\\})|\G(\\\\p[CLMNPSZ])|\G(\\\\)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -180,7 +180,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -360,7 +360,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\^)|\G(\\])|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -410,7 +410,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -497,7 +497,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G(\\])|\G(\\\\[frnt]|\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7][0-7][0-7]|\\\\x\\{[0-9a-fA-F]+\\})|\G(\\\\[bacedDsSwW0C]|\\\\c\\\\|\\\\x\\{[0-9a-fA-F]+\\}|\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]?)|\G(\\\\[0-9][0-9])|\G(\\\\[1-9])|\G(\\\\[]\.\-\^])|\G(-(?!]))|\G([^\-\\\\])|\G(\\\\)|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -555,7 +555,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -678,7 +678,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G(\\\\\\])|\G(\\\\[bacedDsSwW0C]|\\\\c\\\\|\\\\x\\{[0-9a-fA-F]+\\}|\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]?)|\G(\\\\[0-9][0-9])|\G(\\\\[1-9])|\G([^\-\\\\])|\G(\\\\)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -732,7 +732,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -842,7 +842,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G([imsxUX]+-[imsxUX]+|[imsxUX]+|-[imsxUX]+)|\G(:)|\G(\\))|\G(P<[^>]+>)|\G(<=)|\G(<!)|\G(=)|\G(!)|\G(>)|\G(\\(\\?)|\G(#[^)]+)|\G(R)|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -902,7 +902,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -33,17 +33,19 @@ class PHP_LexerGenerator_Regex_yyToken implements ArrayAccess
return $this->_string;
}
function offsetExists($offset)
function offsetExists($offset): bool
{
return isset($this->metadata[$offset]);
}
// Return type mixed is not supported by PHP 7.4, we can remove the following PHP attribute and add the return type once iTop min PHP version is PHP 8.0+
#[\ReturnTypeWillChange]
function offsetGet($offset)
{
return $this->metadata[$offset];
}
function offsetSet($offset, $value)
function offsetSet($offset, $value): void
{
if ($offset === null) {
if (isset($value[0])) {
@@ -66,7 +68,7 @@ class PHP_LexerGenerator_Regex_yyToken implements ArrayAccess
}
}
function offsetUnset($offset)
function offsetUnset($offset): void
{
unset($this->metadata[$offset]);
}

View File

@@ -235,7 +235,7 @@ class OQLLexerRaw
$match = false;
foreach ($yy_yymore_patterns[$this->token] as $index => $rule) {
if (preg_match('/' . $rule . '/',
$this->data, $yymatches, null, $this->count)) {
$this->data, $yymatches, 0, $this->count)) {
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {

View File

@@ -314,7 +314,7 @@ class ormDocument
'document' => $oDocument,
'content_disposition' => $sContentDisposition,
);
EventService::FireEvent(new EventData(EVENT_DOWNLOAD_DOCUMENT, $sClass, $aEventData));
EventService::FireEvent(new EventData(\EVENT_DOWNLOAD_DOCUMENT, $sClass, $aEventData));
$oPage->TrashUnexpectedOutput();
$oPage->SetContentType($oDocument->GetMimeType());
$oPage->SetContentDisposition($sContentDisposition,$oDocument->GetFileName());

View File

@@ -4,7 +4,7 @@
*/
$ibo-scrollbar--scrollbar-width: $common-scrollbar--scrollbar-width !default;
$ibo-scrollbar--scrollbar-height: $ibo-scrollbar--scrollbar-width !default; /* For horizontal scrollbars */
$ibo-scrollbar--scrollbar-height: $common-scrollbar--scrollbar-height !default; /* For horizontal scrollbars */
$ibo-scrollbar--scrollbar-track-background-color: $common-scrollbar--scrollbar-track-background-color !default;
$ibo-scrollbar--scrollbar-track-border-radius: $common-scrollbar--scrollbar-track-border-radius !default;
$ibo-scrollbar--scrollbar-thumb-background-color: $common-scrollbar--scrollbar-thumb-background-color !default;

View File

@@ -14,9 +14,9 @@ $ibo-sticky-sentinel--left: $common-sticky-sentinel--left !default;
$ibo-sticky-sentinel--right: $common-sticky-sentinel--right !default;
$ibo-sticky-sentinel--height: $common-sticky-sentinel--height !default;
$ibo-sticky-sentinel-top--top: $common-sticky-sentinel-top--top !default;
$ibo-sticky-sentinel-top--height: $ibo-sticky-sentinel--height !default;
$ibo-sticky-sentinel-top--height: $common-sticky-sentinel-top--height !default;
$ibo-sticky-sentinel-bottom--bottom: $common-sticky-sentinel-bottom--bottom !default;
$ibo-sticky-sentinel-bottom--height: $ibo-sticky-sentinel--height !default;
$ibo-sticky-sentinel-bottom--height: $common-sticky-sentinel-bottom--height !default;
/* Rules */
.ibo-sticky-sentinel {

View File

@@ -12,12 +12,12 @@ $ibo-has-description--font-size: $common-has-description--font-size !default; /*
$ibo-is-code--background-color: $common-is-code--background-color !default;
$ibo-is-code--padding: $common-is-code--padding !default;
$ibo-hyperlink-color: $ibo-color-primary-700 !default;
$ibo-hyperlink-text-decoration: none !default;
$ibo-hyperlink-color--on-hover: $ibo-color-primary-800 !default;
$ibo-hyperlink-text-decoration--on-hover: $ibo-hyperlink-text-decoration !default;
$ibo-hyperlink-color--on-active: $ibo-color-primary-900 !default;
$ibo-hyperlink-text-decoration--on-active: $ibo-hyperlink-text-decoration !default;
$ibo-hyperlink-color: $common-hyperlink-color !default;
$ibo-hyperlink-text-decoration: $common-hyperlink-text-decoration !default;
$ibo-hyperlink-color--on-hover: $common-hyperlink-color--on-hover !default;
$ibo-hyperlink-text-decoration--on-hover: $common-hyperlink-text-decoration--on-hover !default;
$ibo-hyperlink-color--on-active: $common-hyperlink-color--on-active !default;
$ibo-hyperlink-text-decoration--on-active: $common-hyperlink-text-decoration--on-active !default;
$ibo-figure--spacing-x: $common-figure--spacing-x !default; /* Mind that this matches Bulma rule for figure */
$ibo-figure--spacing-y: $common-figure--spacing-y !default;

View File

@@ -5,5 +5,5 @@
// These are the base variables used throughout the backoffice, if you don't know what to use, these are probably good :)
$ibo-base-variable--text-color: $ibo-color-grey-900 !default;
$ibo-base-variable--border-radius: $ibo-border-radius-300 !default;;
$ibo-base-variable--text-color: $common-base-variable--text-color !default;
$ibo-base-variable--border-radius: $common-base-variable--border-radius !default;;

View File

@@ -3,27 +3,28 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
$ibo-spacing-0: $ibo-size-0 !default;
$ibo-spacing-100: $ibo-size-50 !default;
$ibo-spacing-200: $ibo-size-100 !default;
$ibo-spacing-300: $ibo-size-150 !default;
$ibo-spacing-400: $ibo-size-200 !default;
$ibo-spacing-500: $ibo-size-250 !default;
$ibo-spacing-600: $ibo-size-300 !default;
$ibo-spacing-700: $ibo-size-350 !default;
$ibo-spacing-800: $ibo-size-400 !default;
$ibo-spacing-900: $ibo-size-450 !default;
$ibo-spacing-950: $ibo-size-500 !default;
$ibo-spacing-0: $common-spacing-0 !default;
$ibo-spacing-100: $common-spacing-100 !default;
$ibo-spacing-200: $common-spacing-200 !default;
$ibo-spacing-300: $common-spacing-300 !default;
$ibo-spacing-400: $common-spacing-400 !default;
$ibo-spacing-500: $common-spacing-500 !default;
$ibo-spacing-600: $common-spacing-600 !default;
$ibo-spacing-700: $common-spacing-700 !default;
$ibo-spacing-800: $common-spacing-800 !default;
$ibo-spacing-900: $common-spacing-900 !default;
$ibo-spacing-950: $common-spacing-950 !default;
:root{
--ibo-spacing-0: #{$ibo-size-0};
--ibo-spacing-100: #{$ibo-size-50};
--ibo-spacing-200: #{$ibo-size-100};
--ibo-spacing-300: #{$ibo-size-150};
--ibo-spacing-400: #{$ibo-size-200};
--ibo-spacing-500: #{$ibo-size-250};
--ibo-spacing-600: #{$ibo-size-300};
--ibo-spacing-700: #{$ibo-size-350};
--ibo-spacing-800: #{$ibo-size-400};
--ibo-spacing-900: #{$ibo-size-450};
--ibo-spacing-0: #{$ibo-spacing-0};
--ibo-spacing-100: #{$ibo-spacing-100};
--ibo-spacing-200: #{$ibo-spacing-200};
--ibo-spacing-300: #{$ibo-spacing-300};
--ibo-spacing-400: #{$ibo-spacing-400};
--ibo-spacing-500: #{$ibo-spacing-500};
--ibo-spacing-600: #{$ibo-spacing-600};
--ibo-spacing-700: #{$ibo-spacing-700};
--ibo-spacing-800: #{$ibo-spacing-800};
--ibo-spacing-900: #{$ibo-spacing-900};
--ibo-spacing-950: #{$ibo-spacing-950};
}

View File

@@ -35,7 +35,7 @@ $ibo-font-weight-950: $common-font-weight-950 !default; /* 950 Extra Black (Ultr
$ibo-font-family-base: $common-font-family-base !default;
$ibo-font-family-fallbacks: $common-font-family-fallbacks !default;
$ibo-font-family-monospace: $common-font-family-monospace !default;
$ibo-font-family-code: $ibo-font-family-monospace !default;
$ibo-font-family-code: $common-font-family-code !default;
:root {
--ibo-font-size-50: #{$ibo-font-size-50};

View File

@@ -5,24 +5,24 @@
/* Lifecycle palette */
/* - For workflow */
$ibo-lifecycle-new-state-primary-color: $ibo-color-blue-800 !default;
$ibo-lifecycle-new-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-neutral-state-primary-color: $ibo-color-blue-800 !default;
$ibo-lifecycle-neutral-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-waiting-state-primary-color: $ibo-color-orange-400 !default;
$ibo-lifecycle-waiting-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-success-state-primary-color: $ibo-color-green-700 !default;
$ibo-lifecycle-success-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-failure-state-primary-color: $ibo-color-pink-700 !default;
$ibo-lifecycle-failure-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-frozen-state-primary-color: $ibo-color-grey-200 !default;
$ibo-lifecycle-frozen-state-secondary-color: $ibo-color-grey-700 !default;
$ibo-lifecycle-new-state-primary-color: $common-lifecycle-new-state-primary-color !default;
$ibo-lifecycle-new-state-secondary-color: $common-lifecycle-new-state-secondary-color !default;
$ibo-lifecycle-neutral-state-primary-color: $common-lifecycle-neutral-state-primary-color !default;
$ibo-lifecycle-neutral-state-secondary-color: $common-lifecycle-neutral-state-secondary-color !default;
$ibo-lifecycle-waiting-state-primary-color: $common-lifecycle-waiting-state-primary-color !default;
$ibo-lifecycle-waiting-state-secondary-color: $common-lifecycle-waiting-state-secondary-color !default;
$ibo-lifecycle-success-state-primary-color: $common-lifecycle-success-state-primary-color !default;
$ibo-lifecycle-success-state-secondary-color: $common-lifecycle-success-state-secondary-color !default;
$ibo-lifecycle-failure-state-primary-color: $common-lifecycle-failure-state-primary-color !default;
$ibo-lifecycle-failure-state-secondary-color: $common-lifecycle-failure-state-secondary-color !default;
$ibo-lifecycle-frozen-state-primary-color: $common-lifecycle-frozen-state-primary-color !default;
$ibo-lifecycle-frozen-state-secondary-color: $common-lifecycle-frozen-state-secondary-color !default;
/* - For basic lifecycle */
$ibo-lifecycle-active-state-primary-color: $ibo-color-green-700 !default;
$ibo-lifecycle-active-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-inactive-state-primary-color: $ibo-color-orange-400 !default;
$ibo-lifecycle-inactive-state-secondary-color: $ibo-color-white-100 !default;
$ibo-lifecycle-active-state-primary-color: $common-lifecycle-active-state-primary-color !default;
$ibo-lifecycle-active-state-secondary-color: $common-lifecycle-active-state-secondary-color !default;
$ibo-lifecycle-inactive-state-primary-color: $common-lifecycle-inactive-state-primary-color !default;
$ibo-lifecycle-inactive-state-secondary-color: $common-lifecycle-inactive-state-secondary-color !default;
$ibo-lifecycle-states-colors: (
'new': (

View File

@@ -5,99 +5,99 @@
/* Semantic palettes */
/* - Primary color of the brand */
$ibo-color-primary-100: $ibo-color-orange-100 !default;
$ibo-color-primary-200: $ibo-color-orange-200 !default;
$ibo-color-primary-300: $ibo-color-orange-300 !default;
$ibo-color-primary-400: $ibo-color-orange-400 !default;
$ibo-color-primary-500: $ibo-color-orange-500 !default;
$ibo-color-primary-600: $ibo-color-orange-600 !default;
$ibo-color-primary-700: $ibo-color-orange-700 !default;
$ibo-color-primary-800: $ibo-color-orange-800 !default;
$ibo-color-primary-900: $ibo-color-orange-900 !default;
$ibo-color-primary-950: $ibo-color-orange-950 !default;
$ibo-color-primary-100: $common-color-primary-100 !default;
$ibo-color-primary-200: $common-color-primary-200 !default;
$ibo-color-primary-300: $common-color-primary-300 !default;
$ibo-color-primary-400: $common-color-primary-400 !default;
$ibo-color-primary-500: $common-color-primary-500 !default;
$ibo-color-primary-600: $common-color-primary-600 !default;
$ibo-color-primary-700: $common-color-primary-700 !default;
$ibo-color-primary-800: $common-color-primary-800 !default;
$ibo-color-primary-900: $common-color-primary-900 !default;
$ibo-color-primary-950: $common-color-primary-950 !default;
/* - Secondary color of the brand */
$ibo-color-secondary-100: $ibo-color-grey-100 !default;
$ibo-color-secondary-200: $ibo-color-grey-200 !default;
$ibo-color-secondary-300: $ibo-color-grey-300 !default;
$ibo-color-secondary-400: $ibo-color-grey-400 !default;
$ibo-color-secondary-500: $ibo-color-grey-500 !default;
$ibo-color-secondary-600: $ibo-color-grey-600 !default;
$ibo-color-secondary-700: $ibo-color-grey-700 !default;
$ibo-color-secondary-800: $ibo-color-grey-800 !default;
$ibo-color-secondary-900: $ibo-color-grey-900 !default;
$ibo-color-secondary-950: $ibo-color-grey-950 !default;
$ibo-color-secondary-100: $common-color-secondary-100 !default;
$ibo-color-secondary-200: $common-color-secondary-200 !default;
$ibo-color-secondary-300: $common-color-secondary-300 !default;
$ibo-color-secondary-400: $common-color-secondary-400 !default;
$ibo-color-secondary-500: $common-color-secondary-500 !default;
$ibo-color-secondary-600: $common-color-secondary-600 !default;
$ibo-color-secondary-700: $common-color-secondary-700 !default;
$ibo-color-secondary-800: $common-color-secondary-800 !default;
$ibo-color-secondary-900: $common-color-secondary-900 !default;
$ibo-color-secondary-950: $common-color-secondary-950 !default;
/* - Information: messages / actions that should neither seem as success, warning or failure */
$ibo-color-information-100: $ibo-color-blue-100 !default;
$ibo-color-information-200: $ibo-color-blue-200 !default;
$ibo-color-information-300: $ibo-color-blue-300 !default;
$ibo-color-information-400: $ibo-color-blue-400 !default;
$ibo-color-information-500: $ibo-color-blue-500 !default;
$ibo-color-information-600: $ibo-color-blue-600 !default;
$ibo-color-information-700: $ibo-color-blue-700 !default;
$ibo-color-information-800: $ibo-color-blue-800 !default;
$ibo-color-information-900: $ibo-color-blue-900 !default;
$ibo-color-information-950: $ibo-color-blue-950 !default;
$ibo-color-information-100: $common-color-information-100 !default;
$ibo-color-information-200: $common-color-information-200 !default;
$ibo-color-information-300: $common-color-information-300 !default;
$ibo-color-information-400: $common-color-information-400 !default;
$ibo-color-information-500: $common-color-information-500 !default;
$ibo-color-information-600: $common-color-information-600 !default;
$ibo-color-information-700: $common-color-information-700 !default;
$ibo-color-information-800: $common-color-information-800 !default;
$ibo-color-information-900: $common-color-information-900 !default;
$ibo-color-information-950: $common-color-information-950 !default;
/* Success: messages of success, safe actions, ... */
$ibo-color-success-100: $ibo-color-green-100 !default;
$ibo-color-success-200: $ibo-color-green-200 !default;
$ibo-color-success-300: $ibo-color-green-300 !default;
$ibo-color-success-400: $ibo-color-green-400 !default;
$ibo-color-success-500: $ibo-color-green-500 !default;
$ibo-color-success-600: $ibo-color-green-600 !default;
$ibo-color-success-700: $ibo-color-green-700 !default;
$ibo-color-success-800: $ibo-color-green-800 !default;
$ibo-color-success-900: $ibo-color-green-900 !default;
$ibo-color-success-950: $ibo-color-green-950 !default;
$ibo-color-success-100: $common-color-success-100 !default;
$ibo-color-success-200: $common-color-success-200 !default;
$ibo-color-success-300: $common-color-success-300 !default;
$ibo-color-success-400: $common-color-success-400 !default;
$ibo-color-success-500: $common-color-success-500 !default;
$ibo-color-success-600: $common-color-success-600 !default;
$ibo-color-success-700: $common-color-success-700 !default;
$ibo-color-success-800: $common-color-success-800 !default;
$ibo-color-success-900: $common-color-success-900 !default;
$ibo-color-success-950: $common-color-success-950 !default;
/* Warning: messages of warning, actions that would be done carefully, ... */
$ibo-color-warning-100: $ibo-color-orange-100 !default;
$ibo-color-warning-200: $ibo-color-orange-200 !default;
$ibo-color-warning-300: $ibo-color-orange-300 !default;
$ibo-color-warning-400: $ibo-color-orange-400 !default;
$ibo-color-warning-500: $ibo-color-orange-500 !default;
$ibo-color-warning-600: $ibo-color-orange-600 !default;
$ibo-color-warning-700: $ibo-color-orange-700 !default;
$ibo-color-warning-800: $ibo-color-orange-800 !default;
$ibo-color-warning-900: $ibo-color-orange-900 !default;
$ibo-color-warning-950: $ibo-color-orange-950 !default;
$ibo-color-warning-100: $common-color-warning-100 !default;
$ibo-color-warning-200: $common-color-warning-200 !default;
$ibo-color-warning-300: $common-color-warning-300 !default;
$ibo-color-warning-400: $common-color-warning-400 !default;
$ibo-color-warning-500: $common-color-warning-500 !default;
$ibo-color-warning-600: $common-color-warning-600 !default;
$ibo-color-warning-700: $common-color-warning-700 !default;
$ibo-color-warning-800: $common-color-warning-800 !default;
$ibo-color-warning-900: $common-color-warning-900 !default;
$ibo-color-warning-950: $common-color-warning-950 !default;
/* Danger: messages of failure, error, ... */
$ibo-color-error-100: $ibo-color-red-100 !default;
$ibo-color-error-200: $ibo-color-red-200 !default;
$ibo-color-error-300: $ibo-color-red-300 !default;
$ibo-color-error-400: $ibo-color-red-400 !default;
$ibo-color-error-500: $ibo-color-red-500 !default;
$ibo-color-error-600: $ibo-color-red-600 !default;
$ibo-color-error-700: $ibo-color-red-700 !default;
$ibo-color-error-800: $ibo-color-red-800 !default;
$ibo-color-error-900: $ibo-color-red-900 !default;
$ibo-color-error-950: $ibo-color-red-950 !default;
$ibo-color-error-100: $common-color-error-100 !default;
$ibo-color-error-200: $common-color-error-200 !default;
$ibo-color-error-300: $common-color-error-300 !default;
$ibo-color-error-400: $common-color-error-400 !default;
$ibo-color-error-500: $common-color-error-500 !default;
$ibo-color-error-600: $common-color-error-600 !default;
$ibo-color-error-700: $common-color-error-700 !default;
$ibo-color-error-800: $common-color-error-800 !default;
$ibo-color-error-900: $common-color-error-900 !default;
$ibo-color-error-950: $common-color-error-950 !default;
/* Danger: messages of danger, actions that cannot be undone, ... */
$ibo-color-danger-100: $ibo-color-red-100 !default;
$ibo-color-danger-200: $ibo-color-red-200 !default;
$ibo-color-danger-300: $ibo-color-red-300 !default;
$ibo-color-danger-400: $ibo-color-red-400 !default;
$ibo-color-danger-500: $ibo-color-red-500 !default;
$ibo-color-danger-600: $ibo-color-red-600 !default;
$ibo-color-danger-700: $ibo-color-red-700 !default;
$ibo-color-danger-800: $ibo-color-red-800 !default;
$ibo-color-danger-900: $ibo-color-red-900 !default;
$ibo-color-danger-950: $ibo-color-red-950 !default;
$ibo-color-danger-100: $common-color-danger-100 !default;
$ibo-color-danger-200: $common-color-danger-200 !default;
$ibo-color-danger-300: $common-color-danger-300 !default;
$ibo-color-danger-400: $common-color-danger-400 !default;
$ibo-color-danger-500: $common-color-danger-500 !default;
$ibo-color-danger-600: $common-color-danger-600 !default;
$ibo-color-danger-700: $common-color-danger-700 !default;
$ibo-color-danger-800: $common-color-danger-800 !default;
$ibo-color-danger-900: $common-color-danger-900 !default;
$ibo-color-danger-950: $common-color-danger-950 !default;
$ibo-semantic-colors: ('primary', 'secondary', 'information', 'success', 'warning', 'danger');
$ibo-semantic-colors: $common-semantic-colors !default;
$ibo-caselog-highlight-color-1: $ibo-color-green-700 !default;
$ibo-caselog-highlight-color-2: $ibo-color-pink-700 !default;
$ibo-caselog-highlight-color-3: $ibo-color-orange-400 !default;
$ibo-caselog-highlight-color-4: $ibo-color-blue-600 !default;
$ibo-caselog-highlight-color-5: $ibo-color-cyan-200 !default;
$ibo-caselog-highlight-color-6: $ibo-color-green-200 !default;
$ibo-caselog-highlight-color-7: $ibo-color-pink-300 !default;
$ibo-caselog-highlight-colors: ($ibo-caselog-highlight-color-1, $ibo-caselog-highlight-color-2, $ibo-caselog-highlight-color-3, $ibo-caselog-highlight-color-4, $ibo-caselog-highlight-color-5, $ibo-caselog-highlight-color-6, $ibo-caselog-highlight-color-7) !default;
$ibo-caselog-highlight-color-1: $common-caselog-highlight-color-1 !default;
$ibo-caselog-highlight-color-2: $common-caselog-highlight-color-2 !default;
$ibo-caselog-highlight-color-3: $common-caselog-highlight-color-3 !default;
$ibo-caselog-highlight-color-4: $common-caselog-highlight-color-4 !default;
$ibo-caselog-highlight-color-5: $common-caselog-highlight-color-5 !default;
$ibo-caselog-highlight-color-6: $common-caselog-highlight-color-6 !default;
$ibo-caselog-highlight-color-7: $common-caselog-highlight-color-7 !default;
$ibo-caselog-highlight-colors: $common-caselog-highlight-colors !default;
/* CSS variables */
:root {

View File

@@ -5,16 +5,16 @@
/* Semantic palettes */
/* - Primary color of the brand */
$common-color-primary-100: $common-color-blue-100 !default;
$common-color-primary-200: $common-color-blue-200 !default;
$common-color-primary-300: $common-color-blue-300 !default;
$common-color-primary-400: $common-color-blue-400 !default;
$common-color-primary-500: $common-color-blue-500 !default;
$common-color-primary-600: $common-color-blue-600 !default;
$common-color-primary-700: $common-color-blue-700 !default;
$common-color-primary-800: $common-color-blue-800 !default;
$common-color-primary-900: $common-color-blue-900 !default;
$common-color-primary-950: $common-color-blue-950 !default;
$common-color-primary-100: $common-color-orange-100 !default;
$common-color-primary-200: $common-color-orange-200 !default;
$common-color-primary-300: $common-color-orange-300 !default;
$common-color-primary-400: $common-color-orange-400 !default;
$common-color-primary-500: $common-color-orange-500 !default;
$common-color-primary-600: $common-color-orange-600 !default;
$common-color-primary-700: $common-color-orange-700 !default;
$common-color-primary-800: $common-color-orange-800 !default;
$common-color-primary-900: $common-color-orange-900 !default;
$common-color-primary-950: $common-color-orange-950 !default;
/* - Secondary color of the brand */
$common-color-secondary-100: $common-color-grey-100 !default;

View File

@@ -0,0 +1,13 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN GB', 'British English', 'British English', array(
'CAS:Error:UserNotAllowed' => 'User not allowed',
'CAS:Login:SignIn' => 'Sign in with CAS',
'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server',
));

View File

@@ -0,0 +1,41 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserExternal
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:UserExternal' => 'External user',
'Class:UserExternal+' => 'User authentified outside of '.ITOP_APPLICATION_SHORT,
));

View File

@@ -37,6 +37,6 @@
Dict::Add('EN US', 'English', 'English', array(
'Class:UserLDAP' => 'LDAP user',
'Class:UserLDAP+' => 'User authentified by LDAP',
'Class:UserLDAP+' => 'User authenticated by LDAP',
'UserLDAP:server' => 'LDAP specifics',
));

View File

@@ -0,0 +1,42 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserLDAP
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:UserLDAP' => 'LDAP user',
'Class:UserLDAP+' => 'User authenticated by LDAP',
'UserLDAP:server' => 'LDAP specifics',
));

View File

@@ -11,6 +11,6 @@
*/
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:UserLDAP' => 'LDAP užívateľ',
'Class:UserLDAP+' => 'User authentified by LDAP~~',
'Class:UserLDAP+' => 'User authenticated by LDAP~~',
'UserLDAP:server' => 'LDAP specifics~~',
]);

View File

@@ -0,0 +1,60 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserLocal
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:UserLocal' => ITOP_APPLICATION_SHORT.' user',
'Class:UserLocal+' => 'User authentified by '.ITOP_APPLICATION_SHORT,
'Class:UserLocal/Attribute:password' => 'Password',
'Class:UserLocal/Attribute:password+' => 'User authentication string',
'Class:UserLocal/Attribute:expiration' => 'Password expiration',
'Class:UserLocal/Attribute:expiration+' => 'Password expiration status (requires an extension to have an effect)',
'Class:UserLocal/Attribute:expiration/Value:can_expire' => 'Can expire',
'Class:UserLocal/Attribute:expiration/Value:can_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:never_expire' => 'Never expire',
'Class:UserLocal/Attribute:expiration/Value:never_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:force_expire' => 'Expired',
'Class:UserLocal/Attribute:expiration/Value:force_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:otp_expire' => 'One-time Password',
'Class:UserLocal/Attribute:expiration/Value:otp_expire+' => 'Password cannot be changed by the user.',
'Class:UserLocal/Attribute:password_renewed_date' => 'Password renewed on',
'Class:UserLocal/Attribute:password_renewed_date+' => 'When the password was last changed',
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.',
'UserLocal:password:expiration' => 'The fields below require an extension',
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User',
));

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'theme:darkmoon' => 'Dark moon',
));

View File

@@ -21,6 +21,29 @@ $ibo-color-red-600: $nord11;
$ibo-color-red-700: darken($nord11, 7%);
$ibo-color-red-800: darken($nord11, 15%);
$ibo-color-red-900: darken($nord11, 22%);
$ibo-color-red-950: darken($nord11, 25%);
$ibo-color-error-100: $ibo-color-red-100;
$ibo-color-error-200: $ibo-color-red-200;
$ibo-color-error-300: $ibo-color-red-300;
$ibo-color-error-400: $ibo-color-red-400;
$ibo-color-error-500: $ibo-color-red-500;
$ibo-color-error-600: $ibo-color-red-600;
$ibo-color-error-700: $ibo-color-red-700;
$ibo-color-error-800: $ibo-color-red-800;
$ibo-color-error-900: $ibo-color-red-900;
$ibo-color-error-950: $ibo-color-red-950;
$ibo-color-danger-100: $ibo-color-red-100;
$ibo-color-danger-200: $ibo-color-red-200;
$ibo-color-danger-300: $ibo-color-red-300;
$ibo-color-danger-400: $ibo-color-red-400;
$ibo-color-danger-500: $ibo-color-red-500;
$ibo-color-danger-600: $ibo-color-red-600;
$ibo-color-danger-700: $ibo-color-red-700;
$ibo-color-danger-800: $ibo-color-red-800;
$ibo-color-danger-900: $ibo-color-red-900;
$ibo-color-danger-950: $ibo-color-red-950;
$ibo-color-primary-100: lighten($nord8, 15%);
$ibo-color-primary-200: darken($ibo-color-primary-100, 7%);

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)',
));

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)'
));

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)',
));

View File

@@ -17,7 +17,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all~~',
'DBTools:Analyze' => 'Analyzuj',
'DBTools:Base' => 'Base~~',
@@ -41,7 +41,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [
'DBTools:LostAttachments:Button:Busy' => 'Please wait...~~',
'DBTools:LostAttachments:Button:Restore' => 'Restore~~',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyze results:~~',

View File

@@ -17,7 +17,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all~~',
'DBTools:Analyze' => 'Analyze~~',
'DBTools:Base' => 'Base~~',
@@ -41,7 +41,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'DBTools:LostAttachments:Button:Busy' => 'Please wait...~~',
'DBTools:LostAttachments:Button:Restore' => 'Restore~~',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyze results:~~',

View File

@@ -59,7 +59,7 @@ Dict::Add('EN US', 'English', 'English', array(
'DBAnalyzer-Integrity-HKInvalid' => 'Broken hierarchical key `%1$s`',
'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted',
'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class',
));
// Database Info
@@ -72,7 +72,7 @@ Dict::Add('EN US', 'English', 'English', array(
// Lost attachments
Dict::Add('EN US', 'English', 'English', array(
'DBTools:LostAttachments' => 'Lost attachments',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.',
'DBTools:LostAttachments:Button:Analyze' => 'Analyze',
'DBTools:LostAttachments:Button:Restore' => 'Restore',

View File

@@ -0,0 +1,96 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with iTop. If not, see <http://www.gnu.org/licenses/>
*/
// Database inconsistencies
Dict::Add('EN GB', 'British English', 'British English', array(
// Dictionary entries go here
'Menu:DBToolsMenu' => 'Database integrity',
'DBTools:Class' => 'Class',
'DBTools:Title' => 'Database integrity check',
'DBTools:ErrorsFound' => 'Errors Found',
'DBTools:Indication' => 'Important: after fixing errors in the database you\'ll have to run the analysis again as new inconsistencies will be generated',
'DBTools:Disclaimer' => 'DISCLAIMER: BACKUP YOUR DATABASE BEFORE RUNNING THE FIXES',
'DBTools:Error' => 'Error',
'DBTools:Count' => 'Count',
'DBTools:SQLquery' => 'SQL query',
'DBTools:FixitSQLquery' => 'SQL query To Fix it (indication)',
'DBTools:SQLresult' => 'SQL result',
'DBTools:NoError' => 'The database is OK',
'DBTools:HideIds' => 'Error List',
'DBTools:ShowIds' => 'Detailed view',
'DBTools:ShowReport' => 'Report',
'DBTools:IntegrityCheck' => 'Integrity check',
'DBTools:FetchCheck' => 'Fetch Check (long)',
'DBTools:SelectAnalysisType' => 'Select analysis type',
'DBTools:Analyze' => 'Analyse',
'DBTools:Details' => 'Show Details',
'DBTools:ShowAll' => 'Show All Errors',
'DBTools:Inconsistencies' => 'Database inconsistencies',
'DBTools:DetailedErrorTitle' => '%2$s error(s) in class %1$s: %3$s',
'DBTools:DetailedErrorLimit' => 'List limited to %1$s errors',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`',
'DBAnalyzer-Integrity-InvalidExtKey' => 'Invalid external key %1$s (column: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all',
'DBAnalyzer-Integrity-HKInvalid' => 'Broken hierarchical key `%1$s`',
'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted',
'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class',
));
// Database Info
Dict::Add('EN GB', 'British English', 'British English', array(
'DBTools:DatabaseInfo' => 'Database Information',
'DBTools:Base' => 'Base',
'DBTools:Size' => 'Size',
));
// Lost attachments
Dict::Add('EN GB', 'British English', 'British English', array(
'DBTools:LostAttachments' => 'Lost attachments',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.',
'DBTools:LostAttachments:Button:Analyze' => 'Analyse',
'DBTools:LostAttachments:Button:Restore' => 'Restore',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.',
'DBTools:LostAttachments:Button:Busy' => 'Please wait...',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analysing the database.',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyse results:',
'DBTools:LostAttachments:Step:AnalyzeResults:None' => 'Great! Every thing seems to be at the right place.',
'DBTools:LostAttachments:Step:AnalyzeResults:Some' => 'Some attachments (%1$d) seem to be misplaced. Take a look at the following list and check the ones you would like to move.',
'DBTools:LostAttachments:Step:AnalyzeResults:Item:Filename' => 'Filename',
'DBTools:LostAttachments:Step:AnalyzeResults:Item:CurrentLocation' => 'Current location',
'DBTools:LostAttachments:Step:AnalyzeResults:Item:TargetLocation' => 'Move to...',
'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:',
'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.',
'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools'
));

View File

@@ -17,7 +17,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all~~',
'DBTools:Analyze' => 'Analyze~~',
'DBTools:Base' => 'Base~~',
@@ -41,7 +41,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'DBTools:LostAttachments:Button:Busy' => 'Please wait...~~',
'DBTools:LostAttachments:Button:Restore' => 'Restore~~',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyze results:~~',

View File

@@ -18,7 +18,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'DBAnalyzer-Integrity-InvalidValue' => 'Недопустимое значение для %1$s (столбец: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-MissingExtKey' => 'Отсутствует внешний ключ %1$s (столбец: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-OrphanRecord' => 'Сиротская запись в `%1$s`, она должна иметь свой аналог в таблице `%2$s`',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Некоторые учетные записи пользователей не имеют профилей',
'DBTools:Analyze' => 'Анализировать',
'DBTools:Base' => 'База',

View File

@@ -17,7 +17,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all~~',
'DBTools:Analyze' => 'Analyze~~',
'DBTools:Base' => 'Base~~',
@@ -41,7 +41,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'DBTools:LostAttachments:Button:Busy' => 'Please wait...~~',
'DBTools:LostAttachments:Button:Restore' => 'Restore~~',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyze results:~~',

View File

@@ -17,7 +17,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'DBAnalyzer-Integrity-InvalidValue' => 'Invalid value for %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-MissingExtKey' => 'Missing external key %1$s (column: `%2$s.%3$s`)~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~',
'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~',
'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Some user accounts have no profile at all~~',
'DBTools:Analyze' => 'Analyze~~',
'DBTools:Base' => 'Base~~',
@@ -41,7 +41,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'DBTools:LostAttachments:Button:Busy' => 'Please wait...~~',
'DBTools:LostAttachments:Button:Restore' => 'Restore~~',
'DBTools:LostAttachments:Button:Restore:Confirm' => 'This action cannot be undone, please confirm that you want to restore the selected files.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, is does not retrieve deleted data.~~',
'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~',
'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~',
'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~',
'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analyze results:~~',

View File

@@ -0,0 +1,81 @@
<?php
/**
* @copyright Copyright (C) 2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN GB', 'British English', 'British English', array(
'Attachments:TabTitle_Count' => 'Attachments (%1$d)',
'Attachments:EmptyTabTitle' => 'Attachments',
'Attachments:FieldsetTitle' => 'Attachments',
'Attachments:DeleteBtn' => 'Delete',
'Attachments:History_File_Added' => 'Attachment %1$s added.',
'Attachments:History_File_Removed' => 'Attachment %1$s removed.',
'Attachments:AddAttachment' => 'Add attachment: ',
'Attachments:UploadNotAllowedOnThisSystem' => 'File upload in NOT allowed on this system.',
'Attachment:Max_Go' => '(Maximum file size: %1$s GB)',
'Attachment:Max_Mo' => '(Maximum file size: %1$s MB)',
'Attachment:Max_Ko' => '(Maximum file size: %1$s KB)',
'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',
'Attachments:Error:UploadedFileEmpty' => 'The received file is empty and cannot be attached.
Either you have pushed an empty file,
or ask your '.ITOP_APPLICATION_SHORT.' administrator if the '.ITOP_APPLICATION_SHORT.' server disk is full.',
'Attachments:Render:Icons' => 'Display as icons',
'Attachments:Render:Table' => 'Display as list',
'UI:Attachments:DropYourFileHint' => 'Drop files anywhere in this area',
));
//
// Class: Attachment
//
Dict::Add('EN GB', 'British English', 'British 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 organisation',
'Class:Attachment/Attribute:item_org_id+' => '',
'Class:Attachment/Attribute:contents' => 'Contents',
'Class:Attachment/Attribute:contents+' => '',
));
Dict::Add('EN GB', 'British English', 'British English', array(
'Attachments:File:Thumbnail' => 'Icon',
'Attachments:File:Name' => 'File name',
'Attachments:File:Date' => 'Upload date',
'Attachments:File:Uploader' => 'Uploaded by',
'Attachments:File:Size' => 'Size',
'Attachments:File:MimeType' => 'Type',
'Attachments:File:DownloadsCount' => 'Downloads',
));
//
// Class: Attachment
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:Attachment/Attribute:creation_date' => 'Creation date',
'Class:Attachment/Attribute:creation_date+' => '',
'Class:Attachment/Attribute:user_id' => 'User id',
'Class:Attachment/Attribute:user_id+' => '',
'Class:Attachment/Attribute:contact_id' => 'Contact id',
'Class:Attachment/Attribute:contact_id+' => '',
));
//
// Class: TriggerOnAttachmentDownload
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:TriggerOnAttachmentDownload' => 'Trigger (on object\'s attachment download)',
'Class:TriggerOnAttachmentDownload+' => 'Trigger on object\'s attachment download of [a child class of] the given class',
));

View File

@@ -33,7 +33,7 @@ class EventListener implements iEventServiceSetup
public function RegisterEventsAndListeners()
{
EventService::RegisterListener(
EVENT_DOWNLOAD_DOCUMENT,
\EVENT_DOWNLOAD_DOCUMENT,
[$this, 'OnAttachmentDownloadActivateTriggers'],
'Attachment'
);

View File

@@ -0,0 +1,61 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'bkp-backup-running' => 'A backup is running. Please wait...',
'bkp-restore-running' => 'A restore is running. Please wait...',
'Menu:BackupStatus' => 'Backups',
'bkp-status-title' => 'Backups',
'bkp-status-checks' => 'Settings and checks',
'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 <code>%1$s</code> could not be found',
'bkp-free-disk-space' => '<b>%1$s free</b> in <code>%2$s</code>',
'bkp-dir-not-writeable' => '%1$s is not writable',
'bkp-wrong-format-spec' => 'The current specification to format the file names is wrong (%1$s). A default specification will apply: %2$s',
'bkp-name-sample' => 'Backup files are named depending on DB identifiers, date and time. Example: %1$s',
'bkp-week-days' => 'Backups will occur <b>every %1$s at %2$s</b>',
'bkp-retention' => 'At most <b>%1$d backup files will be kept</b> in the target directory.',
'bkp-next-to-delete' => 'Will be deleted when the next backup occurs (see the setting "retention_count")',
'bkp-table-file' => 'File',
'bkp-table-file+' => 'Only files having the extension .zip are considered as being backup files',
'bkp-table-size' => 'Size',
'bkp-table-size+' => '',
'bkp-table-actions' => 'Actions',
'bkp-table-actions+' => '',
'bkp-status-backups-auto' => 'Scheduled backups',
'bkp-status-backups-manual' => 'Manual backups',
'bkp-status-backups-none' => 'No backup yet',
'bkp-next-backup' => 'The next backup will occur on <b>%1$s</b> (%2$s) at %3$s.',
'bkp-next-backup-unknown' => 'The next backup is <b>not scheduled</b> yet.',
'bkp-button-backup-now' => 'Backup now!',
'bkp-button-restore-now' => 'Restore!',
'bkp-confirm-backup' => 'Please confirm that you do request the backup to occur right now.',
'bkp-confirm-restore' => 'Please confirm that you do want to restore the backup %1$s.',
'bkp-wait-backup' => 'Please wait for the backup to complete...',
'bkp-wait-restore' => 'Please wait for the restore to complete...',
'bkp-success-restore' => 'Restore successfully completed.',
));

View File

@@ -0,0 +1,72 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
//////////////////////////////////////////////////////////////////////
// Note: The classes have been grouped by categories: bizmodel
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
//
// Class: lnkFunctionalCIToProviderContract
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Provider contract',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Provider contract Name',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '',
));
//
// Class: lnkFunctionalCIToService
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:lnkFunctionalCIToService' => 'Link FunctionalCI / Service',
'Class:lnkFunctionalCIToService+' => '',
'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToService/Attribute:service_id' => 'Service',
'Class:lnkFunctionalCIToService/Attribute:service_id+' => '',
'Class:lnkFunctionalCIToService/Attribute:service_name' => 'Service Name',
'Class:lnkFunctionalCIToService/Attribute:service_name+' => '',
'Class:lnkFunctionalCIToService/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI Name',
'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '',
));
//
// Class: FunctionalCI
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Provider contracts',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item',
'Class:FunctionalCI/Attribute:services_list' => 'Services',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item',
));
//
// Class: Document
//
Dict::Add('EN GB', 'British English', 'British English', array(
'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',
));

View File

@@ -0,0 +1,64 @@
<?php
// Copyright (C) 2024 Combodo SAS
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author Benjamin Planque <benjamin.planque@combodo.com>
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
//////////////////////////////////////////////////////////////////////
// Note: The classes have been grouped by categories: bizmodel
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Name',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (text)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted',
));
//
// Class: FunctionalCI
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item',
));

View File

@@ -0,0 +1,294 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'Menu:ChangeManagement' => 'Change management',
'Menu:Change:Overview' => 'Overview',
'Menu:Change:Overview+' => '',
'Menu:NewChange' => 'New change',
'Menu:NewChange+' => 'Create a new change ticket',
'Menu:SearchChanges' => 'Search for changes',
'Menu:SearchChanges+' => 'Search for change tickets',
'Menu:Change:Shortcuts' => 'Shortcuts',
'Menu:Change:Shortcuts+' => '',
'Menu:WaitingAcceptance' => 'Changes awaiting acceptance',
'Menu:WaitingAcceptance+' => '',
'Menu:WaitingApproval' => 'Changes awaiting approval',
'Menu:WaitingApproval+' => '',
'Menu:Changes' => 'Open changes',
'Menu:Changes+' => 'All open changes',
'Menu:MyChanges' => 'Changes assigned to me',
'Menu:MyChanges+' => 'Changes assigned to me (as Agent)',
'UI-ChangeManagementOverview-ChangeByCategory-last-7-days' => 'Changes by category for the last 7 days',
'UI-ChangeManagementOverview-Last-7-days' => 'Number of changes for the last 7 days',
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Changes by domain for the last 7 days',
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days',
'Tickets:Related:OpenChanges' => 'Open changes',
'Tickets:Related:RecentChanges' => 'Recent changes (72h)',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: Change
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:Change' => 'Change',
'Class:Change+' => '',
'Class:Change/Attribute:status' => 'Status',
'Class:Change/Attribute:status+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:validated' => 'Validated',
'Class:Change/Attribute:status/Value:validated+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planned and scheduled',
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:notapproved' => 'Not approved',
'Class:Change/Attribute:status/Value:notapproved+' => '',
'Class:Change/Attribute:status/Value:implemented' => 'Implemented',
'Class:Change/Attribute:status/Value:implemented+' => '',
'Class:Change/Attribute:status/Value:monitored' => 'Monitored',
'Class:Change/Attribute:status/Value:monitored+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:Change/Attribute:reason' => 'Reject reason',
'Class:Change/Attribute:reason+' => '',
'Class:Change/Attribute:requestor_id' => 'Requestor',
'Class:Change/Attribute:requestor_id+' => '',
'Class:Change/Attribute:requestor_email' => 'Requestor email',
'Class:Change/Attribute:requestor_email+' => '',
'Class:Change/Attribute:creation_date' => 'Creation date',
'Class:Change/Attribute:creation_date+' => '',
'Class:Change/Attribute:impact' => 'Impact',
'Class:Change/Attribute:impact+' => '',
'Class:Change/Attribute:supervisor_group_id' => 'Supervisor team',
'Class:Change/Attribute:supervisor_group_id+' => '',
'Class:Change/Attribute:supervisor_group_name' => 'Supervisor team name',
'Class:Change/Attribute:supervisor_group_name+' => '',
'Class:Change/Attribute:supervisor_id' => 'Supervisor',
'Class:Change/Attribute:supervisor_id+' => '',
'Class:Change/Attribute:supervisor_email' => 'Supervisor email',
'Class:Change/Attribute:supervisor_email+' => '',
'Class:Change/Attribute:manager_group_id' => 'Manager team',
'Class:Change/Attribute:manager_group_id+' => '',
'Class:Change/Attribute:manager_group_name' => 'Manager team name',
'Class:Change/Attribute:manager_group_name+' => '',
'Class:Change/Attribute:manager_id' => 'Manager',
'Class:Change/Attribute:manager_id+' => '',
'Class:Change/Attribute:manager_email' => 'Manager email',
'Class:Change/Attribute:manager_email+' => '',
'Class:Change/Attribute:outage' => 'Outage',
'Class:Change/Attribute:outage+' => '',
'Class:Change/Attribute:outage/Value:no' => 'No',
'Class:Change/Attribute:outage/Value:no+' => '',
'Class:Change/Attribute:outage/Value:yes' => 'Yes',
'Class:Change/Attribute:outage/Value:yes+' => '',
'Class:Change/Attribute:fallback' => 'Fallback plan',
'Class:Change/Attribute:fallback+' => '',
'Class:Change/Attribute:parent_id' => 'Parent change',
'Class:Change/Attribute:parent_id+' => '',
'Class:Change/Attribute:parent_name' => 'Parent change Ref',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => 'Related requests',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change',
'Class:Change/Attribute:related_problems_list' => 'Related problems',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change',
'Class:Change/Attribute:related_incident_list' => 'Related incidents',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change',
'Class:Change/Attribute:child_changes_list' => 'Child changes',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent friendly name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Change type',
'Class:Change/Attribute:parent_id_finalclass_recall+' => '',
'Class:Change/Stimulus:ev_validate' => 'Validate',
'Class:Change/Stimulus:ev_validate+' => '',
'Class:Change/Stimulus:ev_reject' => 'Reject',
'Class:Change/Stimulus:ev_reject+' => '',
'Class:Change/Stimulus:ev_assign' => 'Assign',
'Class:Change/Stimulus:ev_assign+' => '',
'Class:Change/Stimulus:ev_reopen' => 'Reopen',
'Class:Change/Stimulus:ev_reopen+' => '',
'Class:Change/Stimulus:ev_plan' => 'Plan',
'Class:Change/Stimulus:ev_plan+' => '',
'Class:Change/Stimulus:ev_approve' => 'Approve',
'Class:Change/Stimulus:ev_approve+' => '',
'Class:Change/Stimulus:ev_replan' => 'Replan',
'Class:Change/Stimulus:ev_replan+' => '',
'Class:Change/Stimulus:ev_notapprove' => 'Reject',
'Class:Change/Stimulus:ev_notapprove+' => '',
'Class:Change/Stimulus:ev_implement' => 'Implement',
'Class:Change/Stimulus:ev_implement+' => '',
'Class:Change/Stimulus:ev_monitor' => 'Monitor',
'Class:Change/Stimulus:ev_monitor+' => '',
'Class:Change/Stimulus:ev_finish' => 'Finish',
'Class:Change/Stimulus:ev_finish+' => '',
));
//
// Class: RoutineChange
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:RoutineChange' => 'Routine Change',
'Class:RoutineChange+' => '',
'Class:RoutineChange/Stimulus:ev_validate' => 'Validate',
'Class:RoutineChange/Stimulus:ev_validate+' => '',
'Class:RoutineChange/Stimulus:ev_reject' => 'Reject',
'Class:RoutineChange/Stimulus:ev_reject+' => '',
'Class:RoutineChange/Stimulus:ev_assign' => 'Assign',
'Class:RoutineChange/Stimulus:ev_assign+' => '',
'Class:RoutineChange/Stimulus:ev_reopen' => 'Reopen',
'Class:RoutineChange/Stimulus:ev_reopen+' => '',
'Class:RoutineChange/Stimulus:ev_plan' => 'Plan',
'Class:RoutineChange/Stimulus:ev_plan+' => '',
'Class:RoutineChange/Stimulus:ev_approve' => 'Approve',
'Class:RoutineChange/Stimulus:ev_approve+' => '',
'Class:RoutineChange/Stimulus:ev_replan' => 'Replan',
'Class:RoutineChange/Stimulus:ev_replan+' => '',
'Class:RoutineChange/Stimulus:ev_notapprove' => 'Do Not Approve',
'Class:RoutineChange/Stimulus:ev_notapprove+' => '',
'Class:RoutineChange/Stimulus:ev_implement' => 'Implement',
'Class:RoutineChange/Stimulus:ev_implement+' => '',
'Class:RoutineChange/Stimulus:ev_monitor' => 'Monitor',
'Class:RoutineChange/Stimulus:ev_monitor+' => '',
'Class:RoutineChange/Stimulus:ev_finish' => 'Finish',
'Class:RoutineChange/Stimulus:ev_finish+' => '',
));
//
// Class: ApprovedChange
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:ApprovedChange' => 'Approved Changes',
'Class:ApprovedChange+' => '',
'Class:ApprovedChange/Attribute:approval_date' => 'Approval Date',
'Class:ApprovedChange/Attribute:approval_date+' => '',
'Class:ApprovedChange/Attribute:approval_comment' => 'Approval comment',
'Class:ApprovedChange/Attribute:approval_comment+' => '',
'Class:ApprovedChange/Stimulus:ev_validate' => 'Validate',
'Class:ApprovedChange/Stimulus:ev_validate+' => '',
'Class:ApprovedChange/Stimulus:ev_reject' => 'Reject',
'Class:ApprovedChange/Stimulus:ev_reject+' => '',
'Class:ApprovedChange/Stimulus:ev_assign' => 'Assign',
'Class:ApprovedChange/Stimulus:ev_assign+' => '',
'Class:ApprovedChange/Stimulus:ev_reopen' => 'Reopen',
'Class:ApprovedChange/Stimulus:ev_reopen+' => '',
'Class:ApprovedChange/Stimulus:ev_plan' => 'Plan',
'Class:ApprovedChange/Stimulus:ev_plan+' => '',
'Class:ApprovedChange/Stimulus:ev_approve' => 'Approve',
'Class:ApprovedChange/Stimulus:ev_approve+' => '',
'Class:ApprovedChange/Stimulus:ev_replan' => 'Replan',
'Class:ApprovedChange/Stimulus:ev_replan+' => '',
'Class:ApprovedChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:ApprovedChange/Stimulus:ev_notapprove+' => '',
'Class:ApprovedChange/Stimulus:ev_implement' => 'Implement',
'Class:ApprovedChange/Stimulus:ev_implement+' => '',
'Class:ApprovedChange/Stimulus:ev_monitor' => 'Monitor',
'Class:ApprovedChange/Stimulus:ev_monitor+' => '',
'Class:ApprovedChange/Stimulus:ev_finish' => 'Finish',
'Class:ApprovedChange/Stimulus:ev_finish+' => '',
));
//
// Class: NormalChange
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:NormalChange' => 'Normal Change',
'Class:NormalChange+' => '',
'Class:NormalChange/Attribute:acceptance_date' => 'Acceptance date',
'Class:NormalChange/Attribute:acceptance_date+' => '',
'Class:NormalChange/Attribute:acceptance_comment' => 'Acceptance comment',
'Class:NormalChange/Attribute:acceptance_comment+' => '',
'Class:NormalChange/Stimulus:ev_validate' => 'Validate',
'Class:NormalChange/Stimulus:ev_validate+' => '',
'Class:NormalChange/Stimulus:ev_reject' => 'Reject',
'Class:NormalChange/Stimulus:ev_reject+' => '',
'Class:NormalChange/Stimulus:ev_assign' => 'Assign',
'Class:NormalChange/Stimulus:ev_assign+' => '',
'Class:NormalChange/Stimulus:ev_reopen' => 'Reopen',
'Class:NormalChange/Stimulus:ev_reopen+' => '',
'Class:NormalChange/Stimulus:ev_plan' => 'Plan',
'Class:NormalChange/Stimulus:ev_plan+' => '',
'Class:NormalChange/Stimulus:ev_approve' => 'Approve',
'Class:NormalChange/Stimulus:ev_approve+' => '',
'Class:NormalChange/Stimulus:ev_replan' => 'Replan',
'Class:NormalChange/Stimulus:ev_replan+' => '',
'Class:NormalChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:NormalChange/Stimulus:ev_notapprove+' => '',
'Class:NormalChange/Stimulus:ev_implement' => 'Implement',
'Class:NormalChange/Stimulus:ev_implement+' => '',
'Class:NormalChange/Stimulus:ev_monitor' => 'Monitor',
'Class:NormalChange/Stimulus:ev_monitor+' => '',
'Class:NormalChange/Stimulus:ev_finish' => 'Finish',
'Class:NormalChange/Stimulus:ev_finish+' => '',
));
//
// Class: EmergencyChange
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:EmergencyChange' => 'Emergency Change',
'Class:EmergencyChange+' => '',
'Class:EmergencyChange/Stimulus:ev_validate' => 'Validate',
'Class:EmergencyChange/Stimulus:ev_validate+' => '',
'Class:EmergencyChange/Stimulus:ev_reject' => 'Reject',
'Class:EmergencyChange/Stimulus:ev_reject+' => '',
'Class:EmergencyChange/Stimulus:ev_assign' => 'Assign',
'Class:EmergencyChange/Stimulus:ev_assign+' => '',
'Class:EmergencyChange/Stimulus:ev_reopen' => 'Reopen',
'Class:EmergencyChange/Stimulus:ev_reopen+' => '',
'Class:EmergencyChange/Stimulus:ev_plan' => 'Plan',
'Class:EmergencyChange/Stimulus:ev_plan+' => '',
'Class:EmergencyChange/Stimulus:ev_approve' => 'Approve',
'Class:EmergencyChange/Stimulus:ev_approve+' => '',
'Class:EmergencyChange/Stimulus:ev_replan' => 'Replan',
'Class:EmergencyChange/Stimulus:ev_replan+' => '',
'Class:EmergencyChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:EmergencyChange/Stimulus:ev_notapprove+' => '',
'Class:EmergencyChange/Stimulus:ev_implement' => 'Implement',
'Class:EmergencyChange/Stimulus:ev_implement+' => '',
'Class:EmergencyChange/Stimulus:ev_monitor' => 'Monitor',
'Class:EmergencyChange/Stimulus:ev_monitor+' => '',
'Class:EmergencyChange/Stimulus:ev_finish' => 'Finish',
'Class:EmergencyChange/Stimulus:ev_finish+' => '',
));

View File

@@ -0,0 +1,140 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'Menu:ChangeManagement' => 'Change management',
'Menu:Change:Overview' => 'Overview',
'Menu:Change:Overview+' => '',
'Menu:NewChange' => 'New change',
'Menu:NewChange+' => 'Create a new change ticket',
'Menu:SearchChanges' => 'Search for changes',
'Menu:SearchChanges+' => 'Search for change tickets',
'Menu:Change:Shortcuts' => 'Shortcuts',
'Menu:Change:Shortcuts+' => '',
'Menu:WaitingAcceptance' => 'Changes awaiting acceptance',
'Menu:WaitingAcceptance+' => '',
'Menu:WaitingApproval' => 'Changes awaiting approval',
'Menu:WaitingApproval+' => '',
'Menu:Changes' => 'Open changes',
'Menu:Changes+' => 'All open changes',
'Menu:MyChanges' => 'Changes assigned to me',
'Menu:MyChanges+' => 'Changes assigned to me (as Agent)',
'UI-ChangeManagementOverview-ChangeByCategory-last-7-days' => 'Changes by category for the last 7 days',
'UI-ChangeManagementOverview-Last-7-days' => 'Number of changes for the last 7 days',
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Changes by domain for the last 7 days',
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days',
'Tickets:Related:OpenChanges' => 'Open changes',
'Tickets:Related:RecentChanges' => 'Recent changes (72h)',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: Change
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:Change' => 'Change',
'Class:Change+' => '',
'Class:Change/Attribute:status' => 'Status',
'Class:Change/Attribute:status+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:planned' => 'Planned',
'Class:Change/Attribute:status/Value:planned+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:Change/Attribute:category' => 'Category',
'Class:Change/Attribute:category+' => '',
'Class:Change/Attribute:category/Value:application' => 'application',
'Class:Change/Attribute:category/Value:application+' => 'application',
'Class:Change/Attribute:category/Value:hardware' => 'hardware',
'Class:Change/Attribute:category/Value:hardware+' => 'hardware',
'Class:Change/Attribute:category/Value:network' => 'network',
'Class:Change/Attribute:category/Value:network+' => 'network',
'Class:Change/Attribute:category/Value:other' => 'other',
'Class:Change/Attribute:category/Value:other+' => 'other',
'Class:Change/Attribute:category/Value:software' => 'software',
'Class:Change/Attribute:category/Value:software+' => 'software',
'Class:Change/Attribute:category/Value:system' => 'system',
'Class:Change/Attribute:category/Value:system+' => 'system',
'Class:Change/Attribute:reject_reason' => 'Reject reason',
'Class:Change/Attribute:reject_reason+' => '',
'Class:Change/Attribute:changemanager_id' => 'Change manager',
'Class:Change/Attribute:changemanager_id+' => '',
'Class:Change/Attribute:changemanager_email' => 'Change manager email',
'Class:Change/Attribute:changemanager_email+' => '',
'Class:Change/Attribute:parent_id' => 'Parent change',
'Class:Change/Attribute:parent_id+' => '',
'Class:Change/Attribute:parent_name' => 'Parent change ref',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:creation_date' => 'Creation date',
'Class:Change/Attribute:creation_date+' => '',
'Class:Change/Attribute:approval_date' => 'Approval date',
'Class:Change/Attribute:approval_date+' => '',
'Class:Change/Attribute:fallback_plan' => 'Fallback plan',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Related requests',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change',
'Class:Change/Attribute:related_incident_list' => 'Related incidents',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change',
'Class:Change/Attribute:related_problems_list' => 'Related problems',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change',
'Class:Change/Attribute:child_changes_list' => 'Child changes',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent change friendly name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Assign',
'Class:Change/Stimulus:ev_assign+' => '',
'Class:Change/Stimulus:ev_plan' => 'Plan',
'Class:Change/Stimulus:ev_plan+' => '',
'Class:Change/Stimulus:ev_reject' => 'Reject',
'Class:Change/Stimulus:ev_reject+' => '',
'Class:Change/Stimulus:ev_reopen' => 'Reopen',
'Class:Change/Stimulus:ev_reopen+' => '',
'Class:Change/Stimulus:ev_approve' => 'Approve',
'Class:Change/Stimulus:ev_approve+' => '',
'Class:Change/Stimulus:ev_finish' => 'Close',
'Class:Change/Stimulus:ev_finish+' => '',
'Class:Change/Attribute:outage' => 'Outage',
'Class:Change/Attribute:outage+' => '',
'Class:Change/Attribute:outage/Value:no' => 'No',
'Class:Change/Attribute:outage/Value:no+' => '',
'Class:Change/Attribute:outage/Value:yes' => 'Yes',
'Class:Change/Attribute:outage/Value:yes+' => '',
));

View File

@@ -4,7 +4,7 @@
<class id="FunctionalCI" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<category>bizmodel,searchable</category>
<category>bizmodel,searchable,popular</category>
<abstract>true</abstract>
<key_type>autoincrement</key_type>
<db_table>functionalci</db_table>

View File

@@ -643,7 +643,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [
'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:Subnet/Tab:IPUsage' => 'Využití IP',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhraní, která mají IP adresu v rozsahu: <em>%1$s</em>-<em>%2$s</em>',
'Class:Tablet' => 'Tablet',
'Class:Tablet+' => '',

View File

@@ -153,7 +153,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'Class:FunctionalCI/Attribute:organization_name' => 'Organisationsnavn',
'Class:FunctionalCI/Attribute:organization_name+' => '',
'Class:FunctionalCI/Attribute:softwares_list' => 'Software',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the software installed on this configuration item~~',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~',
'Class:Group' => 'Gruppe',
@@ -642,7 +642,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'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:Subnet/Tab:IPUsage' => 'IP Brug',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces der har en IP i området: <em>%1$s</em> til <em>%2$s</em>',
'Class:Tablet' => 'Tablet',
'Class:Tablet+' => '',

View File

@@ -129,7 +129,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Application solutions',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'All the application solutions depending on this configuration item',
'Class:FunctionalCI/Attribute:softwares_list' => 'Softwares',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the software installed on this configuration item',
'Class:FunctionalCI/Attribute:finalclass' => 'CI sub-class',
'Class:FunctionalCI/Attribute:finalclass+' => 'Name of the final class',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets',
@@ -1557,7 +1557,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Server:otherinfo' => 'Other information',
'Server:power' => 'Power supply',
'Class:Subnet/Tab:IPUsage' => 'IP Usage',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not',
'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',

File diff suppressed because it is too large Load Diff

View File

@@ -641,7 +641,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', [
'Class:Subnet/Tab:FreeIPs-count' => 'Szabad IP címek: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => '10 szabad IP cím kivonata',
'Class:Subnet/Tab:IPUsage' => 'IP felhasználás',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'A hálózati csatolók a következő tartományba esnek: <em>%1$s</em> - <em>%2$s</em>',
'Class:Tablet' => 'Táblagép',
'Class:Tablet+' => '~~',

View File

@@ -152,7 +152,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'Class:FunctionalCI/Attribute:organization_name' => '組織名',
'Class:FunctionalCI/Attribute:organization_name+' => '共通名',
'Class:FunctionalCI/Attribute:softwares_list' => 'ソフトウエア',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the software installed on this configuration item~~',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~',
'Class:Group' => 'グループ',
@@ -641,7 +641,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'Class:Subnet/Tab:FreeIPs-count' => 'フリーIP: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => '10個のフリーなIPアドレス',
'Class:Subnet/Tab:IPUsage' => 'IP 利用',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'インターフェースは、レンジ: <em>%1$s</em> から <em>%2$s</em>の中のIPを持っています。',
'Class:Tablet' => 'タブレット',
'Class:Tablet+' => '',

View File

@@ -641,7 +641,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', [
'Class:Subnet/Tab:FreeIPs-count' => 'IPs livres: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => 'Aqui uma faixa de 10 endereços IPs livres',
'Class:Subnet/Tab:IPUsage' => 'IP usado',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'Placas de rede contendo IP na faixa: <em>%1$s</em> para <em>%2$s</em>',
'Class:Tablet' => 'Tablet',
'Class:Tablet+' => '',

View File

@@ -642,7 +642,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:Subnet/Tab:FreeIPs-count' => 'Свободных IP-адресов: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => 'Вот выборка из 10 свободных IP-адресов',
'Class:Subnet/Tab:IPUsage' => 'Использование IP-адресов',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'Интерфейсы с IP-адресом в диапазоне: <em>%1$s</em> - <em>%2$s</em>',
'Class:Tablet' => 'Планшет',
'Class:Tablet+' => '',

View File

@@ -152,7 +152,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:FunctionalCI/Attribute:organization_name' => 'Názov Organizácie',
'Class:FunctionalCI/Attribute:organization_name+' => 'Common name~~',
'Class:FunctionalCI/Attribute:softwares_list' => 'Softvér',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the software installed on this configuration item~~',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~',
'Class:Group' => 'Skupina',
@@ -641,7 +641,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:Subnet/Tab:FreeIPs-count' => 'Voľných IP adries: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => 'Tu je extrakt 10 voľných IP adries',
'Class:Subnet/Tab:IPUsage' => 'Využívanosť IP adries',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhrania majúce IP adresu v rozsahu: <em>%1$s</em> do <em>%2$s</em>',
'Class:Tablet' => 'Tablet',
'Class:Tablet+' => '~~',

View File

@@ -642,7 +642,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:Subnet/Tab:FreeIPs-count' => 'Boş IPler: %1$s',
'Class:Subnet/Tab:FreeIPs-explain' => 'Boş IP adresleri',
'Class:Subnet/Tab:IPUsage' => 'IP Kullanımı',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet are used or not~~',
'Class:Subnet/Tab:IPUsage+' => 'Which IP within this Subnet is used or not~~',
'Class:Subnet/Tab:IPUsage-explain' => '<em>%1$s</em> - <em>%2$s</em> aralığındaki IPye sahip arayüzler',
'Class:Tablet' => 'Tablet',
'Class:Tablet+' => '~~',

View File

@@ -0,0 +1,43 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'Menu:ConfigFileEditor' => 'Plain text editor',
'config-edit-title' => 'Configuration File Editor',
'config-edit-intro' => 'Be very cautious when editing the configuration file.',
'config-apply' => 'Apply',
'config-apply-title' => 'Apply (Ctrl+S)',
'config-cancel' => 'Reset',
'config-saved' => 'Successfully recorded.',
'config-confirm-cancel' => 'Your changes will be lost.',
'config-no-change' => 'No change: the file has been left unchanged.',
'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.',
'config-error-transaction' => 'Error: invalid Transaction ID. The configuration was <b>NOT</b> modified.',
'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.',
'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in <b>demonstration mode</b>: the configuration file cannot be edited.',
'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT." interactive edition of the configuration as been disabled. See <code>'config_editor' => 'disabled'</code> in the configuration file.",
));

View File

@@ -0,0 +1,127 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'iTopUpdate:UI:PageTitle' => 'Application Upgrade',
'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade',
'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade',
'itop-core-update:UI:UpdateCoreFiles' => 'Application Upgrading',
'iTopUpdate:UI:MaintenanceModeActive' => 'The application is currently under maintenance in read-only mode. You have to run a setup to return to normal mode.',
'itop-core-update:UI:UpdateDone' => 'Application Upgrade',
'itop-core-update/Operation:SelectUpdateFile/Title' => 'Application Upgrade',
'itop-core-update/Operation:ConfirmUpdate/Title' => 'Confirm Application Upgrade',
'itop-core-update/Operation:UpdateCoreFiles/Title' => 'Application Upgrading',
'itop-core-update/Operation:UpdateDone/Title' => 'Application Upgrade Done',
'iTopUpdate:UI:SelectUpdateFile' => 'Select an upgrade file to upload',
'iTopUpdate:UI:CheckUpdate' => 'Verify upgrade file',
'iTopUpdate:UI:ConfirmInstallFile' => 'You are about to install %1$s',
'iTopUpdate:UI:DoUpdate' => 'Upgrade',
'iTopUpdate:UI:CurrentVersion' => 'Current installed version',
'iTopUpdate:UI:NewVersion' => 'Newly installed version',
'iTopUpdate:UI:Back' => 'Back',
'iTopUpdate:UI:Cancel' => 'Cancel',
'iTopUpdate:UI:Continue' => 'Continue',
'iTopUpdate:UI:RunSetup' => 'Run Setup',
'iTopUpdate:UI:WithDBBackup' => 'Database backup',
'iTopUpdate:UI:WithFilesBackup' => 'Application files backup',
'iTopUpdate:UI:WithoutBackup' => 'No backup is planned',
'iTopUpdate:UI:Backup' => 'Backup generated before update',
'iTopUpdate:UI:DoFilesArchive' => 'Archive application files',
'iTopUpdate:UI:UploadArchive' => 'Select a package to upload',
'iTopUpdate:UI:ServerFile' => 'Path of a package already on the server',
'iTopUpdate:UI:WarningReadOnlyDuringUpdate' => 'During the upgrade, the application will be read-only.',
'iTopUpdate:UI:Status' => 'Status',
'iTopUpdate:UI:Action' => 'Update',
'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup',
'iTopUpdate:UI:History' => 'Versions History',
'iTopUpdate:UI:Progress' => 'Progress of the upgrade',
'iTopUpdate:UI:DoBackup:Label' => 'Backup files and database',
'iTopUpdate:UI:DoBackup:Warning' => 'Backup is not recommended due to limited available disk space',
'iTopUpdate:UI:DiskFreeSpace' => 'Disk free space',
'iTopUpdate:UI:ItopDiskSpace' => ITOP_APPLICATION_SHORT.' disk space',
'iTopUpdate:UI:DBDiskSpace' => 'Database disk space',
'iTopUpdate:UI:FileUploadMaxSize' => 'File upload max size',
'iTopUpdate:UI:PostMaxSize' => 'PHP ini value post_max_size: %1$s',
'iTopUpdate:UI:UploadMaxFileSize' => 'PHP ini value upload_max_filesize: %1$s',
'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Checking files',
'iTopUpdate:UI:CanCoreUpdate:Error' => 'Checking files failed (%1$s)',
'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Checking files failed (File not exist %1$s)',
'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Checking files failed',
'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Application can be updated',
'iTopUpdate:UI:CanCoreUpdate:No' => 'Application cannot be updated: %1$s',
'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Warning: application update can fail: %1$s',
'iTopUpdate:UI:CannotUpdateUseSetup' => '<b>Some modified files were detected</b>, a partial update cannot be executed.</br>Follow the <a target="_blank" href="%2$s"> procedure</a> in order to manually upgrade your iTop. You must use the <a href="%1$s">setup</a> to update the application.',
'iTopUpdate:UI:CheckInProgress' => 'Please wait during integrity check',
'iTopUpdate:UI:SetupLaunch' => 'Launch '.ITOP_APPLICATION_SHORT.' Setup',
'iTopUpdate:UI:SetupLaunchConfirm' => 'This will launch '.ITOP_APPLICATION_SHORT.' setup, are you sure?',
'iTopUpdate:UI:FastSetupLaunch' => 'Fast Setup',
// Setup Messages
'iTopUpdate:UI:SetupMessage:Ready' => 'Ready to start',
'iTopUpdate:UI:SetupMessage:EnterMaintenance' => 'Entering maintenance mode',
'iTopUpdate:UI:SetupMessage:Backup' => 'Database backup',
'iTopUpdate:UI:SetupMessage:FilesArchive' => 'Archive application files',
'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copy new version files',
'iTopUpdate:UI:SetupMessage:CheckCompile' => 'Check application upgrade',
'iTopUpdate:UI:SetupMessage:Compile' => 'Upgrade application',
'iTopUpdate:UI:SetupMessage:UpdateDatabase' => 'Upgrade database',
'iTopUpdate:UI:SetupMessage:ExitMaintenance' => 'Exiting maintenance mode',
'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Upgrade completed',
// Errors
'iTopUpdate:Error:MissingFunction' => 'Impossible to start upgrade, missing function',
'iTopUpdate:Error:MissingFile' => 'Missing file: %1$s',
'iTopUpdate:Error:CorruptedFile' => 'File %1$s is corrupted',
'iTopUpdate:Error:BadFileFormat' => 'Upgrade file is not a zip file',
'iTopUpdate:Error:BadFileContent' => 'Upgrade file is not an application archive',
'iTopUpdate:Error:BadItopProduct' => 'Upgrade file is not compatible with your application',
'iTopUpdate:Error:Copy' => 'Error, cannot copy \'%1$s\' to \'%2$s\'',
'iTopUpdate:Error:FileNotFound' => 'File not found',
'iTopUpdate:Error:NoFile' => 'No file provided',
'iTopUpdate:Error:InvalidToken' => 'Invalid token',
'iTopUpdate:Error:UpdateFailed' => 'Upgrade failed',
'iTopUpdate:Error:FileUploadMaxSizeTooSmall' => 'The upload max size seems too small for update. Please change the PHP configuration.',
'iTopUpdate:UI:RestoreArchive' => 'You can restore your application from the archive \'%1$s\'',
'iTopUpdate:UI:RestoreBackup' => 'You can restore the database from \'%1$s\'',
'iTopUpdate:UI:UpdateDone' => 'Upgrade successful',
'Menu:iTopUpdate' => 'Application upgrade',
'Menu:iTopUpdate+' => 'Application upgrade',
// Missing itop entries
'Class:ModuleInstallation/Attribute:installed' => 'Installed on',
'Class:ModuleInstallation/Attribute:name' => 'Name',
'Class:ModuleInstallation/Attribute:version' => 'Version',
'Class:ModuleInstallation/Attribute:comment' => 'Comment',
));

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
// Dictionary entries go here
));

View File

@@ -0,0 +1,26 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
// Dictionary entries go here
));

View File

@@ -0,0 +1,96 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: FAQ
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:FAQ' => 'FAQ',
'Class:FAQ+' => 'Frequently asked questions',
'Class:FAQ/Attribute:title' => 'Title',
'Class:FAQ/Attribute:title+' => '',
'Class:FAQ/Attribute:summary' => 'Summary',
'Class:FAQ/Attribute:summary+' => '',
'Class:FAQ/Attribute:description' => 'Description',
'Class:FAQ/Attribute:description+' => '',
'Class:FAQ/Attribute:category_id' => 'Category',
'Class:FAQ/Attribute:category_id+' => '',
'Class:FAQ/Attribute:category_name' => 'Category name',
'Class:FAQ/Attribute:category_name+' => '',
'Class:FAQ/Attribute:error_code' => 'Error code',
'Class:FAQ/Attribute:error_code+' => '',
'Class:FAQ/Attribute:key_words' => 'Key words',
'Class:FAQ/Attribute:key_words+' => '',
'Class:FAQ/Attribute:domains' => 'Domains',
));
//
// Class: FAQCategory
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:FAQCategory' => 'FAQ Category',
'Class:FAQCategory+' => 'Category for FAQ',
'Class:FAQCategory/Attribute:name' => 'Name',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category',
));
Dict::Add('EN GB', 'British English', 'British English', array(
'Menu:ProblemManagement' => 'Problem management',
'Menu:ProblemManagement+' => 'Problem management',
'Menu:Problem:Shortcuts' => 'Shortcuts',
'Menu:FAQCategory' => 'FAQ categories',
'Menu:FAQCategory+' => 'All FAQ categories',
'Menu:FAQ' => 'FAQs',
'Menu:FAQ+' => 'All FAQs',
'Brick:Portal:FAQ:Menu' => 'FAQ',
'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions',
'Brick:Portal:FAQ:Title+' => '<p>In a hurry?</p><p>Check out the list of most common questions and (maybe) find the expected answer right away.</p>',
));

View File

@@ -0,0 +1,32 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
// Errors
'FilesInformation:Error:MissingFile' => 'Missing file: %1$s',
'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted',
'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s',
'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s',
));

View File

@@ -0,0 +1,87 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
// Dictionary entries go here
'Menu:iTopHub' => 'iTop Hub',
'Menu:iTopHub:Register' => 'Connect to iTop Hub',
'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance',
'Menu:iTopHub:Register:Description' => '<p>Get access to your community platform iTop Hub!<br>Find all the content and information you need, manage your instances through personalized tools & install more extensions.<br><br>By connecting to the Hub from this page, you will push information about this '.ITOP_APPLICATION_SHORT.' instance into the Hub.</p>',
'Menu:iTopHub:MyExtensions' => 'Deployed extensions',
'Menu:iTopHub:MyExtensions+' => 'See the list of extensions deployed on this instance of '.ITOP_APPLICATION_SHORT,
'Menu:iTopHub:BrowseExtensions' => 'Get extensions from iTop Hub',
'Menu:iTopHub:BrowseExtensions+' => 'Browse for more extensions on iTop Hub',
'Menu:iTopHub:BrowseExtensions:Description' => '<p>Look into iTop Hubs store, your one stop place to find wonderful iTop extensions !<br>Find the ones that will help you customize and adapt '.ITOP_APPLICATION_SHORT.' to your processes.<br><br>By connecting to the Hub from this page, you will push information about this '.ITOP_APPLICATION_SHORT.' instance into the Hub.</p>',
'iTopHub:GoBtn' => 'Go To iTop Hub',
'iTopHub:CloseBtn' => 'Close',
'iTopHub:GoBtn:Tooltip' => 'Jump to www.itophub.io',
'iTopHub:OpenInNewWindow' => 'Open iTop Hub in a new window',
'iTopHub:AutoSubmit' => 'Don\'t ask me again. Next time, go to iTop Hub automatically.',
'UI:About:RemoteExtensionSource' => 'iTop Hub',
'iTopHub:Explanation' => 'By clicking this button you will be redirected to iTop Hub.',
'iTopHub:BackupFreeDiskSpaceIn' => '%1$s free disk space in %2$s.',
'iTopHub:FailedToCheckFreeDiskSpace' => 'Failed to check free disk space.',
'iTopHub:BackupOk' => 'Backup Ok.',
'iTopHub:BackupFailed' => 'Backup failed!',
'iTopHub:Landing:Status' => 'Deployment status',
'iTopHub:Landing:Install' => 'Deploying extensions...',
'iTopHub:CompiledOK' => 'Compilation successful.',
'iTopHub:ConfigurationSafelyReverted' => 'Error detected during deployment!<br>'.ITOP_APPLICATION_SHORT.' configuration has NOT been modified.',
'iTopHub:FailAuthent' => 'Authentication failed for this action.',
'iTopHub:InstalledExtensions' => 'Extensions deployed on this instance',
'iTopHub:ExtensionCategory:Manual' => 'Extensions deployed manually',
'iTopHub:ExtensionCategory:Manual+' => 'The following extensions have been deployed by copying them manually in the %1$s directory of '.ITOP_APPLICATION_SHORT.':',
'iTopHub:ExtensionCategory:Remote' => 'Extensions deployed from iTop Hub',
'iTopHub:ExtensionCategory:Remote+' => 'The following extensions have been deployed from iTop Hub:',
'iTopHub:NoExtensionInThisCategory' => 'There is no extension in this category',
'iTopHub:NoExtensionInThisCategory+' => 'Browse iTop Hub to find the extensions that will help you customize and adapt '.ITOP_APPLICATION_SHORT.' to your processes !',
'iTopHub:ExtensionNotInstalled' => 'Not installed',
'iTopHub:GetMoreExtensions' => 'Get extensions from iTop Hub...',
'iTopHub:LandingWelcome' => 'Congratulations! The following extensions were downloaded from iTop Hub and deployed into your '.ITOP_APPLICATION_SHORT.'.',
'iTopHub:GoBackToITopBtn' => 'Go Back to '.ITOP_APPLICATION_SHORT,
'iTopHub:Uncompressing' => 'Uncompressing extensions...',
'iTopHub:InstallationWelcome' => 'Installation of the extensions downloaded from iTop Hub',
'iTopHub:DBBackupLabel' => 'Instance backup',
'iTopHub:DBBackupSentence' => 'Do a backup of the database and '.ITOP_APPLICATION_SHORT.' configuration before updating',
'iTopHub:DeployBtn' => 'Deploy !',
'iTopHub:DatabaseBackupProgress' => 'Instance backup...',
'iTopHub:InstallationEffect:Install' => 'Version: %1$s will be installed.',
'iTopHub:InstallationEffect:NoChange' => 'Version: %1$s already installed. Nothing will change.',
'iTopHub:InstallationEffect:Upgrade' => 'Will be <b>upgraded</b> from version %1$s to version %2$s.',
'iTopHub:InstallationEffect:Downgrade' => 'Will be <b>DOWNGRADED</b> from version %1$s to version %2$s.',
'iTopHub:InstallationProgress:DatabaseBackup' => ITOP_APPLICATION_SHORT.' Instance backup...',
'iTopHub:InstallationProgress:ExtensionsInstallation' => 'Installation of the extensions',
'iTopHub:InstallationEffect:MissingDependencies' => 'This extension cannot be installed because of unmet dependencies.',
'iTopHub:InstallationEffect:MissingDependencies_Details' => 'The extension requires the module(s): %1$s',
'iTopHub:InstallationProgress:InstallationSuccessful' => 'Installation successful!',
'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.',
'iTopHub:InstallationStatus:Installed' => 'Installed',
'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s <b>NOT</b> installed.',
));

View File

@@ -207,9 +207,9 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Incident/Attribute:user_satisfaction+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:1' => 'Very satisfied',
'Class:Incident/Attribute:user_satisfaction/Value:1+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly statisfied',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied',
'Class:Incident/Attribute:user_satisfaction/Value:2+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather Dissatified',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied',
'Class:Incident/Attribute:user_satisfaction/Value:3+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:4' => 'Very Dissatisfied',
'Class:Incident/Attribute:user_satisfaction/Value:4+' => '',

View File

@@ -0,0 +1,243 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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('EN GB', 'British English', 'British English', array(
'Menu:IncidentManagement' => 'Incident Management',
'Menu:IncidentManagement+' => '',
'Menu:Incident:Overview' => 'Overview',
'Menu:Incident:Overview+' => '',
'Menu:NewIncident' => 'New incident',
'Menu:NewIncident+' => 'Create a new incident ticket',
'Menu:SearchIncidents' => 'Search for incidents',
'Menu:SearchIncidents+' => 'Search for incident tickets',
'Menu:Incident:Shortcuts' => 'Shortcuts',
'Menu:Incident:Shortcuts+' => '',
'Menu:Incident:MyIncidents' => 'Incidents assigned to me',
'Menu:Incident:MyIncidents+' => 'Incidents assigned to me (as Agent)',
'Menu:Incident:EscalatedIncidents' => 'Escalated incidents',
'Menu:Incident:EscalatedIncidents+' => '',
'Menu:Incident:OpenIncidents' => 'All open incidents',
'Menu:Incident:OpenIncidents+' => '',
'UI-IncidentManagementOverview-IncidentByPriority-last-14-days' => 'Last 14 days incident per priority',
'UI-IncidentManagementOverview-Last-14-days' => 'Last 14 days number of incidents',
'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidents by status',
'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidents by agent',
'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidents by customer',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: Incident
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:Incident' => 'Incident',
'Class:Incident+' => '',
'Class:Incident/Attribute:status' => 'Status',
'Class:Incident/Attribute:status+' => '',
'Class:Incident/Attribute:status/Value:new' => 'New',
'Class:Incident/Attribute:status/Value:new+' => '',
'Class:Incident/Attribute:status/Value:escalated_tto' => 'Escalated TTO',
'Class:Incident/Attribute:status/Value:escalated_tto+' => '',
'Class:Incident/Attribute:status/Value:assigned' => 'Assigned',
'Class:Incident/Attribute:status/Value:assigned+' => '',
'Class:Incident/Attribute:status/Value:escalated_ttr' => 'Escalated TTR',
'Class:Incident/Attribute:status/Value:escalated_ttr+' => '',
'Class:Incident/Attribute:status/Value:waiting_for_approval' => 'Waiting for approval',
'Class:Incident/Attribute:status/Value:waiting_for_approval+' => '',
'Class:Incident/Attribute:status/Value:pending' => 'Pending',
'Class:Incident/Attribute:status/Value:pending+' => '',
'Class:Incident/Attribute:status/Value:resolved' => 'Resolved',
'Class:Incident/Attribute:status/Value:resolved+' => '',
'Class:Incident/Attribute:status/Value:closed' => 'Closed',
'Class:Incident/Attribute:status/Value:closed+' => '',
'Class:Incident/Attribute:impact' => 'Impact',
'Class:Incident/Attribute:impact+' => 'Impact is the severity of the incident, how many end users are affected',
'Class:Incident/Attribute:impact/Value:1' => 'A department',
'Class:Incident/Attribute:impact/Value:1+' => '',
'Class:Incident/Attribute:impact/Value:2' => 'A service',
'Class:Incident/Attribute:impact/Value:2+' => '',
'Class:Incident/Attribute:impact/Value:3' => 'A person',
'Class:Incident/Attribute:impact/Value:3+' => '',
'Class:Incident/Attribute:priority' => 'Priority',
'Class:Incident/Attribute:priority+' => 'Order in which tickets need to be handled',
'Class:Incident/Attribute:priority/Value:1' => 'Critical',
'Class:Incident/Attribute:priority/Value:1+' => '',
'Class:Incident/Attribute:priority/Value:2' => 'High',
'Class:Incident/Attribute:priority/Value:2+' => '',
'Class:Incident/Attribute:priority/Value:3' => 'Medium',
'Class:Incident/Attribute:priority/Value:3+' => '',
'Class:Incident/Attribute:priority/Value:4' => 'Low',
'Class:Incident/Attribute:priority/Value:4+' => '',
'Class:Incident/Attribute:urgency' => 'Urgency',
'Class:Incident/Attribute:urgency+' => 'How quickly the fault needs to be resolved',
'Class:Incident/Attribute:urgency/Value:1' => 'Critical',
'Class:Incident/Attribute:urgency/Value:1+' => '',
'Class:Incident/Attribute:urgency/Value:2' => 'High',
'Class:Incident/Attribute:urgency/Value:2+' => '',
'Class:Incident/Attribute:urgency/Value:3' => 'Medium',
'Class:Incident/Attribute:urgency/Value:3+' => '',
'Class:Incident/Attribute:urgency/Value:4' => 'Low',
'Class:Incident/Attribute:urgency/Value:4+' => '',
'Class:Incident/Attribute:origin' => 'Origin',
'Class:Incident/Attribute:origin+' => 'What\'s the trigger of this incident ticket creation',
'Class:Incident/Attribute:origin/Value:in_person' => 'In-person',
'Class:Incident/Attribute:origin/Value:in_person+' => 'Incident created following a face-to-face discussion',
'Class:Incident/Attribute:origin/Value:chat' => 'Chat',
'Class:Incident/Attribute:origin/Value:chat+' => 'Incident created following a ',
'Class:Incident/Attribute:origin/Value:mail' => 'Email',
'Class:Incident/Attribute:origin/Value:mail+' => 'Incident created on an email reception',
'Class:Incident/Attribute:origin/Value:monitoring' => 'Monitoring',
'Class:Incident/Attribute:origin/Value:monitoring+' => 'Incident created on a monitoring alert',
'Class:Incident/Attribute:origin/Value:phone' => 'Phone',
'Class:Incident/Attribute:origin/Value:phone+' => 'Incident created following a telephone call',
'Class:Incident/Attribute:origin/Value:portal' => 'Portal',
'Class:Incident/Attribute:origin/Value:portal+' => 'Incident created on the user portal',
'Class:Incident/Attribute:service_id' => 'Service',
'Class:Incident/Attribute:service_id+' => '',
'Class:Incident/Attribute:service_name' => 'Service name',
'Class:Incident/Attribute:service_name+' => '',
'Class:Incident/Attribute:servicesubcategory_id' => 'Service subcategory',
'Class:Incident/Attribute:servicesubcategory_id+' => '',
'Class:Incident/Attribute:servicesubcategory_name' => 'Service subcategory name',
'Class:Incident/Attribute:servicesubcategory_name+' => '',
'Class:Incident/Attribute:escalation_flag' => 'Hot Flag',
'Class:Incident/Attribute:escalation_flag+' => '',
'Class:Incident/Attribute:escalation_flag/Value:no' => 'No',
'Class:Incident/Attribute:escalation_flag/Value:no+' => '',
'Class:Incident/Attribute:escalation_flag/Value:yes' => 'Yes',
'Class:Incident/Attribute:escalation_flag/Value:yes+' => '',
'Class:Incident/Attribute:escalation_reason' => 'Hot reason',
'Class:Incident/Attribute:escalation_reason+' => '',
'Class:Incident/Attribute:assignment_date' => 'Assignment date',
'Class:Incident/Attribute:assignment_date+' => '',
'Class:Incident/Attribute:resolution_date' => 'Resolution date',
'Class:Incident/Attribute:resolution_date+' => '',
'Class:Incident/Attribute:last_pending_date' => 'Last pending date',
'Class:Incident/Attribute:last_pending_date+' => '',
'Class:Incident/Attribute:cumulatedpending' => 'Cumulated pending',
'Class:Incident/Attribute:cumulatedpending+' => '',
'Class:Incident/Attribute:tto' => 'TTO',
'Class:Incident/Attribute:tto+' => 'Time To Own',
'Class:Incident/Attribute:ttr' => 'TTR',
'Class:Incident/Attribute:ttr+' => 'Time To Resolve',
'Class:Incident/Attribute:tto_escalation_deadline' => 'TTO Deadline',
'Class:Incident/Attribute:tto_escalation_deadline+' => '',
'Class:Incident/Attribute:sla_tto_passed' => 'SLA tto passed',
'Class:Incident/Attribute:sla_tto_passed+' => '',
'Class:Incident/Attribute:sla_tto_over' => 'SLA tto over',
'Class:Incident/Attribute:sla_tto_over+' => '',
'Class:Incident/Attribute:ttr_escalation_deadline' => 'TTR Deadline',
'Class:Incident/Attribute:ttr_escalation_deadline+' => '',
'Class:Incident/Attribute:sla_ttr_passed' => 'SLA ttr passed',
'Class:Incident/Attribute:sla_ttr_passed+' => '',
'Class:Incident/Attribute:sla_ttr_over' => 'SLA ttr over',
'Class:Incident/Attribute:sla_ttr_over+' => '',
'Class:Incident/Attribute:time_spent' => 'Resolution delay',
'Class:Incident/Attribute:time_spent+' => '',
'Class:Incident/Attribute:resolution_code' => 'Resolution code',
'Class:Incident/Attribute:resolution_code+' => 'What was done to resolve the incident?',
'Class:Incident/Attribute:resolution_code/Value:assistance' => 'Assistance',
'Class:Incident/Attribute:resolution_code/Value:assistance+' => '',
'Class:Incident/Attribute:resolution_code/Value:bug fixed' => 'Bug fixed',
'Class:Incident/Attribute:resolution_code/Value:bug fixed+' => '',
'Class:Incident/Attribute:resolution_code/Value:hardware repair' => 'Hardware repair',
'Class:Incident/Attribute:resolution_code/Value:hardware repair+' => '',
'Class:Incident/Attribute:resolution_code/Value:other' => 'Other',
'Class:Incident/Attribute:resolution_code/Value:other+' => '',
'Class:Incident/Attribute:resolution_code/Value:software patch' => 'Software patch',
'Class:Incident/Attribute:resolution_code/Value:software patch+' => '',
'Class:Incident/Attribute:resolution_code/Value:system update' => 'System update',
'Class:Incident/Attribute:resolution_code/Value:system update+' => '',
'Class:Incident/Attribute:resolution_code/Value:training' => 'Training',
'Class:Incident/Attribute:resolution_code/Value:training+' => '',
'Class:Incident/Attribute:solution' => 'Solution',
'Class:Incident/Attribute:solution+' => '',
'Class:Incident/Attribute:pending_reason' => 'Pending reason',
'Class:Incident/Attribute:pending_reason+' => '',
'Class:Incident/Attribute:parent_incident_id' => 'Parent incident',
'Class:Incident/Attribute:parent_incident_id+' => '',
'Class:Incident/Attribute:parent_incident_ref' => 'Parent incident ref',
'Class:Incident/Attribute:parent_incident_ref+' => '',
'Class:Incident/Attribute:parent_change_id' => 'Parent change',
'Class:Incident/Attribute:parent_change_id+' => '',
'Class:Incident/Attribute:parent_change_ref' => 'Parent change ref',
'Class:Incident/Attribute:parent_change_ref+' => '',
'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id',
'Class:Incident/Attribute:parent_problem_id+' => '',
'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref',
'Class:Incident/Attribute:parent_problem_ref+' => '',
'Class:Incident/Attribute:related_request_list' => 'Child requests',
'Class:Incident/Attribute:related_request_list+' => '',
'Class:Incident/Attribute:child_incidents_list' => 'Child incidents',
'Class:Incident/Attribute:child_incidents_list+' => 'All the child incidents related to this incident',
'Class:Incident/Attribute:public_log' => 'Public log',
'Class:Incident/Attribute:public_log+' => '',
'Class:Incident/Attribute:user_satisfaction' => 'User satisfaction',
'Class:Incident/Attribute:user_satisfaction+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:1' => 'Very satisfied',
'Class:Incident/Attribute:user_satisfaction/Value:1+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied',
'Class:Incident/Attribute:user_satisfaction/Value:2+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather Dissatisfied',
'Class:Incident/Attribute:user_satisfaction/Value:3+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:4' => 'Very Dissatisfied',
'Class:Incident/Attribute:user_satisfaction/Value:4+' => '',
'Class:Incident/Attribute:user_comment' => 'User comment',
'Class:Incident/Attribute:user_comment+' => '',
'Class:Incident/Attribute:parent_incident_id_friendlyname' => 'parent_incident_id_friendlyname',
'Class:Incident/Attribute:parent_incident_id_friendlyname+' => '',
'Class:Incident/Stimulus:ev_assign' => 'Assign',
'Class:Incident/Stimulus:ev_assign+' => '',
'Class:Incident/Stimulus:ev_reassign' => 'Re-assign',
'Class:Incident/Stimulus:ev_reassign+' => '',
'Class:Incident/Stimulus:ev_pending' => 'Pending',
'Class:Incident/Stimulus:ev_pending+' => '',
'Class:Incident/Stimulus:ev_timeout' => 'Timeout',
'Class:Incident/Stimulus:ev_timeout+' => '',
'Class:Incident/Stimulus:ev_autoresolve' => 'Automatic resolve',
'Class:Incident/Stimulus:ev_autoresolve+' => '',
'Class:Incident/Stimulus:ev_autoclose' => 'Automatic close',
'Class:Incident/Stimulus:ev_autoclose+' => '',
'Class:Incident/Stimulus:ev_resolve' => 'Mark as resolved',
'Class:Incident/Stimulus:ev_resolve+' => '',
'Class:Incident/Stimulus:ev_close' => 'Close this request',
'Class:Incident/Stimulus:ev_close+' => '',
'Class:Incident/Stimulus:ev_reopen' => 'Re-open',
'Class:Incident/Stimulus:ev_reopen+' => '',
'Class:Incident/Error:CannotAssignParentIncidentIdToSelf' => 'Cannot assign the Parent incident to the incident itself',
'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets',
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info.',
'Tickets:Related:OpenIncidents' => 'Open incidents',
));

View File

@@ -160,9 +160,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:Incident/Attribute:user_satisfaction+' => '~~',
'Class:Incident/Attribute:user_satisfaction/Value:1' => 'Very satisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:1+' => '~~',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly statisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:2+' => '~~',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather Dissatified~~',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:3+' => '~~',
'Class:Incident/Attribute:user_satisfaction/Value:4' => 'Very Dissatisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:4+' => '~~',

View File

@@ -160,9 +160,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:Incident/Attribute:user_satisfaction+' => '~~',
'Class:Incident/Attribute:user_satisfaction/Value:1' => 'Very satisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:1+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly statisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:2+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather Dissatified~~',
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:3+' => '',
'Class:Incident/Attribute:user_satisfaction/Value:4' => 'Very Dissatisfied~~',
'Class:Incident/Attribute:user_satisfaction/Value:4+' => '',

View File

@@ -0,0 +1,148 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: KnownError
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:KnownError' => 'Known Error',
'Class:KnownError+' => 'Error documented for a known issue',
'Class:KnownError/Attribute:name' => 'Name',
'Class:KnownError/Attribute:name+' => '',
'Class:KnownError/Attribute:org_id' => 'Customer',
'Class:KnownError/Attribute:org_id+' => '',
'Class:KnownError/Attribute:cust_name' => 'Customer Name',
'Class:KnownError/Attribute:cust_name+' => '',
'Class:KnownError/Attribute:problem_id' => 'Related Problem',
'Class:KnownError/Attribute:problem_id+' => '',
'Class:KnownError/Attribute:problem_ref' => 'Related Problem Ref',
'Class:KnownError/Attribute:problem_ref+' => '',
'Class:KnownError/Attribute:symptom' => 'Symptom',
'Class:KnownError/Attribute:symptom+' => '',
'Class:KnownError/Attribute:root_cause' => 'Root Cause',
'Class:KnownError/Attribute:root_cause+' => '',
'Class:KnownError/Attribute:workaround' => 'Work around',
'Class:KnownError/Attribute:workaround+' => '',
'Class:KnownError/Attribute:solution' => 'Solution',
'Class:KnownError/Attribute:solution+' => '',
'Class:KnownError/Attribute:error_code' => 'Error Code',
'Class:KnownError/Attribute:error_code+' => '',
'Class:KnownError/Attribute:domain' => 'Domain',
'Class:KnownError/Attribute:domain+' => '',
'Class:KnownError/Attribute:domain/Value:Application' => 'Application',
'Class:KnownError/Attribute:domain/Value:Application+' => 'Application',
'Class:KnownError/Attribute:domain/Value:Desktop' => 'Desktop',
'Class:KnownError/Attribute:domain/Value:Desktop+' => 'Desktop',
'Class:KnownError/Attribute:domain/Value:Network' => 'Network',
'Class:KnownError/Attribute:domain/Value:Network+' => 'Network',
'Class:KnownError/Attribute:domain/Value:Server' => 'Server',
'Class:KnownError/Attribute:domain/Value:Server+' => 'Server',
'Class:KnownError/Attribute:vendor' => 'Vendor',
'Class:KnownError/Attribute:vendor+' => '',
'Class:KnownError/Attribute:model' => 'Model',
'Class:KnownError/Attribute:model+' => '',
'Class:KnownError/Attribute:version' => 'Version',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error',
'Class:KnownError/Attribute:document_list' => 'Documents',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error',
));
//
// Class: lnkErrorToFunctionalCI
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:lnkErrorToFunctionalCI' => 'Link Error / FunctionalCI',
'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error',
'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id' => 'CI',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name' => 'CI name',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:error_id' => 'Error',
'Class:lnkErrorToFunctionalCI/Attribute:error_id+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:error_name' => 'Error name',
'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reason',
'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '',
));
//
// Class: lnkDocumentToError
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:lnkDocumentToError' => 'Link Documents / Errors',
'Class:lnkDocumentToError+' => 'A link between a document and a known error',
'Class:lnkDocumentToError/Name' => '%1$s / %2$s',
'Class:lnkDocumentToError/Attribute:document_id' => 'Document',
'Class:lnkDocumentToError/Attribute:document_id+' => '',
'Class:lnkDocumentToError/Attribute:document_name' => 'Document Name',
'Class:lnkDocumentToError/Attribute:document_name+' => '',
'Class:lnkDocumentToError/Attribute:error_id' => 'Error',
'Class:lnkDocumentToError/Attribute:error_id+' => '',
'Class:lnkDocumentToError/Attribute:error_name' => 'Error name',
'Class:lnkDocumentToError/Attribute:error_name+' => '',
'Class:lnkDocumentToError/Attribute:link_type' => 'link_type',
'Class:lnkDocumentToError/Attribute:link_type+' => '',
));
Dict::Add('EN GB', 'British English', 'British English', array(
'Menu:ProblemManagement' => 'Problem Management',
'Menu:ProblemManagement+' => 'Problem Management',
'Menu:Problem:Shortcuts' => 'Shortcuts',
'Menu:NewError' => 'New known error',
'Menu:NewError+' => 'Creation of a new known error',
'Menu:SearchError' => 'Search for known errors',
'Menu:SearchError+' => 'Search for known errors',
'Menu:Problem:KnownErrors' => 'All known errors',
'Menu:Problem:KnownErrors+' => 'All known errors',
));

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -19,12 +19,12 @@ Dict::Add('EN US', 'English', 'English', [
'itop-oauth-client:TestSMTP' => 'Email send test',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes',
'itop-oauth-client:Message:TokenCreated' => 'Access token created',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client',
'OAuthClient:baseinfo' => 'Base Information',
'OAuthClient:scope' => 'Scope',
@@ -82,7 +82,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored',
'Class:OAuthClientAzure/Attribute:used_scope' => 'Used scope',
'Class:OAuthClientAzure/Attribute:used_scope+' => '',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple' => 'Simple',
@@ -111,7 +111,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored',
'Class:OAuthClientGoogle/Attribute:used_scope' => 'Used scope',
'Class:OAuthClientGoogle/Attribute:used_scope+' => '',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple' => 'Simple',

View File

@@ -0,0 +1,125 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN GB', 'British English', 'British English', [
'Menu:CreateMailbox' => 'Create a mailbox...',
'Menu:OAuthClient' => 'OAuth client',
'Menu:OAuthClient+' => '',
'Menu:GenerateTokens' => 'Generate access token...',
'Menu:RegenerateTokens' => 'Regenerate access token...',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP',
'itop-oauth-client:TestSMTP' => 'Email send test',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes',
'itop-oauth-client:Message:TokenCreated' => 'Access token created',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client',
'OAuthClient:baseinfo' => 'Base Information',
'OAuthClient:scope' => 'Scope',
]);
//
// Class: OAuthClient
//
Dict::Add('EN GB', 'British English', 'British English', [
'Class:OAuthClient' => 'OAuth Client',
'Class:OAuthClient/Attribute:provider' => 'Provider',
'Class:OAuthClient/Attribute:provider+' => '',
'Class:OAuthClient/Attribute:name' => 'Login',
'Class:OAuthClient/Attribute:name+' => 'In general, this is your email address',
'Class:OAuthClient/Attribute:status' => 'Status',
'Class:OAuthClient/Attribute:status+' => 'After creation, use the action “Generate access token” to be able to use this OAuth client.',
'Class:OAuthClient/Attribute:status/Value:active' => 'Access token generated',
'Class:OAuthClient/Attribute:status/Value:inactive' => 'No Access token',
'Class:OAuthClient/Attribute:description' => 'Description',
'Class:OAuthClient/Attribute:description+' => '',
'Class:OAuthClient/Attribute:client_id' => 'Client id',
'Class:OAuthClient/Attribute:client_id+' => 'A long string of characters provided by your OAuth2 provider',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret',
'Class:OAuthClient/Attribute:client_secret+' => 'Another long string of characters provided by your OAuth2 provider',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token',
'Class:OAuthClient/Attribute:refresh_token+' => '',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '',
'Class:OAuthClient/Attribute:token' => 'Access token',
'Class:OAuthClient/Attribute:token+' => '',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration',
'Class:OAuthClient/Attribute:token_expiration+' => '',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url',
'Class:OAuthClient/Attribute:redirect_url+' => <<<EOF
This url must be copied in the OAuth2 configuration of the provider
Erase the field to recalculate default value
EOF
,
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list',
'Class:OAuthClient/Attribute:mailbox_list+' => '',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP' => 'SMTP',
'Class:OAuthClientAzure/Attribute:scope/Value:SMTP+' => '',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored',
'Class:OAuthClientAzure/Attribute:used_scope' => 'Used scope',
'Class:OAuthClientAzure/Attribute:used_scope+' => '',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple' => 'Simple',
'Class:OAuthClientAzure/Attribute:used_scope/Value:simple+' => '',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced' => 'Advanced',
'Class:OAuthClientAzure/Attribute:used_scope/Value:advanced+' => '',
'Class:OAuthClientAzure/Attribute:used_for_smtp' => 'Used for SMTP',
'Class:OAuthClientAzure/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails.',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:yes' => 'Yes',
'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No',
'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant',
'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".',
));
//
// Class: OAuthClientGoogle
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:OAuthClientGoogle' => 'OAuth client for Google',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP' => 'SMTP',
'Class:OAuthClientGoogle/Attribute:scope/Value:SMTP+' => '',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP+' => '',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored',
'Class:OAuthClientGoogle/Attribute:used_scope' => 'Used scope',
'Class:OAuthClientGoogle/Attribute:used_scope+' => '',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple' => 'Simple',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:simple+' => '',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced' => 'Advanced',
'Class:OAuthClientGoogle/Attribute:used_scope/Value:advanced+' => '',
'Class:OAuthClientGoogle/Attribute:used_for_smtp' => 'Used for SMTP',
'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails.',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes',
'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No',
));

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth ügyfél Microsoft Azure-hoz',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
'Class:OAuthClientGoogle' => 'OAuth ügyfél a Google-höz',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth ügyfél',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Hozzáférési tokenek újragenerálása...',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Postafiók létrehozás',
'itop-oauth-client:Message:MissingToken' => 'Hozzáférési token generálása az OAuth ügyfél használata előtt',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Hozzáférési token kész',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Hozzáférési token újragenerálva',

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -43,7 +43,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP',
@@ -65,7 +65,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP',
@@ -88,12 +88,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -40,7 +40,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -62,7 +62,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -85,12 +85,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -42,7 +42,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~',
'Class:OAuthClientAzure/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientAzure/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -64,7 +64,7 @@ Erase the field to recalculate default value~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope' => 'Advanced scope~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence on the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:advanced_scope+' => 'As soon as you enter something here it takes precedence over the “Scope” selection which is then ignored~~',
'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~',
'Class:OAuthClientGoogle/Attribute:scope+' => 'Usually default selection is appropriate~~',
'Class:OAuthClientGoogle/Attribute:scope/Value:IMAP' => 'IMAP~~',
@@ -87,12 +87,12 @@ Erase the field to recalculate default value~~',
'Menu:OAuthClient' => 'OAuth client~~',
'Menu:OAuthClient+' => '~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already be used for OAuth Client~~',
'OAuthClient:Name/UseForSMTPMustBeUnique' => 'The combination Login (%1$s) and Use for SMTP (%2$s) has already been used for OAuth Client~~',
'OAuthClient:baseinfo' => 'Base Information~~',
'OAuthClient:scope' => 'Scope~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to to take into account the changes~~',
'itop-oauth-client:Message:RegenerateToken' => 'Regenerate access token to take into account the changes~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenError' => 'Access token not generated due to server error~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',

View File

@@ -67,7 +67,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'Error:HTTP:400' => 'Bad request~~',
'Error:HTTP:401' => 'Authentication~~',
'Error:HTTP:404' => 'Page not found~~',
'Error:HTTP:500' => 'Oops! An error has occured.~~',
'Error:HTTP:500' => 'Oops! An error has occurred.~~',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.~~',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator~~',
'Page:DefaultTitle' => '%1$s User portal~~',
@@ -103,12 +103,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [
'Portal:Datatables:Language:ZeroRecords' => 'No result~~',
'Portal:EnvironmentBanner:GoToProduction' => 'Go back to PRODUCTION mode~~',
'Portal:EnvironmentBanner:Title' => 'You are currently in <strong>%1$s</strong> mode~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.~~',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>~~',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>~~',
'Portal:File:None' => 'No file~~',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost~~',
]);

View File

@@ -37,7 +37,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Error:HTTP:400' => 'Bad request',
'Error:HTTP:401' => 'Authentication',
'Error:HTTP:404' => 'Page not found',
'Error:HTTP:500' => 'Oops! An error has occured.',
'Error:HTTP:500' => 'Oops! An error has occurred.',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.',
@@ -67,9 +67,9 @@ Dict::Add('EN US', 'English', 'English', array(
// Object form
Dict::Add('EN US', 'English', 'English', array(
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.',
));
// UserProfile brick

View File

@@ -0,0 +1,142 @@
<?php
/**
* @copyright Copyright (C) 2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*/
// Portal
Dict::Add('EN GB', 'British English', 'British English', array(
'Page:DefaultTitle' => '%1$s User portal',
'Page:PleaseWait' => 'Please wait...',
'Page:Home' => 'Home',
'Page:GoPortalHome' => 'Home page',
'Page:GoPreviousPage' => 'Previous page',
'Page:ReloadPage' => 'Reload page',
'Portal:Button:Submit' => 'Submit',
'Portal:Button:Apply' => 'Update',
'Portal:Button:Cancel' => 'Cancel',
'Portal:Button:Close' => 'Close',
'Portal:Button:Add' => 'Add',
'Portal:Button:Remove' => 'Remove',
'Portal:Button:Delete' => 'Delete',
'Portal:EnvironmentBanner:Title' => 'You are currently in <strong>%1$s</strong> mode',
'Portal:EnvironmentBanner:GoToProduction' => 'Go back to PRODUCTION mode',
'Error:HTTP:400' => 'Bad request',
'Error:HTTP:401' => 'Authentication',
'Error:HTTP:404' => 'Page not found',
'Error:HTTP:500' => 'Oops! An error has occurred.',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.',
'Portal:Datatables:Language:Processing' => 'Please wait...',
'Portal:Datatables:Language:Search' => 'Filter:',
'Portal:Datatables:Language:LengthMenu' => 'Display _MENU_ items per page',
'Portal:Datatables:Language:ZeroRecords' => 'No result',
'Portal:Datatables:Language:Info' => 'Page _PAGE_ of _PAGES_',
'Portal:Datatables:Language:InfoEmpty' => 'No information',
'Portal:Datatables:Language:InfoFiltered' => 'filtered out of _MAX_ items',
'Portal:Datatables:Language:EmptyTable' => 'No data available in this table',
'Portal:Datatables:Language:DisplayLength:All' => 'All',
'Portal:Datatables:Language:Paginate:First' => 'First',
'Portal:Datatables:Language:Paginate:Previous' => 'Previous',
'Portal:Datatables:Language:Paginate:Next' => 'Next',
'Portal:Datatables:Language:Paginate:Last' => 'Last',
'Portal:Datatables:Language:Sort:Ascending' => 'enable for an ascending sort',
'Portal:Datatables:Language:Sort:Descending' => 'enable for a descending sort',
'Portal:Autocomplete:NoResult' => 'No data',
'Portal:Attachments:DropZone:Message' => 'Drop your files to add them as attachments',
'Portal:File:None' => 'No file',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>',
'Portal:Calendar-FirstDayOfWeek' => 'en-gb',
));
// Object form
Dict::Add('EN GB', 'British English', 'British English', array(
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.',
));
// UserProfile brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:UserProfile:Name' => 'User profile',
'Brick:Portal:UserProfile:Navigation:Dropdown:MyProfil' => 'My profile',
'Brick:Portal:UserProfile:Navigation:Dropdown:Logout' => 'Log off',
'Brick:Portal:UserProfile:Password:Title' => 'Password',
'Brick:Portal:UserProfile:Password:ChoosePassword' => 'Choose password',
'Brick:Portal:UserProfile:Password:ConfirmPassword' => 'Confirm password',
'Brick:Portal:UserProfile:Password:CantChangeContactAdministrator' => 'To change your password, please contact your %1$s administrator',
'Brick:Portal:UserProfile:Password:CantChangeForUnknownReason' => 'Can\'t change password, please contact your %1$s administrator',
'Brick:Portal:UserProfile:PersonalInformations:Title' => 'Personal information',
'Brick:Portal:UserProfile:Photo:Title' => 'Photo',
));
// AggregatePageBrick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:AggregatePage:DefaultTitle' => 'Dashboard',
));
// BrowseBrick brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:Browse:Name' => 'Browse through items',
'Brick:Portal:Browse:Mode:List' => 'List',
'Brick:Portal:Browse:Mode:Tree' => 'Tree',
'Brick:Portal:Browse:Mode:Mosaic' => 'Mosaic',
'Brick:Portal:Browse:Action:Drilldown' => 'Drilldown',
'Brick:Portal:Browse:Action:View' => 'Details',
'Brick:Portal:Browse:Action:Edit' => 'Edit',
'Brick:Portal:Browse:Action:Create' => 'Create',
'Brick:Portal:Browse:Action:CreateObjectFromThis' => 'New %1$s',
'Brick:Portal:Browse:Tree:ExpandAll' => 'Expand all',
'Brick:Portal:Browse:Tree:CollapseAll' => 'Collapse all',
'Brick:Portal:Browse:Filter:NoData' => 'No item',
));
// ManageBrick brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:Manage:Name' => 'Manage items',
'Brick:Portal:Manage:Table:NoData' => 'No item.',
'Brick:Portal:Manage:Table:ItemActions' => 'Actions',
'Brick:Portal:Manage:DisplayMode:list' => 'List',
'Brick:Portal:Manage:DisplayMode:pie-chart' => 'Pie Chart',
'Brick:Portal:Manage:DisplayMode:bar-chart' => 'Bar Chart',
'Brick:Portal:Manage:Others' => 'Others',
'Brick:Portal:Manage:All' => 'All',
'Brick:Portal:Manage:Group' => 'Group',
'Brick:Portal:Manage:fct:count' => 'Total',
'Brick:Portal:Manage:fct:sum' => 'Sum',
'Brick:Portal:Manage:fct:avg' => 'Average',
'Brick:Portal:Manage:fct:min' => 'Min',
'Brick:Portal:Manage:fct:max' => 'Max',
));
// ObjectBrick brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:Object:Name' => 'Object',
'Brick:Portal:Object:Form:Create:Title' => 'New %1$s',
'Brick:Portal:Object:Form:Edit:Title' => 'Updating %2$s (%1$s)',
'Brick:Portal:Object:Form:View:Title' => '%1$s: %2$s',
'Brick:Portal:Object:Form:Stimulus:Title' => 'Please, complete the following information:',
'Brick:Portal:Object:Form:Message:Saved' => 'Saved',
'Brick:Portal:Object:Form:Message:ObjectSaved' => '%1$s saved',
'Brick:Portal:Object:Search:Regular:Title' => 'Select %1$s (%2$s)',
'Brick:Portal:Object:Search:Hierarchy:Title' => 'Select %1$s (%2$s)',
'Brick:Portal:Object:Copy:TextToCopy' => '%2$s',
'Brick:Portal:Object:Copy:Tooltip' => 'Copy object link',
'Brick:Portal:Object:Copy:CopiedTooltip' => 'Copied'
));
// CreateBrick brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:Create:Name' => 'Quick creation',
'Brick:Portal:Create:ChooseType' => 'Please, choose a type',
));
// Filter brick
Dict::Add('EN GB', 'British English', 'British English', array(
'Brick:Portal:Filter:Name' => 'Prefilter a brick',
'Brick:Portal:Filter:SearchInput:Placeholder' => 'eg. connect wifi',
'Brick:Portal:Filter:SearchInput:Submit' => 'Search',
));

View File

@@ -103,12 +103,12 @@ Dict::Add('IT IT', 'Italian', 'Italiano', [
'Portal:Datatables:Language:ZeroRecords' => 'Nessun Risultato',
'Portal:EnvironmentBanner:GoToProduction' => 'Ritorna alla modalità Produzione',
'Portal:EnvironmentBanner:Title' => 'Sei attualmente in modalità <strong>%1$s</strong>',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'Sei disconnesso, bisogna effettuare un nuovo accesso per continuare',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>~~',
'Portal:File:None' => 'Nessun File',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost~~',
]);

View File

@@ -67,7 +67,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'Error:HTTP:400' => 'Bad request~~',
'Error:HTTP:401' => 'Authentication~~',
'Error:HTTP:404' => 'Page not found~~',
'Error:HTTP:500' => 'Oops! An error has occured.~~',
'Error:HTTP:500' => 'Oops! An error has occurred.~~',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.~~',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator~~',
'Page:DefaultTitle' => '%1$s User portal~~',
@@ -103,12 +103,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', [
'Portal:Datatables:Language:ZeroRecords' => 'No result~~',
'Portal:EnvironmentBanner:GoToProduction' => 'Go back to PRODUCTION mode~~',
'Portal:EnvironmentBanner:Title' => 'You are currently in <strong>%1$s</strong> mode~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.~~',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>~~',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>~~',
'Portal:File:None' => 'No file~~',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost~~',
]);

View File

@@ -104,8 +104,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', [
'Portal:Datatables:Language:ZeroRecords' => 'Нет записей',
'Portal:EnvironmentBanner:GoToProduction' => 'Вернуться в режим PRODUCTION',
'Portal:EnvironmentBanner:Title' => 'Вы находитесь в режиме <strong>%1$s</strong>',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'Вы вышли из системы. Выполните вход, чтобы продолжить работу.',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Открыть</a> / <a href="%4$s" class="file_download_link">Скачать</a>',

View File

@@ -67,7 +67,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Error:HTTP:400' => 'Bad request~~',
'Error:HTTP:401' => 'Authentication~~',
'Error:HTTP:404' => 'Page not found~~',
'Error:HTTP:500' => 'Oops! An error has occured.~~',
'Error:HTTP:500' => 'Oops! An error has occurred.~~',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.~~',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator~~',
'Page:DefaultTitle' => '%1$s User portal~~',
@@ -103,12 +103,12 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Portal:Datatables:Language:ZeroRecords' => 'No result~~',
'Portal:EnvironmentBanner:GoToProduction' => 'Go back to PRODUCTION mode~~',
'Portal:EnvironmentBanner:Title' => 'You are currently in <strong>%1$s</strong> mode~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.~~',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>~~',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>~~',
'Portal:File:None' => 'No file~~',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost~~',
]);

View File

@@ -67,7 +67,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Error:HTTP:400' => 'Bad request~~',
'Error:HTTP:401' => 'Authentication~~',
'Error:HTTP:404' => 'Page not found~~',
'Error:HTTP:500' => 'Oops! An error has occured.~~',
'Error:HTTP:500' => 'Oops! An error has occurred.~~',
'Error:HTTP:GetHelp' => 'Please contact your %1$s administrator if the problem keeps happening.~~',
'Error:XHR:Fail' => 'Could not load data, please contact your %1$s administrator~~',
'Page:DefaultTitle' => '%1$s User portal~~',
@@ -103,12 +103,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Portal:Datatables:Language:ZeroRecords' => 'No result~~',
'Portal:EnvironmentBanner:GoToProduction' => 'Go back to PRODUCTION mode~~',
'Portal:EnvironmentBanner:Title' => 'You are currently in <strong>%1$s</strong> mode~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~',
'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting this form again.~~',
'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting this form again.~~',
'Portal:ErrorUserLoggedOut' => 'You are logged out and need to log in again in order to continue.~~',
'Portal:File:DisplayInfo' => '<a href="%2$s" class="file_download_link">%1$s</a>~~',
'Portal:File:DisplayInfo+' => '%1$s (%2$s) <a href="%3$s" class="file_open_link" target="_blank">Open</a> / <a href="%4$s" class="file_download_link">Download</a>~~',
'Portal:File:None' => 'No file~~',
'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~',
'Portal:Form:Close:Warning' => 'Do you want to leave this form? Data entered may be lost~~',
]);

File diff suppressed because one or more lines are too long

View File

@@ -821,6 +821,23 @@ table .group-actions .item-action-wrapper .panel-body > p:last-child{
font-size: 1em;
}
/* tree list filter data */
.list-group-item .tree-item-wrapper .tree-item-filter-data{
padding-top: 8px;
color: $gray;
font-size: .9em;
}
/* tree list filter data span items */
.list-group-item .tree-item-wrapper .tree-item-filter-data span:not(:last-child):after{
content: '';
margin: 0 5px;
}
/* tree list filter data label span items */
.list-group-item .tree-item-wrapper .tree-item-filter-data .tree-item-filter-data-label{
font-weight: bold;
}
/****************************************************************/
/* - Mosaic mode */
/* */

View File

@@ -6,6 +6,11 @@
* Project Website: http://wiki.aiwsolutions.net/dOQKO
**/
/**
* Altered to allow filtering tree list with extra data.
* Add an attribute data-tree-additional-search to tree-item-wrapper element with extra data you want the search to include.
*/
jQuery.fn.treeListFilter = function(list, timeout, callback) {
var list = jQuery(list);
var input = this;
@@ -41,6 +46,7 @@ jQuery.fn.treeListFilter = function(list, timeout, callback) {
// Modified the search so it looks for each parts of the search and not the entire sentance
// Modified the text to remove accents (latinise())
var text = liObject.find('.tree-item-wrapper').text();
text+= liObject.find('.tree-item-wrapper').attr('data-tree-additional-search');
var textLC = text.toLowerCase().latinise();
var filterValues = filterValue.split(' ');
var display = true;

View File

@@ -26,11 +26,13 @@ use AttributeImage;
use AttributeSet;
use AttributeTagSet;
use Combodo\iTop\Portal\Brick\BrowseBrick;
use DBObject;
use DBSearch;
use Dict;
use MetaModel;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use UserRights;
use utils;
/**
* Class BrowseBrickHelper
@@ -514,6 +516,7 @@ class BrowseBrickHelper
'name' => $aCurrentRowValues[0]->Get($aLevelsProperties[$aCurrentRowKeys[0]]['name_att']),
'class' => get_class($aCurrentRowValues[0]),
'subitems' => array(),
'filter_data' => $this->GetFilterData($aLevelsProperties[$aCurrentRowKeys[0]], $aCurrentRowKeys[0], $aCurrentRowValues[0]),
'action_rules_token' => $this->PrepareActionRulesForItems($aCurrentRowObjects, $aCurrentRowKeys[0], $aLevelsProperties),
);
@@ -564,4 +567,49 @@ class BrowseBrickHelper
$this->AddToTreeItems($aItems[$sCurrentIndex]['subitems'], $aCurrentRowSliced, $aLevelsProperties, $aCurrentRowObjects);
}
}
/**
* Get data to allow filtering tree with invisible fields.
*
* @param array $aLevelProperties tree level properties
* @param string $sRowKey row key
* @param \DBObject $oRowValue row value
*
* @return string[]
* @throws \ArchivedObjectException
* @throws \CoreException
* @throws \Exception
*/
private function GetFilterData(array $aLevelProperties, string $sRowKey, DBObject $oRowValue) : array
{
// result
$sValues = "";
$sValuesAndCodes = "";
// iterate throw level properties fields...
foreach ($aLevelProperties['fields'] as $aField) {
// retrieve the object class
$sFieldObjectClass = get_class($oRowValue);
// retrieve the field object attribute definition
$oAttDef = MetaModel::GetAttributeDef($sFieldObjectClass, $aField['code']);
// get field value (HTML representation)
$sValue = $oAttDef->GetAsHTML($oRowValue->Get($aField['code']));
// do not print empty fields
if(!utils::IsNullOrEmptyString($sValue)){
// append to result
$sValues .= $sValue;
$sValuesAndCodes .= '<span><span class="tree-item-filter-data-label">' . $aField['label'] . ':</span> ' . $sValue . '</span>';
}
}
return [
'values' => $sValues,
'values_and_codes' => $sValuesAndCodes
];
}
}

View File

@@ -149,6 +149,9 @@
}
}
// hide/show tree items filter data when search input is empty/notEmpty
$('.tree-item-filter-data').toggle($('#brick_search_field').val() !== '');
expandAll();
};
// Load current node childnodes throught AJAX
@@ -197,10 +200,12 @@
var liElem = $('<li></li>').addClass('list-group-item');
var spanElem = $('<span></span>').addClass('tree-item-wrapper').attr('data-item-id', item.id).attr('data-level-alias', item.level_alias);
spanElem.attr('data-tree-additional-search', item['filter_data']['values']);
var nameElem = $('<a></a>').addClass('tree-item').text(item.name);
// Building node
$('ul[data-level-id="'+nodeId+'"]').append(liElem);
spanElem.append(nameElem);
spanElem.append('<div class="tree-item-filter-data">' + item['filter_data']['values_and_codes'] + '</div>');
liElem.append(spanElem);
// Delegating a click on <span> to its child <a> element

View File

@@ -0,0 +1,48 @@
<?php
// Copyright (C) 2024 Combodo SAS
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author Benjamin Planque <benjamin.planque@combodo.com>
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
//////////////////////////////////////////////////////////////////////
// Note: The classes have been grouped by categories: bizmodel
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
Dict::Add('EN GB', 'British English', 'British English', array(
'portal:itop-portal' => 'Standard portal',
'Page:DefaultTitle' => '%1$s - User portal',
'Brick:Portal:UserProfile:Title' => 'My profile',
'Brick:Portal:NewRequest:Title' => 'New request',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalogue and submit your request to our support teams.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests',
'Brick:Portal:ListAllRequests:Title' => 'All requests',
'Brick:Portal:ListAllRequests:Title+' => '<p>View all requests regardless of their status.</p>',
'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed',
'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests',
'Brick:Portal:SearchInAllRequests:Title+' => '<p>Regardless of their status.</p>',
));

View File

@@ -0,0 +1,151 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN GB', 'British English', 'British English', array(
'Menu:ProblemManagement' => 'Problem management',
'Menu:ProblemManagement+' => 'Problem management',
'Menu:Problem:Overview' => 'Overview',
'Menu:Problem:Overview+' => 'Overview',
'Menu:NewProblem' => 'New problem',
'Menu:NewProblem+' => 'New problem',
'Menu:SearchProblems' => 'Search for problems',
'Menu:SearchProblems+' => 'Search for problems',
'Menu:Problem:Shortcuts' => 'Shortcuts',
'Menu:Problem:MyProblems' => 'My problems',
'Menu:Problem:MyProblems+' => 'My problems',
'Menu:Problem:OpenProblems' => 'All open problems',
'Menu:Problem:OpenProblems+' => 'All open problems',
'UI-ProblemManagementOverview-ProblemByService' => 'Problems by service',
'UI-ProblemManagementOverview-ProblemByService+' => 'Problems by service',
'UI-ProblemManagementOverview-ProblemByPriority' => 'Problems by priority',
'UI-ProblemManagementOverview-ProblemByPriority+' => 'Problems by priority',
'UI-ProblemManagementOverview-ProblemUnassigned' => 'Unassigned problems',
'UI-ProblemManagementOverview-ProblemUnassigned+' => 'Unassigned problems',
'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for Problem Management',
'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for Problem Management',
));
//
// Class: Problem
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:Problem' => 'Problem',
'Class:Problem+' => '',
'Class:Problem/Attribute:status' => 'Status',
'Class:Problem/Attribute:status+' => '',
'Class:Problem/Attribute:status/Value:new' => 'New',
'Class:Problem/Attribute:status/Value:new+' => '',
'Class:Problem/Attribute:status/Value:assigned' => 'Assigned',
'Class:Problem/Attribute:status/Value:assigned+' => '',
'Class:Problem/Attribute:status/Value:resolved' => 'Resolved',
'Class:Problem/Attribute:status/Value:resolved+' => '',
'Class:Problem/Attribute:status/Value:closed' => 'Closed',
'Class:Problem/Attribute:status/Value:closed+' => '',
'Class:Problem/Attribute:service_id' => 'Service',
'Class:Problem/Attribute:service_id+' => '',
'Class:Problem/Attribute:service_name' => 'Service name',
'Class:Problem/Attribute:service_name+' => '',
'Class:Problem/Attribute:servicesubcategory_id' => 'Service subcategory',
'Class:Problem/Attribute:servicesubcategory_id+' => '',
'Class:Problem/Attribute:servicesubcategory_name' => 'Service subcategory',
'Class:Problem/Attribute:servicesubcategory_name+' => '',
'Class:Problem/Attribute:product' => 'Product',
'Class:Problem/Attribute:product+' => '',
'Class:Problem/Attribute:impact' => 'Impact',
'Class:Problem/Attribute:impact+' => 'Impact is the severity of the problem, how many end users are affected',
'Class:Problem/Attribute:impact/Value:1' => 'A Department',
'Class:Problem/Attribute:impact/Value:1+' => '',
'Class:Problem/Attribute:impact/Value:2' => 'A Service',
'Class:Problem/Attribute:impact/Value:2+' => '',
'Class:Problem/Attribute:impact/Value:3' => 'A person',
'Class:Problem/Attribute:impact/Value:3+' => '',
'Class:Problem/Attribute:urgency' => 'Urgency',
'Class:Problem/Attribute:urgency+' => 'How quickly the problem needs to be resolved',
'Class:Problem/Attribute:urgency/Value:1' => 'Critical',
'Class:Problem/Attribute:urgency/Value:1+' => '',
'Class:Problem/Attribute:urgency/Value:2' => 'High',
'Class:Problem/Attribute:urgency/Value:2+' => '',
'Class:Problem/Attribute:urgency/Value:3' => 'Medium',
'Class:Problem/Attribute:urgency/Value:3+' => '',
'Class:Problem/Attribute:urgency/Value:4' => 'Low',
'Class:Problem/Attribute:urgency/Value:4+' => '',
'Class:Problem/Attribute:priority' => 'Priority',
'Class:Problem/Attribute:priority+' => 'Order in which problems need to be handled',
'Class:Problem/Attribute:priority/Value:1' => 'Critical',
'Class:Problem/Attribute:priority/Value:1+' => '',
'Class:Problem/Attribute:priority/Value:2' => 'High',
'Class:Problem/Attribute:priority/Value:2+' => '',
'Class:Problem/Attribute:priority/Value:3' => 'Medium',
'Class:Problem/Attribute:priority/Value:3+' => '',
'Class:Problem/Attribute:priority/Value:4' => 'Low',
'Class:Problem/Attribute:priority/Value:4+' => '',
'Class:Problem/Attribute:related_change_id' => 'Related Change',
'Class:Problem/Attribute:related_change_id+' => '',
'Class:Problem/Attribute:related_change_ref' => 'Related Change ref',
'Class:Problem/Attribute:related_change_ref+' => '',
'Class:Problem/Attribute:assignment_date' => 'Assignment Date',
'Class:Problem/Attribute:assignment_date+' => '',
'Class:Problem/Attribute:resolution_date' => 'Resolution Date',
'Class:Problem/Attribute:resolution_date+' => '',
'Class:Problem/Attribute:knownerrors_list' => 'Known Errors',
'Class:Problem/Attribute:knownerrors_list+' => 'All the known errors that are linked to this problem',
'Class:Problem/Attribute:related_request_list' => 'Related requests',
'Class:Problem/Attribute:related_request_list+' => 'All the requests that are related to this problem',
'Class:Problem/Attribute:related_incident_list' => 'Related incidents',
'Class:Problem/Attribute:related_incident_list+' => 'All the incidents that are related to this problem',
'Class:Problem/Stimulus:ev_assign' => 'Assign',
'Class:Problem/Stimulus:ev_assign+' => '',
'Class:Problem/Stimulus:ev_reassign' => 'Reassign',
'Class:Problem/Stimulus:ev_reassign+' => '',
'Class:Problem/Stimulus:ev_resolve' => 'Resolve',
'Class:Problem/Stimulus:ev_resolve+' => '',
'Class:Problem/Stimulus:ev_close' => 'Close',
'Class:Problem/Stimulus:ev_close+' => '',
));

View File

@@ -10,7 +10,7 @@
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/]]></comment>
<category>bizmodel,searchable,requestmgmt</category>
<category>bizmodel,searchable,requestmgmt,popular</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>ticket_request</db_table>

View File

@@ -9,7 +9,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Menu:RequestManagement+' => '',
'Menu:RequestManagementProvider' => 'Helpdesk provider',
'Menu:RequestManagementProvider+' => '',
'Menu:UserRequest:Provider' => 'Open request transfered to provider',
'Menu:UserRequest:Provider' => 'Open request transferred to provider',
'Menu:UserRequest:Provider+' => '',
'Menu:UserRequest:Overview' => 'Overview',
'Menu:UserRequest:Overview+' => '',
@@ -215,9 +215,9 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Rather dissatified',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Very dissatified',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Very dissatisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => '',
'Class:UserRequest/Attribute:user_comment' => 'User comment',
'Class:UserRequest/Attribute:user_comment+' => '',

View File

@@ -0,0 +1,261 @@
<?php
/*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN GB', 'British English', 'British English', array(
'Menu:RequestManagement' => 'Helpdesk',
'Menu:RequestManagement+' => '',
'Menu:RequestManagementProvider' => 'Helpdesk provider',
'Menu:RequestManagementProvider+' => '',
'Menu:UserRequest:Provider' => 'Open request transferred to provider',
'Menu:UserRequest:Provider+' => '',
'Menu:UserRequest:Overview' => 'Overview',
'Menu:UserRequest:Overview+' => '',
'Menu:NewUserRequest' => 'New user request',
'Menu:NewUserRequest+' => 'Create a new user request ticket',
'Menu:SearchUserRequests' => 'Search for user requests',
'Menu:SearchUserRequests+' => 'Search for user request tickets',
'Menu:UserRequest:Shortcuts' => 'Shortcuts',
'Menu:UserRequest:Shortcuts+' => '',
'Menu:UserRequest:MyRequests' => 'Requests assigned to me',
'Menu:UserRequest:MyRequests+' => 'Requests assigned to me (as Agent)',
'Menu:UserRequest:MySupportRequests' => "My support calls",
'Menu:UserRequest:MySupportRequests+' => "",
'Menu:UserRequest:EscalatedRequests' => 'Hot Requests',
'Menu:UserRequest:EscalatedRequests+' => '',
'Menu:UserRequest:OpenRequests' => 'All open requests',
'Menu:UserRequest:OpenRequests+' => '',
'UI:WelcomeMenu:MyAssignedCalls' => 'Requests assigned to me',
'UI-RequestManagementOverview-RequestByType-last-14-days' => 'Last 14 days request per type',
'UI-RequestManagementOverview-Last-14-days' => 'Last 14 days number of requests',
'UI-RequestManagementOverview-OpenRequestByStatus' => 'Open requests by status',
'UI-RequestManagementOverview-OpenRequestByAgent' => 'Open requests by agent',
'UI-RequestManagementOverview-OpenRequestByType' => 'Open requests by type',
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open requests by customer',
'Class:UserRequest:KnownErrorList' => 'Known Errors',
'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserRequest
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:UserRequest' => 'User Request',
'Class:UserRequest+' => '',
'Class:UserRequest/Attribute:status' => 'Status',
'Class:UserRequest/Attribute:status+' => '',
'Class:UserRequest/Attribute:status/Value:new' => 'New',
'Class:UserRequest/Attribute:status/Value:new+' => '',
'Class:UserRequest/Attribute:status/Value:escalated_tto' => 'Escalated TTO',
'Class:UserRequest/Attribute:status/Value:escalated_tto+' => '',
'Class:UserRequest/Attribute:status/Value:assigned' => 'Assigned',
'Class:UserRequest/Attribute:status/Value:assigned+' => '',
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Escalated TTR',
'Class:UserRequest/Attribute:status/Value:escalated_ttr+' => '',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval' => 'Waiting for approval',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval+' => '',
'Class:UserRequest/Attribute:status/Value:approved' => 'Approved',
'Class:UserRequest/Attribute:status/Value:approved+' => '',
'Class:UserRequest/Attribute:status/Value:rejected' => 'Rejected',
'Class:UserRequest/Attribute:status/Value:rejected+' => '',
'Class:UserRequest/Attribute:status/Value:pending' => 'Pending',
'Class:UserRequest/Attribute:status/Value:pending+' => '',
'Class:UserRequest/Attribute:status/Value:resolved' => 'Resolved',
'Class:UserRequest/Attribute:status/Value:resolved+' => '',
'Class:UserRequest/Attribute:status/Value:closed' => 'Closed',
'Class:UserRequest/Attribute:status/Value:closed+' => '',
'Class:UserRequest/Attribute:request_type' => 'Request Type',
'Class:UserRequest/Attribute:request_type+' => '',
'Class:UserRequest/Attribute:request_type/Value:service_request' => 'Service request',
'Class:UserRequest/Attribute:request_type/Value:service_request+' => '',
'Class:UserRequest/Attribute:impact' => 'Impact',
'Class:UserRequest/Attribute:impact+' => 'Impact is the severity of the fault, how many end users are affected.',
'Class:UserRequest/Attribute:impact/Value:1' => 'A department',
'Class:UserRequest/Attribute:impact/Value:1+' => '',
'Class:UserRequest/Attribute:impact/Value:2' => 'A service',
'Class:UserRequest/Attribute:impact/Value:2+' => '',
'Class:UserRequest/Attribute:impact/Value:3' => 'A person',
'Class:UserRequest/Attribute:impact/Value:3+' => '',
'Class:UserRequest/Attribute:priority' => 'Priority',
'Class:UserRequest/Attribute:priority+' => 'Order in which tickets need to be handled',
'Class:UserRequest/Attribute:priority/Value:1' => 'Critical',
'Class:UserRequest/Attribute:priority/Value:1+' => 'Highest priority',
'Class:UserRequest/Attribute:priority/Value:2' => 'High',
'Class:UserRequest/Attribute:priority/Value:2+' => '',
'Class:UserRequest/Attribute:priority/Value:3' => 'Medium',
'Class:UserRequest/Attribute:priority/Value:3+' => '',
'Class:UserRequest/Attribute:priority/Value:4' => 'Low',
'Class:UserRequest/Attribute:priority/Value:4+' => 'Lowest priority',
'Class:UserRequest/Attribute:urgency' => 'Urgency',
'Class:UserRequest/Attribute:urgency+' => 'How quickly the fault needs to be resolved',
'Class:UserRequest/Attribute:urgency/Value:1' => 'Critical',
'Class:UserRequest/Attribute:urgency/Value:1+' => 'Most urgent',
'Class:UserRequest/Attribute:urgency/Value:2' => 'High',
'Class:UserRequest/Attribute:urgency/Value:2+' => '',
'Class:UserRequest/Attribute:urgency/Value:3' => 'Medium',
'Class:UserRequest/Attribute:urgency/Value:3+' => '',
'Class:UserRequest/Attribute:urgency/Value:4' => 'Low',
'Class:UserRequest/Attribute:urgency/Value:4+' => 'Lowest urgency level',
'Class:UserRequest/Attribute:origin' => 'Origin',
'Class:UserRequest/Attribute:origin+' => 'What\'s the trigger of this request ticket creation',
'Class:UserRequest/Attribute:origin/Value:in_person' => 'In-person',
'Class:UserRequest/Attribute:origin/Value:in_person+' => 'Request created following a face-to-face discussion',
'Class:UserRequest/Attribute:origin/Value:chat' => 'Chat',
'Class:UserRequest/Attribute:origin/Value:chat+' => 'Request created following a chat discussion',
'Class:UserRequest/Attribute:origin/Value:mail' => 'Email',
'Class:UserRequest/Attribute:origin/Value:mail+' => 'Request created on an email reception',
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'Monitoring',
'Class:UserRequest/Attribute:origin/Value:monitoring+' => 'Request created on a monitoring alert',
'Class:UserRequest/Attribute:origin/Value:phone' => 'Phone',
'Class:UserRequest/Attribute:origin/Value:phone+' => 'Request created following a phone call',
'Class:UserRequest/Attribute:origin/Value:portal' => 'Portal',
'Class:UserRequest/Attribute:origin/Value:portal+' => 'Request created on the user portal',
'Class:UserRequest/Attribute:approver_id' => 'Approver',
'Class:UserRequest/Attribute:approver_id+' => '',
'Class:UserRequest/Attribute:approver_email' => 'Approver Email',
'Class:UserRequest/Attribute:approver_email+' => '',
'Class:UserRequest/Attribute:service_id' => 'Service',
'Class:UserRequest/Attribute:service_id+' => '',
'Class:UserRequest/Attribute:service_name' => 'Service name',
'Class:UserRequest/Attribute:service_name+' => '',
'Class:UserRequest/Attribute:servicesubcategory_id' => 'Service subcategory',
'Class:UserRequest/Attribute:servicesubcategory_id+' => '',
'Class:UserRequest/Attribute:servicesubcategory_name' => 'Service subcategory name',
'Class:UserRequest/Attribute:servicesubcategory_name+' => '',
'Class:UserRequest/Attribute:escalation_flag' => 'Hot Flag',
'Class:UserRequest/Attribute:escalation_flag+' => '',
'Class:UserRequest/Attribute:escalation_flag/Value:no' => 'No',
'Class:UserRequest/Attribute:escalation_flag/Value:no+' => '',
'Class:UserRequest/Attribute:escalation_flag/Value:yes' => 'Yes',
'Class:UserRequest/Attribute:escalation_flag/Value:yes+' => '',
'Class:UserRequest/Attribute:escalation_reason' => 'Hot reason',
'Class:UserRequest/Attribute:escalation_reason+' => '',
'Class:UserRequest/Attribute:assignment_date' => 'Assignment date',
'Class:UserRequest/Attribute:assignment_date+' => '',
'Class:UserRequest/Attribute:resolution_date' => 'Resolution date',
'Class:UserRequest/Attribute:resolution_date+' => '',
'Class:UserRequest/Attribute:last_pending_date' => 'Last pending date',
'Class:UserRequest/Attribute:last_pending_date+' => '',
'Class:UserRequest/Attribute:cumulatedpending' => 'cumulatedpending',
'Class:UserRequest/Attribute:cumulatedpending+' => '',
'Class:UserRequest/Attribute:tto' => 'TTO',
'Class:UserRequest/Attribute:tto+' => 'Time To Own',
'Class:UserRequest/Attribute:ttr' => 'TTR',
'Class:UserRequest/Attribute:ttr+' => 'Time To Resolve',
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'TTO Deadline',
'Class:UserRequest/Attribute:tto_escalation_deadline+' => '',
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA tto passed',
'Class:UserRequest/Attribute:sla_tto_passed+' => '',
'Class:UserRequest/Attribute:sla_tto_over' => 'SLA tto over',
'Class:UserRequest/Attribute:sla_tto_over+' => '',
'Class:UserRequest/Attribute:ttr_escalation_deadline' => 'TTR Deadline',
'Class:UserRequest/Attribute:ttr_escalation_deadline+' => '',
'Class:UserRequest/Attribute:sla_ttr_passed' => 'SLA ttr passed',
'Class:UserRequest/Attribute:sla_ttr_passed+' => '',
'Class:UserRequest/Attribute:sla_ttr_over' => 'SLA ttr over',
'Class:UserRequest/Attribute:sla_ttr_over+' => '',
'Class:UserRequest/Attribute:time_spent' => 'Resolution delay',
'Class:UserRequest/Attribute:time_spent+' => '',
'Class:UserRequest/Attribute:resolution_code' => 'Resolution code',
'Class:UserRequest/Attribute:resolution_code+' => 'What was done to resolve the request?',
'Class:UserRequest/Attribute:resolution_code/Value:assistance' => 'Assistance',
'Class:UserRequest/Attribute:resolution_code/Value:assistance+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed' => 'Bug fixed',
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair' => 'Hardware repair',
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:other' => 'Other',
'Class:UserRequest/Attribute:resolution_code/Value:other+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:software patch' => 'Software patch',
'Class:UserRequest/Attribute:resolution_code/Value:software patch+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:system update' => 'System update',
'Class:UserRequest/Attribute:resolution_code/Value:system update+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:training' => 'Training',
'Class:UserRequest/Attribute:resolution_code/Value:training+' => '',
'Class:UserRequest/Attribute:solution' => 'Solution',
'Class:UserRequest/Attribute:solution+' => '',
'Class:UserRequest/Attribute:pending_reason' => 'Pending reason',
'Class:UserRequest/Attribute:pending_reason+' => '',
'Class:UserRequest/Attribute:parent_request_id' => 'Parent request',
'Class:UserRequest/Attribute:parent_request_id+' => '',
'Class:UserRequest/Attribute:parent_incident_id' => 'Parent incident',
'Class:UserRequest/Attribute:parent_incident_id+' => '',
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref request',
'Class:UserRequest/Attribute:parent_request_ref+' => '',
'Class:UserRequest/Attribute:parent_problem_id' => 'Parent problem',
'Class:UserRequest/Attribute:parent_problem_id+' => '',
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref problem',
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
'Class:UserRequest/Attribute:parent_change_id' => 'Parent change',
'Class:UserRequest/Attribute:parent_change_id+' => '',
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref change',
'Class:UserRequest/Attribute:parent_change_ref+' => '',
'Class:UserRequest/Attribute:parent_incident_ref' => 'Parent incident ref',
'Class:UserRequest/Attribute:parent_incident_ref+' => '',
'Class:UserRequest/Attribute:related_request_list' => 'Child Requests',
'Class:UserRequest/Attribute:related_request_list+' => 'All the requests that are linked to this parent request',
'Class:UserRequest/Attribute:public_log' => 'Public log',
'Class:UserRequest/Attribute:public_log+' => '',
'Class:UserRequest/Attribute:user_satisfaction' => 'User satisfaction',
'Class:UserRequest/Attribute:user_satisfaction+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:1' => 'Very satisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Very dissatisfied',
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => '',
'Class:UserRequest/Attribute:user_comment' => 'User comment',
'Class:UserRequest/Attribute:user_comment+' => '',
'Class:UserRequest/Attribute:parent_request_id_friendlyname' => 'parent_request_id_friendlyname',
'Class:UserRequest/Attribute:parent_request_id_friendlyname+' => '',
'Class:UserRequest/Stimulus:ev_assign' => 'Assign',
'Class:UserRequest/Stimulus:ev_assign+' => '',
'Class:UserRequest/Stimulus:ev_reassign' => 'Re-assign',
'Class:UserRequest/Stimulus:ev_reassign+' => '',
'Class:UserRequest/Stimulus:ev_approve' => 'Approve',
'Class:UserRequest/Stimulus:ev_approve+' => '',
'Class:UserRequest/Stimulus:ev_reject' => 'Reject',
'Class:UserRequest/Stimulus:ev_reject+' => '',
'Class:UserRequest/Stimulus:ev_pending' => 'Pending',
'Class:UserRequest/Stimulus:ev_pending+' => '',
'Class:UserRequest/Stimulus:ev_timeout' => 'Timeout',
'Class:UserRequest/Stimulus:ev_timeout+' => '',
'Class:UserRequest/Stimulus:ev_autoresolve' => 'Automatic resolve',
'Class:UserRequest/Stimulus:ev_autoresolve+' => '',
'Class:UserRequest/Stimulus:ev_autoclose' => 'Automatic close',
'Class:UserRequest/Stimulus:ev_autoclose+' => '',
'Class:UserRequest/Stimulus:ev_resolve' => 'Mark as resolved',
'Class:UserRequest/Stimulus:ev_resolve+' => '',
'Class:UserRequest/Stimulus:ev_close' => 'Close this request',
'Class:UserRequest/Stimulus:ev_close+' => '',
'Class:UserRequest/Stimulus:ev_reopen' => 'Re-open',
'Class:UserRequest/Stimulus:ev_reopen+' => '',
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wait for approval',
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself',
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets',
'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info.',
));
Dict::Add('EN GB', 'British English', 'British English', array(
'Organization:Overview:UserRequests' => 'User Requests from this organisation',
'Organization:Overview:MyUserRequests' => 'My User Requests for this organisation',
'Organization:Overview:Tickets' => 'Tickets for this organisation',
));

View File

@@ -176,9 +176,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Fairly satisfied~~',
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Rather dissatified~~',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Rather dissatisfied~~',
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Very dissatified~~',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Very dissatisfied~~',
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => '',
'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~',
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~',
@@ -227,7 +227,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Menu:UserRequest:OpenRequests+' => '',
'Menu:UserRequest:Overview' => 'Overview~~',
'Menu:UserRequest:Overview+' => '',
'Menu:UserRequest:Provider' => 'Open request transfered to provider~~',
'Menu:UserRequest:Provider' => 'Open request transferred to provider~~',
'Menu:UserRequest:Provider+' => '',
'Menu:UserRequest:Shortcuts' => 'Shortcuts~~',
'Menu:UserRequest:Shortcuts+' => '~~',

View File

@@ -10,7 +10,7 @@
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/]]></comment>
<category>bizmodel,searchable,requestmgmt</category>
<category>bizmodel,searchable,requestmgmt,popular</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>ticket_request</db_table>

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