Public Member Functions | Data Fields

ilLanguage Class Reference

language handling More...

Public Member Functions

 ilLanguage ($a_lang_key)
 Constructor read the single-language file and put this in an array text.
 getLangKey ()
 getDefaultLanguage ()
 txtlng ($a_module, $a_topic, $a_language)
 gets the text for a given topic in a given language if the topic is not in the list, the topic itself with "-" will be returned
 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
 loadLanguageModule ($a_module)
 getInstalledLanguages ()
 _lookupEntry ($a_lang_key, $a_mod, $a_id)
 getUsedTopics ()
 getUsedModules ()
 getUserLanguage ()
 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, $a_local_keys)
 install languages
 getInstalledLanguages ()
 get already installed languages (in db)
 getInstalledLocalLanguages ()
 get already installed local languages (in db)
 getAvailableLanguages ()
 get already registered languages (in db)
 checkLanguage ($a_lang_key, $scope= '')
 validate the logical structure of a lang-file
 cut_header ($content)
 Remove *.lang header information from '$content'.
 flushLanguages ()
 remove all languagee from database
 insertLanguage ($lang_key, $scope= '')
 insert language data from file in database
 getLocalLanguages ()
 Searches for the existence of *.lang.local files.
 getInstallableLanguages ()
 setDbHandler ($a_db_handler)
 set db handler object object db handler
 loadLanguageModule ()

Data Fields

 $ilias
 $text = array()
 $lang_default = "en"
 $lang_user
 $lang_path
 $lang_key
 $lang_name
 $separator = "#:#"
 $comment_separator = "###"
 $loaded_modules

Detailed Description

language handling

language handling for setup

this class offers the language handling for an application. it works initially on one file: languages.txt from this file the class can generate many single language files. the constructor is called with a small language abbreviation e.g. $lng = new Language("en"); the constructor reads the single-languagefile en.lang and puts this into an array. with e.g. $lng->txt("user_updated"); you can translate a lang-topic into the actual language

Author:
Peter Gabriel <pgabriel@databay.de>
Version:
Id:
class.ilLanguage.php 15348 2007-11-20 12:34:02Z akill
Todo:
Das Datefeld wird bei Aenderungen einer Sprache (update, install, deinstall) nicht richtig gesetzt!!! Die Formatfunktionen gehoeren nicht in class.Language. Die sind auch woanders einsetzbar!!! Daher->besser in class.Format

this class offers the language handling for an application. the constructor is called with a small language abbreviation e.g. $lng = new Language("en"); the constructor reads the single-languagefile en.lang and puts this into an array. with e.g. $lng->txt("user_updated"); you can translate a lang-topic into the actual language

Author:
Peter Gabriel <pgabriel@databay.de>
Version:
Id:
class.ilLanguage.php 15047 2007-10-20 10:11:42Z akill
Todo:
The DATE field is not set correctly on changes of a language (update, install, your stable). The format functions do not belong in class.Language. Those are also applicable elsewhere. Therefore, they would be better placed in class.Format

Definition at line 46 of file class.ilLanguage.php.


Member Function Documentation

ilLanguage::_lookupEntry ( a_lang_key,
a_mod,
a_id 
)

Definition at line 347 of file class.ilLanguage.php.

Referenced by ilRegistrationGUI::displayForm(), ilPersonalProfileGUI::initForm(), ilAccountMail::replacePlaceholders(), ilMainMenuGUI::setTemplateVars(), ilStartUpGUI::showLogin(), ilPersonalProfileGUI::showProfile(), and ilStartUpGUI::showUserAgreement().

        {
                global $ilDB;
                
                $q = "SELECT * FROM lng_data WHERE".
                        " module = ".$ilDB->quote($a_mod).
                        " AND lang_key =".$ilDB->quote($a_lang_key).
                        " AND identifier =".$ilDB->quote($a_id);
                        
                $set = $ilDB->query($q);
                
                $rec = $set->fetchRow(DB_FETCHMODE_ASSOC);
                
                if ($rec["value"] != "")
                {
                        // remember the used topics
                        $this->used_topics[$a_id] = $a_id;
                        $this->used_modules[$a_mod] = $a_mod;
                        
                        return $rec["value"];
                }
                
                return "-".$a_id."-";
        }

Here is the caller graph for this function:

ilLanguage::checkLanguage ( a_lang_key,
scope = '' 
)

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 consists of exactly three elements (module, identifier, value).

Parameters:
string $a_lang_key international language key (2 digits)
string $scope empty (global) or "local"
Returns:
string $info_text message about results of check OR "1" if all checks successfully passed

Definition at line 397 of file class.ilLanguage.php.

References cut_header().

Referenced by installLanguages().

        {
                if (!empty($scope))
                {
                        if ($scope == 'global')
                        {
                                $scope = ''; 
                        }
                        else
                        {
                                $scopeExtension = '.' . $scope;
                        }
                }
                
                $path = $this->lang_path;
                if ($scope == "local")
                {
                        $path = $this->cust_lang_path;
                }

                $tmpPath = getcwd();
                chdir($path);

                // compute lang-file name format
                $lang_file = "ilias_" . $a_lang_key . ".lang" . $scopeExtension;

                // 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 header 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.

Parameters:
string $content expect an ILIAS lang-file
Returns:
string $content content without header info OR false if no valid header was found private

Definition at line 466 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 482 of file class.ilLanguage.php.

Referenced by installLanguages().

        {
                $query = "DELETE FROM lng_data";
                $this->db->query($query);
        }

Here is the caller graph for this function:

ilLanguage::getAvailableLanguages (  ) 

get already registered languages (in db)

Returns:
array array with information about languages that has been registered in db

Definition at line 369 of file class.ilLanguage.php.

Referenced by installLanguages().

        {
                $arr = array();

                $query = "SELECT * FROM object_data ".
                                "WHERE type = 'lng'";
                $r = $this->db->query($query);

                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::getDefaultLanguage (  ) 

Definition at line 205 of file class.ilLanguage.php.

        {
                return $this->lang_default ? $this->lang_default : 'en';
        }

ilLanguage::getInstallableLanguages (  ) 

Definition at line 627 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 (  ) 

get already installed languages (in db)

Returns:
array array with inforamtion about each installed language

Definition at line 326 of file class.ilLanguage.php.

        {
                $arr = array();

                $query = "SELECT * FROM object_data ".
                                "WHERE type = 'lng' ".
                                "AND description LIKE 'installed%'";
                $r = $this->db->query($query);

                while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $arr[] = $row->title;
                }

                return $arr;
        }

ilLanguage::getInstalledLanguages (  ) 

Definition at line 331 of file class.ilLanguage.php.

References $lang, and ilObject::_getObjectsByType().

Referenced by ilLanguage(), and ilInitialisation::initLanguage().

        {
                $langlist = ilObject::_getObjectsByType("lng");
                
                foreach ($langlist as $lang)
                {
                        if (substr($lang["desc"], 0, 9) == "installed")
                        {
                                $languages[] = $lang["title"];
                        }
                
                }

                return $languages ? $languages : array();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLanguage::getInstalledLocalLanguages (  ) 

get already installed local languages (in db)

Returns:
array array with inforamtion about each installed language

Definition at line 348 of file class.ilLanguage.php.

        {
                $arr = array();

                $query = "SELECT * FROM object_data ".
                                "WHERE type = 'lng' ".
                                "AND description = 'installed_local'";
                $r = $this->db->query($query);

                while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $arr[] = $row->title;
                }

                return $arr;
        }

ilLanguage::getLangKey (  ) 

Definition at line 200 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

Returns:
array langs

Definition at line 190 of file class.ilLanguage.php.

References $d, and $lang_key.

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::getLocalLanguages (  ) 

Searches for the existence of *.lang.local files.

return $local_langs array of language keys

Definition at line 602 of file class.ilLanguage.php.

References $d, and $lang_key.

        {
                $local_langs = array();
                if (is_dir($this->cust_lang_path))
                {
                        $d = dir($this->cust_lang_path);
                        $tmpPath = getcwd();
                        chdir ($this->cust_lang_path);
        
                        // get available .lang.local files
                        while ($entry = $d->read())
                        {
                                if (is_file($entry) && (ereg ("(^ilias_.{2}\.lang.local$)", $entry)))
                                {
                                        $lang_key = substr($entry,6,2);
                                        $local_langs[] = $lang_key;
                                }
                        }
        
                        chdir($tmpPath);
                }

                return $local_langs;
        }

ilLanguage::getUsedModules (  ) 

Definition at line 385 of file class.ilLanguage.php.

        {
                if (is_array($this->used_modules))
                {
                        asort($this->used_modules);
                        return $this->used_modules;
                }
                else
                {
                        return array();
                }
        }

ilLanguage::getUsedTopics (  ) 

Definition at line 372 of file class.ilLanguage.php.

        {
                if (is_array($this->used_topics))
                {
                        asort($this->used_topics);
                        return $this->used_topics;
                }
                else
                {
                        return array();
                }
        }

ilLanguage::getUserLanguage (  ) 

Definition at line 398 of file class.ilLanguage.php.

        {
                return $this->lang_user;
        }

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

Parameters:
string languagecode (two characters), e.g. "de", "en", "in"
Returns:
boolean false if reading failed

Definition at line 143 of file class.ilLanguage.php.

References $ilias, $ilSetting, $log, getInstalledLanguages(), and loadLanguageModule().

        {
                global $ilias,$log,$ilIliasIniFile,$ilUser,$ilSetting;

                // store used modules and topics in a global variable
                // ($lng seems to be initialized more than once)
                global $ilias_lang_used_topics;
                global $ilias_lang_used_modules;
                $this->used_topics =& $ilias_lang_used_topics;
                $this->used_modules =& $ilias_lang_used_modules;

                $this->ilias =& $ilias;

                if (!isset($log))
                {
                        if (is_object($ilias))
                        {
                                $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->cust_lang_path = ILIAS_ABSOLUTE_PATH."/Customizing/global/lang";

                $this->lang_default = $ilIliasIniFile->readVariable("language","default");
                if (is_object($ilSetting) && $ilSetting->get("language") != "")
                {
                        $this->lang_default = $ilSetting->get("language");
                }
                $this->lang_user = $ilUser->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

Parameters:
string languagecode (two characters), e.g. "de", "en", "in"
Returns:
boolean false if reading failed

Definition at line 100 of file class.ilLanguage.php.

        {
                $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";
                $this->cust_lang_path = ILIAS_ABSOLUTE_PATH."/Customizing/global/lang";

                // set lang file...
                $txt = file($this->lang_path."/setup_lang_sel_multi.lang");

                // ...and load langdata
                if (is_array($txt))
                {
                        foreach ($txt as $row)
                        {
                                if ($row[0] != "#")
                                {
                                        $a = explode($this->separator,trim($row));
                                        $this->text[trim($a[0])] = trim($a[1]);
                                }
                        }
                }

                // 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));
                                        $this->text[trim($a[0])] = trim($a[1]);
                                }
                        }

                        return true;
                }

                return false;
        }

ilLanguage::insertLanguage ( lang_key,
scope = '' 
)

insert language data from file in database

Parameters:
string $lang_key international language key (2 digits)
string $scope empty (global) or "local"
Returns:
void

Definition at line 496 of file class.ilLanguage.php.

References $lang_key, and cut_header().

Referenced by installLanguages().

        {
                $ilDB =& $this->db;
                
                $lang_array = array();
                
                if (!empty($scope))
                {
                        if ($scope == 'global')
                        {
                                $scope = ''; 
                        }
                        else
                        {
                                $scopeExtension = '.' . $scope;
                        }
                }

                $path = $this->lang_path;
                if ($scope == "local")
                {
                        $path = $this->cust_lang_path;
                }
                
                $tmpPath = getcwd();
                chdir($path);

                $lang_file = "ilias_" . $lang_key . ".lang" . $scopeExtension;

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

                                        if (empty($scope))
                                        {
                                                $query = "INSERT INTO lng_data ".
                                                                "(module,identifier,lang_key,value) ".
                                                                "VALUES ".
                                                                "('" . $separated[0] . "','" . $separated[1] . "','" . $lang_key . "','" . addslashes($separated[2]) . "')";
                                                $lang_array[$separated[0]][$separated[1]] = $separated[2];
                                        }
                                        else if ($scope == 'local')
                                        {
                                                $query = "UPDATE lng_data SET ".
                                                                "module = '" . $separated[0] . "', " .
                                                                "identifier = '" . $separated[1] . "', " . 
                                                                "lang_key = '" . $lang_key . "', " .
                                                                "value = '" . addslashes($separated[2]) . "' " .
                                                                "WHERE module = '" . $separated[0] . "' " .
                                                                "AND identifier = '" . $separated[1] . "' " .
                                                                "AND lang_key = '" . $lang_key . "'";
                                                $lang_array[$separated[0]][$separated[1]] = $separated[2];
                                        }
                                        $this->db->query($query);
                                }
                        }

                        // insert module data
                        $lang_array[$separated[0]][$separated[1]] = $separated[2];

                        foreach($lang_array as $module => $lang_arr)
                        {
                                if ($scope == "local")
                                {
                                        $q = "SELECT * FROM lng_modules WHERE ".
                                                " lang_key = ".$ilDB->quote($this->key).
                                                " AND module = ".$ilDB->quote($module);
                                        $set = $ilDB->query($q);
                                        $row = $set->fetchRow(DB_FETCHMODE_ASSOC);
                                        $arr2 = unserialize($row["lang_array"]);
                                        if (is_array($arr2))
                                        {
                                                $lang_arr = array_merge($arr2, $lang_arr);
                                        }
                                }
                                $query = "REPLACE INTO lng_modules (lang_key, module, lang_array) VALUES ".
                                         "(".$ilDB->quote($lang_key).", " .
                                         " ".$ilDB->quote($module).", " . 
                                         " ".$ilDB->quote(serialize($lang_arr)).") ";
                                $ilDB->query($query);

                        }
                }

                chdir($tmpPath);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLanguage::installLanguages ( a_lang_keys,
a_local_keys 
)

install languages

Parameters:
array array with lang_keys of languages to install
Returns:
boolean true on success

Definition at line 217 of file class.ilLanguage.php.

References $lang_key, checkLanguage(), flushLanguages(), getAvailableLanguages(), and insertLanguage().

        {
                if (empty($a_lang_keys))
                {
                        $a_lang_keys = array();
                }
                
                if (empty($a_local_keys))
                {
                        $a_local_keys = array();
                }

                $err_lang = array();

                $this->flushLanguages();
                
                $db_langs = $this->getAvailableLanguages();

                foreach ($a_lang_keys as $lang_key)
                {
                        if ($this->checkLanguage($lang_key))
                        {
                                $this->insertLanguage($lang_key);
                                
                                if (in_array($lang_key, $a_local_keys))
                                {
                                        if ($this->checkLanguage($lang_key, "local"))
                                        {
                                                $this->insertLanguage($lang_key, "local");
                                        }
                                        else
                                        {
                                                $err_lang[] = $lang_key;
                                        }
                                }
                                
                                // register language first time install
                                if (!array_key_exists($lang_key,$db_langs))
                                {
                                        if (in_array($lang_key, $a_local_keys))
                                        {
                                                $query = "INSERT INTO object_data ".
                                                                "(type,title,description,owner,create_date,last_update) ".
                                                                "VALUES ".
                                                                "('lng','".$lang_key."','installed_local','-1',now(),now())";
                                        }
                                        else
                                        {
                                                $query = "INSERT INTO object_data ".
                                                                "(type,title,description,owner,create_date,last_update) ".
                                                                "VALUES ".
                                                                "('lng','".$lang_key."','installed','-1',now(),now())";
                                        }
                                        $this->db->query($query);
                                }
                        }
                        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 (in_array($key, $a_local_keys))
                                        {
                                                $query = "UPDATE object_data SET " .
                                                                "description = 'installed_local', " .
                                                                "last_update = now() " .
                                                                "WHERE obj_id='".$val["obj_id"]."' " .
                                                                "AND type='lng'";
                                        }
                                        else
                                        {
                                                $query = "UPDATE object_data SET " .
                                                                "description = 'installed', " .
                                                                "last_update = now() " .
                                                                "WHERE obj_id='".$val["obj_id"]."' " .
                                                                "AND type='lng'";
                                        }
                                        $this->db->query($query);
                                }
                                else
                                {
                                        if (substr($val["status"], 0, 9) == "installed")
                                        {
                                                $query = "UPDATE object_data SET " .
                                                                "description = 'not_installed', " .
                                                                "last_update = now() " .
                                                                "WHERE obj_id='" . $val["obj_id"] . "' " .
                                                                "AND type='lng'";
                                                $this->db->query($query);
                                        }
                                }
                        }
                }

                return ($err_lang) ? $err_lang : true;
        }

Here is the call graph for this function:

ilLanguage::loadLanguageModule ( a_module  ) 

Definition at line 284 of file class.ilLanguage.php.

References $lang_key.

        {
                global $ilDB;
                
                if (in_array($a_module, $this->loaded_modules))
                {
                        return;
                }

                $this->loaded_modules[] = $a_module;

                // remember the used modules globally
                $this->used_modules[$a_module] = $a_module;

                $lang_key = $this->lang_key;

                if (empty($this->lang_key))
                {
                        $lang_key = $this->lang_user;
                }

/*
                $query = "SELECT identifier,value FROM lng_data " .
                                "WHERE lang_key = '" . $lang_key."' " .
                                "AND module = '$a_module'";
                $r = $this->ilias->db->query($query);

                while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $this->text[$row->identifier] = $row->value;
                }
*/

                $query = "SELECT * FROM lng_modules " .
                                "WHERE lang_key = ".$ilDB->quote($lang_key)." " .
                                "AND module = ".$ilDB->quote($a_module);
                $r = $ilDB->query($query);
                $row = $r->fetchRow(DB_FETCHMODE_ASSOC);
                
                $new_text = unserialize($row["lang_array"]);
                if (is_array($new_text))
                {
                        $this->text = array_merge($this->text, $new_text);
                }
        }

ilLanguage::loadLanguageModule (  ) 

Definition at line 669 of file class.ilLanguage.php.

Referenced by ilLanguage().

        {
        }

Here is the caller graph for this function:

ilLanguage::setDbHandler ( a_db_handler  ) 

set db handler object object db handler

Returns:
boolean true on success

Definition at line 657 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

Parameters:
string topic
Returns:
string text clear-text

Definition at line 257 of file class.ilLanguage.php.

Referenced by txtlng().

        {
                if (empty($a_topic))
                {
                        return "";
                }

                // remember the used topics
                $this->used_topics[$a_topic] = $a_topic;

                $translation = $this->text[$a_topic];

                if ($translation == "")
                {
                        if (ILIAS_LOG_ENABLED && is_object($this->log))
                        {
                                $this->log->writeLanguageLog($a_topic,$this->lang_key);
                        }

                        return "-".$a_topic."-";
                }
                else
                {
                        return $translation;
                }
        }

Here is the caller graph for this function:

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

Parameters:
string topic
Returns:
string text clear-text

Definition at line 152 of file class.ilLanguage.php.

References $log.

        {
                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::txtlng ( a_module,
a_topic,
a_language 
)

gets the text for a given topic in a given language if the topic is not in the list, the topic itself with "-" will be returned

public

Parameters:
string topic
string $a_language The language of the output string
Returns:
string text clear-text

Definition at line 219 of file class.ilLanguage.php.

References txt().

        {
                if (strcmp($a_language, $this->lang_key) == 0)
                {
                        return $this->txt($a_topic);
                }
                else
                {
                        $query = sprintf("SELECT value FROM lng_data WHERE lang_key = %s AND module = %s AND identifier = %s",
                                $this->ilias->db->quote($a_language . ""),
                                $this->ilias->db->quote($a_module . ""),
                                $this->ilias->db->quote($a_topic . "")
                        );
                        $r = $this->ilias->db->query($query);
        
                        if  ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
                        {
                                // remember the used topics
                                $this->used_topics[$a_topic] = $a_topic;
                                $this->used_modules[$a_module] = $a_module;

                                return $row->value;
                        }
                        else
                        {
                                return "-".$a_topic."-";
                        }
                }
        }

Here is the call graph for this function:


Field Documentation

ilLanguage::$comment_separator = "###"

Definition at line 123 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 71 of file class.ilLanguage.php.

ilLanguage::$lang_key
ilLanguage::$lang_name

Definition at line 107 of file class.ilLanguage.php.

ilLanguage::$lang_path

Definition at line 91 of file class.ilLanguage.php.

ilLanguage::$lang_user

Definition at line 81 of file class.ilLanguage.php.

ilLanguage::$loaded_modules

Definition at line 131 of file class.ilLanguage.php.

ilLanguage::$separator = "#:#"

Definition at line 115 of file class.ilLanguage.php.

ilLanguage::$text = array()

Definition at line 62 of file class.ilLanguage.php.


The documentation for this class was generated from the following files: