source: trunk/phpgwapi/inc/class.setup_translation.inc.php @ 2

Revision 2, 3.8 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2  /**************************************************************************\
3  * eGroupWare API - Translation class for phpgw lang files                  *
4  * This file written by Miles Lott <milosch@groupwhere.org>                 *
5  * and Dan Kuykendall <seek3r@phpgroupware.org>                             *
6  * Handles multi-language support using flat files                          *
7  * -------------------------------------------------------------------------*
8  * This library is part of the eGroupWare API                               *
9  * http://www.egroupware.org/api                                            * 
10  * ------------------------------------------------------------------------ *
11  * This library is free software; you can redistribute it and/or modify it  *
12  * under the terms of the GNU Lesser General Public License as published by *
13  * the Free Software Foundation; either version 2.1 of the License,         *
14  * or any later version.                                                    *
15  * This library is distributed in the hope that it will be useful, but      *
16  * WITHOUT ANY WARRANTY; without even the implied warranty of               *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                     *
18  * See the GNU Lesser General Public License for more details.              *
19  * You should have received a copy of the GNU Lesser General Public License *
20  * along with this library; if not, write to the Free Software Foundation,  *
21  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA            *
22  \**************************************************************************/
23
24
25        if (!defined('MAX_MESSAGE_ID_LENGTH'))
26        {
27                define('MAX_MESSAGE_ID_LENGTH',230);
28        }
29
30        class setup_translation
31        {
32                var $langarray = array();
33
34                /*!
35                @function setup_lang
36                @abstract constructor for the class, loads all phrases into langarray
37                @param $lang    user lang variable (defaults to en)
38                */
39                function setup_translation()
40                {
41                        $ConfigLang = get_var('ConfigLang',Array('POST','COOKIE'));
42
43                        if(!$ConfigLang)
44                        {
45                                $lang = 'en';
46                        }
47                        else
48                        {
49                                $lang = $ConfigLang;
50                        }
51
52                        $fn = '.' . SEP . 'lang' . SEP . 'phpgw_' . $lang . '.lang';
53                        if (!file_exists($fn))
54                        {
55                                $fn = '.' . SEP . 'lang' . SEP . 'phpgw_en.lang';
56                        }
57                        if (file_exists($fn))
58                        {
59                                $fp = fopen($fn,'r');
60                                while ($data = fgets($fp,8000))
61                                {
62                                        // explode with "\t" and removing "\n" with str_replace, needed to work with mbstring.overload=7
63                                        list($message_id,,,$content) = explode("\t",$data);
64                                        $this->langarray[strtolower(trim($message_id))] = str_replace("\n",'',$content);
65                                }
66                                fclose($fp);
67                        }
68                }
69
70                /*!
71                @function translate
72                @abstract Translate phrase to user selected lang
73                @param $key  phrase to translate
74                @param $vars vars sent to lang function, passed to us
75                */
76                function translate($key, $vars=False)
77                {
78                        $ret = $key.'*';
79                        $key = strtolower(trim($key));
80                        if (isset($this->langarray[$key]))
81                        {
82                                $ret = $this->langarray[$key];
83                        }
84                        if (is_array($vars))
85                        {
86                                foreach($vars as $n => $var)
87                                {
88                                        $ret = preg_replace( '/%'.($n+1).'/', $var, $ret );
89                                }
90                        }
91                        return $ret;
92                }
93
94                // the following functions have been moved to phpgwapi/tanslation_sql
95
96                function setup_translation_sql()
97                {
98                        if (!is_object($this->sql))
99                        {
100                                include_once(PHPGW_API_INC.'/class.translation_sql.inc.php');
101                                $this->sql = new translation;
102                        }
103                }
104
105                function get_langs($DEBUG=False)
106                {
107                        $this->setup_translation_sql();
108                        return $this->sql->get_langs($DEBUG);
109                }
110
111                function drop_langs($appname,$DEBUG=False)
112                {
113                        $this->setup_translation_sql();
114                        return $this->sql->drop_langs($appname,$DEBUG);
115                }
116
117                function add_langs($appname,$DEBUG=False,$force_langs=False)
118                {
119                        $this->setup_translation_sql();
120                        return $this->sql->add_langs($appname,$DEBUG,$force_langs);
121                }
122        }
123?>
Note: See TracBrowser for help on using the repository browser.