Compare commits

..

No commits in common. "7c48b8062b8603def119f1dcff49d52840fa8b84" and "c98e31b7c61e259e67ac2441997daa9f6b7f6606" have entirely different histories.

9 changed files with 448 additions and 692 deletions

View file

@ -3,33 +3,17 @@ h3.LSio {
border-bottom: 1px solid;
}
div.LSio_error, div.LSio_hook {
div.LSio_error {
padding: 0 2em;
}
ul.LSio_imported_objects h3, ul.LSio_updated_objects h3, div.LSio_hook h3 {
margin: 0;
font-size: 1em;
}
ul.LSio_global_errors, ul.LSio_global_messages, ul.LSio_object_errors, ul.LSio_object_messages, ul.LSio_hook_errors, ul.LSio_hook_messages {
ul.LSio_global_errors {
background-color: #F56A6A;
list-style-type: none;
padding: 1em;
margin: 0;
}
ul.LSio_global_errors, ul.LSio_global_messages {
text-align: center;
}
ul.LSio_global_errors, ul.LSio_object_errors, ul.LSio_hook_errors {
background-color: #F56A6A;
}
ul.LSio_global_messages, ul.LSio_object_messages, ul.LSio_hook_messages {
background-color: #d6edf6;
}
ul.LSio_data_errors {
font-style: italic;
font-size: 0.8em;

View file

@ -100,20 +100,17 @@ class LSerror {
/**
* Format current errors message
*
* @param bool $reset Reset errors (optional, default: true)
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*
* @return array Array of formated error messages
*/
public static function getErrors($reset=true) {
public static function getErrors() {
$return = (
self :: errorsDefined()?
$_SESSION['LSerror']:
array()
);
if ($reset)
self :: resetError();
self :: resetError();
return $return;
}

View file

@ -193,7 +193,6 @@ class LSio extends LSlog_staticLoggerClass {
'imported' => array(),
'updated' => array(),
'errors' => array(),
'hooks' => array(),
);
// Load LSobject
@ -229,23 +228,18 @@ class LSio extends LSlog_staticLoggerClass {
self :: log_trace("import(): objects data=".varDump($objectsData));
// Trigger before_import event
$success = $ioFormat -> fireEvent(
'before_import',
array(
'input_file' => $input_file,
'updateIfExists' => $updateIfExists,
'justTry' => $justTry,
'objectsData' => &$objectsData,
'return' => &$return,
if (
!$ioFormat -> fireEvent(
'before_import',
array(
'input_file' => $input_file,
'updateIfExists' => $updateIfExists,
'justTry' => $justTry,
'objectsData' => &$objectsData,
'return' => &$return,
)
)
);
$return['hooks']['before_import'] = array(
'messages' => $_SESSION['LSsession_infos'],
'errors' => LSerror :: getErrors(),
);
$_SESSION['LSsession_infos'] = array();
if (!$success) {
) {
LSerror :: addErrorCode('LSio_08');
return $return;
}
@ -358,12 +352,7 @@ class LSio extends LSlog_staticLoggerClass {
self :: log_debug('import(): New object, perform creation');
if ($justTry || $object -> updateData('create')) {
self :: log_info('Object '.$object -> getDn().' imported');
$return['imported'][$object -> getDn()] = array(
'name' => $object -> getDisplayName(),
'messages' => $_SESSION['LSsession_infos'],
'errors' => LSerror :: getErrors(),
);
$_SESSION['LSsession_infos'] = array();
$return['imported'][$object -> getDn()] = $object -> getDisplayName();
continue;
}
else {
@ -406,12 +395,7 @@ class LSio extends LSlog_staticLoggerClass {
// Update data on LDAP server
else if ($justTry || $object -> updateData('modify')) {
self :: log_info('Object '.$object -> getDn().' updated');
$return['updated'][$object -> getDn()] = array(
'name' => $object -> getDisplayName(),
'infos' => $_SESSION['LSsession_infos'],
'errors' => LSerror :: getErrors(),
);
$_SESSION['LSsession_infos'] = array();
$return['updated'][$object -> getDn()] = $object -> getDisplayName();
continue;
}
else {
@ -422,16 +406,13 @@ class LSio extends LSlog_staticLoggerClass {
}
}
}
$globalErrors = array_merge(LSerror :: getErrors(), $globalErrors);
$objectsInError[] = array(
'data' => $objData,
'errors' => array (
'globals' => $globalErrors,
'attrs' => $form->getErrors(),
),
'messages' => $_SESSION['LSsession_infos'],
'attrs' => $form->getErrors()
)
);
$_SESSION['LSsession_infos'] = array();
}
$return['errors'] = $objectsInError;
$return['success'] = empty($objectsInError);
@ -448,22 +429,18 @@ class LSio extends LSlog_staticLoggerClass {
);
// Trigger after_import event
$success = $ioFormat -> fireEvent(
'after_import',
array(
'input_file' => $input_file,
'updateIfExists' => $updateIfExists,
'justTry' => $justTry,
'objectsData' => &$objectsData,
'return' => &$return,
if (
!$ioFormat -> fireEvent(
'after_import',
array(
'input_file' => $input_file,
'updateIfExists' => $updateIfExists,
'justTry' => $justTry,
'objectsData' => &$objectsData,
'return' => &$return,
)
)
);
$return['hooks']['after_import'] = array(
'messages' => $_SESSION['LSsession_infos'],
'errors' => LSerror :: getErrors(),
);
$_SESSION['LSsession_infos'] = array();
if (!$success)
)
LSerror :: addErrorCode('LSio_09');
return $return;

View file

@ -499,13 +499,14 @@ function _cli_add_possible_values_from_LSconfig($context, $withouts, $level=0) {
function _cli_parse_template_file($file) {
global $LSlang_cli_logger;
$LSlang_cli_logger -> debug("Looking for string to translate in '$file' template file");
foreach(file($file) as $line_count => $line) {
$line_count ++;
if (preg_match_all('/\{ *tr +.*msg=(["\'])(?P<msg>[^"}]+)\1.*\}/', $line, $matches)) {
foreach($matches["msg"] as $t) {
$count = 0;
foreach(file($file) as $line) {
$count ++;
if (preg_match_all('/\{ *tr +msg=["\']([^\}]+)["\'] *\}/',$line,$matches)) {
foreach($matches[1] as $t) {
$t = preg_replace('/[\'"]\|escape\:.*$/', '', $t);
$LSlang_cli_logger -> trace(" - \"$t\" # Line $line_count");
_cli_add_str_to_translate($t, _cli_absolute2relative_path($file).":$line_count");
$LSlang_cli_logger -> trace(" - \"$t\" # Line $count");
_cli_add_str_to_translate($t, _cli_absolute2relative_path($file).":$count");
}
}
}
@ -519,17 +520,15 @@ function _cli_parse_template_file($file) {
* @return void
*/
function _cli_find_and_parse_template_file($dir) {
global $LSlang_cli_logger;
if (is_dir($dir)) {
$LSlang_cli_logger -> debug("Looking for string to translate in template directory '$dir'");
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file=='.' || $file=='..') continue;
if (is_dir("$dir/$file")) {
_cli_find_and_parse_template_file("$dir/$file");
if (is_dir($dir.'/'.$file)) {
_cli_find_and_parse_template_file($dir.'/'.$file);
}
elseif (is_file($dir."/".$file) && preg_match('/\.tpl$/',$file)) {
_cli_parse_template_file("$dir/$file");
_cli_parse_template_file($dir.'/'.$file);
}
}
closedir($dh);
@ -545,185 +544,59 @@ function _cli_find_and_parse_template_file($dir) {
function _cli_parse_php_file($file) {
global $LSlang_cli_logger;
$LSlang_cli_logger -> debug("Looking for string to translate in '$file' PHP file");
$quote = '';
$res = '';
$comment = null;
$line_break_continue = false;
$inside_keyword = false;
$inside_comment = false;
$end_comment_pos = false;
$keyword = null;
foreach(file($file) as $line_count => $line) {
$line = preg_replace("/\n$/", "", $line);
$line_count++;
$LSlang_cli_logger -> trace("Handle line #$line_count of '$file' PHP file : '$line'");
$offset = 0;
while (
$line_break_continue
|| (!$inside_comment && preg_match('#^([ \t])*(//|/\*)#', substr($line, $offset), $comment))
|| ($inside_comment && $end_comment_pos = strpos(substr($line, $offset), '*/'))
|| preg_match('/[^a-zA-Z0-9\'\"]_{1,3}\(/', substr($line, $offset), $keyword, PREG_OFFSET_CAPTURE)
) {
if ($line_break_continue) {
$LSlang_cli_logger -> trace("$file:$line_count: continue from previous line after a line break");
$line_break_continue = false;
$offset = 0;
$inside_keyword = true;
}
elseif ($comment) {
$pos = $offset + strlen($comment[1]);
if ($comment[2] == '//') {
$LSlang_cli_logger -> trace(
"$file:$line_count: entering comment detected '".$comment[2]."' at position #$pos, ".
"ignore the line ('$line', offset=$offset)");
break;
}
$LSlang_cli_logger -> trace(
"$file:$line_count: entering comment detected '".$comment[2]."' at position #$pos ".
"('$line', offset=$offset)");
$inside_comment = true;
$offset = $pos + strlen($comment[2]);
$comment = null;
}
elseif ($inside_comment) {
if ($end_comment_pos) {
$pos = $offset + $end_comment_pos;
$LSlang_cli_logger -> trace(
"$file:$line_count: end of comment detected at position #$pos, continue ".
"('$line', offset=$offset)");
$offset = $pos;
$end_comment_pos = null;
$inside_comment = false;
continue;
}
if ($keyword) {
$pos = $offset + $keyword[0][1];
$LSlang_cli_logger -> trace(
"$file:$line_count: detect keyword '".substr($keyword[0][0], 1).")' at position #$pos,".
" but inside comment => ignore it ('$line', offset=$offset)");
$offset += strlen($keyword[0][0]) + $keyword[0][1];
}
else {
$LSlang_cli_logger -> fatal(
"$file:$line_count: not supported case (inside comment & !keyword), stop");
return;
}
}
else if ($keyword) {
$pos = $offset + $keyword[0][1];
$LSlang_cli_logger -> trace(
"$file:$line_count: detect keyword '".substr($keyword[0][0], 1).")' at position #$pos ".
"('$line', offset=$offset)");
$offset += strlen($keyword[0][0]) + $keyword[0][1];
$closed = false;
$inside_keyword = true;
}
else {
$LSlang_cli_logger -> fatal(
"$file:$line_count: not supported case, stop");
return;
}
$ignore = false;
$concatenation_need = false;
for ($i=$offset; $i<strlen($line); $i++) {
$offset = $i; // Always increase offset to avoid infinity-loop
if ($inside_comment) {
if (substr($line, $i, 2) == '*/') {
$LSlang_cli_logger -> trace(
"$file:$line_count: End of comment detected at position #$i ('$line')");
$inside_comment = false;
}
$i++;
}
elseif (empty($quote)) {
$count = 0;
$quote='';
$res='';
foreach(file($file) as $line) {
$count++;
$LSlang_cli_logger -> trace("Handle line #$count of '$file' PHP file");
$offset=0;
while ($pos = strpos($line,'__(',$offset)) {
$LSlang_cli_logger -> trace("$file:$count: detect keyword at position #$pos ('$line')");
for ($i=$pos+3;$i<strlen($line);$i++) {
$offset=$i; // Always increase offset to avoid infinity-loop
if (empty($quote)) {
// Quote char not detected : try to detect it
if ($line[$i]=='\\' || $line[$i]==" " || $line[$i]=="\t") {
// Space or escape char : pass
$i++;
}
elseif (in_array($line[$i], array('"', "'")) && !$concatenation_need) {
elseif ($line[$i]=='"' || $line[$i]=="'") {
// Quote detected
$LSlang_cli_logger -> trace(
"$file:$line_count: Quote (".$line[$i].") detected at position #$i ('$line')");
$quote=$line[$i];
}
elseif ($line[$i]=='$') {
elseif ($line[$i]=='$' || $line[$i]==')') {
// Variable translation not possible or end function call detected
$LSlang_cli_logger -> trace(
"$file:$line_count: Variable translation detected at position #$i, ignore it ".
"('$line')");
$ignore = true;
break;
}
elseif ($line[$i]==')' && $inside_keyword) {
// End function call detected
$LSlang_cli_logger -> trace(
"$file:$line_count: End function call detected at position #$i ('$line')");
$inside_keyword = false;
break;
}
elseif ($line[$i] == '.' && $concatenation_need) {
// Concatenation char detected
$LSlang_cli_logger -> trace(
"$file:$line_count: Concatenation char detected at position #$i ('$line')");
$concatenation_need = false;
}
elseif (preg_match('/[A-Za-z]/', $line[$i])) {
// Constant or function call detected
$LSlang_cli_logger -> trace(
"$file:$line_count: Constant or function call detected at position #$i, ignore it ('$line')");
$ignore = true;
break;
}
else {
// Unknown case : continue
$LSlang_cli_logger -> trace(
"$file:$line_count: Unknown case before quote at position #$i ('".$line[$i]."'), ".
"ignore it and continue ('$line')");
$i++;
}
}
elseif ($quote) {
// Quote char already detected : try to detect end quote char
if ($line[$i] == '\\') {
// Escape char detected : keep it and the following one
$LSlang_cli_logger -> trace(
"$file:$line_count: Escape char detected inside quote at position #$i, keep it and ".
"the following one ('$line')");
$res .= $line[$i];
if ($line[$i]=='\\') {
// Escape char detected : pass this char and the following one
$res.=$line[$i];
$i++;
$res .= $line[$i];
$res.=$line[$i];
}
elseif ($line[$i] == $quote) {
// End quote char detected : reset quote and set concatenation as need
$LSlang_cli_logger -> trace(
"$file:$line_count: End quote char detected at position #$i, reset quote and set ".
"concatenation as need ('$line')");
$quote = '';
$concatenation_need = true;
elseif ($line[$i]==$quote) {
// End quote char detected : reset quote char detection and break detection
$quote='';
break;
}
else {
// End quote char not detected : append current char to result
$res .= $line[$i];
$res.=$line[$i];
}
}
}
// Include detected string if not empty and quote char was detected and reseted
if ($inside_comment) {
$LSlang_cli_logger -> trace(
"$file:$line_count: line break detected inside comment ('$line')");
}
elseif (!empty($res) && empty($quote) && !$inside_keyword) {
_cli_add_str_to_translate($res, _cli_absolute2relative_path($file).":$line_count");
$res = '';
}
else if (!$ignore) {
$LSlang_cli_logger -> trace(
"$file:$line_count: line break detected inside keyword, continue on next line ('$line')");
$line_break_continue = true;
if ($quote)
$res .= "\n";
break;
if (!empty($res) && empty($quote)) {
_cli_add_str_to_translate($res, _cli_absolute2relative_path($file).":$count");
$res='';
}
}
}
@ -735,24 +608,12 @@ function _cli_parse_php_file($file) {
* @param string $dir The directory path
* @return void
*/
function _cli_find_and_parse_php_file($dir, $filename_regex=null, $recursive=false, $ignore_dirs=null) {
global $LSlang_cli_logger;
$filename_regex = $filename_regex?$filename_regex:'/^(.+)\.php$/';
function _cli_find_and_parse_php_file($dir, $filename_regex) {
if (is_dir($dir)) {
$LSlang_cli_logger -> debug("Looking for string to translate in PHP files of directory '$dir'");
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file == '.' || $file == '..') continue;
if (is_link("$dir/$file")) continue;
if (
is_dir("$dir/$file")
&& $recursive
&& (!is_array($ignore_dirs) || !in_array("$dir/$file", $ignore_dirs))
) {
_cli_find_and_parse_php_file("$dir/$file", $filename_regex, true, $ignore_dirs);
}
elseif (is_file($dir."/".$file) && preg_match($filename_regex, $file)) {
_cli_parse_php_file("$dir/$file");
if (preg_match($filename_regex, $file)) {
_cli_parse_php_file($dir.'/'.$file);
}
}
closedir($dh);
@ -822,8 +683,8 @@ function _cli_output_php($fd) {
* @return string The cleaned string
*/
function _cli_clean_for_pot_file($val) {
$val = preg_replace('/([^\\\\])"/', '$1\"', $val);
return str_replace("\n", '\n', $val);
$val = str_replace('"', '\\"', $val);
return str_replace("\n", "\\n", $val);
}
/**
@ -847,7 +708,7 @@ function _cli_output_pot($fd) {
}
}
$available_onlys = array("config", "templates", "addons", "auth_methods", "includes", "php");
$available_onlys = array("config", "templates", "addons", "auth_methods", "includes");
$available_withouts = array_merge($available_onlys, array("select-list"));
@ -916,7 +777,7 @@ function cli_generate_lang_file($command_args) {
LScli :: usage(_("You could specify only one -O/--only parameter."));
$only = strtolower($command_args[$i]);
if (!in_array($only, $available_onlys))
LScli :: usage(_("Invalid -O/--only parameter. Must be one of the following values: '%s'."), implode("', '", $available_onlys));
LScli :: usage(_("Invalid -O/--only parameter. Must be one of the following values: %s.'"), implode("','", $available_onlys));
elseif ($withouts)
LScli :: usage(_("You could not use -W/--without parameter combined with -O/--only parameter."));
break;
@ -1156,8 +1017,8 @@ function cli_generate_lang_file($command_args) {
// Manage includes files
if (!in_array('includes', $withouts) && (!$only || $only == 'includes')) {
// Note: Upstream code most only use gettext translation, do not handle it here
if ($include_upstream) _cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_INCLUDE_DIR);
_cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_LOCAL_DIR.LS_INCLUDE_DIR);
if ($include_upstream) _cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_INCLUDE_DIR, '/^(.+)\.php$/');
_cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_LOCAL_DIR.LS_INCLUDE_DIR, '/^(.+)\.php$/');
if ($include_upstream) _cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_CLASS_DIR, '/^class\.(.+)\.php$/');
_cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_LOCAL_DIR.LS_CLASS_DIR, '/^class\.(.+)\.php$/');
}
@ -1179,12 +1040,6 @@ function cli_generate_lang_file($command_args) {
_cli_find_and_parse_php_file(LS_ROOT_DIR.'/'.LS_LOCAL_DIR.LS_CONF_DIR.'/LSauth', '/^config\.(.+)\.php$$/');
}
// Manage all PHP files
if ($only == 'php') {
$LSlang_cli_logger -> info("Looking for string to translate in PHP files");
_cli_find_and_parse_php_file(LS_ROOT_DIR, null, true, array(LS_ROOT_DIR.'/'.LS_LOCAL_DIR));
}
// Sort resulting strings
ksort($data);
@ -1330,22 +1185,6 @@ ___(
**/
function cli_generate_ldapsaisie_pot($command_args) {
global $LSlang_cli_logger;
// Parameters
$use_internal_parser = false;
for ($i=0; $i < count($command_args); $i++) {
switch ($command_args[$i]) {
case '--internal':
case '-I':
$use_internal_parser = true;
break;
default:
LScli :: usage(_("%s: Invalid parameter."), $command_args[$i]);
}
}
// Initialize logger (if not already initialized by another CLI command)
if (!isset($LSlang_cli_logger))
$LSlang_cli_logger = LSlog :: get_logger('generate_ldapsaisie_pot');
@ -1373,41 +1212,25 @@ function cli_generate_ldapsaisie_pot($command_args) {
return false;
}
// Extract messages from LdapSaisie PHP files
if ($use_internal_parser) {
// Using internal parser
$result = LScli :: run_command(
'generate_lang_file',
array (
"-o", LS_I18N_DIR_PATH."/ldapsaisie-main.pot",
"-f", "pot",
"--only", "php",
),
false // do not exit
);
if (!$result)
$LSlang_cli_logger -> fatal("Fail to extract messages from PHP files using generate_lang_file command.");
}
else {
// Using xgettext
$result = LScli :: run_external_command(
array(
"xgettext",
"--from-code utf-8",
"--language=PHP",
"-o", LS_I18N_DIR_PATH."/ldapsaisie-main.pot", // Output
"--omit-header", // No POT header
"--keyword=__", // Handle custom __() translation function
"--keyword=___", // Handle custom ___() translation function
"--files=-" // Read files to parse from STDIN
),
$php_files[1], // Pass PHP files list via STDIN
true, // Escape parameters
LS_ROOT_DIR // Run in LdapSaisie root directory
);
if (!is_array($result) || $result[0] != 0)
$LSlang_cli_logger -> fatal("Fail to extract messages from PHP files using xgettext.");
}
// Extract messages from LdapSaisie PHP files using xgettext
$result = LScli :: run_external_command(
array(
"xgettext",
"--from-code utf-8",
"--language=PHP",
"-o", LS_I18N_DIR_PATH."/ldapsaisie-main.pot", // Output
"--omit-header", // No POT header
"--keyword=__", // Handle custom __() translation function
"--keyword=___", // Handle custom ___() translation function
"--files=-" // Read files to parse from STDIN
),
$php_files[1], // Pass PHP files list via STDIN
true, // Escape parameters
LS_ROOT_DIR // Run in LdapSaisie root directory
);
if (!is_array($result) || $result[0] != 0)
$LSlang_cli_logger -> fatal("Fail to extract messages from PHP files using xgettext.");
// Extract other messages from LdapSaisie templates files
$result = LScli :: run_command(
@ -1448,10 +1271,6 @@ LScli :: add_command(
___(" => contains messages from templates files"),
" - ".LS_I18N_DIR_PATH."/ldapsaisie.pot",
___(" => contains all messages"),
null,
___(
"Note: Use -I / --internal parameter to use internal parser instead of
xgettext for PHP files."),
),
false // This command does not need LDAP connection
);

View file

@ -705,9 +705,7 @@ function LStemplate_smarty_getFData($params) {
}
function LStemplate_smarty_tr($params) {
$msg = __($params['msg']);
unset($params['msg']);
echo $params?getFData($msg, $params):$msg;
echo __($params['msg']);
}
function LStemplate_smarty_img($params) {

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: LdapSaisie\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2023-05-26 11:30+0200\n"
"PO-Revision-Date: 2023-05-17 11:36+0200\n"
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
"Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise."
"org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-Basepath: /var/www/ldapsaisie/trunk\n"
"X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@ -385,8 +385,8 @@ msgstr "Comparer"
#: includes/class/class.LSrelation.php:679 includes/class/class.LSform.php:346
#: includes/class/class.LSformElement_select_object.php:75
#: includes/class/class.LSformElement_select_object.php:91
#: includes/class/class.LSsearchEntry.php:237 includes/routes.php:1068
#: includes/routes.php:1212
#: includes/class/class.LSsearchEntry.php:237 includes/routes.php:1064
#: includes/routes.php:1208
msgid "Delete"
msgstr "Supprimer"
@ -399,8 +399,8 @@ msgstr "Étendue"
#: includes/class/class.LSrelation.php:736
#: includes/class/class.LSformElement_select_object.php:74
#: includes/class/class.LSformElement_supannLabeledValue.php:90
#: includes/class/class.LSsearchEntry.php:221 includes/routes.php:1052
#: includes/routes.php:1220 includes/routes.php:1305 includes/routes.php:1451
#: includes/class/class.LSsearchEntry.php:221 includes/routes.php:1048
#: includes/routes.php:1216 includes/routes.php:1301 includes/routes.php:1447
msgid "Modify"
msgstr "Modifier"
@ -408,7 +408,7 @@ msgstr "Modifier"
msgid "Modify RDN"
msgstr "Modifier le RDN"
#: includes/addons/LSaddons.accesslog.php:35 includes/routes.php:517
#: includes/addons/LSaddons.accesslog.php:35 includes/routes.php:513
#: templates/default/select.tpl:28 templates/default/global_search.tpl:6
msgid "Search"
msgstr "Rechercher"
@ -436,7 +436,7 @@ msgstr "Voir les modifications d'LdapSaisie"
#: includes/addons/LSaddons.accesslog.php:244
#: includes/class/class.LSsession.php:1870 includes/routes.php:157
#: includes/routes.php:474 templates/default/select.tpl:29
#: includes/routes.php:470 templates/default/select.tpl:29
msgid "Refresh"
msgstr "Rafraîchir"
@ -752,90 +752,89 @@ msgstr "Valeur invalide"
msgid "LSformRule_%{type}: Parameter %{param} is not found."
msgstr "LSformRule_%{type} : Le paramètre %{param} n'est pas défini."
#: includes/class/class.LSio.php:334
#: includes/class/class.LSio.php:261
msgid "Failed to set post data on creation form."
msgstr "Impossible de définir les données dans le formulaire de création."
#: includes/class/class.LSio.php:340
#: includes/class/class.LSio.php:267
msgid "Error validating creation form."
msgstr "Une erreur est survenue en validant le formulaire de création."
#: includes/class/class.LSio.php:345
#: includes/class/class.LSio.php:272
msgid "Failed to validate object data."
msgstr "Impossible de valider les données de l'objet."
#: includes/class/class.LSio.php:352
#: includes/class/class.LSio.php:279
msgid "Failed to generate DN for this object."
msgstr "Impossible de générer le DN de cet objet."
#: includes/class/class.LSio.php:371
#: includes/class/class.LSio.php:293
msgid "Error creating object on LDAP server."
msgstr ""
"Une erreur est survenue durant la création de cet objet dans l'annuaire LDAP."
msgstr "Une erreur est survenue en création cet objet dans l'annuaire LDAP."
#: includes/class/class.LSio.php:377
#: includes/class/class.LSio.php:299
msgid "An object already exist on LDAP server with DN %{dn}."
msgstr "Un objet existe déjà dans l'annuaire LDAP avec le DN %{dn}."
#: includes/class/class.LSio.php:389
#: includes/class/class.LSio.php:311
msgid ""
"Failed to load existing object %{dn} from LDAP server. Can't update object."
msgstr ""
"Impossible de charger l'objet existant %{dn} depuis l'annuaire LDAP. "
"Impossible de mettre à jour cet objet."
#: includes/class/class.LSio.php:398
#: includes/class/class.LSio.php:320
msgid "Failed to set post data on update form."
msgstr "Impossible de définir les données dans le formulaire de mise à jour."
#: includes/class/class.LSio.php:404
#: includes/class/class.LSio.php:326
msgid "Error validating update form."
msgstr "Une erreur est survenue en validant le formulaire de mise à jour."
#: includes/class/class.LSio.php:419
#: includes/class/class.LSio.php:336
msgid "Error updating object on LDAP server."
msgstr ""
"Une erreur est survenue en mettant à jour cet objet dans l'annuaire LDAP."
#: includes/class/class.LSio.php:825
#: includes/class/class.LSio.php:724
msgid "LSio: Post data not found or not completed."
msgstr "LSio : les données transmises sont introuvables ou incomplètes."
#: includes/class/class.LSio.php:828
#: includes/class/class.LSio.php:727
msgid "LSio: object type invalid."
msgstr "LSio : type d'objet invalide."
#: includes/class/class.LSio.php:831
#: includes/class/class.LSio.php:730
msgid "LSio: input/output format %{format} invalid."
msgstr "LSio : Le format d'entrée/sortie %{format} est invalide."
#: includes/class/class.LSio.php:834
#: includes/class/class.LSio.php:733
msgid "LSio: Fail to initialize input/output driver."
msgstr "LSio : Impossible d'initialiser le pilote d'entrée/sortie."
#: includes/class/class.LSio.php:837
#: includes/class/class.LSio.php:736
msgid "LSio: Fail to load objects's data from input file."
msgstr ""
"LSio: Impossible de charger les données des objets depuis le fichier "
"d'import."
#: includes/class/class.LSio.php:840
#: includes/class/class.LSio.php:739
msgid "LSio: Fail to load objects's data to export from LDAP directory."
msgstr ""
"LSio: Impossible de charger les données des objets à exporter depuis "
"l'annuaire LDAP."
#: includes/class/class.LSio.php:843
#: includes/class/class.LSio.php:742
msgid "LSio: Fail to export objects's data."
msgstr "LSio: Impossible d'exporter les données des objets."
#: includes/class/class.LSio.php:846
#: includes/class/class.LSio.php:745
msgid "LSio: An error occured running before import hooks. Stop the import."
msgstr ""
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'avant "
"import. Arrêt de l'import."
#: includes/class/class.LSio.php:849
#: includes/class/class.LSio.php:748
msgid "LSio: An error occured running after import hooks."
msgstr ""
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'après "
@ -866,7 +865,7 @@ msgstr "Confirmez-vous votre choix ?"
#: includes/class/class.LSconfirmBox.php:37
#: includes/class/class.LSsmoothbox.php:39 includes/class/class.LSform.php:175
#: includes/routes.php:638 includes/routes.php:1292 includes/routes.php:1438
#: includes/routes.php:634 includes/routes.php:1288 includes/routes.php:1434
#: templates/default/recoverpassword.tpl:21
msgid "Validate"
msgstr "Valider"
@ -1039,7 +1038,7 @@ msgid "Unparsable value for component %{c}."
msgstr "Valeur du composant %{c} non-analysable."
#: includes/class/class.LSformElement_supannCompositeAttribute.php:479
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:413
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:408
msgid "%{label}: %{error}"
msgstr "%{label} : %{error}"
@ -1128,53 +1127,53 @@ msgstr "Ou laisser vide pour copier le message original?\n"
msgid "Or leave empty to pass.\n"
msgstr "Or leave empty to pass.\n"
#: includes/class/class.LSlang.php:906
#: includes/class/class.LSlang.php:758
#, php-format
msgid ""
"Invalid -W/--without parameter. Must be one of the following values: %s.'"
msgstr ""
"Paramètre -W/--without invalide. Doit-être une des valeurs suivantes : %s."
#: includes/class/class.LSlang.php:908 includes/class/class.LSlang.php:921
#: includes/class/class.LSlang.php:760 includes/class/class.LSlang.php:773
msgid ""
"You could not use -W/--without parameter combined with -O/--only parameter."
msgstr ""
"Vous ne pouvez pas utiliser les paramètres -W/--without et -O/--only "
"ensemble."
#: includes/class/class.LSlang.php:916
#: includes/class/class.LSlang.php:768
msgid "You could specify only one -O/--only parameter."
msgstr "Vous ne pouvez spécifier qu'un seul paramètre -O/--only."
#: includes/class/class.LSlang.php:919
#: includes/class/class.LSlang.php:771
#, php-format
msgid "Invalid -O/--only parameter. Must be one of the following values: '%s'."
msgid "Invalid -O/--only parameter. Must be one of the following values: %s.'"
msgstr ""
"Paramètre -O/--only invalide. Doit-être une des valeurs suivantes : '%s'."
"Paramètre -O/--only invalide. Doit-être une des valeurs suivantes : %s."
#: includes/class/class.LSlang.php:953
#: includes/class/class.LSlang.php:805
msgid ""
"Invalid -l/--lang parameter. Must be compose in format : [lang].[encoding]"
msgstr ""
"Paramètre -l/--lang invalide. Doit-être composé au format : [lang].[encoding]"
#: includes/class/class.LSlang.php:968
#: includes/class/class.LSlang.php:820
#, php-format
msgid ""
"Invalid -f/--format parameter. Must be one of the following values: %s.'"
msgstr ""
"Paramètre -f/--format invalide. Doit-être une des valeurs suivantes : %s."
#: includes/class/class.LSlang.php:992
#: includes/class/class.LSlang.php:844
#, php-format
msgid "%s: Invalid parameter or lang file to load."
msgstr "%s : Paramètre ou fichier de traductions à charger invalide."
#: includes/class/class.LSlang.php:1293
#: includes/class/class.LSlang.php:1136
msgid "Generate lang.php file"
msgstr "Générer le fichier lang.php"
#: includes/class/class.LSlang.php:1297
#: includes/class/class.LSlang.php:1140
msgid ""
" -W/--without Disable specified messages. Must be one of\n"
" the following values:"
@ -1182,7 +1181,7 @@ msgstr ""
" -W/--without Désactiver les messages spécifiés. Doit\n"
" être une des valeurs suivants :"
#: includes/class/class.LSlang.php:1301
#: includes/class/class.LSlang.php:1144
msgid ""
" -O/--only Only handle specified messages. Must be one\n"
" of the following values :"
@ -1190,7 +1189,7 @@ msgstr ""
" -O/--only Gérer uniquement les messages spécifiés.\n"
" Doit-être une des valeurs suivantes :"
#: includes/class/class.LSlang.php:1305
#: includes/class/class.LSlang.php:1148
msgid ""
" -I/--include-upstream Include upstream code to message lookup\n"
" -c/--copy-original-value Copy original value as translated value when\n"
@ -1225,39 +1224,26 @@ msgstr ""
" caractères UTF-8 invalides dans les fichiers\n"
" de traductions existants."
#: includes/class/class.LSlang.php:1345
#, php-format
msgid "%s: Invalid parameter."
msgstr "%s : Paramètre invalide."
#: includes/class/class.LSlang.php:1441
#: includes/class/class.LSlang.php:1252
msgid "Generate POT files:"
msgstr "Générer les fichiers POT:"
#: includes/class/class.LSlang.php:1444
#: includes/class/class.LSlang.php:1255
msgid "This command generate 3 POT files:"
msgstr "Cette commande génère 3 fichiers POT :"
#: includes/class/class.LSlang.php:1446
#: includes/class/class.LSlang.php:1257
msgid " => contains messages from PHP files"
msgstr " => contient les messages issues des fichiers PHP"
#: includes/class/class.LSlang.php:1448
#: includes/class/class.LSlang.php:1259
msgid " => contains messages from templates files"
msgstr " => contient les messages issues des fichiers de templates"
#: includes/class/class.LSlang.php:1450
#: includes/class/class.LSlang.php:1261
msgid " => contains all messages"
msgstr " => contient tous -W/--withoutles messages"
#: includes/class/class.LSlang.php:1453
msgid ""
"Note: Use -I / --internal parameter to use internal parser instead of\n"
"xgettext for PHP files."
msgstr ""
"Note : Utiliser le paramètre -I / --internal pour utiliser l'extracteur de\n"
"messages interne au lieu de xgettext pour les fichier PHP."
#: includes/class/class.LStemplate.php:160
msgid "LStemplate : compile directory is not writable (dir : %{dir})"
msgstr ""
@ -1322,11 +1308,11 @@ msgstr ""
msgid "A fatal error occured."
msgstr "Une erreur fatale est survenue."
#: includes/class/class.LStemplate.php:733
#: includes/class/class.LStemplate.php:731
msgid "LStemplate : Template %{file} not found."
msgstr "LStemplate : le template %{file} est introuvable."
#: includes/class/class.LStemplate.php:736
#: includes/class/class.LStemplate.php:734
msgid ""
"LStemplate : Fail to execute trigger %{callable} on event %{event} : is not "
"callable."
@ -1334,7 +1320,7 @@ msgstr ""
"LStemplate : Échec d'exécution du déclencheur %{callable} lors de événement "
"%{event} : il n'est pas un callable."
#: includes/class/class.LStemplate.php:739
#: includes/class/class.LStemplate.php:737
msgid ""
"LStemplate : Error during the execution of the trigger %{callable} on event "
"%{event}."
@ -2207,8 +2193,8 @@ msgstr "Attention"
msgid "No object."
msgstr "Aucun objet."
#: includes/class/class.LSrelation.php:747 includes/routes.php:456
#: includes/routes.php:997
#: includes/class/class.LSrelation.php:747 includes/routes.php:452
#: includes/routes.php:993
msgid "New"
msgstr "Nouveau"
@ -2445,13 +2431,13 @@ msgstr ""
"Une erreur est survenue en soumettant ce formulaire. Merci de ré-essayer ou "
"de contacter le support."
#: includes/class/class.LSform.php:327 includes/routes.php:634
#: includes/class/class.LSform.php:327 includes/routes.php:630
msgid "Do you really want to execute custom action %{title} on this search ?"
msgstr ""
"Êtes-vous vraiment sûre de vouloir exécuter l'action personnalisée %{title} "
"sur cette recherche ?"
#: includes/class/class.LSform.php:333 includes/routes.php:1432
#: includes/class/class.LSform.php:333 includes/routes.php:1428
msgid ""
"Do you really want to execute custom action %{customAction} on "
"%{objectname} ?"
@ -2659,8 +2645,8 @@ msgstr "Réinitialiser le choix."
msgid "Display RSS stack."
msgstr "Afficher la file RSS."
#: includes/class/class.LSattr_ldap_password.php:108 includes/routes.php:587
#: includes/routes.php:1379
#: includes/class/class.LSattr_ldap_password.php:108 includes/routes.php:583
#: includes/routes.php:1375
msgid "undefined"
msgstr "non-définie"
@ -2762,39 +2748,39 @@ msgstr "Étape"
msgid "Pedagogical element"
msgstr "Élement pédagogique"
#: includes/class/class.LSsearch.php:1318
#: includes/class/class.LSsearch.php:1253
msgid "Actions"
msgstr "Actions"
#: includes/class/class.LSsearch.php:1321
#: includes/class/class.LSsearch.php:1256
#: templates/default/global_search.tpl:16
msgid "This search didn't get any result."
msgstr "Cette recherche n'a retournée aucun résultat."
#: includes/class/class.LSsearch.php:1963
#: includes/class/class.LSsearch.php:1898
msgid "LSsearch : Invalid filter : %{filter}."
msgstr "LSsearch : Filtre invalide : %{filter}."
#: includes/class/class.LSsearch.php:1966
#: includes/class/class.LSsearch.php:1901
msgid "LSsearch : Invalid basedn : %{basedn}."
msgstr "LSsearch : Base DN invalide."
#: includes/class/class.LSsearch.php:1969
#: includes/class/class.LSsearch.php:1904
msgid "LSsearch : Invalid value for %{param} parameter."
msgstr "LSsearch : La valeur du paramètre %{param} est incorrecte."
#: includes/class/class.LSsearch.php:1972
#: includes/class/class.LSsearch.php:1907
msgid ""
"LSsearch : Invalid size limit. Must be an integer greater or equal to 0."
msgstr ""
"LSsearch : Limite de taille de recherche invalide. Elle doit être un entier "
"supérieur ou égal à 0."
#: includes/class/class.LSsearch.php:1975
#: includes/class/class.LSsearch.php:1910
msgid "LSsearch : Invalid parameter %{attr}. Must be an boolean."
msgstr "LSsearch : Paramètre %{param} invalide. Il doit être un booléen."
#: includes/class/class.LSsearch.php:1978
#: includes/class/class.LSsearch.php:1913
msgid ""
"LSsearch : Invalid parameter attributes. Must be an string or an array of "
"strings."
@ -2802,13 +2788,13 @@ msgstr ""
"LSsearch : Paramètre 'attributes' invalide. Il doit être une chaîne de "
"caractères ou un tableau de chaînes de caractères."
#: includes/class/class.LSsearch.php:1981
#: includes/class/class.LSsearch.php:1916
msgid "LSsearch : Can't build attributes list for make filter."
msgstr ""
"LSsearch : Impossible de construire la liste des attributs pour faire le "
"filtre."
#: includes/class/class.LSsearch.php:1984
#: includes/class/class.LSsearch.php:1919
msgid ""
"LSsearch : Error building filter with attribute '%{attr}' and pattern "
"'%{pattern}'"
@ -2816,34 +2802,34 @@ msgstr ""
"LSsearch : Problème en construisant le filtre avec l'attribut '%{attr}' et "
"le mot clé '%{pattern}'"
#: includes/class/class.LSsearch.php:1987
#: includes/class/class.LSsearch.php:1922
msgid "LSsearch : Error combining filters."
msgstr "LSsearch : Problème en combinant les filtres."
#: includes/class/class.LSsearch.php:1990
#: includes/class/class.LSsearch.php:1925
msgid "LSsearch : Invalid pattern."
msgstr "LSsearch : Mot clé invalide."
#: includes/class/class.LSsearch.php:1993
#: includes/class/class.LSsearch.php:1928
msgid "LSsearch : Invalid attribute %{attr} in parameters."
msgstr "LSsearch : Attribut %{attr} incorrect dans les paramètres."
#: includes/class/class.LSsearch.php:1996
#: includes/class/class.LSsearch.php:1931
msgid "LSsearch : Error during the search."
msgstr "LSsearch : Erreur pendant la recherche."
#: includes/class/class.LSsearch.php:1999
#: includes/class/class.LSsearch.php:1934
msgid "LSsearch : Error sorting the search."
msgstr "LSsearch : Erreur pendant le trie de la recherche."
#: includes/class/class.LSsearch.php:2002
#: includes/class/class.LSsearch.php:1937
msgid ""
"LSsearch : The function of the custum information %{name} is not callable."
msgstr ""
"LSsearch : La fonction de l'information personnalisée %{name} n'est pas "
"exécutable."
#: includes/class/class.LSsearch.php:2005
#: includes/class/class.LSsearch.php:1940
msgid ""
"LSsearch : Invalid predefinedFilter for LSobject type %{type} : %{label} "
"(filter : %{filter})."
@ -2851,13 +2837,13 @@ msgstr ""
"LSsearch : PredefinedFilter invalide pour le type d'LSobject %{type} : "
"%{label} (filtre : %{filter})."
#: includes/class/class.LSsearch.php:2008
#: includes/class/class.LSsearch.php:1943
msgid "LSsearch : Error during execution of the custom action %{customAction}."
msgstr ""
"LSldapObject : Erreur durant l'exécution de l'action personnalisée "
"%{customAction}."
#: includes/class/class.LSsearch.php:2011
#: includes/class/class.LSsearch.php:1946
msgid "LSsearch : Invalid search pattern."
msgstr "LSsearch : Mot clé de recherche invalide."
@ -2992,7 +2978,7 @@ msgstr "Impossible de décoder la valeur JSON #%{idx}."
msgid "JSON value #%{idx} is invalid (or empty)."
msgstr "La valeur JSON #%{idx} est invalide (ou vide)."
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:438
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:433
msgid "Invalid value \"%{value}\" for component %{component}."
msgstr "Valeur invalide pour le composant %{component} : \"%{value}\"."
@ -3160,20 +3146,20 @@ msgstr "LSioFormatCSV : la fonction fputcsv n'est pas disponible."
msgid "LSlog : Fail to load logging handler %{handler}."
msgstr "LSlog : Impossible de charger l'handler %{handler}."
#: includes/class/class.LSerror.php:141
#: includes/class/class.LSerror.php:138
msgid "Unknown error"
msgstr "Erreur inconnue"
#: includes/class/class.LSerror.php:201
#: includes/class/class.LSerror.php:198
msgid "Unknown error : %{error}"
msgstr "Erreur inconnue : %{error}"
#: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1204
#: includes/routes.php:1297 includes/routes.php:1443
#: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1200
#: includes/routes.php:1293 includes/routes.php:1439
msgid "View"
msgstr "Voir"
#: includes/class/class.LSsearchEntry.php:229 includes/routes.php:1060
#: includes/class/class.LSsearchEntry.php:229 includes/routes.php:1056
msgid "Copy"
msgstr "Copier"
@ -3203,66 +3189,66 @@ msgstr "Accueil"
msgid "You must provide pattern for global search."
msgstr "Vous devez fournir un mot clé pour les recherches globales."
#: includes/routes.php:462 includes/routes.php:818
#: includes/routes.php:458 includes/routes.php:814
msgid "Import"
msgstr "Importer"
#: includes/routes.php:467 includes/routes.php:884
#: includes/routes.php:463 includes/routes.php:880
msgid "Export"
msgstr "Exporter"
#: includes/routes.php:479
#: includes/routes.php:475
msgid "Reset"
msgstr "Réinitialiser"
#: includes/routes.php:518 templates/default/select.tpl:31
#: includes/routes.php:514 templates/default/select.tpl:31
msgid "Approximative search"
msgstr "Recherche approximative"
#: includes/routes.php:519 templates/default/select.tpl:32
#: includes/routes.php:515 templates/default/select.tpl:32
msgid "Recursive search"
msgstr "Recherche récursive"
#: includes/routes.php:608
#: includes/routes.php:604
msgid ""
"The custom action %{title} have been successfully execute on this search."
msgstr ""
"L'action personnalisée %{title} a été correctement exécutée sur cette "
"recherche."
#: includes/routes.php:956
#: includes/routes.php:952
msgid "Data entry form"
msgstr "Masque de saisie"
#: includes/routes.php:962 includes/routes.php:1736
#: includes/routes.php:958 includes/routes.php:1732
msgid "Object has been added."
msgstr "L'objet a été ajouté."
#: includes/routes.php:1099
#: includes/routes.php:1095
msgid "My account"
msgstr "Mon compte"
#: includes/routes.php:1162 includes/routes.php:1908
#: includes/routes.php:1158 includes/routes.php:1904
msgid "The object has been partially modified."
msgstr "L'objet a été partiellement modifié."
#: includes/routes.php:1165 includes/routes.php:1911
#: includes/routes.php:1161 includes/routes.php:1907
msgid "The object has been modified successfully."
msgstr "L'objet a bien été modifié."
#: includes/routes.php:1280 includes/routes.php:1951
#: includes/routes.php:1276 includes/routes.php:1947
msgid "%{objectname} has been successfully deleted."
msgstr "%{objectname} a bien été supprimé."
#: includes/routes.php:1289
#: includes/routes.php:1285
msgid "Deleting : %{objectname}"
msgstr "Suppression : %{objectname}"
#: includes/routes.php:1290
#: includes/routes.php:1286
msgid "Do you really want to delete <strong>%{displayName}</strong> ?"
msgstr "Voulez-vous vraiment supprimer <strong>%{displayName}</strong> ?"
#: includes/routes.php:1400
#: includes/routes.php:1396
msgid ""
"The custom action %{customAction} have been successfully execute on "
"%{objectname}."
@ -3270,39 +3256,19 @@ msgstr ""
"L'action personnalisée %{customAction} a été correctement exécutée sur "
"%{objectname}."
#: includes/functions.php:123
#: includes/functions.php:115
msgid ""
"Function 'getFData' : The method %{meth} of the object %{obj} doesn't exist."
msgstr "Fonction getFData : La méthode %{meth} de l'objet %{obj} n'existe pas."
#: includes/functions.php:211
#: includes/functions.php:208
msgid "[not string value]"
msgstr "[pas une chaîne de caractères]"
#: includes/functions.php:259
#: includes/functions.php:254
msgid "Folder not found"
msgstr "Dossier introuvable"
#: includes/functions.php:863
msgid "TB"
msgstr "To"
#: includes/functions.php:864
msgid "GB"
msgstr "Go"
#: includes/functions.php:865
msgid "MB"
msgstr "Mo"
#: includes/functions.php:866
msgid "KB"
msgstr "Ko"
#: includes/functions.php:867
msgid "B"
msgstr "O"
#: conf/LSaddons/config.LSaddons.supann.php:97
msgid "Mrs."
msgstr "Mme."
@ -3516,8 +3482,7 @@ msgstr "Détails"
msgid "Email"
msgstr "E-mail"
#: templates/default/import.tpl:43 templates/default/import.tpl:98
#: templates/default/import.tpl:126 templates/default/import.tpl:151
#: templates/default/import.tpl:43
msgid "Errors"
msgstr "Erreurs"
@ -3539,15 +3504,11 @@ msgstr "Format"
msgid "Global search"
msgstr "Recherche globale"
#: templates/default/import.tpl:148
msgid "Hook: %(name)"
msgstr "Déclencheur : %(name)"
#: templates/default/recoverpassword.tpl:19 templates/default/login.tpl:18
msgid "Identifier"
msgstr "Identifiant"
#: templates/default/import.tpl:92
#: templates/default/import.tpl:85
msgid "Imported objects"
msgstr "Objets importés"
@ -3575,11 +3536,6 @@ msgstr "Déconnexion"
msgid "Message"
msgstr "Message"
#: templates/default/import.tpl:106 templates/default/import.tpl:134
#: templates/default/import.tpl:159
msgid "Messages"
msgstr "Messages"
#: templates/default/viewSearch.tpl:113
msgid "Nb / page :"
msgstr "Nb / page :"
@ -3592,18 +3548,14 @@ msgstr "Aucun log d'accès trouvé pour cet objet."
msgid "No field."
msgstr "Aucun champ."
#: templates/default/import.tpl:115
#: templates/default/import.tpl:90
msgid "No imported object"
msgstr "Aucun objet importé"
#: templates/default/import.tpl:65
#: templates/default/import.tpl:58
msgid "No value"
msgstr "Aucune valeur"
#: templates/default/import.tpl:45
msgid "Object %(idx)"
msgstr "Objet %(idx)"
#: templates/default/showTechInfo.tpl:11
msgid "Object classes"
msgstr "Classes d'objet"
@ -3633,7 +3585,9 @@ msgstr "Mot de passe"
msgid "Please confirm new password:"
msgstr "Merci de confirmer le nouveau mot de passe :"
#: templates/default/LSaccessRightsMatrixView.tpl:22
#: templates/default/LSaccessRightsMatrixView.tpl:27
#: templates/default/LSaccessRightsMatrixView.tpl:67
#: templates/default/LSaccessRightsMatrixView.tpl:72
#: templates/default/LSaccessRightsMatrixView.tpl:93
#: templates/default/LSaccessRightsMatrixView.tpl:95
@ -3642,7 +3596,9 @@ msgstr "Merci de confirmer le nouveau mot de passe :"
msgid "R"
msgstr "L"
#: templates/default/LSaccessRightsMatrixView.tpl:24
#: templates/default/LSaccessRightsMatrixView.tpl:28
#: templates/default/LSaccessRightsMatrixView.tpl:69
#: templates/default/LSaccessRightsMatrixView.tpl:73
#: templates/default/LSaccessRightsMatrixView.tpl:89
#: templates/default/LSaccessRightsMatrixView.tpl:91
@ -3711,7 +3667,7 @@ msgstr "Ce type d'objet n'a aucune relation de configurée."
msgid "Update objects if exists"
msgstr "Mise à jour des objets existants"
#: templates/default/import.tpl:120
#: templates/default/import.tpl:95
msgid "Updated objects"
msgstr "Objets mis à jour"
@ -3730,3 +3686,136 @@ msgstr "événement(s) trouvé(s) pour cet objet."
#: templates/default/import.tpl:27 templates/default/import.tpl:33
msgid "no"
msgstr "non"
#~ msgid "Generate ldapsaisie.pot files:"
#~ msgstr "Générer les fichiers POT :"
#~ msgid ""
#~ "SAMBA Support: The attribute %{dependency} is missing. Unable to forge "
#~ "the attribute %{attr}."
#~ msgstr ""
#~ "Support SAMBA : L'attribut %{dependency} est manquant. Impossible de "
#~ "générer l'attribut %{attr}."
#~ msgid "Stop"
#~ msgstr "Stop"
#~ msgid "Invalid LDAP URI format"
#~ msgstr "Format d'URI LDAP invalide"
#~ msgid "The value of field %{label} is invalid."
#~ msgstr "La valeur du champ %{label} est incorrecte."
#~ msgid "LSformRule: Unknown rule type %{type}."
#~ msgstr "LSformRule : Type de règle %{type} inconnu."
#~ msgid "Can't validate value of component %{c}."
#~ msgstr "Impossible de valider la valeur du composant %{c}."
#~ msgid "Affiliate"
#~ msgstr "Affilié"
#~ msgid "Alumnus"
#~ msgstr "Ancien apprenant"
#~ msgid "Employee"
#~ msgstr "Employé"
#~ msgid "Faculty"
#~ msgstr "Faculté"
#~ msgid "Member"
#~ msgstr "Membre"
#~ msgid "Student"
#~ msgstr "Étudiant"
#~ msgid "Retired"
#~ msgstr "Retraité"
#~ msgid "Teacher"
#~ msgstr "Enseignant"
#~ msgid "Staff"
#~ msgstr "Staff"
#~ msgid "Researcher"
#~ msgstr "Chercheur"
#~ msgid "Emeritus teacher"
#~ msgstr "Professeur émérite"
#~ msgid "Library - walk-in"
#~ msgstr "Bibliothèque - Accès libre"
#~ msgid "Library - registered"
#~ msgstr "Bibliothèque - Inscrit"
#~ msgid "LSexport: input/output format %{format} invalid."
#~ msgstr "LSimport : Le format d'entrée/sortie %{format} est invalide."
#~ msgid "LSexport: Fail to initialize input/output driver."
#~ msgstr "LSexport : Impossible d'initialiser le pilote d'entrée/sortie."
#~ msgid ""
#~ "LSsession : call function %{func} do not provided from LSaddon %{addon}."
#~ msgstr ""
#~ "LSsession : la fonction %{func} n'est pas fournie par le LSaddon %{addon}."
#~ msgid "LSsession : problem during initialisation."
#~ msgstr "LSsession : Problème durant l'initialisation."
#~ msgid ""
#~ "LSformElement_password : Contact mail invalid (%{mail}). Can't send "
#~ "password."
#~ msgstr ""
#~ "LSformElement_password : Mail de contact invalide (%{mail}). Impossible "
#~ "d'envoyer le mot de passe."
#~ msgid "Only one command could be executed !"
#~ msgstr "Une seule commande peut-être exécutée !"
#~ msgid "Title"
#~ msgstr "Titre"
#~ msgid "deleting"
#~ msgstr "suppression"
#~ msgid "renaming"
#~ msgstr "renommage"
#~ msgid "updating"
#~ msgstr "mise à jour"
#~ msgid "Deleting"
#~ msgstr "Suppression"
#~ msgid "has been deleted successfully"
#~ msgstr "a bien été supprimé"
#~ msgid "Missing parameter"
#~ msgstr "Paramètre manquant"
#~ msgid "PHP error : %{error}"
#~ msgstr "Erreur PHP : %{error}"
#~ msgid "SSH Support : Unable to connect to SSH Server (%{host}:%{port})."
#~ msgstr ""
#~ "Support SSH : Impossible de se connecter au serveur SSH (%{host}:%{port})."
#, fuzzy
#~ msgid "delete"
#~ msgstr "Supprimer"
#~ msgid ""
#~ "LSrelation : The update function of the relation %{relation} is unknow."
#~ msgstr ""
#~ "LSsession : La fonction de mise à jour de la relation %{relation} est "
#~ "inconnue."
#, fuzzy
#~ msgid "Administration"
#~ msgstr "Confirmation"
#~ msgid "Select in a calendar."
#~ msgstr "Choisir dans un calendrier."

View file

@ -309,8 +309,8 @@ msgstr ""
#: includes/class/class.LSrelation.php:679 includes/class/class.LSform.php:346
#: includes/class/class.LSformElement_select_object.php:75
#: includes/class/class.LSformElement_select_object.php:91
#: includes/class/class.LSsearchEntry.php:237 includes/routes.php:1068
#: includes/routes.php:1212
#: includes/class/class.LSsearchEntry.php:237 includes/routes.php:1064
#: includes/routes.php:1208
msgid "Delete"
msgstr ""
@ -323,8 +323,8 @@ msgstr ""
#: includes/class/class.LSrelation.php:736
#: includes/class/class.LSformElement_select_object.php:74
#: includes/class/class.LSformElement_supannLabeledValue.php:90
#: includes/class/class.LSsearchEntry.php:221 includes/routes.php:1052
#: includes/routes.php:1220 includes/routes.php:1305 includes/routes.php:1451
#: includes/class/class.LSsearchEntry.php:221 includes/routes.php:1048
#: includes/routes.php:1216 includes/routes.php:1301 includes/routes.php:1447
msgid "Modify"
msgstr ""
@ -332,7 +332,7 @@ msgstr ""
msgid "Modify RDN"
msgstr ""
#: includes/addons/LSaddons.accesslog.php:35 includes/routes.php:517
#: includes/addons/LSaddons.accesslog.php:35 includes/routes.php:513
#: templates/default/select.tpl:28 templates/default/global_search.tpl:6
msgid "Search"
msgstr ""
@ -360,7 +360,7 @@ msgstr ""
#: includes/addons/LSaddons.accesslog.php:244
#: includes/class/class.LSsession.php:1870 includes/routes.php:157
#: includes/routes.php:474 templates/default/select.tpl:29
#: includes/routes.php:470 templates/default/select.tpl:29
msgid "Refresh"
msgstr ""
@ -638,80 +638,80 @@ msgstr ""
msgid "LSformRule_%{type}: Parameter %{param} is not found."
msgstr ""
#: includes/class/class.LSio.php:334
#: includes/class/class.LSio.php:261
msgid "Failed to set post data on creation form."
msgstr ""
#: includes/class/class.LSio.php:340
#: includes/class/class.LSio.php:267
msgid "Error validating creation form."
msgstr ""
#: includes/class/class.LSio.php:345
#: includes/class/class.LSio.php:272
msgid "Failed to validate object data."
msgstr ""
#: includes/class/class.LSio.php:352
#: includes/class/class.LSio.php:279
msgid "Failed to generate DN for this object."
msgstr ""
#: includes/class/class.LSio.php:371
#: includes/class/class.LSio.php:293
msgid "Error creating object on LDAP server."
msgstr ""
#: includes/class/class.LSio.php:377
#: includes/class/class.LSio.php:299
msgid "An object already exist on LDAP server with DN %{dn}."
msgstr ""
#: includes/class/class.LSio.php:389
#: includes/class/class.LSio.php:311
msgid ""
"Failed to load existing object %{dn} from LDAP server. Can't update object."
msgstr ""
#: includes/class/class.LSio.php:398
#: includes/class/class.LSio.php:320
msgid "Failed to set post data on update form."
msgstr ""
#: includes/class/class.LSio.php:404
#: includes/class/class.LSio.php:326
msgid "Error validating update form."
msgstr ""
#: includes/class/class.LSio.php:419
#: includes/class/class.LSio.php:336
msgid "Error updating object on LDAP server."
msgstr ""
#: includes/class/class.LSio.php:825
#: includes/class/class.LSio.php:724
msgid "LSio: Post data not found or not completed."
msgstr ""
#: includes/class/class.LSio.php:828
#: includes/class/class.LSio.php:727
msgid "LSio: object type invalid."
msgstr ""
#: includes/class/class.LSio.php:831
#: includes/class/class.LSio.php:730
msgid "LSio: input/output format %{format} invalid."
msgstr ""
#: includes/class/class.LSio.php:834
#: includes/class/class.LSio.php:733
msgid "LSio: Fail to initialize input/output driver."
msgstr ""
#: includes/class/class.LSio.php:837
#: includes/class/class.LSio.php:736
msgid "LSio: Fail to load objects's data from input file."
msgstr ""
#: includes/class/class.LSio.php:840
#: includes/class/class.LSio.php:739
msgid "LSio: Fail to load objects's data to export from LDAP directory."
msgstr ""
#: includes/class/class.LSio.php:843
#: includes/class/class.LSio.php:742
msgid "LSio: Fail to export objects's data."
msgstr ""
#: includes/class/class.LSio.php:846
#: includes/class/class.LSio.php:745
msgid "LSio: An error occured running before import hooks. Stop the import."
msgstr ""
#: includes/class/class.LSio.php:849
#: includes/class/class.LSio.php:748
msgid "LSio: An error occured running after import hooks."
msgstr ""
@ -740,7 +740,7 @@ msgstr ""
#: includes/class/class.LSconfirmBox.php:37
#: includes/class/class.LSsmoothbox.php:39 includes/class/class.LSform.php:175
#: includes/routes.php:638 includes/routes.php:1292 includes/routes.php:1438
#: includes/routes.php:634 includes/routes.php:1288 includes/routes.php:1434
#: templates/default/recoverpassword.tpl:21
msgid "Validate"
msgstr ""
@ -900,7 +900,7 @@ msgid "Unparsable value for component %{c}."
msgstr ""
#: includes/class/class.LSformElement_supannCompositeAttribute.php:479
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:413
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:408
msgid "%{label}: %{error}"
msgstr ""
@ -987,59 +987,59 @@ msgstr ""
msgid "Or leave empty to pass.\n"
msgstr ""
#: includes/class/class.LSlang.php:906
#: includes/class/class.LSlang.php:758
#, php-format
msgid ""
"Invalid -W/--without parameter. Must be one of the following values: %s.'"
msgstr ""
#: includes/class/class.LSlang.php:908 includes/class/class.LSlang.php:921
#: includes/class/class.LSlang.php:760 includes/class/class.LSlang.php:773
msgid ""
"You could not use -W/--without parameter combined with -O/--only parameter."
msgstr ""
#: includes/class/class.LSlang.php:916
#: includes/class/class.LSlang.php:768
msgid "You could specify only one -O/--only parameter."
msgstr ""
#: includes/class/class.LSlang.php:919
#: includes/class/class.LSlang.php:771
#, php-format
msgid "Invalid -O/--only parameter. Must be one of the following values: '%s'."
msgid "Invalid -O/--only parameter. Must be one of the following values: %s.'"
msgstr ""
#: includes/class/class.LSlang.php:953
#: includes/class/class.LSlang.php:805
msgid ""
"Invalid -l/--lang parameter. Must be compose in format : [lang].[encoding]"
msgstr ""
#: includes/class/class.LSlang.php:968
#: includes/class/class.LSlang.php:820
#, php-format
msgid ""
"Invalid -f/--format parameter. Must be one of the following values: %s.'"
msgstr ""
#: includes/class/class.LSlang.php:992
#: includes/class/class.LSlang.php:844
#, php-format
msgid "%s: Invalid parameter or lang file to load."
msgstr ""
#: includes/class/class.LSlang.php:1293
#: includes/class/class.LSlang.php:1136
msgid "Generate lang.php file"
msgstr ""
#: includes/class/class.LSlang.php:1297
#: includes/class/class.LSlang.php:1140
msgid ""
" -W/--without Disable specified messages. Must be one of\n"
" the following values:"
msgstr ""
#: includes/class/class.LSlang.php:1301
#: includes/class/class.LSlang.php:1144
msgid ""
" -O/--only Only handle specified messages. Must be one\n"
" of the following values :"
msgstr ""
#: includes/class/class.LSlang.php:1305
#: includes/class/class.LSlang.php:1148
msgid ""
" -I/--include-upstream Include upstream code to message lookup\n"
" -c/--copy-original-value Copy original value as translated value when\n"
@ -1057,37 +1057,26 @@ msgid ""
" in existing lang files."
msgstr ""
#: includes/class/class.LSlang.php:1345
#, php-format
msgid "%s: Invalid parameter."
msgstr ""
#: includes/class/class.LSlang.php:1441
#: includes/class/class.LSlang.php:1252
msgid "Generate POT files:"
msgstr ""
#: includes/class/class.LSlang.php:1444
#: includes/class/class.LSlang.php:1255
msgid "This command generate 3 POT files:"
msgstr ""
#: includes/class/class.LSlang.php:1446
#: includes/class/class.LSlang.php:1257
msgid " => contains messages from PHP files"
msgstr ""
#: includes/class/class.LSlang.php:1448
#: includes/class/class.LSlang.php:1259
msgid " => contains messages from templates files"
msgstr ""
#: includes/class/class.LSlang.php:1450
#: includes/class/class.LSlang.php:1261
msgid " => contains all messages"
msgstr ""
#: includes/class/class.LSlang.php:1453
msgid ""
"Note: Use -I / --internal parameter to use internal parser instead of\n"
"xgettext for PHP files."
msgstr ""
#: includes/class/class.LStemplate.php:160
msgid "LStemplate : compile directory is not writable (dir : %{dir})"
msgstr ""
@ -1143,17 +1132,17 @@ msgstr ""
msgid "A fatal error occured."
msgstr ""
#: includes/class/class.LStemplate.php:733
#: includes/class/class.LStemplate.php:731
msgid "LStemplate : Template %{file} not found."
msgstr ""
#: includes/class/class.LStemplate.php:736
#: includes/class/class.LStemplate.php:734
msgid ""
"LStemplate : Fail to execute trigger %{callable} on event %{event} : is not "
"callable."
msgstr ""
#: includes/class/class.LStemplate.php:739
#: includes/class/class.LStemplate.php:737
msgid ""
"LStemplate : Error during the execution of the trigger %{callable} on event "
"%{event}."
@ -1870,8 +1859,8 @@ msgstr ""
msgid "No object."
msgstr ""
#: includes/class/class.LSrelation.php:747 includes/routes.php:456
#: includes/routes.php:997
#: includes/class/class.LSrelation.php:747 includes/routes.php:452
#: includes/routes.php:993
msgid "New"
msgstr ""
@ -2068,11 +2057,11 @@ msgid ""
"support."
msgstr ""
#: includes/class/class.LSform.php:327 includes/routes.php:634
#: includes/class/class.LSform.php:327 includes/routes.php:630
msgid "Do you really want to execute custom action %{title} on this search ?"
msgstr ""
#: includes/class/class.LSform.php:333 includes/routes.php:1432
#: includes/class/class.LSform.php:333 includes/routes.php:1428
msgid ""
"Do you really want to execute custom action %{customAction} on "
"%{objectname} ?"
@ -2262,8 +2251,8 @@ msgstr ""
msgid "Display RSS stack."
msgstr ""
#: includes/class/class.LSattr_ldap_password.php:108 includes/routes.php:587
#: includes/routes.php:1379
#: includes/class/class.LSattr_ldap_password.php:108 includes/routes.php:583
#: includes/routes.php:1375
msgid "undefined"
msgstr ""
@ -2356,88 +2345,88 @@ msgstr ""
msgid "Pedagogical element"
msgstr ""
#: includes/class/class.LSsearch.php:1318
#: includes/class/class.LSsearch.php:1253
msgid "Actions"
msgstr ""
#: includes/class/class.LSsearch.php:1321
#: includes/class/class.LSsearch.php:1256
#: templates/default/global_search.tpl:16
msgid "This search didn't get any result."
msgstr ""
#: includes/class/class.LSsearch.php:1963
#: includes/class/class.LSsearch.php:1898
msgid "LSsearch : Invalid filter : %{filter}."
msgstr ""
#: includes/class/class.LSsearch.php:1966
#: includes/class/class.LSsearch.php:1901
msgid "LSsearch : Invalid basedn : %{basedn}."
msgstr ""
#: includes/class/class.LSsearch.php:1969
#: includes/class/class.LSsearch.php:1904
msgid "LSsearch : Invalid value for %{param} parameter."
msgstr ""
#: includes/class/class.LSsearch.php:1972
#: includes/class/class.LSsearch.php:1907
msgid ""
"LSsearch : Invalid size limit. Must be an integer greater or equal to 0."
msgstr ""
#: includes/class/class.LSsearch.php:1975
#: includes/class/class.LSsearch.php:1910
msgid "LSsearch : Invalid parameter %{attr}. Must be an boolean."
msgstr ""
#: includes/class/class.LSsearch.php:1978
#: includes/class/class.LSsearch.php:1913
msgid ""
"LSsearch : Invalid parameter attributes. Must be an string or an array of "
"strings."
msgstr ""
#: includes/class/class.LSsearch.php:1981
#: includes/class/class.LSsearch.php:1916
msgid "LSsearch : Can't build attributes list for make filter."
msgstr ""
#: includes/class/class.LSsearch.php:1984
#: includes/class/class.LSsearch.php:1919
msgid ""
"LSsearch : Error building filter with attribute '%{attr}' and pattern "
"'%{pattern}'"
msgstr ""
#: includes/class/class.LSsearch.php:1987
#: includes/class/class.LSsearch.php:1922
msgid "LSsearch : Error combining filters."
msgstr ""
#: includes/class/class.LSsearch.php:1990
#: includes/class/class.LSsearch.php:1925
msgid "LSsearch : Invalid pattern."
msgstr ""
#: includes/class/class.LSsearch.php:1993
#: includes/class/class.LSsearch.php:1928
msgid "LSsearch : Invalid attribute %{attr} in parameters."
msgstr ""
#: includes/class/class.LSsearch.php:1996
#: includes/class/class.LSsearch.php:1931
msgid "LSsearch : Error during the search."
msgstr ""
#: includes/class/class.LSsearch.php:1999
#: includes/class/class.LSsearch.php:1934
msgid "LSsearch : Error sorting the search."
msgstr ""
#: includes/class/class.LSsearch.php:2002
#: includes/class/class.LSsearch.php:1937
msgid ""
"LSsearch : The function of the custum information %{name} is not callable."
msgstr ""
#: includes/class/class.LSsearch.php:2005
#: includes/class/class.LSsearch.php:1940
msgid ""
"LSsearch : Invalid predefinedFilter for LSobject type %{type} : %{label} "
"(filter : %{filter})."
msgstr ""
#: includes/class/class.LSsearch.php:2008
#: includes/class/class.LSsearch.php:1943
msgid "LSsearch : Error during execution of the custom action %{customAction}."
msgstr ""
#: includes/class/class.LSsearch.php:2011
#: includes/class/class.LSsearch.php:1946
msgid "LSsearch : Invalid search pattern."
msgstr ""
@ -2553,7 +2542,7 @@ msgstr ""
msgid "JSON value #%{idx} is invalid (or empty)."
msgstr ""
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:438
#: includes/class/class.LSformElement_jsonCompositeAttribute.php:433
msgid "Invalid value \"%{value}\" for component %{component}."
msgstr ""
@ -2687,20 +2676,20 @@ msgstr ""
msgid "LSlog : Fail to load logging handler %{handler}."
msgstr ""
#: includes/class/class.LSerror.php:141
#: includes/class/class.LSerror.php:138
msgid "Unknown error"
msgstr ""
#: includes/class/class.LSerror.php:201
#: includes/class/class.LSerror.php:198
msgid "Unknown error : %{error}"
msgstr ""
#: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1204
#: includes/routes.php:1297 includes/routes.php:1443
#: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1200
#: includes/routes.php:1293 includes/routes.php:1439
msgid "View"
msgstr ""
#: includes/class/class.LSsearchEntry.php:229 includes/routes.php:1060
#: includes/class/class.LSsearchEntry.php:229 includes/routes.php:1056
msgid "Copy"
msgstr ""
@ -2726,102 +2715,82 @@ msgstr ""
msgid "You must provide pattern for global search."
msgstr ""
#: includes/routes.php:462 includes/routes.php:818
#: includes/routes.php:458 includes/routes.php:814
msgid "Import"
msgstr ""
#: includes/routes.php:467 includes/routes.php:884
#: includes/routes.php:463 includes/routes.php:880
msgid "Export"
msgstr ""
#: includes/routes.php:479
#: includes/routes.php:475
msgid "Reset"
msgstr ""
#: includes/routes.php:518 templates/default/select.tpl:31
#: includes/routes.php:514 templates/default/select.tpl:31
msgid "Approximative search"
msgstr ""
#: includes/routes.php:519 templates/default/select.tpl:32
#: includes/routes.php:515 templates/default/select.tpl:32
msgid "Recursive search"
msgstr ""
#: includes/routes.php:608
#: includes/routes.php:604
msgid ""
"The custom action %{title} have been successfully execute on this search."
msgstr ""
#: includes/routes.php:956
#: includes/routes.php:952
msgid "Data entry form"
msgstr ""
#: includes/routes.php:962 includes/routes.php:1736
#: includes/routes.php:958 includes/routes.php:1732
msgid "Object has been added."
msgstr ""
#: includes/routes.php:1099
#: includes/routes.php:1095
msgid "My account"
msgstr ""
#: includes/routes.php:1162 includes/routes.php:1908
#: includes/routes.php:1158 includes/routes.php:1904
msgid "The object has been partially modified."
msgstr ""
#: includes/routes.php:1165 includes/routes.php:1911
#: includes/routes.php:1161 includes/routes.php:1907
msgid "The object has been modified successfully."
msgstr ""
#: includes/routes.php:1280 includes/routes.php:1951
#: includes/routes.php:1276 includes/routes.php:1947
msgid "%{objectname} has been successfully deleted."
msgstr ""
#: includes/routes.php:1289
#: includes/routes.php:1285
msgid "Deleting : %{objectname}"
msgstr ""
#: includes/routes.php:1290
#: includes/routes.php:1286
msgid "Do you really want to delete <strong>%{displayName}</strong> ?"
msgstr ""
#: includes/routes.php:1400
#: includes/routes.php:1396
msgid ""
"The custom action %{customAction} have been successfully execute on "
"%{objectname}."
msgstr ""
#: includes/functions.php:123
#: includes/functions.php:115
msgid ""
"Function 'getFData' : The method %{meth} of the object %{obj} doesn't exist."
msgstr ""
#: includes/functions.php:211
#: includes/functions.php:208
msgid "[not string value]"
msgstr ""
#: includes/functions.php:259
#: includes/functions.php:254
msgid "Folder not found"
msgstr ""
#: includes/functions.php:863
msgid "TB"
msgstr ""
#: includes/functions.php:864
msgid "GB"
msgstr ""
#: includes/functions.php:865
msgid "MB"
msgstr ""
#: includes/functions.php:866
msgid "KB"
msgstr ""
#: includes/functions.php:867
msgid "B"
msgstr ""
#: conf/LSaddons/config.LSaddons.supann.php:97
msgid "Mrs."
msgstr ""
@ -3021,8 +2990,7 @@ msgstr ""
msgid "Email"
msgstr ""
#: templates/default/import.tpl:43 templates/default/import.tpl:98
#: templates/default/import.tpl:126 templates/default/import.tpl:151
#: templates/default/import.tpl:43
msgid "Errors"
msgstr ""
@ -3044,15 +3012,11 @@ msgstr ""
msgid "Global search"
msgstr ""
#: templates/default/import.tpl:148
msgid "Hook: %(name)"
msgstr ""
#: templates/default/recoverpassword.tpl:19 templates/default/login.tpl:18
msgid "Identifier"
msgstr ""
#: templates/default/import.tpl:92
#: templates/default/import.tpl:85
msgid "Imported objects"
msgstr ""
@ -3080,11 +3044,6 @@ msgstr ""
msgid "Message"
msgstr ""
#: templates/default/import.tpl:106 templates/default/import.tpl:134
#: templates/default/import.tpl:159
msgid "Messages"
msgstr ""
#: templates/default/viewSearch.tpl:113
msgid "Nb / page :"
msgstr ""
@ -3097,18 +3056,14 @@ msgstr ""
msgid "No field."
msgstr ""
#: templates/default/import.tpl:115
#: templates/default/import.tpl:90
msgid "No imported object"
msgstr ""
#: templates/default/import.tpl:65
#: templates/default/import.tpl:58
msgid "No value"
msgstr ""
#: templates/default/import.tpl:45
msgid "Object %(idx)"
msgstr ""
#: templates/default/showTechInfo.tpl:11
msgid "Object classes"
msgstr ""
@ -3138,7 +3093,9 @@ msgstr ""
msgid "Please confirm new password:"
msgstr ""
#: templates/default/LSaccessRightsMatrixView.tpl:22
#: templates/default/LSaccessRightsMatrixView.tpl:27
#: templates/default/LSaccessRightsMatrixView.tpl:67
#: templates/default/LSaccessRightsMatrixView.tpl:72
#: templates/default/LSaccessRightsMatrixView.tpl:93
#: templates/default/LSaccessRightsMatrixView.tpl:95
@ -3147,7 +3104,9 @@ msgstr ""
msgid "R"
msgstr ""
#: templates/default/LSaccessRightsMatrixView.tpl:24
#: templates/default/LSaccessRightsMatrixView.tpl:28
#: templates/default/LSaccessRightsMatrixView.tpl:69
#: templates/default/LSaccessRightsMatrixView.tpl:73
#: templates/default/LSaccessRightsMatrixView.tpl:89
#: templates/default/LSaccessRightsMatrixView.tpl:91
@ -3214,7 +3173,7 @@ msgstr ""
msgid "Update objects if exists"
msgstr ""
#: templates/default/import.tpl:120
#: templates/default/import.tpl:95
msgid "Updated objects"
msgstr ""

View file

@ -42,7 +42,7 @@
{if !empty($result.errors)}
<h2>{tr msg='Errors'}</h2>
{foreach $result.errors as $error}
<h3 class='LSio'>{tr msg="Object %(idx)" idx=$error@iteration}</h3>
<h3 class='LSio'>Object {$error@iteration}</h3>
<div class='LSio_error'>
{if !empty($error.errors.globals)}
<ul class='LSio_global_errors'>
@ -51,13 +51,6 @@
{/foreach}
</ul>
{/if}
{if $error.messages}
<ul class="LSio_global_messages">
{foreach $error.messages as $m}
<li>{$m}</li>
{/foreach}
</ul>
{/if}
<ul class='LSio_data_errors'>
{foreach $error.data as $key => $val}
<li>
@ -91,26 +84,8 @@
<h2 class='LSio_imported_objects'>{tr msg='Imported objects'} ({count($result.imported)})</h2>
<ul class='LSio_imported_objects'>
{foreach $result.imported as $dn => $obj}
<li>
<a href='object/{$LSobject|escape:"url"}/{$dn|escape:"url"}'>{$obj.name|escape:"htmlall"}</a>
{if $obj.errors}
<h3>{tr msg="Errors"}</h3>
<ul class="LSio_object_errors">
{foreach $obj.errors as $e}
<li>{$e|escape:"htmlall"}</li>
{/foreach}
</ul>
{/if}
{if $obj.messages}
<h3>{tr msg="Messages"}</h3>
<ul class="LSio_object_messages">
{foreach $obj.messages as $e}
<li>{$e|escape:"htmlall"}</li>
{/foreach}
</ul>
{/if}
</li>
{foreach $result.imported as $dn => $name}
<li><a href='object/{$LSobject|escape:"url"}/{$dn|escape:"url"}'>{$name|escape:"htmlall"}</a></li>
{foreachelse}
<li>{tr msg='No imported object'}</li>
{/foreach}
@ -119,53 +94,11 @@
{if !empty($result.updated)}
<h2 class='LSio_updated_objects'>{tr msg='Updated objects'} ({count($result.updated)})</h2>
<ul class='LSio_updated_objects'>
{foreach $result.updated as $dn => $obj}
<li>
<a href='object/{$LSobject|escape:"url"}/{$dn|escape:"url"}'>{$obj.name|escape:"htmlall"}</a>
{if $obj.errors}
<h3>{tr msg="Errors"}</h3>
<ul class="LSio_object_errors">
{foreach $obj.errors as $e}
<li>{$e|escape:"htmlall"}</li>
{/foreach}
</ul>
{/if}
{if $obj.messages}
<h3>{tr msg="Messages"}</h3>
<ul class="LSio_object_messages">
{foreach $obj.messages as $e}
<li>{$e|escape:"htmlall"}</li>
{/foreach}
</ul>
{/if}
</li>
{foreach $result.updated as $dn => $name}
<li><a href='object/{$LSobject|escape:"url"}/{$dn|escape:"url"}'>{$name|escape:"htmlall"}</a></li>
{/foreach}
</ul>
{/if}
{foreach $result.hooks as $hook => $info}
{if $info.errors || $info.messages}
<h2>{tr msg="Hook: %(name)" name=$hook}</h2>
<div class="LSio_hook">
{if $info.errors}
<h3>{tr msg="Errors"}</h3>
<ul class="LSio_hook_errors">
{foreach $info.errors as $e}
<li>{$e|escape:"htmlall"}</li>
{/foreach}
</ul>
{/if}
{if $info.messages}
<h3>{tr msg="Messages"}</h3>
<ul class="LSio_hook_messages">
{foreach $info.messages as $e}
<li>{$e}</li>
{/foreach}
</ul>
{/if}
</div>
{/if}
{/foreach}
{/if}
{/block}