Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/main/webrooms/get_translation.lib.php

59 lines
1.4 KiB

<?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;
}
?>