Public Member Functions | |
| ilLanguage ($a_lang_key) | |
| Constructor read the single-language file and put this in an array text. | |
| getLangKey () | |
| txt ($a_topic) | |
| gets the text for a given topic | |
| loadLanguageModule ($a_module) | |
| getInstalledLanguages () | |
| ilLanguage ($a_lang_key) | |
| Constructor read the single-language file and put this in an array text. | |
| txt ($a_topic) | |
| gets the text for a given topic | |
| getLanguages () | |
| get all setup languages in the system | |
| installLanguages ($a_lang_keys) | |
| install languages | |
| getInstalledLanguages () | |
| get already installed languages (in db) | |
| getAvailableLanguages () | |
| get already registered languages (in db) | |
| checkLanguage ($a_lang_key) | |
| validate the logical structure of a lang-file | |
| cut_header ($content) | |
| remove lang-file haeder information from '$content' | |
| flushLanguages () | |
| remove all languagee from database | |
| insertLanguage ($lang_key) | |
| insert language data form file in database | |
| getInstallableLanguages () | |
| setDbHandler ($a_db_handler) | |
| set db handler object object db handler | |
Data Fields | |
| $ilias | |
| $text = array() | |
| $lang_default = "en" | |
| $lang_user | |
| $lang_path | |
| $lang_key | |
| $lang_name | |
| $separator = "#:#" | |
| $comment_separator = "###" | |
| $loaded_modules | |
Definition at line 47 of file class.ilLanguage.php.
| ilLanguage::checkLanguage | ( | $ | a_lang_key | ) |
validate the logical structure of a lang-file
This function checks if a lang-file of a given lang_key exists, the file has a header and each lang-entry consist of exact three elements (module,identifier,value)
| string | $lang_key international language key (2 digits) |
Definition at line 323 of file class.ilLanguage.php.
References $num, and cut_header().
Referenced by installLanguages().
{
$tmpPath = getcwd();
chdir ($this->lang_path);
// compute lang-file name format
$lang_file = "ilias_".$a_lang_key.".lang";
// file check
if (!is_file($lang_file))
{
chdir($tmpPath);
return false;
}
// header check
if (!$content = $this->cut_header(file($lang_file)))
{
chdir($tmpPath);
return false;
}
// check (counting) elements of each lang-entry
foreach ($content as $key => $val)
{
$separated = explode ($this->separator,trim($val));
$num = count($separated);
if ($num != 3)
{
chdir($tmpPath);
return false;
}
}
chdir($tmpPath);
// no error occured
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilLanguage::cut_header | ( | $ | content | ) |
remove lang-file haeder information from '$content'
This function seeks for a special keyword where the language information starts. if found it returns the plain language information, otherwise returns false
| string | $content expect an ILIAS lang-file |
Definition at line 374 of file class.ilLanguage.php.
Referenced by checkLanguage(), and insertLanguage().
{
foreach ($content as $key => $val)
{
if (trim($val) == "<!-- language file start -->")
{
return array_slice($content,$key +1);
}
}
return false;
}
Here is the caller graph for this function:| ilLanguage::flushLanguages | ( | ) |
remove all languagee from database
Definition at line 390 of file class.ilLanguage.php.
References $q.
Referenced by installLanguages().
Here is the caller graph for this function:| ilLanguage::getAvailableLanguages | ( | ) |
get already registered languages (in db)
Definition at line 296 of file class.ilLanguage.php.
Referenced by installLanguages().
{
$arr = array();
$q = "SELECT * FROM object_data ".
"WHERE type = 'lng'";
$r = $this->db->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$arr[$row->title]["obj_id"] = $row->obj_id;
$arr[$row->title]["status"] = $row->description;
}
return $arr;
}
Here is the caller graph for this function:| ilLanguage::getInstallableLanguages | ( | ) |
Definition at line 443 of file class.ilLanguage.php.
References $d, $lang_key, and getLanguages().
{
$setup_langs = $this->getLanguages();
$d = dir($this->lang_path);
$tmpPath = getcwd();
chdir ($this->lang_path);
// get available lang-files
while ($entry = $d->read())
{
if (is_file($entry) && (ereg ("(^ilias_.{2}\.lang)", $entry)))
{
$lang_key = substr($entry,6,2);
$languages1[] = $lang_key;
}
}
//$languages = array_intersect($languages1,$setup_langs);
chdir($tmpPath);
return $languages1;
}
Here is the call graph for this function:| ilLanguage::getInstalledLanguages | ( | ) |
Definition at line 238 of file class.ilLanguage.php.
References $lang, $languages, and getObjectList().
Referenced by ilLanguage().
{
$langlist = getObjectList("lng");
foreach ($langlist as $lang)
{
if ($lang["desc"] == "installed")
{
$languages[] = $lang["title"];
}
}
return $languages;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilLanguage::getInstalledLanguages | ( | ) |
get already installed languages (in db)
Definition at line 275 of file class.ilLanguage.php.
| ilLanguage::getLangKey | ( | ) |
Definition at line 175 of file class.ilLanguage.php.
{
return $this->lang_key;
}
| ilLanguage::getLanguages | ( | ) |
get all setup languages in the system
the functions looks for setup*.lang-files in the languagedirectory public
Definition at line 177 of file class.ilLanguage.php.
References $d, $lang_key, and $languages.
Referenced by getInstallableLanguages().
{
$d = dir($this->lang_path);
$tmpPath = getcwd();
chdir ($this->lang_path);
// get available setup-files
while ($entry = $d->read())
{
if (is_file($entry) && (ereg ("(^setup_.{2}\.lang$)", $entry)))
{
$lang_key = substr($entry,6,2);
$languages[] = $lang_key;
}
}
chdir($tmpPath);
return $languages;
}
Here is the caller graph for this function:| ilLanguage::ilLanguage | ( | $ | a_lang_key | ) |
Constructor read the single-language file and put this in an array text.
the text array is two-dimensional. First dimension is the language. Second dimension is the languagetopic. Content is the translation. public
| string | languagecode (two characters), e.g. "de", "en", "in" |
Definition at line 133 of file class.ilLanguage.php.
References $ilias, $log, getInstalledLanguages(), and loadLanguageModule().
{
global $ilias,$log;
$this->ilias =& $ilias;
if (!isset($log))
{
$this->log = new ilLog(ILIAS_LOG_DIR,ILIAS_LOG_FILE,$ilias->getClientId(),ILIAS_LOG_ENABLED);
}
else
{
$this->log =& $log;
}
$this->lang_key = $a_lang_key;
$this->text = array();
$this->loaded_modules = array();
$this->lang_path = ILIAS_ABSOLUTE_PATH.substr($this->ilias->ini->readVariable("language","path"),1);
// if no directory was found fall back to default lang dir
if (!is_dir($this->lang_path))
{
$this->lang_path = ILIAS_ABSOLUTE_PATH."/lang";
}
$this->lang_default = $this->ilias->ini->readVariable("language","default");
$this->lang_user = $this->ilias->account->prefs["language"];
$langs = $this->getInstalledLanguages();
if (!in_array($this->lang_key,$langs))
{
$this->lang_key = $this->lang_default;
}
$this->loadLanguageModule("common");
return true;
}
Here is the call graph for this function:| ilLanguage::ilLanguage | ( | $ | a_lang_key | ) |
Constructor read the single-language file and put this in an array text.
the text array is two-dimensional. First dimension is the language. Second dimension is the languagetopic. Content is the translation. public
| string | languagecode (two characters), e.g. "de", "en", "in" |
Definition at line 101 of file class.ilLanguage.php.
References $row.
{
$this->lang_key = ($a_lang_key) ? $a_lang_key : $this->lang_default;
//$_GET["lang"] = $this->lang_key; // only for downward compability (old setup)
$this->lang_path = ILIAS_ABSOLUTE_PATH."/lang";
// set lang file...
$txt = file($this->lang_path."/setup_".$this->lang_key.".lang");
// ...and load langdata
if (is_array($txt))
{
foreach ($txt as $row)
{
if ($row[0] != "#")
{
$a = explode($this->separator,trim($row));
if(isset($a[1]))
$this->text[trim($a[0])] = trim($a[1]);
else
$this->text[trim($a[0])] = "";
}
}
return true;
}
return false;
}
| ilLanguage::insertLanguage | ( | $ | lang_key | ) |
insert language data form file in database
| string | $lang_key international language key (2 digits) |
Definition at line 404 of file class.ilLanguage.php.
References $lang_key, $num, $pos, $q, and cut_header().
Referenced by installLanguages().
{
$tmpPath = getcwd();
chdir($this->lang_path);
$lang_file = "ilias_".$lang_key.".lang";
if ($lang_file)
{
// remove header first
if ($content = $this->cut_header(file($lang_file)))
{
foreach ($content as $key => $val)
{
$separated = explode ($this->separator,trim($val));
//get position of the comment_separator
$pos = strpos($separated[2], $this->comment_separator);
if ($pos !== false)
{
//cut comment of
$separated[2] = substr($separated[2] , 0 , $pos);
}
$num = count($separated);
$q = "INSERT INTO lng_data ".
"(module,identifier,lang_key,value) ".
"VALUES ".
"('".$separated[0]."','".$separated[1]."','".$lang_key."','".addslashes($separated[2])."')";
$this->db->query($q);
}
}
}
chdir($tmpPath);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilLanguage::installLanguages | ( | $ | a_lang_keys | ) |
install languages
| array | array with lang_keys of languages to install |
Definition at line 203 of file class.ilLanguage.php.
References $lang_key, $q, checkLanguage(), flushLanguages(), getAvailableLanguages(), and insertLanguage().
{
if (empty($a_lang_keys))
{
$a_lang_keys = array();
}
$err_lang = array();
$this->flushLanguages();
$db_langs = $this->getAvailableLanguages();
foreach ($a_lang_keys as $lang_key)
{
if ($this->checkLanguage($lang_key))
{
// ...re-insert data from lang-file
$this->insertLanguage($lang_key);
// register language first time install
if (!array_key_exists($lang_key,$db_langs))
{
$q = "INSERT INTO object_data ".
"(type,title,description,owner,create_date,last_update) ".
"VALUES ".
"('lng','".$lang_key."','installed','-1',now(),now())";
$this->db->query($q);
}
}
else
{
$err_lang[] = $lang_key;
}
}
foreach ($db_langs as $key => $val)
{
if (!in_array($key,$err_lang))
{
if (in_array($key,$a_lang_keys))
{
if ($val["status"] != "installed")
{
$q = "UPDATE object_data SET ".
"description = 'installed',last_update = now() ".
"WHERE obj_id='".$val["obj_id"]."' ".
"AND type='lng'";
$this->db->query($q);
}
}
else
{
if ($val["status"] == "installed")
{
$q = "UPDATE object_data SET ".
"description = 'not_installed',last_update = now() ".
"WHERE obj_id='".$val["obj_id"]."' ".
"AND type='lng'";
$this->db->query($q);
}
}
}
}
return ($err_lang) ? $err_lang : true;
}
Here is the call graph for this function:| ilLanguage::loadLanguageModule | ( | $ | a_module | ) |
Definition at line 211 of file class.ilLanguage.php.
References $lang_key, $q, and $row.
Referenced by ilLanguage().
{
if (in_array($a_module, $this->loaded_modules))
{
return;
}
$this->loaded_modules[] = $a_module;
$lang_key = $this->lang_key;
if (empty($this->lang_key))
{
$lang_key = $this->lang_user;
}
$q = "SELECT identifier,value FROM lng_data ".
"WHERE lang_key = '".$lang_key."' ".
"AND module = '$a_module'";
$r = $this->ilias->db->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$this->text[$row->identifier] = $row->value;
}
}
Here is the caller graph for this function:| ilLanguage::setDbHandler | ( | $ | a_db_handler | ) |
set db handler object object db handler
Definition at line 473 of file class.ilLanguage.php.
{
if (empty($a_db_handler) or !is_object($a_db_handler))
{
return false;
}
$this->db =& $a_db_handler;
return true;
}
| ilLanguage::txt | ( | $ | a_topic | ) |
gets the text for a given topic
if the topic is not in the list, the topic itself with "-" will be returned public
| string | topic |
Definition at line 188 of file class.ilLanguage.php.
{
if (empty($a_topic))
{
return "";
}
$translation = $this->text[$a_topic];
if ($translation == "")
{
if (ILIAS_LOG_ENABLED)
{
$this->log->writeLanguageLog($a_topic,$this->lang_key);
}
return "-".$a_topic."-";
}
else
{
return $translation;
}
}
| ilLanguage::txt | ( | $ | a_topic | ) |
gets the text for a given topic
if the topic is not in the list, the topic itself with "-" will be returned public
| string | topic |
Definition at line 139 of file class.ilLanguage.php.
{
global $log;
if (empty($a_topic))
{
return "";
}
$translation = $this->text[$a_topic];
//get position of the comment_separator
$pos = strpos($translation, $this->comment_separator);
if ($pos !== false)
{
// remove comment
$translation = substr($translation,0,$pos);
}
if ($translation == "")
{
$log->writeLanguageLog($a_topic,$this->lang_key);
return "-".$a_topic."-";
}
else
{
return $translation;
}
}
| ilLanguage::$comment_separator = "###" |
Definition at line 115 of file class.ilLanguage.php.
| ilLanguage::$ilias |
Definition at line 54 of file class.ilLanguage.php.
Referenced by ilLanguage().
| ilLanguage::$lang_default = "en" |
Definition at line 69 of file class.ilLanguage.php.
| ilLanguage::$lang_key |
Definition at line 94 of file class.ilLanguage.php.
Referenced by getInstallableLanguages(), getLanguages(), insertLanguage(), installLanguages(), and loadLanguageModule().
| ilLanguage::$lang_name |
Definition at line 101 of file class.ilLanguage.php.
| ilLanguage::$lang_path |
Definition at line 87 of file class.ilLanguage.php.
| ilLanguage::$lang_user |
Definition at line 78 of file class.ilLanguage.php.
| ilLanguage::$loaded_modules |
Definition at line 122 of file class.ilLanguage.php.
| ilLanguage::$separator = "#:#" |
Definition at line 108 of file class.ilLanguage.php.
| ilLanguage::$text = array() |
Definition at line 61 of file class.ilLanguage.php.
1.7.1