parent
a3bbce576a
commit
c2bfae5465
@ -0,0 +1,59 @@ |
||||
<?php |
||||
/** |
||||
* Library for language translation from Dokeos language files to XML for videoconference |
||||
* @uses main_api.lib.php for api_get_path() |
||||
*/ |
||||
/** |
||||
* This function reads a Dokeos language file and transforms it into XML, |
||||
* then returns the XML string to the caller. |
||||
*/ |
||||
function get_language_file_as_xml($language='english') |
||||
{ |
||||
$path = api_get_path(SYS_LANG_PATH).$language.'/'; |
||||
if(!is_dir($path) or !is_readable($path)) |
||||
{ |
||||
if($language != 'english') |
||||
{ |
||||
return get_language_file_as_xml('english'); |
||||
} |
||||
else |
||||
{ |
||||
return ''; |
||||
} |
||||
} |
||||
error_log('Analysing path '.$path); |
||||
$file = $path.'videoconf.inc.php'; |
||||
if(!is_file($file) or !is_readable($file)) |
||||
{ |
||||
if($language != 'english') |
||||
{ |
||||
return get_language_file_as_xml('english'); |
||||
} |
||||
else |
||||
{ |
||||
return ''; |
||||
} |
||||
} |
||||
$list = file($file); |
||||
$xml = ''; |
||||
foreach ( $list as $line ) |
||||
{ |
||||
if(substr($line,0,1)=='$') |
||||
{ |
||||
$items = array(); |
||||
$match = preg_match('/^\$([^\s]*)\s*=\s*"(.*)";$/',$line,$items); |
||||
if($match) |
||||
{ |
||||
//todo: The following conversion should only happen for old language files (encoded in ISO-8859-1). |
||||
$string = iconv('ISO-8859-1','UTF-8',$items[2]); |
||||
$xml .= '<labelfield><labelid>'.$items[1].'</labelid><labelvalue>'.$string.'</labelvalue></labelfield>'."\n"; |
||||
} |
||||
} |
||||
} |
||||
if(empty($xml) && $language!='english') |
||||
{ |
||||
return get_language_file_as_xml('english'); |
||||
} |
||||
return $xml; |
||||
} |
||||
?> |
Loading…
Reference in new issue