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; }
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; }
ilLanguage::flushLanguages | ( | ) |
remove all languagee from database
Definition at line 390 of file class.ilLanguage.php.
References $q.
Referenced by installLanguages().
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; }
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; }
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; }
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; }
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; }
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); }
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; }
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; } }
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.