[Top][All Lists]
[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());
}
- }
+ }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] api/class.lang.php, 1.1.2.13,
nomail <=