Index: /extensions/event_cats/admin/autolog_new.inc.php
===================================================================
--- /extensions/event_cats/admin/autolog_new.inc.php	(revision 4026)
+++ /extensions/event_cats/admin/autolog_new.inc.php	(revision 4027)
@@ -56,7 +56,22 @@
 build_ec_lists(); // in evntcats_funcs.php
 
-$ec_prop_code = '';
-$ec_prop_user = '-1';
-$ec_prop_act1 = 'create';
+$ec_lists['duplicable_codes'] = array();
+
+foreach ($ec_lists['ec_table'] as $ec_entry) {
+  if (
+    is_in($ec_entry['action'], 'ec_ok') and
+    !is_in($ec_entry['action'], '_f_pb') and
+    $ec_entry['forced'] == 'false'
+  ) {
+    $ec_lists['duplicable_codes'][$ec_entry['code']] = $ec_entry['user_id'];
+  }
+}
+
+$ec_def_vals = array();
+
+$ec_def_vals['code'] = '';
+$ec_def_vals['user'] = '-1';
+$ec_def_vals['act1'] = 'create';
+$ec_def_vals['auto_code_dg_nb'] = read_ec_conf('auto_code_dg_nb');
 
 /*****************************************************************************
@@ -67,7 +82,7 @@
   if (isset($_POST['ec_entry_sel'])) {
     if (array_key_exists($_POST['ec_entry_sel'], $ec_lists['ec_table'])) {
-      $ec_prop_code = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['code'];
-      $ec_prop_user = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['user_id'];
-      $ec_prop_act1 = $_POST['ec_entry_sel'];
+      $ec_def_vals['code'] = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['code'];
+      $ec_def_vals['user'] = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['user_id'];
+      $ec_def_vals['act1'] = $_POST['ec_entry_sel'];
     }
     else {
@@ -86,7 +101,5 @@
 $template->assign('ec_ap_ok',$ec_ap_ok);
 $template->assign('ec_lists',$ec_lists);
-$template->assign('ec_prop_code',$ec_prop_code);
-$template->assign('ec_prop_user',$ec_prop_user);
-$template->assign('ec_prop_act1',$ec_prop_act1);
+$template->assign('ec_def_vals',$ec_def_vals);
 
 ?>
Index: /extensions/event_cats/admin/evntcats_admin.php
===================================================================
--- /extensions/event_cats/admin/evntcats_admin.php	(revision 4026)
+++ /extensions/event_cats/admin/evntcats_admin.php	(revision 4027)
@@ -67,4 +67,9 @@
   EVNTCATS_PATH.'admin/evntcats_theme.css">'
 );
+
+if (
+  isset($_POST['ec_in_up_auto_code_length']) and
+  $_POST['ec_in_up_auto_code_length'] != read_ec_conf('auto_code_dg_nb')
+) change_ec_conf('auto_code_dg_nb', $_POST['ec_in_up_auto_code_length']);
 
 // +-----------------------------------------------------------------------+
Index: /extensions/event_cats/admin/template/autolog_new.js
===================================================================
--- /extensions/event_cats/admin/template/autolog_new.js	(revision 4026)
+++ /extensions/event_cats/admin/template/autolog_new.js	(revision 4027)
@@ -10,15 +10,34 @@
 var ec_old_new_psd_text         = '';
 var ec_test_reg                 = '';
-var ec_prop_code                = '';
-var ec_prop_user                = '';
-var ec_prop_act1                = '';
+var ec_auto_code_digits_nb      = '';
 var ec_selected_old_user        = '-1';
+var ec_selected_old_code        = '-1';
 var ec_selected_AP              = '-1';
 var ec_selected_cat             = '-1';
 var ec_selected_user            = 'ec_sel_user_old';
+var ec_selected_code            = 'ec_sel_code_new';
 var ec_JS_message               = new Array();
-var ec_auto_code_digits_default =
- document.getElementById('ec_in_up_auto_code_length_id').value;
-var ec_auto_code_digits_nb      = ec_auto_code_digits_default;
+var ec_def_vals                 = new Array();
+
+function ec_mark_code(ec_id) {
+  if (
+   !(document.getElementById('ec_sel_code_old').disabled == 'disabled' ||
+   document.getElementById('ec_sel_code_old').disabled == true)
+  ) {
+    ec_selected_code = ec_id;
+    document.getElementById(ec_selected_code).checked = 'checked';
+    switch (ec_selected_code) {
+      case 'ec_sel_code_new':
+        document.getElementById('ec_in_up_code_list_id').value = '-1';
+        document.getElementById('ec_in_up_code_id').value = ec_new_code_text;
+      break;
+      case 'ec_sel_code_old':
+        document.getElementById('ec_in_up_code_list_id').value =
+         ec_selected_old_code;
+        document.getElementById('ec_in_up_code_id').value = '';
+      break;
+    }
+  }
+}
 
 function ec_mark_user(ec_id) {
@@ -161,5 +180,5 @@
     ec_new_code_text = t;
   }
-  document.getElementById('ec_in_up_code_id').value = ec_new_code_text;
+  ec_mark_code('ec_sel_code_new');
 }
 
@@ -252,6 +271,26 @@
 }
 
+function ec_check_code_text() {
+  var t    = document.getElementById('ec_in_up_code_id').value;
+  var treg = /^[a-zA-Z0-9_-]{4,32}$/
+  if (t == '' || treg.test(t)) {
+    ec_new_code_text = t;
+  }
+  else {
+    alert(ec_JS_message['ec_submit_code_bad']);
+    ec_new_code_text = '';
+    document.getElementById('ec_in_up_code_id').value = '';
+  }
+}
+
 function ec_check_submit() {
-  if (document.getElementById('ec_in_up_code_id').value == '') {
+  if ((
+    document.getElementById('ec_sel_code_new').checked != '' &&
+    document.getElementById('ec_in_up_code_id').value == ''
+    ) || (
+    document.getElementById('ec_sel_code_old').checked != '' &&
+    document.getElementById('ec_in_up_code_list_id').value == '-1'
+    )
+  ) {
     alert(ec_JS_message['ec_submit_code_miss']);
     return false;
@@ -292,8 +331,10 @@
 
 function ec_init() {
-  var t = (ec_prop_code == '') ? '' : 'disabled';
+  var t = (ec_def_vals['code'] == '') ? '' : 'disabled';
   ec_err = '';
   ec_selected_user = 'ec_sel_user_old';
+  ec_selected_code = 'ec_sel_code_new';
   ec_selected_old_user = '-1';
+  ec_selected_old_code = '-1';
   ec_selected_AP = '-1';
   ec_selected_cat = '-1';
@@ -305,18 +346,23 @@
   ec_old_new_psd_text = '';
   ec_test_reg = '';
-  document.getElementById('ec_act1_id').value = ec_prop_act1;
+  document.getElementById('ec_act1_id').value = ec_def_vals['act1'];
   document.getElementById('ec_in_up_pwd_warn').innerHTML = '';
+  document.getElementById('ec_sel_code_old').checked = 'checked';
+  document.getElementById('ec_sel_code_old').checked =
+   (ec_def_vals['code'] == '') ? '' : 'checked';
   document.getElementById('ec_sel_user_old').checked = 'checked';
   document.getElementById('ec_sel_user_old').checked =
-   (ec_prop_user == '-1') ? '' : 'checked';
+   (ec_def_vals['user'] == '-1') ? '' : 'checked';
   document.getElementById('ec_input_action_home').checked = 'checked';
   document.getElementById('ec_input_action_home').checked = '';
   document.getElementById('ec_in_up_usr_txt_id').value = '';
   document.getElementById('ec_in_up_psd_txt_id').value = '';
-  document.getElementById('ec_in_up_usr_list_id').value = ec_prop_user;
-  document.getElementById('ec_in_up_code_id').value = ec_prop_code;
+  document.getElementById('ec_in_up_usr_list_id').value = ec_def_vals['user'];
+  document.getElementById('ec_in_up_code_id').value = ec_def_vals['code'];
   document.getElementById('ec_in_up_aps_id').value = '-1';
   document.getElementById('ec_in_up_cats_id').value = '-1';
   document.getElementById('ec_in_up_imgs_id').value = '';
+  document.getElementById('ec_in_up_auto_code_length_id').value =
+   ec_auto_code_digits_nb;
   document.getElementById('ec_submit_gen_full_auto_id').disabled = t;
   document.getElementById('ec_in_up_code_id').disabled = t;
@@ -329,6 +375,6 @@
   document.getElementById('ec_sel_user_old').disabled = t;
   document.getElementById('ec_in_up_usr_list_id').disabled = t;
-  ec_prop_code = '';
-  ec_prop_user = '-1';
-  ec_prop_act1 = 'create';
-}
+  ec_def_vals['code'] = '';
+  ec_def_vals['user'] = '-1';
+  ec_def_vals['act1'] = 'create';
+}
Index: /extensions/event_cats/admin/template/autolog_new.tpl
===================================================================
--- /extensions/event_cats/admin/template/autolog_new.tpl	(revision 4026)
+++ /extensions/event_cats/admin/template/autolog_new.tpl	(revision 4027)
@@ -51,37 +51,66 @@
     <input class = "submit" type = "button" name = "ec_submit_gen_full_auto" value = "{'ec_new_full_auto'|@translate}"
      id = "ec_submit_gen_full_auto_id" onclick = "ec_gen_full_auto();" style = "margin-top:0;"/>
-  </div>
+  </div><br>
   
-  <table style = "border-spacing:30px" width = "97%">
+  <table style = "border-spacing:15px" width = "97%">
     
     {* <!-- Code selection --> *}
     <tr>
-      <td><strong>{'ec_new_entry'|@translate}</strong></td>
+      <td style = "vertical-align:top;"><strong>{'ec_new_entry'|@translate}</strong></td>
       <td>
-        <input type = "text" name = "ec_in_up_code" maxlength = "32" size = "40"
-         id = "ec_in_up_code_id" onblur = "ec_new_code_text = this.value;"
-        />
-        &nbsp;
-        <label for = "ec_in_up_code_id" style = "margin:0;">
-          <input class = "submit" type = "button" name = "ec_submit_gen_code" value = "{'ec_new_entry_button'|@translate}"
-           id = "ec_submit_gen_code_id" onclick = "ec_gen_code();" style = "margin:0;"
-          />
-        </label>
-        {'ec_gen_code_nb_pre'|@translate}
-        <select {* name = "ec_in_up_auto_code_length" *} id = "ec_in_up_auto_code_length_id" onchange = "ec_auto_code_digits_nb = this.value;">
-          <option value = "4">4</option>
-          <option value = "5">5</option>
-          <option value = "8">8</option>
-          <option value = "10" selected = "selected">10</option>
-          <option value = "12">12</option>
-          <option value = "15">15</option>
-          <option value = "16">16</option>
-          <option value = "20">20</option>
-          <option value = "24">24</option>
-          <option value = "25">25</option>
-          <option value = "30">30</option>
-          <option value = "32">32{'ec_gen_code_nb_max'|@translate}</option>
-        </select>
-        {'ec_gen_code_nb_end'|@translate}
+        <li>
+          {* <!-- New code (to create) --> *}
+          <label for = "ec_in_up_code_id" onclick = "ec_mark_code('ec_sel_code_new');">
+            <input type = "radio" name = "ec_sel_code" for = "ec_in_up_code_id" value = "new"
+             id = "ec_sel_code_new" onclick = "ec_mark_code('ec_sel_code_new');"
+            />
+            {'ec_up_code_lbl_code_new'|@translate}
+          </label>
+          &nbsp;
+          <label for = "ec_in_up_code_id" style = "margin:0;">
+            <input class = "submit" type = "button" name = "ec_submit_gen_code" value = "{'ec_new_entry_button'|@translate}"
+             id = "ec_submit_gen_code_id" onclick = "ec_gen_code();" style = "margin:0;"
+            />
+          </label>
+          {'ec_gen_code_nb_pre'|@translate}
+          <select name = "ec_in_up_auto_code_length" id = "ec_in_up_auto_code_length_id" onchange = "ec_auto_code_digits_nb = this.value;">
+            <option value = "4">4</option>
+            <option value = "5">5</option>
+            <option value = "8">8</option>
+            <option value = "10">10</option>
+            <option value = "12">12</option>
+            <option value = "15">15</option>
+            <option value = "16">16</option>
+            <option value = "20">20</option>
+            <option value = "24">24</option>
+            <option value = "25">25</option>
+            <option value = "30">30</option>
+            <option value = "32">32{'ec_gen_code_nb_max'|@translate}</option>
+          </select>
+          {'ec_gen_code_nb_end'|@translate}<br>
+          <ul><li>
+            <input type = "text" name = "ec_in_up_code" maxlength = "32" size = "40"
+             id = "ec_in_up_code_id" onblur = "ec_check_code_text();"
+            />
+          </li></ul>
+        </li>
+        
+        <li>
+          {* <!-- Known code --> *}
+          <label for = "ec_in_up_code_list_id" onclick = "ec_mark_code('ec_sel_code_old');">
+            <input type = "radio" name = "ec_sel_code" for = "ec_in_up_code_list_id"
+             value = "old" id = "ec_sel_code_old" onclick = "ec_mark_code('ec_sel_code_old');"
+            />
+            {'ec_up_code_lbl_code_old'|@translate}
+          </label>
+          <select name = "ec_in_up_code_list" id = "ec_in_up_code_list_id" onclick = "ec_mark_code('ec_sel_code_old');"
+           onchange = "ec_selected_old_code = this.value;"
+          >
+            <option label = "------------" value = "-1" id = "ec_old_code_-1">------------</option>
+            {foreach from=$ec_lists.duplicable_codes key=ec_key item=ec_val}
+              <option label = "{$ec_val}" value = "{$ec_key}" id = "ec_old_code_{$ec_key}">{$ec_key}</option>
+            {/foreach}
+          </select><br>
+        </li>
       </td>
     </tr>
@@ -91,51 +120,51 @@
       <td style = "vertical-align:top;"><strong>{'ec_up_code_lbl_user'|@translate}</strong></td>
       <td>
-      <li>
-        {* <!-- New user (to create) --> *}
-        <label for = "ec_in_up_usr_txt_id" onclick = "ec_mark_user('ec_sel_user_new');">
-          <input type = "radio" name = "ec_sel_user" for = "ec_in_up_usr_txt_id" value = "new"
-           id = "ec_sel_user_new" onclick = "ec_mark_user('ec_sel_user_new');"
-          />
-          {'ec_up_code_lbl_user_new'|@translate}
-        </label>
-        &nbsp;
-        <input class = "submit" type = "button" name = "ec_submit_gen_user" value = "{'ec_up_code_lbl_gen_user'|@translate}"
-         id = "ec_submit_gen_user_id" onclick = "ec_gen_user();"
-        /><br>
-        <ul><li>
-          <label class = "ec_block">{'ec_new_user_name'|@translate}<br>
-            <input type = "text" name = "ec_in_up_usr_txt" id = "ec_in_up_usr_txt_id" maxlength = "32"
-             size = "20" onclick = "ec_mark_user('ec_sel_user_new');" onblur = "ec_new_user_text = this.value;"
-            />
-          </label>
-          <label class = "ec_block">{'ec_new_user_pswd'|@translate}<br>
-            <input type = "text" name = "ec_in_up_psd_txt" id = "ec_in_up_psd_txt_id" maxlength = "32"
-             size = "20" onclick = "ec_mark_user('ec_sel_user_new');" onblur = "ec_new_psd_text = this.value; ec_check_pwd_text();"
-            />
-          </label>
-          <label class = "ec_block">&nbsp;<br>
-            <span style = "font-weight:bold; color:red;" id = "ec_in_up_pwd_warn">&nbsp;</span>
-          </label>
-          
-        </li></ul><br>
-      </li>
-      
-      <li>
-        {* <!-- Known user --> *}
-        <label for = "ec_in_up_usr_list_id" onclick = "ec_mark_user('ec_sel_user_old');">
-          <input type = "radio" name = "ec_sel_user" for = "ec_in_up_usr_list_id"
-           value = "old" id = "ec_sel_user_old" onclick = "ec_mark_user('ec_sel_user_old');"
-          />
-          {'ec_up_code_lbl_user_old'|@translate}
-        </label>
-        <select name = "ec_in_up_usr_list" id = "ec_in_up_usr_list_id" onclick = "ec_mark_user('ec_sel_user_old');"
-         onchange = "ec_selected_old_user = this.value;"
-        >
-          <option label = "------------" value = "-1" id = "ec_old_user_-1">------------</option>
-          {foreach from=$ec_lists.user_ids key=ec_key item=ec_val name=opt_loop}
-            <option label = "{$ec_val}" value = "{$ec_key}" id = "ec_old_user_{$ec_key}">{$ec_val}</option>
-          {/foreach}
-        </select><br>
-      </li>
+        <li>
+          {* <!-- New user (to create) --> *}
+          <label for = "ec_in_up_usr_txt_id" onclick = "ec_mark_user('ec_sel_user_new');">
+            <input type = "radio" name = "ec_sel_user" for = "ec_in_up_usr_txt_id" value = "new"
+             id = "ec_sel_user_new" onclick = "ec_mark_user('ec_sel_user_new');"
+            />
+            {'ec_up_code_lbl_user_new'|@translate}
+          </label>
+          &nbsp;
+          <input class = "submit" type = "button" name = "ec_submit_gen_user" value = "{'ec_up_code_lbl_gen_user'|@translate}"
+           id = "ec_submit_gen_user_id" onclick = "ec_gen_user();"
+          /><br>
+          <ul><li>
+            <label class = "ec_block">{'ec_new_user_name'|@translate}<br>
+              <input type = "text" name = "ec_in_up_usr_txt" id = "ec_in_up_usr_txt_id" maxlength = "32"
+               size = "20" onclick = "ec_mark_user('ec_sel_user_new');" onblur = "ec_new_user_text = this.value;"
+              />
+            </label>
+            <label class = "ec_block">{'ec_new_user_pswd'|@translate}<br>
+              <input type = "text" name = "ec_in_up_psd_txt" id = "ec_in_up_psd_txt_id" maxlength = "32"
+               size = "20" onclick = "ec_mark_user('ec_sel_user_new');" onblur = "ec_new_psd_text = this.value; ec_check_pwd_text();"
+              />
+            </label>
+            <label class = "ec_block">&nbsp;<br>
+              <span style = "font-weight:bold; color:red;" id = "ec_in_up_pwd_warn">&nbsp;</span>
+            </label>
+            
+          </li></ul><br>
+        </li>
+        
+        <li>
+          {* <!-- Known user --> *}
+          <label for = "ec_in_up_usr_list_id" onclick = "ec_mark_user('ec_sel_user_old');">
+            <input type = "radio" name = "ec_sel_user" for = "ec_in_up_usr_list_id"
+             value = "old" id = "ec_sel_user_old" onclick = "ec_mark_user('ec_sel_user_old');"
+            />
+            {'ec_up_code_lbl_user_old'|@translate}
+          </label>
+          <select name = "ec_in_up_usr_list" id = "ec_in_up_usr_list_id" onclick = "ec_mark_user('ec_sel_user_old');"
+           onchange = "ec_selected_old_user = this.value;"
+          >
+            <option label = "------------" value = "-1" id = "ec_old_user_-1">------------</option>
+            {foreach from=$ec_lists.user_ids key=ec_key item=ec_val}
+              <option label = "{$ec_val}" value = "{$ec_key}" id = "ec_old_user_{$ec_key}">{$ec_val}</option>
+            {/foreach}
+          </select><br>
+        </li>
       </td>
     </tr>
@@ -215,7 +244,9 @@
   ec_JS_message['ec_submit_user_miss']   = "{'ec_submit_user_miss'|@translate}";
   ec_JS_message['ec_submit_action_miss'] = "{'ec_submit_action_miss'|@translate}";
-  ec_prop_code                           = "{$ec_prop_code}";
-  ec_prop_user                           = "{$ec_prop_user}";
-  ec_prop_act1                           = "{$ec_prop_act1}";
+  ec_JS_message['ec_submit_code_bad']    = "{'ec_submit_code_bad'|@translate}";
+  ec_def_vals['code']                    = "{$ec_def_vals.code}";
+  ec_def_vals['user']                    = "{$ec_def_vals.user}";
+  ec_def_vals['act1']                    = "{$ec_def_vals.act1}";
+  ec_auto_code_digits_nb                 = "{$ec_def_vals.auto_code_dg_nb}";
   ec_init();
 //--></script>
Index: /extensions/event_cats/include/ec_conf.inc.php
===================================================================
--- /extensions/event_cats/include/ec_conf.inc.php	(revision 4026)
+++ /extensions/event_cats/include/ec_conf.inc.php	(revision 4027)
@@ -25,17 +25,19 @@
 /*****************************************************************************
 Parameters ($ec_conf) :
- _ plugin activated ($ec_conf[0]) yes/no ;
- _ duplication allowance ($ec_conf[1]) :
+ _ plugin activated ($ec_conf[0] <=> read_ec_conf('activated')) yes/no ;
+ _ duplication allowance ($ec_conf[1] <=> read_ec_conf('dup_allow')) :
    0 : no account ;
    1 : all accounts ;
    2 : no account but those specified ;    \
-   3 : all accounts but those specified.   | could be different finally
+   3 : all accounts but those specified ;  | could be different finally
+ _ the number of digits when creating a new code automatically
+   ($ec_conf[2] <=> read_ec_conf('auto_code_dg_nb')) ;
  _ what to do in case an unknown code is used with "autolog" parameter
-   ($ec_conf[2]) :
+   ($ec_conf[3] <=> read_ec_conf('unknown_code')) :
    0 : nothing ("goto" home page, index.php (not logged in of course)) ;
    1 : redirected to "access denied" page ;
    2 : redirected to an Additional Page precised below.
  _ the id of the Additional Page which must be used in case of usage of an
-   unknow code ($ec_conf[3]).
+   unknow code ($ec_conf[4] <=> read_ec_conf('unknown_code_ap_id')).
 *****************************************************************************/
 
@@ -51,5 +53,5 @@
 }
 else {
-  $ec_conf = explode(',' , '0,1,0,0');
+  $ec_conf = explode(',' , '0,1,10,0,0');
   change_ec_conf('activated', 0);
 }
@@ -70,18 +72,20 @@
   switch ($c) {
     case 'activated':
-      $d = 0;
+      $ec_conf[0] = $v;
     break;
     case 'dup_allow':
-      $d = 1;
+      $ec_conf[1] = $v;
+    break;
+    case 'auto_code_dg_nb':
+      $ec_conf[2] = $v;
     break;
     case 'unknown_code':
-      $d = 2;
+      $ec_conf[3] = $v;
     break;
     case 'unknown_code_ap_id':
-      $d = 3;
+      $ec_conf[4] = $v;
     break;
     default: return false;
   }
-  $ec_conf[$d] = $v;
   return pwg_query("
    UPDATE `".CONFIG_TABLE."`
@@ -105,6 +109,7 @@
     case 'activated'         : return $ec_conf[0];
     case 'dup_allow'         : return $ec_conf[1];
-    case 'unknown_code'      : return $ec_conf[2];
-    case 'unknown_code_ap_id': return $ec_conf[3];
+    case 'auto_code_dg_nb'   : return $ec_conf[2];
+    case 'unknown_code'      : return $ec_conf[3];
+    case 'unknown_code_ap_id': return $ec_conf[4];
     default                  : return false;
   }
Index: /extensions/event_cats/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/event_cats/language/fr_FR/plugin.lang.php	(revision 4026)
+++ /extensions/event_cats/language/fr_FR/plugin.lang.php	(revision 4027)
@@ -41,10 +41,12 @@
 $lang['ec_new_full_auto']         = 'Tout automatique : nouveau code et nouvel utilisateur d\'après page à afficher ci-dessous';
 $lang['ec_new_entry']             = 'Code';
+$lang['ec_up_code_lbl_code_new']  = 'Nouveau code :';
 $lang['ec_new_entry_button']      = 'Générer un code automatiquement';
 $lang['ec_gen_code_nb_pre']       = 'de';
 $lang['ec_gen_code_nb_max']       = ' (max)';
 $lang['ec_gen_code_nb_end']       = 'caractères';
+$lang['ec_up_code_lbl_code_old']  = 'Code existant :';
 $lang['ec_up_code_lbl_user']      = 'Utilisateur identifié';
-$lang['ec_up_code_lbl_user_new']  = 'Nouvel utilisateur :';
+$lang['ec_up_code_lbl_user_new']  = 'Nouvel utilisateur (créer un compte générique) :';
 $lang['ec_new_user_name']         = 'Nom d\'utilisateur';
 $lang['ec_new_user_pswd']         = 'Mot de passe';
@@ -66,4 +68,5 @@
 $lang['ec_new_pwd_gen']           = 'Pensez à NOTER le mot de passe !';
 $lang['ec_submit_code_miss']      = 'Vous devez fournir un code.';
+$lang['ec_submit_code_bad']       = 'Un code doit comprendre entre 4 et 32 caractères inclus dans [a-zA-Z0-9_-].';
 $lang['ec_submit_user_miss']      = 'Vous devez fournir un utilisateur.';
 $lang['ec_submit_action_miss']    = 'Vous devez proposer une page à afficher.';
