- functions :
authorBenjamin Renard <brenard@easter-eggs.com>
Thu, 19 Mar 2009 17:42:51 +0000 (17:42 +0000)
committerBenjamin Renard <brenard@easter-eggs.com>
Thu, 19 Mar 2009 17:42:51 +0000 (17:42 +0000)
  -> Ajout de la fonction __() : fonction de traduction utilisant à la fois le tableau globale LSlang
     et gettext pour traduire les messages qu'on lui passe.
  -> Ajout de la fonction tr() : fonction utilisable depuis les templates pour traduire une variable
     smarty.
- LSexample :
  -> Utilisation de la traduction via __() plutôt que gettext
- LSdefault :
  -> Creation d'un template pour la gestion des outils apporté par LSdefaut (LSerror, LSdebug, ...)
  -> Ajout de méthode de gestion de LSlang
- LSsession :
  - Login/RecoverPassword : Utilisation du template LSdefault
  - Gestion de la traduction :
    -> Ajout de la méthode setLocale() définissant la langue de l'interface.
      -> Ajout des méthodes getLangList() et localeExist()
    -> Le session_start() se fait dans l'initialize désormais (pour gérer la langue même déconnecté)
    -> Méthode setLdapServer() : rédifinition de la locale avec setLocale()
    -> Ajout de LSlang : outil JS permetant dans l'interface de choisir sa langue
- Config :
  -> De manière général, il ne doit plus y avoir d'appel de la fonction _() dans les fichiers de config, les
     chaînes sont données non traduite, et la traduction se fera lors de leur utilisation.
    -> Tout les labels et messages déclarer dans la config, est maintenant traduit du coté code PHP avec la
       fonction __()
  -> L'enconding et la langue sont désormais géré indépendament
- ViewList : Les noms des boutons (New,Refresh,...) ne sont plus traduit du côté PHP mais dans le template à
  cause de leur mise en cache.
- Documentation :
  -> Mise à jour relative en changement de paramètres de configuration
  -> Ajout des informations sur les variables et constantes indépendantes du fichier de configuration config.inc.php
  -> Mise à jour du fichier INSTALL avec les informations de la documentation

30 files changed:
doc/LS.entities.xml
doc/conf/globale.docbook
doc/install/install.docbook
trunk/INSTALL
trunk/conf/LSobjects/config.LSobjects.LSeecompany.php
trunk/conf/LSobjects/config.LSobjects.LSeegroup.php
trunk/conf/LSobjects/config.LSobjects.LSeepeople.php
trunk/conf/config.inc.php
trunk/css/default/LSdefault.css
trunk/images/default/en_US.png [new file with mode: 0755]
trunk/images/default/fr_FR.png [new file with mode: 0755]
trunk/includes/class/class.LSattr_html.php
trunk/includes/class/class.LSattribute.php
trunk/includes/class/class.LSformElement.php
trunk/includes/class/class.LSldapObject.php
trunk/includes/class/class.LSrelation.php
trunk/includes/class/class.LSsession.php
trunk/includes/functions.php
trunk/includes/js/LSdefault.js
trunk/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo
trunk/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po
trunk/lang/fr_FR.UTF8/lang.php [new file with mode: 0644]
trunk/lang/ldapsaisie.pot
trunk/templates/default/LSdefault.tpl [new file with mode: 0644]
trunk/templates/default/LSform_view.tpl
trunk/templates/default/login.tpl
trunk/templates/default/recoverpassword.tpl
trunk/templates/default/top.tpl
trunk/templates/default/viewList.tpl
trunk/view.php

index 05e1a73..8edeb0b 100644 (file)
@@ -21,3 +21,4 @@
 <!ENTITY LSformats "<link linkend='config-LSformat'>LSformats</link>">
 <!ENTITY LSaddon "<link linkend='config-LSaddon'>LSaddon</link>">
 <!ENTITY LSaddons "<link linkend='config-LSaddon'>LSaddons</link>">
+<!ENTITY LSselect "<emphasis>LSselect</emphasis>">
index f60c1c7..f090727 100644 (file)
@@ -13,10 +13,13 @@ $GLOBALS['LSconfig'] = array(
   // Variables globales
 );
 
-// Autres variables indépendantes
+// Variables et constantes indépendantes
 $var1 = 'val1'
 $var2 = 'val2'
 ...
+define('CONST1','val1')
+define('CONST2','val2')
+...
 ?>]]>
 </programlisting>
 
@@ -51,9 +54,20 @@ $var2 = 'val2'
 <varlistentry>
   <term>lang</term>
   <listitem>
-    <simpara>Paramètre utilisé pour l'internationalisation.</simpara>
+    <simpara>Paramètre utilisé pour l'internationalisation :  code de la langue.</simpara>
+    <informalexample>
+      <programlisting><![CDATA[fr_FR]]></programlisting>
+      <programlisting><![CDATA[en_US]]></programlisting>
+    </informalexample>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>encoding</term>
+  <listitem>
+    <simpara>Encodage de caractère.</simpara>
     <informalexample>
-      <programlisting><![CDATA[fr_FR.UTF8]]></programlisting>
+      <programlisting><![CDATA[UTF8]]></programlisting>
     </informalexample>
   </listitem>
 </varlistentry>
@@ -128,6 +142,181 @@ $var2 = 'val2'
 
 </sect2>
 
+<sect2>
+<title>Variables et constantes indépendantes</title>
+
+<!-- Début Variables globales -->
+<variablelist>
+
+<varlistentry>
+  <term>LS_THEME</term>
+  <listitem>
+    <simpara>Constante déterminant le nom du theme utilisé.</simpara>
+    <simpara>Valeur par défaut : <emphasis>default</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_TEMPLATES_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier des templates.</simpara>
+    <simpara>Valeur par défaut : <emphasis>templates/LS_THEME</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_IMAGES_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier des images.</simpara>
+    <simpara>Valeur par défaut : <emphasis>images/LS_THEME</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_CSS_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier des CSS.</simpara>
+    <simpara>Valeur par défaut : <emphasis>css/LS_THEME</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>$GLOBALS['LSdebug']['active']</term>
+  <listitem>
+    <simpara>Variable booléenne déterminant si le mode debug est activé.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>$GLOBALS['LSlog']['enable']</term>
+  <listitem>
+    <simpara>Variable booléenne déterminant si les logs sont activés.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>$GLOBALS['LSlog']['filename']</term>
+  <listitem>
+    <simpara>Variable déterminant le chemin du fichier de log.</simpara>
+    <simpara>Valeur par défaut : <emphasis>/tmp/LS.log</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>NB_LSOBJECT_LIST</term>
+  <listitem>
+    <simpara>Constante déterminant le nombre d'objet affichés par page de résultat
+    de recherche.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>NB_LSOBJECT_LIST_SELECT</term>
+  <listitem>
+    <simpara>Constante déterminant le nombre d'objet affichés par page de résultat
+    de recherche dans une fenêtre &LSselect;.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>MAX_SEND_FILE_SIZE</term>
+  <listitem>
+    <simpara>Constante déterminant la taille maximale d'un fichier envoyé à travers
+    les formulaires.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_CONF_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier de configuration.</simpara>
+    <simpara>Valeur par défaut : <emphasis>conf/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_OBJECTS_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier de configuration.</simpara>
+    <simpara>Valeur par défaut : <emphasis>LS_CONF_DIR/LSobjects/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_INCLUDE_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier d'inclusion.</simpara>
+    <simpara>Valeur par défaut : <emphasis>includes/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_CLASS_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier d'inclusion des classes.</simpara>
+    <simpara>Valeur par défaut : <emphasis>LS_INCLUDE_DIR/class/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_LIB_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier d'inclusion des librairies.</simpara>
+    <simpara>Valeur par défaut : <emphasis>LS_INCLUDE_DIR/libs/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_ADDONS_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier d'inclusion des addons.</simpara>
+    <simpara>Valeur par défaut : <emphasis>LS_INCLUDE_DIR/addons/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_JS_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier d'inclusion du JavaScript.</simpara>
+    <simpara>Valeur par défaut : <emphasis>LS_INCLUDE_DIR/js/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_TMP_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant le chemin du dossier des fichiers temporaires.</simpara>
+    <simpara>Valeur par défaut : <emphasis>tmp/</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>$GLOBALS['defaultJSscipts']</term>
+  <listitem>
+    <simpara>Tableau déterminant les fichiers CSS à charger sur toute les pages.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_TEXT_DOMAIN</term>
+  <listitem>
+    <simpara>Constante déterminant le domaine gettext utilisé par le projet.</simpara>
+    <simpara>Valeur par défaut : <emphasis>ldapsaisie</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>LS_I18N_DIR</term>
+  <listitem>
+    <simpara>Constante déterminant chemin du dossier d'internationalisation.</simpara>
+    <simpara>Valeur par défaut : <emphasis>lang</emphasis></simpara>
+  </listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect2>
+
 &conf-LSformat;
 &conf-LDAP_search_params;
 
index ff41a96..ab4c852 100644 (file)
@@ -60,7 +60,7 @@
   <link linkend="install-download">Plus de détails</link></simpara></listitem>
   
   <listitem><simpara>Configuration globale : Cette partie est principalement 
-  contenue dans le fichier <emphasis>conf/config.inc.php</emphasis>.Il s'agit en
+  contenue dans le fichier <emphasis>conf/config.inc.php</emphasis>. Il s'agit en
   particulier de configurer la connexion à votre annuaire. Pour plus de détails,
   reportez-vous à <link linkend="config-globale">la section concernée</link>.
   </simpara>
index b1c626d..98834b7 100644 (file)
@@ -1,6 +1,109 @@
-Pré-requis :
-       - Php 5 : magic_quotes_gpc = off
-       - php5-mhash
-       - Net_LDAP2  (http://pear.php.net/package/Net_LDAP2)
-       - Smarty (http://www.smarty.net/)
-       - tmp/ et template_c/ en ecriture
+ INSTALLATION
+===================
+
+1. Pré-requis
+=============
+
+    * PHP 5 avec magic_quotes_gpc à off
+    * Le support LDAP dans PHP (paquet php5-ldap dans Debian)
+    * Le support mhash dans PHP (paquet php5-mash dans Debian)
+    * Net_LDAP2
+    * Smarty
+    * L'utisateur exécutant le serveur web doit avoir les droits d'écriture sur le dossier 'tmp'.
+
+[Avertissement]
+
+La librairie Net_LDAP2 oblige le fait que la racine DSE de l'annuaire soit lisible en anonyme sinon la connexion à l'annuaire échouera systématiquement.
+
+
+2. Téléchargement
+=================
+
+Il n'existe pas encore de version stable publiée. Vous pouvez obtenir le code source soit en le rapatriant à partir du serveur Subversion, soit en téléchargeant le dernier snapshot nocturne de l'arbre Subversion.
+
+2.1. A partir de Subversion
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Le dépôt Subversion peut être récupéré anonymement en utilisant la commande suivante :
+
+      svn checkout svn://labs.libre-entreprise.org/svnroot/ldapsaisie
+    
+
+La racine web de l'application se trouvera alors dans le dossier /ldapsaisie/trunk/.
+
+2.2. A partir des snapshot
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Toutes les nuits, un snapshot de l'arbre Subversion est réalisé et est téléchargeable au format tar.gz à l'adresse suivante : http://labs.libre-entreprise.org/snapshots.php?group_id=118
+
+
+3. Arborescence du projet
+=========================
+
+Racine
+
+conf/
+
+    Contient les fichiers de configuration.
+
+    LSobjects/
+        Configuration des LSobjets.
+    LSaddons/
+        Configuration des LSaddons.
+
+includes/
+
+    Contient les fichiers des ressources.
+
+    addons/
+        Les addons au projet.
+    class/
+        Les fichiers de définition des classes PHP.
+    js/
+        Les fichiers Javascript.
+    libs/
+        Les librairies utilisées.
+
+l10n/
+    Les fichiers d'internationalisation.
+lsexample/
+    Les fichiers relatifs à l'annuaire d'exemple.
+templates/
+    Les fichiers template de l'interface. Il y a un sous-dossier par template.
+css/
+    Les fichiers css de l'interface. Il y a un sous-dossier par template CSS.
+images/
+    Les images de l'interface. Il y a un sous-dossier par template d'image.
+tmp/
+    Les fichiers temporaires (y compris le cache des templates).
+
+
+4. Les étapes de l'installation
+===============================
+
+Cette section décrit rapidement les différentes étapes de l'installation de LdapSaisie.
+
+   1. Téléchargement et décompression si nécessaire. (Cf : 2. Téléchargement)
+
+   2. Configuration globale : Cette partie est principalement contenue dans le fichier conf/config.inc.php. Il s'agit en particulier de configurer la connexion à votre annuaire. Pour plus de détails, consulter la documentation du projet. [1]
+
+      [Note]
+      Il est possible de passer l'application en mode debug ce qui peut être utile par la suite.
+
+   3. Configuration des types de LSobjects : Chaque type d'objet manipulé par LdapSaisie doit correspondre avec un type de LSobject.
+
+         1. Création du fichier de classe : Ce fichier contient la déclaration de la classe PHP correspondant au type de LSobject. Cette classe étend la classe LSldapObject qui contient pour ainsi dire toute les méthodes et proprités nécessaires pour les types de LSobject simples (sans LSrelation). Les fichiers des classes sont contenus dans le dossier /includes/class/ et portent les noms composés de la manière suivante :
+
+            class.LSobjects.[nom du type d'LSobject].php
+
+            Le plus simple pour cette étape est de recopier un des fichiers d'exemple et de l'adapter en changeant le nom du type d'objet dans l'ensemble du fichier. Pour cela, le fichier de classe du type LSeepeople est le plus simple car il ne contient que le strict minimum.
+
+         2. Configurer vos LSobject : Cette partie est certainement la plus longue et consiste à déclarer l'ensemble des informations relatives aux types des objets LDAP manipulés. Les fichiers d'exemples fournis vous seront certainement d'une aide précieuse. Pour plus de détails, consulter la documentation du projet. [1]
+
+         3. Configurer si nécessaire les relations entre les objets appelés LSrelations. Cette opération consiste dans un premier temps à écrire les méthodes PHP nécessaires pour gérer ces relations : pour cela regardez le fichier de classe du type LSeegroup. Il faudra ensuite déclarer ces relations dans la configuration des types d'LSobjects : Pour plus de détails, consulter la documentation du projet. [1]
+
+   4. Personnaliser l'interface : Il est possible de personnaliser à votre goût l'interface en écrivant votre template ou en modifiant simplement les fichiers CSS. Une partie de cette documentation concernera bientôt cette problématique. Patience...
+
+Liens
+=====
+ 1. Documentation du projet : http://ldapsaisie.easter-eggs.org/doku.php?id=doc
index a8e4bb7..a2b6d02 100644 (file)
@@ -29,13 +29,13 @@ $GLOBALS['LSobjects']['LSeecompany'] = array (
   'orderby' => 'displayName',  // possible cases : 'displayName' ou 'subDn'
   'container_dn' => 'ou=companies',
   'display_name_format' => '%{ou}',
-  'label' => _('Company'),
+  'label' => 'Company',
   
   'attrs' => array (
   
     /* ----------- start -----------*/
     'ou' => array (
-      'label' => _('Name'),
+      'label' => 'Name',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -56,7 +56,7 @@ $GLOBALS['LSobjects']['LSeecompany'] = array (
     
     /* ----------- start -----------*/
     'description' => array (
-      'label' => _('Description'),
+      'label' => 'Description',
       'ldap_type' => 'ascii',
       'html_type' => 'textarea',
       'required' => 0,
@@ -75,7 +75,7 @@ $GLOBALS['LSobjects']['LSeecompany'] = array (
     
     /* ----------- start -----------*/
     'lsGodfatherDn' => array (
-      'label' => _('Accountable(s)'),
+      'label' => 'Accountable(s)',
       'ldap_type' => 'ascii',
       'html_type' => 'select_object',
       'html_options' => array(
@@ -88,7 +88,7 @@ $GLOBALS['LSobjects']['LSeecompany'] = array (
         array (
           'basedn' => '%{val}',
           'result' => 1,
-          'msg' => _("One or several of these users don't exist.")
+          'msg' => "One or several of these users don't exist."
         )
       ),
       'multiple' => 1,
index a5807d0..021f01a 100644 (file)
@@ -38,18 +38,18 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
     )
   ),
   'display_name_format' => '%{cn}',
-  'label' => _('Groups'),
+  'label' => 'Groups',
   'attrs' => array (
   
     /* ----------- start -----------*/
     'cn' => array (
-      'label' => _('Name'),
+      'label' => 'Name',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
       'check_data' => array (
         'alphanumeric' => array(
-          'msg' => _('Name must contain alphanumeric values only.')
+          'msg' => 'Name must contain alphanumeric values only.'
         ),
       ),
       'validation' => array (
@@ -73,7 +73,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
     
     /* ----------- start -----------*/
     'gidNumber' => array (
-      'label' => _('Identifier'),
+      'label' => 'Identifier',
       'ldap_type' => 'numeric',
       'html_type' => 'text',
       'required' => 1,
@@ -97,7 +97,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
     
     /* ----------- start -----------*/
     'uniqueMember' => array (
-      'label' => _('Members'),
+      'label' => 'Members',
       'ldap_type' => 'ascii',
       'html_type' => 'select_object',
       'html_options' => array(
@@ -132,7 +132,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
     
     /* ----------- start -----------*/
     'description' => array (
-      'label' => _('Description'),
+      'label' => 'Description',
       'ldap_type' => 'ascii',
       'html_type' => 'textarea',
       'multiple' => 1,
@@ -151,7 +151,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
     
     /* ----------- start -----------*/
     'lsGodfatherDn' => array (
-      'label' => _('Accountable(s)'),
+      'label' => 'Accountable(s)',
       'ldap_type' => 'ascii',
       'html_type' => 'select_object',
       'html_options' => array (
@@ -164,7 +164,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
         array (
           'basedn' => '%{val}',
           'result' => 1,
-          'msg' => _("One or several of these users don't exist.")
+          'msg' => "One or several of these users don't exist."
         )
       ),
       'multiple' => 1,
index 86594fb..1f06de4 100644 (file)
@@ -46,13 +46,13 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
   //'after_create' => 'createMaildirByFTP',
   //'after_delete' => 'removeMaildirByFTP',
   'display_name_format' => '%{cn}',
-  'label' => _('Users'),
+  'label' => 'Users',
   
   // LSrelation
   'LSrelation' => array(
     'groups' => array(
-      'label' => _('Belongs to groups ...'),
-      'emptyText' => _("Doesn't belong to any group."),
+      'label' => 'Belongs to groups ...',
+      'emptyText' => "Doesn't belong to any group.",
       'LSobject' => 'LSeegroup',
       'list_function' => 'listUserGroups',
       'getkeyvalue_function' => 'getMemberKeyValue',
@@ -72,7 +72,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
     // Layout
     'layout' => array (
       'Civilite' => array(
-        'label' => _('Civility'),
+        'label' => 'Civility',
         'img' => 1, 
         'args' => array (
           'uid',
@@ -122,7 +122,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
   
     /* ----------- start -----------*/
     'uid' => array (
-      'label' => _('Identifier'),
+      'label' => 'Identifier',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'html_options' => array(
@@ -135,7 +135,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
       'required' => 1,
       'check_data' => array (
         'regex' => array(
-          'msg' => _("Identifier must contain alphanumeric values, dots (.) and dashes (-) only."),
+          'msg' => "Identifier must contain alphanumeric values, dots (.) and dashes (-) only.",
           'params' => array('regex' => '/^[a-zA-Z0-9-_\.]*$/')
         ),
       ),
@@ -143,7 +143,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
         array (
           'filter' => 'uid=%{val}',
           'result' => 0,
-          'msg' => _('This identifier is already used.')
+          'msg' => 'This identifier is already used.'
         )
       ),
       'rights' => array(
@@ -164,21 +164,21 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'uidNumber' => array (
-      'label' => _('Numeric identifier'),
+      'label' => 'Numeric identifier',
       'ldap_type' => 'numeric',
       'html_type' => 'text',
       'required' => 1,
       'generate_function' => 'generate_uidNumber',
       'check_data' => array (
         'numeric' => array(
-          'msg' => _("The numeric identifier must be an integer.")
+          'msg' => "The numeric identifier must be an integer."
         ),
       ),
       'validation' => array (
         array (
           'filter' => 'uidNumber=%{val}',
           'result' => 0,
-          'msg' => _('This uid is already used.')
+          'msg' => 'This uid is already used.'
         )
       ),
       'rights' => array(
@@ -193,14 +193,14 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'givenName' => array (
-      'label' => _('First Name'),
+      'label' => 'First Name',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
       'default_value' => 'toto',
       'check_data' => array (
         'alphanumeric' => array(
-          'msg' => _('The first name must contain alphanumeric values only.')
+          'msg' => 'The first name must contain alphanumeric values only.'
         ),
       ),
       'rights' => array(
@@ -220,7 +220,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'sn' => array (
-      'label' => _('Last Name'),
+      'label' => 'Last Name',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -240,7 +240,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'cn' => array (
-      'label' => _('Full Name'),
+      'label' => 'Full Name',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'html_options' => array(
@@ -266,7 +266,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'gidNumber' => array (
-      'label' => _('Main group'),
+      'label' => 'Main group',
       'ldap_type' => 'numeric',
       'html_type' => 'select_list',
       'html_options' => array (
@@ -293,7 +293,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
       'required' => 1,
       'validation' => array (
         array (
-          'msg' => _("This group doesn't exist."),
+          'msg' => "This group doesn't exist.",
           'object_type' => 'LSeegroup',           // 'object_type' : Permet definir le type d'objet recherchés
           //'basedn' => 'o=company',                    // et d'utiliser les objectClass définis dans le fichier de configuration
           'filter' => '(gidNumber=%{val})',       // pour la recherche
@@ -314,8 +314,8 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'loginShell' => array (
-      'label' => _('Command shell'),
-      'help_info' => _("Allow user to connect a POSIX system."),
+      'label' => 'Command shell',
+      'help_info' => "Allow user to connect a POSIX system.",
       'ldap_type' => 'boolean',
       'ldap_options' => array (
         'true_value' => '/bin/bash',
@@ -337,7 +337,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'sambaSID' => array (
-      'label' => _('Samba Identifier'),
+      'label' => 'Samba Identifier',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -353,7 +353,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'homeDirectory' => array (
-      'label' => _('Home Directory'),
+      'label' => 'Home Directory',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -367,7 +367,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'mail' => array (
-      'label' => _('E-mail address'),
+      'label' => 'E-mail address',
       'ldap_type' => 'ascii',
       'html_type' => 'mail',
       'html_options' => array(
@@ -379,7 +379,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
       'required' => 1,
       'check_data' => array (
         'email' => array(
-          'msg' => _("Given email address is invalid."),
+          'msg' => "Given email address is invalid.",
           'params' => array('checkDomain' => false)
         ),
       ),
@@ -399,7 +399,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'personalTitle' => array (
-      'label' => _('Civility'),
+      'label' => 'Civility',
       'ldap_type' => 'ascii',
       'html_type' => 'select_list',
       'html_options' => array (
@@ -427,7 +427,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'description' => array (
-      'label' => _('Description'),
+      'label' => 'Description',
       'ldap_type' => 'ascii',
       'html_type' => 'textarea',
       'multiple' => 1,
@@ -447,7 +447,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'userPassword' => array (
-      'label' => _('Password'),
+      'label' => 'Password',
       'ldap_type' => 'password',
       'ldap_options' => array (
         'encode' => 'md5'
@@ -502,7 +502,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'lsRecoveryHash' => array (
-      'label' => _('Password recovery hash'),
+      'label' => 'Password recovery hash',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 0,
@@ -518,7 +518,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'sambaLMPassword' => array (
-      'label' => _('Samba Password (LM)'),
+      'label' => 'Samba Password (LM)',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -531,7 +531,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'sambaNTPassword' => array (
-      'label' => _('Samba Password (NT)'),
+      'label' => 'Samba Password (NT)',
       'ldap_type' => 'ascii',
       'html_type' => 'text',
       'required' => 1,
@@ -544,26 +544,26 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
 
     /* ----------- start -----------*/
     'jpegPhoto' => array (
-      'label' => _('Picture'),
+      'label' => 'Picture',
       'ldap_type' => 'image',
       'html_type' => 'image',
       'required' => 0,
       'view' => 1,
       'check_data' => array (
         'imagesize' => array(
-          'msg' => _("Picture size is not valid."),
+          'msg' => "Picture size is not valid.",
           'params' => array(
             'maxWidth' => 2000
           )
         ),
         'filesize' => array(
-          'msg' => _("File size is not valid."),
+          'msg' => "File size is not valid.",
           'params' => array(
             'maxSize' => 3000000   // taille du fichier en octets
           )
         ),
         'imagefile' => array(
-          'msg' => _("File type is not valid.")
+          'msg' => "File type is not valid."
         )
       ),
       'form' => array (
@@ -580,7 +580,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
     
     /* ----------- start -----------*/
     'lsGodfatherDn' => array (
-      'label' => _('Accountable(s)'),
+      'label' => 'Accountable(s)',
       'ldap_type' => 'ascii',
       'html_type' => 'select_object',
       'html_options' => array (
@@ -593,7 +593,7 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
         array (
           'basedn' => '%{val}',
           'result' => 1,
-          'msg' => _("One or several users don't exist.")
+          'msg' => "One or several users don't exist."
         )
       ),
       'multiple' => 1,
index 251a02f..2482887 100644 (file)
 
 ******************************************************************************/
 
-
-// Définitions des locales
-define('LS_TEXT_DOMAIN', 'ldapsaisie');
-define('LS_LOCALE', 'fr_FR.UTF8');
-
-setlocale(LC_ALL,  LS_LOCALE);
-bindtextdomain(LS_TEXT_DOMAIN, 'lang');
-textdomain(LS_TEXT_DOMAIN);
-
 // Configuration LDAP Saisie :
 $GLOBALS['LSconfig'] = array(
   'NetLDAP2' => '/usr/share/php/Net/LDAP2.php',
   'Smarty' => '/usr/share/php/smarty/libs/Smarty.class.php',
-  'lang' => 'fr_FR.UTF8',
+  'lang' => 'fr_FR',
+  'encoding' => 'UTF8',
   'cacheLSprofiles' => true,
   'cacheSubDn' => true,
   'cacheSearch' => true,
@@ -128,7 +120,7 @@ $GLOBALS['LSconfig'] = array(
         )
       ),
       'authObjectType' => 'LSeepeople',
-      'subDnLabel' => _('Company'),
+      'subDnLabel' => 'Company',
       'subDn' => array(
         '== Toutes ==' => array(
           'dn' => 'o=ls',
@@ -215,4 +207,8 @@ ini_set( 'magic_quotes_gpc', 'off' );
 ini_set( 'magic_quotes_sybase', 'off' );
 ini_set( 'magic_quotes_runtime', 'off' );
 
+// Locale
+define('LS_TEXT_DOMAIN', 'ldapsaisie');
+define('LS_I18N_DIR', 'lang');
+
 ?>
index fa2b4a1..ac00282 100644 (file)
   display:                  none;
 }
 
+#LSlang_select {
+  display:                  none;
+  background-color:         #000;
+  -moz-border-radius:       8px;
+  position:                 absolute;
+  max-width:                200px;
+  padding:                  5px;
+}
+
+#LSlang_select img {
+  vertical-align:           middle;
+}
+
 #LSdebug {
   width:                    50%;
   position:                 absolute;
diff --git a/trunk/images/default/en_US.png b/trunk/images/default/en_US.png
new file mode 100755 (executable)
index 0000000..10f451f
Binary files /dev/null and b/trunk/images/default/en_US.png differ
diff --git a/trunk/images/default/fr_FR.png b/trunk/images/default/fr_FR.png
new file mode 100755 (executable)
index 0000000..8332c4e
Binary files /dev/null and b/trunk/images/default/fr_FR.png differ
index 999bc9f..2d7e1cc 100644 (file)
@@ -62,10 +62,10 @@ class LSattr_html {
    */
   function getLabel() {
     if ( $this -> config['label'] != '' ) {
-      return $this -> config['label'];
+      return __($this -> config['label']);
     }
     else {
-      return $this -> name;
+      return __($this -> name);
     }
   }
   
index 1264ffd..0001b9f 100644 (file)
@@ -243,8 +243,12 @@ class LSattribute {
                 LSerror :: addErrorCode('LSattribute_03',array('attr' => $this->name,'rule' => $rule));
                 return;
               }
-              if(!isset($rule_infos['msg']))
-                $rule_infos['msg']=getFData(_('The value of field %{label} is invalid.'),$this -> config['label']);
+              if(!isset($rule_infos['msg'])) {
+                $rule_infos['msg']=getFData(_('The value of field %{label} is invalid.'),$this -> getLabel());
+              }
+              else {
+                $rule_infos['msg']=__($rule_infos['msg']);
+              }
               if(!isset($rule_infos['params']))
                 $rule_infos['params']=NULL;
               $form -> addRule($this -> name,$rule,array('msg' => $rule_infos['msg'], 'params' => $rule_infos['params']));
index 684d2f5..92802a7 100644 (file)
@@ -236,13 +236,13 @@ class LSformElement {
    */
   function getLabel() {
     if ($this -> label != "") {
-      return $this -> label;
+      return __($this -> label);
     }
     else if ($this -> params['label']) {
-      return $this -> params['label'];
+      return __($this -> params['label']);
     }
     else {
-      return $this -> name;
+      return __($this -> name);
     }
   }
 
index 88da827..baf97fb 100644 (file)
@@ -1091,7 +1091,7 @@ class LSldapObject {
    * @retval string Le label de l'objet ($this -> config['label'])
    */
   function getLabel() {
-    return $this -> config['label'];
+    return __($this -> config['label']);
   }
   
   
index a9197ca..a9aa33c 100644 (file)
@@ -56,7 +56,7 @@ class LSrelation {
       foreach($object -> config['LSrelation'] as $relationName => $relationConf) {
         if (LSsession :: relationCanAccess($object -> getValue('dn'),$object->getType(),$relationName)) {
           $return=array(
-            'label' => $relationConf['label'],
+            'label' => __($relationConf['label']),
             'LSobject' => $relationConf['LSobject']
           );
           
index ab7cbf6..e549650 100644 (file)
@@ -56,6 +56,10 @@ class LSsession {
   // Les fichiers temporaires
   private static $tmp_file = array();
   
+  // Langue et encodage actuel
+  private static $lang = NULL;
+  private static $encoding = NULL;
+  
   /*
    * Constante de classe non stockée en session
    */
@@ -246,7 +250,111 @@ class LSsession {
     return true;
   }
 
-/**
+ /**
+  * Défini la locale
+  * 
+  * @retval void
+  */
+  public static function setLocale() {
+    if (isset($_REQUEST['lang'])) {
+      $lang = $_REQUEST['lang'];
+    }
+    elseif (isset($_SESSION['LSlang'])) {
+      $lang = $_SESSION['LSlang'];
+    }
+    elseif (isset(self :: $ldapServer['lang'])) {
+      $lang = self :: $ldapServer['lang'];
+    }
+    else {
+      $lang = $GLOBALS['LSconfig']['lang'];
+    }
+    
+    if (isset($_REQUEST['encoding'])) {
+      $encoding = $_REQUEST['encoding'];
+    }
+    elseif (isset($_SESSION['LSencoding'])) {
+      $encoding = $_SESSION['LSencoding'];
+    }
+    elseif (isset(self :: $ldapServer['encoding'])) {
+      $encoding = self :: $ldapServer['encoding'];
+    }
+    else {
+      $encoding = $GLOBALS['LSconfig']['encoding'];
+    }
+    
+    $_SESSION['LSlang']=$lang;
+    self :: $lang=$lang;
+    $_SESSION['LSencoding']=$encoding;
+    self :: $encoding=$encoding;
+    
+
+    if (self :: localeExist($lang,$encoding)) {
+      if ($encoding) {
+        $lang.='.'.$encoding;
+      }
+      setlocale(LC_ALL, $lang);
+      bindtextdomain(LS_TEXT_DOMAIN, LS_I18N_DIR);
+      textdomain(LS_TEXT_DOMAIN);
+      
+      if (is_file(LS_I18N_DIR.'/'.$lang.'/lang.php')) {
+        include(LS_I18N_DIR.'/'.$lang.'/lang.php');
+      }
+    }
+    else {
+      if ($encoding && $lang) {
+        $lang.='.'.$encoding;
+      }
+      LSdebug('La locale "'.$lang.'" n\'existe pas, utilisation de la locale par défaut.');
+    }
+  }
+  
+ /**
+  * Retourne la liste des langues disponibles
+  * 
+  * @retval array Tableau/Liste des langues disponibles
+  **/ 
+  public static function getLangList() {
+    $list=array('en_US');
+    if (self :: $encoding) {
+      $regex = '^([a-zA-Z_]*)\.'.self :: $encoding.'$';
+    }
+    else {
+      $regex = '^([a-zA-Z_]*)$';
+    }
+    if ($handle = opendir(LS_I18N_DIR)) {
+      while (false !== ($file = readdir($handle))) {
+        if(is_dir(LS_I18N_DIR.'/'.$file)) {
+          if (ereg($regex,$file,$regs)) {
+            if (!in_array($regs[1],$list)) {
+              $list[]=$regs[1];
+            }
+          }
+        }
+      }
+    }
+    return $list;
+  }
+  
+ /**
+  * Vérifie si une locale est disponible
+  * 
+  * @param[in] $lang string La langue (Ex : fr_FR)
+  * @param[in] $encoding string L'encodage de caractère (Ex : UTF8)
+  * 
+  * @retval boolean True si la locale est disponible, False sinon
+  **/
+  public static function localeExist($lang,$encoding) {
+    if ( !$lang && !$encoding ) {
+      return;
+    }
+    $locale=$lang.(($encoding)?'.'.$encoding:'');
+    if ($locale=='en_US.UTF8') {
+      return true;
+    }
+    return (is_dir(LS_I18N_DIR.'/'.$locale));
+  }
+
+ /**
   * Initialisation LdapSaisie
   *
   * @retval boolean True si l'initialisation à réussi, false sinon.
@@ -254,7 +362,11 @@ class LSsession {
   public static function initialize() {
     if (!self :: loadConfig()) {
       return;
-    }   
+    }
+    session_start();
+    
+    self :: setLocale();
+    
     self :: startLSerror();
     self :: loadLSaddons();
     return true;
@@ -276,8 +388,6 @@ class LSsession {
       return;
     }   
 
-    session_start();
-
     // Déconnexion
     if (isset($_GET['LSsession_logout'])||isset($_GET['LSsession_recoverPassword'])) {
       session_destroy();
@@ -666,6 +776,7 @@ class LSsession {
     if ( isset($GLOBALS['LSconfig']['ldap_servers'][$id]) ) {
       self :: $ldapServerId = $id;
       self :: $ldapServer=$GLOBALS['LSconfig']['ldap_servers'][$id];
+      self :: setLocale();
       return true;
     }
     else {
@@ -1075,6 +1186,11 @@ class LSsession {
       $GLOBALS['Smarty'] -> assign('LSsession_subDn',self :: $topDn);
       $GLOBALS['Smarty'] -> assign('LSsession_subDnName',self :: getSubDnName());
     }
+    
+    $GLOBALS['Smarty'] -> assign('LSlanguages',self :: getLangList());
+    $GLOBALS['Smarty'] -> assign('LSlang',self :: $lang);
+    $GLOBALS['Smarty'] -> assign('LSencoding',self :: $encoding);
+    $GLOBALS['Smarty'] -> assign('lang_label',_('Language'));
 
     // Infos
     if((!empty($_SESSION['LSsession_infos']))&&(is_array($_SESSION['LSsession_infos']))) {
@@ -1328,7 +1444,7 @@ class LSsession {
     foreach($LSaccess as $dn => $access) {
       $LSaccess[$dn] = array_merge(
         array(
-          'SELF' => _('My account')
+          'SELF' => 'My account'
         ),
         $access
       );
@@ -1691,7 +1807,7 @@ class LSsession {
    * @retval string Le label des niveaux pour le serveur ldap dourant
    */
   public static function getSubDnLabel() {
-    return (self :: $ldapServer['subDnLabel']!='')?self :: $ldapServer['subDnLabel']:_('Level');
+    return (self :: $ldapServer['subDnLabel']!='')?_(self :: $ldapServer['subDnLabel']):_('Level');
   }
   
   /**
index 97ea084..43700c0 100644 (file)
@@ -421,4 +421,21 @@ function LSdebugDefined() {
       fwrite($LSlogFile,$_SERVER['REQUEST_URI']." : ".$msg."\n");
     }
   }
+  
+  function __($msg) {
+    if (isset($GLOBALS['LSlang'][$msg])) {
+      return $GLOBALS['LSlang'][$msg];
+    }
+    return _($msg);
+  }
+  
+  function tr($msg,$key=null) {
+    $val = $GLOBALS['Smarty']->get_template_vars($msg);
+    if (is_array($val)) {
+      echo __($val[$key]);
+    }
+    else {
+      echo __($val);
+    }
+  }
 ?>
index 9fd4b5f..fc93997 100644 (file)
@@ -70,6 +70,44 @@ var LSdefault = new Class({
         this.LSjsConfig['keepLSsessionActive'] = (Math.round(this.LSjsConfig['keepLSsessionActive']*0.70)*1000);
         this.keepLSsession.delay(this.LSjsConfig['keepLSsessionActive'],this);
       }
+      
+      this.initializeLang();
+    },
+    
+    initializeLang: function() {
+      this.LSlang = $('LSlang');
+      if ($type(this.LSlang)) {
+        this.LSlang_select = $('LSlang_select');
+        if (this.LSlang_select) {
+          this.LSlang_open=0;
+          window.addEvent('click',this.closeLSlang.bind(this));
+          this.LSlang.addEvent('click',this.onLSlangClick.bind(this));
+          this.LSlang_select.getElements('img').each(function(img) {
+            img.addEvent('click',this.onSelectLSlangImgClick.bind(this,img));
+          },this);
+        }
+      }
+    },
+    
+    onLSlangClick: function() {
+      LSdebug(this.LSlang_select);
+      var infos = this.LSlang.getCoordinates();
+      this.LSlang_select.setStyle('top',infos.bottom);
+      this.LSlang_select.setStyle('left',infos.right);
+      this.LSlang_select.setStyle('display','block');
+      this.LSlang_open=1;
+    },
+    
+    closeLSlang: function(event) {
+      event = new Event(event);
+      if (event.target.id!='LSlang') {
+        this.LSlang_select.setStyle('display','none');
+        this.LSlang_open = 0;
+      }
+    },
+    
+    onSelectLSlangImgClick: function(img) {
+      window.location='index.php?lang='+img.alt;
     },
 
     onWantMoo: function(event) {
index ad9f249..75833c1 100644 (file)
Binary files a/trunk/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo and b/trunk/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo differ
index 8515443..1a8e789 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: LdapSaisie\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-16 11:36+0100\n"
-"PO-Revision-Date: 2009-03-16 11:46+0100\n"
+"POT-Creation-Date: 2009-03-19 17:11+0100\n"
+"PO-Revision-Date: 2009-03-19 18:40+0100\n"
 "Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
 "Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise.org>\n"
 "MIME-Version: 1.0\n"
@@ -20,8 +20,7 @@ msgstr ""
 "X-Poedit-Basepath: /var/www/ldapsaisie/trunk\n"
 
 #: select.php:186
-#: includes/class/class.LSsession.php:1066
-#: view.php:245
+#: includes/class/class.LSsession.php:1173
 msgid "Refresh"
 msgstr "Rafraîchir"
 
@@ -61,7 +60,7 @@ msgid "Do you really want to delete"
 msgstr "Voulez-vous vraiement supprimer"
 
 #: remove.php:49
-#: includes/class/class.LSsession.php:909
+#: includes/class/class.LSsession.php:1016
 #: includes/class/class.LSconfirmBox.php:37
 #: includes/class/class.LSsmoothbox.php:39
 #: includes/class/class.LSform.php:63
@@ -73,8 +72,6 @@ msgid "Object has been added."
 msgstr "L'objet a été ajouté."
 
 #: create.php:89
-#: view.php:220
-#: view.php:235
 msgid "New"
 msgstr "Nouveau"
 
@@ -226,150 +223,146 @@ msgstr "Support FTP : Impossible de modifier les droits sur le dossier %{dir} su
 msgid "FTP Support : Unable to rename folder from %{old} to %{new} on the remote server."
 msgstr "Support FTP : Impossible de renommer le dossier %{old} en %{new} sur le serveur distant."
 
-#: includes/class/class.LSsession.php:849
+#: includes/class/class.LSsession.php:956
 msgid "Connection"
 msgstr "Connexion"
 
-#: includes/class/class.LSsession.php:859
-#: includes/class/class.LSsession.php:898
+#: includes/class/class.LSsession.php:966
+#: includes/class/class.LSsession.php:1005
 msgid "LDAP server"
 msgstr "Serveur LDAP"
 
-#: includes/class/class.LSsession.php:869
-#: includes/class/class.LSsession.php:1694
+#: includes/class/class.LSsession.php:976
+#: includes/class/class.LSsession.php:1805
 msgid "Level"
 msgstr "Niveau"
 
-#: includes/class/class.LSsession.php:870
-#: includes/class/class.LSsession.php:908
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:76
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:125
+#: includes/class/class.LSsession.php:977
+#: includes/class/class.LSsession.php:1015
 msgid "Identifier"
 msgstr "Identifiant"
 
-#: includes/class/class.LSsession.php:871
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:450
+#: includes/class/class.LSsession.php:978
 msgid "Password"
 msgstr "Mot de passe"
 
-#: includes/class/class.LSsession.php:872
+#: includes/class/class.LSsession.php:979
 msgid "Connect"
 msgstr "Se connecter"
 
-#: includes/class/class.LSsession.php:873
+#: includes/class/class.LSsession.php:980
 msgid "Forgot your password ?"
 msgstr "Mot de passe perdu ?"
 
-#: includes/class/class.LSsession.php:891
+#: includes/class/class.LSsession.php:998
 msgid "Recovery of your credentials"
 msgstr "Récupération de votre mot de passe"
 
-#: includes/class/class.LSsession.php:910
+#: includes/class/class.LSsession.php:1017
 msgid "Back"
 msgstr "Retour"
 
-#: includes/class/class.LSsession.php:912
+#: includes/class/class.LSsession.php:1019
 msgid "Please fill the identifier field to proceed recovery procedure"
 msgstr "Merci d'entrer votre identifiant pour poursuivre la procédure de récupération"
 
-#: includes/class/class.LSsession.php:916
+#: includes/class/class.LSsession.php:1023
 msgid "An email has been sent to  %{mail}. Please follow the instructions on it."
 msgstr "Un e-mail vient de vous être envoyé à l'adresse %{mail}. Merci de suivre les indications qu'il contient."
 
-#: includes/class/class.LSsession.php:924
+#: includes/class/class.LSsession.php:1031
 msgid "Your new password has been sent to %{mail}. "
 msgstr "Votre nouveau mot de passe vous a été envoyé à l'adresse %{mail}."
 
-#: includes/class/class.LSsession.php:1101
+#: includes/class/class.LSsession.php:1188
+msgid "Language"
+msgstr "Langue"
+
+#: includes/class/class.LSsession.php:1212
 msgid "Connected as"
 msgstr "Connecté en tant que"
 
-#: includes/class/class.LSsession.php:1331
-#: view.php:72
-msgid "My account"
-msgstr "Mon compte"
-
-#: includes/class/class.LSsession.php:1822
+#: includes/class/class.LSsession.php:1933
 msgid "LSsession : The constant %{const} is not defined."
 msgstr "LSsession : La constante %{const} n'est pas définie."
 
-#: includes/class/class.LSsession.php:1825
+#: includes/class/class.LSsession.php:1936
 msgid "LSsession : The %{addon} support is uncertain. Verify system compatibility and the add-on configuration."
 msgstr "LSsession : Le support %{addon} est incertain. Vérifiez la compatibilité du système et la configuration de l'add-on."
 
-#: includes/class/class.LSsession.php:1828
+#: includes/class/class.LSsession.php:1939
 msgid "LSsession : LDAP server's configuration data are invalid. Can't connect."
 msgstr "LSsession : Les données de configuration du serveur LDAP sont invalide. Impossible de s'y connecter."
 
-#: includes/class/class.LSsession.php:1831
+#: includes/class/class.LSsession.php:1942
 msgid "LSsession : Failed to load LSobject type %{type} : unknon type."
 msgstr "LSsession : Impossible de charger le type d'LSobject %{type} : type inconnu."
 
-#: includes/class/class.LSsession.php:1838
+#: includes/class/class.LSsession.php:1949
 msgid "LSsession : Login or password incorrect."
 msgstr "LSsession : Identifiant ou mot de passe incorrects."
 
-#: includes/class/class.LSsession.php:1841
+#: includes/class/class.LSsession.php:1952
 msgid "LSsession : Impossible to identify you : Duplication of identities."
 msgstr "LSsession : Impossible de vous identifier : Duplication d'identité."
 
-#: includes/class/class.LSsession.php:1844
+#: includes/class/class.LSsession.php:1955
 msgid "LSsession : Can't load Smarty template engine."
 msgstr "LSsession : Impossible de charger le moteur de gestion de template Smarty."
 
-#: includes/class/class.LSsession.php:1847
+#: includes/class/class.LSsession.php:1958
 msgid "LSsession : Can't connect to LDAP server."
 msgstr "LSsession : Impossible de se connecter au serveur LDAP."
 
-#: includes/class/class.LSsession.php:1850
+#: includes/class/class.LSsession.php:1961
 msgid "LSsession : Could not load type of identifiable objects."
 msgstr "LSsession : Impossible de charger le moteur de gestion de template Smarty."
 
-#: includes/class/class.LSsession.php:1853
+#: includes/class/class.LSsession.php:1964
 msgid "LSsession : Your are not authorized to do this action."
 msgstr "LSsession : Vous n'êtes pas autorisé à faire cette action."
 
-#: includes/class/class.LSsession.php:1856
+#: includes/class/class.LSsession.php:1967
 msgid "LSsession : Some informations are missing to display this page."
 msgstr "LSsession : Des informations sont manquant pour afficher cette page."
 
-#: includes/class/class.LSsession.php:1860
+#: includes/class/class.LSsession.php:1971
 msgid "LSsession : Error during creation of list of levels. Contact administrators. (Code : %{code})"
 msgstr "LSsession : Erreur durant la création de la liste des niveaux. Contacter les administrateurs. (Code : %{type})"
 
-#: includes/class/class.LSsession.php:1863
+#: includes/class/class.LSsession.php:1974
 msgid "LSsession : The password recovery is disabled for this LDAP server."
 msgstr "LSsession : La récupération de mot de passe est désactivée pour ce serveur LDAP."
 
-#: includes/class/class.LSsession.php:1866
+#: includes/class/class.LSsession.php:1977
 msgid "LSsession : Some informations are missing to recover your password. Contact administrators."
 msgstr "LSsession : Des informations sont manques pour pouvoir récupérer votre mot de passe. Contacter les administrateurs."
 
-#: includes/class/class.LSsession.php:1869
+#: includes/class/class.LSsession.php:1980
 msgid "LSsession : Error during password recovery. Contact administrators.(Step : %{step})"
 msgstr "LSsession : Erreur durant la récupération de votre mot de passe. Contacter les administrateurs. (Etape : %{step})"
 
-#: includes/class/class.LSsession.php:1873
+#: includes/class/class.LSsession.php:1984
 msgid "LSsession : problem during initialisation."
 msgstr "LSsession : Problème durant l'initialisation."
 
-#: includes/class/class.LSsession.php:1879
+#: includes/class/class.LSsession.php:1990
 msgid "LSrelation : The listing function for the relation %{relation} is unknow."
 msgstr "LSsession : La fonction listant la relation %{relation} est inconnue."
 
-#: includes/class/class.LSsession.php:1882
+#: includes/class/class.LSsession.php:1993
 msgid "LSrelation : The update function of the relation %{relation} is unknow."
 msgstr "LSsession : La fonction de mise à jour de la relation %{relation} est inconnue."
 
-#: includes/class/class.LSsession.php:1885
+#: includes/class/class.LSsession.php:1996
 msgid "LSrelation : Error during relation update of the relation %{relation}."
 msgstr "LSsession : Erreur durant la mise à jour de la relation %{relation}"
 
-#: includes/class/class.LSsession.php:1888
+#: includes/class/class.LSsession.php:1999
 msgid "LSrelation : Object type %{LSobject} unknow (Relation : %{relation})."
 msgstr "LSsession : La fonction de mise à jour de la relation %{relation} est inconnue."
 
-#: includes/class/class.LSsession.php:1891
+#: includes/class/class.LSsession.php:2002
 msgid "LSrelation : Some parameters are missing in the call of methods to handle standard relations (Method : %{meth})."
 msgstr "LSrelation : Des paramètres sont manquant dans l'appel des méthodes de manipulation des relations standards."
 
@@ -427,7 +420,7 @@ msgstr "Annuler"
 
 #: includes/class/class.LSformElement_textarea.php:50
 msgid "Clear"
-msgstr "Nottoyer"
+msgstr "Nettoyer"
 
 #: includes/class/class.LSformElement_url.php:50
 msgid "Display this website."
@@ -837,163 +830,11 @@ msgstr "Réinitiliser la sélection."
 msgid "Copy"
 msgstr "Copier"
 
+#: view.php:72
+msgid "My account"
+msgstr "Mon compte"
+
 #: view.php:380
 msgid "Actions"
 msgstr "Actions"
 
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:32
-#: conf/config.inc.php:131
-msgid "Company"
-msgstr "Société"
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:38
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:46
-msgid "Name"
-msgstr "Nom"
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:59
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:135
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:430
-msgid "Description"
-msgstr "Description"
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:78
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:154
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:583
-msgid "Accountable(s)"
-msgstr "Responsable(s)"
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:91
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:167
-msgid "One or several of these users don't exist."
-msgstr "Un ou plusieurs utilisateurs n'existent pas."
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:41
-msgid "Groups"
-msgstr "Groupes"
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:52
-msgid "Name must contain alphanumeric values only."
-msgstr "Le nom doit contenir uniquement des valeurs alpha-numériques."
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:100
-msgid "Members"
-msgstr "Members"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:49
-msgid "Users"
-msgstr "Utilisateurs"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:54
-msgid "Belongs to groups ..."
-msgstr "Appartient aux groupes ..."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:55
-msgid "Doesn't belong to any group."
-msgstr "N'appartient à aucun groupe."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:75
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:402
-msgid "Civility"
-msgstr "Civilité"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:138
-msgid "Identifier must contain alphanumeric values, dots (.) and dashes (-) only."
-msgstr "L'identifiant doit contenir uniquement des valeurs alpha-numériques, avec eventuellement des points (.) et des tirets (-)."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:146
-msgid "This identifier is already used."
-msgstr "Cet identifiant est déjà utilisé."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:167
-msgid "Numeric identifier"
-msgstr "Identifiant numérique"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:174
-msgid "The numeric identifier must be an integer."
-msgstr "L'identifiant numérique doit forcement être un entier."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:181
-msgid "This uid is already used."
-msgstr "Cet uid est déjà utilisé."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:196
-msgid "First Name"
-msgstr "Prénom"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:203
-msgid "The first name must contain alphanumeric values only."
-msgstr "Le prénom doit contenir uniquement des caractères alpha-numérique."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:223
-msgid "Last Name"
-msgstr "Nom"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:243
-msgid "Full Name"
-msgstr "Nom complet"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:269
-msgid "Main group"
-msgstr "Groupe principal"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:296
-msgid "This group doesn't exist."
-msgstr "Ce groupe n'existe pas."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:317
-msgid "Command shell"
-msgstr "Interpréteur de commande"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:318
-msgid "Allow user to connect a POSIX system."
-msgstr "Autorisie l'utilisateur à se connecter aux systèmes POSIX."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:340
-msgid "Samba Identifier"
-msgstr "Identifiant Samba"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:356
-msgid "Home Directory"
-msgstr "Dossier personnel"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:370
-msgid "E-mail address"
-msgstr "Adresse e-mail"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:382
-msgid "Given email address is invalid."
-msgstr "L'adresse mail saisie est invalide."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:505
-msgid "Password recovery hash"
-msgstr "Hash de récupération de mot de passe"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:521
-msgid "Samba Password (LM)"
-msgstr "Mot de passe Samba (LM)"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:534
-msgid "Samba Password (NT)"
-msgstr "Mot de passe Samba (NT)"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:547
-msgid "Picture"
-msgstr "Image"
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:554
-msgid "Picture size is not valid."
-msgstr "La taille de l'image est invalide."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:560
-msgid "File size is not valid."
-msgstr "La taille du fichier est invalide."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:566
-msgid "File type is not valid."
-msgstr "Le type de fichier est invalide."
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:596
-msgid "One or several users don't exist."
-msgstr "Un ou plusieurs utilisateurs n'existent pas."
-
diff --git a/trunk/lang/fr_FR.UTF8/lang.php b/trunk/lang/fr_FR.UTF8/lang.php
new file mode 100644 (file)
index 0000000..8ab8fae
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+
+$GLOBALS['LSlang'] = array (
+
+"Company" =>
+  "Société",
+
+"Name" =>
+  "Nom",
+
+"Description" =>
+  "Description",
+
+"Accountable(s)" =>
+  "Responsable(s)",
+
+"One or several of these users don't exist." =>
+  "Un ou plusieurs utilisateurs n'existent pas.",
+
+"Groups" =>
+  "Groupes",
+
+"Name must contain alphanumeric values only." =>
+  "Le nom doit contenir uniquement des valeurs alpha-numériques.",
+
+"Members" =>
+  "Members",
+
+"Users" =>
+  "Utilisateurs",
+
+"Belongs to groups ..." =>
+  "Appartient aux groupes ...",
+
+"Doesn't belong to any group." =>
+  "N'appartient à aucun groupe.",
+
+"Civility" =>
+  "Civilité",
+
+"Identifier must contain alphanumeric values, dots (.) and dashes (-) only." =>
+  "L'identifiant doit contenir uniquement des valeurs alpha-numériques, avec eventuellement des points (.) et des tirets (-).",
+
+"This identifier is already used." =>
+  "Cet identifiant est déjà utilisé.",
+
+"Numeric identifier" =>
+  "Identifiant numérique",
+
+"The numeric identifier must be an integer." =>
+  "L'identifiant numérique doit forcement être un entier.",
+
+"This uid is already used." =>
+  "Cet uid est déjà utilisé.",
+
+"First Name" =>
+  "Prénom",
+
+"The first name must contain alphanumeric values only." =>
+  "Le prénom doit contenir uniquement des caractères alpha-numérique.",
+
+"Last Name" =>
+  "Nom",
+
+"Full Name" =>
+  "Nom complet",
+
+"Main group" =>
+  "Groupe principal",
+
+"This group doesn't exist." =>
+  "Ce groupe n'existe pas.",
+
+"Command shell" =>
+  "Interpréteur de commande",
+
+"Allow user to connect a POSIX system." =>
+  "Autorisie l'utilisateur à se connecter aux systèmes POSIX.",
+
+"Samba Identifier" =>
+  "Identifiant Samba",
+
+"Home Directory" =>
+  "Dossier personnel",
+
+"E-mail address" =>
+  "Adresse e-mail",
+
+"Given email address is invalid." =>
+  "L'adresse mail saisie est invalide.",
+
+"Password recovery hash" =>
+  "Hash de récupération de mot de passe",
+
+"Samba Password (LM)" =>
+  "Mot de passe Samba (LM)",
+
+"Samba Password (NT)" =>
+  "Mot de passe Samba (NT)",
+
+"Picture" =>
+  "Image",
+
+"Picture size is not valid." =>
+  "La taille de l'image est invalide.",
+
+"File size is not valid." =>
+  "La taille du fichier est invalide.",
+
+"File type is not valid." =>
+  "Le type de fichier est invalide.",
+
+"One or several users don't exist." =>
+  "Un ou plusieurs utilisateurs n'existent pas."
+
+);
+
+?>
+
index 31243e8..825e548 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-16 11:36+0100\n"
+"POT-Creation-Date: 2009-03-19 18:39+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: select.php:186 includes/class/class.LSsession.php:1066 view.php:245
+#: select.php:186 includes/class/class.LSsession.php:1177
 msgid "Refresh"
 msgstr ""
 
@@ -49,7 +49,7 @@ msgstr ""
 msgid "Do you really want to delete"
 msgstr ""
 
-#: remove.php:49 includes/class/class.LSsession.php:909
+#: remove.php:49 includes/class/class.LSsession.php:1020
 #: includes/class/class.LSconfirmBox.php:37
 #: includes/class/class.LSsmoothbox.php:39 includes/class/class.LSform.php:63
 msgid "Validate"
@@ -59,7 +59,7 @@ msgstr ""
 msgid "Object has been added."
 msgstr ""
 
-#: create.php:89 view.php:220 view.php:235
+#: create.php:89
 msgid "New"
 msgstr ""
 
@@ -218,160 +218,157 @@ msgid ""
 "server."
 msgstr ""
 
-#: includes/class/class.LSsession.php:849
+#: includes/class/class.LSsession.php:960
 msgid "Connection"
 msgstr ""
 
-#: includes/class/class.LSsession.php:859
-#: includes/class/class.LSsession.php:898
+#: includes/class/class.LSsession.php:970
+#: includes/class/class.LSsession.php:1009
 msgid "LDAP server"
 msgstr ""
 
-#: includes/class/class.LSsession.php:869
-#: includes/class/class.LSsession.php:1694
+#: includes/class/class.LSsession.php:980
+#: includes/class/class.LSsession.php:1810
 msgid "Level"
 msgstr ""
 
-#: includes/class/class.LSsession.php:870
-#: includes/class/class.LSsession.php:908
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:76
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:125
+#: includes/class/class.LSsession.php:981
+#: includes/class/class.LSsession.php:1019
 msgid "Identifier"
 msgstr ""
 
-#: includes/class/class.LSsession.php:871
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:450
+#: includes/class/class.LSsession.php:982
 msgid "Password"
 msgstr ""
 
-#: includes/class/class.LSsession.php:872
+#: includes/class/class.LSsession.php:983
 msgid "Connect"
 msgstr ""
 
-#: includes/class/class.LSsession.php:873
+#: includes/class/class.LSsession.php:984
 msgid "Forgot your password ?"
 msgstr ""
 
-#: includes/class/class.LSsession.php:891
+#: includes/class/class.LSsession.php:1002
 msgid "Recovery of your credentials"
 msgstr ""
 
-#: includes/class/class.LSsession.php:910
+#: includes/class/class.LSsession.php:1021
 msgid "Back"
 msgstr ""
 
-#: includes/class/class.LSsession.php:912
+#: includes/class/class.LSsession.php:1023
 msgid "Please fill the identifier field to proceed recovery procedure"
 msgstr ""
 
-#: includes/class/class.LSsession.php:916
+#: includes/class/class.LSsession.php:1027
 msgid ""
 "An email has been sent to  %{mail}. Please follow the instructions on it."
 msgstr ""
 
-#: includes/class/class.LSsession.php:924
+#: includes/class/class.LSsession.php:1035
 msgid "Your new password has been sent to %{mail}. "
 msgstr ""
 
-#: includes/class/class.LSsession.php:1101
-msgid "Connected as"
+#: includes/class/class.LSsession.php:1193
+msgid "Language"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1331 view.php:72
-msgid "My account"
+#: includes/class/class.LSsession.php:1217
+msgid "Connected as"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1822
+#: includes/class/class.LSsession.php:1938
 msgid "LSsession : The constant %{const} is not defined."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1825
+#: includes/class/class.LSsession.php:1941
 msgid ""
 "LSsession : The %{addon} support is uncertain. Verify system compatibility "
 "and the add-on configuration."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1828
+#: includes/class/class.LSsession.php:1944
 msgid ""
 "LSsession : LDAP server's configuration data are invalid. Can't connect."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1831
+#: includes/class/class.LSsession.php:1947
 msgid "LSsession : Failed to load LSobject type %{type} : unknon type."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1838
+#: includes/class/class.LSsession.php:1954
 msgid "LSsession : Login or password incorrect."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1841
+#: includes/class/class.LSsession.php:1957
 msgid "LSsession : Impossible to identify you : Duplication of identities."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1844
+#: includes/class/class.LSsession.php:1960
 msgid "LSsession : Can't load Smarty template engine."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1847
+#: includes/class/class.LSsession.php:1963
 msgid "LSsession : Can't connect to LDAP server."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1850
+#: includes/class/class.LSsession.php:1966
 msgid "LSsession : Could not load type of identifiable objects."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1853
+#: includes/class/class.LSsession.php:1969
 msgid "LSsession : Your are not authorized to do this action."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1856
+#: includes/class/class.LSsession.php:1972
 msgid "LSsession : Some informations are missing to display this page."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1860
+#: includes/class/class.LSsession.php:1976
 msgid ""
 "LSsession : Error during creation of list of levels. Contact administrators. "
 "(Code : %{code})"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1863
+#: includes/class/class.LSsession.php:1979
 msgid "LSsession : The password recovery is disabled for this LDAP server."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1866
+#: includes/class/class.LSsession.php:1982
 msgid ""
 "LSsession : Some informations are missing to recover your password. Contact "
 "administrators."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1869
+#: includes/class/class.LSsession.php:1985
 msgid ""
 "LSsession : Error during password recovery. Contact administrators.(Step : %"
 "{step})"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1873
+#: includes/class/class.LSsession.php:1989
 msgid "LSsession : problem during initialisation."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1879
+#: includes/class/class.LSsession.php:1995
 msgid ""
 "LSrelation : The listing function for the relation %{relation} is unknow."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1882
+#: includes/class/class.LSsession.php:1998
 msgid "LSrelation : The update function of the relation %{relation} is unknow."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1885
+#: includes/class/class.LSsession.php:2001
 msgid "LSrelation : Error during relation update of the relation %{relation}."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1888
+#: includes/class/class.LSsession.php:2004
 msgid "LSrelation : Object type %{LSobject} unknow (Relation : %{relation})."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1891
+#: includes/class/class.LSsession.php:2007
 msgid ""
 "LSrelation : Some parameters are missing in the call of methods to handle "
 "standard relations (Method : %{meth})."
@@ -381,49 +378,49 @@ msgstr ""
 msgid "The value of field %{label} is invalid."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:690
+#: includes/class/class.LSattribute.php:694
 msgid ""
 "LSattribute : Attribute %{attr} : LDAP or HTML types unknow (LDAP = %{ldap} "
 "& HTML = %{html})."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:693
+#: includes/class/class.LSattribute.php:697
 msgid ""
 "LSattribute : The function %{func} to display the attribute %{attr} is "
 "unknow."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:696
+#: includes/class/class.LSattribute.php:700
 msgid ""
 "LSattribute : The rule %{rule} to validate the attribute %{attr} is unknow."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:699
+#: includes/class/class.LSattribute.php:703
 msgid ""
 "LSattribute : Configuration data to verify the attribute %{attr} are "
 "incorrect."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:702
+#: includes/class/class.LSattribute.php:706
 msgid ""
 "LSattribute : The function %{func} to save the attribute %{attr} is unknow."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:705
+#: includes/class/class.LSattribute.php:709
 msgid "LSattribute : The value of the attribute %{attr} can't be generated."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:708
+#: includes/class/class.LSattribute.php:712
 msgid "LSattribute : Generation of the attribute %{attr} failed."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:711
+#: includes/class/class.LSattribute.php:715
 msgid ""
 "LSattribute : Generation of the attribute %{attr} did not return a correct "
 "value."
 msgstr ""
 
-#: includes/class/class.LSattribute.php:714
+#: includes/class/class.LSattribute.php:718
 msgid ""
 "LSattribute : The attr_%{type} of the attribute %{name} is not yet defined."
 msgstr ""
@@ -909,162 +906,10 @@ msgstr ""
 msgid "Copy"
 msgstr ""
 
-#: view.php:380
-msgid "Actions"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:32 conf/config.inc.php:131
-msgid "Company"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:38
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:46
-msgid "Name"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:59
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:135
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:430
-msgid "Description"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:78
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:154
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:583
-msgid "Accountable(s)"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeecompany.php:91
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:167
-msgid "One or several of these users don't exist."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:41
-msgid "Groups"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:52
-msgid "Name must contain alphanumeric values only."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeegroup.php:100
-msgid "Members"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:49
-msgid "Users"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:54
-msgid "Belongs to groups ..."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:55
-msgid "Doesn't belong to any group."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:75
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:402
-msgid "Civility"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:138
-msgid ""
-"Identifier must contain alphanumeric values, dots (.) and dashes (-) only."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:146
-msgid "This identifier is already used."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:167
-msgid "Numeric identifier"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:174
-msgid "The numeric identifier must be an integer."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:181
-msgid "This uid is already used."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:196
-msgid "First Name"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:203
-msgid "The first name must contain alphanumeric values only."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:223
-msgid "Last Name"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:243
-msgid "Full Name"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:269
-msgid "Main group"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:296
-msgid "This group doesn't exist."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:317
-msgid "Command shell"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:318
-msgid "Allow user to connect a POSIX system."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:340
-msgid "Samba Identifier"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:356
-msgid "Home Directory"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:370
-msgid "E-mail address"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:382
-msgid "Given email address is invalid."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:505
-msgid "Password recovery hash"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:521
-msgid "Samba Password (LM)"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:534
-msgid "Samba Password (NT)"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:547
-msgid "Picture"
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:554
-msgid "Picture size is not valid."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:560
-msgid "File size is not valid."
-msgstr ""
-
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:566
-msgid "File type is not valid."
+#: view.php:72
+msgid "My account"
 msgstr ""
 
-#: conf/LSobjects/config.LSobjects.LSeepeople.php:596
-msgid "One or several users don't exist."
+#: view.php:380
+msgid "Actions"
 msgstr ""
diff --git a/trunk/templates/default/LSdefault.tpl b/trunk/templates/default/LSdefault.tpl
new file mode 100644 (file)
index 0000000..8ec1c2e
--- /dev/null
@@ -0,0 +1,20 @@
+<div id='LSjsConfig'>
+{$LSjsConfig}
+</div>
+
+<div id='LSinfos'>{$LSinfos}</div>
+
+<div id='LSerror'>
+{$LSerrors}
+</div>
+
+<div id='LSdebug'>
+  <span id='LSdebug_hidden'>X</span> 
+  <div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>
+</div>
+
+<div id='LSlang_select'>
+{foreach from=$LSlanguages item=lang}
+  <img src='{$LS_IMAGES_DIR}/{$lang}.png' alt='{$lang}' title='{$lang}'/>
+{/foreach}
+</div>
index 6754b9c..2d84943 100644 (file)
@@ -4,7 +4,7 @@
   <!-- Tabs - Start Title -->
   <ul class='LSform_layout'>
   {foreach from=$LSform_layout item=tab key=tab_key}
-    <li class='LSform_layout' id='LSform_layout_btn_{$tab_key}'><a href="#{$tab_key}">{$tab.label}</a></li>
+    <li class='LSform_layout' id='LSform_layout_btn_{$tab_key}'><a href="#{$tab_key}">{php}tr('tab','label'){/php}</a></li>
   {/foreach}
   </ul>
   <!-- Tabs - End Title -->
index 790c0b8..4fc13ee 100644 (file)
     {$LSsession_js}
   </head>
 <body>
-<div id='LSinfos'>{$LSinfos}</div>
-<div id='LSerror'>
-{$LSerrors}
-</div>
-<div id='LSdebug'>
-  <a href='#' id='LSdebug_hidden'>X</a> 
-  <div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>
-</div>
+
+{include file='LSdefault.tpl'}
+
 <div class='loginform'>
 <img src='{$LS_IMAGES_DIR}/logo.png' alt='Logo' id='loginform_logo' />
 <div id='loading_zone'></div>
@@ -36,6 +31,7 @@
   <dd><input type='submit' value='{$loginform_label_submit}' /></dd>
 </dl>
 </form>
+<span>{$lang_label} : <img id='LSlang' src='{$LS_IMAGES_DIR}/{$LSlang}.png' alt='{$LSlang}' title='{$LSlang}'/></span>
 <a href='index.php?LSsession_recoverPassword' class='LSsession_recoverPassword'>{$loginform_label_recoverPassword}</a>
 </div>
 </body>
index 31eebe3..dd1648d 100644 (file)
@@ -9,14 +9,9 @@
     {$LSsession_js}
   </head>
 <body>
-<div id='LSerror'>
-{$LSerrors}
-</div>
-<div id='LSinfos'>{$LSinfos}</div>
-<div id='LSdebug'>
-  <a href='#' id='LSdebug_hidden'>X</a> 
-  <div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>
-</div>
+
+{include file='LSdefault.tpl'}
+
 <div class='recoverpasswordform'>
 <img src='{$LS_IMAGES_DIR}/logo.png' alt='Logo' id='recoverpasswordform_logo' />
 <div id='loading_zone'></div>
@@ -33,7 +28,7 @@
 </form>
 
 <p id='recoverpassword_msg'>{$recoverpassword_msg}</p>
-
+<span>{$lang_label} : <img id='LSlang' src='{$LS_IMAGES_DIR}/{$LSlang}.png' alt='{$LSlang}' title='{$LSlang}'/></span>
 <a href='index.php' id='recoverpassword_back'>{$recoverpasswordform_label_back}</a>
 </div>
 </body>
index 1e7bb37..1865160 100644 (file)
@@ -3,7 +3,7 @@
  "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <meta http-equiv="content-type" content="text/html; charset={$LSencoding}">
     <title>LdapSaisie{if $pagetitle != ''} - {$pagetitle}{/if}</title>
     <link rel="icon" type="image/png" href="images/default/favicon.png" />
     <link rel="stylesheet" type="text/css" href="{$LS_CSS_DIR}/base.css" title="Normal" />
     {$LSsession_js}
   </head>
 <body>
-<div id='LSjsConfig'>
-{$LSjsConfig}
-</div>
-<div id='LSinfos'>{$LSinfos}</div>
-<div id='LSerror'>
-{$LSerrors}
-</div>
-<div id='LSdebug'>
-  <span id='LSdebug_hidden'>X</span> 
-  <div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>
-</div>
 
+{include file='LSdefault.tpl'}
 
 <table id='main'>
   <tr>
       {/if}
       <ul class='menu'>
       {foreach from=$LSaccess item=label key=LSobject_type}
-        <li class='menu'><a href='view.php?LSobject={$LSobject_type}' class='menu'>{$label}</a></li>
+        <li class='menu'><a href='view.php?LSobject={$LSobject_type}' class='menu'>{php}tr('label'){/php}</a></li>
       {/foreach}
       </ul>
     </td>
     <td id='status'>
+    <span>{$lang_label} : <img id='LSlang' src='{$LS_IMAGES_DIR}/{$LSlang}.png' alt='{$LSlang}' title='{$LSlang}'/></span>
     {$connected_as} <span id='user_name'>{$LSsession_username}</span> <a href='index.php?LSsession_logout'><img src='{$LS_IMAGES_DIR}/logout.png' alt='Logout' title='Logout' /></a>
     </td>
   </tr>
index ff710ad..a24acce 100644 (file)
@@ -18,7 +18,7 @@
     <ul class='LSview-actions'>
       {foreach from=$LSview_actions item=item}
         {if is_array($item)}
-          <li class='LSview-actions'><a href='{$item.url}' class='LSview-actions'><img src='{$LS_IMAGES_DIR}/{$item.action}.png' alt='{$item.label}' title='{$item.label}' /> {$item.label}</a></li>
+          <li class='LSview-actions'><a href='{$item.url}' class='LSview-actions'><img src='{$LS_IMAGES_DIR}/{$item.action}.png' alt='{php}tr('label');{/php}' title='{php}tr('label');{/php}' /> {php}tr('item','label');{/php}</a></li>
         {/if}
       {/foreach}
     </ul>
index 94c30f0..5106ce6 100644 (file)
@@ -217,7 +217,7 @@ if(LSsession :: startLSsession()) {
               LSdebug('Recherche : Check Create()');
               if (LSsession :: canCreate($LSobject)) {
                 $searchData['LSview_actions']['create'] = array (
-                  'label' => _('New'),
+                  'label' => 'New',
                   'url' => 'create.php?LSobject='.$LSobject,
                   'action' => 'create'
                 );
@@ -232,7 +232,7 @@ if(LSsession :: startLSsession()) {
             LSdebug('Find : Load');
             if (LSsession :: canCreate($LSobject)) {
               $LSview_actions['create'] = array (
-                'label' => _('New'),
+                'label' => 'New',
                 'url' => 'create.php?LSobject='.$LSobject,
                 'action' => 'create'
               );
@@ -242,7 +242,7 @@ if(LSsession :: startLSsession()) {
               $LSview_actions['create'] = false;
             }
             $LSview_actions['refresh'] = array (
-              'label' => _('Refresh'),
+              'label' => 'Refresh',
               'url' => 'view.php?LSobject='.$LSobject.'&amp;refresh',
               'action' => 'refresh'
             );