- Implementation of the localization... on going...

SVN:trunk[406]
This commit is contained in:
Denis Flaven
2010-05-15 07:54:59 +00:00
parent cf042a795d
commit 124867f7fa
8 changed files with 698 additions and 518 deletions

View File

@@ -84,11 +84,11 @@ class URP_Users extends UserRightsBaseClass
{
if (UserRights::IsActionAllowed($sClass, $iAction, null, $this->GetKey()))
{
return '<span style="background-color: #ddffdd;">yes</span>';
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
}
else
{
return '<span style="background-color: #ffdddd;">no</span>';
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}
@@ -98,7 +98,7 @@ class URP_Users extends UserRightsBaseClass
if (UserRights::IsAdministrator($iUserId))
{
// Looks dirty, but ok that's THE ONE
$oPage->p('Has Read/Write access to any object in the database.');
$oPage->p(Dict::S('UI:UserManagement:AdminProfile+'));
return;
}
@@ -120,7 +120,7 @@ class URP_Users extends UserRightsBaseClass
}
else
{
$sStimuli = '<em title="no lifecycle has been defined for this class">n/a</em>';
$sStimuli = '<em title="'.Dict::S('UI:UserManagement:NoLifeCycleApplicable+').'">'.Dict::S('UI:UserManagement:NoLifeCycleApplicable').'</em>';
}
$aDisplayData[] = array(
@@ -134,12 +134,12 @@ class URP_Users extends UserRightsBaseClass
}
$aDisplayConfig = array();
$aDisplayConfig['class'] = array('label' => 'Class', 'description' => '');
$aDisplayConfig['read'] = array('label' => 'Read', 'description' => '');
$aDisplayConfig['bulkread'] = array('label' => 'Bulk read', 'description' => 'List objects or export massively');
$aDisplayConfig['write'] = array('label' => 'Write', 'description' => 'Create and edit (modify)');
$aDisplayConfig['bulkwrite'] = array('label' => 'Bulk write', 'description' => 'Massively create/edit (CSV import)');
$aDisplayConfig['stimuli'] = array('label' => 'Stimuli', 'description' => 'Allowed (compound) actions');
$aDisplayConfig['class'] = array('label' => Dict::S('UI:UserManagement:Class'), 'description' => Dict::S('UI:UserManagement:Class+'));
$aDisplayConfig['read'] = array('label' => Dict::S('UI:UserManagement:Action:Read'), 'description' => Dict::S('UI:UserManagement:Action:Read+'));
$aDisplayConfig['bulkread'] = array('label' => Dict::S('UI:UserManagement:Action:BulkRead'), 'description' => Dict::S('UI:UserManagement:Action:BulkRead+'));
$aDisplayConfig['write'] = array('label' => Dict::S('UI:UserManagement:Action:Modify'), 'description' => Dict::S('UI:UserManagement:Action:Modify+'));
$aDisplayConfig['bulkwrite'] = array('label' => Dict::S('UI:UserManagement:Action:BulkModify'), 'description' => Dict::S('UI:UserManagement:Action:BulkModify+'));
$aDisplayConfig['stimuli'] = array('label' => Dict::S('UI:UserManagement:Action:Stimuli'), 'description' => Dict::S('UI:UserManagement:Action:Stimuli+'));
$oPage->table($aDisplayConfig, $aDisplayData);
}
@@ -207,11 +207,11 @@ class URP_Profiles extends UserRightsBaseClass
$oGrant = $oUserRights->GetClassActionGrant($this->GetKey(), $sClass, $sAction);
if (is_object($oGrant) && ($oGrant->Get('permission') == 'yes'))
{
return '<span style="background-color: #ddffdd;">yes</span>';
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
}
else
{
return '<span style="background-color: #ffdddd;">no</span>';
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}
@@ -220,7 +220,7 @@ class URP_Profiles extends UserRightsBaseClass
if ($this->GetName() == "Administrator")
{
// Looks dirty, but ok that's THE ONE
$oPage->p('Has Read/Write access to any object in the database.');
$oPage->p(Dict::S('UI:UserManagement:AdminProfile+'));
return;
}
@@ -254,14 +254,14 @@ class URP_Profiles extends UserRightsBaseClass
}
$aDisplayConfig = array();
$aDisplayConfig['class'] = array('label' => 'Class', 'description' => '');
$aDisplayConfig['read'] = array('label' => 'Read', 'description' => '');
$aDisplayConfig['bulkread'] = array('label' => 'Bulk read', 'description' => 'List objects or export massively');
$aDisplayConfig['write'] = array('label' => 'Write', 'description' => 'Create and edit (modify)');
$aDisplayConfig['bulkwrite'] = array('label' => 'Bulk write', 'description' => 'Massively create/edit (CSV import)');
$aDisplayConfig['delete'] = array('label' => 'Write', 'description' => 'Delete');
$aDisplayConfig['bulkdelete'] = array('label' => 'Bulk delete', 'description' => 'Massively delete');
$aDisplayConfig['stimuli'] = array('label' => 'Stimuli', 'description' => 'Allowed (compound) actions');
$aDisplayConfig['class'] = array('label' => Dict::S('UI:UserManagement:Class'), 'description' => Dict::S('UI:UserManagement:Class+'));
$aDisplayConfig['read'] = array('label' => Dict::S('UI:UserManagement:Action:Read'), 'description' => Dict::S('UI:UserManagement:Action:Read+'));
$aDisplayConfig['bulkread'] = array('label' => Dict::S('UI:UserManagement:Action:BulkRead'), 'description' => Dict::S('UI:UserManagement:Action:BulkRead+'));
$aDisplayConfig['write'] = array('label' => Dict::S('UI:UserManagement:Action:Modify'), 'description' => Dict::S('UI:UserManagement:Action:Modify+'));
$aDisplayConfig['bulkwrite'] = array('label' => Dict::S('UI:UserManagement:Action:BulkModify'), 'description' => Dict::S('UI:UserManagement:Action:BulkModify+'));
$aDisplayConfig['delete'] = array('label' => Dict::S('UI:UserManagement:Action:Delete'), 'description' => Dict::S('UI:UserManagement:Action:Delete+'));
$aDisplayConfig['bulkdelete'] = array('label' => Dict::S('UI:UserManagement:Action:BulkDelete'), 'description' => Dict::S('UI:UserManagement:Action:BulkDelete+'));
$aDisplayConfig['stimuli'] = array('label' => Dict::S('UI:UserManagement:Action:Stimuli'), 'description' => Dict::S('UI:UserManagement:Action:Stimuli+'));
$oPage->table($aDisplayConfig, $aDisplayData);
}
@@ -271,7 +271,7 @@ class URP_Profiles extends UserRightsBaseClass
$oPage->SetCurrentTabContainer('Related Objects');
$oPage->SetCurrentTab('Grants matrix');
$oPage->SetCurrentTab(Dict::S('UI:UserManagement:GrantMatrix'));
$this->DoShowGrantSumary($oPage);
}
}
@@ -428,7 +428,7 @@ class URP_UserProfile extends UserRightsBaseClass
public function GetName()
{
return "link between ".$this->Get('userlogin')." and ".$this->Get('profile');
return Dict::Format('UI:USerManagement:LinkBetween_User_And_Profile');
}
}

View File

@@ -716,7 +716,7 @@ abstract class cmdbAbstractObject extends CMDBObject
{
if (count($aMapCriteria[$sFilterCode]) > 1)
{
$sFilterValue = '* mixed *';
$sFilterValue = Dict::S('UI:SearchValue:Mixed');
}
else
{
@@ -734,7 +734,7 @@ abstract class cmdbAbstractObject extends CMDBObject
{
//Enum field or external key, display a combo
$sValue = "<select name=\"$sFilterCode\">\n";
$sValue .= "<option value=\"\">* Any *</option>\n";
$sValue .= "<option value=\"\">".Dict::S('UI:SearchValue:Any')."</option>\n";
foreach($aAllowedValues as $key => $value)
{
if ($sFilterValue == $key)
@@ -900,7 +900,7 @@ abstract class cmdbAbstractObject extends CMDBObject
// Few choices, use a normal 'select'
// In case there are no valid values, the select will be empty, thus blocking the user from validating the form
$sHTMLValue = "<select name=\"attr_{$sAttCode}{$sNameSuffix}\" id=\"$iInputId\"{$sCSSClasses}>\n";
$sHTMLValue .= "<option value=\"0\">-- select one --</option>\n";
$sHTMLValue .= "<option value=\"0\">".Dict::S('UI:SelectOne')."</option>\n";
foreach($aAllowedValues as $key => $display_value)
{
$sSelected = ($value == $key) ? ' selected' : '';

View File

@@ -132,12 +132,12 @@ class WebPage
$sAlias = $aMatches[1];
$sClass = $aParams['class'][$sAlias];
$sUIPage = cmdbAbstractObject::ComputeUIPage($sClass);
$sHtml .= "<td><a class=\"no-arrow\" href=\"$sUIPage?operation=details&id=".$aRow[$sName]."&class=".$sClass."&".$oAppContext->GetForLink()."\"><img src=\"../images/zoom.gif\" title=\"Details\" border=\"0\"></a></td>\n";
$sHtml .= "<td><a class=\"no-arrow\" href=\"$sUIPage?operation=details&id=".$aRow[$sName]."&class=".$sClass."&".$oAppContext->GetForLink()."\"><img src=\"../images/zoom.gif\" title=\"".Dict::S('UI:Details+')."\" border=\"0\"></a></td>\n";
}
else if ($sName == 'key')
{
$sUIPage = cmdbAbstractObject::ComputeUIPage($aParams['class']);
$sHtml .= "<td><a class=\"no-arrow\" href=\"$sUIPage?operation=details&id=".$aRow['key']."&class=".$aParams['class']."&".$oAppContext->GetForLink()."\"><img src=\"../images/zoom.gif\" title=\"Details\" border=\"0\"></a></td>\n";
$sHtml .= "<td><a class=\"no-arrow\" href=\"$sUIPage?operation=details&id=".$aRow['key']."&class=".$aParams['class']."&".$oAppContext->GetForLink()."\"><img src=\"../images/zoom.gif\" title=\"".Dict::S('UI:Details+')."\" border=\"0\"></a></td>\n";
}
else
{

View File

@@ -318,7 +318,7 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:Button:Apply' => 'Apply',
'UI:Button:Back' => ' << Back ',
'UI:Button:Next' => ' Next >> ',
'UI:Button:Next' => ' Finish ',
'UI:Button:Finish' => ' Finish ',
'UI:Button:DoImport' => ' Run the Import ! ',
'UI:Button:Done' => ' Done ',
'UI:Button:SimulateImport' => ' Simulate the Import ',
@@ -330,6 +330,7 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:Button:AddToList' => ' << Add ',
'UI:Button:RemoveFromList' => ' Remove >> ',
'UI:Button:FilterList' => ' Filter... ',
'UI:Button:Delete' => 'Delete ! ',
'UI:SearchToggle' => 'Search',
'UI:ClickToCreateNew' => 'Click here to create a new %1$s',
@@ -349,6 +350,22 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:Error:UploadStoppedByExtension_FileName' => 'Upload stopped by extension. (Original file name = "%1$s").',
'UI:Error:UploadFailedUnknownCause_Code' => 'File upload failed, unknown cause. (Error code = "%1$s").',
'UI:Error:1ParametersMissing' => 'Error: the following parameter must be specified for this operation: %1$s.',
'UI:Error:2ParametersMissing' => 'Error: the following parameters must be specified for this operation: %1$s and %2$s.',
'UI:Error:3ParametersMissing' => 'Error: the following parameters must be specified for this operation: %1$s, %2$s and %3$s.',
'UI:Error:4ParametersMissing' => 'Error: the following parameters must be specified for this operation: %1$s, %2$s, %3$s and %4$s.',
'UI:Error:IncorrectOQLQuery_Message' => 'Error: incorrect OQL query: %1$s',
'UI:Error:AnErrorOccuredWhileRunningTheQuery_Message' => 'An error occured while running the query: %1$s',
'UI:Error:ObjectAlreadyUpdated' => 'Error: the object has already been updated.',
'UI:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated.',
'UI:Error:ObjectsAlreadyDeleted' => 'Error: objects have already been deleted!',
'UI:Error:BulkDeleteNotAllowedOn_Class' => 'You are not allowed to perform a bulk delete of objects of class %1$s',
'UI:Error:DeleteNotAllowedOn_Class' => 'You are not allowed to delete objects of class %1$s',
'UI:Error:ObjectAlreadyCloned' => 'Error: the object has already been cloned!',
'UI:Error:ObjectAlreadyCreated' => 'Error: the object has laready been created!',
'UI:Error:Invalid_Stimulus_On_Object_In_State' => 'Error: invalid stimulus "%1$s" on object %2$s in state "%3$s".',
'UI:GroupBy:Count' => 'Count',
'UI:GroupBy:Count+' => 'Number of elements',
'UI:CountOfObjects' => '%1$d objects matching the criteria.',
@@ -385,6 +402,9 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:OQLQueryTab' => 'OQL Query',
'UI:SimpleSearchTab' => 'Simple Search',
'UI:Details+' => 'Details',
'UI:SearchValue:Any' => '* Any *',
'UI:SearchValue:Mixed' => '* mixed *',
'UI:SelectOne' => '-- select one --',
'UI:Login:Welcome' => 'Welcome to iTop!',
'UI:Login:IncorrectLoginPassword' => 'Incorrect login/password, please try again.',
'UI:Login:IdentifyYourself' => 'Identify yourself before continuing',
@@ -545,7 +565,101 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:Message:EmptyList:UseAdd' => 'The list is empty, use the "Add..." button to add elements.',
'UI:Message:EmptyList:UseSearchForm' => 'Use the search form above to search for objects to be added.',
'UI:Wizard:FinalStepTitle' => 'Final step: confirmation'
'UI:Wizard:FinalStepTitle' => 'Final step: confirmation',
'UI:Title:DeletionOf_Object' => 'Deletion of %1$s',
'UI:Title:BulkDeletionOf_Count_ObjectsOf_Class' => 'Bulk deletion of %1$d objects of class %2$s',
'UI:Delete:NotAllowedToDelete' => 'You are not allowed to delete this object',
'UI:Delete:NotAllowedToUpdate_Fields' => 'You are not allowed to update the following field(s): %1$s',
'UI:Error:NotEnoughRightsToDelete' => 'This object could not be deleted because the current user do not have sufficient rights',
'UI:Error:CannotDeleteBecauseOfDepencies' => 'This object could not be deleted because some manual operations must be performed prior to that',
'UI:Archive_User_OnBehalfOf_User' => '%1$s on behalf of %2$s',
'UI:Delete:AutomaticallyDeleted' => 'automatically deleted',
'UI:Delete:AutomaticResetOf_Fields' => 'automatic reset of field(s): %1$s',
'UI:Delete:CleaningUpRefencesTo_Object' => 'Cleaning up all references to %1$s...',
'UI:Delete:CleaningUpRefencesTo_Several_ObjectsOf_Class' => 'Cleaning up all references to %1$d objects of class %2$s...',
'UI:Delete:Done+' => 'What was done...',
'UI:Delete:_Name_Class_Deleted' => '%1$s - %2$s deleted.',
'UI:Delete:ConfirmDeletionOf_Name' => 'Deletion of %1$s',
'UI:Delete:ConfirmDeletionOf_Count_ObjectsOf_Class' => 'Deletion of %1$d objects of class %2$s',
'UI:Delete:ShouldBeDeletedAtomaticallyButNotAllowed' => 'Should be automaticaly deleted, but you are not allowed to do so',
'UI:Delete:MustBeDeletedManuallyButNotAllowed' => 'Must be deleted manually - but you are not allowed to delete this object, please contact your application admin',
'UI:Delete:WillBeDeletedAutomatically' => 'Will be automaticaly deleted',
'UI:Delete:MustBeDeletedManually' => 'Must be deleted manually',
'UI:Delete:CannotUpdateBecause_Issue' => 'Should be automatically updated, but: %1$s',
'UI:Delete:WillAutomaticallyUpdate_Fields' => 'will be automaticaly updated (reset: %1$s)',
'UI:Delete:Count_Objects/LinksReferencing_Object' => '%1$d objects/links are referencing %2$s',
'UI:Delete:Count_Objects/LinksReferencingTheObjects' => '%1$d objects/links are referencing some of the objects to be deleted',
'UI:Delete:ReferencesMustBeDeletedToEnsureIntegrity' => 'To ensure Database integrity, any reference should be further eliminated',
'UI:Delete:Consequence+' => 'What will be done',
'UI:Delete:SorryDeletionNotAllowed' => 'Sorry, you are not allowed to delete this object, see the detailed explanations above',
'UI:Delete:PleaseDoTheManualOperations' => 'Please perform the manual operations listed above prior to requesting the deletion of this object',
'UI:Delect:Confirm_Object' => 'Please confirm that you want to delete %1$s.',
'UI:Delect:Confirm_Count_ObjectsOf_Class' => 'Please confirm that you want to delete the following %1$d objects of class %2$s.',
'UI:WelcomeToITop' => 'Welcome to iTop',
'UI:DetailsPageTitle' => 'iTop - %1$s - %2$s details',
'UI:ErrorPageTitle' => 'iTop - Error',
'UI:ObjectDoesNotExist' => 'Sorry, this object does not exist (or you are not allowed to view it).',
'UI:SearchResultsPageTitle' => 'iTop - Search Results',
'UI:Search:NoSearch' => 'Nothing to search for',
'UI:FullTextSearchTitle_Text' => 'Results for "%1$s":',
'UI:Search:Count_ObjectsOf_Class_Found' => '%1$d object(s) of class %2$s found.',
'UI:Search:NoObjectFound' => 'No object found.',
'UI:ModificationPageTitle_Object_Class' => 'iTop - %1$s - %2$s modification',
'UI:ModificationTitle_Class_Object' => 'Modification of %1$s: <span class=\"hilite\">%2$s</span>',
'UI:ClonePageTitle_Object_Class' => 'iTop - Clone %1$s - %2$s modification',
'UI:CloneTitle_Class_Object' => 'Clone of %1$s: <span class=\"hilite\">%2$s</span>',
'UI:CreationPageTitle_Class' => 'iTop - Creation of a new %1$s ',
'UI:CreationTitle_Class' => 'Creation of a new %1$s',
'UI:Class_Object_NotUpdated' => 'No change detected, %1$s (%2$s) has <strong>not</strong> been modified.',
'UI:Class_Object_Updated' => '%1$s (%2$s) updated.',
'UI:BulkDeletePageTitle' => 'iTop - Bulk Delete',
'UI:BulkDeleteTitle' => 'Select the objects you want to delete:',
'UI:PageTitle:ObjectCreated' => 'iTop Object Created.',
'UI:Title:Object_Of_Class_Created' => '%1$s - %2$s created.',
'UI:Apply_Stimulus_On_Object_In_State_ToTarget_State' => 'Applying %1$s on object: %2$s in state %3$s to target state: %4$s.',
'UI:PageTitle:FatalError' => 'iTop - Fatal Error',
'UI:FatalErrorMessage' => 'Fatal error, iTop cannot continue.',
'UI:Error_Details' => 'Error: %1$s.',
'UI:PageTitle:ClassProjections' => 'iTop user management - class projections',
'UI:PageTitle:ProfileProjections' => 'iTop user management - profile projections',
'UI:UserManagement:Class' => 'Class',
'UI:UserManagement:Class+' => 'Class of objects',
'UI:UserManagement:ProjectedObject' => 'Object',
'UI:UserManagement:ProjectedObject+' => 'Projected object',
'UI:UserManagement:AnyObject' => '* any *',
'UI:UserManagement:User' => 'User',
'UI:UserManagement:User+' => 'User involved in the projection',
'UI:UserManagement:Profile' => 'Profile',
'UI:UserManagement:Profile+' => 'Profile in which the projection is specified',
'UI:UserManagement:Action:Read' => 'Read',
'UI:UserManagement:Action:Read+' => 'Read/display objects',
'UI:UserManagement:Action:Modify' => 'Modify',
'UI:UserManagement:Action:Modify+' => 'Create and edit (modify) objects',
'UI:UserManagement:Action:Delete' => 'Delete',
'UI:UserManagement:Action:Delete+' => 'Delete objects',
'UI:UserManagement:Action:BulkRead' => 'Bulk Read (Export)',
'UI:UserManagement:Action:BulkRead+' => 'List objects or export massively',
'UI:UserManagement:Action:BulkModify' => 'Bulk Modify',
'UI:UserManagement:Action:BulkModify+' => 'Massively create/edit (CSV import)',
'UI:UserManagement:Action:BulkDelete' => 'Bulk Delete',
'UI:UserManagement:Action:BulkDelete+' => 'Massively delete objects',
'UI:UserManagement:Action:Stimuli' => 'Stimuli',
'UI:UserManagement:Action:Stimuli+' => 'Allowed (compound) actions',
'UI:UserManagement:Action' => 'Action',
'UI:UserManagement:Action+' => 'Action performed by the user',
'UI:UserManagement:TitleActions' => 'Actions',
'UI:UserManagement:Permission' => 'Permission',
'UI:UserManagement:Permission+' => 'User\'s permissions',
'UI:UserManagement:Attributes' => 'Attributes',
'UI:UserManagement:ActionAllowed:Yes' => 'Yes',
'UI:UserManagement:ActionAllowed:No' => 'No',
'UI:UserManagement:AdminProfile+' => 'Administrators have full read/write access to all objects in the database.',
'UI:UserManagement:NoLifeCycleApplicable' => 'N/A',
'UI:UserManagement:NoLifeCycleApplicable+' => 'No lifecycle has been defined for this class',
'UI:UserManagement:GrantMatrix' => 'Grant Matrix',
'UI:USerManagement:LinkBetween_User_And_Profile' => 'Link between %1$s and %2$s',
));

View File

@@ -313,6 +313,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Button:Apply' => 'Appliquer',
'UI:Button:Back' => ' << Retour ',
'UI:Button:Next' => ' Suite >> ',
'UI:Button:Finish' => ' Terminer ',
'UI:Button:DoImport' => ' Lancer l\'import ! ',
'UI:Button:Done' => ' Terminé ',
'UI:Button:SimulateImport' => ' Simuler l\'import ',
@@ -324,10 +325,11 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Button:AddToList' => ' << Ajouter ',
'UI:Button:RemoveFromList' => ' Enlever >> ',
'UI:Button:FilterList' => ' Filtrer... ',
'UI:Button:Delete' => 'Supprimer ! ',
'UI:SearchToggle' => 'Recherche',
'UI:ClickToCreateNew' => 'Cliquez ici pour créer un nouveau %1$s',
'UI:ClickToCreateNew' => 'Cliquez ici pour créer un nouvel objet de type %1$s',
'UI:NoObjectToDisplay' => 'Aucun objet à afficher.',
'UI:Error:MandatoryTemplateParameter_object_id' => 'Le paramètre object_id est obligatoire quand link_attr est spécifié. Vérifiez la définition du modèle.',
'UI:Error:MandatoryTemplateParameter_link_attr' => 'Le paramètre target_attr est obligatoire quand link_attr est spécifié. Vérifiez la définition du modèle.',
@@ -344,6 +346,21 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Error:UploadStoppedByExtension_FileName' => 'Téléchargement arrêté à cause de l\'extension. (Nom du fichier original = "%1$s").',
'UI:Error:UploadFailedUnknownCause_Code' => 'Le téléchargement a échoué pour une raison inconnue. (Code d\'erreur = "%1$s").',
'UI:Error:1ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque le paramètre suivant: %1$s.',
'UI:Error:2ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque les paramètres suivants: %1$s and %2$s.',
'UI:Error:3ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque les paramètres suivants: %1$s, %2$s and %3$s.',
'UI:Error:4ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque les paramètres suivants: %1$s, %2$s, %3$s and %4$s.',
'UI:Error:IncorrectOQLQuery_Message' => 'Erreur: requête OQL incorrecte: %1$s',
'UI:Error:AnErrorOccuredWhileRunningTheQuery_Message' => 'Une erreur s\'est produite en exécutant la requête: %1$s',
'UI:Error:ObjectAlreadyUpdated' => 'Erreur: l\'objet a déjà été mis à jour.',
'UI:Error:ObjectCannotBeUpdated' => 'Erreur: l\'objet ne peut pas être mis à jour.',
'UI:Error:ObjectsAlreadyDeleted' => 'Erreur: les objets ont déjà été supprimés !',
'UI:Error:BulkDeleteNotAllowedOn_Class' => 'Vous n\'êtes pas autorisé à faire une suppression massive sur les objets de type %1$s',
'UI:Error:DeleteNotAllowedOn_Class' => 'Vous n\'êtes pas autorisé supprimer des objets de type %1$s',
'UI:Error:ObjectAlreadyCloned' => 'Erreur: l\'objet a déjà été dupliqué !',
'UI:Error:ObjectAlreadyCreated' => 'Erreur: l\'objet a déjà été créé !',
'UI:Error:Invalid_Stimulus_On_Object_In_State' => 'Erreur: le stimulus "%1$s" n\'est pas valide pour l\'objet %2$s dans l\'état "%3$s".',
'UI:GroupBy:Count' => 'Nombre',
'UI:GroupBy:Count+' => 'Nombre d\'éléments',
'UI:CountOfObjects' => '%1$d objets correspondants aux critères.',
@@ -360,8 +377,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Menu:New' => 'Créer...',
'UI:Menu:Add' => 'Ajouter...',
'UI:Menu:Manage' => 'Gérer...',
'UI:Menu:EMail' => 'eMail',
'UI:Menu:CSVExport' => 'Export CSV',
'UI:Menu:EMail' => 'Envoyer par eMail',
'UI:Menu:CSVExport' => 'Exporter en CSV',
'UI:Menu:Modify' => 'Modifier...',
'UI:Menu:Delete' => 'Supprimer...',
'UI:Menu:Manage' => 'Gérer...',
@@ -380,6 +397,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:OQLQueryTab' => 'Requête OQL',
'UI:SimpleSearchTab' => 'Recherche simple',
'UI:Details+' => 'Détails',
'UI:SearchValue:Any' => '* Indifférent *',
'UI:SearchValue:Mixed' => '* Plusieurs *',
'UI:SelectOne' => '-- choisir une valeur --',
'UI:Login:Welcome' => 'Bienvenue dans iTop!',
'UI:Login:IncorrectLoginPassword' => 'Mot de passe ou identifiant incorrect.',
'UI:Login:IdentifyYourself' => 'Merci de vous identifier',
@@ -465,20 +485,20 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:RunQuery:HeaderOQLExpression' => 'Requête OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'La requête en OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Requête à exécuter : ',
'UI:RunQuery:MoreInfo' => 'Plus d\'information sur le requête: ',
'UI:RunQuery:MoreInfo' => 'Plus d\'information sur le requête : ',
'UI:RunQuery:DevelopedQuery' => 'Requête OQL décompilée : ',
'UI:RunQuery:SerializedFilter' => 'Version sérialisée : ',
'UI:RunQuery:Error' => 'Une erreur s\'est produite durant l\'exécution de la requête: %1$s',
'UI:RunQuery:Error' => 'Une erreur s\'est produite durant l\'exécution de la requête : %1$s',
'UI:Schema:Title' => 'Modèle de données iTop',
'UI:Schema:CategoryMenuItem' => 'Catégorie <b>%1$s</b>',
'UI:Schema:Relationships' => 'Relations',
'UI:Schema:AbstractClass' => 'Class abstraite: les objets de cette classe ne peuvent pas être instanciés.',
'UI:Schema:NonAbstractClass' => 'Class concrète: les objets de cette classe peuvent être instanciés.',
'UI:Schema:AbstractClass' => 'Classe abstraite : les objets de cette classe ne peuvent pas être instanciés.',
'UI:Schema:NonAbstractClass' => 'Classe concrète : les objets de cette classe peuvent être instanciés.',
'UI:Schema:ClassHierarchyTitle' => 'Hiérachie des classes',
'UI:Schema:AllClasses' => 'Toutes les classes',
'UI:Schema:ExternalKey_To' => 'Clef externe vers %1$s',
'UI:Schema:Columns_Description' => 'Colonnes: <em>%1$s</em>',
'UI:Schema:Columns_Description' => 'Colonnes : <em>%1$s</em>',
'UI:Schema:Default_Description' => 'Valeur par défaut: "%1$s"',
'UI:Schema:NullAllowed' => 'Null autorisé',
'UI:Schema:NullNotAllowed' => 'Null interdit',
@@ -516,8 +536,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Schema:RelationDoesNotPropagate' => '%1$s: ne se propage pas (%2$d niveaux), requête: %3$s',
'UI:Schema:Class_ReferencingClasses_From_By' => '%1$s est référencé par la classe %2$s via le champ %3$s',
'UI:Schema:Class_IsLinkedTo_Class_Via_ClassAndAttribute' => '%1$s est lié à la classe %2$s via %3$s::<em>%4$s</em>',
'UI:Schema:Links:1-n' => 'Classes pointant sur %1$s (liens 1:n):',
'UI:Schema:Links:n-n' => 'Classes liées à %1$s (liens n:n):',
'UI:Schema:Links:1-n' => 'Classes pointant sur %1$s (liens 1:n) :',
'UI:Schema:Links:n-n' => 'Classes liées à %1$s (liens n:n) :',
'UI:Schema:Links:All' => 'Graphe de toutes les classes liées',
'UI:Schema:NoLifeCyle' => 'Aucun cycle de vie n\'est défini pour cette classe.',
'UI:Schema:LifeCycleTransitions' => 'Transitions',
@@ -542,7 +562,101 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Message:EmptyList:UseAdd' => 'La liste est vide, utilisez le bouton "Ajouter..." pour ajouter des objets.',
'UI:Message:EmptyList:UseSearchForm' => 'Utilisez le formulaire de recherche ci-dessus pour trouver les objets à ajouter.',
'UI:Wizard:FinalStepTitle' => 'Dernière étape: confirmation'
'UI:Wizard:FinalStepTitle' => 'Dernière étape: confirmation',
'UI:Title:DeletionOf_Object' => 'Suppression de %1$s',
'UI:Title:BulkDeletionOf_Count_ObjectsOf_Class' => 'Suppression massive de %1$d objets de type %2$s',
'UI:Delete:NotAllowedToDelete' => 'Vous n\'êtes pas autorisé à supprimer cet objet',
'UI:Delete:NotAllowedToUpdate_Fields' => 'Vous n\'êtes pas autorisé à mettre à jour les champs suivants : %1$s',
'UI:Error:NotEnoughRightsToDelete' => 'Cet objet ne peut pas être supprimé car l\'utilisateur courant n\'a pas les droits nécessaires.',
'UI:Error:CannotDeleteBecauseOfDepencies' => 'Cet objet ne peut pas être supprimé, des opérations manuelles sont nécessaire avant sa suppression.',
'UI:Archive_User_OnBehalfOf_User' => '%1$s pour %2$s',
'UI:Delete:AutomaticallyDeleted' => 'supprimé automatiquement',
'UI:Delete:AutomaticResetOf_Fields' => 'mise à jour automatique des champ(s): %1$s',
'UI:Delete:CleaningUpRefencesTo_Object' => 'Suppression de toutes les références vers %1$s...',
'UI:Delete:CleaningUpRefencesTo_Several_ObjectsOf_Class' => 'Supression de toutes les références vers les %1$d objets de type %2$s...',
'UI:Delete:Done+' => 'Ce qui a été effectué...',
'UI:Delete:_Name_Class_Deleted' => ' %2$s %1$s supprimé.',
'UI:Delete:ConfirmDeletionOf_Name' => 'Suppression de %1$s',
'UI:Delete:ConfirmDeletionOf_Count_ObjectsOf_Class' => 'Supression de %1$d objets de type %2$s',
'UI:Delete:ShouldBeDeletedAtomaticallyButNotAllowed' => 'Devrait être supprimé automatiquement, mais vous n\'avez pas le droit d\'effectuer cette opération.',
'UI:Delete:MustBeDeletedManuallyButNotAllowed' => 'Doit être supprimé manuellement - mais vous n\'avez pas le droit de supprimer cet objet, contactez votre administrateur pour régler ce problème',
'UI:Delete:WillBeDeletedAutomatically' => 'Sera supprimé automatiquement',
'UI:Delete:MustBeDeletedManually' => 'Doit être supprimé manuellement',
'UI:Delete:CannotUpdateBecause_Issue' => 'Devrait être mis à jour automatiquement, mais: %1$s',
'UI:Delete:WillAutomaticallyUpdate_Fields' => 'Va être mis à jour automatiquement (champs impactés : %1$s)',
'UI:Delete:Count_Objects/LinksReferencing_Object' => '%1$d objets ou liens font référence à %2$s',
'UI:Delete:Count_Objects/LinksReferencingTheObjects' => '%1$d objets ou liens font référence à certain des objets à supprimer',
'UI:Delete:ReferencesMustBeDeletedToEnsureIntegrity' => 'pour garantir l\'intégrité de la base de données, toutes les références doivent être supprimées.',
'UI:Delete:Consequence+' => 'Ce qui va être effectué',
'UI:Delete:SorryDeletionNotAllowed' => 'Désolé, vous n\'êtes pas autorisé à supprimer cette objet. Voir les explications détaillées ci-dessus.',
'UI:Delete:PleaseDoTheManualOperations' => 'Vous devez effectuer les opération manuelles listées ci-dessus avant de pourvoir supprimer cet objet.',
'UI:Delect:Confirm_Object' => 'Confirmez que vous voulez bien supprimer %1$s.',
'UI:Delect:Confirm_Count_ObjectsOf_Class' => 'Confirmez que vous voulez bien supprimer les %1$d objets de type %2$s ci-dessous.',
'UI:WelcomeToITop' => 'Bienvenue dans iTop',
'UI:DetailsPageTitle' => 'iTop - %2$s - Détails de %1$s',
'UI:ErrorPageTitle' => 'iTop - Erreur',
'UI:ObjectDoesNotExist' => 'Désolé cet objet n\'existe pas (où vous n\'êtes pas autorisé à l\'afficher).',
'UI:SearchResultsPageTitle' => 'iTop - Résultats de la recherche',
'UI:Search:NoSearch' => 'Rien à rechercher',
'UI:FullTextSearchTitle_Text' => 'Résultats pour "%1$s" :',
'UI:Search:Count_ObjectsOf_Class_Found' => 'Trouvé %1$d objet(s) de type %2$s.',
'UI:Search:NoObjectFound' => 'Aucun objet trouvé.',
'UI:ModificationPageTitle_Object_Class' => 'iTop - %2$s - Modification de %1$s',
'UI:ModificationTitle_Class_Object' => '%1$s - Modification de <span class=\"hilite\">%2$s</span>',
'UI:ClonePageTitle_Object_Class' => 'iTop - %2$s - Duplication de %1$s',
'UI:CloneTitle_Class_Object' => ' %1$s - Duplication de <span class=\"hilite\">%2$s</span>',
'UI:CreationPageTitle_Class' => 'iTop - Création d\'un objet de type %1$s ',
'UI:CreationTitle_Class' => 'Création d\'un objet de type %1$s',
'UI:Class_Object_NotUpdated' => 'Aucun changement détecté, %2$s (type : %2$s) n\'a <strong>pas</strong> été modifié.',
'UI:Class_Object_Updated' => '%1$s (%2$s) mise à jour.',
'UI:BulkDeletePageTitle' => 'iTop - Supression massive',
'UI:BulkDeleteTitle' => 'Sélectionnez les objets à supprimer:',
'UI:PageTitle:ObjectCreated' => 'iTop objet créé.',
'UI:Title:Object_Of_Class_Created' => '%2$s - %1$s créé(e).',
'UI:Apply_Stimulus_On_Object_In_State_ToTarget_State' => '%1$s de %2$s de l\'état %3$s vers l\'état %4$s.',
'UI:PageTitle:FatalError' => 'iTop - Erreur Fatale',
'UI:FatalErrorMessage' => 'Erreur fatale, iTop ne peut pas continuer.',
'UI:Error_Details' => 'Erreur: %1$s.',
'UI:PageTitle:ClassProjections' => 'iTop gestion des utilisateurs - projections des classes',
'UI:PageTitle:ProfileProjections' => 'iTop gestion des utilisateurs - projections des profils',
'UI:UserManagement:Class' => 'Type',
'UI:UserManagement:Class+' => 'Type des objets',
'UI:UserManagement:ProjectedObject' => 'Objet',
'UI:UserManagement:ProjectedObject+' => 'L\'objet projeté',
'UI:UserManagement:AnyObject' => '* indifférent *',
'UI:UserManagement:User' => 'Utilisateur',
'UI:UserManagement:User+' => 'L\'utilisateur',
'UI:UserManagement:Profile' => 'Profil',
'UI:UserManagement:Profile+' => 'Profil dans lequel la projection est définie',
'UI:UserManagement:Action:Read' => 'Lecture',
'UI:UserManagement:Action:Read+' => 'Lecture et affichage d\'un objet',
'UI:UserManagement:Action:Modify' => 'Modification',
'UI:UserManagement:Action:Modify+' => 'Création et modification d\'un objet',
'UI:UserManagement:Action:Delete' => 'Suppression',
'UI:UserManagement:Action:Delete+' => 'Supression d\'un objet',
'UI:UserManagement:Action:BulkRead' => 'Lecture en masse (export)',
'UI:UserManagement:Action:BulkRead+' => 'Export de liste d\'objets',
'UI:UserManagement:Action:BulkModify' => 'Modification en masse',
'UI:UserManagement:Action:BulkModify+' => 'Création et modification de plusieurs objets (import CSV)',
'UI:UserManagement:Action:BulkDelete' => 'Suppression en masse',
'UI:UserManagement:Action:BulkDelete+' => 'Suppression de plusieurs objets',
'UI:UserManagement:Action:Stimuli' => 'Stimuli',
'UI:UserManagement:Action:Stimuli+' => 'Actions autorisées',
'UI:UserManagement:Action' => 'Action',
'UI:UserManagement:Action+' => 'l\'action effectuée par l\'utilisateur',
'UI:UserManagement:TitleActions' => 'Actions',
'UI:UserManagement:Permission' => 'Permission',
'UI:UserManagement:Permission+' => 'Les droits de l\'utilisateur',
'UI:UserManagement:Attributes' => 'Champs',
'UI:UserManagement:ActionAllowed:Yes' => 'Oui',
'UI:UserManagement:ActionAllowed:No' => 'Non',
'UI:UserManagement:AdminProfile+' => 'Les administrateurs ont un accès total à tous les objets de la base de données.',
'UI:UserManagement:NoLifeCycleApplicable' => 'N/A',
'UI:UserManagement:NoLifeCycleApplicable+' => 'Aucun cycle de vie n\'est défini pour ce type d\'objets.',
'UI:UserManagement:GrantMatrix' => 'Matrice des droits',
'UI:USerManagement:LinkBetween_User_And_Profile' => 'Lien entre %1$s et %2$s',
));
?>

File diff suppressed because it is too large Load Diff

View File

@@ -32,8 +32,8 @@ function ComputeProjections($oPage, $sScope)
// Setup display structure
//
$aDisplayConfig = array();
$aDisplayConfig['class'] = array('label' => 'Class', 'description' => 'Class');
$aDisplayConfig['object'] = array('label' => 'Object', 'description' => 'Projected object');
$aDisplayConfig['class'] = array('label' => Dict::S('UI:UserManagement:Class'), 'description' => Dict::S('UI:UserManagement:Class+'));
$aDisplayConfig['object'] = array('label' => Dict::S('UI:UserManagement:ProjectedObject'), 'description' => Dict::S('UI:UserManagement:ProjectedObject+'));
foreach ($aDimensions as $iDimension => $oDimension)
{
$aDisplayConfig['dim'.$oDimension->GetKey()] = array('label' => $oDimension->GetName(), 'description' => $oDimension->Get('description'));
@@ -57,7 +57,7 @@ function ComputeProjections($oPage, $sScope)
$aValues = $aClassProjs[$sClass][$iDimension]->ProjectObject($oObject);
if (is_null($aValues))
{
$sValues = htmlentities('<any>');
$sValues = htmlentities(Dict::S('UI:UserManagement:AnyObject'));
}
else
{
@@ -88,7 +88,7 @@ $iActiveNodeId = utils::ReadParam('menu', -1);
$currentOrganization = utils::ReadParam('org_id', 1);
$sScope = utils::ReadParam('scope', 'SELECT bizDevice');
$oPage = new iTopWebPage("iTop user management - class projections", $currentOrganization);
$oPage = new iTopWebPage(Dict::S('UI:PageTitle:ClassProjections'), $currentOrganization);
$oPage->no_cache();
ComputeProjections($oPage, $sScope);

View File

@@ -37,8 +37,8 @@ function ComputeProjections($oPage)
// Setup display structure
//
$aDisplayConfig = array();
$aDisplayConfig['user'] = array('label' => 'User', 'description' => 'User concerned by the projection');
$aDisplayConfig['profile'] = array('label' => 'Profile', 'description' => 'Profile in which the projection is specified');
$aDisplayConfig['user'] = array('label' => Dict::S('UI:UserManagement:User'), 'description' => Dict::S('UI:UserManagement:User+'));
$aDisplayConfig['profile'] = array('label' => Dict::S('UI:UserManagement:Profile'), 'description' => Dict::S('UI:UserManagement:Profile+'));
foreach ($aDimensions as $iDimension => $oDimension)
{
$aDisplayConfig['dim'.$oDimension->GetKey()] = array('label' => $oDimension->GetName(), 'description' => $oDimension->Get('description'));
@@ -67,7 +67,7 @@ function ComputeProjections($oPage)
$aValues = $aProPros[$iProfile][$iDimension]->ProjectUser($oUser);
if (is_null($aValues))
{
$sValues = htmlentities('<any>');
$sValues = htmlentities(Dict::S('UI:UserManagement:AnyObject'));
}
else
{
@@ -98,7 +98,7 @@ $oAppContext = new ApplicationContext();
$iActiveNodeId = utils::ReadParam('menu', -1);
$currentOrganization = utils::ReadParam('org_id', 1);
$oPage = new iTopWebPage("iTop user management - profile projections", $currentOrganization);
$oPage = new iTopWebPage(Dict::S('UI:PageTitle:ProfileProjections'), $currentOrganization);
$oPage->no_cache();
ComputeProjections($oPage);