phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] api/class.lang.php, 1.1.2.13


From: nomail
Subject: [Phpgroupware-cvs] api/class.lang.php, 1.1.2.13
Date: Thu, 20 May 2004 14:54:21 -0000

Update of /api
Modified Files:
        Branch: proposal-branch
          class.lang.php

date: 2004/04/16 20:59:48;  author: seek3r;  state: Exp;  lines: +19 -282

Log Message:
bringing savannah cvs back up to date with what we were doing on our private 
cvs server. We will not be doing dev from this cvs tree
=====================================================================
No syntax errors detected in -
=====================================================================
Index: api/class.lang.php
diff -u api/class.lang.php:1.1.2.12 api/class.lang.php:1.1.2.13
--- api/class.lang.php:1.1.2.12 Sun Nov  9 15:46:18 2003
+++ api/class.lang.php  Fri Apr 16 20:59:48 2004
@@ -2,8 +2,6 @@
        
/**************************************************************************\
        * phpGroupWare                                                          
   *
        * http://www.phpgroupware.org                                           
   *
-       * This file written by Dan Kuykendall <address@hidden>                 *
-       * Copyright (C) 2003 Dan Kuykendall                                     
   *
        * 
-------------------------------------------------------------------------*
        * This library is part of the phpGroupWare API                          
   *
        * http://www.phpgroupware.org/api                                       
   * 
@@ -24,294 +22,33 @@
        /* $Id$ */
        /* $Source$ */
 
-       class api_lang
+       if (empty($GLOBALS['phpgw_data']['server']['lang_type']))
        {
-               var $messages       = array();
-               var $domain         = 'messages';
-               var $language;
-               var $registered_app = 'api';
-               var $envset         = False;
-               var $windows_locale = array(
-                       'address@hidden' => 'DEU',
-                       'fi_FI'      => 'FIN',
-                       'en_US'      => 'USA'
-               );
-
-               function api_lang()
-               {
-                       if(!isset($GLOBALS['phpgw_data']['prefs']['api.lang']))
-                       {
-                               $GLOBALS['phpgw_data']['prefs']['api.lang'] = 
'en';
-                       }
-                       $this->language = 
$GLOBALS['phpgw_data']['prefs']['api.lang'];
-                       $this->switchlang();
-               }
-               
-               function add($strings, $app = 'api')
-               {
-                       $this->messages[$app][$strings] = True;
-               }
-
-               function _translate()
-               {
-                       $args = new safe_args();
-                       $args->set('msg', '##REQUIRED##', 'any');
-                       $args->set('param1', '##NOTSET##', 'any');
-                       $args = $args->get(func_get_args(),__LINE__,__FILE__);
-
-                       if ($this->language == 'en_US')
-                       {
-                               return sprintf($args['msg'],$args['param1']);
-                       }
-
-                       $omsg = $args['msg'];
-                       $msg = strtolower($args['msg']);
-                       $result = gettext($args['msg']);
-                       
-                       if($result == $args['msg'] && $this->registered_app != 
'api')
-                       {
-                               $current_app = $this->registered_app;
-                               $this->switchapp('api');
-                               $result = gettext($args['msg']);
-                               $this->registered_app = $current_app;
-                       }
-
-                       if($result == $args['msg'])
-                       {
-                               return $this->translate_service($omsg);
-                       }
-
-                       return $result;
-               }
-
-               function translate_service($msg)
-               {
-                       
if(!isset($GLOBALS['phpgw_data']['server']['translate_service']))
-                       {
-                               
$GLOBALS['phpgw_data']['server']['translate_service'] = 'disabled';
-                       }
-                       
-                       switch 
($GLOBALS['phpgw_data']['server']['translate_service'])
-                       {
-                               case 'disabled':
-                                       return $msg;
-                                       break;
-                               case 'babelfish':
-                                       $url_string = 
'http://babelfish.altavista.com/babelfish/tr';
-                                       $get_string = 
'urltext='.urlencode($msg).'&lp=en_'.$this->language.'&submit=Translate'; 
-                                       $start_string = 'padding:10px; 
lang='.$this->language.'>';
-                                       $end_string = '</div>';
-                                       break;
-                               case 'google':
-                               default:
-                                       $url_string = 
'http://translate.google.com/translate_t';
-                                       $get_string = 
'text='.urlencode($msg).'&langpair=en|'.$this->language.'&submit=Translate'; 
-                                       $start_string = '<textarea name=q 
rows=5 cols=45 wrap=PHYSICAL>';
-                                       $start_string2 = '<textarea name=q 
rows=5 cols=45 wrap=PHYSICAL readonly>';
-                                       $end_string = '</textarea>';
-                       }
-                       
-                       if(!function_exists('curl_init'))
-                       {
-                               return $msg;
-                       }
-                       if(isset($GLOBALS['phpgw_session']['lang_cache'][$msg]))
-                       {
-                               return 
$GLOBALS['phpgw_session']['lang_cache'][$msg];
-                       }
-                       $ch = curl_init();
-                       curl_setopt($ch, CURLOPT_URL,$url_string);
-                       curl_setopt($ch, CURLOPT_FAILONERROR, 1);
-                       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
-                       curl_setopt($ch, CURLOPT_TIMEOUT, 3);
-                       curl_setopt ($ch, CURLOPT_HEADER, 0);
-                       curl_setopt($ch, CURLOPT_POST, 1);
-                       curl_setopt($ch, CURLOPT_POSTFIELDS, $get_string);
-                       ob_start();
-                       curl_exec ($ch);
-                       $buffer = ob_get_contents();
-                       ob_end_clean();
-                       curl_close ($ch);                       
-                       $start = strpos ($buffer, $start_string);
-                       if($start === False)
-                       {
-                               if(!isset($start_string2))
-                               {
-                                       return $msg;                            
-                               }
-                               else
-                               {
-                                       $start_string = $start_string2;
-                                       $start = strpos ($buffer, 
$start_string);
-                                       if($start === False)
-                                       {
-                                               return $msg;                    
        
-                                       }
-                               }
-                       }
-
-                       $start_length = strlen($start_string);
-                       $start = $start+$start_length;
-                       $buffer = substr($buffer, $start);
-                       $end = strpos ($buffer, $end_string);
-                       $buffer = trim(substr($buffer, 0, $end));
-                       if(!empty($buffer))
-                       {
-                               $GLOBALS['phpgw_session']['lang_cache'][$msg] = 
$buffer;
-                               return $buffer;
-                       }
-                       return $msg;                            
-               }
-
-               
-               function get()
-               {
-                       $args = new safe_args();
-                       $args->set('msg', '##REQUIRED##', 'any');
-                       $args->set('param1', '##NOTSET##', 'any');
-                       $args->set('app', '##NOTSET##', 'string');
-                       $args = $args->get(func_get_args(),__LINE__,__FILE__);
-
-                       if(!isset($args['app']))
-                       {
-                               if(isset($GLOBALS['phpgw_data']['api']['op']))
-                               {
-                                       list($args['app']) = 
explode('.',$GLOBALS['phpgw_data']['api']['op']);
-                               }
-                               else
-                               {
-                                       $args['app'] = 'api';
-                               }
-                       }
-                       $this->switchlang();
-                       $this->switchapp($args['app']);
-
-                       if(isset($args['param1']))
-                       {
-                               return 
$this->_translate($args['msg'],$args['param1']);
-                       }
-                       return $this->_translate($args['msg']);
-               }
-
-               function trans()
-               {
-                       return $this->get(func_get_args());
-               }
-               
-               function switchapp($app = 'api')
-               {
-                       if($app != $this->registered_app && 
is_dir(PHPGW_ROOT.'/'.$app.'/locale'))
-                       {
-                               bindtextdomain($this->domain, 
PHPGW_ROOT.'/'.$app.'/locale');
-                               $this->registered_app = $app;
-                       }
-               }
-
-               function switchlang()
+               $GLOBALS['phpgw_data']['server']['lang_type'] = 'gettext';
+       }
+       if($GLOBALS['phpgw_data']['server']['lang_type'] == 'gettext')
+       {
+               $old_level = error_reporting(0);
+               if (@!extension_loaded('xslt'))
                {
-                       if ($this->language != 
$GLOBALS['phpgw_data']['prefs']['api.lang'])
+                       if (PHP_OS == 'Windows'  || PHP_OS == 'WINNT' || PHP_OS 
== 'OS/2')
                        {
-                               $this->language = 
$GLOBALS['phpgw_data']['prefs']['api.lang'];
-                               $this->envset = False;
-                               unset($GLOBALS['phpgw_session']['lang_cache']);
+                               dl('php_xsl.dll');
                        }
-
-                       if (! $this->envset)
+                       else
                        {
-                               putenv('LANG='.$this->language);
-                               putenv('TZ=' . 
$GLOBALS['phpgw_data']['prefs']['api.timezone']);
-                               setlocale(LC_ALL, $this->language);
-                               if (PHP_OS == 'Windows')
-                               {
-                                       if 
($this->windows_locale[$this->langauge])
-                                       {
-                                               setlocale(LC_TIME, 
$this->langauge);
-                                       }
-                                       else
-                                       {
-                                               setlocale(LC_TIME,'C');
-                                       }
-                               }
-                               else
-                               {
-                                       setlocale(LC_TIME, $this->langauge);
-                               }
-
-                               $this->envset = True;
+                               dl('xslt.so');
                        }
                }
-
-               function addtoxml()
+               if (@!extension_loaded('xslt'))
                {
-                       $this->switchlang();    
-                       if(count($this->messages) > 0)
-                       {
-                               
-                               foreach($this->messages as $app=>$strings)      
                        
-                               {
-                                       $this->switchapp($app);
-                                       
-                                       foreach($strings as $msg=>$val)         
                
-                                       {
-                                               $translated = 
$this->_translate($msg);
-
-                                               $lang_node = 
createobject('api_xmltool',array('node_type'=>'node','name'=>'LANG'));
-                                               
$lang_node->set_attribute('name', $msg);
-                                               
$lang_node->set_value($translated);
-                                               
$GLOBALS['phpgw_xmldoc']->add_node($lang_node);
-                                       }
-                               }
-                       }
-               }
-
-               function addfromskin($xsl_files)
-               {
-                       foreach($xsl_files as $key=>$val)                       
        
-                       {
-                               $valid_file = False;
-                               list($app,$file) = explode('.',$val);
-                               $skindir = 
PHPGW_ROOT.SEP.$app.SEP.'skins'.SEP.$GLOBALS['phpgw_data']['prefs']['api.skin'];
-                               $filename = $skindir.SEP.$file.'_lang.xml';
-                               if(file_exists($filename))
-                               {
-                                       $valid_file = True;
-                               }
-                               
elseif($GLOBALS['phpgw_data']['prefs']['api.skin'] != 'default')
-                               {
-                                       $def_skindir = 
PHPGW_ROOT.SEP.$app.SEP.'skins'.SEP.'default';
-                                       $def_filename = 
$def_skindir.SEP.$file.'_lang.xml';
-                                       if(file_exists($def_filename))
-                                       {
-                                               $skindir = $def_skindir;
-                                               $filename = $def_filename;
-                                               $valid_file = True;
-                                       }
-                               }
-
-                               if($valid_file)
-                               {
-                                       $f = fopen ($filename, 'r');
-                                       $xmlstring = fread ($f, 
filesize($filename));
-                                       fclose ($f);
-                                       $messages = xml2var($xmlstring);
-                                       unset($xmlstring);
-                                       $this->switchapp($app);
-
-                                       
-                                       foreach ($messages['message'] as $val)
-                                       {
-                                               $translated = 
$this->_translate($val);
-                                               
-                                               $lang_node = 
createobject('api_xmltool',array('node_type'=>'node','name'=>'LANG'));
-                                               
$lang_node->set_attribute('name', $val);
-                                               
$lang_node->set_value($translated);
-                                               
$GLOBALS['phpgw_xmldoc']->add_node($lang_node);
-                                       }
-                               }
-                       }
+                       $GLOBALS['phpgw_data']['server']['lang_type'] = 'stub';
                }
+               error_reporting($old_level);
        }
 
+       
include_once(PHPGW_API.SEP.'lang'.SEP.'class.lang_'.$GLOBALS['phpgw_data']['server']['lang_type'].'.php');
+
        /* cheater shortcut version */
        if(!function_exists('lang'))
        {
@@ -319,4 +56,4 @@
                {
                        return $GLOBALS['phpgw']->lang->get(func_get_args());
                }
-       }       
+       }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]