4 define(
"ILIAS_LANGUAGE_MODULE",
"Services/Language");
6 require_once(
"./Services/Object/classes/class.ilObjectGUI.php");
7 require_once(
"Services/Language/classes/class.ilObjLanguageAccess.php");
37 function __construct($a_data, $a_id = 0, $a_call_by_reference =
false)
42 $lng->loadLanguageModule(
"administration");
43 $lng->loadLanguageModule(
"meta");
46 $ilCtrl->saveParameter($this,
"view_mode");
50 if (! $this->
id =
$_GET[
'obj_id'])
56 parent::__construct($a_data, $this->
id,
false,
true);
59 if (!is_array(
$_SESSION[
'lang_ext_maintenance']))
63 $this->session =&
$_SESSION[
'lang_ext_maintenance'];
67 $this->langmode = $ilClientIniFile->readVariable(
"system",
"LANGMODE");
79 require_once(
"Services/Language/classes/class.ilObjLanguageExt.php");
101 $this->ilErr->raiseError($this->lng->txt(
"permission_denied"),$this->ilErr->MESSAGE);
105 $cmd = $this->ctrl->getCmd(
"view").
"Object";
108 $ilHelp->setScreenIdComponent(
"lng");
128 include_once
'./Services/Language/classes/class.ilLanguageExtTableGUI.php';
130 'langmode' => $this->langmode,
131 'lang_key'=> $this->
object->key,
148 $comments = $this->
object->getAllRemarks();
152 $compare = $table_gui->getFilterItemByPostVar(
'compare')->getValue();
153 if ($compare == $this->
object->key)
155 $compare_object = $this->
object->getGlobalLanguageFile();
156 $compare_content = $compare_object->getAllValues();
157 $compare_comments = $compare_object->getAllComments();
169 if (
$_GET[
'reset_offset'])
171 $table_gui->resetOffset();
174 if (!isset($compare_content))
177 $compare, $modules, $topics);
183 $this->
object->key, $modules, $topics);
187 foreach($translations as $name => $translation)
189 $keys = explode($this->lng->separator, $name);
190 $db_found[] = $keys[1];
192 $missing_entries = array_diff($topics, $db_found);
198 $filter_mode = $table_gui->getFilterItemByPostVar(
'mode')->getValue();
199 $filter_pattern = $table_gui->getFilterItemByPostVar(
'pattern')->getValue();
200 $filter_module = $table_gui->getFilterItemByPostVar(
'module')->getValue();
201 $filter_module = $filter_module ==
'all' ?
'' : $filter_module;
202 $filter_modules = $filter_module ?
array($filter_module) :
array();
203 $filter_identifier = $table_gui->getFilterItemByPostVar(
'identifier')->getValue();
204 $filter_topics = $filter_identifier ?
array($filter_identifier) :
array();
206 if (!isset($compare_content))
209 $compare, $filter_modules, $filter_topics);
214 switch ($filter_mode)
217 $translations = $this->
object->getChangedValues(
218 $filter_modules, $filter_pattern, $filter_topics);
222 $translations = $this->
object->getAddedValues(
223 $filter_modules, $filter_pattern, $filter_topics);
227 $translations = $this->
object->getUnchangedValues(
228 $filter_modules, $filter_pattern, $filter_topics);
232 $translations = $this->
object->getCommentedValues(
233 $filter_modules, $filter_pattern, $filter_topics);
237 $translations = $this->
object->getAllValues(
238 $filter_modules, $filter_pattern, $filter_topics);
240 $translations = array_intersect_key($translations, $remarks);
244 $translations = $this->
object->getAllValues(
245 $filter_modules, $filter_pattern, $filter_topics);
247 $translations = array_intersect_assoc($translations, $compare_content);
251 $translations = $this->
object->getAllValues(
252 $filter_modules, $filter_pattern, $filter_topics);
254 $translations = array_diff_assoc($translations, $compare_content);
258 $former_file = $this->
object->getDataPath() .
'/ilias_' . $this->
object->key .
'.lang';
259 if (!is_readable($former_file))
262 .
'<br />'. $this->lng->txt(
"language_former_file_description") ,
false);
263 $translations =
array();
266 $global_file_obj = $this->
object->getGlobalLanguageFile();
268 $former_file_obj->read();
269 $global_changes = array_diff_assoc(
270 $global_file_obj->getAllValues(),
271 $former_file_obj->getAllValues());
272 if (!count($global_changes))
274 ilUtil::sendInfo(sprintf($this->lng->txt(
"language_former_file_equal"), $former_file)
275 .
'<br />'. $this->lng->txt(
"language_former_file_description") ,
false);
276 $translations =
array();
279 $translations = $this->
object->getChangedValues(
280 $filter_modules, $filter_pattern, $filter_topics);
282 $translations = array_intersect_key($translations, $global_changes);
287 $translations = $this->
object->getAllValues(
288 $filter_modules, $filter_pattern, $filter_topics);
294 foreach($translations as $name => $translation)
296 $keys = explode($this->lng->separator, $name);
299 $row[
"module"] = $keys[0];
300 $row[
"topic"] = $keys[1];
301 $row[
"name"] = $name;
302 $row[
"translation"] = $translation;
303 $row[
"comment"] = $comments[$name];
304 $row[
"default"] = $compare_content[$name];
305 $row[
"default_comment"] = $compare_comments[$name];
311 $table_gui->setData(
$data);
312 $tpl->setContent($table_gui->getHTML().
322 $table_gui->writeFilterToSession();
323 $table_gui->resetOffset();
333 $table_gui->resetOffset();
334 $table_gui->resetFilter();
344 $save_array =
array();
345 $remarks_array =
array();
346 foreach (
$_POST as $key => $value)
350 $key = str_replace(
'_POSTDOT_',
'.', $key);
351 $key = str_replace(
'_POSTSPACE_',
' ', $key);
357 if (count($keys) == 2)
360 $value = preg_replace(
"/(\015\012)|(\015)|(\012)/",
"<br />",$value);
362 $save_array[$key] = $value;
365 $remarks_array[$key] =
$_POST[$key.$this->lng->separator.
"comment"];
382 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
384 $form->setFormAction($this->ctrl->getFormAction($this));
385 $form->setTitle($this->lng->txt(
"language_import_file"));
386 $form->addCommandButton(
'upload',$this->lng->txt(
"upload"));
392 $ro =
new ilRadioOption($this->lng->txt(
"language_mode_existing_keepall"),
"keepall");
393 $ro->
setInfo($this->lng->txt(
"language_mode_existing_keepall_info"));
395 $ro =
new ilRadioOption($this->lng->txt(
"language_mode_existing_keepnew"),
"keepnew");
396 $ro->
setInfo($this->lng->txt(
"language_mode_existing_keepnew_info"));
398 $ro =
new ilRadioOption($this->lng->txt(
"language_mode_existing_replace"),
"replace");
399 $ro->
setInfo($this->lng->txt(
"language_mode_existing_replace_info"));
401 $ro =
new ilRadioOption($this->lng->txt(
"language_mode_existing_delete"),
"delete");
402 $ro->
setInfo($this->lng->txt(
"language_mode_existing_delete_info"));
404 $rg->setValue($this->session[
"import"][
"mode_existing"] ? $this->session[
"import"][
"mode_existing"] :
"keepall");
407 $this->tpl->setContent($form->getHTML());
419 if (
$_POST[
'cmd'][
'upload'])
421 $file = $_FILES[
'userfile'][
'tmp_name'].
'x';
424 $_FILES[
'userfile'][
'name'],
427 $this->
object->importLanguageFile(
$file,
$_POST[
'mode_existing']);
428 ilUtil::sendSuccess(sprintf($this->lng->txt(
"language_file_imported"), $_FILES[
'userfile'][
'name']) ,
true);
432 $this->ctrl->redirect($this,
'import');
441 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
443 $form->setFormAction($this->ctrl->getFormAction($this));
444 $form->setTitle($this->lng->txt(
"language_export_file"));
445 $form->setPreventDoubleSubmission(
false);
446 $form->addCommandButton(
'download',$this->lng->txt(
"download"));
449 $ro =
new ilRadioOption($this->lng->txt(
"language_scope_global"),
"global");
450 $ro->
setInfo($this->lng->txt(
"language_scope_global_info"));
452 $ro =
new ilRadioOption($this->lng->txt(
"language_scope_local"),
"local");
453 $ro->
setInfo($this->lng->txt(
"language_scope_local_info"));
457 $ro =
new ilRadioOption($this->lng->txt(
"language_scope_added"),
"added");
458 $ro->
setInfo($this->lng->txt(
"language_scope_added_info"));
461 $ro =
new ilRadioOption($this->lng->txt(
"language_scope_unchanged"),
"unchanged");
462 $ro->
setInfo($this->lng->txt(
"language_scope_unchanged_info"));
466 $ro =
new ilRadioOption($this->lng->txt(
"language_scope_merged"),
"merged");
467 $ro->
setInfo($this->lng->txt(
"language_scope_merged_info"));
471 $rg->setValue($this->session[
"export"][
"scope"] ? $this->session[
"export"][
"scope"] :
"global");
474 $this->tpl->setContent($form->getHTML());
486 $filename =
'ilias_' . $this->
object->key .
'_' 488 .
"-" .
date(
'Y-m-d')
489 .
".lang.".$this->session[
"export"][
"scope"];
491 $global_file_obj = $this->
object->getGlobalLanguageFile();
494 if (
$_POST[
"scope"] ==
'global')
496 $local_file_obj->setParam(
"author", $global_file_obj->getParam(
'author'));
497 $local_file_obj->setParam(
"version", $global_file_obj->getParam(
'version'));
498 $local_file_obj->setAllValues($this->
object->getAllValues());
501 $local_file_obj->setAllComments($this->
object->getAllRemarks());
504 elseif (
$_POST[
"scope"] ==
'local')
506 $local_file_obj->setParam(
"based_on", $global_file_obj->getParam(
'version'));
507 $local_file_obj->setAllValues($this->
object->getChangedValues());
510 $local_file_obj->setAllComments($this->
object->getAllRemarks());
513 elseif (
$_POST[
"scope"] ==
'added')
515 $local_file_obj->setParam(
"author", $global_file_obj->getParam(
'author'));
516 $local_file_obj->setParam(
"version", $global_file_obj->getParam(
'version'));
517 $local_file_obj->setAllValues($this->
object->getAddedValues());
518 $local_file_obj->setAllComments($this->
object->getAllRemarks());
520 elseif (
$_POST[
"scope"] ==
'unchanged')
522 $local_file_obj->setParam(
"author", $global_file_obj->getParam(
'author'));
523 $local_file_obj->setParam(
"version", $global_file_obj->getParam(
'version'));
524 $local_file_obj->setAllValues($this->
object->getUnchangedValues());
527 $local_file_obj->setAllComments($this->
object->getAllRemarks());
530 elseif (
$_POST[
"scope"] ==
'merged')
532 $local_file_obj->setParam(
"author", $global_file_obj->getParam(
'author'));
533 $local_file_obj->setParam(
"version", $global_file_obj->getParam(
'version'));
534 $local_file_obj->setAllValues($this->
object->getMergedValues());
535 $local_file_obj->setAllComments($this->
object->getMergedRemarks());
547 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
549 $form->setFormAction($this->ctrl->getFormAction($this));
550 $form->setTitle($this->lng->txt(
"language_maintenance"));
551 $form->setPreventDoubleSubmission(
false);
552 $form->addCommandButton(
'maintainExecute',$this->lng->txt(
"language_process_maintenance"));
555 $ro =
new ilRadioOption($this->lng->txt(
"language_load_local_changes"),
"load");
556 $ro->
setInfo(sprintf($this->lng->txt(
"language_load_local_changes_info"),$this->
object->key));
558 $ro =
new ilRadioOption($this->lng->txt(
"language_clear_local_changes"),
"clear");
559 $ro->
setInfo(sprintf($this->lng->txt(
"language_clear_local_changes_info"),$this->
object->key));
563 $ro =
new ilRadioOption($this->lng->txt(
"language_delete_local_additions"),
"delete_added");
564 $ro->
setInfo(sprintf($this->lng->txt(
"language_delete_local_additions_info"), $this->
object->key));
566 $ro =
new ilRadioOption($this->lng->txt(
"language_remove_local_file"),
"remove_local_file");
567 $ro->
setInfo(sprintf($this->lng->txt(
"language_remove_local_file_info"), $this->
object->key));
569 $ro =
new ilRadioOption($this->lng->txt(
"language_merge_local_changes"),
"merge");
570 $ro->
setInfo(sprintf($this->lng->txt(
"language_merge_local_changes_info"), $this->
object->key));
573 $ro =
new ilRadioOption($this->lng->txt(
"language_save_dist"),
"save_dist");
574 $ro->
setInfo(sprintf($this->lng->txt(
"language_save_dist_info"),$this->
object->key));
576 $rg->setValue($this->session[
"maintain"]);
579 $this->tpl->setContent($form->getHTML());
585 if (isset(
$_POST[
"maintain"]))
590 switch (
$_POST[
"maintain"])
596 $orig_file = $this->
object->getLangPath() .
'/ilias_' . $this->
object->key .
'.lang';
597 $copy_file = $this->
object->getDataPath() .
'/ilias_' . $this->
object->key .
'.lang';
598 if (@copy($orig_file, $copy_file))
610 $lang_file = $this->
object->getCustLangPath() .
'/ilias_' . $this->
object->key .
'.lang.local';
611 if (is_file($lang_file)
and is_readable($lang_file))
613 $this->
object->importLanguageFile($lang_file,
'replace');
614 $this->
object->setLocal(
true);
625 $lang_file = $this->
object->getLangPath() .
'/ilias_' . $this->
object->key .
'.lang';
626 if (is_file($lang_file)
and is_readable($lang_file))
628 $this->
object->importLanguageFile($lang_file,
'delete');
629 $this->
object->setLocal(
false);
646 $orig_file = $this->
object->getLangPath() .
'/ilias_' . $this->
object->key .
'.lang';
647 $copy_file = $this->
object->getCustLangPath() .
'/ilias_' . $this->
object->key .
'.lang';
649 if (is_file($orig_file)
and is_writable($orig_file))
652 @copy($orig_file, $copy_file);
655 $global_file_obj = $this->
object->getGlobalLanguageFile();
656 $global_file_obj->setAllValues($this->
object->getMergedValues());
657 $global_file_obj->setAllComments($this->
object->getMergedRemarks());
658 $global_file_obj->write();
668 case "remove_local_file":
669 $lang_file = $this->
object->getCustLangPath() .
'/ilias_' . $this->
object->key .
'.lang.local';
671 if (!is_file($lang_file))
673 $this->
object->setLocal(
false);
676 elseif (@unlink($lang_file))
678 $this->
object->setLocal(
false);
688 $this->ctrl->redirect($this,
"maintain");
698 $translate_key =
"lang_translate_". $this->
object->key;
703 $ilSetting->set($translate_key, (
bool)
$_POST[
"translation"]);
706 $translate = $ilSetting->get($translate_key,
false);
708 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
710 $form->setFormAction($this->ctrl->getFormAction($this));
711 $form->setTitle($this->lng->txt(
"language_settings"));
712 $form->setPreventDoubleSubmission(
false);
713 $form->addCommandButton(
'settings',$this->lng->txt(
"language_change_settings"));
715 $ci =
new ilCheckboxInputGUI($this->lng->txt(
"language_translation_enabled"),
"translation");
717 $ci->setInfo($this->lng->txt(
"language_note_translation"));
720 $this->tpl->setContent($form->getHTML());
731 $total =
array(
"module"=>
'',
"all"=>0,
"changed"=>0,
"unchanged"=>0);
732 foreach($modules as $module)
735 $row[
'module'] = $module;
737 $row[
'changed'] = count($this->
object->getChangedValues(
array($module)));
738 $row[
'unchanged'] = $row[
'all']-$row[
'changed'];
739 $total[
'all'] += $row[
'all'];
740 $total[
'changed'] += $row[
'changed'];
741 $total[
'unchanged'] += $row[
'unchanged'];
744 $total[
'module'] =
"<b>".$this->lng->txt(
"language_all_modules").
"</b>";
745 $total[
'all'] =
"<b>".$total[
'all'].
"</b>";
746 $total[
'changed'] =
"<b>".$total[
'changed'].
"</b>";
747 $total[
'unchanged'] =
"<b>".$total[
'unchanged'].
"</b>";
751 include_once
'Services/Table/classes/class.ilTable2GUI.php';
753 $table_gui->setRowTemplate(
"tpl.lang_statistics_row.html",
"Services/Language");
754 $table_gui->setEnableTitle(
false);
755 $table_gui->setEnableNumInfo(
false);
756 $table_gui->setLimit(count(
$data));
759 $table_gui->addColumn(ucfirst($this->lng->txt(
"module")),
"",
"25%");
760 $table_gui->addColumn($this->lng->txt(
"language_scope_global"),
"",
"25%");
761 $table_gui->addColumn($this->lng->txt(
"language_scope_local"),
"",
"25%");
762 $table_gui->addColumn($this->lng->txt(
"language_scope_unchanged"),
"",
"25%");
764 $table_gui->setData(
$data);
766 $this->tpl->setContent($table_gui->getHTML());
780 $this->tabs_gui->addTarget(
"edit",
781 $this->ctrl->getLinkTarget($this,
"view"),
782 array(
"",
"view",
"cancel",
"save"));
784 $this->tabs_gui->addTarget(
"export",
785 $this->ctrl->getLinkTarget($this,
"export"),
786 array(
"export",
"download"));
788 $this->tabs_gui->addTarget(
"import",
789 $this->ctrl->getLinkTarget($this,
"import"),
790 array(
"import",
"upload"));
792 $this->tabs_gui->addTarget(
"language_maintain",
793 $this->ctrl->getLinkTarget($this,
"maintain"),
796 $this->tabs_gui->addTarget(
"settings",
797 $this->ctrl->getLinkTarget($this,
"settings"),
800 $this->tabs_gui->addTarget(
"language_statistics",
801 $this->ctrl->getLinkTarget($this,
"statistics"),
802 array(
"statistics"));
817 parent::addAdminLocatorItems(
true);
819 $ilLocator->addItem($this->lng->txt(
"languages"),
820 $this->ctrl->getLinkTargetByClass(
"ilobjlanguagefoldergui",
""));
822 $ilLocator->addItem($this->lng->txt(
"meta_l_". $this->object->getTitle()),
823 $this->ctrl->getLinkTarget($this,
"view"));
836 $this->tpl->setHeaderPageTitle($this->lng->txt(
"translation"));
837 $this->tpl->setTitle($this->lng->txt(
"translation").
" ".$this->lng->txt(
"meta_l_".$this->
object->key));
841 $this->tpl->setTitle($this->lng->txt(
"meta_l_".$this->object->key));
843 $this->tpl->setTitleIcon(
ilUtil::getImagePath(
"icon_lngf.svg"), $this->lng->txt(
"obj_" . $this->object->getType()));
855 if(!is_array($a_missing) ||
861 $res =
array(
'<h3>'.$this->lng->txt(
"adm_missing_entries").
'</h3>',
'<ul>');
863 foreach($a_missing as $entry)
865 $ilCtrl->setParameter($this,
"eid", $entry);
866 $res[] =
'<li>'.$entry.
867 ' <a href="'.$ilCtrl->getLinkTarget($this,
"addNewEntry").
868 '">'.$this->lng->txt(
"adm_missing_entry_add_action").
'</a></li>';
869 $ilCtrl->setParameter($this,
"eid",
"");
874 return implode(
"\n",
$res);
881 $id = trim(
$_GET[
"eid"]);
888 $tpl->setContent($a_form->getHTML());
903 $ilCtrl->redirect($this,
"view");
906 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
908 $form->setFormAction($ilCtrl->getFormAction($this,
"saveNewEntry"));
909 $form->setTitle($this->lng->txt(
"adm_missing_entry_add"));
912 $options = array_combine($mods, $mods);
915 $mod->setOptions(
array(
""=>$this->lng->txt(
"please_select"))+
$options);
916 $mod->setRequired(
true);
917 $form->addItem($mod);
919 $id =
new ilTextInputGUI(ucfirst($this->lng->txt(
"identifier")),
"id");
920 $id->setValue($a_id);
921 $id->setDisabled(
true);
924 foreach ($this->lng->getInstalledLanguages() as $lang_key)
926 $trans =
new ilTextInputGUI($this->lng->txt(
"meta_l_".$lang_key),
"trans_".$lang_key);
927 if(in_array($lang_key,
array(
"de",
"en")))
931 $form->addItem($trans);
934 $form->addCommandButton(
"saveNewEntry", $this->lng->txt(
"save"));
935 $form->addCommandButton(
"view", $this->lng->txt(
"cancel"));
945 if($form->checkInput())
947 $mod = $form->getInput(
"mod");
948 $id = $form->getInput(
"id");
951 foreach ($this->lng->getInstalledLanguages() as $lang_key)
953 $trans = trim($form->getInput(
"trans_".$lang_key));
967 $set = $ilDB->query(
"SELECT lang_array FROM lng_modules".
968 " WHERE lang_key = ".$ilDB->quote($lang_key,
"text").
969 " AND module = ".$ilDB->quote($mod,
"text"));
970 $row = $ilDB->fetchAssoc($set);
971 $entries = unserialize(
$row[
"lang_array"]);
972 if(is_array($entries))
974 $entries[$id] = $trans;
975 ilObjLanguage::replaceLangModule($lang_key, $mod, $entries);
981 $ilCtrl->redirect($this,
"view");
984 $form->setValuesByPost();
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
downloadObject()
Download a language file.
This class represents an option in a radio group.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
static replaceLangEntry($a_module, $a_identifier, $a_lang_key, $a_value, $a_local_change=null, $a_remarks=null)
Replace lang entry.
executeCommand()
execute command
assignObject()
Assign the extended language object.
viewObject()
Show the edit screen.
uploadObject()
Process an uploaded language file.
applyFilterObject()
Apply filter.
static _getRemarks($a_lang_key, $a_all_changed=false)
Get all remarks of a language.
static _isPageTranslation()
Check if the current request is a page translation.
static _getSavedModules()
Get the stored modules from the user session.
getViewTable()
Get the table to view language entries.
addAdminLocatorItems($a_do_not_add_object=false)
Set the locator for admin mode (Overwritten from ilObjectGUI, called by prepareOutput) ...
static _deleteValues($a_lang_key, $a_values=array())
Delete a set of translation in the database.
cancelObject()
Cancel the current action.
Class ilObjLanguageExtGUI.
__construct($a_data, $a_id=0, $a_call_by_reference=false)
Constructor.
resetFilterObject()
Reset filter.
exportObject()
Show the screen to export a language file.
static _checkMaintenance()
Permission check for language maintenance (import/export)
static _lookupId($a_key)
Lookup the object ID for a language key.
initAddNewEntryForm($a_id=null)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
importObject()
Show the screen to import a language file.
if(!is_array($argv)) $options
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
Class ilObjectGUI Basic methods of all Output classes.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
getAdminTabs()
Get tabs for admin mode (Overwritten from ilObjectGUI, called by prepareOutput) ...
This class represents a text property in a property form.
static _getValues($a_lang_key, $a_modules=array(), $a_topics=array(), $a_pattern='', $a_state='')
Get the translations of specified topics.
buildMissingEntries(array $a_missing=null)
statisticsObject()
Print out statistics about the language.
settingsObject()
Set the language settings.
setTitleAndDescription()
Set the Title and the description (Overwritten from ilObjectGUI, called by prepareOutput) ...
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static _getSavedTopics()
Get the stored topics from the user session.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
saveObject()
Save the changed translations.
static _saveValues($a_lang_key, $a_values=array(), $a_remarks=array())
Save a set of translation in the database.
Create new PHPExcel object
obj_idprivate
addNewEntryObject(ilPropertyFormGUI $a_form=null)
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
static _getModules($a_lang_key)
Get all modules of a language.
maintainObject()
Process the language maintenance.
getId()
get the language object id (needed for filter serialization)