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