/[dolibarr]/dolibarr/htdocs/translate.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/translate.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.24 by eldy, Fri May 13 22:43:56 2005 UTC revision 1.25 by eldy, Sat Oct 29 23:42:55 2005 UTC
# Line 42  class Translate { Line 42  class Translate {
42    
43      /**      /**
44       *  \brief      Constructeur de la classe       *  \brief      Constructeur de la classe
45       *  \param      dir             repertoire racine des fichiers de traduction       *  \param      dir             Repertoire racine des fichiers de traduction
46       *  \param      defaultlang     langue par defaut à utiliser       *  \param      defaultlang     Langue par defaut à utiliser
47       */       */
48                        function Translate($dir = "", $defaultlang = "")
49      function Translate($dir = "", $defaultlang = "") {      {
50          $this->dir=$dir;          $this->dir=$dir;
51          $this->defaultlang=$defaultlang;          if ($defaultlang == 'auto')
52            {
53                $listlang=split('[,;]',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
54                $defaultlang=ereg_replace('-','_',$listlang[0]);
55            }
56            if (strlen($defaultlang) <= 3) $defaultlang=$defaultlang."_".$defaultlang;
57            $this->defaultlang=strtolower($defaultlang);
58      }      }
59    
60      /**      /**
61           *  \brief      Charge en mémoire le tableau de traduction pour un domaine particulier           *  \brief      Charge en mémoire le tableau de traduction pour un domaine particulier
62       *              Si le domaine est deja chargé, la fonction ne fait rien       *              Si le domaine est deja chargé, la fonction ne fait rien
63       *  \param      domain      Nom du domain (fichier lang) à charger       *  \param      domain      Nom du domain (fichier lang) à charger
64       *  \param      alt         Charge le fichier alternatif meme si fichier dans la langue est trouvé       *  \param      alt         Utilise le fichier alternatif meme si fichier dans la langue est trouvée
65       */       */
                   
66      function Load($domain,$alt=0)      function Load($domain,$alt=0)
67      {      {
68          if (isset($this->tab_loaded[$domain]) && $this->tab_loaded[$domain]) { return; }    // Le fichier de ce domaine est deja chargé          if (isset($this->tab_loaded[$domain]) && $this->tab_loaded[$domain]) { return; }    // Le fichier de ce domaine est deja chargé
# Line 65  class Translate { Line 70  class Translate {
70          // Repertoire de traduction          // Repertoire de traduction
71          $scandir = $this->dir."/".$this->defaultlang;          $scandir = $this->dir."/".$this->defaultlang;
72          $file_lang =  $scandir . "/$domain.lang";          $file_lang =  $scandir . "/$domain.lang";
73            $filelangexists=is_file($file_lang);
74    
75          if ($alt || ! is_file($file_lang)) {          if ($alt || ! $filelangexists)
76            {
77              // Repertoire de la langue alternative              // Repertoire de la langue alternative
78              if ($this->defaultlang != "en_US") $scandiralt = $this->dir."/en_US";                if ($this->defaultlang != "en_US") $scandiralt = $this->dir."/en_US";  
79              else $scandiralt = $this->dir."/fr_FR";              else $scandiralt = $this->dir."/fr_FR";
80              $file_lang = $scandiralt . "/$domain.lang";              $file_lang = $scandiralt . "/$domain.lang";
81                $filelangexists=is_file($file_lang);
82              $alt=1;              $alt=1;
83          }          }
84                    
85          $i = 0;          if ($filelangexists)
86          if(is_file($file_lang)) {          {
87              if($fp = @fopen($file_lang,"rt")){              if($fp = @fopen($file_lang,"rt"))
88                {
89                  $finded = 0;                  $finded = 0;
90                  while (($ligne = fgets($fp,4096)) && ($finded == 0)){                  while (($ligne = fgets($fp,4096)) && ($finded == 0))
91                      if ($ligne[0] != "\n" && $ligne[0] != " " && $ligne[0] != "#") {                  {
92                        if ($ligne[0] != "\n" && $ligne[0] != " " && $ligne[0] != "#")
93                        {
94                          $tab=split('=',$ligne,2);                          $tab=split('=',$ligne,2);
95                          //print "Domain=$domain, found a string for $tab[0] with value $tab[1]<br>";                          //print "Domain=$domain, found a string for $tab[0] with value $tab[1]<br>";
96                          if (! isset($this->tab_translate[$tab[0]])) $this->tab_translate[$tab[0]]=trim($tab[1]);                          if (! isset($this->tab_translate[$tab[0]])) $this->tab_translate[$tab[0]]=trim(isset($tab[1])?$tab[1]:'');
97                      }                      }
98                  }                  }
99                  fclose($fp);                  fclose($fp);
100    
101                  // Pour les langues aux fichiers parfois incomplets, on charge la langue alternative                  // Pour les langues aux fichiers parfois incomplets, on charge la langue alternative
102                  if (! $alt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US") {                  if (! $alt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US")
103                    {
104                      dolibarr_syslog("translate::load loading alternate translation file");                      dolibarr_syslog("translate::load loading alternate translation file");
105                      $this->load($domain,1);                      $this->load($domain,1);
106                  }                  }
107    
108                  $this->tab_loaded[$domain]=1;           // Marque ce fichier comme chargé                  $this->tab_loaded[$domain]=1;           // Marque ce fichier comme chargé
109              }              }
           
110          }          }
           
111     }     }
112    
113      /**          /**    
114       *  \brief      Retourne la liste des domaines chargées en memoire       *  \brief      Retourne la liste des domaines chargées en memoire
115       *  \return     array       Tableau des domaines chargées       *  \return     array       Tableau des domaines chargées
116       */       */
117                        function list_domainloaded()
118      function list_domainloaded() {      {
119          return join(",",array_keys($this->tab_loaded));          return join(",",array_keys($this->tab_loaded));
120      }      }
121            
# Line 120  class Translate { Line 130  class Translate {
130       *  \param       param3      chaine de param1       *  \param       param3      chaine de param1
131       *  \return      string      chaine traduite       *  \return      string      chaine traduite
132       */       */
133                        function trans($str, $param1='', $param2='', $param3='')
134      function trans($str, $param1='', $param2='', $param3='') {      {
135          return $this->transnoentities($str,htmlentities($param1),htmlentities($param2),htmlentities($param3));          return $this->transnoentities($str,htmlentities($param1),htmlentities($param2),htmlentities($param3));
136      }      }
137    

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26